在新建Hyper-v磁盤的時候 有3種選項
其中分別是 固定大小 動態擴展 和 差異(differencing,個人習慣叫 差分)
其中
固定大小是新建的時候 Hyper-v創建一個設置大小值的文件,然后才就可以使用
優點是 速度相對比較快 而且不容易產生物理上的磁盤碎片
缺點 一開始就占用了所設置值的空間 占用空間大 而且新建的時候產生的時間要很久(因為系統要填充這個虛擬磁盤)
建議用於實際生產環境
動態擴展是新建的時候只占用很小的空間(大概是4m左右吧)然后使用的時候隨着占用空間的增大跟着增長其空間
優點是 虛擬磁盤占用的空間隨着使用的增長而增長 有效提高硬盤利用率 新建速度很快
缺點 速度比較慢,而且由於是動態增長可能會在物理磁盤上產生碎片
建議用於實驗性環境
差異 這個需要一個父磁盤為基礎,差異的磁盤連接到父磁盤,然后差異的那個磁盤引用父磁盤的數據,同時保存相對於父磁盤的更改數據
其結構類似於下圖
差異磁盤建議用於很多數據是相同的情況下 把相同的數據保存為一個父磁盤 然后創建差異磁盤引用那個父磁盤的數據
很多時候 我們在使用虛擬機的時候 都要新建虛擬機 然后在里面安裝系統
而一個系統 現在的win7/8或者其他系統 都基本接近10g左右的體積,如果要多個虛擬機的情況下 這是一筆很客觀的硬盤占用
那么 我們可以使用差異磁盤的方式,先裝好一個系統,然后進行初始化封裝之后做成一個父磁盤,在新建n個差異磁盤,這樣就可以很方便的可以快速新建n個虛擬機了
說了一堆基礎的東西之后
下面說如何用差異磁盤來快速創建虛擬機
首先,先創建一個父磁盤,在里面安裝好系統(本文以ws2012為例)
先裝好系統(這個不用詳說了吧?)進入系統,然后可以給系統做一些基礎配置,比如ws2012有些人不喜歡開機跳出那個服務器管理器 可以取消
然后諸如winrar或者.net 3.5一類的常用的東西也可以安裝好來
之后使用sysprep進行系統封裝
在ws2012下按 win+x 然后a 或者其他辦法 用管理員打開命令行提示符
輸入 sysprepsysprep
然后如下圖選擇(關於sysprep的詳細介紹可以參考微軟官方的文檔http://technet.Microsoft.com/zh-cn/library/cc766049(v=ws.10).aspx)
確定之后 稍等片刻等系統清理完信息 就會自動關機 自此 父磁盤就創建好了
(雖說不用sysprep也可以差分磁盤也可以使用,但是那樣子用差異磁盤建立的多個虛擬機的SID是一樣的,如果之后要做諸如域一類的實驗的話就會有問題了,sysprep就可以清除掉那些信息
然后在下一次開機的時候就會像重裝電腦完之后那樣對電腦進行初始化設置,比如掃描硬件 新建一個新的sid等)
有了父磁盤之后,照着上面步驟創建一個差異磁盤
打開hyper-v管理器,新建-磁盤
然后跳出向導,在2個下一步之后,在選擇磁盤類型里選擇 差異
然后指定新建的差異磁盤保存位置和名字
在下一步后指定父磁盤的位置,即剛才創建的那個帶操作系統的盤的位置
至此創建好了一個差異磁盤
該差異磁盤完整的引用了父磁盤的所有數據,一開始使用的時候,跟直接使用父磁盤是完全一致的
然后該差異磁盤會保存其相對於父磁盤的差異配置,比如父磁盤里沒有qq,但是你在差異的那個磁盤的系統上裝了qq,那么差異磁盤就會保存有qq的數據
新建一個使用差異磁盤的虛擬機
新建-虛擬機
在連接虛擬磁盤那一步,選擇剛才新建的那個差異磁盤即可
每次需要一個新的系統的時候,先新建一個差異磁盤並且引用封裝好的那個父磁盤,然后在新建虛擬機的時候使用該差異虛擬磁盤即可
使用差異磁盤的注意事項
1.由於差異磁盤的父磁盤只有一個文件,當多個虛擬機使用差異磁盤的時候大家都是用這個父磁盤,需考慮硬盤io問題,所以建議父磁盤最好放在比較高速的地方,比如ssd里(就算不通過差異的話貌似這也是個相當糾結的問題)
2.一旦封裝好父磁盤之后,就不要在直接使用父磁盤來啟動,不然會破壞父磁盤封裝然后導致所有差異磁盤的引用失效
ps:虛擬機的快照其實也是利用了差異磁盤的原理
http://www.07net01.com/linux/Hyper_vzhiliyongchayicipankuaisuchuangjianduogexuniji_286541_1367838756.html