11.11. Ceph Orchestrator を使用したカスタム NFS-Ganesha 設定の設定

NFS-Ganesha クラスターはデフォルトの設定ブロックで定義されます。Ceph Orchestrator を使用すると、設定をカスタマイズでき、デフォルトの設定ブロックよりも優先されます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ホストがクラスターに追加されている。
  • すべてのマネージャー、モニター、および OSD デーモンがデプロイされている。
  • mgr/nfs モジュールを使用して作成された NFS-Ganesha クラスター。

手順

  1. Cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. 以下は、NFS-Ganesha クラスターのデフォルト設定の例です。

    # {{ cephadm_managed }}
    NFS_CORE_PARAM {
            Enable_NLM = false;
            Enable_RQUOTA = false;
            Protocols = 4;
    }
    
    MDCACHE {
            Dir_Chunk = 0;
    }
    
    EXPORT_DEFAULTS {
            Attr_Expiration_Time = 0;
    }
    
    NFSv4 {
            Delegations = false;
            RecoveryBackend = 'rados_cluster';
            Minor_Versions = 1, 2;
    }
    
    RADOS_KV {
            UserId = "{{ user }}";
            nodeid = "{{ nodeid}}";
            pool = "{{ pool }}";
            namespace = "{{ namespace }}";
    }
    
    RADOS_URLS {
            UserId = "{{ user }}";
            watch_url = "{{ url }}";
    }
    
    RGW {
            cluster = "ceph";
            name = "client.{{ rgw_user }}";
    }
    
    %url    {{ url }}

  3. NFS-Ganesha クラスター設定をカスタマイズします。以下は、設定をカスタマイズする 2 つの例です。

    • ログレベルを変更します。

      LOG {
       COMPONENTS {
           ALL = FULL_DEBUG;
       }
      }

    • カスタムエクスポートブロックを追加します。

      1. ユーザーを作成します。

        注記

        FSAL ブロックで指定されたユーザーは、NFS-Ganesha デーモンが Ceph ク ラスターにアクセスするための適切な上限を設定する必要があります。

        構文

        ceph auth get-or-create client.USER_ID mon 'allow r' osd 'allow rw pool=.nfs namespace=NFS_CLUSTER_NAME, allow rw tag cephfs data=FS_NAME' mds 'allow rw path=EXPORT_PATH'

        [ceph: root@host01 /]# ceph auth get-or-create client.f64f341c-655d-11eb-8778-fa163e914bcc mon 'allow r' osd 'allow rw pool=.nfs namespace=nfs_cluster_name, allow rw tag cephfs data=fs_name' mds 'allow rw path=export_path'

      2. 以下のディレクトリーに移動します。

        構文

        cd /var/lib/ceph/DAEMON_PATH/

        [ceph: root@host01 /]# cd /var/lib/ceph/nfs/

        nfs ディレクトリーが存在しない場合は、パス上に作成します。

      3. 新しい設定ファイルを作成します。

        構文

        touch PATH_TO_CONFIG_FILE

        [ceph: root@host01 nfs]#  touch nfs-ganesha.conf

      4. カスタムエクスポートブロックを追加して設定ファイルを編集します。1 つのエクスポートを作成し、これは Ceph NFS エクスポートインターフェイスによって管理されます。

        構文

        EXPORT {
          Export_Id = NUMERICAL_ID;
          Transports = TCP;
          Path = PATH_WITHIN_CEPHFS;
          Pseudo = BINDING;
          Protocols = 4;
          Access_Type = PERMISSIONS;
          Attr_Expiration_Time = 0;
          Squash = None;
          FSAL {
            Name = CEPH;
            Filesystem = "FILE_SYSTEM_NAME";
            User_Id = "USER_NAME";
            Secret_Access_Key = "USER_SECRET_KEY";
          }
        }

        EXPORT {
          Export_Id = 100;
          Transports = TCP;
          Path = /;
          Pseudo = /ceph/;
          Protocols = 4;
          Access_Type = RW;
          Attr_Expiration_Time = 0;
          Squash = None;
          FSAL {
            Name = CEPH;
            Filesystem = "filesystem name";
            User_Id = "user id";
            Secret_Access_Key = "secret key";
          }
        }

  4. 新しい設定をクラスターに適用します。

    構文

    ceph nfs cluster config set CLUSTER_NAME -i PATH_TO_CONFIG_FILE

    [ceph: root@host01 nfs]# ceph nfs cluster config set nfs-ganesha -i /var/lib/ceph/nfs/nfs-ganesha.conf

    これにより、カスタム設定のサービスも再起動されます。

検証

  • サービスをリスト表示します。

    [ceph: root@host01 /]# ceph orch ls

  • ホスト、デーモン、およびプロセスをリスト表示します。

    構文

    ceph orch ps --daemon_type=DAEMON_NAME

    [ceph: root@host01 /]# ceph orch ps --daemon_type=nfs

  • カスタム設定を確認します。

    構文

    /bin/rados -p POOL_NAME -N CLUSTER_NAME get userconf-nfs.CLUSTER_NAME -

    [ceph: root@host01 /]# /bin/rados -p nfs-ganesha -N nfsganesha get userconf-nfs.nfsganesha -

関連情報