当前位置: 首页 > news >正文

恢复误删除的ESXi服务器存储VMFS卷

如果不小心误删除了VMFS卷,使用partedUtil命令恢复即可。partedUtil是VMware ESXi的命令行实用程序,可以在ESXi上直接操作本地和远程 SAN 磁盘的分区表。

【说明】只有 ESXi 5.x 上的磁盘分区才支持使用 partedUtil 命令行。命令行实用程序 fdisk 不能用于采用 VMFS5 格式的 LUN。本文用于VMware ESXi 5.x、VMware ESXi 6.0格式化为VMFS 5的卷。

当前有一台DELLR 730XD的服务器,其中10块硬盘使用RAID-50划分为2个卷,第1个卷30GB,安装ESXi 6.5.0系统,第2个卷使用剩余空间,大小29.08TB,如图1-1所示。

blob.png

图1-1 VMFS卷

从图1-1中可以看到,这个29.08TB的设备名称为naa.61866da07cda6500209430db1f953ce5;30GB的设备名称是61866da07cda650020942f720a174f8c。

下面我们模拟这个操作(当前是测试机器,请勿在生产机器、有重要数据机器实验,否则由此造成的损失,本文概不负责!)

(1)在“存储设备”中右击29.08TB的存储,右击选择“删除数据存储”,如图1-2所示。

blob.png

图1-2 删除数据存储

(2)在弹出的“确认删除数据存储”对话框中,单击“是”按钮,如图1-3所示。

blob.png

图1-3 确认删除数据存储

(3)此时在“数据存储”列表中已经没有该存储,如图1-4所示。

blob.png

图1-4 无29TB存储

(4)但在“存储设备”列表中仍然可以看到该存储容量及设备名称,如图1-5所示。

blob.png

图1-5 存储设备查看名称

使用SSH登录到ESXi主机,通过命令查看磁盘列表、查看分区信息然、创建分区表。下面一一介绍。

(1)查看磁盘列表,在命令提示符中执行:

ls /vmfs/devices/disks

命令结果如图1-6所示。

blob.png

图1-6 查看磁盘列表

此时可以看到设备名为“naa.61866da07cda6500209430db1f953ce5”已经无分区表,如果有分区表,例如设备名“naa.61866da07cda650020942f720a174f8c”(这是ESXi系统卷,该卷有多个分区),后面会有:1的分区数目及vlm的名称。如果我们要恢复分区表,只要为这个29TB创建分区表即可恢复。

【说明】在图1-6中看到的“naa.500080dc004ff330”是图1-1中的大小为447GB的SSD磁盘,而“naa.500080dc004ff330:1”表示这个磁盘的第1个分区,对应图1-4中的data-ssd01卷。图1-6中的磁盘列表、分区列表与图1-1、图1-4的对应关系如表1-1所示。

表1-1 设备标识符、设备名称、数据存储名称说明

ESXi中设备标识符

图1-1中的“设备”名称

图1-4中的数据存储名称

说明

naa.500080dc004ff330

SSD、447GB


一个500GB的固态硬盘

naa.500080dc004ff330:1


data-ssd01


naa.50014ee0042fd6fd

非SSD、4TB



naa.50014ee0042fd6fd:1


VMFS-Backup-4TB

1个4TB的Non-RAID磁盘

naa.61866da07cda650020942f720a174f8c

非SSD、30GB


RAID卡划分的第1个卷,安装ESXi系统

naa.61866da07cda650020942f720a174f8c:1



systemPartition,系统分区

naa.61866da07cda650020942f720a174f8c:2



旧版MBR,linuxNative

naa.61866da07cda650020942f720a174f8c:3


os-esx01

vmfs

naa.61866da07cda650020942f720a174f8c:5



旧版MBR,linuxNative

naa.61866da07cda650020942f720a174f8c:6



旧版MBR,linuxNative

naa.61866da07cda650020942f720a174f8c:7



VMware诊断,vmkDiagnostic

naa.61866da07cda650020942f720a174f8c:8



旧版MBR,linuxNative

naa.61866da07cda650020942f720a174f8c:9



VMware诊断,vmkDiagnostic

naa.61866da07cda6500209430db1f953ce5

非SSD、29TB


RAID卡划分的第2个卷,用于保存虚拟机





【说明】设备名为naa.61866da07cda650020942f720a174f8c的30GB的卷一共划分了8个分区(没有:4的分区),这是安装ESXi 的过程中创建的多个分区,有Linux引导分区、VMware 诊断分区,这些大约占用7556MB,而剩余的空间则划分为VMFS文件系统卷,剩余的卷在第3个分区,剩余容量大约22.5GB。

(2)使用partedUtil getptbl分别查看447GB、4TB、29TB磁盘的分区信息,对比差别。命令分别如下

partedUtil getptbl /vmfs/devices/disks/naa.500080dc004ff330

partedUtil getptbl /vmfs/devices/disks/naa.50014ee0042fd6fd

partedUtil getptbl /vmfs/devices/disks/naa.61866da07cda6500209430db1f953ce5

查看分区信息,如图1-7、图1-8所示。

blob.png

图1-7 有分区表的两个卷

blob.png

图1-8 29TB卷已经无分区表

对比图1-7、图1-8可以看出,“naa.61866da07cda6500209430db1f953ce5”(29TB卷)已无分区表。

(3)为29TB的卷创建分区表,命令及参数如下

partedUtil setptbl "/vmfs/devices/disks/ naa.61866da07cda6500209430db1f953ce5" gpt "1 2048 62440603614  AA31E02A400F11DB9590000C2911D1B8 0"

上述命令中的1 表示第一个分区,是主分区。2048表示vmfs-5分区开始扇区 。AA31E02A400F11DB9590000C2911D1B8 是VMFS GUID ,而62440603648是29.08TB卷的扇区数即图1-8中的62440603648再减去34得到。

命令及命令执行结果如图1-9所示。

blob.png

图1-9 创建分区

【说明】在本示例中,VMware ESXi卷被格式化为VMFS-5。对于VMFS6的卷,其扇区差异可能不全是34,也可能是1713,这些需要进一步查参数。

(4)然后在vSphere Client中重新扫描存储,可以看到原来被删除的存储已经出现,只是显示为“灰色”,右击该存储选择“挂载”,如图1-10所示。

blob.png

图1-10 挂载非活动存储

(5)之后存储挂载完成,并且可以看到存储的信息,如图1-11所示。

blob.png

图1-11 被删除的VMFS卷恢复

(6)浏览存储,可以看到数据仍然存在,如图1-12所示。至此存储恢复完成。

blob.png

图1-12 存储恢复成功

 

总结:vSphere的用户,在管理ESXi与vCenter Server服务器的时候,在对虚拟机、存储进行操作,例如扩容、删除这些有一定“危险性”的操作时,一定要多次确认,只有确认虚拟机不再使用时,才可以删除。只有确认存储上的数据已经迁移完成并且没有有用数据时,才能删除。但如果误操作删除了存储或虚拟机,第一时间用正确的方法恢复,数据一般不会丢失。


更多虚拟化课程及视频,请单击“VMware系统集成工程师”专题,2017年12月31日前8折,仅1600元。

http://edu.51cto.com/topic/1308.html



相关文章:

  • .NET 反射的使用
  • vim/vi卡死
  • ECSHOP修改后台地址
  • WebCast听课录(5)
  • 数字音乐维权联盟首次出招 QQ音乐起诉酷我索赔千万
  • Pure-ftpd无法连接到服务器 425错误
  • 华为交换机ntp设置
  • 同源策略
  • 硬盘驱动器
  • Powershell 修改AD用户属性
  • Unicode和多字节的相互转换
  • 基于C++任意点数的FFT/IFFT(时域和频域)实现
  • 第 19 章 Class
  • 双击防止网页放大缩小HTML5
  • 多种方式求阶乘
  • Google 是如何开发 Web 框架的
  • #Java异常处理
  • $translatePartialLoader加载失败及解决方式
  • ES6 ...操作符
  • JavaScript设计模式系列一:工厂模式
  • Java的Interrupt与线程中断
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Otto开发初探——微服务依赖管理新利器
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis的resp协议
  • sessionStorage和localStorage
  • springMvc学习笔记(2)
  • 回顾2016
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 小而合理的前端理论:rscss和rsjs
  • 原生 js 实现移动端 Touch 滑动反弹
  • 找一份好的前端工作,起点很重要
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​iOS实时查看App运行日志
  • #### go map 底层结构 ####
  • %check_box% in rails :coditions={:has_many , :through}
  • (1)(1.13) SiK无线电高级配置(六)
  • (2)STL算法之元素计数
  • (4)(4.6) Triducer
  • (C语言)二分查找 超详细
  • (day6) 319. 灯泡开关
  • (ZT)出版业改革:该死的死,该生的生
  • (备忘)Java Map 遍历
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三)uboot源码分析
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core 连接数据库,通过数据库生成Modell
  • .net 程序发生了一个不可捕获的异常
  • .NET4.0并行计算技术基础(1)
  • .net和jar包windows服务部署
  • .NET中使用Redis (二)
  • @GlobalLock注解作用与原理解析
  • @ModelAttribute使用详解