欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

[翻译]Hyper-V和多处理器虚机

作者:John Sheu

http://blogs.technet.com/winserverperformance/archive/2008/02/29/hyper-v-and-multiprocessor-vms.aspx

译者:盆盆

欢迎访问我们的博客!笔者是Windows Server Performance团队的开发主管,在过去的三年半里,笔者负责带领团队改进Windows Server 2008 Hyper-V的性能。

在Hyper-V的整个开发周期里,我们和产品组一起协作,以便能够推出有竞争力的产品,很高兴Hyper-V能够在今年正式发布,本周发布的Windows Server 2008正式版本里已经包含了Hyper-V Beta版本[盆盆注:Hyper-V RC0也已经在3月19日正式发布]。

架构概述

Hyper-V采用基于Hyperisor的架构,并且充分利用Windows驱动模型,以便提供广泛的硬件支持。Hypervisor可以把单个服务器划分为多个CPU和内存的容器。由于采用微内核架构,Hyper-V可以提供高效的分区间通信机制,并在此基础上搭建高性能的虚拟I/O架构。根分区包含物理I/O设备,还将提供虚拟栈用来为子分区所实现的I/O服务。

虚拟栈可以实现模拟I/O设备,例如IDE控制器和DEC 21140A网卡。然而模拟这种设备的代价很昂贵。发送单个I/O请求,就有可能导致虚拟栈和子分区之间的多次切换。相反,Hyper-V提供专门为虚机环境所设计的虚拟I/O设备。这些虚拟设备连接到VMBus,这是一个支持即插即用的总线,使用共享内存,以便可以有效地进行分区间通信。Windows虚机可以自动检测到VMBus上的虚拟设备,并且加载合适的驱动程序。

Hyper-V中的虚拟输入/输出采用客户端/服务器架构,在根分区中包含VSP(虚拟服务提供程序),在子分区中包含VSC(虚拟服务客户端)。该架构极大地减少发送I/O请求所需的开销。如果Virtual Server用户把虚机迁移到Hyper-V中,他们将体会到高I/O的工作负载的CPU开销大大降低。

多处理器的虚机

在这第一篇文章里,笔者想着重指出Hyper-V的主要性能特性:多处理器的虚机。Hyper-V支持4 CPU的Windows Server 2008虚机,和2 CPU的Windows Server 2003虚机。如果服务器工作负载需要很高的性能,我们可以考虑用2 CPU或者4 CPU的Hyper-V虚机对其进行虚拟化。当然,只有当工作负载确实需要的时候,才应该使用多处理器虚机,因为拥有更多的处理器会带来一些额外的开销。

然而,操作系统内核和驱动会采用自旋锁(Spin Lock)的机制,在获得自旋锁之前,(线程)并不会阻塞,并一直处于自旋状态,前提是自旋锁只会保持很短的时间。但是虚拟化会打破这种条件,因为虚拟处理器是按时间片进行调度的。如果在保持自旋锁的时候竞争虚拟处理器,则其他虚拟处理器就要自旋很长时间,导致CPU循环的浪费。[盆盆注:自旋锁是多处理器操作系统的一种互斥机制,有点类似于互斥锁,但是保持时间更短。更详细信息,可以参考《Windows Internals》第四版的P152]

我们在Hypervisor和Windows Server 2008内核里加入创新设计,尽可能防止出现自旋锁的长时间等待条件,如果确实存在长时间等待条件,也会有效地加以检测并对其进行处理。我们还对Hypervisor进行设计,包括调度程序和内存虚拟化逻辑,以使它们在大多数临界区中都不会锁定,从而确保多处理器系统能够获得很好的延展性。

所以,4 CPU的Windows Server 2008虚机,其延展性可以和物理4 CPU系统一较高下。这是一个很好的注解,来诠释Windows Server 2008虚机和Hyper-V如何一起提供性能上的改进。我们还将在后续的版本里继续提高多处理器系统和多处理器虚机的延展性。

发表于 作者 ahpeng | 0 评论
归档在:

Windows Vista正式拥有Hyper-V管理单元!

现在Windows Vista也可以拥有Hyper-V管理单元,以便能够管理远程的Hyper-V服务器。

要求Windows Vista SP1,下载地址如下:

x64版本: http://www.microsoft.com/downloads/details.aspx?FamilyId=450931F5-EBEC-4C0B-95BD-E3BA19D296B1&displaylang=en

x86版本: http://www.microsoft.com/downloads/details.aspx?FamilyId=BC3D09CC-3752-4934-B84C-905E78BE50A1&displaylang=en

发表于 作者 ahpeng | 0 评论

Hyper-V RC版正式发布!

作为微软服务器虚拟化的主力产品,Hyper-V可以说是Windows Server 2008里最值得称道的功能。

Hyper-V将在今年8月份正式RTM,也就是说当比尔.盖茨下岗时,Hyper-V正好上岗,其地位可见一斑。

Hyper-V是基于Hypervisor的服务器虚拟化产品,目前的最新版本有了很多改进,其中最吸引盆盆的就是它正式支持Windows Vista(注意是SP1),其他一些显著的优点包括:

1. 支持本地语言设置,中文版的Windows Server 2008 X64,也能运行Hyper-V,当然Hyper-V管理单元的界面还是英文的

2. 正式支持Windows Server 2003的SMP功能,Windows Server 2003虚机也可以支持多个虚拟CPU,而以前的版本则只能支持单CPU

3. 虚机的网络安装速度可以得到大大提高。

...

更详细的测试报告和技术文章,请期待ITECN的后续系列。

Hyper-V RC的安装和迁移须知,请务必仔细参考以下文档:

http://support.microsoft.com/kb/949219/en-us

发表于 作者 ahpeng | 3 评论

2月份虚拟化网络课程预报

Windows Server 2008已经RTM了,虚拟化是其中最吸引人的特性之一,微软火热推出了Windows Server 2008实战攻略系列Webcast,其中虚拟化的课程有以下两个,由孔文达老大和小弟我提供,以下是课程介绍。

我的课程在25日开讲,期待能够在网上见到各位,拜托啦!

微软Windows Server 2008实战攻略系列之四:微软虚拟化解决方案逐个数
讲师:彭爱华
2008年02月25日 14:00-15:30
Level: 200
"2008年最热的技术是什么?当然是虚拟化--今年是鼠年,鼠风流人物,还看虚拟化!尽管在这个领域,微软是后来者,但是微软却有着不容忽视的强大优势--只有微软,才拥有完整的产品链;只有微软,才提供统一的管理平台。采用微软的虚拟化解决方案,您无需担心和原有IT架构之间的冲突--您甚至感觉不到虚拟化的存在,而这正是虚拟化的最高境界--假作真来真亦假!在这堂课里,我们将一起分享微软的系列虚拟化产品,是如何帮助我们实现动态化的IT管理目标;还将一起分享微软的虚拟化解决方案,是如何帮助IT摆脱各种棘手的窘境……期待您春节后的大驾光临,不见不散!"

微软Windows Server 2008实战攻略系列之十三:虚拟化基本实现和企业应用配置
讲师:孔文达
2008年03月17日 14:00-15:30
Level: 300
本课程将以Hyper-V为重点,让您充分了解微软虚拟化产品的企业级应用特性,从架构到原理,再到部署实施,相信参加完本课程后,您将会对虚拟化信心十足,并跃跃欲试了!

Windows Server 2008实战攻略的其他课程由王希、Frank、王辉等老大提供(这几位就不用我多介绍了吧,顺便说一下,他们可都是ITECN博客的资深blogger,嘻嘻),想要了解Windows Server 2008技术的朋友,千万不能错过这次精彩盛宴:

http://www.microsoft.com/china/technet/webcasts/class/Win2008rc1.mspx

发表于 作者 ahpeng | 0 评论

Hyper-V高可用性群集实测报告

早就听说Hyper-V Beta可以支持快速迁移和高可用性,最近抽空测试了一下Hyper-V的主机群集(Host Clustering)功能,结果相当理想,甚至超出了盆盆的预期。所以赶紧写一个文档,分享给广大的微软技术爱好者,也算是盆盆赠送给ITECN粉丝的新年礼物*^_^*。

一、商业价值和技术原理


群集的意义何在?这就要从虚拟化的应用场景来说起。Hyper-V属于服务器虚拟化技术,这和我们熟悉的Virtual Server是同一类型的,而服务器整合则是其主要的应用场景之一。服务器整合可以极大地提升服务器的利用率(从原本的10~20%提升到60~70%)、可以很好地节省服务器采购的费用、可以大大节省电费和降温费用(每台服务器每年的电费和降温费用,超过服务器投资的1/3),更重要的是,服务器整合还可以大大提高服务响应的速度。

然而服务器整合也会带来一个潜在的问题。

在传统IT架构中,为了安全和稳定性,物理服务器通常是专机专用,也就是说,一台物理计算机只安装一个关键业务程序。一旦物理硬件损坏,只会影响到该服务器上的关键业务。而采用服务器整合的虚拟化技术后,物理主机上可能同时运行多台虚机(每台虚机里跑一个关键业务程序),多个虚机之间可以实现安全隔离,如附图所示。这好比把所有的鸡蛋放在一个篮子里,一旦物理主机硬件损坏,其上的多台虚机,及其中运行的关键业务都会同时中断。 
  
而Hyper-V则支持高可用性群集功能,不管是有计划的主机维护、还是突发的硬件故障,虚机都可以在另外一台主机上快速重启,而且服务中断的时间很短,几乎可以忽略不计。盆盆自己做了总结,Hyper-V主机群集有以下一些显著特点:

1. 内置支持Hyper-V虚机

Windows Server 2008群集,现在已经内置支持Hyper-V虚机,可以把虚机作为Windows Server 2008群集中的可用服务。

2. 支持多节点

到目前为止(Hyper-V Beta),可以最多支持16个节点的遇故障转移群集(Failover Clustering)!我们既可以手动指定虚机迁移的目标主机,而当意外故障发生时,系统会自动寻找具备充足内存的目标主机,默认是下一个主机。

3. 操作步骤简单

Hyper-V基于Windows Server 2008群集功能,相对于Windows Server 2003,其设置的步骤非常简单,甚至是不熟悉原理的用户,也能轻松实现。

4. 极大减少停机时间

服务器停机有两种情况:计划维护和意外故障。根据VMware公司的统计,计划维护停机的时间约占日常停机事件的80~90%,例如我们要对服务器进行升级、打补丁或者进行其他维护。意外故障,例如硬件的突发故障,断电等等。

针对80~90%的计划维护停机,Hyper-V可以进行快速迁移(Quick Migration)。虚机的磁盘文件(.VHD)存放在共享存储设备(iSCSI或者光纤SCSI设备)上,同时挂载到多台主机上,所以快速迁移时,不需要迁移庞大的磁盘文件,如附图所示。 

如果需要对主机Node1进行维护,只需把其上的虚机保存状态(save state),也就是把当前虚机内存里的内容保存到文件里,保存状态所产生的文件也保存在共享存储上,然后该虚机就可以在另外一台主机Node2上恢复。

由此可见,快速迁移所需的时间和以下两大因素有关:

(1)共享存储的带宽

(2)虚机内存的容量

例如对于一台1GB内存的虚机,如果共享存储是带宽为1Gb(125MB)的iSCSI,只需约16秒的停机时间(1Gb/8≈125MB,1GB/125MB=8秒,8×2=16秒);如果是4Gb的光纤存储,则只需约4秒!不同虚机内存和存储带宽所对应的停机时间,如附图所示。 

如果是突发性的硬件故障或者断电,则可以借助高可用性群集功能,该虚机可以在另外一个节点上重新启动。这时候相对快速迁移而言,虚机里的关键业务需要更长的停机时间。

5. 支持跨区域故障转移

Hyper-V还支持所谓的stretch clustering(延伸群集),也就是跨越地理位置的故障转移群集功能,一旦某个站点发生故障,其他地方的另外一个站点可以立刻恢复工作!

6. 和System Center的完美集成

Hyper-V不仅可以实现高可用性,还可以实现负载平衡。这可以和System Center进行完美整合。例如企业通过两台虚机提供订单服务(负载平衡),当三月份业务繁忙时,System Center Operation Manager监测到两台虚机的性能开始不堪重负,则可以很方便地借助System Center Virtual Machine Manager根据模板创建一个新的虚机加入到这个NLB群集,继续提供服务,整个过程几乎不需要人工干预,而且非常有效。


二、
Hyper-V/VMware/Xen,孰优孰劣?


说老实话,作为虚拟化市场的先驱,VMware的技术无疑更加成熟。VMware采用一种所谓的VMotion技术。VMotion采用内存后台备份的机制,可以实现在线迁移,也就是说,几乎没有停机时间。

VMotion也需要共享存储的支持,虚机的磁盘文件保存在共享存储设备上,但是需要指出的是,VMotion并不是基于群集的。

1. VMotion的原理

假设虚机要从主机A迁移到主机B上。VMotion的过程简述如下:

(1)VMotion首先尝试把虚机的内存映像从主机A拷贝到主机B。在这个过程中,主机A上的虚机继续对外提供服务。

(2)在内存映像拷贝过程中。用户对该虚机的任何内存写入操作,都会记录到一张叫做内存位图(Memory Bitmap)的表中。

(3)内存映像拷贝完成后,会把内存位图表拷贝到主机B上。这段时间虚机会暂时停止工作(时间极短,如果尝试Ping的话,通常只有一个数据包显示超时),如附图所示。 
  
(4)当虚机在主机B上启动时,系统会把内存位图表里记录的已修改页(Modified Memory Page)继续拷贝到主机B中,直到结束。

2. VMware VMotion和Hyper-V快速迁移之间的对比

(1)由于VMotion采用后台内存拷贝的模式,只有在拷贝内存位图表时,才会临时中止客户端访问,用户几乎感觉不到服务中断(一般最多1~2秒)

而Hyper-V快速迁移则需要有一个内存状态的保存和恢复时间,根据虚机内存和存储带宽的大小,有少量的服务中断时间(少则1~2秒,多则1~2分钟)。

从原理上讲,Hyper-V采用的是比较简单的内存状态保存的技术,以避免在内存映像传输时,后续的内存写入同步问题,以增加停机时间作为代价,但一般来说这点时间还是可以容忍的,通常不会有损SLA。

(2)VMotion需要相对比较昂贵的费用(必须采购更高版本才能获得)

而Hyper-V快速迁移则包含在Windows Server 2008的授权费用中,不需要额外付费。

(3)VMotion需要两台主机的CPU为同一系列(最好是同一型号),以避免CPU指令集的不同而导致的指令兼容问题。

尽管在UI里没有体现,但是Hyper-V快速迁移也有这个限制。

(4)VMotion适用于计划维护停机事件,如果是突发故障,可以借助VMware的HA功能(需要付费),让虚机在另外一台主机上重启。

而Hyper-V则可以借助主机群集功能同时实现快速转移和高可用性。

(5)VMotion是VMware Infrastructure的核心功能之一,它也是DRS(动态资源调度)的基础。系统可以根据一定的优先级和性能监控,自动通过VMotion在不同主机之间在线迁移虚机,以便平衡数据中心的可用资源。

相信今后的Hyper-V的正式版本,也有类似的机制,例如可以借助System Center Operation Manager自动监控虚机和物理主机的性能,然后借助System Center Virtual Machine Manager进行快速迁移。

那么Xen呢,Citrix的XenServer Enterprise可以实现类似的XenMotion功能,盆盆没有测试过,估计类似于VMware的功能。今后盆盆会抽空进行测试,并给出相应的测试报告。


三、实验环境简述


至少需要两台物理计算机(必须
满足Hyper-V的安装条件),用来安装Windows Server 2008(Hyper-V),并加入到域。两个独立的网段,一个作为心跳网络(Heartbeat Network),还一个连接生产环境。如果有iSCSI共享存储设备,还需要有一个网段专门连接到该存储网络。

盆盆当然不可能购置iSCSI/FC共享存储设备,所以需要准备一台专门的虚机,借助IET或者Openfiler(基于Linux)、WinTarget(基于Windows)等工具虚拟出iSCSI共享存储设备。只是性能和真实的iSCSI设备相比,自然不可同日而语,而且也远不如普通的IDE/SATA硬盘(毕竟是用虚拟磁盘来模拟的)。不过我们这里只是一个实验,看看效果就行了。

所以盆盆这里有三台物理计算机,其中一台计算机安装虚机(可以是Virtual Server、Hyper-V或者VMware等虚机),并把该虚机提升为域控制器;另外两台安装Hyper-V,并加入到该域中,实验环境的网络拓扑结构如附图所示。 

这里不再描述如何借助WinTarget或者IET、Openfiler搭建虚拟iSCSI共享存储设备,大家可以参考帮助文档。


四、配置
Hyper-V高可用性


在Windows Server 2008配置Hyper-V高可用性非常方便,只需分为三步走:配置验证、创建群集、设置高可用性。

1. 配置验证

在Hyper-V主机上添加“Failover Cluster”角色,然后打开“Failover Cluster Management”管理单元,如附图所示,并单击右侧操作窗格里的“Validate a Configuration”。 

接下来指定需要添加到群集里的两个节点(Hyper-V主机),然后可以选择“Run only tests I Select”选项,并在接下来的页面里指定所需验证的选项,这里可以略过共享磁盘的相关验证(虚拟出来的设备,很难通过验证,但是不影响实验结果)。

然后可以开始验证过程,并检查验证结果,如果有问题,则需要退回重新检查。

2. 创建群集

在“Failover Cluster Management”管理单元窗口里单击“Create a Cluster”,然后添加所需加入的Hyper-V主机节点。

然后指定群集的访问IP地址和群集名字,如附图所示。

接下来确认群集设置,即可开始创建群集,最后在群集创建成功页面上单击“Finish”按钮即可,如附图所示。

3. 设置高可用性

接下来就可以把某个Hyper-V虚机作为Windows Server 2008群集所管理的服务。这里我们首先需要打开Hyper-V管理单元,新建或者复制一个虚机,请注意必须把该虚机的磁盘文件保存在共享磁盘上。

确保关闭该虚机,然后在“Failover Cluster Management”管理单元上单击“Configure a Service or Application”,然后在“Select a Service or Application”页面确保选择“Virtual Machine”选项,如附图所示。

然后选中刚才所新建的虚机(本例是Hyper-VCluster),如附图所示。

确认无误后,即可开始配置该虚机的高可用性,最后在结果页面上单击“Finish”按钮,如附图所示。


五、测试
Hyper-V快速迁移


一切就绪后,就可以开始测试Hyper-V的快速迁移功能了。很简单,只需启动该Hyper-V虚机,然后在“Failover Cluster Management”管理单元左侧控制台树里定位到“Services and Applications”分支,可以看到该虚机当前处于“Online”的状态。

鼠标右键单击该虚机,并在快捷菜单里单击“Move this service or application to another node”,并选择另外一台Hyper-V主机,如附图所示。 

然后在“Failover Cluster Management”管理单元左侧控制台树里定位到“Services and Applications”分支下方的测试虚机,即可在中间的详细窗格里看到该虚机的当前所在的主机是Node1(本例是TOPHOME主机),并且可以看到该虚机正在保存状态,如附图所示。

一旦保存状态完毕后,即可看到该虚机已经切换到另外一台主机(本例是MarkThink),并且可以看到该虚机正在从保存状态中恢复,如附图所示。

整个迁移过程速度非常快,盆盆给这台虚机配置512MB内存,虽然是在模拟的共享存储上进行配置,但是迁移的速度很快,差不多20秒左右即可迁移完毕,这个速度还是完全可以承受的。

发表于 作者 ahpeng | 6 评论

虚拟化主页有方便记忆的域名啦!

2008年,什么IT技术最火?虚拟化大概是其中之一,ITECN博客当然不会例外,盆盆将会和其他优秀作者一道,为广大粉丝朋友介绍虚拟化技术,不仅限于微软的虚拟化,也将涵盖VMware、Citrix等第三方的技术,力求公正、全面。还望大家支持哈~

域名如下:

http://v.itecn.net

嘻嘻,是不是很容易记忆呢?

又及:今后ITECN博客还会邀请业内知名专家,陆续打造其他的微软技术专栏,近期将会推出诸如Exchange、System Center等专栏,敬请期待哈!

发表于 作者 ahpeng | 0 评论

微软Hyper-V虚拟化十大常见问题总结(By盆盆)

本月的14~17日参加了VMware认证培训,虽然花了偶N多大洋,但是很有收获,不但学习了VMware Infrastructure 3的配置和商业价值,还结识了很多业内的技术高手,例如早就熟悉的徐炯兄弟(盆盆有幸邀请徐兄弟担任虚拟化板块的主笔),还有孙宏靖等高手,他们都是来自企业第一线的工程师,具有很强的实际经验,盆盆从他们那里学到很多东西,开了眼界。

培训结束以后,花了不少时间测试了业内流行的虚拟化产品,微软的Hyper-V当然是首当其冲了,还有VMware Infrastructure、Cirtix XenSource、SUSE Xen等。总体感觉,就目前而言,在服务器虚拟化的领域,VMware Infrastructure还是保持绝对领先的态势,当然微软的Hyper-V绝对不容小觑,毕竟它现在还是Beta版,等到正式版本出来,配合今后的System Center Virtual Machine Manager,相信会让大家眼前一亮。

好了,进入正题,今天在微软BBS闲逛,看到一位兄弟发了帖子(帖子内容参见本文的最后部分),问了很多有用的问题,盆盆就在BBS上回复了。后来又想,为什么不在ITECN博客上总结一下,方便粉丝朋友们,所以就转帖到这里,同时还加上了一些其他的内容。

1. 为什么不能从虚拟SCSI硬盘引导?

道理并不复杂,因为模拟SCSI硬盘,其实是一个基于VMBus的设备,而VMBus实际上需要Guest OS的支持,所以无法从虚拟SCSI设备安装或者引导OS。


2. 不能从虚拟SCSI硬盘引导,会不会降低虚机的磁盘I/O性能?

不会。

在Hyper-V里,虚拟IDE设备采用全新的驱动架构,其性能等同于虚拟的SCSI设备。而且Hyper-V的虚拟IDE设备,可以支持超过127GB的容量。如果需要挂接超过4个虚拟磁盘设备,需要把其他磁盘设备挂在SCSI接口上。

当然在Virtual Server环境里,推荐大家用虚拟的SCSI硬盘,性能比虚拟IDE硬盘高约20%。


3. 为什么现在Hyper-V不支持远程桌面管理?

参考了Mike Kolitz的Blog,解决方法如下:
(1) 在虚机里安装Integrated Components(IC)
(2) 或者直接在虚机里安装Windows Server 2008 RC1以后的版本,这个版本会自动安装IC
(3)
我们可以在另外一台Hyper-V机器上,用Hyper-V MMC远程管理其他Hyper服务器
(4) 直接远程登录到虚机里,而不是远程的Hyper-V主机

4. 正式版会提供哪些远程管理方式?

应该会有远程管理的客户端。还有System Center Virtual Machine Manager 2008,可以用来管理多台Hyper-V虚机,提供P2V功能、提供基于虚机模板快速服务的能力、提供虚机网上银行等服务,甚至还可以管理VMware、Virtual Server虚机。


5. 从Virtual Server迁移应该注意一些什么?

推荐阅读ITECN的文章:

http://blogs.itecn.net/blogs/ahpeng/archive/2007/10/04/virtual-server-windows-server-2008-virtualization.aspx

需要注意的是,如果Virtual Server模拟双节点的群集,请先拆散群集,再迁移。


6. Licensing授权的问题?

由于Hyper-V虚机和Virtual Server硬件架构完全不同,所以迁移后,需要重新激活。

对于企业批量授权而言,这并不会导致授权的损失,因为这种授权并不是基于机器的,具体的信息,请参考授权的用户许可协议。


7. 为什么我的Hyper-V工作不正常,提示VMMS服务无法启动?

在安装的时候,请选择英文区域设置,如果选择了中文,请重新安装。

正式版本出来时,肯定可以支持中文,这点请放心。现在才是Beta版本,只针对英文进行测试。


8. 为什么我的机器死活安装不上?

请确认CPU支持64位,支持硬件内存保护(微软叫做DEP功能,Intel和AMD可能叫做No Execute功能),支持硬件虚拟化功能,同时主板支持开启这些功能。安装的时候,请安装64位版本的Windows Server 2008,同时选择Enterpise安装,既可以是完全安装,也可以是Server Core。
相对VMware而言,Hyper-V的硬件兼容性很好,只要CPU满足条件,都可以安装,而且文件系统是通用的NTFS,而非专用格式(VMware是专用的VMFS格式)。


9. 为什么Windows Server 2003虚机安装Integrated Service会失败?

请确保Windows Server 2003 Guest OS已经升级到SP2,否则安装Integrated Service会失败,导致虚机的网卡等不能正常工作,同时严重影响虚机的性能。


10. Hyper-V最多允许跑多少台虚机?

可以安装无限个虚机,但是同时允许运行的虚机数量,取决于服务器的性能。

从授权的角度来说,只对当前正在运行的虚机(叫做实例)统计Licensing的数量。如果采用微软的Hyper-V,在Licensing上的优惠比较突出,例如一台Windows Server 2008标准版,可以免费运行一个实例;一台企业版,可以免费跑四个实例;一台数据中心版,则不限虚机实例数量。

11. Hyper-V虚机能否满足生产环境需求?

Hyper-V虚机支持64位Guest OS,最大内存支持64GB,硬件采用基于VMBus的架构,性能接近于物理机器。对于磁盘I/O而言,Hyper-V远远胜过Virtual Server,可以胜任比较高压力的企业级业务。而且虚拟化还提供物理系统无法提供的管理能力,有助于企业达到动态系统架构的效果,有助于IT部门能够快速提供服务,满足SLA协议要求。


12. Hyper-V中的父分区是否相当于Virtual Server里的Host OS?

可以这么认为。但是从理论上来说,两者不能等同。在Hyper-V中,物理机器上的Windows OS和虚机的Guest OS,其实都运行在底层的Hypervisor之上,所以物理OS实际上相当于一个特殊的虚机操作系统,只是拥有一些特别的权限而已。

Hyper-V采用完全不同的系统架构,性能接近于物理机器,这是Virtual Server无法比拟的。

微软BBS的帖子转录如下,感谢chen.yansi朋友的精彩提问:

Hyper-V虽然增加了SCSI控制器的支持,但是Windows Server 2003的虚机无法支持在SCSI磁盘上进行引导和安装。也就是说初次部署Windows Server 2003系统在Hyper-V虚机中不能只挂载使用SCSI虚机磁盘,只能用IDE虚机磁盘安装。
从Virtual Server 2005 R2 SP1无法顺利迁移,因为两者虚机硬件架构不同,会触发系统重新激活。如果我有10台Windows Server 2003的虚机想迁移到Hyper-V上,那么代价需要重新激活10次?!
Hyper-V现在对什么Linux能支持?我用CentOS 5.1是无法安装,因为虚机光驱都不被识别,无法读取ISO安装Linux系统。
Hyper-V使用3389管理虚机,用3389来给虚机安装Integration Service简直是不可能的事情。鼠标都无法在虚机里使用,只能在本地使用鼠标在虚机中。但是这样的状况现实么?是说需要给每台运营Hyper-V的服务器准备一套鼠标键盘和显示器么,还必须在机房里人工操作。
郁闷哪……这次从Virtual Server 2005 R2 SP1迁移的过程失败,造成了数据全部丢失!!!
本来觉得Hyper-V都Bate版本了,觉得微软出的东西应该没那么糟糕。但是实际上严谨地说很糟糕。
安装Integration Service的Windows Server 2003必须是打过Service Pack 2以上的系统,微软从来没给过这样的提前说明!

发表于 作者 ahpeng | 7 评论
归档在:

虚拟化、群集、诺曼底登陆

尊华老大给我发了一个Video,实在是经典,三个老外,用非常简单的道具,只花了四天,就模拟拍摄了诺曼底登陆的宏大场面。

看来虚拟化的技术是无处不在啊

http://www.youtube.com/watch?v=WRS9cpOMYv0

发表于 作者 ahpeng | 1 评论

读书笔记:《Introducing Windows Server 2008》的虚拟化章节

写在前面的:上周四有幸当面见到了盆盆老大,并且一起探讨了我们共同的兴趣目标:虚拟化技术。兄弟本人对此的确是兴趣浓厚,因为工作缘故,接触VMWARE产品比较多些,对于微软的虚拟化技术所知也不多,承蒙盆盆老大厚爱,不敢有所怠慢,翻出以前写过的读书笔记,也算是开个头,权当是抛砖引玉吧。 

《Introducing Windows Server 2008》是介绍Win2008的第一本书,hoho,在这个操作系统还在Beta3的时候就面世了哦。作者也在序言中说了,其中不可能包括正式版的所有内容,毕竟这个OS还在开发调试中嘛。在microsoftelearning网站上注册,就可以免费阅读这本新书的第1-7和14章。虽然只有短短的10天。(还是强烈建议你赶快去看看)。我迫不及待的翻到介绍虚拟化的那一章。下面是一些读书笔记:

1) Windows Server Virtualization只能在64bit版本上运行,32bit版本中不包含这个特性。
2) CPU必须支持虚拟技术,也就是Intel VT或者AMD-V
3) Guest OS分为2种,一种叫Enlighted Guest, 也就是能直接访问Hypervisor层的OS,包括Windows Server 2008和Windows Vista,另外一类就是Legacy Guest,指目前的WindowsXP,Windows 2000等操作系统,这些OS根本不知道Hypervisor的存在,(它们还以为自己是直接跑在硬件上的呢,对虚拟的硬件和资源一无所知,想象一下电影Matrix中生活在虚拟世界的那些“意识”吧),所以在中间必须有一个仿真器层(emulator),这样性能上会略逊。
4) Guest OS可以是32bit OS,也可以是64-bit OS,但是Parent OS必须是Windows Server 2008 64-bit版
5) 目前Beta3中还不包括Windows Server Virtualization特性。( 哎~  -_-|||可惜,只能先看看技术资料,没法动手实验了)
6) 微软已经和XENSource合作开发在Linux上的VSC(Virtual Service Client)用以将一个Linux系统变成Hypervisor-aware的enlighted OS。(oh,微软和Novell在SUSE上的合作也基于此,使得Longhorn上可以运行enlighted的SUSE Linux)。
7) Windows Server 2008有一种Core模式,精简掉了GUI界面,可以只运行VMM服务,这种模式下大多数Windows的服务都不再安装到系统中,效率更高。

===============分割线==================

目前的虚拟化技术

第一种 Type 2 VMM

构架如下图所示:
 
VMM运行在HOST OS之上。这种方式效率很低,常见的Type 2 VMM有JAVA虚拟机

第二种 Hybrid VMM


例子有微软的Virtual Server 2005 R2和Virtual PC 2007。
Hybrid VMM和Type 2 VMM不同的是,Type2 VMM是运行在HOST的User Mode中,而Hybrid VMM运行在HOST的Kernel Mode中,因此运行效率要比Type2 VMM高些,但是还是效率比较低。

第三种 Type 1 VMM

Windows Server 2008 虚拟化构架
 
VMM直接访问硬件,而HOST OS和其他Guest OS构建在VMM之上,当然HOST OS包含管理VMM的一系列工具。这种方式的虚拟化,Guest OS可以直接透过Hypervisor来利用硬件资源,所以效率最高。

发表于 作者 delxu | 0 评论
归档在:

盆盆眼里的虚拟化技术(从市场角度分析)

盆盆是一位虚拟化技术的爱好者,本文就是从一位普通的虚拟化技术测试者和爱好者的角度出发,谈谈对于虚拟化技术的一些粗浅看法,观点不一定正确,还请各位老大多多批评指正。盆盆将会根据大家的反馈,定期对本文进行修正。

一、虚拟化厂商的分类

由于虚拟化正在持续升温,所以各大厂商纷纷“蠢蠢欲动”,除了VMware和微软以外,其他IT巨无霸也纷纷加入这个领域,企图分一杯羹。尽管加入的巨头不少,但大致可以划分为以下四类:

1. 传统OS厂商

例如微软,其代表产品为Virtual PC/Virtual Server,还有未来基于Hypervisor的Hyper-V。其管理端平台产品为System Center Virtual Machine Manager,当前的2007版本用来管理Virtual Server,明年Hyper-V发布后,还将会配套发布更新的System Center Virtual Machine Manager,以支持Hyper-V。

还有RedHat、Novell SUSE Linux等厂商,也在其最新的OS里加入基于XEN的虚拟化功能。

2. 传统ISV厂商

最近Oracle也宣布加入虚拟化的行列(详细信息可以参考这里),发布一个基于XEN的虚拟化产品。这是一个非常有里程碑意义的事件。也许今后不少ISV会选择这种模式。

3. 独立虚拟化厂商

就是VMware和XEN Source(已经被Citrix收购)。

4. 硬件厂商

这类的厂商并不明朗,CPU虚拟化只能算是辅助虚拟化,替代不了软件管理层。

二、厂商各自的策略

如果仔细观察虚拟化的架构,就很容易帮助我们理解虚拟化厂商的分类,以及他们的选择(不管是市场还是技术上的选择),如附图所示。整个虚拟化架构,从上到下依次分为四层:应用程序、操作系统、Hypervisor(虚拟化管理层)、还有硬件层。

1. 传统的OS厂商

从上图中可以看出,操作系统和虚拟化管理层相隔最近,所以由OS厂商提供虚拟化产品,这是非常自然(native)的事情。以微软为例,其虚拟化产品(Hyper-V)为什么会选择瘦管理层的方式?

盆盆个人的愚见,其实并不仅仅是技术上的考量,以其说是为了安全,毋宁说是为了市场策略的考量。

(1)作为一家OS厂商,必须要考虑硬件兼容性的问题,如果采用胖管理层,则硬件兼容性的问题无法回避,就会严重影响未来Windows Server 2008的出货量,这当然不是微软愿意看到的,同时也不是客户愿意看到的事情。

(2)作为一家OS厂商,微软可以和CPU厂商结成很好的战略联盟。微软的Hyper-V要求CPU必须支持64位、支持硬件虚拟化技术,这样的设计也有利于借助微软和CPU厂商组成的联合生态圈,共同为客户提供更好的产品和服务。

2. 传统ISV厂商

从上图中可以看出,应用程序和虚拟化管理层相隔也比较近。但是Oracle最近也开始提供虚拟化产品,其主要目的还是为了推广其自己的数据库产品。考虑到技术支持和兼容性方面的优势,Oracle客户可能会更加倾向于使用Oracle公司提供的虚拟化方案。

由于应用程序和虚拟化管理层毕竟相隔了一个操作系统层,所以可以想见,Oracle必然会和传统的OS厂商,包括UNIX/Linux,还有它一直不那么喜欢的Microsoft,进行合作,确保这些Guest OS能够很好地运行在Oracle的虚拟化管理层上,以便给Oracle数据库提供更好的支撑。

3. 独立虚拟化厂商

虚拟化管理层当然可以由独立的厂商提供,例如VMware。那么VMware ESX Server的Hypervisor为什么会采用胖管理层呢?

盆盆个人的愚见,同样并不仅仅是技术上的考量。以其说是为了性能,毋宁说是为了市场策略的考量。

(1)作为一家独立厂商,VMware必须考虑向下和硬件厂商联合,向上和ISV厂商进行联合,共同组成自己的生态圈。要和硬件厂商进行联合,采用胖管理层,不失为一种很好的策略。由于胖管理层需要Hypervisor里整合底层硬件的驱动,这样就可以和下方的硬件厂商进行联合,开发支持Hypervisor的驱动,同时对硬件厂商进行验证,联合给客户提供整体的解决方案,无论对于VMware、硬件厂商、还是客户来说,都是好事情。

(2)作为一家独立厂商,VMware必须考虑向上和ISV厂商进行联合,这样才能说服客户把关键应用放进虚机里,而不是仅仅把一些边缘的、无关的应用进行虚拟化。而Oracle自己推出虚拟化产品,对于VMware无疑打击不小,简直有点釜底抽薪的感觉。

4. 硬件层的虚拟化

从上图可以看出,硬件层离虚拟管理层很近。如果硬件层和虚拟化层绑定,那么从客户的角度来看,一台物理机器就可以在逻辑上看成是多台机器。但是除了CPU厂商之外,“纯”硬件厂商推出的虚拟化产品并不多。就算是CPU厂商,其虚拟化产品,确切来说应该是辅助虚拟化产品,必须加上软件的虚拟化管理层,才能发挥作用。

预计今后也许会出现固化在BIOS里的虚拟化层,一开机就native支持虚拟化……

然而精明的VMware似乎已经看到硬件层+虚拟化这个结合点,他们最近推出的VMware ESX Server 3i(注意有一个字母i)产品,也是一种所谓的瘦管理层技术(包含更少的驱动)。

本以为它主要用来和微软的Hyper-V竞争,但是实际不然

和微软的Hyper-V不一样的是,VMware ESX Server 3i这个瘦管理层主要和硬件捆绑,采用固化在硬件里的技术(也可以独立安装,甚至放在U盘里)。这样更加类似于拿到一台直接支持虚拟化的硬件平台。而微软的Hyper-V,则是和操作系统组成一体,采用不同的架构,其兼容性,要明显高于VMware ESX Server 3i。从兼容性的角度来说,微软Hyper-V>>VMware ESX Server 3>>VMware ESX Server 3i。

为什么VMware不开发一款产品,和Hyper-V相同架构,而直接竞争?

从技术上来说,VMware一定可以办到。但是VMware也许很清楚自己的定位,Hyper-V这种架构,更加适合微软这种传统的OS厂商,而作为独立厂商,VMware应该加紧和底层的IHV硬件厂商进行联合。

三、孰优孰劣

这是一个很敏感的话题。作为一名MVP,盆盆自然当仁不让地站在微软这一边,相信在虚拟化领域,微软一定可以取得更好的成绩,这只是时间问题。

1. 微软的优势

(1)作为一家传统的OS厂商微软开发的Hyper-V产品,和微软自己的Windows操作系统,其兼容性理应更强。未来的Hyper-V,还能支持一些主流的Linux产品,商业客户可以放心地把Linux系统迁移到微软的虚拟化平台,而出了技术问题,微软可以提供技术支持。

(2)如果采用支持虚拟化的Windows Server 2008,虚拟化管理层本身无需额外付出成本。

(3)微软自己的应用程序,包括SQL Server、Exchange Server、活动目录、IIS等服务端应用,可以更好地在Hyper-V上运行,其兼容性、稳定性和性能,都会得到保障。有利于企业把关键应用迁移到虚拟化平台,以充分享受虚拟化带来的好处。

(4)采用微软虚拟化方案,在许可证方面可以享受不小的优惠。例如标准版的Windows Server,可以免费跑一个标准版Windows Server虚机实例;企业版的Windows Server,则可以免费跑四个Windows Server实例;而DataCenter版本的Windows Server,则可以跑无限制个实例。所谓实例,就是指可以安装无限个Windows Server虚机,但是只有运行的虚机,才算一个实例。而其他第三方的虚拟化方案,则没有这种优惠,许可证方面的开销巨大。

(5)微软最大的优点,在于有一个完整的、集成的平台,这是其他第三方产品所不具备的。微软的虚拟化架构,也许单独拉出其中的某个功能或者组件,并不一定都是业界老大。但也许只有微软才能提供完整的架构平台,我们不用担心要向多个供应商采购才能拼凑出一套完整的功能平台、不用担心各个组件之间是否可以整合、更不用担心各个组件之间是否可以兼容。

微软为虚机和真机提供了一套相同的管理平台,可以用System Center Virtual Machine Manager进行真机到虚机的迁移,可以对多台VM主机进行管理,借助模板快速提供服务;可以用System Center Configuration Manager对虚机和真机打补丁和安装软件;用System Center Operartion Manager对虚机和真机进行监控和管理;用System Center Data Protection Manager对虚机和真机进行备份和恢复、以及灾备和还原。这些管理产品之间可以实现完美整合、完全兼容。

最重要的是,微软的下一代System Center Virtual Machine Manager,将有能力同时对Hyper-V、VMware、XEN的虚机进行管理,如果微软能够做到这一点,这对其他虚拟化厂商来说很致命。

2. VMware的优缺点

优点

(1)作为一家老牌的虚拟化厂商,VMware一直是业界的领头羊(最近业已上市)。拥有业界领先的技术:例如,其VMotion模块,可以支持虚机在不同主机之间的在线迁移,以便主机在维护或者遇到问题时,关键业务不需要中断;其DRS模块,可以把硬件资源虚拟化成一个逻辑的整体,以便虚拟化的应用能够完美的运行;其HA模块,可以提供高可用性。

(2)VMware的产品线比较完整,针对不同的行业应用,都有完整的解决方案。其联合上下游ISV和IHV厂商的能力,有助于给客户提供完整的解决方案。

(3)不需要Windows Server 2008的支持,可以直接安装在裸机上,尽管实际上是通过一个定制的Red Hat提供管理控制台。

缺点

(1)缺少完整的管理平台,客户可以用Virtual Center来管理多台VM主机和虚机,但是缺乏统一的管理平台,客户需要购买微软的System Center Operartion Manager(或者MOM)、System Center Configuration Manager(或者SMS),或者HP的管理平台,对虚机和真机进行统一管理。一方面,这增加了客户的成本,另一方面这些产品和VMware的Virtual Center集成的能力毕竟相对来说比较困难。

(2)VMware的虚拟化管理层是一个独立产品,需要付费。当然现在VMware把ESX Server和管理平台Virtual Center,还有VMotion等增值模块混合打包,统称为VMware Infrastructure。按照客户规模的不同,分为Starter版本、标准版本、企业版本等。这样一方面弱化ESX Server本身需要付费的概念,另一方面更加贴近市场需求。

(3)许可证方面的开销巨大,每安装一个Windows虚机,都必须对其中的Windows操作系统付费。

(4)对于Windows虚机来说,微软不会对其中的Windows操作系统提供技术支持,除非可以证明可以在真机上重现同样的技术故障。

(5)类似Oracle虚拟化技术的出现,打破了VMware和上游ISV软件厂商之间的蜜月,VMware必须对这种釜底抽薪作出防备。

(6)不少ISV不支持把其产品安装在虚机里,例如Veritas,虽然可能可以在VMware虚机里正常使用,但是Veritas不对其提供技术支持。

3. 说说Oracle

Oracle虚拟化还是一个新鲜事物,目前还似乎很难判断其前景。但是可以预见的是,其在Oracle客户中的应用前景不会太差,毕竟其兼容性和性能,还有技术支持策略,都有企业客户所感兴趣的。

对VMware来说,这个打击比较大,如果ISV群起仿效,其战略联盟的半壁江山可能会被撼动。而对于微软来说,这个压力相对小一点,微软也有自己的应用程序,SQL Server+Hyper-V+Windows Server,这条产品链的竞争力不容小觑。

发表于 作者 ahpeng | 5 评论
归档在:

盆盆眼里的虚拟化技术(从技术角度分析)

虚拟化,也许是最近一段时间以来最热门的话题,而盆盆本人也是几乎把所有的时间和精力,都放在虚拟化技术的学习和分析上。然而对不少朋友来说,虚拟化还是一个很神秘的东西,所以本文盆盆将以一个普通测试者和技术爱好者的视角(部分内容,摘自Microsoft和VMware的公开文档),试图解读一下自己心目中的虚拟化,限于本人的能力所限,肯定包含不少谬误,还请各位老大不吝指教!

今后盆盆还将会通过ITECN博客,不断地把一些学习的小成果分享给大家。本文所说的虚拟化特指硬件模拟的虚拟化技术,并不包含应用程序虚拟化技术(例如Softgrid)、还有操作系统虚拟化技术(例如Virtuozzo的VPS技术)。

一、虚拟化的本质

盆盆在今年的TechEd 2007(北京)上讲到 其实虚拟化的本质,就是把整个系统打包成文档,把整个硬件配置、Windows和应用程序,统统打包成文档,如附图所示。而从应用的角度来看,却是一个真实的服务器,有自己的操作系统、CPU、BIOS、内存、硬盘等。
 

而虚拟化的其他优点无不发轫于此:

1.服务器整合

在一台物理服务器上同时跑多台虚机,其实就等于在一台服务器上存放多个代表虚机的文档,如附图所示,如此而已。这种整合能够极大地提高服务器的利用率,而且极大地降低成本。同时,借助虚拟化管理平台工具,还可以把多个硬件资源组成一个逻辑的资源池,以便虚机能够更好地利用硬件资源,获得更好的性能。

2.备份和恢复

备份和恢复也很容易,对文档进行备份,总比对复杂的硬件配置、操作系统和应用程序进行备份和恢复,要容易得多。如附图所示。
 
3.迁移很容易

迁移也变得非常容易,因为实际上等于把文档从一台服务器,移动到另外一台服务器,非常简单。而且虚机模拟的是一套标准的硬件设备,所以不需要修改,就可以直接在其他服务器上运行。如附图所示。
 

二、从技术角度看虚拟化

VMware对于虚拟化的不同架构有一个比较好的描述,如附图所示。

本图片取自VMware的幻灯片

一种叫做寄居架构,也就是说虚拟化管理层是运行在主机操作系统之上,依靠主机操作系统来模拟硬件设备,以便在其上运行虚机,其优点是对物理硬件要求低,但是性能相对差。常见的例子有微软的Virtual PC/Virtual Server;VMware的VMware Workstation/VMware Server等。

另一种叫作裸金属架构,直接在硬件上跑虚拟化管理层,其优点是性能比较好。裸金属架构的虚拟化管理层,一般叫做Hypervisor,或者VMM(Virtual Machine Monitor),又分为两种形式:

1. 胖管理层

例如VMware ESX Server。由于VMware把底层物理硬件的驱动程序整合到Hypervisor管理层中,所以管理层显得比较胖。很显然,这种架构的性能比较好,但是对于底层物理硬件的要求比较高,兼容性和安全性的挑战比较高。

2. 瘦管理层

例如微软的Hyper-V和XEN,Hypervisor管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦。由于不包含硬件驱动,所以代码量比较小,安全性更高、兼容性也更好,但是效率和胖管理层相比有所不逮。

发表于 作者 ahpeng | 3 评论
归档在:

WSv改名叫Hyper-V啦!

Windows Server 2008的虚拟化功能,原名为Windows Server Virtualization(WSv),现在改名为Hyper-V。今后还会提供独立的Hyper-V Server产品,以便供不带Hyper-V的Windows Server 2008版本安装使用。

更详细消息,可以参考:

http://blogs.technet.com/windowsserver/archive/2007/11/12/windows-server-2008-product-lineup-and-hyper-v.aspx

发表于 作者 ahpeng | 0 评论

New Linux Additions for Virtual Server 2005 R2 SP1

现在,企业用户可以考虑把生产或者测试环境里的部分Linux主机迁移到Microsoft Virtual Server虚拟化平台,现在Linux有了最新的Additions,可以更好地提升Linux虚机的性能。其下载地址为:

http://www.microsoft.com/technet/virtualserver/downloads/linuxguestsupport.mspx

唯一遗憾的是,微软目前尚未提供P2V的工具,以便帮助Linux用户实现物理机器到虚机之间的自动迁移,不过可以考虑借助Acronis P2V工具,据说可以支持微软的Virtual Server,但是盆盆未经测试,仅供参考。

发表于 作者 ahpeng | 6 评论