Experimenta la creació d'emmagatzematge Ceph amb un rendiment de tebibyte per segon

Un enginyer de Clyso va resumir l'experiència de crear un clúster d'emmagatzematge basat en un sistema Ceph distribuït tolerant a errors amb un rendiment superior als tebibytes per segon. Cal assenyalar que aquest és el primer clúster basat en Ceph que va poder aconseguir aquest indicador, però abans d'obtenir el resultat presentat, els enginyers van haver de superar una sèrie d'errors no evidents.

Per exemple, per augmentar el rendiment en un 10-20%, n'hi havia prou amb habilitar els servidors de la configuració d'estalvi d'energia de la BIOS per funcionar només en el mode de rendiment màxim i desactivar l'estat c (l'estat c canvia els paràmetres d'estalvi d'energia en funció de la càrrega, que afecta a Ceph). També va resultar que quan s'utilitzen unitats NVMe, el nucli de Linux passa una quantitat significativa de temps processant bloquejos de rotació durant el procés d'actualització del mapeig IOMMU. La desactivació de IOMMU al nucli va provocar un augment notable del rendiment en les proves d'escriptura i lectura de blocs de 4MB.

Al mateix temps, la desactivació de IOMMU no va resoldre el problema de la degradació del rendiment quan s'escrivia aleatòriament blocs de 4 KB de mida. Mentre esbrinaven què estava passant, els enginyers van trobar correccions en els scripts de compilació Ceph dels projectes Gentoo i Ubuntu, que incloïen la construcció amb l'opció RelWithDebInfo, ja que amb ella es va utilitzar el mode d'optimització "-O2" a GCC, que de manera significativa augment del rendiment de Ceph. La compilació amb la biblioteca TCMalloc també va provocar una disminució del rendiment. Canviar els indicadors de compilació i eliminar l'ús de TCMalloc va donar lloc a una reducció triple del temps de compactació i un augment del doble del rendiment de les escriptures de blocs aleatòries de 4K. Finalment, es va optimitzar encara més la configuració de Reef RocksDB i grups de col·locació (PG).

El clúster està format per 68 nodes basats en servidors Dell PowerEdge R6615 amb CPU AMD EPYC 9454P 48C/96T. Cada node conté 10 unitats Dell NVMe de 15.36 TB, dos adaptadors Ethernet Mellanox ConnectX-6 de 100 GbE i 192 GB de RAM. El programari està basat en Ubuntu 20.04.6 i Ceph 17.2.7. El clúster de 63 nodes executa 630 OSD (Object Storage Daemon, un procés en segon pla que gestiona l'emmagatzematge de dades a l'emmagatzematge local, un OSD per unitat NVMe), tres processos MON (monitor, controla l'estat del clúster) i un procés MGR (Manager, un servei de gestió). La mida d'emmagatzematge és de 8.2 PB.

El rendiment per a les operacions de lectura seqüencial de blocs 4M va ser de 1025 GiB/s, escriptura - 270 GiB/s. En llegir blocs de 4 KB de manera aleatòria, el rendiment era de 25.5 milions d'operacions de lectura per segon i 4.9 milions d'operacions d'escriptura. L'habilitació del xifratge va reduir el rendiment de lectura a aproximadament 750 GiB/s. Quan es van activar els codis de correcció d'errors EC62, el rendiment era de 547 GiB/s en llegir i 387 GiB/s en escriure (la velocitat d'escriptura era més alta que sense codis de correcció), i amb accés aleatori 3.4 M IOPS en llegir i 936 K IOPS en escriure .

 Experimenta la creació d'emmagatzematge Ceph amb un rendiment de tebibyte per segon
 Experimenta la creació d'emmagatzematge Ceph amb un rendiment de tebibyte per segon

A més, es pot assenyalar que al setembre es va aconseguir una fita de rendiment similar de tebibytes per segon al clúster d'emmagatzematge d'exabytes CERN, implementat sobre la base de l'emmagatzematge distribuït obert EOS basat en el protocol XRootD.

Font: opennet.ru

Afegeix comentari