5.3. OSD ドライブの交換
Ceph は耐障害性を確保できるように設計されているため、データを損失せずに動作が degraded
の状態になっています。そのため、データストレージドライブに障害が発生しても、Ceph は動作します。障害が発生したドライブのコンテキストでは、パフォーマンスが degraded
した状態は、他の OSD に保存されているデータの追加コピーが、クラスター内の他の OSD に自動的にバックフィルされることを意味します。ただし、このような場合は、障害の発生した OSD ドライブを交換し、手動で OSD を再作成します。
ドライブに障害が発生すると、Ceph は OSD を down
として報告します。
HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
HEALTH_WARN 1/3 in osds are down
osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
Ceph は、ネットワークやパーミッションの問題により OSD を down
とマークすることもできます。詳細は、Down OSD を参照してください。
最近のサーバーは、ホットスワップ対応のドライブを搭載しているのが一般的であり、ノードをダウンさせることなく、障害が発生したドライブを抜き取り、新しいドライブと交換することができます。手順全体には、以下のステップが含まれます。
- Ceph クラスターから OSD を取り除きます。詳細は、Ceph クラスターからの OSD の削除の手順を参照してください。
- ドライブを交換します。詳細は、物理ドライブの置き換え セクションを参照してください。
- OSD をクラスターに追加します。詳細は、OSD の Ceph クラスターへの追加の手順を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
-
少なくとも 1 つの OSD が
down
になっています。
Ceph クラスターからの OSD の削除
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow down
になっている OSD を特定します。例
[ceph: root@host01 /]# ceph osd tree | grep -i down ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 0 hdd 0.00999 osd.0 down 1.00000 1.00000
[ceph: root@host01 /]# ceph osd tree | grep -i down ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 0 hdd 0.00999 osd.0 down 1.00000 1.00000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターがデータをリバランスして他の OSD にそのテータをコピーできるように、OSD を
out
としてマークします。構文
ceph osd out OSD_ID.
ceph osd out OSD_ID.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd out osd.0 marked out osd.0.
[ceph: root@host01 /]# ceph osd out osd.0 marked out osd.0.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OSD が
down
していると、mon_osd_down_out_interval
パラメーターに基づいて OSD からハートビートパケットを受信しないと、Ceph は、600 秒後に OSD を自動的にout
とマークします。この場合、障害が発生した OSD データのコピーを持つ他の OSD がバックフィルを開始し、クラスター内部に必要な数のコピーが存在するようにします。クラスターがバックフィル状態である間、クラスターの状態はdegraded
します。障害が発生した OSD がバックフィルされていることを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループの状態が
active+clean
からactive
になり、一部の劣化したオブジェクトに変化し、移行が完了すると最終的にactive+clean
に変化するはずです。OSD を停止します。
構文
ceph orch daemon stop OSD_ID
ceph orch daemon stop OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch daemon stop osd.0
[ceph: root@host01 /]# ceph orch daemon stop osd.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターから OSD を削除します。
構文
ceph orch osd rm OSD_ID --replace
ceph orch osd rm OSD_ID --replace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch osd rm 0 --replace
[ceph: root@host01 /]# ceph orch osd rm 0 --replace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_IDは保存されます。
物理ドライブの交換
物理ドライブの交換方法の詳細については、ハードウェアノードのマニュアルを参照してください。
- ドライブがホットスワップ可能な場合は、故障したドライブを新しいものと交換します。
- ドライブがホットスワップに対応しておらず、ノードに複数の OSD が含まれる場合は、ノード全体をシャットダウンして物理ドライブを交換する必要がある場合があります。クラスターのバックフィルを防ぐことを検討してください。詳細は、Red Hat Ceph Storage トラブルシューティングガイド の リバランスの停止および開始 の章を参照してください。
-
ドライブが
/dev/
ディレクトリー配下に表示されたら、ドライブパスを書き留めます。 - OSD を手動で追加する必要がある場合には、OSD ドライブを見つけ、ディスクをフォーマットします。
Ceph クラスターへの OSD の追加
新しいドライブを挿入したら、以下のオプションを使用して OSD をデプロイすることができます。
OSD は、
--unmanaged
パラメーターが設定されていない場合は、Ceph Orchestrator によって自動的にデプロイされます。例
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices
Copy to Clipboard Copied! Toggle word wrap Toggle overflow unmanaged
パラメーターをtrue
に設定して、利用可能なすべてのデバイスに OSD をデプロイします。例
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=true
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のデバイスやホストに OSD をデプロイします。
例
[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdb
[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CRUSH 階層が正確であることを確認します。
例
[ceph: root@host01 /]# ceph osd tree
[ceph: root@host01 /]# ceph osd tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow