2011年10月4日

VMWare ESXi 虛擬機器硬碟縮減

今天早上為了佈署一台基本硬碟只需要50GB的小伺服器到虛擬環境中,真是傷透腦筋。因為我們的Template,若是用Windows 2008 R2的話,起跳就是100GB。所以勢必要縮減硬碟的容量,但是VMWare竟然沒有在GUI中做出這個功能!若是直接到硬碟容量那邊去敲縮小後的容量,下次再進設定時,就會發現一點用處都沒有,數量完全被回覆成原本的大小。
難道真的沒搞頭,一定要用Converter轉到其他Cluster再轉回嗎?
所幸最後在Google上找到了一篇國外網友寫的文章,裏頭提到不需用Converter就可以達成這個目的的好方法,底下就針對這個作法詳加說明:


1. 先到作業系統中將硬碟的分割區縮減成想要的大小,當然前提一定是要大等於現在的資料量。Windows 7/2008可以直接用磁碟管理員搞定,Windows 2003/XP可用Diskpart工具,但僅限非系統碟使用。或是可以去下載Dell的ExtPart來用。
接著將Host的SSH打開,以SSH client連上Host後,下"cd /vmfs/volumes"切到datastore根目錄下,再切換到要修改的VM所在的datastore,如下圖所示的是下"cd VNX5100_VD04",再切換到要設定的VM資料夾中,下圖的例子是Win2K8_x32_Temp_vnx。
 切換完成後,用vi編輯要修改的vmdk檔案。
修改vmdk檔案中檔案的大小成為要修改的大小,也就是下圖紅框所圈的數字。數字的計算方式為(目的大小(GB)*1024*1024*1024)/512。舉例來說,若要修改成50GB,則應該輸入(50*1024*1024*1024)/512 = 104857600。
修改完成後,下"vmkfstools -i [來源vmdk] [目的vmdk]"進行vmdk的clone,若要順道改成Thin格式的話,則改下"vmkfstools -i [來源vmdk] -d thin [目的vmdk]"
 Clone完成後再下"vi [目的vmdk]"修改設定。
 將Cylinders, Heads, Sectors三行前方加#號註解。
 完成後回VC Client,至要修改的VM設定中新增硬碟。
 選取"已存在的virtual disk"
 選取後來新增的VMDK檔。
 再將原本的Hard Disk移除。
完成後就可以檢查硬碟的容量是否縮減成想要的大小,是否可以正常開機?
一切正常的話,可以回到SSH client中下"vmkfstools -U [目的vmdk]",將原本的vmdk檔案刪除。也可以用GUI方式進datastore去刪除亦可。
如此便完成虛擬硬碟大小縮減的任務啦!

1 則留言:

本部落格版權宣告

創用 CC 授權條款
自由人、自由事Freeman Lee製作,以創用CC 姓名標示 4.0 國際 授權條款釋出。