Code Section

Tuesday, July 31, 2018

VMware 小技巧 - 縮小 Workstation 的虛擬機 Virtual Disk 來釋放磁碟空間

VMware Workstation 可以安裝在 Windows 或 Linux 上,可用來建立各種作業系統的 Guest OS ,做 Lab 使用非常方便,從以前到現在的版本 14.1,一路走來應該超過 15 年有囉,算是相當老牌且執行穩定的虛擬軟體。

在使用 VMware Workstation 在 New Virtual Machine 新建虛擬機時,如果是選擇 Custom (advanced),在過程中精靈會詢問 Virtual Disk 的建立格式:

Virtual Disk 選項說明:
(勾選) ✔ Allocate all disk space now.:建立為 Thick Virtual Disk,建立速度較慢,需等待數十秒至數分鐘的建立時間。
(不勾) □ Allocate all disk space now.:建立為 Thin Virtual Disk,建立速度較快,不需等待。

Thick Virtual Disk:會一開始就取得 disk size 的磁碟空間,設定的數字是多少,就佔多大的磁碟空間。
Thin Virtual Disk:一開始先不取得磁碟空間,待 Guest OS 真的要放入資料時再向 Host 要求磁碟空間。
因為 Workstation 上的環境多半為測試性質,不需要太好的寫入效能,通常建議採用 Thin Virtual Disk 會比較恰當,可節省磁碟空間,也可以用來建立較多個 VM 及 Virtual Disk。

Store virtual disk as single file:存為單一個 VMDK。
Split virtual disk into multiple files:存成多個 VMDK,每個檔案最大為 2GB,寫滿 2GB 之後再產生一個新檔案繼續寫入。這個選項當初應該是為了 FAT32 檔案格式,單檔無法超過 2GB 而生,不過在 Win7 之後普遍是採用 NTFS 或 exFAT 格式,FAT32 已經較少使用,而且對於空間較大的磁碟,Win7 在格式化選項也會把 FAT32 藏起來,所以現在比較少會遇到這個問題。

今天來討論的是如何善用磁碟空間,讓你可以在有限空間內,建立更多個 Virtual Machine。主要是針對 Thin Virtual Disk 才會有壓縮 (Compact) 或清理 (Clean Up) 功能,Thick Virtual Disk 並不提供,因此 Thick 種類不在此次討論內。

Virtual Disk 狀態說明:
Current size:目前佔用的實際容量。
System free:存放此VM及虛擬硬碟的磁碟可用空間。
Maximum size:可存放的最大容量,也就是在建立虛擬硬碟時指定的容量。

Thin Virtual Disk 的特性,是在 Guest OS 寫入資料時,才會真實佔用 Host 的磁碟空間,但在 Guest OS 刪除資料時,並不會自動歸還 Host 的磁碟空間。所以我們的目的,就是縮小 Virtual Disk 的 Current size,讓它與 Guest OS 內存放的真實資料容量接近,以節省 Host 不必要的磁碟空間消耗。

要釋放 Thin Virtual Disk 佔用的磁碟空間有兩種方法,注意虛擬機必須是 Power Off 狀態:
(1) Defragment (重組虛擬硬碟) >>> Compact (壓縮虛擬硬碟)。
(2) VM >>> Manage >>> Clean Up Disks...,會提供使用空間 (used by this VM)及可回收空間 (Reclaimable space)資訊,確定要做按下 Clean Up now 就會開始進行。
[註1] 方法(2) 只適用 Windows Guest OS,且需安裝 VMware Tools。
[註2] 在更久之前的版本 (before VMW 8.x),VM 要在 Power On 狀態,先在 Guest OS 內做磁碟重整後,再利用 VMware Tools 來進行 Shrink disk,但這個舊方法已被淘汰,而且通常只有 Windows 才有提供磁碟重組工具。

方法(1) Defragment → Compact:

方法(2) Windows Guest OS 做 Clean Up Disks:

方法(2) Linux Guest OS 沒有 Clean Up Disks 功能:

Clean Up Disks 是在 VMware Workstation 9 之後的新功能,包括 VMware Fusion 及 VMware Player 也有提供,幾個原因推薦大家使用:
(1) 提供預估可回收空間 (Reclaimable space)這點我覺得很貼心,可以讓你判斷效果後再決定是否要做。
(2) Clean Up Disks 的壓榨效果會比 Compact & Shrink 更好,而且連同 Snapshots 也會一併壓榨。
(3) Clean Up Disks 可直接對現有 VMDK 進行處理,不需要額外磁碟空間做 Virtual Disk 的搬移運作。
(4) 稍嫌可惜的是僅適用於 Windows Guest OS。
(詳細可看<<參考資料>>的 VMware Documentatoin 說明)


<<參考資料>>
Clean Up a Virtual Hard Disk on Windows Hosts - VMware Workstation Documentation Center

How to Shrink a VMware Virtual Machine and Free Up Disk Space

幫 VMware 9 磁碟檔減肥 & 阿伯ㄚ的部落格 - lan14 # 天空部落 TIAN #

Defragmenting and shrinking VMware Workstation virtual machine disks (2019649)

Reduce the Size of Virtual Machine Disk in VMware Workstation


〈本文同步刊載於痞客邦部落格〉
VMware 小技巧 - 縮小 Workstation 的虛擬機 Virtual Disk 來釋放磁碟空間 @ 狸貓先生愛廢話講堂 :: 痞客邦 ::

2 comments:

  1. Reclaimable space 這個功能很優
    我在我的Mac 跑了一下 清空了30~40%空間
    ��

    ReplyDelete
    Replies
    1. Clean Up Disks 也幫我要回不少空間,讓SSD的剩餘空間大一點,有助於維持運作速度。

      Delete