JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 管理: ネットワークインタフェースとネットワーク仮想化     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  ネットワークスタックの概要

この Oracle Solaris リリースでのネットワーク構成

Oracle Solaris のネットワークスタック

ネットワークデバイスとデータリンク名

その他のリンクタイプの管理

パート I Network Auto-Magic

2.  NWAM の紹介

3.  NWAM 構成と管理 (概要)

4.  NWAM プロファイルの構成 (タスク)

5.  NWAM プロファイルの管理 (タスク)

6.  NWAM グラフィカルユーザーインタフェースについて

パート II データリンクとインタフェース構成

7.  プロファイルでのデータリンクおよびインタフェース構成コマンドの使用

8.  データリンクの構成と管理

9.  IP インタフェースの構成

10.  Oracle Solaris 上での無線インタフェース通信の構成

11.  ブリッジを管理する

12.  リンク集約の管理

13.  VLAN の管理

14.  IPMP の紹介

15.  IPMP の管理

16.  LLDP によるネットワーク接続情報の交換

パート III ネットワーク仮想化およびリソース管理

17.  ネットワーク仮想化およびリソース制御の紹介 (概要)

18.  ネットワーク仮想化およびリソース制御の計画

19.  仮想ネットワークの構成 (タスク)

20.  仮想化環境でのリンク保護の使用

21.  ネットワークリソースの管理

ネットワークリソースの管理の概要

リソース制御のためのデータリンクプロパティー

フローを使用することによるネットワークリソースの管理

ネットワークリソースの管理のためのコマンド

ネットワークリソースの管理 (タスクマップ)

データリンク上のリソースの管理

送信リングと受信リング

MAC クライアントとリング割り当て

リング割り当てのためのプロパティー

ハードウェアベースのクライアントを構成するための準備

ハードウェアベースのクライアントを構成する方法

ソフトウェアベースのクライアントを作成する方法

静的なリング割り当てにおけるリングの割り当てを識別する方法

プールと CPU

CPU プールをデータリンク用に構成する方法

リンクに CPU を割り当てる方法

フロー上のリソースの管理

ネットワーク上のフローの構成

フローを構成する方法

22.  ネットワークトラフィックとリソース使用状況の監視

用語集

索引

データリンク上のリソースの管理

この節では、物理ネットワークまたは仮想ネットワークのどちらかのネットワークパフォーマンスを向上させるために設定できる、選択されたリンクプロパティーについて説明します。

送信リングと受信リング

NIC 上にある受信 (Rx) リングと送信 (Tx) リングはそれぞれ、システムがネットワークパケットの受信と送信を行うために使用するハードウェアリソースです。以降の節では、リングの概要について説明したあと、ネットワークプロセスにリングを割り当てるために使用される手順を示します。また、リングを割り当てるためのコマンドを発行したときのメカニズム動作を示す例も提供されます。

MAC クライアントとリング割り当て

VNIC やその他のデータリンクなどの MAC クライアントは、システムとほかのネットワークノードの間の通信を可能にするために NIC 上に構成されます。各クライアントは構成されたあと、Rx リングと Tx リングの両方を使用して、それぞれネットワークパケットを受信または送信します。MAC クライアントは、ハードウェアベースまたはソフトウェアベースのどちらかです。ハードウェアベースのクライアントは、次の条件のいずれかを満たします。

これらの条件のいずれも満たさないクライアントは、ソフトウェアベースの MAC クライアントと呼ばれます。

NIC によっては、ハードウェアベースのクライアントにリングを排他的使用のために割り当てることができます。nxge などの NIC は、動的なリング割り当てをサポートしています。このような NIC では、ハードウェアベースのクライアントを構成できるだけではありません。リングが割り当てに使用できる状態のままにあると仮定すると、このようなクライアントに割り当てるリングの数を決定できる柔軟性もあります。リングの使用は常に、主インタフェース (たとえば、nxge0) のために最適化されます。主インタフェースは、主クライアントとも呼ばれます。ほかのクライアントによって排他的使用のために割り当てられていない使用可能なリングはすべて、主インタフェースに自動的に割り当てられます。

ixge などのほかの NIC は、静的なリング割り当てのみをサポートしています。これらの NIC では、ハードウェアベースのクライアントだけを作成できます。各クライアントには、クライアントごとに固定されたリングのセットが自動的に構成されます。この固定されたセットは、NIC ドライバの初期構成中に決定されます。静的なリング割り当てのためのドライバの初期構成についての詳細は、『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』を参照してください。

VLAN でのリング割り当て

