最近 Windows 2008 的虛擬化話題有越來越夯的趨勢,公司也在最近開始將 Vmware 轉換為 Windows 2008 x64 with Hyper-V 的 OS 來進行虛擬化的導入...
最近 Windows 2008 的虛擬化話題有越來越夯的趨勢,公司也在最近開始將 Vmware 轉換為 Windows 2008 x64 with Hyper-V 的 OS 來進行虛擬化的導入。
首先要虛擬化的是將之前各專案測試機進行 P2V ( physical-to-virtual 實體轉虛擬) 的流程,環境大約是這樣的:
- -- PHP4 專案測試機 (VMWARE VM):W2K3 SP2 + PHP 4 + MySQL 4
- -- PHP5 專案測試機 ( Physical ):W2K3 SP2 + PHP 5 + MySQL 5
- -- A專案測試機 (VMWARE VM):W2K SP4 + ASP + SQL2K SP4
- -- B公司專案測試機 (VMWARE VM):W2K3 SP2 + ASP.NET 2.0 SP2 + SQL 2005 Express SP2
恩恩~這樣看來只有一台是 W2K,而只有一台實體機器,其餘都是虛擬化的。 而 VMWARE 的 VMDK 檔案轉換成 Hyper-V 用的 VHD 現成的工具 – Vmdk2Vhd 轉換結果是不錯,但後面還有一些細節需要調整。在經過討論後決定 - 全部將 VM 以乾淨的系統架設吧!!
一般而言,重新安裝系統大約需要 30-45 分鐘,加上後續的設定與軟體的安裝所需約 60 - 120 分鐘,這樣算起來...取最大值計算就要花費 120 + 45 = 165 分鐘了!! 快 3 小時~那不是架設完之後一天又過了,甚至還要加班處理~人生不應該浪費在這上面啊 Orz
TigerLin 覺得一定有方法可以更省時間,開始翻閱 Hyper-V 的說明檔,在翻閱到 [新增虛擬硬碟] 時,被一段內容吸引住了~
「差異虛擬硬碟能讓您在對上層虛擬硬碟進行變更時,不需要改變該硬碟。變更儲存到磁碟之後,差異磁碟的 .vhd 檔案就會變大。 」
這段話感覺好像物件導向中「繼承」的特性,照這樣推算...被當作 Base 的 VHD 應該是無法被當作 VM 啟動的 ( 抽象類別不可被實做 )。恩恩...一切都只是猜測中,實做才是解除疑問與猜測的最好方法~GO~
首先,TigerLin 先於 Hyper-V 中安裝好一台 W2K3 SP2 + 系統常用工具 (名稱為 W2K3-Base),加上 Sysinternals 中的 NewSID 工具放到桌面上備用。安裝設定完成後先將該 Base Shutdown,並將 VM 從 Hyper-V 管理介面中移除。這裡要注意,只進行虛擬機器的移除,而不將虛擬磁碟 VHD 進行移除!不然哪來的父系磁碟給 Child 繼承呢 XD
緊接著開始進行「差異虛擬硬碟」 的建置,先在 Hyper-V MMC 視窗的右邊點選 [New] => [Hard Disk]
選擇磁碟類型的步驟中,選擇 [Differncing] ,然後按下 Next 前往下一步。
定義 VHD 的檔案名稱與放置位置,建議放置在系統分割區以外的地方,TigerLin是指定在分割區 D ( 400G 的空間可以用個夠 )
這一個步驟是最最重要的了!!選擇正確的父系磁碟~這裡使用剛剛建立好的 W2K3 SP2 的 Base VHD 來當父系磁碟。指定好之後即可直接完成了,當然,如果想看 Summary 的話可再繼續按 Next 來瀏覽。
重複這步驟 N 次後,就會多出幾個差異化的 VHD,接下來在新增 VM 的過程中,只要將 VHD 指定給該 VM 使用,即可架設好一台 VM 了 ^^
以這樣來算,原本需要 3HR * 4 = 12 HR 的架設時間,使用差異虛擬磁碟的功能只需要 3 HR (Base安裝時間) + 1.5 HR (TigerLin 設定上述環境的時間)!4 個小時就將 W2K3 的平台完全設好了!而 TigerLin 在準備考 70-642 的實驗環境也是用此方法架設,約 1-2 HR ( 三台乾淨的 W2K8 ENT) 就完成了!!
最後要記得,在架設好新的 VM 後,不要忘記使用 NewSID 進行系統 SID 更新與重新命名,可避免後面可能會發生的一些問題
什麼問題?如要加入 AD 網域控制的 VM 沒修改過 SID 的話,會發生 SID 衝突的問題的啦 :P~