我們內(nèi)網(wǎng)有一個vmware的集群,以前年少無知,所以vmdk的格式選擇了「厚置備延遲置零」,也就是分配多少,vmdk文件就會占用多大的空間,這里的好處是能提供較好的io,但我們虛擬機(jī)大部分用來做測試的,所以對io要求不高,而且實際并不需要這么大的空間,這里是第一個問題,我們需要將vmdk轉(zhuǎn)換為「Thin Provisioning」,就是按需使用,并不是一開始就分配所有空間。
后來的虛擬機(jī),我們選用了「Thin Provisioning」,部分虛擬機(jī)在一開始寫了大量文件,現(xiàn)在不需要存了,需要回收這部分空間,這是第二個問題。
有2個方式
就是遷移虛擬機(jī),只需要轉(zhuǎn)移存儲就可以了,當(dāng)然也可以連主機(jī)也遷移了,原來就是在遷移選擇存儲時,可以在「選擇虛擬磁盤格式」下拉菜單中選擇「Thin Provisioning」,我感覺原理和vmkfstools是一樣的,就是在遷移的過程中,做一次轉(zhuǎn)換
由于我沒有使用此方法,直接貼參考資料好了
Cloning and converting virtual machine disks with vmkfstools (1028042)
在轉(zhuǎn)換的時候, 發(fā)現(xiàn)部分機(jī)器已經(jīng)回收空間了,但有些沒有自動回收,暫時不知道什么原因,下面講下手動回收。
大概原理是先在虛擬機(jī)里標(biāo)記哪些磁盤塊是已經(jīng)刪除了,然后再通過vmkfstools進(jìn)行回收
可以用
sdelete.exe -z [DRIVE:]
比較粗暴,用dd填滿磁盤,再刪除文件
由于它是填滿磁盤,就是該盤會最終占用分配給它的全部空間,所以要看看該vmdk所在的物理盤是否有足夠的空間
# xxx為你需要回收的磁盤掛載點cd xxxdd if=/dev/zero of=zeroes bs=4096 || rm -f zeroes
經(jīng)過上面2種虛擬機(jī)的處理后,就可以ssh到vmware物理機(jī)上進(jìn)行回收
此處注意,vmkfstools要用xxx.vmdk,不要用xxx-ctk.vmk,也不要用xxx-flat.vmdk
# 處理前確認(rèn)大小du -h xxx-flat.vmdkvmkfstools -K xxx.vmdk# 處理后確認(rèn)大小du -h xxx-flat.vmdk
處理完后,在「vShpere Client」中,可以選擇「刷新存儲使用情況」來獲取最新的使用情況
磁盤有價,數(shù)據(jù)無價,請操作前做好備份,操作的時候,再三確認(rèn)
聯(lián)系客服