25 NFS Ganesha #
NFS Ganeshaは、オペレーティングシステムカーネルの一部としてではなく、ユーザアドレススペースで動作するNFSサーバです。NFS Ganeshaを使用することで、Cephなど独自のストレージメカニズムをプラグインして、任意のNFSクライアントからアクセスできます。詳細については、5.4.3.6項 「NFS Ganeshaの展開」を参照してください。
NFSゲートウェイ経由でCephにアクセスすると、ネイティブのCephFSと比較してアプリケーションのパフォーマンスが大幅に低下する場合があります。これは、プロトコルオーバーヘッドが増加し、クライアントとストレージ間の余分なネットワークホップによって追加の遅延が発生するためです。
各NFS Ganeshaサービスは次のような階層状の設定から構成されます。
ブートストラップ用の
ganesha.confサービスごとのRADOS共通設定オブジェクト
エクスポートごとのRADOS設定オブジェクト
ブートストラップ設定は、コンテナ内でnfs-ganeshaデーモンを起動するために最小限必要な設定です。各ブートストラップ設定には%urlディレクティブが含まれます。このディレクティブにより、必要に応じてRADOS共通設定オブジェクトから追加の設定が読み込まれます。共通設定オブジェクトには追加の%urlディレクティブを含めることができます。このディレクティブはエクスポートRADOS設定オブジェクトで定義された各NFSエクスポートを対象とするものです。
25.1 NFSサービスの作成 #
Cephサービスの展開内容を指定する方法としては、YAMLフォーマットのファイルを作成して、展開したいサービスの仕様を記載することをお勧めします。サービスの種類ごとに個別の仕様ファイルを作成できます。また、複数(もしくは、すべて)の種類のサービスを1つのファイルで指定することも可能です。
選択した方法に応じて、NFS Ganeshaサービスを作成するために関連するYAMLフォーマットのファイルのアップデートまたは作成が必要になります。ファイルの作成の詳細については、5.4.2項 「サービス仕様と配置仕様」を参照してください。
ファイルのアップデートまたは作成が完了したら、次のコマンドを実行してnfs-ganeshaサービスを作成してください。
cephuser@adm > ceph orch apply -i FILE_NAME25.2 NFS Ganeshaの起動または再起動 #
NFS Ganeshaサービスを起動するには、次のコマンドを実行します。
cephuser@adm > ceph orch start nfs.SERVICE_IDNFS Ganeshaサービスを再起動するには、次のコマンドを実行します。
cephuser@adm > ceph orch restart nfs.SERVICE_ID単一のNFS Ganeshaデーモンを再起動したいだけなら、次のコマンドを実行します。
cephuser@adm > ceph orch daemon restart nfs.SERVICE_IDNFS Ganeshaが起動または再起動した時点では、NFS v4に90秒の猶予タイムアウトが設定されています。猶予期間中、クライアントからの新しい要求はアクティブに拒否されます。したがって、NFSが猶予期間の場合、クライアントで要求の低速化が発生することがあります。
25.3 NFS回復プールのオブジェクトの一覧 #
NFS回復プールのオブジェクトを一覧にするには、次のコマンドを実行します。
cephuser@adm > rados --pool POOL_NAME --namespace NAMESPACE_NAME ls25.4 NFSエクスポートの作成 #
NFSエクスポートを作成するには、次のコマンドを実行します。
希望するcephxユーザIDとシークレットアクセスキーが含まれるように、FSALブロックを修正する必要があります。
cephuser@adm > rados --pool POOL_NAME --namespace NAMESPACE_NAME put export-1 export-125.5 NFSエクスポートの確認 #
NFS v4は疑似ファイルシステムのルートにエクスポートのリストを作成します。NFS Ganeshaサーバノードの/をマウントすることで、NFS共有がエクスポートされたことを確認できます。
root #mount-t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpointroot #ls/path/to/local/mountpoint cephfs
デフォルトでは、cephadmがNFS v4サーバを設定します。NFS v4はrpcbindデーモンともmountdデーモンとも対話しません。showmountのなどのNFSクライアントツールは設定済みエクスポートを表示しません。
25.6 NFSエクスポートのマウント #
エクスポートされたNFS共有をクライアントホストにマウントするには、次のコマンドを実行します。
root #mount-t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint
25.7 複数のNFS Ganeshaクラスタ #
複数のNFS Ganeshaクラスタを定義できます。これにより、次のことが実現できます。
CephFSへのアクセスのために分離されたNFS Ganeshaクラスタ。
