使用VMware ESX troubleshooting恢复VMFS分区

日期: 2009-03-19 作者:Edward Haletky翻译:唐琼瑶 来源:TechTarget中国 英文

在重新配置VMware Consolidated Backup(VCB)代理主机的过程中,我们的虚拟化专家Edward Haletky在访问虚拟机文件系统(VMFS)时遇到了两个问题。首先,他从ESX逻辑单元号(LUN)删除了分区,这可能意味着不能访问在VMFS里的所有数据。下面的文章将描述如何解决这个问题。然后他发现他不能以相同的方法恢复虚拟原始设备映射(RDM),这也可能意味着丢失大量有用的历史数据。

这系列的第二篇文章将说明如何解决这个问题。   作为一名VMware专家,我知道在重新配置服务器之前应该从服务器断开存储区域网络。我们所谈论的服务器是一台备份主机而不是ESX主机,因此我错误地……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在重新配置VMware Consolidated Backup(VCB)代理主机的过程中,我们的虚拟化专家Edward Haletky在访问虚拟机文件系统(VMFS)时遇到了两个问题。首先,他从ESX逻辑单元号(LUN)删除了分区,这可能意味着不能访问在VMFS里的所有数据。下面的文章将描述如何解决这个问题。然后他发现他不能以相同的方法恢复虚拟原始设备映射(RDM),这也可能意味着丢失大量有用的历史数据。这系列的第二篇文章将说明如何解决这个问题。

  作为一名VMware专家,我知道在重新配置服务器之前应该从服务器断开存储区域网络。我们所谈论的服务器是一台备份主机而不是ESX主机,因此我错误地以为Windows会断开SAN。

  删除未知分区是个坏主意

  重新设置后,我的服务器比以前有更多分区。不用多想,我删除了多余的,这是错误的做法。我所删除的分区恰好是VMware ESX LUN要使用的。因此如果我重新启动ESX服务器,它们可能永远不能访问数据。

  这时候,我知道头一天至少有一部分数据已经备份,并在带外。不过我仍然需要恢复虚拟机文件系统(VMFS)和原始设备映射(RDM)。

  VMware ESX troubleshooting 101:检查VMware ESX主机

  检查VMware ESX的第一步是检查ESX主机。我发现虚拟机仍然在运行。显然,ESX就算没有物理分区也可以继续运行。由于ESX仍然在运行,并且我想发现问题所在,就去到服务控制台运行命令fdisk –l,可以看见以下文件:(点击查看

  我想看见的是这些:(点击查看

  这两者之间的不同在于头三个分区(在第二个文件突出显示的)丢失了。

  恢复VMFS

  作过一些研究和取得一些帮助后,我发现了在restoring a VMFS when a partition table has been destroyed上的一个链接,这个PDF很管用。

  为了概括这个文档里的信息,恢复VMFS,你需要使用命令fdisk重建分区表。然后移除启动块到同轴度(proper alignment),刷新并重新扫描分区。

  不过使用fdisk命令存在风险。fdisk命令说明:

  • 添加数字1的新的主分区
  • 首先使用默认设置,然后使用cylinders。
  • 更改分区的系统ID为fb或VMFS分区id
  • 移动分区里的起始数据,为VMFS预留128
  • 在磁盘里写入新分区表然后退出
  • 重复操作获取所有丢失的VMFS分区

  这些命令就如同ESX主机服务控制台里的/dev/sda and /dev/sdc命令:

# fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel.

  更改只保留在内存里,除非你决定写入它们。当然,先前的内容不能恢复。

The number of cylinders for this disk is set to 39162.

  这样做没错,但这比1024大,并且在某些设置下可能会导致两个方面的问题:在启动时间运行软件(如LILO的旧版本(或者从其他操作系统(如DOS FDISK和OS/2 FDISK)启动或划分软件。

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-39162, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-39162, default 39162):
Using default value 39162
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fb
Changed system type of partition 1 to fb (Unknown)
Command (m for help): x
Expert command (m for help): b
Partition number (1-4): 1
New beginning of data (63-629137529, default 63): 128
Expert command (m for help): w
The partition table has been altered!

  通过重新启动没有运行任何虚拟机和重新扫描LUN的单个ESX主机,我测试了我的做法,VMFS成功恢复。

  但我的问题只解决了一半。我不能以同样的方式恢复RDM,因为RDM是Linux LVM2。

  VMware ESX troubleshooting 202:备份虚拟机

  由于VMware ESX虚拟机仍然在运行,我首先执行了系统备份。在从Fibre Channel网络断开VMware vCenter从前叫做VirtualCenter)后,我使用Microsoft Windows 2003重新启动和重新配置VMware Consolidated Backup (VCB)代理服务器。接下来,我重新安装Microsoft SQL、VMware vCenter Server和备份软件VizionCore vRanger Pro

  安装VizionCore vRanger Pro后,我继续对每台ESX虚拟机进行备份,这花费了12小时。一台虚拟机使用299GB的RDM。没有VCB集成(我已经连接到光纤电缆),备份特别的文件花费时间长。这个特别的虚拟RDM包括文件服务器和所有相关的重要文件。它碰巧也是一个Linux LVM2磁盘,这对于Linux用户来说很平常,不过使得恢复更加困难。

  经验教训

  由于误删了表面上没关联的分区,最终却花费了四天才解决问题。因此,当一个例行过程看起来反常时,在行动之前要考虑清楚。尽管我也准备恢复RDM,盲目地行动和删除这些分区消耗了我四天时间。

  如果你发现自己也有这样的困惑,记住,运行虚拟机仍然可以。你应该立即备份虚拟机。不过虚拟RDM读原始磁盘,不是目前在使用中的内核数据结构,因此当执行备份时,分区将被删除。所以使用一些文件副本形式备份RDM。

相关推荐