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出现故障导致数据丢失的恢复。

原文地址:https://blog.51cto.com/sun510/2443525

时间: 2024-07-30 18:20:57

VSAN存储结构解析;存储数据恢复的成功案例分享的相关文章

Java的HashMap键值对存储结构解析

容器总体结构 Map存储键值对的数据结构是“数组+链表”的结构,结合了数组查询数据快和链表增删数据快的优点:用Entry[]存储键值对,Entry为类类型,类里面有四个属性:hash.K.V.next,分别存储哈希值.键对象.值对象.下一个Entry对象引用. Entry底层源码 Entry对象存储结构图 Entry数组存储结构图 HashMap存储数据过程示意图 我们的目的是将”key-value两个对象”成对存放到HashMap的Entry[]数组中.参见以下步骤: (1) 获得key对象的

docker存储结构解析

由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而其他系统上使用lvm thin provisioning(overlayfs是一个和aufs类似的union filesystem,未来有可能进入内核,但目前还没有:Lvm snapshot are useful for doing e.g. backup of a snapshot, but regress badly in performance when you start having

从NSM到Parquet:存储结构的衍化

为了优化MapReduce及MR之前的各种工具的性能,在Hadoop内建的数据存储格式外,又涌现了一批各种各样的存储方式.如优化Hive性能的RCFile,以及配合Impala实现出Google Dremel功能(类似甚至是功能的超集)的Parquet等.今天就来一起学习一下HDFS中数据存储的进化历程. 数据摆放结构 数据摆放结构(data placement structure),顾名思义,就是数据如何在HDFS中放置和存储的.这种摆放结构对于像Hive这种,HDFS之上的查询工具来说是非常

Oracle存储结构

Oracle数据库的存储结构分为逻辑存储结构和物理存储结构. 一.逻辑存储结构 逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织.管理数据.因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的. 从逻辑上来看. 数据库是由一个或者多个表空间等组成. 一个表空间(tablespace)由一组段组成, 一个段(segment)由一组区组成, 一个区(extent)由一批数据库块组成, 一个数据库块(block)对应一个或多

1、数据结构的基本逻辑结构、存储结构和运算

数据结构的基本逻辑结构.存储结构和运算 1.基本逻辑结构 集合结构.线性结构.树形结构和图状结构 2.基本存储结构 线性存储:需要一块连续的内存地址空间,相关元素一次存储 链接存储:不需要连续的地址空间,每个节点包含元素和链接两个部分,元素存储数据值,链接存储下一个节点的地址 3.基本运算 ·创建运算 ·清除运算 ·插入运算 ·搜索运算(根据值返回位置) ·更新运算 ·访问运算(根据位置返回值) ·遍历运算 1.数据结构的基本逻辑结构.存储结构和运算,布布扣,bubuko.com

存储结构与邻接矩阵,深度优先和广度优先遍历及Java实现

如果看完本篇博客任有不明白的地方,可以去看一下<大话数据结构>的7.4以及7.5,讲得比较易懂,不过是用C实现 下面内容来自segmentfault 存储结构 要存储一个图,我们知道图既有结点,又有边,对于有权图来说,每条边上还带有权值.常用的图的存储结构主要有以下二种: 邻接矩阵 邻接表 邻接矩阵 我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组

树以及树的存储结构

//树的存储结构 //双亲存储结构 typedef struct { int data;//结点的值 int parent;//指向双亲位置的伪指针 } PTree[maxsize]; //孩子存储结构 typedef struct node { int data;//结点的值 struct node *sons[maxsize];//指向孩子结点 }TSonNode; //孩子兄弟链存储结构 typedef struct tnode { int data; struct tnode *hp;/

图的理解:存储结构与邻接矩阵

存储结构 要存储一个图,我们知道图既有结点,又有边,对于有权图来说,每条边上还带有权值.常用的图的存储结构主要有以下二种: 邻接矩阵 邻接表 邻接矩阵 我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组,那么A中的一个元素aij不仅体现出了结点vi和结点vj的关系,而且aij的值正可以表示权值的大小. 以下是一个无向图的邻接矩阵表示示例: 从上图我们可

raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍

一.HP-lefthand存储简介HP-lefhand存储具有一定的市场占有量,基于其软件定义存储的弊端,这款存储设备具有非常高的数据恢复需求.lefhand存储支持搭建RAID5.RAID6.RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等.本文主要为大家介绍了lefhand存储的结构和数据恢复方法,附有p4500存储磁盘阵列数据恢复案例,对raid数据恢复的方法进行了分部介绍.服务端:客户端: 二.HP-lefthand存储结构介绍Lefthand存储共分为物理磁盘.逻辑磁盘.逻辑卷三个