4.4. virsh를 통한 실시간 KVM 마이그레이션


virsh 명령을 사용하여 게스트 가상 머신을 다른 호스트 물리적 시스템으로 마이그레이션할 수 있습니다. migrate 명령은 다음 형식의 매개 변수를 허용합니다.
# virsh migrate --live GuestName DestinationURL
Copy to Clipboard Toggle word wrap
실시간 마이그레이션이 필요하지 않은 경우 --live 옵션이 제거될 수 있습니다. 추가 옵션은 4.4.2절. “virsh migrate 명령에 대한 추가 옵션” 에 나열됩니다.
GuestName 매개변수는 마이그레이션할 게스트 가상 머신의 이름을 나타냅니다.
DestinationURL 매개변수는 대상 호스트 물리적 시스템의 연결 URL입니다. 대상 시스템은 동일한 하이퍼바이저를 사용하고 libvirt 가 실행되고 있는 동일한 버전의 Red Hat Enterprise Linux를 실행해야 합니다.
참고
일반 마이그레이션 및 피어 투 피어 마이그레이션을 위한 DestinationURL 매개변수는 다른 의미가 있습니다.
  • 일반 마이그레이션: DestinationURL 은 소스 게스트 가상 머신에 표시된 대로 대상 호스트 물리적 시스템의 URL입니다.
  • 피어 투 피어 마이그레이션: DestinationURL 은 소스 호스트 물리적 시스템에서 표시된 대로 대상 호스트 물리적 시스템의 URL입니다.
명령을 입력하면 대상 시스템의 루트 암호를 입력하라는 메시지가 표시됩니다.
중요
마이그레이션이 성공하려면 소스 서버의 /etc/hosts 파일에 있는 대상 호스트 물리적 시스템에 대한 항목이 필요합니다. 다음 예에 표시된 대로 이 파일에서 대상 호스트 물리적 시스템의 IP 주소 및 호스트 이름을 입력합니다. 이 예에서는 대상 호스트 물리적 시스템의 IP 주소와 호스트 이름을 대체합니다.
10.0.0.20	host2.example.com
Copy to Clipboard Toggle word wrap

예: virsh를 사용한 실시간 마이그레이션

이 예에서는 host1.example.com 에서 host2.example.com 으로 마이그레이션합니다. 환경의 호스트 물리적 시스템 이름을 변경합니다. 이 예에서는 guest1-rhel6-64 라는 가상 머신을 마이그레이션합니다.

