本文向您详细地介绍了 Power System 虚拟化相关的技术和亮点,让您对这些最新的虚拟化技术有一个全面的了解。本文来自 IBM Systems Magazine for AIX 中文版

自从引入 POWER5 技术以来,虚拟化提供了许多出色的特性。它是服务器整合的基础;有助于减少计划内停机时间,对于绿色计算领域很重要。更快更大的服务器不但有更多的可用内存,而且包含 Virtual I/O (VIO) 服务器、Virtual Ethernet、shared Ethernet adapter (SEA)、Virtual SCSI 和 Micro-Partitioning 等功能。另外,Simultaneous multi-threading (SMT) 可以显著提高大多数工作负载的性能。但是,使用这些特性的关键是至少要安装 AIX V5.3(或 Linux),这是使用这些新特性所需的 OS 版本。基于 POWER6 处理器的服务器上的 AIX V6 提供更高级的虚拟化特性。

POWER5 和 POWER6 服务器的另一个好处是,它们可以在同一台服务器上的不同 LPAR 中同时运行多个不同的 OS。一台服务器可以同时运行 AIX V5.3、AIX V6.1、SUSE Linux Enterprise Server 和 Red Hat Enterprise Linux,它们都在自己的 LPAR 中运行。另外,可以使用 VIO 服务器功能支持它们。hardware management console (HMC) 或 integrated virtualization-manager (IVM) 软件管理服务器。

选项和术语

与虚拟化有关的术语比较混乱。术语分为三个领域:CPU、内存和 I/O(网络和磁盘)。但糟糕的是,一些命令使用略有不同的缩写词表示相同的东西。在 POWER6 处理器上,通过称为 PowerVM 的特性提供虚拟化。这个特性在 POWER5 系统上称为 Advanced Power Virtualization。POWER6 系列包含三个服务器版本:Express、Standard 和 Enterprise。Express 版只能在入门级系统(Power 520 和 Power 550)上使用,它的功能有限,比如只支持 IVM 和在 VIO 服务器中包含三个 LPAR。Standard 版提供所有虚拟化特性,但是不包括两个为 Enterprise 版保留的功能。Enterprise 版在 Standard 版的基础上增加了 live partition mobility 和 Active Memory Sharing 功能。

对于 POWER5 和 POWER6 服务器,总是运行 POWER Hypervisor,它提供把物理实体(CPU、内存和 I/O 设备等)与实际软件或 LPAR 隔离开的功能。通过运行 VIO 服务器支持客户机 LPAR 可以进一步增强虚拟化功能。VIO 服务器是定制的 LPAR,提供 SEA 和 Virtual SCSI 功能以及 live partition mobility 和 Active Memory Sharing。以前,即使 LPAR 很少使用 I/O 卡,也必须把整个槽分配给 LPAR;通过使用 VIO 服务器,可以在 LPAR 之间共享 PCI 槽中的卡。这可以显著减少 I/O 抽屉、I/O 卡和相关成本。

设置

一定要了解内存和 CPU 资源的三个设置。最小值是引导 LPAR 所需的最低量;在 LPAR 正常引导时,如果资源可用,它会使用期望值;最大值是正在运行的 LPAR 可以使用动态 LPAR 操作把资源提高到的上限。

Virtual Ethernet 和 SEA

Virtual Ethernet 是从 AIX V5.3 开始引入的,它并不需要 PowerVM。它让两个 LPAR 可以通过 Hypervisor 和 Vrtual Ethernet 通道通信。Virtual Ethernet 传输网络通信流需要一些 CPU 和内存。它还支持 Virtual LAN 和其他安全机制。

SEA 利用 Virtual Ethernet。SEA 并不把以太网适配器分配给 VIO 服务器上的每个 LPAR,而是把实际适配器(或聚合在一起的适配器组)分配给 VIO 服务器。LPAR 使用 Virtual Ethernet 与 VIO 服务器通信,必须传输到机器外的通信流都通过 VIO 服务器中的 SEA 发送出去。为了提供冗余,通常用两个 VIO 服务器作为 SEA,一个设置为主 SEA,另一个在执行故障转移时运行。SEA 可以减少系统上以太网卡的数量并提供故障转移和冗余。

