將虛擬機器從一台微軟Hyper-V主機移動到另一台並不是驚天動地的訊息,但是你做到了嗎?微軟Server 2012和2012 R2通過圖形Hyper-V管理器就能輕易實現這個遷移過程。如果你像我一樣想加速遷移過程--甚至自動化該過程--PowerShell可以協助你。你還可以通過使用SMB 3.0檔案分享權限設定來加速遷移過程。
將虛擬機器從一台主機遷移到另一台主機的動機很多,從Server Load Balancer到老主機退役。過去的一個挑戰就是在漫長的遷移過程中遭遇停機,但以後再也不會出現了。動態遷移保障了整個虛擬機器及其儲存的遷移過程順利進行。
微軟動態遷移有三種方式:
無共用即時移轉--在這種遷移過程中,你將虛擬機器及其儲存從一台伺服器遷移到另一台伺服器。
動態儲存裝置遷移--虛擬機器設定留在當前主機上,但是虛擬機器的儲存(虛擬硬碟)遷移到其他位置。
動態遷移--允許將虛擬機器從一個叢集節點線上遷移到另一個叢集結點。
本文中,我將重點介紹無共用即時移轉,也是三種類型中最耗費時間的一種。雖然你可以使用System Center虛擬機器管理器執行此類遷移,但我將通過Server 2012中的Hyper-V cmdlet實現。
Hyper-V cmdlet實現動態遷移 實驗室準備
我喜歡在實驗室環境中嘗試新的想法和技術,在生產之前你也應該嘗試一下。我的實驗室環境由一個網域控制站和兩個Hyper-V主機(名為S1和S2)構成。S1上已經運行了一台虛擬機器(名為Server1)。我的目標是在不影響客戶正常活動下遷移虛擬機器。
簡單地說,無共用即時移轉是指將虛擬機器及其儲存順利從一個Hyper-V主機遷移到另一個Hyper-V主機,不會產生停機時間。這是一個複雜的後台過程,但微軟已經改進了方法使之變得相當簡單。
我在用戶端電腦使用PowerShell remoting或RSAT完成所有的管理。如果你的實驗室環境中沒有執行這些任務的用戶端,可以使用運行虛擬機器的Hyper-V主機。
檢查VM狀態
快速檢查虛擬機器狀態以確保一切正常。檢查當前Hyper-V主機的狀態和儲存位置:
Get-VM -Name server1 | Format-Table -Property Name, Path, State
PS C:> Get-VMHardDiskDrive -VMName Server1 | Format-Table -Property VMName, Path
啟用和執行動態遷移
設定遷移的基本設定很簡單。你需要啟用遷移功能並選擇一個移動網路。在生產環境中,最好有多個網路介面卡並且在獨立網路中推動遷移進程。對於實驗室測試來說,是可以使用現有的網路的,因為沒有終端使用者會受到影響。
為了啟動虛擬機器移轉,在兩個Hyper-V伺服器中輸入下面的命令或在用戶端使用PowerShell remoting.
PS C:> Enable-VMMigration
在兩個Hyper-V主機上添加虛擬機器移轉網路:
PS C:> Add-VMMigrationNetwork 192.168.3.0/24
將虛擬機器及其儲存遷移到另一個Hyper-V主機現在只是一個命令。我現在要將虛擬機器移動到S2主機上並將儲存放到"C:HyperV"這裡。為了測試,我在遷移過程中ping到虛擬機器看看通訊情況。命令如下:
PS C:> Move-VM –Name Server1 -DestinationHost s2 -DestinationStoragePath c:HyperV
使用SMB 3.0共用執行遷移
如果你真的想加速移動過程,不管虛擬機器是在單獨的還是在叢集中,你都可以使用新的SMB 3.0檔案分享權限設定。我們之前有介紹過SMB 3.0包括很多功能,但最重要的是,它提升了效能。
首先在虛擬機器儲存的目標位置設定SMB 3.0共用和許可權。你需要為管理員和兩台主機建立共用許可權,並將這些許可權分配給NTFS.我在兩台Hyper-V主機上都建立了,因此我可以來回移動虛擬機器。
PS C:> New-SmbShare -Name Share1 -Path C:hyperv -FullAccess Companyadministrator, CompanyS1, CompanyS2
PS C:> Set-SmbPathAcl -ShareName Share1
使用SMB共用執行遷移的過程和之前相似:
PS C:> Move-VM –Name Server1 -DestinationHost s2 -DestinationStoragePath S2Share1
可能會遇到一些許可權問題,尤其是從用戶端執行時。你可以通過啟用主機和用戶端之間的委託約束解決。
使用動態遷移來移動虛擬機器設定非常簡單,而且如果瞭解PowerShell cmdlet的話會很容易自動化。另外可以考慮使用新的SMB 3.0共用提升你的遷移速度。