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 환경 또는 전용 스토리지 노드의 컴퓨팅 노드가 포함됩니다.

사전 요구 사항

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를 사용하여 암시적으로 마이그레이션됩니다.

프로세스

  1. 대상 노드에 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 를 실행하여 호스트 목록을 확인합니다.

      각 대상 노드에 대해 이 단계를 반복합니다.

  2. 규칙이 대상 노드에 올바르게 적용되고 유지되는지 확인합니다.

    $ sudo iptables-save
    $ sudo systemctl restart iptables
  3. 기존 배포에 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"
  4. 파일을 저장합니다.
  5. nftables 서비스를 다시 시작합니다.

    $ sudo systemctl restart nftables
  6. 규칙이 적용되었는지 확인합니다.

    $ sudo nft list ruleset | grep ceph_mgr
  7. 새 Ceph Manager 데몬을 호스팅할 대상 노드를 준비하고 대상 노드에 mgr 레이블을 추가합니다.

    $ sudo cephadm shell -- ceph orch host label add <target_node> mgr
  8. Ceph Manager 데몬을 호스팅하는 각 대상 노드에 대해 1-7단계를 반복합니다.
  9. Ceph Manager 사양을 가져옵니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ mkdir -p ${SPEC_DIR}
    $ sudo cephadm shell -- ceph orch ls --export mgr > ${SPEC_DIR}/mgr
  10. 검색된 사양을 편집하고 label: mgr 섹션을 placement 섹션에 추가합니다.

    service_type: mgr
    service_id: mgr
    placement:
      label: mgr
  11. 사양을 저장합니다.
  12. Ceph Orchestrator를 사용하여 cephadm 으로 사양을 적용합니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -m ${SPEC_DIR}/mgr -- ceph orch apply -i /mnt/mgr

검증

  1. 새 Ceph Manager 데몬이 대상 노드에 생성되었는지 확인합니다.

    $ sudo cephadm shell -- ceph orch ps | grep -i mgr
    $ sudo cephadm shell -- ceph -s

    Ceph 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 노드를 준비합니다.

  1. 대상 노드에서 방화벽 규칙을 활성화하고 저장합니다.
  2. 레이블을 기반으로 하는 사양을 생성하고 cephadm 을 사용하여 적용합니다.
  3. 마이그레이션 프로세스 중에 Ceph Monitor 쿼럼이 유지 관리되는지 확인합니다.

프로세스

  1. 대상 노드에 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& gt;를 새 Ceph Monitor를 호스팅하는 노드의 호스트 이름으로 바꿉니다.
  2. 규칙이 대상 노드에 올바르게 적용되고 유지되는지 확인합니다.

    $ sudo iptables-save
    $ sudo systemctl restart iptables
  3. 기존 배포에 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"
  4. 파일을 저장합니다.
  5. nftables 서비스를 다시 시작합니다.

    $ sudo systemctl restart nftables
  6. 규칙이 적용되었는지 확인합니다.

    $ sudo nft list ruleset | grep ceph_mon
  7. 기존 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}/mon
  8. placement 섹션에 label:mon 섹션을 추가합니다.

    service_type: mon
    service_id: mon
    placement:
      label: mon
  9. 사양을 저장합니다.
  10. Ceph Orchestrator를 사용하여 cephadm 으로 사양을 적용합니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/mon
  11. mon 레이블을 나머지 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 모니터가 마이그레이션될 때 여러 번 반복되지 않도록 이 단계를 한 번만 수행합니다.

  12. 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 mon
  13. Red Hat Ceph Storage와 상호 작용하는 나머지 절차 중에 사용되는 첫 번째 컨트롤러 노드에 Ceph 클라이언트를 설정합니다. 첫 번째 컨트롤러 노드가 해제될 때 Red Hat Ceph Storage와 상호 작용하는 데 사용되는 스토리지 네트워크에서 추가 IP 주소를 설정합니다.

    1. ceph_client_backup 디렉터리에 있는 /etc/ceph 콘텐츠를 백업합니다.

      $ mkdir -p $HOME/ceph_client_backup
      $ sudo cp -R /etc/ceph/* $HOME/ceph_client_backup
    2. /etc/os-net-config/config.yaml 을 편집하고 스토리지 네트워크에 속하는 VLAN의 IP 주소 뒤에 - ip_netmask: 172.17.3.200 을 추가합니다. 172.17.3.200 을 정적으로 controller-0 에 할당할 수 있는 스토리지 네트워크에서 사용 가능한 다른 IP 주소로 바꿉니다.
    3. 파일을 저장하고 controller-0 네트워크 구성을 새로 고칩니다.

      $ sudo os-net-config -c /etc/os-net-config/config.yaml
    4. IP 주소가 컨트롤러 노드에 있는지 확인합니다.

      $ ip -o a | grep 172.17.3.200
    5. IP 주소를 ping하고 연결할 수 있는지 확인합니다.

      $ ping -c 3 172.17.3.200
    6. Red 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 클러스터에서 소스 노드 호스트를 제거합니다.

프로세스

  1. 소스 노드에서 cephadm 을 실행하도록 /etc/ceph/ 디렉터리를 백업하고 소스 노드에서 Red Hat Ceph Storage 클러스터의 쉘을 가져옵니다.

    $ mkdir -p $HOME/ceph_client_backup
    $ sudo cp -R /etc/ceph $HOME/ceph_client_backup
  2. 활성 ceph-mgr 인스턴스를 확인합니다.

    $ sudo cephadm shell -- ceph mgr stat
  3. 소스 노드에서 ceph-mgr 이 활성화된 경우 실패합니다.

    $ sudo cephadm shell -- ceph mgr fail <mgr_instance>
    • & lt;mgr_instance& gt;를 Ceph Manager 데몬으로 교체합니다.
  4. cephadm 쉘에서 소스 노드의 라벨을 제거합니다.

    $ for label in mon mgr _admin; do
        sudo cephadm shell -- ceph orch host label rm <source_node> $label;
    done
    • & lt;source_node& gt;를 소스 노드의 호스트 이름으로 바꿉니다.
  5. 선택 사항: 실행 중인 경우 소스 노드에서 Ceph Monitor 데몬을 제거해야 합니다.

    $ sudo cephadm shell -- ceph orch daemon rm mon.<source_node> --force
  6. 소스 노드를 드레이닝하여 남은 데몬을 제거합니다.

    $ sudo cephadm shell -- ceph orch host drain <source_node>
  7. 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 지원에 문의하십시오.

  8. 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 에 의해 관리된다고 가정합니다.

프로세스

  1. 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]
  2. 이전 단계에서 검색된 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
  3. 소스 노드의 /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
  4. /etc/os-net-config/config.yaml 파일을 편집하고 ip_netmask 행을 제거합니다.
  5. 파일을 저장하고 노드 네트워크 구성을 새로 고칩니다.

    $ sudo os-net-config -c /etc/os-net-config/config.yaml
  6. IP 주소가 소스 노드에 더 이상 존재하지 않는지 확인합니다. 예를 들면 다음과 같습니다.

    [controller-0]$ ip -o a | grep 172.17.3.60
  7. 대상 노드(예: cephstorage-0 )에 SSH로 연결하고 새 Ceph 모니터의 IP 주소를 추가합니다.
  8. 대상 노드에서 /etc/os-net-config/config.yaml 을 편집하고 소스 노드에서 제거한 - ip_netmask: 172.17.3.60 행을 추가합니다.
  9. 파일을 저장하고 노드 네트워크 구성을 새로 고칩니다.

    $ sudo os-net-config -c /etc/os-net-config/config.yaml
  10. IP 주소가 대상 노드에 있는지 확인합니다.

    $ ip -o a | grep 172.17.3.60
  11. Ceph 클라이언트 노드 controller-0 에서 대상 노드로 마이그레이션된 IP 주소를 ping하고 여전히 연결할 수 있는지 확인합니다.

    [controller-0]$ ping -c 3 172.17.3.60

다음 단계

대상 노드에서 Ceph Monitor를 재배포하는 다음 단계로 이동합니다.

9.5.2.4. 대상 노드에 Ceph Monitor 재배포

대상 노드로 마이그레이션한 IP 주소를 사용하여 대상 노드에 Ceph Monitor를 재배포합니다.

프로세스

  1. Ceph 클라이언트 노드(예: controller-0)에서 Ceph mon 사양을 가져옵니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/mon
  2. 검색된 사양을 편집하고 unmanaged: true 키워드를 추가합니다.

    service_type: mon
    service_id: mon
    placement:
      label: mon
    unmanaged: true
  3. 사양을 저장합니다.
  4. Ceph Orchestrator를 사용하여 cephadm 으로 사양을 적용합니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/mon

    Ceph Monitor 데몬은 관리되지 않음 으로 표시되어 기존 데몬을 재배포하여 마이그레이션된 IP 주소에 바인딩할 수 있습니다.

  5. 대상 노드에서 기존 Ceph Monitor를 삭제합니다.

    $ sudo cephadm shell -- ceph orch daemon rm mon.<target_node> --force
    • & lt;target_node >를 Red Hat Ceph Storage 클러스터에 포함된 대상 노드의 호스트 이름으로 바꿉니다.
  6. 마이그레이션된 IP 주소를 사용하여 대상 노드에 새 Ceph Monitor를 재배포합니다.

    $ sudo cephadm shell -- ceph orch daemon add mon <target_node>:<ip_address>
    • & lt;ip_address& gt;를 마이그레이션된 IP 주소의 IP 주소로 바꿉니다.
  7. Ceph Monitor 사양을 가져옵니다.

    $ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"}
    $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/mon
  8. 검색된 사양을 편집하고 unmanaged 키워드를 false 로 설정합니다.

    service_type: mon
    service_id: mon
    placement:
      label: mon
    unmanaged: false
  9. 사양을 저장합니다.
  10. 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 주소가 있는 대상 노드에서 실행됩니다.

  11. 실행 중인 mgr 을 확인합니다.

    $ sudo cephadm shell -- ceph mgr stat
  12. 강제로 실패하여 Ceph Manager 정보를 새로 고칩니다.

    $ sudo cephadm shell -- ceph mgr fail
  13. OSD 정보를 새로 고칩니다.

    $ 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 클러스터가 정상인지 확인합니다.

프로세스

  1. Red Hat Ceph Storage 클러스터가 정상인지 확인합니다.

    $ ceph -s
      cluster:
        id:     f6ec3ebe-26f7-56c8-985d-eb974e8e08e3
        health: HEALTH_OK
    ...
    ...
  2. Red Hat Ceph Storage mons가 이전 IP 주소로 실행되고 있는지 확인합니다. 대상 노드에 SSH를 연결하고 Ceph Monitor 데몬이 예상 IP 및 포트에 바인딩되었는지 확인합니다.

    $ netstat -tulpn | grep 3300
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동