基于VMware的服务器内存与CPU虚拟化技术研究

2018-03-22 11:40马鹏杜小月杨彦仙孙超
中国管理信息化 2018年5期
关键词:虚拟化技术服务器

马鹏 杜小月 杨彦仙 孙超

[摘 要] 伴随着IT技术高速发展与革新,传统IT基础架构环境中,业务迅速发展给IT带来很大压力,服务器需求不断增多,机房空间、电力成为瓶颈,导致应用所需服务器资源紧张,正常项目开展受到限制。如果不断购买新的服务器,又会增加采购成本和运作成本,而且还会带来更多供电和冷却的开支,同时,目前的服务器还没有得到充分的利用。通常情况下,企业的服务器工作负载只利用了 5%,这导致了大量的硬件、空间以及电力的浪费。同时由于应用程序兼容性的问题,IT人员只能通过在不同场所的不同服务器中分别运行应用的方式,将应用程序隔离起来,而这又会导致服务器数量的增长。

云南电网公司作为大型企业,信息化建设不断发展,目前信息化网络以信息中心为运营维护单位,覆盖市场计费、生产经营等多套业务系统,服务器资源庞大。虽然云南电网公司已经完成了对其数据中心的服务器虚拟化改造,但是对其相关应用技术的认识似乎不是很深,了解和研究先进技术对于企业未来信息化的发展具有奠定基础的意义。

[关键词] 云南电网;虚拟化技术;服务器

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 05. 065

[中图分类号] TP311 [文献标识码] A [文章编号] 1673 - 0194(2018)05- 0156- 04

0 引 言

本文借助VMware的相关应用技术,旨在对服务器虚拟化的内存与CPU虚拟化概念进行阐述,从VCPU和内存虚拟化方面的应用技术进行浅析。

1 CPU虚拟化应用技术

1.1 vCPU技术

VMware通过CPU虚拟化技术解决了如何在一个操作系统实例中运行多个应用的难题。实现这一任务的困难之处在于每一个应用都与操作系统之间有着密切的依赖关系。

服务器整合的益处能够得以实现的前提是工作负载并不需要知晓它们正在共享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 数量。

1.2 vCPU和管理vCPU技术概念

1.2.1 处理器管理

从客户操作系统vCPU发往ESXi VMkernel的指令被VMM拦截。在固定时间间隔内,VMKernel动态地在服务器和不同处理器(或多核处理器的内核)中分配VM工作负载。因此,VM指令根据每个处理器的工作负载从一个处理器(或内核)转移到另一个处理器。

1.2.2 多内核和虚拟化

多核处理器为执行虚拟机多任务的主机提供了很多优势。

Intel 和 AMD 均已开发了将两个或两个以上处理器内核组合到单个集成电路(通常称为封装件或插槽)的处理器。

同一处理器中的内核通常配备由所有内核使用的最低级别的共享缓存,这有可能会减少访问较慢主内存的必要性。如果运行在逻辑处理器上的虚拟机正运行争用相同内存总线资源且占用大量内存的工作负载,则将物理处理器连接到主内存的共享内存总线可能会限制其逻辑处理器的性能。

VMware的研究显示使用多核心可以导致可观的耗电下降,并提供良好的性能。虚拟化是最好地利用多内核提供的高性能的技术之一,因为,ESXi能够像管理物理处理器一样地管理核心。

1.2.3 对称多处理器

vSphere 虚拟对称多处理技术(Virtual SMP) 可以使单个虚拟机同时使用多个物理处理器,并能够在处理器之间均衡负载。必须具有虚拟 SMP,才能打开多处理器虚拟机电源。一些关键业务,比如数据库类应用(Microsoft SQL、Oracle、IBM DB2、SAP)和商业、科研应用,在开发的时候就考虑了并行执行任务的需求,具有多个物理处理器的服务器就能利用SMP并从中获益。

1.2.4 超线程

超线程是在一个物理处理器或者内核上创建两个逻辑内核实例,从而在核心中并行执行任务,提高效率。在vSphere虚拟机的处理器分配中,一个超线程可以对应一个vCPU。

1.2.5 CPU虚拟化类型

从架构上看,传统的X86平台并不是为支持多操作系统并行而设计的。因此CPU厂商如AMD和Intel都需要重新设计CPU,增加虚拟化特性,以解决上述问题。当前X86 虚拟化平台的主要厂商如VMware等,也已經开始充分利用芯片厂商在处理器架构中构建的硬件辅助功能,以提高系统运行效率,降低Hypervisor带来的系统开销。

Intel和AMD等芯片厂商在CPU内引入了一个新的、具有超级特权和受保护的Ring-1位置来运行虚拟机监控器(VMM),因此VMM能运行在新的叫作Ring -1的环里,这允许GuestOS天生运行在Ring 0里。这种CPU架构上的虚拟化支持扩展提升了性能。VMM不再让GuestOS以为自己运行在Ring 0里,因为GuestOS已经能在此操作,并且不会与VMM冲突——VMM已经移动到新的Ring 1级别。选择支持这些虚拟化优化扩展的CPU,这可以更好地降低系统开销、提升虚拟化效率。

基于以上设计,Intel和AMD分别推出了VT-x和 AMD-v这两种主要的X86处理器架构的虚拟化硬件辅助功能。

1.2.6 CPU负载均衡

CPU调度器可以让多个虚拟机复用逻辑处理器(逻辑处理器的单位是一个 CPU 核心或一个超线程),提供給虚拟机类比于传统对称多处理器(SMP)的执行能力,并使他们之间相互独立。如果存在超线程,VMkernel尽量把相同虚拟机的vCPU负载分散到不同内核的线程上来实现性能的优化。

ESXi CPU 调度程序可以解释处理器拓扑(包括插槽、内核和逻辑处理器之间的关系)。调度程序使用拓扑信息优化虚拟 CPU 在不同插槽上的放置位置,以最大化总体的缓存利用率,并通过最小化虚拟 CPU 迁移来改善缓存关联性。

1.3 CPU的调度管理功能

支持基于Intel/AMD X86指令集架构的处理器,支持最新的处理器硬件辅助虚拟化功能;

支持处理器多核技术;

支持虚拟多路运算,每个虚拟机可以支持多达64个虚拟CPU(vSMP)以满足高负载应用环境的要求;

可以灵活分配调度物理服务器上的CPU资源,如可按主频赫兹分配给虚拟机计算时间片;

对CPU的调度应能实现虚机按需使用,随用随取,不用即释放,使得计算资源能被充分利用;

在虚拟机操作系统支持的前提下,应能支持虚拟机的CPU热添加技术。

2 内存虚拟化应用技术

2.1 内存虚拟化技术

当运行一个虚拟机时,引入内存虚拟化之后,同样的内存地址空间,允许VMkernel同时运行多个虚拟机并保证它们之间使用内存的独立性。

VMware vSphere的三层内存映射结构如图1所示。

ESXi 主机采用了几种有效方法来支持安全的内存过量分配。例如,过量分配率为 2∶1 时,通常只会对性能产生非常小的影响。

通过 VMware 设计的若干功能,vSphere 可支持实现 RAM 的高效使用和更高的整合率,包括透明页共享、客户机内存回收和内存压缩。

透明页共享TPS(Transparent page sharing)

TPS 是 VMware 独有的一种内存优化方法。VMkernel 可检查虚拟机存储的每个内存页面,以便识别相同的页面,并仅存储一个页面副本。

气球内存回收:ESXi 主机使用一种随 VMware Tools 提供的内存释放驱动程序,该程序安装在每个虚拟机中。如果内存不足,则 VMkernel 将选择一个虚拟机并扩充其内存,也就是说,它会通知该虚拟机中的释放驱动程序从客户操作系统中要求更多的内存。

内存压缩:当内存过量分配时,内存压缩可以帮助提高虚拟机性能。默认情况下已启用该功能。因此当主机内存过量分配时,ESXi 会在尝试将该页面交换到磁盘前压缩虚拟页面并将其存储在内存中。

主机级SSD交换文件:每个虚拟机都包含一个 VMkernel 交换文件。如果多个虚拟机需要完全使用分配给它们的内存,则 ESXi 主机将根据为每个虚拟机指定的内存资源设置,按比例将其内存区域交换到本地或网络固态驱动器 (SSD) 设备中。

将虚拟机内存分页移到磁盘中: 如非必要, 系统不会使用 VMkernel 交换空间, 因为这种方式的性能很差。

2.2 内存的调度管理功能

单个虚拟机能够支持扩展到最大1TB的内存;

可以灵活分配调度物理服务器上的内存资源,如可按MB大小分配给虚拟机内存资源;

对内存的调度应能实现虚机按需使用,随用随取,不用即释放,使得计算资源能被充分利用;

具有合理的内存调度机制,能够实现内存的过量使用,支持不同虚拟机中内存相同数据部分的页面共享技术,保障内存资源的充分利用;

在虚拟机操作系统支持的前提下,应能支持虚拟机的内存热添加技术;

支持内存压缩技术,减少虚拟内存在虚拟机高压力内存状态下交换到磁盘上

3 结 语

VMware的服务器虚拟化vSphere是业界领先的用于构建云计算基础架构的虚拟化平臺。它使得 IT 能以最低的总体拥有成本满足要求最严格的关键业务应用的SLA,云南电网公司属于大型的企业,目前信息化网络以信息中心为运营维护单位,覆盖出单、收付等多套业务系统,服务器资源庞大。出于经济效益和管理安全性考虑,针对基础架构的虚拟化技术研究已势在必行。

主要参考文献

[1]王春海.VMware vSphere企业运维实战[M].北京:人民邮电出版社,2014.

[2]张巍.企业虚拟化实战:VMware篇[M].北京:机械工业出版社,2009.

猜你喜欢
虚拟化技术服务器
通信控制服务器(CCS)维护终端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
虚拟化技术在中职学校校园网服务器中的应用
云计算虚拟化技术在电信领域的应用研究
基于SOP架构的一种轻量级虚拟化防火墙的实现
计算机网络安全服务器入侵与防御
服务器操作系统可信加固技术研究
关于Linux的视频服务器开发与实现分析