首页 > 代码库 > 【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持

【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持

前面的几篇博文的操作环境都是在IVM下,IVM可以看作是VIOS的一部分,或者是对VIOS功能的一个扩展,一个IVM只能管理1台物理服务器,而HMC则是一对多。在有HMC来管理物理服务器的情形下,VIOS中的IVM功能将被屏蔽,其相应的功能将由HMC来接管。

下面是在HMC环境下创建一个新的LPAR的命令:
hscroot@hmc:~> mksyscfg -r lpar -m Server-8231-E2B-SN104A4AR -i "name=dennis,lpar_env=aixlinux,auto_start=1,boot_mode=norm,mem_mode=ded,min_mem=2048,
desired_mem=4096,max_mem=4096,proc_mode=shared,sharing_mode=uncap,uncap_weight=156,
min_procs=1,desired_procs=2,max_procs=2,min_proc_units=0.2,desired_proc_units=0.4,max_proc_units=1.2,
virtual_eth_adapters=10/0/256//0/1,virtual_scsi_adapters=20/client/1//17/1, max_virtual_slots=100"

创建一个虚机(LPAR, logical partition)最关键也相对比较麻烦一些的参数就是给LPAR提供网络和存储设备,也就是上面两条红色和蓝色标注的部分,关于这两个参数的具体含义在前面用IVM创建LPAR的博文--通过VIOS实现AIX系统的网络虚拟化 和 通过VMLibrary在client partition上安装AIX全程实录 。

这里比较关心的是如何构造该参数的具体数值,首先看网络部分,需要确定的参数是Virtual Ethernet Client Adapter(VECA)在当前正在创建的LPAR中的slot num,这个自由度很高,基本上可以随便指定一个不超过max_virtual_slots中指定的数值(在我们指定max_virtual_slots参数的情形下),这个例子中VECA的slot number=10, 比较麻烦的是port_vlan_id部分,因为这个数值将直接决定新创建的LPAR中网络设备是否可用,因此需要将它指定到VIOS中一个物理可用的网络设备上,所以我们需要在HMC环境(不是IVM了,因为在有HMC存在的情形下,HMC将屏蔽掉VIOS中的IVM命令,屏蔽意味着该条命令可以在VIOS环境下执行,但是do nothing,没有任何输出)下查看它的网络设备相关的信息。执行:

技术分享

上图显示了当前VIOS中Virtual Ethernet Server Adapter(VESA)的信息:它有两个VESA, slot number分别是30和31, addl_vlan_ids=354,355,356和 addl_vlan_ids=330,331,332,333,如果在VIOS中通过lsmap -all -net命令查看,这两个VESA都有对应的SEA和backing device,因此都可以被client partition拿来使用。

对于VIOS中Virtual SCSI Server Adapter设备的信息,可以在HMC下用以下命令来查看:
技术分享

其中slot number = 17的VSSA正好是我们创建这个LPAR使用的,在上述的mksyscfg命令行中,我们只是创建了一个Virtual SCSI Client Adapter。这条命令执行后,与IVM中mksyscfg命令的执行效果不同,HMC不会在VIOS中自动创建一个对应的Virtual SCSI Server Adapter虚拟设备(比如vhost0)出来,此时需要通过下面这样的命令给VIOS partition创建一个Virtual SCSI Server Adapter虚拟设备:
hscroot@hmc:~> chhwres -r virtualio --rsubtype scsi -m Server-8231-E2B-SN104A4AR -o a --id 1 -s 18 -a "adapter_type=server, remote_lpar_id=2, remote_slot_num=30"
当然如果我们不想指定remote_lpar的相关信息,那么完全可以使用上述命令的一个简化版本:
hscroot@hmc:~> chhwres -r virtualio --rsubtype scsi -m Server-8231-E2B-SN104A4AR -o a --id 1 -s 18 -a "adapter_type=server"
上面的这条命令只是说在VIOS中创建一个slot num=18的Virtual SCSI Server Adapter, 并没有指定能使用
该VSSA的client partition的相关信息,这意味着这个VSSA可以跟Any Partition的Any Partition Slot进行绑定,不过对于Client Adapter的话,则必须指定remote_lpar_id和remote_slot_num两个参数。当然,如果VIOS中对应slot num=18已经有一个VSSA,则该条命令会提示如下的错误:
HSCL294C Dynamic add of virtual I/O resources failed:
A Virtual I/O device already exists at slot 18.

