Hyper-V VM을 재구성하는 방법
Powershell을 사용하여 VM 구성 파일, 검사 점 및 가상 하드 드라이브 위치를 변경할 수 있기를 원합니다.
내 Google-FU가 이동 중임을 가리키고 있습니다. 약 ~ 100 개의 VM을 변경할 수 있습니다. 파일을 이동할 수 있습니다. 약간의 다운 타임은 신경 쓰지 않습니다. 각 VM의 마법사를 걸을 때마다 약 5 ~ 15 분이 걸립니다. VM과 그 크기가 작은 것이므로 2 시간 안에 100 개를 모두 수행 할 수 있어야합니다.
명확히해야 할 경우 알려주십시오.
== 내가 막히는 곳 ==
예, 나는 그 링크를 보았고 대부분의 명령을 보았지만 아무도 내가 원하는 것을하지 않습니다.
파일은 모두 약 14TB입니다.
~ 100 개의 VM이 7 개의 호스트 사이에 클러스터됩니다. 공유 스토리지는 EMC 회전 디스크이며 3Par ssd로 이동하고 싶습니다.
이제 내가 성공적으로 할 수 있었던 것은 VM을 종료하고 파일을 이동하고 모든 VM을 삭제 한 다음 VIA powershell을 다시 만드는 것입니다. CTO에 말했을 때 새끼 고양이에 대한 유일한 방법 일 수 있습니다.
내가 할 수있는 것은 VM을 이동시키는 것이 아니라 재구성하는 것입니다.
다른 작품에서는 다음을 변경할 수 있습니다.
에:
powershell을 사용 하여이 작업을 수행하고 싶습니다. 또한 검사 점, 구성 파일 및 기타 모든 Hyper-V VM 구성 요소에 대해 동일한 작업을 수행 할 수 있어야합니다.
모든 VM의 마우스가 마모 될뿐만 아니라 약 6 시간이 걸리므로 마법사를 통해 이동을 수행하기 위해 약 2 시간의 가동 중지 시간을 허용 할 수 있습니다.
나는 또한 이것을 연구하고 몇 주 동안 다른 전략을 시험해 왔습니다.
==== 하나 더 샷 ====
하이퍼 볼 V 이동 내에서 설정을 변경하는 것이 오래 걸리기 때문에 “이동”을 원하지 않습니다. 네트워크를 통해 파일을 복사하고 경로를 업데이트하는 것이 훨씬 빠릅니다. Hyper-V에서는 컴퓨터를 종료 할 수 있습니다.
할 수 없다고 생각합니까?
답변
이것이 실제로 필요한지 확실하지는 않지만 과거에 모든 스토리지를 포함하여 VM을 새로운 대상으로 마이그레이션하는 데 사용한 Powershell 조각의 예가 있습니다.
Get-VM -Name ('ansible-test-acs',
'ansible-test-web',
'ansible-test-db') |
ForEach-Object {
# move everything to d:\hyper-v\vm_name on hv-srv-01
$MoveOptions = @{
'Name' = $_.Name
'DestinationHost' = 'hv-srv-01'
'IncludeStorage' = $true
'DestinationStoragePath' = 'D:\Hyper-V\{0}' -f $_.Name
}
$MoveOptions
Move-VM @MoveOptions -WhatIf
# Move-VM @MoveOptions
}
VM 스토리지를 새로운 경로로 이동
('ansible-test-web', 'ansible-test-db') |
ForEach-Object {
Move-VMStorage $_ `
–DestinationStoragePath "E:\Hyper-V\$_"
}
VM과 모든 파일을 새 위치에 복사하고 Hyper-V가 새 위치를 사용하도록하려면 다음과 같은 작업을 수행 할 수 있어야합니다.
Remove-VM oldvmname
Import-VM -Register -Path 'path to VM config file'