Solaris のシステム管理 (IP サービス)

パート VI IPMP

このパートでは、IP マルチパス (IPMP) を紹介し、IPMP を管理するための作業について説明します。IPMP は、同じリンクに接続されたシステムインタフェースの障害検出およびフェイルオーバーを行います。

第 30 章 IPMP の紹介 (概要)

IP ネットワークマルチパス (IPMP) は、同一の IP リンク上に複数のインタフェースを保持するシステムで、物理インタフェースの障害検出および透過的なネットワークアクセスフェイルオーバーを提供します。IPMP も、複数のインタフェースを保持するシステムについて、パケットの負荷分散を提供します。

この章では、次の内容について説明します。

IPMP 構成作業については、第 31 章IPMP の管理 (手順)を参照してください。

IPMP を使用しなければならない理由

IPMP は、複数の物理インタフェースを持つシステムの信頼性、可用性、およびネットワークパフォーマンスを向上させます。物理インタフェースまたはそのインタフェースに接続しているネットワークハードウェアでは、ときどき障害が発生したり、メンテナンスが必要になったりすることがあります。従来、このような場合には、障害が発生したインタフェースに関連するどの IP アドレスを使用しても、システムに接続できなくなっていました。さらに、これらの IP アドレスを使用する既存のシステム接続も妨害されていました。

IPMP を使用すると、1 つ以上の物理インタフェースを IP マルチパスグループ、つまり「IPMP グループ」に構成できます。IPMP を構成すると、IPMP グループのインタフェースに障害が発生していないかどうかをシステムが自動的に監視します。グループ内のインタフェースで障害が発生した場合、またはインタフェースがメンテナンスのために取り外された場合、IPMP は、障害が発生したインタフェースの IP アドレスを自動的に移行、つまり「障害を迂回」します。フェイルオーバーされたアドレスは、障害が発生したインタフェースの IPMP グループ内の機能中のインタフェースが受け取ります。IPMP のフェイルオーバー機能は、接続を保持し、既存の接続の切断を防止します。さらに、IPMP は、ネットワークトラフィックを自動的に IPMP グループ内のインタフェースのセットに分散することによって、ネットワークパフォーマンス全体を向上させます。このプロセスは「負荷分散」と呼ばれます。

Oracle Solaris IPMP コンポーネント

Oracle Solaris IPMP には、次のソフトウェアが必要です。

マルチパスデーモン in.mpathd

in.mpathd デーモンはインタフェース障害を検出し、障害経路の迂回や回復した経路への復帰に対するさまざまな手続を実装します。in.mpathd は、障害または修復を検出すると、ioctl を送信して、フェイルオーバーまたは回復した経路への復帰を実行します。ioctl を実行する ip カーネルモジュールは、ネットワークアクセスのフェイルオーバーを、透過的かつ自動的に行います。


注 –

ネットワークインタフェースカードの同じセットで IPMP を使用している間は、代替パスを使用しないでください。同様に、代替パスを使用している間は、IPMP を使用しないでください。異なるインタフェースセットの場合は、代替パスと IPMP を同時に使用できます。代替パスについては、『Sun Enterprise Server Alternate Pathing 2.3.1 User Guide』を参照してください。


in.mpathd デーモンは、IPMP グループの一部であるインタフェースすべてに検査信号を送信して、障害と回復を検出します。in.mpathd デーモンも、グループに属する各インタフェースで RUNNING フラグを監視することによって障害や回復を検出します。詳細は、in.mpathd(1M) のマニュアルページを参照してください。


注 –

IPMP データアドレスの管理に DHCP は使用できません。これらのアドレスに対して DHCP を使用しようとすると、DHCP は最終的にこれらのアドレスの制御を放棄します。データアドレスには DHCP を使用しないでください。


IPMP の用語と概念

この節では、このマニュアルの IPMP の章を通して使用される用語と概念を紹介します。

IP リンク

IPMP の用語では、「IP リンク」は、ノードがインターネットプロトコル群のデータリンク層で通信を行う通信設備またはメディアです。IP リンクのタイプには、単純な Ethernet、ブリッジ Ethernet、ハブ、または ATM (Asynchronous Transfer Mode) ネットワークなどがあります。IP リンクは、1 つ以上の IPv4 サブネット番号、および適用できる場合は、1 つ以上の IPv6 サブネット接頭辞を持つことができます。同じサブネット番号またはネットワーク接頭辞を複数の IP リンクに割り当てることはできません。ATM LANE では、IP リンクは 1 つのエミュレートされた LAN (Local Area Network) です。ARP (Address Resolution Protocol) を使用する場合、ARP プロトコルの範囲は、1 つの IP リンクです。


注 –

RFC 2460、『Internet Protocol, Version 6 (IPv6) Specification』などのその他の IP 関連文書では、「IP リンク」の代わりに「リンク」という用語を使用します。パート 6 では、IEEE 802 との混乱を避けるために、「IP リンク」という用語を使用します。IEEE 802 では、「リンク」は、Ethernet ネットワークインタフェースカード (NIC) か ら Ethernet スイッチへの一本の配線を指します


物理インタフェース

物理インタフェース」は、IP リンクにシステム接続を提供します。この接続は、しばしばデバイスドライバや NIC として実装されます。システムが同じリンクに複数のインタフェースを接続している場合は、IPMP を構成して、インタフェースの 1 つで障害が発生した場合に障害を迂回させることができます。物理インタフェースについては、「IPMP インタフェースの構成」を参照してください。

ネットワークインタフェースカード

ネットワークインタフェースカード」(NIC) は、システム内に組み込むことができるネットワークアダプタです。また、NIC は、システムから IP リンクへのインタフェースとして機能する別のカードの場合もあります。複数の物理インタフェースを持つ NIC もあります。たとえば、qfe NIC は、qfe0 - qfe3 などの 4 つのインタフェースを持つことができます。

IPMP グループ

IP マルチパスグループ、つまり「IPMP」グループは、同じ IPMP グループ名で構成された同じシステム上の 1 つ以上の物理インタフェースで構成されます。IPMP グループ内のインタフェースは、同じ IP リンクに接続してください。同じ (空文字以外の) 文字列の IPMP グループ名は、グループ内のすべてのインタフェースを識別します。NIC のタイプが同じである限り、違った速度の NIC インタフェースを同じ IPMP グループ内に配置できます。たとえば、100M ビット Ethernet NIC のインタフェースと 1G ビット Ethernet NIC のインタフェースを同じグループに構成できます。別の例として、2 つの 100M ビット Ethernet NIC を持っているとします。インタフェースのどちらかを 10M ビットに下げて構成しても、この 2 つのインタフェースを同じ IPMP グループに配置できます。

メディアタイプの異なる 2 つのインタフェースを 1 つの IPMP グループに配置することはできません。たとえば、ATM インタフェースを Ethernet インタフェースと同じグループに配置することはできません。

障害検出とフェイルオーバー

障害検出」は、インターネット層デバイスへのインタフェースまたはインタフェースからのパスが機能しなくなったことの検出プロセスです。IPMP は、インタフェースでの障害を検出する機能をシステムに提供します。IPMP は、次のタイプの通信障害を検出します。

障害を検出すると、IPMP はフェイルオーバーを開始します。「フェイルオーバー」は、障害が発生したインタフェースから同じグループ内の機能中の物理インタフェースにネットワークアクセスを切り替える自動プロセスです。ネットワークアクセスには、IPv4 のユニキャスト、マルチキャスト、およびブロードキャストと、IPv6 のユニキャストとマルチキャストが含まれます。フェイルオーバーは、IPMP グループ内に複数のインタフェースを構成している場合のみ実行できます。フェイルオーバープロセスにより、ネットワークへのアクセスは中断することなく継続されます。

回復の検出と回復した経路への復帰

回復の検出」は、障害後、 NIC または NIC からインターネット層デバイスへのパスが正しく機能し始めたときの検出プロセスです。NIC が回復されたことを検出すると、IPMP は、ネットワークアクセスを回復されたインタフェースに戻すプロセスである「回復した経路への復帰」を実行します。回復検出が行われるのは、回復した経路への復帰が有効になっている場合のみです。詳細については、「物理インタフェースの回復検出」を参照してください。

ターゲットシステム

検査信号ベースの障害検出は、「ターゲットシステム」を使用して、インタフェースの状態を判断します。各ターゲットシステムは、IPMP グループのメンバーと同じ IP リンクに接続します。 ローカルシステムの in.mpathd デーモンは、ICMP 検査信号メッセージを各ターゲットシステムに送信します。検査信号メッセージは、IPMP グループ内の各インタフェースの状態を判断するのに役立ちます。

検査信号ベースの障害検出での対象システムの使用については、「検査信号ベースの障害検出」を参照してください。

出力負荷の分散

IPMP を構成すると、出力ネットワークパケットは、パケットの順番に影響を与えることなく、複数の NIC に分散されます。このプロセスは、「負荷分散」として知られています。負荷分散の結果、より高いスループットを達成できます。ただし、負荷分散が行われるのは、データが複数の接続を経由して複数の標識に送信される場合だけです。

動的再構成 (DR)