如果VIOS中对应slot num=18尚没有一个VSSA存在,那么上述命令就会在VIOS中创建一个VSSA出来,如果想在VIOS中看到该hwres所对应的虚拟设备vhost n,需要登录到VIOS系统中,运行cfgdev命令vios才可自动创建出一个vhostx设备出来,否则的话只能通过lshwres命令来查看当前VIOS中拥有多少个VSSA:
hscroot@hmc:~> lshwres -r virtualio --rsubtype scsi -m Server-8231-E2B-SN104A4AR --level lpar --filter "lpar_ids=1"
...
lpar_name=vios,lpar_id=1,slot_num=77,state=1,is_required=0,adapter_type=server,
remote_lpar_id=any,remote_lpar_name=,remote_slot_num=any

...

一旦在VIOS中通过cfgdev产生了vhostx虚拟设备,就可以象 通过VMLibrary在client partition上安装AIX全程实录 那样为其创建VTD和backing device.

如果我们考虑一下上述操作的相反的过程,在VIOS环境下,首先必须通过 a. rmvdev -vtd vtdname删除掉vhostx上的VTD b. 通过rmlv Logical Volume删除掉backing device(这步需要小心,删除一个LV,意味这“all data contained on logical volume xxx will be destroyed")c. rmdev -dev vhostx
到目前为止的这几步还只是删除vhostx这个虚拟设备,但是在hwres这一层,供过lshwres依然可以看到该vhostx岁对应的hwres还存在着,此时就必须利用chhwres命令来彻底把这一hwres删除掉。

启动LPAR并安装了AIX之后,配置完网络,就可以用比如ssh的方式登录进去。在该AIX环境下,我们执行:
bash-3.2# prtconf
会有以下的输出:
。。。
System Model: IBM,8231-E2B
Machine Serial Number: 104A4AR
Processor Type: PowerPC_POWER7
Processor Implementation Mode: POWER 7
Processor Version: PV_7_Compat
Number Of Processors: 2
Processor Clock Speed: 3000 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 2 dennis
Memory Size: 4096 MB
Good Memory Size: 4096 MB
Platform Firmware level: AL730_066
Firmware Version: IBM,AL730_066
Console Login: enable
Auto Restart: true
Full Core: false
。。。
INSTALLED RESOURCE LIST

The following resources are installed on the machine.
+/- = Added or deleted from Resource List.
*   = Diagnostic support not available.
       
  Model Architecture: chrp
  Model Implementation: Multiple Processor, PCI bus
       
+ sys0                                                            System Object
+ sysplanar0                                                      System Planar
* vio0                                                            Virtual I/O Bus
* vscsi0           U8231.E2B.104A4AR-V2-C20-T1                    Virtual SCSI Client Adapter
* hdisk1           U8231.E2B.104A4AR-V2-C20-T1-L8300000000000000  Virtual SCSI Disk Drive
* hdisk0           U8231.E2B.104A4AR-V2-C20-T1-L8200000000000000  Virtual SCSI Disk Drive
* cd0              U8231.E2B.104A4AR-V2-C20-T1-L8100000000000000  Virtual SCSI Optical Served by VIO Server
* ent0             U8231.E2B.104A4AR-V2-C10-T1                    Virtual I/O Ethernet Adapter (l-lan)
* vsa0             U8231.E2B.104A4AR-V2-C0                        LPAR Virtual Serial Adapter
* vty0             U8231.E2B.104A4AR-V2-C0-L0                     Asynchronous Terminal
+ L2cache0                                                        L2 Cache
+ mem0                                                            Memory
+ proc0                                                           Processor
+ proc4                                                           Processor

网友可以与当初创建它的命令行参数进行对比,看看它们之间的那种对应关系。

【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持