7.18.8. 로컬 가상 머신 디스크를 다른 노드로 이동
로컬 볼륨 스토리지를 사용하는 가상 머신을 특정 노드에서 실행하도록 이동할 수 있습니다.
다음과 같은 이유로 가상 머신을 특정 노드로 이동할 수 있습니다.
- 현재 노드에서는 로컬 스토리지 구성을 제한합니다.
- 새 노드가 해당 가상 머신의 워크로드에 더 최적화되어 있습니다.
로컬 스토리지를 사용하는 가상 머신을 이동하려면 데이터 볼륨을 사용하여 기본 볼륨을 복제해야 합니다. 복제 작업이 완료되면 새 데이터 볼륨을 사용하도록 가상 머신 구성을 편집하거나 새 데이터 볼륨을 다른 가상 머신에 추가할 수 있습니다.
cluster-admin
역할이 없는 사용자는 다른 네임스페이스에 볼륨을 복제하려면 추가 사용자 권한이 있어야 합니다.
7.18.8.1. 다른 노드에 로컬 볼륨 복제
가상 머신 디스크를 특정 노드에서 실행하기 위해 기본 PVC(영구 볼륨 클레임)를 복제하여 가상 머신 디스크를 이동할 수 있습니다.
가상 머신 디스크가 올바른 노드에 복제되었는지 확인하려면 새 PV(영구 볼륨)를 생성하거나 올바른 노드에서 가상 머신 디스크를 확인합니다. 데이터 볼륨에서 참조할 수 있도록 PV에 고유한 라벨을 적용하십시오.
대상 PV는 소스 PVC와 크기가 같거나 커야 합니다. 대상 PV가 소스 PVC보다 작으면 복제 작업이 실패합니다.
사전 요구 사항
- 가상 머신이 실행되고 있지 않아야 합니다. 가상 머신 디스크를 복제하기 전에 가상 머신의 전원을 끄십시오.
절차
노드에 새 로컬 PV를 생성하거나 노드의 기존 로컬 PV를 확인합니다.
nodeAffinity.nodeSelectorTerms
매개변수를 포함하는 로컬 PV를 생성합니다. 다음 매니페스트에서는node01
에10Gi
로컬 PV를 생성합니다.kind: PersistentVolume apiVersion: v1 metadata: name: <destination-pv> 1 annotations: spec: accessModes: - ReadWriteOnce capacity: storage: 10Gi 2 local: path: /mnt/local-storage/local/disk1 3 nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - node01 4 persistentVolumeReclaimPolicy: Delete storageClassName: local volumeMode: Filesystem
대상 노드에 이미 존재하는 PV를 확인합니다. 구성에서
nodeAffinity
필드를 확인하여 PV가 프로비저닝되는 노드를 확인할 수 있습니다.$ oc get pv <destination-pv> -o yaml
다음 스니펫은 PV가
node01
에 있음을 보여줍니다.출력 예
... spec: nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname 1 operator: In values: - node01 2 ...
PV에 고유한 라벨을 추가합니다.
$ oc label pv <destination-pv> node=node01
다음을 참조하는 데이터 볼륨 매니페스트를 생성합니다.
- 가상 머신의 PVC 이름 및 네임스페이스
- 이전 단계에서 PV에 적용한 라벨
대상 PV의 크기
apiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: <clone-datavolume> 1 spec: source: pvc: name: "<source-vm-disk>" 2 namespace: "<source-namespace>" 3 pvc: accessModes: - ReadWriteOnce selector: matchLabels: node: node01 4 resources: requests: storage: <10Gi> 5
클러스터에 데이터 볼륨 매니페스트를 적용하여 복제 작업을 시작합니다.
$ oc apply -f <clone-datavolume.yaml>
데이터 볼륨은 가상 머신의 PVC를 특정 노드의 PV에 복제합니다.