VLAN でのリングの割り当て処理は、その VLAN が作成された方法によって異なります。VLAN は、次の 2 つの方法のどちらかで作成されます。

dladm create-vlan サブコマンドで作成された VLAN は、ベースとなるインタフェースと同じ MAC アドレスを共有します。その結果、その VLAN は、ベースとなるインタフェースの Rx リングと Tx リングも共有します。dladm create-vnic コマンドを使用して VNIC として作成された VLAN には、ベースとなるインタフェースとは異なる MAC アドレスが割り当てられます。このような VLAN へのリングの割り当ては、ベースとなるリンクへの割り当てとは独立して行われます。そのため、NIC がハードウェアベースのクライアントをサポートしていると仮定すると、その VLAN には独自の専用リングを割り当てることができます。

リング割り当てのためのプロパティー

リングを管理するために、dladm コマンドを使用して、次の 2 つのリングプロパティーを設定できます。

各プロパティーを次の 3 つの指定可能な値のいずれかに設定できます。

現在のリングの割り当てと使用に関する情報を表示するために、次の追加の読み取り専用のリングプロパティーが使用できます。

ハードウェアベースのクライアントを構成するための準備

ハードウェアベースのクライアントを構成する前に、システム上の NIC のリング割り当て機能について知っている必要があります。これらの必要な情報を取得するには、次のコマンドを使用します。

# dladm show-linkprop link

ここで、link は特定の NIC のデータリンクを示します。

特定のプロパティーを表示するには、次のコマンドを使用します。

# dladm show-linkprop -p property[,property,...] link

ハードウェアベースのクライアントを正しく構成するには、次のことを特定する必要があります。

NIC がリング割り当てをサポートしており、さらにリングとハードウェアベースのクライアントが使用可能な場合は、「ハードウェアベースのクライアントを構成する方法」の説明に従って、システム上にこのタイプのクライアントを構成できます。あるいは、代わりに 「ソフトウェアベースのクライアントを作成する方法」の説明に従って、ソフトウェアベースのクライアントを構成できます。

次の例は、nxge NIC、ixgbe NIC、および e1000g NIC のリング関連のリンクプロパティーに対して表示されるさまざまな情報を示しています。

例 21-1 nxge NIC のリング情報

次の例は、nxge NIC のリング情報を示しています。

# dladm show-linkprop nxge0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
nxge0   rxrings             rw    --     --       sw,<1-7>
...
nxge0   txrings             rw    --     --       sw,<1-7>
...
nxge0   rxrings-available   r-    5      --       --
nxge0   txrings-available   r-    5      --       --
nxge0   rxhwclnt-available  r-    2      --       --
nxge0   txhwclnt-available  r-    2      --       --
...

POSSIBLE フィールドには、rxrings および txrings プロパティーの受け入れ可能な値として sw<1-7> が表示されます。これらの値は、nxge がソフトウェアベースのクライアントだけでなく、ハードウェアベースのクライアントをサポートしていることを示します。<1-7> の範囲は、設定する Rx リングまたは Tx リングの数が指定された範囲内になければならないことを示しています。また、NIC が受信側と送信側の両方で動的なリング割り当てをサポートしている範囲から推定することもできます。

さらに、*rings-available プロパティーは、ハードウェアベースのクライアントに割り当てるために 5 つの Rx リングと 5 つの Tx リングが使用可能なことを示しています。

ただし、*clnt-available プロパティーに基づいて、使用可能な Rx リングを排他的に使用できるクライアントは 2 つしか構成できません。同様に、使用可能な Tx リングを排他的に使用できるクライアントは 2 つしか構成できません。

例 21-2 ixgbe NIC のリング情報

次の例は、ixgbe NIC のリング情報を示しています。

# dladm show-linkprop ixgbe0
LINK     PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0   rxrings             rw     --    --       sw,hw
...
ixgbe0   txrings             rw     --    --       sw,hw,<1-7>
...
ixgbe0   rxrings-available   r-     0     --       --
ixgbe0   txrings-available   r-     5     --       --
ixgbe0   rxhwclnt-available  r-     0     --       --
ixgbe0   txhwclnt-available  r-     7     --       --
...

rxrings プロパティーと txrings プロパティーの両方の POSSIBLE フィールドは、ixgbe0 上にハードウェアベースのクライアントとソフトウェアベースのクライアントの両方を構成できることを示しています。Rx リングでは、静的なリング割り当てのみがサポートされています。つまり、ハードウェアがハードウェアベースの各クライアントに、固定された Rx リングのセットを割り当てます。ただし、Tx リングは動的に割り当てることができます。つまり、ハードウェアベースのクライアントに割り当てる Tx リングの数 (この例では、最大 7 リング) を決定できます。

