3.15. ホストのラベル付け
Ceph オーケストレーターは、ホストへのラベルの割り当てをサポートします。ラベルは自由形式であり、特別な意味はありません。つまり、mon、monitor、mycluster_monitor、またはその他のテキスト文字列を使用できます。各ホストに複数のラベルを指定できます。
Red Hat Ceph Storage 8.1 以降、Ceph Orchestrator はホストへの一般ラベルとトポロジーラベルの両方の割り当てをサポートしています。ラベルは任意のテキスト文字列を使用して free-form にすることができます。トポロジーラベルは、ハードウェア識別子とユーザーラベルとともに入力されます。
- ラベル
ラベルはユーザーが指定した free-form のテキストです。たとえば、Ceph Monitor デーモンをデプロイするすべてのホストで、
mycluster_monなどのラベルを使用します。次に、Ceph Manager デーモンをデプロイするすべてのホストに、2 番目のラベルmycluster_mgrを配置します。ストレージクラスター内のすべてのホストにラベルを付けると、各ホストで実行されているデーモンをすばやく識別できるため、システム管理タスクが簡素化されます。さらに、Ceph Orchestrator または YAML ファイルを使用して、特定のホストラベルを持つホストにデーモンをデプロイまたは削除できます。
- トポロジーラベル
- Red Hat Ceph Storage 8.1 以降では、マルチラック環境でトポロジーラベルを使用して、ラックごとに異なるサービスを作成できるようになりました。トポロジーラベルにより、特定のホストでのアップグレード操作が可能になります。詳細は、段階的アップグレード を参照してください。
ホストにラベルを付ける前に、ストレージクラスターがインストールされ、ブートストラップされていることを確認してください。
3.15.1. ホストへのラベルの追加 リンクのコピーリンクがクリップボードにコピーされました!
Ceph オーケストレーターを使用して、ラベルをホストに追加します。ラベルを使用して、デーモンの配置を指定できます。
ラベルの例の一部は、ホストにデプロイされるサービスに基づいて、mgr、mon、および osd になります。各ホストに複数のラベルを指定できます。
cephadm に特別な意味を持ち、_ で始まる以下のホストラベルを追加することもできます。
-
_no_schedule: このラベルは、cephadmがホスト上でデーモンをスケジュールまたはデプロイすることを阻止します。すでに Ceph デーモンが含まれている既存のホストに追加されると、これにより、cephadmは、自動的に削除されない OSD を除いて、それらのデーモンを別の場所に移動します。ホストに_no_scheduleラベルが追加されると、デーモンはそのホストにデプロイされません。ホストが削除される前にデーモンがドレインされると、そのホストに_no_scheduleラベルが設定されます。 -
_no_autotune_memory: このラベルは、ホスト上のメモリーを自動調整しません。そのホスト上の 1 つ以上のデーモンに対して、osd_memory_target_autotuneオプションまたは他の同様のオプションが有効になっている場合でも、デーモンメモリーが調整されることを阻止します。 -
_admin: デフォルトでは、_adminラベルはストレージクラスター内のブートストラップされたホストに適用され、client.adminキーは、ceph orch client-keyring {ls|set|rm}関数でそのホストに配布されるように設定されます。このラベルを追加のホストに追加すると、通常、cephadmは設定ファイルとキーリングファイルを/etc/cephディレクトリーにデプロイします。
前提条件
- インストールされ、ブートストラップされたストレージクラスター。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
- ホストがストレージクラスターに追加されている。
手順
Cephadm シェルにログインします。
例
[root@host01 ~]# cephadm shellホストにラベルを追加します。
構文
ceph orch host label add HOSTNAME LABEL例
[ceph: root@host01 /]# ceph orch host label add host02 mon
検証
ホストをリスト表示します。
例
[ceph: root@host01 /]# ceph orch host ls
3.15.2. ホストからのラベルの削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph オーケストレーターを使用して、ホストからラベルを削除します。
前提条件
- インストールされ、ブートストラップされたストレージクラスター。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
cephadmシェルを起動します。[root@host01 ~]# cephadm shell [ceph: root@host01 /]#ラベルを削除します。
構文
ceph orch host label rm HOSTNAME LABEL例
[ceph: root@host01 /]# ceph orch host label rm host02 mon
検証
ホストをリスト表示します。
例
[ceph: root@host01 /]# ceph orch host ls
3.15.3. ホストラベルを使用した特定ホストへのデーモンのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ホストラベルを使用して、特定のホストにデーモンをデプロイできます。ホストラベルを使用して特定のホストにデーモンをデプロイするには、次の 2 つの方法があります。
-
コマンドラインから
--placementオプションを使用する。 - YAML ファイルを使用する。
前提条件
- インストールされ、ブートストラップされたストレージクラスター。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
Cephadm シェルにログインします。
例
[root@host01 ~]# cephadm shell現在のホストとラベルをリスト表示します。
例
[ceph: root@host01 /]# ceph orch host ls HOST ADDR LABELS STATUS host01 _admin,mon,osd,mgr host02 mon,osd,mgr,mylabel方法 1:
--placementオプションを使用して、コマンドラインからデーモンをデプロイします。構文
ceph orch apply DAEMON --placement="label:LABEL"例
[ceph: root@host01 /]# ceph orch apply prometheus --placement="label:mylabel"方法 2: デーモンを YAML ファイルの特定のホストラベルに割り当てるには、YAML ファイルでサービスタイプおよびラベルを指定します。
placement.ymlファイルを作成します。例
[ceph: root@host01 /]# vi placement.ymlplacement.ymlファイルでサービスの種類とラベルを指定します。例
service_type: prometheus placement: label: "mylabel"デーモン配置ファイルを適用します。
構文
ceph orch apply -i FILENAME例
[ceph: root@host01 /]# ceph orch apply -i placement.yml Scheduled prometheus update…
検証
デーモンのステータスをリスト表示します。
構文
ceph orch ps --daemon_type=DAEMON_NAME例
[ceph: root@host01 /]# ceph orch ps --daemon_type=prometheus NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID prometheus.host02 host02 *:9095 running (2h) 8m ago 2h 85.3M - 2.22.2 ac25aac5d567 ad8c7593d7c0
3.15.4. ホストへのトポロジーラベルの追加 リンクのコピーリンクがクリップボードにコピーされました!
マルチラック環境でトポロジーラベルを使用すると、Cephadm がクラスター内のホストのトポロジーレイアウトを認識できるようになります。トポロジーラベルにより、特定のホストでのアップグレード操作が可能になります。
コマンドラインインターフェイスまたはホスト仕様ファイルを使用して、トポロジーラベルを追加します。
前提条件
始める前に、次の前提条件が満たされていることを確認してください。
- インストールされ、ブートストラップされたストレージクラスター。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
方法 1: コマンドラインインターフェイスを使用してトポロジーラベルを追加します。
Cephadm シェルで、host add または set-topological-labels コマンドを使用してトポロジーラベルを追加します。
ラベルは、
hardware_identifier=user_labelの形式で記述されます。ハードウェア識別子はデータセンターまたはラックを指定できます。コンマ区切りで複数のラベルを使用できます。ホストにトポロジーラベルを追加するには、次のコマンドのいずれかを使用します。
--topological-labelsオプションを指定したhost addコマンドを使用します。構文
ceph orch host add _HOSTNAME_ _IP_ADDRESS_ --topological-labels _TOPOLOGICAL_LABEL1_,_TOPOLOGICAL_LABEL2_例
ceph orch host add host02 10.10.128.69 --topological-labels datacenter=A,rack=3set-topological-labelsコマンドを使用します。重要set-topological-labelsコマンドは、既存のトポロジーラベルを上書きします。ラベルを指定せずにコマンドを実行すると、ホストのすべてのラベルがクリアされます。ラベル付きでコマンドを実行すると、ホスト上の既存のラベルが置き換えられます。このコマンドの実行中に使用されるラベルは、既存のラベルに追加されません。構文
ceph orch host set-topological-labels _HOSTNAME_ _TOPOLOGICAL_LABEL1_,_TOPOLOGICAL_LABEL2_例
ceph orch host add host02 10.10.128.69 --topological-labels datacenter=A,rack=3方法 2 サービス仕様ファイルを使用してトポロジーラベルを追加します。
ホスト仕様ファイル内からトポロジーラベルを設定します。
構文
service_type: host hostname: _HOSTNAME_ addr: _IP_ADDRESS_ toplogical_labels: _HARDWARE_IDENTIFIER1_: _USER_LABEL1_ _HARDWARE_IDENTIFIER2_: _USER_LABEL2_例
service_type: host hostname: host02 addr: 10.10.128.69 toplogical_labels: datacenter: A rack: 3
検証
-
ceph orch host ls -f yamlコマンドを使用して、ホストの既存のトポロジーラベルを見つけます。