이 예제에서는 공유 스토리지를 완전히 구성하고 모든 사전 요구 사항을 충족한다고 가정합니다(여기에 나열됨: 마이그레이션 요구 사항).
  1. 게스트 가상 머신이 실행 중인지 확인

    소스 시스템 host1.example.com 에서 guest1-rhel6-64 가 실행 중인지 확인합니다.
    [root@host1 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 guest1-rhel6-64     running
    
    Copy to Clipboard Toggle word wrap
  2. 게스트 가상 머신 마이그레이션

    다음 명령을 실행하여 게스트 가상 머신을 대상 host2.example.com 으로 실시간 마이그레이션합니다. libvirt에 전체 액세스 권한이 필요함을 확인하기 위해 대상 URL의 끝에 /system 을 추가합니다.
    # virsh migrate --live guest1-rhel6-64 qemu+ssh://host2.example.com/system
    Copy to Clipboard Toggle word wrap
    명령을 입력하면 대상 시스템의 루트 암호를 입력하라는 메시지가 표시됩니다.
  3. wait

    마이그레이션은 게스트 가상 시스템의 로드 및 크기에 따라 다소 시간이 걸릴 수 있습니다. virsh 는 오류만 보고합니다. 게스트 가상 시스템은 완전히 마이그레이션될 때까지 소스 호스트 물리적 시스템에서 계속 실행됩니다.
    참고
    마이그레이션 중에 완료 백분율 표시 수는 프로세스가 완료되기 전에 여러 번 감소할 수 있습니다. 이는 마이그레이션을 시작한 후 변경된 소스 메모리 페이지를 다시 복사해야 하므로 전체 진행 상황을 다시 계산하기 때문입니다. 따라서 이 동작이 예상되며 마이그레이션에 문제가 표시되지 않습니다.
  4. 게스트 가상 머신이 대상 호스트에 도착했는지 확인합니다.

    대상 시스템 host2.example.com 에서 guest1-rhel6-64 가 실행 중인지 확인합니다.
    [root@host2 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 guest1-rhel6-64     running
    
    Copy to Clipboard Toggle word wrap
실시간 마이그레이션이 완료되었습니다.
참고
libvirt는 TLS/SSL, UNIX 소켓, SSH 및 암호화되지 않은 TCP를 포함한 다양한 네트워킹 방법을 지원합니다. 다른 방법을 사용하는 방법에 대한 자세한 내용은 5장. 원격 게스트 관리 를 참조하십시오.
참고
virsh migrate 명령을 사용하여 실행 중이 아닌 게스트 가상 머신을 마이그레이션할 수 없습니다. 실행 중인 게스트 가상 머신을 마이그레이션하려면 다음 스크립트를 사용해야 합니다.
virsh dumpxml Guest1 > Guest1.xml
virsh -c qemu+ssh://<target-system-FQDN>  define Guest1.xml
virsh undefine Guest1
Copy to Clipboard Toggle word wrap

4.4.1. virsh로 마이그레이션에 대한 추가 팁

각 마이그레이션이 별도의 명령 쉘에서 실행되는 여러 개의 동시 실시간 마이그레이션을 수행할 수 있습니다. 그러나 이 작업은 주의해서 수행해야 하며 각 마이그레이션 인스턴스가 각 측면(소스 및 대상)에서 하나의 MAX_CLIENT를 사용하므로 주의해야 합니다. 기본 설정은 20이므로 설정을 변경하지 않고 10개의 인스턴스를 실행하기에 충분합니다. 설정을 변경해야 하는 경우 절차 4.1. “libvirtd.conf 구성” 절차를 참조하십시오.
  1. 절차 4.1. “libvirtd.conf 구성” 에 설명된 대로 libvirtd.conf 파일을 엽니다.
  2. 처리 제어 섹션을 찾습니다.
    #################################################################
    #
    # Processing controls
    #
    
    # The maximum number of concurrent client connections to allow
    # over all sockets combined.
    #max_clients = 20
    
    
    # The minimum limit sets the number of workers to start up
    # initially. If the number of active clients exceeds this,
    # then more threads are spawned, upto max_workers limit.
    # Typically you'd want max_workers to equal maximum number
    # of clients allowed
    #min_workers = 5
    #max_workers = 20
    
    
    # The number of priority workers. If all workers from above
    # pool will stuck, some calls marked as high priority
    # (notably domainDestroy) can be executed in this pool.
    #prio_workers = 5
    
    # Total global limit on concurrent RPC calls. Should be
    # at least as large as max_workers. Beyond this, RPC requests
    # will be read into memory and queued. This directly impact
    # memory usage, currently each request requires 256 KB of
    # memory. So by default upto 5 MB of memory is used
    #
    # XXX this isn't actually enforced yet, only the per-client
    # limit is used so far
    #max_requests = 20
    
    # Limit on concurrent requests from a single client
    # connection. To avoid one client monopolizing the server
    # this should be a small fraction of the global max_requests
    # and max_workers parameter
    #max_client_requests = 5
    
    #################################################################
    
    Copy to Clipboard Toggle word wrap
  3. max_clientsmax_workers 매개 변수 설정을 변경합니다. 두 매개변수 모두에서 숫자가 동일해야 합니다. max_clients 는 마이그레이션당 2개의 클라이언트를 사용하고 max_workers 는 종료 단계에서 수행 단계에서 대상의 작업자 1명과 대상의 작업자 1개를 소스에 사용합니다.
    중요
    max_clientsmax_workers 매개 변수 설정은 libvirtd 서비스에 대한 모든 게스트 가상 머신 연결에 적용됩니다. 즉, 동일한 게스트 가상 머신을 사용하고 동시에 마이그레이션을 수행하는 모든 사용자는 max_clientsmax_workers 매개 변수 설정에 설정된 제한으로도 보류됩니다. 따라서 동시 실시간 마이그레이션을 수행하기 전에 최대값을 주의 깊게 고려해야 합니다.
  4. 파일을 저장하고 서비스를 다시 시작합니다.
    참고
    시작되었지만 아직 인증되지 않은 ssh 세션이 너무 많기 때문에 마이그레이션 연결이 끊어지는 경우가 있을 수 있습니다. 기본적으로 sshd 는 언제든지 "사전 인증됨"에 있는 세션만 10개를 허용합니다. 이 설정은 sshd 구성 파일의 MaxStartups 매개변수( /etc/ssh/sshd_config)에 의해 제어되며 일부 조정이 필요할 수 있습니다. DoS 공격을 방지하기 위해 제한 사항이 배치되고 일반적으로 리소스를 과도하게 사용할 수 있으므로 이 매개변수를 조정하는 작업은 주의해야 합니다. 이 값을 너무 높게 설정하면 목적을 무효화합니다. 이 매개변수를 변경하려면 /etc/ssh/sshd_config 파일을 편집하고 MaxStartups 행의 시작 위치에서 # 을 제거하고, 10 (기본값)을 더 높은 숫자로 변경합니다. 파일을 저장하고 sshd 서비스를 다시 시작하십시오. 자세한 내용은 sshd_config 매뉴얼 페이지를 참조하십시오.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat