11.2. Ceph Storage 노드 축소 및 교체


Ceph Storage 노드에 결함이 있는 경우와 같이 Ceph 클러스터를 축소하거나 Ceph Storage 노드를 교체해야 하는 경우도 있습니다. 두 경우 모두 데이터 손실을 방지하기 위해 오버클라우드에서 삭제하려는 Ceph Storage 노드를 비활성화하고 리밸런싱해야 합니다.

참고

이 절차에서는 Red Hat Ceph Storage 관리 가이드 의 단계를 사용하여 Ceph Storage 노드를 수동으로 제거합니다. Ceph Storage 노드를 수동으로 제거하는 방법에 대한 자세한 내용은 컨테이너에서 실행되는 Ceph 데몬 시작, 중지 및 다시 시작하고 명령줄 인터페이스를 사용하여 Ceph OSD 제거를 참조하십시오.

절차

  1. 컨트롤러 노드에 heat-admin 사용자로 로그인합니다. director stack 사용자에게는 heat-admin 사용자에 액세스할 수 있는 SSH 키가 있습니다.
  2. OSD 트리를 나열하고 노드의 OSD를 찾습니다. 예를 들어 삭제하려는 노드에는 다음 OSD가 포함될 수 있습니다.

    -2 0.09998     host overcloud-cephstorage-0
    0 0.04999         osd.0                         up  1.00000          1.00000
    1 0.04999         osd.1                         up  1.00000          1.00000
  3. Ceph Storage 노드에서 OSD를 비활성화합니다. 이 경우 OSD ID는 0과 1입니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 0
    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 1
  4. Ceph Storage 클러스터는 리밸런싱을 시작합니다. 이 프로세스가 완료될 때까지 기다립니다. 다음 명령을 사용하여 상태를 따릅니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph -w
  5. Ceph 클러스터 재조정이 완료되면 제거할 Ceph Storage 노드에 heat-admin 사용자로 overcloud-cephstorage-0 에 로그인하고 노드를 중지하고 비활성화합니다.

    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@0
    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@1
    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl disable ceph-osd@0
    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl disable ceph-osd@1
  6. OSD를 중지합니다.

    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@0
    [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@1
  7. 컨트롤러 노드에 로그인하는 동안 더 이상 데이터를 받지 않도록 CRUSH 맵에서 OSD를 제거합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.0
    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.1
  8. OSD 인증 키를 제거합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.0
    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.1
  9. 클러스터에서 OSD를 제거합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 0
    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 1
  10. CRUSH 맵에서 Storage 노드를 제거합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo docker exec ceph-mon-<HOSTNAME> ceph osd crush rm <NODE>
    [heat-admin@overcloud-controller-0 ~]$ sudo ceph osd crush remove <NODE>

    CRUSH 트리를 검색하여 CRUSH 맵에 정의된 <NODE> 이름을 확인할 수 있습니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush tree | grep overcloud-osd-compute-3 -A 4
                    "name": "overcloud-osd-compute-3",
                    "type": "host",
                    "type_id": 1,
                    "items": []
                },
    [heat-admin@overcloud-controller-0 ~]$

    CRUSH 트리에서 items 목록이 비어 있는지 확인합니다. 목록이 비어 있지 않으면 7단계를 다시 방문하십시오.

  11. 노드를 종료하고 stack 사용자로 언더클라우드로 돌아갑니다.

    [heat-admin@overcloud-controller-0 ~]$ exit
    [stack@director ~]$
  12. Ceph Storage 노드를 비활성화하여 director가 다시 프로비저닝하지 않도록 합니다.

    [stack@director ~]$ openstack baremetal node list
    [stack@director ~]$ openstack baremetal node maintenance set UUID
  13. Ceph Storage 노드를 제거하려면 로컬 템플릿 파일을 사용하여 director의 오버클라우드 스택을 업데이트해야 합니다. 먼저 오버클라우드 스택의 UUID를 확인합니다.

    $ openstack stack list
  14. 삭제할 Ceph Storage 노드의 UUID를 확인합니다.

    $ openstack server list
  15. 스택에서 노드를 삭제하고 그에 따라 계획을 업데이트합니다.

    중요

    오버클라우드를 생성할 때 추가 환경 파일을 전달한 경우 -e 옵션을 사용하여 오버클라우드를 원치 않게 변경하지 않도록 다시 여기에 전달합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 Overcloud 환경 수정을 참조하십시오.

    $ openstack overcloud node delete /
    --stack <stack-name> /
    --templates /
    -e <other-environment-files> /
    <node_UUID>
  16. 스택이 업데이트가 완료될 때까지 기다립니다. heat stack-list --show-nested 명령을 사용하여 스택 업데이트를 모니터링합니다.
  17. director 노드 풀에 새 노드를 추가하고 Ceph Storage 노드로 배포합니다. 환경 파일의 parameter_defaults 에서 CephStorageCount 매개 변수를 사용하여 ~/templates/storage-config.yaml 을 사용하여 오버클라우드에서 총 Ceph Storage 노드 수를 정의합니다.

    parameter_defaults:
      ControllerCount: 3
      OvercloudControlFlavor: control
      ComputeCount: 3
      OvercloudComputeFlavor: compute
      CephStorageCount: 3
      OvercloudCephStorageFlavor: ceph-storage
      CephMonCount: 3
      OvercloudCephMonFlavor: ceph-mon
    참고

    역할당 노드 수를 정의하는 방법에 대한 자세한 내용은 7.1절. “역할에 노드 및 플레이버 할당” 을 참조하십시오.

  18. 환경 파일을 업데이트한 후 오버클라우드를 재배포합니다.

    $ openstack overcloud deploy --templates -e <ENVIRONMENT_FILE>

    director가 새 노드를 프로비저닝하고 새 노드의 세부 정보로 전체 스택을 업데이트합니다.

  19. 컨트롤러 노드에 heat-admin 사용자로 로그인하고 Ceph Storage 노드의 상태를 확인합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo ceph status
  20. osdmap 섹션의 값이 원하는 클러스터의 노드 수와 일치하는지 확인합니다. 제거한 Ceph Storage 노드는 새 노드로 교체됩니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동