ΠžΠΏΡ‹Ρ‚ эксплуатации CEPH

Когда Π΄Π°Π½Π½Ρ‹Ρ… становится большС, Ρ‡Π΅ΠΌ Π²Π»Π΅Π·Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ диск, самоС врСмя Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ RAID. Π’ дСтствС часто ΡΠ»Ρ‹ΡˆΠ°Π» ΠΎΡ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΡ…: Β«ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ RAID ΡƒΠΉΠ΄ΡƒΡ‚ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° заполонят ΠΌΠΈΡ€, Π° Ρ‚Ρ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ знаСшь, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ CEPHΒ»,- поэтому ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π² ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ стало созданиС своСго кластСра. ЦСлью экспСримСнта Π±Ρ‹Π»ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ устройством ceph ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°ΠΌΠΊΠΈ Π΅Π³ΠΎ примСнСния. Насколько ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ceph Π² срСдний бизнСс, Π° Π² ΠΌΠ°Π»Ρ‹ΠΉ? ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ эксплуатации ΠΈ ΠΏΠ°Ρ€Ρ‹ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ тонкостСй, Ρ‡Ρ‚ΠΎ Π½Π΅ всё Ρ‚Π°ΠΊ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ CEPH ΡΠΎΠ·Π΄Π°ΡŽΡ‚ прСпятствия Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ, ΠΈ ΠΈΠ·-Π·Π° Π½ΠΈΡ… экспСримСнты зашли Π² Ρ‚ΡƒΠΏΠΈΠΊ. НиТС приводится описаниС всСх ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… шагов, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ сдСланныС Π²Ρ‹Π²ΠΎΠ΄Ρ‹. Если Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ люди подСлятся ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΈ пояснят Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ β€” Π±ΡƒΠ΄Ρƒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π° ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ошибки Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… допущСниях, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ пСрСсмотра всСй ΡΡ‚Π°Ρ‚ΡŒΠΈ.

