この章では、Logical Domains ソフトウェアで仮想ネットワークを使用する方法について説明します。この章の内容は次のとおりです。
仮想ネットワークでは、ドメインが外部の物理ネットワークを使用しないで相互に通信できます。仮想ネットワークでは、複数のドメインが同じ物理ネットワークインタフェースを使用して物理ネットワークにアクセスし、遠隔システムと通信することもできます。仮想ネットワークは、仮想ネットワークデバイスを接続できる仮想スイッチを備えることで構築します。
仮想スイッチ (vsw) とは、サービスドメインで動作し、仮想スイッチドライバによって管理されるコンポーネントのことです。仮想スイッチを複数のゲストドメインに接続すると、これらのドメイン間のネットワーク通信を可能にできます。また、仮想スイッチが物理ネットワークインタフェースにも関連付けられている場合は、物理ネットワークインタフェースを介して、ゲストドメインと物理ネットワークの間のネットワーク通信が有効になります。仮想スイッチはネットワークインタフェース vswn も備えています。このインタフェースによって、サービスドメインは、仮想スイッチに接続されたほかのドメインと通信できます。このインタフェースは通常のネットワークインタフェースと同様に使用でき、ifconfig(1M) コマンドで構成できます。
サービスドメインに仮想スイッチを追加する際、そのネットワークインタフェースは plumb されません。このため、デフォルトでは、サービスドメインは仮想スイッチに接続されたゲストドメインと通信できません。ゲストドメインとサービスドメインの間のネットワーク通信を有効にするには、関連付けられた仮想スイッチのネットワークインタフェースを plumb し、サービスドメイン内で構成する必要があります。手順については、「制御ドメインまたはサービスドメインとその他のドメイン間のネットワークの有効化」 を参照してください。
仮想ネットワーク (vnet) デバイスとは、仮想スイッチに接続されたドメイン内で定義されている仮想デバイスのことです。仮想ネットワークデバイスは、仮想ネットワークドライバによって管理され、論理ドメインチャネル (LDC) を使用するハイパーバイザを介して仮想ネットワークに接続されます。
仮想ネットワークデバイスは、vnetn という名前のネットワークインタフェースとして使用できます。このネットワークデバイスは通常のネットワークインタフェースと同様に使用でき、ifconfig(1M) コマンドで構成できます。
図 7–1 の例の説明は、次のとおりです。
サービスドメイン内の仮想スイッチは、ゲストドメインに接続されます。この接続によって、ゲストドメイン間で相互に通信することができます。
仮想スイッチは物理ネットワークインタフェース nxge0 にも接続されています。この接続によって、ゲストドメインは物理ネットワークと通信できます。
仮想スイッチネットワークインタフェース vsw0 はサービスドメイン内で plumb されているため、2 つのゲストドメインはサービスドメインと通信できます。
サービスドメイン内の仮想スイッチネットワークインタフェース vsw0 は、ifconfig(1M) コマンドを使用して構成できます。
ゲストドメイン内の仮想ネットワークインタフェース vnet0 は、ifconfig(1M) コマンドを使用して構成できます。
基本的に仮想スイッチは、通常の物理ネットワークスイッチと同様に機能し、接続されているゲストドメイン、サービスドメイン、物理ネットワークなど異なるシステム間のネットワークパケットをスイッチングします。
この節では、ドメインへの仮想スイッチの追加、仮想スイッチのオプションの設定、および仮想スイッチの削除について説明します。
仮想スイッチを追加するには、次のコマンド構文を使用します。
# ldm add-vsw [default-vlan-id=vlan-id] [pvid=[port-vlan-id]] [vid=vlan-id1,vlan-id2,...] [linkprop=phys-state] [mac-addr=num] [net-dev=device] [mode=sc] [mtu=size] [id=switch-id] vswitch-name ldom |
各表記の意味は次のとおりです。
default-vlan-id=vlan-id は、仮想スイッチとそれに関連する仮想ネットワークデバイスが暗黙的にタグなしモードで属するデフォルトの仮想ローカルエリアネットワーク (VLAN) を指定します。これは、仮想スイッチおよび仮想ネットワークデバイスのデフォルトのポート VLAN id (pvid) として機能します。このオプションを指定しない場合、このプロパティーのデフォルト値は 1 です。通常、このオプションを指定する必要はありません。このオプションは、単にデフォルト値の 1 を変更する手段として用意されています。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。
pvid=port-vlan-id には、仮想スイッチをメンバーにする必要のある VLAN をタグなしモードで指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。
vid=vlan-id は、仮想スイッチがタグ付きモードでメンバーとして属する必要のある 1 つ以上の VLAN を指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。
linkprop=phys-state では、配下の物理ネットワークデバイスに基づいて、仮想デバイスがリンクステータスをレポートするかどうかを指定できます。コマンドラインで linkprop=phys-state を指定すると、仮想デバイスのリンクステータスは物理リンクステータスを反映します。デフォルトでは、仮想デバイスのリンクステータスは物理リンクステータスを反映しません。
リンクベースの IPMP を使用するには、このオプションを指定します。「Logical Domains 仮想ネットワークでのリンクベースの IPMP の使用」 を参照してください。
mac-addr=num は、このスイッチで使用される MAC アドレスです。番号は、標準のオクテット記述法で指定する必要があります。たとえば、80:00:33:55:22:66 とします。MAC アドレスを指定しない場合、スイッチには、Logical Domains Manager に割り当てられているパブリック MAC アドレス範囲のアドレスが自動的に割り当てられます。詳細は、「自動または手動による MAC アドレスの割り当て」 を参照してください。
net-dev=device は、このスイッチが動作するネットワークデバイスへのパスです。
mode=sc を指定すると、論理ドメイン環境での Solaris Cluster のハートビートパケットの優先処理用の仮想ネットワークサポートが有効になります。Solaris Cluster などのアプリケーションでは、輻輳した仮想ネットワークおよびスイッチデバイスによって高優先度のハートビートパケットがドロップされないようにする必要があります。このオプションを使用して、Solaris Cluster のハートビートフレームが優先され、これらのフレームが信頼性の高い方法で転送されるようにします。
論理ドメイン環境で Solaris Cluster を動作させ、ゲストドメインを Solaris Cluster ノードとして使用する場合は、このオプションを設定する必要があります。ゲストドメインで Solaris Cluster ソフトウェアを実行していない場合には、仮想ネットワークのパフォーマンスに影響を与える可能性があるため、このオプションを設定しないでください。
mtu=size は、仮想スイッチデバイスの最大転送単位 (MTU) を指定します。有効な値の範囲は 1500 ~ 16000 です。
id=switch-id は、新しい仮想スイッチデバイスの ID です。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想デバイス識別子およびネットワークインタフェース名」 を参照してください。
vswitch-name は、サービスとしてエクスポートされるスイッチの一意の名前です。クライアント (ネットワーク) は、このサービスに接続できます。
ldom には、仮想スイッチを追加する論理ドメインを指定します。
すでに存在している仮想スイッチのオプションを設定するには、次のコマンド構文を使用します。
# ldm set-vsw [pvid=[port-vlan-id]] [vid=[vlan-id1,vlan-id2,...]] [mac-addr=num] [linkprop=[phys-state]] [net-dev=[device]] [mode=[sc]] [mtu=[size]] vswitch-name |
各表記の意味は次のとおりです。
mode= (空白のまま) では、Solaris Cluster のハートビートパケットの特殊処理が停止されます。
それ以外のコマンド引数は、「仮想スイッチを追加する」 で説明しているものと同じです。
仮想スイッチを削除するには、次のコマンド構文を使用します。
# ldm rm-vsw [-f] vswitch-name |
各表記の意味は次のとおりです。
-f は、仮想スイッチの強制削除を試行します。削除は失敗することがあります。
vswitch-name は、サービスとして削除されるスイッチの名前です。
この節では、ドメインへの仮想ネットワークデバイスの追加、既存の仮想ネットワークデバイスのオプションの設定、および仮想ネットワークデバイスの削除について説明します。
仮想ネットワークデバイスを追加するには、次のコマンド構文を使用します。
# ldm add-vnet [mac-addr=num] [mode=hybrid] [pvid=[port-vlan-id]] [linkprop=phys-state] [vid=vlan-id1,vlan-id2,...] [mtu=size] [id=network-id] if-name vswitch-name ldom |
各表記の意味は次のとおりです。
mac-addr=num は、このネットワークデバイスの MAC アドレスです。数字は、80:00:33:55:22:66 など標準の 8 ビット表記にする必要があります。詳細は、「自動または手動による MAC アドレスの割り当て」 を参照してください。
mode=hybrid は、可能な場合に、この vnet で NIU ハイブリッド I/O を使用するようにシステムに要求します。可能でない場合、システムは仮想 I/O に戻ります。このハイブリッドモードは、アクティブな vnet で設定すると、遅延再構成とみなされます。詳細は、「NIU ハイブリッド I/O の使用」 を参照してください。
pvid=port-vlan-id には、仮想ネットワークデバイスをメンバーにする必要のある VLAN をタグなしモードで指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。
linkprop=phys-state では、配下の物理ネットワークデバイスに基づいて、仮想ネットワークデバイスがリンクステータスをレポートするかどうかを指定できます。コマンドラインで linkprop=phys-state を指定すると、仮想ネットワークデバイスのリンクステータスは物理リンクステータスを反映します。デフォルトでは、仮想ネットワークデバイスのリンクステータスは物理リンクステータスを反映しません。
リンクベースの IPMP を使用するには、このオプションを指定します。「Logical Domains 仮想ネットワークでのリンクベースの IPMP の使用」 を参照してください。
vid=vlan-id は、仮想ネットワークデバイスがタグ付きモードでメンバーとして属する必要のある 1 つ以上の VLAN を指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。
mtu=size は、仮想ネットワークデバイスの最大転送単位 (MTU) を指定します。有効な値の範囲は 1500 ~ 16000 です。
id=network-id は、新しい仮想ネットワークデバイスの ID です。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想デバイス識別子およびネットワークインタフェース名」 を参照してください。
if-name (インタフェースの名前) は、後続の ldm set-vnet または ldm rm-vnet コマンドで参照するために仮想ネットワークデバイスのインスタンスに割り当てられる、論理ドメインで一意の名前です。
vswitch-name は、接続する既存のネットワークサービス (仮想スイッチ) の名前です。
ldom には、仮想ネットワークデバイスを追加する論理ドメインを指定します。
すでに存在している仮想ネットワークデバイスのオプションを設定するには、次のコマンド構文を使用します。
# ldm set-vnet [mac-addr=num] [vswitch=vswitch-name] [mode=[hybrid]] [pvid=[port-vlan-id]] [linkprop=[phys-state]] [vid=[vlan-id1,vlan-id2,...]] [mtu=[size]] if-name ldom |
各表記の意味は次のとおりです。
mode= (空白のまま) では、NIU ハイブリッド I/O が無効になります。
if-name (インタフェースの名前) は、設定する仮想ネットワークデバイスに割り当てられている一意の名前です。
ldom には、仮想ネットワークデバイスを削除する論理ドメインを指定します。
それ以外のコマンド引数は、「仮想ネットワークデバイスを追加する」 で説明しているものと同じです。
仮想ネットワークデバイスを削除するには、次のコマンド構文を使用します。
# ldm rm-vnet [-f] if-name ldom |
各表記の意味は次のとおりです。
-f は、論理ドメインからの仮想ネットワークデバイスの強制削除を試行します。削除は失敗することがあります。
if-name (インタフェースの名前) は、削除する仮想ネットワークデバイスに割り当てられている一意の名前です。
ldom には、仮想ネットワークデバイスを削除する論理ドメインを指定します。
ドメインに仮想スイッチまたは仮想ネットワークデバイスを追加する場合、id プロパティーを設定することでデバイス番号を指定できます。
# ldm add-vsw [id=switch-id] vswitch-name ldom # ldm add-vnet [id=network-id] if-name vswitch-name ldom |
ドメインの各仮想スイッチおよび仮想ネットワークデバイスには、ドメインがバインドされるときに割り当てられる一意のデバイス番号があります。id プロパティーを設定して仮想スイッチまたは仮想ネットワークデバイスを明示的なデバイス番号で追加した場合、指定したデバイス番号が使用されます。デバイス番号を指定しなかった場合、使用可能なもっとも小さいデバイス番号が自動的に割り当てられます。その場合、割り当てられるデバイス番号は、仮想スイッチまたは仮想ネットワークデバイスがシステムに追加された方法によって異なります。仮想スイッチまたは仮想ネットワークデバイスに最終的に割り当てられたデバイス番号は、ドメインがバインドされるときに ldm list-bindings コマンドの出力で確認できます。
次の例は、primary ドメインに 1 つの仮想スイッチ primary-vsw0 が構成されていることを示しています。この仮想スイッチのデバイス番号は 0 (switch@0) です。
primary# ldm list-bindings primary ... VSW NAME MAC NET-DEV DEVICE DEFAULT-VLAN-ID PVID VID MTU MODE primary-vsw0 00:14:4f:fb:54:f2 nxge0 switch@0 1 1 5,6 1500 ... |
次の例は、ldg1 ドメインには 2 つの仮想ネットワークデバイス vnet および vnet1 が構成されていることを示しています。デバイス vnet のデバイス番号は 0 (network@0) で、デバイス vnet1 のデバイス番号は 1 (network@1) です。
primary# ldm list-bindings ldg1 ... NETWORK NAME SERVICE DEVICE MAC MODE PVID VID MTU vnet primary-vsw0@primary network@0 00:14:4f:fb:e0:4b hybrid 1 1500 ... vnet1 primary-vsw0@primary network@1 00:14:4f:f8:e1:ea 1 1500 ... |
仮想スイッチが構成されたドメインで Solaris OS を実行している場合、仮想スイッチはネットワークインタフェース vswN を備えています。ただし、仮想スイッチのネットワークインタフェース番号 N は、仮想スイッチのデバイス番号 n と同じとはかぎりません。
同様に、仮想ネットワークデバイスが構成されたドメインで Solaris OS を実行している場合、仮想ネットワークデバイスはネットワークインタフェース vnetN を備えています。ただし、仮想ネットワークデバイスのネットワークインタフェース番号 N は、仮想ネットワークデバイスのデバイス番号 n と同じとはかぎりません。
Solaris OS では、ネットワークインタフェースの名前と、仮想スイッチまたは仮想ネットワークとの間のマッピングが、デバイス番号に基づいて保存されます。デバイス番号が仮想スイッチまたは仮想ネットワークデバイスに明示的に割り当てられていない場合、ドメインのバインドがいったん解除されたあとで再びバインドされると、デバイス番号が変更されることがあります。その場合、ドメインで動作している OS によって割り当てられたネットワークインタフェース名も変更され、システムの既存の構成が損なわれることがあります。これは、たとえば、仮想スイッチまたは仮想ネットワークインタフェースがドメインの構成から削除されたときに起こる場合があります。
ldm list-* コマンドを使用して、仮想スイッチまたは仮想ネットワークデバイスに対応する Solaris OS のネットワークインタフェース名を直接判定することはできません。ただし、ldm list -l コマンドの出力と、Solaris OS の /devices 配下のエントリの出力を組み合わせて使用すると、この情報を取得できます。
次の例では、ゲストドメイン ldg1 には net-a および net-c の 2 つの仮想ネットワークデバイスが含まれています。net-c に対応する、ldg1 での Solaris OS ネットワークインタフェース名を確認するには、次の手順を実行します。この例では、仮想ネットワークデバイスではなく仮想スイッチのネットワークインタフェース名を検索する場合の相違点も示します。
ldm コマンドを使用して、net-c の仮想ネットワークデバイス番号を探します。
# ldm list -l ldg1 ... NETWORK NAME SERVICE DEVICE MAC net-a primary-vsw0@primary network@0 00:14:4f:f8:91:4f net-c primary-vsw0@primary network@2 00:14:4f:f8:dd:68 ... |
net-c の仮想ネットワークデバイス番号は 2 (network@2) です。
仮想スイッチのネットワークインタフェース名を判定するには、switch@n の n に示された仮想スイッチデバイス番号を探します。
ldg1 で対応するネットワークインタフェースを検出するには、ldg1 にログインして、/devices 配下でこのデバイス番号に対するエントリを探します。
# uname -n ldg1 # find /devices/virtual-devices@100 -type c -name network@2\* /devices/virtual-devices@100/channel-devices@200/network@2:vnet1 |
ネットワークインタフェース名は、コロンのあとのエントリの部分で、この場合は vnet1 です。
仮想スイッチのネットワークインタフェース名を判定するには、-name オプションの引数を virtual-network-switch@n\* に置換します。次に、vswN という名前のネットワークインタフェースを探します。
vnet1 を plumb して、手順 1 の net-c に対する ldm list -l の出力で示されたように、MAC アドレスが 00:14:4f:f8:dd:68 であることを確認します。
# ifconfig vnet1 vnet1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 0.0.0.0 netmask 0 ether 0:14:4f:f8:dd:68 |
使用する予定の論理ドメイン、仮想スイッチ、および仮想ネットワークに割り当てられるだけの十分な数のメディアアクセス制御 (MAC) アドレスが必要です。Logical Domains Manager から論理ドメイン、仮想ネットワーク (vnet)、および仮想スイッチ (vsw) に自動的に MAC アドレスを割り当てるか、割り当てられた MAC アドレスの自身のプールから手動で MAC アドレスを割り当てることができます。MAC アドレスを設定する ldm のサブコマンドは、add-domain、add-vsw、set-vsw、add-vnet、および set-vnet です。これらのサブコマンドで MAC アドレスを指定しない場合は、Logical Domains Manager が自動的に MAC アドレスを割り当てます。
Logical Domains Manager に MAC アドレスの割り当てを実行させる利点は、論理ドメインで使用するための専用の MAC アドレスのブロックを利用できることです。また、Logical Domains Manager は、同じサブネットにあるほかの Logical Domains Manager インスタンスと競合する MAC アドレスを検出し、これを回避します。これにより、手動で MAC アドレスのプールを管理する必要がなくなります。
論理ドメインが作成されたり、ドメインにネットワークデバイスが構成されたりするとすぐに、MAC アドレスの割り当てが発生します。また、割り当ては、デバイスまたは論理ドメイン自体が削除されるまで保持されます。
論理ドメインには、次の 512K の MAC アドレスのブロックが割り当てられています。
00:14:4F:F8:00:00 ~ 00:14:4F:FF:FF:FF
下位の 256K のアドレスは、Logical Domains Manager による MAC アドレスの自動割り当てに使用されるため、この範囲のアドレスを手動で要求することはできません。
00:14:4F:F8:00:00 ~ 00:14:4F:FB:FF:FF
MAC アドレスを手動で割り当てる場合は、この範囲の上位半分を使用できます。
00:14:4F:FC:00:00 ~ 00:14:4F:FF:FF:FF
論理ドメインまたはネットワークデバイスの作成時に MAC アドレスを指定しない場合、Logical Domains Manager は MAC アドレスを自動的に確保して、その論理ドメインまたはネットワークデバイスに割り当てます。この MAC アドレスを取得するために、Logical Domains Manager はアドレスの選択を繰り返し試みて、潜在的な競合がないか確認します。
可能性のあるアドレスを選択する前に、Logical Domains Manager は、自動的に割り当てられ、最近解放されたアドレスが、ここで使用するためにデータベースに保存されているかどうかをまず確認します (「解放された MAC アドレス」 を参照)。保存されていた場合、Logical Domains Manager はデータベースから候補となるアドレスを選択します。
最近解放されたアドレスが使用できない場合、MAC アドレスはこの用途のために確保された 256K の範囲のアドレスからランダムに選択されます。候補として選択される MAC アドレスが重複する可能性を少なくするために、MAC アドレスはランダムに選択されます。
選択されたアドレスは、ほかのシステムのその他の Logical Domains Manager に対して確認され、重複した MAC アドレスが実際に割り当てられることを防止します。使用されているアルゴリズムは、「重複した MAC アドレスの検出」 に記載されています。アドレスがすでに割り当てられている場合、Logical Domains Manager は、ほかのアドレスの選択および競合の再確認を繰り返し行います。この動作は、まだ割り当てられていない MAC アドレスが見つかるか、30 秒の制限時間が経過するまで続きます。制限時間に達すると、デバイスの作成が失敗し、次のようなエラーメッセージが表示されます。
Automatic MAC allocation failed. Please set the vnet MAC address manually. |
同じ MAC アドレスが別のデバイスに割り当てられないようにするために、Logical Domains Manager がデバイスに割り当てようとしているアドレスを含むマルチキャストメッセージを、制御ドメインのデフォルトのネットワークインタフェースを介して送信することで、Logical Domains Manager はほかのシステム上の Logical Domains Manager に確認します。MAC アドレスの割り当てを試行している Logical Domains Manager は、応答が返されるまで 1 秒待機します。LDoms が有効な別のシステムの異なるデバイスにその MAC アドレスがすでに割り当てられている場合は、そのシステムの Logical Domains Manager が対象となっている MAC アドレスを含む応答を送信します。要求を送信した Logical Domains Manager は応答を受け取ると、選択した MAC アドレスがすでに割り当てられていることを認識し、別のアドレスを選択して処理を繰り返します。
デフォルトでは、これらのマルチキャストメッセージは、デフォルトの生存期間 (TTL) が 1 である同じサブネット上のほかのマネージャーにのみ送信されます。TTL は、サービス管理機能 (SMF) プロパティー ldmd/hops を使用して設定できます。
各 Logical Domains Manager は、次の処理を行います。
マルチキャストメッセージの待機
ドメインに割り当てられた MAC アドレスの追跡
重複の検索
重複が発生しないようにするための応答
何らかの理由でシステム上の Logical Domains Manager が停止すると、Logical Domains Manager が停止している間に MAC アドレスの重複が発生する可能性があります。
論理ドメインまたはネットワークデバイスが作成されるときに MAC の自動割り当てが行われ、そのデバイスまたは論理ドメインが削除されるまで保持されます。
自動の MAC アドレスに関連付けられた論理ドメインまたはデバイスが削除されると、その MAC アドレスはそのシステムであとで使用する場合に備えて、最近解放された MAC アドレスのデータベースに保存されます。これらの MAC アドレスを保存して、動的ホスト構成プロトコル (DHCP) サーバーのインターネットプロトコル (IP) アドレスが使い果たされないようにします。DHCP サーバーが IP アドレスを割り当てるとき、しばらくの間 (リース期間中) その動作が行われます。多くの場合、リース期間は非常に長く構成されており、通常は数時間または数日間です。ネットワークデバイスが作成および削除される割合が高く、Logical Domains Manager が自動的に割り当てられた MAC アドレスを再利用しない場合、割り当てられる MAC アドレスの数によって典型的な構成の DHCP サーバーがすぐに圧迫される可能性があります。
Logical Domains Manager は、論理ドメインまたはネットワークデバイスの MAC アドレスを自動的に取得するように要求されると、以前に割り当てられた再利用可能な MAC アドレスが存在するかどうかを確認するために、解放された MAC アドレスデータベースを最初に参照します。このデータベースに使用可能な MAC アドレスが存在する場合、重複した MAC アドレスの検出アルゴリズムが実行されます。以前に解放された MAC アドレスが、そのあと割り当てられていない場合は、その MAC アドレスが再利用され、データベースから削除されます。競合が検出された場合、そのアドレスは単にデータベースから削除されます。Logical Domains Manager は、データベース内の次のアドレスを試行するか、使用可能なアドレスがない場合は、新しい MAC アドレスをランダムに選択します。
論理ドメイン環境のサービスドメイン内で動作する仮想スイッチサービスは、GLDv3 準拠のネットワークアダプタと直接対話できます。GLDv3 に準拠していないネットワークアダプタは、これらのシステムで使用できますが、仮想スイッチと直接対話することはできません。GLDv3 に準拠していないネットワークアダプタを使用する方法については、「NAT およびルーティング用の仮想スイッチおよびサービスドメインの構成」 を参照してください。
リンク集積体の使用法については、「仮想スイッチでのリンク集積体の使用」 を参照してください。
Solaris OS dladm(1M) コマンドを使用します。ここでは、たとえば、ネットワークデバイス名として bge0
を指定します。
# dladm show-link bge0 bge0 type: non-vlan mtu: 1500 device: bge0 |
出力結果の type: を確認します。
GLDv3 に準拠しているドライバの種類は、non-vlan
または vlan
です。
GLDv3 に準拠していないドライバの種類は、legacy
です。
仮想スイッチ (vsw) はレイヤー 2 スイッチで、サービスドメインでネットワークデバイスとしても使用できます。仮想スイッチは、さまざまな論理ドメインで仮想ネットワーク (vnet) デバイス間のスイッチとしてのみ動作するように構成できますが、物理デバイスを介してネットワークの外部に接続することはできません。このモードで、vsw をネットワークデバイスとして plumb し、サービスドメインで IP ルーティングを有効にすると、仮想ネットワークでサービスドメインをルーターとして使用して外部と通信することができます。このモードでの操作は、物理ネットワークアダプタが GLDv3 に準拠していない場合、ドメインが外部に接続できるようにするために非常に重要です。
この構成の利点は次のとおりです。
仮想スイッチは物理デバイスを直接使用する必要がなく、基本となるデバイスが GLDv3 に準拠していない場合でも外部と接続できます。
この構成では、Solaris OS の IP ルーティングとフィルタリング機能を利用できます。
物理デバイスを関連付けずに仮想スイッチを作成します。
アドレスを割り当てる場合は、仮想スイッチに一意の MAC アドレスが割り当てられるようにしてください。
primary# ldm add-vsw [mac-addr=xx:xx:xx:xx:xx:xx] primary-vsw0 primary |
ドメインによって使用される物理ネットワークデバイスに加えて、仮想スイッチをネットワークデバイスとして plumb します。
仮想スイッチの plumb の詳細は、「仮想スイッチを主インタフェースとして構成する」 を参照してください。
必要に応じて、DHCP で仮想スイッチデバイスを構成します。
DHCP での仮想スイッチデバイスの構成については、「仮想スイッチを主インタフェースとして構成する」 を参照してください。
必要に応じて、/etc/dhcp.vsw ファイルを作成します。
サービスドメインで IP ルーティングを構成し、すべてのドメインで必要なルーティングテーブルを設定します。
この実行方法については、『Solaris のシステム管理 (IP サービス)』の「IPv4 ネットワーク上でのパケット転送と経路制御」を参照してください。
Logical Domains 1.3 リリースでは、仮想ネットワークデバイスでのリンクベースの IPMP のサポートが導入されています。仮想ネットワークデバイスで IPMP グループを構成する場合は、リンクベースの検出を使用するようにグループを構成します。Logical Domains ソフトウェアの以前のバージョンを使用している場合、仮想ネットワークデバイスでプローブベースの検出のみを構成できます。
次の図に、サービスドメインで個別の仮想スイッチインスタンス (vsw0 および vsw1) に接続された 2 つの仮想ネットワーク (vnet0 および vnet1) を示します。これらは、同様に、2 つの異なる物理インタフェース (nxge0 および nxge1) を使用します。サービスドメインの物理リンクに障害が発生した場合、その物理デバイスにバインドされた仮想スイッチデバイスがリンクの障害を検出します。次に、仮想スイッチデバイスは、その仮想スイッチにバインドされた対応する仮想ネットワークデバイスに障害を伝播します。仮想ネットワークデバイスは、このリンクイベントの通知をゲスト LDom_A の IP 層に送信し、その結果、IPMP グループのもう一方の仮想ネットワークデバイスにフェイルオーバーします。
次の図に示すように、各仮想ネットワークデバイス (vnet0 および vnet1) を異なるサービスドメインの仮想スイッチインスタンスに接続すると、論理ドメインでの信頼性をさらに高めることができます。この場合、物理ネットワークの障害に加えて、LDom_A が仮想ネットワークの障害を検出し、サービスドメインがクラッシュまたは停止したあとでフェイルオーバーを引き起こすことができます。
IPMP グループの構成と使用法の詳細は、Solaris 10 の『Solaris のシステム管理 (IP サービス)』を参照してください。
仮想スイッチインタフェースをグループに構成することで、サービスドメインで IPMP を構成できます。次の図に、2 つの異なる物理デバイスにバインドされた 2 つの仮想スイッチインスタンス (vsw0 および vsw1) を示します。この場合、この 2 つの仮想スイッチインタフェースを plumb して IPMP グループに構成できます。物理リンクに障害が発生した場合、その物理デバイスにバインドされた仮想スイッチデバイスがリンクの障害を検出します。次に、仮想スイッチデバイスは、このリンクイベントの通知をサービスドメインの IP 層に送信し、その結果、IPMP グループのもう一方の仮想スイッチデバイスにフェイルオーバーします。
Logical Domains 1.3 では、仮想ネットワークおよび仮想スイッチデバイスがネットワークスタックへのリンクステータスの更新をサポートします。デフォルトでは、仮想ネットワークデバイスはその仮想リンク (仮想スイッチへの LDC) のステータスをレポートします。この設定はデフォルトで有効になり、追加構成手順を実行する必要はありません。
場合によっては、物理ネットワークのリンクステータスの変更を検出する必要があります。たとえば、物理デバイスが仮想スイッチに割り当てられている場合、仮想ネットワークデバイスからその仮想スイッチデバイスへのリンクが動作していても、サービスドメインから外部ネットワークへの物理ネットワークリンクは停止している可能性があります。このような場合、物理リンクステータスを取得して仮想ネットワークデバイスとそのスタックにレポートする必要がある可能性があります。
linkprop=phys-state オプションを使用すると、仮想ネットワークデバイスおよび仮想スイッチデバイスに対して物理リンクステータスの追跡を構成できます。このオプションを有効にすると、仮想デバイス (仮想ネットワークまたは仮想スイッチ) が、ドメインでインタフェースとして plumb されている間、物理リンクステータスに基づいてリンクステータスをレポートします。dladm、ifconfig などの、Solaris の標準ネットワーク管理コマンドを使用して、リンクステータスを確認できます。dladm(1M) および ifconfig(1M) マニュアルページを参照してください。また、リンクステータスは /var/adm/messages ファイルにも記録されます。
1 つの Logical Domains システムで、リンクステータスを認識しないものとリンクステータスを認識するものの両方の vnet および vsw ドライバを同時に実行できます。ただし、リンクベースの IPMP を構成する場合、リンクステータスを認識するドライバをインストールする必要があります。物理リンクステータスの更新を有効にする場合、vnet および vsw の両方のドライバを Solaris 10 10/09 OS にアップグレードして、Logical Domains Manager の Version 1.3 以上を実行します。
この手順では、仮想ネットワークデバイスで物理リンクステータスの更新を有効にする方法を示します。
同様の手順に従い、ldm add-vsw および ldm set-vsw コマンドに linkprop=phys-state オプションを指定することで、仮想スイッチデバイスで物理リンクステータスの更新を有効にすることもできます。
linkprop=phys-state オプションは、仮想スイッチデバイス自体がインタフェースとして plumb されている場合にのみ使用する必要があります。linkprop=phys-state が指定され、物理リンクが停止している場合、仮想スイッチへの接続が有効であっても、仮想ネットワークデバイスはリンクステータスを停止状態とレポートします。この状況が発生するのは、Solaris OS は現在、仮想リンクステータスと物理リンクステータスなど、2 つの異なるリンクステータスをレポートするインタフェースを備えていないためです。
スーパーユーザーになるか、同等の役割を取得します。
役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」 を参照してください。
仮想デバイスで物理リンクステータスの更新を有効にします。
仮想ネットワークデバイスで物理リンクステータスの更新を有効にするには、次の手順に従います。
ldm add-vnet コマンド実行時に linkprop=phys-state を指定し、仮想ネットワークデバイスを作成します。
linkprop=phys-state オプションを指定すると、仮想ネットワークデバイスが物理リンクステータスの更新を取得してスタックにレポートするように構成されます。
linkprop=phys-state が指定され、物理リンクが停止している場合、仮想スイッチへの接続が有効であっても、仮想ネットワークデバイスはリンクステータスを down とレポートします。この状況が発生するのは、Solaris OS は現在、仮想リンクステータスと物理リンクステータスなど、2 つの異なるリンクステータスをレポートするインタフェースを備えていないためです。
# ldm add-vnet linkprop=phys-state if-name vswitch-name ldom |
次の例では、論理ドメイン ldom1 の primary-vsw0 に接続された vnet0 で物理リンクステータスの更新を有効にします。
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1 |
ldm set-vnet コマンド実行時に linkprop=phys-state を指定し、既存の仮想ネットワークデバイスを変更します。
# ldm set-vnet linkprop=phys-state if-name ldom |
次の例では、論理ドメイン ldom1 の vnet0 で物理リンクステータスの更新を有効にします。
# ldm set-vnet linkprop=phys-state vnet0 ldom1 |
物理リンクステータスの更新を無効にするには、ldm set-vnet コマンドを実行して linkprop= を指定します。
次の例では、論理ドメイン ldom1 の vnet0 で物理リンクステータスの更新を無効にします。
# ldm set-vnet linkprop= vnet0 ldom1 |
次の例は、物理リンクステータスの更新を有効にする方法と有効にしない方法の両方を使用してリンクベースの IPMP を構成する方法を示します。
次の例では、1 つのドメインで 2 つの仮想ネットワークデバイスを構成します。各仮想ネットワークデバイスは、リンクベースの IPMP を使用するためにサービスドメインの個別の仮想スイッチデバイスに接続されます。
これらの仮想ネットワークデバイスでテストアドレスは構成されません。また、ldm add-vnet コマンドを使用してこれらの仮想ネットワークデバイスを作成する場合に、追加構成を実行する必要はありません。
次のコマンドは、仮想ネットワークデバイスをドメインに追加します。linkprop=phys-state が指定されていないため、仮想スイッチへのリンクのみでステータスの変更が監視されることに注意してください。
# ldm add-vnet vnet0 primary-vsw0 ldom1 # ldm add-vnet vnet1 primary-vsw1 ldom1 |
次のコマンドは、仮想ネットワークデバイスをゲストドメインで構成して IPMP グループに割り当てます。リンクベースの障害検出が使用されているためにこれらの仮想ネットワークデバイスでテストアドレスが構成されていないことに注意してください。
# ifconfig vnet0 plumb # ifconfig vnet1 plumb # ifconfig vnet0 192.168.1.1/24 up # ifconfig vnet1 192.168.1.2/24 up # ifconfig vnet0 group ipmp0 # ifconfig vnet1 group ipmp0 |
次の例では、1 つのドメインで 2 つの仮想ネットワークデバイスを構成します。各ドメインは、リンクベースの IPMP を使用するためにサービスドメインの個別の仮想スイッチデバイスに接続されます。また、仮想ネットワークデバイスは、物理リンクステータスの更新を取得するように構成されます。
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1 # ldm add-vnet linkprop=phys-state vnet1 primary-vsw1 ldom1 |
ドメインを正常にバインドするために、仮想スイッチに物理ネットワークデバイスを割り当てる必要があります。ドメインがすでにバインドされており、仮想スイッチに物理ネットワークデバイスが割り当てられていない場合、ldm add-vnet コマンドは失敗します。
次のコマンドは、仮想ネットワークデバイスを plumb して IPMP グループに割り当てます。
# ifconfig vnet0 plumb # ifconfig vnet1 plumb # ifconfig vnet0 192.168.1.1/24 up # ifconfig vnet1 192.168.1.2/24 up # ifconfig vnet0 group ipmp0 # ifconfig vnet1 group ipmp0 |
Logical Domains 1.3 より前のリリースでは、仮想スイッチおよび仮想ネットワークデバイスはリンク障害の検出を実行できません。それらのリリースでは、プローブベースの IPMP を使用してネットワーク障害の検出と復旧を設定できます。
ゲストドメインの仮想ネットワークデバイスは、図 7–3 および 図 7–4 に示す方法で IPMP グループに構成できます。唯一の相違点は、仮想ネットワークデバイスでテストアドレスを構成することでプローブベースの障害検出が使用されることです。プローブベースの IPMP の設定の詳細は、『Solaris のシステム管理 (IP サービス)』 を参照してください。
Logical Domains 1.3 より前のリリースでは、仮想スイッチデバイスは物理リンク障害の検出を実行できません。このような場合、サービスドメインの物理インタフェースを IPMP グループに構成することで、ネットワーク障害の検出と復旧を設定できます。これを行うには、物理ネットワークデバイスを割り当てずにサービスドメインの仮想スイッチを構成します。特に、ldm add-vswitch コマンドを使用して仮想スイッチを作成するときに、net-dev (net-dev=) プロパティーに値を指定しないでください。サービスドメインの仮想スイッチインタフェースを plumb して、サービスドメイン自体が IP ルーターとして機能するように構成します。IP ルーティングの設定については、Solaris 10 の『Solaris のシステム管理 (IP サービス)』 を参照してください。
いったん仮想スイッチが構成されると、仮想ネットワークから発生し外部のマシンに送信される予定のすべてのパケットは、物理デバイスを使用して直接送信されるのではなく、IP 層に送信されます。物理インタフェースに障害が発生した場合、IP 層は障害を検出し、自動的に二次インタフェースを使用してパケットをふたたび経路指定します。
物理インタフェースは直接 IPMP グループに構成されているため、グループは、リンクベースまたはプローブベースのいずれかの検出用に設定できます。次の図に、IPMP グループの一部として構成された 2 つのネットワークインタフェース (nxge0 および nxge1) を示します。仮想スイッチインスタンス (vsw0) は、IP 層にパケットを送信するネットワークデバイスとして plumb されています。
この手順は、ゲストドメインおよび 1.3 より前のリリースのみに適用されます。1.3 より前のリリースでは、プローブベースの IPMP のみがサポートされています。
ネットワーク内の IPMP インタフェースに対応するルーターに明示的なルートが構成されていない場合、IPMP プローブベースの検出を目的どおりに動作させるには、ターゲットシステムへの明示的なホストルートを 1 つ以上構成する必要があります。このようにしない場合、プローブ検出がネットワーク障害を検出できないことがあります。
ホストルートを構成します。
# route add -host destination-IP gateway-IP -static |
次に例を示します。
# route add -host 192.168.102.1 192.168.102.1 -static |
詳細は、『Solaris のシステム管理 (IP サービス)』の「ターゲットシステムの構成」を参照してください。
Solaris 10 10/08 OS および LDoms 1.1 ソフトウェアのリリース以降は、Logical Domains ネットワークインフラストラクチャーで 802.1Q VLAN のタグ付けがサポートされます。
タグ付き VLAN は、以前のリリースの LDoms ネットワークコンポーネント用ではサポートされていません。
仮想スイッチ (vsw) および仮想ネットワーク (vnet) デバイスは、仮想ローカルエリアネットワーク (VLAN) 識別子 (ID) に基づいて Ethernet パケットのスイッチングをサポートし、Ethernet フレームの必要なタグ付けまたはタグなし処理を行います。
ゲストドメインの vnet デバイスには複数の VLAN インタフェースを作成できます。Solaris OS ifconfig(1M) コマンドを使用すると、ほかの物理ネットワークデバイスに VLAN インタフェースを構成する場合と同じ方法で、仮想ネットワークデバイスに VLAN インタフェースを作成できます。LDoms 環境では、この手順のほかに Logical Domains Manager CLI コマンドを使用して、対応する VLAN に vnet を割り当てる必要があります。Logical Domains Manager CLI コマンドの詳細は、ldm(1M) を参照してください。
同様に、サービスドメインの仮想スイッチデバイスに VLAN インタフェースを構成することができます。VLAN ID 2 ~ 4094 が有効です。VLAN ID 1 は default-vlan-id として予約されています。
ゲストドメインに vnet デバイスを作成する場合は、そのデバイスを必要な VLAN に割り当てる必要があります。それには、ldm add-vnet コマンドで pvid= 引数および vid= 引数を使用して、この vnet にポート VLAN ID および 0 個以上の VLAN ID を指定します。これによって、仮想スイッチは、LDoms ネットワークで複数の VLAN をサポートし、ネットワークで MAC アドレスと VLAN ID の両方を使用してパケットをスイッチングするように構成されます。
同様に、vsw デバイス自体が属することになる VLAN を、ネットワークインタフェースとして plumb するときに、ldm add-vsw コマンドで pvid= 引数および vid= 引数を使用して、vsw デバイス内に構成する必要があります。
デバイスが属する VLAN は、ldm set-vnet または ldm set-vsw コマンドを使用して変更できます。
PVID は、仮想ネットワークデバイスをメンバーにする必要のある VLAN を、タグなしモードで示します。この場合、PVID で指定した VLAN の vnet デバイスのために必要なフレームのタグ付けまたはタグなし処理は、vsw デバイスによって行われます。仮想ネットワークからのタグなしのアウトバウンドフレームは、仮想スイッチによって PVID でタグ付けされます。この PVID でタグ付けされたインバウンドフレームは、仮想スイッチによってタグが削除されてから、vnet デバイスに送信されます。このため、PVID を vnet に暗黙に割り当てることは、仮想スイッチの対応する仮想ネットワークポートが、PVID で指定された VLAN に対してタグなしとしてマークされることを意味します。vnet デバイスに設定できる PVID は 1 つだけです。
対応する仮想ネットワークインタフェースは、VLAN ID なしで ifconfig(1M) コマンドを使用して、そのデバイスインスタンスだけを使用して構成した場合、仮想ネットワークの PVID によって指定された VLAN に暗黙に割り当てられます。
たとえば、次のコマンドを使用して vnet インスタンス 0 を plumb する場合に、この vnet の pvid= 引数が 10 として指定されているときは、vnet0 インタフェースが VLAN 10 に属するように暗黙に割り当てられます。
# ifconfig vnet0 plumb |
VID は、仮想ネットワークデバイスまたは仮想スイッチをメンバーにする必要のある VLAN を、タグ付きモードで示します。仮想ネットワークデバイスは、その VID で指定されている VLAN でタグ付きフレームを送受信します。仮想スイッチは、仮想ネットワークデバイスと外部ネットワークの間で、指定の VID でタグ付けされたフレームを通過させます。
仮想スイッチ (vsw) を 2 つの VLAN に割り当てます。
たとえば、VLAN 21 をタグなし、VLAN 20 をタグ付きとして構成します。仮想ネットワーク (vnet) を 3 つの VLAN に割り当てます。VLAN 20 をタグなし、VLAN 21 および VLAN 22 をタグ付きとして構成します。
# ldm add-vsw net-dev=nxge0 pvid=21 vid=20 primary-vsw0 primary # ldm add-vnet pvid=20 vid=21,22 vnet01 primary-vsw0 ldom1 |
VLAN インタフェースを plumb します。
この例では、ドメイン内のこれらのデバイスのインスタンス番号は 0 で、VLAN はこれらのサブネットに対応づけられていることを前提としています。
VLAN |
サブネット |
---|---|
20 |
192.168.1.0 (ネットマスク: 255.255.255.0) |
21 |
192.168.2.0 (ネットマスク: 255.255.255.0) |
22 |
192.168.3.0 (ネットマスク: 255.255.255.0) |
サービス (primary) ドメインで VLAN インタフェースを plumb します。
primary# ifconfig vsw0 plumb primary# ifconfig vsw0 192.168.2.100 netmask 0xffffff00 broadcast + up primary# ifconfig vsw20000 plumb primary# ifconfig vsw20000 192.168.1.100 netmask 0xffffff00 broadcast + up |
ゲスト (ldom1) ドメインで VLAN インタフェースを plumb します。
ldom1# ifconfig vnet0 plumb ldom1# ifconfig vnet0 192.168.1.101 netmask 0xffffff00 broadcast + up ldom1# ifconfig vnet21000 plumb ldom1# ifconfig vnet21000 192.168.2.101 netmask 0xffffff00 broadcast + up ldom1# ifconfig vnet22000 plumb ldom1# ifconfig vnet22000 192.168.3.101 netmask 0xffffff00 broadcast + up |
Solaris OS で VLAN インタフェースを構成する方法の詳細は、『Solaris のシステム管理 (IP サービス)』の「仮想ローカルエリアネットワークの管理」を参照してください。
ネットワークを介してゲストドメインをインストールしており (JumpStart)、インストールサーバーが VLAN に存在する場合は注意してください。インストールサーバーに関連付けられた VLAN ID を、仮想ネットワークデバイスの PVID として指定します。その仮想ネットワークデバイスにタグ付き VLAN (vid) を構成しないでください。OBP は VLAN を認識せず、VLAN のタグ付きのネットワークパケットを処理できないため、このようにする必要があります。仮想スイッチは、ネットワークインストールの実行中、ゲストドメインから送受信されるパケットのタグ付きおよびタグなし処理を行います。ネットワークインストールが完了して Solaris OS が起動したら、仮想ネットワークデバイスがその VLAN でタグ付けされるように構成できます。その後、その仮想ネットワークデバイスをタグ付きモードでほかの VLAN に追加できます。
JumpStart を使用したゲストドメインのインストールについては、「ゲストドメインの JumpStart を実行する」 を参照してください。
最初にネットワークデバイスをタグなしモードで構成します。
たとえば、インストールサーバーが VLAN 21 にある場合、最初に仮想ネットワークを次のように構成します。
primary# ldm add-vnet pvid=21 vnet01 primary-vsw0 ldom1 |
インストールが完了して Solaris OS が起動したら、仮想ネットワークをタグ付きモードで構成します。
primary# ldm set-vnet pvid= vid=21, 22, 23 vnet01 primary-vsw0 ldom1 |
仮想 I/O フレームワークは、機能およびパフォーマンスを向上させるために、「ハイブリッド」I/O モデルを実装しています。ハイブリッド I/O モデルでは、ダイレクト I/O および仮想化 I/O を組み合わせることで、仮想マシンへの柔軟な I/O リソース配備が可能になっています。これは、仮想マシンに対してダイレクト I/O の機能が十分に提供されない場合、または仮想マシンが持続的にあるいは一貫してダイレクト I/O を利用できない場合に特に便利です。この状況は、リソースの可用性または仮想マシンの移行が原因で発生する可能性があります。ハイブリッド I/O アーキテクチャーは、Sun UltraSPARC T2 ベースのプラットフォームでのチップに統合されたネットワーク I/O インタフェースであるネットワークインタフェースユニット (NIU) に適しています。これにより、ダイレクトメモリーアクセス (DMA) リソースを仮想ネットワークデバイスに動的に割り当てることができ、ドメイン内のアプリケーションのパフォーマンスが安定します。
NIU ハイブリッド I/O は、Sun UltraSPARC T2 ベースのプラットフォームで使用できます。この機能は、仮想ネットワーク (vnet) デバイスに提供されるオプションのハイブリッドモードによって有効になります。このモードでは、DMA ハードウェアリソースが、パフォーマンスを向上させるために、ゲストドメインの vnet デバイスに貸し出されます。ハイブリッドモードでは、ゲストドメインの vnet デバイスは、この DMA ハードウェアリソースを使用して、外部ネットワークとゲストドメインの間で、ユニキャストトラフィックを直接送受信することができます。同じシステム内のほかのゲストドメインへのブロードキャストトラフィック、マルチキャストトラフィック、およびユニキャストトラフィックは、仮想 I/O 通信機構を使用して引き続き送信されます。
ハイブリッドモードは、NIU ネットワークデバイスを使用するように構成された仮想スイッチ (vsw) に関連付けられた vnet デバイスだけに適用されます。共有可能な DMA ハードウェアリソースには制限があるため、DMA ハードウェアリソースの割り当てを受けられるのは、一度に、1 つの vsw あたり最大 3 つの vnet デバイスのみです。4 つ以上の vnet デバイスでハイブリッドモードを有効にすると、割り当ては先着順に行われます。1 つのシステムに 2 つの NIU ネットワークデバイスがあるため、DMA ハードウェアリソースが割り当てられている 2 つの異なる仮想スイッチで、合計 6 つの vnet デバイスが存在できます。
この機能を使用する場合の注意事項は、次のとおりです。
vnet デバイスのハイブリッドモードオプションは、提案のみとして扱われます。つまり、DMA リソースが割り当てられるのは、DMA リソースが利用可能で、デバイスがこれらを使用できる場合だけです。
Logical Domains Manager CLI コマンドは、ハイブリッドモードオプションを検証しません。つまり、どの vnet にも、いくつの vnet デバイスにもハイブリッドモードを設定することができます。
ゲストドメインおよびサービスドメインでは、Solaris 10 10/08 以上の OS を実行する必要があります。
DMA ハードウェアリソースの貸し出しを受けられるのは、一度に、1 つの vsw あたり最大 3 つの vnet デバイスのみです。2 つの NIU ネットワークデバイスがあるため、DMA ハードウェアリソースの貸し出しを受けられるのは合計 6 つの vnet デバイスです。
1 つの vsw あたり 3 つの vnet デバイスのみにハイブリッドモードを設定して、DMA ハードウェアリソースが確実に割り当てられるようにしてください。
デフォルトでは、vnet デバイスのハイブリッドモードは無効になっています。Logical Domains Manager CLI コマンドを使用して明示的に有効にする必要があります。「ハイブリッドモードを有効にする」 を参照してください。
詳細は、ldm(1M) マニュアルページを参照してください。
ゲストドメインがアクティブの間、ハイブリッドモードオプションを動的に変更することはできません。
DMA ハードウェアリソースが割り当てられるのは、ゲストドメインで plumb されている vnet デバイスがアクティブの場合のみです。
Sun x8 Express 1/10G Ethernet アダプタ (nxge) のドライバは NIU カードで使用されていますが、同じドライバは、ほかの 10 ギガビットネットワークカードでも使用されています。ただし、NUI ハイブリッド I/O 機能は、NIU ネットワークデバイスのみで利用可能です。
Solaris 10 10/08 OS および Logical Domains 1.1 ソフトウェアのリリース以降は、仮想スイッチでリンク集積体を使用するように構成できます。リンク集積体は、物理ネットワークに接続するための仮想スイッチのネットワークデバイスとして使用します。この構成を使用すると、仮想スイッチで IEEE 802.3ad Link Aggregation Standard によって提供される機能を利用できます。この機能には、帯域幅の増加、負荷分散、フェイルオーバーなどが含まれます。リンク集積体を構成する方法の詳細は、『Solaris のシステム管理 (IP サービス)』を参照してください。
リンク集積体を作成したら、そのリンク集積体を仮想スイッチに割り当てることができます。この割り当て方法は、仮想スイッチへの物理ネットワークデバイスの割り当てに似ています。ldm add-vswitch または ldm set-vswitch コマンドを使用して net-dev プロパティーを設定します。
リンク集積体を仮想スイッチに割り当てると、物理ネットワークに対して送受信されるトラフィックは集積体を通過してます。必要な負荷分散またはフェイルオーバーは、ベースとなる集積体のフレームワークによって透過的に処理されます。リンク集積体は、ゲストドメイン上の仮想ネットワーク (vnet) デバイスに対して、および集積体を使用する仮想スイッチにバインドされた仮想ネットワークデバイスに対して、完全に透過的です。
仮想ネットワークデバイス (vnet および vsw) をリンク集積体にグループ化することはできません。
サービスドメインでリンク集積体を使うように構成された仮想スイッチを、plumb して使用できます。「仮想スイッチを主インタフェースとして構成する」 を参照してください。
次の図に、物理インタフェース nxge0 および nxge1 上で集積体 aggr1 を使用するように構成された仮想スイッチを示します。
Logical Domains の仮想スイッチ (vsw) および仮想ネットワーク (vnet) デバイスで、1500 バイトを超えるペイロードサイズの Ethernet フレームをサポートできるようになりました。この変更によって、これらのドライバのネットワークスループットが向上します。
ジャンボフレームを有効にするには、仮想スイッチデバイスの最大転送単位 (MTU) を指定します。このような場合、仮想スイッチデバイスとその仮想スイッチデバイスにバインドされているすべての仮想ネットワークデバイスで、指定した MTU 値が使用されます。
特定の状況では、仮想ネットワークデバイス上で MTU 値を直接指定できます。これは、仮想ネットワークデバイスで必要な MTU 値が仮想スイッチによってサポートされる MTU 値よりも小さい場合に行うことがあります。
Solaris 10 5/09 OS では、物理デバイスの MTU は仮想スイッチの MTU と一致するように構成する必要があります。特定のドライバの構成については、Solaris リファレンスマニュアルの 7D 節にある、そのドライバに対応するマニュアルページを参照してください。たとえば、nxge ドライバの情報については、nxge(7D) マニュアルページを参照してください。
OpenSolarisTM OS では、vsw ドライバは物理デバイスの MTU を自動的に構成します。したがって、追加構成は必要はありません。
制御ドメインにログインします。
スーパーユーザーになるか、同等の役割を取得します。
役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」 を参照してください。
仮想ネットワークで使用する MTU の値を決定します。
1500 ~ 16000 バイトの MTU 値を指定できます。指定する MTU は、仮想スイッチに割り当てられた物理ネットワークデバイスの MTU と一致する必要があります。
仮想スイッチデバイスまたは仮想ネットワークデバイスの MTU 値を指定します。
次のいずれかを実行します。
MTU を mtu プロパティーの値として指定することで、サービスドメインの新しい仮想スイッチデバイスでジャンボフレームを有効にします。
# ldm add-vsw mtu=value vswitch-name ldom |
このコマンドは、仮想スイッチの構成に加えて、この仮想スイッチにバインドされる各仮想ネットワークデバイスの MTU 値を更新します。
MTU を mtu プロパティーの値として指定することで、サービスドメインの既存の仮想スイッチデバイスでジャンボフレームを有効にします。
# ldm set-vsw mtu=value vswitch-name |
このコマンドは、仮想スイッチの構成に加えて、この仮想スイッチにバインドされる各仮想ネットワークデバイスの MTU 値を更新します。
まれに、ldm add-vnet または ldm set-vnet コマンドを使用して、仮想スイッチの MTU 値と異なる MTU 値を仮想ネットワークデバイスに指定する必要がある場合があります。たとえば、VLAN を仮想ネットワークデバイス上で構成し、VLAN の MTU の最大値が仮想スイッチの MTU 値よりも小さい場合、仮想ネットワークデバイスの MTU 値を変更する場合があります。デフォルトの MTU 値のみが使用されているドメインでは、ジャンボフレームをサポートしている vnet ドライバは必要ない場合があります。ただし、ジャンボフレームを使用する仮想スイッチにバインドされた仮想ネットワークデバイスがドメインに存在する場合、vnet ドライバがジャンボフレームをサポートしていることを確認してください。
ldm set-vnet コマンドを使用して仮想ネットワークデバイスで mtu 値を指定する場合、あとで仮想スイッチデバイスの MTU 値が更新されても、仮想ネットワークデバイスには更新値は伝播されません。仮想ネットワークデバイスを再度有効にして仮想スイッチデバイスから MTU 値を取得するには、次のコマンドを実行します。
# ldm set-vnet mtu= vnet-name ldom |
仮想ネットワークデバイスでジャンボフレームを有効にすると、その仮想ネットワークデバイスに割り当てられているハイブリッド I/O リソースでもジャンボフレームが自動的に有効になります。
制御ドメインでは、Logical Domains Manager が、ldm set-vsw および ldm set-vnet コマンドによって設定された MTU 値を遅延再構成処理として更新します。制御ドメイン以外のドメインの MTU を更新するには、ドメインを停止してから ldm set-vsw または ldm set-vnet コマンドを実行して MTU 値を変更する必要があります。
OpenSolaris 2009.06 の dladm set-linkprop コマンドは、Logical Domains 仮想ネットワークデバイスの MTU 値の変更には使用できません。
次の例に、MTU 値が 9000 の新しい仮想スイッチデバイスを追加する方法を示します。この MTU 値は、仮想スイッチデバイスからすべてのクライアントの仮想ネットワークデバイスに伝播されます。
まず、ldm add-vsw コマンドによって、仮想スイッチデバイス primary-vsw0 を MTU 値 9000 で作成します。ネットワークデバイス nxge 0 のインスタンス 0 は、net-dev プロパティーの値として指定されています。
# ldm add-vsw net-dev=nxge0 mtu=9000 primary-vsw0 primary |
次に、ldm add-vnet コマンドによって、クライアントの仮想ネットワークデバイスをこの仮想スイッチ primary-vsw0 に追加します。仮想ネットワークデバイスの MTU は、バインドされている仮想スイッチから暗黙に割り当てられます。そのため、ldm add-vnet コマンドで mtu プロパティーの値を指定する必要はありません。
# ldm add-vnet vnet01 primary-vsw0 ldom1 |
ifconfig コマンドによって、サービスドメイン primary の仮想スイッチインタフェースを plumb します。ifconfig vsw0 コマンドの出力には、mtu プロパティーの値が 9000 であることが示されます。
# ifconfig vsw0 plumb # ifconfig vsw0 192.168.1.100/24 up # ifconfig vsw0 vsw0: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 9000 index 5 inet 192.168.1.100 netmask ffffff00 broadcast 192.168.1.255 ether 0:14:4f:fa:0:99 |
ifconfig コマンドによって、ゲストドメイン ldom1 の仮想ネットワークインタフェースを plumbします。ifconfig vnet0 コマンドの出力には、mtu プロパティーの値が 9000 であることが示されます。
# ifconfig vnet0 plumb # ifconfig vnet0 192.168.1.101/24 up # ifconfig vnet0 vnet0: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 9000 index 4 inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255 ether 0:14:4f:f9:c4:13 |
次の例に、ifconfig コマンドを使用してインタフェースの MTU を 4000 に変更する方法を示します。
インタフェースの MTU は、Logical Domains Manager によってデバイスに割り当てられた MTU よりも小さい値にのみ変更できます。この方法は、VLAN が構成されていて各 VLAN インタフェースに異なる MTU が必要なときに便利です。
# ifconfig vnet0 mtu 4000 # ifconfig vnet0 vnet0: flags=1201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS,FIXEDMTU> mtu 4000 index 4 inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255 ether 0:14:4f:f9:c4:13 |
ジャンボフレームをサポートしているドライバとジャンボフレームをサポートしていないドライバを、同じシステム上で相互運用できます。この相互運用は、仮想スイッチを作成するときにジャンボフレームのサポートが有効になっていない場合にかぎり可能です。
仮想スイッチに関連付けられたゲストドメインまたはサービスドメインがジャンボフレームをサポートしている Logical Domains ドライバを使用していない場合、mtu プロパティーを設定しないでください。
ジャンボフレームを有効にするには、仮想スイッチの mtu プロパティーをデフォルト値の 1500 から変更します。この場合、旧バージョンのドライバは mtu 設定を無視し、デフォルト値を引き続き使用します。ldm list の出力には、デフォルト値ではなく、指定した MTU 値が示されます。デフォルトの MTU よりも大きいフレームはそれらのデバイスには送られず、新しいドライバによって破棄されます。この場合、旧ドライバを使用し続けているゲストがあると、一貫性のないネットワーク動作につながる場合があります。これは、クライアントゲストドメインおよびサービスドメインの両方に当てはまります。
そのため、ジャンボフレームが有効な場合は、Logical Domains ネットワークのすべての仮想デバイスをアップグレードし、ジャンボフレームをサポートしている新しいドライバが使用されるようにしてください。また、ジャンボフレームを構成できるように、Logical Domains Manager 1.2 以上にアップグレードしてください。