下面是自己的總結
自動化管理越來越普遍,Hyper-v 虛擬機也同樣可以。
前提: 系統server 2008以上,powershell 3.0, 導入hyper-v庫
1.虛擬機自動備份
Set-ExecutionPolicy unrestricted #信任腳本
Import-Module D:\HyperV\HyperV\HyperV.psd1 #每次執行都要到導入庫
$BackupDriver = “E:” #備份驅動盤符
$BackupFolder = $(get-date -uformat “%Y%m%d”) #備份文件夾名,格式爲年月日
New-Item -path $BackupDriver -name $BackupFolder -type directory
$vm = "XPx32","win7x64" #分別備份 hyper-v虛擬機的名稱
foreach($i in $vm)
{
shutdown-vm $i -force
Start-Sleep 30
Export-Vm $i $BackupDriver\$BackupFolder\$i"_"$(get-date -uformat "%Y%m%d%H%M") -Copystate –wait
Start-Sleep 60
start-vm $i
Start-Sleep 60
}
2. 虛擬機硬盤壓縮
下面是虛擬機硬盤的壓縮的命令
compact-vhd 與 compress-vhd都可以實現,功能一樣。
使用方面,結合實際生產情況,我建議在空閒時間執行。我一般是補丁更新後繼續操作
所以壓縮完後備份虛擬機,也可以自動化執行,最終目的是優化hyper-v虛擬機
Compress -VHD -VHDPaths 'E:\HyperV_Runing\VHD\XPx32.vhd' #compress vhd 壓縮磁盤 ,虛擬機磁盤的路徑:'E:\HyperV_Runing\VHD\XPx32.vhd'
Get-WmiObject -NameSpace root\virtualization msVM_storagejob | ft jobStatus, description, percentcomplete -auto #compress status查看後臺壓縮情況