11.6. HA용 독립 실행형 CephFS/NFS 클러스터 업그레이드

스토리지 관리자는 기존 NFS 서비스에 수신 서비스를 배포하여 독립 실행형 스토리지 클러스터를 HA(고가용성) 클러스터로 업그레이드할 수 있습니다.

사전 요구 사항

  • 기존 NFS 서비스를 사용하여 실행 중인 Red Hat Ceph Storage 클러스터.
  • 호스트는 클러스터에 추가됩니다.
  • 모든 manager, monitor, OSD 데몬이 배포됩니다.
  • NFS 모듈이 활성화되었는지 확인합니다.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell

  2. 기존 NFS 클러스터를 나열합니다.

    예제

    [ceph: root@host01 /]# ceph nfs cluster ls
    
    mynfs

    참고

    독립 실행형 NFS 클러스터가 하나의 노드에 생성되는 경우 HA의 두 개 이상의 노드로 늘려야 합니다. NFS 서비스를 늘리려면 nfs.yaml 파일을 편집하고 동일한 포트 번호로 배치를 늘립니다.

    NFS 서비스에 할당한 호스트 수는 deploy : count 매개변수로 지정하는 활성 NFS 서버 수보다 커야 합니다.

    구문

    service_type: nfs
    service_id: SERVICE_ID
    placement:
      hosts:
        - HOST_NAME_1
        - HOST_NAME_2
      count: COUNT
    spec:
      port: PORT_NUMBER

    예제

    service_type: nfs
    service_id: mynfs
    placement:
      hosts:
        - host02
        - host03
      count: 1
    spec:
      port: 12345

    이 예에서는 기존 NFS 서비스가 포트 12345 에서 실행되고 있으며 동일한 포트가 있는 NFS 클러스터에 추가 노드가 추가됩니다.

    nfs.yaml 서비스 사양 변경 사항을 적용하여 두 개의 노드 NFS 서비스로 업그레이드합니다.

    예제

    [ceph: root@host01 ceph]# ceph orch apply -i nfs.yaml

  3. 기존 NFS 클러스터 ID를 사용하여 ingress.yaml 사양 파일을 편집합니다.

    구문

    service_type: SERVICE_TYPE
    service_id: SERVICE_ID
    placement:
      count: PLACEMENT
    spec:
      backend_service: SERVICE_ID_BACKEND 1
      frontend_port: FRONTEND_PORT
      monitor_port: MONITOR_PORT 2
      virtual_ip: VIRTUAL_IP_WITH_CIDR

    1
    SERVICE_ID_BACKEND 에는 동일한 호스트에 배치될 수 있는 수신 서비스와 충돌하지 않도록 2049 가 아닌 PORT 속성이 포함되어야 합니다.
    2
    MONITOR_PORT 는 haproxy 부하 상태 페이지에 액세스하는 데 사용됩니다.

    예제

    service_type: ingress
    service_id: nfs.mynfs
    placement:
      count: 2
    spec:
      backend_service: nfs.mynfs
      frontend_port: 2049
      monitor_port: 9000
      virtual_ip: 10.10.128.75/22

  4. 수신 서비스를 배포합니다.

    예제

    [ceph: root@host01 /]# ceph orch apply -i ingress.yaml

    참고

    NFS 데몬과 수신 서비스는 비동기적으로 배포되고 서비스가 완전히 시작되기 전에 명령이 반환됩니다.

  5. 수신 서비스가 성공적으로 시작되었는지 확인합니다.

    구문

    ceph orch ls --service_name=ingress.nfs.CLUSTER_ID

    예제

    [ceph: root@host01 /]# ceph orch ls --service_name=ingress.nfs.mynfs
    
    NAME                   PORTS                  RUNNING  REFRESHED  AGE  PLACEMENT
    ingress.nfs.mynfs  10.10.128.75:2049,9000      4/4   4m ago     22m  count:2

검증

  • Ingress 서비스의 IP 끝점, 개별 NFS 데몬의 IP, 가상 IP를 확인합니다.

    구문

    ceph nfs cluster info CLUSTER_ID

    예제

    [ceph: root@host01 /]# ceph nfs cluster info mynfs
    
    {
        "mynfs": {
            "virtual_ip": "10.10.128.75",
            "backend": [
                {
                    "hostname": "host02",
                    "ip": "10.10.128.69",
                    "port": 12049
                },
                {
                    "hostname": "host03",
                    "ip": "10.10.128.70",
                    "port": 12049
                }
            ],
            "port": 2049,
            "monitor_port": 9049
        }
    }

  • 호스트 및 프로세스를 나열합니다.

    예제

    [ceph: root@host01 /]# ceph orch ps | grep nfs
    
    haproxy.nfs.mynfs.host01.ruyyhq     host01  *:2049,9000  running (27m)     6m ago  34m    9.85M        -  2.2.19-7ea3822   5e6a41d77b38  328d27b3f706
    haproxy.nfs.mynfs.host02.ctrhha     host02  *:2049,9000  running (34m)     6m ago  34m    4944k        -  2.2.19-7ea3822   5e6a41d77b38  4f4440dbfde9
    keepalived.nfs.mynfs.host01.fqgjxd  host01               running (27m)     6m ago  34m    31.2M        -  2.1.5            18fa163ab18f  0e22b2b101df
    keepalived.nfs.mynfs.host02.fqzkxb  host02               running (34m)     6m ago  34m    17.5M        -  2.1.5            18fa163ab18f  c1e3cc074cf8
    nfs.mynfs.0.0.host02.emoaut         host02  *:12345      running (37m)     6m ago  37m    82.7M        -  3.5              91322de4f795  2d00faaa2ae5
    nfs.mynfs.1.0.host03.nsxcfd         host03  *:12345      running (37m)     6m ago  37m    81.1M        -  3.5              91322de4f795  d4bda4074f17