3.16. ホストの追加

Red Hat Ceph Storage インストールをブートストラップすると、同じコンテナー内の 1 つの Monitor デーモンと 1 つの Manager デーモンで設定される作業ストレージクラスターが作成されます。ストレージ管理者は、追加のホストをストレージクラスターに追加し、それらを設定することができます。

注記
  • Red Hat Enterprise Linux 8 の場合、プリフライト Playbook を実行すると、Ansible インベントリーファイルに記載されているすべてのホストに podmanlvm2chronyd、および cephadm がインストールされます。
  • Red Hat Enterprise Linux 9 の場合、プリフライト Playbook がサポートされていないため、すべてのホストに podmanlvm2chronyd、および cephadm を手動でインストールし、Ansible Playbook の実行手順をスキップする必要があります。
  • カスタムレジストリーを使用する場合は、Ceph デーモンを追加する前に、新しく追加したノードのカスタムレジストリーにログインしてください。

    .Syntax
    [source,subs="verbatim,quotes"]
    ----
    # ceph cephadm registry-login --registry-url _CUSTOM_REGISTRY_NAME_  --registry_username _REGISTRY_USERNAME_ --registry_password _REGISTRY_PASSWORD_
    ----
    .Example
    ----
    # ceph cephadm registry-login --registry-url myregistry --registry_username myregistryusername --registry_password myregistrypassword1
    ----

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ルートレベル、またはストレージクラスター内のすべてのノードへの sudo アクセス権を持つユーザー。
  • ノードを CDN に登録して、サブスクリプションを割り当てます。
  • ストレージクラスター内のすべてのノードへの sudo アクセスおよびパスワードなしの ssh アクセスのある Ansible ユーザー。

手順

+

注記

