Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
付録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 は障害が発生したデバイスの検出に失敗し、インストールプロセス全体を停止します。
状況例:
-
3 つの OSD ノード (
host1、host2、host3) は、/dev/sdbディスク、/dev/sdcディスク、およびdev/sddディスクを使用します。 -
host2では、/dev/sdcディスクに障害が発生し、削除されます。 -
次回の再起動時に、Ansible は削除した
/dev/sdcディスクの検出に失敗し、host2、/dev/sdbおよび/dev/sdc(以前は/dev/sdd) には 2 つのディスクのみが使用されることを想定します。 - Ansible はインストールプロセスを停止し、上記のエラーメッセージを返します。
この問題を修正するには、以下を実行します。
/etc/ansible/hosts ファイルで、障害が発生したディスクを持つ OSD ノードが使用するデバイスを指定します (上記の例の host2 )。
[osds] host1 host2 devices="[ '/dev/sdb', '/dev/sdc' ]" host3
詳しくは 3章Red Hat Ceph Storage の導入 をご覧ください。