動的再構成」(DR) は、既存の操作にほとんど、またはまったく影響を与えることなく、システムを実行しながらシステムを再構成する機能です。Sun プラットフォームの一部は、DR をサポートしていません。Sun プラットフォームの一部は、特定のタイプのハードウェアの DR だけをサポートする場合があります。NIC の DR をサポートするプラットフォームでは、IPMP を使用して透過的にネットワークアクセスの障害を迂回し、システムのネットワークアクセスは中断なしで継続させることができます。

IPMP がどのように DR をサポートするかについては、「IPMP と動的再構成」を参照してください。

IPMP の基本要件

IPMP は Oracle Solaris に組み込まれており、特殊なハードウェアを必要としません。Oracle Solaris でサポートされているインタフェースはすべて、IPMP と使用できます。ただし、IPMP はネットワーク構成とトポロジに次の要件を課します。

IPMP アドレス指定

IPMP 障害検出は、IPv4 ネットワークと IPv4 および IPv6 のデュアルスタックネットワークで構成できます。IPMP で構成されたインタフェースは、 データアドレスと検査用 IP アドレスという 2 種類のアドレスをサポートしています。

データアドレス

データアドレス」は、起動時または手動で ifconfig コマンドによって NIC のインタフェースに割り当てられる従来の IPv4 および IPv6 アドレスです。標準 IPv4 と、適用できる場合は、インタフェースを通した IPv6 パケットトラフィックは、「データトラフィック」とみなされます。

検査用 IP アドレス

検査用 IP アドレス」は、in.mpathdデーモンが使用する IPMP 固有のアドレスです。検査信号ベースの障害と回復の検出を使用するインタフェースの場合、そのインタフェースは 1 つ以上の検査用 IP アドレスで構成する必要があります。


注 –

DR を使用してプローブベースの障害検出を使用する場合のみ、テストアドレスを構成する必要があります。


in.mpathd デーモンは、検査用 IP アドレスを使用して、「検査信号トラフィック」とも呼ばれる ICMP 検査信号を IP リンク上のほかのターゲットと交換します。検査信号トラフィックは、インタフェースで障害が発生していないかどうかなど、インタフェースと NIC のステータスを判断するのに役立ちます。検査信号は、インタフェースとの送受信パスが正しく機能していることを確認します。

各インタフェースは、IP 検査用 IP アドレスで構成できます。デュアルスタックネットワークのインタフェースの場合、IPv4 検査用 IP アドレス、IPv6 検査用 IP アドレス、または IPv4 と IPv6 検査用 IP アドレスの両方を構成できます。

インタフェースで障害が発生すると、in.mpathd がそれ以降の回復をチェックするために検査信号を送信し続けることができるように、検査用 IP アドレスは障害が発生したインタフェースに留まります。アプリケーションが間違って使用しないように、検査用 IP アドレスは具体的に構成しなければなりません。詳細については、「アプリケーションによる検査用 IP アドレス使用の防止」を参照してください。

検査信号ベースの障害検出については、「検査信号ベースの障害検出」を参照してください。

IPv4 検査用アドレス

一般的に、どの IPv4 アドレスもサブネット上で検査用 IP アドレスとして使用できます。IPv4 検査用 IP アドレスは、ルートが指定できなくても構いません。IPv4 アドレスは、多くのサイトでは限定リソースなので、ルート指定できない RFC 1918 プライベートアドレスを検査用 IP アドレスとして指定したい場合もあります。 in.mpathd デーモンは、ICMP 検査信号を検査用 IP アドレスと同じサブネットのホストとしか交換しません。RFC 1918 形式の検査用 IP アドレスを使用していない場合は、IP リンク上のほかのシステム (ルーターが望ましい) を適切な RFC 1918 サブネットのアドレスで必ず構成してください。この構成により、in.mpathd デーモンは、ターゲットシステムと正常に検査信号を交換できます。

IPMP の例は、192.168.0/24 ネットワークの RFC 1918 アドレスを IPv4 検査用 IP アドレスとして使用します。RFC 1918 プライベートアドレスの詳細については、RFC 1918, Address Allocation for Private Internets を参照してください。

IPv4 検査用 IP アドレスを構成するには、タスク「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

IPv6 検査用 IP アドレス

有効な IPv6 検査用 IP アドレスは、物理インタフェースのリンクローカルアドレスだけです。IPMP 検査用 IP アドレスとして機能する別の IPv6 アドレスは必要ありません。IPv6 リンクローカルアドレスは、インタフェースのメディアアクセスコントロール (MAC) アドレスに基づいています。リンクローカルアドレスは、インタフェースが起動時に IPv6 を使用できるようになったり、ifconfig によって手動で構成された場合に、自動的に構成されます。

インタフェースのリンクローカルアドレスを識別するには、IPv6 が有効なノードで ifconfig interface コマンドを実行します。リンクローカル接頭辞 fe80 で始まるアドレスの出力をチェックします。次の ifconfigNOFAILOVER フラグは、hme0 インタフェースのリンクローカルアドレスfe80::a00:20ff:feb9:17fa/10 が検査用 IP アドレスとして使用されていることを示しています。


hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
        	inet6 fe80::a00:20ff:feb9:17fa/10 

リンクローカルアドレスについては、リンクローカルユニキャストアドレスを参照してください。

IPMP グループですべてのグループのインタフェースに IPv4 と IPv6 の両方が使用される場合には、別個の IPv4 検査用アドレスは必要ない場合があります。in.mpathd デーモンは、IPv6 リンクローカルアドレスを検査用 IP アドレスとして使用します。

IPv6 検査用 IP アドレスを作成するには、タスク「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

アプリケーションによる検査用 IP アドレス使用の防止

検査用 IP アドレスの構成後、アドレスがアプリケーションによって使用されないことを確認する必要があります。確認しなかった場合、インタフェースで障害が発生しても、検査用 IP アドレスはフェイルオーバー操作でフェイルオーバーできないので、アプリケーションを操作できなくなります。IP が一般的なアプリケーションに対して検査用 IP アドレスを選択しないことを確認するために、検査用 IP アドレスを deprecated とマークします。

deprecated (推奨されない) と指定したアドレスは、アプリケーションで明示的に指定されていない限り、通信のソースアドレスとしては選択されません。in.mpathd デーモンは、検査信号トラフィックを送受信するためにこのようなアドレスを明示的に指定します。

IPv6 リンクローカルアドレスは通常ネームサービス内にないので、DNS と NIS アプリケーションは通信のリンクローカルアドレスを使用しません。結果として、IPv6 リンクローカルアドレスを deprecated とマークする必要はなくなります。

IPv4 検査用 IP アドレス を DNS および NIS ネームサービステーブルに配置しないでください。通常はネームサービステーブルには追加されません。

IPMP インタフェースの構成

IPMP 構成は、通常同じ IP リンクに接続された同じシステムの複数の物理インタフェースで構成されます。これらの物理インタフェースは、同じ NIC 上にある場合とない場合があります。これらのインタフェースは、同じ IPMP グループのメンバーとして構成されます。システムは、2 番目の IP リンクに追加インタフェースを持つので、これらのインタフェースを別の IPMP グループとして構成する必要があります。

単独インタフェースは、それ自体の IPMP グループ内で構成できます。単独インタフェースIPMP グループは、複数のインタフェースを持つ IPMP グループと同じように動作します。ただし、インタフェースが 1 つだけの IPMP グループでは、フェイルオーバーと回復した経路への復帰は実行できません。

IP インタフェースからグループを構成するのと同じ手順を使用して、VLAN を IPMP グループに構成することもできます。手順については、「IPMP グループの構成」を参照してください。VLAN を IPMP グループに構成する際には、「IPMP の基本要件」に記載されているのと同じ要件が適用されます。


注意 – 注意 –

VLAN を IPMP グループとして構成するときに、VLAN の命名に使用される規則によってエラーが生じることがあります。VLAN 名の詳細については、「VLAN タグと物理接続点」 in 『System Administration Guide: IP Services』を参照してください。bge1000bge1001bge2000bge2001 という 4 つの VLAN の例を考えてみます。IPMP の実装では、これらの VLAN を次のようにグループ化する必要があります。つまり、bge1000bge1001 は同じ VLAN 1 の 1 つのグループに属し、bge2000bge2001 は同じ VLAN 2 の別のグループに属すことが必要です。VLAN 名が原因で、たとえば bge1000bge2000 など、異なるリンクに属している VLAN を 1 つの IPMP グループに混在させるといった誤りが発生しやすくなっています。


IPMP グループ内の予備インタフェース

IPMP グループ内の「予備インタフェース」は、グループ内のほかのインタフェースで障害が発生しない限り、データトラフィックには使用されません。障害が発生すると、障害が発生したインタフェースのデータアドレスが予備インタフェースに移行されます。移行後、障害が発生したインタフェースが回復されるまで、予備インタフェースはほかのアクティブなインタフェースと同じように扱われます。一部の障害では、待機インタフェースが選択されないことがあります。そのかわり、フェイルオーバーで、待機インタフェースより少ないデータアドレスを持ち、UP として構成されたアクティブなインタフェースが選択されます。

