Использование флагов при обслуживании кластера
-
Перед началом работ:
-
Установите флаг
noout:$ ceph osd set noout -
Установите флаг
norebalance:$ ceph osd set norebalance -
Установите флаг
norecover:$ ceph osd set norecover
-
-
Добавьте новые OSD.
-
После добавления всех OSD:
-
Снимите флаг
norecover:$ ceph osd unset norecover -
Снимите флаг
norebalance:$ ceph osd unset norebalance -
Снимите флаг
noout:$ ceph osd unset noout
-
-
Контролируйте начало ребалансировки:
$ ceph -sОтслеживать процесс ребалансировки или восстановления в реальном времени можно с помощью команды:
$ ceph progress
-
Установите защитные флаги:
-
Установите флаг
noout:$ ceph osd set noout -
Установите флаг
norebalance:$ ceph osd set norebalance -
Установите флаг
nodeep-scrub:$ ceph osd set nodeep-scrub -
Установите флаг
noscrub:$ ceph osd set noscrub
-
-
Для всех OSD обновляемого узла задайте вес
0:-
Узнайте, какие OSD находятся на целевом узле. Для этого выведите структуру OSD:
$ ceph osd tree -
Для всех OSD целевого узла задайте вес
0:$ ceph osd crush reweight osd.<OSD_ID> 0Пример, если узел, на котором нужно обновить ПО, содержит
osd.10,osd.11иosd.12:$ ceph osd crush reweight osd.10 0$ ceph osd crush reweight osd.11 0$ ceph osd crush reweight osd.12 0
-
-
Дождитесь завершения миграции данных с этих OSD. Периодически проверяйте статус до тех пор, пока активные операции не завершатся:
$ watch ceph -s -
Остановите все OSD на обновляемом узле:
# systemctl stop ceph-osd@<OSD_ID>Пример, если узел, на котором нужно обновить ПО, содержит
osd.10,osd.11иosd.12:# systemctl stop ceph-osd@10# systemctl stop ceph-osd@11# systemctl stop ceph-osd@12 -
Выполните обновление ПО на узле.
-
По завершении обновления верните исходные веса OSD:
$ ceph osd crush reweight osd.<OSD_ID> <ИСХОДНЫЙ_ВЕС>Пример, если исходные значения весов для
osd.10,osd.11иosd.12были равны1.0:$ ceph osd crush reweight osd.10 1.0$ ceph osd crush reweight osd.11 1.0$ ceph osd crush reweight osd.12 1.0 -
Запустите OSD:
# systemctl start ceph-osd@<OSD_ID>Пример:
# systemctl start ceph-osd@osd.10# systemctl start ceph-osd@osd.11# systemctl start ceph-osd@osd.12 -
Перейдите к следующему узлу и повторите шаги 2-7.
-
После обновления всех узлов:
-
Снимите флаг
noscrub:$ ceph osd unset noscrub -
Снимите флаг
nodeep-scrub:$ ceph osd unset nodeep-scrub -
Снимите флаг
norebalance:$ ceph osd unset norebalance -
Снимите флаг
noout:$ ceph osd unset noout
-
-
Установите флаг:
$ ceph osd set noout -
Пометьте OSD как
out:$ ceph osd out osd.<OSD_ID> -
Удалите OSD из кластера:
$ ceph osd purge osd.<OSD_ID> --yes-i-really-mean-it -
Замените физический диск в сервере.
-
Добавьте новый OSD:
$ ceph orch daemon add osd <УЗЕЛ>:<ДИСК>Здесь:
<УЗЕЛ>— имя узла.<ДИСК>— путь к диску.
-
Снимите флаги:
$ ceph osd unset noout
-
Установите защитные флаги:
-
Установите флаг
noout:$ ceph osd set noout -
Установите флаг
nodown:$ ceph osd set nodown -
Установите флаг
pause:$ ceph osd set pause -
Установите флаг
noscrub:$ ceph osd set noscrub -
Установите флаг
nodeep-scrub:$ ceph osd set nodeep-scrub
-
-
Выполните сетевые работы.
-
После восстановления сети:
-
Снимите флаг
nodeep-scrub:$ ceph osd unset nodeep-scrub -
Снимите флаг
noscrub:$ ceph osd unset noscrub -
Снимите флаг
pause:$ ceph osd unset pause -
Снимите флаг
nodown:$ ceph osd unset nodown -
Снимите флаг
noout:$ ceph osd unset noout
-