검색

7.14. VM 디스크

download PDF

7.14.1. VM 디스크 핫플러그

VM(가상 머신) 또는 VMI(가상 머신 인스턴스)를 중지하지 않고 가상 디스크를 추가하거나 제거할 수 있습니다.

데이터 볼륨 및 PVC(영구 볼륨 클레임)만 핫플러그 및 핫 플러그할 수 있습니다. 컨테이너 디스크를 핫플러그하거나 핫 플러그 해제할 수 없습니다.

핫플러그 디스크는 재부팅 후에도 VM에 연결된 상태로 유지됩니다. VM에서 제거하려면 디스크를 분리해야 합니다.

VM에 영구적으로 마운트되도록 핫플러그 디스크를 영구적으로 만들 수 있습니다.

참고

각 VM에는 virtio-scsi 컨트롤러가 있으므로 핫플러그 디스크가 scsi 버스를 사용할 수 있습니다. virtio-scsi 컨트롤러는 성능 이점을 유지하면서 virtio 의 제한을 극복합니다. 확장성이 뛰어나고 4억 개 이상의 디스크 핫 플러그를 지원합니다.

확장 불가능하므로 일반 virtio 를 핫플러그 디스크에 사용할 수 없습니다. 각 virtio 디스크는 VM의 제한된 PCI Express(PCIe) 슬롯 중 하나를 사용합니다. PCIe 슬롯은 다른 장치에서도 사용되며 사전에 예약해야 합니다. 따라서 필요에 따라 슬롯을 사용할 수 없습니다.

7.14.1.1. 웹 콘솔을 사용하여 디스크 핫플러그 및 핫플러그

OpenShift Container Platform 웹 콘솔을 사용하여 VM을 실행하는 동안 VM(가상 머신)에 연결하여 디스크를 핫 플러그할 수 있습니다.

핫플러그 디스크는 연결을 해제할 때까지 VM에 연결된 상태로 유지됩니다.

VM에 영구적으로 마운트되도록 핫플러그 디스크를 영구적으로 만들 수 있습니다.

사전 요구 사항

  • 핫플러그에 사용할 수 있는 데이터 볼륨 또는 PVC(영구 볼륨 클레임)가 있어야 합니다.

프로세스

  1. 웹 콘솔에서 가상화 VirtualMachines 로 이동합니다.
  2. 실행 중인 VM을 선택하여 세부 정보를 확인합니다.
  3. VirtualMachine 세부 정보 페이지에서 구성 디스크 를 클릭합니다.
  4. 핫플러그 디스크를 추가합니다.

    1. 디스크 추가를 클릭합니다.
    2. Add disk (hot plugged) 창에서 소스 목록에서 디스크를 선택하고 저장을 클릭합니다.
  5. 선택 사항: 핫플러그 디스크를 분리합니다.

    1. 디스크 옆에 있는 옵션 메뉴 kebab 를 클릭하고 분리를 선택합니다.
    2. Detach 를 클릭합니다.
  6. 선택 사항: 핫플러그 디스크를 영구적으로 설정합니다.

    1. 디스크 옆에 있는 옵션 메뉴 kebab 를 클릭하고 영구적으로 만들기를 선택합니다.
    2. VM을 재부팅하여 변경 사항을 적용합니다.

7.14.1.2. 명령줄을 사용하여 디스크 핫플러그 및 핫플러그

명령줄을 사용하여 VM(가상 머신)을 실행하는 동안 디스크를 핫플러그 및 핫 플러그 해제할 수 있습니다.

VM에 영구적으로 마운트되도록 핫플러그 디스크를 영구적으로 만들 수 있습니다.

사전 요구 사항

  • 핫 플러그에 사용할 수 있는 데이터 볼륨 또는 PVC(영구 볼륨 클레임)가 하나 이상 있어야 합니다.