Virtual SCSI

以前,如果希望为 LPAR 提供引导磁盘,就必须为连接磁盘的卡提供一个槽,这个槽是这个 LPAR 专用的。随着服务器越来越大、越来越快,需要在其中整合更多的 LPAR,这会显著增加引导 LPAR 所需占用的磁盘和槽数量,更何况还有实际数据磁盘。Virtual SCSI 让 VIO 服务器拥有适配器和磁盘,VIO 服务器可以分割磁盘并把部分磁盘(或整个磁盘)提供给 LPAR,让客户机 LPAR 认为自己拥有完整的引导磁盘。例如,根据 rootvg 的干净程度,大多数 LPAR rootvg 的大小在 30 到 45 GB 之间。目前最小的磁盘大约为 146 GB。通过使用 VIO 服务器,这个 146 GB 的磁盘可以轻松地分割为三个逻辑卷,每个逻辑卷可以作为一个 LPAR 的引导卷。即使为了提供冗余使用两个 VIO 服务器,这仍然可以显著减少磁盘、PCI 卡和 I/O 抽屉。

内存

直到不久之前,内存的情况还非常简单:内存是 LPAR 专用的。一定要记住,用来跟踪真实内存到虚拟内存映射的 Hypervisor 页面表条目的大小是根据 LPAR 的最大内存计算的,而不是根据期望内存。用户根据经验设置 LPAR 的最大内存,让 Hypervisor 的开销不会超过必要量太多。例如,如果服务器有 128 GB 内存,而 LPAR 的期望内存为 4 GB,那么把最大内存设置为 8 GB 左右而不是 128 GB。

这些页面表条目的 Hypervisor 开销的计算方法通常是,最大内存设置除以 64,然后向上取整到最接近的逻辑内存块大小。对于上面的示例,如果把最大内存设置为 128 GB,Hypervisor 就会为这个 LPAR 的页面表条目保留至少 2 GB 内存,尽管期望值只是 4 GB。如果最大内存设置为 8 GB,那么只保留 128 MB(根据逻辑内存块大小,也可能保留 256 MB)。

4 月,IBM 发布了 Active Memory Sharing 特性。这个工具提供可以由分区共享的内存池,允许在某些情况下过量使用内存,这样就不必购买很多内存。Active Memory Sharing 需要 AIX V6.1(或 IBM i 或 Linux)、POWER6 硬件和一些特定的固件版本。它还需要 PowerVM Enterprise 版,要求 LPAR 中的所有资源都是虚拟化的,LPAR 必须在共享处理器池中(使用 Micro-partitioning)。

Active Memory Sharing 是为内存需求变化大的 LPAR 设计的。VIO 服务器有一组特殊的 Active Memory Sharing 分页设备,在另一个 LPAR 需要内存时,可以根据设置时选择的选项交换出 LPAR 的内存。Active Memory Sharing 并不适用于内存使用量非常稳定或需要可预测的高性能的工作负载。它非常适合大多数测试和开发环境。关于 Active Memory Sharing 如何工作的更多信息,请参见 “Upping the Ante” (www.ibmsystemsmag.com/aix/junejuly09/coverstory/25427p1.aspx)。

CPU

讨论 CPU 时使用的术语也很混乱。在 IBM Power Systems 环境中,CPU 表示单一处理器或单一处理器核。对于其他厂商,不一定是这种含义,所以最好使用 “核” 这个词,尤其是在讨论许可证时。

核要么分配给 LPAR,要么放在共享处理器池中。有一个特性称为 dedicated donating,但是它的行为基本上与共享处理器池相似。对于专用的核,在引导时把物理核分配给 LPAR,同一个核一直由这个 LPAR 使用。因为一个时钟周期提供 10 毫秒 (ms) 的分派窗口,所以核的分派窗口是 10 ms。当前没有分配给专用 LPAR 的所有核通常都放在共享处理器池中。

在 POWER6 技术出现之前,只有一个共享处理器池。POWER6 服务器支持最多 64 个池,默认的池是 pool 0。如果把 LPAR 定义为使用共享处理器池,它们就可以使用 Micro-partitioning 功能。这意味着可以给 LPAR 分配一个核的十分之一,如果设置正确,LPAR 可以动态地收缩和增长。

基于 POWER5 处理器的 Power Systems 服务器支持 SMT。在基于 POWER5 和 POWER6 处理器的服务器上,许多寄存器是双重的,所以可以在同一个分派窗口中给同一个核分派两个线程,让它们同时运行,这样就可以利用流水线寄存器复制提供的优势。

虚拟 CPU、处理单元和逻辑 CPU 这三个概念会给理解处理能力设置造成困扰。首先,处理能力基本上是衡量可以使用的资源的指标。就像一品脱的瓶子有固定的容量,在给 LPAR 分配 CPU 和内存等资源时,也是指定可以使用的资源量。

专用的 CPU

在专用环境中,有一个核的服务器会显示一个处理器(可能在 lsdev –Ccprocessor 的输出中表示为 proc0)。如果关闭 SMT,vmstat 中的 lcpu 会显示有一个逻辑 CPU,lparstat 显示一个在线的虚拟 CPU。在这种情况下,这两个概念不会造成混淆。在关闭 SMT 时,vmstat 中的 lcpu=1 意味着一个真实的核分配给这个 LPAR。在分派线程时,它被分派给 proc0,proc0 代表真实的核。

如果打开 SMT 并运行 vmstat 和 lparstat,会在 vmstat 中看到 lcpu=2,而 lparstat 显示一个在线的虚拟 CPU。在专用环境中,没有虚拟 CPU 这样的概念,但是命令术语不变。lparstat 中的虚拟 CPU 实际上就是真实的 CPU。但是,如果打开 SMT,就会出现逻辑 CPU 的概念。每个逻辑 CPU 代表可以在同一个核上同时运行的线程之一。现在可以使用 mpstat –s 查看分派线程的情况。在打开 SMT 时,vmstat 中的 lcpu=2 意味着有一个核。在分派线程时,它被分派给逻辑 CPU,而逻辑 CPU 映射到 proc0,proc0 代表真实的核。

在专用环境中,有 5 个关键的设置:最小处理器数量、期望处理器数量、最大处理器数量、dedicated donating 以及一个决定在 LPAR 不运行时是否把核返回给池的选项。期望处理器数量是这个 LPAR 在引导时尽可能尝试使用的数量。专用 LPAR 的所有处理器设置都是表示核数的整数。

共享的 CPU

在共享 CPU 的环境中,虚拟处理器或 CPU 的概念是有意义的。核放在处理器池中,然后通过特定的设置给 LPAR 分配这个池。在核分配方面,现在有 6 个设置:最小、期望和最大处理器单元,最小、期望和最大虚拟处理器数量。因为可以把核的一部分分配给 LPAR,所以使用 “处理器单元 (PU)” 这个词,而不使用核。

例如,我们为一个 LPAR 设置最小值 0.1 PU、期望值 0.8 PU 和最大值 6 PU。还为它设置最小值 1 个虚拟处理器、期望值 2 个虚拟处理器和最大值 6 个虚拟处理器,而且它是不封顶的。打开 SMT。LPAR 按照期望设置(0.8 PU 和 2 个虚拟处理器)引导。

vmstat 命令显示 LCPU 为 4,lparstat 显示 2 个在线的虚拟 CPU。vmstat 和 lparstat 都显示标称处理能力为 0.8,vmstat 还显示 %entc 和 pc 字段。

PU 的期望设置(这里是 0.8)也称为标称处理能力。在 vmstat 中,%entc 是标称处理能力中正在使用的百分比,pc 是当前使用的处理器单元数量。在 LPAR 引导并获得期望的 PU 时,就会保证它随时可以使用期望的 PU。如果 LPAR 不使用这些 PU,Hypervisor 可以把它们分配给另一个 LPAR。如果 LPAR 是不封顶的,它可以超过它的标称处理能力,使用其他 LPAR 不使用的处理器资源。

