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