Ceph OSD が落ちるなどして PG (Placement Group) でエラーが出た場合の修復手順です。
我が家のラズパイ Ceph は頻繁に OSD が落ちます。 そのせいで PG のエラーも多発しており、都度対応しています。 PG のエラー状況に応じた修復手順をこの記事に掲載していきます。
免責 本記事では個人利用の Ceph クラスタに対して実施した手順を掲載しています。
PG の修復はデータ損失を伴う可能性があります。
掲載内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。 (大事なことなので)
バージョン 本記事で利用している Ceph のバージョンです。
$ ceph version ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable) 状況確認 OSD が落ちた Ceph クラスタの状況を確認します。
ceph health detail コマンドで Ceph クラスタの状況を確認すると、PG_DAMAGED や PG_DEGRADED といったアラートが上がっていて、PG に active+clean+inconsistent などがマークされています。
$ ceph health detail (snip) [WRN] OBJECT_UNFOUND: 4/1615 objects unfound (0.248%) pg 2.1f has 1 unfound objects pg 2.3 has 1 unfound objects pg 2.7 has 1 unfound objects pg 2.e has 1 unfound objects [ERR] OSD_SCRUB_ERRORS: 6 scrub errors [ERR] PG_DAMAGED: Possible data damage: 4 pgs recovery_unfound, 4 pgs inconsistent pg 2.3 is active+recovery_unfound+degraded, acting [7,5,0], 1 unfound pg 2.7 is active+recovery_unfound+degraded, acting [1,0,6], 1 unfound pg 2.9 is active+clean+inconsistent, acting [7,1,0] pg 2.d is active+clean+inconsistent, acting [0,1,7] pg 2.e is active+recovery_unfound+degraded, acting [6,5,4], 1 unfound pg 2.15 is active+clean+inconsistent, acting [4,6,5] pg 2.1b is active+clean+inconsistent, acting [0,1,7] pg 2.1f is active+recovery_unfound+degraded, acting [6,4,1], 1 unfound [WRN] PG_DEGRADED: Degraded data redundancy: 12/4845 objects degraded (0.248%), 4 pgs degraded pg 2.3 is active+recovery_unfound+degraded, acting [7,5,0], 1 unfound pg 2.7 is active+recovery_unfound+degraded, acting [1,0,6], 1 unfound pg 2.e is active+recovery_unfound+degraded, acting [6,5,4], 1 unfound pg 2.1f is active+recovery_unfound+degraded, acting [6,4,1], 1 unfound PG の状態に応じて対処していきます。
...