3.7. ノードの障害のシミュレーション
ハードノードの障害をシミュレーションするには、ノードの電源をオフにし、オペレーティングシステムを再インストールします。
前提条件
- 正常かつ実行中の Red Hat Ceph Storage クラスター
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
ストレージクラスターの容量を確認し、ノードの削除への影響を確認します。
例
[root@ceph1 ~]# ceph df [root@ceph1 ~]# rados df [root@ceph1 ~]# ceph osd df
必要に応じて、復元およびバックフィルを無効にします。
例
[root@ceph1 ~]# ceph osd set noout [root@ceph1 ~]# ceph osd set noscrub [root@ceph1 ~]# 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 管理ノードから、再インストールしたノードで
ansible
ユーザーの SSH 鍵をコピーします。[ansible@admin ~]$ ssh-copy-id ceph3
Ansible 管理ノードから Ansible Playbook を再度実行します。
例
[ansible@admin ~]$ cd /usr/share/ceph-ansible [ansible@admin ~]$ ansible-playbook site.yml -i hosts 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 インストールガイド
- Ansible インベントリー設定の詳細は、{storage_product} インストールガイド の Ansible のインベントリーの場所の設定 セクションを参照してください。