2024年12月26日 星期四

差異式虛擬硬碟概念





前言

現在電腦網路時代進入了虛擬化的世界,伺服器虛擬化、網路設備虛擬化…讓我們不得不去習慣虛擬化的世界。講一個概念,要記得虛擬化基本上必須要有實體的硬體存在,並不是憑空想像就會有東西出現的。先認識以下兩個名詞:

  • 模擬 – 使用軟體寫出程式當成硬體來使用,實際上,硬體並不存在。
  • 虛擬 – 拿別人的硬體當成自己的硬體來使用!實際上,真的有硬體存在。

虛擬硬碟 Virtual Hard Disk

今天來聊一聊虛擬硬碟。虛擬硬碟種類有三種:

  1. 固定大小:會在實際硬碟直接佔空間大小。
  2. 動態擴充:資料存入硬碟後,才真的去佔硬碟空間。
  3. 差異式虛擬硬碟:拿別人的(父系)硬碟當成自己的硬碟用,將有差異之部分,寫入自己的硬碟中。

今天講的重點在”差異式虛擬硬碟”的做法與狀況。


我們直接先來做出一個”動態擴充”的虛擬硬碟,並放入兩個檔案進去。此虛擬硬碟,要當成”父系硬碟”,來給”差異式虛擬硬碟使用”。

  1. 開啟”磁碟管理” ➔ 選”動作” ➔ ”建立 VHD”,如下圖:
  2. 將位置設在 c:\temp\D1.vhdx,虛擬硬碟大小為4GB,虛擬硬碟格式為 VHDX,虛擬硬碟類型選”動態擴充”,如下圖:
  3. 接著就可以到 c:\temp\ 看到多出一個虛擬硬碟檔案,名稱為 D1.vhdx,如下圖:
  4. 然後,在”磁碟管理”工具,將此虛擬硬碟做”初始化磁碟”,做成簡單磁碟區,格式化成 NTF格式,並給磁碟區代號為 D:
  5. 開檔案總管,在 D:\ 建兩個檔案(File1.txt, File2.txt)
  6. 接著在”磁碟管理”工具中,中斷此虛擬硬碟連結。
  7. 將此虛擬硬碟檔 c:\temp\D1.vhdx,設定為”唯讀”。

做完以上的父系硬碟,接著要做出”差異”式虛擬硬碟,要做這種差異式硬碟的方法必須得使用”Hyper-V 管理員” 工具

  1. 開啟”Hyper-V 管理員” ➔ 選到”動作” ➔ ”新增” ➔ ”硬碟”。如下圖:
  2. 點選 “VHDX”,選”下一步”。再點選”差異”,選”下一步”。如下圖:
  3. 指定差異式硬碟之檔案名稱,例如: c:\temp\D2.vhdx
  4. 指定父系虛擬硬碟的名稱。例如: c:\temp\D1.vhdx
  5. 完成
  6. 在 c:\temp\ 就出現一顆名稱為 D2.vhdx 的”差異式硬碟”了!!

    這 D2.vhdx差異式硬碟,就是拿 D1.vhdx 當成父系硬碟,所以開啟”磁碟管理”將 c:\temp\D2.vhdx直接掛載到電腦中。如下圖:


    差異式硬碟(D2.vhdx),掛入電腦中,當成 D:\ 磁碟。


    開啟”檔案總管”,找到 D:\ 就會看到有兩個檔案(File1.txt, File2.txt)存在。這兩個檔案就是在父系硬碟中的檔案。




接下來,我們對 D:\ 做任何增加檔案、修改檔案、刪除檔案的動作等等,所有之行為一律會記錄在 D2.vhdx 中,對父系硬碟(D1.vhdx)完全不會有任何影響。 值得注意提醒的是:只要”父系硬碟”資料受到任何修改,那麼指向它的”差異式硬碟”會一律掛掉,抓不出資料。所以當成父系的虛擬硬碟檔,才需要設定成”唯讀”,以防止資料受到修改。


結語

“差異式虛擬硬碟” 是一個相當棒的概念,它可以用在快速佈建虛擬機器。先建一台虛擬機器,並安裝好作業系統在一顆虛擬硬碟中,再執行 system prepare將唯一資訊(例如:SID)抽掉,然後將它當成父系硬碟(設定成”唯讀”),那麼再佈建出其他虛擬機器,將硬碟做成”差異式硬碟”,指向這個”父系硬碟”,就等同該台虛擬機器已經安裝好作業系統了!在其他方面,像是虛擬機器的檢查點(快照),也是利用”差異式硬碟”的技術來完成的。另外像是容器(Container)的Container Layer(沙箱層),也是類似使用”差異式硬碟”的概念來形成的喔!



您可在下列課程中了解更多技巧喔!


相關學習資源

0 意見:

張貼留言