5.3. 仕様ファイルを使用して Ceph クラスターをブートストラップする
仕様設定ファイルを使用してクラスター内のデーモンに CRUSH ロケーションを設定することで、一般的なストレッチクラスターをデプロイします。
サービス設定ファイルを使用して、クラスター内のデーモンに CRUSH ロケーションを設定します。設定ファイルを使用して、デプロイメント中にホストを適切なロケーションに追加します。
Ceph ブートストラップとさまざまな cephadm bootstrap
コマンドオプションの詳細は、Red Hat Ceph Storage インストールガイドの 新しいストレージクラスターのブートストラップ を参照してください。
クラスターの最初の Monitor ノードにするノードで cephadm bootstrap
を実行します。IP_ADDRESS
オプションは、cephadm bootstrap
を実行するために使用しているノードの IP アドレスである必要があります。
- ストレージクラスターに複数のネットワークおよびインターフェイスが含まれる場合、ストレージクラスターを使用するすべてのノードからアクセス可能なネットワークを選択するようにしてください。
-
IPV6 アドレスを使用してストレージクラスターをデプロイするには、
--mon-ip <IP_ADDRESS>
オプションに IPV6 アドレス形式を使用します。例:cephadm bootstrap --mon-ip 2620:52:0:880:225:90ff:fefc:2536 --registry-json /etc/mylogin.json
。 -
内部クラスタートラフィックをパブリックネットワーク経由でルーティングするには、
--cluster-network SUBNET
オプションを省略します。
この手順では、ネットワークの Classless Inter-Domain Routing (CIDR) は サブネット と呼ばれます。
前提条件
ノードへのルートレベルのアクセス権があることを確認してください。
手順
サービス設定 YAML ファイルを作成します。YAML ファイルは、Red Hat Ceph Storage クラスターにノードを追加し、サービスが実行される場所に特定のラベルも設定します。次の例は、必要な特定の OSD および Ceph Object Gateway (RGW) 設定によって異なります。
構文
service_type: host hostname: HOST01 addr: IP_ADDRESS01 labels: ['alertmanager', 'osd', 'installer', '_admin', 'mon', 'prometheus', 'mgr', 'grafana'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST02 addr: IP_ADDRESS02 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST03 addr: IP_ADDRESS03 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC1 --- service_type: host hostname: HOST04 addr: IP_ADDRESS04 labels: ['osd', '_admin', 'mon', 'mgr'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST05 addr: IP_ADDRESS05 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST06 addr: IP_ADDRESS06 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC2 --- service_type: host hostname: HOST07 addr: IP_ADDRESS07 labels: ['osd', '_admin', 'mon', 'mgr'] location: root: default datacenter: DC3 --- service_type: host hostname: HOST08 addr: IP_ADDRESS08 labels: ['osd', 'mon', 'mgr', 'rgw'] location: root: default datacenter: DC3 --- service_type: host hostname: HOST09 addr: IP_ADDRESS09 labels: ['osd', 'mon', 'mds'] location: root: default datacenter: DC3 --- 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 HOST07: - datacenter=DC3 HOST08: - datacenter=DC3 HOST09: - datacenter=DC3 --- service_type: mgr service_name: mgr placement: label: mgr ------ service_type: osd service_id: osds placement: label: osd spec: data_devices: all: true --------- service_type: rgw service_id: rgw.rgw.1 placement: label: rgw ------------
OSD および Object Gateway のカスタム仕様の変更に関する詳細は、次のデプロイメント手順を参照してください。* Red Hat Ceph Storage オペレーションガイドの 高度なサービス仕様を使用した Ceph OSD のデプロイ。* Red Hat Ceph Storage Object Gateway ガイドの サービス仕様を使用した Ceph Object Gateway のデプロイ。
--apply-spec
オプションを使用してストレージクラスターをブートストラップします。構文
cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url REGISTRY_URL --registry-username USER_NAME --registry-password PASSWORD
例
[root@host01 ~]# cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1
重要cephadm bootstrap
コマンドではさまざまなコマンドオプションを使用できますが、サービス設定ファイルを使用してホストのロケーションを設定するには、常に--apply-spec
オプションを含めます。cephadm
シェルにログインします。構文
cephadm shell
例
[root@host01 ~]# cephadm shell
サブネットを使用してパブリックネットワークを設定します。クラスターに複数のパブリックネットワークを設定する方法の詳細は、Red Hat Ceph Storage 設定ガイドの クラスターへの複数のパブリックネットワークの設定 を参照してください。
構文
ceph config set global public_network "SUBNET_1,SUBNET_2, ..."
例
[ceph: root@host01 /]# ceph config global mon public_network "10.0.208.0/22,10.0.212.0/22,10.0.64.0/22,10.0.56.0/22"
オプション: クラスターネットワークを設定します。クラスターに複数のクラスターネットワークを設定する方法の詳細は、Red Hat Ceph Storage 設定ガイドの プライベートネットワークの設定 を参照してください。
構文
ceph config set global cluster_network "SUBNET_1,SUBNET_2, ..."
例
[ceph: root@host01 /]# ceph config set global cluster_network "10.0.208.0/22,10.0.212.0/22,10.0.64.0/22,10.0.56.0/22"
オプション: ネットワーク設定を確認します。
構文
ceph config dump | grep network
例
[ceph: root@host01 /]# ceph config dump | grep network
デーモンを再起動します。Ceph デーモンは動的にバインドするので、特定のデーモンのネットワーク設定を変更してもクラスター全体を一度に再起動する必要はありません。
構文
ceph orch restart mon
オプション: 管理ノードで root ユーザーとしてクラスターを再起動するには、
systemctl restart
コマンドを実行します。注記クラスターの FSID を取得するには、
ceph fsid
コマンドを使用します。構文
systemctl restart ceph-FSID_OF_CLUSTER.target
例
[root@host01 ~]# systemctl restart ceph-1ca9f6a8-d036-11ec-8263-fa163ee967ad.target
検証
仕様ファイルの詳細を確認し、ブートストラップが正常にインストールされたことを確認します。
手順のステップ 1 で指定したとおりに、すべてのホストが想定されたデータセンターに配置されていることを確認します。
構文
ceph osd tree
root の下に 3 つのデータセンターがあり、それぞれの想定されるデータセンターにホストが配置されていることを確認します。
注記OSD が仕様ファイルを使用してブートストラップ中にデプロイされた場合にのみ、OSD を持つホストがブートストラップ後に存在します。
例
[root@host01 ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.87836 root default -3 0.29279 datacenter DC1 -2 0.09760 host host01-installer 0 hdd 0.02440 osd.0 up 1.00000 1.00000 12 hdd 0.02440 osd.12 up 1.00000 1.00000 21 hdd 0.02440 osd.21 up 1.00000 1.00000 29 hdd 0.02440 osd.29 up 1.00000 1.00000 -4 0.09760 host host02 1 hdd 0.02440 osd.1 up 1.00000 1.00000 9 hdd 0.02440 osd.9 up 1.00000 1.00000 18 hdd 0.02440 osd.18 up 1.00000 1.00000 28 hdd 0.02440 osd.28 up 1.00000 1.00000 -5 0.09760 host host03 8 hdd 0.02440 osd.8 up 1.00000 1.00000 16 hdd 0.02440 osd.16 up 1.00000 1.00000 24 hdd 0.02440 osd.24 up 1.00000 1.00000 34 hdd 0.02440 osd.34 up 1.00000 1.00000 -7 0.29279 datacenter DC2 -6 0.09760 host host04 4 hdd 0.02440 osd.4 up 1.00000 1.00000 13 hdd 0.02440 osd.13 up 1.00000 1.00000 20 hdd 0.02440 osd.20 up 1.00000 1.00000 27 hdd 0.02440 osd.27 up 1.00000 1.00000 -8 0.09760 host host05 3 hdd 0.02440 osd.3 up 1.00000 1.00000 10 hdd 0.02440 osd.10 up 1.00000 1.00000 19 hdd 0.02440 osd.19 up 1.00000 1.00000 30 hdd 0.02440 osd.30 up 1.00000 1.00000 -9 0.09760 host host06 7 hdd 0.02440 osd.7 up 1.00000 1.00000 17 hdd 0.02440 osd.17 up 1.00000 1.00000 26 hdd 0.02440 osd.26 up 1.00000 1.00000 35 hdd 0.02440 osd.35 up 1.00000 1.00000 -11 0.29279 datacenter DC3 -10 0.09760 host host07 5 hdd 0.02440 osd.5 up 1.00000 1.00000 14 hdd 0.02440 osd.14 up 1.00000 1.00000 23 hdd 0.02440 osd.23 up 1.00000 1.00000 32 hdd 0.02440 osd.32 up 1.00000 1.00000 -12 0.09760 host host08 2 hdd 0.02440 osd.2 up 1.00000 1.00000 11 hdd 0.02440 osd.11 up 1.00000 1.00000 22 hdd 0.02440 osd.22 up 1.00000 1.00000 31 hdd 0.02440 osd.31 up 1.00000 1.00000 -13 0.09760 host host09 6 hdd 0.02440 osd.6 up 1.00000 1.00000 15 hdd 0.02440 osd.15 up 1.00000 1.00000 25 hdd 0.02440 osd.25 up 1.00000 1.00000 33 hdd 0.02440 osd.33 up 1.00000 1.00000
- cephadm シェルから、手順のステップ 1 で指定したように、mon デーモンが CRUSH ロケーションとともにデプロイされていることを確認してください。
構文
ceph mon dump
+ すべての mon デーモンが出力に含まれており、正しい CRUSH ロケーションが追加されていることを確認します。
+ .例 --- [root@host01 ~]# ceph mon dump epoch 19 fsid b556497a-693a-11ef-b9d1-fa163e841fd7 last_changed 2024-09-03T12:47:08.419495+0000 created 2024-09-02T14:50:51.490781+0000 min_mon_release 19 (squid) election_strategy: 3 0: [v2:10.0.67.43:3300/0,v1:10.0.67.43:6789/0] mon.host01-installer; crush_location {datacenter=DC1} 1: [v2:10.0.67.20:3300/0,v1:10.0.67.20:6789/0] mon.host02; crush_location {datacenter=DC1} 2: [v2:10.0.64.242:3300/0,v1:10.0.64.242:6789/0] mon.host03; crush_location {datacenter=DC1} 3: [v2:10.0.66.17:3300/0,v1:10.0.66.17:6789/0] mon.host06; crush_location {datacenter=DC2} 4: [v2:10.0.66.228:3300/0,v1:10.0.66.228:6789/0] mon.host09; crush_location {datacenter=DC3} 5: [v2:10.0.65.125:3300/0,v1:10.0.65.125:6789/0] mon.host05; crush_location {datacenter=DC2} 6: [v2:10.0.66.252:3300/0,v1:10.0.66.252:6789/0] mon.host07; crush_location {datacenter=DC3} 7: [v2:10.0.64.145:3300/0,v1:10.0.64.145:6789/0] mon.host08; crush_location {datacenter=DC3} 8: [v2:10.0.64.125:3300/0,v1:10.0.64.125:6789/0] mon.host04; crush_location {datacenter=DC2} dumped monmap epoch 19 ---
サービス仕様とすべてのロケーション属性が正しく追加されていることを確認します。
ceph orch ls
コマンドを使用して、クラスター上の mon デーモンのサービス名を確認します。例
[root@host01 ~]# ceph orch ls NAME PORTS RUNNING REFRESHED AGE PLACEMENT alertmanager ?:9093,9094 1/1 8m ago 6d count:1 ceph-exporter 9/9 8m ago 6d * crash 9/9 8m ago 6d * grafana ?:3000 1/1 8m ago 6d count:1 mds.cephfs 3/3 8m ago 6d label:mds mgr 6/6 8m ago 6d label:mgr mon 9/9 8m ago 5d label:mon node-exporter ?:9100 9/9 8m ago 6d * osd.all-available-devices 36 8m ago 6d label:osd prometheus ?:9095 1/1 8m ago 6d count:1 rgw.rgw.1 ?:80 3/3 8m ago 6d label:rgw
ceph orch ls mon --export
コマンドを使用して、mon デーモンサービスを確認します。例
[root@host01 ~]# ceph orch ls mon --export service_type: mon service_name: mon placement: label: mon spec: crush_locations: host01-installer: - datacenter=DC1 host02: - datacenter=DC1 host03: - datacenter=DC1 host04: - datacenter=DC2 host05: - datacenter=DC2 host06: - datacenter=DC2 host07: - datacenter=DC3 host08: - datacenter=DC3 host09: - datacenter=DC3
-
cephadm shell
ceph -s
コマンドを実行して、ブートストラップが正常にインストールされたことを確認します。詳細は、クラスターのインストールの検証を参照してください。