프로세스

  • 다음 명령을 실행하여 디스크를 핫 플러그합니다.

    $ virtctl addvolume <virtual-machine|virtual-machine-instance> \
      --volume-name=<datavolume|PVC> \
      [--persist] [--serial=<label-name>]
    • 선택적 --persist 플래그를 사용하여 핫플러그 디스크를 가상 머신 사양에 영구적으로 마운트된 가상 디스크로 추가합니다. 가상 시스템을 중지, 다시 시작 또는 재부팅하여 가상 디스크를 영구적으로 마운트합니다. --persist 플래그를 지정한 후에는 더 이상 가상 디스크를 핫플러그하거나 핫 플러그 해제할 수 없습니다. --persist 플래그는 가상 머신 인스턴스가 아닌 가상 머신에 적용됩니다.
    • 선택적 --serial 플래그를 사용하면 선택한 영숫자 문자열 레이블을 추가할 수 있습니다. 이를 통해 게스트 가상 머신에서 핫플러그 디스크를 식별하는 데 도움이 됩니다. 이 옵션을 지정하지 않으면 레이블의 기본값은 핫 플러그된 데이터 볼륨 또는 PVC의 이름으로 설정됩니다.
  • 다음 명령을 실행하여 디스크를 핫플러그합니다.

    $ virtctl removevolume <virtual-machine|virtual-machine-instance> \
      --volume-name=<datavolume|PVC>

7.14.2. 가상 머신 디스크 확장

디스크의 PVC(영구 볼륨 클레임)를 확장하여 VM(가상 머신) 디스크의 크기를 늘릴 수 있습니다.

스토리지 공급자가 볼륨 확장을 지원하지 않는 경우 빈 데이터 볼륨을 추가하여 VM의 사용 가능한 가상 스토리지를 확장할 수 있습니다.

VM 디스크 크기를 줄일 수 없습니다.

7.14.2.1. VM 디스크 PVC 확장

디스크의 PVC(영구 볼륨 클레임)를 확장하여 VM(가상 머신) 디스크의 크기를 늘릴 수 있습니다.

PVC에서 파일 시스템 볼륨 모드를 사용하는 경우 디스크 이미지 파일은 파일 시스템 오버헤드용으로 일부 공간을 예약하는 동안 디스크 이미지 파일이 사용 가능한 크기로 확장됩니다.

프로세스

  1. 확장하려는 VM 디스크의 PersistentVolumeClaim 매니페스트를 편집합니다.

    $ oc edit pvc <pvc_name>
  2. 디스크 크기를 업데이트합니다.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
       name: vm-disk-expand
    spec:
      accessModes:
         - ReadWriteMany
      resources:
        requests:
           storage: 3Gi 1
    # ...
    1
    새 디스크 크기를 지정합니다.

7.14.2.2. 빈 데이터 볼륨을 추가하여 사용 가능한 가상 스토리지 확장

빈 데이터 볼륨을 추가하여 VM(가상 머신)의 사용 가능한 스토리지를 확장할 수 있습니다.

사전 요구 사항

  • 영구 볼륨이 하나 이상 있어야 합니다.

프로세스

  1. 다음 예와 같이 DataVolume 매니페스트를 생성합니다.

    DataVolume 매니페스트 예

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: DataVolume
    metadata:
      name: blank-image-datavolume
    spec:
      source:
        blank: {}
      storage:
        resources:
          requests:
            storage: <2Gi> 1
      storageClassName: "<storage_class>" 2

    1
    데이터 볼륨에 요청된 사용 가능한 공간의 양을 지정합니다.
    2
    선택 사항: 스토리지 클래스를 지정하지 않으면 기본 스토리지 클래스가 사용됩니다.
  2. 다음 명령을 실행하여 데이터 볼륨을 생성합니다.

    $ oc create -f <blank-image-datavolume>.yaml

7.14.3. 가상 머신의 공유 볼륨 구성

여러 VM(가상 머신)이 동일한 기본 스토리지를 공유할 수 있도록 공유 디스크를 구성할 수 있습니다. 공유 디스크의 볼륨은 블록 모드여야 합니다.

스토리지를 다음 유형 중 하나로 노출하여 디스크 공유를 구성합니다.

  • 일반 VM 디스크
  • 공유 볼륨의 Windows Cryostat에 필요한 대로 SCSI 연결 및 원시 장치 매핑이 있는 LUN(Logical Unit Number) 디스크

디스크 공유 구성 외에도 각 일반 VM 디스크 또는 LUN 디스크에 오류 정책을 설정할 수도 있습니다. 오류 정책은 디스크 읽기 또는 쓰기에서 입력/출력 오류가 발생할 때 하이퍼바이저가 작동하는 방식을 제어합니다.

7.14.3.1. 가상 머신 디스크를 사용하여 디스크 공유 구성

여러 VM(가상 머신)에서 스토리지를 공유할 수 있도록 블록 볼륨을 구성할 수 있습니다.

게스트 운영 체제에서 실행되는 애플리케이션에 따라 VM에 대해 구성해야 하는 스토리지 옵션이 결정됩니다. 디스크 유형 디스크 는 볼륨을 VM에 일반 디스크로 노출합니다.

사전 요구 사항

  • 디스크를 공유하는 VM이 다른 노드에서 실행되는 경우 볼륨 액세스 모드는 RWX( ReadWriteMany )여야 합니다.

    디스크를 공유하는 VM이 동일한 노드에서 실행되는 경우 RWO( ReadWriteOnce ) 볼륨 액세스 모드로 충분합니다.

  • 스토리지 공급자는 필요한 CSI(Container Storage Interface) 드라이버를 지원해야 합니다.

프로세스

  1. 다음 예와 같이 VM에 대한 VirtualMachine 매니페스트를 생성하여 필요한 값을 설정합니다.

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: <vm_name>
    spec:
      template:
    # ...
        spec:
          domain:
            devices:
              disks:
              - disk:
                  bus: virtio
                name: rootdisk
                disk1: disk_one 1
              - disk:
                  bus: virtio
                name: cloudinitdisk
                disk2: disk_two
                shareable: true 2
              interfaces:
              - masquerade: {}
                name: default
    1
    장치를 디스크로 식별합니다.
    2
    공유 디스크를 식별합니다.
  2. VirtualMachine 매니페스트 파일을 저장하여 변경 사항을 적용합니다.

7.14.3.2. LUN을 사용하여 디스크 공유 구성

VM의 데이터를 외부에서 액세스하기 위해 SCSI 영구 예약을 활성화하고 여러 가상 머신 간에 LUN 지원 가상 머신 디스크를 구성할 수 있습니다. 공유 옵션을 활성화하면 기본 스토리지를 관리하기 위해 Windows 페일오버 클러스터링 구현에 필요한 고급 SCSI 명령을 사용할 수 있습니다.

스토리지 볼륨이 LUN 디스크 유형으로 구성되면 VM에서 볼륨을 LUN(Logical Unit Number) 장치로 사용할 수 있습니다. 결과적으로 VM은 SCSI 명령을 사용하여 디스크를 배포하고 관리할 수 있습니다.

SCSI 영구 예약 옵션을 통해 LUN을 예약합니다. 예약을 활성화하려면 다음을 수행합니다.

  1. 기능 게이트 옵션 구성
  2. LUN 디스크에서 feature gate 옵션을 활성화하여 VM에 필요한 SCSI 장치별 입력 및 출력 제어(IOCTLs)를 실행합니다.

사전 요구 사항

  • 기능 게이트 옵션을 구성하려면 클러스터 관리자 권한이 있어야 합니다.
  • 디스크를 공유하는 VM이 다른 노드에서 실행되는 경우 볼륨 액세스 모드는 RWX( ReadWriteMany )여야 합니다.

    디스크를 공유하는 VM이 동일한 노드에서 실행되는 경우 RWO( ReadWriteOnce ) 볼륨 액세스 모드로 충분합니다.

  • 스토리지 공급자는 SCSI 프로토콜을 사용하는 CSI(Container Storage Interface) 드라이버를 지원해야 합니다.
  • 클러스터 관리자이고 LUN을 사용하여 디스크 공유를 구성하려면 HyperConverged CR(사용자 정의 리소스)에서 클러스터의 기능 게이트를 활성화해야 합니다.
  • 공유할 디스크가 블록 모드에 있어야 합니다.

프로세스

  1. 다음 예와 같이 VM에 대한 VirtualMachine 매니페스트를 편집하거나 생성하여 필요한 값을 설정합니다.

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: vm-0
    spec:
      template:
        spec:
          domain:
            devices:
              disks:
              - disk:
                  bus: sata
                name: rootdisk
              - errorPolicy: report
                lun: 1
                  bus: scsi
                  reservation: true 2
                name: na-shared
                serial: shared1234
          volumes:
          - dataVolume:
              name: vm-0
            name: rootdisk
          - name: na-shared
            persistentVolumeClaim:
              claimName: pvc-na-share
    1
    LUN 디스크를 식별합니다.
    2
    영구 예약이 활성화되어 있는지 확인합니다.
  2. VirtualMachine 매니페스트 파일을 저장하여 변경 사항을 적용합니다.
7.14.3.2.1. LUN 및 웹 콘솔을 사용하여 디스크 공유 구성

OpenShift Container Platform 웹 콘솔을 사용하여 LUN을 사용하여 디스크 공유를 구성할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자는 지속성 기능 게이트 설정을 활성화해야 합니다.

프로세스

  1. 웹 콘솔에서 가상화 VirtualMachines 를 클릭합니다.
  2. VM을 선택하여 VirtualMachine 세부 정보 페이지를 엽니다.
  3. 스토리지를 확장합니다.
  4. 디스크 탭에서 디스크 추가 를 클릭합니다.
  5. 이름,소스,크기,인터페이스스토리지 클래스를 지정합니다.
  6. LUN 을 유형으로 선택합니다.
  7. 액세스 모드로 공유 액세스(RWX)선택합니다.
  8. 볼륨 모드로 Block 을 선택합니다.
  9. 고급 설정을 확장하고 두 확인란을 모두 선택합니다.
  10. 저장을 클릭합니다.
7.14.3.2.2. LUN 및 명령줄을 사용하여 디스크 공유 구성

명령줄을 사용하여 LUN을 사용하여 디스크 공유를 구성할 수 있습니다.

프로세스

  1. 다음 예와 같이 VM에 대한 VirtualMachine 매니페스트를 편집하거나 생성하여 필요한 값을 설정합니다.

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: vm-0
    spec:
      template:
        spec:
          domain:
            devices:
              disks:
              - disk:
                  bus: sata
                name: rootdisk
              - errorPolicy: report
                lun: 1
                  bus: scsi
                  reservation: true 2
                name: na-shared
                serial: shared1234
          volumes:
          - dataVolume:
              name: vm-0
            name: rootdisk
          - name: na-shared
            persistentVolumeClaim:
              claimName: pvc-na-share
    1
    LUN 디스크를 식별합니다.
    2
    영구 예약이 활성화되어 있는지 확인합니다.
  2. VirtualMachine 매니페스트 파일을 저장하여 변경 사항을 적용합니다.

7.14.3.3. PersistentReservation 기능 게이트 활성화

SCSI persistentReservation 기능 게이트를 활성화하고 LUN 지원 블록 모드 VM(가상 머신) 디스크를 여러 가상 머신 간에 공유할 수 있습니다.

persistentReservation 기능 게이트는 기본적으로 비활성화되어 있습니다. 웹 콘솔 또는 명령줄을 사용하여 persistentReservation 기능 게이트를 활성화할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 권한이 필요합니다.
  • 디스크를 공유하는 VM이 다른 노드에서 실행 중인 경우 볼륨 액세스 모드 RWX( ReadWriteMany )가 필요합니다. 디스크를 공유하는 VM이 동일한 노드에서 실행 중인 경우 RWO( ReadWriteOnce ) 볼륨 액세스 모드로 충분합니다.
  • 스토리지 공급자는 SCSI 프로토콜을 사용하는 CSI(Container Storage Interface) 드라이버를 지원해야 합니다.
7.14.3.3.1. 웹 콘솔을 사용하여 PersistentReservation 기능 게이트 활성화

여러 가상 머신 간에 LUN 지원 블록 모드 VM(가상 머신) 디스크를 공유할 수 있도록 PersistentReservation 기능 게이트를 활성화해야 합니다. 기능 게이트를 활성화하려면 클러스터 관리자 권한이 필요합니다.

프로세스

  1. 웹 콘솔에서 가상화 개요 를 클릭합니다.
  2. 설정 탭을 클릭합니다.
  3. 클러스터를 선택합니다.
  4. SCSI 영구 예약을 확장하고 영구 예약 활성화를 on으로 설정합니다.
7.14.3.3.2. 명령줄을 사용하여 PersistentReservation 기능 게이트 활성화

명령줄을 사용하여 persistentReservation 기능 게이트를 활성화합니다. 기능 게이트를 활성화하려면 클러스터 관리자 권한이 필요합니다.

프로세스

  1. 다음 명령을 실행하여 persistentReservation 기능 게이트를 활성화합니다.

    $ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv --type json -p \
    '[{"op":"replace","path":"/spec/featureGates/persistentReservation", "value": true}]'
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.