IBM PowerVM 实战手册,第 1 部分 : 前言及设计

本文结合作者几年来对 IBM 虚拟化微分区的成熟经验,并以宝信实验室的 2 台 55A 的实际部署为例,论述了 IBM 的 PowerVM 虚拟化服务的详细过程,对有兴趣和开始实施 PowerVM 的同仁相信有很大的帮助。

辛 旻 (xinmin@baosight.com), IBM 主机工程师, 上海宝信软件股份有限公司

辛 旻辛旻,拥有西安交通大学学士学位,上海宝信系统服务部技术支持中心 IBM 主机技术路线负责人,有从事 AIX 工作的多年实践经验,曾公开发表过《AIX 操作系统的内存调度机制剖析》一文,对 IBM psystem 平台有较为深入的掌握,已通过8门 AIX 相关认证,同时获得 CATE 高级认证。



2009 年 2 月 05 日

前言

为什么服务器需要虚拟化

  • 可以有效控制服务器数量,提高资源利用率。

    利用 IBM 的 PowerVM 技术,我们实现了 1 台 p570 划分 20 个分区,如果实际购买机器,至少需要 20 台 p510。

  • 节能减排,降低投资 .

    显而易见,服务器虚拟化可以省电省散热省空间,大量减少 PCI 卡等等投资。拿宝信实验室举例,1 台 p55A 能顶掉原来 10 台 p52A,空间节省 75%,电节省 80%,散热减少 80%,投资也至少减少 70%,长期下来节能效果相当惊人。

  • 简化服务器的部署、管理

    利用 IBM 的 PowerVM 技术,可以使得服务器的环境完全一致,使得加上 NIM 安装技术的成功率大大提高,可以在短短 60 分钟内,部署 8 台以上的虚拟服务器,由于 APV 和 IBM 硬件控制台(HMC)密不可分,也就可以很方便地实现了这些虚拟服务器远程管理,包括启停、调整系统资源等等。

  • 模拟各类操作系统和各个资源不同的机器,实现良好的学习测试实验环境

    对于 IBM 的 PowerVM 技术,目前支持 AIX5.3、AIX6.1,部分 Linux,可以模拟多台从 0.1CPU,128 MB 到小于物理机器资源的机器。


PowerVM 的主要组成部分及概念

最新的 PowerVM 是在基于 IBM POWER 处理器的硬件平台上提供的具有行业领先水平的虚拟化技术家族。它是 IBM Power System 虚拟化技术全新和统一的品牌(逻辑分区,微分区,Hypervisor,虚拟 I/O 服务器,APV,PowerVM Lx86,Live Partition Mobility)。大家对 2004 年即出现的 APV 应该记忆犹新,随着 Power6 的推出和 i 和 p 系列的合并,APV 也发展成为 PowerVM。 PowerVM 有三个版本,分别是 PowerVM Express Edition,PowerVM Standard Edition,PowerVM Enterprise Edition。对于 Power6,PowerVM 新支持 Multiple Shared Processor Pools 功能和 Live Partition Mobility 功能。

下面就其主要部分介绍一下,以方便后面实战部分的阅读。

微分区(Micro-Partitioning)
微分区改变了 POWER 系列服务器的整个规划结构。实施 APV 后,可以在资源分配方面提供更大的灵活性和细分能力。添加处理器的部分处理能力而不是整个处理器,还能够帮助客户更好地利用服务器。使用工作负载管理器(WLM)和 PLM 有助于更好地优化这些资源。

现在,分区要么是专用的处理器分区(按整个处理器的增量来分配处理能力),要么是共享的处理器分区(使用微分区);不会出现两者的组合。使用微分区时,可以将一组处理器分配到共享处理器池(SPP),然后使 LPAR 可以(根据在池中获得的容量和优先级)使用这些处理器。此时,服务器上仅有一个 SPP 可用,但多个 LPAR 可以共享这些资源。

虚拟 I/O 服务器
APV 功能部件的关键组件之一是虚拟 I/O 服务器。该设施可以提供 I/O 虚拟化和网络资源虚拟化。虚拟 I/O 服务器是一个分区,用于提供 I/O 资源共享,还用于为一个或多个客户机 LPAR 托管虚拟盘、光存储和 SEA。

