4.4. ストレッチモードの使用と維持
OSD ホストを追加し、データセンターモニターサービスホストを管理し、クォーラムの有無にかかわらず tiebreaker をモニターに置き換えることで、ストレッチモードを使用および維持します。
4.4.1. ストレッチモードでの OSD ホストの追加 リンクのコピーリンクがクリップボードにコピーされました!
ストレッチモードで Ceph OSD を追加できます。この手順は、ストレッチモードが有効になっていないクラスターに OSD ホストを追加する場合に類似しています。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている。
- ノードへの root レベルのアクセス。
手順
OSD をデプロイするために利用可能なデバイスをリスト表示します。
構文
ceph orch device ls [--hostname=HOST_1 HOST_2] [--wide] [--refresh]例
[ceph: root@host01 /]# ceph orch device lsOSD を特定のホストまたは使用可能なすべてのデバイスにデプロイします。
特定のホスト上の特定のデバイスから OSD を作成します。
構文
ceph orch daemon add osd HOST:DEVICE_PATH例
[ceph: root@host01 /]# ceph orch daemon add osd host03:/dev/sdb使用可能なデバイスと未使用のデバイスに OSD をデプロイします。
重要このコマンドは、コロケーションされた WAL および DB デバイスを作成します。コロケーションされていないデバイスを作成する場合は、このコマンドを使用しないでください。
例
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices
OSD ホストを CRUSH バケットの下に移動します。
構文
ceph osd crush move HOST datacenter=DATACENTER例
[ceph: root@host01 /]# ceph osd crush move host03 datacenter=DC1 [ceph: root@host01 /]# ceph osd crush move host06 datacenter=DC2注記両方のサイトに同じトポロジーノードを追加してください。ホストが 1 つのサイトのみに追加されると、問題が発生する可能性があります。
4.4.2. ストレッチモードでのデータセンターモニターサービスホストの管理 リンクのコピーリンクがクリップボードにコピーされました!
この情報を使用して、ストレッチモードでデータセンターモニターサービス (mon) ホストを追加および削除します。データセンターの管理は、仕様ファイルを使用するか、Ceph クラスター上で直接行うことができます。
前提条件
始める前に、次の前提条件が満たされていることを確認してください。
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
- ノードへの root レベルのアクセス。
4.4.2.1. サービス仕様ファイルを使用して mon サービスを管理する リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、mon サービスを追加する方法を詳しく説明します。サービスを削除する場合は、サービス仕様ファイルを更新するときと同じ手順で、該当する情報を削除します。
手順
mon の仕様ファイルをエクスポートし、出力を
mon-spec.yamlに保存します。構文
ceph orch ls mon --export > mon-spec.yamlファイルをエクスポートした後、YAML ファイルを編集できます。
新しいホストの詳細を追加します。次の例では、
host08が DC2 データセンターバケット内のクラスターに追加されています。構文
service_type: host addr: 10.1.172.225 hostname: host08 labels: - mon --- service_type: mon service_name: mon placement: label: mon spec: crush_locations: host01: - datacenter=DC1 host02: - datacenter=DC1 host03: - datacenter=DC1 host04: - datacenter=DC2 host05: - datacenter=DC2 host06: - datacenter=DC2 host08: - datacenter=DC2仕様ファイルを適用します。
構文
ceph orch apply -i mon-spec.yaml例
[ceph: root@host01 /]# eph orch apply -i mon-spec.yaml Added host 'host08' with addr '10.1.172.225' Scheduled mon update...
検証
ceph mon dumpコマンドを使用して、monサービスがデプロイされ、適切な CRUSH の場所がモニターに追加されたことを確認します。例
[ceph: root@host01 /]# ceph mon dump epoch 16 fsid ff19789c-f5c7-11ef-8e1c-fa163e4e1f7e last_changed 2025-02-28T12:12:51.089706+0000 created 2025-02-28T11:34:59.325503+0000 min_mon_release 19 (squid) election_strategy: 3 stretch_mode_enabled 1 tiebreaker_mon host07 disallowed_leaders host07 0: [v2:10.0.56.37:3300/0,v1:10.0.56.37:6789/0] mon.host01; crush_location {datacenter=DC1} 1: [v2:10.0.59.188:3300/0,v1:10.0.59.188:6789/0] mon.host05; crush_location {datacenter=DC2} 2: [v2:10.0.59.35:3300/0,v1:10.0.59.35:6789/0] mon.host02; crush_location {datacenter=DC1} 3: [v2:10.0.56.189:3300/0,v1:10.0.56.189:6789/0] mon.host07; crush_location {datacenter=DC3} 4: [v2:10.0.56.13:3300/0,v1:10.0.56.13:6789/0] mon.host04; crush_location {datacenter=DC2} dumped monmap epoch 16ceph orch host lsを使用して、ホストがクラスターに追加されたことを確認します。例
[ceph: root@host01 /]# ceph orch host ls HOST ADDR LABELS STATUS host01 10.0.56.37 mgr,mon,osd host02 10.0.59.35 mgr,mon,osd host03 10.0.58.106 osd,mds,rgw host04 10.0.56.13 osd,mon,mgr host05 10.0.59.188 mgr,mon,osd host06 10.0.56.223 rgw,mds,osd host07 10.0.56.189 _admin,mon 7 hosts in cluster
4.4.2.2. コマンドラインインターフェイスで mon サービスを管理する リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、mon サービスを追加する方法を詳しく説明します。サービスを削除する場合は、CLI で更新するときと同じ手順で、該当する情報を削除します。
手順
監視サービスを
unmanagedに設定します。構文
ceph orch set-unmanaged monオプション:
ceph orch lsコマンドを使用して、サービスが期待どおりに設定されていることを確認します。例
[ceph: root@host01 /]# ceph orch host ls NAME PORTS RUNNING REFRESHED AGE PLACEMENT mon 8/8 10m ago 19s <unmanaged>monラベルを持つ新しいホストを追加します。構文
ceph orch host add HOST_NAME IP_ADDRESS_OF_HOST [--label=LABEL_NAME_1,LABEL_NAME_2]例
[ceph: root@host01 /]# ceph orch host add host08 10.1.172.205 --labels=monCRUSH ロケーションを持つ監視サービスを追加します。
注記この時点では、mon は実行されておらず、Cephadm によって管理されていません。
構文
ceph mon add NODE:_IP_ADDRESS_ datacenter=DC2例
[ceph: root@host01 /]# ceph mon add host08:10.1.172.205 datacenter=DC2Cephadm を使用してモニターデーモンをデプロイします。
構文
ceph orch daemon add mon host08例
[ceph: root@host01 /]# ceph orch daemon add mon host08 Deployed mon.host08 on host 'host08'モニターサービスに対して Cephadm 管理を有効にします。
構文
ceph orch set-managed mon新しく追加された
monデーモンを起動します。構文
ceph orch set-managed mgr
検証
サービス、モニター、ホストが追加され、実行されていることを確認します。
ceph orch lsコマンドを使用して、サービスが実行中であることを確認します。例
[ceph: root@host01 /]# ceph orch host ls NAME PORTS RUNNING REFRESHED AGE PLACEMENT mon 8/8 7m ago 4d label:monceph mon dumpコマンドを使用して、monサービスがデプロイされ、適切な CRUSH の場所がモニターに追加されたことを確認します。例
[ceph: root@host01 /]# ceph mon dump epoch 16 fsid ff19789c-f5c7-11ef-8e1c-fa163e4e1f7e last_changed 2025-02-28T12:12:51.089706+0000 created 2025-02-28T11:34:59.325503+0000 min_mon_release 19 (squid) election_strategy: 3 stretch_mode_enabled 1 tiebreaker_mon host07 disallowed_leaders host07 0: [v2:10.0.56.37:3300/0,v1:10.0.56.37:6789/0] mon.host01; crush_location {datacenter=DC1} 1: [v2:10.0.59.188:3300/0,v1:10.0.59.188:6789/0] mon.host05; crush_location {datacenter=DC2} 2: [v2:10.0.59.35:3300/0,v1:10.0.59.35:6789/0] mon.host02; crush_location {datacenter=DC1} 3: [v2:10.0.56.189:3300/0,v1:10.0.56.189:6789/0] mon.host07; crush_location {datacenter=DC3} 4: [v2:10.0.56.13:3300/0,v1:10.0.56.13:6789/0] mon.host04; crush_location {datacenter=DC2} dumped monmap epoch 16ceph orch host lsコマンドを使用して、ホストがクラスターに追加されたことを確認します。例
[ceph: root@host01 /]# ceph orch host ls HOST ADDR LABELS STATUS host01 10.0.56.37 mgr,mon,osd host02 10.0.59.35 mgr,mon,osd host03 10.0.58.106 osd,mds,rgw host04 10.0.56.13 osd,mon,mgr host05 10.0.59.188 mgr,mon,osd host06 10.0.56.223 rgw,mds,osd host07 10.0.56.189 _admin,mon 7 hosts in cluster
4.4.3. tiebreaker をクォーラム内のモニターに置き換える リンクのコピーリンクがクリップボードにコピーされました!
tiebreaker モニターに障害が発生した場合は、それをクォーラム内の既存のモニターに置き換えて、クラスターから削除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
手順
自動化されたモニターのデプロイメントを無効にします。
例
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…クォーラムでモニターを表示します。
例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05 (age 30s), out of quorum: host07モニターを新しい tiebreaker としてクォーラムに設定します。
構文
ceph mon set_new_tiebreaker NEW_HOST例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02重要モニターが既存の非 tiebreaker モニターと同じ場所にある場合、エラーメッセージが表示されます。
例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02 Error EINVAL: mon.host02 has location DC1, which matches mons host02 on the datacenter dividing bucket for stretch mode.その場合は、モニターの場所を変更します。
構文
ceph mon set_location HOST datacenter=DATACENTER例
[ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC3障害が発生した tiebreaker モニターを削除します。
構文
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --force例
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'モニターがホストから削除されたら、モニターを再デプロイします。
構文
ceph mon add HOST IP_ADDRESS datacenter=DATACENTER ceph orch daemon add mon HOST例
[ceph: root@host01 /]# ceph mon add host07 213.222.226.50 datacenter=DC1 [ceph: root@host01 /]# ceph orch daemon add mon host07クォーラムに 5 つのモニターがあることを確認します。
例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05, host07 (age 15s)すべてが正しく設定されていることを確認します。
例
[ceph: root@host01 /]# ceph mon dump epoch 19 fsid 1234ab78-1234-11ed-b1b1-de456ef0a89d last_changed 2023-01-17T04:12:05.709475+0000 created 2023-01-16T05:47:25.631684+0000 min_mon_release 16 (pacific) election_strategy: 3 stretch_mode_enabled 1 tiebreaker_mon host02 disallowed_leaders host02 0: [v2:132.224.169.63:3300/0,v1:132.224.169.63:6789/0] mon.host02; crush_location {datacenter=DC3} 1: [v2:220.141.179.34:3300/0,v1:220.141.179.34:6789/0] mon.host04; crush_location {datacenter=DC2} 2: [v2:40.90.220.224:3300/0,v1:40.90.220.224:6789/0] mon.host01; crush_location {datacenter=DC1} 3: [v2:60.140.141.144:3300/0,v1:60.140.141.144:6789/0] mon.host07; crush_location {datacenter=DC1} 4: [v2:186.184.61.92:3300/0,v1:186.184.61.92:6789/0] mon.host03; crush_location {datacenter=DC2} dumped monmap epoch 19モニターを再デプロイします。
構文
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”例
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host07" Scheduled mon update...
4.4.4. tiebreaker を新しいモニターに交換する リンクのコピーリンクがクリップボードにコピーされました!
tiebreaker モニターに障害が発生した場合は、それを新しいモニターに置き換えて、クラスターから削除できます。
前提条件
始める前に、次の前提条件が満たされていることを確認してください。
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クラスターでストレッチモードが有効になっている
手順
新しいモニターをクラスターに追加します。
crush_locationを新しいモニターに手動で追加します。構文
ceph mon add NEW_HOST IP_ADDRESS datacenter=DATACENTER例
[ceph: root@host01 /]# ceph mon add host06 213.222.226.50 datacenter=DC3 adding mon.host06 at [v2:213.222.226.50:3300/0,v1:213.222.226.50:6789/0]注記新しいモニターは、既存の非 tiebreaker モニターとは別の場所に配置する必要があります。
自動化されたモニターのデプロイメントを無効にします。
例
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…新しいモニターをデプロイします。
構文
ceph orch daemon add mon NEW_HOST例
[ceph: root@host01 /]# ceph orch daemon add mon host06
6 つのモニターがあり、そのうちの 5 つがクォーラムにあることを確認します。
例
[ceph: root@host01 /]# ceph -s mon: 6 daemons, quorum host01, host02, host04, host05, host06 (age 30s), out of quorum: host07新しいモニターを新しい tiebreaker として設定します。
構文
ceph mon set_new_tiebreaker NEW_HOST例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host06障害が発生した tiebreaker モニターを削除します。
構文
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --force例
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'すべてが正しく設定されていることを確認します。
例
[ceph: root@host01 /]# ceph mon dump epoch 19 fsid 1234ab78-1234-11ed-b1b1-de456ef0a89d last_changed 2023-01-17T04:12:05.709475+0000 created 2023-01-16T05:47:25.631684+0000 min_mon_release 16 (pacific) election_strategy: 3 stretch_mode_enabled 1 tiebreaker_mon host06 disallowed_leaders host06 0: [v2:213.222.226.50:3300/0,v1:213.222.226.50:6789/0] mon.host06; crush_location {datacenter=DC3} 1: [v2:220.141.179.34:3300/0,v1:220.141.179.34:6789/0] mon.host04; crush_location {datacenter=DC2} 2: [v2:40.90.220.224:3300/0,v1:40.90.220.224:6789/0] mon.host01; crush_location {datacenter=DC1} 3: [v2:60.140.141.144:3300/0,v1:60.140.141.144:6789/0] mon.host02; crush_location {datacenter=DC1} 4: [v2:186.184.61.92:3300/0,v1:186.184.61.92:6789/0] mon.host05; crush_location {datacenter=DC2} dumped monmap epoch 19モニターを再デプロイします。
構文
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”例
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host06" Scheduled mon update…