Gen-1 프로필에서 Gen-2 프로필로 Block Storage for VPC 볼륨 마이그레이션하기

가상 사설 클라우드

Block Storage for VPC 볼륨을 1세대(계층 기반) 프로필에서 2세대(소프트웨어 정의 성능) 프로필로 마이그레이션하여 성능 향상, 동적 IOPS 조정, 비용 최적화의 이점을 활용하세요.

프로필 생성에 대한 이해

Block Storage for VPC 는 1세대(계층 기반)에서 2세대(소프트웨어 정의 성능) 프로필로 진화했습니다.

1세대(티어 기반)
IOPS는 볼륨 크기를 기준으로 계산됩니다. 자세한 내용은 Block Storage 프로필을 참조하세요.
2세대(SDP)
볼륨 크기와 무관한 사용자 지정 IOPS. 자세한 내용은 SDP Block Storage 프로필을 참조하세요.

블록 스토리지 프로필 및 해당 기능에 대한 최신 정보는 ‘ Block Storage 프로필’을 참조하십시오.

시작하기 전에

볼륨을 마이그레이션하기 전에 다음 단계를 완료하세요.

마이그레이션할 볼륨 식별

Gen-1 블록 스토리지 프로필을 사용하는 PVC를 찾습니다.

  1. 클러스터의 모든 블록 스토리지 PVC를 나열합니다.

    oc get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block
    
  2. PVC에서 VPC 볼륨 ID를 가져옵니다.

    PV_NAME=$(oc get pvc <pvc-name> -n <namespace> -o jsonpath='{.spec.volumeName}')
    VOLUME_ID=$(oc get pv $PV_NAME -o jsonpath='{.spec.csi.volumeHandle}')
    echo "Volume ID: $VOLUME_ID"
    

    출력 예

    Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    

현재 볼륨 구성 확인

  1. 현재 블록 볼륨 프로필 및 구성을 확인합니다.

    ibmcloud is vol $VOLUME_ID
    

    마이그레이션 전 출력 예시

    ID                      r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    Name                    pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344
    Status                  available
    Attachment state        attached
    Capacity                100
    IOPS                    3000
    Bandwidth(Mbps)         393
    Profile                 5iops-tier
    Storage Generation      1
    Adjustable IOPS         false
    Busy                    false
    
  2. 출력에서 다음 값에 주목하세요. 이를 사용하여 마이그레이션이 성공했는지 확인할 수 있습니다.

    • 프로필: 5iops-tier ( Gen-1 )
    • 스토리지 생성: 1
    • 조정 가능한 IOPS: false

마이그레이션 시작

마이그레이션 프로세스는 볼륨이 포드에 연결된 상태로 유지되고 애플리케이션이 계속 실행되는 동안 백그라운드에서 실행됩니다. IOPS는 SDP 기본값으로 자동 조정되며, 이 과정은 일반적으로 5~15분 정도 소요됩니다.

  1. SDP 프로필로 마이그레이션을 시작합니다.

    ibmcloud is volume-job-create $VOLUME_ID --profile sdp
    

마이그레이션 진행 상황 모니터링

  1. 마이그레이션 작업 상태를 확인하십시오. 출력에 Status: updatingBusy: true 이 표시되면 마이그레이션이 진행 중입니다. 출력에 Status: availableBusy: false 이 표시되면 마이그레이션이 완료된 것입니다.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. 볼륨 상태를 확인합니다.

    watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"
    

    마이그레이션 중 출력 예시

    Status                  updating
    Busy                    true
    Profile                 5iops-tier
    

마이그레이션 완료 확인

  1. 볼륨이 Gen-2 프로필을 사용하고 있는지 확인합니다.

    ibmcloud is vol $VOLUME_ID
    

    마이그레이션 후 출력 예시

    ID                          r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    Name                        pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344
    Status                      available
    Attachment state            attached
    Capacity                    100
    IOPS                        4000
    Bandwidth(Mbps)             1000
    Profile                     sdp
    Storage Generation          2
    Adjustable IOPS             true
    Adjustable Capacity States  unattached,attached
    Adjustable IOPS States      unattached,attached
    Busy                        false
    
  2. 다음 성공 지표를 확인합니다:

    • 프로파일: sdp
    • 스토리지 생성: 2
    • 조정 가능한 IOPS: true
    • IOPS: 증가(예: 3000에서 4000으로 증가)
    • 대역폭: 개선됨

PersistentVolume 메타데이터 업데이트하기

  1. Gen-2 프로필을 반영하도록 PV 메타데이터를 업데이트합니다.

    oc patch pv $PV_NAME --type='json' -p='[
      {"op": "replace", "path": "/spec/storageClassName", "value": "ibmc-vpc-block-sdp"},
      {"op": "replace", "path": "/spec/csi/volumeAttributes/profile", "value": "sdp"},
      {"op": "replace", "path": "/spec/csi/volumeAttributes/iops", "value": "4000"}
    ]'
    
  2. 업데이트를 확인하십시오.

    oc get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    예상 출력

    ibmc-vpc-block-sdp
    

    PVC에는 원래의 StorageClass 이름이 계속 표시됩니다. PVC의 storageClassName 필드는 변경할 수 없기 때문에 이 동작이 예상됩니다. 실제 스토리지 프로필은 이 단계에서 업데이트한 PV에 의해 결정됩니다.

애플리케이션 유효성 검사

