9.5. Red Hat Ceph Storage RBD를 외부 RHEL 노드로 마이그레이션
Red Hat Ceph Storage 7 이상을 실행하는 HCI(Hyperconverged Infrastructure) 또는 전용 스토리지 노드의 경우 Red Hat OpenStack Platform 컨트롤 플레인에 포함된 데몬을 기존 외부 RHEL(Red Hat Enterprise Linux) 노드로 마이그레이션해야 합니다. 외부 RHEL 노드에는 일반적으로 HCI 환경 또는 전용 스토리지 노드의 컴퓨팅 노드가 포함됩니다.
사전 요구 사항
- Red Hat OpenStack Platform 17.1 환경의 작업을 완료합니다. 자세한 내용은 Red Hat Ceph Storage 사전 요구 사항을 참조하십시오.
9.5.1. Ceph Manager 데몬을 Red Hat Ceph Storage 노드로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 컨트롤러 노드에서 대상 노드 세트로 Ceph Manager 데몬을 마이그레이션해야 합니다. 대상 노드는 기존 Red Hat Ceph Storage 노드 또는 Red Hat Ceph Storage가 HCI(Hyperconverged Infrastructure) 토폴로지를 사용하여 director Operator에 의해 배포되는 경우 RHOSP 컴퓨팅 노드입니다.
다음 절차에서는 cephadm 및 Ceph Orchestrator를 사용하여 Ceph Manager 마이그레이션을 구동하고 Ceph 사양을 사용하여 배치를 수정하고 Ceph Manager 데몬을 다시 예약합니다. Ceph Manager는 활성/수동 상태로 실행됩니다. 또한 Ceph Orchestrator를 비롯한 많은 모듈을 제공합니다. ceph-mgr 에서 제공하는 Ceph 대시보드와 같은 모든 잠재적인 모듈은 Ceph Manager를 사용하여 암시적으로 마이그레이션됩니다.
프로세스
대상 노드에 SSH를 연결하고 Ceph Manager 서비스에 연결하는 데 필요한 방화벽 규칙을 활성화합니다.
dports="6800:7300" ssh heat-admin@<target_node> sudo iptables -I INPUT \ -p tcp --match multiport --dports $dports -j ACCEPT;&
lt;target_node>를 Red Hat Ceph Storage 환경에 나열된 호스트의 호스트 이름으로 바꿉니다.ceph orch host ls를 실행하여 호스트 목록을 확인합니다.각 대상 노드에 대해 이 단계를 반복합니다.
규칙이 대상 노드에 올바르게 적용되고 유지되는지 확인합니다.
$ sudo iptables-save $ sudo systemctl restart iptables기존 배포에
nftables를 사용하는 경우/etc/nftables/tripleo-rules.nft를 편집하고 다음 내용을 추가합니다.# 113 ceph_mgr {'dport': ['6800-7300', 8444]} add rule inet filter TRIPLEO_INPUT tcp dport { 6800-7300,8444 } ct state new counter accept comment "113 ceph_mgr"- 파일을 저장합니다.
nftables서비스를 다시 시작합니다.$ sudo systemctl restart nftables규칙이 적용되었는지 확인합니다.
$ sudo nft list ruleset | grep ceph_mgr새 Ceph Manager 데몬을 호스팅할 대상 노드를 준비하고 대상 노드에
mgr레이블을 추가합니다.$ sudo cephadm shell -- ceph orch host label add <target_node> mgr- Ceph Manager 데몬을 호스팅하는 각 대상 노드에 대해 1-7단계를 반복합니다.
Ceph Manager 사양을 가져옵니다.
$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ mkdir -p ${SPEC_DIR} $ sudo cephadm shell -- ceph orch ls --export mgr > ${SPEC_DIR}/mgr검색된 사양을 편집하고
label: mgr섹션을placement섹션에 추가합니다.service_type: mgr service_id: mgr placement: label: mgr- 사양을 저장합니다.
Ceph Orchestrator를 사용하여
cephadm으로 사양을 적용합니다.$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -m ${SPEC_DIR}/mgr -- ceph orch apply -i /mnt/mgr
검증
새 Ceph Manager 데몬이 대상 노드에 생성되었는지 확인합니다.
$ sudo cephadm shell -- ceph orch ps | grep -i mgr $ sudo cephadm shell -- ceph -sCeph Manager 데몬 수는
mgr레이블이 추가된 호스트 수와 일치해야 합니다.참고마이그레이션이 Ceph Manager 데몬을 축소하지 않습니다. 개수는 대상 노드 수에 따라 증가하고 Ceph Monitor 데몬을 Red Hat Ceph Storage 노드로 마이그레이션하면 Ceph Manager 인스턴스가 중단됩니다. 자세한 내용은 Red Hat Ceph Storage 노드로 Ceph Monitor 데몬 마이그레이션을 참조하십시오.
9.5.2. Ceph Monitor 데몬을 Red Hat Ceph Storage 노드로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 컨트롤러 노드에서 대상 노드 세트로 Ceph Monitor 데몬을 이동해야 합니다. 대상 노드는 기존 Red Hat Ceph Storage 노드 또는 Red Hat Ceph Storage가 HCI(Hyperconverged Infrastructure) 토폴로지를 사용하여 director Operator에 의해 배포되는 경우 RHOSP 컴퓨팅 노드입니다. 추가 Ceph 모니터는 대상 노드에 배포되며, Red Hat Ceph Storage 클러스터를 관리하고 2일차 작업을 수행하는 데 사용할 수 있는 _admin 노드로 승격됩니다.
Ceph Monitor 데몬을 마이그레이션하려면 다음과 같은 상위 수준 단계를 수행해야 합니다.
모든 Ceph Monitor 데몬을 대상 노드로 마이그레이션할 때까지 Ceph Monitor를 호스팅하는 추가 컨트롤러 노드에 대해 다음 단계를 반복합니다.
9.5.2.1. Ceph Monitor 마이그레이션을 위한 대상 노드 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 작업을 수행하여 Ceph Monitor 마이그레이션을 위해 대상 Red Hat Ceph Storage 노드를 준비합니다.
- 대상 노드에서 방화벽 규칙을 활성화하고 저장합니다.
-
레이블을 기반으로 하는 사양을 생성하고
cephadm을 사용하여 적용합니다. - 마이그레이션 프로세스 중에 Ceph Monitor 쿼럼이 유지 관리되는지 확인합니다.
프로세스
대상 노드에 SSH를 연결하고 Ceph Monitor 서비스에 연결하는 데 필요한 방화벽 규칙을 활성화합니다.
$ for port in 3300 6789; { ssh heat-admin@<target_node> sudo iptables -I INPUT \ -p tcp -m tcp --dport $port -m conntrack --ctstate NEW \ -j ACCEPT; }-
&
lt;target_node>를 새 Ceph Monitor를 호스팅하는 노드의 호스트 이름으로 바꿉니다.
-
&
규칙이 대상 노드에 올바르게 적용되고 유지되는지 확인합니다.
$ sudo iptables-save $ sudo systemctl restart iptables기존 배포에
nftables를 사용하는 경우/etc/nftables/tripleo-rules.nft를 편집하고 다음 내용을 추가합니다.# 110 ceph_mon {'dport': [6789, 3300, '9100']} add rule inet filter TRIPLEO_INPUT tcp dport { 6789,3300,9100 } ct state new counter accept comment "110 ceph_mon"- 파일을 저장합니다.
nftables서비스를 다시 시작합니다.$ sudo systemctl restart nftables규칙이 적용되었는지 확인합니다.
$ sudo nft list ruleset | grep ceph_mon기존 Ceph Monitor를 대상 Red Hat Ceph Storage 노드로 마이그레이션하려면 첫 번째 Ceph Monitor 또는 첫 번째 컨트롤러 노드에서 Red Hat Ceph Storage mon 사양을 검색합니다.
$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ mkdir -p ${SPEC_DIR} $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/monplacement섹션에label:mon섹션을 추가합니다.service_type: mon service_id: mon placement: label: mon- 사양을 저장합니다.
Ceph Orchestrator를 사용하여
cephadm으로 사양을 적용합니다.$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/monmon레이블을 나머지 Red Hat Ceph Storage 대상 노드로 확장하여 마이그레이션 프로세스 중에 쿼럼이 유지 관리되도록 합니다.for item in $(sudo cephadm shell -- ceph orch host ls --format json | jq -r '.[].hostname'); do sudo cephadm shell -- ceph orch host label add $item mon; sudo cephadm shell -- ceph orch host label add $item _admin; done참고mon사양을 적용하면 기존 전략에서호스트대신레이블을사용할 수 있습니다. 결과적으로mon레이블이 있는 모든 노드는 Ceph Monitor 데몬을 호스팅할 수 있습니다. 여러 Ceph 모니터가 마이그레이션될 때 여러 번 반복되지 않도록 이 단계를 한 번만 수행합니다.Red Hat Ceph Storage 및 Ceph Orchestrator 데몬 목록의 상태를 확인합니다. Ceph Monitor가 쿼럼에 있고
ceph orch명령으로 나열되는지 확인합니다.$ sudo cephadm shell -- ceph -s cluster: id: f6ec3ebe-26f7-56c8-985d-eb974e8e08e3 health: HEALTH_OK services: mon: 6 daemons, quorum controller-0,controller-1,controller-2,ceph-0,ceph-1,ceph-2 (age 19m) mgr: controller-0.xzgtvo(active, since 32m), standbys: controller-1.mtxohd, controller-2.ahrgsk osd: 8 osds: 8 up (since 12m), 8 in (since 18m); 1 remapped pgs data: pools: 1 pools, 1 pgs objects: 0 objects, 0 B usage: 43 MiB used, 400 GiB / 400 GiB avail pgs: 1 active+clean$ sudo cephadm shell -- ceph orch host ls HOST ADDR LABELS STATUS ceph-0 192.168.24.14 osd mon mgr _admin ceph-1 192.168.24.7 osd mon mgr _admin ceph-2 192.168.24.8 osd mon mgr _admin controller-0 192.168.24.15 _admin mgr mon controller-1 192.168.24.23 _admin mgr mon controller-2 192.168.24.13 _admin mgr monRed Hat Ceph Storage와 상호 작용하는 나머지 절차 중에 사용되는 첫 번째 컨트롤러 노드에 Ceph 클라이언트를 설정합니다. 첫 번째 컨트롤러 노드가 해제될 때 Red Hat Ceph Storage와 상호 작용하는 데 사용되는 스토리지 네트워크에서 추가 IP 주소를 설정합니다.
ceph_client_backup디렉터리에 있는/etc/ceph콘텐츠를 백업합니다.$ mkdir -p $HOME/ceph_client_backup $ sudo cp -R /etc/ceph/* $HOME/ceph_client_backup-
/etc/os-net-config/config.yaml을 편집하고 스토리지 네트워크에 속하는 VLAN의 IP 주소 뒤에- ip_netmask: 172.17.3.200을 추가합니다.172.17.3.200을 정적으로controller-0에 할당할 수 있는 스토리지 네트워크에서 사용 가능한 다른 IP 주소로 바꿉니다. 파일을 저장하고
controller-0네트워크 구성을 새로 고칩니다.$ sudo os-net-config -c /etc/os-net-config/config.yamlIP 주소가 컨트롤러 노드에 있는지 확인합니다.
$ ip -o a | grep 172.17.3.200IP 주소를 ping하고 연결할 수 있는지 확인합니다.
$ ping -c 3 172.17.3.200Red Hat Ceph Storage 클러스터와 상호 작용할 수 있는지 확인합니다.
$ sudo cephadm shell -c $HOME/ceph_client_backup/ceph.conf -k $HOME/ceph_client_backup/ceph.client.admin.keyring -- ceph -s
다음 단계
소스 노드를 드레이닝하는 다음 단계로 이동합니다.
9.5.2.2. 소스 노드 드레이닝 링크 복사링크가 클립보드에 복사되었습니다!
소스 노드를 드레이닝하고 Red Hat Ceph Storage 클러스터에서 소스 노드 호스트를 제거합니다.
프로세스
소스 노드에서
cephadm을 실행하도록/etc/ceph/디렉터리를 백업하고 소스 노드에서 Red Hat Ceph Storage 클러스터의 쉘을 가져옵니다.$ mkdir -p $HOME/ceph_client_backup $ sudo cp -R /etc/ceph $HOME/ceph_client_backup활성
ceph-mgr인스턴스를 확인합니다.$ sudo cephadm shell -- ceph mgr stat소스 노드에서
ceph-mgr이 활성화된 경우 실패합니다.$ sudo cephadm shell -- ceph mgr fail <mgr_instance>-
&
lt;mgr_instance>를 Ceph Manager 데몬으로 교체합니다.
-
&
cephadm쉘에서 소스 노드의 라벨을 제거합니다.$ for label in mon mgr _admin; do sudo cephadm shell -- ceph orch host label rm <source_node> $label; done-
&
lt;source_node>를 소스 노드의 호스트 이름으로 바꿉니다.
-
&
선택 사항: 실행 중인 경우 소스 노드에서 Ceph Monitor 데몬을 제거해야 합니다.
$ sudo cephadm shell -- ceph orch daemon rm mon.<source_node> --force소스 노드를 드레이닝하여 남은 데몬을 제거합니다.
$ sudo cephadm shell -- ceph orch host drain <source_node>Red Hat Ceph Storage 클러스터에서 소스 노드 호스트를 삭제합니다.
$ sudo cephadm shell -- ceph orch host rm <source_node> --force참고소스 노드는 더 이상 클러스터의 일부가 아니며
sudo cephadm shell -- ceph orch host ls를 실행할 때 Red Hat Ceph Storage 호스트 목록에 표시되지 않아야 합니다. 그러나 소스 노드에서sudo podman ps를 실행하는 경우 Ceph Monitor와 Ceph Manager 모두 여전히 실행 중인 것으로 표시될 수 있습니다.[root@controller-1 ~]# sudo podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5c1ad36472bc registry.redhat.io/ceph/rhceph@sha256:320c364dcc8fc8120e2a42f54eb39ecdba12401a2546763b7bef15b02ce93bc4 -n mon.contro... 35 minutes ago Up 35 minutes ago ceph-f6ec3ebe-26f7-56c8-985d-eb974e8e08e3-mon-controller-1 3b14cc7bf4dd registry.redhat.io/ceph/rhceph@sha256:320c364dcc8fc8120e2a42f54eb39ecdba12401a2546763b7bef15b02ce93bc4 -n mgr.contro... 35 minutes ago Up 35 minutes ago ceph-f6ec3ebe-26f7-56c8-985d-eb974e8e08e3-mgr-controller-1-mtxohd기존 컨테이너를 정리하고 소스 노드에서
cephadm데이터를 제거하려면 Red Hat 지원에 문의하십시오.mons가 여전히 쿼럼에 있는지 확인합니다.
$ sudo cephadm shell -- ceph -s $ sudo cephadm shell -- ceph orch ps | grep -i mon
다음 단계
Ceph Monitor IP 주소 마이그레이션을 진행합니다.
9.5.2.3. Ceph Monitor IP 주소 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Monitor IP 주소를 대상 Red Hat Ceph Storage 노드로 마이그레이션해야 합니다. IP 주소 마이그레이션은 대상 노드가 원래 director Operator에 의해 배포되고 네트워크 구성이 os-net-config 에 의해 관리된다고 가정합니다.
프로세스
mon_host행의$HOME/ceph_client_backup/ceph.conf파일에서 원래 Ceph Monitor IP 주소를 가져옵니다. 예를 들면 다음과 같습니다.mon_host = [v2:172.17.3.60:3300/0,v1:172.17.3.60:6789/0] [v2:172.17.3.29:3300/0,v1:172.17.3.29:6789/0] [v2:172.17.3.53:3300/0,v1:172.17.3.53:6789/0]이전 단계에서 검색된 IP 주소를 소스 노드의 스토리지 네트워크 IP 주소와 일치하고 Ceph 모니터 IP 주소를 찾습니다.
[tripleo-admin@controller-0 ~]$ ip -o -4 a | grep 172.17.3 9: vlan30 inet 172.17.3.60/24 brd 172.17.3.255 scope global vlan30\ valid_lft forever preferred_lft forever 9: vlan30 inet 172.17.3.13/32 brd 172.17.3.255 scope global vlan30\ valid_lft forever preferred_lft forever소스 노드의
/etc/os-net-config디렉터리에 있는os-net-config구성에 Ceph Monitor IP 주소가 있는지 확인합니다.[tripleo-admin@controller-0 ~]$ grep "172.17.3.60" /etc/os-net-config/config.yaml - ip_netmask: 172.17.3.60/24-
/etc/os-net-config/config.yaml파일을 편집하고ip_netmask행을 제거합니다. 파일을 저장하고 노드 네트워크 구성을 새로 고칩니다.
$ sudo os-net-config -c /etc/os-net-config/config.yamlIP 주소가 소스 노드에 더 이상 존재하지 않는지 확인합니다. 예를 들면 다음과 같습니다.
[controller-0]$ ip -o a | grep 172.17.3.60-
대상 노드(예:
cephstorage-0)에 SSH로 연결하고 새 Ceph 모니터의 IP 주소를 추가합니다. -
대상 노드에서
/etc/os-net-config/config.yaml을 편집하고 소스 노드에서 제거한- ip_netmask: 172.17.3.60행을 추가합니다. 파일을 저장하고 노드 네트워크 구성을 새로 고칩니다.
$ sudo os-net-config -c /etc/os-net-config/config.yamlIP 주소가 대상 노드에 있는지 확인합니다.
$ ip -o a | grep 172.17.3.60Ceph 클라이언트 노드
controller-0에서 대상 노드로 마이그레이션된 IP 주소를 ping하고 여전히 연결할 수 있는지 확인합니다.[controller-0]$ ping -c 3 172.17.3.60
다음 단계
대상 노드에서 Ceph Monitor를 재배포하는 다음 단계로 이동합니다.
9.5.2.4. 대상 노드에 Ceph Monitor 재배포 링크 복사링크가 클립보드에 복사되었습니다!
대상 노드로 마이그레이션한 IP 주소를 사용하여 대상 노드에 Ceph Monitor를 재배포합니다.
프로세스
Ceph 클라이언트 노드(예:
controller-0)에서Ceph mon 사양을 가져옵니다.$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/mon검색된 사양을 편집하고
unmanaged: true키워드를 추가합니다.service_type: mon service_id: mon placement: label: mon unmanaged: true- 사양을 저장합니다.
Ceph Orchestrator를 사용하여
cephadm으로 사양을 적용합니다.$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/monCeph Monitor 데몬은
관리되지 않음으로 표시되어 기존 데몬을 재배포하여 마이그레이션된 IP 주소에 바인딩할 수 있습니다.대상 노드에서 기존 Ceph Monitor를 삭제합니다.
$ sudo cephadm shell -- ceph orch daemon rm mon.<target_node> --force-
&
lt;target_node>를 Red Hat Ceph Storage 클러스터에 포함된 대상 노드의 호스트 이름으로 바꿉니다.
-
&
마이그레이션된 IP 주소를 사용하여 대상 노드에 새 Ceph Monitor를 재배포합니다.
$ sudo cephadm shell -- ceph orch daemon add mon <target_node>:<ip_address>-
&
lt;ip_address>를 마이그레이션된 IP 주소의 IP 주소로 바꿉니다.
-
&
Ceph Monitor 사양을 가져옵니다.
$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/mon검색된 사양을 편집하고
unmanaged키워드를false로 설정합니다.service_type: mon service_id: mon placement: label: mon unmanaged: false- 사양을 저장합니다.
Ceph Orchestrator를 사용하여
cephadm으로 사양을 적용합니다.$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/mon새 Ceph 모니터는 원래 IP 주소가 있는 대상 노드에서 실행됩니다.
실행 중인
mgr을 확인합니다.$ sudo cephadm shell -- ceph mgr stat강제로 실패하여 Ceph Manager 정보를 새로 고칩니다.
$ sudo cephadm shell -- ceph mgr failOSD정보를 새로 고칩니다.$ sudo cephadm shell -- ceph orch reconfig osd.default_drive_group
다음 단계
해제하려는 각 노드 의 소스 노드를 드레이닝하는 단계부터 시작하여 절차를 반복합니다. Ceph Monitor 마이그레이션 후 Red Hat Ceph Storage 클러스터 확인을 진행합니다.
9.5.2.5. Ceph Monitor 마이그레이션 후 Red Hat Ceph Storage 클러스터 확인 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Monitor 데몬을 대상 노드로 마이그레이션한 후 Red Hat Ceph Storage 클러스터가 정상인지 확인합니다.
프로세스
Red Hat Ceph Storage 클러스터가 정상인지 확인합니다.
$ ceph -s cluster: id: f6ec3ebe-26f7-56c8-985d-eb974e8e08e3 health: HEALTH_OK ... ...Red Hat Ceph Storage mons가 이전 IP 주소로 실행되고 있는지 확인합니다. 대상 노드에 SSH를 연결하고 Ceph Monitor 데몬이 예상 IP 및 포트에 바인딩되었는지 확인합니다.
$ netstat -tulpn | grep 3300