A memória sempre foi o único tipo de hardware que cumpriu a promessa de velocidades massivas. Existem algumas desvantagens: é caro, tem capacidade limitada e não é persistente (para manter os dados, a memória precisa ser ligada, o que é ainda mais problemático, pois a memória precisa de uma atualização periódica). A Intel e a Micron anunciaram a tecnologia 3DXPoint há cerca de três anos, que seria o primeiro passo em direção à memória persistente. Embora essa tecnologia não fosse tão rápida quanto a memória, era muito mais rápida que o armazenamento flash e muito mais econômica. Vendo o potencial da memória persistente, o MemVerge foi lançado para concretizar esse potencial.
A memória sempre foi o único tipo de hardware que cumpriu a promessa de velocidades massivas. Existem algumas desvantagens: é caro, tem capacidade limitada e não é persistente (para manter os dados, a memória precisa ser ligada, o que é ainda mais problemático, pois a memória precisa de uma atualização periódica). A Intel e a Micron anunciaram a tecnologia 3DXPoint há cerca de três anos, que seria o primeiro passo em direção à memória persistente. Embora essa tecnologia não fosse tão rápida quanto a memória, era muito mais rápida que o armazenamento flash e muito mais econômica. Vendo o potencial da memória persistente, o MemVerge foi lançado para concretizar esse potencial.
Os primeiros dispositivos 3D XPoint que vimos eram mais voltados para armazenamento. Com o passar do tempo, a Intel aproveitou a memória persistente 3D XPoint (PMem) para criar um SSD mais rápido. Mais tarde, a Intel anunciou um módulo de memória persistente que ficava no slot DIMM e agia como uma expansão para a DRAM. Enquanto no passado víamos memória para necessidades rápidas e armazenamento para grandes necessidades, o PMem começou a borrar a linha. O MemVerge está tentando combinar o melhor dos dois mundos, permitindo desempenho DRAM com grande capacidade e persistência.
A MemVerge tem pesquisado o panorama da memória persistente e desenvolvido software para permitir que o PMem atinja seu potencial em vez de aproveitá-lo como um cache, nível de velocidade ou expansor de memória. A empresa usa o que chama de computação de Big Memory para transformar ambientes somente DRAM em custos mais baixos e, mais importante, ambientes de memória de alta densidade que utilizam DRAM e PMem. Ele faz isso virtualizando os dois em um pool de memória definida por software que também fornece serviços definidos por software. Além do que foi dito acima, o software oferece uma camada de abstração que permite que todos os aplicativos em um data center se beneficiem de novos tipos de memória, interconexões de memória, processadores e alocadores de memória para lidar com aplicativos e cargas de trabalho modernos e emergentes.
Em setembro do ano passado, MemVerge lançou a disponibilidade geral de sua Memory Machine. O software é oferecido em duas versões: Versão Standard que virtualiza aplicativos de DRAM e memória PMem endereçáveis por byte e reduz custos, mas não permite persistência; e AdvancedVersion, que é tudo acima com persistência habilitada, bem como serviços de memória de classe empresarial baseados em instantâneos de memória ZeroIO.
Os instantâneos na memória ZeroIO, como o nome indica, permitem instantâneos de DRAM e PMem com zeroIO para armazenamento. Isso transforma a DRAM, que normalmente é volátil e de baixa disponibilidade, em um nível de alta disponibilidade. Os instantâneos ZeroIO também permitem o que é chamado de viagem no tempo, permitindo a reversão para instantâneos anteriores. Há um recurso de salvamento automático que reverte os aplicativos para o instantâneo anterior se houver uma falha. Os snapshots permitem a produção de Thin Clones sem usar mais recursos de memória. E os instantâneos podem ser migrados para outros servidores e usados para criar uma nova instância de aplicativo.
Gerenciamento de máquina de memória MemVerge
O MemVerge Memory Machine tem uma GUI de aparência bastante elegante. O painel global mostra os elementos que esperamos no armazenamento, as diferenças neste caso em que DRAM e PMem são os principais elementos monitorados e o uso pode ser facilmente visto aqui. Na parte superior, há guias para hosts, instâncias de aplicativos, instantâneos e alertas.
Clicar no botão inicial à esquerda traz informações básicas sobre o sistema (endereço IP, sistema operacional, versão do Kernal, CPU), bem como um mergulho profundo no uso e desempenho de memória e PMem.
Os usuários podem detalhar ainda mais a memória puxando um relatório de memória para ver o uso por hora. Isso também destaca o tipo, PMem vs. DRAM.
E os usuários podem ver as APIs RESTful da Memory Machine, bem como configurá-las.
Os instantâneos são uma grande parte do Memory Machine, mas abordaremos isso em nossa seção de desempenho.
Configuração
Em nosso laboratório, aproveitamos a máquina de memória MemVerge em um Supermicro SYS-2029U-TN24R4T com as seguintes especificações:
Modelo de Hardware | Supermicro SYS-2029U-TN24R4T |
CPU | 2x Intel(R) Platinum(R) 8270 CPU @ 2.70GHz, 26 núcleos |
DRAM | DDR4 192GB |
PMem | 12x128GB |
SSD do sistema operacional | SSD SATA de 1 TB |
OS | 8.2.2004 CentOS |
Núcleo | 4.18.0-193.19.1.el8_2.x86_64 |
Desempenho da máquina de memória MemVerge
Nossa bateria normal de testes não faria sentido aqui, pois o MemVerge Memory Machine é voltado para cargas de trabalho e aplicativos que precisam ser executados na memória. Nossos benchmarks são normalmente vistos como cargas de trabalho normais a de alto estresse que seriam vistas na vida real durante as operações de TI. Em vez disso, aqui veremos alguns testes diferentes e veremos especificamente coisas como DRAM versus PMem versus DRAM + PMem e como cada um se comporta. Para esta revisão, usaremos o KDB Performance tanto de inserção em massa quanto de teste de leitura, bem como Redis Quick Recovery com ZeroIO Snapshot e Redis Clone com ZeroIO Snapshot.
Teste de desempenho do KDB
Kx's kdb+ é um banco de dados na memória de séries temporais. É conhecido por sua velocidade e eficiência e, por isso, muito popular na indústria de serviços financeiros. Uma grande restrição para kdb é a limitação da capacidade DRAM. A máquina de memória MemVerge se encaixa perfeitamente aqui para que o kdb possa aproveitar ao máximo o PMem para expandir o espaço de memória com desempenho semelhante ao da DRAM. Para o teste de inserção em massa, analisamos uma única inserção, 10, 100, 1000, 10000, 15000, 20000 e 25000 inserções e medimos em milhões de inserções em massa por segundo.
Com a inserção em massa do KDB, vemos alguns resultados interessantes. Em uma única inserção, todos os três tiveram resultados semelhantes. Em lotes menores, vemos a DRAM como a de melhor desempenho. À medida que os tamanhos dos lotes ultrapassam 10,000, vemos a Memory Machine assumir a liderança sobre a DRAM, com o PMem perdendo para durar cada lote.
Em seguida, examinamos o kdb+ com um teste de leitura. Aqui, a configuração do teste é um pouco diferente. O teste de leitura é o mesmo, mas desta vez analisamos apenas DRAM, apenas PMem e, em seguida, PMem com cache de 20 GB ou 40 GB de DRAM. DRAM só conseguiu atingir 4.2GB/s, PMem atingiu apenas 2.9GB/s, com cache de 20GB de DRAM, Memory Machine conseguiu atingir quase o mesmo da DRAM apenas com 3.9GB/s, e com 40GB de cache vimos o desempenho mais alto de 4.8 GB/s. O que é mais interessante notar é que os dois últimos ainda permitem bastante DRAM para outras tarefas.
Teste de instantâneo do Redis
O Redis é um armazenamento de dados na memória de código aberto usado como banco de dados, cache e agente de mensagens. É muito popular e poderoso, por isso é um programa ideal para benchmark MemVerge Memory Machine. Quando o Redis é executado na máquina de memória MemVerge, a DRAM e o PMem são alocados para o Redis. Em seguida, os instantâneos do MemVerge ZeroIO salvam as páginas de memória do aplicativo sem operações de E/S de armazenamento. Quando o Redis falha, todo o instantâneo de dados para o PMem é persistente. A recuperação de falhas envolve simplesmente apontar para os dados existentes no PMem sem qualquer levantamento e deslocamento de dados do armazenamento.
Nesta seção, testaremos o instantâneo MemVerge ZeroIO para recuperação rápida.
Primeiro, veremos Redis Quick Recovery com ZeroIO Snapshot. Ao contrário dos benchmarks de desempenho, aqui mostraremos funcionalidade e facilidade de uso. Depois que o Redis foi instalado e está executando um banco de dados, fazemos login no Memory Machine e vemos coisas como quanto PMem está sendo usado.
Na guia de aplicativos, podemos ver que um servidor Redis está em execução.
Enquanto ele está em execução, tiramos alguns instantâneos. Obviamente, se os instantâneos não forem obtidos, não será possível restaurar a partir de um instantâneo.
Nunca é demais estar seguro, verifique novamente para garantir que tiramos alguns instantâneos.
Depois de sabermos que os temos, acionamos uma falha do Redis DB. Escolhemos um instantâneo e restauramos, após uma pequena pausa, estamos funcionando novamente.
Redis Clone com Snapshot ZeroIO
Aqui tomamos várias das mesmas etapas acima. Após a captura do instantâneo, podemos restaurá-lo como um clone com um novo namespace e um novo endereço IP. Nós nos conectamos ao clone de outro host e podemos ver que ele ocupa aproximadamente a mesma memória.
Todos os itens acima podem ser feitos com um prompt CLI também para aqueles que preferirem.
Conclusão
MemVerge Memory Machine é um SDS que visa combinar o desempenho da memória com a persistência do PMem. O PMem é normalmente usado como um cache para acelerar o armazenamento. Embora isso seja uma vantagem em muitas instâncias para armazenamento, os aplicativos na memória precisam de desempenho de memória, não de cache. MemVerge virtualiza DRAM e PMem em pools de memória definida por software com serviços definidos por software. A Memory Machine transforma a DRAM em um nível de alta disponibilidade com o uso de instantâneos na memória zeroIO. ZeroIO permite a criação de Thin Clones sem sobrecarregar os recursos de memória.
À medida que avançamos em novas categorias, teremos que adotar novos testes de desempenho e benchmarks. Testar o SDS na memória com nossos benchmarks normais não seria útil, pois não foi feito para isso. Em vez disso, aproveitamos o desempenho do KDB para inserção em massa e teste de leitura, bem como Redis Quick Recovery com ZeroIO Snapshot e Redis Clone com ZeroIO Snapshot. Os testes foram realizados em um servidor Supermicro SYS-2029U-TN24R4T, embora deva funcionar em servidores validados que suportam módulos Intel Optane PMem.
Com KDM em massa, testamos vários tamanhos de lote olhando para DRAM, PMem e uma combinação dos dois por meio da Memory Machine. Como os lotes começaram pequenos, não foi nenhuma surpresa ver a DRAM ter o melhor desempenho. O que foi realmente interessante de ver é que, à medida que o teste sobrecarregava mais os recursos, o MemVerge se saía cada vez melhor. Com a leitura do KDM, vimos tendências semelhantes. A DRAM teve um desempenho muito bom, sem surpresa. O PMem funcionou bem, mas bem abaixo do DRAM. Com apenas 20 GB de cache para DRAM com Memory Machine, ele teve um desempenho de 3.9 GB/s em comparação com os 4.2 GB/s da DRAM sozinha. Oferecer ao MemVerge 40 GB de DRAM para cache obteve o melhor desempenho geral com 4.8 GB/s, deixando ainda bastante DRAM para outras tarefas.
A segunda parte do teste de desempenho foi Redis Quick Recovery com ZeroIO Snapshot e Redis Clone com ZeroIO Snapshot. Aqui havia mais funcionalidade versus desempenho quantificável. Essencialmente, tiramos instantâneos rapidamente, acionamos uma falha e pudemos voltar a funcionar rapidamente.
O PMem da Intel é uma tecnologia extremamente interessante que tem demorado um pouco para ser adotada devido a maneiras limitadas de adotar facilmente e aproveitar adequadamente os módulos. Com o MemVerge, as organizações podem aproveitar o que o PMem tem a oferecer, em uma solução que foi construída especificamente pensando nessa tecnologia. Para aqueles com aplicativos que podem se beneficiar do grande e resiliente espaço de memória que o PMem oferece, definitivamente vale a pena avaliar o MemVerge.
Envolva-se com a StorageReview
Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS feed