虚拟处理器数量在共享的环境中有几个用途。首先,虚拟处理器数量决定 LPAR 认为它有多少个核。如果 VP=2,那么 LPAR 有 proc0 和 proc2,它认为自己有 2 个物理核。对于期望设置为 0.8 PU 的情况,这相当于有 2 个虚拟处理器,每个的初始分派窗口为 4 ms(对于完整的核应该为 10 ms)。在分派这两个虚拟处理器时,它们可以分派给相同或不同的核。系统会尝试把它们分派到以前运行它们的核上,但是不保证这一点。必须特别注意虚拟处理器设置,因为它们还告诉 LPAR 可以增长到多大,而且一些软件厂商使用它们计算许可证费用。

在前面的示例中,LPAR 是不封顶的,共享处理器池中有 6 个核,标称处理能力为 0.8,虚拟处理器数量设置为 2;打开了 SMT。在这种情况下,LCPU 显示为 4:因为有两个虚拟处理器,然后由于打开 SMT 而加倍。另外,尽管这个 LPAR 是不封顶的,但是它在增长时不能超过 2 PU,因为虚拟处理器数量实际上起到上限的作用。要想使用池中的所有 6 个核,必须把虚拟处理器数量设置为 6。不封顶的 LPAR 可以超过它的标称处理能力(期望的 PU),但是不能超过期望的虚拟处理器数量或池大小(以其中比较小的值为准)。

关于 Micro-partitioning 技术还要注意几点:

  • 与专用的核一样,完整的核的分派时间是 10 ms 的时间片。
  • 标称处理能力为 0.3 意味着一个核的百分之 30,即 3 ms 的时间片。
  • 标称处理能力为 1.4 意味着,对于每个 10 ms 的时间片,LPAR 有 14 ms 的处理时间(显然需要跨多个核)。对于 2 个虚拟处理器,这相当于每个核上 7 ms。
  • 对于一个核,分配的虚拟处理器越多,分派窗口就越小。
  • 根据标称处理能力、虚拟处理器数量和中断数量,一个 LPAR 可以在多个核上运行。
  • 期望的虚拟处理器数量不能超过标称处理能力的 10 倍或 64(以其中比较小的值为准)。

对于不封顶的 LPAR,每个虚拟处理器可以增加它使用的处理能力,但是不超过一个完整的核(即 10 ms)。因此,即使一个 LPAR 的标称处理能力只有 0.8,但是如果它有两个虚拟处理器而且不封顶,在有资源可用的情况下,它可以增长到 2 个完整的核。但是,如果虚拟处理器数量设置为 1,它就不能超过一个核。如果 LPAR 设置为封顶的,规则就不一样了;封顶的 LPAR 不能超过它的标称处理能力。因此,如果这个 LPAR 是封顶的,它就不能超过 0.8 PU(见表 1)。

>表 1.共享 CPU
  不封顶 LPAR1 不封顶 LPAR2 封顶 LPAR3
标称数量 2.0 2.0 2.0
需要的虚拟处理器数量 4.0 6.0 4.0
最大增长 4 PU 6 PU 2.0

虚拟化的好处和困难

显然,明智地实现虚拟化可以显著地节省资源。但是,要想理解虚拟化背后的概念,一定要掌握相关术语。标称处理能力、处理器单元、虚拟处理器、处理能力和池尤其重要。

本文的英文原文最先在 IBM Systems Magazine 在线网站(www.ibmsystemsmag.com)上发布。

Jaqui Lynch 是 IBM Systems Magazine, Power Systems - AIX 版的技术编辑和 Mainline Information Systems 的资深系统工程师。可以通过 jaqui.lynch@mainline.com 联系 Jaqui。

