xenserver恢复vps数据(ext格式的存储数据恢复) - 鼎峰VPS 帮助中心
xenserver恢复vps数据(ext格式的存储数据恢复)
文章分类: [Linux] 发布时间:2016-7-18 15:35 Monday 浏览(632)

xenserver里面的vps数据被误删除了,但是vps的数据很重要,这个时候就需要恢复vps的数据了。如果您的xenserver服务器的存储格式是ext的,那么可以使用linux系统恢复文件工具:extundelete ,下面我们来介绍一下这款工具的使用。

注意:extundelete工具无法直接在需要恢复数据的分区或者硬盘上面进行恢复数据,因此需要额外一块硬盘,来进行数据恢复,该硬盘的大小不能小于需要恢复数据的vps硬盘大小。


(一)部署extundelete所需要的环境,需要安装make,gcc等,在xenserver服务器里面执行以下命令即可:

  1. yum --enablerepo=base --disablerepo=citrix install gcc-c++ make openssl openssl-devel -y
复制代码

(二)安装extundelete工具。
下载extundelete。

  1. wget http://os.xensystem.net/XenSystem/download/extundelete-0.2.4.tar.bz2
复制代码

解压下载的安装包。

  1. tar -jxvf extundelete-0.2.4.tar.bz2
复制代码

切换到解压之后的extundelete安装目录。

  1. cd extundelete-0.2.4
复制代码

安装extundelete。

  1. ./configure --prefix=/usr/local/extundelete 
  2. make && make install
复制代码

验证是否安装成功。

  1. cd /usr/local/extundelete/bin 
  2. ./extundelete -v
复制代码

出现一下提示就表示安装成功了。

extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.




(三)设置相关的环境变量。

  1. echo "PATH=/usr/local/extundelete/bin:$PATH" >> /etc/profile
  2. echo "export PATH" >> /etc/profile
  3. source /etc/profile
复制代码

(四)将xenserver服务器里面存储进行反挂载(VPS需要全部关机),以便于恢复文件,查看存储的挂载目录,可以使用df -hal查看的。

  1. umount /var/run/sr-mount/1a5dfcb1-2d79-539e-b793-21b60b51c81a
复制代码

(五)使用extundelete查看被删除的文件,被删除的文件是可以通过inode值去查看的,一般一个分区挂载到一个目录时,这个值为2,因此我们查看分区inodel值为2的部分。
格式为:extundelete  存储的路径 --inodel 2

  1. extundelete /dev/mapper/XSLocalEXT--1a5dfcb1--2d79--539e--b793--21b60b51c81a-1a5dfcb1--2d79--539e--b793--21b60b51c81a --inode 2
复制代码

发现一些带Deleted的就是删除的文件,这些文件名都是vdi的uuid,如果能够知道被删除的vps的vdi的uuid就可以直接恢复,如果不知道,那么只能一文件,一个文件去尝试了。


(六)切换到新硬盘挂载的目录,文件恢复的时候,会自动恢复到当前目录下面的RECOVERED_FILES目录里面,我们这里是指定文件恢复
注意:一定要将文件恢复到新的硬盘里面,并且硬盘的大小不能小于恢复文件的大小。
格式为:extundelete --restore-file  文件名  存储的路径      --指定文件名恢复
格式为:extundelete --restore-all 存储的路径                     --恢复存储上面所有删除的文件
格式为:extundelete --restore-all --after “时间戳”  存储的路径  --恢复指定时间戳以后的文件

  1. extundelete --restore-file  d84fa733-e189-45a0-b855-338b774162dd.vhd /dev/mapper/XSLocalEXT--1a5dfcb1--2d79--539e--b793--21b60b51c81a-1a5dfcb1--2d79--539e--b793--21b60b51c81a
复制代码

出现Successfully 代表文件恢复成功了。



(七)将刚才反挂载的xenserver存储挂载回去。

  1. mount /dev/mapper/XSLocalEXT--1a5dfcb1--2d79--539e--b793--21b60b51c81a-1a5dfcb1--2d79--539e--b793--21b60b51c81a  /var/run/sr-mount/1a5dfcb1-2d79-539e-b793-21b60b51c81a
复制代码



(八)创建一台和需要恢复的vps一样系统的vps,然后查看新的创建vps的vdi,并且让恢复的vhd文件替换掉新建立的vps的vhd文件。
注意(重要):在恢复的vhd文件替换掉新建立vps的vhd文件之后,不能再次新建立vps和扫描存储,否则恢复的vhd文件会被删除。
           1.查询一下新建立的vps的vdi的uuid,可以看到uuid为:73172c37-4d25-4ae9-a6db-bc10ffed0652       

  1. xe vdi-list name-label=1
复制代码


               2.切换到存储的目录,会看到有一个和vdi的uuid一样的vhd文件,这个就是vps的硬盘文件,把他删除了或者重命名。


              3.将恢复的vhd文件,复制到存储的目录中,并且命名为新创建vps的vhd文件。                  

  1. cp /huifu/RECOVERED_FILES/fdc3614b-ee44-479f-a56f-d1d4d8dbe20a.vhd /var/run/sr-mount/1a5dfcb1-2d79-539e-b793-21b60b51c81a/73172c37-4d25-4ae9-a6db-bc10ffed0652.vhd
复制代码



(九)将新建立的vps开机,就可以看到新建立vps的里面硬盘文件就是需要恢复的vps的数据。这个时候,将里面的数据进行打包,然后进行导出等等备份操作就可以了。
注意:数据备份完毕之后,才可以进行创建vps,存储的扫描等操作,否则会直接删除VHD文件的。