15장. 스토리지 장치 교체


Red Hat OpenStack Platform에 배포된 OpenShift Data Foundation에서 스토리지 장치를 교체하려면 다음 절차를 사용하십시오. 이 절차에서는 새 볼륨에서 새 PVC(영구 볼륨 클레임)를 생성하고 이전 오브젝트 스토리지 장치(OSD)를 제거하는 데 도움이 됩니다.

절차

  1. 교체해야 하는 OSD와 OSD가 예약된 OpenShift Container Platform 노드를 식별합니다.

    $ oc get -n openshift-storage pods -l app=rook-ceph-osd -o wide

    출력 예:

    rook-ceph-osd-0-6d77d6c7c6-m8xj6    0/1    CrashLoopBackOff    0    24h   10.129.0.16   compute-2   <none>           <none>
    rook-ceph-osd-1-85d99fb95f-2svc7    1/1    Running             0    24h   10.128.2.24   compute-0   <none>           <none>
    rook-ceph-osd-2-6c66cdb977-jp542    1/1    Running             0    24h   10.130.0.18   compute-1   <none>           <none>

    이 예에서 rook-ceph-osd-0-6d77d6c7c6-m8xj6-m8xj6 OSD가 예약된 OpenShift Container Platform 노드입니다.

    참고

    교체할 OSD가 정상이면 포드의 상태가 Running 이 됩니다.

  2. OSD를 교체할 OSD 배포를 축소합니다.

    $ osd_id_to_remove=0
    $ oc scale -n openshift-storage deployment rook-ceph-osd-${osd_id_to_remove} --replicas=0

    여기서 osd_id_to_removerook-ceph-osd 접두사 바로 뒤에 있는 Pod 이름의 정수입니다. 이 예에서 배포 이름은 rook-ceph-osd-0 입니다.

    출력 예:

    deployment.extensions/rook-ceph-osd-0 scaled
  3. rook-ceph-osd 포드가 종료되었는지 확인합니다.

    $ oc get -n openshift-storage pods -l ceph-osd-id=${osd_id_to_remove}

    출력 예:

    No resources found.
    참고

    rook-ceph-osd 포드가 종료 중이면 force 옵션을 사용하여 Pod를 삭제합니다.

    $ oc delete pod rook-ceph-osd-0-6d77d6c7c6-m8xj6 --force --grace-period=0

    출력 예:

    warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
      pod "rook-ceph-osd-0-6d77d6c7c6-m8xj6" force deleted
  4. 실패한 OSD와 연결된 영구 볼륨은 실패하고 실패한 영구 볼륨 세부 정보를 가져와 다음 명령을 사용하여 삭제합니다.

    $ oc get pv
    $ oc delete pv <failed-pv-name>
  5. 새 OSD를 추가할 수 있도록 클러스터에서 이전 OSD를 제거합니다.

    1. 이전 ocs-osd-removal 작업을 삭제합니다.

      $ oc delete -n openshift-storage job ocs-osd-removal-${osd_id_to_remove}

      출력 예:

      job.batch "ocs-osd-removal-0" deleted
    2. openshift-storage 프로젝트로 변경합니다.

      $ oc project openshift-storage
    3. 클러스터에서 이전 OSD를 제거합니다.

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_id_to_remove} FORCE_OSD_REMOVAL=false |oc create -n openshift-storage -f -

      명령에 쉼표로 구분된 OSD ID를 추가하여 두 개 이상의 OSD를 제거할 수 있습니다. (예: FAILED_OSD_IDS=0,1,2)

      OSD를 제거한 후 데이터의 세 개의 복제본을 모두 복원할 수 있는 공간이 충분하지 않은 클러스터에서 FORCE_OSD_REMOVAL 값을 "true"로 변경해야 합니다.

      주의

      이 단계에서는 클러스터에서 OSD가 완전히 제거됩니다. osd_id_to_remove 의 올바른 값이 제공되었는지 확인합니다.

  6. ocs-osd-removal-job Pod의 상태를 확인하여 OSD가 성공적으로 제거되었는지 확인합니다.

    상태가 Completed 로 OSD 제거 작업이 성공했는지 확인합니다.

    # oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
  7. OSD 제거가 완료되었는지 확인합니다.

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1 | egrep -i 'completed removal'

    출력 예:

    2022-05-10 06:50:04.501511 I | cephosd: completed removal of OSD 0
    중요

    ocs-osd-removal-job 이 실패하고 Pod가 expected Completed 상태가 아닌 경우 Pod 로그에서 추가 디버깅을 확인합니다.

    예를 들면 다음과 같습니다.

    # oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1
  8. 설치 시 암호화가 활성화된 경우 해당 OpenShift Data Foundation 노드에서 제거된 OSD 장치에서 dm -crypt managed device-mapper 매핑을 제거합니다.

    1. ocs-osd-removal-job Pod 로그에서 교체된 OSD의 PVC 이름을 가져옵니다.

      $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1  |egrep -i ‘pvc|deviceset’

      예를 들면 다음과 같습니다.

      2021-05-12 14:31:34.666000 I | cephosd: removing the OSD PVC "ocs-deviceset-xxxx-xxx-xxx-xxx"
    2. 1단계에서 식별된 각 노드에 대해 다음을 수행합니다.

      1. 스토리지 노드의 호스트에 디버그 포드 및 chroot 를 만듭니다.

        $ oc debug node/<node name>
        $ chroot /host
      2. 이전 단계에서 식별된 PVC 이름을 기반으로 관련 장치 이름 찾기

        sh-4.4# dmsetup ls| grep <pvc name>
        ocs-deviceset-xxx-xxx-xxx-xxx-block-dmcrypt (253:0)
      3. 매핑된 장치를 제거합니다.

        $ cryptsetup luksClose --debug --verbose ocs-deviceset-xxx-xxx-xxx-xxx-block-dmcrypt
        참고

        권한이 충분하지 않아 위의 명령이 중단되면 다음 명령을 실행합니다.

        • CTRL+Z 를 눌러 위의 명령을 종료합니다.
        • 중단된 프로세스의 PID를 찾습니다.

          $ ps -ef | grep crypt
        • kill 명령을 사용하여 프로세스를 종료합니다.

          $ kill -9 <PID>
        • 장치 이름이 제거되었는지 확인합니다.

          $ dmsetup ls
  9. ocs-osd-removal 작업을 삭제합니다.

    $ oc delete -n openshift-storage job ocs-osd-removal-${osd_id_to_remove}

    출력 예:

    job.batch "ocs-osd-removal-0" deleted

