12.5. 다른 호스트와 가상 머신 디스크 이미지 공유

지원되는 KVM 호스트 간에 VM(가상 머신) 실시간 마이그레이션을 수행하려면 공유 VM 스토리지가 필요합니다. 이 섹션에서는 NFS 프로토콜을 사용하여 로컬에 저장된 VM 이미지를 소스 호스트 및 대상 호스트와 공유하는 지침을 제공합니다.

사전 요구 사항

  • 마이그레이션을 위한 VM이 종료됩니다.
  • 선택 사항: 호스트 시스템은 소스 또는 대상 호스트가 아닌 스토리지를 호스팅하는 데 사용할 수 있지만 소스와 대상 호스트 모두 네트워크를 통해 도달할 수 있습니다. 이는 공유 스토리지에 가장 적합한 솔루션이며 Red Hat에서 권장합니다.
  • KVM에서 지원되지 않으므로 NFS 파일 잠금이 사용되지 않는지 확인합니다.
  • NFS는 소스 및 대상 호스트에 설치 및 활성화됩니다. 그렇지 않은 경우 다음을 수행합니다.

    1. NFS 패키지를 설치합니다.

      # dnf install nfs-utils
    2. NFS(2049)의 포트가 방화벽에서 열려 있는지 확인합니다.

      # firewall-cmd --permanent --add-service=nfs
      # firewall-cmd --permanent --add-service=mountd
      # firewall-cmd --permanent --add-service=rpc-bind
      # firewall-cmd --permanent --add-port=2049/tcp
      # firewall-cmd --permanent --add-port=2049/udp
      # firewall-cmd --reload
    3. NFS 서비스를 시작합니다.

      # systemctl start nfs-server

절차

  1. 공유 스토리지를 제공할 호스트에 연결합니다. 이 예에서는 loads -bay 호스트입니다.

    # ssh root@cargo-bay
    root@cargo-bay's password:
    Last login: Mon Sep 24 12:05:36 2019
    root~#
  2. 디스크 이미지를 보유하고 마이그레이션 호스트와 공유할 디렉터리를 생성합니다.

    # mkdir /var/lib/libvirt/shared-images
  3. 소스 호스트에서 새로 생성된 디렉터리로 VM의 디스크 이미지를 복사합니다. 예를 들어, 다음에서는 wanderer1 VM의 디스크 이미지를'cargo-bay 호스트의 /var/lib/libvirt/shared-images/ 디렉터리에 복사합니다.

    # scp /var/lib/libvirt/images/wanderer1.qcow2 root@cargo-bay:/var/lib/libvirt/shared-images/wanderer1.qcow2
  4. 스토리지를 공유하는 데 사용할 호스트에서 공유 디렉토리를 /etc/exports 파일에 추가합니다. 다음 예제에서는 /var/lib/libvirt/shared-images 디렉터리를 source-exampledest-example 호스트와 공유합니다.

    /var/lib/libvirt/shared-images source-example(rw,no_root_squash) dest-example(rw,no_root_squash)
  5. 소스 및 대상 호스트 모두에서 /var/lib/libvirt/images 디렉터리에 공유 디렉터리를 마운트합니다.

    # mount cargo-bay:/var/lib/libvirt/shared-images /var/lib/libvirt/images

검증

  • 프로세스가 성공했는지 확인하려면 소스 호스트에서 VM을 시작하고 올바르게 부팅되는지 확인합니다.