待機インタフェースには検査用 IP アドレスだけを構成します。IPMP では、ifconfig コマンドによって standby として構成したインタフェースにデータアドレスを追加することはできません。このような構成を作成しようとしても失敗します。同様に、すでにデータアドレスを持っているインタフェースを standby として構成しても、それらのアドレスは、自動的に IPMP グループ内の別のインタフェースにフェイルオーバーされます。これらの制限により、インタフェースを standby として設定する前に、ifconfig コマンドを使用して検査用 IP アドレスを -deprecated および failover としてマークする必要があります。待機インタフェースを構成するには、「IPMP グループの待機インタフェースを構成する方法」を参照してください。

一般的な IPMP インタフェースの構成

「IPMP アドレス指定」のとおり、IPMP グループ内のインタフェースは、インタフェースの構成によって、通常のデータトラフィックと検査信号トラフィックを処理します。ifconfig コマンドの IPMP オプションを使用して、構成を行います。

アクティブなインタフェース」とは、データトラフィックと検査信号トラフィックの両方を転送する物理インタフェースです。「複数のインタフェースを持つ IPMP グループを構成する方法」または 「単一インタフェースの IPMP グループを構成する方法」のどちらかのタスクを実行すると、インタフェースが「アクティブ」として構成されます。

次に IPMP 構成の一般的な種類を 2 つ示します。

アクティブ-アクティブ構成

両方のインタフェースが「アクティブ」である 2 つのインタフェースを持つ IPMP グループです。つまり、検査信号とデータの両方のトラフィックが送信されている可能性があります。

アクティブ-待機構成

一方のインタフェースが「待機」として構成されている、2 つのインタフェースを持つ IPMP グループです。

インタフェースのステータスチェック

インタフェースのステータスは、ifconfig インタフェース コマンドを発行してチェックできます。ifconfig ステータスレポートの一般的な情報については、特定のインタフェースに関する情報を入手する方法を参照してください。

たとえば、ifconfig コマンドを使用して、待機インタフェースのステータスを取得できます。待機インタフェースがデータアドレスのホストになっていない場合は、そのインタフェースのステータスには INACTIVE フラグが付いています。このフラグは、ifconfig の出力の インタフェースのステータス行で見ることができます。

IPMP 障害検出とリカバリ機能

in.mpathdデーモンは、次の種類の障害検出を処理します。

in.mpathd デーモンがどのようにインタフェース障害の検出を処理するかについては、in.mpathd(1M) のマニュアルページに詳細に説明されています。

リンクベースの障害検出

リンクベースの障害検出は、インタフェースがその種の障害検出をサポートしている場合は、常に有効です。次の Sun ネットワークドライバは、Oracle Solaris の現在のリリースでサポートされています。

サン以外のインタフェースがリンクベースの障害検出をサポートしているかどうかを判断するには、メーカーのマニュアルを参照してください。

これらのネットワークインタフェースドライバは、インタフェースのリンク状態を監視し、リンク状態が変わったときにネットワークサブシステムに通知します。変更を通知されると、ネットワークサブシステムは、インタフェースの RUNNING フラグを適宜設定または解除します。インタフェースの RUNNING フラグが解除されたことを検出すると、デーモンは即座にインタフェースに障害があるものとみなします。

検査信号ベースの障害検出

in.mpathd デーモンは、検査用 IP アドレスを持つ IPMP グループの各インタフェースで検査信号ベースの障害検出を実行します。検査信号ベースの障害検出では、検査用 IP アドレスを使用して ICMP 検査信号メッセージを送受信します。これらのメッセージは、インタフェースを経由して同じ IP リンクの 1 つ以上のターゲットシステムに届きます。検査用 IP アドレスの紹介については、「検査用 IP アドレス」を参照してください。検査用 IP アドレスの構成については、「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

in.mpathd デーモンは、動的に検査信号を送信するターゲットシステムを検出します。IP リンクに接続されているルーターは、自動的に検査信号のターゲットとして選択されます。リンクにルーターがない場合、in.mpathd は検査信号をリンクの隣接ホストに送信します。ターゲットシステムとして使用するホストの選択にあたっては、すべてのホストを意味するマルチキャストアドレス (IPv4 では 224.0.0.1、IPv6 では ff02::1) にマルチキャストパケットが送信されます。検査信号は、ICMP エコーパケットに応答する最初のいくつかのホストに送信されます。in.mpathd が ICMP エコーパケットに応答したルーターまたはホストを検出できなかった場合、in.mpathd は検査信号ベースの障害を検出できません。

ホストルートを使用して、in.mpathd が使用するターゲットシステムのリストを明示的に構成できます。手順については、「ターゲットシステムの構成」を参照してください。

IPMP グループの各インタフェースが正常に機能するかどうかを確認するために、in.mpathd は、IPMP グループのすべてのインタフェースを通してすべてのターゲットに個別に検査信号を送信します。連続する 5 つの検査信号に対して応答がない場合、in.mpathd はそのインタフェースに障害があるものとみなします。検査信号を発信する頻度は、「障害検出時間」に依存します。障害検出時間のデフォルト値は 10 秒です。ただし、障害検出時間は /etc/default/mpathd ファイルで調整できます。手順については、/etc/default/mpathd ファイルを構成する方法」を参照してください。

回復検出時間が 10 秒の場合、検査信号を発信する頻度はおよそ 2 秒に 1 度になります。最短の回復検出時間は障害検出時間の倍の時間となり、デフォルトは 20 秒です。これは、検査信号に対する応答を連続して 10 回受け取る必要があるためです。障害および回復検出時間は、検査信号ベースの障害検出だけに適用されます。


注 –

VLAN から構成される IPMP グループでは、リンクベースの障害検出が物理リンクごとに実装されるため、そのリンク上のすべての VLAN に影響します。検査信号ベースの障害検出は、VLAN リンクごとに実行されます。たとえば、bge0/bge1 bge1000/bge1001 は、1 つのグループに構成されます。bge0 のケーブルが取り外されると、リンクベースの障害検出では、即時の障害発生場所として bge0bge1000 の両方が報告されます。ただし、bge0 上のすべての検査ターゲットが到達不可能になった場合は、障害発生場所として bge0 のみが報告されます。これは、 bge1000 は自身の VLAN 上の検査ターゲットを持つためです。


グループ障害

グループ障害」は、IPMP グループ内のすべてのインタフェースで同じ時間に障害が起こったと考えられる場合に、発生します。in.mpathd デーモンは、グループ障害に対するフェイルオーバーは実行しません。これは、すべてのターゲットシステムで同時に障害が発生した場合も同様です。この場合 in.mpathd は、現在のすべてのターゲットシステム選択を取り消し、新しくターゲットシステムを見つけます。

物理インタフェースの回復検出

in.mpathd デーモンが回復するインタフェースを考慮できるように、インタフェースに RUNNING フラグを設定する必要があります。検査信号ベースの障害検出を使用する場合、in.mpathdデーモンは、インタフェースが回復したとみなされる前に、10 の連続する検査信号パケットへの応答を受信する必要があります。インタフェースが回復したとみなされると、別のインタフェースにフェイルオーバーしていたアドレスが、回復したインタフェースに復帰されます。障害前に「アクティブ」として構成されていたインタフェースは、回復後、トラフィックの送受信を再開できます。

インタフェースのフェイルオーバー時の処理

次の 2 つの例は、一般的な構成とインタフェースの障害時に構成がどのように自動的に変更されるかを示します。hme0 インタフェースに障害が発生すると、すべてのデータアドレスが hme0 から hme1 に移されます。


例 30–1 インタフェースに障害が発生する前のインタフェース構成


hme0: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
     mtu 1500 index 2
     inet 192.168.85.19 netmask ffffff00 broadcast 192.168.85.255
     groupname test
hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
     mtu 1500 
     index 2 inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255
hme1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
8     inet 192.168.85.20 netmask ffffff00 broadcast 192.168.85.255
     groupname test
hme1:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
     mtu 1500 
     index 2 inet 192.168.85.22 netmask ffffff00 broadcast 192.168.85.255
hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
     inet6 fe80::a00:20ff:feb9:19fa/10
     groupname test
hme1: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
     inet6 fe80::a00:20ff:feb9:1bfc/10
     groupname test


例 30–2 インタフェースに障害が発生したあとのインタフェース構成


hme0: flags=19000842<BROADCAST,RUNNING,MULTICAST,IPv4,
      NOFAILOVER,FAILED> mtu 0 index 2
      inet 0.0.0.0 netmask 0 
      groupname test
hme0:1: flags=19040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,
      NOFAILOVER,FAILED> mtu 1500 index 2 
      inet 192.168.85.21 netmask ffffff00 broadcast 10.0.0.255
hme1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
      inet 192.168.85.20 netmask ffffff00 broadcast 192.168.85.255
      groupname test
hme1:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,
      NOFAILOVER> mtu 1500 
      index 2 inet 192.168.85.22 netmask ffffff00 broadcast 10.0.0.255
hme1:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 6
      inet 192.168.85.19 netmask ffffff00 broadcast 192.168.18.255
hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER,FAILED> mtu 1500 index 2
      inet6 fe80::a00:20ff:feb9:19fa/10 
      groupname test
hme1: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
      inet6 fe80::a00:20ff:feb9:1bfc/10 
      groupname test

上記の例では、このインタフェースに障害が発生したことを示す FAILED フラグが hme0 に設定されています。また、hme1:2 が新しく作成されているのがわかります。hme0 の構成は hme1:2 に引き継がれました。アドレス192.168.85.19 は、hme1 によってアクセス可能になります。

