• 【服务器数据恢复】xen server存储库(sr)常见故障的数据恢复方案


    xen server常见故障:


    1、sr无法识别,所有虚拟磁盘(vdi)丢失。
    2、sr中的虚拟磁盘(vdi)访问时报错。
    3、虚拟磁盘(vdi)删除或丢失。
    4、快照(snapshot)删除或丢失。
    5、sr初始化。
    6、sr所在的LVM结构损坏。
    7、sr所属的PV分区表损坏。
    8、其他故障。


     
    xen server故障分析:


    上述故障是用户界面层的常见故障表现,解决这些故障问题首先要明白xen server sr层的结构组成。


    xen server sr存储库的结构组成多数基于linux lvm,sr中的vdi相当于lvm中的lv,而构建lvm则可以基于传统MBR的分区表或GPT的分区表来管理。举个例子说,如果有一块1TB的单硬盘,假设为/dev/sdb,想要初始化为SR,通常是1T的PV先进行分区(MBR或GPT,当然也可以不分),分好区后,


    再将/dev/sdb1(假设要处理第一个分区)创建成LVM卷,然后再创建LV,这些LV就是VDI。


    xen server会备份这些LVM信息并存放在/etc/lvm下,名称如VG_XenStorage-151befd1-2224-5e06-914e-f15243f649d7_00103.vg,内容是标准的LVM  XML信息格式描述。


    上述的就是SR存储库的几乎所有结构信息,所有种类的损坏几乎都是因为上述信息的不完整所导致的。


    SR存储库结构信息的不同损坏组合衍生出不同的解决方案。


     
    xen server常见故障解决方案:


    方案一、PV分区表损坏(适用于上述xen server常见故障的1、7):


    PV分区表损坏其实与SR没关系,只是影响到SR的访问,其修复过程与普通的分区表修复相同,即修正MBR分区表或GPT分区表。


    方案二、LVM结构损坏(适用于上述xen server常见故障的1、6):


    LVM结构损坏大多数情况下就是LVM XML信息区的损坏,可考虑使用xen server的LVM信息备份进行恢复。


    方案三、LVM结构损坏,同时备份信息也损坏(适用于上述xen server常见故障的1、6):    


    LVM结构及其备份信息损坏导致所有LV的片段索引信息全部丢失,这种情况下主要工作就是找回每个VDI的LV EXTENTS信息。XEN的VDI是基于Connectix和微软联合开发的VHD格式,通常采用精简增长模式(如同ESX VMDK的精简模式),也就是说vdi随着使用的增长而增长,并不是分配多少占用多少。


    这种模式的好处是可以节约空间,坏处就是分配不可能太连续,总会同时有几个vdi交互申请空间。要想恢复这些片断(碎片信息),上层可参考的信息是非常有限的。多数情况下只能按照VHD格式内部的相关性,从VDI的头部开始,通过一些可前后匹配的信息,按LV PE的偏移,不断对extent碎片结构进行纠正。


    这个过程如果人工进行操作不仅工作量大而且繁琐。北亚数据恢复工程师专门开发了对vhd格式进行从前向后偏移校验的程序来进行匹配。获取到每个VDI的碎片信息后,可通过碎片信息修正LVM信息或直接导出成VHD文件。


    方案四、vdi内部结构损坏(适用于上述xen server所有可能的故障):


    vdi内部结构的损坏等同于vhd格式磁盘的修复。对于一个vhd虚拟磁盘而言,每一个转化后的物理块都由索引表和块内容组成,如果这两部分信息都可以找到,这个位置的块即可修复。所有可修复的块加上无法修复的块组成的一个VHD就像一块坏道盘,这时候就要看内部文件系统的结构破坏情况了。

     

    小结:上述4种解决方案的不同组合是针对所有xen server sr故障的解决方案。例如,vdi的删除就是要先看是否有LVM备份,如果有,按备份恢复;如果没有,按vdi内部结构进行复杂组合。

  • 相关阅读:
    如何使用Google Analytics跟踪WordPress网站的用户参与度
    实验二-----数据库
    快速弄懂C++中的深拷贝和浅拷贝
    文盘Rust——起手式,CLI程序 | 京东云技术团队
    JZ11 旋转数组的最小数字
    Git笔记——2
    Docker 安装Prometheus
    多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head
    基于Java的学生学籍管理系统设计与实现(源码+lw+部署文档+讲解等)
    sCrypt 合约中的椭圆曲线算法:第二部分
  • 原文地址:https://blog.csdn.net/beiya123/article/details/127803161