PowerVM 分区快速划分配置工具的使用方法

PowerVM 虚拟化配置实施时,管理员经常要面对数十台物理服务器,数百个分区,如果采取手工配置与实施,工作量大、繁琐,且会造成大量的重复劳动。针对这种情况,IBM 系统科技实验室服务部推出了 PowerVM 分区快速划分与配置工具:PowerVM Provisioning Toolkit. 该工具提供在 Power6 ...显示全部
PowerVM 虚拟化配置实施时,管理员经常要面对数十台物理服务器,数百个分区,如果采取手工配置与实施,工作量大、繁琐,且会造成大量的重复劳动。针对这种情况,IBM 系统科技实验室服务部推出了 PowerVM 分区快速划分与配置工具:PowerVM Provisioning Toolkit. 该工具提供在 Power6 与 Power7 服务器上快速部署 VIOS 与 LPAR 的功能。

使用 PowerVM Provisioning Toolkit 带来的益处

在 Power 服务器上配置实施 PowerVM(VIOS 与 LPAR)是一项十分复杂的工作,尤其是涉及到 SEA(shared Ethernet adapter)、VLAN、多个处理器资源池、NPIV、在线分区迁移(LPM)等虚拟化技术时。因此,IBM 系统科技实验室服务部(STG Lab Services & Training)开发了一套工具来完成基于 Power 服务器虚拟化的快速部署,该工具目前可以通过购买 license 来使用,支持所有基于 HMC 管理的 Power5 以上的 Power 服务器,该工具运行环境为 AIX 系统,且易于迁移到 Linux 上。更多请参考 www.ibm.com/systems/services/labservices

集中快速部署一到多台服务器主机。
一致性的管理与配置多台 VIOS 服务器分区与普通分区。
集中存放主机部署信息到配置文件,方便验证配置信息以及方便复制以备以后的部署。
快速的完成 VIOS 配置,包括网络(SEA,HEA)、存储(NPIV,VSCSI)。
更快更有效、标准化的、可重复的部署虚拟化到所有的 Power 服务器。

--------------------------------------------------------------------------------
PowerVM Provisioning Toolkit 使用方法说明

PowerVM provisioning toolkit 为基于 ksh 编写的脚本工具集,有着使用方法简单、易于部署(不需要特殊的开发编译环境)、易于迁移的特性。


图 1. PowerVM Provisioning Toolkit 工作流程示意图

6.jpg



首先,该脚本在 NIM server 上运行,发送 HMC 命令完成 VIOS 分区的 profile 的创建,VIOS 的安装。
其次,该脚本在 VIOS 上运行,完成 VIOS 网络配置、I/O 的配置 ( 物理 I/O 属性设置,物理 I/O 到虚拟 I/O 的映射 )、普通分区磁盘配置等等。
最后,再次在 NIM Server 上运行该脚本,完成 client 分区的创建与安装。
该脚本完成以上三个步骤的运行之后,一个基于 Power 服务器的 PowerVM 虚拟化环境便完全配置实施完成,可以对外提供服务。

该工具基本语法如下:

关于分区的创建、配置与安装
buildframe – p buildDefinitionFile – f option [-n]

buildDefinitionFile 定义文件的名称

frame 配置选项

validate 执行 definition 文件检查

build 执行 validate, spp, carve, hea, nim, 以及 wwpn options

carve 创建 definitions 文件中定义的分区

hea 为分区配置 HEA

nim 执行定义文件中定义分区的 lpar_netboot ,安装系统

wwpn 收集分区的 WWPN 信息(以后缀名为 .csv 的文件格式展现)

spp 创建 CPU 共享资源池

vswitch 配置虚拟交换机

关于 VIOS 的系统配置
buildframe.ksh -p buildDefinitionFile -v option [-n]

buildDefinitionFile 定义文件的名称

VIOS 配置选项

build 执行 network, fcsattr, fscsiattr, vfcmap, 以及 mirror 命令

network 配置 vio 网络,包括 SEA ,网络属性等

fcsattr 设置光纤卡属性 Set FCS 设备属性

fscsiattr 设置 fscsi 设备属性 Set FSCSI 设备属性

