在 Oracle® Solaris 11.2 中管理网络虚拟化和网络资源

退出打印视图

更新时间: 2014 年 9 月
 
 

使用案例:通过设置数据链路和流属性来管理网络资源

下面的使用案例基于您通过设置数据链路和流属性来提高系统效率的方案。此使用案例基于下图中显示的配置。

图 7-3  用于管理数据链路和流上的资源的系统配置

image:此图显示了用于管理数据链路和流上的资源的两个主机的系统配置。

此图显示了以下两个相互连接的物理主机:

  • Host1 具有以下配置:

    • 一个充当服务器和路由器的非全局区域。为该区域指定了两个接口:net0 接口连接到 Internet,net1 接口连接到包括 Host2 在内的内部网络。

    • net1 上配置了流以隔离通信并对属于这些流的包如何使用资源实施控制。有关配置流的信息,请参见使用流管理网络资源

  • Host2 具有以下配置:

    • 三个非全局区域及其各自的 VNIC。这些 VNIC 是在 net0 上配置的,其 NIC 卡支持环分配。有关环分配的更多信息,请参见管理 NIC 环

    • 每个区域的网络处理负载是不同的。在此示例中,zone1 充当 HTTP 客户机。其余区域(zone2zone3)充当尝试通过安全 shell (SSH) 协议访问 Host1 的 SSH 客户机。zone1 的网络通信高于 zone2zone3 并且对时间不敏感。而 zone2zone3 的网络通信级别低且对时间敏感。因此,要加快处理 zone2zone3 的网络通信,您需要限制分配给 zone1 的网络通信的带宽。如果为 zone1 分配的带宽不受限制,则它将使用所有可用带宽。这将导致拒绝为 zone2zone3 这两个其余区域分配带宽。

    • 将一个单独的 VNIC 配置为基于软件的客户机。有关 MAC 客户机的概述,请参见在 MAC 客户机中分配环

此使用案例中的任务涉及以下操作:

  • 创建流和配置流控制-在 net1 上创建流,以便对属于由 Host1net1 接收的流的包实施单独的资源控制。

  • Host2 上的 VNIC 配置网络资源属性-根据处理负载,为每个区域的 VNIC 配置一组专用环。还要配置一个单独的没有专用环的 VNIC 作为基于软件的客户机的示例。


注 -  此使用案例不包括任何区域配置过程。要配置区域,请参见创建和使用 Oracle Solaris 区域 中的第 1  章 如何规划和配置非全局区域

  1. 查看有关 Host1 上的链路和 IP 接口的信息。

    # ipadm
    NAME              CLASS/TYPE       STATE        UNDER      ADDR
    lo0               loopback   ok           --         --
       lo0/v4         static     ok           --         127.0.0.1/8
       lo0/v6         static     ok           --         ::1/128
    net1              ip         ok           --         --
       net1/v4        static     ok           --         192.168.200.103/24
    net0              ip         ok           --         --
       net0/v4        static     ok           --         10.134.76.129/24
  2. Host1net1 上创建以下流:

    • httpflow-包含 zone1net1 之间的所有 HTTP 通信。

      # flowadm add-flow -l net1 -a transport=tcp,local_ip=192.168.200.103,\
      local_port=80,remote_ip=192.168.200.110 httpflow
    • sshflow-包含传入和传出 net1 的所有 SSH 通信。

      # flowadm add-flow -l net1 -a transport=tcp,local_ip=192.168.200.103,\
      local_port=22 sshflow
  3. 在流上实现资源控制。

    • 对于 httpflow,请将最大带宽设置为 500M

      # flowadm set-flowprop -p maxbw=500M httpflow
    • 对于 sshflow,请将优先级设置为 high

      # flowadm set-flowprop -p priority=high sshflow
  4. 验证有关所创建流的信息。

    # flowadm
    FLOW        LINK     PROTO LADDR             LPORT  RADDR             RPORT DSFLD
    httpflow    net1     tcp   192.168.200.103   80     192.168.200.110   --    --
    sshflow     net1     tcp   192.168.200.103   22     --                --    --
    
    # flowadm show-flowprop
    FLOW         PROPERTY        PERM    VALUE        DEFAULT        POSSIBLE
    httpflow     maxbw           rw      500          --             -- 
    httpflow     priority        rw      medium       medium         low,medium,high 
    httpflow     hwflow          r-      off          --             on,off 
    sshflow      maxbw           rw      --           --             -- 
    sshflow      priority        rw      high         medium         low,medium,high 
    sshflow      hwflow          r-      off          --             on,off

    有关输出的更多信息,请参见 flowadm(1M) 手册页。

  5. Host2 上,为每个区域在 net0 上配置 VNIC。

    # dladm create-vnic -l net0 vnic0
    # dladm create-vnic -l net0 vnic1
    # dladm create-vnic -l net0 vnic2
  6. 在每个 VNIC 上实现资源控制。

    # dladm set-linkprop -p rxrings=4,txrings=4 vnic0
    # dladm set-linkprop -p rxrings=2,txrings=2 vnic1
    # dladm set-linkprop -p rxrings=1,txrings=1 vnic2
    
  7. 将 VNIC 指定给其各自的区域。

    # zonecfg -z zone1
    # zonecfg:zone1> add net
    # zonecfg:zone1:net> set physical=vnic0
    # zonecfg:zone1:net> end
    # zonecfg:zone1> commit
    # zonecfg:zone1> exit
    # zoneadm -z zone1 reboot
    
    # zonecfg -z zone2
    # zonecfg:zone2> add net
    # zonecfg:zone2:net> set physical=vnic1
    # zonecfg:zone2:net> end
    # zonecfg:zone2> commit
    # zonecfg:zone2> exit
    # zoneadm -z zone2 reboot
    
    # zonecfg -z zone3
    # zonecfg:zone3> add net
    # zonecfg:zone3:net> set physical=vnic2
    # zonecfg:zone3:net> end
    # zonecfg:zone3> commit
    # zonecfg:zone3> exit
    # zoneadm -z zone3 reboot
  8. 创建一个与主接口 net0 共享环的基于软件的客户机。

    # dladm create-vnic -p rxrings=sw,txrings=sw -l net0 vnic3
  9. 假设将 pool1Host2 中的一组 CPU)指定给了 zone1。指定同一个 CPU 池 pool1 还用来管理 zone1 的网络进程。

    # dladm set-linkprop -p pool=pool1 vnic0