虚拟化文件系统VMFS有损数据恢复方法实现及原理

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:flyingship23
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文介绍了一种利用VMFS固有系统信息完成数据丢失或损坏的情况下的数据提取方法。首先阐述VMFS的文件系统结构、各管理组件特性、功能和数据寻址原理,然后介绍各类常见数据丢失情况所导致的底层数据变化方式,最后给出应对于各种数据丢失场景下的恢复方案。
  关键词:VMFS;ESXi;数据恢复技术
  中图分类号:TP3 文献标识码:A
  文章编号:1009-3044(2019)36-0059-02
  自1946年世界上首台电子计算机问世至今已有60年之久,在此期间硬件发展速度遵循甚至超出摩尔定律的预期。如此快速的发展让计算机在高精尖领域大放光彩,但是在对性价比要求较高的民用领域,高性能物理硬件性能过剩和老旧硬件性能不足等问题逐年彰显。
  在20世纪六七十年代IBM发明了操作系统虚拟机技术,此技术利用大型机高性能硬件的快速反应速度,在单台服务器上安装多个操作系统并发提供给不同用户使用,虚拟化操作系统雏形初现。但这种技术只适用于大型机,应用范围很小,无法满足中小型企业的需求。直到1999年,VMware公司在x86平台上推出商业虚拟化软件ESXi,虚拟化技术才开始普及到计算机领域内的各行各业,此虚拟化平台所使用的文件系统正是VMrs。由于其应用范围的不断扩展,在使用过程中由于不可抗力和人为因素导致的数据丢失案例也呈现出上升趋势。根据故障发生频率,本文着重讨论误删除和格式化这两种情况下的数据恢复方案。
  1 VMFS卷結构及各组件功能
  VMFS在历史上共出现了三个版本,分别为VMFS3、VMFS5和VMFS6,当前市面上常见版本为VMFS5。在VMFS5文件系统内,存储结构按照其在卷内出现顺序大致可分为三个区域:保留区、元文件区以及用户数据区。保留区一般用0填充不使用,元文件区主要存储管理VMrs卷的各元文件,包括vh.sf、.fdc.sf、.sbc.sf、pbc.sf、.fbb.sf、.pb2.sf。用户数据区会以数据块为单位记录用户写入的绝大部分数据(有部分小文件的数据会存在元文件内)。
  除.vh.sf外,其余元文件都是由文件头和AREA组成。文件头内记录本元文件内子块的大小、头部大小以及AREA个数、每个AREA内的entr个数等信息,可用于解释本元文件。AREA内部又被划分为两部分:entr和子块组。entr个数与子块组个数相同,在entr内会记录对应子块组内子块的使用情况,某个子块被文件系统使用时会在entr内标记为已使用;子块被释放时,entr内的使用标记改为未使用,但不会清理该子块内数据。
  1.1.vh.sf
  .vh.sf主要用于记录本逻辑卷(Logic Volume)的版本号、全局唯一标识码、逻辑卷名称以及当前VMFS卷内所使用的默认数据块单位大小等。此元文件只在VMFS初始化过程中被写入信息,在文件系统运行过程中不再使用。
  1.2.fdc.sf
  .fdc.sf用于记录本逻辑卷内所有文件的节点(node)信息,一般在VMFS初始化过程中确定其存储位置,以下简称为fdc。本元文件内会记录各个目录、用户文件和系统源文件的属性信息,这些信息包含节点编号、硬链接数、节点类型(目录/文件/元文件)、文件大小、创建时间、最后修改时间、最后访问时间以及顶层指针,顶层指针含义稍后会在文件系统工作原理部分阐述。此外,VMFS卷为节省空间会将小于1024字节的小文件直接存储在节点内。
  1.3.sbc.sf
  .sbc.sf’用于记录本逻辑卷内所有目录的目录项(不包含根目录,根目录有其固定存储位置)以及大于1024字节小于8192字节的文件数据,以下简称为sbe。某个目录下的文件或子目录的目录项会以140字节为单位紧凑存储于该目录的目录区,目录项内会标明下层文件或目录的节点id、文件类型和文件名。
  1.4.pbc.sf
  .pbc.sf用于记录次级指针,以下简称为pbc。当pbc某个文件的节点内无法存储所有指针的情况下会产生指针树,并将树的顶点存储于节点内,同时将树的枝十节点和叶节点存储于pbc内。最终寻址时需要从pbc内提取该文件的所有叶节点,才能完整获取该文件的所有数据。Pbe子块大小一般为4096字节,可存储1024条数据指针,且每个子块内指针全部指向同一个文件。
  1.5.fbb.sf
  .fbb.sf用于记录当前VMFS卷内的数据块使用情况。此文件内用位图的方式标记当前卷内各个数据块是否已被分配以达到快速分配数据块的目的。
  1.6.pb2.sf
  .pb2.sf在VMFS5内未使用,预留待扩展。
  2 VMFS卷数据寻址原理
  VMFS在卷内查找一个文件时首先在固定位置找到根目录,读取根目录下各目录项信息,根据目录项内记录的节点编号跳转到fdc查找节点并判断文件类型。如果是目录跳转到sbe元文件内读取该目录的目录区以获得该目录下各文件的目录项,根据目录项内记录的节点编号继续判断节点类型;如果是文件则判断文件大小,并按照不同存储位置读取出数据(文件存储规则见图1)。深度为3的指针树最大可存储256TB的单个文件,已满足当前操作系统绝大多数使用情况。
  3常见故障对底层元数据影响
  3.1文件误删除对底层元数据影响
  在研究过程中采用对比分析法对VMFS卷内文件删除前后元文件内部变化情况进行对比,多次测试结论均相同。当文件被删除时,该文件的节点内硬链接数被置0。此外,文件小于1KB时,节点内文件数据被0覆盖;文件大于1KB时,所有节点内的指针均被删除覆盖;文件大于256MB时,次级指针和叶级指针所在元文件的子块被标记为未用状态,但子块内数据不清零;文件大于256GB时,除叶级节点指针外上层指针全部清零,此时该文件留存于系统中的信息仅包含直接指向数据块的数据指针。   3.2 VMFS卷误格式化对底层元数据影响
  在研究过程中采用对比分析法对VMFS卷格式化前后元文件内部变化情况进行对比,多次测试结论均相同。除重置各元文件所产生的开销外各元文件基本无变化,根目录下前9个目录项(对应于各元文件的目录项)被重置。无数据写入时根目录下第10个目录项之后的所有目录项均可按照正常VMFS卷工作原理查找提取文件,在格式化后的卷内写入文件时会覆盖根目录下目录项。
  4数据恢复方案
  4.1文件误删除恢复方案
  文件误删除恢复方案根据文件大小可分为多种:文件小于1KB时,由于文件数据被清零,此类情况无法恢复;文件小于8KB大于1KB时,文件数据存储于sbe元文件内,可通过查找sbc内被标记为未用状态的子块和文件特征值来寻找对应数据块(文件特征值是指某些固定类型文件头部会有MAGIC_NUM-BER标志);文件大于8KB小于256MB时由于节点内指针被清零,文件非明文或特定格式文件时无高效恢复方案。
  重点为恢复大于256MB文件,一般特指虚拟磁盘。常见的虚拟化架构为ESXi服务器创建VMFS卷后在卷内创建虚拟机供用户使用。创建的虚拟机会在VMFS卷的根目录下创建与虚拟机名称完全相同的文件夹,并将虚拟机各组件文件存放在此目录下。在常规物理计算機内记录数据的设备为硬盘,而承载虚拟机内数据的是被称为虚拟磁盘的大型文件,后缀名VM-DK。当虚拟机被删除时,该虚拟机对应的文件夹下所有文件会全部被删除。由于记录虚拟机内数据的文件是VMDK,只要将此文件恢复即可。
  VMDK文件结构与普通物理磁盘的分区结构完全相同,头部有MBR或GPT分区标识。由于文件删除清空了上层指针,只能依赖叶级指针块完成该文件的碎片拼接。叶级指针块大小为4KB,会连续记录1024条数据指针,每条指针又指向IMB数据块,因此删除VMDK可看作将文件切分为以1GB为单位的数据块。分析pbc元文件,将标记为未用(即已被释放)的子块取出。由于每个子块都可包含1024条指针,取出所有指针对应数据块即可获取到1GB碎片。且VMFS文件系统数据分配是以1MB为单位进行对齐,指向每个大于256MB文件的文件头部的直接指针一定是子块内的第一条(见图2),读取所有1GB碎片头部信息判断是否为磁盘头部。
  找到VMDK头部数据块后可根据磁盘大小来判别是否是需要恢复的磁盘文件。当磁盘采用GPT分区格式时,计算GPr头与GPT头备份之间的扇区数可得到该VMDK的大小;采用MBR分区格式时,计算各分区容量总和可得。确定需要恢复时,根据VMDK分区内文件系统类型及其内部结构获取各目录和文件在分区内的偏移量以及在VMDK文件内的偏移量。假设将VMDK文件从头部起始切分为若十个IGB碎片,计算各目录或文件在IGB碎片内的偏移。遍历所有文件和目录与IGB碎片,利用各文件或目录特征值及其在碎片内的偏移完成匹配工作。未找到的数据块可能为文件系统未用空间,直接用IGB大小的0进行填充即可。
  以上方式适用于文件系统入口位于磁盘头部的所有文件系统。对于某些特殊的文件系统有更多匹配标志的,可增加恢复成功率,例如NTFS的文件记录号等文件唯一性标识。
  4.2 VMFS误格式化恢复方案
  误格式化一般指同参数格式化,即VMFS格式化为VMFS,分区大小不变,分区起始位置不变,此类情况下由于元文件信息重置无法正向解析整个文件系统。由于VMFS元文件在格式化时一般会预留足够大小的空间,格式化不会变更文件大小以及分配位置,但会清空entr内子块使用标志位。获取根目录下除元文件外其余目录或文件信息,并按照对应的指针直接跳转到对应子块进行解析即可获取由于格式化原因导致丢失的文件数据。
  对应于VMFS文件系统被格式化为其他文件系统而言,由于VMFS元文件分配位置不处于分区头部,一般不会被覆盖。查找VMFS卷特殊标识确定分区起始,按照正向解析流程完成解析即可获取丢失文件。
  5总结
  VMFS在正常运行中应及时注意空间使用情况,操作时更是需要仔细,尽量避免由于人为因素导致数据被删除的情况发生。如果发生数据丢失情况,应立即关闭ESXi服务器或卸载数据存储,以免后续写入数据覆盖被删除文件。数据脱离生产环境后应及时进行数据备份,以免恢复过程中对数据造成二次破坏,及时开展恢复流程即可。
  参考文献:
  [1]管建超.基于VMware VMFS的研究及备份实现[J].ELEC-TRIC POWER IT,2011,9(7).
  [2]顾景民,时阳.V Mware服务器虚拟化中的热备与恢复技术[J].科技视界,2016(4).
  [3]宋发平.V Mware服务器虚拟化在建设新一代企业数据中心中的运用研究[J].电子制作,2017(9).
  【通联编辑:张薇】
  收稿日期:2019-09-25
  基金项目:国家重点研发计划重点项目:物证检验质量保证与量值溯源关键技术研究(2018YFC0807305)
  作者简介:张宇(1978-),男,山西人,本科,从事有损大容量存储数据重组分析技术研究与系统开发研究。
