如何在物理主机上挂载Xen虚拟机存储设备?

日期: 2008-12-16 作者:Sander van Vugt翻译:王越 来源:TechTarget中国 英文

如果你所使用的Xen虚拟机出现故障,不能正常启动的话,可以考虑把虚拟机的后端存储设备挂载到基于Xen服务器的Linux文件系统上,这是一个不错的解决办法。通过这个方法,你可以轻松地修复虚拟机。在本文中我将介绍的是如果后端存储设备是物理设备的话以及本方法是如何完成的。   为什么要把虚拟机挂载到物理机上?   Xen使用的是虚拟硬盘驱动(VHD:Virtual Hard Drive),这个VHD存放在基于Xen系统的一台主机上。

出于本文的写作目的,我把VHD在主机上存放的位置称之为后端存储设备。针对后端存储设备现在有两种常见的配置方案:最简单的解决方法是使用磁盘文件镜像,这个磁盘文件镜像是通过宿……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

如果你所使用的Xen虚拟机出现故障,不能正常启动的话,可以考虑把虚拟机的后端存储设备挂载到基于Xen服务器的Linux文件系统上,这是一个不错的解决办法。通过这个方法,你可以轻松地修复虚拟机。在本文中我将介绍的是如果后端存储设备是物理设备的话以及本方法是如何完成的。

  为什么要把虚拟机挂载到物理机上?

  Xen使用的是虚拟硬盘驱动(VHD:Virtual Hard Drive),这个VHD存放在基于Xen系统的一台主机上。出于本文的写作目的,我把VHD在主机上存放的位置称之为后端存储设备。针对后端存储设备现在有两种常见的配置方案:最简单的解决方法是使用磁盘文件镜像,这个磁盘文件镜像是通过宿主操作系统来创建的,也是虚拟机安装其文件的位置;另外一个方法就是使用一个物理设备作为一个后端存储设备,这个设备可以是一个逻辑卷、一个分区或者是一个存储区域网络(Storage Area Network,即SAN)上的逻辑单元号(Logic Unit Numbers,即LUN)。本质上你可以使用任何存储设备来完成,并且由于在性能上比较高效,所以这个方案现在用得比较广泛。

  通过在宿主操作系统上挂载一个虚拟机,你可以很轻松地完成任何必要的系统维护工作。如果虚拟机上运行的是Linux操作系统,这个方法使用起来就更方便了,因为Xen宿主操作系统也是一个Linux。另外一个原因是有一个虚拟机维护的工具在Linux宿主系统下默认安装的,这个工具是基于Xen环境下虚拟机维护最有用的工具。但是即使虚拟机使用的是Windows系统,也有多种方法,你可以使用NTFS中的维护工具,这些工具在当前系统中都是可用的。

  如果宿主操作系统中没有你所需要的工具(对于一些高级NTFS工具,会有这种情况),你就需要从一个安装有Linux系统的CD(如Knoppix)重启物理机。在这种情况下,要注意一个问题:一定要把基于Xen服务器的所有其它正常运转的虚拟机迁移到网络中的其它物理服务器上。

  挂载一个物理后端存储设备

  对于挂载一个后端存储设备,重要的是首先需要确定要挂载的设备类型。这是因为挂载一个物理设备的程序和挂载一个磁盘镜像文件的程序有很大的不同,我会在以后的文章中阐述如何使用Xen镜像文件。
  
  首先我们假设后端存储设备在主机上是可见的,文件名是/dev/hosts/vm1,并且作为一个逻辑卷管理器(Logical Volume Manager,即LVM)而存在。另外,如果你使用其他设备(如一个分区、一个完整的硬盘或者SAN上的一个LUN),这个方法也同样适用。唯一需要做的就是把文件名/dev/hosts/vm1根据你所使用的设备改为正确的名字。

  在Xen虚拟机上,物理后端存储设备包括一个完整的硬盘,就是说在磁盘内也有一个分区表。为了在后端存储设备上依次挂载文件系统,你首先需要知道后端存储设备是如何分区的。可以使用下面的这个命令来查看存储设备的分区情况:

  fdisk –l /dev/host/vm1

  现在就可以知道存储设备的分区情况了。但是由于宿主操作系统不能识别这些分区,并且在宿主操作系统中也没有对应的设备文件,所以现在仍然不能挂载这些分区。不过可以使用kpartx这个工具,这个工具是多路径工具包的一部分,使用它可以创建这些设备文件。具体使用这个工具的命令如下:

  kparts –a /dev/host/vm1

  运行这个命令之后,就可以在/dev/mapper目录下看到所有需要的设备文件了。这些设备文件都是以你使用的设备的名字开头,紧接着的是特定设备的一个分区号。如/dev/host/vm1的第一个分区就变为了/dev/host/vm1p1。

  接下来,需要找到存放根文件系统的分区。在找到这个分区之后,你就可以把这个分区挂载到物理机上了。如果你不能确定存放根文件系统的分区,逐个挂载这些分区,一一尝试。假设根文件系统在vm1上的第二个分区,使用如下命令挂载该分区:

  mount /dev/mapper/vm1p2/mnt

  运行上述命令之后,你就可以访问虚拟机的后端存储设备上的所有文件了。此时,因为你拥有对全部的文件系统的全部访问控制权限,所以你对虚拟机的任何修改操作都将存储在这些文件中。最后要记住卸载这个分区并且使用kpartsx命令移除你所创建的临时设备文件。可以使用下面两个命令完成这个操作:

  umount /mnt
  kpartx –s /dev/host/vm1

  小结

  通过上述介绍可以知道在排除虚拟机的故障的时候没有必要使用花费很大的修复工具,仅通过挂载虚拟机的后端存储设备就可以。另外通过本文的介绍,你也可以掌握对于后端存储设备存放在硬件设备内的情况下,如何通过挂载后端存储设备来修复虚拟机。

翻译

王越
王越

相关推荐

  • VMware快照工作原理以及如何运用

    当你更新或修复应用程序和服务器时,VMware快照无疑是你的救星。而如果你负责监管虚拟环境,你更是应该知道什么 […]

  • 配置ESXi Autostart,自动打补丁

    顾名思义,VMware ESXi Autostart能够实现自动开启、关闭ESXi服务器上的虚拟机,让虚拟机管理变得更轻松。如果运行了多个虚拟机并且给主机打补丁后需要重启主机,那么ESXi Autostart的作用就更大了,没有Autostart的话,你需要在给主机打补丁后,手动重启每个虚拟机。

  • 推荐一款好的虚拟主机提供商

    推荐一款好的虚拟主机提供商 推荐理由:   第一:种类多:有经济型,全能型,功能型等   […]

  • 哪里的虚拟主机最便宜?

    鱼和熊掌不可兼得, 想要找即便宜又好用的虚拟谁有办法? 我来推荐一款,可以了解 新网云虚拟主机一年只要1元钱 […]