10.8. 가상 머신 마이그레이션 문제 해결
VM(가상 머신)을 마이그레이션할 때 다음 문제 중 하나에 직면하는 경우 제공된 지침을 참조하여 문제를 해결하거나 방지합니다.
10.8.1. VM의 실시간 마이그레이션은 완료하지 않고 오랜 시간이 걸립니다.
원인
실행 중인 VM을 마이그레이션하면 VM에서 마이그레이션할 수 있는 것보다 더 빨리 더티 메모리 페이지가 생성될 수 있습니다. 이 경우 마이그레이션을 성공적으로 완료할 수 없습니다.
다음 시나리오에서는 이 문제를 자주 발생시킵니다.
- 높은 부하로 VM 실시간 마이그레이션
1TB 이상의 메모리와 같이 많은 메모리를 사용하는 VM을 실시간 마이그레이션
중요Red Hat은 최대 6TB의 메모리로 VM의 실시간 마이그레이션을 성공적으로 테스트했습니다. 그러나 메모리가 1TB 이상인 VM과 관련된 실시간 마이그레이션 시나리오의 경우 고객은 Red Hat 기술 지원에 문의해야 합니다.
진단
VM 실시간 마이그레이션이 예상보다 오래 걸리는 경우 virsh domjobinfo
명령을 사용하여 VM의 메모리 페이지 데이터를 가져옵니다.
# virsh domjobinfo vm-name Job type: Unbounded Operation: Outgoing migration Time elapsed: 168286974 ms Data processed: 26.106 TiB Data remaining: 34.383 MiB Data total: 10.586 TiB Memory processed: 26.106 TiB Memory remaining: 34.383 MiB Memory total: 10.586 TiB Memory bandwidth: 29.056 MiB/s Dirty rate: 17225 pages/s Page size: 4096 bytes
이 출력에서 Dirty rate
및 Page 크기의
곱셈은 메모리 대역폭
보다 큽니다. 즉, VM에서 네트워크에서 마이그레이션할 수 있는 것보다 더 빨리 더티 메모리 페이지를 생성합니다. 결과적으로 대상 호스트의 VM 상태는 소스 호스트의 VM 상태와 통합될 수 없으므로 마이그레이션이 완료되지 않습니다.
수정
중단된 실시간 마이그레이션이 성공적으로 완료될 가능성을 개선하려면 다음 중 하나를 수행할 수 있습니다.
VM의 워크로드, 특히 메모리 업데이트를 줄입니다.
- 이렇게 하려면 소스 VM의 게스트 운영 체제에서 필수가 아닌 프로세스를 중지하거나 취소합니다.
실시간 마이그레이션에 허용되는 다운타임을 늘립니다.
마이그레이션 중인 VM의 실시간 마이그레이션이 끝날 때 현재 최대 다운타임을 표시합니다.
# virsh migrate-getmaxdowntime vm-name
최대 다운타임을 높입니다.
# virsh migrate-setmaxdowntime vm-name downtime-in-miliseconds
최대 다운타임을 설정할수록 마이그레이션이 완료될 가능성이 높아집니다.
실시간 마이그레이션을 post-copy 모드로 전환합니다.
# virsh migrate-start-postcopy vm-name
이렇게 하면 VM의 메모리 페이지가 대상 호스트에서 수렴할 수 있으며 마이그레이션이 완료될 수 있습니다.
그러나 복사 후 모드가 활성화되면 대상 호스트에서 소스 호스트로의 원격 페이지 요청으로 인해 VM이 크게 저하될 수 있습니다. 또한 소스 호스트와 대상 호스트 간의 네트워크 연결이 복사 후 마이그레이션 중에 작동하지 않는 경우 메모리 페이지가 누락되어 일부 VM 프로세스가 중단될 수 있습니다.
따라서 VM 가용성이 중요하거나 마이그레이션 네트워크가 불안정한 경우 사후 복사 마이그레이션을 사용하지 마십시오.
- 워크로드에서 허용하는 경우 VM을 일시 중지하고 마이그레이션이 실시간이 아닌 마이그레이션으로 완료되도록 합니다. 이렇게 하면 VM의 다운타임이 증가하지만 대부분의 경우 마이그레이션이 성공적으로 완료됩니다.
Prevention
VM의 실시간 마이그레이션을 성공적으로 완료할 가능성은 다음과 같습니다.
마이그레이션 중 VM의 워크로드
- 마이그레이션을 시작하기 전에 VM의 게스트 운영 체제에서 필수가 아닌 프로세스를 중지하거나 취소합니다.
호스트가 마이그레이션에 사용할 수 있는 네트워크 대역폭
- 실시간 마이그레이션의 최적의 결과를 얻으려면 마이그레이션에 사용되는 네트워크의 대역폭이 VM의 더티 페이지 생성보다 훨씬 커야 합니다. VM 더티 페이지 생성 속도를 얻는 방법에 대한 자세한 내용은 명령줄 인터페이스를 사용하여 가상 머신 마이그레이션의 사전 요구 사항을 참조하십시오.
- 소스 호스트와 대상 호스트 모두 마이그레이션을 위한 전용 NIC(네트워크 인터페이스 컨트롤러)가 있어야 합니다. 메모리가 1TB 이상인 VM을 실시간으로 마이그레이션하는 경우 Red Hat은 25GB/s 이상의 속도로 NIC를 권장합니다.
-
마이그레이션을 시작할 때
--bandwidth
옵션을 사용하여 실시간 마이그레이션에 할당된 네트워크 대역폭을 지정할 수도 있습니다. 대규모 VM 마이그레이션의 경우 배포에 실행 가능한 만큼 대역폭을 할당합니다.
실시간 마이그레이션 모드
- 기본 사전 복사 마이그레이션 모드는 더티가 되면 메모리 페이지를 반복적으로 복사합니다.
복사 후 마이그레이션은 메모리 페이지를 한 번만 복사합니다.
마이그레이션이 중지되는 경우 실시간 마이그레이션이 post-copy 모드로 전환되도록 활성화하려면 마이그레이션을 시작할 때
virsh migrate
와 함께--postcopy
옵션을 사용합니다.
배포에 지정된 다운타임
-
이전에 설명한 대로
virsh migrate-setmaxdowntime
을 사용하여 마이그레이션 중에 이를 조정할 수 있습니다.
-
이전에 설명한 대로