停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

超越虚拟化 VHD走出虚机变身物理系统zz

上一篇 / 下一篇  2009-03-25 18:33:14 / 个人分类:Windows

51Testing软件测试网Cs9p&]']Q:s4qC

出处:pconline2009年03月20日作者:佚名责任编辑:heyaorong51Testing软件测试网jr'T|!i8Y?&r

51Testing软件测试网!{w2X0^ P#x:]6em

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

系统内建的VHD支持51Testing软件测试网$d(rY*q^^1Q2Y#~S

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

E tjbGFH;mM0

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

3r!A wI/MQ2b0

1qnt!d{6t0  简单的说,要把VHD文件当作硬盘一样读写,必须有相应的驱动程序。在VServer和Hyper-V中,微软就是通过在虚机中加入VHD的驱动程序,使得虚拟机可以从VHD启动并进行后续的磁盘操作功能。51Testing软件测试网 Bz#K$`~$i9D j8gT

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

51Testing软件测试网IQH-hy s

  下面我们就在Server08R2上体验下VHD磁盘,虚机终于可以走到现实中来了。兄弟,Welcome to the real world……51Testing软件测试网`E'w/N&@.J7b;x

3?oy`/L0  Windows Server 2008 R2内建VHD磁盘支持

vj/B1ZN:m0_0

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

VHD引导启动

ySa fnF8GD Q0

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

e/?"w F#q q3GX*S!I0

VHD引导启动51Testing软件测试网p$u$EkQt3L

测试平台见上图,已经装有Server 2008 R2企业版,4G内存,不同于Windows7的是2008R2只有64位版本。51Testing软件测试网7m.Z9P_Q0Z"k

 VHD引导启动51Testing软件测试网kM#n3xx(C?+W

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

VHD引导启动51Testing软件测试网#e$Bli;np5}

51Testing软件测试网} Jx'{z

  在Windows的磁盘管理器中,右键弹出菜单,已经有两个关于VHD的选项,分别是创建和添加。创建VHD过程就跟虚拟机中添加虚拟磁盘的操作一样。51Testing软件测试网^2_st4H/iM3c

VHD引导启动

]ee4GYb0

如果已经有现成的VHD文件,则可以直接添加VHD。在这里创建的过程就不絮述,用过虚机都不会陌生的。51Testing软件测试网5n0ol T$L

Z8v] L;M{f!_1w| m0

8z Rn%I HfGfx0

添加VHD作为启动分区,把虚机拉出虚拟化平台51Testing软件测试网:z j[q/xA.J

VHD引导启动51Testing软件测试网3ul dou\SN

之前安装的Server 08 R2一直作为是虚拟化平台来使用,已经有几个虚机的VHD,都是在虚机上安装好了各自的系统。选择好确认的VHD文件,确定打开,过程相当简单。51Testing软件测试网n"|@5u*Ff_ W"rA

VHD引导启动51Testing软件测试网1lO(p la o

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

.{9]d}W0

VHD引导启动
Y7JW3g*L5Z q0VHD引导启动
+[I$m4E5i H0VHD引导启动51Testing软件测试网 B v;{1wVV

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

^1q3h+I_0

5M0? P#o gsy051Testing软件测试网Gx-UOZ&m

51Testing软件测试网@,MU*Xfg

修改VHD系统启动信息51Testing软件测试网N,g [f+d!d,DY-W

51Testing软件测试网 Xx.G,u7I;K)u

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

g'Wo_i_Nz0

VHD引导启动
[#Lz2_-^I A0VHD引导启动51Testing软件测试网KjwkS yY$af'y

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

WOkmVq0

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

/f/h%J9j J@0

得到的GUID在下面就要用到。51Testing软件测试网CO)R3e R_\_

VHD引导启动51Testing软件测试网:hd:{k0Jr!Q/I

C:\>bcdedit /set <guid> device vhd=[driveletter:]\<directory>\<vhd filename>51Testing软件测试网7I5}NeH5rO
C:\>bcdedit /set <guid> osdevice vhd=[driverletter:]\<directory>\<vhd filename>51Testing软件测试网'ENv5G9\~x
C:\>bcdedit /set <guid> detecthal on

ndAyx)Yn\'cZW ht0

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

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

Pz3Y9L&Un0M0

    VHD引导启动
9\f'hKnEsQ0这是原本的启动菜单项目,上面是XP,下面是物理的08R2
f"`+r-h-Y0VHD引导启动
9H O8d/`.]!U3K f c#|0VHD引导启动
)P1e&[e{j0现在重启以后,多一个VHD的选项,这个就是来自虚机的系统

g}A)z9P"WTQ6X1\0

启动VHD系统
A3Kc)x,yL m0启动VHD系统51Testing软件测试网t]&hs;c9K1o;{\8q
选择这个VHD系统,启动后貌似分辨率没有之前的08R2高51Testing软件测试网3Ec3~0m/z3S
启动VHD系统51Testing软件测试网 u&X-j3s"x@

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

E&DW\ c4Lo`0

1qc4k*e A!AAD[ A0

{;e S9FF$Z0

VHD引导启动 

;M2Y1J:W0O0

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

VHD引导启动

t|w(bGPd0

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

E0kJ;K;`'iE[(A0

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

VHD对于企业应用的意义

,tF,|lN+O051Testing软件测试网,DH6HyLt?l,D`

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

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

51Testing软件测试网A$mhKVGxT_1o z

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

P9y8y)dE$C-j7{B!M0

W.RL/uP a0  在未来我们存储文件不单单是放在一个文件夹中携带走,而更多的可能会创建一个VHD,将相关的文件存储在其中,使我们能更加方面的携带,并且将其挂载到Windwos7或2008系统上,甚至是在虚拟机种将其打开。51Testing软件测试网0b&c r7[ L8n!L!|A3ec_i

51Testing软件测试网7R0XK-otr5k

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

P5qJ8`8az E0

TAG:

 

评分:0

我来说两句

Open Toolbar