虚拟 LAN
虚拟 LAN 不是 APV 的一部分,它只需要 POWER5 系统上有 AIX 5L V5.3 或支持的 Linux 版本。HMC 用于定义虚拟 LAN 设备,从而使 LPAR 通过内存而非以太网卡连接。一个 LPAR 可支持多达 256 个虚拟 LAN,每个虚拟 LAN 的传输速度都在 1 到 3 Gbps 之间。在这里,性能是值得关注的一点。如果在分区之间使用物理 LAN 连接,则适配器以 LAN 的传输速度运行,而不是以通常快许多的内存传输速度运行。由于适配器能够自行处理其任务,所以需要的处理器开销非常少。如果使用 VLAN,数据传输/交换速度会更快,因为两个分区之间基本上是内存传送。但是,这种传输需要处理器的参与。这两种传输方式的速度可能各有不同,视具体情况而定。但总的来说,VLAN 比物理互连要快。

共享以太网适配器
SEA 是一种与 APV 一起提供的 POWER5 中的新服务,它支持多个分区共享虚拟 I/O 服务器上的物理适配器。它实际上起着第 2 层网桥的作用,在客户机中的虚拟以太网适配器和主机服务器中的实际适配器之间路由数据。网络适配器共享是通过虚拟 I/O 服务器上配置的 SEA 实现的。通过虚拟 I/O 服务器,数据或者在实际网络中流动,或者经由 Hypervisor 流向实际分区。

虚拟 SCSI
在 I/O 方面,使用虚拟 SCSI 服务器共享磁盘和适配器。虚拟 SCSI 服务器运行在虚拟 I/O 服务器上,它能够支持您在一个物理磁盘上分配多个逻辑卷(LV)。然后,您可以将每个 LV 导出到不同的客户机 LPAR。客户机 LPAR 会将这些 LV 视为常规 SCSI 磁盘,而它们实际上可能是通过光纤连接到服务器。例如,您可以使用一个 146GB 磁盘驱动器,将它划分为 3 个 45 Gb LV 并将它们用作 3 个不同 LPAR 的引导磁盘。

总的来说,这些概念相互独立。为便于后面阅读和实践,我们主要弄清 2 个大的概念:微分区和 VIO server 即可,以下是我个人的白话理解:

微分区 可以理解成可以小于 1 个 CPU 并和其他分区充分共享 CPU 的 LPAR,内存的使用和 LPAR 没有什么不同。它可以使用 VIO server 共享出来的网卡和存储,也可以不用。

VIO server 是一个特殊的分区,负责共享 I/O( 网卡和存储 ) 供其他分区使用。不仅仅是微分区,实际也可以供一般 LPAR 使用,只是考虑到性能的原因,一般不这么做。其中网卡通过实际网卡通过 SEA 勾连转换为共享虚拟网卡,通过 虚拟 LAN 和各个分区连通,同时使得各个分区可以通过共享虚拟网卡的桥接与外界联系。共享存储是通过设置虚拟 SCSI 卡 vhost,可以把 VIO server 的 lv 或磁盘,(新 powerVM 还可以包括文件)映射给 vhost,实际 vhost 对应到其他分区就是一块 SCSI卡,可以供其他分区使用。

实验环境说明:

机器一览表

设备名 配置 备注
ss55aa01 IBM P55A(机架式):4* 1.9GHz ,32GB 内存,底板集成双口双绞线网卡,1×双口千兆双绞线网卡,1×双口 4Gb HBA 卡,1×显卡,HDD:2*146GB 15Krpm,DVD-ROM,内置 DAT72 带机,冗余电源,AIX 5.3,2×异步卡,HMC,虚拟分区 微分区主服务器
sse4km300a01 Eternus 4000 Module 3000
ET4K M300 rack mount;4GB Cache Memory (2x1GBx2CM);FC (4Gbps) host interface (4-portx2CA) E4KM300;146GB/15Krpm disk drive siglex13;500GB/7.2Krpm(single)X4;
磁盘阵列
ss210ea01,ss210eb01 Brocade Silkworm 210E(机架式机箱,带快速上架导轨)
16 块 4G 短波光纤模块,16 口激活,带相应管理软件
SAN 交换机

实验环境示意图

规划设计

规划前的需求调研

在做规划之前,或者说一个准备实施微分区的服务器来说,至少需要调查了解各个分区系统的以下相关情况,这些都可能影响到微分区的配置和划分。

  • 各个微分区负载应用特点

    如 CPU、内存、网络等特别是 I/O 的负载的侧重。

  • 各个微分区网络需求

    包括网段的划分、路由、网络设备的冗余等等在系统上线前的状况和可提供条件,以及实施运行过程中可能出现的变更。

  • 各个微分区存储需求

    包括存储的大小,性能的要求,以后扩展的需要。

微分区的设计

本文由于是实验室环境,性能要求不高,所以网卡和 HBA 卡设备都由 VIO server 共享出来。实际使用时,对于性能要求较高的微分区,网卡和 HBA 卡可以单独划分给某个分区。当然需要设计和购买相应的卡。

  1. 分区规划

    考虑到实验室实际情况,本次实施只划分了 10 个微分区,但实际可以更多,可以事后再追加。

    分区名 名称
    ss55aa01 vio server
    ss55aa11 微分区 1
    ss55aa12 微分区 2
    ss55aa13 微分区 3
    ss55aa14 微分区 4
    ss55aa15 微分区 5
    ss55aa16 微分区 6
    ss55aa17 微分区 7
    ss55aa18 微分区 8
    ss55aa19 微分区 9
    ss55aa20 微分区 10
  2. CPU 的设计

    这些微分区为开发测试分区,开发测试的人员为同一批人,所以不太可能所有的分区都同时繁忙,所以做了如下设计:

    分区名 min desire max v_min v_desire v_max share_mode 权重
    ss55aa01 0.3 0.5 1 1 2 4 uncapped 128
    ss55aa11 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa12 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa13 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa14 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa15 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa16 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa17 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa18 0.1 0.3 4 1 2 4 uncapped 64
    ss55aa19 0.1 0.3 4 1 2 4 uncapped 2
    ss55aa20 0.1 0.3 4 1 2 4 uncapped 2

    权重越高,是当 CPU 不够分配的时候,按此比例来分配,即 2 个学习分区的权重最低,分配的 CPU 会最少。

    注意,此处 VIO server 的 CPU 也为共享,优先级最高,基于以下原因:

    • CPU 数量有限,专有 CPU 至少为 1 颗,有些浪费。
    • 这是由于该机器为实验室用途,性能要求不高,对 VIO server 的压力不大。
    • 此 powerVM 实际为 power5 的 APV,不能实现 power6 的 Multiple Shared Processor Pools 功能 , 设为专有 CPU 后,将不能自动调整实际 CPU 的使用。
    • 实际使用过程中,如果 CPU 宽裕,对性能有要求,建议采用专有 CPU 模式。

    另外,设计虚拟 CPU 时需注意,由于在微分区实际使用时,实际可使用物理 CPU 的个数受限于虚拟 CPU 的个数,即虽然你物理 CPU 的最大值为 16,但如果虚拟 CPU 个数为 4,实际能使用的 CPU 个数即为 4,所以其最大值最好接近于整个机器的物理 CPU 个数。

  3. 内存的设计

    考虑到实际情况,前 8 个分区为开发测试环境,后 2 个为学习环境,具体调整根据实际运行后再修正。

    分区名 min desire max
    ss55aa01 512M 768 1G
    ss55aa11 1G 3G 6G
    ss55aa12 1G 3G 6G
    ss55aa13 1G 3G 6G
    ss55aa14 1G 3G 6G
    ss55aa15 1G 3G 6G
    ss55aa16 1G 3G 6G
    ss55aa17 1G 3G 6G
    ss55aa18 1G 3G 6G
    ss55aa19 128M 512M 1G
    ss55aa20 128M 512M 1G
  4. 网络的设计

    由于开发测试也需要模拟运行环境,有可能 2 个网段,并可能做 HA,所以做以下设计:

      • 2 个网段 4 块的千兆网卡 ent0-ent3
      • 可以互联也可以外部连接其他测试机。
      • ent0,ent1 一个 vlan,ent2、ent3 一个 vlan。以下为 VLAN 号

    所有微分区网卡可设计成一样,当然也可不同 :

    SCSI ID VLAN IEEE 802.1q 兼容适配器 访问外部网干线优先级 连接外网
    4 1
    5 1
    6 98
    7 98

    由于这些微分区作为开发测试环境的网络负载不是很高,且由于此 55A 仅 2 个内置网口,2 个外置网口,而微分区的网口需求多达 40 个,只能采用 VIO server 来设计网络需求,也同时有力佐证了 PowerVM 的好处。

  5. 存储的设计

    这里可以看到,每个微分区的 SCSI 存储卡实际是可以对应 VIO server 上的 profile 里一个虚拟 SCSI 卡,即 VIO Server 操作系统里的 vhost。

    分区名 微分区 SCSI ID:2 微分区 SCSI ID:3
    ss55aa11 111 112
    ss55aa12 121 122
    ss55aa13 131 132
    ss55aa14 141 142
    ss55aa15 151 152
    ss55aa16 161 162
    ss55aa17 171 172
    ss55aa18 181 182
    ss55aa19 191 192
    ss55aa20 201 202

    考虑到前 6 个分区会安装数据库,临时性的文件较多,设置 100G 的 tempvg,可以根据今后实际情况加以调整。

    分区名 rootvg1 rootvg2 datavg tempvg
    ss55aa01 139G 139G
    ss55aa11 20G 20G 50G 100G
    ss55aa12 20G 20G 50G 100G
    ss55aa13 20G 20G 50G 100G
    ss55aa14 20G 20G 50G 100G
    ss55aa15 20G 20G 50G 100G
    ss55aa16 20G 20G 50G 100G
    ss55aa17 20G 20G 50G
    ss55aa18 20G 20G 50G
    ss55aa19 20G 20G 50G
    ss55aa20 20G 20G 50G

