在vsphere上,一次重新開機虛拟伺服器時出現啟動不了,提示找不到vmdk虛拟磁盤檔案:
檢視這台虛拟伺服器的摘要資訊,對比datastore上其他可用的虛拟機,發現損壞的伺服器上确實缺少一個vmdk磁盤檔案,但是可以看見一個50g的<code>xxx-flat.vmdk</code>檔案;而正常的伺服器隻有<code>xxx.vmdk</code>,沒有<code>xxx-flat.vmdk</code>,關機之後兩個檔案都存在,而且真實的磁盤容量從vmdk轉移到了<code>xxx-flat.vmdk</code>。
虛拟主機在運作的時候,實際在使用的是<code>xxx-flat.vmdk</code>,然而<code>xxx.vmdk</code>是可以同時被删除的,才導緻了問題。
這裡需要說明,虛拟機的每個磁盤驅動器都包含了一對<code>.vmdk</code>檔案。一個是文本檔案,包含了關于虛拟硬碟的描述資料;另外一個是磁盤的實際内容。例如,一個名為<code>examplevm</code>的虛拟機連接配接有一個硬碟。這個磁盤由如下兩個檔案構成:一個小于 1kb 的<code>examplevm.vmdk</code>描述檔案和一個10gb大小的<code>examplevm- flat.vmdk</code>平面(資料)檔案,該檔案包含虛拟機的實際資料,而這些資料又是以二進制的形式存放在實體磁盤上,<code>examplevm.vmdk</code>描述檔案就是描述這種映射關系的。
另外:
a note for esx-users: do not use datastorebrowser to identify vmdks or download them for editiing. the datastorebrowser does not display vmdks correctly. it usually hides *-flat.vmdks and *-delta.vmdks.
to-do:
後續為 vmware esxi 5 的磁盤專門記錄一篇文章,說明“置備空間”以及vmfstools工具的使用。
(1) 用ssh登入vsphere主機,查找xxx-flat.vmdk檔案所在的位置以及目錄,并記錄檔案的大小
注意,esxi5預設沒有開啟ssh,需要通過vsphere client登入伺服器,【配置】【安全配置檔案】【服務-屬性】手動開啟。
(2) 重命名xxx-flat.vmdk檔案
(3) 在虛拟機目錄下建立xxx.vmdk檔案,大小要和xxx-flat.vmdk一樣大
(4) 将原來的(tmp_)xxx-flat.vmdk覆寫掉剛建立的同樣大小的xxx-flat.vmdk
重命名操作很快完成,啟動虛拟機既可以恢複。
相比重新建立一個同名虛拟機,然後mv原來的xxx-flat.vmdk硬碟檔案到新的虛拟機,更節省時間;此外也無需再次配置網卡位址。
xxx.vmdk本身是一個不到1k的文本檔案,通過vi編輯檢視可知真正存放資料的是xxx-flat.vmdk磁盤檔案,是以隻要這個檔案還存在,就可以恢複。