Microsoft Hyper-V Server 2012開啓虛擬化-Live Migration

一、實時遷移

        實時遷移是微軟向Windows Server 2012 Hyper-V添加的最重要的功能,通過實時遷移功能,在Hyper-V主機之間移動虛擬機(VM)則無需停機,正常維護Hyper-V主機時,可以將它託管的所有VM全部移走,等到維護結束後,再移回來,整個過程不會引起業務中斷。此外,利用實時遷移功能還可以更好地動態調整主機資源利用率,將繁忙的Hyper-V主機上的部分VM移動到相對空閒的Hyper-V主機上,這樣可以確保即便在業務高峯期也能給終端用戶提供很好的性能。本章主要介紹Windows Server 2012 Hyper-V的實時遷移功能(Live Migration)。

 

二、約束委派設置的兩種方法

 

1. 通過GUI界面設置

 

        在我們進行實時遷移設置前,首先要進行配置約束委派,因爲Hyper-V實時轉移提供了兩種驗證通信協議,預設爲CredSSP,另一種是Kerberos委派。不過相對比較安全的Kerberos委派可以阻絕任何不明啓用的服務器使用委派,所以建議使用。如果使用Kerberos委派來驗證實時遷移,那就必須要先設定限制委派,然後纔可以繼續其餘的步驟,而且還要必須使用Domain Administrators羣組成員的賬戶在Active Directory的Computers設置限制委派。如果使用CredSSP,那就不需要進行設定委派。

步驟1 打開“Active Directory 用戶和計算機”管理單元。從服務器管理器 (SM) 中執行該操作,打開“Active Directory 用戶和計算機”管理單元。從導航面板中選擇域,然後雙擊“Computers”文件夾。在“Computers”文件夾中,右擊源服務器的計算機賬戶,然後在彈出的快捷菜單中選擇“屬性”命令。

clip_p_w_picpath002

 

步驟2  在接下來彈出的“屬性”對話框中,單擊“委派”選項卡。在“委派”選項卡下選擇“信任僅委派到特定服務的計算機”。在該選項下面,選擇“僅限使用 Kerberos”。單擊“添加。

 

clip_p_w_picpath003

 

步驟3 在接下來彈出的“添加服務”對話框中,單擊“用戶或計算機”按鈕。

clip_p_w_picpath004

 

步驟4  在“選擇用戶或計算機”對話框中的“輸入對象名稱來選擇”文本框中鍵入目標服務器的名稱,單擊“檢查名稱”按鈕以驗證你輸入的名稱是否正確,若無誤,則單擊“確定”按鈕。

clip_p_w_picpath005

 

步驟5 在“添加服務”對話框,在可用服務列表中執行以下步驟,然後單擊“確定”。要移動虛擬機存儲器,請選擇 cifs。如果要同時遷移存儲器與虛擬機,而且僅遷移虛擬機的存儲器,則需要執行此步驟。如果將該服務器配置爲使用Hyper-V的SMB存儲器,則應首先選中該選項。要遷移虛擬機,選擇“Microsoft 虛擬系統遷移服務。

clip_p_w_picpath006

 

步驟6 在“屬性”對話框的“委派”選項卡上,確定上一步選定的服務列在目標計算機可以爲其提供委派證書的服務中,然後單擊“確定”按鈕。

clip_p_w_picpath007

 

      委派要在域中的每臺Hyper-V主機中都要添加相應的委派,否在會在遷移過程中報錯。如在Hyper-V02中,就需要信任Hyper-V01中的Kerberos協議,並指定相應的服務類型。操作步驟與之前的相同。如果只設定一方,那就只能將虛擬機遷移過去,但卻無法遷移過來。

 

2. 通過Powershell命令設置

        下面我們用Powershell的方式進行委派,但是Powershell方式的委派非常麻煩,幸運的是在TeachNet Blogs中有提供了一個Set-KCD.ps1腳本文件,該腳本簡化了煩瑣的委派步驟,其地址爲:http://blogs.technet.com/b/matthts/archive/2012/06/10/configuring-kerberos-constrained-delegation-for-hyper-v-management.aspx

        從Blogs上我們可以下載到Set-KCD腳本文件,下載之後解壓後會有兩個文件,一個是Set-KCD.ps1和Set-KCD.Zip。在解壓Set-KCD.Zip後,會發現裏面還有個Set-KCD.ps1,第二個Set-KCD.ps1文件大約9.2KB,第一個Set-KCD.ps1大小則爲3KB,其實兩種Set-KCD.ps1都能實現同樣的效果,差別就是文件較大的Set-KCD.ps1文件包含服務類型的名稱。

        首先我先看大小爲3KB的Set-KCD.ps1文件,其代碼如圖所示。

clip_p_w_picpath009

 

        接下來我們看大小爲9.2KB的Set-KCD.ps1文件,由於代碼過長,這裏只給出了部分代碼,可自行下載後查看,其代碼如圖所示。

clip_p_w_picpath011

 

        瞭解了Set-KCD腳本文件,在準備執行Set-KCD.ps1腳本文件之前,還需要進行一步操作,否則會在執行的過程中會出下無法加載文件的情況。

clip_p_w_picpath013

 

         遇到這種事情是由於Set-KCD不是Windows Powershell內建的指令,所以必須要解除限制,設定爲無限制才能執行。設置完成後,我們還可以恢復Windows Powershell內建的指令限制。首先使用Powershell命令Set-ExecutionPolicy Undefined,目的是降低Windows Powershell安全性,當執行完成後,可以使用Powershell命令Set-ExecutionPolicy RemoteSigned恢復其安全性。

clip_p_w_picpath015

 

        下面我們就來設置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服務類型CIFS。將9.2KB大小的Set-KCD.ps1文件拷貝到C盤下,使用的Powershell命令爲

 

.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType CIFS –Add

 

clip_p_w_picpath017

 

        如果要將3KB大小的Set-KCD.ps1文件拷貝到C盤下,使用的Powershell命令爲:

.\SetKCD.ps1 –AdDN “cn=Hyper-V01,cn=computers,dc=mabofeng,dc=com” –HostFQDN Hyper-V02.mabofeng.com –Service CIFS –Add

        接下來設置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服務類型Microsoft Virtual System Migration Service。將9.2KB大小的Set-KCD.ps1文件複製到C盤下,使用的Powershell命令爲:

.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType “Microsoft Virtual System Migration Service” –Add

 

clip_p_w_picpath019

 

      如果要將3KB大小的Set-KCD.ps1文件複製到C盤下,使用的Powershell命令爲:

.\SetKCD.ps1 –AdDN “cn=Hyper-V01.cn=computers,dc=mabofeng,dc=com” –HostFQDN Hyper-V02.mabofeng.com –Service “Microsoft Virtual System Migration Service” –Add

      複製完成後,進行設置信任委派,我們可以使用如下命令:

Get-AdObject “cn=Hyper-V01,cn=computers,dc=mabofeng,dc=com” –Properties msDSAllowedToDelegateTo

 

clip_p_w_picpath021

 

        在域控中設定完成委派後,接下來就是設定轉移的來源和目的地Hyper-V主機了。設定來源和目的地服務器目的是,讓它們可以傳送和接收實時遷移。當設置服務器的時候,有兩種方案可供選擇:在任何可用網絡允許實時遷移的流量或只在指定網絡上允許實時遷移的流量。最安全做法就是指定專用的網絡負責實時遷移的網絡流量。要在非羣集Hyper-V主機上開啓實時遷移,只要在Hyper-V主機的Hyper-V設置中進行設置即可。

 

二、實時遷移設置的兩種方法

