Experiência na criação de um armazenamento Ceph com capacidade de tebibits por segundo

Um engenheiro da Clyso resumiu a experiência de criar um cluster de armazenamento baseado em um sistema distribuído de alta disponibilidade Ceph, com uma capacidade de mais de um tebibyte por segundo. É notável que este é o primeiro cluster baseado em Ceph a atingir tal desempenho, mas antes de alcançar o resultado apresentado, os engenheiros tiveram que superar uma série de desafios difíceis de identificar.

Por exemplo, para aumentar o desempenho em 10-20%, foi suficiente ativar nos servidores, nas configurações de economia de energia da BIOS, apenas o modo de desempenho máximo e desativar o c-state (o c-state altera as configurações de economia de energia dependendo da carga, o que afeta o Ceph). Também foi descoberto que ao usar unidades NVMe, o núcleo do Linux gastava um tempo considerável processando bloqueios spin durante a atualização do mapeamento IOMMU. Desativar o IOMMU no núcleo resultou em um aumento significativo no desempenho nos testes de leitura e escrita de blocos de 4MB.

No entanto, a desativação do IOMMU não resolveu o problema da queda de desempenho durante gravações aleatórias de blocos de 4KB. Ao investigar a questão, os engenheiros se depararam com correções nos scripts de construção do Ceph dos projetos Gentoo e Ubuntu, que incluíam a construção com a opção RelWithDebInfo, pois com essa opção o GCC aplicava o modo de otimização "-O2", no qual o desempenho do Ceph aumentava consideravelmente. A compilação com a biblioteca TCMalloc também contribuía para a diminuição do desempenho. A alteração das flags de compilação e a interrupção do uso do TCMalloc resultou em uma redução do tempo de compactação em três vezes e um aumento do desempenho em operações de gravação aleatórias de blocos de 4K em duas vezes. No final, também foram otimizadas as configurações do Reef RocksDB e dos grupos de colocação (PG).

O cluster é formado por 68 nós baseados em servidores Dell PowerEdge R6615 com CPU AMD EPYC 9454P 48C/96T. Cada nó contém 10 unidades NVMe Dell de 15,36TB, dois adaptadores Ethernet 100GbE Mellanox ConnectX-6 e 192GB de RAM. O software é baseado no Ubuntu 20.04.6 e Ceph 17.2.7. No cluster, há 630 OSD (Object Storage Daemon, processo em segundo plano que gerencia o armazenamento de dados no armazenamento local, um OSD por unidade NVMe), três processos MON (monitor, que rastreia o estado do cluster) e um processo MGR (Manager, serviço de gerenciamento). O tamanho do armazenamento é de 8,2 PB.

A largura de banda em operações sequenciais de leitura de blocos de 4M foi de 1025 GiB/s, enquanto a escrita foi de 270 GiB/s. Em leitura aleatória de blocos de 4KB, a performance foi de 25,5 milhões de operações de leitura por segundo e 4,9 milhões na escrita. A ativação da criptografia reduziu a largura de banda de leitura para aproximadamente 750 GiB/s. Com a utilização de códigos de correção de erros EC62, a largura de banda foi de 547 GiB/s em leitura e 387 GiB/s em escrita (a velocidade de escrita foi maior do que sem os códigos de correção), e em acesso aleatório foram obtidos 3,4M IOPS em leitura e 936K IOPS em escrita.

Experiência na criação de um armazenamento Ceph com capacidade de tebibits por segundo
Experiência na criação de um armazenamento Ceph com capacidade de tebibits por segundo

Além disso, é importante destacar que em setembro um marco semelhante de largura de banda em tebibytes por segundo foi alcançado no cluster de armazenamento de exabytes do CERN, implementado com o sistema de armazenamento distribuído aberto EOS, baseado no protocolo XRootD.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster