使用存儲精簡配置回收未使用的VMDK空間
存儲精簡配置可以節(jié)省VMware虛擬機磁盤文件(VMDK)上的空間 ,但回收這個空間需要使用下文介紹到的工具。
從vSphere 4.0系列測試版開始,我已經(jīng)嘗試使用虛擬機磁盤格式(VMDK)精簡配置,因為我沒有太多的存儲空間備用。
在我們進入我發(fā)現(xiàn)的細節(jié)以前,這里有一些精簡配置的背景情況。通常,當一個50GB的VMDK被創(chuàng)建,它會立即在虛擬機文件系統(tǒng)(VMFS)卷上占用掉50GB的磁盤空間。由于應用管理員往往需要比他們真正需要的空間更多的空間,這里有很多昂貴的存儲區(qū)域網(wǎng)絡(SAN)磁盤容量被用于這些將永遠不會被使用的應用。當你簡單創(chuàng)建一個VMDK磁盤時 ,存儲不分配給VMDK空間,除非它是真的會被使用到的。50GB磁盤空間中只有僅僅10GB的空間被使用,那么只要有10GB的空間就可以了。
只有當磁盤被寫入了數(shù)據(jù),50GB的空間才可以說被使用了,這是非常合乎邏輯的。但是在存儲上回收那些已經(jīng)被刪除的數(shù)據(jù)的空間是不可能的。一旦精簡配置磁盤增長,它就絕不會收縮。這不是因為在儲存上或者vSphere級別的限制,而是因為儲存和vSphere沒有收到這些區(qū)塊是空的信息。當你刪除它時,Windows不會刪除文件,它只是更新了主文件表和登記這些區(qū)塊從X變更為Y,即這些區(qū)塊現(xiàn)在可以被再次寫入,但空間并不是空的。這就是vSphere和存儲塊都不知道區(qū)塊是可以被回收的原因。
但是,一些存儲廠商,已經(jīng)使用過特殊的驅動程序,這可以與客戶的操作系統(tǒng)相互通信,并告訴存儲,當客戶刪除文件時,它可以收回這些區(qū)塊。
使用Storage VMotion收回空間
當我***次聽說精簡配置是在2009年戛納的VMworld上,我立即想到,在沒有停機時間前提下,我將如何獲得我客戶現(xiàn)有的基礎架構。幸運的是,在vCenter遷移向導中,有一個問題,改變數(shù)據(jù)存儲,為一個VMDK或一個虛擬機(VM)上所有的VMDK,并立即更改磁盤類型從厚到薄的配置。你可以使用Storage VMotion功能在VMDK上并用這樣的方式收回未使用的空間,但請記住,只有以前未曾被客戶操作系統(tǒng)寫入的空閑空間才可以回收。
作為測試,我進行了如下的操作:
增加10GB的精簡配置VMDK到一臺Windows 2003的虛擬機。
用數(shù)據(jù)填補了VMDK,稍后刪除該數(shù)據(jù)。
在vCenter里,看到磁盤現(xiàn)在使用的空間是10GB 。正如預期的那樣,通過在Windows中刪去它,沒有在存儲級別將數(shù)據(jù)所占空間釋放。
使用Storage VMotion遷移這個VMDK到不同的數(shù)據(jù)存儲上。但是,這個過程沒有釋放掉存儲上的空間。如果在向導中我選擇保持磁盤格式或“更改為薄配置磁盤”,結果是沒有差別的。
這證明,刪除文件并不能收回未使用的區(qū)塊。這仍然是相當?shù)睦速M,這些區(qū)塊不能再次被回收了,所以我考慮其他方式收回這個空間。
使用sdelete命令收回空間
我下面要使用的工具是來自Sysinternals的sdelete 。雖然Sysinternals現(xiàn)在是微軟的一部分,并應該在Microsoft TechNet網(wǎng)站上面,但是我一直無法找到它。這個鏈接是我可以找到的唯一的Sysinternals版本,但它可能是這個工具的舊版本。如果你找到了這個工具更新版本的下載位置,請讓我知道。
要收回在Windows VMDK上的空間,就要下載sdelete到本地硬盤。在我的例子中,我使用sdelete清除虛擬機驅動器中的E盤。運行sdelete將清除所有空閑空間,可以使用以下命令: “ sdelete – c E: ” 。由于這是一個相當頻繁的I/O操作,如在生產環(huán)境中你應該非常仔細地計劃這一行動。還要注意到清除以后,該區(qū)塊將真正是空的。如果一個文件被意外刪除,幾乎是不可能在磁盤上使用數(shù)據(jù)恢復工具來恢復。因此,在用這一工具進行試驗以前,具有很好的備份是必要的。
在sdelete清除你的硬盤以后,vCenter仍然會表現(xiàn)出***的磁盤使用情況,因此回收空間的***一步是使用Storage VMotion。由于磁盤已經(jīng)是精簡配置的格式,在選擇向導,你可以“保留磁盤格式”或“變更為薄配置磁盤”選項。這兩種方法都將真正空余出未使用的空間。當Storage VMotion已經(jīng)完成之后,你可以按下“更新存儲使用”以使vCenter重新計算存儲空間的使用情況,在此之后,VM將使用遠遠少于以前的存儲空間。
使用VMtools收縮選項
在VMware Tools工具運行著的Windows虛擬機里,你可以右鍵單擊該圖標并選擇打開VMware VMtools工具。其中一個標簽顯示的將是“收縮”。通常,這個選項將清除所有未使用的磁盤空間,但是,奇怪的是,這對精簡配置磁盤并不起作用。因此,不幸的是,當你想收回未使用的磁盤空間時,這種選擇是沒有幫助的。
【編輯推薦】