王艳飞 冀中能源峰峰集团有限公司新闻传媒通信中心
随着科学技术的不断更新发展,各个行业相关的业务系统越来越多,用户对于数据管理、即时搜索、信息共享等功能的要求越来越高,传统的服务器标准已满足不了系统要求。目前转向云计算是科学发展趋势,它可将程序放在云里运行,也可使用云里提供的服务,或者两者共有。目前峰峰集团公司现有内部网站:内容管理系统、煤质管理系统、选煤管理系统等十几个业务系统,出于经济效益和管理安全性考虑,利用机房现有环境,对各个业务系统进行虚拟化整合,采用基于vSphere的虚拟数据中心基础架构,可加快现有数据中心向云计算的转变,同时还支持兼容的公有云服务,从而为业界唯一的混合云模式奠定了基础。
目前传统的系统架构是每台主机一个操作系统,软件硬件紧密地结合,在同一主机上运行多个应用程序通常会遭遇冲突,系统的资源利用率低,硬件成本高昂而且不够灵活。采用虚拟化技术之后,将各个服务器整合,灵活的资源调派,快速大量部署,降低维护工作,增加可用性与备份,降低管理成本,打破了操作系统和硬件的互相依赖。通过封装到虚拟机的技术, 管理操作系统和应用程序为单一的个体,实现重大的安全和故障隔离,虚拟机独立于硬件的, 它们能在任何硬件上运行。
VMware通过CPU虚拟化技术解决了如何在一个操作系统实例中运行多个应用的难题。实现这一任务的困难之处在于每一个应用都与操作系统之间有着密切的依赖关系。一个应用通常只能运行于特定版本的操作系统和中间件之上。这就是Windows用户常常提到的“DLL地狱”。因此,大多数用户只能在一个Windows操作系统实例上运行一种应用,操作系统实例独占一台物理服务器。这种状况会导致物理服务器的CPU资源被极大地浪费。能够使多个操作系统实例同时运行在一台物理服务器之上,是VMware所提供的CPU虚拟化技术的价值所在。通过整合服务器充分利用CPU资源,可以给用户带来极大的收益。
具体实现方式是为每个虚拟机提供一个或者多个虚拟CPU(vCPU)。多个vCPU分时复用物理CPU。VMM必须为多个vCPU合理分配时间片并维护所有vCPU的状态,当一个虚拟机vCPU的时间片用完需要切换时,要保存当前vCPU的状态,将被调度的vCPU的状态载入物理CPU。
VMkernel在调度vCPU的时候采用“插槽-核心-线程”的拓扑逻辑。“插槽”指处理器单个封装件,该封装件可以具有一个或多个处理器内核且每个内核具有一个或多个逻辑处理器。
当vCPU需要运行时,VMkernel 会将一个vCPU映射到处理器调度一个执行线程的能力,它对应于一个 CPU 核心或一个超线程(如果 CPU 支持超线程)。超线程或多核 CPU 提供两个或多个调度vCPU运行的硬件基础。
可以将虚拟机配置为最多具有 64个vCPU。主机上许可的 CPU 数量、客户机操作系统支持的 CPU 数量和虚拟机硬件版本决定着您可以添加的vCPU 数量。
在传统的x86运行环境下,操作系统使用保护环提供保护级别以完成不同任务代码的执行。这些环以等级排列,从最有特权的(Ring 0)到最少特权的(Ring 3)。在未虚拟化的服务器上,操作系统拥有在Ring 0运行设备I/O等核心指令的权利,同时应用运行在Ring 3。在虚拟化系统上,Hypervisor和虚拟机监控器(VMM)需要运行在Ring0,因此虚拟机子操作系统必须运行在Ring1。但由于多数操作系统的设备I/O等核心指令必须运行Ring 0,那么VMM工具通过捕获特许指令和模拟Ring 0到子虚拟机,让子操作系统以为它运行在Ring 0。这样就产生了延时和开销。
因此,Intel和AMD等芯片厂商在CPU内引入了一个新的、具有超级特权和受保护的Ring-1位置来运行虚拟机监控器(VMM),因此VMM能运行在新的叫做Ring -1的环里,这允许GuestOS天生运行在Ring 0里。这种CPU架构上的虚拟化支持扩展提升了性能。VMM不再让GuestOS以为自己运行在Ring 0里,因为GuestOS已经能在此操作,并且不会与VMM冲突——VMM已经移动到新的Ring 1级别。选择支持这些虚拟化优化扩展的CPU,这可以更好地降低系统开销、提升虚拟化效率。
综上所述,对CPU的调度管理功能要求如下:
1.支持基于Intel/AMD X86指令集架构的处理器,支持最新的处理器硬件辅助虚拟化功能;
2.支持处理器多核技术;
3.支持虚拟多路运算,每个虚拟机可以支持多达64个虚拟CPU(vSMP)以满足高负载应用环境的要求;
4.可以灵活分配调度物理服务器上的CPU资源,如可按主频赫兹分配给虚拟机计算时间片;
5.对CPU的调度应能实现虚机按需使用,随用随取,不用即释放,使得计算资源能被充分利用;
6.在虚拟机操作系统支持的前提下,应能支持虚拟机的CPU热添加技术。
虚拟机有一个对应的硬件版本的概念,该硬件版本指示虚拟机支持的虚拟硬件特性,如 BIOS 或 EFI、虚拟插槽数、最多CPU 数、最大内存配置和其他硬件特征。创建虚拟机所用的 vSphere 主机的版本决定了虚拟机的硬件版本。
最新版本支持的最大虚拟机能力为:64个虚拟CPU、1TB内存、1000000 IOPS的磁盘读取速度以及36Gbs以上的网络吞吐量。远远大于典型应用的需求,足以满足关键应用和甚至大数据的需求。这足以满足每天处理 20 亿次交易的大规模数据库的需求,只需一台虚拟机,即可存储 NASDAQ每天 20 亿笔交易的全部信息。