Hyper-V Server 2012開啟虛擬化-Live Migration
實(shí)時(shí)遷移
實(shí)時(shí)遷移是微軟向Windows Server 2012 Hyper-V添加的最重要的功能,通過實(shí)時(shí)遷移功能,在Hyper-V主機(jī)之間移動(dòng)虛擬機(jī)(VM)則無需停機(jī),正常維護(hù)Hyper-V主機(jī)時(shí),可以將它托管的所有VM全部移走,等到維護(hù)結(jié)束后,再移回來,整個(gè)過程不會(huì)引起業(yè)務(wù)中斷。此外,利用實(shí)時(shí)遷移功能還可以更好地動(dòng)態(tài)調(diào)整主機(jī)資源利用率,將繁忙的Hyper-V主機(jī)上的部分VM移動(dòng)到相對(duì)空閑的Hyper-V主機(jī)上,這樣可以確保即便在業(yè)務(wù)高峰期也能給終端用戶提供很好的性能。本章主要介紹Windows Server 2012 Hyper-V的實(shí)時(shí)遷移功能(Live Migration)。
一、約束委派設(shè)置的兩種方法
1. 通過GUI界面設(shè)置
在我們進(jìn)行實(shí)時(shí)遷移設(shè)置前,首先要進(jìn)行配置約束委派,因?yàn)镠yper-V實(shí)時(shí)轉(zhuǎn)移提供了兩種驗(yàn)證通信協(xié)議,預(yù)設(shè)為CredSSP,另一種是Kerberos委派。不過相對(duì)比較安全的Kerberos委派可以阻絕任何不明啟用的服務(wù)器使用委派,所以建議使用。如果使用Kerberos委派來驗(yàn)證實(shí)時(shí)遷移,那就必須要先設(shè)定限制委派,然后才可以繼續(xù)其余的步驟,而且還要必須使用Domain Administrators群組成員的賬戶在Active Directory的Computers設(shè)置限制委派。如果使用CredSSP,那就不需要進(jìn)行設(shè)定委派。
步驟1 打開“Active Directory 用戶和計(jì)算機(jī)”管理單元。從服務(wù)器管理器 (SM) 中執(zhí)行該操作,打開“Active Directory 用戶和計(jì)算機(jī)”管理單元。從導(dǎo)航面板中選擇域,然后雙擊“Computers”文件夾。在“Computers”文件夾中,右擊源服務(wù)器的計(jì)算機(jī)賬戶,然后在彈出的快捷菜單中選擇“屬性”命令。

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

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

步驟4 在“選擇用戶或計(jì)算機(jī)”對(duì)話框中的“輸入對(duì)象名稱來選擇”文本框中鍵入目標(biāo)服務(wù)器的名稱,單擊“檢查名稱”按鈕以驗(yàn)證你輸入的名稱是否正確,若無誤,則單擊“確定”按鈕。

步驟5 在“添加服務(wù)”對(duì)話框,在可用服務(wù)列表中執(zhí)行以下步驟,然后單擊“確定”。要移動(dòng)虛擬機(jī)存儲(chǔ)器,請(qǐng)選擇 cifs。如果要同時(shí)遷移存儲(chǔ)器與虛擬機(jī),而且僅遷移虛擬機(jī)的存儲(chǔ)器,則需要執(zhí)行此步驟。如果將該服務(wù)器配置為使用Hyper-V的SMB存儲(chǔ)器,則應(yīng)首先選中該選項(xiàng)。要遷移虛擬機(jī),選擇“Microsoft 虛擬系統(tǒng)遷移服務(wù)。

步驟6 在“屬性”對(duì)話框的“委派”選項(xiàng)卡上,確定上一步選定的服務(wù)列在目標(biāo)計(jì)算機(jī)可以為其提供委派證書的服務(wù)中,然后單擊“確定”按鈕。

委派要在域中的每臺(tái)Hyper-V主機(jī)中都要添加相應(yīng)的委派,否在會(huì)在遷移過程中報(bào)錯(cuò)。如在Hyper-V02中,就需要信任Hyper-V01中的Kerberos協(xié)議,并指定相應(yīng)的服務(wù)類型。操作步驟與之前的相同。如果只設(shè)定一方,那就只能將虛擬機(jī)遷移過去,但卻無法遷移過來。
2. 通過Powershell命令設(shè)置
下面我們用Powershell的方式進(jìn)行委派,但是Powershell方式的委派非常麻煩,幸運(yùn)的是在TeachNet Blogs中有提供了一個(gè)Set-KCD.ps1腳本文件,該腳本簡(jiǎn)化了煩瑣的委派步驟,其地址為:http://blogs.technet.com/b/matthts/archive/2012/06/10/configuring-kerberos-constrained-delegation-for-hyper-v-management.aspx
從Blogs上我們可以下載到Set-KCD腳本文件,下載之后解壓后會(huì)有兩個(gè)文件,一個(gè)是Set-KCD.ps1和Set-KCD.Zip。在解壓Set-KCD.Zip后,會(huì)發(fā)現(xiàn)里面還有個(gè)Set-KCD.ps1,第二個(gè)Set-KCD.ps1文件大約9.2KB,第一個(gè)Set-KCD.ps1大小則為3KB,其實(shí)兩種Set-KCD.ps1都能實(shí)現(xiàn)同樣的效果,差別就是文件較大的Set-KCD.ps1文件包含服務(wù)類型的名稱。
首先我先看大小為3KB的Set-KCD.ps1文件,其代碼如圖所示。

接下來我們看大小為9.2KB的Set-KCD.ps1文件,由于代碼過長(zhǎng),這里只給出了部分代碼,可自行下載后查看,其代碼如圖所示。

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

遇到這種事情是由于Set-KCD不是Windows Powershell內(nèi)建的指令,所以必須要解除限制,設(shè)定為無限制才能執(zhí)行。設(shè)置完成后,我們還可以恢復(fù)Windows Powershell內(nèi)建的指令限制。首先使用Powershell命令Set-ExecutionPolicy Undefined,目的是降低Windows Powershell安全性,當(dāng)執(zhí)行完成后,可以使用Powershell命令Set-ExecutionPolicy RemoteSigned恢復(fù)其安全性。

下面我們就來設(shè)置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服務(wù)類型CIFS。將9.2KB大小的Set-KCD.ps1文件拷貝到C盤下,使用的Powershell命令為
.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType CIFS –Add

如果要將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
接下來設(shè)置mabofeng.com域中的Hyper-V01信任委派Hyper-V02的服務(wù)類型Microsoft Virtual System Migration Service。將9.2KB大小的Set-KCD.ps1文件復(fù)制到C盤下,使用的Powershell命令為:
.\SetKCD.ps1 –TrustedComputer Hyper-V01 –TrustingComputer Hyper-V02 –ServiceType “Microsoft Virtual System Migration Service” –Add

如果要將3KB大小的Set-KCD.ps1文件復(fù)制到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
復(fù)制完成后,進(jìn)行設(shè)置信任委派,我們可以使用如下命令:
Get-AdObject “cn=Hyper-V01,cn=computers,dc=mabofeng,dc=com” –Properties msDSAllowedToDelegateTo

