부록 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에서 실패한 장치를 감지하지 못하고 전체 설치 프로세스를 중지합니다.

예:

  1. OSD 노드 3개(host1,host2,host3)는 /dev/sdb,/dev/sdc, dev/sdd 디스크를 사용합니다.
  2. host2 에서 /dev/sdc 디스크가 실패하고 제거됩니다.
  3. 다음 재부팅 시 Ansible은 제거된 /dev/sdc 디스크를 감지하지 못하고 host2,/dev/sdb 및 /dev/sdc(이전의 /dev/sdd)에 두 개의 디스크만 사용되도록 예상합니다.
  4. Ansible은 설치 프로세스를 중지하고 위의 오류 메시지를 반환합니다.

문제를 해결하려면 다음을 수행합니다.

/etc/ansible/hosts 파일에서 오류가 발생한 디스크(위 예의host 2)를 사용하여 OSD 노드에서 사용하는 장치를 지정합니다.

[osds]
host1
host2 devices="[ '/dev/sdb', '/dev/sdc' ]"
host3

자세한 내용은 5장. Ansible을 사용하여 Red Hat Ceph Storage 설치 을 참조하십시오.