mirror 镜像 VIOS 的 rootvg 盘

vfcmap 执行基于 NPIV 的映射(物理设备到虚拟设备映射)

validate 执行验证操作

va 配置 ITM_Premium monitoring agent

通过以上命令与使用方法,目前工具可以做到:

自动部署 VIOS 分区与普通分区(LPAR)
IO 的分配
Virtual fiber adapters 设备的生成与映射(NPIV)
VSCSI 设备的生成与映射
网络配置,包括 SEA、VLAN、HEA 等
NIM 的整合管理
FCS 设备与 FSCSI 属性的配置
VIOS rootvg 的镜像
虚拟光纤卡 WWPN 的收集
CPU 共享资源池的创建

--------------------------------------------------------------------------------
PowerVM Provisioning Toolkit 典型的配置使用场景

该工具需要配合 NIM 使用,关于 NIM Server 的配置,请参考 IBM NIM 相关文档。为了让读者更加详细的理解该工具的使用方法,我们以为一台物理服务器划分两个 VIOS,两个普通分区为例,通过以下步骤介绍该工具的工作流程:

1. 在 NIM server 上创建一个目录,并将该工具脚本 buildframe.ksh 上传到该目录,我们假设目录为 /provision, 接着创建两个子目录 build_profiles 和 work_area。

2. 在 build_profiles 子目录创建两个后缀名为 .def 的文件,一个作为 VIOS 划分与配置使用,一个作为普通分区(LPAR)划分与配置使用。我们假设其分别为 vios.def 与 vioc.def。

vios.def 与 vioc.def 的定义是该工具使用的核心部分之一,所有的关于 PowerVM 的划分,包括分区个数、分区定义、VIOS 配置、IO 分配、CPU 分配、内存分配、网络配置等等都定义到这两个文件中,所以一定要保证这两个文件定义的正确性,下面我们分别详细的介绍介绍如何验证该文件的有效性,以及如何定义该文件。

文件定义完成以后,首先需要验证一下定义文件的正确性,以验证 vios.def 文件为例,运行如下命令:

buildframe.ksh -p vios -f validate

验证过程与输出结果如图 2、图 3(详细的日志可以到 work_area 文件夹下去查看,日志文件的名字以 vios、vioc 开头):


图 2. 定义文件验证过程示例

7.jpg



输入 HMC 的密码,进行验证:

图 3. 对 vios.def 文件验证输出

8.jpg



由图 3 我们可以看到,对 vios.def,验证通过(return code 是 0)

