Replacing devices


Red Hat OpenShift Container Storage 4.7

작동 또는 실패한 장치를 안전하게 교체하기 위한 지침

초록

이 문서에서는 Red Hat OpenShift Container Storage의 스토리지 장치를 안전하게 교체하는 방법을 설명합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 이를 개선하는 방법을 알려 주십시오. 피드백을 제공하려면 다음을 수행하십시오.

  • 특정 문구에 대한 간단한 의견 작성 방법은 다음과 같습니다.

    1. 문서가 Multi-page HTML 형식으로 표시되는지 확인합니다. 또한 문서 오른쪽 상단에 피드백 버튼이 있는지 확인합니다.
    2. 마우스 커서를 사용하여 주석 처리하려는 텍스트 부분을 강조 표시합니다.
    3. 강조 표시된 텍스트 아래에 표시되는 피드백 추가 팝업을 클릭합니다.
    4. 표시된 지침을 따릅니다.
  • 보다 상세하게 피드백을 제출하려면 다음과 같이 Bugzilla 티켓을 생성하십시오.

    1. Bugzilla 웹 사이트로 이동하십시오.
    2. Component로 Documentation을 선택하십시오.
    3. Description 필드에 문서 개선을 위한 제안 사항을 기입하십시오. 관련된 문서의 해당 부분 링크를 알려주십시오.
    4. Submit Bug를 클릭하십시오.

preface

배포 유형에 따라 다음 절차 중 하나를 선택하여 스토리지 장치를 교체할 수 있습니다.

참고

OpenShift Container Storage는 이기종 OSD 크기를 지원하지 않습니다.

1장. AWS에 동적으로 배포된 OpenShift Container Storage

AWS 사용자 프로비저닝 인프라에서 동적으로 생성된 스토리지 클러스터에서 장치를 교체해야 하는 경우 스토리지 노드를 교체해야 합니다. 노드를 교체하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

AWS 설치 관리자 프로비저닝 인프라에서 동적으로 생성된 스토리지 클러스터에서 장치를 교체해야 하는 경우 스토리지 노드를 교체해야 합니다. 노드를 교체하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

2장. VMware에 동적으로 배포된 OpenShift Container Storage

2.1. VMware 인프라에서 운영 또는 실패한 스토리지 장치 교체

VMware 인프라에 동적으로 배포된 OpenShift Container Storage에서 하나 이상의 VMDK(가상 머신 디스크)를 교체해야 하는 경우 다음 절차를 사용하십시오. 이 절차에서는 새 볼륨에서 새 PVC(영구 볼륨 클레임)를 생성하고 이전 오브젝트 스토리지 장치(OSD)를 제거하는 데 도움이 됩니다.

사전 요구 사항

  • 데이터의 복원력을 확보합니다.

    • OpenShift 웹 콘솔에서 스토리지 → 개요 로 이동합니다.
    • 상태 카드의 영구 스토리지 에서 Data Resiliency 에 녹색 눈금이 있는지 확인합니다.

절차

  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를 교체할 때마다 osd_id_to_remove 매개 변수를 OSD ID로 업데이트하여 이 단계를 반복합니다.

    $ 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를 추가할 수 있도록 클러스터에서 이전 OSD를 제거합니다.

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

      $ oc delete -n openshift-storage job ocs-osd-removal-job

      출력 예:

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

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

      $ oc process -n openshift-storage ocs-osd-removal \
      -p FAILED_OSD_IDS=<failed_osd_id> FORCE_OSD_REMOVAL=false | oc create -n openshift-storage -f -
      <failed_osd_id>

      rook-ceph-osd 접두사 바로 뒤에 있는 Pod 이름의 정수입니다. 명령에 쉼표로 구분된 OSD ID를 추가하여 OSD(예: FAILED_OSD _IDS=0,1,2)와 같이 두 개 이상의 OSD 를 제거할 수 있습니다.

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

      주의

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

  5. ocs-osd-removal 포드의 상태를 확인하여 OSD가 제거되었는지 확인합니다. 상태가 Completed 인지 확인합니다. OSD 제거 작업이 성공했는지 확인합니다.

    $ oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
    참고

    ocs-osd-removal 이 실패하고 Pod가 예상되는 Completed 상태가 아닌 경우 Pod 로그에서 추가 디버깅을 확인합니다. 예를 들면 다음과 같습니다.

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1'
  6. 설치 시 암호화가 활성화된 경우 해당 OpenShift Container Storage 노드에서 제거된 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
  7. ocs-osd-removal 작업을 삭제합니다.

    $ oc delete -n openshift-storage job ocs-osd-removal-job

    출력 예:

    job.batch "ocs-osd-removal-job" deleted
