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