さらに、*rings-available プロパティーは、ハードウェアベースのクライアントに割り当てるために 5 つの Tx リングが使用可能であるが、割り当て可能な Rx リングはないことを示しています。

最後に、*hwclnt-available プロパティーに基づいて、ハードウェアベースの 7 つの Tx クライアントを Tx リングを排他的に使用するように構成できます。ただし、ixgbe カードでは、動的な Rx リング割り当てはサポートされていません。そのため、専用の Rx リングの指定されたセットを備えたハードウェアベースのクライアントを作成することはできません。

どちらかの *rings-available プロパティーの VALUE フィールドにあるゼロ (0) は、次のどちらかを示すことがあります。

rxrings および txringsPOSSIBLE フィールドと、rxrings-available および txrings-availableVALUE フィールドを比較することによって、この 0 の意味を確認できます。

たとえば、次のように txrings-available0 であるとします。

# dladm show-linkprop ixgbe0
LINK     PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0   rxrings             rw    --     --       sw,hw
ixgbe0   txrings             rw    --     --       sw,hw,<1-7>
ixgbe0   rxrings-available   r-    0      --       --
ixgbe0   txrings-available   r-    0      --       --
...

この出力では、rxrings-availableVALUE フィールドが 0 であるのに対して、rxringsPOSSIBLE フィールドは sw,hw です。これらの情報を組み合わせると、使用可能な Rx リングがないのは NIC が動的なリング割り当てをサポートしていないためであることがわかります。送信側では、txrings-availableVALUE フィールドが 0 であるのに対して、txringsPOSSIBLE フィールドは sw,hw,<1-7> です。これらの情報を組み合わせると、使用可能な Tx リングがないのはすべての Tx リングがすでに割り当てられているためであることがわかります。ただし、txringsPOSSIBLE フィールドが示しているように、動的なリング割り当てはサポートされています。そのため、Tx リングが使用可能になったら、これらのリングを割り当てることができます。

例 21-3 e1000g NIC のリング情報

次の例は、e1000g NIC のリング情報を示しています。

# dladm show-linkprop e1000g0
LINK     PROPERTY             PERM  VALUE  DEFAULT  POSSIBLE
...
e1000g0   rxrings             rw     --      --     --
...
e1000g0   txrings             rw     --      --     --
...
e1000g0   rxrings-available   r-     0       --     --
e1000g0   txrings-available   r-     0       --     --
e1000g0   rxhwclnt-available  r-     0       --     --
e1000g0   txhwclnt-available  r-     0       --     --
...

この出力は、e1000g NIC ではリング割り当てがサポートされていないため、リングもハードウェアベースのクライアントも構成できないことを示します。

ハードウェアベースのクライアントを構成する方法

この手順は、動的なリング割り当てをサポートする NIC、または静的なリング割り当てをサポートする NIC 上でハードウェアベースのクライアントを構成する方法を示しています。

始める前に

システム上の NIC に関する次の情報を取得していることを確認してください。

これらの情報を取得するには、「ハードウェアベースのクライアントを構成するための準備」を参照してください。

  1. NIC がサポートしているリング割り当てのタイプに応じて、次の手順のいずれかを実行します。
    • NIC が動的なリング割り当てをサポートしている場合は、次の構文を使用します。

      # dladm create-vnic -p rxrings=number[,txrings=number] -l link vnic
      number

      クライアントに割り当てる Rx リングと Tx リングの数を示します。この数は、割り当てに使用可能なリングの数の範囲内になければなりません。


      注 - NIC によっては、Rx リングまたは Tx リングのどちらかで動的な割り当てをサポートしているが、両方のタイプではサポートしていないものがあります。number は、動的なリング割り当てがサポートされているリングのタイプに対して指定してください。


      link

      クライアントの作成に使用しているデータリンクを示します。

      vnic

      構成しているクライアントを示します。

    • NIC が静的なリング割り当てをサポートしている場合は、次の構文を使用します。

      # dladm create-vnic -p rxrings=hw[,txrings=hw] -l link vnic

      注 - NIC によっては、Rx リングまたは Tx リングのどちらかで静的な割り当てをサポートしているが、両方のタイプではサポートしていないものがあります。hw は、静的なリング割り当てがサポートされているリングのタイプに対して指定してください。


  2. (省略可能) 新しく作成されたクライアントのリング情報を確認します。
    # dladm show-linkprop vnic