在域控中設(shè)定完成委派后,接下來就是設(shè)定轉(zhuǎn)移的來源和目的地Hyper-V主機(jī)了。設(shè)定來源和目的地服務(wù)器目的是,讓它們可以傳送和接收實(shí)時(shí)遷移。當(dāng)設(shè)置服務(wù)器的時(shí)候,有兩種方案可供選擇:在任何可用網(wǎng)絡(luò)允許實(shí)時(shí)遷移的流量或只在指定網(wǎng)絡(luò)上允許實(shí)時(shí)遷移的流量。最安全做法就是指定專用的網(wǎng)絡(luò)負(fù)責(zé)實(shí)時(shí)遷移的網(wǎng)絡(luò)流量。要在非群集Hyper-V主機(jī)上開啟實(shí)時(shí)遷移,只要在Hyper-V主機(jī)的Hyper-V設(shè)置中進(jìn)行設(shè)置即可。 #p#
二、實(shí)時(shí)遷移設(shè)置的兩種方法
1. 通過GUI界面設(shè)置
在Hyper-V實(shí)時(shí)遷移設(shè)置中,首先勾選“啟用傳入和傳出的實(shí)時(shí)遷移”,并選擇身份驗(yàn)證協(xié)議。身份驗(yàn)證協(xié)議分為兩種:一種是使用憑據(jù)安全支持提供程序(CredSSP),這種身份驗(yàn)證協(xié)議必須登錄到服務(wù)器才能執(zhí)行實(shí)時(shí)遷移,所以不是最佳的選擇;而另一種方式是采用Kerberos,這種方式更為安全,在域控中我們已經(jīng)設(shè)置了采用Kerberos委派,并設(shè)定了cifs和Microsoft 虛擬系統(tǒng)遷移服務(wù)。在“指定所允許的并行實(shí)時(shí)遷移數(shù)量”中輸入允許的數(shù)量。
接下就是設(shè)置傳入實(shí)時(shí)遷移的網(wǎng)絡(luò)情況,這里也有兩種選擇:一是使用任何可用的網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)遷移,這種方式可以利用所有Hyper-V主機(jī)之間的網(wǎng)絡(luò),但是由于發(fā)生實(shí)時(shí)遷移后,對(duì)網(wǎng)絡(luò)的壓力較大,給其它網(wǎng)絡(luò)中的業(yè)務(wù)造成壓力;二是使用指定的IP地址進(jìn)行實(shí)時(shí)遷移,這也是我們要選擇的方式。單擊圖6-16中的“添加”即可設(shè)置IP地址,單擊“編輯”即可修改實(shí)時(shí)遷移IP地址。

2. 通過Powershell命令設(shè)置
如果是Microsoft Hyper-V Server 2012,無法通過GUI界面設(shè)置實(shí)時(shí)遷移,那么我們也可以通過Powershell的方式設(shè)置Hyper-V的實(shí)時(shí)遷移,主要的命令包括:
啟動(dòng)傳入和傳出的實(shí)時(shí)遷移,命令如下:
Enable-VMMigration
停用傳入和傳出的實(shí)時(shí)遷移,命令如下:
Disable-VMMigration
查看傳入和傳出的實(shí)時(shí)遷移狀態(tài)(見圖6-17),命令如下:
Get-VMHost

使用憑據(jù)安全支持提供程序(CredSSP),命令如下:
Set-VMHost –UseAnyNetworkForMigration $ture
指定使用IP地址為192.168.1.201進(jìn)行實(shí)施遷移,命令如下:
Add-VMMigrationNetwork 192.168.1.201/32
指定使用IP段都可以進(jìn)行實(shí)施遷移,命令如下:
Add-VMMigrationNetwork 192.168.0.0/32
查看傳入和傳出的實(shí)時(shí)遷移IP地址,命令如下:
Get-VMMigrationNetwork

將192.168.1.201的先后順序調(diào)到3,命令如下:
Set- VMMigrationNetwork 192.168.1.201/32 –NewPriority 3

在Hyper-V設(shè)置中,還需要進(jìn)行設(shè)置的就是存儲(chǔ)遷移的并發(fā)遷移量,設(shè)置允許存儲(chǔ)遷移的并發(fā)數(shù)量。

除了在Hyper-V主機(jī)上要設(shè)置實(shí)時(shí)遷移以外,要注意在虛擬機(jī)的設(shè)置中,一定要勾選“將虛擬機(jī)遷移到具有不同處理器版本的物理計(jì)算機(jī)”選項(xiàng),如果不勾選這個(gè)選項(xiàng),在遷移到不同版本的CPU時(shí)候,會(huì)出現(xiàn)錯(cuò)誤,導(dǎo)致遷移失敗。