БтратСгия CEPH

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ CEPH ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство K дисков ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π½ΠΈΡ…, дублируя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ кусочСк (4 ΠœΠ‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число N Ρ€Π°Π·.

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ случай с двумя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ дисками. Из Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ RAID 1, Π»ΠΈΠ±ΠΎ кластСр с N=2 β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ получится ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅. Если дисков Ρ‚Ρ€ΠΈ, ΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ кластСр с N=2 Π»Π΅Π³ΠΊΠΎ: Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π½Π° дисках 1 ΠΈ 2, Ρ‡Π°ΡΡ‚ΡŒ β€” Π½Π° 1 ΠΈ 3, Π° Ρ‡Π°ΡΡ‚ΡŒ β€” Π½Π° 2 ΠΈ 3, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ RAID β€” Π½Π΅Ρ‚ (ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ RAID, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ). Если дисков Π΅Ρ‰Ρ‘ большС, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ созданиС RAID 5, Ρƒ CEPH Π΅ΡΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ β€” erasure_code, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Ρ€Π°Π½Π½ΠΈΠΌ концСпциям Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ поэтому Π½Π΅ рассматриваСтся. RAID 5 ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ имССтся нСбольшоС количСство дисков, ΠΈ всС ΠΎΠ½ΠΈ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ состоянии. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° Π½Π΅ замСнят диск ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ восстановлСны Π½Π° Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. CEPH ΠΆΠ΅, ΠΏΡ€ΠΈ N>=3, поощряСт использованиС старых дисков, Π² частности, Ссли Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… дисков для хранСния ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π΄Π²Π΅-Ρ‚Ρ€ΠΈ ΠΊΠΎΠΏΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° большом количСствС старых дисков, Ρ‚ΠΎ информация Π±ΡƒΠ΄Π΅Ρ‚ Π² сохранности, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ° ΠΆΠΈΠ²Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ диски β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ‚, Π° Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… сломаСтся, Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Π· Ρ‚Ρ€Ρ‘Ρ… дисков со сроком слуТбы Π±ΠΎΠ»Π΅Π΅ пяти Π»Π΅Ρ‚, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСров β€” событиС ΠΊΡ€Π°ΠΉΠ½Π΅ маловСроятноС.

Π’ распрСдСлСнии ΠΊΠΎΠΏΠΈΠΉ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΠΎΡΡ‚ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ подразумСваСтся, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ дСлятся Π½Π° большС количСство (~ΠΏΠΎ 100 Π½Π° диск) Π³Ρ€ΡƒΠΏΠΏ распрСдСлСния PG, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дублируСтся Π½Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ дисках. Допустим, K=6, N=2, Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· строя Π΄Π²ΡƒΡ… Π»ΡŽΠ±Ρ‹Ρ… дисков, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ вСроятности, найдётся хотя Π±Ρ‹ ΠΎΠ΄Π½Π° PG, которая располоТится ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° этих Π΄Π²ΡƒΡ… дисках. А потСря ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄Π΅Π»Π°Π΅Ρ‚ нСдоступными всС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡƒΠ»Π΅. Если ΠΆΠ΅ диски Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Ρ‹ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° дисках Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСниС Ρ‚Π°ΠΊΠΆΠ΅ устойчиво ΠΊ ΠΎΡ‚ΠΊΠ°Π·Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ любого диска, Π·Π°Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ Π΄Π²ΡƒΡ… Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ 100%, Π° всСго 3/15, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ Ρ‚Ρ€Ρ‘Ρ… дисков β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 12/20. ΠžΡ‚ΡΡŽΠ΄Π°, энтропия Π² распрСдСлСнии Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ способствуСт отказоустойчивости. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра свободная опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. Π§Π΅ΠΌ большС памяти Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅, ΠΈ Ρ‡Π΅ΠΌ большС памяти Π²ΠΎ всСх ΡƒΠ·Π»Π°Ρ… β€” Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ быстрСС. Π­Ρ‚ΠΎ нСсомнСнно прСимущСство кластСра ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌ сСрвСром ΠΈ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ NAS-ΠΎΠΌ, ΠΊΡƒΠ΄Π° Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ памяти.

ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт, Ρ‡Ρ‚ΠΎ CEPH β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ влоТСниями ΠΈΠ· ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ оборудования ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½ΡƒΡŽ систСму хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дСсятки Π’Π‘ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (Ρ‚ΡƒΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹, Π½ΠΎ нСбольшиС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с коммСрчСскими Π‘Π₯Π”).

РСализация кластСра

Для экспСримСнта Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ списанный ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Intel DQ57TM + Intel core i3 540 + 16 Π“Π‘ ΠžΠ—Π£. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ диска ΠΏΠΎ 2 Π’Π‘ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ RAID10, послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ испытания Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΈ Π΅Ρ‰Ρ‘ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ дисков.

УстанавливаСм Linux. ΠžΡ‚ дистрибутива трСбуСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ кастомизации ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Под трСбования подходят Debian ΠΈ Suse. Π£ Suse Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ установщик, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ любой ΠΏΠ°ΠΊΠ΅Ρ‚; ΠΊ соТалСнию, я Π½Π΅ смог ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΊΠΈΠ½ΡƒΡ‚ΡŒ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для систСмы. Π‘Ρ‚Π°Π²ΠΈΠΌ Debian Ρ‡Π΅Ρ€Π΅Π· debootstrap buster. ΠžΠΏΡ†ΠΈΡ min-base устанавливаСт Π½Π΅Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ систСму, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсиСй Π½Π΅ Ρ‚Π°ΠΊ Π²Π΅Π»ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Π° вСдётся Π½Π° физичСской машинС, хочСтся Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹, ΠΊΠ°ΠΊ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°Ρ…. Π’Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдоставляСт Π»ΠΈΠ±ΠΎ LVM, Π»ΠΈΠ±ΠΎ btrfs (ΠΈΠ»ΠΈ xfs, ΠΈΠ»ΠΈ zfs β€” Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π΅ Π²Π΅Π»ΠΈΠΊΠ°). Π£ LVM ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ β€” Π½Π΅ сильная сторона. Π‘Ρ‚Π°Π²ΠΈΠΌ btrfs. И Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ β€” Π² MBR. НСт смысла Π·Π°ΡΠΎΡ€ΡΡ‚ΡŒ диск 50 ΠœΠ‘ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ с FAT, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² 1 ΠœΠ‘ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ всё пространство Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ систСму. Заняло Π½Π° дискС 700 ΠœΠ‘. Бколько Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠΉ установки SUSE β€” Π½Π΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ», каТСтся, ΠΎΠΊΠΎΠ»ΠΎ 1.1 ΠΈΠ»ΠΈ 1.4 Π“Π‘.

УстанавливаСм CEPH. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ 12 Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ debian ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ прямо с сайта 15.2.3. Π‘Π»Π΅Π΄ΡƒΠ΅ΠΌ инструкции ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° «устанавливаСм CEPH Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ» со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ:

  • ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ рСпозитория Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ gnupg wget ca-certificates
  • ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ рСпозитория, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ установкой кластСра ΠΎΠΏΡƒΡ‰Π΅Π½Π° установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²: apt -y —no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr
  • Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ установки CEPH ΠΏΠΎ нСпонятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ lvm2. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½Π΅ ΠΆΠ°Π»ΠΊΠΎ, Π½ΠΎ установка Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ сбоСм, поэтому CEPH Ρ‚ΠΎΠΆΠ΅ Π½Π΅ установится.

    Помог этот ΠΏΠ°Ρ‚Ρ‡:

    cat << EOF >> /var/lib/dpkg/status
    Package: lvm2
    Status: install ok installed
    Priority: important
    Section: admin
    Installed-Size: 0
    Maintainer: Debian Adduser Developers <[email protected]>
    Architecture: all
    Multi-Arch: foreign
    Version: 113.118
    Description: No-install
    EOF
    

ΠžΠ±Π·ΠΎΡ€ кластСра

ceph-osd β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дискС. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ диска запускаСтся сСтСвая слуТба, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈ исполняСт запросы Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. На дискС создаётся Π΄Π²Π° Ρ€Π°Π·Π΄Π΅Π»Π°. Один ΠΈΠ· Π½ΠΈΡ… содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ кластСрС, Π½ΠΎΠΌΠ΅Ρ€Π΅ диска, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΎΡ‚ кластСра. Π­Ρ‚Π° информация ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ 1ΠšΠ‘ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· создаётся ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ диска ΠΈ большС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ мСнялась. На Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ хранятся Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ CEPH. АвтоматичСская установка Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях создавала xfs Ρ€Π°Π·Π΄Π΅Π» Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 100ΠœΠ‘ для слуТСбной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π― сконвСртировал диск Π² MBR ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΠ» всСго Π½Π° 16ΠœΠ‘ β€” слуТба Π½Π΅ ТалуСтся. Π”ΡƒΠΌΠ°ΡŽ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ xfs ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ Π½Π° ext. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» монтируСтся Π² /var/lib/…, Π³Π΄Π΅ слуТба считываСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± OSD, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ссылку Π½Π° Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство, Π³Π΄Π΅ хранятся Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ВСорСтичСски, ΠΌΠΎΠΆΠ½ΠΎ сразу Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² /var/lib/…, Π° диск Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΈ создании OSD Ρ‡Π΅Ρ€Π΅Π· ceph-deploy автоматичСски создаётся ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для монтирования Ρ€Π°Π·Π΄Π΅Π»Π° Π² /var/lib/…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ceph Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства. ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ установкС это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ самому, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ± этом Π½Π΅ сказано. Π’Π°ΠΊΠΆΠ΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ osd memory target, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ физичСской памяти.

ceph-mds. На Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ CEPH β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния сводится ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° 4ΠœΠ‘ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. По Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅. Боздаётся Π΄Π²Π° ΠΏΡƒΠ»Π°: ΠΎΠ΄ΠΈΠ½ для ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” для Π΄Π°Π½Π½Ρ‹Ρ…. Они ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ создаётся какая-Ρ‚ΠΎ запись, поэтому Ссли ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΠΏΡƒΠ»Π°, Ρ‚ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π΅ получится. Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ, Π½Π΅ тСстировал. Π—Π° доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ слуТба ceph-mds. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ экзСмпляр слуТбы. Π•ΡΡ‚ΡŒ опция «индСкс», которая позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Π² ΠΎΠ΄Π½ΠΎΠΉ β€” Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ.

сeph-mon β€” эта слуТба Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ кластСра. Π’ Π½Π΅Ρ‘ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ информация ΠΎΠ±ΠΎ всСх OSD, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ распрСдСлСния PG Π² OSD ΠΈ, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, информация ΠΎΠ±ΠΎ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… (Π΄Π΅Ρ‚Π°Π»ΠΈ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΌΠ½Π΅ нСпонятны: Π΅ΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /var/lib/ceph/mon/…/store.db, Π² Π½Ρ‘ΠΌ Π»Π΅ΠΆΠΈΡ‚ большой Ρ„Π°ΠΉΠ» β€” 26ΠœΠ‘, Π° Π² кластСрС 105К ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², получаСтся Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 256 Π±Π°ΠΉΡ‚ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚,- я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ Ρ…Ρ€Π°Π½ΠΈΡ‚ список всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ PG, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ‚). ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ всСх Π΄Π°Π½Π½Ρ‹Ρ… Π² кластСрС. ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ сдСлан Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ CRUSH ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ PG располоТСны ΠΏΠΎ OSD, Π° ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ располоТСны ΠΏΠΎ PG β€” Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ хранятся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Π±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΈΠ·Π±Π΅Π³Π°Π»ΠΈ этого слова. Как слСдствиС, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСму Π½Π° Ρ„Π»Π΅ΡˆΠΊΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ RO, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… вСдётся постоянная запись, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ диск ΠΏΠΎΠ΄ эти (вряд Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ 1 Π“Π‘), Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ копию этой Π±Π°Π·Ρ‹. Если ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² нСсколько, Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ обСспСчиваСтся автоматичСски, Π½ΠΎ Π² нашСм случаС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΎΠ΄ΠΈΠ½, максимум β€” Π΄Π²Π°. Π•ΡΡ‚ΡŒ тСорСтичСская ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° восстановлСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… OSD, Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π» ΠΊ Π½Π΅ΠΉ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, ΠΈ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΊΠ°ΠΊ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠΆΠ΅. К соТалСнию, этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π›ΠΈΠ±ΠΎ ΠΌΡ‹ эксплуатируСм ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» Π½Π° OSD ΠΈ собираСм RAID для хранСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ навСрняка ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ скаТСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π»ΠΈΠ±ΠΎ выдСляСм хотя Π±Ρ‹ Π΄Π²Π° Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… физичСских носитСля, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, USB, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ€Ρ‚Ρ‹ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ.

rados-gw β€” экспортируСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ S3 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅. Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ мноТСство ΠΏΡƒΠ»ΠΎΠ², нСпонятно Π·Π°Ρ‡Π΅ΠΌ. Особо Π½Π΅ экспСримСнтировал.

ceph-mgr β€” ΠΏΡ€ΠΈ установкС этой слуТбы Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Один ΠΈΠ· Π½ΠΈΡ… β€” Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ autoscale. Он стрСмится ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ количСство PG/OSD. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°, Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 0, ΠΈ статус кластСра становится ERROR. ΠœΠΎΠ΄ΡƒΠ»ΡŒ написан Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅, ΠΈ Ссли Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Ρ‘ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ строчку, это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ. Π”Π΅Ρ‚Π°Π»ΠΈ лСнь Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников:

Установка CEPH
ВосстановлСниС ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°

Листинги скриптов:

Установка систСмы Ρ‡Π΅Ρ€Π΅Π· debootstrap

blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/

chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat << EOF > /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat << EOF >> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install

Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF

exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh  smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ кластСра

apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon

echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat << EOF > /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF

ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
ceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status

# dashboard

apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ OSD (Ρ‡Π°ΡΡ‚ΡŒ)

apt install ceph-osd

osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02  block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnum

РСзюмС

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²ΠΎΠ΅ прСимущСство CEPH β€” это CRUSH β€” Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вычислСния располоТСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, послС Ρ‡Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ OSD. CRUSH обСспСчиваСт отсутствиС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Он прСдставляСт собой малСнький Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…ΠΎΡ‚ΡŒ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ Π½Π° стСну. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ CRUSH Π½Π΅ являСтся ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ. Если ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹, сохранив всС OSD ΠΈ CRUSH, Ρ‚ΠΎ этого нСдостаточно для восстановлСния кластСра. ΠžΡ‚ΡΡŽΠ΄Π° сдСлан Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ хранятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΠΎ всём кластСрС. ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ этих ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ кластСра, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ экономию диска Π·Π° счёт установки систСмы Π½Π° Ρ„Π»Π΅ΡˆΠΊΡƒ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ кластСры с ΠΌΠ΅Π½Π΅Π΅, Ρ‡Π΅ΠΌ трСмя ΡƒΠ·Π»Π°ΠΌΠΈ. АгрСссивная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΈΡ‡. Π”Π°Π»Π΅ΠΊΠΎ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠ°. ДокумСнтация Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅: Β«Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, β€” ΡƒΠΆΠ΅ спасибо, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ скудно». Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ взаимодСйствия со слуТбами Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ прСдусмотрСна, Π½ΠΎ докумСнтация слишком повСрхностно касаСтся этой Ρ‚Π΅ΠΌΡ‹, поэтому скорСС Π½Π΅Ρ‚, Ρ‡Π΅ΠΌ Π΄Π°. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡˆΠ°Π½ΡΡ‹ Π½Π° восстановлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ ситуации.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… дСйствий: ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ CEPH ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ-дисковым btrfs (ΠΈΠ»ΠΈ xfs, zfs), ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ CEPH, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… условиях, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com