次の手順では、示されているように root、またはユーザーがブートストラップされているユーザー名のいずれかを使用します。

  1. 管理キーリングが含まれるノードから、新規ホストの root ユーザーの authorized_keys ファイルにストレージクラスターの公開 SSH 鍵をインストールします。

    構文

    ssh-copy-id -f -i /etc/ceph/ceph.pub user@NEWHOST

    例:

    [root@host01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host02
    [root@host01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@host03

  2. Ansible 管理ノードの /usr/share/cephadm-ansible ディレクトリーに移動します。

    例:

    [ceph-admin@admin ~]$ cd /usr/share/cephadm-ansible

  3. Ansible 管理ノードから、新しいホストを Ansible インベントリーファイルに追加します。ファイルのデフォルトの場所は /usr/share/cephadm-ansible/hosts/ です。以下の例は、一般的なインベントリーファイルの構造を示しています。

    例:

    [ceph-admin@admin ~]$ cat hosts
    
    host02
    host03
    host04
    
    [admin]
    host01

    注記

    新しいホストを Ansible インベントリーファイルに追加し、ホストでプリフライト Playbook を実行している場合は、ステップ 4 に進みます。

  4. Red Hat Enterprise Linux 8 の --limit オプションを指定して、プリフライト Playbook を実行します。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit NEWHOST

    例:

    [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host02

    プリフライト Playbook は、新しいホストに podmanlvm2chronyd、および cephadm をインストールします。インストールが完了すると、cephadm/usr/sbin/ ディレクトリーに配置されます。

    • Red Hat Enterprise Linux 9 の場合は、podmanlvm2chronyd、および cephadm を手動でインストールします。

      [root@host01 ~]# dnf install podman lvm2 chronyd cephadm
  5. ブートストラップノードから、cephadm オーケストレーターを使用して、新しいホストをストレージクラスターに追加します。

    構文

    ceph orch host add NEWHOST

    例:

    [ceph: root@host01 /]# ceph orch host add host02
    Added host 'host02' with addr '10.10.128.69'
    [ceph: root@host01 /]# ceph orch host add host03
    Added host 'host03' with addr '10.10.128.70'

  6. オプション: プリフライト Playbook を実行する前後に、IP アドレスでノードを追加することもできます。ストレージクラスター環境に DNS が設定されていない場合は、ホスト名とともに、IP アドレスでホストを追加できます。

    構文

    ceph orch host add HOSTNAME IP_ADDRESS

    [ceph: root@host01 /]# ceph orch host add host02 10.10.128.69
    Added host 'host02' with addr '10.10.128.69'

    検証

    • ストレージクラスターのステータスを表示し、新しいホストが追加されたことを確認します。ホストの STATUS は、ceph orch host ls コマンドの出力では空白になります。

      例:

      [ceph: root@host01 /]# ceph orch host ls

関連情報

3.16.1. addr オプションを使用したホストの特定

addr オプションは、ホストに接続するための追加の方法を提供します。ホストの IP アドレスを addr オプションに追加します。ssh がホスト名でホストに接続できない場合は、addr に保存されている値を使用して、IP アドレスでホストに到達します。

前提条件

  • インストールされ、ブートストラップされたストレージクラスター。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

cephadm シェル内からこの手順を実行します。

  1. IP アドレスを追加します。

    構文

    ceph orch host add HOSTNAME IP_ADDR

    例:

    [ceph: root@host01 /]# ceph orch host add host01 10.10.128.68

注記

ホスト名でホストを追加すると、ホストが IPv4 アドレスではなく IPv6 アドレスで追加される場合は、ceph orch host を使用してそのホストの IP アドレスを指定します。

ceph orch host set-addr HOSTNAME IP_ADDR

追加したホストの IP アドレスを IPv6 形式から IPv4 形式に変換するには、次のコマンドを使用します。

ceph orch host set-addr HOSTNAME IPV4_ADDRESS

3.16.2. 複数のホストの追加

YAML ファイルを使用して、複数のホストをストレージクラスターに同時に追加します。

注記

必ずホストコンテナー内に hosts.yaml ファイルを作成するか、ローカルホストにファイルを作成してから、cephadm シェルを使用してファイルをコンテナー内にマウントします。cephadm シェルは、マウントしたファイルを /mnt に自動的に配置します。ローカルホストにファイルを直接作成し、マウントする代わりに hosts.yaml ファイルを適用すると、File does not exist というエラーが表示される可能性があります。

前提条件

  • インストールされ、ブートストラップされたストレージクラスター。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

  1. ssh 公開鍵を、追加する各ホストにコピーします。
  2. テキストエディターを使用して hosts.yaml ファイルを作成します。
  3. 以下の例のように、host.yaml ファイルにホストの説明を追加します。各ホストにデプロイするデーモンの配置を識別するラベルを含めます。各ホストの説明は、3 つのダッシュ (---) で区切ります。

    例:

    service_type: host
    addr:
    hostname: host02
    labels:
    - mon
    - osd
    - mgr
    ---
    service_type: host
    addr:
    hostname: host03
    labels:
    - mon
    - osd
    - mgr
    ---
    service_type: host
    addr:
    hostname: host04
    labels:
    - mon
    - osd

  4. ホストコンテナー内に hosts.yaml ファイルを作成した場合は、ceph orch apply コマンドを実行します。

    例:

    [root@host01 ~]# ceph orch apply -i hosts.yaml
    Added host 'host02' with addr '10.10.128.69'
    Added host 'host03' with addr '10.10.128.70'
    Added host 'host04' with addr '10.10.128.71'

  5. ローカルホストで直接 hosts.yaml ファイルを作成した場合は、cephadm シェルを使用してファイルをマウントします。

    例:

    [root@host01 ~]# cephadm shell --mount hosts.yaml -- ceph orch apply -i /mnt/hosts.yaml

  6. ホストおよびそれらのラベルのリストを表示します。

    例:

    [root@host01 ~]# ceph orch host ls
    HOST      ADDR      LABELS          STATUS
    host02   host02    mon osd mgr
    host03   host03    mon osd mgr
    host04   host04    mon osd

    注記

    ホストがオンラインで正常に動作している場合、そのステータスは空白になります。オフラインホストには OFFLINE のステータスが表示され、メンテナンスモードのホストには MAINTENANCE のステータスが表示されます。

3.16.3. 非接続デプロイメントでのホストの追加

プライベートネットワークでストレージクラスターを実行し、ホストドメイン名サーバー (DNS) がプライベート IP 経由で到達できない場合は、ストレージクラスターに追加する各ホストのホスト名と IP アドレスの両方を含める必要があります。

前提条件

  • 実行中のストレージクラスター。
  • ストレージクラスター内のすべてのホストへの root レベルのアクセス。

手順

  1. cephadm シェルを実行します。

    構文

    [root@host01 ~]# cephadm shell

  2. ホストを追加します。

    構文

    ceph orch host add HOST_NAME HOST_ADDRESS

    例:

    [ceph: root@host01 /]# ceph orch host add host03 10.10.128.70

3.16.4. ホストの削除

Ceph Orchestrator で、Ceph クラスターのホストを削除できます。すべてのデーモンは、_no_schedule ラベルを追加する drain オプションで削除され、操作が完了するまでデーモンまたはクラスターをデプロイメントできないようにします。

重要

ブートストラップホストを削除する場合は、ホストを削除する前に、必ず管理キーリングと設定ファイルをストレージクラスター内の別のホストにコピーしてください。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • すべてのノードへの root レベルのアクセス。
  • ホストがストレージクラスターに追加されている。
  • すべてのサービスがデプロイされている。
  • Cephadm が、サービスを削除する必要があるノードにデプロイされている。

手順

  1. Cephadm シェルにログインします。

    例:

    [root@host01 ~]# cephadm shell

  2. ホストの詳細を取得します。

    例:

    [ceph: root@host01 /]# ceph orch host ls

  3. ホストからすべてのデーモンをドレインします。

    構文

    ceph orch host drain HOSTNAME

    例:

    [ceph: root@host01 /]# ceph orch host drain host02

    _no_schedule ラベルは、デプロイメントをブロックするホストに自動的に適用されます。

  4. OSD の削除のステータスを確認します。

    例:

    [ceph: root@host01 /]# ceph orch osd rm status

    OSD に配置グループ (PG) が残っていない場合、OSD は廃止され、ストレージクラスターから削除されます。

  5. ストレージクラスターからすべてのデーモンが削除されているかどうかを確認します。

    構文

    ceph orch ps HOSTNAME

    例:

    [ceph: root@host01 /]# ceph orch ps host02

  6. ホストを削除。

    構文

    ceph orch host rm HOSTNAME

    [ceph: root@host01 /]# ceph orch host rm host02

関連情報