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 플레이북을 다시 실행합니다.
[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 설치에 대한 자세한 내용은 다음을 참조하십시오.