1. 通過GUI界面設置

        在Hyper-V實時遷移設置中,首先勾選“啓用傳入和傳出的實時遷移”,並選擇身份驗證協議。身份驗證協議分爲兩種:一種是使用憑據安全支持提供程序(CredSSP),這種身份驗證協議必須登錄到服務器才能執行實時遷移,所以不是最佳的選擇;而另一種方式是採用Kerberos,這種方式更爲安全,在域控中我們已經設置了採用Kerberos委派,並設定了cifs和Microsoft 虛擬系統遷移服務。在“指定所允許的並行實時遷移數量”中輸入允許的數量。

        接下就是設置傳入實時遷移的網絡情況,這裏也有兩種選擇:一是使用任何可用的網絡進行實時遷移,這種方式可以利用所有Hyper-V主機之間的網絡,但是由於發生實時遷移後,對網絡的壓力較大,給其它網絡中的業務造成壓力;二是使用指定的IP地址進行實時遷移,這也是我們要選擇的方式。單擊圖6-16中的“添加”即可設置IP地址,單擊“編輯”即可修改實時遷移IP地址。

clip_p_w_picpath023

 

2. 通過Powershell命令設置

      如果是Microsoft Hyper-V Server 2012,無法通過GUI界面設置實時遷移,那麼我們也可以通過Powershell的方式設置Hyper-V的實時遷移,主要的命令包括:

啓動傳入和傳出的實時遷移,命令如下:

Enable-VMMigration

        停用傳入和傳出的實時遷移,命令如下:

Disable-VMMigration

        查看傳入和傳出的實時遷移狀態(見圖6-17),命令如下:

Get-VMHost

clip_p_w_picpath025

 

        使用憑據安全支持提供程序(CredSSP),命令如下:

Set-VMHost –UseAnyNetworkForMigration $ture

        指定使用IP地址爲192.168.1.201進行實施遷移,命令如下:

Add-VMMigrationNetwork 192.168.1.201/32

        指定使用IP段都可以進行實施遷移,命令如下:

Add-VMMigrationNetwork 192.168.0.0/32

        查看傳入和傳出的實時遷移IP地址,命令如下:

Get-VMMigrationNetwork

clip_p_w_picpath027

 

 

        將192.168.1.201的先後順序調到3,命令如下:

Set- VMMigrationNetwork 192.168.1.201/32 –NewPriority 3

clip_p_w_picpath029

 

        在Hyper-V設置中,還需要進行設置的就是存儲遷移的併發遷移量,設置允許存儲遷移的併發數量。

clip_p_w_picpath031

 

        除了在Hyper-V主機上要設置實時遷移以外,要注意在虛擬機的設置中,一定要勾選“將虛擬機遷移到具有不同處理器版本的物理計算機”選項,如果不勾選這個選項,在遷移到不同版本的CPU時候,會出現錯誤,導致遷移失敗。

clip_p_w_picpath033

 

 

三、具有共享存儲的實時遷移

        實時遷移具有很多種類:

        具有共享存儲的實時遷移,就是虛擬機運行在具有共享存儲的磁盤中,兩臺Hyper-V並非是羣集關係,可以將虛擬機實時遷移到另外一臺主機上,在遷移過程中可保證虛擬機不關機、不重啓,服務器不中斷,確保業務的正常運行。

        另外一種遷移是運行在一臺Hyper-V主機中,改變虛擬機的存放位置,將虛擬機的存放位置從一個磁盤遷移到另一個磁盤,同樣的,在遷移過程中虛擬機不關機、不重啓,服務器不中斷,保證業務的正常運行。

        最後一種就是當虛擬機運行在單臺Hyper-V主機時,將單臺Hyper-V主機中的虛擬機遷移到另外一臺Hyper-V主機,並且這兩臺Hyper-V主機並沒有共享存儲,也就是說,要同時遷移虛擬機和虛擬機存放的磁盤位置。

        無論是哪種遷移,將虛擬機遷移到另外一臺主機上時候,轉移虛擬機基本上包括了轉移虛擬機的快照、當前配置、智能分頁和虛擬硬盤,如果是遷移虛擬存儲文件,還可以指定將虛擬機磁盤存放到不同的目錄上。但這裏要注意的就是,當遷移虛擬機到另外一臺主機上時,如果虛擬機使用的是DHCP,那麼在遷移完成後,IP地址可能會發生變更,所以最好將虛擬機的IP地址設置成爲固定的形式。在兩臺Hyper-V主機上進行遷移時,如果兩臺主機的虛擬交換機名稱不同,則也可能發生遷移失敗。

        下面我們就來介紹如何進行具有共享存儲的實時遷移,。相對於其它遷移方式,這種遷移速度是最快的,如果虛擬機存放在共享存儲中,而共享存儲是採用SMB3.0就可以順利的遷移,如果是早期的Hyper-V版本,則無法使用具有共享存儲進行實時遷移。這裏還要注意,共享存儲必須具有Hyper-V的Administrator的權限,並設置授予完全控制。否則在遷移虛擬時候會發生錯誤。