其中vios.def文件的格式如下(# 开始表示该行为注释 ),该文件分为三个部分,第一部分为变量的定义,第二部分为 VIOS 配置的定义,包括 SEA 配置,FC 卡配置等,第三部分为分区的定义,包括分区占用的 CPU 资源、内存资源等:

# 变量的定义,这里会定义本属性文件所需要的变量,VIOS 的名称,服务器的 CEC,NIM 信息,虚拟交换机,VLAN 信,HMC 信息等。

# 定义两个 VIOS 分区名称

VARIABLES &VIO1.=55A_vios1,&VIO2.=55A_vios2

# 定义该服务器的 CEC

VARIABLES &CEC1.=DQD0457,&CEC2.=DQD194N

VARIABLES &NIMSPEED.=auto,&NIMDUPLEX.=auto

# 定义 NIM 服务器信息与所对应的 NIM 客户端

VARIABLES &NIMIPVIO1.=9.123.126.129,&NIMNMVIO1.=255.255.255.0,&NIMGWVIO1.=9.123.126.1

VARIABLES &NIMIPVIO2.=9.123.126.126,&NIMNMVIO2.=255.255.255.0,&NIMGWVIO2.=9.123.126.1

# 定义 PowerVM 虚拟交换机 vlan 信息

VARIABLES &PRODVLANS.=1

# 定义 VIOS1 的 IP

VARIABLES &PRODIPVLANVIO1.=9.123.126.129,NA,NA

定义 VIOS2 的 IP

VARIABLES &PRODIPVLANVIO2.=9.123.126.126,NA,NA

# 定义 VIOS 的网络掩码

VARIABLES &PRODNETMASK.=255.255.255.0,NA,NA

# 定义 VIOS 的网关

VARIABLES &PRODGATEWAY.=9.123.126.1,NA,NA

# 定义 NIM 服务器的 IP

VARIABLES &NIMIP.=9.123.126.127

# 定义 PowerVM 虚拟交换机

VARIABLES &PRODVSWITCH.=ETHERNET0

# 定义要自动划分分区的 Power 服务器,以及管理该服务器的 HMC 地址,以及 HMC 用户名

SERVERINFO servername=SVRP570-05-SN6530DED,buildhmc=9.123.126.116,builduser=hscroot

# 变量定义结束

# 这里会定义 VIOS 虚拟化配置信息,包括 VIOS 的 hostname,profile 名称,SEA 配置,FC 卡属性配置,FSCSI 属性等。

#

# VIO1

# 定义 VIOS1 的域名以及 profile 名称

VIO hostname=&VIO1.,profilename=default

# 定义 VIOS1 SEA 的的配置信息,该 SEA 作为主 SEA,其中物理网卡使用 CEC1.-P1-T6,通信虚拟网卡的 id 为 10,vlan 为 1,心跳 channel 使用的虚拟网卡 id 为 99,vlan 为 99,jumboframes,large_receive 都要打开。

SEA networkpriority=P,vlans=&PRODVLANS.,aggports=&CEC1.-P1-T6,trunkpriority=1,vswitch=& PRODVSWITCH.,seavirtid=10,1,seactlchnlid=99,99,virtidip=100,1,ip=&PRODIPVLANVIO1.,netmask=&PRODNETMASK., gateway=&PRODGATEWAY.,jumboframes=NO,lacp8023ad=NO,vlan8021q=NO,large_receive=YES

# 定义 FC adapter 的信息以及属性设置,物理卡为 CEC1.-P1-C2-T1,CEC2.-P1-C2-T2

FCSATTR port=&CEC1.-P1-C2-T1,&CEC2.-P1-C2-T2,max_xfer_size=0x200000,num_cmd_elems=2048

#FSCSI 的属性设置

FSCSIATTR port=&CEC1.-P1-C2-T1,&CEC2.-P1-C2-T2,fc_err_recov=fast_fail,dyntrk=yes

#

# VIO2

VIO hostname=&VIO2.,profilename=default

SEA networkpriority=P,vlans=&PRODVLANS.,aggports=&CEC2.-P1-T6,trunkpriority=2,vswitch=& PRODVSWITCH.,seavirtid=10,1,seactlchnlid=99,99,virtidip=100,1,ip=&PRODIPVLANVIO2.,netmask=& PRODNETMASK.,gateway=&PRODGATEWAY.,jumboframes=NO,lacp8023ad=NO,vlan8021q=NO,large_receive=YES

FCSATTR port=&CEC1.-P1-C3-T1,&CEC2.-P1-C3-T2,max_xfer_size=0x200000,num_cmd_elems=2048

FSCSIATTR port=&CEC1.-P1-C3-T1,&CEC2.-P1-C3-T2,fc_err_recov=fast_fail,dyntrk=yes

#VIOS 配置定义结束

#VIOS 分区定义开始,主要定义 VIOS 的分区信息,Partition Data。

# 一共定义 VIO1,VIO2 两个分区,VIO1 的分区 id 为 1,profile 名字为 default,cpu 模式为共享,物理 cpu 占用为 0.5,虚拟 cpu 个数为 2,模式为 uncap,权值为 255,内存大小为 4G。VIO2 的分区 id 为 2,profile 名字为 default,cpu 模式为共享,物理 cpu 占用为 0.5,虚拟 cpu 个数为 2,模式为 uncap,权值为 255,内存大小为 4G。

# 两个分区定义中都定义了对应的 NIM 服务器。

#

PARTITION name=&VIO1.,profile_name=default,lpar_id=1,lpar_env=vioserver,proc_mode=shared,min_proc_units=0.1,desired_proc_units=0.5,max_proc_units=1.0, min_procs=1,desired_procs=2,max_procs=4,sharing_mode=uncap,uncap_weight=255,min_mem=2048,desired_mem=4096,max_mem=6144, mem_mode=ded,max_virtual_slots=500,allow_perf_collection=1,all_resources=0,conn_monitoring=1,msp=1,"io_slots=&CEC1.-P1-T14/none/1, &CEC1.-P1-T6/none/1,&CEC1.-P1-T12/none/1,&CEC1.-P1-T15/none/1,&CEC2.-P1-T12/none/1",lpar_netboot=&NIMIP.,&VIO1., &NIMIPVIO1.,&NIMNMVIO1.,&NIMGWVIO1.,&CEC1.-P1-T6,&NIMSPEED.,&NIMDUPLEX.,NA



#

PARTITION name=&VIO2.,profile_name=default,lpar_id=2,lpar_env=vioserver,proc_mode=shared,min_proc_units=0.1,desired_proc_units=0.5,max_proc_units=1.0, min_procs=1,desired_procs=2,max_procs=4,sharing_mode=uncap,uncap_weight=255,min_mem=2048,desired_mem=4096,max_mem=6144,mem_mode=ded, max_virtual_slots=500,allow_perf_collection=1,all_resources=0,conn_monitoring=1,msp=1,"io_slots=&CEC2.-P1-T14/none/1,&CEC2.-P1-T6/none/1, &CEC2.-P1-T15/none/1,&CEC1.-P1-C1/none/1",lpar_netboot=&NIMIP.,&VIO1.,&NIMIPVIO2.,&NIMNMVIO2.,&NIMGWVIO2., &CEC2.-P1-T6,&NIMSPEED.,&NIMDUPLEX.,NA

vioc.def文件定义如下(# 开始表示该行为注释 ),该文件分为三个部分,第一部分仍然为变量定义,第二部分为 LPAR 与 VIOS 的对应关系定义,包括虚拟卡的创建与对应关系,包括 VFC 卡、VSCSI 卡等,第三部分为普通分区(LPAR)定义,包括 LPAR 占用的 CPU 资源、内存资源等:

# 变量定义,具体的变量定义细节请参考 vios.def 文件解释

VARIABLES &VIO1.=p570_vio1,&VIO2.=p570_vio2

VARIABLES &CEC1.=DQD0457,&CEC2.=DQD194N

VARIABLES &NIMSPEED.=auto,&NIMDUPLEX.=auto

VARIABLES &NIMIPVIO1.=9.123.126.129,&NIMNMVIO1.=255.255.255.0,&NIMGWVIO1.=9.123.126.1

VARIABLES &NIMIPVIO2.=9.123.126.126,&NIMNMVIO2.=255.255.255.0,&NIMGWVIO2.=9.123.126.1

VARIABLES &PRODVLANS.=1

VARIABLES &PRODIPVLANVIO1.=9.123.126.129,NA,NA

VARIABLES &PRODIPVLANVIO2.=9.123.126.126,NA,NA

VARIABLES &PRODNETMASK.=255.255.255.0,NA,NA

VARIABLES &PRODGATEWAY.=9.123.126.1,NA,NA

VARIABLES &NIMIP.=9.123.126.127

VARIABLES &PRODVSWITCH.=ETHERNET0

SERVERINFO servername=SVRP570-05-SN6530DED,buildhmc=9.123.126.116,builduser=hscroot

#LPAR 与 VIOS 对应关系定义,这里的定义主要用于虚拟卡的创建、虚拟卡的对应,包括 VIOS 与 LPAR 的 VFC 卡、VSCSI 卡等

# VIOS1

VIO hostname=&VIO1.,profilename=default

SEA networkpriority=P,vlans=&PRODVLANS.,aggports=&CEC1.-P1-T6,trunkpriority=1,vswitch=& PRODVSWITCH.,seavirtid=10,1,seactlchnlid=99,99,virtidip=100,1,ip=&PRODIPVLANVIO1.,netmask=&PRODNETMASK., gateway=&PRODGATEWAY.,jumboframes=NO,lacp8023ad=NO,vlan8021q=NO,large_receive=YES

# 光纤卡属性设置

FCSATTR port=&CEC.-P1-C2-T1,&CEC.-P1-C2-T2,max_xfer_size=0x200000,num_cmd_elems=2048

#FSCSI 属性设置

FSCSIATTR port=&CEC.-P1-C2-T1,&CEC.-P1-C2-T2,fc_err_recov=fast_fail,dyntrk=yes

# 虚拟光纤卡的创建与对应关系(VIOS server adapter 与 LPAR client adapter 的对应关系)设置

VFCGEN mapping=13:2-lpar_id,14:3-lpar_id

# 虚拟光纤卡与物理光纤卡的映射(相当于 vfcmap 命令)

VFCMAP port=&CEC.-P1-C2-T1,serveradapters=211,212,213,215,216

VFCMAP port=&CEC.-P1-C2-T2,serveradapters=311,312,313,315,316

# 虚拟 SCSI 卡的创建与对应关系(VIOS server adapter 与 LPAR client adapter 的对应关系)设置

VSCSIGEN mapping=11:1-lpar_id

#VIOS 盘到 SCSI 卡的映射(相当于 mkvdev -vdev hdisk 相关命令)

VSCSIMAP serveradapters=1>rootvg1-30720-NA,2>rootvg2-30720-NA

# VIOS2

VIO hostname=&VIO2.,profilename=default

SEA networkpriority=P,vlans=&PRODVLANS.,aggports=&CEC2.-P1-T6,trunkpriority=2,vswitch=& PRODVSWITCH.,seavirtid=10,1,seactlchnlid=99,99,virtidip=100,1,ip=&PRODIPVLANVIO2.,netmask=&PRODNETMASK., gateway=&PRODGATEWAY.,jumboframes=NO,lacp8023ad=NO,vlan8021q=NO,large_receive=YES

FCSATTR port=&CEC.-P1-C3-T1,&CEC.-P1-C3-T2,max_xfer_size=0x200000,num_cmd_elems=2048

FSCSIATTR port=&CEC.-P1-C3-T1,&CEC.-P1-C3-T2,fc_err_recov=fast_fail,dyntrk=yes

VFCGEN mapping=15:2-lpar_id,16:3-lpar_id

VFCMAP port=&CEC.-P1-C3-T1,serveradapters=211,212,213,215,216

VFCMAP port=&CEC.-P1-C3-T2,serveradapters=311,312,313,315,316

VSCSIGEN mapping=12:2-lpar_id

VSCSIMAP serveradapters=1>rootvg1-30720-NA,2>rootvg2-30720-NA

# 这里共定义两个分区,分别为 aix_lpar0、aix_lpar1。aix_lpar0 的分区 id 为 3,profile 名为 lpar0_default,CPU 模式为共享,占用物理 CPU 资源为 2,模式为 uncap,权值为 128,内存大小为 4G,及其对应的 NIM 服务器信息。aix_lpar1 的分区 id 为 4,profile 名为 default,CPU 模式为共享,占用物理 CPU 资源为 2,模式为 uncap,权值为 128,内存大小为 4G,机器对应的 NIM 服务器信息。

PARTITION name=aix_lpar0,lpar_id=3,profile_name=lpar0_default,lpar_env=aixlinux,proc_mode=shared,min_proc_units=0.1,desired_proc_units=2.0, max_proc_units=4.0,min_procs=1,desired_procs=2,max_procs=4,uncap_weight=128,min_mem=2048,desired_mem=4096,max_mem=6144,mem_mode=ded, allow_perf_collection=1,sharing_mode=uncap,max_virtual_slots=20,all_resources=0,conn_monitoring=1,lpar_netboot=&NIMIP., 9.123.126.123,255.255.255.0,9.123.126.1,NA,&NIMSPEED.,&NIMDUPLEX.,NA

PARTITION name=aix_lpar1,lpar_id=4,profile_name=default,lpar_env=aixlinux,proc_mode=shared,min_proc_units=0.1,desired_proc_units=2.0,max_proc_units=2.0, min_procs=1,desired_procs=2,max_procs=4,uncap_weight=128,min_mem=2048,desired_mem=4096,max_mem=6144, mem_mode=ded,allow_perf_collection=1,sharing_mode=uncap,max_virtual_slots=20,all_resources=0,conn_monitoring=1, lpar_netboot=&NIMIP.,9.123.126.124,255.255.255.0,9.123.126.1,NA,&NIMSPEED.,&NIMDUPLEX.,NA

这两个定义文件 (vios.def 与 vioc.def) 是我们通过该工具规划实施 PowerVM 的核心,所以我们进行了详细的描述,更详细的关于这两个文件的定义描述,请参考工具的发布文档。

3. 在 NIM 服务器上准备安装 VIOS 分区与普通分区所需的操作:

1)创建 VIOS 与普通分区的 mksysb(安装镜像)、spot NIM 资源。

2)将要安装的 VIOS 与普通分区(LPAR)加入到 /etc/hosts 文件中,如图 3


图 3. 定义好后的 /etc/hosts


3)为要安装的 VIOS 与普通分区(LPAR)定义 NIM 客户端,定义好后如图 4,可以看到,共有四个 NIM client 分区定义已经完成,分别是两个 VIOS 分区,两个普通分区(LPAR)。


图 4. 定义好后的 NIM 客户端信息

9.jpg



4. 运行该脚本工具 :

#buildframe.ksh –p vios –f build

等待 VIOS 分区完成划分与安装。

5. VIOS 安装完成以后,登陆到 VIOS 服务器,把脚本 buildframe.ksh 和 vios.def 传输到 VIOS 的 /tmp 目录,并且运行如下命令:

#buildframe.ksh –p vios –v build (该命令完成后将会重启 VIOS)
#buildframe.ksh –p vios –v validate (测试网络运行情况)

6. 至此,VIOS 配置与安装都已经完成。

7. 从 SAN 分配存储给 VIOS,作为普通 client 分区的 rootvg 盘。

8. 在 NIM Server,运行如下命令完成普通分区(LPAR)描述文件(profile)的创建与系统部署:

# buildframe.ksh –p vioclient –f build

完成所有分区的部署后,Virtual fiber adapters 的 WWPN 号可以在 work_area/vioclientwwpn.csv 找到,该文件收集的 WWPN 号用来在存储交换机划分 zone 时使用,存储交换机划分 zone 之后,SAN 端分配存储盘即可作为分区的数据盘。

