Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

10.4. Ceph Storage 노드에서 OSD 제거

다음 절차에서는 노드에서 OSD를 제거하는 방법을 설명합니다. 환경에 대해 다음과 같이 가정합니다.

  • 서버(ceph-storage0)에는 /dev/sde 에서 실행되는 OSD(ceph-osd@4)가 있습니다.
  • Ceph 모니터 서비스(ceph-mon)가 controller0 에서 실행되고 있습니다.
  • 스토리지 클러스터가 거의 완전한 비율이 아닌지 확인하는 데 사용 가능한 OSD가 충분히 있습니다.

Ceph OSD에 대한 자세한 내용은 Red Hat Ceph Storage Operations Guide 의 Ceph OSD 를 참조하십시오.

절차

  1. ceph-storage0 에 SSH로 연결하고 root 로 로그인합니다.
  2. OSD 서비스를 비활성화하고 중지합니다.

    [root@ceph-storage0 ~]# systemctl disable ceph-osd@4
    [root@ceph-stoarge0 ~]# systemctl stop ceph-osd@4
  3. ceph-storage0 에서 연결을 끊습니다.
  4. controller0 에 SSH로 연결하고 root 로 로그인합니다.
  5. Ceph 모니터 컨테이너의 이름을 확인합니다.

    [root@controller0 ~]# docker ps | grep ceph-mon
    ceph-mon-controller0
    [root@controller0 ~]#
  6. Ceph 모니터 컨테이너에서 원하지 않는 OSD를 으로 표시하도록 활성화합니다.

    [root@controller0 ~]# docker exec ceph-mon-controller0 ceph osd out 4
    참고

    이 명령을 사용하면 Ceph가 스토리지 클러스터를 재조정하고 클러스터의 다른 OSD에 데이터를 복사합니다. 클러스터는 리밸런싱이 완료될 때까지 활성+clean 상태를 일시적으로 유지합니다.

  7. 다음 명령을 실행하고 스토리지 클러스터 상태가 active+clean 이 될 때까지 기다립니다.

    [root@controller0 ~]# docker exec ceph-mon-controller0 ceph -w
  8. CRUSH 맵에서 OSD를 제거하여 더 이상 데이터를 수신하지 않도록 합니다.

    [root@controller0 ~]# docker exec ceph-mon-controller0 ceph osd crush remove osd.4
  9. OSD 인증 키를 제거합니다.

    [root@controller0 ~]# docker exec ceph-mon-controller0 ceph auth del osd.4
  10. OSD를 제거합니다.

    [root@controller0 ~]# docker exec ceph-mon-controller0 ceph osd rm 4
  11. controller0 에서 연결을 해제합니다.
  12. stack 사용자로 언더클라우드에 SSH로 연결하고 CephAnsibleDisksConfig 매개변수를 정의한 heat 환경 파일을 찾습니다.
  13. heat 템플릿에는 4개의 OSD가 포함되어 있습니다.

    parameter_defaults:
      CephAnsibleDisksConfig:
        devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
          - /dev/sde
        osd_scenario: lvm
        osd_objectstore: bluestore
  14. 템플릿을 수정하여 /dev/sde 를 제거합니다.

    parameter_defaults:
      CephAnsibleDisksConfig:
        devices:
          - /dev/sdb
          - /dev/sdc
          - /dev/sdd
        osd_scenario: lvm
        osd_objectstore: bluestore
  15. openstack overcloud deploy 를 실행하여 오버클라우드를 업데이트합니다.

    참고

    이 예에서는 OSD가 있는 모든 호스트에서 /dev/sde 장치를 제거했다고 가정합니다. 모든 노드에서 동일한 장치를 제거하지 않으면 표시된 대로 heat 템플릿을 업데이트하고 다른 장치 목록으로 호스트를 정의하는 방법에 대한 정보는 5.2.5절. “디스크 레이아웃을 비Homogeneous Ceph Storage 노드에 매핑” 를 참조하십시오.