zoukankan      html  css  js  c++  java
  • 使用-flat.vmdk恢复虚拟机

    1. 背景

    某次意外关机,开机后发现少了一台虚拟机,检查发现,“提示找不到vmdk虚拟磁盘文件

    找到虚拟机目录发现,少了很多虚拟机文件。

    对比其他正常虚拟机

    2. 原因分析

    查看这台虚拟服务器的摘要信息,对比datastore上其他可用的虚拟机,发现损坏的服务器上确实缺少一个vmdk磁盘文件,但是可以看见一个500G的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描述文件就是描述这种映射关系的。

    3. 解决办法

    1) 用ssh登录vsphere主机,查找xxx-flat.vmdk文件所在的位置以及目录,并记录文件的大小

    # find / -name "新建虚拟机-flat.vmdk"
    /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虚拟机/新建虚拟机-flat.vmdk
    # ls -l /vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虚拟机/新建虚拟机-flat.vmdk
    -rw-------    1 root     root     53687091200 Apr 16 09:13/vmfs/volumes/50a98441-ab02c8b7-e60a-001517712dce/新建虚拟机/新建虚拟机-flat.vmdk

    536870912000

    注意,ESXi5默认没有开启ssh,需要通过vsphere client登录服务器,【配置】【安全配置文件】【服务-属性】手动开启。

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

    cd /vmfs/volumes/5a020374-e2195cef-7857-1866daa5ed3e/centos6.5-4.66

    mv centos6.5-4.66-flat.vmdk tmp-flat.vmdk

    (3) 新建一台虚拟机,配置与原虚拟机相同,

    磁盘大小一定要相同

    (4) 将原来的(tmp_)xxx-flat.vmdk覆盖掉刚创建的同样大小的xxx-flat.vmdk

    mv tmp-flat.vmdk /vmfs/volumes/5a020374-e2195cef-7857-1866daa5ed3e/xxx

    mv tmp-flat.vmdk yinwu-4.32-flat.vmdk

    (5) 更改mac,删除net.rules

    更改mac 与exsi分配网卡相同

    删除net.rules

    rm -rf /etc/udev/rules.d/70-persistent-net.rules

    重启即可

    reboot

    4. 总结

    (1)重新创建一个虚拟机,然后mv原来的temp-flat.vmdk硬盘文件到新的虚拟机目录,再覆盖虚拟机文件,更节省时间;

    (2)因网卡uuid,mac变化,虚拟机开机后无法联网,需要重新配置网络信息。

    (3)xxx.vmdk本身是一个不到1k的文本文件,通过vi编辑查看可知真正存放数据的是xxx-flat.vmdk磁盘文件,所以只要这个文件还存在,就可以恢复。

  • 相关阅读:
    关于微信三点定位法
    PHP 取302跳转后真实 URL 的两种方法
    前端布局神器display:flex
    JS实现document.ready
    为什么无返回值的链表的插入操作头结点一定要用指向指针的指针
    常量字符串和指针
    C语言中指针数组和数组指针的区别
    二维数组简介与使用
    访问者模式
    解释器模式
  • 原文地址:https://www.cnblogs.com/dpwindy/p/9104403.html
Copyright © 2011-2022 走看看