검증 단계

  1. 새 OSD가 실행되고 있는지 확인합니다.

    $ oc get -n openshift-storage pods -l app=rook-ceph-osd

    출력 예:

    rook-ceph-osd-0-5f7f4747d4-snshw                                  1/1     Running     0          4m47s
    rook-ceph-osd-1-85d99fb95f-2svc7                                  1/1     Running     0          1d20h
    rook-ceph-osd-2-6c66cdb977-jp542                                  1/1     Running     0          1d20h
  2. Bound 상태인 새 PVC가 생성되었는지 확인합니다.

    $ oc get -n openshift-storage pvc

    출력 예:

    NAME                           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    db-noobaa-db-0                 Bound    pvc-b44ebb5e-3c67-4000-998e-304752deb5a7   50Gi       RWO            ocs-storagecluster-ceph-rbd   6d
    ocs-deviceset-0-data-0-gwb5l   Bound    pvc-bea680cd-7278-463d-a4f6-3eb5d3d0defe   512Gi      RWO            standard                      94s
    ocs-deviceset-1-data-0-w9pjm   Bound    pvc-01aded83-6ef1-42d1-a32e-6ca0964b96d4   512Gi      RWO            standard                      6d
    ocs-deviceset-2-data-0-7bxcq   Bound    pvc-5d07cd6c-23cb-468c-89c1-72d07040e308   512Gi      RWO            standard                      6d
  3. 선택 사항: 클러스터에서 클러스터 전체 암호화가 활성화된 경우 새 OSD 장치가 암호화되었는지 확인합니다.

    1. 새 OSD 포드가 실행 중인 노드를 식별합니다.

      $ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>

      예를 들면 다음과 같습니다.

      oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
    2. 이전 단계에서 식별된 각 노드에 대해 다음을 수행합니다.

      1. 디버그 포드를 만들고 선택한 호스트에 대해 chroot 환경을 엽니다.

        $ oc debug node/<node name>
        $ chroot /host
      2. "lsblk"를 실행하고 ocs-deviceset 이름 옆의 "crypt" 키워드를 확인하십시오.

        $ lsblk
  4. OpenShift 웹 콘솔에 로그인하여 스토리지 대시보드를 확인합니다.

    그림 15.1. 장치 교체 후 OpenShift Container Platform 스토리지 대시 보드에서 OSD 상태

    정상 OSD를 보여주는 RHOCP 스토리지 대시보드.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동