我如何重新configurationHyper-V虚拟机
我希望能够使用Powershell更改VMconfiguration文件,检查点和虚拟硬盘位置。
我的Google-FU只是指着我移动,我有大约100个虚拟机来改变,我可以移动这些文件,我不介意有点宕机,当每个虚拟机穿过向导时,大约需要5到15分钟虚拟机和那些是较小的,我需要能够在两个小时内完成100个。
如果我需要澄清,请让我知道。
==我卡在哪里==
是的,我已经看到了这个链接,看了大多数的命令,但是没有做我正在寻找的。
这些文件一起大约是14TB
大约100台虚拟机在7台主机之间进行集群。 共享存储是EMC旋转磁盘,我想将它们移动到3Par SSD。
现在,我已经能够成功地做到了closures虚拟机,移动文件,删除所有虚拟机,并重新创build他们威盛powershell,当我告诉我的首席技术官,可能是他唯一的方式他妈的小猫。
我想能够不移动VM的只是重新configuration他们,
在其他作品中可以改变:
至:
我希望能够使用powershell来做到这一点,我也需要能够为检查点,configuration文件和所有其他Hyper-V VM组件做同样的事情。
我可以容忍大约2个小时的停机时间,通过向导来执行所有虚拟机的MOVE不仅会磨损我的鼠标,而且需要大约6个小时。
我也一直在研究这个,并且在几个星期内testing出不同的策略。
====再一个镜头====
我不希望“移动”所有我想要能够做的是改变设置从超V的移动将取长补短,我更快的复制文件通过networking,只是更新path在Hyper-V中,我可以closures机器。
我认为这是不能做到的?
不太确定这是否你需要,但有一个例子,我曾经使用的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存储移到新path
('ansible-test-web', 'ansible-test-db') | ForEach-Object { Move-VMStorage $_ ` –DestinationStoragePath "E:\Hyper-V\$_" }
如果您已经将虚拟机及其所有文件复制到新的位置,并希望Hyper-V开始使用新位置,则应该可以执行类似操作。
Remove-VM oldvmname Import-VM -Register -Path 'path to VM config file'