Cephadm で構築した Ceph クラスタのホストをメンテナンスする手順です。
今回は 3 台構成 (ceph1/ceph2/ceph3)の Ceph クラスタのうち、ceph1 をメンテナンス対象としています。
バージョン
本記事で利用している Ceph のバージョンです。
$ ceph version
ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)
事前確認
はじめに、メンテナンス対象ホストを停止してもクラスタに影響が出ないかチェックします。
ceph orch host ok-to-stop
コマンドを使うことでチェックしてくれます。
$ ceph orch host ok-to-stop ceph1
ALERT: Cannot stop active Mgr daemon, Please switch active Mgrs with 'ceph mgr fail ceph1.eqphaf'
今回はアラートが出力されてしまいました。 ceph1 の MGR がアクティブ状態となっているためホストの停止ができないようです。
次のコマンドでスタンバイ状態の MGR へフェイルオーバーします。
$ ceph mgr fail ceph1.eqphaf
フェイルオーバーが成功したか Ceph クラスタの状態を確認します。
ceph -s
cluster:
id: dc32e976-d0ea-11ec-bac3-dca6329a21a7
health: HEALTH_ERR
(snip)
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 4m)
mgr: ceph3.mlmhqd(active, since 9s), standbys: ceph1.eqphaf, ceph2.rlgifo
osd: 6 osds: 5 up (since 68m), 5 in (since 12h)
今回は ceph1 の OSD が落ちている状態なのでエラーが出ていますが無視してください。
見るべきは services の mgr: ceph3.mlmhqd(active, since 9s), standbys: ceph1.eqphaf, ceph2.rlgifo
です。
ceph1 の MGR がスタンバイになっています。
代わりに ceph3 の MGR がアクティブになりました。
再度、ホスト停止してよいか確認します。
$ ceph orch host ok-to-stop ceph1
It is presumed safe to stop host ceph1. Note the following:
It appears safe to stop mon.ceph1
It is presumed safe to stop ['mgr.ceph1.eqphaf']
It appears safe to stop crash.ceph1
osd.2,osd.3 are safe to restart
今度は ceph1 を停止しても影響ないよというメッセージが返ってきました。
MON, MGR, CRASH, OSD の各デーモンをチェックしてくれています。 ラズパイ Ceph では RGW など他のサービスは起動していないため、そちらもチェックしてくれるかの確認はできませんでした。
メンテナンス開始
事前確認が通ったので ceph1 をメンテナンスモードにします。
ceph orch host maintenance enter HOSTNAME
コマンドで対象ホストの各デーモンが停止します。
$ ceph orch host maintenance enter ceph1
Daemons for Ceph cluster dc32e976-d0ea-11ec-bac3-dca6329a21a7 stopped on host ceph1. Host ceph1 moved to maintenance mode
メンテナンスモードにした状態のクラスタを確認します。
$ ceph -s
cluster:
id: dc32e976-d0ea-11ec-bac3-dca6329a21a7
health: HEALTH_ERR
1 failed cephadm daemon(s)
1 host is in maintenance mode
1/3 mons down, quorum ceph2,ceph3
2/1359 objects unfound (0.147%)
1 osds down
1 OSDs or CRUSH {nodes, device-classes} have {NOUP,NODOWN,NOIN,NOOUT} flags set
1 host (2 osds) down
3 scrub errors
Possible data damage: 2 pgs recovery_unfound, 1 pg inconsistent
Degraded data redundancy: 1363/4077 objects degraded (33.431%), 33 pgs degraded, 33 pgs undersized
10 daemons have recently crashed
services:
mon: 3 daemons, quorum ceph2,ceph3 (age 11m), out of quorum: ceph1
mgr: ceph3.mlmhqd(active, since 20m), standbys: ceph2.rlgifo
osd: 6 osds: 4 up (since 11m), 5 in (since 13h)
1 host is in maintenance mode
となっています。
サービスから ceph1 の MGR が消えていたり、MON のクォーラムが 2 つになっていたりしています。
ホスト一覧上でも ceph1 がメンテナンス状態となっていることを確認できます。
$ ceph orch host ls
HOST ADDR LABELS STATUS
ceph1 192.168.2.11 _admin Maintenance
ceph2 192.168.2.12 _admin
ceph3 192.168.2.13 _admin
メンテナンス終了
メンテナンスモードから抜けるには ceph orch host maintenance exit HOSTNAME
コマンドを使います。
$ ceph orch host maintenance exit ceph1
Ceph cluster dc32e976-d0ea-11ec-bac3-dca6329a21a7 on ceph1 has exited maintenance mode
メンテナンスモードを抜けると、停止していた各デーモンも起動してきます。
参考ドキュメント
Host Maintenance — Ceph Documentation
3.7. Ceph Orchestrator を使用したホストのメンテナンスモード Red Hat Ceph Storage 5 | Red Hat Customer Portal