下面的使用案例基于您通过设置数据链路和流属性来提高系统效率的方案。此使用案例基于下图中显示的配置。
图 7-3 用于管理数据链路和流上的资源的系统配置
此图显示了以下两个相互连接的物理主机:
Host1 具有以下配置:
一个充当服务器和路由器的非全局区域。为该区域指定了两个接口:net0 接口连接到 Internet,net1 接口连接到包括 Host2 在内的内部网络。
在 net1 上配置了流以隔离通信并对属于这些流的包如何使用资源实施控制。有关配置流的信息,请参见使用流管理网络资源。
Host2 具有以下配置:
三个非全局区域及其各自的 VNIC。这些 VNIC 是在 net0 上配置的,其 NIC 卡支持环分配。有关环分配的更多信息,请参见管理 NIC 环。
每个区域的网络处理负载是不同的。在此示例中,zone1 充当 HTTP 客户机。其余区域(zone2 和 zone3)充当尝试通过安全 shell (SSH) 协议访问 Host1 的 SSH 客户机。zone1 的网络通信高于 zone2 和 zone3 并且对时间不敏感。而 zone2 和 zone3 的网络通信级别低且对时间敏感。因此,要加快处理 zone2 和 zone3 的网络通信,您需要限制分配给 zone1 的网络通信的带宽。如果为 zone1 分配的带宽不受限制,则它将使用所有可用带宽。这将导致拒绝为 zone2 和 zone3 这两个其余区域分配带宽。
将一个单独的 VNIC 配置为基于软件的客户机。有关 MAC 客户机的概述,请参见在 MAC 客户机中分配环。
此使用案例中的任务涉及以下操作:
创建流和配置流控制-在 net1 上创建流,以便对属于由 Host1 的 net1 接收的流的包实施单独的资源控制。
为 Host2 上的 VNIC 配置网络资源属性-根据处理负载,为每个区域的 VNIC 配置一组专用环。还要配置一个单独的没有专用环的 VNIC 作为基于软件的客户机的示例。
# 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
在 Host1 的 net1 上创建以下流:
在流上实现资源控制。
# 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) 手册页。
在 Host2 上,为每个区域在 net0 上配置 VNIC。
# dladm create-vnic -l net0 vnic0 # dladm create-vnic -l net0 vnic1 # dladm create-vnic -l net0 vnic2
在每个 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
# 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
创建一个与主接口 net0 共享环的基于软件的客户机。
# dladm create-vnic -p rxrings=sw,txrings=sw -l net0 vnic3
假设将 pool1(Host2 中的一组 CPU)指定给了 zone1。指定同一个 CPU 池 pool1 还用来管理 zone1 的网络进程。
# dladm set-linkprop -p pool=pool1 vnic0