Расширение Ceph кластера
Расширяем Ceph кластер добавляя новые ресурсы в существующую инфраструктуру.
В этой статье мы добавим дополнительные OSD, а также мониторы для установки кворума Ceph мониторов.
Добавляем OSD
Подготовим и создадим OSD на новом сервере.
Затираем данные на дисках:
1 | ceph-deploy disk zap {osd-server-name}:{disk-name} |
Например:
1 | ceph-deploy disk zap ceph-node-02:sdb ceph-node-02:sdc |
Выполняем подготовку OSD (файловая система XFS):
1 | ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}] |
Например:
1 | ceph-deploy osd prepare ceph-node-02:sdb ceph-node-02:sdc |
Активируем OSD
После успешной подготовки дисков активируем OSD. (Обратите внимание, что необходимо указать разделы диска.)
1 | ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}] |
Например:
1 | ceph-deploy osd activate ceph-node-02:sdb1:/dev/sdb2 ceph-node-02:sdc1:/dev/sdc2 |
После того как мы добавили новую OSD, кластер начнет ребалансировку путем миграции плейсмент групп на новую OSD. Этот процесс можно наблюдать следующей командой:
1 | ceph -w |
Если появилось предупреждение о нехватке плейсмент групп на OSD
1 | health HEALTH_WARN |
При добавлении новых OSD необходимо пересчитать PG и перенастроить пулы.
Всего у нас 6*100/2=300. Округляя вниз до степени 2, примем общее PG = 256.
Помня, что PG выставляется как степень 2, увеличим наш пул до 256.
1 | ceph osd pool set POOL_NAME pg_num 256 |
Проверяем состояние:
1 | [ceph@ceph-node-admin ceph-admin]$ ceph -w |
Добавляем дополнительный Ceph Monitor
Для обеспечения высокой доступности Ceph Storage Cluster работает с несколькими мониторами, на случай выхода из строя одного из мониторов.
Для этого используется алгоритм Paxos, который требует наличие большинства мониторов для формирования кворума, в соотношении 1, 2:3, 3:4, 3:5, 4:6, и так далее.
Добавим дополнительный монитор к нашему кластеру.
1 | ceph-deploy mon add {ceph-node} |
Например:
1 | ceph-deploy mon add ceph-node-01 ceph-node-02 |
После того, как мы добавили новые Ceph мониторы, Ceph начнет синхронизацию мониторов и сформирует кворум. Проверить состояние кворума можно командой:
1 | ceph quorum_status --format json-pretty |
1 | [ceph@ceph-node-admin ceph-admin]$ ceph quorum_status --format json-pretty |
Проверяем статус:
1 | clock skew detected on mon.ceph-node-01,ceph-node-02 |
1 | mon.ceph-node-01 addr 192.168.2.70:6789/0 clock skew 502482s > max 0.15s (latency 0.716532s) |
При получении данной ошибки проверяем работу NTP на серверах.
Обязательно подправим конфиг ceph.conf
:
1 | [global] |