검색

7.18.8. 로컬 가상 머신 디스크를 다른 노드로 이동

download PDF

로컬 볼륨 스토리지를 사용하는 가상 머신을 특정 노드에서 실행하도록 이동할 수 있습니다.

다음과 같은 이유로 가상 머신을 특정 노드로 이동할 수 있습니다.

  • 현재 노드에서는 로컬 스토리지 구성을 제한합니다.
  • 새 노드가 해당 가상 머신의 워크로드에 더 최적화되어 있습니다.

로컬 스토리지를 사용하는 가상 머신을 이동하려면 데이터 볼륨을 사용하여 기본 볼륨을 복제해야 합니다. 복제 작업이 완료되면 새 데이터 볼륨을 사용하도록 가상 머신 구성을 편집하거나 새 데이터 볼륨을 다른 가상 머신에 추가할 수 있습니다.

참고

cluster-admin 역할이 없는 사용자는 다른 네임스페이스에 볼륨을 복제하려면 추가 사용자 권한이 있어야 합니다.

7.18.8.1. 다른 노드에 로컬 볼륨 복제

가상 머신 디스크를 특정 노드에서 실행하기 위해 기본 PVC(영구 볼륨 클레임)를 복제하여 가상 머신 디스크를 이동할 수 있습니다.

가상 머신 디스크가 올바른 노드에 복제되었는지 확인하려면 새 PV(영구 볼륨)를 생성하거나 올바른 노드에서 가상 머신 디스크를 확인합니다. 데이터 볼륨에서 참조할 수 있도록 PV에 고유한 라벨을 적용하십시오.

참고

대상 PV는 소스 PVC와 크기가 같거나 커야 합니다. 대상 PV가 소스 PVC보다 작으면 복제 작업이 실패합니다.

사전 요구 사항

  • 가상 머신이 실행되고 있지 않아야 합니다. 가상 머신 디스크를 복제하기 전에 가상 머신의 전원을 끄십시오.

절차

  1. 노드에 새 로컬 PV를 생성하거나 노드의 기존 로컬 PV를 확인합니다.

    • nodeAffinity.nodeSelectorTerms 매개변수를 포함하는 로컬 PV를 생성합니다. 다음 매니페스트에서는 node0110Gi 로컬 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
      1
      PV의 이름입니다.
      2
      PV의 크기입니다. 충분한 공간을 할당해야 합니다. 그러지 않으면 복제 작업이 실패합니다. 크기는 소스 PVC와 같거나 커야 합니다.
      3
      노드의 마운트 경로입니다.
      4
      PV를 생성하려는 노드의 이름입니다.
    • 대상 노드에 이미 존재하는 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
      ...

      1
      kubernetes.io/hostname 키는 노드 호스트 이름을 사용하여 노드를 선택합니다.
      2
      노드의 호스트 이름입니다.
  2. PV에 고유한 라벨을 추가합니다.

    $ oc label pv <destination-pv> node=node01
  3. 다음을 참조하는 데이터 볼륨 매니페스트를 생성합니다.

    • 가상 머신의 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
      1
      새 데이터 볼륨의 이름입니다.
      2
      소스 PVC의 이름입니다. PVC 이름을 모르는 경우 가상 머신 구성의 spec.volumes.persistentVolumeClaim.claimName에서 확인할 수 있습니다.
      3
      소스 PVC가 존재하는 네임스페이스입니다.
      4
      이전 단계에서 PV에 적용한 라벨입니다.
      5
      대상 PV의 크기
  4. 클러스터에 데이터 볼륨 매니페스트를 적용하여 복제 작업을 시작합니다.

    $ oc apply -f <clone-datavolume.yaml>

데이터 볼륨은 가상 머신의 PVC를 특정 노드의 PV에 복제합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.