ceph. часть 3

Thank you for reading this post, don't forget to subscribe!

Кли­ен­ты Ceph могут сохра­нять дан­ные в кла­сте­ре Ceph через сле­ду­ю­щие абстракции:

  • Блоч­ное устрой­ство. Ceph Block Device (a.k.a. RBD). Обыч­но исполь­зу­ет­ся для вир­ту­а­ли­за­ции и облач­ных вычис­ле­ний. Гипер­ви­зор предо­став­ля­ет гостю вир­ту­аль­ный жёст­кий диск, кото­рый в реа­ле пред­став­ля­ет собой блоч­ное устрой­ство, лежа­щее в хра­ни­ли­ще ceph. Хосто­вая маши­на вир­ту­а­ли­за­ции исполь­зу­ет librbd, что­бы предо­ста­вить гостю его уда­лён­ный диск.
  • Объ­ект­ное хра­ни­ли­ще. Ceph Object Storage (a.k.a. RGW). Radosgw вме­сте с FastCGI предо­став­ля­ют RESTful HTTP API для сохра­не­ния объ­ек­тов и метаданных.
  • Фай­ло­вая систе­ма. Ceph Filesystem (CephFS) - POSIX сов­ме­сти­мая фай­ло­вая систе­ма для исполь­зо­ва­ния mount или в поль­зо­ва­тель­ском про­стран­стве (FUSE). CephFS тре­бу­ет нали­чия MDS, в кото­ром хра­нят­ся мета­дан­ные: ката­ло­ги, пра­ва досту­па, вла­дель­цы фай­лов и так далее. При­чи­на созда­ния MDS (демон ceph-mds) состо­ит в том, что про­стей­шие фай­ло­вые опе­ра­ции типа листин­га ката­ло­га (ls) или сме­на ката­ло­га (cd) нала­га­ют излиш­ние рас­хо­ды в рабо­те OSD. Раз­де­ле­ние мета­дан­ных от дан­ных обес­пе­чи­ва­ет высо­кую про­из­во­ди­тель­ность кла­сте­ра ceph. Ceph-mds может рабо­тать как один про­цесс или запу­щен на несколь­ких нодах для обес­пе­че­ния или высо­кой доступ­но­сти или масштабируемости: 
    • Высо­кая доступ­ность. Несколь­ко копий ceph-mds нахо­дят­ся в режи­ме ожи­да­ния (standby), гото­вые взять на себя обя­зан­но­сти упав­шей ceph-mds, кото­рая была актив­ной (active).
    • Мас­шта­би­ру­е­мость. Несколь­ко ceph-mds могут быть актив­ны­ми (active), если дере­во дирек­то­рий раз­би­то на поддеревья.

  • Мож­но ком­би­ни­ро­вать standby и active. К при­ме­ру, 3 ceph-mds в active для мас­шта­би­ро­ва­ния и 1 ceph-mds для высо­кой доступности.

MDS нам НЕ нужен, если вы исполь­зу­е­те абстрак­цию RBD. Напри­мер кла­стер Proxmox (KVM+Qemu) юза­ет кла­стер Ceph.

Для исполь­зо­ва­ния CephFS вы може­те под­нять более чем один MDS, но это оста­ёт­ся пока экс­пе­ри­мен­таль­ной осо­бен­но­стью и не реко­мен­ду­ет­ся в производстве.

Добавление MDS.

Пред­по­ло­жим, что у нас появи­лась новая нода ceph5.test.ru, на кото­рой будет запу­щен ceph-mds. Сна­ча­ла вер­ни­тесь к раз­де­лу При­го­тов­ле­ния и про­бе­ги­тесь по всем пунк­там. Ско­пи­ро­ва­ли клю­чи на новую ноду?

Мож­но на неё зай­ти без пароль­ной авторизации?

Из под поль­зо­ва­те­ля ceph коман­ды, тре­бу­ю­щие руто­вых прав, выпол­ня­ют­ся без запро­са пароля?

Пер­вым делом нам нуж­но на новую ноду раз­вер­нуть ceph.

Коман­ду­ем ceph-deploy install --release firefly ceph5
Созда­ние MDS про­сто - ceph-deploy mds create ceph5
Не лиш­ним будет сра­зу под­пра­вить ceph.conf и добавить

 

Теперь оста­лось лишь вызвать для успо­ко­е­ния души

ceph-deploy --overwrite-conf admin ceph5, кото­рый ещё раз раз­бе­рёт­ся с клю­ча­ми и ско­пи­ру­ет новый конф на ceph5.

Если вызвать коман­ду ceph mds stat, то вы долж­ны видеть что-то подобное

 

Вызы­вай­те ceph mds dump и полу­чи­те что-то подобное

Удаление MDS.

На офи­ци­аль­ном сай­те напи­са­но Coming soon… Но отча­и­вать­ся не сто­ит и мож­но про­сто вызвать
ceph-deploy purgedata ceph5
ceph-deploy purge ceph5

Уда­лить упо­ми­на­ние MDS в ceph.conf и рас­ти­ра­жи­ро­вать новый конф сре­ди нод и сде­лать им рестарт. Прав­да здо­ро­вье кла­сте­ра уже не будет ОК и вам напи­шут что-то подоб­ное health HEALTH_WARN mds ceph5 is laggy