碼迷,mamicode.com
首頁 > 系統相關 > 詳細

VMware虛擬機,從厚置備改成精簡置備,并減小硬盤的實際占用空間

時間:2018-04-08 12:11:01      閱讀:6777      評論:0      收藏:0      [點我收藏+]

標簽:除了   虛擬磁盤   inux   新建   已用空間   img   windows系統   官方   parted分區   

工作中由于前期規劃不足,導致磁盤空間分配較大,而且是厚置備。后期不再需要時,無法把用不到的空間釋放出來,造成空間浪費。經過摸索和實驗驗證,總結出來一套方法。

風險提示:這個方法在我的環境中驗證通過了,但不代表適用于所有情況,生產環境中務必慎重!

環境:Esxi 6.5,vCenter 6.5 U1e,Ubuntu 16.04

由于初始分配給Ubuntu 16.04虛擬機的硬盤空間是2T,后期數據量加大需要增加空間時,發現分區表不是GPT,無法超過2T。

技術分享圖片

導致已在vCenter里給虛擬機增加的空間浪費,也就是下圖中的這個數字,只能調高,不能調低。

技術分享圖片

VMware官方對于這種情況提供了一種解決辦法:通過遷移,改變虛擬磁盤格式,從“厚置備”改成“精簡置備”,從而減小實際占用的空間。

技術分享圖片                       

官方網址:https://kb.vmware.com/s/article/2014832

技術分享圖片 

通過官方的解決辦法進行處理,如下圖所示,結果喜憂參半

 技術分享圖片

喜的是實際占用的空間確實減小了,憂的是減小的空間僅僅是未分配的unallocated這部分,前面已分配的空間,雖然文件已經刪除了,但并沒有減小。

 

通過查找各種資料,想到了一種方法,通過如下實驗進行驗證。

1.給虛擬機分配40G的厚置備硬盤空間并安裝系統,安裝完畢后不進行任何操作,直接關機。

 技術分享圖片                      

2.關機后遷移虛擬機,虛擬磁盤格式從“厚置備”改成“精簡置備”,已用空間減小到6GB,說明在沒有寫入數據的情況下,通過官方的方法是可以減小實際占用空間的。

 技術分享圖片

3. 再次遷移虛擬機,把虛擬磁盤格式從“精簡置備”改成“厚置備”,然后拷貝大文件把硬盤空間填充滿。

技術分享圖片  

技術分享圖片

4.把大文件刪除,關機后遷移虛擬機,虛擬磁盤格式從“厚置備”改成“精簡置備”。可以看到,雖然刪除了大文件,但通過遷移的方式也僅僅能回收沒有寫入過數據的很小的一塊空間。

 技術分享圖片

技術分享圖片

5.用SystemRescueCD啟動虛擬機,減小/分區的大小

 技術分享圖片

fdisk –lu              #查看磁盤分區情況

 技術分享圖片

e2fsck –f /dev/sda1        #檢查文件系統

 技術分享圖片

resize2fs /dev/sda1 10G        #把文件系統大小調整為10G

技術分享圖片

parted /dev/sda                                   #使用parted調整硬盤分區,注意是/dev/sda

(parted)resizepart 1 12G                    #調整分區大小,1代表/dev/sda1

#注意:parted分區大小計算方式不同,所以多留一些空間防止數據丟失

 技術分享圖片

resize2fs /dev/sda1         #調整文件系統大小,使之與分區大小相匹配

 技術分享圖片

6.重啟,從本地硬盤啟動,查看磁盤分區大小,可以看到/dev/sda1已經被壓縮了。 

 技術分享圖片

技術分享圖片

7.在未分配的空間新建一個分區,然后全部置零

 技術分享圖片

dd bs=64k if=/dev/zero of=/dev/sda2           #bs表示每次寫的塊的大小

 技術分享圖片

在Gparted中可以看到File System變成了unknown

 技術分享圖片

刪除/dev/sda2,使之變成unallocated

 技術分享圖片

8.關機后遷移虛擬機,把虛擬磁盤格式從“精簡置備”改成“厚置備快速置零”。

之所以要多做這么一步,是因為上面的操作只是在把操作系統里把未使用的空間置零了,虛擬機并不知道,因此需要通過這步操作,讓虛擬機把未使用的空間也置零。

 技術分享圖片

9.再次遷移虛擬機,把虛擬磁盤格式從“厚置備”改成“精簡置備”,可以看到已用空間減小到10GB,也就是實際占用的空間確實減小了。

 技術分享圖片

通過上述實驗,基本上驗證了虛擬機回收空間的標準:

  1. 分配后尚未寫入過數據;
  2. 分配后寫入過數據,但在操作系統和虛擬機里均進行過置零操作。

以上方法回收的是Linux系統的空間,理論上Windows系統也可以通過這個方法回收,只是用到的軟件不同。

由于這臺占用了6T空間的虛擬機馬上要遷移到物理機了,空間有限的問題不是很緊迫,因此等到遷移完成之后再測試,后面再把操作結果補充上來。

前期的規劃很重要,沒做好規劃,后期就要浪費很多時間來填坑。

VMware虛擬機,從厚置備改成精簡置備,并減小硬盤的實際占用空間

標簽:除了   虛擬磁盤   inux   新建   已用空間   img   windows系統   官方   parted分區   

原文地址:https://www.cnblogs.com/saszhuqing/p/8743157.html

(0)
(0)
   
舉報
評論 一句話評論(0
0條  
登錄后才能評論!
? 2014 mamicode.com 版權所有 京ICP備13008772號-2
迷上了代碼!
25选5历史开奖结果百度