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