正在阅读:超越虚拟化 VHD走出虚机变身物理系统超越虚拟化 VHD走出虚机变身物理系统

2009-03-20 12:23 出处:PConline原创 作者:佚名 责任编辑:heyaorong
1虚拟磁盘VHD文件介绍回顶部

  经常接触微软虚拟化技术的同学都很清楚什么是VHD(Virtual Hard Disk),只不过之前我们都把VHD定位在了虚机的磁盘系统中。在Windows7中,我们惊喜地发现,新视窗系统的磁盘管理功能中增加了创建和挂接VHD磁盘的字样。与Windows7同期发布测试的Windows Server 2008 R2是基于同样的内核和架构,所以,Windows Server 2008 R2 也具备这个功能。支持VHD文件功能对本身就作为Hyper-V虚拟化平台的Server 2008更具有特别意义。

系统内建的VHD支持

  一直以来我们都简单的把VHD看作微软虚机的虚拟磁盘,虽然在虚机上我们看VHD是一个磁盘;但从外部来看,VHD也就是一种文件格式,我们从中看不出什么特别之处。直到Windows7测试版的出现,从此以后VHD不再是个特定格式的文件了,因为在windows7和Server 2008 R2平台上,加载VHD文件可以直接变成系统硬盘来使用。

  早在2005年微软就公布了VHD格式文件的全部细节,微软05年给出技术文档中早就说明了微软不仅仅要把VHD应用在虚拟机领域,更希望VHD能够成为一种新的磁盘格式和载体在业界得到更多的支持。我们这可以这样理解微软对于VHD的远景,微软希望VHD成为硬盘载体一样,就像2.5寸、3.5寸、SCSI、SATA、IDE等不同规格的硬盘一样,VHD是在一个文件中的硬盘。

  简单的说,要把VHD文件当作硬盘一样读写,必须有相应的驱动程序。在VServer和Hyper-V中,微软就是通过在虚机中加入VHD的驱动程序,使得虚拟机可以从VHD启动并进行后续的磁盘操作功能。

  作为微软新一代桌面和服务器操作系统的代表,Windows 7和Server 2008 R2的启动部分和内核驱动程序都内置了对VHD文件读写的支持,微软把VHD的驱动内置进了操作系统,也包括在了操作系统的引导程序中。这也就是说,我们在使用这两种操作系统的时候,可以直接访问VHD文件中的内容,也可以通过Windows的系统引导程序,启动位于VHD磁盘上的原本属于虚机的操作系统。 

  下面我们就在Server08R2上体验下VHD磁盘,虚机终于可以走到现实中来了。兄弟,Welcome to the real world……

  Windows Server 2008 R2内建VHD磁盘支持

  Pre-Beta阶段的Server 08 R2通俗代号是Windows 7 Server,这说明Server 2008 R2与Windows7使用同样的内核,所以二者基本功能特性都互相一致。当然,可能关注Windows7的人更多一些,所以发现Server 08 R2平台同样支持VHD虚拟磁盘功能,实际上,本人这个功能在企业环境里体现的作用甚至更大于桌面应用。

VHD引导启动

    在系统设备管理器的磁盘设备中比XP、Vista多了一个“虚拟磁盘设备”,就是这个虚拟设备提供了系统对VHD的支持能力。

VHD引导启动

测试平台见上图,已经装有Server 2008 R2企业版,4G内存,不同于Windows7的是2008R2只有64位版本。

 VHD引导启动

系统上有一个本地硬盘,大小是500G,共分为4个分区,原本装有XP与08R2双系统,在08R2系统中,XP系统分区已经自动隐藏。两个系统分别共享D和E文件程序的存储分区。

VHD引导启动

  在Windows的磁盘管理器中,右键弹出菜单,已经有两个关于VHD的选项,分别是创建和添加。创建VHD过程就跟虚拟机中添加虚拟磁盘的操作一样。

VHD引导启动

如果已经有现成的VHD文件,则可以直接添加VHD。在这里创建的过程就不絮述,用过虚机都不会陌生的。

2windows7内建支持VHD引导启动回顶部

添加VHD作为启动分区,把虚机拉出虚拟化平台

VHD引导启动

之前安装的Server 08 R2一直作为是虚拟化平台来使用,已经有几个虚机的VHD,都是在虚机上安装好了各自的系统。选择好确认的VHD文件,确定打开,过程相当简单。

VHD引导启动

确定后,磁盘管理界面中就出现了两个硬盘的信息,上图中的磁盘1,就是由VHD文件虚拟出来的磁盘分区。这感觉跟系统中新加了一块硬盘一样。 

VHD引导启动
VHD引导启动
VHD引导启动

  让磁盘管理中对VHD分区赋予盘符之后,就能在Windows资源管理器中打开查看和读写操作,这跟普通磁盘分区一样,使用起来没有任何差别。能在现有的系统中打开VHD还不能代表能使用其上原本已经安装好的虚机系统。还需要手动修改现有系统的启动引导程序和启动菜单。 这就需要BCDEDIT和BCDBOOT命令来实现。

3设置VHD分区引导启动系统回顶部

修改VHD系统启动信息

    而之前所选的VHD文件中安装的08R2系统本身已经支持VHD分区的引导,所以不需要使用ImageX来给分区添加引导启动信息。

VHD引导启动
VHD引导启动

用下面的命令取得当前磁盘的GUID,所谓的GUID是设备独一无二的一段识别代号。

C:\>bcdedit /copy {current} /d "……"

得到的GUID在下面就要用到。

VHD引导启动

C:\>bcdedit /set <guid> device vhd=[driveletter:]\<directory>\<vhd filename>
C:\>bcdedit /set <guid> osdevice vhd=[driverletter:]\<directory>\<vhd filename>
C:\>bcdedit /set <guid> detecthal on

    上面的命令是通过Bcdedit读取VHD文件改写启动项目,许可VHD的引导启动。可以老老实实在cmd里敲,懒一点的话可以做成.dat文件。注意的是GUID不能有错哦。

   重启,然后等着看好戏吧。 

    VHD引导启动
这是原本的启动菜单项目,上面是XP,下面是物理的08R2
VHD引导启动
VHD引导启动
现在重启以后,多一个VHD的选项,这个就是来自虚机的系统

启动VHD系统
启动VHD系统
选择这个VHD系统,启动后貌似分辨率没有之前的08R2高
启动VHD系统

进入系统,这个已经不是先前我们使用的08R2了,很明显,这是我之前在虚机上安装的系统,虚机现在已经脱离了Hypervisor了。 

4VHD文件对于企业应用的意义所在回顶部

VHD引导启动 

现在很难说明这个系统是叫虚机还是叫物理机,打开文件管理器,C盘看大小就是来自VHD分区,D和E还是原先的物理硬盘,用08R2的好处就是把多系统的其他系统分区隐藏掉。

VHD引导启动

    现在很确实很难说明白这个系统是不是虚机了,或者介乎虚拟和物理之间,这可能是一个及其可怕的逻辑和哲学问题。

    我们来看系统属性,原本分给虚机的1G内存变成了物理的全部内存都认出来了,磁盘也跨越了VHD和物理磁盘。或者,管它这个系统是什么呢,虚拟或者物理其实在这区别不大,因为使用起来确实没有太大的却别,要说具体区别在哪,其实只要用测试磁盘的根据测一下VHD与物理分区的差异就知道了。

VHD对于企业应用的意义

  利用VHD虚拟的磁盘分区,简单的说,我们可以隐藏和保护重要文件甚至安装操作系统,比如陈冠希同学的那些文件,要是他一早知道这个办法,必定会把照片放在VHD中,用现在一般文件浏览方法根本无法打开,更不要说去窃取了。

  对于企业用户,VHD文件可以用于服务器上,虚拟出多个硬盘分区,据说在Server 08 R2和Windows7中一共支持最多512个这样的逻辑分区。通过客户端访问可以同一服务器上安装于多个虚拟硬盘上的操作系统或虚拟硬盘中的文件。一方面,可节约硬件成本。另一方面,可让不同的客户端享有不同的服务。另外,也利于备份、维护和安全——在服务器端,管理员只要管理好对应的VHD文件即可。

  另外VHD功能也让多系统变得简单,根本不用为分区烦恼,一个系统就一个vhd镜像,一个崩溃了复制一份VHD文件替换即可,就像用虚拟机一样。

  在未来我们存储文件不单单是放在一个文件夹中携带走,而更多的可能会创建一个VHD,将相关的文件存储在其中,使我们能更加方面的携带,并且将其挂载到Windwos7或2008系统上,甚至是在虚拟机种将其打开。

  缺点:配置起来也是有一点的麻烦,这个可以通过编写脚本来简化配置过程,毕竟现在Windows7和08R2还处在Beta阶段,等正式版发布的时候,也许会有些更简洁的途径来实现这些功能。 

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品