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 환경에 대한 사전 요구 사항을 완료합니다.
1.9.1. 모니터링 스택 구성 요소를 사용하여 Red Hat Ceph Storage 클러스터에 대한 사전 요구 사항 완료 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택 구성 요소가 있는 Red Hat Ceph Storage 클러스터를 마이그레이션하기 전에 모니터링 스택 정보를 수집하고 컨테이너 이미지 레지스트리를 검토 및 업데이트하고 언더클라우드 컨테이너 이미지를 제거해야 합니다.
모니터링 스택과 관련된 컨테이너 이미지를 업데이트하는 것 외에도 container_image_base 와 관련된 구성 항목을 업데이트해야 합니다. 이는 언더클라우드 이미지를 사용하는 모든 Red Hat Ceph Storage 데몬에 영향을 미칩니다. 새로운 데몬은 Red Hat Ceph Storage 클러스터에 구성된 새 이미지 레지스트리 위치를 사용하여 배포됩니다.
프로세스
모니터링 스택의 현재 상태를 수집합니다. 데몬 배치 평가 시 호스트에
모니터링레이블 또는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 ls및ceph orch ps모두 배포된 데몬의 예상 수를 반환하는지 확인합니다.컨테이너 이미지 레지스트리를 검토하고 업데이트합니다.
참고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언더클라우드 컨테이너 이미지를 제거합니다.
$ 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) 마이그레이션을 시작하기 전에 다음 사전 요구 사항을 완료합니다.
프로세스
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 | +------------------------+ +----------------+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스토리지 네트워크의 범위를 식별합니다. 다음은 사용자 환경에서 값이 다를 수 있는 예제입니다.
[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 forever1 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 forever2 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이전에 HAProxy에 있는 네트워크를 식별하고 director Operator를 통해 Red Hat Ceph Storage 노드에 전파합니다. 이 네트워크를 사용하여 Red Hat Ceph Storage가 소유한 새 VIP를 RGW 서비스의 진입점으로 예약합니다.
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네트워크가 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에서 관리하지 않는 경우 이 절차를 사용하여 네트워크를 설정할 수 없습니다. 관리자는 필요한 모든 네트워크를 수동으로 구성해야 합니다.
HAProxy 프론트 엔드 네트워크를 Red Hat Ceph Storage 노드에 전파합니다.
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베어 메탈 파일에 외부 네트워크를 추가합니다(예:
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베어 메탈 노드에 새 네트워크를 구성합니다.
(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새 네트워크가 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 노드는
storage및storage_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를 실행하고 추가 네트워크를 구성합니다.대상 노드가
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누락된 네트워크를 추가합니다.
$ openstack overcloud node provision \ -o overcloud-baremetal-deployed-0.yaml --stack overcloud-0 \ /--network-config -y --concurrency 2 /home/stack/metalsmith-0.yaml스토리지 네트워크가 대상 노드에 구성되었는지 확인합니다.
(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 서비스를 대체합니다.
프로세스
새 클러스터형 NFS 서비스(예:
cephstorage-0, cephstorage-1,cephstorage-2)를 배포할 Red Hat Ceph Storage 노드를 식별합니다.참고새 NFS 내보내기 위치를 통해 기존 공유를 마운트할 수 있도록
StorageNFS격리된 네트워크에 이 서비스를 배포해야 합니다. 기존 CephStorage 노드 또는 HCI 노드에 새 클러스터형 NFS 서비스를 배포하거나 Red Hat Ceph Storage 클러스터에 등록한 새 하드웨어에 배포할 수 있습니다.director Operator를 사용하여 Red Hat Ceph Storage 노드를 배포하는 경우
StorageNFS네트워크를ceph-nfs서비스가 배포된 대상 노드에 전달합니다.참고대상 노드가 director에서 관리하지 않는 경우 이 절차를 사용하여 네트워크를 설정할 수 없습니다. 관리자는 필요한 모든 네트워크를 수동으로 구성해야 합니다.
-
RHOSP 환경에서 사용되는 노드 정의 파일
overcloud-baremetal-deploy.yaml을 식별합니다.overcloud-baremetal-deploy.yaml파일을 식별하는 방법에 대한 자세한 내용은 OpenShift 배포에서 Red Hat OpenStack Services 사용자 지정 에서 오버클라우드 네트워크 사용자 지정을 참조하십시오. 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_nfsRed 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 }}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에 태그가 지정되었는지 확인합니다.
-
RHOSP 환경에서 사용되는 노드 정의 파일
Ceph NFS 서비스의 VIP(가상 IP 주소)로 사용할
StorageNFS네트워크에서 IP 주소를 식별합니다.$ openstack port list -c "Fixed IP Addresses" --network storage_nfs실행 중인
cephadm쉘에서 NFS 서비스의 호스트를 식별합니다.$ ceph orch host ls식별한 각 호스트에 레이블을 지정합니다. 레이블을 지정할 각 호스트에 대해 이 명령을 반복합니다.
$ ceph orch host label add <hostname> nfs-
&
lt;hostname>을 사용자가 확인한 호스트 이름으로 바꿉니다.
-
&
NFS 클러스터를 생성합니다.
$ ceph nfs cluster create cephfs \ "label:nfs" \ --ingress \ --virtual-ip=<VIP> \ --ingress-mode=haproxy-protocol&
lt;VIP>를 Ceph NFS 서비스의 VIP로 바꿉니다.참고ingress-mode인수를haproxy-protocol으로 설정해야 합니다. 다른 ingress-mode는 지원되지 않습니다. 이 수신 모드를 사용하면 공유 파일 시스템 서비스를 통해 클라이언트 제한을 적용할 수 있습니다. 클러스터형 Ceph NFS 서비스 배포에 대한 자세한 내용은 Red Hat Ceph Storage 7 Operations Guide 의 Ceph Orchestrator (Limited Availability)를 사용한 NFS-Ganesha 게이트웨이 관리를 참조하십시오.
NFS 클러스터의 상태를 확인합니다.
$ ceph nfs cluster ls $ ceph nfs cluster info cephfs