3.5.2. cephadm ユーティリティーを使用したクラスターのブートストラップとサービスのデプロイメント
cephadm ユーティリティーは、cephadm ブートストラップコマンドが実行されているローカルノード上に、新しい Red Hat Ceph Storage クラスターの単一の Ceph Monitor デーモンと Ceph Manager デーモンをインストールし、開始します。
このガイドでは、クラスター仕様の yaml ファイルを使用して、クラスターをブートストラップし、必要なすべての Red Hat Ceph Storage サービスをワンステップでデプロイします。
展開中に問題が見つかった場合は、展開を 2 つの手順に分割することで、エラーのトラブルシューティングが容易になる場合があります。
- ブートストラップ
- サービスの展開
ブートストラッププロセスの詳細は、新規ストレージクラスターのブートストラップ を参照してください。
手順
次のように、json ファイルを使用してコンテナーレジストリーに対して認証を行うための json ファイルを作成します。
$ cat <<EOF > /root/registry.json { "url":"registry.redhat.io", "username":"User", "password":"Pass" } EOFRed Hat Ceph Storage クラスターにノードを追加する
cluster-spec.yamlを作成し、表 3.1 に従ってサービスを実行する場所に特定のラベルを設定します。cat <<EOF > /root/cluster-spec.yaml service_type: host addr: 10.0.40.78 ## <XXX.XXX.XXX.XXX> hostname: ceph1 ## <ceph-hostname-1> location: root: default datacenter: DC1 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.35 hostname: ceph2 location: datacenter: DC1 labels: - osd - mon --- service_type: host addr: 10.0.40.24 hostname: ceph3 location: datacenter: DC1 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.185 hostname: ceph4 location: root: default datacenter: DC2 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.88 hostname: ceph5 location: datacenter: DC2 labels: - osd - mon --- service_type: host addr: 10.0.40.66 hostname: ceph6 location: datacenter: DC2 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.221 hostname: ceph7 labels: - mon --- service_type: mon placement: label: "mon" --- service_type: mds service_id: cephfs placement: label: "mds" --- service_type: mgr service_name: mgr placement: label: "mgr" --- service_type: osd service_id: all-available-devices service_name: osd.all-available-devices placement: label: "osd" spec: data_devices: all: true --- service_type: rgw service_id: objectgw service_name: rgw.objectgw placement: count: 2 label: "rgw" spec: rgw_frontend_port: 8080 EOFブートストラップノードから設定された Red Hat Ceph Storage パブリックネットワークで NIC の IP を取得します。
10.0.40.0を ceph パブリックネットワークで定義したサブネットに置き換えた後、次のコマンドを実行します。$ ip a | grep 10.0.40出力例:
10.0.40.78クラスター内の最初の Monitor ノードとなるノードで、root ユーザーとして
cephadmbootstrap コマンドを実行します。IP_ADDRESSオプションは、cephadm bootstrapコマンドの実行に使用しているノードの IP アドレスです。注記パスワードなしの SSH アクセス用に
rootではなく別のユーザーを設定した場合は、cepadm bootstrapコマンドで--ssh-user=フラグを使用します。default/id_rsa ssh キー名以外を使用している場合は、
cephadmコマンドで--ssh-private-keyおよび--ssh-public-keyオプションを使用します。$ cephadm bootstrap --ssh-user=deployment-user --mon-ip 10.0.40.78 --apply-spec /root/cluster-spec.yaml --registry-json /root/registry.json重要ローカルノードが完全修飾ドメイン名 (FQDN) を使用する場合は、コマンドラインで
--allow-fqdn-hostnameオプションをcephadm bootstrapに追加します。ブートストラップが終了すると、前の cephadm bootstrap コマンドから次の出力が表示されます。
You can access the Ceph CLI with: sudo /usr/sbin/cephadm shell --fsid dd77f050-9afe-11ec-a56c-029f8148ea14 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring Consider enabling telemetry to help improve Ceph: ceph telemetry on For more information see: https://docs.ceph.com/docs/pacific/mgr/telemetry/ceph1 の Ceph CLI クライアントを使用して、Red Hat Ceph Storage クラスターデプロイメントのステータスを確認します。
$ ceph -s出力例:
cluster: id: 3a801754-e01f-11ec-b7ab-005056838602 health: HEALTH_OK services: mon: 5 daemons, quorum ceph1,ceph2,ceph4,ceph5,ceph7 (age 4m) mgr: ceph1.khuuot(active, since 5m), standbys: ceph4.zotfsp osd: 12 osds: 12 up (since 3m), 12 in (since 4m) rgw: 2 daemons active (2 hosts, 1 zones) data: pools: 5 pools, 107 pgs objects: 191 objects, 5.3 KiB usage: 105 MiB used, 600 GiB / 600 GiB avail 105 active+clean注記すべてのサービスが開始されるまでに数分かかる場合があります。
OSD が設定されていないときに、グローバルリカバリーイベントが発生するのは正常です。
ceph orch psおよびceph orch lsを使用して、サービスのステータスをさらに確認できます。すべてのノードが
cephadmクラスターの一部であるかどうかを確認します。$ ceph orch host ls出力例:
HOST ADDR LABELS STATUS ceph1 10.0.40.78 _admin osd mon mgr ceph2 10.0.40.35 osd mon ceph3 10.0.40.24 osd mds rgw ceph4 10.0.40.185 osd mon mgr ceph5 10.0.40.88 osd mon ceph6 10.0.40.66 osd mds rgw ceph7 10.0.40.221 mon注記ceph1は [admin] グループの一部としてcephadm-ansibleインベントリーで設定されているため、ホストから Ceph コマンドを直接実行できます。Ceph 管理キーは、cephadm bootstrapプロセス中にホストにコピーされました。データセンターでの Ceph モニターサービスの現在の配置を確認します。
$ ceph orch ps | grep mon | awk '{print $1 " " $2}'出力例:
mon.ceph1 ceph1 mon.ceph2 ceph2 mon.ceph4 ceph4 mon.ceph5 ceph5 mon.ceph7 ceph7データセンターでの Ceph 管理サービスの現在の配置を確認します。
$ ceph orch ps | grep mgr | awk '{print $1 " " $2}'出力例:
mgr.ceph2.ycgwyz ceph2 mgr.ceph5.kremtt ceph5ceph osd クラッシュマップレイアウトをチェックして、各ホストに 1 つの OSD が設定され、そのステータスが
UPであることを確認します。また、表 3.1 で指定されているように、各ノードが適切なデータセンターバケットの下にあることを再確認してください。$ ceph osd tree出力例:
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.87900 root default -16 0.43950 datacenter DC1 -11 0.14650 host ceph1 2 ssd 0.14650 osd.2 up 1.00000 1.00000 -3 0.14650 host ceph2 3 ssd 0.14650 osd.3 up 1.00000 1.00000 -13 0.14650 host ceph3 4 ssd 0.14650 osd.4 up 1.00000 1.00000 -17 0.43950 datacenter DC2 -5 0.14650 host ceph4 0 ssd 0.14650 osd.0 up 1.00000 1.00000 -9 0.14650 host ceph5 1 ssd 0.14650 osd.1 up 1.00000 1.00000 -7 0.14650 host ceph6 5 ssd 0.14650 osd.5 up 1.00000 1.00000新しい RDB ブロックプールを作成して有効にします。
$ ceph osd pool create 32 32 $ ceph osd pool application enable rbdpool rbd注記コマンドの最後にある 32 という数字は、このプールに割り当てられている PG の数です。PG の数は、クラスター内の OSD の数、プールの予想使用率など、いくつかの要因によって異なります。次の計算機を使用して、必要な PG の数を決定できます。プール計算機ごとの Ceph 配置グループ (PG)。
RBD プールが作成されたことを確認します。
$ ceph osd lspools | grep rbdpool出力例:
3 rbdpoolMDS サービスがアクティブであり、各データセンターに 1 つのサービスが配置されていることを確認します。
$ ceph orch ps | grep mds出力例:
mds.cephfs.ceph3.cjpbqo ceph3 running (17m) 117s ago 17m 16.1M - 16.2.9 mds.cephfs.ceph6.lqmgqt ceph6 running (17m) 117s ago 17m 16.1M - 16.2.9CephFS ボリュームを作成します。
$ ceph fs volume create cephfs注記ceph fs volume createコマンドは、必要なデータとメタ CephFS プールも作成します。詳細は、Ceph ファイルシステムの設定とマウント を参照してください。Cephのステータスを確認して、MDS デーモンがどのようにデプロイされたかを確認します。状態がアクティブで、ceph6がこのファイルシステムのプライマリー MDS で、ceph3がセカンダリー MDS であることを確認します。$ ceph fs status出力例:
cephfs - 0 clients ====== RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS 0 active cephfs.ceph6.ggjywj Reqs: 0 /s 10 13 12 0 POOL TYPE USED AVAIL cephfs.cephfs.meta metadata 96.0k 284G cephfs.cephfs.data data 0 284G STANDBY MDS cephfs.ceph3.ogcqklRGW サービスがアクティブであることを確認します。
$ ceph orch ps | grep rgw出力例:
rgw.objectgw.ceph3.kkmxgb ceph3 *:8080 running (7m) 3m ago 7m 52.7M - 16.2.9 rgw.objectgw.ceph6.xmnpah ceph6 *:8080 running (7m) 3m ago 7m 53.3M - 16.2.9