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 ノードへのルートレベルのアクセス。

手順

  1. 残りの Ceph Monitor がクォーラムを形成できる場合には、ceph mon getmap コマンドを使用して Ceph Monitor マップを取得します。

    例:

    [ceph: root@host01 /]# ceph mon getmap -o /tmp/monmap

  2. 残りの Ceph Monitor がクォーラムを形成できず、正しい Ceph Monitor マップを持つ Ceph Monitor が少なくとも 1 つある場合は、その Ceph Monitor からコピーします。

    1. Ceph Monitor マップのコピー元の Ceph Monitor マップを停止します。

      構文

      systemctl stop ceph-FSID@DAEMON_NAME

      例:

      [root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service

    2. 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

  3. 破損したまたは古くなった Ceph Monitor マップを持つ Ceph Monitor を停止します。

    構文

    systemctl stop ceph-FSID@DAEMON_NAME

    例:

    [root@mon ~]# systemctl stop ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service

  4. 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

  5. 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

関連情報