20110217補充:

關於VMWAREthin provisioning,繼某SERVER使用CONVERTER匯出方式解決,另外這台SERVER配置30GB硬碟,系統中剩餘5GB,但是VMDK一直是佔滿30GB/30GB的異常狀態。

同樣的搞了很久無解,當使用以下方法標記非使用中的BLOCK0後,SVMOTION無效、CLONE去另個STORAGE無效、只有匯出有效。所以確認一件事就是:

VMCLONEBLOCK TO BLOCK的搬動;匯出則是建立VMDKFILE TO FILE的搬動,而BLOCK標記為0的部分沒有被SVMOTIONCLONE的動作影響。

研究之後發現是VMWAREBUG,當在作SVMOTION的時候,來源與目標磁區的BLOCK SIZE相同的話,會導致BLOCK被標記為0處無法清除,所以必須SVMOTION去一個不同BLOCK SIZESTORAGE才行。

例如把VDisk00_V1上的東西(BLOCK SIZE=8MB)搬去VDISK01_V4(BLOCK SIZE=8MB)thin provisioning無效。

VDisk00_V1上的東西(BLOCK SIZE=8MB)搬去ESXi2_ihd(BLOCK SIZE=1MB) thin provisioning生效。


當我們使用虛擬機器時,虛擬硬碟的形式可以選thin provisioning,但是明明配置的空間中只用了一半,為何管理上看起來卻大小明顯超過?VMDK的大小也明顯超過?

像這樣 :WINDOS中明明只有用一半:

000

但是去觀察虛擬環境中去吃的滿滿的:

001.jpg

這明顯有問題,其實是因為WINDOWS的檔案殺了不是真殺,這大家應該都知道。

在WINDOWS之中原本硬碟塞了資料,而後來砍掉之後卻沒有把空間釋放,vmdk大小沒有縮回來,這一點VMWARE就沒有辦法幫我們處理了。

處理的辦法:

首先有空的話最好是WINDOWS硬碟先重組,然後要用SDELETE這個工具程式,去微軟下載這個47K的小程式:

http://technet.microsoft.com/en-us/sysinternals/bb897443

然後複製去虛擬機器的硬碟下,用命令列執行:

sdelete -c c:

這樣會把 c 槽的空白地方都標成0,等他跑完以後,用storage vmotion把這台vm的檔案搬去另一個storge空間,過程中選thin provisioning形式。

等搬完之後,硬碟所佔用空間的大小就縮回來了。

 

 

 

 

 

arrow
arrow
    全站熱搜

    You don't know 發表在 痞客邦 留言(0) 人氣()