192.168.85.19 と関連するマルチキャストメンバーシップは、そのままパケットを受信できますが、パケットの受信は hme1 を通して行われます。アドレス 192.168.85.19hme0 から hme1 にフェイルオーバーされると、ダミーアドレス 0.0.0.0hme0 に作成されます。ダミーアドレスは、hme0 を引き続きアクセスできる状態に保つために作成されます。hme0 がなければ、hme0:1 は存在できません。ダミーアドレスは、回復した経路への復帰時に削除されます。

同様に、IPv6 アドレスが hme0 から hme1 へ移されています。IPv6 では、マルチキャストメンバーシップはインタフェースインデックスに関連付けられています。マルチキャストメンバーシップも、障害経路の迂回処理により、hme0 から hme1 へ移されます。 in.ndpd によって構成されたすべてのアドレスも移動します。この動作は、上記の例には示されていません。

in.mpathd デーモンは引き続き、障害が発生したインタフェースの hme0 を通して検査を行います。デーモンは、デフォルトの回復検出時間 20 秒の間に連続して 10 回の応答を受け取った時点で、インタフェースが回復されたものとみなします。RUNNING フラグも hme0 で設定されるので、デーモンは回復した経路への復帰を呼び出します。回復した経路への復帰が行われると、元の構成が再びリストアされます。

障害時および回復時にコンソールに記録されるすべてのエラーメッセージの説明については、in.mpathd(1M) のマニュアルページを参照してください。

IPMP と動的再構成

動的再構成 (DR) 機能によって、システムの実行中にインタフェースなどのシステムハードウェアを再構成できます。この節では、DR が IPMP とどのように相互運用できるかについて説明します。

NIC の DR をサポートするシステム上では、IPMP を使用して接続を保持したり、既存の接続の切断を防止できます。DR をサポートし、IPMP を使用するシステムの NIC は、安全に接続、切断、または再接続できます。これが可能なのは、IPMP が RCM (Reconfiguration Coordination Manager) フレームワークと統合されているからです。「RCM」は、システムコンポーネントの動的再構成を管理します。

一般的には、cfgadm コマンドを使用して、DR 操作を実行します。ただし、ほかの方法で動的再構成を行うプラットフォームもあります。詳細は、お使いのプラットフォームのマニュアルを参照してください。DR に関する具体的な文書は、次のリソースから得ることができます。

表 30–1 動的再構成の文書リソース

説明 

参照先 

cfgadm コマンドの詳細情報

cfgadm(1m) のマニュアルページ

Sun Cluster 環境での DR に関する具体的な情報 

Sun Cluster 3.1 System Administration Guide

Sun Fire 環境での DR に関する具体的な情報 

Sun Fire 880 Dynamic Reconfiguration Guide

DR と cfgadm コマンドに関する紹介情報

『Solaris のシステム管理 (デバイスとファイルシステム)』の第 6 章「デバイスの動的構成 (手順)」

DR をサポートするシステムでの IPMP グループの管理タスク 

「動的再構成をサポートするシステムでの障害が発生した物理インタフェースの交換」

NIC の接続

How to Configure an IPMP Group With Multiple Interfacesの説明どおり、「複数のインタフェースを持つ IPMP グループを構成する方法」 コマンドを使用して、IPMP グループにいつでもインタフェースを追加できます。よって、システム起動後に接続したシステムコンポーネント上のすべてのインタフェースは plumb され、既存の IPMP グループに追加されます。また、適当であれば、新たに追加したインタフェースを独自の IPMP グループで構成することも可能です。

これらのインタフェースとこれらに構成されたデータアドレスは、IPMP グループによって即座に使用できます。ただし、システムが再起動後、自動的にインタフェースを構成し、使用するようにするには、新しいインタフェースごとに /etc/hostname.interface ファイルを作成する必要があります。手順については、システムインストール後に物理インタフェースを構成する方法を参照してください。

インタフェースの接続時に、/etc/hostname.interface ファイルがすでに存在する場合は、RCM は、このファイルの内容に従って、自動的にインタフェースを構成します。よって、インタフェースは、システム起動後に受け取るのと同じ構成を受け取ります。

NIC の切断

NIC を含むシステムコンポーネントを切断するすべての要求は、まず接続性を保持できるかどうかチェックされます。たとえば、デフォルトでは、IPMP グループ外の NIC を切断することはできません。IPMP グループ内の機能中のインタフェースだけを含む NIC も切断できません。ただし、システムコンポーネントを削除しなければならない場合は、cfgadm(1m) のマニュアルページに説明されている cfgadm-f オプションを使用して、この動作を無効にできます。

チェックが成功すると、切断された NIC に関連するデータアドレスは、切断された NIC で障害が発生した場合のように、同じグループ内の機能中の NIC にフェイルオーバーされます。 NIC が切断されると、NIC のインタフェースのすべての検査用 IP アドレスの構成が解除されます。次に、NIC はシステムを unplumb します。これらの手順のいずれかが失敗した場合、または同じシステムコンポーネントのその他のハードウェアの DR で障害が発生した場合は、前の構成が元の状態にリストアされます。ユーザーは、このイベントに関するステータスメッセージを受け取るはずです。メッセージがない場合は、切断要求は正常に完了しています。システムからコンポーネントを削除できます。既存の接続は切断されません。

NIC の再接続

RCM は、実行中のシステムから切断された NIC と関連する構成情報を記録します。結果として、RCM は、新しい NIC の接続と同様に、以前切断された NIC の再接続を扱います。つまり、RCM は plumb することだけを行います。

ただし、再接続された NIC は、通常既存の /etc/hostname.interface ファイルを持っています。この場合、RCM は、既存の /etc/hostname.interface ファイルの内容に従って、自動的にインタフェースを構成します。さらに、RCM は、再接続されたインタフェースに元々あった各データアドレスを in.mpathdデーモンに通知します。よって、再接続されたインタフェースが正しく機能するようになると、そのすべてのデータアドレスが、回復時のように再接続されたインタフェースに復帰されます。

再接続されている NIC に /etc/hostname.interfaceファイルがない場合は、構成情報は使用できません。RCM は、インタフェースの構成方法に関する情報をまったく持ちません。このため、以前別のインタフェースにフェイルオーバーされたアドレスが回復した経路へ復帰されないことになります。

システム起動時にない NIC

システム起動時にない NIC は、特別な障害検出です。起動時、起動スクリプトは、plumb できない /etc/hostname.interface ファイルを持つインタフェースを追跡します。このようなインタフェースの/etc/hostname.interface ファイル内のデータアドレスは、IPMP グループ内の代替インタフェースに自動的に配置されます。

このような場合は、次のようなエラーメッセージを受け取ります。


moving addresses from failed IPv4 interfaces: hme0 (moved to hme1)
moving addresses from failed IPv6 interfaces: hme0 (moved to hme1)

代替インタフェースが存在しない場合は、次のようなエラーメッセージを受け取ります。


moving addresses from failed IPv4 interfaces: hme0 (couldn't move; 
   no alternative interface) 
 moving addresses from failed IPv6 interfaces: hme0 (couldn't move; 
   no alternative interface) 

注 –

このような障害検出では、不足インタフェースの /etc/hostname.interfaceファイルで明示的に指定されているデータアドレスだけが、代替インタフェースに移されます。通常、RARP または DHCP などのほかの手段で取得されるアドレスは、取得または移動されません。


DR を使用して、システム起動時に不足していた別のインタフェースと同じ名前のインタフェースが再接続される場合、RCM は、インタフェースを自動的に plumb します。次に、RCM は、インタフェースの /etc/hostname.interfaceファイルの内容に従って、インタフェースを構成します。最後に、インタフェースが回復したときのように、RCM はデータアドレスを回復した経路へ復帰させます。よって、最終的なネットワーク構成は、システムが現在のインタフェースで起動された場合と同一の構成になります。

第 31 章 IPMP の管理 (手順)

この章では、IP ネットワークマルチパス (IPMP) でインタフェースグループを管理するための作業を紹介します。この章では、主に次の内容について説明します。

IPMP の概念の概要については、第 30 章IPMP の紹介 (概要)を参照してください。

IPMP の設定 (作業マップ)

この節には、この章で説明する作業へのリンクが含まれています。

IPMP グループの構成と管理 (作業マップ)

作業 

説明 

説明 

IPMP グループの計画 

IPMP グループを構成する以前の補助的な情報と必要な作業をすべて示す 

「IPMP グループの計画を立てる方法」

複数のインタフェースを持つ IPMP インタフェースグループの構成 

複数のインタフェースを IPMP グループのメンバーとして構成する 

「複数のインタフェースを持つ IPMP グループを構成する方法」

インタフェースの 1 つが待機インタフェースである IPMP グループの構成 

マルチインタフェース IPMP グループのインタフェースの 1 つを待機インタフェースとして構成する 

「IPMP グループの待機インタフェースを構成する方法」

1 つのインタフェースで構成される IPMP グループの構成 

単一インタフェースの IPMP グループを作成する  

「単一インタフェースの IPMP グループを構成する方法」

物理インタフェースが属する IPMP グループの表示 

ifconfig コマンドの出力からインタフェースの IPMP グループの名前を取得する方法を説明する

「インタフェースの IPMP グループメンバーシップを表示する方法」

IPMP グループへのインタフェースの追加 

既存の IPMP グループのメンバーとして新しいインタフェースを追加する 

「IPMP グループにインタフェースを追加する方法」

IPMP グループからのインタフェースの削除 

IPMP グループからインタフェースを削除する方法を説明する 

「IPMP グループからインタフェースを削除する方法」

既存の IPMP グループから別のグループへのインタフェースの移動 

IPMP グループ間でインタフェースを移動する 

「インタフェースを 1 つの IPMP グループから別のグループに移動する方法」

in.mpathd デーモンの 3 つのデフォルト設定の変更

in.mpathd デーモンの障害検出時間などのパラメータをカスタマイズする

/etc/default/mpathd ファイルを構成する方法」

動的再構成をサポートするインタフェースでの IPMP の管理 (作業マップ)

作業 

説明 

説明 

障害が発生したインタフェースの削除 

システム内の障害が発生したインタフェースを削除する 

「障害が発生した物理インタフェースを削除する方法 (DR-Detach)」

障害が発生したインタフェースの交換 

障害が発生したインタフェースを交換する 

「障害が発生した物理インタフェースを交換する方法 (DR-Attach)」

起動時に構成されなかったインタフェースの回復 

障害が発生したインタフェースを回復する 

「システムの起動時に存在しない物理インタフェースを回復する方法」

IPMP グループの構成

この節では、IPMP グループの構成手順を紹介します。また、インタフェースを待機インタフェースとして構成する方法についても説明します。

IPMP グループの計画

IPMP グループの一部としてシステム上のインタフェースを構成する前に、構成前の計画を立てる必要があります。

ProcedureIPMP グループの計画を立てる方法

次の手順には、計画作業と IPMP グループを構成する前に収集すべき情報が含まれています。これらの作業は、順番どおり行う必要はありません。

  1. システムのどのインタフェースを IPMP グループの一部とするかを決定します。

    IPMP グループは、通常、同じ IP リンクに接続されている 2 つ以上の物理インタフェースによって構成されています。ただし、必要に応じて、単一インタフェースの IPMP グループを構成することも可能です。IPMP グループの紹介については、「IPMP インタフェースの構成」を参照してください。たとえば、同じ Ethernet スイッチまたは同じ IP サブネットを同じ IPMP グループに構成できます。同じ IPMP グループにはいくつでもインタフェースを構成できます。

    論理インタフェースでは、ifconfig コマンドの group パラメータを使用することはできません。たとえば、group パラメータを hme0 と使用することはできますが、hme0:1 とは使用できません。

  2. グループ内の各インタフェースが一意の MAC アドレスを持っていることを確認します。

    手順については、「SPARC: インタフェースの MAC アドレスが一意であることを確認する方法」を参照してください。

  3. IPMP グループの名前を選択します。

    空文字以外であれば、どんなグループ名でも構いません。インタフェースが接続されている IP リンクを識別する名前を使用するのが良いでしょう。

  4. STREAMS モジュールの同じセットが転送され、IPMP グループ内のすべてのインタフェースで構成されていることを確認します。

    同じグループのすべてのインタフェースは、同じ順番で構成された STREAMS モジュールを持っていなければなりません。

    1. 予想される IPMP グループのすべてのインタフェースの STREAMS モジュールの順番を確認します。

      ifconfig interface modlist コマンドを使用して、STREAMS モジュールの一覧を印刷できます。たとえば、hme0 インタフェースの ifconfig 出力は次のようになります。


      # ifconfig hme0 modlist
      	0 arp
      	1 ip
      	2 hme

      この出力の ifconfig hme0 modlist で示されているように、インタフェースは、通常 IP モジュールの直下にネットワークドライバとして存在します。追加構成は必要ありません。

      ただし、NCA や IP フィルタのような一部のテクノロジーは、IP モジュールとネットワークドライバ間に自分自身を STREAMS モジュールとして挿入します。これにより、同じ IPMP グループのインタフェースの動作方法に問題が生じる場合があります。

      STREAMS モジュールの処理状態を把握可能な場合には、グループ内のすべてのインタフェースに同じモジュールを転送している場合でも、フェイルオーバーで予想外の動作が実行される可能性はあります。ただし、IPMP グループのすべてのインタフェースに同じ順番で転送している場合は、処理状態を把握できない STREAMS モジュールを使用できます。

    2. インタフェースのモジュールを IPMP グループでの標準的な順番で転送します。


      ifconfig interface modinsert module-name
      

      ifconfig hme0 modinsert ip
  5. IPMP グループのすべてのインタフェースで同じ IP アドレス指定書式を使用します。

    1 つのインタフェースが IPv4 向けに構成されている場合は、そのグループのすべてのインタフェースを IPv4 向けに構成する必要があります。たとえば、複数の NIC のインタフェースで構成される IPMP グループがあるとします。1 つの NIC のインタフェースに IPv6 アドレス指定を追加すると、IPMP グループ内のすべてのインタフェースを IPv6 によってサポートする構成にする必要があります。

  6. IPMP グループ内のすべてのインタフェースが同じ IP リンクに接続されていることをチェックします。

  7. IPMP グループに、別のネットワークメディアタイプのインタフェースが含まれていないことを確認します。

    グループ化するインタフェースは、/usr/include/net/if_types.h で定義されている同じインタフェースタイプになるべきです。たとえば、1 つの IPMP グループに Ethernet インタフェースとトークンリングインタフェースを組み合わせることはできません。別の例としては、同じ IPMP グループに、トークンバスインタフェースと非同期転送モード (ATM) インタフェースを組み合わせることはできません。

  8. ATM インタフェースを持つ IPMP の場合は、LAN エミュレーションモードで ATM インタフェースを構成します。

    IPMP は、従来型の IP を ATM で使用するインタフェースではサポートされていません。

IPMP グループの構成

この節には、2 つ以上の物理インタフェースを持つ一般的な IPMP グループの構成作業を記載します。

Procedure複数のインタフェースを持つ IPMP グループを構成する方法

次の IPMP グループの構成手順は、VLAN を IPMP グループに構成する際にも適用されます。

始める前に

IPv4 アドレス、および該当する場合は、予想される IPMP グループ内のすべてのインタフェースの IPv6 アドレスを構成しておく必要があります。


注意 – 注意 –

各サブネットまたは L2 ブロードキャストドメインに対して、IPMP グループを 1 つだけ構成する必要があります。詳細については、「IPMP の基本要件」を参照してください。


  1. 構成するインタフェースのシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 各物理インタフェースを IPMP グループを配置します。


    # ifconfig interface group group-name
    

    たとえば、hme0hme1 をグループ testgroup1 の下に配置するには、次のコマンドを入力します。


    # ifconfig hme0 group testgroup1
    # ifconfig hme1 group testgroup1
    

    グループ名には空白文字を使用しないでください。ifconfig ステータスディスプレイは、スペースを表示しません。したがって、違いは一方の名前がスペースを含んでいるだけという 2 つの類似するグループ名は作成しないでください。グループ名の 1 つにスペースが含まれる場合、これらのグループ名はステータスディスプレイでは同じに見えます。

    デュアルスタック環境では、特定のグループにインタフェースの IPv4 インスタンスを配置すると、IPv6 インスタンスが自動的に同じグループに配置されます。

  3. (任意) 1 つ以上の物理インタフェース上で IPv4 検査用 IP アドレスを構成します。

    検査用 IP アドレスを構成する必要があるのは、特定のインタフェースで検査信号ベースの 障害検出を使用する場合だけです。検査用 IP アドレスは、ifconfig コマンドに指定した物理インタフェースの論理インタフェースとして構成されます。

    グループ内の 1 つのインタフェースを待機インタフェースにする場合は、この時点ではそのインタフェースの検査用 IP アドレスを設定しないでください。待機インタフェースの検査用 IP アドレスは、「IPMP グループの待機インタフェースを構成する方法」の作業の一環として設定します。

    検査用 IP アドレスを設定するには、次の構文の ifconfig コマンドを使用します。


    # ifconfig interface addif ip-address parameters -failover deprecated up
    

    たとえば、一次ネットワークインタフェース hme0 には次の検査用 IP アドレスを作成します。


    # ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up
    

    このコマンドは、一次ネットワークインタフェース hme0 に対して次のパラメータを設定します。

    • アドレスを 192.168.85.21 に設定する。

    • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

    • -failoverdeprecated を指定


      注 –

      この検査用 IP アドレスをアプリケーションから使用されないようにするため IPv4 検査用アドレスを deprecated と指定する必要があります。


  4. 特定のインタフェースの IPv4 構成をチェックします。

    ifconfig interface を入力することによって、インタフェースの現在のステータスを常に参照できます。インタフェースのステータス参照の詳細については、特定のインタフェースに関する情報を入手する方法を参照してください。

    検査用 IP アドレスに割り当てられている論理インタフェースを指定することで、物理インタフェースの検査用 IP アドレス構成に関する情報を取得できます。


    # ifconfig hme0:1
    	hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
        mtu 1500 index 2 
        inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255
  5. (任意) 適用できる場合、IPv6 検査用アドレスを構成します。


    # ifconfig interface inet6 -failover

    IPv6 アドレスを持つ物理インタフェースは、インタフェースの IPv4 アドレスと同じ IPMP グループに配置されます。この状況は、IPv4 アドレスを持つ物理インタフェースを IPMP グループに構成する場合に発生します。まず IPv6 アドレスを持つ物理インタフェースを IPMP グループに配置する場合は、IPv4 アドレスを持つ物理インタフェースも暗示的に同じ IPMP グループに配置されます。

    たとえば、IPv6 検査用 IP アドレスを持つ hme0 を構成するには、次のように入力します。


    # ifconfig hme0 inet6 -failover
    

    検査用 IP アドレスをアプリケーションから使用されないようにするために IPv6 検査用 IP アドレスを deprecated と指定する必要はありません。

  6. IPv6 構成を確認します。


    # ifconfig hme0 inet6
    	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
            	inet6 fe80::a00:20ff:feb9:17fa/10 
            	groupname test

    IPv6 検査用 IP アドレスは、インタフェースのリンクローカルアドレスです。

  7. (任意) リブートしても IPMP グループ構成を保持させます。

    • IPv4 の場合は、次の行を /etc/hostname.interface ファイルに追加します。


      interface-address <parameters> group group-name up \
      	addif logical-interface -failover deprecated <parameters> up

      この例では、検査用 IPv4 アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1、2、および任意で 3 を実行する必要があります。

    • IPv6 の場合は、次の行を /etc/hostname6.interface ファイルに追加します。


      -failover group group-name up

      この検査用 IPv6 アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1、2、および任意で 5 を実行する必要があります。

  8. (任意) 手順 1 - 6 を繰り返して、IPMP グループにさらにインタフェースを追加します。

    実行中のシステムの既存のグループに新しいインタフェースを追加できます。ただし、リブート後は変更の内容は失われます。


