快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

使用Linux on Power 刀片服务器实现复杂的网络

    刀片服务器是许多应用程序和服务的最佳选择,对于电信服务提供商尤其如此。但是,这些提供商网络的独特需求常常需要复杂的配置,需要预先进行详细的研究和规划,这样才能满足所有严格的功能性需求。通过本文我们可以学习在部署 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 给出我们的配置中的交换机编号。

   

    决定交换机配对方式对于实现高可用性极其重要。在典型的配置中,一个电源分布单元(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 映射

    表 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。

    4 为了在 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 之间。
    再次运行 lshwres 命令并寻找新设备,从而确认已经创建了虚拟适配器。

    清单 4. 显示新设备

     $lshwres -r virtualio --rsubtype eth --level lpar

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论