【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例

简介: 在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。

一:案例描述

知己知彼,方能百战百胜,数据恢复也是一样,详细了解数据丢失的过程,可以使数据恢复更加简单,与客户详细沟通得知故障原因如下:整个VMware vSphere共控制多个集群,其中出现故障的集群使用的vSAN分布式结构存储,故障原因是一台存储中的1个磁盘组的闪存盘出现故障,磁盘指示灯报错,但是数据能够正常使用,于是更换一块新的SSD硬盘上去,但之前的磁盘组不认这个硬盘,故磁盘组失效,维护人员重新选择该磁盘组的2块HDD与新的SSD重新组成一个新的磁盘组,并重新加入vSAN分布式存储集群,2小时后同步完成,集群能够正常访问,但涉及该磁盘组的虚拟机中,有一台虚拟机无法启动,检查后发现该虚拟机的VMDK文件变成1KB大小。

二:解决方案

1.案例评估

通过我司技术工程师现场分析梳理,发现出现问题的虚拟机存储策略与其他正常虚拟机策略不一致,该虚拟机采用的是RAID0结构的策略,并且未使用置备,其他虚拟机均采用RAID1策略,使用100%置备。重建该磁盘组的时候,其实涉及存储在该磁盘组的虚拟机已经全部出现故障,但是由于使用100%置备策略的原因,已经自动降级,然后自动恢复并且又继续使用100%置备策略,故这些虚拟机都能够自动恢复成正常的状态,但没有使用该策略的虚拟机则不能自动恢复,出现数据丢失。vSAN与VMware传统的VMFS文件系统存在一定的相似性,可以理解为vSAN是一个大的分区,这个分区内每一个文件夹都是VMFS相似的结构。首先访问vSAN,才能访问下一层级的VMFS文件系统,只不过在vSAN下面的VMFS文件系统内,对虚拟磁盘VMDK文件的存储有特殊的定义。

VMDK1.jpg

用户在vSAN内新建一个虚拟机,该虚拟机配有1个VMDK文件,系统在生成这个VMDK文件时,同时会生成1个虚拟对象,并使用UUID来进行关联,通过网页访问vSphere时,我们可以在该虚拟机目录下发现该VMDK文件,并且大小为正常大小。

但是我们通过SFTP的方式进行访问,就会发现该VMDK大小文1kb,因为使用外部访问VMDK文件时,系统并不会自动关联VMDK文件和虚拟对象。

同理,如果虚拟对象出现故障,无法正常访问,关联失效,那么使用网页访问vSphere时,我们看到与之关联的VMDK文件也会变成1kb。(大小未满1kb同一按1kb计算)

VMDK2.jpg

我们可以下载1kb的VMDK文件,使用txt打开后可以看到与之关联的虚拟对象的UUID,红框内就是与之关联的虚拟对象ID:

VMDK3.jpg

我们可以在集群里面选择监控,里面可以查看虚拟对象的情况:

VMDK4.jpg

然后根据虚拟对象ID查看该虚拟对象的物理存储位置,由图我们可以看到,该虚拟对象是一个RAID 0,由多个组件组成,组件的状态为缺失:

VMDK5.jpg

2.恢复方案

数据恢复思路如下:

1)记录下该虚拟对象下面每个组件的所在的主机、缓存磁盘、物理磁盘。

2)解析出该物理盘内分配给此虚拟对象的空间。

3)从缓存磁盘内解析已分配但是还未写入的空间地址。

4)使用工具手动提取这些扇区地址并组合成一个完整的组件。

5)使用提取的所有组件重组RAID 0,即可访问该虚拟对象内的所有数据。

第一步:解析出与故障VMDK文件对应的虚拟对象。

第二步:依据获取的虚拟对象的ID,在vSphere监控里面查看该虚拟对象的结构。

有些极端情况下,该虚拟对象已经在vSphere监控里面丢失,无法找到该虚拟对象,则需要手动分析,访问硬盘底层扇区,呈现结构如下。解析vSAN分布式存储的分区在该HDD和SSD上占用的空间,在这些空间内可以通过16进制数编辑器解析出丢失的虚拟对象ID,提取指定虚拟对象或VMDK虚拟磁盘文件。

vSAN2.jpg

第三步:依据获取的虚拟对象ID,从硬盘提取隶属于该ID的组件成员,重组RAID,获取丢失的数据,提取vSAN分布存储在该磁盘组中的组件数据,可以提取出整个虚拟对象的组件,然后重组RAID即可恢复出丢失的数据。

VMDK6.jpg

三:案例总结

vSAN是一种以vSphere内核为基础进行开发,基于VMware ESXi虚拟化平台的可扩展的分布式存储架构。vSAN通过在vSphere集群主机当中安装闪存和硬盘来构建vSAN存储层。这些设备由vSAN进行控制和管理,vSAN形成一个供vSphere集群使用的统一共享存储层。VMDK(虚拟机磁盘)是由VMware开发的一种虚拟机磁盘格式,是存储虚拟机硬盘的标准格式之一。在虚拟化环境中,VMDK文件作为一个磁盘驱动器,包含虚拟机的操作系统、应用程序和数据等。VMDK文件是一个包含所有虚拟机磁盘信息的文件,其文件格式由多个数据文件和一个描述文件组成。数据文件是虚拟磁盘的实际数据,而描述文件则包含了磁盘的配置信息、虚拟机的硬件配置和磁盘文件的信息。VMDK文件可以在不同的VMware虚拟化平台之间进行移植和共享,支持在多种操作系统和硬件环境下运行,并提供灵活的虚拟化解决方案。

相关文章
|
10月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
652 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
10月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
292 12
|
6月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
577 4
|
7月前
|
存储 固态存储 Linux
从 0 学服务器虚拟化:VMware 搭建 3 个虚拟主机,个人 / 小企业够用的方案
服务器虚拟化技术通过在单台物理机上运行多个虚拟机,显著提升资源利用率和管理灵活性。本文以 VMware ESXi 8.0 Update 3e 为例,详解如何搭建经济实用的虚拟化环境,支持 3 个虚拟主机稳定运行,适合个人开发者和小企业降低硬件投入、实现数据本地化与安全存储。
1608 0
|
Java 关系型数据库 MySQL
新一代 Cron-Job分布式任务调度平台 部署指南
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
422 101
|
10月前
|
存储 数据挖掘
Vsan数据恢复——Vsan分布式文件系统数据恢复案例
一台采用VsSAN分布式文件系统的存储设备由于未知原因关机重启。管理员发现上层的虚拟机不可用,存储内的数据丢失。
276 30
|
弹性计算 安全 数据库
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
作为云计算服务核心组件,虚拟化内存管理直接影响业务系统性能表现。本文详解了内存优化方案与技术实践,助您降低30%资源浪费。
297 0
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
|
8月前
|
存储 安全 虚拟化
全面解析服务器虚拟化:云计算时代的核心技术架构
服务器虚拟化是云计算的核心技术,通过资源池化提升IT效率。本文详解其原理、部署优势及在数字化转型中的关键作用,涵盖技术架构、应用场景与选型指南,助力企业构建高效灵活的云环境。
795 0
|
12月前
|
存储 虚拟化 数据中心
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 标准版和厂商定制版,已适配主流品牌服务器
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 标准版和厂商定制版,已适配主流品牌服务器
315 5
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 标准版和厂商定制版,已适配主流品牌服务器
|
11月前
|
SQL 监控 Go
新一代 Cron-Job分布式调度平台,v1.0.8版本发布,支持Go执行器SDK!
现代化的Cron-Job分布式任务调度平台,支持Go语言执行器SDK,多项核心优势优于其他调度平台。
239 8