【轉】通過VIOS實現AIX系統的網絡虛擬化


在上一篇博文中,我們已經在一個新創建的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM