【VSAN数据恢复】VSAN数据重构迁移失败的数据恢复案例

2024-01-26 09:36

本文主要是介绍【VSAN数据恢复】VSAN数据重构迁移失败的数据恢复案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VSAN简介:
VSAN存储是一个对象存储,以文件系统呈现给在vSphere主机上。这个对象存储服务会从VSAN集群中的每台主机上加载卷,将卷展现为单一的、在所有节点上都可见的分布式共享数据存储。
对于虚拟机来说,只有一个数据存储,这个分布式数据存储来自VSAN集群中每一台vSphere主机上的存储空间,通过磁盘组进行配置,在单独的存储中存放所有的虚拟机文件。这种数据存储方式比较安全,当闪存盘或者容量盘出现故障的时候,数据会向其他节点转移,在转移过程中有可能出现故障。

VSAN数据恢复环境&故障:
4台服务器节点组建的VSAN集群,每台服务器节点上有两个磁盘组,每个磁盘组由一个SSD硬盘(闪存盘)带数块SAS硬盘(容量盘)。
VSAN集群中一个服务器节点上的一个磁盘组中的容量盘出现故障离线,VSAN进行数据重构迁移,在数据转移过程中机房突然停电,数据迁移中断没有完成。恢复通电后,该节点上另外一个磁盘组中又有2块容量盘离线,整个存储出现故障。虽然VSAN管理控制台可以登录,但是所有虚拟机都无法访问。

VSAN数据恢复过程:
1、将四个服务器节点上所有硬盘编号后取出,由硬件工程师对所有磁盘进行硬件故障检测,经过检测没有发现有磁盘存在硬件故障。将所有磁盘以只读模式进行全盘镜像,镜像完成后将所有磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析底层数据,分析VSAN存储结构,获取虚拟机所在硬盘的分布信息。北亚企安数据恢复工程师通过分析出来的数据存储结构开发程序测试数据分布信息的准确性。
3、单独分析每个服务器节点上的两个磁盘组,弄清楚磁盘组内闪存盘和容量盘之间的对应关系。每块硬盘都有一个唯一标识进行磁盘间的对应,根据硬盘的ID信息来判读磁盘组中硬盘ID信息。
4、在每块硬盘上获取磁盘的UUID和磁盘组的UUID。
5、根据每个磁盘组中的容量盘组件信息获取此容量盘组件信息。
6、根据容量盘组件信息中记录的组件的MAP位置提取组件位图。
7、根据组件位图提取组件数据和缓存数据。
8、根据组件的描述信息获取组件所属对象及组件顺序,并把组件合并成对象。
9、根据对象提取数据。
10、数据提取完成后对恢复出来的数据进行检测。经过检测,所有恢复出来的虚拟机都可以正常启动。用户方认可本次数据恢复结果。本次VSAN数据恢复工作结束。

VSAN数据恢复总结:
VSAN对象可以看成一个卷,也可以理解成是一个逻辑卷,每个存在于数据存储上的VSAN对象都是由多个组件构成,这些组件分布于集群主机上的磁盘组中。在恢复vsan数据的过程中,获取组件信息是最关键的,因为组件是每个对象的重要组成部分。

这篇关于【VSAN数据恢复】VSAN数据重构迁移失败的数据恢复案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646378

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C