3.7. 노드 오류 시뮬레이션
하드 노드 오류를 시뮬레이션하려면 노드의 전원을 끄고 운영 체제를 다시 설치합니다.
사전 요구 사항
- 정상 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준의 액세스.
절차
스토리지 클러스터의 용량을 확인하여 노드 제거의 영향을 확인합니다.
예제
[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 플레이북을 다시 실행합니다.
예제
[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
추가 리소스