刀片伺服器是許多應用程序和服務的最佳選擇,對於電信服務提供商尤其如此。但是,這些提供商網路的獨特需求常常需要複雜的配置,需要預先進行詳細的研究和規劃,這樣才能滿足所有嚴格的功能性需求。通過本文我們可以學習在部署 POWER6™ JS22 刀片伺服器時,如何規劃和搭建必備的網路配置。
由於以下幾個原因,基於刀片伺服器的運營模型對於有線和無線電信領域極有價值:
另外,下面這些因素在電信服務提供商環境中也很重要,對於具有複雜配置的環境尤其如此:
在本文中,討論如何使用主動/被動配置的 Cisco 交換機組合實現一個刀片伺服器機架的多 VLAN 配置。在我們的示例中,配置的網路連接到一台使用 Linux® on Power 的 BladeCenter® JS22 上的多個 VLAN。這個體系結構由 6 個 Cisco catalyst 交換機模塊組成,每個模塊有 14 個內部埠和 4 個外部的 1GB 埠。
為了適當地利用機架中的所有 6 個交換機,刀片伺服器需要 6 個乙太網介面。刀片伺服器上的乙太網介面 ent0 映射到刀片伺服器機架上的第一個交換機;每個乙太網介面依次映射到下一個可用的交換機。這種映射方式有一個限制,因為它不允許管理員把刀片伺服器上的物理適配器映射到他們選擇的交換機。
在為刀片伺服器創建網路體系結構時,對於機架上希望使用的每個 Cisco 交換機,必須有一個物理介面。如果一些刀片伺服器上的適配器數量與機架上的適配器數量不同,那麼刀片伺服器就無法使用那些沒有相關聯的刀片伺服器物理適配器的交換機。
一定要了解刀片伺服器上的乙太網介面和機架中的交換機的配對方式。機架中的第一個交換機通常放在刀片伺服器機架的左上方,就在電源插頭的下面。它映射到刀片伺服器上的 ent0,因為這是刀片伺服器上的第一個介面。圖 1 給出我們的配置中的交換機編號。
決定交換機配對方式對於實現高可用性極其重要。在典型的配置中,一個電源分佈單元(PDU)為刀片伺服器機架的上半部分供電,另一個 PDU 為機架的下半部分供電。如果要創建冗餘的解決方案,就一定要把主交換機和輔交換機分別放在機架的上半部分和下半部分。
在我們的示例中,創建的解決方案採用下面的交換機配對:(1, 9) (2, 3) (4, 7)。因為適配器對 (ent0, ent1)、(ent2, ent3) 和 (ent4, ent5) 在相同的物理 I/O 卡上,所以還需要確保目標 VLAN 的網路通信流不經過相同的 I/O 卡。我們的配置要跨多個 PDU 和多個介面分佈通信流。
儘管適配器和交換機的配對看起來很簡單,但是需要執行多個步驟來配置 IVM(Integrated Virtualization Manager)、交換機和 LPAR,才能利用這個體系結構。圖 2 給出一個刀片伺服器的設置以及相關聯的交換機、聚合(trunk)和 VLAN 標記。這個配置使多個 VLAN 能夠通過相同的物理適配器與多個交換機進行通信。
在這個示例中,每個 LPAR 有兩個乙太網適配器,它們連接到 IVM 上的一個 Virtual Ethernet Adapter(VEA)。注意,IVM 上的 VEA 與多個 VLAN 相關聯。每個 VLAN 的通信流通過它們的適配器分配到 LPAR。VEA 把 VLAN 的通信流集中在一起,通過一個鏈路聚合設備經過 Shared Ethernet Adapter(SEA)發送它們,並通過機架交換機之一發送出網路。交換機使用 VLAN 標記把 VLAN 通信流路由到適當的網路。
配置 VLAN 的 5 個步驟
為 IVM 上的客戶機 LPAR 配置 VLAN 需要 5 個主要步驟(和一個可選步驟):
本文中的示例適用於刀片伺服器的全新安裝。
步驟 1:配置 Cisco 交換機
如果交換機已經配置了希望使用的 VLAN,那麼可以跳過這個步驟。這個示例並不演示如何配置跨越樹及其所需的交換機優先順序。如果您希望實踐這個示例,那麼應該使自己的交換機符合以下配置。
登錄交換機
依次輸入以下命令:
這些命令把交換機上的埠 1 配置為執行聚合。如果通信流從刀片伺服器發送到交換機,或者從刀片伺服器的外部介面發送到交換機,而且它們沒有 VLAN 標記,那麼交換機會給它們加上標記 VLAN 383。在這裡,switchport(外部埠)只允許來自 373 和 383 的通信流,這些通信流來自或路由到 IVM 的 VEA。要想改變從 IVM 訪問這個埠所需的 VLAN,只需修改允許聚合的 VLAN 號。
分割通信流
通信流被聚合併發送到交換機之後,交換機會決定用哪個外部埠路由 VLAN 通信流。在這個示例中,通過埠 17 發送外部 VLAN 373 通信流,通過埠 20 發送 VLAN 383 通信流。
為了通過埠 17 發送 VLAN 373 通信流,在 Cisco 交換機上輸入以下命令:
為了通過埠 20 發送 VLAN 383 通信流,在 Cisco 交換機上輸入以下命令:
在設置外部埠配置之後,輸入 exit 兩次,退出命令行的配置模式。然後運行 show run 命令查看配置。show run 命令顯示當前正在運行的交換機配置。配置還沒有寫到交換機的內存中,但是可以在交換機上看到當前的修改。如果查看配置,可以看到上面步驟中所做的修改。在配置之後,查看刀片伺服器 1 的乙太網埠:
interface GigabitEthernet0/1 description blade1 switchport trunk native vlan 383 switchport trunk allowed vlan 373,383 switchport mode trunk |
如果發出 show config 命令,會看到以前的介面配置,而不是剛才配置的。如果在這種狀態下重新引導交換機,當前的配置就會丟失。要想把當前配置寫到內存中,應該在交換機的命令行上輸入 write。如果再次運行 show config,交換機上存儲的介面配置就會與當前配置一致。
可選步驟:創建鏈路聚合適配器
可以使用鏈路聚合設備把兩個物理適配器連接在一起,讓它們看起來像一個適配器一樣。這有助於創建故障轉移所需的主動/被動配置。
在我們的示例中,希望在鏈接在一起的 ent0 和 ent5 刀片伺服器適配器上創建一個主動/被動配置。在 IVM 的命令行上,執行以下命令創建鏈路聚合設備(LNAGG)並以 ent5 上的適配器作為備份適配器:
$ mkvdev -lnagg ent0 -attr backup_adapter=ent5
使用 lsdev 命令檢查是否成功創建了 LNAGG 設備。
$lsdev |grep ^ent ent0 Available Logical Host Ethernet Port (lp-hea) ent1 Available Logical Host Ethernet Port (lp-hea) ent2 Available Gigabit Ethernet-SX Adapter (e414a816) ent3 Available Gigabit Ethernet-SX Adapter (e414a816) ent4 Available Gigabit Ethernet-SX PCI-X Adapter (14106703) ent5 Available Gigabit Ethernet-SX PCI-X Adapter (14106703) ent6 Available Virtual I/O Ethernet Adapter (l-lan) ent7 Available Virtual I/O Ethernet Adapter (l-lan) ent8 Available Virtual I/O Ethernet Adapter (l-lan) ent9 Available Virtual I/O Ethernet Adapter (l-lan) ent10 Available EtherChannel/IEEE 802.3ad Link Aggregation ent11 Available EtherChannel/IEEE 802.3ad Link Aggregation ent12 Available EtherChannel/IEEE 802.3ad Link Aggregation ent13 Available Virtual I/O Ethernet Adapter (l-lan) ent14 Available Virtual I/O Ethernet Adapter (l-lan) ent15 Available Virtual I/O Ethernet Adapter (l-lan) ent16 Available Shared Ethernet Adapter ent17 Available Shared Ethernet Adapter ent18 Available Shared Ethernet Adapter |
在 lsdev 命令的輸出中,可以看到鏈路聚合設備(ent10 - ent12)就像是一個物理適配器。這樣就可以通過 Shared Ethernet Adapter(ent16 - ent18)把這個鏈路聚合設備映射到一個虛擬設備(ent13 - ent15)。SEA 把這個鏈路聚合設備(LNAGG)當作一個物理適配器對待。Virtual Ethernet Adapter(VEA)ent6 - ent9 是默認創建的,是不能感知 VLAN 的設備,也不能把它們修改為感知 VLAN 的。ent0 - ent5 是刀片伺服器上的物理適配器。
通過在 lsdev 命令上使用 attr 標誌,可以查看 LNAGG 設備與物理適配器的映射方式。$lsdev -dev ent10 -attr 會產生表 1 所示的映射。
屬性 | 值 | 說明 | 用戶是否可以設置? |
---|---|---|---|
adapter_names | ent0 | EtherChannel 適配器 | 可以 < 主 |
alt_addr | 0x000000000000 | Alternate EtherChannel Address | 可以 |
auto_recovery | no | 啟用故障轉移后的自動恢復 | 可以 |
backup_adapter | ent5 | 在整個通道發生故障時使用的適配器 | 可以 < 備份 |
hash_mode | default | 決定如何選擇外出適配器 | 可以 |
mode | standard | EtherChannel 操作模式 | 可以 |
netaddr | 要 ping 的地址 | 可以 | |
noloss_failover | yes | 啟用 ping 失敗之後的無損故障轉移 | 可以 |
num_retries | 8 | 失敗之前的 ping 重試次數 | 可以 |
retry_time | 1 | ping 操作之間等待的時間(秒數) | 可以 |
use_alt_addr | no | 啟用 Alternate EtherChannel Address | 可以 |
use_jumbo_frame | no | 啟用 Gigabit Ethernet Jumbo Frames | 可以 |
步驟 2:在 IVM 上創建虛擬適配器
在這個示例中,希望讓 VLAN 373 和 383 的網路通信流通過 Virtual Ethernet Adapter。配置這個解決方案的第一步是在 IVM 上創建虛擬適配器,以便傳輸客戶機 LPAR 的通信流。我們來創建一個虛擬適配器,它的主埠是 373,輔埠是 383。
按照以下步驟在 IVM 上創建感知 VLAN 的介面:
$lshwres -r virtualio --rsubtype eth --level lpar lpar_name=IVM_01,lpar_id=1,slot_num=3,state=1,ieee_virtual_eth=0,port_vlan_id=1, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B503 lpar_name=IVM_01,lpar_id=1,slot_num=4,state=1,ieee_virtual_eth=0,port_vlan_id=2, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B504 lpar_name=IVM_01,lpar_id=1,slot_num=5,state=1,ieee_virtual_eth=0,port_vlan_id=3, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B505 lpar_name=IVM_01,lpar_id=1,slot_num=6,state=1,ieee_virtual_eth=0,port_vlan_id=4, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B506 |
$lshwres -r virtualio --rsubtype eth --level lpar lpar_name=IVM_01,lpar_id=1,slot_num=3,state=1,ieee_virtual_eth=0,port_vlan_id=1, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B503 lpar_name=IVM_01,lpar_id=1,slot_num=4,state=1,ieee_virtual_eth=0,port_vlan_id=2, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B504 lpar_name=IVM_01,lpar_id=1,slot_num=5,state=1,ieee_virtual_eth=0,port_vlan_id=3, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B505 lpar_name=IVM_01,lpar_id=1,slot_num=6,state=1,ieee_virtual_eth=0,port_vlan_id=4, addl_vlan_ids=none,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B506 lpar_name=IVM_01,lpar_id=1,slot_num=15,state=1,ieee_virtual_eth=1,port_vlan_id=383, addl_vlan_ids=378,is_trunk=1,trunk_priority=1,is_required=0,mac_addr=463337C4B50F lpar_name=IVM_01,lpar_id=1,slot_num=16,state=1,ieee_virtual_eth=1,port_vlan_id=6, "addl_vlan_ids=22,23",is_trunk=1,trunk_priority=1,is_required=0, mac_addr=463337C4B510 lpar_name=IVM_01,lpar_id=1,slot_num=17,state=1,ieee_virtual_eth=1,port_vlan_id=7, "addl_vlan_ids=565,566,567,568",is_trunk=1,trunk_priority=1,is_required=0, mac_addr=463337C4B511 |
步驟 3:把虛擬乙太網 ID 分配給物理適配器
創建鏈路聚合設備之後,需要把它映射到虛擬適配器。這很容易通過圖 3 所示的 IVM GUI 完成。
在登錄這個 GUI 之後,在左邊的導航欄中選擇 “View/Modify Virtual Ethernet”,然後選擇 “Virtual Ethernet Bridge” 選項卡。在這個菜單上,可以看到前面創建的虛擬乙太網適配器(主 VLAN 為 383,輔 VLAN 為 373)。可以從下拉框中選擇前面創建的鏈路聚合設備。選擇新設備之後,單擊 Apply。這會在 IVM 中創建一個 Shared Ethernet Adapter(SEA)。
步驟 4:修改 LPAR 的屬性
把物理適配器或 LNAGG 設備映射到 IVM 上的虛擬乙太網 ID 之後,需要為每個邏輯分區創建虛擬適配器。第一步是登錄 IVM GUI(見圖 4)。
在登錄之後,選擇左上角的 View/Modify Partition。頁面刷新之後,選擇要修改的 LPAR。
在菜單中選擇客戶機 LPAR 並確認您的瀏覽器支持彈出菜單。在彈出菜單中,選擇 “Ethernet” 選項卡(圖 5)。
在圖 5 中,可以看到 Virtual Ethernet 下拉框是灰色的;這是因為在截取這個屏幕圖時 LPAR 正在運行。在修改屬性之前,一定要關閉或禁用客戶機 LPAR。
在這個屏幕上,使用下拉框把感知 VLAN 的 VEA 映射到客戶機 LPAR 的適配器。注意,虛擬適配器與一個 VLAN 相關聯,這使 IVM 可以給操作系統發出的通信流加上 VLAN 標記併發送到適當的 LNAGG 設備。如果需要更多適配器,那麼單擊 Create Adapter。
步驟 5:通過配置 Linux 使用感知 VLAN 的介面
配置了 IVM 和 Cisco 交換機之後,如果配置需要 Linux 分區的靜態 IP 地址,那麼可能需要執行另一個步驟。在 IVM GUI 上,啟用 LPAR。
如果執行 ifconfig 命令,就會看到映射到 LPAR 的虛擬適配器 VLAN。使用您喜歡的編輯器,根據配置需求修改介面參數。下面是一個使用靜態 IP 地址的介面示例 ifcfg-eth0:
DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.31 HWADDR=00:1A:64:8C:B2:32 IPADDR=192.168.1.44 NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet GATEWAY=192.168.1.1 |
使用 /etc/init.d/network restart 重新啟動介面。
結束語
與任何部署工作一樣,規劃是獲得成功的關鍵。為了避免返工,在刀片伺服器機架中實現複雜的網路之前,一定要完成網路設計。根據我們的經驗,重新配置支持 IVM 的複雜網路是相當費事的;實際上,管理員常常必須在重新配置之前刪除 以前的配置。
規劃對於安裝也很重要,因為無法在 IVM 中動態地在虛擬適配器上添加新的 VLAN。由於在 JS22 中只能有一個 IVM,所以不能像傳統的 VIOS 安裝中那樣使用 SEA 故障轉移。鏈路聚合提供了跨多個交換機路由通信流的機制,有助於防止交換機造成的網路故障。在考慮刀片伺服器中的冗餘設計時,要記住一個 PDU 為刀片伺服器機架的上半部分供電,另一個 PDU 為下半部分供電。
所有這些因素決定了網路實現的複雜性,所以建議在行動之前一定要做好規劃。
(責任編輯:A6)
[火星人 ] 使用 Linux on Power 刀片伺服器實現複雜的網路已經有804次圍觀