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 的更多信息: