13.4.3. 명령줄을 사용하여 가상 머신에 디스크 기반 스토리지 연결


VM(가상 머신)의 로컬 스토리지를 제공하기 위해 디스크 기반 디스크 이미지를 사용할 수 있습니다. 이 유형의 디스크 이미지는 호스트의 디스크 파티션을 기반으로 하며 .qcow2 또는 .raw 형식을 사용합니다.

명령줄을 사용하여 디스크 기반 스토리지를 VM에 연결하려면 다음 방법 중 하나를 사용합니다.

  • 새 VM을 생성할 때 --disk 옵션을 사용하여 virt-install 명령의 일부로 새 디스크를 생성하고 연결합니다. 자세한 내용은 가상 머신 생성 을 참조하십시오.
  • 기존 VM의 경우 디스크 기반 스토리지 볼륨을 생성하여 VM에 연결합니다. 자세한 내용은 다음 절차를 참조하십시오.

사전 요구 사항

  • 하이퍼바이저가 디스크 기반 스토리지 풀을 지원하는지 확인합니다.

    # virsh pool-capabilities | grep "'disk' supported='yes'"

    명령이 출력을 표시하는 경우 디스크 기반 풀이 지원됩니다.

  • 스토리지 풀을 기반으로 할 장치를 준비합니다. 이를 위해 파티션(예: /dev/sdb1) 또는 LVM 볼륨을 선호합니다. VM에 전체 디스크 또는 블록 장치(예: /dev/sdb)에 대한 쓰기 액세스 권한이 있는 경우 VM은 이를 파티션하거나 자체 LVM 그룹을 생성할 가능성이 있습니다. 이로 인해 호스트에 시스템 오류가 발생할 수 있습니다.

    그러나 스토리지 풀에 전체 블록 장치를 사용해야 하는 경우 Red Hat은 장치의 중요한 파티션을 GRUB의 os-prober 기능으로부터 보호하는 것이 좋습니다. 이렇게 하려면 /etc/default/grub 파일을 편집하고 다음 구성 중 하나를 적용합니다.

    • os-prober 를 비활성화합니다.

      GRUB_DISABLE_OS_PROBER=true
    • os-prober 가 사용하려는 파티션을 검색하지 못하도록 합니다. 예를 들면 다음과 같습니다.

      GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
  • 스토리지 풀을 생성하기 전에 선택한 스토리지 장치의 데이터를 백업합니다. 사용 중인 libvirt 버전에 따라 디스크를 스토리지 풀로 전달하면 현재 디스크 장치에 저장된 모든 데이터를 다시 포맷하고 지울 수 있습니다.

프로세스

  1. 디스크 기반 스토리지 풀이 아직 없는 경우 새 디스크 기반 스토리지 풀을 생성하고 설정합니다.

    1. 디스크 유형 스토리지 풀을 정의하고 생성합니다. 다음 예제에서는 /dev/sdb 장치를 사용하고 /dev 디렉터리에 마운트되는 guest_images_disk 라는 스토리지 풀을 생성합니다.

      # virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev
      Pool guest_images_disk defined
    2. 사전 포맷된 파일 시스템 스토리지 풀에 대한 스토리지 풀 대상 경로를 생성하고, 스토리지 소스 장치를 초기화하고, 데이터 형식을 정의합니다.

      # virsh pool-build guest_images_disk
        Pool guest_images_disk built
    3. 선택 사항: 풀이 생성되었는지 확인합니다.

      # virsh pool-list --all
      
        Name                 State      Autostart
        -----------------------------------------
        default              active     yes
        guest_images_disk    inactive   no
    4. 스토리지 풀을 시작합니다.

      # virsh pool-start guest_images_disk
        Pool guest_images_disk started
      참고

      virsh pool-start 명령은 영구 스토리지 풀에만 필요합니다. 임시 스토리지 풀은 생성될 때 자동으로 시작됩니다.

    5. 선택 사항: 자동 시작을 활성화합니다.

      기본적으로 virsh 로 정의된 스토리지 풀은 가상화 서비스가 시작될 때마다 자동으로 시작되도록 설정되지 않습니다. virsh pool-autostart 명령을 사용하여 스토리지 풀을 자동으로 시작하도록 구성합니다.

      # virsh pool-autostart guest_images_disk
        Pool guest_images_disk marked as autostarted
  2. 디스크 기반 스토리지 볼륨을 생성합니다. 예를 들어 다음 명령은 guest_images_disk 스토리지 풀을 기반으로 vm-disk1 이라는 20GB qcow2 볼륨을 생성합니다.

    # virsh vol-create-as --pool guest_images_disk --name sdb1 --capacity 20GB --format extended
    
    Vol vm-disk1 created
  3. 스토리지 볼륨을 가상 디스크로 VM에 연결합니다.

    1. 생성한 스토리지 볼륨을 찾습니다. 이렇게 하려면 볼륨이 속하는 스토리지 풀을 검사합니다.

      # virsh vol-list --pool guest_images_disk --details
      
       Name        Path                      Type   Capacity    Allocation
      ---------------------------------------------------------------------
       sdb1      /dev/sdb1                  block   20.00 GiB   20.00 GiB
    2. 디스크를 연결할 VM에서 이미 사용되는 대상 장치를 찾습니다.

      # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
       file   cdrom    vdb      -
    3. 선택 사항: 데이터 손상 또는 디스크 조각화에 대한 문제를 방지하려면 디스크의 일관성을 확인합니다. 자세한 내용은 가상 디스크의 일관성 확인을 참조하십시오.
    4. virsh attach-disk 명령을 사용하여 VM에 디스크를 연결합니다. VM에서 사용하지 않는 대상 장치를 제공합니다.

      예를 들어 다음 명령은 이전에 생성된 vm-disk1 을 Cryostat 장치로 testguest1 VM에 연결합니다.

      # virsh attach-disk testguest1 /dev/sdb1 vdc --persistent

검증

  1. 디스크를 연결한 VM의 XML 구성을 검사하여 구성이 올바른지 확인합니다.

    # virsh dumpxml testguest1
    
    ...
      <disk type="block" device="disk">
        <driver name="qemu" type="raw"/>
        <source dev="/dev/sdb1" index="2"/>
        <backingStore/>
        <target dev="vdc" bus="virtio"/>
        <alias name="virtio-disk2"/>
        <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
      </disk>
    ...
  2. VM의 게스트 운영 체제에서 디스크 이미지를 포맷되지 않고 할당되지 않은 디스크로 사용할 수 있는지 확인합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동