ソフトウェアベースのクライアントを作成する方法

ソフトウェアベースのクライアントは、リングを排他的に使用できません。代わりに、このクライアントは、主クライアントまたはインタフェースでのリングの使用を、ほかの既存のソフトウェアベースのクライアントと共有します。ソフトウェアベースのクライアントのリング数は、既存のハードウェアベースのクライアントの数によって異なります。

例 21-4 ハードウェアベースのクライアントとソフトウェアベースのクライアントの構成

この例は、ixgbe NIC を備えたシステム上に、ハードウェアベースのクライアントとソフトウェアベースのクライアントの両方を構成する方法を示しています。リング割り当ての実装方法を示すために、この例はいくつかの部分に分けられています。構成プロセスの各手順で、リング関連の情報が表示され、説明されます。この構成は、次のように進められます。

  1. クライアントの構成の前に、システム上のリンクとリング使用状況を表示します。

  2. 主クライアントを構成します。

  3. ソフトウェアベースのクライアントを構成します。

  4. 専用リングの割り当てなしで別のクライアントを構成します。

  5. 新しく構成されたクライアントにリングを静的に割り当てます。

  6. 動的に割り当てられる専用リングを備えた 3 番目のクライアントを構成します。

最初に、リンク、リング使用状況、およびリング関連のプロパティーを表示します。

# dladm show-link
LINK     CLASS   MTU    STATE   BRIDGE   OVER
ixgbe0   phys    1500   down    --       --

# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS   CLIENTS
ixgbe0   RX         0-1     <default,mcast>
ixgbe0   TX         0-7     <default>
ixgbe0   RX         2-3     --
ixgbe0   RX         4-5     --
ixgbe0   RX         6-7     --

# dladm show-linkprop ixgbe0
LINK    PROPERTY              PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0   rxrings              rw    --     --       sw,hw
ixgbe0   rxrings-effective    r     --     --       --
ixgbe0   txrings              rw    --     --       sw,hw,<1-7>
ixgbe0   txrings-effective    r     --     --       --
ixgbe0   txrings-available    r-    7      --       --
ixgbe0   rxrings-available    r-    0      --       --
ixgbe0   rxhwclnt-available   r-    3      --       --
ixgbe0   txhwclnt-available   r-    7      --       --
...

このコマンド出力はシステム上の 1 つのリンク ixgbe0 を示していますが、既存のクライアントは存在しません。さらに、この出力からは次の情報も収集されます。

*rings-effective プロパティーについては、「静的なリング割り当てにおけるリングの割り当てを識別する方法」を参照してください。

次に、主クライアントを構成します。

# ipadm create-ip ixgbe0
# ipadm create-addr -T static -a 192.168.10.10/24 ixgbe0/v4
# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS   CLIENTS
ixgbe0   RX         0-1     <default,mcast>
ixgbe0   TX         0-7     <default>ixgbe0
ixgbe0   RX         2-3     ixgbe0
ixgbe0   RX         4-5     --
ixgbe0   RX         6-7     --

# dladm show-linkprop ixgbe0
LINK    PROPERTY              PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0   rxrings              rw    --     --       sw,hw
ixgbe0   rxrings-effective    r     2      --       --
ixgbe0   txrings              rw    --     --       sw,hw,<1-7>
ixgbe0   txrings-effective    r     8      --       --
ixgbe0   txrings-available    r-    7      --       --
ixgbe0   rxrings-available    r-    0      --       --
ixgbe0   rxhwclnt-available   r-    3      --       --
ixgbe0   txhwclnt-available   r-    7      --       --
...

この出力では、次の情報が提供されます。

次に、ソフトウェアベースのクライアントとして VNIC を作成します。

# dladm create-vnic -l ixgbe0 -p rxrings=sw,txrings=sw vnic0
# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS   CLIENTS
ixgbe0   RX         0-1     <default,mcast>,vnic0
ixgbe0   TX         0-7     <default>vnic0,ixgbe0
ixgbe0   RX         2-3     ixgbe0
ixgbe0   RX         4-5     --
ixgbe0   RX         6-7     --

# dladm show-linkprop vnic0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
vnic0   rxrings             rw    sw     --      sw,hw
...
vnic0   txrings             rw    sw     --      sw,hw,<1-7>
...
# dladm show-linkprop ixgbe0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0   rxrings             rw    --     --      --
ixgbe0   rxrings-effective   r     2      --      --
ixgbe0   txrings             rw    --     --       sw,hw,<1-7>
ixgbe0   txrings-effective   r     --     --       --
ixgbe0   txrings-available   r-    7      --       --
ixgbe0   rxrings-available   r-    0      --       --
ixgbe0   rxhwclnt-available  r-    3      --       --
ixgbe0   txhwclnt-available  r-    7      --       --
...

この出力では、次の情報が提供されます。

次に、リング割り当てなしで別のクライアントを構成します。

# dladm create-vnic -l ixgbe0 vnic1
# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS     CLIENTS
ixgbe0   RX         0-1       <default,mcast>,vnic0
ixgbe0   TX         0,2-7     <default>vnic0,ixgbe0
ixgbe0   RX         2-3       ixgbe0 
ixgbe0   RX         4-5       vnic1 
ixgbe0   RX         6-7       --
ixgbe0   TX         1         vnic1

# dladm show-linkprop vnic1
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
vnic1   rxrings             rw    --     --       sw,hw 
vnic1   rxrings-effective   r-    2      --       -- 
vnic1   txrings             rw    --     --       sw,hw,<1-7> 
vnic1   txrings-effective   r-    --     --       --
...

# dladm show-linkprop ixgbe0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0  rxrings             rw    --     --       sw,hw 
ixgbe0  rxrings-effective   r-    2      --       -- 
ixgbe0  txrings             rw    --     --       sw,hw,<1-7>
ixgbe0  txrings-effective   r-    --     --       -- 
ixgbe0  txrings-available   r-    7      --       -- 
ixgbe0  rxrings-available   r-    0      --       -- 
ixgbe0  rxhwclnt-available  r-    3      --       -- 
ixgbe0  txhwclnt-available  r-    7      --       -- 
...

この出力では、次の情報が提供されます。

次に、新しく構成されたクライアント vnic1 にリングを静的に割り当てます。

# dladm set-linkprop -p rxrings=hw,txrings=hw vnic1
# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS     CLIENTS
ixgbe0   RX         0-1       <default,mcast>,vnic0
ixgbe0   TX         0,2-7     <default>vnic0,ixgbe0
ixgbe0   RX         2-3       ixgbe0 
ixgbe0   RX         4-5       vnic1 
ixgbe0   RX         6-7       --
ixgbe0   TX         1         vnic1

# dladm show-linkprop vnic1
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
vnic1   rxrings             rw    hw     --       sw,hw 
vnic1   rxrings-effective   r-    2      --       -- 
vnic1   txrings             rw    hw     --       sw,hw,<1-7> 
vnic1   txrings-effective   r-    --     --       -- 
...
# dladm show-linkprop ixgbe0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0  rxrings             rw     --    --       sw,hw 
ixgbe0  rxrings-effective   r-     2     --       -- 
ixgbe0  txrings             rw     --    --       sw,hw,<1-7>
ixgbe0  txrings-effective   r-     --    --       -- 
ixgbe0  txrings-available   r-     6     --       -- 
ixgbe0  rxrings-available   r-     0     --       -- 
ixgbe0  rxhwclnt-available  r-     3     --       -- 
ixgbe0  txhwclnt-available  r-     6     --       -- 
...

この出力では、次の情報が提供されます。

次に、動的に割り当てられる Tx リングを備えたハードウェアベースのクライアントを構成します。

# dladm create-vnic -l ixgbe0 -p txrings=2 vnic2
# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS     CLIENTS
ixgbe0   RX         0-1       <default,mcast>,vnic0
ixgbe0   TX         0,4-7     <default>vnic0,ixgbe0
ixgbe0   RX         2-3       ixgbe0 
ixgbe0   RX         4-5       vnic1 
ixgbe0   RX         6-7       vnic2 
ixgbe0   TX         1         vnic1 
ixgbe0   TX         2-3       vnic2 

# dladm show-linkprop vnic2
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
vnic2   rxrings             rw    --     --       sw,hw 
vnic2   rxrings-effective   r-    2      --       -- 
vnic2   txrings             rw    2      --       sw,hw,<1-7>
vnic2   txrings-effective   r-    2      --       --
...
# dladm show-linkprop ixgbe0
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
ixgbe0  rxrings             rw    --     --       sw,hw 
ixgbe0  rxrings-effective   r-    2      --       -- 
ixgbe0  txrings             rw    --     --       sw,hw,<1-7>
ixgbe0  txrings-effective   r-    --     --       -- 
ixgbe0  txrings-available   r-    4      --       -- 
ixgbe0  rxrings-available   r-    0      --       -- 
ixgbe0  rxhwclnt-available  r-    3      --       -- 
ixgbe0  txhwclnt-available  r-    5      --       --
...

