目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Enterprise Storage 7.1マニュアル / 運用と管理ガイド / クラスタデータへのアクセス / NFS Ganesha
適用項目 SUSE Enterprise Storage 7.1

25 NFS Ganesha

NFS Ganeshaは、オペレーティングシステムカーネルの一部としてではなく、ユーザアドレススペースで動作するNFSサーバです。NFS Ganeshaを使用することで、Cephなど独自のストレージメカニズムをプラグインして、任意のNFSクライアントからアクセスできます。詳細については、8.3.6項 「NFS Ganeshaの展開」を参照してください。

注記
注記: NFS Ganeshaのパフォーマンス

NFSゲートウェイ経由でCephにアクセスすると、ネイティブのCephFSと比較してアプリケーションのパフォーマンスが大幅に低下する場合があります。これは、プロトコルオーバーヘッドが増加し、クライアントとストレージ間の余分なネットワークホップによって追加の遅延が発生するためです。

各NFS Ganeshaサービスは次のような階層状の設定から構成されます。

  • ブートストラップ用のganesha.conf

  • サービスごとのRADOS共通設定オブジェクト

  • エクスポートごとのRADOS設定オブジェクト

ブートストラップ設定は、コンテナ内でnfs-ganeshaデーモンを起動するために最小限必要な設定です。各ブートストラップ設定には%urlディレクティブが含まれます。このディレクティブにより、必要に応じてRADOS共通設定オブジェクトから追加の設定が読み込まれます。共通設定オブジェクトには追加の%urlディレクティブを含めることができます。このディレクティブはエクスポートRADOS設定オブジェクトで定義された各NFSエクスポートを対象とするものです。

NFS Ganeshaの構造
図 25.1: NFS Ganeshaの構造

25.1 NFSサービスの作成

Cephサービスの展開内容を指定する方法としては、YAMLフォーマットのファイルを作成して、展開したいサービスの仕様を記載することをお勧めします。サービスの種類ごとに個別の仕様ファイルを作成できます。また、複数(もしくは、すべて)の種類のサービスを1つのファイルで指定することも可能です。

選択した方法に応じて、NFS Ganeshaサービスを作成するために関連するYAMLフォーマットのファイルのアップデートまたは作成が必要になります。ファイルの作成の詳細については、8.2項 「サービス仕様と配置仕様」を参照してください。

ファイルのアップデートまたは作成が完了したら、次のコマンドを実行してnfs-ganeshaサービスを作成してください。

cephuser@adm > ceph orch apply -i FILE_NAME

25.2 NFS Ganeshaの起動または再起動

重要
重要

NFS Ganeshaサービスを起動してもCephFSファイルシステムは自動的にエクスポートされません。CephFSファイルシステムをエクスポートするには、エクスポート設定ファイルを作成します。詳細については、25.4項 「NFSエクスポートの作成」を参照してください。

NFS Ganeshaサービスを起動するには、次のコマンドを実行します。

cephuser@adm > ceph orch start nfs.SERVICE_ID

NFS Ganeshaサービスを再起動するには、次のコマンドを実行します。

cephuser@adm > ceph orch restart nfs.SERVICE_ID

単一のNFS Ganeshaデーモンを再起動したいだけなら、次のコマンドを実行します。

cephuser@adm > ceph orch daemon restart nfs.SERVICE_ID

NFS Ganeshaが起動または再起動した時点では、NFS v4に90秒の猶予タイムアウトが設定されています。猶予期間中、クライアントからの新しい要求はアクティブに拒否されます。したがって、NFSが猶予期間の場合、クライアントで要求の低速化が発生することがあります。

25.3 NFS回復プールのオブジェクトの一覧

NFS回復プールのオブジェクトを一覧にするには、次のコマンドを実行します。

cephuser@adm > rados --pool POOL_NAME --namespace NAMESPACE_NAME ls

25.4 NFSエクスポートの作成

NFSエクスポートは、Cephダッシュボードで作成することも、コマンドラインで手動で作成することもできます。Cephダッシュボードを使用してエクスポートを作成するには、第7章 「NFS Ganeshaの管理を参照してください。具体的には、7.1項 「NFSエクスポートの作成」を参照してください。

NFSエクスポートを手動で作成するには、エクスポート用の設定ファイルを作成します。たとえば、次の内容が含まれるファイル/tmp/export-1

EXPORT {
    export_id = 1;
    path = "/";
    pseudo = "/";
    access_type = "RW";
    squash = "no_root_squash";
    protocols = 3, 4;
    transports = "TCP", "UDP";
    FSAL {
        name = "CEPH";
        user_id = "admin";
        filesystem = "a";
        secret_access_key = "SECRET_ACCESS_KEY";
    }
}

新しいエクスポートの設定ファイルを作成して保存したら、次のコマンドを実行してエクスポートを作成します。

rados --pool POOL_NAME --namespace NAMESPACE_NAME put EXPORT_NAME EXPORT_CONFIG_FILE

例:

cephuser@adm > rados --pool example_pool --namespace example_namespace put export-1 /tmp/export-1
注記
注記

希望するcephxユーザIDとシークレットアクセスキーが含まれるように、FSALブロックを修正する必要があります。

25.5 NFSエクスポートの確認

NFS v4は疑似ファイルシステムのルートにエクスポートのリストを作成します。NFS Ganeshaサーバノードの/をマウントすることで、NFS共有がエクスポートされたことを確認できます。

# mount -t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint
# ls /path/to/local/mountpoint cephfs
注記
注記: NFS Ganeshaはv4のみ

デフォルトでは、cephadmがNFS v4サーバを設定します。NFS v4はrpcbindデーモンともmountdデーモンとも対話しません。showmountのなどのNFSクライアントツールは設定済みエクスポートを表示しません。

25.6 NFSエクスポートのマウント

エクスポートされたNFS共有をクライアントホストにマウントするには、次のコマンドを実行します。

# mount -t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint

25.7 複数のNFS Ganeshaクラスタ

複数のNFS Ganeshaクラスタを定義できます。これにより、次のことが実現できます。

  • CephFSへのアクセスのために分離されたNFS Ganeshaクラスタ。