【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虚拟化平台之间进行移植和共享,支持在多种操作系统和硬件环境下运行,并提供灵活的虚拟化解决方案。

相关文章
|
4月前
|
存储 安全 Linux
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
659 0
|
2月前
|
网络协议 API 网络安全
VMware NSX 9.0.1.0 发布 - 下一代网络安全虚拟化平台
VMware NSX 9.0.1.0 发布 - 下一代网络安全虚拟化平台
623 3
VMware NSX 9.0.1.0 发布 - 下一代网络安全虚拟化平台
|
5月前
|
存储 安全 Linux
Proxmox VE 9.0 Beta - 开源虚拟化管理平台
Proxmox VE 9.0 Beta - 开源虚拟化管理平台
625 0
Proxmox VE 9.0 Beta - 开源虚拟化管理平台
|
4月前
|
运维 安全 网络安全
VMware NSX 4.2.3 - 网络安全虚拟化平台
VMware NSX 4.2.3 - 网络安全虚拟化平台
175 0
|
4月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
368 2
|
4月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
314 6
|
5月前
|
存储 缓存 NoSQL
Redis核心数据结构与分布式锁实现详解
Redis 是高性能键值数据库,支持多种数据结构,如字符串、列表、集合、哈希、有序集合等,广泛用于缓存、消息队列和实时数据处理。本文详解其核心数据结构及分布式锁实现,帮助开发者提升系统性能与并发控制能力。
|
9月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
933 0
分布式爬虫框架Scrapy-Redis实战指南
|
3月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
245 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)

热门文章

最新文章