참고

데이터 암호화와 함께 외부 KMS(키 관리 시스템)를 사용하는 경우 이전 OSD 암호화 키는 이제 고립된 키이므로 Vault 서버에서 제거할 수 있습니다.

검증 단계

  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
    ocs-deviceset-0-0-2s6w4   Bound    pvc-7c9bcaf7-de68-40e1-95f9-0b0d7c0ae2fc   512Gi      RWO            thin            5m
    ocs-deviceset-1-0-q8fwh   Bound    pvc-9e7e00cb-6b33-402e-9dc5-b8df4fd9010f   512Gi      RWO            thin            1d20h
    ocs-deviceset-2-0-9v8lq   Bound    pvc-38cdfcee-ea7e-42a5-a6e1-aaa6d4924291   512Gi      RWO            thin            1d20h
  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 웹 콘솔에 로그인하여 스토리지 대시보드를 확인합니다.

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

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

3장. Red Hat Virtualization에 동적으로 배포된 OpenShift Container Storage

Red Hat Virtualization 인프라에 배포된 OpenShift Container Storage에서 하나 이상의 VMDK(가상 머신 디스크)를 교체해야 하는 경우 다음 절차를 사용하십시오. 이 절차에서는 새 볼륨에서 새 PVC(영구 볼륨 클레임)를 생성하고 이전 오브젝트 스토리지 장치(OSD)를 제거하는 데 도움이 됩니다.

사전 요구 사항

  • 데이터의 복원력을 확보합니다.

    • OpenShift 웹 콘솔에서 스토리지 → 개요 로 이동합니다.
    • 상태 카드의 영구 스토리지 에서 Data Resiliency 에 녹색 눈금이 있는지 확인합니다.

절차

  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를 교체할 때마다 osd_id_to_remove 매개 변수를 OSD ID로 업데이트하여 이 단계를 반복합니다.

    $ 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를 추가할 수 있도록 클러스터에서 이전 OSD를 제거합니다.

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

      $ oc delete -n openshift-storage job ocs-osd-removal-job

      출력 예:

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

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

      $ oc process -n openshift-storage ocs-osd-removal \
      -p FAILED_OSD_IDS=<failed_osd_id> FORCE_OSD_REMOVAL=false | oc create -n openshift-storage -f -
      <failed_osd_id>

      rook-ceph-osd 접두사 바로 뒤에 있는 Pod 이름의 정수입니다. 명령에 쉼표로 구분된 OSD ID를 추가하여 OSD(예: FAILED_OSD _IDS=0,1,2)와 같이 두 개 이상의 OSD 를 제거할 수 있습니다.

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

      주의

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

  5. ocs-osd-removal 포드의 상태를 확인하여 OSD가 제거되었는지 확인합니다. 상태가 Completed 인지 확인합니다. OSD 제거 작업이 성공했는지 확인합니다.

    $ oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
    참고

    ocs-osd-removal 이 실패하고 Pod가 예상되는 Completed 상태가 아닌 경우 Pod 로그에서 추가 디버깅을 확인합니다. 예를 들면 다음과 같습니다.

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1'
  6. 설치 시 암호화가 활성화된 경우 해당 OpenShift Container Storage 노드에서 제거된 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
  7. ocs-osd-removal 작업을 삭제합니다.

    $ oc delete -n openshift-storage job ocs-osd-removal-job

    출력 예:

    job.batch "ocs-osd-removal-job" deleted
참고

데이터 암호화와 함께 외부 KMS(키 관리 시스템)를 사용하는 경우 이전 OSD 암호화 키는 이제 고립된 키이므로 Vault 서버에서 제거할 수 있습니다.

검증 단계

  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
  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 웹 콘솔에 로그인하여 스토리지 대시보드를 확인합니다.

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

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

4장. Microsoft Azure에 동적으로 배포된 OpenShift Container Storage

Azure 설치 관리자 프로비저닝 인프라에서 동적으로 생성된 스토리지 클러스터에서 장치를 교체해야 하는 경우 스토리지 노드를 교체해야 합니다. 노드를 교체하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

5장. 로컬 스토리지 장치를 사용하여 배포된 OpenShift Container Storage

5.1. Amazon EC2 인프라에서 실패한 스토리지 장치 교체

Amazon EC2(storage-optimized I3) 인프라의 스토리지 장치를 교체해야 하는 경우 스토리지 노드를 교체해야 합니다. 노드를 교체하는 방법에 대한 자세한 내용은 Amazon EC2 인프라에서 실패한 스토리지 노드 교체를 참조하십시오.

다음 인프라의 로컬 스토리지 장치를 사용하여 배포된 OpenShift Container Storage에서 오브젝트 스토리지 장치(OSD)를 교체할 수 있습니다.

  • 베어 메탈
  • VMware
  • Red Hat Virtualization

하나 이상의 기본 스토리지 장치를 교체해야 하는 경우 다음 절차를 사용하십시오.

사전 요구 사항

절차

  1. 관련 작업자 노드에서 기본 스토리지 장치를 제거합니다.
  2. 관련 OSD Pod가 CrashLoopBackOff 상태로 이동되었는지 확인합니다.

    교체해야 하는 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 노드입니다.

  3. 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
  4. rook-ceph-osd 포드가 종료되었는지 확인합니다.

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

    출력 예:

    No resources found in openshift-storage namespace.
    참고

    rook-ceph-osd 포드가 몇 분 이상 상태가 종료되는 경우 force 옵션을 사용하여 Pod를 삭제합니다.

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

    출력 예:

    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
  5. 새 OSD를 추가할 수 있도록 클러스터에서 이전 OSD를 제거합니다.

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

      $ oc delete -n openshift-storage job ocs-osd-removal-job

      출력 예:

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

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

      $ oc process -n openshift-storage ocs-osd-removal \
      -p FAILED_OSD_IDS=<failed_osd_id> FORCE_OSD_REMOVAL=false | oc create -n openshift-storage -f -
      <failed_osd_id>

      rook-ceph-osd 접두사 바로 뒤에 있는 Pod 이름의 정수입니다. 명령에 쉼표로 구분된 OSD ID를 추가하여 OSD(예: FAILED_OSD _IDS=0,1,2)와 같이 두 개 이상의 OSD 를 제거할 수 있습니다.

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

      주의

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

  6. ocs-osd-removal 포드의 상태를 확인하여 OSD가 제거되었는지 확인합니다. 상태가 Completed 인지 확인합니다. OSD 제거 작업이 성공했는지 확인합니다.

    $ oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
    참고

    ocs-osd-removal 이 실패하고 Pod가 예상되는 Completed 상태가 아닌 경우 Pod 로그에서 추가 디버깅을 확인합니다. 예를 들면 다음과 같습니다.

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1
  7. 설치 시 암호화가 활성화된 경우 해당 OpenShift Container Storage 노드에서 제거된 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
  8. 명령으로 삭제해야 하는 영구 볼륨(PV)을 찾습니다.

    $ oc get pv -L kubernetes.io/hostname | grep localblock | grep Released
    
    local-pv-d6bf175b           1490Gi       RWO         Delete          Released            openshift-storage/ocs-deviceset-0-data-0-6c5pw      localblock      2d22h       compute-1
  9. 영구 볼륨을 삭제합니다.

    $ oc delete pv local-pv-d6bf175b
  10. 물리적으로 새 장치를 노드에 추가합니다.
  11. 다음 명령을 사용하여 deviceInclusionSpec 과 일치하는 장치의 영구 볼륨 프로비저닝을 추적합니다. 영구 볼륨을 프로비저닝하는 데 몇 분이 걸릴 수 있습니다.

    $ oc -n openshift-local-storage describe localvolumeset localblock

    출력 예:

    [...]
    Status:
      Conditions:
        Last Transition Time:          2020-11-17T05:03:32Z
        Message:                       DiskMaker: Available, LocalProvisioner: Available
        Status:                        True
        Type:                          DaemonSetsAvailable
        Last Transition Time:          2020-11-17T05:03:34Z
        Message:                       Operator reconciled successfully.
        Status:                        True
        Type:                          Available
      Observed Generation:             1
      Total Provisioned Device Count: 4
    Events:
    Type    Reason      Age          From                Message
    ----    ------      ----         ----                -------
    Normal  Discovered  2m30s (x4    localvolumeset-     node.example.com -
            NewDevice   over 2m30s)  symlink-controller  found possible
                                                         matching disk,
                                                         waiting 1m to claim
    Normal  FoundMatch  89s (x4      localvolumeset-     node.example.com -
            ingDisk     over 89s)    symlink-controller  symlinking matching
                                                         disk

    영구 볼륨이 프로비저닝되면 프로비저닝된 볼륨에 대해 새 OSD 포드가 자동으로 생성됩니다.

  12. ocs-osd-removal 작업을 삭제합니다.

    $ oc delete -n openshift-storage job ocs-osd-removal-job

    출력 예:

    job.batch "ocs-osd-removal-job" deleted
