понеділок, 12 травня 2014 р.

Ceph. Часть 3

Необходимость в MDS. Добавление и удаление MDS. Как удалить MDS?

Необходимость в MDS.

Основная статья ARCHITECTURE.
Основная статья MDS CONFIG REFERENCE.
Основная статья ADD/REMOVE METADATA SERVER.
Основная статья CephFS MDS Status Discussion.

Вы заметили, что мы уже подняли рабочий кластер на трёх нодах, а до сих пор на сцене не появлялся MDS?! Дело вот в чём. Клиенты 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.intra.net, на которой будет запущен ceph-mds. Сначала вернитесь к разделу Приготовления и пробежитесь по всем пунктам. Скопировали ключи на новую ноду? Можно на неё зайти без парольной авторизации? Из под пользователя ceph команды, требующие рутовых прав, выполняются без запроса пароля?

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

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

 
[mds.a]
     host = ceph5

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

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

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

e25: 1/1/1 up {0=ceph5=up:active}

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

dumped mdsmap epoch 25
epoch 25
flags 0
created 2014-05-11 09:54:06.414432
modified 2014-05-12 12:39:17.592236
tableserver 0
root 0
session_timeout 60
session_autoclose 300
max_file_size 1099511627776
last_failure 22
last_failure_osd_epoch 85
compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,
4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap}
max_mds 1
in 0
up {0=5402}
failed 
stopped 
data_pools 0
metadata_pool 1
inline_data disabled
5402: 192.168.200.249:6800/2205 'ceph5' mds.0.5 up:active seq 6


Удаление MDS.

На официальном сайте написано Coming soon... Но отчаиваться не стоит и можно просто вызвать

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

Назад к оглавлению.
Вперёд к следующей статье.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments