부록 A. 문제 해결
A.1. Ansible은 예상보다 적은 장치를 감지하므로 설치를 중지합니다.
Ansible 자동화 애플리케이션은 설치 프로세스를 중지하고 다음 오류를 반환합니다.
- name: fix partitions gpt header or labels of the osd disks (autodiscover disks) shell: "sgdisk --zap-all --clear --mbrtogpt -- '/dev/{{ item.0.item.key }}' || sgdisk --zap-all --clear --mbrtogpt -- '/dev/{{ item.0.item.key }}'" with_together: - "{{ osd_partition_status_results.results }}" - "{{ ansible_devices }}" changed_when: false when: - ansible_devices is defined - item.0.item.value.removable == "0" - item.0.item.value.partitions|count == 0 - item.0.rc != 0
이는 다음을 의미합니다.
/usr/share/ceph-ansible/group_vars/osds.yml
파일에서 osd_auto_discovery
매개변수를 true
로 설정하면 Ansible에서 사용 가능한 모든 장치를 자동으로 탐지하고 구성합니다. 이 프로세스 중에 Ansible은 모든 OSD에서 동일한 장치를 사용할 것으로 예상합니다. 장치는 Ansible이 감지하는 것과 동일한 순서로 이름을 가져옵니다. OSD 중 하나에서 오류가 발생하면 Ansible에서 실패한 장치를 감지하지 못하고 전체 설치 프로세스를 중지합니다.
예:
-
OSD 노드 3개(
host1
,host2
,host3
)는/dev/sdb
,/dev/sdc
,dev/sdd
디스크를 사용합니다. -
host2
에서/dev/sdc
디스크가 실패하고 제거됩니다. -
다음 재부팅 시 Ansible은 제거된
/dev/sdc
host2
,/dev/sdb
및 /dev/sdc(이전의/dev/sdd
)에 두 개의 디스크만 사용되도록 예상합니다. - Ansible은 설치 프로세스를 중지하고 위의 오류 메시지를 반환합니다.
문제를 해결하려면 다음을 수행합니다.
/etc/ansible/hosts
파일에서 오류가 발생한 디스크(위 예의host
2)를 사용하여 OSD 노드에서 사용하는 장치를 지정합니다.
[osds] host1 host2 devices="[ '/dev/sdb', '/dev/sdc' ]" host3
자세한 내용은 5장. Ansible을 사용하여 Red Hat Ceph Storage 설치 을 참조하십시오.