1.9. Red Hat Ceph Storage 사전 요구 사항


컨트롤러 노드에서 Red Hat Ceph Storage 클러스터 데몬을 마이그레이션하기 전에 Red Hat OpenStack Platform 17.1 환경에서 다음 작업을 완료합니다.

  • Red Hat Ceph Storage 클러스터를 릴리스 7로 업그레이드합니다. 자세한 내용은 업그레이드를 위해 Red Hat Ceph Storage 6을 7로 업그레이드(16.2에서 17.1)를 참조하십시오.
  • Red Hat Ceph Storage 7 배포는 cephadm 에 의해 관리됩니다.
  • 언더클라우드를 계속 사용할 수 있으며 노드 및 네트워크는 director Operator에서 관리합니다.
  • 외부에 배포된 Red Hat Ceph Storage 클러스터를 사용하는 경우 대상 노드에서 ceph-nfs 클러스터를 다시 생성하고 StorageNFS 네트워크를 전파해야 합니다.

특정 Red Hat Ceph Storage 환경에 대한 사전 요구 사항을 완료합니다.

모니터링 스택 구성 요소가 있는 Red Hat Ceph Storage 클러스터를 마이그레이션하기 전에 모니터링 스택 정보를 수집하고 컨테이너 이미지 레지스트리를 검토 및 업데이트하고 언더클라우드 컨테이너 이미지를 제거해야 합니다.

참고

모니터링 스택과 관련된 컨테이너 이미지를 업데이트하는 것 외에도 container_image_base 와 관련된 구성 항목을 업데이트해야 합니다. 이는 언더클라우드 이미지를 사용하는 모든 Red Hat Ceph Storage 데몬에 영향을 미칩니다. 새로운 데몬은 Red Hat Ceph Storage 클러스터에 구성된 새 이미지 레지스트리 위치를 사용하여 배포됩니다.

프로세스

  1. 모니터링 스택의 현재 상태를 수집합니다. 데몬 배치 평가 시 호스트에 모니터링 레이블 또는 grafana,prometheus 또는 alertmanager 가 없는지 확인합니다.

    참고

    전체 재배치 프로세스는 cephadm 에 의해 구동되며 데몬이 예약된 대상 노드에 할당할 레이블을 사용합니다. 노드에 라벨을 할당하는 방법에 대한 자세한 내용은 Red Hat Knowledgebase 문서 Red Hat Ceph Storage: 지원 구성을 참조하십시오.

    [tripleo-admin@controller-0 ~]$ sudo cephadm shell -- ceph orch host ls
    
    HOST                    	ADDR       	LABELS                 	STATUS
    cephstorage-0.redhat.local  192.168.24.11  osd mds
    cephstorage-1.redhat.local  192.168.24.12  osd mds
    cephstorage-2.redhat.local  192.168.24.47  osd mds
    controller-0.redhat.local   192.168.24.35  _admin mon mgr
    controller-1.redhat.local   192.168.24.53  mon _admin mgr
    controller-2.redhat.local   192.168.24.10  mon _admin mgr
    6 hosts in cluster

    클러스터가 정상이고 ceph orch lsceph orch ps 모두 배포된 데몬의 예상 수를 반환하는지 확인합니다.

  2. 컨테이너 이미지 레지스트리를 검토하고 업데이트합니다.

    참고

    Red Hat OpenStack Platform 컨트롤 플레인을 마이그레이션한 후 Red Hat Ceph Storage 외부화 프로세스를 실행하는 경우 Red Hat Ceph Storage 클러스터 구성에서 컨테이너 이미지를 업데이트합니다. 현재 컨테이너 이미지는 언더클라우드 레지스트리를 가리키므로 더 이상 사용할 수 없습니다. 채택이 완료된 후에는 언더클라우드를 사용할 수 없으므로 언더클라우드 제공 이미지를 대체 레지스트리로 교체합니다.

    $ ceph config dump
    ...
    ...
    mgr   advanced  mgr/cephadm/container_image_alertmanager    undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.10
    mgr   advanced  mgr/cephadm/container_image_base            undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph
    mgr   advanced  mgr/cephadm/container_image_grafana         undercloud-0.ctlplane.redhat.local:8787/rh-osbs/grafana:latest
    mgr   advanced  mgr/cephadm/container_image_node_exporter   undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-node-exporter:v4.10
    mgr   advanced  mgr/cephadm/container_image_prometheus      undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus:v4.10
  3. 언더클라우드 컨테이너 이미지를 제거합니다.

    $ cephadm shell -- ceph config rm mgr mgr/cephadm/container_image_base \
    for i in prometheus grafana alertmanager node_exporter; do \
        cephadm shell -- ceph config rm mgr mgr/cephadm/container_image_$i \
    done

1.9.2. Red Hat Ceph Storage RGW 마이그레이션 사전 요구 사항 완료

Ceph Object Gateway(RGW) 마이그레이션을 시작하기 전에 다음 사전 요구 사항을 완료합니다.

프로세스

  1. Red Hat Ceph Storage 노드의 현재 상태를 확인합니다.

    (undercloud) [stack@undercloud-0 ~]$ metalsmith list
    
    
        +------------------------+    +----------------+
        | IP Addresses           |    |  Hostname      |
        +------------------------+    +----------------+
        | ctlplane=192.168.24.25 |    | cephstorage-0  |
        | ctlplane=192.168.24.10 |    | cephstorage-1  |
        | ctlplane=192.168.24.32 |    | cephstorage-2  |
        | ctlplane=192.168.24.28 |    | compute-0      |
        | ctlplane=192.168.24.26 |    | compute-1      |
        | ctlplane=192.168.24.43 |    | controller-0   |
        | ctlplane=192.168.24.7  |    | controller-1   |
        | ctlplane=192.168.24.41 |    | controller-2   |
        +------------------------+    +----------------+
  2. controller-0 에 로그인하고 Pacemaker 상태를 확인하여 RGW 마이그레이션에 대한 중요한 정보를 식별합니다.

    Full List of Resources:
      * ip-192.168.24.46	(ocf:heartbeat:IPaddr2):     	Started controller-0
      * ip-10.0.0.103   	(ocf:heartbeat:IPaddr2):     	Started controller-1
      * ip-172.17.1.129 	(ocf:heartbeat:IPaddr2):     	Started controller-2
      * ip-172.17.3.68  	(ocf:heartbeat:IPaddr2):     	Started controller-0
      * ip-172.17.4.37  	(ocf:heartbeat:IPaddr2):     	Started controller-1
      * Container bundle set: haproxy-bundle
    
    [undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhosp17-openstack-haproxy:pcmklatest]:
        * haproxy-bundle-podman-0   (ocf:heartbeat:podman):  Started controller-2
        * haproxy-bundle-podman-1   (ocf:heartbeat:podman):  Started controller-0
        * haproxy-bundle-podman-2   (ocf:heartbeat:podman):  Started controller-1
  3. 스토리지 네트워크의 범위를 식별합니다. 다음은 사용자 환경에서 값이 다를 수 있는 예제입니다.

    [heat-admin@controller-0 ~]$ ip -o -4 a
    
    1: lo	inet 127.0.0.1/8 scope host lo\   	valid_lft forever preferred_lft forever
    2: enp1s0	inet 192.168.24.45/24 brd 192.168.24.255 scope global enp1s0\   	valid_lft forever preferred_lft forever
    2: enp1s0	inet 192.168.24.46/32 brd 192.168.24.255 scope global enp1s0\   	valid_lft forever preferred_lft forever
    7: br-ex	inet 10.0.0.122/24 brd 10.0.0.255 scope global br-ex\   	valid_lft forever preferred_lft forever 
    1
    
    8: vlan70	inet 172.17.5.22/24 brd 172.17.5.255 scope global vlan70\   	valid_lft forever preferred_lft forever
    8: vlan70	inet 172.17.5.94/32 brd 172.17.5.255 scope global vlan70\   	valid_lft forever preferred_lft forever
    9: vlan50	inet 172.17.2.140/24 brd 172.17.2.255 scope global vlan50\   	valid_lft forever preferred_lft forever
    10: vlan30	inet 172.17.3.73/24 brd 172.17.3.255 scope global vlan30\   	valid_lft forever preferred_lft forever 
    2
    
    10: vlan30	inet 172.17.3.68/32 brd 172.17.3.255 scope global vlan30\   	valid_lft forever preferred_lft forever
    11: vlan20	inet 172.17.1.88/24 brd 172.17.1.255 scope global vlan20\   	valid_lft forever preferred_lft forever
    12: vlan40	inet 172.17.4.24/24 brd 172.17.4.255 scope global vlan40\   	valid_lft forever preferred_lft forever
    1
    br-ex 는 현재 환경에서 HAProxy에 프론트 엔드 가상 IP(VIP)가 할당된 외부 네트워크를 나타냅니다.
    2
    vlan30 은 Red Hat Ceph Storage 노드에서 새 RGW 인스턴스를 시작해야 하는 스토리지 네트워크를 나타냅니다.
  4. 이전에 HAProxy에 있는 네트워크를 식별하고 director Operator를 통해 Red Hat Ceph Storage 노드에 전파합니다. 이 네트워크를 사용하여 Red Hat Ceph Storage가 소유한 새 VIP를 RGW 서비스의 진입점으로 예약합니다.

    1. controller-0 에 로그인하고 현재 HAProxy 구성에서 ceph_rgw 섹션을 찾습니다.

      $ less /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg
      ...
      ...
      listen ceph_rgw
        bind 10.0.0.103:8080 transparent
        bind 172.17.3.68:8080 transparent
        mode http
        balance leastconn
        http-request set-header X-Forwarded-Proto https if { ssl_fc }
        http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
        http-request set-header X-Forwarded-Port %[dst_port]
        option httpchk GET /swift/healthcheck
        option httplog
        option forwardfor
        server controller-0.storage.redhat.local 172.17.3.73:8080 check fall 5 inter 2000 rise 2
        server controller-1.storage.redhat.local 172.17.3.146:8080 check fall 5 inter 2000 rise 2
        server controller-2.storage.redhat.local 172.17.3.156:8080 check fall 5 inter 2000 rise 2
    2. 네트워크가 HAProxy 프런트 엔드로 사용되는지 확인합니다. 다음 예제에서는 controller-0 이 Red Hat Ceph Storage 노드에 없는 외부 네트워크를 사용하여 서비스를 노출합니다. director Operator를 통해 외부 네트워크를 전파해야 합니다.

      [controller-0]$ ip -o -4 a
      
      ...
      7: br-ex	inet 10.0.0.106/24 brd 10.0.0.255 scope global br-ex\   	valid_lft forever preferred_lft forever
      ...
      참고

      대상 노드가 director에서 관리하지 않는 경우 이 절차를 사용하여 네트워크를 설정할 수 없습니다. 관리자는 필요한 모든 네트워크를 수동으로 구성해야 합니다.

  5. HAProxy 프론트 엔드 네트워크를 Red Hat Ceph Storage 노드에 전파합니다.

    1. ceph-storage 네트워크 인터페이스를 정의하는 데 사용하는 NIC 템플릿에서 Red Hat Ceph Storage 네트워크 구성 템플릿 파일의 새 config 섹션을 추가합니다(예: /home/stack/composable_roles/network/nic-configs/ceph-storage.j2:)

      ---
      network_config:
      - type: interface
        name: nic1
        use_dhcp: false
        dns_servers: {{ ctlplane_dns_nameservers }}
        addresses:
        - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
        routes: {{ ctlplane_host_routes }}
      - type: vlan
        vlan_id: {{ storage_mgmt_vlan_id }}
        device: nic1
        addresses:
        - ip_netmask: {{ storage_mgmt_ip }}/{{ storage_mgmt_cidr }}
        routes: {{ storage_mgmt_host_routes }}
      - type: interface
        name: nic2
        use_dhcp: false
        defroute: false
      - type: vlan
        vlan_id: {{ storage_vlan_id }}
        device: nic2
        addresses:
        - ip_netmask: {{ storage_ip }}/{{ storage_cidr }}
        routes: {{ storage_host_routes }}
      - type: ovs_bridge
        name: {{ neutron_physical_bridge_name }}
        dns_servers: {{ ctlplane_dns_nameservers }}
        domain: {{ dns_search_domains }}
        use_dhcp: false
        addresses:
        - ip_netmask: {{ external_ip }}/{{ external_cidr }}
        routes: {{ external_host_routes }}
        members: []
        - type: interface
          name: nic3
          primary: true
    2. 베어 메탈 파일에 외부 네트워크를 추가합니다(예: metalsmith 에서 사용하는 /home/stack/composable_roles/network/baremetal_deployment.yaml ).

      참고

      os-net-config 가 트리거될 때 대상 노드에 대한 네트워크 전파에 network_config_update 가 활성화되어 있는지 확인합니다.

      - name: CephStorage
        count: 3
        hostname_format: cephstorage-%index%
        instances:
        - hostname: cephstorage-0
        name: ceph-0
        - hostname: cephstorage-1
        name: ceph-1
        - hostname: cephstorage-2
        name: ceph-2
        defaults:
        profile: ceph-storage
        network_config:
            template: /home/stack/composable_roles/network/nic-configs/ceph-storage.j2
            network_config_update: true
        networks:
        - network: ctlplane
            vif: true
        - network: storage
        - network: storage_mgmt
        - network: external
    3. 베어 메탈 노드에 새 네트워크를 구성합니다.

      (undercloud) [stack@undercloud-0]$ openstack overcloud node provision \
         -o overcloud-baremetal-deployed-0.yaml \
         --stack overcloud \
         --network-config -y \
        $PWD/composable_roles/network/baremetal_deployment.yaml
    4. 새 네트워크가 Red Hat Ceph Storage 노드에 구성되었는지 확인합니다.

      [root@cephstorage-0 ~]# ip -o -4 a
      
      1: lo	inet 127.0.0.1/8 scope host lo\   	valid_lft forever preferred_lft forever
      2: enp1s0	inet 192.168.24.54/24 brd 192.168.24.255 scope global enp1s0\   	valid_lft forever preferred_lft forever
      11: vlan40	inet 172.17.4.43/24 brd 172.17.4.255 scope global vlan40\   	valid_lft forever preferred_lft forever
      12: vlan30	inet 172.17.3.23/24 brd 172.17.3.255 scope global vlan30\   	valid_lft forever preferred_lft forever
      14: br-ex	inet 10.0.0.133/24 brd 10.0.0.255 scope global br-ex\   	valid_lft forever preferred_lft forever

1.9.3. Red Hat Ceph Storage RBD 마이그레이션에 대한 사전 요구 사항 완료

Red Hat Ceph Storage Rados Block Device(RBD) 마이그레이션을 시작하기 전에 다음 사전 요구 사항을 완료합니다.

  • 대상 CephStorage 또는 ComputeHCI 노드는 storagestorage_mgmt 네트워크를 둘 다 갖도록 구성됩니다. 이렇게 하면 동일한 노드의 Red Hat Ceph Storage 공용 네트워크와 클러스터 네트워크를 모두 사용할 수 있습니다. Red Hat OpenStack Platform 17.1 이상에서는 스택 업데이트를 실행할 필요가 없습니다.
  • NFS Ganesha는 director Operator 배포에서 cephadm 으로 마이그레이션됩니다. 자세한 내용은 NFS Ganesha 클러스터 생성을 참조하십시오.
  • Ceph 메타데이터 서버, 모니터링 스택, Ceph Object Gateway 및 컨트롤러 노드에 배포된 기타 데몬.
  • 데몬 배포는 Red Hat Ceph Storage에 설명된 카디널리티 제약 조건(지원 구성 )을 따릅니다.
  • Red Hat Ceph Storage 클러스터는 정상이며 ceph -s 명령은 HEALTH_OK 를 반환합니다.
  • 베어 메탈 노드에서 os-net-config 를 실행하고 추가 네트워크를 구성합니다.

    1. 대상 노드가 CephStorage 인 경우 CephStorage 노드의 베어 메탈 파일에 네트워크가 정의되어 있는지 확인합니다(예: /home/stack/composable_roles/network/baremetal_deployment.yaml ).

      - name: CephStorage
      count: 2
      instances:
      - hostname: oc0-ceph-0
      name: oc0-ceph-0
      - hostname: oc0-ceph-1
      name: oc0-ceph-1
      defaults:
      networks:
      - network: ctlplane
      vif: true
      - network: storage_cloud_0
      subnet: storage_cloud_0_subnet
      - network: storage_mgmt_cloud_0
      subnet: storage_mgmt_cloud_0_subnet
      network_config:
      template: templates/single_nic_vlans/single_nic_vlans_storage.j2
    2. 누락된 네트워크를 추가합니다.

      $ openstack overcloud node provision \
      -o overcloud-baremetal-deployed-0.yaml --stack overcloud-0 \
      /--network-config -y --concurrency 2 /home/stack/metalsmith-0.yaml
    3. 스토리지 네트워크가 대상 노드에 구성되었는지 확인합니다.

      (undercloud) [stack@undercloud ~]$ ssh heat-admin@192.168.24.14 ip -o -4 a
      1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
      5: br-storage    inet 192.168.24.14/24 brd 192.168.24.255 scope global br-storage\       valid_lft forever preferred_lft forever
      6: vlan1    inet 192.168.24.14/24 brd 192.168.24.255 scope global vlan1\       valid_lft forever preferred_lft forever
      7: vlan11    inet 172.16.11.172/24 brd 172.16.11.255 scope global vlan11\       valid_lft forever preferred_lft forever
      8: vlan12    inet 172.16.12.46/24 brd 172.16.12.255 scope global vlan12\       valid_lft forever preferred_lft forever

1.9.4. NFS Ganesha 클러스터 생성

중요

이 섹션의 이 콘텐츠는 이 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 자세한 내용은 기술 프리뷰 를 참조하십시오.

Shared File Systems 서비스(manila)를 사용하여 NFS를 통해 CephFS를 사용하는 경우 Red Hat Ceph Storage 클러스터에서 새 클러스터형 NFS 서비스를 생성해야 합니다. 이 서비스는 RHOSP(Red Hat OpenStack Platform) 17.1에서 사용하는 독립 실행형 Pacemaker 제어 ceph-nfs 서비스를 대체합니다.

프로세스

  1. 새 클러스터형 NFS 서비스(예: cephstorage-0, cephstorage-1,cephstorage-2 )를 배포할 Red Hat Ceph Storage 노드를 식별합니다.

    참고

    새 NFS 내보내기 위치를 통해 기존 공유를 마운트할 수 있도록 StorageNFS 격리된 네트워크에 이 서비스를 배포해야 합니다. 기존 CephStorage 노드 또는 HCI 노드에 새 클러스터형 NFS 서비스를 배포하거나 Red Hat Ceph Storage 클러스터에 등록한 새 하드웨어에 배포할 수 있습니다.

  2. director Operator를 사용하여 Red Hat Ceph Storage 노드를 배포하는 경우 StorageNFS 네트워크를 ceph-nfs 서비스가 배포된 대상 노드에 전달합니다.

    참고

    대상 노드가 director에서 관리하지 않는 경우 이 절차를 사용하여 네트워크를 설정할 수 없습니다. 관리자는 필요한 모든 네트워크를 수동으로 구성해야 합니다.

    1. RHOSP 환경에서 사용되는 노드 정의 파일 overcloud-baremetal-deploy.yaml 을 식별합니다. overcloud-baremetal-deploy.yaml 파일을 식별하는 방법에 대한 자세한 내용은 OpenShift 배포에서 Red Hat OpenStack Services 사용자 지정 에서 오버클라우드 네트워크 사용자 지정을 참조하십시오.
    2. StorageNFS 네트워크를 포함하도록 Red Hat Ceph Storage 노드와 연결된 네트워크를 편집합니다.

      - name: CephStorage
        count: 3
        hostname_format: cephstorage-%index%
        instances:
        - hostname: cephstorage-0
          name: ceph-0
        - hostname: cephstorage-1
          name: ceph-1
        - hostname: cephstorage-2
          name: ceph-2
        defaults:
          profile: ceph-storage
          network_config:
            template: /home/stack/network/nic-configs/ceph-storage.j2
            network_config_update: true
          networks:
          - network: ctlplane
            vif: true
          - network: storage
          - network: storage_mgmt
          - network: storage_nfs
    3. Red Hat Ceph Storage 노드에서 StorageNFS 네트워크에 연결하는 인터페이스를 포함하도록 네트워크 구성 템플릿 파일(예: /home/stack/network/nic-configs/ceph-storage.j2 )을 편집합니다.

      - type: vlan
        device: nic2
        vlan_id: {{ storage_nfs_vlan_id }}
        addresses:
        - ip_netmask: {{ storage_nfs_ip }}/{{ storage_nfs_cidr }}
        routes: {{ storage_nfs_host_routes }}
    4. Red Hat Ceph Storage 노드를 업데이트합니다.

      $ openstack overcloud node provision \
          --stack overcloud   \
          --network-config -y  \
          -o overcloud-baremetal-deployed-storage_nfs.yaml \
          --concurrency 2 \
          /home/stack/network/baremetal_deployment.yaml

      업데이트가 완료되면 Red Hat Ceph Storage 노드에 새 인터페이스가 생성되고 StorageNFS 와 연결된 VLAN에 태그가 지정되었는지 확인합니다.

  3. Ceph NFS 서비스의 VIP(가상 IP 주소)로 사용할 StorageNFS 네트워크에서 IP 주소를 식별합니다.

    $ openstack port list -c "Fixed IP Addresses" --network storage_nfs
  4. 실행 중인 cephadm 쉘에서 NFS 서비스의 호스트를 식별합니다.

    $ ceph orch host ls
  5. 식별한 각 호스트에 레이블을 지정합니다. 레이블을 지정할 각 호스트에 대해 이 명령을 반복합니다.

    $ ceph orch host label add <hostname> nfs
    • & lt;hostname >을 사용자가 확인한 호스트 이름으로 바꿉니다.
  6. NFS 클러스터를 생성합니다.

    $ ceph nfs cluster create cephfs \
        "label:nfs" \
        --ingress \
        --virtual-ip=<VIP> \
        --ingress-mode=haproxy-protocol
    • & lt;VIP& gt;를 Ceph NFS 서비스의 VIP로 바꿉니다.

      참고

      ingress-mode 인수를 haproxy-protocol 으로 설정해야 합니다. 다른 ingress-mode는 지원되지 않습니다. 이 수신 모드를 사용하면 공유 파일 시스템 서비스를 통해 클라이언트 제한을 적용할 수 있습니다. 클러스터형 Ceph NFS 서비스 배포에 대한 자세한 내용은 Red Hat Ceph Storage 7 Operations Guide 의 Ceph Orchestrator (Limited Availability)를 사용한 NFS-Ganesha 게이트웨이 관리를 참조하십시오.

  7. NFS 클러스터의 상태를 확인합니다.

    $ ceph nfs cluster ls
    $ ceph nfs cluster info cephfs
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동