11.4. Ceph Storage ノードからの OSD の削除

この手順では、ノードから OSD を削除する方法を説明します。環境について以下を前提とします。

  • サーバー (ceph-storage0) には、/dev/sde で実行している OSD (ceph-osd@4) がある。
  • Ceph monitor サービス (ceph-mon) が controller0 で実行されている。
  • ストレージクラスターの割合がほぼ完全とならないように、利用可能な OSD が十分にある。

Ceph OSD に関する詳細は、Red Hat Ceph Storage Operations GuideCeph OSDs を参照してください。

手順

  1. ceph-storage0 に SSH 接続し、root でログインします。
  2. OSD サービスを無効にし、停止します。

    [root@ceph-storage0 ~]# systemctl disable ceph-osd@4
    [root@ceph-stoarge0 ~]# systemctl stop ceph-osd@4
  3. ceph-storage0 からの接続を切断します。
  4. controller0 に SSH 接続し、root でログインします。
  5. Ceph monitor コンテナーの名前を特定します。

    [root@controller0 ~]# podman ps | grep ceph-mon
    ceph-mon-controller0
    [root@controller0 ~]#
  6. Ceph monitor コンテナーを有効にして、望ましくない OSD を out とマークします。

    [root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd out 4
    注記

    このコマンドにより、Ceph はストレージクラスターをリバランスし、データをクラスター内の他の OSD にコピーします。クラスターは、リバランスが完了するまで、一時的に active+clean 状態から離れます。

  7. 以下のコマンドを実行し、ストレージクラスターの状態が active+clean になるまで待機します。

    [root@controller0 ~]# podman exec ceph-mon-controller0 ceph -w
  8. CRUSH マップから OSD を削除して、データを受信しないようにします。

    [root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd crush remove osd.4
  9. OSD 認証キーを削除します。

    [root@controller0 ~]# podman exec ceph-mon-controller0 ceph auth del osd.4
  10. OSD を削除します。

    [root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd rm 4
  11. controller0 から接続を解除します。
  12. stack ユーザーとしてアンダークラウドに SSH 接続し、CephAnsibleDisksConfig パラメーターを定義した heat 環境ファイルを見つけます。
  13. heat テンプレートに OSD が 4 つ含まれています。

    parameter_defaults:
      CephAnsibleDisksConfig:
        devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
          - /dev/sde
        osd_scenario: lvm
        osd_objectstore: bluestore
  14. テンプレートを変更して /dev/sde を削除します。

    parameter_defaults:
      CephAnsibleDisksConfig:
        devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
        osd_scenario: lvm
        osd_objectstore: bluestore
  15. openstack overcloud deploy を実行してオーバークラウドを更新します。

    注記

    この例では、OSD を持つすべてのホストから /dev/sde デバイスを削除します。すべてのノードから同じデバイスを削除しない場合には、heat テンプレートを更新します。異なる devices 一覧を持つホストを定義する方法は、「異なる Ceph Storage ノードのパラメーターのオーバーライド」 を参照してください。