本方式では、二重化したNICを同一ネットワーク上へ接続し、排他使用(通常運用時は一方のNICを活性状態にして通信を行う。)して伝送路の切替え制御を行います。TCP/IPアプリケーションは、この活性状態の物理インタフェースに設定されたIPアドレスを自システムのIPアドレスとして使用することにより、NICの切替えを意識することなく、相手システムと通信を行うことが可能となります。
図2.6 NIC切替方式による二重化運用例
参考
NIC切替方式では、引継ぎインタフェースとして論理インタフェースを使用します。物理インタフェースのeth0とeth1を使用する場合、引継ぎインタフェースはeth0:1やeth1:1となります。また、論理インタフェースを使用せず、物理インタフェースを引継ぐこともできます。詳細については、“2.1.2.2 切替え機能”を参照してください。
二重化したNICを同一ネットワーク上に接続します。通信先の相手システムは、同一ネットワーク上、またはルータを経由した別ネットワーク上のどちらに接続しても構いません。
マルチベンダ環境下で、それぞれのネットワーク機器(HUB、ルータ等)が二重化機能を持っている場合、これらと組み合わせて全体の信頼性を向上させる効果があります。この場合、二重化の分担範囲もベンダごとに明確化されます。
他社UNIXサーバ、PCサーバ等が混在したマルチベンダ環境下での通信に適しています。
NIC切替方式のシステム構成を、図2.7 NIC切替方式のシステム構成に示します。
図2.7 NIC切替方式のシステム構成
各構成要素とその意味は以下のとおりです。
二重化したNICのうち、最初に活性化して使用する物理インタフェースを表します。
プライマリ物理インタフェースで伝送路異常を検出した場合の切替え先の物理インタフェースを表します。
プライマリまたはセカンダリ物理インタフェースに割当てるIPアドレスを表します。このIPアドレスは常に活性化された状態となっています。指定可能なアドレス形式はIPv4アドレスです。IPv6の場合には、リンクローカルアドレスが自動的に物理IPとして設定されます。
プライマリ物理インタフェース使用時の監視先装置(HUB)のIPアドレスを表します。指定可能なアドレス形式として、IPv4アドレス、およびIPv6アドレスの双方の使用が可能です。
セカンダリ物理インタフェース使用時の監視先装置(HUB)のIPアドレスを表します。指定可能なアドレス形式として、IPv4アドレス、およびIPv6アドレスの双方の使用が可能です。
相手装置と通信するための自側のIPアドレスを表します。なお、物理IPアドレス引継機能を使用する場合には、活性化されません。指定可能なアドレス形式として、IPv4アドレス、およびIPv6アドレスの双方の使用が可能です。なお、物理IPアドレス引継ぎ機能を使用する場合には、活性化されません。物理IPアドレス引継ぎ機能については、“2.1.2.2 切替え機能”を参照してください。
現用NICに接続されたHUBに対して定期的にpingを実行し、その応答を監視します。また、オプションでHUB-HUB間の監視を行うこともできます(“2.4.1 HUB監視機能”を参照)。
現用NICで異常を検出した場合は待機NICへ切替え、待機NIC側から同様の監視を開始します。その後、待機NICでも異常が検出された場合は、伝送路監視は停止します。
なお、待機パトロール機能使用時はすべての伝送路が復旧した場合に自動的に監視が開始されます。
図2.8 NIC切替方式における監視方法
伝送路の切替え時間の目安は[監視間隔(秒)×監視回数]で表されます。監視間隔は1~300秒、監視回数は1~300回の範囲で設定が可能で、デフォルト値はそれぞれ5秒、5回です。
なお、監視の開始直後についてはイーサネットのリンク確立を待ち合わせるために[リンクアップ待ち時間(秒)]が経過するまでは、pingコマンドが失敗しても伝送路異常とはみなしません。リンクアップ待ち時間は1~300秒の範囲で設定が可能であり、デフォルト値は60秒です。ただし、監視間隔×監視回数よりも値が小さい場合にはリンクアップ時間に設定された時間は無視され、監視間隔×監視回数で設定されている時間を採用します。
図2.9 NIC切替方式における異常検出時間
以下の障害を検出することができます。
図2.10 NIC切替方式における有効監視範囲
(a)~(c)は同一の障害として見えるため、これらのうちのいずれであるかを特定することはできません。障害箇所を特定するには、それぞれの機器の調査が更に必要となります。
NIC切替方式による伝送路監視は、システム起動時に自動的に開始され、システム停止時に自動的に停止します。クラスタ運用の場合は、それぞれのノード単位に独立して開始、停止が実行されます。また、運用コマンド(hanetpollコマンド)により、手動で開始、または停止させることも可能です。
異常となった現用NICを非活性状態にし、待機NICを活性状態にして新現用として動作させます。この時、IPアドレスが引き継がれ、自ノードのMACアドレス/IPアドレスが送信元として設定されたARPリクエストパケットが、ブロードキャストで送信されます。
IPの引継ぎ方法として、論理IPアドレス引継ぎ機能、または、物理IPアドレス引継ぎ機能のいずれかを選択できます。
論理IPアドレス引継ぎ機能使用時は、論理IPアドレスおよび物理IPアドレスの両方が引き継がれます。
物理IPアドレス引継ぎ機能使用時は、論理IPアドレスは活性化されないため、物理IPアドレスのみが引き継がれます。なお、IPv6アドレスを使用する場合は、物理IPアドレス引継ぎ機能は利用できません。図2.11 NIC切替方式における異常発生時の切替え動作概要にノード内切替えの例を示します。
異常検出時はシステムログに異常を知らせるメッセージを出力します。また、HUB-HUB間の監視を有効にした場合に、HUB-HUB間に異常が発生した場合にも、システムログに異常を知らせるメッセージを出力します。
図2.11 NIC切替方式における異常発生時の切替え動作概要
監視異常によるNIC切替え発生後、該当のNICが復旧した場合には、hanetnic changeコマンドにより、手動で切戻しを行う必要があります。本コマンドにより、復旧したNICが現用NICとなり、元の運用状態に戻ります。 また、待機パトロール機能を設定することにより、hanetnic changeコマンドを使用せずに、自動的に切戻しを行うことができます。
なお、二重化したNICがすべて異常となった場合は、伝送路監視は停止します。この場合は、ネットワークの復旧後に、必要に応じて、hanetnic changeコマンドによるNICの切戻しまたはhanetpoll off/onコマンドによる監視の再起動をしてください。
参照
詳細については、以下のコマンドを参照してください。
任意のシステムとの通信が可能です。
本方式にて動作可能なユーザアプリケーションの条件は以下のとおりです。
TCP、UDPを利用したTCP/IPアプリケーションである必要があります。
複数のNICを接続し、複数のIPアドレスが定義されているシステム(これをマルチホームホストと呼びます)上でも動作可能である必要があります。例えば、socketアプリケーションの場合、自IPアドレスを、bind関数で固定に設定している、または自IPアドレスは任意でかまわない(通信相手側のアプリケーションはIPアドレスチェック等を行わない)ように動作する必要があります。
仮想インタフェースにIPv4アドレスを設定する場合、冗長化する物理インタフェースにもIPv4アドレスを設定しなければいけません。
仮想インタフェースにIPv6アドレスを設定する場合、冗長化する物理インタフェースにもIPv6アドレスを設定しなければいけません。
仮想インタフェースにIPv4アドレスおよびIPv6アドレスの両方を設定する場合には、冗長化する物理インタフェースにもIPv4アドレスおよびIPv6アドレスの両方を設定しなければいけません。
マルチキャストIPアドレスを使用することはできません。
UDPアプリケーションが、GLSの仮想IPアドレスを使用する場合、以下の注意が必要です。
NIC切替え時に、以下の現象が発生して通信処理ができない場合
送信パケットがロストする。
通信用の関数、sendto(2)が「ENETUNREACH」、bind(2)が「EADDRNOTAVAIL」のエラー番号を通知し、異常復帰する。
この場合、上位アプリケーションのエラー時に、リトライ処理を実施してください。