现在大家都在讲云计算的概念,而笔者认为,虚拟化很好地诠释了云计算的理念,可以有效地把服务器、应用软件、应用程序的用户界面,转换成可以灵活的、按需的、动态的服务。为什么虚拟化能够做到这一点?
这是因为,从技术上讲,虚拟化打破了底层设备、操作系统、应用程序、以及用户界面之间牢固绑定的纽带,彼此之间不再需要紧密耦合,从而可以变成可以按需递交的服务。最终可以实现这样的目标:在任何时间、任何地方,任何用户可以访问任何应用程序,都可以获得任何所需的用户体验。
而微软则是目前业界唯一提供完整的所有层次的虚拟化解决方案的厂商,同时也是业界唯一能够提供整合管理平台(虚拟环境和物理环境)的厂商。以下分别介绍微软的服务器虚拟化、虚拟化管理平台和用户界面虚拟化的解决方案。
Hyper-V服务器虚拟化
众所周知,Hyper-V是Windows Server 2008内置的服务器虚拟化套件(当前最新版本是R2),其性能远远超过其前任Microsoft Virtual Server 2005 R2 SP1。
1.Hyper-V的系统架构
Hyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为Ring -1级别(要求CPU必须支持虚拟化),负责管理根分区和子分区的CPU调度和内存管理。而根分区(宿主OS)和子分区(虚机)的内核和驱动运行在Ring 0级别,用户模式的进程则运行在Ring 3下。这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,同时可以进一步提高安全性。
2.高效率的VMbus架构
由于Hyper-V底层的Hypervisor不包含任何第三方驱动,代码量很小,非常精简,所以相对VMware来说,Hyper-V可能存在的Bug更少,如果配合Server Core安装,则Hyper-V的安全性更高。
Hyper-V采用基于VMbus的高速内存总线架构,VMbus是在内存中运行的高速总线协议。来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过hypervisor的中转,导致昂贵的CPU状态切换。更何况Hyper-V现在可以支持SMP(对称多处理),Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64位操作系统。
最多4个CPU、最多64GB内存、支持X64位操作系统,还支持基于VMbus的高速总线机制,这使得Hyper-V虚机的性能接近于真实机器,完全可以用于生产环境!
3.完美支持Linux系统
和很多用户的想法不同,微软和Novell签署了互操作协议,使得Hyper-V可以很好地支持Linux操作系统,这样企业客户就可以把生产环境里的Linux主机迁移整合到基于Windows Server 2008的虚拟化架构,这样就可以充分享受由Windows Server 2008所带来的安全和易管理的显著优点。
微软专门提供为Linux设计的集成服务,里面包含磁盘和网络适配器的VMbus驱动,这样Linux虚机也能获得高性能。目前Hyper-V支持Red Hat和Novell SUSE。下图所示的就是Red Hat Enterprise Linux 5.1,可以看到其中已经加载基于VMBus的驱动。
虚拟化管理平台
和其他第三方虚拟化解决方案不同的是,如果采用微软的System Center管理平台,则可以给虚机和物理机器提供一套完整的、统一的、兼容的管理架构。例如System Center Virtual Machine Manager可以提供物理机器到虚机的迁移,以便实现服务器整合,虚机的集中配置,基于模板的快速服务响应;而System Center Operation Manager则可以提供虚机和物理机器的服务器健康状态的监控和管理,还能提供性能分析和报告;System Center Configuration Manager可以同时对虚机和物理机器提供补丁管理和软件更新;而System Center Data Protection Manager则可以提供完整的灾难恢复机制。
System Center Virtual Machine Manager,简称SCVMM,最新版本是2008版(目前正处于Beta阶段),可以同时支持对Hyper-V和Virtual Server的管理。同时还支持Citrix XenServer、VMware ESX Server,也就是说,我们可以采用同一套管理平台,同时对后台的多种虚拟架构进行管理!这可以大大简化我们的管理开销。借助微软提供的完整System Center产品家族,我们可以把整个数据中心虚拟化,将其转换成按需、动态提供的服务。接下来让我们一起探讨有关SCVMM的相关技术。
1.P2V迁移
在迁移的时候,首先可以指定所需迁移的物理机器,如附图所示。
然后可以收集物理机器的系统信息,可以看到当前代迁移物理机器是Windows Server 2008 Enterprise,有四个分区,如附图所示。
接下来可以选择所需迁移的分区,如附图所示。
然后可以选择所需迁移的目标Hyper-V主机,SCVMM会自动根据Hyper-V主机的性能和放置策略来“海选”合适的Hyper-V主机,并用星数加以区分。
一切就绪后,就可以开始迁移,整个迁移过程中,代迁移主机无需宕机,可以继续对外提供服务,一旦迁移结束,就可以让Hyper-V虚机对外提供服务。
管理VMware虚拟化架构
最吸引我们的还是SCVMM 2008自带的第三方虚拟架构管理集成能力,举例来说,SCVMM现在可以管理VMware ESX Server主机!附图所示的就是SCVMM 2008的主界面,可以看到和System Center家族的其他产品几乎如出一辙,可以看到其中添加了VMware的主机,而且保留了Data Center、Cluster、Host的层次结构。
SCVMM可以帮助“代办”VMware的大多数功能,甚至包括大家熟悉的VMotion功能!而且使用起来也非常简单。只需切换到“虚拟机”视图,选中所需迁移的虚机,然后单机右侧操作面板上的“虚拟机迁移”,即可开始迁移。
在打开“迁移虚拟机向导”对话框上可以看到可以迁移的目标主机,并且用星数来表示目标主机的等级,综合性能越高,星数越高,便于我们对目标虚机进行“海选”。如果该虚机不满足迁移条件,则可以在“级别解释”窗格上显示原因,附图表明目标虚机的CPU Affinity设置有问题。
问题解决以后,重新开始迁移向导,可以看到现在虚机已经符合迁移的要求,我们可以选择迁移的目标主机,如附图所示。
一路“Next”以后,很快就可以开始迁移进程,而且非常有意义的是,所有的步骤可以自动生成相应的PowerShell脚本,方便今后快速操作。在迁移的时候,如果打开VMware Virtual Center的主界面,可以看到当前正在进行迁移,而且虚机继续保持运行,如附图所示。
2.自助网站
自助网站有点类似于网上银行,管理员可以设置相应的策略,给特定的用户组授予虚机的创建和管理权限,并且可以给这些用户组赋予相应的虚机模版。例如可以给销售部门授予Windows XP虚机模版,里面预装了Microsoft Office 2007和CRM客户端;给开发部门赋予Windows Vista模版,里面预装了Visual Studio和SQL等等。然后这些不同部门的员工,打开网页访问SCVMM站点,就可以在IE里任意访问他们所需的现有虚机,还可以按照指定的模版创建新的虚机。
如果是传统的IT流程,开发部门的员工想要申请一台机器做测试,从申请到审核,再到集体采购、安装并且调试结束,至少需要数周乃至一个月的周期,很不方便。而有了SCVMM自助网站,用户可以很快创建一台虚机开始测试,这台虚机根据现有的模版进行创建,所有所需的内容都已经预装好了,节省我们的时间,测试完成,可以轻松删除,以便释放服务器的资源。
这说明了什么?
还是那句话,虚拟化就是把资源(服务器)变成可以按需动态递交的服务!
【编辑推荐】