Heresy 最近在工作上,一直在處理一些基礎服務的東西;而為了方便在硬體有問題的時候要復原服務,所以越來越傾向於用 Hyper-V 虛擬機器來架設需求比較低的伺服器了(例如之前的 GitLba)。
而這篇,則是一些針對 Hyper-V 的虛擬磁碟、VHD 檔案操作的筆記,算是給自己做紀錄用的了。
透過 Disk2vhd 把實體機器轉換
Disk2vhd 這個小工具程式(官網),是微軟旗下的 Sysinternals 所推出的一個把實體硬碟複製成一個 VHD 檔的工具。
透過這個工具,可以相對簡單地在 Windows 在運作的狀態下,把作業系統的硬碟,複製成一個 VHD 檔。
而這個 VHD 檔,之後可以很簡單地掛載到 Hyper-V 的虛擬機器下,當作他的系統硬碟來開機,可以很快速地將實體機器給虛擬化。
Heresy 自己測試過一台 Windows 10 x64 的 PC(使用傳統 BIOS 模式開機),透過這樣將作業系統複製成 VHD 後,的確可以恨快速地建立出對應的虛擬機器、並直接上線運作。
Optimize-VHD
VHD 這種虛擬硬碟,在建立的時候可使用「動態擴充」的形式,來讓他只在必要的時候,才占用較多的磁碟空間。
但是感覺上,在刪除了裡面的檔案後,他所占用的磁碟空間(VHD 檔的大小),似乎不會主動釋出。
而 Optimize-VHD 這個微軟提供的 PowerShell cmdlet(官方文件),則是一個可以用來針對 VHD 做最佳化的工具,可以用來減少 VHD 檔的大小。
他最基本的使用方法,就是:
Optimize-VHD -Path c:testdynamic.vhdx -Mode Full
透過這個指令,就可以將 VHD 裡面沒用掉的區塊釋出,並重新調整配置,以減少 VHD 的大小。
這邊大概就這樣了。
不過,個人目前覺得採用 Hyper-V VM 來運行服務主機最大的問題,應該還是要怎麼備份了?
雖然 Windows Server Backup 的確可以在不下線的情況下,備份整台 Hyper-V 的 VM,但是他使用上的限制感覺滿多的(一次只能備份到一個目的地),而且也很難進行異機備份(可能有,但是 Heresy 不知道怎麼弄)。
而如果要直接備份 VHD,又會碰到檔案過大,要備份很久的問題…
所以之後可能還得再認真研究一下,到底怎樣備份 Hyper-V VM 比較方便了…