例 31–1 2 つのインタフェースを持つ IPMP グループの構成

次の操作を実行したいとします。

次のコマンドを入力します。


# ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up

この検査用 IP アドレスをアプリケーションから使用されないようにするため IPv4 検査用アドレスを deprecated と指定する必要があります。「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

アドレスのフェイルオーバー属性を有効にするには、ダッシュなしで failover オプションを使用します。

IPMP グループのすべての検査用 IP アドレスには、同じネットワークアドレスを使用してください。すべての検査用 IP アドレスは 1 つの IP サブネットに属していなければなりません。



例 31–2 リブート後の IPv4 IPMP グループ構成の保持

次の構成で testgroup1 という名の IPMP グループを作成したいとします。

この場合、/etc/hostname.hme0 ファイルに次の行を追加します。


192.168.85.19 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.21 deprecated -failover netmask + broadcast + up

同様に、2 番目のインタフェース hme1 を同じグループ (testgroup1) に入れ、検査用 IP アドレスを指定するには、次の行を追加します。


192.168.85.20 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.22 deprecated -failover netmask + broadcast + up


例 31–3 リブート後の IPv6 IPMP グループ構成の保持

IPv6 アドレスを持つインタフェース hme0 のテストグループを作成するには、次の行を /etc/hostname6.hme0 ファイルに追加します。


-failover group testgroup1 up

同様に、2 番目のインタフェース hme1 をグループ (testgroup1) に入れ、検査用 IP アドレスを指定するには、次の行を /etc/hostname6.hme1 ファイルに追加します。


-failover group testgroup1 up

注意事項

IPMP グループの構成時、in.mpathd は、システムコンソールまたは syslog ファイルに多数のメッセージを出力します。これらのメッセージは、本質的に参考情報で、IPMP 構成が正しく機能していることを示します。

参照

IPMP グループをアクティブ-待機構成にする場合は、「IPMP グループの待機インタフェースを構成する方法」を参照してください。

ターゲットシステムの構成

検査信号ベースの障害検出では、「検査信号ベースの障害検出」で説明されているようにターゲットシステムを使用します。一部の IPMP グループでは、in.mpathd が使用するデフォルトのターゲットで十分です。ただし、一部の IPMP グループでは、検査信号ベースの障害検出用に特定のターゲットを設定したほうが良いこともあります。ルートテーブルのホストルートを検査信号のターゲットとして設定して、検査信号ベースの障害検出を実行します。経路制御テーブルに構成されているすべてのホストルートは、デフォルトルーターの前に一覧化されます。したがって、IPMP はターゲットを選択するために、明示的に定義されたホストルートを使用します。直接ターゲットを指定するには、 ホストルートを手動で設定するか、起動スクリプトになることができるシェルスクリプトを作成します。

ネットワーク上のどのホストが適切なターゲットになるのかの評価では、 次の基準を検討します。

Procedure検査信号ベースの障害検出のターゲットシステムを手動で指定する方法

  1. 検査信号ベースの障害検出を構成しているシステムにユーザーアカウントでログインします。

  2. 検査信号ベースの障害検出のターゲットとして使用される特定のホストにルートを追加します。


    $ route add -host destination-IP gateway-IP -static
    

    destination-IPgateway-IP の値を、ターゲットとして使用されるホストの IPv4 アドレスと置き換えます。たとえば、IPMP グループ testgroup1 のインタフェースと同じサブネット上のターゲットシステム 192.168.85.137 を指定するには、次のように入力します。


    $ route add -host 192.168.85.137 192.168.85.137 -static 
    
  3. ターゲットシステムとして使用されるネットワーク上の追加ホストにルートを追加します。

Procedureシェルスクリプトでターゲットシステムを指定する方法

  1. IPMP グループを構成したシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 提案したターゲットへの静的なルートを設定するシェルスクリプトを作成します。

    たとえば、次のような内容の ipmp.targets というシェルスクリプトを作成します。


    TARGETS="192.168.85.117 192.168.85.127 192.168.85.137"
    
    case "$1" in
            'start')
                /usr/bin/echo "Adding static routes for use as IPMP targets"
    		for target in $TARGETS; do
    	  /usr/sbin/route add -host $target $target
    		done
                      ;;
            'stop')
                  /usr/bin/echo "Removing static routes for use as IPMP targets"
    		 for target in $TARGETS; do
    		/usr/sbin/route delete -host $target $target
    		 done
                      ;;
      esac  
  3. シェルスクリプトを起動スクリプトディレクトリにコピーします。


     # cp ipmp.targets /etc/init.d  
    
  4. 新しい起動スクリプトのアクセス権を変更します。


    # chmod 744 /etc/init.d/ipmp.targets
    
  5. 新しい起動スクリプトの所有権を変更します。


    # chown root:sys /etc/init.d/ipmp.targets
    
  6. /etc/init.d ディレクトリ内に起動スクリプトのリンクを作成します。


    # ln /etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets
    

    ファイル名 S70ipmp.targets の接頭辞 S70 によって、ほかの起動スクリプトを尊重しながら新しいスクリプトが命令されます。

待機インタフェースの構成

IPMP グループをアクティブ-待機構成にする場合は、この手順を行ってください。この種類の構成についての詳細は、「IPMP インタフェースの構成」を参照してください。

ProcedureIPMP グループの待機インタフェースを構成する方法

始める前に

IPMP グループの構成と検査用 IP アドレスの割り当てについては、「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

  1. 構成する待機インタフェースのシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. インタフェースを待機用として構成し、検査用 IP アドレスを割り当てます。


    # ifconfig interface plumb \
    ip-address other-parameters deprecated -failover standby up
    

    待機インタフェースは、1 つの IP アドレス (検査用 IP アドレス) しか持つことができません。standby up オプションを設定する前に、-failover オプションを設定してください。<other-parameters> の場合は、ifconfig(1m) のマニュアルページに説明されているように、構成で必要なパラメータを使用します。

    • たとえば、IPv4 検査用 IP アドレスを作成するには、次のコマンドを入力します。


      # ifconfig hme1 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up
      
      hme1

      待機インタフェースとして構成する物理インタフェースとして hme1 を定義します。

      192.168.85.22

      この検査用 IP アドレスを待機インタフェースに割り当てます。

      deprecated

      その検査用 IP アドレスが出力パケットには使用されないことを示します。

      -failover

      インタフェースで障害が発生しても、検査用 IP アドレスのフェイルオーバーは行われないことを示します。

      standby

      インタフェースを待機インタフェースに指定します。

    • たとえば、IPv6 検査用 IP アドレスを作成するには、次のコマンドを入力します。


      # ifconfig hme1 plumb -failover standby up
      
  3. 待機インタフェースの構成結果をチェックします。


    # ifconfig hme1
    hme1: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,
          STANDBY,INACTIVE mtu 1500 
             index 4 inet 192.168.85.22 netmask ffffff00 broadcast 19.16.85.255
             groupname test

    INACTIVE は、このインタフェースが送信パケットには使用されないことを示します。この待機インタフェースに障害経路の迂回が行われると、INACTIVE 状態は取り消されます。


    注 –

    ifconfig interface コマンドを入力することによって、インタフェースの現在のステータスを常に参照できます。インタフェースのステータス参照については、「特定のインタフェースに関する情報を入手する方法」を参照してください。


  4. (任意) リブート後も IPv4 待機インタフェースを保持します。

    待機インタフェースを同じ IPMP グループに割り当て、待機インタフェースの検査用 IP アドレスを構成します。

    たとえば、hme1 を待機インタフェースとして構成するには、/etc/hostname.hme1 ファイルに次の行を追加します。


    192.168.85.22 netmask + broadcast + deprecated group test -failover standby up 
  5. (任意) リブート後も IPv6 待機インタフェースを保持します。

    待機インタフェースを同じ IPMP グループに割り当て、待機インタフェースの検査用 IP アドレスを構成します。

    たとえば、hme1 を待機インタフェースとして構成するには、/etc/hostname6.hme1 ファイルに次の行を追加します。


    -failover group test standby up