この出力では、次の情報が提供されます。

静的なリング割り当てにおけるリングの割り当てを識別する方法

静的なリング割り当てでハードウェアベースのクライアントを構成すると、割り当てられるリングの数がハードウェアによって決定されます。ただし、rxrings および txrings プロパティーは hw に設定されていて、実際に割り当てられているリングの数を示していません。代わりに、rxrings-effective および txrings-effective プロパティーを確認することによって、この数を取得できます。

  1. 次の手順のいずれかを実行することによって、静的なリング割り当てでハードウェアベースのクライアントを構成します。
    • 静的なリング割り当てでクライアントを作成するには、次のコマンドを入力します。

      # dladm create-vnic -l link -p rxrings=hw[,txrings=hw] vnic
      link

      クライアントの作成に使用しているデータリンクを示します。

      vnic

      構成しているクライアントを示します。

    • 既存のクライアントにリングを静的に割り当てるには、次のコマンドを入力します。

      # dladm set-linkprop -p rxrings=hw[,txrings=hw] vnic
  2. 割り当てられているリングの数を識別するには、次のサブステップを実行します。
    1. クライアントのプロパティーを表示します。
      # dladm show-linkprop link

      ここで、link は、ハードウェアベースのクライアントまたは VNIC を示します。

    2. 静的に割り当てたリングのタイプに対応する *rings-effective プロパティーの値を確認します。

      たとえば、Rx リングを静的に割り当てた場合は、rxrings-effective プロパティーを確認します。Tx リングを静的に割り当てた場合は、txrings-effective プロパティーを確認します。この数は、ハードウェアによって割り当てられたリングの数を示します。

  3. どのリングが静的に割り当てられているかを確認するには、次のサブステップを実行します。
    1. NIC のリング使用状況を表示します。
      # dladm show-phys -H link

      ここで、link は主クライアントを示します。

    2. コマンド出力から、最初の手順で構成したハードウェアベースのクライアントに、どの Rx リングまたは Tx リングが割り当てられているかを確認します。

例 21-5 静的に割り当てられているリングの識別

この例は、ixgbe NIC 上に構成されているクライアントに Rx リングがどのように静的に割り当てられているかを示しています。このような NIC では、Rx リングには静的な割り当てのみがサポートされています。この例は、次のように進められます。

  1. システム上のリンクを表示します。この例では、システムには 1 つのリンク (ixgbe0) しかありません。

  2. 静的に割り当てられる Rx リングを備えたハードウェアベースのクライアントとして vnic1 を作成します。

  3. リング情報を表示して、ハードウェアによって割り当てられたリングの数を確認します。

  4. リング使用状況を表示して、どのリングが割り当てられているかを識別します。

# dladm show-link
LINK     CLASS   MTU    STATE   BRIDGE   OVER
ixgbe0   phys    1500   down    --       --

# dladm create-vnic -l ixgbe0 -p rxrings=hw vnic1
# dladm show-linkprop vnic1
LINK    PROPERTY            PERM  VALUE  DEFAULT  POSSIBLE
...
vnic1   rxrings             rw    hw     --       sw,hw 
vnic1   rxrings-effective   r-    2      --       -- 
vnic1   txrings             rw    --     --       sw,hw,<1-7> 
vnic1   txrings-effective   r-    --     --       -- 

# dladm show-phys -H ixgbe0
LINK     RINGTYPE   RINGS     CLIENTS
ixgbe0   RX         0-1       <default,mcast>
ixgbe0   TX         0,2-7     <default>
ixgbe0   RX         2-3       vnic1 
ixgbe0   RX         4-5       -- 
ixgbe0   RX         6-7       --
ixgbe0   TX         1         vnic1
...

この出力は、rxrings-effective プロパティーに反映されているように、vnic1 に Rx リングが構成されたあと、ハードウェアによって 2 つの専用の Rx リングが割り当てられたことを示します。dladm show-phys -H コマンドの出力に基づくと、Rx リング 23vnic1 で専用に使用するために割り当てられました。

クライアントとして構成された結果として、vnic1 はまた、専用で使用するために Tx リング 1 も自動的に受け取りました。ただし、txrings プロパティーが明示的に設定されていないため、txrings-effective プロパティーには値が表示されていません。

プールと CPU

pool は、ネットワーク処理を CPU のプールにバインドできるようにするためのリンクプロパティーです。このプロパティーを使用すると、ネットワークリソースの管理を、ゾーン内の CPU バインディングや管理により適切に統合できます。Oracle Solaris でのゾーン管理には、zonecfg または poolcfg コマンドを使用して、ネットワーク以外のプロセスを CPU リソースのプールにバインドする処理が含まれます。その同じリソースのプールをネットワークプロセスも管理するようにバインドするには、dladm set-linkprop コマンドを使用してリンクの pool プロパティーを構成します。次に、ゾーンにそのリンクを割り当てます。

リンクの pool プロパティーを設定し、そのリンクをゾーンのネットワークインタフェースとして割り当てることによって、そのリンクがゾーンのプールにもバインドされます。そのゾーンが排他的ゾーンになるように設定されると、プール内の CPU リソースは、そのゾーンに割り当てられていないほかのデータリンクから使用できなくります。


注 - 別のプロパティー cpu を設定すると、データリンクに特定の CPU を割り当てることができます。この 2 つのプロパティー cpupool は相互に排他的です。特定のデータリンク用に両方のプロパティーを設定することはできません。cpu プロパティーを使用してデータリンクに CPU リソースを割り当てるには、「リンクに CPU を割り当てる方法」を参照してください。


ゾーン内のプールについての詳細は、『Oracle Solaris のシステム管理 (Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理)』の第 13 章「リソースプールの作成と管理 (手順)」を参照してください。プールの作成および CPU セットのプールへの割り当てについての詳細は、poolcfg(1M) のマニュアルページを参照してください。

次の図は、データリンクに pool プロパティーが割り当てられたときのプールの動作を示しています。

図 21-1 ゾーンに割り当てられた VNIC の pool プロパティー

image:ゾーンに割り当てられた CPU のプールを示す図。

この図では、システムに 8 つの CPU があります。システム上にプールが構成されていない場合は、すべての CPU がデフォルトプールに属し、大域ゾーンで使用されます。ただし、この例では、CPU 3CPU 4 で構成された pool99 プールが作成されています。このプールは、排他的ゾーンである zone1 に関連付けられています。pool99vnic1 のプロパティーとして設定された場合、pool99vnic1 のネットワークプロセスの管理にも専用に使用されます。vnic1zone1 のネットワークインタフェースとして割り当てられたあと、pool99 内の CPU は、zone1 のネットワークプロセスとネットワーク以外のプロセスの両方を管理するために予約されます。

pool プロパティーは本質的に動的です。ゾーンのプールには一連の CPU を構成することができ、そのプールの CPU セットにどの CPU が割り当てられるかはカーネルによって決定されます。プールに対する変更はデータリンク用に自動的に実装されるため、そのリンク用のプールの管理が単純化されます。これに対して、cpu プロパティーを使用してリンクに特定の CPU を割り当てるには、割り当てられる CPU を指定する必要があります。プールの CPU コンポーネントを変更しようとするたびに cpu プロパティーを設定する必要があります。

たとえば、図 21-1 のシステムで CPU 4 がオフラインになったとします。pool プロパティーは動的であるため、ソフトウェアによって追加の CPU がプールに自動的に関連付けられます。そのため、2 CPU というプールの元の構成が保持されます。vnic1 にとって、この変更は透過的です。調整された構成を次の図に示します。

図 21-2 pool プロパティーの自動再構成

image:プールの動的な構成を示す図。

プール関連の追加のプロパティーによって、CPU または CPU のプールのデータリンクの使用に関する情報が表示されます。これらのプロパティーは読み取り専用であり、管理者が設定することはできません。

ゾーンの CPU リソースを管理するために、初期手順として、データリンクの pool プロパティーが設定されることは通常ありません。より一般的な方法として、リソースのプールを使用するようにゾーンを構成するために zonecfgpoolcfg などのコマンドが使用されます。cpupool のリンクプロパティー自体が設定されることはありません。その場合は、これらのデータリンクの pool-effective および cpus-effective プロパティーが、ゾーンがブートされたときのこれらのゾーン構成に従って自動的に設定されます。pool-effective ではデフォルトプールが表示されるのに対して、cpus-effective の値はシステムによって選択されます。そのため、dladm show-linkprop コマンドを使用した場合、pool-effective および cpus-effective プロパティーには値が含まれていますが、pool および cpu プロパティーは空です。

データリンクの pool および cpu プロパティーの直接の設定は、ゾーンの CPU プールをネットワークプロセス用にバインドするために使用できる代替手順です。これらのプロパティーを構成すると、それらの値が pool-effective および cpus-effective プロパティーにも反映されます。ただし、この代替手順を使用してゾーンのネットワークリソースを管理することは通常、あまり行われません。

CPU プールをデータリンク用に構成する方法