마이그레이션 후 애플리케이션이 올바르게 작동하는지 확인합니다.

  1. 팟(Pod) 상태를 확인하십시오. 모든 파드가 ‘ Running ’ 상태인지 확인하십시오.

    oc get pods -n <namespace>
    
  2. 볼륨 첨부 파일을 확인합니다. 볼륨이 올바르게 마운트되었는지 확인합니다.

    oc describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:"
    
  3. 애플리케이션 로그를 확인합니다. 저장소 또는 I/O 작업과 관련된 오류를 찾아보세요.

    oc logs <pod-name> -n <namespace> --tail=50
    
  4. 해당되는 경우 애플리케이션 엔드포인트를 테스트합니다. 애플리케이션이 올바르게 응답하는지 확인합니다.

    curl -I https://<app-endpoint>/health
    

Gen-2 만들기 StorageClass

새 볼륨 프로비저닝을 위한 SDP StorageClass 를 생성합니다.

  1. StorageClass 용 YAML 파일을 생성합니다. 다음 구성을 storageclass-sdp.yaml 으로 저장합니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ibmc-vpc-block-sdp-general
      labels:
        app: ibm-vpc-block-csi-driver
    provisioner: vpc.block.csi.ibm.io
    parameters:
      profile: "sdp"
      iops: "5000"
      csi.storage.k8s.io/fstype: "ext4"
      billingType: "hourly"
      encrypted: "false"
      region: ""
      zone: ""
      tags: "generation:2,profile:sdp"
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    
  2. StorageClass 을 적용하십시오.

    oc apply -f storageclass-sdp.yaml
    
  3. StorageClass 의 생성 여부를 확인하십시오.

    oc get storageclass ibmc-vpc-block-sdp-general
    

IOPS 및 처리량을 조정하여 성능을 최적화하십시오

마이그레이션 후에는 워크로드 요구 사항에 따라 IOPS와 처리량(대역폭)을 동적으로 조정할 수 있습니다.

  • 일반 워크로드의 경우 5,000 IOPS부터 시작하세요.
  • 데이터베이스에 10,000 IOPS 이상을 사용하세요.
  • 사용량을 모니터링하고 실제 요구 사항에 따라 조정하세요.

IOPS 업데이트

  1. IOPS를 높여 성능을 향상하세요.

    ibmcloud is volume-update $VOLUME_ID --iops 8000
    
  2. IOPS 업데이트를 확인하십시오.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

처리량(대역폭) 업데이트

SDP 프로필로 마이그레이션한 후, 볼륨에는 기본 대역폭 할당이 적용됩니다. I/O 집약적인 워크로드의 처리량을 향상시키기 위해 대역폭을 늘릴 수 있습니다.

  1. 현재 대역폭 할당 현황을 확인하십시오.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    
  2. 대역폭을 늘려 처리량을 높입니다. --bandwidth 옵션을 사용하여 원하는 대역폭을 Mbps 단위로 지정하십시오.

    ibmcloud is volume-update $VOLUME_ID --bandwidth 2000
    
  3. 대역폭 업데이트를 확인하십시오.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    

    대역폭 값은 해당 볼륨이 달성할 수 있는 최대 처리량(MB/s)을 나타냅니다. 대역폭 값이 높을수록 데이터 집약적인 작업에서 더 나은 성능을 발휘합니다.

문제점 해결

마이그레이션이 업데이트 상태에서 멈춤

마이그레이션 상태가 30분 이상 updating 으로 유지되면 다음 단계를 완료하세요. 볼륨이 클수록 마이그레이션하는 데 시간이 더 오래 걸리며 updating 상태가 45분 동안 유지될 수 있습니다.

  1. 작업 세부 정보를 확인하세요.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. 볼륨 상태에서 오류나 경고가 있는지 확인합니다.

    ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy"
    
  3. 대용량 마이그레이션에는 시간이 오래 걸리므로 15분 정도 더 기다리세요.

  4. VPC 서비스 문제는 IBM Cloud 상태 페이지에서 확인하세요.

  5. 마이그레이션이 1시간 이상 중단되면 작업 ID를 사용하여 IBM 지원팀으로 문의하세요.

PVC는 오래된 StorageClass

마이그레이션 후에도 PVC가 여전히 Gen-1 StorageClass 을 참조하는 경우 이 동작이 예상되며 아무런 조치가 필요하지 않습니다. PVC storageClassName 필드는 변경할 수 없습니다. 실제 스토리지 프로필은 이전 단계에서 업데이트한 PV에 의해 결정됩니다. 기능에는 영향을 미치지 않습니다.

  1. PV(PVC가 아님)가 올바른지 확인합니다.

    oc get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    예상 출력

    ibmc-vpc-block-sdp
    

성능이 개선되지 않음

마이그레이션 후에도 성능이 향상되지 않는다면 다음 단계를 완료하세요.

  1. 실제 IOPS 할당을 확인하세요.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    
  2. 볼륨 프로필을 확인합니다.

    ibmcloud is vol $VOLUME_ID | grep Profile
    
  3. IOPS 할당을 늘립니다.

    ibmcloud is volume-update $VOLUME_ID --iops 10000
    
  4. 업데이트를 확인하십시오.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

다음 단계

마이그레이션을 완료한 후에는 다음 단계를 고려하세요.

  • 이 튜토리얼을 반복하여 추가 볼륨을 마이그레이션하세요.
  • 볼륨 성능을 모니터링하고 필요에 따라 IOPS를 조정하세요.
  • 새 볼륨에 Gen-2 StorageClasses 을 사용하도록 배포 템플릿을 업데이트하세요.
  • Block Storage 용량 및 성능에서 최적화 가이드를 확인하세요.