在上一篇博文中,我们已经在一个新创建的LPAR中通过File-backed device以及VMLibrary的方式成功安装了一个AIX系统,接下来我们讨论如何通过VIOS的协助来完成新装AIX系统的网络功能。为方便读者阅读,我把当前我们所处的位置用下图简单标识一下:

 

上图是通过VIOS给新装的AIX系统提供网络支持的大致原理图,VIOS负责提供一个虚拟的ethernet
apapter给AIX使用(见图中VESA与VECA部分的连接),然后VIOS通过SEA穿过PowerVM
Hypervisor(也即利用Hypervisor Firmware所提供的功能)来使用物理的Ethernet
Adapter与外部世界进行网络通信。

通过上一篇博文之后,我们可以登录到AIX系统,但是网络部分尚未开通,这也是这篇博文要讨论的主要内容。上篇文章中我们在创建一个新的LPAR时用的是下面的命令:

-bash-3.2$ mksyscfg -r lpar -i
"name=nim,lpar_env=aixlinux,auto_start=1,boot_mode=norm,mem_mode=ded,min_mem=1024,
desired_mem=2048,max_mem=2048,proc_mode=shared,sharing_mode=uncap,uncap_weight=128,
min_procs=1,desired_procs=1,max_procs=2,min_proc_units=0.25,desired_proc_units=0.5,
max_proc_units=2,\"virtual_eth_adapters=4/0/3//0/0,5/0/4//0/0\""

这条命令很长很暴力,不过目前我们的关注点是黑体红色部分,它将为新生成的虚拟机LPAR提供两个Virtual
Ethernet
Adapter,因为相对于VIOS这个LPAR而言,新的LPAR将作为它的client形式而存在,所以新的LPAR(为简单起间,后续用其名称nim来代表这个LPAR)中的Virtual
Ethernet Adapter的官方称谓是Virtual Ethernet Client
Adapter(VECA)。这里简单解释一下后面那两个诡异的参数,4/0/3//0/0,它是‘slot_number/is_ieee/port_vlan_id/additional_vlan_ids/is_trunk/is_required’的具体表现形式,其最核心的信息有3个:slot_number,
port_vlan_id和is_trunk.
slot_number是这个VECA在nim这个虚拟机当中的slot_number,而port_vlan_id最重要,它表示当前虚机中的这个VECA与VIOS中的哪个Virtual
Ethernet Server
Adapter(VESA)是相互绑定的,也就是上图中的VESA与VECA标识的那条线,is_trunk表示这个virtual ethernet
adapter是否用来连接external network,在client
partition当中当然不需要了,因为我们只和VIOS中的VESA打交道,后者才需要连接external network (by using
the physical ethernet adapter through the SEA)。我们后面在具体操作时还会再解释这里的参数。