三、具有共享存儲(chǔ)的實(shí)時(shí)遷移
實(shí)時(shí)遷移具有很多種類:
具有共享存儲(chǔ)的實(shí)時(shí)遷移,就是虛擬機(jī)運(yùn)行在具有共享存儲(chǔ)的磁盤中,兩臺(tái)Hyper-V并非是群集關(guān)系,可以將虛擬機(jī)實(shí)時(shí)遷移到另外一臺(tái)主機(jī)上,在遷移過程中可保證虛擬機(jī)不關(guān)機(jī)、不重啟,服務(wù)器不中斷,確保業(yè)務(wù)的正常運(yùn)行。
另外一種遷移是運(yùn)行在一臺(tái)Hyper-V主機(jī)中,改變虛擬機(jī)的存放位置,將虛擬機(jī)的存放位置從一個(gè)磁盤遷移到另一個(gè)磁盤,同樣的,在遷移過程中虛擬機(jī)不關(guān)機(jī)、不重啟,服務(wù)器不中斷,保證業(yè)務(wù)的正常運(yùn)行。
最后一種就是當(dāng)虛擬機(jī)運(yùn)行在單臺(tái)Hyper-V主機(jī)時(shí),將單臺(tái)Hyper-V主機(jī)中的虛擬機(jī)遷移到另外一臺(tái)Hyper-V主機(jī),并且這兩臺(tái)Hyper-V主機(jī)并沒有共享存儲(chǔ),也就是說,要同時(shí)遷移虛擬機(jī)和虛擬機(jī)存放的磁盤位置。
無論是哪種遷移,將虛擬機(jī)遷移到另外一臺(tái)主機(jī)上時(shí)候,轉(zhuǎn)移虛擬機(jī)基本上包括了轉(zhuǎn)移虛擬機(jī)的快照、當(dāng)前配置、智能分頁和虛擬硬盤,如果是遷移虛擬存儲(chǔ)文件,還可以指定將虛擬機(jī)磁盤存放到不同的目錄上。但這里要注意的就是,當(dāng)遷移虛擬機(jī)到另外一臺(tái)主機(jī)上時(shí),如果虛擬機(jī)使用的是DHCP,那么在遷移完成后,IP地址可能會(huì)發(fā)生變更,所以最好將虛擬機(jī)的IP地址設(shè)置成為固定的形式。在兩臺(tái)Hyper-V主機(jī)上進(jìn)行遷移時(shí),如果兩臺(tái)主機(jī)的虛擬交換機(jī)名稱不同,則也可能發(fā)生遷移失敗。
下面我們就來介紹如何進(jìn)行具有共享存儲(chǔ)的實(shí)時(shí)遷移,。相對(duì)于其它遷移方式,這種遷移速度是最快的,如果虛擬機(jī)存放在共享存儲(chǔ)中,而共享存儲(chǔ)是采用SMB3.0就可以順利的遷移,如果是早期的Hyper-V版本,則無法使用具有共享存儲(chǔ)進(jìn)行實(shí)時(shí)遷移。這里還要注意,共享存儲(chǔ)必須具有Hyper-V的Administrator的權(quán)限,并設(shè)置授予完全控制。否則在遷移虛擬時(shí)候會(huì)發(fā)生錯(cuò)誤。
1. 通過GUI界面進(jìn)行遷移
步驟1 在Hyper-V管理器中,右擊選擇要遷移的虛擬機(jī),在之后彈出的快捷菜單中選擇“移動(dòng)”命令。

步驟2 在遷移“新建虛擬機(jī)”向?qū)е校c(diǎn)選“移動(dòng)虛擬機(jī)”選項(xiàng),然后單擊“下一步”按鈕。由于采用的是共享存儲(chǔ),所以就沒必要移動(dòng)虛擬機(jī)的存儲(chǔ)了。

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

