當前位置:
首頁 > 知識 > 利用-flat.vmdk文件恢復ESXI虛擬機的vmdk文件

利用-flat.vmdk文件恢復ESXI虛擬機的vmdk文件

錯誤描述

在vSphere上,一次重啟虛擬伺服器時出現啟動不了,提示找不到vmdk虛擬磁碟文件

原因分析

查看這台虛擬伺服器的摘要信息,對比datastore上其他可用的虛擬機,發現損壞的伺服器上確實缺少一個vmdk磁碟文件,但是可以看見一個50G的xxx-flat.vmdk文件;而正常的伺服器只有xxx.vmdk,沒有xxx-flat.vmdk,關機之後兩個文件都存在,而且真實的磁碟容量從vmdk轉移到了xxx-flat.vmdk。

虛擬主機在運行的時候,實際在使用的是xxx-flat.vmdk,然而xxx.vmdk是可以同時被刪除的,才導致了問題。

這裡需要說明,虛擬機的每個磁碟驅動器都包含了一對.vmdk文件。一個是文本文件,包含了關於虛擬硬碟的描述數據;另外一個是磁碟的實際內容。例如,一個名為examplevm的虛擬機連接有一個硬碟。這個磁碟由如下兩個文件構成:一個小於 1KB 的examplevm.vmdk描述文件和一個10GB大小的examplevm- flat.vmdk平面(數據)文件,該文件包含虛擬機的實際數據,而這些數據又是以二進位的形式存放在物理磁碟上,examplevm.vmdk描述文件就是描述這種映射關係的。.

解決辦法

1) 用ssh登錄vsphere主機,查找xxx-flat.vmdk文件所在的位置以及目錄,並記錄文件的大小

注意,ESXi5默認沒有開啟ssh,需要通過vsphere client登錄伺服器,【配置】【安全配置文件】【服務-屬性】手動開啟。

2) 重命名xxx-flat.vmdk文件

3) 在虛擬機目錄下創建xxx.vmdk文件,大小要和xxx-flat.vmdk一樣大

/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虛擬機# vmkfstools -c 53687091200 -a lsilogic 新建虛擬機.vmdk

Create: 100%done.

/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虛擬機# ls -la *vmdk

-rw------- 1 root root 53687091200 Apr 21 05:49 新建虛擬機-flat.vmdk

-rw------- 1 root root 503 Apr 18 05:44 新建虛擬機.vmdk

4) 將原來的(tmp_)xxx-flat.vmdk覆蓋掉剛創建的同樣大小的xxx-flat.vmdk

/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虛擬機# mv tmp_新建虛擬機-flat.vmdk 新建虛擬機-flat.vmdk

重命名操作很快完成,啟動虛擬機既可以恢復。(改完名後新建虛擬機-flat.vmdk文件就不見了)

總結

相比重新創建一個同名虛擬機,然後mv原來的xxx-flat.vmdk硬碟文件到新的虛擬機,更節省時間;此外也無需再次配置網卡地址。

xxx.vmdk本身是一個不到1k的文本文件,通過vi編輯查看可知真正存放數據的是xxx-flat.vmdk磁碟文件,所以只要這個文件還存在,就可以恢復。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

Linux Kernel 5.2大幅改善羅技無線設備的支持
OpenMandriva Lx 4.0 發布,Linux 桌面與伺服器發行版本

TAG:Linux資訊速推 |