web-dev-qa-db-ja.com

Hyper-Vの構成VM powershell

Hyper-VVMを再構成するにはどうすればよいですか

Powershellを使用して、VM構成ファイル、チェックポイント、および仮想ハードドライブの場所を変更できるようにしたい。

私のGoogle-FUは移動を指示しているだけで、変更するVMは約100個あり、ファイルを移動できます。少しのダウンタイムは気になりません。各VM = VMあたり約5〜15分かかります。これらは小さいものです。2時間で100個すべてを実行できる必要があります。

明確にする必要がある場合はお知らせください。

==行き詰まっているところ==

はい、私はそのリンクを見て、ほとんどのコマンドを見ましたが、私が探していることをするものはありません。

すべてのファイルは約14TBです

〜100台のVMが7つのホスト間でクラスター化されます。共有ストレージはEMCスピニングディスクであり、3Parssdに移動したいと思います。

さて、私が成功したのは、VMをシャットダウンし、ファイルを移動し、すべてのVMを削除して、それらを再作成することでしたVIA powershell、これはCTOに唯一の可能性があると言ったとき彼はたわごとの子猫について。

私ができるようにしたいのは、VMを移動するのではなく、単に再構成することです。

他の作品では変更することができます:

enter image description here

に:

enter image description here

PowerShellを使用してこれを実行できるようにしたい。また、チェックポイント、構成ファイル、およびその他すべてのHyper-V VMコンポーネントに対して同じことを実行できる必要があります。

約2時間のダウンタイムに耐えることができます。すべてのVMに対してウィザードを介してMOVEを実行すると、マウスが消耗するだけでなく、約6時間かかります。

また、これを調査し、さまざまな戦略を数週間テストしています。

====もう1ショット====

「移動」するつもりはありません。Hyper-V内から設定を変更するだけで移動に時間がかかります。ネットワーク経由でファイルをコピーしてパスを更新する方がはるかに高速です。 Hyper-Vでは、マシンをシャットダウンできます。

私はそれができないと思っていますか?

13
Anthony Fornito

これが必要なことを実行するかどうかはわかりませんが、すべてのストレージを含む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'
8
Zoredache