在IBM®PowerVM®环境中创建LPAR可能是一项复杂的任务。 您需要执行以下高层步骤,以在双虚拟I / O服务器(VIOS)环境中使用虚拟小型计算机系统接口(VSCSI),N端口ID虚拟化(NPIV)或共享存储池来构建LPAR。
在此示例中,两个VIOS名称是VIO1和VIO2。
在硬件管理控制台(HMC)命令行中,执行以下任务:
- 使用两个虚拟SCSI客户端适配器(虚拟SCSI或共享存储池)或两个虚拟光纤通道(FC)客户端适配器(NPIV)创建LPAR配置文件。
- 使用DLPAR将虚拟SCSI服务器适配器或虚拟光纤通道服务器适配器添加到VIO1和VIO2。
- 使用HMC的“ 保存当前配置”功能,将VIO1和VIO2的当前配置保存到其配置文件中。
- 在VIO1和VIO2上运行
cfgdev
命令以检测新适配器。 - 根据插槽号在VIO1和VIO2服务器上查找虚拟主机(vhost)适配器,以找到正确的vhost或vfchost设备。
- 对于虚拟SCSI,将存储从VIO1和VIO2映射到vhost设备。
- 对于NPIV,将虚拟Fiber Chanel适配器映射到VIO1和VIO2上的物理适配器。
- 对于共享存储池,创建逻辑单元号(LUN)并将其映射到VIO1和VIO2上的虚拟主机适配器。
从网络安装管理(NIM)服务器:
- 将服务器添加到/ etc / hosts文件。
- 将新的LPAR定义为NIM客户端。
- 配置NIM以使用可选的bosinst_data资源将mksysb推送到服务器。
返回HMC命令行:
- 从网络引导LPAR。
- 打开与LPAR的控制台连接。
- 恢复mksysb并启动AIX后,根据需要完成系统配置和定制。
本文介绍了从命令行手动创建LPAR所需的步骤,并说明了如何使用脚本自动执行这些任务。
从命令行手动创建LPAR
创建LPAR的第一步是了解要在其中构建LPAR的系统的体系结构。 本文针对具有VIOS实例的虚拟化PowerVM环境。 但是,只要系统是由HMC管理的,也可以针对非虚拟化环境调整步骤。
在虚拟化环境中,您有几种选择。 对于存储,您可以使用传统的虚拟SCSI,NPIV或共享存储池。 对于虚拟环境中的联网,大多数人使用虚拟以太网。
本文提供有关在具有两个VIOS实例的NPIV环境中创建新LPAR的详细信息。 但是,如果您的环境中使用了虚拟SCSI和共享存储池,则可以调整这些指示。
让我们详细介绍上面列出的步骤,以从将使用NPIV的命令行创建LPAR。
从HMC命令行创建LPAR配置文件
mksyscfg
HMC命令用于创建LPAR,您可以指定参数,例如LPAR名称,要使用的虚拟以太网VLAN ID,虚拟光纤通道适配器插槽编号,最小/最大/所需的CPU,虚拟处理器和内存。 清单1显示了用于创建LPAR概要文件的示例命令行。
清单1.创建LPAR概要文件的mksyscfg命令的示例
mksyscfg -r lpar -m p770_01 -i "name=applpar01, profile_name=applpar01,lpar_env=aixlinux,
min_mem=8192, desired_mem=16384, max_mem=24576, proc_mode=shared, min_procs=1,
desired_procs=2, max_procs=4, min_proc_units=0.5, desired_proc_units=1, max_proc_units=2,
sharing_mode=uncap, uncap_weight=128, conn_monitoring=1, boot_mode=norm,
max_virtual_slots=200, \"virtual_eth_adapters=2/0/5//0/0/\",
\"virtual_fc_adapters=25/client//vioprod1/25//0,26/client//vioprod2/26//0\" "
大部分命令行是不言自明的。 棘手的部分是虚拟适配器。
virtual_eth_adapter
部分的重要部分( \"virtual_eth_adapters=2/0/5//0/0/\"
)
2
指定插槽5
指定VLAN ID 5。
virtual_fc_adapters
部分( \"virtual_fc_adapters=25/client//vioprod1/25//0,26/client//vioprod2/26//0\"
)的重要部分是本地/远程插槽号(分别为25和26)示例)和VIOS名称。
有关mksyscfg
命令语法的更多信息,请参考HMC手册页 。
确保在virtual_eth_adapters
和virtual_fc_adapters
周围使用引号引起来,以便外壳程序在运行命令时不会将其删除。
使用DLPAR将虚拟服务器适配器添加到VIOS实例HMC chhwres
命令可用于将虚拟服务器适配器动态添加(DLPAR)到VIOS实例。 清单2中显示了一个示例命令。
清单2.两个VIOS实例中的DLPAR虚拟服务器适配器的“ chhwres”命令行示例
chhwres -r virtualio -m p770_01 -o a -p vioprod1 --rsubtype fc -s 25 -a
"adapter_type=server,remote_lpar_name=applpar01,remote_slot_num=25"
chhwres -r virtualio -m p770_01 -o a -p vioprod2 --rsubtype fc -s 26 -a
"adapter_type=server,remote_lpar_name=applpar01,remote_slot_num=26"
这将添加支持我们在LPAR概要文件中创建的客户端适配器所需的相应VIOS适配器。
-m
标志指定受管系统的名称。
-p
标志指定VIOS的名称。
-s 25
指定VIOS插槽号。
remote_lpar_name=
是LPAR客户端的名称。
remote_slot_num=
是客户端上的相应插槽号。
在这些示例中,VIOS插槽和客户端插槽相同。
将VIOS实例的当前配置保存到其配置文件中
此时,虚拟服务器适配器已动态添加到VIOS实例。 但是,VIOS配置文件没有它们。 如果关闭并重新激活VIOS实例,则除非将适配器放在配置文件中,否则适配器将丢失。 一种实现方法是将VIOS实例的当前配置保存到其配置文件中。 这可以通过使用mksyscfg
HMC命令来完成。 清单3显示了mksyscfg
命令的示例。
清单3.“ mksyscfg”命令行示例,用于将VIOS实例的当前配置保存到其概要文件中
mksyscfg -r prof -m p770_01 -o save -p vioprod1 -n `lssyscfg -r lpar -m p770_01 --filter
"lpar_names=vioprod1" -F curr_profile` --force
mksyscfg -r prof -m p770_01 -o save -p vioprod2 -n `lssyscfg -r lpar -m p770_01 --filter
"lpar_names=vioprod2" -F curr_profile` --force
p770_01
的出现指定了受管系统名称。 vioprod1
和vioprod2
是VIOS名称。 运行这些命令时,将lssyscfg
评估lssyscfg
命令,该命令将返回LPAR的当前配置文件名称。 然后评估该命令的mksyscfg
部分,它将正在运行的配置保存到lssyscfg
返回的概要文件中。
在VIOS实例上运行cfgdev以检测新的虚拟适配器
现在,已将VIOS虚拟适配器动态添加(使用DLPAR)(使用DLPAR)到VIOS实例,并且还保存到其配置文件中。 下一步是在VIOS实例上运行cfgdev
命令,以便创建vfchost设备。 可以使用HMC viosvrcmd
命令在每个VIOS上运行远程命令来完成此操作。 如清单4所示。
清单4.在每个VIOS上运行cfgdev的HMC“ viosvrcmd”命令的示例
viosvrcmd -m p770_01 -p vioprod1 -c "cfgdev -dev vio0"
viosvrcmd -m p770_01 -p vioprod2 -c "cfgdev -dev vio0"
–dev vio0
参数使cfgdev
仅沿vio0设备运行,这比运行完整的cfgdev
(扫描所有设备)要快得多。
确定每个VIOS上的vfchost设备
现在, cfgdev
一直跑,vfchost适配器已经在每个VIOS创建。 下一步是为我们刚刚创建的适配器找到正确的vfchost设备名称。 通过使用HMC viosvrcmd
命令在每个VIOS上运行lsmap –all –npiv
,然后lsmap –all –npiv
刚添加的适配器的插槽号,可以完成此操作。 清单5显示了为此所需的命令行。
清单5.在vios上运行“ lsmap”以查找正确的vhost设备的“ viosvrcmd”命令的示例
viosvrcmd -m p770_01 -p vioprod1 -c "lsmap -all -npiv" | grep "\-C25 " | cut -f 1 -d " "
viosvrcmd -m p770_01 -p vioprod2 -c "lsmap -all -npiv" | grep "\-C26 " | cut -f 1 -d " "
插槽25是添加到vioprod1
的插槽,插槽26是添加到vioprod2
的插槽,因此我们对这些数字进行grep。 每个命令都返回一个vfchost设备名称,例如vfchost1
或vfchost2
。
将虚拟光纤通道适配器映射到物理适配器
现在我们知道了每个VIOS的vfchost设备,我们可以将它们映射到物理适配器。 可以使用vfcmap
命令在VIOS上运行viosvrcmd
命令来完成此操作,如清单6所示。
清单6.在每个VIOS上运行“ vfcmap”的“ viosvrcmd”示例
viosvrcmd -m p770_01 -p vioprod1 -c "vfcmap -vadapter vfchost1 -fcp fcs0"
viosvrcmd -m p770_01 -p vioprod2 -c "vfcmap -vadapter vfchost1 -fcp fcs0"
用清单5中找到的设备替换vfchost1。请注意,vfchost设备在VIO1和VIO2上可能具有相同的设备名称,或者它们可能具有不同的名称(例如, VIO1上的vfchost3和VIO2上的vfchost4)。 将fcs0
替换为您希望将适配器映射到的物理光纤通道适配器。
显示适配器的WWPN
此时,可以检索NPIV适配器的全球端口名称(WWPN),以便可以进行存储区域网络(SAN)分区。 使用lssyscfg
HMC命令来通过命令显示WWPN,如清单7所示。
清单7.用于显示NPIV WWPN的“ lssyscfg”命令的示例
lssyscfg -r prof -m p770_01 --filter lpar_names=applpar01 -F name,virtual_fc_adapters |
sed -e 's/""*[0-9]*\/client\/[0-9]*\/[a-zA-Z0-9]*\/[0-9]*\///g' -e 's/\/0""*//g'
现在,您应该要求SAN管理员对WWPN进行分区并置备存储。
将LPAR添加为NIM客户端并设置mksysb install
至此,所有命令均已从HMC运行。 现在,我们需要移至NIM服务器以在那里完成一些任务。 首先,我们将使用AIX hostent
命令将新的LPAR客户端添加到/ etc / hosts文件中。 清单8显示了在NIM服务器上运行的hostent
命令行示例。
清单8.使用“ hostent”命令将LPAR添加到NIM服务器上的/ etc / hosts
hostent -a 192.168.0.3 -h applpar01
然后,我们可以将新的LPAR配置为NIM客户端,如清单9所示。
清单9.将LPAR配置为NIM客户端的示例命令
nim -o define -t standalone -a platform=chrp -a if1="find_net applpar01 0" -a
cable_type1=tp -a net_settings1="auto auto" -a netboot_kernel=64 applpar01
接下来,配置NIM以推出mksysb,如清单10所示。
清单10.配置NIM将mksysb推送到LPAR的示例命令
nim -o bos_inst -a source=mksysb -a spot=spot61 -a mksysb=aix61 -a
accept_licenses=yes -a installp_flags=-acNgXY -a no_client_boot=yes -a preserve_res=yes
applpar01
在上面的命令中, spot=spot61
和mksysb=aix61
指定将用于完成安装的NIM资源的名称。 您还可以指定bosinst_data资源的名称,以进一步自动执行mksysb安装。
从网络引导LPAR并打开控制台
对于最后的几个步骤,我们需要回到HMC并使用lpar_netboot
命令从NIM服务器启动LPAR,如清单11所示。
清单11.从NIM服务器引导LPAR的“ lpar_netboot”命令示例
lpar_netboot -t ent -s auto -d auto -D -S 192.168.0.5 -G 192.168.0.1 -C 192.168.0.3 -K
255.255.255.0 applpar01 applpar01 p770_01
在上述命令中, -S 192.168.0.5
指定NIM服务器的IP地址, -G 192.168.0.1
指定网关, -C 192.168.0.3
指定LPAR的IP地址。
最后一步是使用mkvterm
命令打开与LPAR的控制台连接,如清单12所示。
清单12.“ mkvterm”命令打开与LPAR的控制台连接
mkvterm -m p770_01 -p applpar01
编写LPAR创建过程的脚本
了解如何从命令行手动创建LPAR之后的下一步是编写任务脚本。
本文介绍的脚本只是一个示例。 必须对其进行自定义和测试才能在您的特定环境中工作。 例如,它进行某些假设,以使您的LPAR使用255.255.255.0子网,并且默认网关以“ .1”结尾。 它设置为添加两个虚拟光纤通道适配器和一个虚拟以太网适配器,但是可以根据需要轻松定制以添加更多这些适配器。 您需要仔细查看脚本并根据您的环境进行更改,然后在生产环境中使用之前在测试环境中测试脚本。
LPAR创建脚本的输入是CSV格式的文件。 CSV是一种很好的使用格式,因为它易于在脚本中进行解析,并且非常易于使用电子表格(例如LibreOffice Calc或Microsoft®Excel)进行编辑。
输入文件应在电子表格应用程序中进行编辑,并且电子表格的每一行都指定LPAR的属性。 您可以根据需要在文件中指定尽可能多的LPAR。 图1显示了在电子表格应用程序中正在编辑的CSV文件。
图1.在电子表格应用程序中编辑CSV输入文件
要创建具有适当标题的CSV文件,请下载清单13中所示的input.csv文件。
清单13.设置为CSV输入文件第一行的列标题
Download: input.csv
这些列是:
- LPAR_name –将创建的新LPAR的名称
- 系统 –将在其上创建LPAR的受管系统名称
- VFC1_LPAR_slot –将转到VIO1的虚拟FC适配器的客户端/ LPAR插槽号
- VFC1_VIO1_slot – VIO1的虚拟FC适配器的服务器/ VIOS插槽号
- VFC2_LPAR_slot-将转到VIO2的虚拟FC适配器的客户端/ LPAR插槽号
- VFC2_VIO2_slot – VIO2的虚拟FC适配器的服务器/ VIOS插槽号
- eth_slot2_vlan –用于客户端插槽2上的虚拟以太网适配器的虚拟LAN(VLAN)ID
- vio1 – VIO1服务器的名称
- vio2 – VIO2服务器的名称
- vcpu_min –最小虚拟CPU
- vcpu_desired –所需的虚拟CPU
- vcpu_max –最大虚拟CPU
- cpu_min –最低CPU
- cpu_desired –所需的CPU
- cpu_max –最大CPU
- mem_min –最小内存(以GB为单位)
- mem_desired –所需的内存(以GB为单位)
- mem_max –最大内存(以GB为单位)
- server_ip –您正在创建的LPAR的IP地址
- nim_ip – NIM服务器的IP地址
- mksysb –您需要使用的NIM mksysb资源
- spot –您要使用的NIM现货资源
文件的每一行中都必须包含所有字段。
清单14提供了一个下载示例输入文件的链接,该文件指定了要创建的两个LPAR。
清单14.输入CSV文件示例,该文件指定要创建的两个LPAR。
Download: example.csv
名为csvtolpar.pl的脚本使用在命令行上通过命令指定的CSV文件名运行,例如./csvtolpar.pl input.csv
脚本的输出是创建LPAR所需的所有命令行。 清单15显示了该脚本的示例输出。
清单15. csvtolpar.pl脚本的输出,该脚本显示了创建两个LPAR所需的命令
#Create LPAR, you can customize things such as the uncapped weight, max virtual slots,
etc.or add in extra parameters for things such as AME
mksyscfg -r lpar -m p770_01 -i "name=applpar01, profile_name=applpar01,
lpar_env=aixlinux, min_mem=8192, desired_mem=16384, max_mem=24576,
proc_mode=shared, min_procs=1, desired_procs=2, max_procs=4,
min_proc_units=0.5, desired_proc_units=1, max_proc_units=2,
sharing_mode=uncap, uncap_weight=128, conn_monitoring=1,
boot_mode=norm, max_virtual_slots=200,
\"virtual_eth_adapters=2/0/5//0/0/\",
\"virtual_fc_adapters=25/client//vioprod1/25//0,26/client//vioprod2/26//0\" "
#DLPAR in virtual adapters to VIO servers
chhwres -r virtualio -m p770_01 -o a -p vioprod1 --rsubtype fc -s 25 -a
"adapter_type=server,
remote_lpar_name=applpar01,remote_slot_num=25"
chhwres -r virtualio -m p770_01 -o a -p vioprod2 --rsubtype fc -s 26 -a
"adapter_type=server,
remote_lpar_name=applpar01,remote_slot_num=26"
#Save current config for VIO servers to profiles
mksyscfg -r prof -m p770_01 -o save -p vioprod1 -n `lssyscfg -r lpar -m p770_01
--filter "lpar_names=vioprod1" -F curr_profile` --force
mksyscfg -r prof -m p770_01 -o save -p vioprod2 -n `lssyscfg -r lpar -m p770_01
--filter "lpar_names=vioprod2" -F curr_profile` --force
#Run cfgdev on VIO servers to detect new virtual adapters
viosvrcmd -m p770_01 -p vioprod1 -c "cfgdev -dev vio0"
viosvrcmd -m p770_01 -p vioprod2 -c "cfgdev -dev vio0"
#Determine what the vhost device is for each VIO
vio1_vhost=`viosvrcmd -m p770_01 -p vioprod1 -c "lsmap -all -npiv" | grep "\-C25 " |
cut -f 1 -d " " `
vio2_vhost=`viosvrcmd -m p770_01 -p vioprod2 -c "lsmap -all -npiv" | grep "\-C26 " |
cut -f 1 -d " " `
echo "VIO1=$vio1_vhost VIO2=$vio2_vhost"
#Map virtual fibre channel - Customize physical fcs adapter here
viosvrcmd -m p770_01 -p vioprod1 -c "vfcmap -vadapter $vio1_vhost -fcp fcs0"
viosvrcmd -m p770_01 -p vioprod2 -c "vfcmap -vadapter $vio2_vhost -fcp fcs0"
#Display WWPN's for zoning
lssyscfg -r prof -m p770_01 --filter lpar_names=applpar01 -F name,
virtual_fc_adapters | sed -e 's/""*[0-9]*\/client\/[0-9]*\/[a-zA-Z0-9]*\/[0-9]*\///g'
-e 's/\/0""*//g'
#NIM Commands to add to hosts, define as client, and push out mksysb,
***run these commands on NIM server***, add " -a connect=nimsh" to
define command line if using nimsh hostent -a 192.168.0.3 -h applpar01
nim -o define -t standalone -a platform=chrp -a if1="find_net applpar01 0"
-a cable_type1=tp -a net_settings1="auto auto" -a netboot_kernel=64 applpar01
nim -o bos_inst -a source=mksysb -a spot=spot61 -a mksysb=aix61
-a accept_licenses=yes -a installp_flags=-acNgXY -a no_client_boot=yes -a preserve_res=yes
applpar01
#HMC Netboot command and console command, Warning, this will REBOOT the LPAR if
it is running
lpar_netboot -t ent -s auto -d auto -D -S 192.168.0.5 -G 192.168.0.1
-C 192.168.0.3 -K 255.255.255.0 applpar01 applpar01 p770_01
mkvterm -m p770_01 -p applpar01
########################################################################################
#Create LPAR, you can customize things such as the uncapped weight, max virtual slots,
etc.or add in extra parameters for things such as AME
mksyscfg -r lpar -m p770_01 -i "name=applpar02, profile_name=applpar02,
lpar_env=aixlinux, min_mem=4096, desired_mem=8192, max_mem=12288,
proc_mode=shared, min_procs=1, desired_procs=1, max_procs=1,
min_proc_units=0.1, desired_proc_units=0.5, max_proc_units=1,
sharing_mode=uncap, uncap_weight=128, conn_monitoring=1,
boot_mode=norm, max_virtual_slots=200,
\"virtual_eth_adapters=2/0/5//0/0/\", \"virtual_fc_adapters=27/client//vioprod1/27//0,
28/client//vioprod2/28//0\" "
#DLPAR in virtual adapters to VIO servers
chhwres -r virtualio -m p770_01 -o a -p vioprod1 --rsubtype fc -s 27 -a
"adapter_type=server,remote_lpar_name=applpar02,remote_slot_num=27"
chhwres -r virtualio -m p770_01 -o a -p vioprod2 --rsubtype fc -s 28 -a
"adapter_type=server,remote_lpar_name=applpar02,remote_slot_num=28"
#Save current config for VIO servers to profiles
mksyscfg -r prof -m p770_01 -o save -p vioprod1 -n
`lssyscfg -r lpar -m p770_01 --filter "lpar_names=vioprod1" -F curr_profile` --force
mksyscfg -r prof -m p770_01 -o save -p vioprod2 -n
`lssyscfg -r lpar -m p770_01 --filter "lpar_names=vioprod2" -F curr_profile` --force
#Run cfgdev on VIO servers to detect new virtual adapters
viosvrcmd -m p770_01 -p vioprod1 -c "cfgdev -dev vio0"
viosvrcmd -m p770_01 -p vioprod2 -c "cfgdev -dev vio0"
#Determine what the vhost device is for each VIO
vio1_vhost=`viosvrcmd -m p770_01 -p vioprod1 -c "lsmap -all -npiv" | grep
"\-C27 " | cut -f 1 -d " " `
vio2_vhost=`viosvrcmd -m p770_01 -p vioprod2 -c "lsmap -all -npiv" | grep
"\-C28 " | cut -f 1 -d " " `
echo "VIO1=$vio1_vhost VIO2=$vio2_vhost"
#Map virtual fibre channel - Customize physical fcs adapter here
viosvrcmd -m p770_01 -p vioprod1 -c "vfcmap -vadapter $vio1_vhost -fcp fcs0"
viosvrcmd -m p770_01 -p vioprod2 -c "vfcmap -vadapter $vio2_vhost -fcp fcs0"
#Display WWPN's for zoning
lssyscfg -r prof -m p770_01 --filter lpar_names=applpar02 -F name,
virtual_fc_adapters | sed -e 's/""*[0-9]*\/client\/[0-9]*\/[a-zA-Z0-9]*\/[0-9]*\///g'
-e 's/\/0""*//g'
#NIM Commands to add to hosts, define as client, and push out mksysb,
***run these commands on NIM server***, add " -a connect=nimsh" to define
command line if using nimsh
hostent -a 192.168.0.4 -h applpar02
nim -o define -t standalone -a platform=chrp -a if1="find_net applpar02 0"
-a cable_type1=tp -a net_settings1="auto auto" -a netboot_kernel=64 applpar02
nim -o bos_inst -a source=mksysb -a spot=spot61 -a mksysb=aix61
-a accept_licenses=yes -a installp_flags=-acNgXY -a no_client_boot=yes
-a preserve_res=yes applpar02
#HMC Netboot command and console command, Warning, this will
REBOOT the LPAR if it is running
lpar_netboot -t ent -s auto -d auto -D -S 192.168.0.5 -G 192.168.0.1
-C 192.168.0.4 -K 255.255.255.0 applpar02 applpar02 p770_01
mkvterm -m p770_01 -p applpar02
########################################################################################
csvtolpar.pl脚本不会在系统上进行任何更改。 它仅显示要创建LPAR所需运行的命令。 这些命令行可以快速复制到HMC和NIM服务器中。 或者,如果您设置了安全外壳(SSH)密钥,则可以修改脚本以通过SSH运行命令,而不仅仅是显示需要运行的命令。 我更喜欢复制命令,以便确保每个步骤都能按预期工作。
如果您保存输入的CSV文件,则可以在将来的任何时候轻松地重新创建LPAR,或者修改CSV文件以轻松创建类似的LPAR。
csvtolpar.pl脚本是一个Perl脚本,可以在清单16中下载。
清单16. csvtolpar.pl Perl脚本
Download:csvtolpar.pl
结论
本文介绍了从命令行手动创建LPAR的步骤,还提供了示例脚本来自动创建可以针对您的环境定制的LPAR。 自动执行LPAR构建可以节省大量时间,并使您能够满足不断增长的业务需求。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-ibm-powervm/index.html