11.5. HA for CephFS/NFS サービスの実装 (テクノロジープレビュー)
--ingress
フラグを使用し、仮想 IP アドレスを指定することで、高可用性 (HA) フロントエンド、仮想 IP、およびロードバランサーを備えた NFS をデプロイできます。これにより、keepalived
と haproxy
の組み合わせがデプロイされ、NFS サービスに高可用性の NFS フロントエンドが提供されます。
--ingress
フラグを指定してクラスターを作成すると、NFS サーバーの負荷分散と高可用性を提供するために、Ingress サービスが追加でデプロイされます。仮想 IP は、すべての NFS クライアントがマウントに使用できる既知の安定した NFS エンドポイントを提供するために使用されます。Ceph は、仮想 IP 上の NFS トラフィックを適切なバックエンド NFS サーバーにリダイレクトする詳細を処理し、失敗した場合に NFS サーバーを再デプロイします。
既存のサービスに Ingress サービスをデプロイすると、以下が提供されます。
- NFS サーバーへのアクセスに使用できる安定した仮想 IP。
- 複数の NFS ゲートウェイに負荷を分散します。
- ホストに障害が発生した場合のホスト間のフェイルオーバー。
HA for CephFS/NFS はテクノロジープレビュー機能のみになります。テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。詳細は、Red Hat テクノロジープレビュー機能のサポート範囲 を参照してください。
ingress
サービスが NFS クラスターの前にデプロイされると、バックエンドの NFS-ganesha サーバーは、クライアントの IP アドレスではなく、haproxy の IP アドレスを認識します。その結果、IP アドレスに基づいてクライアントアクセスを制限している場合、NFS エクスポートのアクセス制限は想定どおりに機能しません。
クライアントにサービスを提供しているアクティブな NFS サーバーがダウンした場合、クライアントの I/O は、アクティブな NFS サーバーの代替サーバーがオンラインになり、NFS クラスターが再びアクティブになるまで中断されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ホストがクラスターに追加されている。
- すべてのマネージャー、モニター、および OSD デーモンがデプロイされている。
- NFS モジュールが有効になっていることを確認している。
手順
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --ingress
フラグを使用して NFS クラスターを作成します。構文
ceph nfs cluster create CLUSTER_ID [PLACEMENT] [--port PORT_NUMBER] [--ingress --virtual-ip IP_ADDRESS/CIDR_PREFIX]
ceph nfs cluster create CLUSTER_ID [PLACEMENT] [--port PORT_NUMBER] [--ingress --virtual-ip IP_ADDRESS/CIDR_PREFIX]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CLUSTER_ID を一意の文字列に置き換えて、NFS Ganesha クラスターに名前を付けます。
- PLACEMENT を、デプロイする NFS サーバーの数と、NFS Ganesha デーモンコンテナーをデプロイするホスト (1 つまたは複数) に置き換えます。
-
--port
PORT_NUMBER フラグを使用して、デフォルトのポート 2049 以外のポートに NFS をデプロイします。 -
--ingress
フラグを--virtual-ip
フラグと組み合わせると、高可用性フロントエンド (仮想 IP およびロードバランサー) を使用して NFS がデプロイされます。 --virtual-ip
IP_ADDRESS を IP アドレスに置き換えて、すべてのクライアントが NFS エクスポートをマウントするために使用できる既知の安定した NFS エンドポイントを提供します。--virtual-ip
には、CIDR 接頭辞長を含める必要があります。仮想 IP は通常、同じサブネット内に既存の IP を持つ最初に識別されたネットワークインターフェイスで設定されます。注記NFS サービスに割り当てるホストの数は、デプロイを要求するアクティブな NFS サーバーの数 (
placement: count
パラメーターで指定) よりも大きくする必要があります。以下の例では、1 つのアクティブな NFS サーバーが要求され、2 つのホストが割り当てられます。例
[ceph: root@host01 /]# ceph nfs cluster create mycephnfs "1 host02 host03" --ingress --virtual-ip 10.10.128.75/22
[ceph: root@host01 /]# ceph nfs cluster create mycephnfs "1 host02 host03" --ingress --virtual-ip 10.10.128.75/22
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記NFS デーモンと Ingress サービスのデプロイメントは非同期であり、サービスが完全に開始される前にコマンドが返される場合があります。
サービスが正常に開始されたことを確認します。
構文
ceph orch ls --service_name=nfs.CLUSTER_ID ceph orch ls --service_name=ingress.nfs.CLUSTER_ID
ceph orch ls --service_name=nfs.CLUSTER_ID ceph orch ls --service_name=ingress.nfs.CLUSTER_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
IP エンドポイント、個々の NFS デーモンの IP、および
ingress
サービスの仮想 IP を表示します。構文
ceph nfs cluster info CLUSTER_ID
ceph nfs cluster info CLUSTER_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストおよびプロセスをリスト表示します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow