4.3. monmap の注入
Ceph Monitor に古いまたは破損した Ceph Monitor マップ (mtte
) がある場合は、誤った IP アドレスで他の Ceph Monitor に到達しようとしているため、クォーラムに参加できません。
この問題の最も安全な方法は、他の Ceph Monitor から実際の Ceph Monitor マップを取得して注入することです。
このアクションにより、Ceph Monitor によって保持される既存の Ceph Monitor マップが上書きされます。
この手順では、他の Ceph Monitor がクォーラムを形成できている場合、または少なくとも 1 つの Ceph Monitor が正しい Ceph Monitor マップを持っている場合に、Ceph Monitor マップを注入する方法を示します。すべての Ceph Monitor でストアが破損しているため、Ceph Monitor マップも破損している場合は、Ceph Monitor ストアの回復 を参照してください。
前提条件
- Ceph Monitor マップへのアクセス。
- Ceph Monitor ノードへのルートレベルのアクセス。
手順
残りの Ceph Monitor がクォーラムを形成できる場合には、
ceph mon getmap
コマンドを使用して Ceph Monitor マップを取得します。例:
[ceph: root@host01 /]# ceph mon getmap -o /tmp/monmap
残りの Ceph Monitor がクォーラムを形成できず、正しい Ceph Monitor マップを持つ Ceph Monitor が少なくとも 1 つある場合は、その Ceph Monitor からコピーします。
Ceph Monitor マップのコピー元の Ceph Monitor マップを停止します。
構文
systemctl stop ceph-FSID@DAEMON_NAME
例:
[root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
Ceph Monitor マップをコピーします。
構文
ceph-mon -i ID --extract-monmap /tmp/monmap
ID
を、Ceph Monitor マップをコピーする Ceph Monitor の ID に置き換えます。例:
[ceph: root@host01 /]# ceph-mon -i mon.a --extract-monmap /tmp/monmap
破損したまたは古くなった Ceph Monitor マップを持つ Ceph Monitor を停止します。
構文
systemctl stop ceph-FSID@DAEMON_NAME
例:
[root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
Ceph Monitor マップを注入します。
構文
ceph-mon -i ID --inject-monmap /tmp/monmap
ID
を、破損した Ceph Monitor マップまたは古くなった Ceph Monitor マップに置き換えます。例:
[root@mon ~]# ceph-mon -i mon.host01 --inject-monmap /tmp/monmap
Ceph Monitor を起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME
例:
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
別の Ceph Monitor から Ceph Monitor マップをコピーした場合は、その Ceph Monitor も起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME
例
[root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
関連情報
- Ceph モニターがクォーラム外にある を参照してください。
- Ceph Monitor ストアのリカバリー を参照してください