참고

데이터 암호화와 함께 외부 KMS(키 관리 시스템)를 사용하는 경우 이전 OSD 암호화 키는 이제 고립된 키이므로 Vault 서버에서 제거할 수 있습니다.

검증 단계

  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
    참고

    몇 분 후에 새 OSD가 Running 으로 표시되지 않으면 rook-ceph-operator 포드를 다시 시작하여 강제로 조정을 수행합니다.

    $ oc delete pod -n openshift-storage -l app=rook-ceph-operator

    출력 예:

    pod "rook-ceph-operator-6f74fb5bff-2d982" deleted
  2. 새 PVC가 생성되었는지 확인합니다.

    $ oc get -n openshift-storage pvc | grep localblock

    출력 예:

    ocs-deviceset-0-0-c2mqb   Bound    local-pv-b481410         1490Gi     RWO            localblock                    5m
    ocs-deviceset-1-0-959rp   Bound    local-pv-414755e0        1490Gi     RWO            localblock                    1d20h
    ocs-deviceset-2-0-79j94   Bound    local-pv-3e8964d3        1490Gi     RWO            localblock                    1d20h
  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 웹 콘솔에 로그인하고 스토리지 대시보드에서 OSD 상태를 확인합니다.

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

    정상 OSD를 보여주는 RHOCP 스토리지 대시보드.
참고

전체 데이터 복구는 복구되는 데이터 볼륨에 따라 더 오래 걸릴 수 있습니다.

5.3. IBM Power Systems에서 운영 또는 실패한 스토리지 장치 교체

IBM Power Systems의 로컬 스토리지 장치를 사용하여 배포된 OpenShift Container Storage에서 오브젝트 스토리지 장치(OSD)를 교체할 수 있습니다. 기본 스토리지 장치를 교체해야 하는 경우 다음 절차를 사용하십시오.

사전 요구 사항

  • 데이터의 복원력을 확보합니다.

    • OpenShift 웹 콘솔에서 스토리지 → 개요 로 이동합니다.
    • 상태 카드의 영구 스토리지 에서 Data Resiliency 에 녹색 눈금이 있는지 확인합니다.

