配置Hyper-V VM Powershell


13

如何重新配置​​Hyper-V VM

我希望能够使用Powershell更改VM配置文件,检查点和虚拟硬盘驱动器位置。

我的Google-FU仅针对我进行移动,我有大约100个虚拟机要更改,我可以移动文件,我不介意有一点停机时间,当为每个虚拟机执行向导时,每个虚拟机大约需要5到15分钟VM和那些较小的VM,我需要能够在2小时内完成全部100个操作。

如果我需要澄清,请告诉我。

==我在哪里卡住==

是的,我已经看到了该链接并查看了大多数命令,但是没有任何命令可以满足我的需求。

文件总共约为14 TB

约100个VM群集在7个主机之间。共享存储是EMC旋转磁盘,我想将它们移动到3Par ssd。

现在,我能够成功完成的工作是关闭虚拟机,移动文件,删除所有虚拟机,然后通过powershell重新创建它们,当我告诉CTO时,这可能是他处理狗屎小猫的唯一方法。

我想要做的不是移动VM,而是重新配置它们,

在其他作品中可以更改:

在此处输入图片说明

至:

在此处输入图片说明

我希望能够使用Powershell进行此操作,而且我还需要对检查点,配置文件以及所有其他Hyper-V VM组件执行相同的操作。

我可以忍受大约2个小时的停机时间,通过向导执行MOVE,因为所有VM不仅会耗费我的鼠标,而且大约需要6个小时。

我也一直在研究此问题,并测试了几周的不同策略。

====再开一枪====

我不想“移动”所有我想做的就是从hyper-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

@Zoredache在一个完美的世界中,我有6个小时的时间,可以使用这些工具,但是我有2个
Anthony Fornito

Answers:


8

不太确定这是否满足您的需求,但是我过去曾使用过一个示例powershell片段来将VM(包括所有存储)迁移到新目的地

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
}

将虚拟机存储移至新路径

('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文件复制到了新位置,也可以使用Set-VMHardDiskDrive命令,该命令在关闭虚拟机时确实可以更改存储目录,这也很好,但是我找不到如何“更改” VM配置文件的指针。
Anthony Fornito

如果您确实已经复制了所有文件,并且可以确定,则删除删除的文件,然后重新导入VM。答案以示例更新。
Zoredache
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.