1. 通過GUI界面進行遷移

步驟1 在Hyper-V管理器中,右擊選擇要遷移的虛擬機,在之後彈出的快捷菜單中選擇“移動”命令。

clip_p_w_picpath035

 

步驟2 在遷移“新建虛擬機”嚮導中,點選“移動虛擬機”選項,然後單擊“下一步”按鈕。由於採用的是共享存儲,所以就沒必要移動虛擬機的存儲了。

clip_p_w_picpath037

 

 

步驟3 在指定目標的計算機界面上,輸入指定目標計算機的名稱,或者通過單擊“瀏覽”按鈕在域中查找到要遷移的目地虛擬主機,之後單擊“下一步”按鈕。

clip_p_w_picpath039

 

步驟4  在選擇移動虛擬機後,可以在“選擇移動選項”界面中選擇如何使用虛擬機遷移項目,這裏包括如下選項:

      “將虛擬機的數據移動到一個位置”選項,此選項將遷移虛擬機到所指定的一個位置,這裏的意思是遷移快照、智能分頁、虛擬機配置文件和虛擬機的虛擬硬盤,將這些文件指定一個位置。

      “通過選擇項目移動位置來遷移虛擬機的數據”選項,這裏的意思是將遷移快照、智能分頁、虛擬機配置文件和虛擬機的虛擬硬盤分別指定存放的位置。這種選項和上一個選項可以手動或者自動選擇虛擬機的存放位置,如果無需移動虛擬機虛擬硬盤,則指定路徑時,將虛擬機的虛擬硬盤指定到源地址即可。

       “僅移動虛擬機”選項,將虛擬機的文件除了虛擬機的虛擬硬盤之外的文件進行遷移,遷移後的虛擬機存放在系統默認的地方。

這裏我們選擇“僅移動虛擬機”選項。

clip_p_w_picpath041

 

2. 通過Powershell命令進行遷移

        通過Powershell也能進行虛擬機的遷移,使用命令Move-VM。首先我們先查看在Powershell中的遷移虛擬機的命令語法。

clip_p_w_picpath043

 

      命令Move-VM的語法中包括了:

       -SmartPagingFile: 智能分頁處理。

      -AnapshotFile :快照文件。

      -VirtualMachine: 虛擬機配置文件。

      -VHDs :虛擬機的虛擬硬盤。

      通過Powershell命令可以將新建虛擬機從Hyper-V01主機上遷移到Hyper-V02主機上,使用的命令爲:

Move-VM “新建虛擬機” Hyper-V02

      可以將新建虛擬機從Hyper-V01主機上遷移到Hyper-V02主機上,並指定虛擬機的虛擬硬盤路徑在C:\TestVM,其命令爲:

PS C:\>Move-VM “新建虛擬機” Hyper-V02 –IncludeStorage –DestinationStoragePath C:\TestVM

      可以將新建虛擬機從Hyper-V01主機上遷移到Hyper-V02主機上。並指定智能分頁處理、快照文件、虛擬機配置文件和虛擬機的虛擬硬盤路徑,使用的命令爲:

PS C:\>Move-VM “新建虛擬機” Hyper-V02 –VirtualMachinePath D:\TestVM\Config –SnapshotFilePath D:\ 新建虛擬機\Snapshots –SmartPagingFilePath D:\ 新建虛擬機\SmartPaging –IncludeStorage –VHDs @(@{“SourceFilePath” =“C:\ 新建虛擬機\Disk1.VHDX”; “DestinationFilePath” = “D:\ 新建虛擬機\Disks\Disk1.VHDX”}, @{“SourceFilePath” = “C:\ 新建虛擬機\Disk2.VHDX”; “DestinationFilePath” = “D:\ 新建虛擬機\Disks\Disk2.VHDX”})

 

 

四、存儲實時遷移

        存儲實時遷移是將虛擬機的存放位置從一個地方遷移到另一個地方,比如可以將虛擬機的存放位置從C盤遷移到D盤,或者將虛擬機硬盤遷移到共享存儲上面,也可以將虛擬機在共享存儲中的不同LUN之間相互遷移,在遷移過程中,虛擬機不會出現中斷。但是由於存儲實時遷移包括了遷移虛擬機的快照、智能分頁、虛擬機配置和虛擬機的虛擬硬盤,所以遷移過程是比較慢的,具體速度取決於我們存儲網絡和磁盤速率。當然,在虛擬機關機的情況下,速度要比開機時候遷移的要快。

1. 通過GUI界面進行遷移

步驟1 在Hyper-V管理器中,右擊選擇要遷移的虛擬機,在之後彈出的快捷菜單中選擇“移動”命令。在遷移“新建虛擬機”嚮導中,選擇“遷移虛擬機的存儲”選項,由於是在同一臺主機上,就沒必要移動虛擬機了。

clip_p_w_picpath045

 

步驟2 在選擇移動虛擬機存儲後,可以在“選擇移動選項”中選擇如何使用虛擬機存儲遷移項目,這裏包括的具體選項有:

 “將虛擬機的數據移動到一個位置”選項,此選項將遷移虛擬機到所指定的一個位置,這裏的意思是遷移快照、智能分頁、虛擬機配置文件和虛擬機的虛擬硬盤,將這些文件指定一個位置。

“將虛擬機的數據移動到其他位置”選項,即通過選擇項目移動位置來遷移虛擬機的數據,這裏的意思是將遷移快照、智能分頁、虛擬機配置文件和虛擬機的虛擬硬盤分別指定存放的位置。這個選項和上一個選項可以手動或者自動選擇虛擬機的存放位置。

 “僅移動虛擬機的虛擬硬盤”選項,對虛擬機的虛擬硬盤文件進行遷移,遷移後的虛擬機存放在系統默認的地方。

這裏我們選擇“僅移動虛擬機的虛擬硬盤。

clip_p_w_picpath047

 

步驟3 在選擇要移動的項目中會列出虛擬機中的所有虛擬硬盤,可以將虛擬機中的虛擬硬盤全部勾選上然後可以進行遷移,也可以遷移其中的一些虛擬硬盤,但是不建議將一個虛擬機的硬盤遷移到不同的目錄中。這裏的新建虛擬機只有1塊硬盤,我們就選擇遷移此虛擬硬盤。

clip_p_w_picpath049

 

步驟4 爲虛擬機中的虛擬硬盤選擇遷移的目標路徑,從圖6-30中可以看出,新建虛擬機的當前位置在C盤下面,在“新位置”中單擊“瀏覽”按鈕選擇路徑或者直接輸入路徑,若是輸入路徑的地址下沒有輸入的文件夾,則會自動創建文件夾。

clip_p_w_picpath051

 

步驟5在摘要中查看要遷移虛擬機的路徑,確認無誤後單擊“完成”按鈕就開始遷移,整個遷移虛擬機的過程虛擬機不會出現中斷。

clip_p_w_picpath053

 

2. 通過Powershell命令進行遷移

        通過Powershell也能進行虛擬機存儲的遷移,使用的命令是Move-VMStorage。首先我們先查看在Powershell中的遷移虛擬機的命令語法。

clip_p_w_picpath055

命令Move-VM的語法中包括了:

        -SmartPagingFile :智能分頁處理。

        -AnapshotFile :快照文件。

        -VirtualMachine: 虛擬機配置文件。

        -VHDs :虛擬機的虛擬硬盤。

        可以將新建虛擬機存儲位置從默認路徑遷移到D:\新建虛擬機,使用的命令如下:

PS C:\> Move-VMStorage “新建虛擬機” –DestinationStoragePath D:\新建虛擬機

        將新建虛擬機的智能分頁處理、快照文件、虛擬機配置文件和虛擬機的虛擬硬盤遷移到指定的路徑,使用的命令如下:

PS C:\>Move-VMStorage “新建虛擬機” –VirtualMachinePath D:\新建虛擬機\Config –SnapshotFilePath D:\新建虛擬機\Snapshots –SmartPagingFilePath D:\新建虛擬機\SmartPaging –VHDs @(@{“SourceFilePath” = “C:\新建虛擬機\Disk1.VHDX”; “DestinationFilePath” = “D:\新建虛擬機\Disks\Disk1.VHDX”}, @{“SourceFilePath” = “C:\新建虛擬機\Disk2.VHDX”; “DestinationFilePath” = “D:\新建虛擬機\Disks\Disk2.VHDX”})

 

 

五、非共享存儲的實時遷移

        Windows Server 2012中的Hyper-V在虛擬機的遷移中,支持了具有非共享存儲的實時遷移,這樣可以大大增強了Hyper-V虛擬機的靈活性,在一些沒有共享存儲和羣集的環境中,基於非共享存儲的實時遷移起到了重要的作用。

      非共享存儲的實時遷移具備以下四個特性:

      即使在遷移工程中遇到故障或問題,導致遷移失敗,也能保證有一臺可用虛擬機。

      可跨羣集遷移虛擬機,例如我們可以從非羣集的計算機遷移到羣集計算機。

      支持不同存儲類型的遷移虛擬機,無需受存儲類型約束,不管環境是 JBOD 還是直通存儲,又或者是 iSCSI 存儲,都能實現實時遷移。

      可以使用 Powershell 發起實施遷移的操作,那麼就能夠實現自動化的操作。

綜上所述,非共享存儲的實時遷移爲我們提供了低成本、高效率、靈活便捷的遷移方案,這一遷移方式能夠被用到多種應用環境下,例如:

      開發或 IT 人員能夠將測試好的虛機在不停機的前提下直接遷移到生產環境。

      在多主機環境下,如果需要進行主機維護,可以在不依賴共享存儲的前提下,快速、靈活的在主機之間移動虛機。

      故障檢修和硬件升級,中小企業可能只有一臺服務器並通過虛擬化方式運行着業務服務器,當遇到硬件故障或需要更新服務器時,IT顧問可以快速在筆記本上建立臨時的基於 Windows Server 2012 的 Hyper-V 主機,將其加入到現有域中完成業務虛擬機的遷移,在完成原服務器的更換後,再遷移回去。

      非共享存儲的實時遷移在遷移過程中虛擬機不會出現中斷的現象。

clip_p_w_picpath057

 

      而遷移的過程中,有的Hyper-V主機沒有共享存儲,所以在遷移時,需要遷移虛擬機的所有配置,包括虛擬機的虛擬硬盤、配置文件、虛擬機快照和Hyper-V智能分頁文件,遷移過去的虛擬機文件和數據存儲可位於一個或者多個位置。由於沒有共享存儲,該實時遷移方案不提供高可用性。

clip_p_w_picpath059

 

      可以通過Powershell發起實施遷移的操作,可以採用Move-VMStorage或者是Move-VM命令,只要指定相應的虛擬機遷移目標存儲路徑,虛擬機就會遷移過去,這與之前遷移使用的命令相同。Windows Server 2012 無需共享存儲的實時遷移整體來講非常易用,無需過多的設置即可完成,仔細操作下來也就是幾個簡單的步驟,這完全依靠強大的基礎架構作爲支撐,所以在遷移之前的Hyper-V主機中,都必須加入域環境。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章