步驟4 在選擇移動(dòng)虛擬機(jī)后,可以在“選擇移動(dòng)選項(xiàng)”界面中選擇如何使用虛擬機(jī)遷移項(xiàng)目,這里包括如下選項(xiàng):
“將虛擬機(jī)的數(shù)據(jù)移動(dòng)到一個(gè)位置”選項(xiàng),此選項(xiàng)將遷移虛擬機(jī)到所指定的一個(gè)位置,這里的意思是遷移快照、智能分頁、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤,將這些文件指定一個(gè)位置。
“通過選擇項(xiàng)目移動(dòng)位置來遷移虛擬機(jī)的數(shù)據(jù)”選項(xiàng),這里的意思是將遷移快照、智能分頁、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤分別指定存放的位置。這種選項(xiàng)和上一個(gè)選項(xiàng)可以手動(dòng)或者自動(dòng)選擇虛擬機(jī)的存放位置,如果無需移動(dòng)虛擬機(jī)虛擬硬盤,則指定路徑時(shí),將虛擬機(jī)的虛擬硬盤指定到源地址即可。
“僅移動(dòng)虛擬機(jī)”選項(xiàng),將虛擬機(jī)的文件除了虛擬機(jī)的虛擬硬盤之外的文件進(jìn)行遷移,遷移后的虛擬機(jī)存放在系統(tǒng)默認(rèn)的地方。
這里我們選擇“僅移動(dòng)虛擬機(jī)”選項(xiàng)。

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

命令Move-VM的語法中包括了:
-SmartPagingFile: 智能分頁處理。
-AnapshotFile :快照文件。
-VirtualMachine: 虛擬機(jī)配置文件。
-VHDs :虛擬機(jī)的虛擬硬盤。
通過Powershell命令可以將新建虛擬機(jī)從Hyper-V01主機(jī)上遷移到Hyper-V02主機(jī)上,使用的命令為:
Move-VM “新建虛擬機(jī)” Hyper-V02
可以將新建虛擬機(jī)從Hyper-V01主機(jī)上遷移到Hyper-V02主機(jī)上,并指定虛擬機(jī)的虛擬硬盤路徑在C:\TestVM,其命令為:
PS C:\>Move-VM “新建虛擬機(jī)” Hyper-V02 –IncludeStorage –DestinationStoragePath C:\TestVM
可以將新建虛擬機(jī)從Hyper-V01主機(jī)上遷移到Hyper-V02主機(jī)上。并指定智能分頁處理、快照文件、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤路徑,使用的命令為:
PS C:\>Move-VM “新建虛擬機(jī)” Hyper-V02 –VirtualMachinePath D:\TestVM\Config –SnapshotFilePath D:\ 新建虛擬機(jī)\Snapshots –SmartPagingFilePath D:\ 新建虛擬機(jī)\SmartPaging –IncludeStorage –VHDs @(@{“SourceFilePath” =“C:\ 新建虛擬機(jī)\Disk1.VHDX”; “DestinationFilePath” = “D:\ 新建虛擬機(jī)\Disks\Disk1.VHDX”}, @{“SourceFilePath” = “C:\ 新建虛擬機(jī)\Disk2.VHDX”; “DestinationFilePath” = “D:\ 新建虛擬機(jī)\Disks\Disk2.VHDX”}) #p#
四、存儲(chǔ)實(shí)時(shí)遷移
存儲(chǔ)實(shí)時(shí)遷移是將虛擬機(jī)的存放位置從一個(gè)地方遷移到另一個(gè)地方,比如可以將虛擬機(jī)的存放位置從C盤遷移到D盤,或者將虛擬機(jī)硬盤遷移到共享存儲(chǔ)上面,也可以將虛擬機(jī)在共享存儲(chǔ)中的不同LUN之間相互遷移,在遷移過程中,虛擬機(jī)不會(huì)出現(xiàn)中斷。但是由于存儲(chǔ)實(shí)時(shí)遷移包括了遷移虛擬機(jī)的快照、智能分頁、虛擬機(jī)配置和虛擬機(jī)的虛擬硬盤,所以遷移過程是比較慢的,具體速度取決于我們存儲(chǔ)網(wǎng)絡(luò)和磁盤速率。當(dāng)然,在虛擬機(jī)關(guān)機(jī)的情況下,速度要比開機(jī)時(shí)候遷移的要快。
1. 通過GUI界面進(jìn)行遷移
步驟1 在Hyper-V管理器中,右擊選擇要遷移的虛擬機(jī),在之后彈出的快捷菜單中選擇“移動(dòng)”命令。在遷移“新建虛擬機(jī)”向?qū)е校x擇“遷移虛擬機(jī)的存儲(chǔ)”選項(xiàng),由于是在同一臺(tái)主機(jī)上,就沒必要移動(dòng)虛擬機(jī)了。

步驟2 在選擇移動(dòng)虛擬機(jī)存儲(chǔ)后,可以在“選擇移動(dòng)選項(xiàng)”中選擇如何使用虛擬機(jī)存儲(chǔ)遷移項(xiàng)目,這里包括的具體選項(xiàng)有:
“將虛擬機(jī)的數(shù)據(jù)移動(dòng)到一個(gè)位置”選項(xiàng),此選項(xiàng)將遷移虛擬機(jī)到所指定的一個(gè)位置,這里的意思是遷移快照、智能分頁、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤,將這些文件指定一個(gè)位置。
“將虛擬機(jī)的數(shù)據(jù)移動(dòng)到其他位置”選項(xiàng),即通過選擇項(xiàng)目移動(dòng)位置來遷移虛擬機(jī)的數(shù)據(jù),這里的意思是將遷移快照、智能分頁、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤分別指定存放的位置。這個(gè)選項(xiàng)和上一個(gè)選項(xiàng)可以手動(dòng)或者自動(dòng)選擇虛擬機(jī)的存放位置。
“僅移動(dòng)虛擬機(jī)的虛擬硬盤”選項(xiàng),對(duì)虛擬機(jī)的虛擬硬盤文件進(jìn)行遷移,遷移后的虛擬機(jī)存放在系統(tǒng)默認(rèn)的地方。
這里我們選擇“僅移動(dòng)虛擬機(jī)的虛擬硬盤。

步驟3 在選擇要移動(dòng)的項(xiàng)目中會(huì)列出虛擬機(jī)中的所有虛擬硬盤,可以將虛擬機(jī)中的虛擬硬盤全部勾選上然后可以進(jìn)行遷移,也可以遷移其中的一些虛擬硬盤,但是不建議將一個(gè)虛擬機(jī)的硬盤遷移到不同的目錄中。這里的新建虛擬機(jī)只有1塊硬盤,我們就選擇遷移此虛擬硬盤。

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

步驟5在摘要中查看要遷移虛擬機(jī)的路徑,確認(rèn)無誤后單擊“完成”按鈕就開始遷移,整個(gè)遷移虛擬機(jī)的過程虛擬機(jī)不會(huì)出現(xiàn)中斷。

2. 通過Powershell命令進(jìn)行遷移
通過Powershell也能進(jìn)行虛擬機(jī)存儲(chǔ)的遷移,使用的命令是Move-VMStorage。首先我們先查看在Powershell中的遷移虛擬機(jī)的命令語法。