其他文献
摘要:发展现代农业,将农业融入互联网技术中,可以开拓农业发展的新领域。本文从网站的功能分析、数据库设计及关键功能的实现技术详细介绍了下蜀农业信息网设计的全过程。  关键词:下蜀;农业信息网;MVC;数据库;Ajax  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)35-0003-03  1 概述  在中国这个文明古国,农业是主要产业之一,当农业与互联网产生交集,农
摘要:数据分类算法作为大数据分析与数据挖掘中的关键内容,面对大数据信息时代的到来,各种各样的分类技术和算法高速发展,但在发展的过程中仍然存在部分难以有效解决的问题。该文通过对数据挖掘分类问题的分析,提出决策树分类算法、人工神经网络分类算法和朴素贝叶斯分类算法改进策略。  关键词:大数据分析;大数据挖矿;分类算法技术  中图分类号:TP18 文献标识码:A  文章编号:1009-3044(2019)
摘要:TSL(Transpon Layer Security)协议是重要的互联网标准协议。重点分析了TSL协议握手协议的过程,通过请求公钥与多次协商最终形成会话密钥。描述了证书、私钥的生成方法,实现一个服务端、客户端使用TSL协议传输的方法,并验证TSL安全传输的效果。  关键词:传输层安全传输;TSUSSL; TCP安全通讯信  中图分类号:TP393.08  文献标识码:A  文章编号:100
为解决目前电子巡查系统响应速率较慢的问题,提出基于角色网络模型的电子巡查系统优化设计。以优化后系统框架为基础,进行数据接收器优化。考虑巡查角色划分模块功能,优化系统及时通信性能与网络适配层,实现系统数据更好调度与监控。将优化后系统与传统系统相对比,证明其具有更好响应速率。
摘要:在C语言程序设计教学过程中,发现学生对C程序中指针的学习和掌握比较困难,学习以后运用困难等问题,提出了在项目课程中应用文件指针和数组指针对文件和数组元素的访问,解决学生学习之后应用困难和不会使用的困难,同时让学生感知指针给程序执行带来的高效性。让学生切实获得学习C语言程序设计课程的成就感,从而激发学生的学习兴趣,提高学习效率。  关键词:数组指针;文件指针;教学效果;项目设计  中图分类号:
摘要:在很多行业,处理业务的时候。需要客户预先填写单据。例如传统的银行业务办理,需要客户在业务单里填写个人的姓名、身份证号码等个人信息,以及一些办理业务的相关信息。传统的手工填写,费时费力,容易出错。这就一定程度上降低了银行业务办理的效率。该次设计旨在通过计算机完成个人信息填写,个人用户信息从身份证中直接获取,通过打印机自动输出,方便快捷。  关键词:自助填单;身份证;C#编程语言  中图分类号:
摘要:随着互联网医疗以及新的医疗保险政策的实施,医疗资源信息呈现“爆炸式”的增长趋势,而人口老龄化以及人们健康意识的提高,无疑加剧了医疗系统的压力。目前,人工智能和数据挖掘等新兴计算机技术已经成为研究热点,极大地促进了各行各业的发展。利用新兴技术,分析各类医疗资源信息,帮助解决医疗资源分配不均衡问题,优化就诊流程、提高患者就诊效率,减轻医护人员劳动强度,已经逐渐成为新时代背景下现代医疗系统中研究的
摘要:随着网络计算机技术的不断发展,在为人们工作与生活带来极大改变的同时,也带来了诸多安全问题,近些年由于网络支付与网络技术的普及应用,使得人们也更加重视计算机网络安全问题。医院作为信息化建设的主要阵地,其信息化系统依赖于计算机网络,所以一旦计算机网络发生问题,则会严重威胁到医院内部的信息安全。本文就针对医院信息化建设中计算机网络安全管理与维护中的问题进行讨论,从制度、人员、设备维护等方面开展综合
摘要:针对分布在不同节点的数据的函数依赖挖掘问题进行了研究,提出了一种分布式函数依赖挖掘算法,该算法是以传统的函数依赖挖掘算法Tane算法为基础设计的。其基本思想是:首先,使用Tane算法挖掘出各个节点的函数依赖;然后,得到各个节点的公共函数依赖;最后,以公共函数依赖的左部公共属性值为散列值对数据进行重分布并对候选函数依赖进行验证,得到最终的函数依赖。该算法的实现过程中帮助解决的数据迁移量大和负载
摘要:互联网技术的快速发展,极大地丰富了和改变了人们的日常生活。但是人们也在遭受着网络攻击的威胁。从国家和社会的角度出发,很多的网络攻击都是致命的,因此,网络的安全防御有着至关重要的作用。目前,基于网络安全态势感知的网络安全防御技术快速发展,基于此,该文介绍了网络安全态势感知的理论知识,分析了网络安全防御的难题,给出了基于态势感知的网络防御措施,以期为实际的网络防护提供指导。  关键词:网络安全;