歡迎您光臨本站 註冊首頁

使用 Linux on Power 刀片伺服器實現複雜的網路

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
刀片伺服器是許多應用程序和服務的最佳選擇,對於電信服務提供商尤其如此。但是,這些提供商網路的獨特需求常常需要複雜的配置,需要預先進行詳細的研究和規劃,這樣才能滿足所有嚴格的功能性需求。通過本文我們可以學習在部署 POWER6™ JS22 刀片伺服器時,如何規劃和搭建必備的網路配置。

由於以下幾個原因,基於刀片伺服器的運營模型對於有線和無線電信領域極有價值:

  1. 內存佔用量小,可以更有效地使用數據中心空間。
  2. 能夠滿足分散式部署的 NEBS 需求。(NEBS [Network Equipment Building System] 是連網設備為了實現兼容性必須滿足的一組條件。)
  3. 為電信服務提供商提供經濟有效的水平伸縮性,可以降低部署成本。
  4. 提供集中的管理支持,可以為服務提供商網路中的部署提供更好的 OAM&P 支持。(OAM&P 代表 “operations、administration、maintenance 和 provisioning”。這個術語表示管理所需的原理和軟體)。
  5. 內置了對基於連續可用性的運營模型的支持(包括升級和維護活動),可以避免用戶能夠察覺到的服務停機時間。

另外,下面這些因素在電信服務提供商環境中也很重要,對於具有複雜配置的環境尤其如此:

  • 多個 VLAN。這些用於 CDN(Customer Data Network)和 Management(OAM&P)通信流。單獨考慮它們以確保跨多個 LPAR(邏輯分區)有效地維持 QoS(服務質量)。
  • 微分區和虛擬化。這些戰略有助於儘可能提高容量利用率和降低 TCO(總擁有成本)。
  • 現有網路的複雜性。現有網路的負載可能變化很大,因此需要在多個客戶機 LPAR 之間進行負載平衡。

在本文中,討論如何使用主動/被動配置的 Cisco 交換機組合實現一個刀片伺服器機架的多 VLAN 配置。在我們的示例中,配置的網路連接到一台使用 Linux® on Power 的 BladeCenter® JS22 上的多個 VLAN。這個體系結構由 6 個 Cisco catalyst 交換機模塊組成,每個模塊有 14 個內部埠和 4 個外部的 1GB 埠。

為了適當地利用機架中的所有 6 個交換機,刀片伺服器需要 6 個乙太網介面。刀片伺服器上的乙太網介面 ent0 映射到刀片伺服器機架上的第一個交換機;每個乙太網介面依次映射到下一個可用的交換機。這種映射方式有一個限制,因為它不允許管理員把刀片伺服器上的物理適配器映射到他們選擇的交換機。

在為刀片伺服器創建網路體系結構時,對於機架上希望使用的每個 Cisco 交換機,必須有一個物理介面。如果一些刀片伺服器上的適配器數量與機架上的適配器數量不同,那麼刀片伺服器就無法使用那些沒有相關聯的刀片伺服器物理適配器的交換機。

一定要了解刀片伺服器上的乙太網介面和機架中的交換機的配對方式。機架中的第一個交換機通常放在刀片伺服器機架的左上方,就在電源插頭的下面。它映射到刀片伺服器上的 ent0,因為這是刀片伺服器上的第一個介面。圖 1 給出我們的配置中的交換機編號。


圖 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 能夠通過相同的物理適配器與多個交換機進行通信。


圖 2. 一個刀片伺服器以及相關聯的交換機、聚合和 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 交換機。(這裡有一個可選步驟 —— 創建一個鏈路聚合設備,通常稱為 LNAGG 設備)。
  2. 在 IVM 上創建感知 802.1q IEEE VLAN 的介面,以便支持在每個介面上使用 VLAN。在做任何工作之前設計 VLAN 是非常重要的,因為以後不可能修改已經創建的感知 VLAN 的介面。需要刪除它們並重新創建,這很浪費時間。
  3. 通過 IVM 中的 Virtual Ethernet 菜單把 Virtual Ethernet Adapter 分配給物理適配器(LNAGG)。
  4. 通過修改 LPAR 屬性把新的虛擬適配器分配給 LPAR 適配器。在修改網路設備屬性之前,一定要禁用 LPAR。
  5. 引導每個 LPAR 並配置新介面。

本文中的示例適用於刀片伺服器的全新安裝。





步驟 1:配置 Cisco 交換機

如果交換機已經配置了希望使用的 VLAN,那麼可以跳過這個步驟。這個示例並不演示如何配置跨越樹及其所需的交換機優先順序。如果您希望實踐這個示例,那麼應該使自己的交換機符合以下配置。

登錄交換機

依次輸入以下命令:

  • enable
  • config
  • interface GigabitEthernet0/1
  • description blade1
  • switchport trunk native vlan 383
  • switchport trunk allowed vlan 373,383
  • switchport mode trunk

這些命令把交換機上的埠 1 配置為執行聚合。如果通信流從刀片伺服器發送到交換機,或者從刀片伺服器的外部介面發送到交換機,而且它們沒有 VLAN 標記,那麼交換機會給它們加上標記 VLAN 383。在這裡,switchport(外部埠)只允許來自 373 和 383 的通信流,這些通信流來自或路由到 IVM 的 VEA。要想改變從 IVM 訪問這個埠所需的 VLAN,只需修改允許聚合的 VLAN 號。