Power Systems 虚拟化简介的更多相关文章

  1. SQL Server 虚拟化(1)——虚拟化简介

    本文属于SQL Server虚拟化系列 前言: 现代系统中,虚拟化越来越普遍,如果缺乏对虚拟化工作原理的理解,那么DBA在解决性能问题比如降低资源争用.提高备份还原速度等操作时就会出现盲点.所以基于本 ...

  2. KVM虚拟化技术(一)虚拟化简介

    一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个 ...

  3. KVM -> 虚拟化简介&虚拟机安装_01

    什么是虚拟化? 在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU.内存.磁盘空间.网络适配器等),予以抽象.转换后呈现 ...

  4. VMware vSphere 虚拟化简介

    目录 目录 vSphere 简介 vSphere 提供的工具 vCenter vCenter 的功能 vCenter 管理界面上提供的操作功能 HOST CLUSTER TEMPLATE Virtua ...

  5. 1 云计算系列之云计算概述和KVM虚拟化简介

    为什么会出现云之传统数据中学面临的问题 物理服务器的利用率非常低,浪费资源,且资源分配不合理,比如一台服务器CPU使用率不到40%,或者某个应用需要的硬件配置低但是服务器硬件配置高等等. 云计算概念 ...

  6. linux虚拟化简介

    为跨平台而生 在计算机发展的早期,各类计算平台.计算设备所提供的接口.调用方式纷繁复杂,没有像今天这样相对统一的标准.由于需要适配不同的平台,需要写很多繁琐的兼容代码,这无形中给开发者带来了很大的不便 ...

  7. KVM虚拟化——简介

    KVM 基于内核的虚拟机KVM(Kernel-Based Virtual Machine)是2007年问世的开源虚拟化解决方案.KVM需要两个条件: ①硬件支持全虚拟化 ②操作系统为Linux KVM ...

  8. KVM虚拟化简介及安装

    kvm是基于图形化的linux操作的 安装图形化界面的知识点: 磁盘空间有两个词: 精简置备:我先在我系统里面去声明我要一个50G的空间,但是呢,我不会把50G都分给你,你用多少,我分给你多少,但是做 ...

  9. 自助分析工具Power BI的简介和应用

    作为一名资深的IT技术人,特别喜欢学习和尝试新技术,也勇于接受挑战,勇于创新,不仅能发现问题,更要解决实际的疑难杂症,闲暇时光也乐于分享一些技术干货.记得2017年的时候,华章出版社的编辑通过网上找到 ...

随机推荐

  1. JAVA的IO流:打印流

    打印流: 打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流:PrintWriter.打印流提供了非常方便的打印功能, 可以打印任何类型的数据信息,例如:小数,整数,字符 ...

  2. android-pull方式解析xml文件以及XML文件的序列化

    android解析XML ---------------------------基础要像磐石 在android平台上可以使用SAX.DOM和自带的Pull解析器解析xml文件,本文主要介绍使用pull ...

  3. ansible远程切换用户执行命令

    ansible test -l 10.0.10.1 -e "ansible_become_user=www" -m shell -a "/data/publish/pub ...

  4. set hive.exec.parallel

    hive.exec.parallel参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.下面是对于该参数的测试过程: 测试sql:select r1.a    from (sel ...

  5. ReferenceError: Promise is not define

    尽管加入了babel-polyfill ,依然出现 [ReferenceError: Promise is not define]的问题.目前只在三星.金立手机出现这种问题.没办法,只能强行修复了. ...

  6. Mysql 常用函数集

    1.分类导航 一共分为5类函数 . 字符型函数 . 数值型函数 . 日期型函数 . 统计型函数 . 其它型函数 2.字符型函数[约48个] ascii(str) bin(n) bit_length(s ...

  7. ORA-1092 : opitsk aborting process---killed by oom killer

    oracle version:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production os versi ...

  8. Html添加百度地图

    方法/步骤 1.打开“百度地图生成器”的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 如下图: 2.在“1.定位中心点”中,切换城市,并 ...

  9. 创建Mat

    #include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vect ...

  10. NPOI读取操作excel

    .读取using (FileStream stream = new FileStream(@"c:\客户资料.xls", FileMode.Open, FileAccess.Rea ...