Menu Close

付録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. 3 つの OSD ノード (host1host2host3) は、/dev/sdb ディスク、/dev/sdc ディスク、および dev/sdd ディスクを使用します。
  2. host2 では、/dev/sdc ディスクに障害が発生し、削除されます。
  3. 次回の再起動時に、Ansible は削除した /dev/sdc ディスクの検出に失敗し、host2/dev/sdb および /dev/sdc (以前は /dev/sdd) には 2 つのディスクのみが使用されることを想定します。
  4. Ansible はインストールプロセスを停止し、上記のエラーメッセージを返します。

この問題を修正するには、以下を実行します。

/etc/ansible/hosts ファイルで、障害が発生したディスクを持つ OSD ノードが使用するデバイスを指定します (上記の例の host2 )。

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

詳細は5章Ansible を使用した Red Hat Ceph Storage のインストール をご覧ください。