例 31–4 IPMP グループの待機インタフェースの構成

次の構成に基づいて検査用 IP アドレスを作成するとします。

その場合、次のように入力します。


# ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + \
deprecated -failover standby up

インタフェースは、アドレスが NOFAILOVER として設定されたあとにだけ、待機インタフェースとして設定されます。

次のように入力して、インタフェースの待機ステータスを解除します。


# ifconfig interface -standby

1 つの物理インタフェースを持つ IPMP グループの構成

IPMP グループにインタフェースが 1 つしかない場合は、フェイルオーバーを実行できません。ただし、インタフェースを IPMP グループに割り当てることで、インタフェースの障害検出を有効にすることはできます。単一インタフェースの IPMP グループの障害検出を確立するために、専用テストIP アドレスを構成する必要はありません。単一の IP アドレスを、データの送信と障害検出の両方に使用できます。

Procedure単一インタフェースの IPMP グループを構成する方法

  1. 予想される単一インタフェース IPMP グループのあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. IPv4 の場合は、単一インタフェースの IPMP グループを作成します。

    次の構文で単一インタフェースを IPMP グループに割り当てます。


    # ifconfig interface group group-name
    

    次の例では、インタフェース hme0 が IPMP グループ v4test に割り当てられます。


    # ifconfig hme0 group v4test
    

    この手順の実行後、IPMP によりリンクベースの障害検出がインタフェース上で有効になります。

    また、ifconfig コマンドの -failover サブコマンドを使用して、検査信号ベースの障害検出を有効にすることもできます。次の例は、検査信号ベースの障害検出を hme0 上で有効にします。その際、 hme0 に現在割り当てられている IP アドレスを使用します。


    # ifconfig hme0 -failover
    

    複数インタフェースのグループとは異なり、同じ IP アドレスをデータアドレスと検査用 IP アドレスの両方に使用できます。アプリケーションで検査用 IP アドレスをデータアドレスとして使用できるようにするには、単一インタフェースの IPMP グループで検査用 IP アドレスに deprecated のマークを付けないでください。

  3. IPv6 の場合は、単一インタフェースの IPMP グループを作成します。

    次の構文で単一インタフェースを IPMP グループに割り当てます。


    # ifconfig interface inet6 group group-name
    

    たとえば、単一インタフェース hme0 を IPMP グループ v6test に追加するには、次のように入力します。


    # ifconfig hme0 inet6 group v6test
    

    この手順の実行後、IPMP によりリンクベースの障害検出がインタフェース上で有効になります。

    また、ifconfig コマンドの -failover サブコマンドを使用して、検査信号ベースの障害検出を有効にすることもできます。次の例は、検査信号ベースの障害検出を hme0 上で有効にします。その際、 hme0 に現在割り当てられている IP アドレスを使用します。


    # ifconfig hme0 inet6 -failover
    

    複数インタフェースのグループとは異なり、同じ IP アドレスをデータアドレスと検査用 IP アドレスの両方に使用できます。アプリケーションで検査用 IP アドレスをデータアドレスとして使用できるようにするには、単一インタフェースの IPMP グループで検査用 IP アドレスに deprecated のマークを付けないでください。

    単一物理インタフェース構成では、検査信号が送信されるターゲットシステムで障害が発生しているのか、インタフェースで障害が発生しているのかを確認できません。検査信号の受信システムは、単一の物理インタフェースを介して検査されます。唯一のデフォルトルーターがサブネット上にある場合、単一物理インタフェースがグループ内にあるときは、IPMP をオフにします。IPv4 と IPv6 のデフォルトルーターが別個に存在する場合 (または複数のデフォルトルーターが存在する場合) は、検査信号のターゲットシステムは 2 つ以上あります。よって、IPMP を安全にオンに設定できます。

IPMP グループの維持

この節には、既存の IPMP グループとこれらのグループを構成するインタフェースを維持する作業を記載します。「IPMP グループの構成」の説明に従って、すでに IPMP グループを構成していることが前提です。

Procedureインタフェースの IPMP グループメンバーシップを表示する方法

  1. IPMP グループ構成を持つシステムで、スーパーユーザーまたは同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. インタフェースが属するグループなど、インタフェースに関する情報を表示します。


    # ifconfig interface
    
  3. 適切な場合は、インタフェースの IPv6 情報を表示します。


    # ifconfig interface inet6
    

例 31–5 物理インタフェースグループの表示

hme0 のグループ名を表示するには、次のように入力します。


# ifconfig hme0
	hme0: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 
      index 2 inet 192.168.85.19 netmask ffffff00 broadcast 192.168.85.255
      groupname testgroup1

IPv6 情報だけのグループ名を表示するには、次のように入力します。


# ifconfig hme0 inet6
	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        	inet6 fe80::a00:20ff:feb9:19fa/10 
        	groupname testgroup1

ProcedureIPMP グループにインタフェースを追加する方法

  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. IPMP グループへインタフェースを追加します。


    # ifconfig interface group group-name
    

    interface で指定したインタフェースが、IPMP グループ group-name のメンバーになります。


例 31–6 IPMP グループへのインタフェースの追加

hme0 を IPMP グループ testgroup2 に追加するには、次のコマンドを入力します。


# ifconfig hme0 group testgroup2
  hme0: flags=9000843<UP ,BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER> mtu 1500 index 2
  inet 192.168.85.19 netmask ff000000 broadcast 10.255.255.255
  groupname testgroup2
  ether 8:0:20:c1:8b:c3 

ProcedureIPMP グループからインタフェースを削除する方法

ifconfig コマンドの group パラメータに空文字列を指定すると、インタフェースが現在の IPMP グループから削除されます 。グループからインタフェースを削除する場合は、慎重に行う必要があります。IPMP グループのほかのインタフェースに障害が発生している場合、障害経路の迂回が行われていることがあります。たとえば、hme0 に障害が発生し、すべてのアドレスが、同じグループに属する hme1 に移されたとします。このグループから hme1 を削除するとin.mpathd デーモンはこれらの障害経路の迂回が行われたアドレスをグループ内のほかのインタフェースに戻します。正常に動作しているインタフェースがグループ内になければ障害経路の迂回が行われず、すべてのネットワークアクセスは維持できません。

同様に、グループ内のインタフェースを unplumb する必要がある場合は、まずインタフェースをグループから削除する必要があります。そのあと、構成されたすべての IP アドレスを確実に維持します。これは、グループから削除されるインタフェースの構成を in.mpathd デーモンが再現しようとするからです。インタフェースを unplumb する場合は、その前に構成が再現されていなければなりません。フェイルオーバーの前後のインタフェースの見た目については、「インタフェースのフェイルオーバー時の処理」を参照してください。

  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. IPMP グループからインタフェースを削除します。


    # ifconfig interface group ""

    引用符 ("") は空文字列を表します。


例 31–7 グループからのインタフェースの削除

hme0 を IPMP グループ test から削除するには、次のコマンドを入力します。


# ifconfig hme0 group ""
	# ifconfig hme0
	hme0: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
    index 2 inet 192.168.85.19 netmask ffffff00 broadcast 192.168.85.255
	# ifconfig hme0 inet6
	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
    inet6 fe80::a00:20ff:feb9:19fa/10 

Procedureインタフェースを 1 つの IPMP グループから別のグループに移動する方法

インタフェースが既存の IPMP グループに属している場合は、新しい IPMP グループにインタフェースを配置できます。この場合、現在の IPMP グループからインタフェースを削除する必要はありません。新しいグループに追加されたインタフェースは、既存の IPMP グループから自動的に削除されます。

  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 新しい IPMP グループへインタフェースを移動します。


    # ifconfig interface group group-name
    

    インタフェースを新しいグループに追加すると、そのインタフェースは現在のグループから自動的に削除されます。


例 31–8 別の IPMP グループへのインタフェースの移動

インタフェース hme0 の IPMP グループを変更するには、次のように入力します。


# ifconfig hme0 group cs-link

このコマンドは、hme0 インタフェースを IPMP グループ test から削除し、グループ cs-link に追加します。


動的再構成をサポートするシステムでの障害が発生した物理インタフェースの交換

この節には、動的再構成 (DR) をサポートするシステムを管理する手順を記載します。


注 –

この作業は、ifconfig コマンドを使用して構成される IP 層にしか関係ありません。ATM またはほかのサービスなど、IP 層よりも上位または下位の層が自動化されていない場合には、手動による特別な手順が必要です。次の手順は、切断の前処理でインタフェースの構成を解除し、接続の後処理でインタフェースを構成するために使用します。


Procedure障害が発生した物理インタフェースを削除する方法 (DR-Detach)

