Изменение объёма журнала для OSD в Ceph
По умолчанию, если собирать Ceph из коробки, то команда ceph-deploy osd create
создает раздел Ceph Journal
объемом 5G, что на практике, могу заверить, очень мало.
Увеличим это значение.
Задать значение для журнала можно при создании OSD. Например при первоначальной конфигурации или же при добавлении новой OSD.
Для этого достаточно в конфигурационный файл ceph.conf
добавить строчку:
osd_journal_size = 100000
После этого при создании и добавлении OSD журнал будет указанного размера.
# Start End Size Type Name 1 204802048 2000343694 856.2G unknown ceph data 2 2048 204802047 97.7G unknown ceph journal
Изменение размера журнала “на лету” на готовом кластере.
Обязательные условия:
HEALTH_OK
active + clean
ceph osd noout
для остановки балансировки.osd_journal_size = 100000
в ceph.conf
Итак, все действия выполнены - приступаем.
Останавливаем ре-балансировку.
ceph osd set noout
Останавливаем OSD на котором будет производить действия:
systemctl stop ceph-osd@0.service
Немного подождем и очищаем кэш журнала, <osd_id>
- в нашем случае 0:
ceph-osd -i <osd_id> --flush-journal
Переходим в директорию с журналом и удаляем его:
cd /var/lib/ceph/osd/ceph-0/ rm journal
После указанных действий создаем новый журнал, <osd_id>
- в нашем случае 0:
ceph-osd --mkjournal -i <osd id>
Проверим размер нового журнала, он должен соответствовать тому, что мы указали в конфигурационном файле ceph.conf
Запускаем OSD:
systemctl start ceph-osd@0.service
И проверяем используется ли новый журнал.
$ sudo ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config get osd_journal_size { "osd_journal_size": "100000" }
Проверим, что кластер восстановился в состояние HEALTH_OK
и PGs находятся в статусе active+clean
Проделываем аналогичные действия на других OSD.
По завершении работ возвращаем балансировку:
ceph osd unset noout