VMWare ESX/ESXi 有兩種硬盤置備方式,厚制備(thick)和精簡置備(Thin)
有時可能會由於性能問題或磁盤空間需要將虛擬機磁盤在兩種模式間進行互轉,雖然在虛擬機配置頁面是沒有辦法修改的,但是這個東西實際上是能改的。
硬盤置備方法在這里看:
其實這個操作是比較簡單的。如果在上面的窗口里看到硬盤是精簡置備模式,即可執行轉換操作。
兩種方法:
方法一:VMWare官方方法
VMWare如是說:
· 單擊虛擬機的摘要選項卡。
· 在資源下,右鍵單擊虛擬機所在的數據存儲,然后單擊瀏覽數據存儲。
· 雙擊虛擬機文件夾以顯示 .vmdk 文件。
· 右鍵單擊 .vmdk 文件,然后單擊擴充。擴充選項會將磁盤轉換為厚置備。
如果擴充按鈕是灰色的,有可能是因為:1、沒關機;2、該硬盤已經是厚置備了。
方法二:esxcli命令轉換
其實方法一比較簡單。當然,也可以用esxcli去把它轉換一下,不過顯然沒有鼠標點點方便。方法二的具體操作,請參見厚置備轉精簡置備章節。。。然后照貓畫虎一下。。。
實際上還有個方法三,就是把精簡置備克隆成厚制備,不過這個方法,我個人認為,既然已有方法一,要不是需要多台虛擬機的話,這個方法就是一個脫褲子放屁的做法。。。做法同樣參考下一章節。。。
擴充個這破玩意老慢了。。。擴一個得半天。。。
方法依舊有兩種(后面有好方法)
方法一:VMWare推薦方法
這個其實VMWare也給出了官方的解決方案,不過挺坑的。
VMWare如是說:
要通過更改數據存儲和使用脫機虛擬機遷移將虛擬機基礎磁盤從厚置備轉換為精簡置備,請執行以下操作:
注意:此過程需要多個數據存儲。如果僅存在一個數據存儲,可以將虛擬機克隆到帶有精簡置備磁盤的目標虛擬機,而不需要執行遷移。
1. 關閉虛擬機電源。
2. 右鍵單擊虛擬機,然后單擊遷移。
3. 單擊更改數據存儲。
4. 單擊下一步,然后選擇一個與當前數據存儲不同的數據存儲。
5. 在下拉列表中選擇精簡置備虛擬磁盤格式。
6. 單擊下一步,然后單擊完成。可以在 vCenter Server 的任務和事件視圖中監控轉換進度。
按照下面的步驟從 vSphere Webclient 中對 vSphere 5.5 執行 Storage vMotion 操作:
1. 右鍵單擊虛擬機,然后選擇遷移。
1. 要找到虛擬機,請選擇數據中心、文件夾、群集、資源池、主機或 vApp。
2. 單擊相關對象選項卡,然后單擊虛擬機。
2. 選擇更改數據存儲,然后單擊下一步。
3. 為虛擬機的磁盤選擇精簡置備,然后單擊下一步。
4. 從虛擬機存儲策略下拉菜單中選擇虛擬機存儲策略,然后單擊下一步。
5. 選擇用於存儲虛擬機文件的數據存儲位置,然后單擊下一步。
6. 檢查“檢查選擇”頁面上的信息,然后單擊完成
他這個方法實際上是說有多個存儲的話,可以使用遷移的方式。不過我們有的時候只有一個存儲,則需要以克隆的方式。
右鍵點擊要轉換的虛擬機,然后點擊克隆
給他一個新的名字,指定一個位置,然后下一步
選擇一個主機,下一步
重點來了,選擇存儲器的時候,這里有個下拉菜單,選擇精簡置備,下一步,然后后面的操作,按需進行。
然后,還是那句話,老慢了。。。我一個20G的Windows2003,克隆了三個多小時。。。
方法二:esxcli方法
對於我們這種沒有多個存儲的人們以及不想克隆虛擬機的強迫症患者來說,怎么辦呢?那么,好方法來了!用ESX的CLI可以很好的解決這個問題。
首先,需要啟動ESX服務器的SSH功能,點擊主機->配置->安全配置文件->屬性->SSH->選項->啟動。
如下圖:
然后用一些諸如Putty、SecureCRT之類的SSH軟件連接一下服務器,至於怎么連接,怎么登陸,此處還是別介紹了吧。。。
實際上這個ESXi的CLI就和Linux命令差不多,cd啊vi啊之類的基本命令都能用。本次用的主要工具有mv、cd、vi和vmkfstools。vmkfstools就是一個轉換磁盤的工具(至少我理解是這樣的)可以克隆磁盤啊、填零啊之類的。
先說一點,就是VMWare的磁盤分為兩個主要文件,一個是XXX.vmdk還有一個是XXX-flat.vmdk。XXX.vmdk是可以用vi打開編輯的,是個文本文件,至於flat的文件,看他大小就知道這個才是真正存數據的東西!但貌似XXX.vmdk是比較重要的,個人理解應該是這個文件是整個虛擬磁盤的描述,各項操作通過調取這個文件中記錄的配置,進而確定實際數據磁盤文件的讀取方式。VMWare虛擬機的.vmx文件也是這樣。啟動虛擬機,VMWare需要先讀取.vmx中對虛擬機的配置描述,進而按照配置引導虛擬機。.vmx文件中也保留着虛擬磁盤鏡像名稱的配置。當然,vmx文件中也寫了應該加載哪個vmdk文件。
vmkfstools這個命令的語法是:
# vmkfstools -i <Source-File> -d {thick|thin} <Dest-File>
-i選項為克隆磁盤鏡像
Source-File為源文件,比如XXX.vmdk
-d是克隆目標文件選項,后面可以加thick或thin,不加則原封不動克隆一份,源文件是什么置備方式,目標文件就是什么樣
Dest-File為目標文件,比如XXX.vmdk
使用該命令轉換vmdk文件,其首先會檢查vmdk中對數據文件的描述。若找不到描述的flat.vmdk則會報錯。轉換后,新的vmdk文件中的flat.vmdk會自動更改為新的flat.vmdk名。
比如,原文件為old.vmdk及old-flat.vmdk,厚制備,使用vi編輯器打開old.vmdk會發現,其中有如下一行:
若希望轉換該文件為
那么,使用vmkfstools命令轉換磁盤為精簡置備的命令如下:
# vmkfstools -i old.vmdk -d thin new.vmdk
經過漫長的等待之后,即會生成兩個新文件,new.vmdk和new-flat.vmdk。轉換后,上圖所述區域會自動變為新的文件名,也就是new-flat.vmdk。
但是由於vmx文件中描述的虛擬機磁盤文件為old.vmdk,那么,我們需要將新生成的兩個文件new.vmdk及new-flat.vmdk重命名為old.vmdk和old-flat.vmdk,並將上述文件中的相關配置修改為新的磁盤文件。
或者修改.vmx文件指向新的磁盤文件,vmx文件修改下圖所示位置。
不過據說此舉需要重新裝載vmx文件重新加載虛擬機,具體我沒試過。
至此,磁盤轉換工作完成。