この手順では、DR をサポートするシステムの物理インタフェースを削除する方法を示します。ここでは、すでに次の状態が存在していることを想定しています。


注 –

検査用 IP アドレスが /etc/hostname.hme0 ファイルを使用して plumb されている場合は、手順 2 は省略できます。


  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 検査用 IP アドレスの構成を表示します。


    # ifconfig hme0:1
    
    hme0:1:
    flags=9040842<BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
    mtu 1500 index 3
    inet 192.168.233.250 netmask ffffff00 broadcast 192.168.233.255

    この情報は、物理インタフェースを交換する時に、検査用 IP アドレスを再度 plumb するために必要です。

  3. 物理インタフェースを削除します。

    物理インタフェースの削除に関する完全な説明については、次の参考文書を参照してください。

    • cfgadm(1m) のマニュアルページ

    • Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems Dynamic Reconfiguration User's Guide

    • Sun Enterprise 10000 DR Configuration Guide

Procedure障害が発生した物理インタフェースを交換する方法 (DR-Attach)

この手順では、DR をサポートするシステムの物理インタフェースを交換する方法を示します。

  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 物理インタフェースを交換します。

    手順については、次の参考文書を参照してください。

    • cfgadm(1m) のマニュアルページ

    • Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems Dynamic Reconfiguration User's Guide

    • Sun Enterprise 10000 DR Configuration Guide』または『Sun Fire 880 Dynamic Reconfiguration User's Guide

システムの起動時に存在しない物理インタフェースの回復


注 –

この手順は、ifconfig コマンドを使用して構成される IP 層にしか関係ありません。ATM またはほかのサービスなど、IP 層よりも上位または下位の層が自動化されていない場合には、手動による特別な手順が必要です。次の手順は、切断の前処理でインタフェースの構成を解除し、接続の後処理でインタフェースを構成するために使用します。


動的再構成後の回復は、Sun Fire™ プラットフォームの I/O ボードの一部であるインタフェースでは自動的に行われます。NIC が Sun Crypto Accelerator I - cPCI board の場合も、回復は自動的に行われます。よって、インタフェースが DR 操作の一部として戻される場合には、次の手順を行う必要はありません。Sun Fire x800 および Sun Fire 15000 システムの詳細については、cfgadm_sbd(1M) のマニュアルページを参照してください。物理インタフェースは、/etc/hostname.interface ファイルで指定された構成にフェイルオーバーされます。リブートしても構成を保持できるようにインタフェースを構成する方法についての詳細は、「IPMP グループの構成」を参照してください。


注 –

以前の Sun Fire システム (Exx00) の場合には、DR 切り離しは手動で行う必要があります。ただし、DR 接続は自動的に行われます。


Procedureシステムの起動時に存在しない物理インタフェースを回復する方法

システムの起動時に存在しない物理インタフェースを回復するには、次の手順を行なってください。この手順の例は、次のような構成です。


注 –

障害が発生した物理インタフェースの回復時における、IP アドレスの障害回路の迂回には、3 分かかります。この時間は、ネットワークトラフィックによって異なります。また、所要時間は in.mpathd によって障害経路を迂回し回復した着信インタフェースの安定性によっても異なります。


  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. コンソールログの障害エラーメッセージから、障害が発生したネットワークの情報を取得します。

    syslog(3C) のマニュアルページを参照してください。エラーメッセージは次のように表示されます。


    moving addresses from failed IPv4 interfaces:
    hme1 (moved to hme0)

    このメッセージは、障害が発生したインタフェース hme1 の IPv4 アドレスの障害が hme0 インタフェースに迂回されたことを示しています。

    また、次のようなメッセージを受け取ることもあります。


    moving addresses from failed IPv4 interfaces:
    hme1 (couldn't move, no alternative interface)

    このメッセージは、 障害が発生したインタフェース hme1 と同じグループにアクティブなインタフェースを発見できなかったことを示しています。したがって、 hme1 の IPv4 アドレスの障害を迂回することはできません。

  3. システムに物理インタフェースを接続します。

    物理インタフェースの交換方法については、次の参考文書を参照してください。

    • cfgadm(1m) のマニュアルページ

    • Sun Enterprise 10000 DR Configuration Guide

    • Sun Enterprise 6x00, 5x00, 4x00, and 3x00 Systems Dynamic Reconfiguration User's Guide

  4. 手順 2 のエラーメッセージの内容を参照し、アドレスを移動できなかった場合は手順6 へ、アドレスが移動された場合は手順5 へ進んでください。

  5. フェイルオーバープロセスの一環として構成された論理インタフェースを unplumb します。

    1. /etc/hostname. moved-from-interface ファイルの内容から、フェイルオーバー処理の一部として構成された論理インタフェースを確認してください。

    2. 各フェイルオーバー IP アドレスを unplumb します。


      # ifconfig moved-to-interface removeif moved-ip-address
      

      注 –

      フェイルオーバーアドレスは、failover パラメータが指定されたアドレス、または -failover パラメータが指定されていないアドレスです。-failover が指定された IP アドレスは、unplumb する必要がありません。


      たとえば、/etc/hostname.hme0 ファイルの中に次の行が含まれている場合


      inet 10.0.0.4 -failover up group one
      addif 10.0.0.5 failover up
      addif 10.0.0.6 failover up

      各フェイルオーバー IP アドレスを unplumb するためには、次のコマンドを入力します。


      # ifconfig hme0 removeif 10.0.0.5
      # ifconfig hme0 removeif 10.0.0.6
  6. 問題となっている各インタフェース用に次のコマンドを入力して、交換した物理インタフェースの IPv4 情報を再構成します。


    # ifconfig removed-from-NIC <parameters>

    たとえば、次のコマンドを入力します。


    # ifconfig hme1 inet plumb
    # ifconfig hme1 inet 10.0.0.4 -failover up group one
    # ifconfig hme1 addif 10.0.0.5 failover up
    # ifconfig hme1 addif 10.0.0.6 failover up

IPMP 構成の変更

IPMP グループに関連する次のシステム共通パラメータを設定するには、IPMP 構成ファイル /etc/default/mpathd を使用します。

Procedure/etc/default/mpathd ファイルを構成する方法

  1. IPMP グループ構成を持つシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/default/mpathd ファイルを編集します。

    3 つのパラメータの 1 つ以上のデフォルト値を変更します。

    1. FAILURE_DETECTION_TIME パラメータの新しい値を入力します。


      FAILURE_DETECTION_TIME=n
      

      ここで、n は ICMP 検証がインタフェースの障害が発生していないかどうかを検出する時間 (秒単位) です。デフォルトは 10 秒です。

    2. FAILBACK パラメータの新しい値を入力します。


      FAILBACK=[yes | no]
      • yes - 値 yes を指定した場合は、IPMP のデフォルトのフェイルバック動作になります。障害が発生したインタフェースの回復が検出されると、ネットワークアクセスはこの回復したインタフェースに復帰されます。詳細は、「IPMP 障害検出とリカバリ機能」を参照してください。

      • no - no を指定した場合、回復したインタフェースにデータトラフィックが戻ることはありません。障害が発生したインタフェースの回復が検出されると、そのインタフェースに INACTIVE フラグが設定されます。このフラグは、現時点でそのインタフェースをデータトラフィックに使用すべきでないことを示します。ただし、そのインタフェースを検査信号トラフィックに使用することはできます。

        たとえば、IPMP グループが 2 つのインタフェース ce0 と ce1 で構成されているとします。また、/etc/default/mpathd に値 FAILBACK=no が設定されているとします。ce0 で障害が発生した場合、IPMP の期待される動作に従って、そのトラフィックの処理は ce1 に継続されます。ただし、/etc/default/mpathd に FAILBACK=no パラメータが設定されているため、IPMP がce0 の回復を検出してもトラフィックが ce1 から復帰することはありません。ce1 インタフェースに障害が発生しないかぎり、ce0 インタフェースはその INACTIVE 状態を維持し、トラフィックには使用されません。ce1 インタフェースに障害が発生すると、ce1 上のアドレスは ce0 に戻され、ce0 の INACTIVE フラグは消去されます。この移行が発生するのは、ce0 がグループ内で唯一の INACTIVE インタフェースである場合です。グループ内にほかの INACTIVE インタフェースが存在している場合は、ce0 以外の INACTIVE インタフェースにアドレスが移行されることもあります。

    3. TRACK_INTERFACES_ONLY_WITH_GROUPS パラメータの新しい値を入力します。


      TRACK_INTERFACES_ONLY_WITH_GROUPS=[yes | no]
      • yes - 値 yes を指定した場合は、IPMP のデフォルトの動作になります。このパラメータを指定した場合、IPMP は、IPMP グループ内に構成されていないネットワークインタフェースを無視します。

      • no - 値 no を指定すると、IPMP グループ内に構成されているネットワークインタフェースかどうかにかかわらず、すべてのネットワークインタフェースの障害と回復を検出するように設定されます。ただし、IPMP グループ内に構成されていないインタフェースで障害や回復が検出されたときは、フェイルオーバーやフェイルバックは発生しません。したがって、値 no を指定することは、障害の報告には役立ちますが、ネットワークの可用性を直接向上させることはありません。

  3. in.mpathd デーモンを再起動します。


    # pkill -HUP in.mpathd