分割通信流

通信流被聚合併發送到交換機之後,交換機會決定用哪個外部埠路由 VLAN 通信流。在這個示例中,通過埠 17 發送外部 VLAN 373 通信流,通過埠 20 發送 VLAN 383 通信流。

為了通過埠 17 發送 VLAN 373 通信流,在 Cisco 交換機上輸入以下命令:

  • interface GigabitEthernet0/17
  • description extern1
  • switchport access vlan 373
  • switchport mode access

為了通過埠 20 發送 VLAN 383 通信流,在 Cisco 交換機上輸入以下命令:

  • interface GigabitEthernet0/20
  • description extern4
  • switchport access vlan 383
  • switchport mode access

在設置外部埠配置之後,輸入 exit 兩次,退出命令行的配置模式。然後運行 show run 命令查看配置。show run 命令顯示當前正在運行的交換機配置。配置還沒有寫到交換機的內存中,但是可以在交換機上看到當前的修改。如果查看配置,可以看到上面步驟中所做的修改。在配置之後,查看刀片伺服器 1 的乙太網埠:


清單 1. 顯示交換機埠 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 設備。


清單 2. 檢查是否創建了 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 所示的映射。


表 1. $lsdev -dev ent10 -attr 顯示的 LNAGG 到 PA 映射
屬性 說明 用戶是否可以設置?
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 的介面:

  1. 使用您喜歡的(putty)telnet 程序,打開一個連接 IVM 的窗口,作為 padmin 登錄(默認密碼是 “passw0rd”,其中的 “0” 是零而不是 “O”)。
  2. 使用 shwres -r virtualio --rsubtype eth --level lpar 命令列出乙太網資源:

    清單 3. 列出乙太網資源
    $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  

  3. 使用 chhwres 命令在 IVM 上創建一個支持 IEEE VLAN 感知的虛擬適配器以及希望在這個介面上使用的額外 VLAN。這需要在 IVM 的命令行上執行以下命令:$ chhwres -p IVM_01 -o a -r virtualio --rsubtype eth -s 15 -a\ '"ieee_virtual_eth=1","port_vlan_id=373","addl_vlan_ids=383","is_trunk=1","trunk_priority=1"'。chhwres 命令告訴 IVM 如何構造一個新的感知 VLAN 的 Virtual Ethernet Adapter。

    為了在 IVM 上創建多個虛擬適配器,需要了解這個命令的一些重要特性:
    • -p partition:在這個命令中,通過使用 -p 標誌告訴 chhwres 要修改 IVM 分區。
    • -s nn:這告訴 IVM 我們要使用一個特定的插槽號。如果沒有指定這個參數,IVM 將使用下一個可用插槽。當從 IVM 刪除設備時需要插槽號。
    • ieee_virtual_eth:如果值為 1,就通知 IVM 這個適配器支持 IEEE 802.1Q。如果需要額外的 VLAN,就需要把這個參數設置為 1。
    • port_vlan_id:這是虛擬適配器的主 VLAN。
    • add_vlan_ids:如果啟用了聚合,那麼這個參數接受額外的 VLAN。
    • is_trunk:如果使用多個 VLAN,這個屬性也必須設置為 1。
    • trunk_priority:如果啟用了聚合,適配器的優先順序必須設置在 1-15 之間。
  4. 再次運行 lshwres 命令並尋找新設備,從而確認已經創建了虛擬適配器。

    清單 4. 顯示新設備
    $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 完成。


圖 3. 通過 IVM GUI 把 LNAGG 映射到虛擬適配器

在登錄這個 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)。


圖 4. 為每個 LPAR 創建虛擬適配器

在登錄之後,選擇左上角的 View/Modify Partition。頁面刷新之後,選擇要修改的 LPAR。

在菜單中選擇客戶機 LPAR 並確認您的瀏覽器支持彈出菜單。在彈出菜單中,選擇 “Ethernet” 選項卡(圖 5)。


圖 5. 在修改屬性時必須關閉 LPAR

在圖 5 中,可以看到 Virtual Ethernet 下拉框是灰色的;這是因為在截取這個屏幕圖時 LPAR 正在運行。在修改屬性之前,一定要關閉或禁用客戶機 LPAR。

在這個屏幕上,使用下拉框把感知 VLAN 的 VEA 映射到客戶機 LPAR 的適配器。注意,虛擬適配器與一個 VLAN 相關聯,這使 IVM 可以給操作系統發出的通信流加上 VLAN 標記併發送到適當的 LNAGG 設備。如果需要更多適配器,那麼單擊 Create Adapter。





步驟 5:通過配置 Linux 使用感知 VLAN 的介面

配置了 IVM 和 Cisco 交換機之後,如果配置需要 Linux 分區的靜態 IP 地址,那麼可能需要執行另一個步驟。在 IVM GUI 上,啟用 LPAR。

  1. 登錄機器並把用戶改為根用戶。
  2. 輸入以下命令:cd /etc/sysconfig/network-scripts。

如果執行 ifconfig 命令,就會看到映射到 LPAR 的虛擬適配器 VLAN。使用您喜歡的編輯器,根據配置需求修改介面參數。下面是一個使用靜態 IP 地址的介面示例 ifcfg-eth0:


清單 5. 具有靜態 IP 地址的介面
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次圍觀

http://coctec.com/docs/linux/show-post-69146.html