命令Move-VM的語法中包括了:
-SmartPagingFile :智能分頁處理。
-AnapshotFile :快照文件。
-VirtualMachine: 虛擬機(jī)配置文件。
-VHDs :虛擬機(jī)的虛擬硬盤。
可以將新建虛擬機(jī)存儲(chǔ)位置從默認(rèn)路徑遷移到D:\新建虛擬機(jī),使用的命令如下:
PS C:\> Move-VMStorage “新建虛擬機(jī)” –DestinationStoragePath D:\新建虛擬機(jī)
將新建虛擬機(jī)的智能分頁處理、快照文件、虛擬機(jī)配置文件和虛擬機(jī)的虛擬硬盤遷移到指定的路徑,使用的命令如下:
PS C:\>Move-VMStorage “新建虛擬機(jī)” –VirtualMachinePath D:\新建虛擬機(jī)\Config –SnapshotFilePath D:\新建虛擬機(jī)\Snapshots –SmartPagingFilePath D:\新建虛擬機(jī)\SmartPaging –VHDs @(@{“SourceFilePath” = “C:\新建虛擬機(jī)\Disk1.VHDX”; “DestinationFilePath” = “D:\新建虛擬機(jī)\Disks\Disk1.VHDX”}, @{“SourceFilePath” = “C:\新建虛擬機(jī)\Disk2.VHDX”; “DestinationFilePath” = “D:\新建虛擬機(jī)\Disks\Disk2.VHDX”}) #p#
五、非共享存儲(chǔ)的實(shí)時(shí)遷移
Windows Server 2012中的Hyper-V在虛擬機(jī)的遷移中,支持了具有非共享存儲(chǔ)的實(shí)時(shí)遷移,這樣可以大大增強(qiáng)了Hyper-V虛擬機(jī)的靈活性,在一些沒有共享存儲(chǔ)和群集的環(huán)境中,基于非共享存儲(chǔ)的實(shí)時(shí)遷移起到了重要的作用。
非共享存儲(chǔ)的實(shí)時(shí)遷移具備以下四個(gè)特性:
即使在遷移工程中遇到故障或問題,導(dǎo)致遷移失敗,也能保證有一臺(tái)可用虛擬機(jī)。
可跨群集遷移虛擬機(jī),例如我們可以從非群集的計(jì)算機(jī)遷移到群集計(jì)算機(jī)。
支持不同存儲(chǔ)類型的遷移虛擬機(jī),無需受存儲(chǔ)類型約束,不管環(huán)境是 JBOD 還是直通存儲(chǔ),又或者是 iSCSI 存儲(chǔ),都能實(shí)現(xiàn)實(shí)時(shí)遷移。
可以使用 Powershell 發(fā)起實(shí)施遷移的操作,那么就能夠?qū)崿F(xiàn)自動(dòng)化的操作。
綜上所述,非共享存儲(chǔ)的實(shí)時(shí)遷移為我們提供了低成本、高效率、靈活便捷的遷移方案,這一遷移方式能夠被用到多種應(yīng)用環(huán)境下,例如:
開發(fā)或 IT 人員能夠?qū)y(cè)試好的虛機(jī)在不停機(jī)的前提下直接遷移到生產(chǎn)環(huán)境。
在多主機(jī)環(huán)境下,如果需要進(jìn)行主機(jī)維護(hù),可以在不依賴共享存儲(chǔ)的前提下,快速、靈活的在主機(jī)之間移動(dòng)虛機(jī)。
故障檢修和硬件升級(jí),中小企業(yè)可能只有一臺(tái)服務(wù)器并通過虛擬化方式運(yùn)行著業(yè)務(wù)服務(wù)器,當(dāng)遇到硬件故障或需要更新服務(wù)器時(shí),IT顧問可以快速在筆記本上建立臨時(shí)的基于 Windows Server 2012 的 Hyper-V 主機(jī),將其加入到現(xiàn)有域中完成業(yè)務(wù)虛擬機(jī)的遷移,在完成原服務(wù)器的更換后,再遷移回去。
非共享存儲(chǔ)的實(shí)時(shí)遷移在遷移過程中虛擬機(jī)不會(huì)出現(xiàn)中斷的現(xiàn)象。

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

可以通過Powershell發(fā)起實(shí)施遷移的操作,可以采用Move-VMStorage或者是Move-VM命令,只要指定相應(yīng)的虛擬機(jī)遷移目標(biāo)存儲(chǔ)路徑,虛擬機(jī)就會(huì)遷移過去,這與之前遷移使用的命令相同。Windows Server 2012 無需共享存儲(chǔ)的實(shí)時(shí)遷移整體來講非常易用,無需過多的設(shè)置即可完成,仔細(xì)操作下來也就是幾個(gè)簡(jiǎn)單的步驟,這完全依靠強(qiáng)大的基礎(chǔ)架構(gòu)作為支撐,所以在遷移之前的Hyper-V主機(jī)中,都必須加入域環(huán)境。
本文出自 “讓"云"無處不在” 博客,請(qǐng)務(wù)必保留此出處http://mabofeng.blog.51cto.com/2661587/1294328