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 클러스터 구성을 사용자 지정합니다. 다음은 구성을 사용자 지정하는 두 가지 예입니다.

    • 로그 수준을 변경합니다.

      예제

      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. 사용자 지정 내보내기 블록을 추가하여 구성 파일을 편집합니다. 단일 내보내기를 생성하고 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 -

추가 리소스