ΠžΠΏΡ‹Ρ‚ создания Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ceph c пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅Π±ΠΈΠ±Π°ΠΉΡ‚ Π² сСкунду

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Clyso ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠ» ΠΎΠΏΡ‹Ρ‚ создания кластСра хранСния Π½Π° Π±Π°Π·Π΅ отказоустойчивой распрСдСлённой систСмы Ceph с пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Ρ‚Π΅Π±ΠΈΠ±Π°ΠΉΡ‚ Π² сСкунду. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кластСр Π½Π° Π±Π°Π·Π΅ Ceph, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смог Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ показатСля, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ прСдставлСнного Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ.

НапримСр, для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° 10-20% Π±Ρ‹Π»ΠΎ достаточно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° сСрвСрах Π² настройках энСргосбСрСТСния BIOS Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ c-state (c-state мСняСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ энСргосбСрСТСния Π² зависимости ΠΎΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ρ‡Ρ‚ΠΎ отраТаСтся Π½Π° Ceph). Π’Π°ΠΊΠΆΠ΅ оказалось, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ NVMe ядро Linux Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ spin-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² процСссС обновлСния ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° IOMMU. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IOMMU Π² ядрС ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΌΡƒ росту ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² тСстах записи ΠΈ чтСния Π±Π»ΠΎΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4MB.

ΠŸΡ€ΠΈ этом ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IOMMU Π½Π΅ Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с просСданиСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ случайной записи Π±Π»ΠΎΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4KB. Π Π°Π·Π±ΠΈΡ€Π°ΡΡΡŒ Π² Ρ‡Ρ‘ΠΌ Π΄Π΅Π»ΠΎ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π½Π°Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π½Π° исправлСния Π² сборочных сцСнариях Ceph ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Gentoo ΠΈ Ubuntu, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ сборку с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ RelWithDebInfo, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с Π½Π΅ΠΉ Π² GCC примСнялся Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ «-O2», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ возрастала ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ceph. К сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° компиляция с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ TCMalloc. ИзмСнСниС Ρ„Π»Π°Π³ΠΎΠ² компиляции ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ использования TCMalloc ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ сниТСнию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ (compaction) Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ случайных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи Π±Π»ΠΎΠΊΠ°ΠΌΠΈ 4K Π² Π΄Π²Π° Ρ€Π°Π·Π°. Π’ Ρ„ΠΈΠ½Π°Π»Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° оптимизация настроСк Reef RocksDB ΠΈ Π³Ρ€ΡƒΠΏΠΏ размСщСния (PG).

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ сформирован ΠΈΠ· 68 ΡƒΠ·Π»ΠΎΠ² Π½Π° Π±Π°Π·Π΅ сСрвСров Dell PowerEdge R6615 с CPU AMD EPYC 9454P 48C/96T. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТит 10 NVMe-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ Dell 15.36TB, Π΄Π²Π° Ethernet-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° 100GbE Mellanox ConnectX-6 ΠΈ 192 Π“Π‘ ΠžΠ—Π£. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС основано Π½Π° Ubuntu 20.04.6 ΠΈ Ceph 17.2.7. Π’ кластСрС Π½Π° 63 ΡƒΠ·Π»Π°Ρ… поднято 630 OSD (Оbject Storage Daemon, Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ OSD Π½Π° NVMe-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ), Ρ‚Ρ€ΠΈ процСсса MON (monitor, отслСТиваСт состояниС кластСра) ΠΈ ΠΎΠ΄ΠΈΠ½ процСсс MGR (Manager, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ сСрвис). Π Π°Π·ΠΌΠ΅Ρ€ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° 8.2 ΠŸΠ‘.

ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… опСрациях чтСния Π±Π»ΠΎΠΊΠΎΠ² 4М составила 1025 GiB/s, записи — 270 GiB/s. ΠŸΡ€ΠΈ случайном Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² 4KB ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ составила 25.5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния Π² сСкунду ΠΈ 4.9 ΠΌΠ»Π½ ΠΏΡ€ΠΈ записи. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄ΠΎ 750 GiB/s. ΠŸΡ€ΠΈ задСйствовании ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ошибок EC62 пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ составила 547 GiB/s ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ 387 GiB/s ΠΏΡ€ΠΈ записи (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ записи оказалась Π²Ρ‹ΡˆΠ΅ Ρ‡Π΅ΠΌ Π±Π΅Π· ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ), Π° ΠΏΡ€ΠΈ случайном доступС 3.4M IOPS ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ 936K IOPS ΠΏΡ€ΠΈ записи.

ΠžΠΏΡ‹Ρ‚ создания Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ceph c пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅Π±ΠΈΠ±Π°ΠΉΡ‚ Π² сСкунду
ΠžΠΏΡ‹Ρ‚ создания Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ceph c пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅Π±ΠΈΠ±Π°ΠΉΡ‚ Π² сСкунду

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² сСнтябрС ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Ρ€ΡƒΠ±Π΅ΠΆ пропускной способности Π² Ρ‚Π΅Π±ΠΈΠ±Π°ΠΉΡ‚ Π² сСкунду Π±Ρ‹Π» достигнут Π² эксабайтном кластСрС хранСния CERN, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° Π±Π°Π·Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ распрСдСлённого Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° EOS, построСнного Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° XRootD.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru