3.7. ノードの障害のシミュレーション
ハードノードの障害をシミュレーションするには、ノードの電源をオフにし、オペレーティングシステムを再インストールします。
前提条件
- 正常かつ実行中の Red Hat Ceph Storage クラスター
手順
ストレージ容量をチェックして、ストレージクラスターに対するノード削除の影響について確認します。
# ceph df # rados df # ceph osd df
必要に応じて、復元およびバックフィルを無効にします。
# ceph osd set noout # ceph osd set noscrub # ceph osd set nodeep-scrub
- ノードをシャットダウンします。
ホスト名が変更された場合は、CRUSH マップからノードを削除します。
[root@ceph1 ~]# ceph osd crush rm ceph3
クラスターのステータスを確認します。
[root@ceph1 ~]# ceph -s
- ノードにオペレーティングシステムを再インストールします。
Ansible ユーザーおよび SSH キーを追加します。
[root@ceph3 ~]# useradd ansible [root@ceph3 ~]# passwd ansible [root@ceph3 ~]# cat << EOF > /etc/sudoers.d/ansible ansible ALL = (root) NOPASSWD:ALL Defaults:ansible !requiretty EOF [root@ceph3 ~]# su - ansible [ansible@ceph3 ~]# ssh-keygen
管理ノードから、
ansible
ユーザーの SSH キーをコピーします。[ansible@admin ~]$ ssh-copy-id ceph3
管理ノードから、Ansible Playbook を再実行します。
[ansible@admin ~]$ cd /usr/share/ceph-ansible [ansible@admin ~]$ ansible-playbook site.yml
出力例
PLAY RECAP ******************************************************************** ceph1 : ok=368 changed=2 unreachable=0 failed=0 ceph2 : ok=284 changed=0 unreachable=0 failed=0 ceph3 : ok=284 changed=15 unreachable=0 failed=0
必要に応じて、復元およびバックフィルを有効にします。
[root@ceph3 ~]# ceph osd unset noout [root@ceph3 ~]# ceph osd unset noscrub [root@ceph3 ~]# ceph osd unset nodeep-scrub
Ceph のヘルスを確認します。
[root@ceph3 ~]# ceph -s cluster 1e0c9c34-901d-4b46-8001-0d1f93ca5f4d health HEALTH_OK monmap e1: 3 mons at {ceph1=192.168.122.81:6789/0,ceph2=192.168.122.82:6789/0,ceph3=192.168.122.83:6789/0} election epoch 36, quorum 0,1,2 ceph1,ceph2,ceph3 osdmap e95: 3 osds: 3 up, 3 in flags sortbitwise pgmap v1190: 152 pgs, 12 pools, 1024 MB data, 441 objects 3197 MB used, 293 GB / 296 GB avail 152 active+clean
関連情報
Red Hat Ceph Storage のインストールについての詳しい情報は、以下のドキュメントを参照してください。