次のユースケースは、データリンクとフローの両方のプロパティーを設定することによってシステムの効率を向上させるシナリオに基づいています。このユースケースは、次の図に示す構成に基づいています。
図 7-3 データリンクとフローのリソースを管理するためのシステム構成
この図は、互いに接続された次の 2 つの物理ホストを示しています。
Host1 の構成は次のとおりです。
サーバーおよびルーターとして機能する 1 つの非大域ゾーン。ゾーンに 2 つのインタフェースが割り当てられていて、net0 インタフェースはインターネットに接続し、net1 インタフェースは Host2 を含む内部ネットワークに接続します。
フローを net1 上に構成して、トラフィックを切り離し、フローに属するパケットがリソースをどのように使用するかの制御を実装します。フローの構成の詳細は、フローを使用することによるネットワークリソースの管理を参照してください。
Host2 の構成は次のとおりです。
3 つの非大域ゾーンと、それぞれ対応する VNIC。これらの VNIC は、NIC カードがリング割り当てをサポートする net0 上に構成されています。リング割り当てについての詳細は、NIC リングの管理を参照してください。
各ゾーンのネットワーク処理の負荷は異なります。この例では、zone1 が、HTTP クライアントとして機能します。残りのゾーン、zone2 と zone3 は、Secure 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 も構成されます。
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
Host1 の net1 上に次のフローを作成します。
httpflow – zone1 と net1 の間のすべての 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
フロー上にリソース制御を実装します。
# 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
Host2 の CPU のセットである pool1 は、zone1 に割り当てられていると仮定します。zone1 のネットワークプロセスも管理するために、CPU の同じ pool1 を割り当てます。
# dladm set-linkprop -p pool=pool1 vnic0