在 Windows Server with HyperV 上我們可以通過內置的 HyperV 管理器方便快捷的上手操作和管理 HyperV 虛擬機較之前的版本在 HyperV 管理器中當我們要打開一個已經存在了的 HyperV 虛擬機時你會不知所措而無從下手難道 HyperV 無法實現打開已經存在的虛擬機麼?或者是必須要重新建立麼?事實並非如此在 HyperV 中微軟從新進行了設計理念上有所修改原來的打開功能賦予給了導入gOxiA 認為 HyperV 管理器更像一個管理容器所以使用導入這個詞可能更為形象准確不能否認微軟在 HyperV 的開發設計方面更加的嚴謹了!
下面假設我們創建了一個虛擬機之後因為某些原因需要從管理器中刪除這台虛擬機於是我們不加思索將其刪除後(從 HyperV 中刪除虛擬機並不會完全刪除虛擬機涉及到的文件)當發現還需要將該虛擬機加入到 HyperV 中時該如何挽救呢?我們只能重新建立一個虛擬機並加載已經存在的虛擬機磁盤文件但是也許在一些規定嚴格的環境中這樣做可能會導致一些不可預料的錯誤畢竟新建立的虛擬機重新產生了ID等唯一性的標示信息
今天 gOxiA 將與大家分享 HyperV 的導出導入功能通過對其學習和了解我們將正確掌握與之相關的操作及方法
在開始之前我們先了解一下在什麼場景中會使用到導出和導入功能首先正如 gOxiA 之前所提到的場景我們也許只是暫時的將已經創建的虛擬機脫離 HyperV 管理此外當我們要將虛擬機遷移到另外一個磁盤分區卷或其他存儲位置時當我們需要備份虛擬機的配置時當然可能還有很多場景 gOxiA 還沒有想到不過就這幾點來講我們已經能夠深刻認識導出和導入功能在 HyperV 中所處的重要地位
現在我們先通過一系列的操作實踐來認識學習 HyperV 中的導出和導入功能這裡以 gOxiA 的 HyperV 測試環境下的 WDS 虛擬機為案例這台虛擬機唯一特殊之處在於我使用了差異磁盤我們可以從下圖了解到本虛擬機的 VHD 保存在 E:HyperV MachinesWDSWDSvhd通過磁盤檢查可以了解到它所使用的父存盤是 D:HyperV MachinesVirtual Hard DisksWindowsServerST_x目錄下(可能由於路徑過長HyperV 管理器沒能完全顯示出來路徑)VHD 的文件名為 WindowsServerST_xvhd在虛擬硬盤屬性窗體中再單擊檢查我們可以獲得父磁盤的詳細信息(圖)
首先選中虛擬機 WDS然後鼠標右鍵單擊後出現菜單列表選中導出(圖)
彈出的導出虛擬機向導中我們可以根據實際需要進行虛擬機配置的導出或完全的虛擬機導出這裡我先進行了虛擬機配置的導出測試通過浏覽選擇要導出配置的保存位置然後單擊導出按鈕完成整個導出速度很快也就是秒左右!(圖)
打開資源管理器定位到我們之前所要保存的位置看到 HyperV 管理器導出了如下圖所示的文件一個名為 config 的 xml 文件一個以唯一標示符命名的目錄和以擴展名為exp的文件(圖)
通過這個導出的虛擬機配置我們可以輕松的將之前從 HyperV 管理器中刪除的虛擬機恢復回來實際上通過仔細觀察你會發現雖然在刪除虛擬機時系統會提示不會刪除虛擬機文件但是實際上如果一但執行了刪除操作那麼虛擬機所在目錄下的以唯一標示符命名的目錄和以擴展名為exp的文件會自動被刪除掉(這個目錄和文件通常保存在Virtual Machines目錄下)
接下來我們再嘗試導出完整的虛擬機步驟與之前不同的是在向導頁面不要復選僅導出虛擬機配置(圖)
之後我們在 HyperV 管理器中的虛擬機列表中看到 WDS 這台虛擬機的操作狀態當前為正在導出的進度(圖)
現在我們重新打開導出後的目錄會發現目錄結構所有變化如下圖所示在 Virtual Hard Disks 目錄下存在兩個 VHD 文件一個是為虛擬機配置使用的 WDSvhd另一個是父磁盤HyperV 的導出很嚴謹很讓我放心!呵呵打開 configxml 看看裡面的內容沒有什麼特殊之處記錄的是這台虛擬機導出前磁盤的相關配置信息(圖)
接下來我們測試一下導入功能在左邊的服務器列表窗體中先選中該 HyperV 服務器鼠標右鍵單擊並選中導入虛擬機(圖)
在向導中我確定了要導入的虛擬機位置並復選了重復使用舊虛擬機 ID然後單擊導入(圖)
出錯如下圖所示!因為當前管理器中已經存在這台虛擬機而且在導入時我復選了重復使用舊虛擬機 ID所以出現這個錯誤是正常的(圖)
現在我們重新執行導入操作(圖)
由於沒有復選重復使用舊虛擬機 ID所以這次導入成功但是給出了警告信息如下圖所示!(圖)
運行事件查看器定位到 HyperVVMMS 下的 Admin 事件日志看一看到具體的錯誤信息從下圖中我們看到這個錯誤信息來源於虛擬機的網絡配置(圖)
進入 HyperV 管理器打開先前導入的這台虛擬機配置頁面我們發現網絡適配器沒有配置這個問題的出現還是與當前 HyperV 中包含有原虛擬機導致的我們只需要重新配置網絡適配器即可不過在生產環境下我們還是需要注意如果兩台虛擬機都同時打開運行必然會出現問題(圖)
ok下來我們來看看導入後的虛擬機磁盤的配置變化從圖中我們可以看到當虛擬機導入後HyperV 會根據導出的配置信息重新調整磁盤位置即分配的磁盤所在路徑已經變為導出後的最終路徑(圖)
至此整個的導出導入操作就算完成了前面 gOxiA 提到過導出後的配置文件configxml 及唯一標識符命名的目錄和以擴展名為exp的文件不知大家是否注意到在導入虛擬機時向導中會有一段警告文字導入之後導入的虛擬機將使用此導入文件夾下的文件無法再次導入此文件夾那麼 HyperV 是如何識別當前虛擬機目錄是否具備導入的信息呢?為了驗證導入機制gOxiA 又進行了如下的測試導出完整的虛擬機再進行導入之後進行目錄前後的變化對比然後再刪除虛擬機進行對比發現除了是否具備 VHD 虛擬磁盤文件以外 configxml 及以唯一標示符命名的目錄和以擴展名為exp的文件是能否導入 HyperV 的關鍵缺一不可!否則即會出現下面的錯誤(圖)
總結當導入虛擬機後 HyperV 會自動刪除導出後產生的 configxml 文件當從 hyperV 中刪除虛擬機時會自動刪除以唯一標識符命名的目錄和以擴展名為exp的文件使用記事本打開擴展名為exp的文件裡面紀錄了詳細的虛擬機配置信息通過以上綜述希望大家能夠掌握在何種場景中該如何正確使用 HyperV 的導出和導入功能
原文
From:http://tw.wingwit.com/Article/os/fwq/201311/10318.html