ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 での仮想ネットワークの使用 Oracle Solaris 11.1 Information Library (日本語) |
1. Oracle Solaris でのネットワーク仮想化およびリソース管理
2. Oracle Solaris での仮想ネットワークの作成および管理
3. Oracle Solaris でのネットワークリソースの管理
pool リンクプロパティーを使用すると、ネットワーク処理を CPU のプールにバインドできます。このプロパティーを使用すると、ネットワークリソースの管理を、ゾーン内の CPU バインディングや管理により適切に統合できます。Oracle Solaris でのゾーン管理には、zonecfg または poolcfg コマンドを使用して、ネットワーク以外のプロセスを CPU リソースのプールにバインドする処理が含まれます。その同じリソースのプールをネットワークプロセスも管理するように専用に割り当てるには、dladm set-linkprop コマンドを使用してリンクの pool プロパティーを構成します。次に、ゾーンにそのリンクを割り当てます。
リンクの pool プロパティーを設定し、そのリンクをゾーンのネットワークインタフェースとして割り当てることによって、そのリンクがゾーンのプールにもバインドされます。そのゾーンが排他的ゾーンになるように設定されると、プール内の CPU リソースは、そのゾーンに割り当てられていないほかのデータリンクから使用できなくります。
注 - 別のプロパティー cpu を設定すると、データリンクに特定の CPU を割り当てることができます。この 2 つのプロパティー cpu と pool は相互に排他的です。特定のデータリンク用に両方のプロパティーを設定することはできません。cpu プロパティーを使用してデータリンクに CPU リソースを割り当てるには、「リンクに CPU を割り当てる方法」を参照してください。
ゾーン内のプールについての詳細は、『Oracle Solaris 11.1 の管理: Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理』の第 13 章「リソースプールの作成と管理 (タスク)」を参照してください。プールの作成および CPU セットのプールへの割り当てについての詳細は、poolcfg(1M) のマニュアルページを参照してください。
次の図は、データリンクに pool プロパティーが割り当てられたときのプールの動作を示しています。
図 3-1 ゾーンに割り当てられた VNIC の pool プロパティー
この図では、システムに 8 つの CPU が割り当てられています。システム上にプールが構成されていない場合は、すべての CPU がデフォルトプールに属し、大域ゾーンで使用されます。ただし、この例では、CPU 3 と CPU 4 で構成された pool99 プールが作成されています。このプールは、排他的ゾーンである zone1 に関連付けられています。pool99 が vnic1 のプロパティーとして設定された場合、pool99 は vnic1 のネットワークプロセスの管理にも専用に使用されます。vnic1 が zone1 のネットワークインタフェースとして割り当てられたあと、pool99 内の CPU は、zone1 のネットワークプロセスとネットワーク以外のプロセスの両方を管理するために予約されます。
pool プロパティーは本質的に動的です。ゾーンのプールには一連の CPU を構成することができ、そのプールの CPU セットにどの CPU が割り当てられるかはカーネルによって決定されます。プールに対する変更はデータリンク用に自動的に実装されるため、そのリンク用のプールの管理が単純化されます。これに対して、cpu プロパティーを使用してリンクに特定の CPU を割り当てるには、割り当てられる CPU を指定する必要があります。プールの CPU コンポーネントを変更しようとするたびに cpu プロパティーを設定する必要があります。
たとえば、図 3-1 のシステム CPU 4 がオフラインになったとします。pool プロパティーは動的であるため、ソフトウェアによって追加の CPU がプールに自動的に関連付けられます。そのため、2 CPU というプールの元の構成が保持されます。vnic1 にとって、この変更は透過的です。調整された構成を次の図に示します。
図 3-2 pool プロパティーの自動再構成
プール関連の追加のプロパティーによって、CPU または CPU のプールのデータリンクの使用に関する情報が表示されます。これらのプロパティーは読み取り専用であり、管理者が設定することはできません。
pool-effective は、ネットワークプロセスに使用されているプールを表示します。
cpus-effective は、ネットワークプロセスに使用されている CPU の一覧を表示します。
ゾーンの CPU リソースを管理するために、初期手順として、データリンクの pool プロパティーが設定されることは通常ありません。より一般的な方法として、リソースのプールを使用するようにゾーンを構成するために zonecfg や poolcfg などのコマンドが使用されます。cpu や pool のリンクプロパティー自体が設定されることはありません。その場合、これらのデータリンクの pool-effective および cpus-effective プロパティーは、ゾーンがブートされたときのゾーン構成に従って自動的に設定されます。pool-effective ではデフォルトプールが表示され、cpus-effective の値はシステムによって選択されます。そのため、dladm show-linkprop コマンドを使用した場合、pool および cpu プロパティーは空になりますが、pool-effective および cpus-effective プロパティーには値が含まれます。
データリンクの pool および cpu プロパティーの直接の設定は、ゾーンの CPU プールをネットワークプロセス用にバインドするために使用できる代替手順です。これらのプロパティーを構成すると、それらの値が pool-effective および cpus-effective プロパティーにも反映されます。ただし、この代替手順を使用してゾーンのネットワークリソースを管理することは通常あまり行われません。
ほかのリンクプロパティーと同様に、pool プロパティーも、そのリンクが作成された時点か、またはあとでそのリンクをさらに構成する必要が発生したときにデータリンクに対して設定できます。
VNIC を作成するときに pool プロパティーを設定するには、次の構文を使用します。
# dladm create-vnic -p pool=pool-name -l link vnic
既存の VNIC の pool プロパティーを設定するには、次の構文を使用します。
# dladm setlinkprop -p pool=pool-name vnic
次の手順は、CPU プールを VNIC 用に構成する方法を説明しています。
始める前に
次の作業を完了している必要があります。
割り当てられた数の CPU を含むプロセッサセットを作成します。
そのプロセッサセットを関連付けるプールを作成します。
そのプールをプロセッサセットに関連付けます。
注 - これらの前提条件を完了するための手順については、『Oracle Solaris 11.1 の管理: Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理』の「構成の変更方法」を参照してください。
VNIC がまだ作成されていない場合は、次の構文を使用します。
# dladm create-vnic -l link -p pool=pool vnic
ここで、pool は、ゾーン用に作成されたプールの名前を示します。
VNIC が存在する場合は、次の構文を使用します。
# dladm setlinkprop -p pool=pool vnic
zonecfg>zoneid:net> set physical=vnic
注 - ゾーンにネットワークインタフェースを割り当てる方法を説明した手順については、『Oracle Solaris 11.1 の管理: Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理』の「ゾーンを構成、検証、および確定する」を参照してください。
例 3-6 リンクの CPU プールを排他的な IP タイプを持つゾーンに割り当てる
この例は、プールをゾーンのデータリンクに割り当てる方法を示しています。このシナリオは、図 3-1 の構成に基づいています。この例では、pool99 という名前の CPU のプールが、すでにゾーン用に構成されていることを前提にしています。このプールが次に、VNIC に割り当てられます。最後に、非大域ゾーン zone1 が、この VNIC をネットワークインタフェースとして使用するように設定されます。
# dladm create-vnic -l net1 -p pool99 vnic1 # zonecfg -c zone1 zonecfg:zone1> set ip-type=exclusive zonecfg:zone1> add net zonecfg:zone1>net> set physical=vnic1 zonecfg:zone1>net> end zonecfg:zone1> exit
次の手順は、cpu プロパティーを構成することによって、データリンクをたどっているトラフィックの処理に特定の CPU を割り当てる方法を説明しています。
# dladm show-linkprop -p cpus link
デフォルトでは、特定のどのインタフェースにも CPU は割り当てられていません。そのため、コマンド出力にあるパラメータ VALUE にはどのエントリも含まれません。
# echo ::interrupts | mdb -k
この出力には、システム上のリンクごとのパラメータ (CPU 番号を含む) が一覧表示されます。
この CPU には、そのリンクの割り込みが関連付けられている CPU を含めることができます。
# dladm set-linkprop -p cpus=cpu1,cpu2,... link
ここで、cpu1 は、そのリンクに割り当てる CPU 番号です。そのリンク専用に複数の CPU を割り当てることができます。
# echo ::interrupts | mdb -k
# dladm show-linkprop -p cpus link
例 3-7 リンクへの CPU の割り当て
この例は、データリンク net0 に特定の CPU を専用に割り当てる方法を示しています。
さまざまなコマンドで生成される出力にある次の情報に注目してください。わかりやすくするために、出力にある重要な情報が強調されています。
デフォルトでは、net0 に専用の CPU は割り当てられていません。そのため、VALUE は -- です。
CPU が割り当てられたあと、net0 の VALUE には新しい CPU の一覧が表示されます。
# dladm show-linkprop -p cpus net0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE net0 cpus rw -- -- -- # echo ::interrupts | mdb -k Device Shared Type MSG # State INO Mondo Pil CPU net#0 no MSI 2 enbl 0x1a 0x1a 6 18 # dladm set-linkprop -p cpus=14,18,19,20 net0 # dladm show-linkprop -p cpus net0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE net0 cpus rw 14,18,19,20 -- --
割り込みを含め、サポートしているスレッドはすべて、新しく割り当てられた一連の CPU に限定されるようになりました。
参照
仮想ネットワーク内のネットワークトラフィックを処理するためにフローを使用する方法や、システムリソース (CPU および CPU プールを含む) を割り当てる方法を示す例については、例 3-8 を参照してください。