VIO server 的设计:

  1. 磁盘和 VG 规划设计:

    由于通常 rootvg 对磁盘读写性能要求不高,为了便于管理,将 rootvg 放在 2 个大的 vg,然后划分出 lv 来对应,其他划分磁盘 hdisk 一一对应。

    lun_id vg disk 大小
    0x000 55a01_rootvg1 hdisk2 200G
    0x001 55a11_datavg hdisk3 50G
    0x002 55a12_datavg hdisk4 50G
    0x003 55a13_datavg hdisk5 50G
    0x004 55a14_datavg hdisk6 50G
    0x005 55a15_datavg hdisk7 50G
    0x006 55a16_datavg hdisk8 50G
    0x007 55a17_datavg hdisk9 50G
    0x008 55a18_datavg hdisk10 50G
    0x009 55a19_datavg hdisk11 50G
    0x00A 55a20_datavg hdisk12 50G
    0x00B ss55a01_tempvg1 hdisk13 100G
    0x00C ss55a01_tempvg2 hdisk14 100G
    0x00D ss55a01_tempvg3 hdisk15 100G
    0x00E ss55a01_tempvg4 hdisk16 100G
    0x00F ss55a01_tempvg5 hdisk17 100G
    0x010 ss55a01_tempvg6 hdisk18 100G
    0x011 ss55a01_rootvg2 hdisk19 200G

    rootvg 设计

    考虑到空间的原因,rootvg 尽量节省,所以保留的 20G 一个,对于磁盘紧张的机器,可以放在内置盘。如果配置 146G 一个内置盘,取出 VIO server 自身使用约 30G,可以配置 5 个分区,如果配置目前常见的 300G 一个内置盘,也是一个不错的选择。

    55aa01_rootvg1:

    LV TYPE SIZE
    rootvg1_55a11 jfs2 20G
    rootvg1_55a12 jfs2 20G
    rootvg1_55a13 jfs2 20G
    rootvg1_55a14 jfs2 20G
    rootvg1_55a15 jfs2 20G
    rootvg1_55a16 jfs2 20G
    rootvg1_55a17 jfs2 20G
    rootvg1_55a18 jfs2 20G
    rootvg1_55a19 jfs2 20G
    rootvg1_55a20 jfs2 20G

    55aa01_rootvg2:

    LV TYPE SIZE
    rootvg2_55a11 jfs2 20G
    rootvg2_55a12 jfs2 20G
    rootvg2_55a13 jfs2 20G
    rootvg2_55a14 jfs2 20G
    rootvg2_55a15 jfs2 20G
    rootvg2_55a16 jfs2 20G
    rootvg2_55a17 jfs2 20G
    rootvg2_55a18 jfs2 20G
    rootvg2_55a19 jfs2 20G
    rootvg2_55a20 jfs2 20G
  2. 虚拟适配器设计:
    • 网卡 :

    对于微分区,内部网卡此处设计为 2 个网段,即 2 个 VLAN,一个为 1,一个为 98,和 VIO server 内部 vlan 一一对应;对于 VIO server 对外,可以互通,都是新 vlan 为 1。即此处 2 和 99 留有今后扩充,没有使用。因为事后添加需要重起 VIO server。

    SCSI ID VLAN IEEE 802.1q 兼容适配器 新 VLAN 标示 访问外部网干线优先级 连接外网
    11 1 1 1
    12 2 1 2
    13 98 1 3
    14 99 1 4

    • 存储卡 :

    此处设置为任意分区,这样今后方便变化,可根据实际情况加以调整。这里只设计 20 个 vhost,但建议可以设计更多,因为事后添加需要重起 VIO server。

    SCSI ID vhost 规划微分区 任意插槽任意分区 rootvg data vg
    111 vhost0 ss55aa11 rootvg1_55a11 55a11_datavg
    112 vhost1 ss55aa11 rootvg1_55a11 55a11_tempvg
    121 vhost2 ss55aa12 rootvg1_55a12 55a11_datavg
    122 vhost3 ss55aa12 rootvg2_55a12 55a11_tempvg
    131 vhost4 ss55aa13 rootvg1_55a13 55a11_datavg
    132 vhost5 ss55aa13 rootvg2_55a13 55a11_tempvg
    141 vhost6 ss55aa14 rootvg1_55a14 55a11_datavg
    142 vhost7 ss55aa14 rootvg2_55a14 55a11_tempvg
    151 vhost8 ss55aa15 rootvg1_55a15 55a11_datavg
    152 vhost9 ss55aa15 rootvg2_55a15 55a11_tempvg
    161 vhost10 ss55aa16 rootvg1_55a16 55a11_datavg
    162 vhost11 ss55aa16 rootvg2_55a16 55a11_tempvg
    171 vhost12 ss55aa17 rootvg1_55a17 55a17_datavg
    172 vhost13 ss55aa17 rootvg2_55a17
    181 vhost14 ss55aa18 rootvg1_55a18 55a18_datavg
    182 vhost15 ss55aa18 rootvg2_55a18
    191 vhost16 ss55aa19 rootvg1_55a19 55a19_datavg
    192 vhost17 ss55aa19 rootvg2_55a19
    201 vhost18 ss55aa20 rootvg1_55a20 55a20_datavg
    202 vhost19 ss55aa20 rootvg2_55a20
  3. 网卡设计

    根据微分区的 4 块网卡 2 个网段的需求,并考虑可靠性,VIO server 将主板的网卡和外置 PCI 网卡绑成 2 块对外聚合网卡,设计如下:

    phy ent ethernet_Channel visual ent vadapter id SEA
    ent0 ent8 ent4 11 ent10
    ent2 ent8 ent4 11 ent10
    ent1 ent9 ent5 12 ent11
    ent3 ent9 ent5 12 ent11

总结

以上我们讨论了服务器虚拟化的诸多概念,完成了规划设计。后面的部分中,我们就按照上述设计来实施,由于微分区需要使用 VIO server,为清晰明了,我们先从 VIO server 开始实施,再实施微分区,实际没有先后顺序,但互有关联。

参考资料

学习

获得产品和技术

  • IBM 试用软件:使用可从 developerWorks 直接下载的软件构建您的下一个开发项目。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=368214
ArticleTitle=IBM PowerVM 实战手册,第 1 部分 : 前言及设计
publish-date=02052009