以上步骤完成之后,一台基于 PowerVM 虚拟化的服务器所有分区已经划分完成,并且安装配置完成,可以直接登录系统使用。登录 HMC 查看如图 5:


图 5. 部署完成的系统示意图

11.jpg


登录已经安装配置完成的 VIOS1,如图 6

12.jpg




图 6. VIOS 登陆示意图

--------------------------------------------------------------------------------
总结

在由多台 Power 服务器,每个 Power 服务器需要划分多个分区(LPAR)的虚拟化实施环境中,如果手工配置与实施,工作量大,对技术要求高,且会造成大量的重复劳动。PowerVM 分区快速划分配置工具(PowerVM Provisioning Toolkit)很好的解决了上述问题,通过将配置信息集中到配置文件中,能够很好的帮助管理人员、实施人员以及工程师做好实施前的规划,实施中的自动化部署与配置,实施后的统一管理。

通过本文典型的配置使用场景介绍,我们可以看到,对 PowerVM 的定义以及规划主要集中在两个配置文件中,我们对这两个文件的格式进行了详细的描述,一旦这两个配置文件完成,便可以通过简单的命令行运行该工具,完成 PowerVM 的实施与配置,且配置文件通过简单的修改,便可以继续应用于其他 Power 服务器,非常的方便。收起
参与17

查看其它 15 个回答chenxiaofei的回答

chenxiaofeichenxiaofei  系统工程师 , 徽商银行
有时间研究研究!!
银行 · 2015-03-30
浏览2564

回答者

chenxiaofei
系统工程师徽商银行
擅长领域: 双活灾备存储

chenxiaofei 最近回答过的问题

回答状态

  • 发布时间:2015-03-30
  • 关注会员:1 人
  • 回答浏览:2564
  • X社区推广