专栏首页数据恢复案例VSAN存储结构解析+存储数据恢复案例
原创

VSAN存储结构解析+存储数据恢复案例

今天给大家介绍一的是一款常见存储设备-Vsan的结构原理,相对而言技术性文字较多。VSAN是一种以vSphere内核作为基础开发出来的一款可以扩展使用的分布式存储架构。这款存储在vSphere集群主机中安硬盘及闪存构建出VSAN存储层,通过存储进行管理与控制,最终形成一个共享存储层。

伴随着计算机网络的快速发展,vsan的存储结构也在不断的更新换代过程中,传统的存储管理机制中的底层存储不了解虚拟化和文件系统,新一代的存储管理机制将更新为基于对象存储系统、虚拟数据存储、分布式存储。下图为vsan的存储结构及存储管理机制示意图。

VSAN数据存储是一个对象存储,以文件系统的形式呈现给vSphere主机,这个对象存储服务会从启用VSAN集群中的每台主机上加载卷。将他们展现为单一的、在所有节点上可见的分布式共享数据存储,VSAN简化了存储配置,对于虚拟机来说,只有一个数据存储,这个分布式数据存储来自VSAN集群中每一台vSphere主机上的存储空间,通过磁盘组进行配置,在单独的存储实体中存储所有的虚拟机文件,这种数据存储的方式相对来说已经很安全了,但是在出现闪存盘或者是容量盘出现故障的时候,数据会往其他的节点转移,在转移的时候过程中,也有可能出现其他的故障,下面为大家介绍近期恢复成功的一个vsan存储数据恢复案例。

出现故障是四台dell的服务器组成的VSAN集群,每台服务器上两个磁盘组,一个磁盘组是一个SSD硬盘带5块SAS硬盘,SSD做闪存,SAS做容量盘,其中一个节点上的一个磁盘组中的容量盘出现故障离线,这个时候VSAN进行数据重构迁移,在很不赶巧的时候,这个时候由于停电导致数据迁移没有完成,在来电的时候,其中另外一个磁盘组中的容量盘也由两块故障离线了,导致整个数据存储出现故障,VSAN的管理控制台可以登陆,但是所有的虚拟机都无法访问了。

先把四个节点的所有硬盘都做个只读的镜像,包含SSD闪存盘和SAS容量盘,还有三块因故障离线的硬盘,备份完成之后,把所有的原盘都还原到服务器上,开始对镜像文件来进行分析底层数据存储结构,来确认虚拟机所在硬盘的分布信息,因为现有的虚拟化程序没有针对VSAN的架构来恢复虚拟机的,北亚的工程师在分析底层数据存储结构的时候,也在做相应的程序开发,来测试数据分布信息的准确性。

单独分析每个节点上的两个磁盘组,看下磁盘组内的闪存硬盘和容量盘之间的对应关系,每块硬盘都有一个唯一标识进行磁盘间的对应,根据硬盘的ID信息,判读磁盘组里面的硬盘ID信息。

1、在每块硬盘上获取磁盘的UUID和磁盘组的UUID

2、根据每个磁盘组中的容量盘的组件信息获取此容量盘的组件信息

3、根据组件信息中记录的组件的MAP位置提取组件位图。

4、根据组件的位图提取组件数据和缓存数据

5、根据组件的描述信息获取组件所属对象及组件顺序,并把组件合并成对象

6、根据对象,提取数据。

对象也可以看成一个卷,也可以理解成是一个逻辑卷,每个存在于数据存储上的VSAN对象都是由多个组件构成,这些组件分布于集群主机上配置的磁盘组中,在恢复的过程中,组件的信息提取是关键的步骤,因为组件是每个对象的重要组成部分,本次故障组件损坏的很少,恢复出来的虚拟机都能正常启动,这次故障解决在分析组件位图和磁盘对应关系用来比较长的时间,但是最后把所有的技术难题都解决了,恢复出来的虚拟机都正常启动,圆满解决了VSAN出现故障导致数据丢失的恢复。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 工程师分享vsan存储结构和数据恢复方法

    VSAN是一种以vSphere内核为基础进行开发、可扩展的分布式存储架构。VSAN通过在vSphere集群主机当中安装闪存和硬盘来构建VSAN存储层,由VSAN...

    北亚数据恢复中心
  • NetApp存储误删除lun解决方案

    NetApp FAS3220是NetApp推出的中端存储阵列,针对NAS和SAN环境构建,被定制为虚拟化、私有云或传统、早先的用途,适用于从几TB到超过2PB的...

    北亚数据恢复中心
  • 存储上的数据丢失了怎么恢复

    需要进行数据恢复的服务器共10个磁盘柜,每个磁盘柜满配24块硬盘。其9个存储柜用作数据存储使用,另外1个存储柜用作元数据存储使用。元数据存储中共24块146G硬...

    北亚数据恢复中心
  • 工程师分享vsan存储结构和数据恢复方法

    VSAN是一种以vSphere内核为基础进行开发、可扩展的分布式存储架构。VSAN通过在vSphere集群主机当中安装闪存和硬盘来构建VSAN存储层,由VSAN...

    北亚数据恢复中心
  • Docker 常用基础命令

    最近开始进攻Docker,已经将自己的电脑上的服务端软件逐一移到Docker上,包括tomcat、nginx、rabbitmq、redis等,并通过简单的脚本进...

    itmifen
  • 【程序源代码】基于企业微信的开源SCRM系统

    正文:LinkWeChat,是一款基于企业微信的开源SCRM系统,为企业构建私域流量系统的综合解决方案,显著提升企业社交运营效率!

    程序源代码
  • 「第二部:容器和微服务架构](17) 编排微服务和多容器应用程序

    如果您的应用程序基于微服务或只是跨多个容器拆分,那么使用面向生产的应用程序的编排器是必不可少的。如前所述,在基于微服务的方法中,每个微服务都拥有自己的模型和数据...

    首席架构师智库
  • 安卓应用常见的几种应对恶意攻击的解决方案

    内容来源:2018 年 09 月 15 日,华为资深技术专家李欣哲在“从研发到测试,手把手教你打造绿色应用”进行《应用安全常见问题及解决方案》的演讲分享。IT ...

    IT大咖说
  • 如何在Linode上使用Docker部署nginx容器

    根据Docker官网(Docker.com)的说法,容器应该是一个“轻量级,独立的,可执行的软件包,包括运行它所需的一切:代码,运行时,系统工具,系统库和设置。...

    Noel
  • 【第二部:容器和微服务架构】(3)Docker应用程序中的状态和数据

    在大多数情况下,可以将容器视为流程的实例。进程不保持持久状态。虽然容器可以写入其本地存储,但假设实例无限期地存在,就像假设内存中的单个位置是持久的一样。您应该假...

    首席架构师智库

扫码关注云+社区

领取腾讯云代金券