ほかのリンクプロパティーと同様に、pool プロパティーも、そのリンクが作成された時点か、またはあとでそのリンクをさらに構成する必要が発生したときにデータリンク用に設定できます。たとえば:

# dladm create-vnic -p pool=pool-name -l link vnic

VNIC の作成中に pool プロパティーを設定します。既存の VNIC の pool プロパティーを設定するには、次の構文を使用します。

# dladm setlinkprop -p pool=pool-name vnic

CPU プールを VNIC 用に構成するための手順を次に示します。

始める前に

次の作業を完了している必要があります。

  1. リンクの pool プロパティーを、ゾーン用に作成した CPU のプールに設定します。VNIC が存在するかどうかに応じて、次の手順のいずれかを実行します。
    • VNIC がまだ作成されていない場合は、次の構文を使用します。

      # dladm create-vnic -l link -p pool=pool vnic

      ここで、pool は、ゾーン用に作成されたプールの名前を示します。

    • VNIC が存在する場合は、次の構文を使用します。

      # dladm setlinkprop -p pool=pool vnic
  2. ゾーンをその VNIC を使用するように設定します。
    zonecfg>zoneid:net> set physical=vnic

    注 - ゾーンにネットワークインタフェースを割り当てる方法を説明した完全な手順については、『Oracle Solaris のシステム管理 (Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理)』の「ゾーンを構成、検証、および確定する」を参照してください。


例 21-6 リンクの CPU プールを排他的な IP タイプを持つゾーンに割り当てる

この例は、プールをゾーンのデータリンクに割り当てる方法を示しています。このシナリオは、図 21-1 の構成に基づいています。この例では、pool99 という名前の CPU のプールが、すでにゾーン用に構成されていることを前提にしています。このプールが次に、VNIC に割り当てられます。最後に、非大域ゾーン zone1 が、この VNIC をネットワークインタフェースとして使用するように設定されます。

# dladm create-vnic -l e1000g0 -p pool99 vnic0

# zonecfg -c zone1
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> add net
zonecfg:zone1>net> set physical=vnic0
zonecfg:zone1>net> end
zonecfg:zone1> exit

リンクに CPU を割り当てる方法

次の手順は、cpu プロパティーを構成することによって、データリンクをたどっているトラフィックの処理に特定の CPU を割り当てる方法を説明しています。

  1. インタフェースの CPU 割り当てを確認します。
    # dladm show-linkprop -p cpus link

    デフォルトでは、特定のどのインタフェースにも CPU は割り当てられていません。そのため、コマンド出力にあるパラメータ VALUE にはどのエントリも含まれません。

  2. 各割り込みと、それらの割り込みが関連付けられている CPU を一覧表示します。
    # echo ::interrupts | mdb -k

    この出力には、システム内のリンクごとのパラメータ (CPU 番号を含む) が一覧表示されます。

  3. リンクに CPU を割り当てます。

    この CPU には、そのリンクの割り込みが関連付けられている CPU を含めることができます。

    # dladm set-linkprop -p cpus=cpu1,cpu2,... link

    ここで、cpu1 は、そのリンクに割り当てる CPU 番号です。そのリンク専用に複数の CPU を割り当てることができます。

  4. リンクの割り込みをチェックして、新しい CPU 割り当てを確認します。
    # echo ::interrupts | mdb -k
  5. (省略可能) リンクに関連付けられた CPU を表示します。
    # dladm show-linkprop -p cpus link

例 21-7 インタフェースへの CPU の割り当て

この例は、図 18-3internal0 インタフェース専用に特定の CPU を割り当てる方法を示しています。

さまざまなコマンドで生成される出力にある次の情報に注目してください。わかりやすくするために、出力にある重要な情報が強調されています。

# dladm show-linkprop -p cpus internal0
LINK          PROPERTY     PERM     VALUE     DEFAULT     POSSIBLE
internal0     cpus         rw       --        --          --

# echo ::interrupts | mdb -k
    Device   Shared   Type   MSG #   State   INO    Mondo   Pil   CPU
external#0   no       MSI    3       enbl    0x1b   0x1b    6     0
internal#0   no       MSI    2       enbl    0x1a   0x1a    6     18

# dladm set-linkprop -p cpus=14,18,19,20 internal0

# dladm show-linkprop -p cpus internal0
LINK        PROPERTY   PERM   VALUE        DEFAULT   POSSIBLE
internal0   cpus       rw     14,18,19,20  --        --

割り込みを含め、サポートしているスレッドはすべて、新しく割り当てられた一連の CPU に限定されるようになりました。