作者 主題: VHD 差異硬碟之應用  (閱讀 12391 次)

0 會員 與 1 訪客 正在閱讀本文。

threeseconds

  • 俺是博士!
  • *****
  • 文章數: 1368
    • 檢視個人資料
    • http://www.3sec.tw
VHD 差異硬碟之應用
« 於: 2009-01-04 23:41 »
以前我一直搞不太懂差異硬碟到底是幹啥用的,直到看到 MCSE Lab 之後才恍然大悟,
「原來要這樣玩啊~!!」


微軟的各種虛擬化環境,包含桌面虛擬化的 Virtual PC、伺服器應用的 Virtual Server,
以及最新的 Hyper-V,都一樣用 .vhd 做為硬碟格式,所以以下就不區分環境了。

VHD 是微軟虛擬化技術中的硬碟格式,就如同其他競爭廠商的虛擬硬碟技術一樣,
一個 *.vhd 代表一個磁碟機(Disk),一樣有動態延伸、固定大小、連結實體磁碟機等三種型態,
另一個比較特別的就是「差異硬碟」,這到底是做啥用的呢?

應用在桌面測試環境的 Virtual PC,經常要不斷的回溯系統,這一點我是覺得比 VMware Workstation 弱了很多,
但深入瞭解差異硬碟後,就會瞭解微軟是用比較另類的方法來處理這問題,
差異硬碟是由父硬碟衍生而來的,適用於「多台 GuestOS 相同系統」的環境下,
例如建立一個 Active Directory Lab,需要多台 Windows XP 與 Windows Server 2003,
這時候我們只需要先分別建立一顆 WinXP 與 Win2003 的硬碟,做為父系,
然後再用差異硬碟做出多個不同的 WinXP 與 Win2003,就能建立好測試環境。

建置環境用 Virtual PC、Virtual Server、Hyper-V 都可以,
不過這邊以 Virtual PC 2007 SP1 比較順手,其實原理都一樣。
做法如下:
1. 先建立一個 Guest OS,設定檔為 WinXP,硬碟配置選動態延伸或固定大小都可以,
但容量一定要預先配置好足夠容量,因為衍生的差異硬碟是無法變更容量的。
硬體配置隨意,反正灌完就要拆掉了。
2. 安裝完 Guest OS 裡的 WinXP 以及 Additions,安裝過程應該不用說明了吧?
由於這個 OS 是要拿來做為範本的,所以都用最標準正規的方法安裝。
(我個人是用 XP SP3 不含任何 hotfix,以保持環境最單純)
3. 全部安裝完畢,得到了一個「安裝好 WinXP 的硬碟機 .vhd」,
重點來了,把組態檔 .vmc 刪除!
因為待會要用這顆父硬碟產生新的差異硬碟,所以這顆父硬碟應該保持唯讀狀態,
用實體電腦來比喻,就是說把這台電腦整個拆掉,只留下一顆硬碟機,不再用這顆硬碟開機。

如果測試環境還需要 Win2003,就用同樣的方法做出一顆「安裝好 Win2003 的硬碟機 .vhd」
這樣就完成準備工作了!

建置 AD 測試 LAB 時,依照實際所需的 WinXP 與 Win2003 數量,
新增多顆虛擬硬碟,硬碟來源連結到剛剛製作出來的父硬碟,
這樣就可以一次產生大批完全相同配置的 Client PC 與 Server,
有個小細節要注意,因為這裡產生的全都是複製出來的硬碟,所以全部 Windows 的 SID 都相同,
必須用 NewSID 或 Sysprep 處理一下,否則建起 AD 會抓狂的。
接下來就可以進入 LAB 開始建立 DC 了!

使用差異硬碟的好處是,多台相同環境的電腦,不需準備相同數量的 .vhd,會佔用大量實體硬碟空間,
差異硬碟只會佔用「相異點」的硬碟容量,
例如父硬碟安裝 WinXP,父硬碟的 .vhd 就佔用 2GB,
差異硬碟的 Guest OS 中額外新安裝了 100MB 的軟體,
那麼差異硬碟的 .vhd 就會只佔用 100MB,而不是 2.1GB。
另一個好處則是可以快速佈署大量相同配置的 Guest OS。

微軟網站上也很大方的提供了大量的預先配置的 .vhd 免費下載,例如這個
Windows Server 2008/SQL Server 2005 Enterprise Edition VHD 虛擬機器映像檔案
不會灌 Win2008?不用灌,把這個帶回家,直接幫你配置好 Win2008 + SQL2005 + VS2005,
只要輸入序號並啟用就一切 ok 了,
當然,這個就一定要用差異硬碟來佈署,才能確保父硬碟完全不被異動,
而差異硬碟則可佈署多台電腦。
還有很多....



本文轉自本人網站
« 上次編輯: 2009-01-04 23:57 由 threeseconds »
本文作者為天線寶寶,長期關注兒童智力發展狀態。

yousee

  • 訪客
回覆: VHD 差異硬碟之應用
« 回覆 #1 於: 2009-01-05 10:54 »
這個功能我用了快半年了
但用久後發現兩個困惱
1. 搬移時, 另一台vm server hdd 分割要相同
      就是另一台 母碟 & 子碟  所在 磁碟代號 要跟原來的一樣
2. 多個子碟 對應一個母碟, 如果子碟彼此間 "差異" 大的話,
    那 hdd 存取就會飆高! loading 就很大!

1. 好解決,  2 就困難了, hdd 轉速要高才能解決!

嘆~~~
有一好沒全好!


湯包

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 923
  • 性別: 男
    • 檢視個人資料
    • 湯包的部落格
回覆: VHD 差異硬碟之應用
« 回覆 #2 於: 2009-01-06 10:15 »
這樣聽起來感覺差異硬碟的做法,感覺很像SnapShot。
從Snapshot時間斷點開始記錄跟主硬碟差異的部份,
所以當使用越久,系統要去比對差異就會忙,效能就越低!
人必先置於死地而後生
科技來自人性
想像是科技之母

yousee

  • 訪客
回覆: VHD 差異硬碟之應用
« 回覆 #3 於: 2009-01-06 11:45 »
是啊!
只能當"用完即丟"用!

threeseconds

  • 俺是博士!
  • *****
  • 文章數: 1368
    • 檢視個人資料
    • http://www.3sec.tw
回覆: VHD 差異硬碟之應用
« 回覆 #4 於: 2009-01-09 12:27 »
差異硬碟比較適合用在"多台小量差異的GuestOS"上,確實會有上述的問題存在,
如果有差異較大的,或者是應用在正式的虛擬伺服器上,
建議用傳統 Ghost 的方法,多複製幾顆父硬碟出來用,
比較不會大量 I/O 原有的父硬碟。
« 上次編輯: 2009-01-09 12:39 由 threeseconds »
本文作者為天線寶寶,長期關注兒童智力發展狀態。