服务器 频道

PowerVM 虚拟化实战:前言及设计

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

  前言

  为什么服务器需要虚拟化

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

  利用 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 内存,底板集成双口双绞线网卡,双口千兆双绞线网卡,双口 4Gb HBA 卡,显卡,HDD2*146GB 15KrpmDVD-ROM,内置 DAT72 带机,冗余电源,AIX 5.3异步卡,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;

磁盘阵列

ss210ea01ss210eb01

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 也为共享,优先级最高,基于以下原因:

  o CPU 数量有限,专有 CPU 至少为 1 颗,有些浪费。

  o 这是由于该机器为实验室用途,性能要求不高,对 VIO server 的压力不大。

  o 此 powerVM 实际为 power5 的 APV,不能实现 power6 的 Multiple Shared Processor Pools 功能 , 设为专有 CPU 后,将不能自动调整实际 CPU 的使用。

  o 实际使用过程中,如果 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 ID2

微分区 SCSI ID3

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. 虚拟适配器设计:

  o 网卡 :

  对于微分区,内部网卡此处设计为 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

  o 存储卡 :

  此处设置为任意分区,这样今后方便变化,可根据实际情况加以调整。这里只设计 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 开始实施,再实施微分区,实际没有先后顺序,但互有关联。

0
相关文章