11.7. 仕様ファイルを使用した HA for CephFS/NFS のデプロイ
仕様ファイルを使用して HA for CephFS/NFS をデプロイするには、最初に NFS サービスをデプロイしてから、同じ NFS サービスに ingress
をデプロイします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ホストがクラスターに追加されている。
- すべてのマネージャー、モニター、および OSD デーモンがデプロイされている。
- NFS モジュールが有効になっていることを確認している。
手順
Cephadm シェルにログインします。
例
[root@host01 ~]# cephadm shell
NFS モジュールが有効になっていることを確認します。
例
[ceph: root@host01 /]# ceph mgr module ls | more
Cephadm シェルを終了し、
nfs.yaml
ファイルを作成します。例
[root@host01 ~]# touch nfs.yaml
nfs.yaml
ファイルを編集し、以下の詳細を含めます。構文
service_type: nfs service_id: SERVICE_ID placement: hosts: - HOST_NAME_1 - HOST_NAME_2 count: COUNT spec: port: PORT_NUMBER
注記NFS サービスに割り当てるホストの数は、デプロイを要求するアクティブな NFS サーバーの数 (
placement: count
パラメーターで指定) よりも大きくする必要があります。例
service_type: nfs service_id: cephfsnfs placement: hosts: - host02 - host03 count: 1 spec: port: 12345
この例では、サーバーは、host02 と host03 のデフォルトポート
2049
ではなく、デフォルト以外のポート12345
で実行されます。YAML ファイルをコンテナー内のディレクトリーにマウントします。
例
[root@host01 ~]# cephadm shell --mount nfs.yaml:/var/lib/ceph/nfs.yaml
Cephadm シェルにログインし、ディレクトリーに移動します。
例
[ceph: root@host01 /]# cd /var/lib/ceph/
サービス仕様を使用して NFS サービスをデプロイします。
構文
ceph orch apply -i FILE_NAME.yaml
例
[ceph: root@host01 ceph]# ceph orch apply -i nfs.yaml
注記NFS サービスのデプロイメントは非同期で行われるため、サービスが完全に開始される前にコマンドが返ってくる可能性があります。
NFS サービスが正常に開始されたことを確認します。
構文
ceph orch ls --service_name=nfs.CLUSTER_ID
例
[ceph: root@host01 /]# ceph orch ls --service_name=nfs.cephfsnfs NAME PORTS RUNNING REFRESHED AGE PLACEMENT nfs.cephfsnfs ?:12345 2/2 3m ago 13m host02;host03
Cephadm シェルを終了し、
ingress.yaml
ファイルを作成します。例
[root@host01 ~]# touch ingress.yaml
ingress.yaml
ファイルを編集して、以下の詳細を含めます。構文
service_type: SERVICE_TYPE service_id: SERVICE_ID placement: count: PLACEMENT spec: backend_service: SERVICE_ID_BACKEND frontend_port: FRONTEND_PORT monitor_port: MONITOR_PORT virtual_ip: VIRTUAL_IP_WITH_CIDR
例
service_type: ingress service_id: nfs.cephfsnfs placement: count: 2 spec: backend_service: nfs.cephfsnfs frontend_port: 2049 monitor_port: 9000 virtual_ip: 10.10.128.75/22
注記この例では、
placement: count: 2
はkeepalived
およびhaproxy
サービスをランダムなノードにデプロイします。keepalived
とhaproxy
をデプロイするノードを指定するには、placement: hosts
オプションを使用します。例
service_type: ingress service_id: nfs.cephfsnfs placement: hosts: - host02 - host03
YAML ファイルをコンテナー内のディレクトリーにマウントします。
例
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/ingress.yaml
Cephadm シェルにログインし、ディレクトリーに移動します。
例
[ceph: root@host01 /]# cd /var/lib/ceph/
サービス仕様を使用して
ingress
サービスをデプロイします。構文
ceph orch apply -i FILE_NAME.yaml
例
[ceph: root@host01 ceph]# ceph orch apply -i ingress.yaml
Ingress サービスが正常に開始されたことを確認します。
構文
ceph orch ls --service_name=ingress.nfs.CLUSTER_ID
例
[ceph: root@host01 /]# ceph orch ls --service_name=ingress.nfs.cephfsnfs NAME PORTS RUNNING REFRESHED AGE PLACEMENT ingress.nfs.cephfsnfs 10.10.128.75:2049,9000 4/4 4m ago 22m count:2
検証
IP エンドポイント、個々の NFS デーモンの IP、および
ingress
サービスの仮想 IP を表示します。構文
ceph nfs cluster info CLUSTER_ID
例
[ceph: root@host01 /]# ceph nfs cluster info cephfsnfs { "cephfsnfs": { "virtual_ip": "10.10.128.75", "backend": [ { "hostname": "host02", "ip": "10.10.128.69", "port": 12345 }, { "hostname": "host03", "ip": "10.10.128.70", "port": 12345 } ], "port": 2049, "monitor_port": 9049 } }
ホストおよびプロセスをリスト表示します。
例
[ceph: root@host01 /]# ceph orch ps | grep nfs haproxy.nfs.cephfsnfs.host01.ruyyhq host01 *:2049,9000 running (27m) 6m ago 34m 9.85M - 2.2.19-7ea3822 5e6a41d77b38 328d27b3f706 haproxy.nfs.cephfsnfs.host02.ctrhha host02 *:2049,9000 running (34m) 6m ago 34m 4944k - 2.2.19-7ea3822 5e6a41d77b38 4f4440dbfde9 keepalived.nfs.cephfsnfs.host01.fqgjxd host01 running (27m) 6m ago 34m 31.2M - 2.1.5 18fa163ab18f 0e22b2b101df keepalived.nfs.cephfsnfs.host02.fqzkxb host02 running (34m) 6m ago 34m 17.5M - 2.1.5 18fa163ab18f c1e3cc074cf8 nfs.cephfsnfs.0.0.host02.emoaut host02 *:12345 running (37m) 6m ago 37m 82.7M - 3.5 91322de4f795 2d00faaa2ae5 nfs.cephfsnfs.1.0.host03.nsxcfd host03 *:12345 running (37m) 6m ago 37m 81.1M - 3.5 91322de4f795 d4bda4074f17
関連情報
- クライアントホストに NFS エクスポートをマウントする方法の詳細については、Red Hat Ceph Storage File System Guide の Exporting Ceph File System namespaces over the NFS protocol セクションを参照してください。