大多數(shù)虛擬機(jī)都是由虛擬硬盤(VHD)組成,而虛擬硬盤是一些大型的二進(jìn)制文件,必須對(duì)其進(jìn)行存儲(chǔ)、維護(hù)和備份。幸運(yùn)的是,大多數(shù)虛擬平臺(tái)都會(huì)根據(jù)具體的需要提供多種創(chuàng)建和管理虛擬存儲(chǔ)的方法。
在Hyper-V中,你可以輕松地創(chuàng)建新虛擬硬盤,還可以方便地管理它們的設(shè)置,將其附屬到虛擬機(jī)。Hyper-V管理控制臺(tái)提供了所有必要的工具,以便執(zhí)行一些基本任務(wù)。不過,理解這些工具以及它們的執(zhí)行結(jié)果也是很重要的。在本文中,TecgTarget中國的特約虛擬化專家Anil Desai詳細(xì)說明了創(chuàng)建和管理VHD的一些必要步驟,并提供了一些與執(zhí)行相關(guān)的建議。
創(chuàng)建虛擬硬盤
利用Hyper-V管理控制臺(tái),有很多種創(chuàng)建新VHD的方法。在創(chuàng)建一臺(tái)新的虛擬機(jī)時(shí),最常見的方法可能是使用新虛擬機(jī)向?qū)ё詣?dòng)創(chuàng)建、附屬一個(gè)VHD。你也可以利用Hyper-V管理控制臺(tái)的新虛擬硬盤向?qū)Вㄒ妶D1)手動(dòng)創(chuàng)建新VHD?;蛘?,直接用 WMI(Windows Management Instrumentation)API和Windows PowerShell執(zhí)行必要步驟(在隨后的指南中將會(huì)涉及到腳本和自動(dòng)化)。
圖1:利用新虛擬硬盤向?qū)?/font>
在創(chuàng)建VHD的過程中,最重要的一步是選擇創(chuàng)建VHD的類型。下面是與VHD類型選擇相關(guān)的注意事項(xiàng):
動(dòng)態(tài)擴(kuò)展磁盤(Dynamically expanding disks):默認(rèn)類型的VHD初始狀態(tài)是在物理磁盤上的,空間很小。隨著數(shù)據(jù)的寫入,文件會(huì)越來越大。在向?qū)Ш竺娴牟襟E中會(huì)定義虛擬磁盤的大小,所以子操作系統(tǒng)能知道其總空間的最大值。這種類型的VHD對(duì)磁盤空間的利用最有效,但不提供最佳性能。主機(jī)文件系統(tǒng)碎片可能會(huì)導(dǎo)致非最優(yōu)讀取和寫入操作,而且如果不對(duì)VHD文件的物理空間增長進(jìn)行監(jiān)測(cè),還有可能用完主機(jī)服務(wù)器的物理空間。
固定大小磁盤(Fixed size disks):固定大小的硬盤在主機(jī)中占用的空間大小就是磁盤空間的最大值。因此,初始創(chuàng)建時(shí)需要的時(shí)間更長。不管子操作系統(tǒng)是否需要VHD所分配的那么大磁盤空間,固定大小VHD都已占用了主機(jī)空間,所以它們的性能會(huì)更好。因?yàn)?,它們是存?chǔ)在主機(jī)存儲(chǔ)系統(tǒng)的一個(gè)共同區(qū)域的。
差分磁盤(Differencing disks):這種類型的VHD用于創(chuàng)建父子關(guān)系結(jié)構(gòu)。最常見的用法是創(chuàng)建一個(gè)為多臺(tái)虛擬機(jī)所共享的底層操作系統(tǒng)(base OS)VHD(必須是只讀的),還有創(chuàng)建差分磁盤儲(chǔ)存所有變更文件。創(chuàng)建這種類型VHD的主要規(guī)則是所有父盤都必須是只讀的,否則從它衍生出來的子VHD 就會(huì)無效。這種等級(jí)關(guān)系有時(shí)候會(huì)很復(fù)雜,可能導(dǎo)致一些性能和管理方面的問題。不過,如果使用得當(dāng),它就是一個(gè)很強(qiáng)大的功能。
在確定好VHD類型之后,你需要提供VHD的物理文件系統(tǒng)位置。通常,主機(jī)上任何可以訪問的存儲(chǔ)空間都可以作為VHD的物理文件系統(tǒng)位置,包括直連存儲(chǔ)和基于塊的網(wǎng)絡(luò)存儲(chǔ)(iSCSI和光纖通道)。
新VHD的默認(rèn)大小為127GB,不過你可以設(shè)置為1GB和2040GB(大約2TB)之間的任意大小。請(qǐng)記住,子操作系統(tǒng)必須支持你所設(shè)置的磁盤大小,以便可以利用其所有的空間。對(duì)現(xiàn)在的各種操作系統(tǒng)來說,磁盤大小倒不是一個(gè)問題。不過,如果你要是準(zhǔn)備在MS-DOS VM中啟動(dòng)原來的Doom,這就是一個(gè)問題了。在磁盤配置一步中,還有一個(gè)選項(xiàng)可以復(fù)制主機(jī)服務(wù)器上的現(xiàn)有物理磁盤的全部內(nèi)容。這個(gè)功能對(duì)手動(dòng)P2V轉(zhuǎn)換很有幫助,在使用與主機(jī)直連的SAN或iSCSI卷時(shí)也很有用。
維護(hù)編輯虛擬硬盤
和IT架構(gòu)的其它大多數(shù)方面一樣,VHD設(shè)置也可以更改。Hyper-V管理控制臺(tái)提供了非常方便快捷的管理方法,你可以用虛擬硬盤向?qū)Ь庉嫻芾憩F(xiàn)有虛擬硬盤。第一步是找到需要操作的特定VHD文件。圖2顯示了可以對(duì)動(dòng)態(tài)擴(kuò)展虛擬硬盤進(jìn)行的3個(gè)操作。
圖2:使用虛擬硬盤向?qū)Ь庉?/font>
壓縮操作用于收回虛擬硬盤中的未使用空間。這個(gè)選項(xiàng)可用于動(dòng)態(tài)擴(kuò)展虛擬硬盤,當(dāng)VHD中已添加了大量數(shù)據(jù)時(shí),此功能最有用。壓縮操作完成后,在主機(jī)中的文件物理大小會(huì)減小。子操作系統(tǒng)不會(huì)識(shí)別任何差別,因?yàn)榇瞬僮鞯乃袆?dòng)作都不會(huì)改變文件分配表。
轉(zhuǎn)換操作可以讓你將動(dòng)態(tài)擴(kuò)展VHD與固定大小VHD相互轉(zhuǎn)換。出于性能考慮或是要回收主機(jī)服務(wù)器上可用磁盤空間時(shí)可以進(jìn)行這個(gè)操作。請(qǐng)記住,有些操作會(huì)產(chǎn)生大量的磁盤輸入或輸出,所以不要在主機(jī)很忙的時(shí)候進(jìn)行這些操作。
VHD擴(kuò)展
虛擬硬盤向?qū)Ь庉嬁梢宰屇銛U(kuò)展現(xiàn)有VHD的大小。如果你設(shè)置VHD大小時(shí)低估了你在特定邏輯卷中所需數(shù)據(jù)的總大小,那么這個(gè)功能就非常方便。在擴(kuò)展VHD大小時(shí),子操作系統(tǒng)會(huì)把新添的空間作為未分配、未格式化的磁盤空間。根據(jù)子操作系統(tǒng)的能力,你可以擴(kuò)展現(xiàn)有的邏輯卷,或者在空閑空間創(chuàng)建一個(gè)新的邏輯卷。在Windows中,你可以利用磁盤管理工具或Diskpart命令行實(shí)用程序執(zhí)行這個(gè)操作。當(dāng)然,如果可以在子操作系統(tǒng)下創(chuàng)建一個(gè)新卷,你也可以創(chuàng)建并附屬一個(gè)新的VHD。
請(qǐng)記住,在擴(kuò)展VHD時(shí)可能有幾個(gè)陷阱需要注意。首先,VHD所附屬的VM必須是關(guān)閉的(它不能處于備用狀態(tài))。還有,如果你為VM創(chuàng)建了快照,VHD擴(kuò)展之后所有原來的快照將會(huì)失效。如果原有快照失效會(huì)有問題,那么可以考慮為VM附屬新的VHD以獲得更大存儲(chǔ)空間。此外,還可以擴(kuò)展固定大小VHD(但不能進(jìn)行壓縮操作)。
總結(jié)
總的來說,Hyper-V提供了一個(gè)靈活的虛擬存儲(chǔ)架構(gòu),平衡了主機(jī)磁盤空間、性能和可操作性。