Hyper-V VM 파워 쉘 구성


13

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에서는 컴퓨터를 종료 할 수 있습니다.

할 수 없다고 생각합니까?


지금까지 어떤 종류의 연구를 했습니까? hyper-v 모듈 의 문서는 나에게 꽤 좋아 보인다. 어디에 붙어 있습니까?
Zoredache

@Zoredache 업데이트를 참조하십시오.
Anthony Fornito

1
클러스터 된 경우 이동 스토리지 옵션을 사용하여 스토리지를 이동하기 만하면됩니다. GUI에 있으며 다운 타임이 없어야합니다. blogs.msdn.microsoft.com/clustering/2012/04/26/…
Drifter104

Im thinking it cannot be done?나는 그것이 가능 하다고 생각 하지만 길고 복잡한 스크립트 일 것입니다. VM에 관한 거의 모든 것을 powershell을 통해 완전히 조작 할 수 있습니다. 도구를 사용하여 파일 이동을 관리하지 못하게하면 인생이 훨씬 어려워 질 것 같습니다.
Zoredache

나는이 도구를 사용하는 괜찮을 것 6시간 예 가진 완벽한 세계에서 @Zoredache 그러나 나는 2가
안토니 Fornito

답변:


8

이것이 실제로 필요한지 확실하지는 않지만 과거에 모든 스토리지를 포함하여 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'

코드에 감사하지만 여전히 VM을 업데이트합니다.
Anthony Fornito

스토리지 만 이동하는 옵션이 보입니까?
Zoredache

예,하지만 스토리지를 '이동'하지 않고 vhdx 파일을 새 위치로 복사했습니다. 또한 VM이 꺼져있을 때 스토리지 디렉토리를 변경하는 Set-VMHardDiskDrive 명령을 사용할 수 있습니다. 이것도 괜찮지 만 VM 구성 파일의 포인터를 '변경'하는 방법을 찾을 수 없습니다.
Anthony Fornito

실제로 모든 파일을 복사했고 확실하다면 제거를 제거하고 VM을 다시 가져 오십시오. 예를 들어 답변이 업데이트되었습니다.
Zoredache
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.