절차

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

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

    출력 예:

    rook-ceph-osd-0-86bf8cdc8-4nb5t   0/1     crashLoopBackOff   0   24h   10.129.2.26     worker-0     <none>       <none>
    rook-ceph-osd-1-7c99657cfb-jdzvz   1/1     Running   0          24h     10.128.2.46     worker-1     <none>       <none>
    rook-ceph-osd-2-5f9f6dfb5b-2mnw9    1/1     Running   0          24h     10.131.0.33    worker-2     <none>       <none>

    이 예에서는 rook-ceph-osd-0-86bf8cdc8-4nb5t 를 교체해야 하며 worker-0 은 OSD가 예약된 RHOCP 노드입니다.

    참고

    교체할 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.apps/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 in openshift-storage namespace.
    참고

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

    $ oc delete -n openshift-storage pod rook-ceph-osd-0-86bf8cdc8-4nb5t --grace-period=0 --force

    출력 예:

    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-86bf8cdc8-4nb5t" force deleted
  1. 새 OSD를 추가할 수 있도록 클러스터에서 이전 OSD를 제거합니다.

    1. 교체할 OSD와 연결된 DeviceSet 을 식별합니다.

      $ oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      출력 예:

      ceph.rook.io/pvc: ocs-deviceset-localblock-0-data-0-64xjl
          ceph.rook.io/pvc: ocs-deviceset-localblock-0-data-0-64xjl

      이 예에서 PVC 이름은 ocs-deviceset-localblock-0-data-0-64xjl 입니다.

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

      $ oc delete -n openshift-storage job ocs-osd-removal-job

      출력 예:

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

      $ oc project openshift-storage
    4. 클러스터에서 이전 OSD 제거

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

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

      주의

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

  2. ocs-osd-removal 포드의 상태를 확인하여 OSD가 제거되었는지 확인합니다. 상태가 Completed 인지 확인합니다. OSD 제거 작업이 성공적으로 완료되었음을 확인합니다.

    $ oc get pod -l job-name=ocs-osd-removal-job -n openshift-storage
    참고

    ocs-osd-removal 이 실패하고 Pod가 예상되는 Completed 상태가 아닌 경우 Pod 로그에서 추가 디버깅을 확인합니다. 예를 들면 다음과 같습니다.

    $ oc logs -l job-name=ocs-osd-removal-job -n openshift-storage --tail=-1
  3. OSD와 연결된 PVC(영구 볼륨 클레임) 리소스를 교체하도록 삭제합니다.

    1. PVC와 연결된 PV를 식별합니다.

      $ oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      여기서 x,ypvc-suffix 는 4(a) 단계에서 식별된 DeviceSet 의 값입니다.

      출력 예:

      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-localblock-0-data-0-64xjl   Bound    local-pv-8137c873    256Gi      RWO     localblock     24h

      이 예에서 연결된 PV는 local-pv-8137c873 입니다.

    2. 교체할 장치의 이름을 식별합니다.

      $ oc get pv local-pv-<pv-suffix> -o yaml | grep path

      여기서 pv-suffix 는 이전 단계에서 식별된 PV 이름의 값입니다.

      출력 예:

      path: /mnt/local-storage/localblock/vdc

      이 예에서 장치 이름은 vdc 입니다.

    3. 교체할 OSD와 연결된 prepare-pod 를 식별합니다.

      $ oc describe -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix> | grep Mounted

      여기서 x,ypvc-suffix 는 이전 단계에서 식별된 DeviceSet 의 값입니다.

      출력 예:

      Mounted By:    rook-ceph-osd-prepare-ocs-deviceset-localblock-0-data-0-64knzkc

      이 예제에서 prepare-pod 이름은 rook-ceph-osd-prepare-ocs-deviceset-localblock-0-data-0-64knzkc 입니다.

    4. 연결된 PVC를 제거하기 전에 osd-prepare Pod를 삭제합니다.

      $ oc delete -n openshift-storage pod rook-ceph-osd-prepare-ocs-deviceset-<x>-<y>-<pvc-suffix>-<pod-suffix>

      여기서 x,y,pvc-suffixpod 접미사는 이전 단계에서 식별된 osd-prepare 포드 이름의 값입니다.

      출력 예:

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

      $ oc project openshift-storage
    6. 클러스터에서 이전 OSD 제거

      $ oc process -n openshift-storage ocs-osd-removal \
      -p FAILED_OSD_IDS=<failed_osd_id> FORCE_OSD_REMOVAL=false | oc create -n openshift-storage -f -
      <failed_osd_id>

      rook-ceph-osd 접두사 바로 뒤에 있는 Pod 이름의 정수입니다. 명령에 쉼표로 구분된 OSD ID를 추가하여 OSD(예: FAILED_OSD _IDS=0,1,2)와 같이 두 개 이상의 OSD 를 제거할 수 있습니다.

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

      주의

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

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

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

    pod "rook-ceph-osd-prepare-ocs-deviceset-localblock-0-data-0-64knzkc" deleted
    1. 교체할 OSD와 연결된 PVC를 삭제합니다.

      $ oc delete -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      여기서 x,ypvc-suffix 는 이전 단계에서 식별된 DeviceSet 의 값입니다.

      출력 예:

      persistentvolumeclaim "ocs-deviceset-localblock-0-data-0-64xjl" deleted
  5. 교체할 장치와 연결된 PV를 삭제하십시오. 이전 단계에서 식별되었습니다. 이 예에서 PV 이름은 local-pv-8137c873 입니다.

    $ oc delete pv local-pv-8137c873

    출력 예:

    persistentvolume "local-pv-8137c873" deleted
  6. 이전 장치를 교체하고 새 장치를 사용하여 새 OpenShift Container Platform PV를 생성합니다.

    1. 교체할 장치를 사용하여 OpenShift Container Platform 노드에 로그인합니다. 이 예에서 OpenShift Container Platform 노드는 worker-0 입니다.

      $ oc debug node/worker-0

      출력 예:

      Starting pod/worker-0-debug ...
      To use host binaries, run `chroot /host`
      Pod IP: 192.168.88.21
      If you don't see a command prompt, try pressing enter.
      # chroot /host
    2. 앞에서 식별된 장치 이름인 vdc 를 사용하여 교체할 /dev/disk 를 기록합니다.

      # ls -alh /mnt/local-storage/localblock

      출력 예:

      total 0
      drwxr-xr-x. 2 root root 17 Nov  18 15:23 .
      drwxr-xr-x. 3 root root 24 Nov  18 15:23 ..
      lrwxrwxrwx. 1 root root  8 Nov  18 15:23 vdc -> /dev/vdc
    3. LocalVolumeSet CR의 이름을 찾아 교체할 /dev/disk 장치를 제거하거나 주석 처리합니다.

      $ oc get -n openshift-local-storage localvolumeset
      NAME          AGE
      localblock   25h
  7. 장치를 교체하여 OpenShift Container Platform 노드에 로그인하고 기존 심볼릭 링크를 제거합니다.

    $ oc debug node/worker-0

    출력 예:

    Starting pod/worker-0-debug ...
    To use host binaries, run `chroot /host`
    Pod IP: 192.168.88.21
    If you don't see a command prompt, try pressing enter.
    # chroot /host
    1. 교체할 장치 이름에 대한 이전 심볼릭 링크를 식별합니다. 이 예에서 장치 이름은 vdc 입니다.

      # ls -alh /mnt/local-storage/localblock

      출력 예:

      total 0
      drwxr-xr-x. 2 root root 17 Nov  18 15:23 .
      drwxr-xr-x. 3 root root 24 Nov  18 15:23 ..
      lrwxrwxrwx. 1 root root  8 Nov  18 15:23 vdc -> /dev/vdc
    2. 심볼릭 링크를 제거합니다.

      # rm /mnt/local-storage/localblock/vdc
    3. 심볼릭 링크가 제거되었는지 확인합니다.

      # ls -alh /mnt/local-storage/localblock

      출력 예:

      total 0
      drwxr-xr-x. 2 root root 6 Nov 18 17:11 .
      drwxr-xr-x. 3 root root 24 Nov 18 15:23 ..
      중요

      OpenShift Container Storage 4.5 이상의 새 배포의 경우 LVM이 사용되지 않으며 ceph-volume 원시 모드가 대신 사용됩니다. 따라서 추가 검증이 필요하지 않으며 다음 단계로 진행할 수 있습니다.

  8. 장치를 새 장치로 바꿉니다.
  9. 올바른 OpenShift Cotainer Platform 노드에 다시 로그인하고 새 드라이브의 장치 이름을 확인합니다. 동일한 장치를 반복하지 않는 한 장치 이름은 변경해야 합니다.

    # lsblk

    출력 예:

    NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    vda                          252:0    0   40G  0 disk
    |-vda1                       252:1    0    4M  0 part
    |-vda2                       252:2    0  384M  0 part /boot
    `-vda4                       252:4    0 39.6G  0 part
      `-coreos-luks-root-nocrypt 253:0    0 39.6G  0 dm   /sysroot
    vdb                          252:16   0  512B  1 disk
    vdd                          252:32   0  256G  0 disk

    이 예에서 새 장치 이름은 vdd 입니다.

  10. /dev/disk 를 사용할 수 있게 되면 localvolumeset에 의해 자동으로 탐지됩니다.
  11. Available (사용 가능) 상태와 올바른 크기의 새 PV가 있는지 확인합니다.

    $ oc get pv | grep 256Gi

    출력 예:

    local-pv-1e31f771   256Gi   RWO    Delete  Bound  openshift-storage/ocs-deviceset-localblock-2-data-0-6xhkf   localblock    24h
    local-pv-ec7f2b80   256Gi   RWO    Delete  Bound  openshift-storage/ocs-deviceset-localblock-1-data-0-hr2fx   localblock    24h
    local-pv-8137c873   256Gi   RWO    Delete  Available                                                          localblock    32m
  12. 새 장치에 대한 새 OSD를 만듭니다.

    1. rook-ceph-operator 를 다시 시작하여 새 OSD를 배포하여 Operator 조정을 강제 적용합니다.

      1. rook-ceph-operator 의 이름을 식별합니다.

        $ oc get -n openshift-storage pod -l app=rook-ceph-operator

        출력 예:

        NAME                                  READY   STATUS    RESTARTS   AGE
        rook-ceph-operator-85f6494db4-sg62v   1/1     Running   0          1d20h
      2. rook-ceph-operator 를 삭제합니다.

        $ oc delete -n openshift-storage pod rook-ceph-operator-85f6494db4-sg62v

        출력 예:

        pod "rook-ceph-operator-85f6494db4-sg62v" deleted

        이 예에서 rook-ceph-operator Pod 이름은 rook-ceph-operator-85f6494db4-sg62v 입니다.

      3. rook-ceph-operator Pod가 다시 시작되었는지 확인합니다.

        $ oc get -n openshift-storage pod -l app=rook-ceph-operator

        출력 예:

        NAME                                  READY   STATUS    RESTARTS   AGE
        rook-ceph-operator-85f6494db4-wx9xx   1/1     Running   0          50s

        새 OSD를 생성하는 데 운영자가 다시 시작된 후 몇 분이 걸릴 수 있습니다.

  13. ocs-osd-removal 작업을 삭제합니다.

    $ oc delete -n openshift-storage job ocs-osd-removal-job

    출력 예:

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

검증 단계

  • 새 OSD가 실행 중이고 새 PVC가 생성되었는지 확인합니다.

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

    출력 예:

    rook-ceph-osd-0-76d8fb97f9-mn8qz   1/1     Running   0          23m
    rook-ceph-osd-1-7c99657cfb-jdzvz   1/1     Running   1          25h
    rook-ceph-osd-2-5f9f6dfb5b-2mnw9   1/1     Running   0          25h
    $ oc get -n openshift-storage pvc | grep localblock

    출력 예:

    ocs-deviceset-localblock-0-data-0-q4q6b   Bound    local-pv-8137c873       256Gi     RWO         localblock         10m
    ocs-deviceset-localblock-1-data-0-hr2fx   Bound    local-pv-ec7f2b80       256Gi     RWO         localblock         1d20h
    ocs-deviceset-localblock-2-data-0-6xhkf   Bound    local-pv-1e31f771       256Gi     RWO         localblock         1d20h
  • OpenShift 웹 콘솔에 로그인하여 스토리지 대시보드를 확인합니다.

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

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

IBM Z 또는 LinuxONE 인프라의 작동 또는 실패한 스토리지 장치를 새 SCSI 디스크로 교체할 수 있습니다.

IBM Z 또는 LinuxONE은 SCSI FCP 디스크 논리 장치(SCSI 디스크)를 외부 디스크 스토리지의 영구 스토리지 장치로 지원합니다. SCSI 디스크는 FCP 장치 번호, 대상 전 세계 포트 이름(WWPN1 및 WWPN2) 및 LUN(논리 단위 번호)을 사용하여 식별할 수 있습니다. 자세한 내용은 https://www.ibm.com/support/knowledgecenter/SSB27U_6.4.0/com.ibm.zvm.v640.hcpa5/scsiover.html의 내용을 참조하십시오.

사전 요구 사항

  • 데이터의 복원력을 확보합니다.

    • OpenShift 웹 콘솔에서 스토리지 → 개요 로 이동합니다.
    • 상태 카드의 영구 스토리지 에서 Data Resiliency 에 녹색 눈금이 있는지 확인합니다.

절차

  1. 다음 명령을 사용하여 모든 디스크를 나열합니다.

    $ lszdev

    출력 예:

    TYPE         ID
    zfcp-host    0.0.8204                                        yes  yes
    zfcp-lun     0.0.8204:0x102107630b1b5060:0x4001402900000000 yes  no    sda sg0
    zfcp-lun     0.0.8204:0x500407630c0b50a4:0x3002b03000000000  yes  yes   sdb sg1
    qeth         0.0.bdd0:0.0.bdd1:0.0.bdd2                      yes  no    encbdd0
    generic-ccw  0.0.0009                                        yes  no

    SCSI 디스크는 ID 섹션에서 <device -id>:<wwpn>:<lun-id> 구조를 사용하여 zfcp -lun 으로 표시됩니다. 첫 번째 디스크는 운영 체제에 사용됩니다. 하나의 스토리지 장치에 오류가 발생하면 새 디스크로 바꿀 수 있습니다.

  2. 디스크를 제거합니다.

    디스크에서 다음 명령을 실행하여 scsi-id 를 교체할 디스크의 SCSI 디스크 식별자로 바꿉니다.

    $ chzdev -d scsi-id

    예를 들어 다음 명령은 다음 명령을 사용하여 장치 ID 0.0.8204, WWPN 0x500507630a0b50a4, LUN 0x4002403000000000 이 있는 디스크를 제거합니다.

    $ chzdev -d 0.0.8204:0x500407630c0b50a4:0x3002b03000000000
  3. 다음 명령으로 새 SCSI 디스크를 추가합니다.

    $ chzdev -e 0.0.8204:0x500507630b1b50a4:0x4001302a00000000
    참고

    새 디스크의 장치 ID는 교체할 디스크와 동일해야 합니다. 새 디스크는 WWPN 및 LUN ID로 식별됩니다.

  4. 모든 FCP 장치를 나열하여 새 디스크가 구성되었는지 확인합니다.

    $ lszdev zfcp-lun
    TYPE         ID                                              ON   PERS  NAMES
    zfcp-lun     0.0.8204:0x102107630b1b5060:0x4001402900000000 yes  no    sda sg0
    zfcp-lun     0.0.8204:0x500507630b1b50a4:0x4001302a00000000  yes  yes   sdb sg1
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동