现在我们登录到新装的AIX中,利用lsdev命令可以看到下面两个VECA(对应前面创建LPAR时的“virtual_eth_adapters=4/0/3//0/0,5/0/4//0/0“参数):

(通常来说,上层的OS是不会知道底下设备是虚拟的还是物理的,但是我们从上面的命令输出可以看到,AIX很明显知道ent0和ent1都是Virtual I/O设备,因为所有的这一套东西都由IBM独家提供,包括AIX,所以这并不奇怪)

可以用lscfg命令看看这两个虚拟设备的详细信息:

上图中被我用鼠标hightlight部分是ent0的location code,其中V2-C4-T1的信息是此时我们比较关心的,C4表示该设备的slot number=4,这跟创建它的参数4/0/3//0/0是吻合的。

接下来为了使新装的AIX系统可以访问外部网络,需要在VIOS中为它建立一个SEA (Shared Ethernet Adapter),所以现在我们需要登录到VIOS环境中,找到port_vlan_id=3的VESA,然后为其建立一个SEA设备。

在VIOS中,我们可以看到如下一些跟网络设备相关的东西:

在我们当前实验用的IBM P服务器上,有两个物理的Ethernet Adapter设备,分别对应上图中的ent0和ent1,这两个设备都有网线连接到一个交换机上,所以ent0和ent1都可以用来作为SEA设备的backing device.
上图中的ent4,
ent5,ent6和ent7则分别是VIOS上的VESA,为了配置AIX的网络,需要找到与AIX中ent0或者ent1相同的vlan
id,下面我们以AIX中ent0为例,它所对应的VIOS中的VESA的vlan id=3.
所以我们需要在VIOS中找出ent[4,7]中哪个vlan id=3. 在VIOS环境下,执行lshwres命令:

上图中被hightlight的部分显示:VIOS中,vlan id = 3的VESA的slot num=5, 然后再用lsmap -all -net命令:
-bash-3.2$ lsmap -all -net
SVEA   Physloc
------ --------------------------------------------
ent4   U8204.E8A.068B7E4-V1-C3-T1

SEA                 NO SHARED ETHERNET ADAPTER FOUND

SVEA   Physloc
------ --------------------------------------------
ent5   U8204.E8A.068B7E4-V1-C4-T1

SEA                 NO SHARED ETHERNET ADAPTER FOUND

SVEA   Physloc
------ --------------------------------------------
ent6   U8204.E8A.068B7E4-V1-C5-T1

SEA                 NO SHARED ETHERNET ADAPTER FOUND

SVEA   Physloc
------ --------------------------------------------
很明显,红色部分表明ent6所对应的slot num=5,因此它的vlan id=3. ent6就是和我们新建的虚机VECA所对应的VESA. 有了这些信息之后,就可以为ent6建立一个SEA:

上面的命令行中,为了方便后续其他LPAR上的网络配置工作,我们为ent[4,6]都创建了一个相同的SEA
ent9,其backing device为ent1,后者是一个physical ethernet
adapter,前面我们都已经看到过了。(从这条命令我们还可以看到什么?可以看到一个SEA可以支持多个client
partition的网络功能,这也是它为啥叫Shared Ethernet Adapter的原因,而一个SEA只有一个backing
device,在我们的例子中是ent1,后者是一个实际的Ethernet Adapter,用来和外部世界进行信息沟通)

在以上步骤完成之后,就可以通过ifconfig来配置新安装的AIX系统的网络接口en0了(此时它的状态是Defined),这跟Linux下面的配置大同小异。完成之后,ping一下我自己的主机:
# ping 192.16.10.94
PING 192.16.10.94: (192.16.10.94): 56 data bytes
64 bytes from 192.16.10.94: icmp_seq=0 ttl=63 time=9 ms
64 bytes from 192.16.10.94: icmp_seq=1 ttl=63 time=0 ms
64 bytes from 192.16.10.94: icmp_seq=2 ttl=63 time=0 ms
配置完成后,ent0的状态已经改变成Available了。

一旦网络通了之后,可以稍微轻松一下,接下来的任务是把这台新装的AIX配置成一个NIM服务器。详见下一篇博文。

本文转自:http://blog.chinaunix.net/uid-23769728-id-3315871.html

【转】通过VIOS实现AIX系统的网络虚拟化的更多相关文章

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

    前面的几篇博文的操作环境都是在IVM下,IVM可以看作是VIOS的一部分,或者是对VIOS功能的一个扩展,一个IVM只能管理1台物理服务器,而HMC则是一对多.在有HMC来管理物理服务器的情形下,VI ...

  2. 使用NIM Server网络半自动安装AIX系统

    一.NIM配置 1.安装NIMServer前准备 1.1.配置IP地址 # ifconfig –a #检查当前IP地址# # smitty mktcpip #设置IP地址# 选择第一块网卡(插网线的网 ...

  3. (转)IBM AIX系统硬件信息查看命令(shell脚本)

    IBM AIX系统硬件信息查看命令(shell脚本) 原文:http://blog.itpub.net/22085031/viewspace-1054015/ 查看IBM AIX系统的主机型号.序列号 ...

  4. 如何配置Linux系统的网络IP地址

    一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...

  5. Linux系统NFS网络文件系统

    Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...

  6. AIX系统中安装Java6全过程(全部)

    ====================================================   From: GCG TSC pSeries <ibm800p@cn.ibm.com& ...

  7. AIX系统的环境变量设置

    AIX系统的环境变量设置 用户环境的定义是通过设置环境变量来实现的.AIX系统主要使用两大类profile文件来定义用户环境.一类是用来为所有用户定制环境,另一类是为个人定义自己的环境. 登录时,sh ...

  8. AIX 开机启动网络服务配置

    aix7 administrator An administrator notices that the ntp group subsystem is not starting up at boot ...

  9. AIX 系统中 PVID 的含义与作用

    网址: http://www.eygle.com/digest/2008/06/aix_pvid.html Pvid是aix系统中的ODM LVM用于识别PV的序列号,操作系统通过pvid来识别pv, ...

随机推荐

  1. iOS开发-关闭/收起键盘方法总结

    前言:作为IOS开发人员,需要经常和表单打交道.因此我对收起键盘的方法作了下总结,IOS收起键盘有三种方法(如果有其它收起键盘的方法请在留言区指错). 收起键盘的方法: 1.点击Return按扭时收起 ...

  2. Linux-信号详解

    1.Linux支持的所有信号: $ kill -l ) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP ) SIGABRT ) SIGBUS ) SIGFPE ...

  3. csv导出文件中有html

    最近遇到再导出csv文件时,csv文件中包含html代码 一开始以为导出的数据量太大,减少数据后仍然出现html代码,此时想到应该与数据有关,仔细观察csv中的数据,有的单元里面是空值, 对比原始数据 ...

  4. @using (Html.BeginForm()) @using (Ajax.BeginForm(new AjaxOptions() { })) 区别

    @using (Html.BeginForm()) 返回页面 也是页面 都是返回页面 只是 多了一个 data-ajax="true"

  5. asp.net core mvc视频A:笔记5-1.路由规则

    方法一:通过MapRoute方法,配置文件位置 小例子:如果所有路径都要在admin下,可以这样写 方法二:通过路由属性 相对路由 现在需要加/admin/home/index才能正常访问原来的默认页 ...

  6. Anaconda(Spyder)使用Tensorflow

    按照上篇文安装成功后,每次使用TensorFlow的时候需要激活conda环境. 在正常情况下,是Anaconda的bin路径在环境变量中,但激活conda-tensorflow环境后,环境变量中存储 ...

  7. Android开发系列之创建自定义控件

    Android开发过程中我们经常需要定义自己的控件,一方面基于复用的角度考虑,一方面也是基于逻辑处理思维的角度考虑.在这篇博客里面,笔者想要介绍.总结几种Android自定义控件的方法,如果有什么不对 ...

  8. Java联网技术之一TCP socket

    最近突然对java网络编程编程这一块非常感兴趣,于是找了很多资料,一点点的尝试,下面是自己的一点小见解,不喜勿喷,欢迎指正. 首先说说客户端和服务器端吧, 如果是网页的话,客户端通过网页的链接对服务器 ...

  9. Spring Boot MongoDB JPA 简化开发

    使用SpringBoot提供的@Repository接口,可以完成曾经需要大量代码编写和配置文件定制工作.这些以前让新手程序员头疼,让有经验的程序员引以为傲的配置,由于框架的不断完善,变得不那么重要, ...

  10. plsql programming 20 管理PL/SQL代码(个人感觉用不到)

    这一章的内容, 只完成了一部分, 剩下的用到再补充吧 由于依赖关系, 而编译失败, 需要重新编译. ( 所谓依赖, 是指存储过程, 函数等在运行中调用的对象, 比如table 等, 比如你删除了过程中 ...