(57)【要約】【課題】サーバによる機能の提供の高信頼性を確保する。【解決手段】パケットを入出力する複数のポートを備えたスイッチ部と、ルーチングテーブルとを有するパケットスイッチであって、スイッチ部は、複数のポートのうち少なくとも１つを示すポート情報およびアドレスを含む第１のメッセージを複数のポートのいずれかを介して受信し、複数のポートのうちの第１のポートを介してスイッチ部と接続され、第１のポートから出力されたパケットを受け付けて記憶するバッファ部と、第１のメッセージが受信されると、複数のポートのうち当該第１のメッセージに含まれるポート情報が示すポート以外のポートにて受け付けられ、当該第１のメッセージに含まれるアドレスを宛先アドレスとするパケットを第１のポートから出力するようにルーチングテーブルを設定する制御部とを有する。【選択図】図３
2012124700.tif 000002
【特許請求の範囲】
【請求項１】
パケットを入出力する複数のポートを備えたスイッチ部と、前記複数のポートのうちパケットを受け付けたポートと当該パケットを出力するポートとをパケットの宛先アドレスに応じて対応付けて記憶するルーチングテーブルとを有するパケットスイッチであって、
前記スイッチ部は、前記複数のポートのうちの少なくとも１つを示すポート情報、および、アドレスを含む第１のメッセージを前記複数のポートのいずれかを介して受信し、
前記複数のポートのうちの第１のポートを介して前記スイッチ部と接続され、前記第１のポートから出力されたパケットを受け付けて記憶するバッファ部と、
前記第１のメッセージが受信されると、前記複数のポートのうち当該第１のメッセージに含まれるポート情報が示すポート以外のポートにて受け付けられ、当該第１のメッセージに含まれるアドレスを宛先アドレスとするパケットを、前記第１のポートから出力するように前記ルーチングテーブルを設定する制御部と、を有するパケットスイッチ。
【請求項２】
請求項１に記載のパケットスイッチにおいて、
前記スイッチ部は、前記複数のポートのいずれかを介して第２のメッセージを受信し、
前記制御部は、前記第２のメッセージが受信されると、該受信された第２のメッセージに基づいて前記複数のポートの中から第２のポートを決定し、前記第１のポートにて受け付けられたパケットを前記第２のポートから出力するように前記ルーチングテーブルを設定した後、前記バッファ部に記憶されたパケットを出力させるパケットスイッチ。
【請求項３】
請求項２に記載のパケットスイッチにおいて、
前記第２のメッセージは、前記複数のポートのうちのいずれかを示すポート情報を含み、
前記制御部は、前記受信された第２のメッセージに含まれるポート情報が示すポートを前記第２のポートとするパケットスイッチ。
【請求項４】
請求項２に記載のパケットスイッチにおいて、
前記制御部は、前記複数のポートのうち前記第２のメッセージが受信されたポートを前記第２のポートとするパケットスイッチ。
【請求項５】
請求項２乃至４のいずれか１項に記載のパケットスイッチにおいて、
前記制御部は、前記バッファ部に記憶されたパケットがなくなると、前記複数のポートのうち前記第１のメッセージに含まれるポート情報が示すポート以外のポートにて受け付けられ、前記第１のメッセージに含まれるアドレスを宛先アドレスとするパケットを前記第２のポートから出力するように前記ルーチングテーブルを設定するパケットスイッチ。
【請求項６】
請求項２乃至５のいずれか１項に記載のパケットスイッチにおいて、
前記バッファ部は、前記記憶したパケットを所定のレートで出力するパケットスイッチ。
【請求項７】
請求項２乃至６のいずれか１項に記載のパケットスイッチにおいて、
前記バッファ部は、前記記憶したパケットを出力する際、当該パケットが記憶されていた時間が所定の時間よりも短いかどうかを判定し、当該パケットが記憶されていた時間が前記所定の時間よりも短い場合に当該パケットを出力するパケットスイッチ。
【請求項８】
請求項１乃至７のいずれか１項に記載のパケットスイッチにおいて、
前記バッファ部は、前記受け付けたパケットのヘッダ部分が所定のパターンと一致する場合に当該受け付けたパケットを記憶するパケットスイッチ。
【請求項９】
請求項１乃至８のいずれか１項に記載のパケットスイッチにおいて、
前記バッファ部は、前記受け付けたパケットを記憶させるための空きエリアがない場合、当該バッファ部に記憶された複数のパケットのうち最も早い時期に記憶されたパケットを破棄し、当該受け付けたパケットを記憶するパケットスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送するパケットスイッチに関する。
【背景技術】
【０００２】
現在、多様なサーバが多数の利用者に対してネットワークを介して様々な機能を提供するようになってきている。利用者数が増加し、また、提供される機能の重要性が高くなってきていることから、機能の提供の安定性や継続性に対する関心が高まっており、サーバの高信頼性が求められるようになってきている。
【０００３】
そこで、複数のサーバをパケットスイッチで接続しておき、通常運用中に機能を提供する運用サーバのソフトウェアやハードウェアを交換する場合や、運用サーバに障害等が発生した場合に、機能を提供するサーバを運用サーバからバックアップサーバへ切り替える。これにより、機能の提供が中断される時間を短くすることができる。
【０００４】
また、運用サーバに障害等が発生した場合に、複数のバックアップサーバのうちのどのサーバに対してどのソフトウェアの実行を委ねるか、というような機能の提供の継続に向けたサーバ群の管理を行うための技術も考えられている。このような技術が例えば、特許文献１に開示されている。
【０００５】
特許文献１に開示されている技術では、複数のサーバによって機能の提供を行っているシステムにおいて、障害が検出された場合に障害の原因等に応じてどのサーバにどのプロセスの処理を実行させるかを管理している。これにより、機能の提供が中断される時間を可能な限り短くすることができる。
【０００６】
ここで、機能を提供するサーバを切り替えるときの動作の一例を説明する。なお、ここでは、運用サーバのソフトウェアやハードウェアを計画的に交換する場合について説明する。
【０００７】
図５は、機能を提供するサーバを切り替えるときの動作の一例を説明するための図である。
【０００８】
図５に示すパケットスイッチ１００は、パケットを入出力するポート１１ａ〜１１ｃを有するスイッチ部１０１と、制御部１０２と、ルーチングテーブル部１０３とを備えている。サーバ２０，３０は、パケットスイッチ１００を介してネットワーク５０に接続されている。
【０００９】
ルーチングテーブル部１０３は、ルーチングテーブルを記憶している。ルーチングテーブルは、ポート１１ａ〜１１ｃのうち、パケットを受け付けたポートとそのパケットを出力するポートとを、パケットの宛先アドレスに応じて対応付けて記憶している。
【００１０】
スイッチ部１０１は、ポート１１ａ〜１１ｃのそれぞれにてパケットが受け付けられると、受け付けられたポートとそのパケットの宛先アドレスとから、ルーチングテーブルを参照することによってそのパケットを出力するポートを決定する。そして、スイッチ部１０１は、決定したポートからそのパケットを出力する。
【００１１】
制御部１０２は、パケットスイッチ１００全体の動作を制御する。具体的には例えば、ルーチングテーブルの設定および更新や、スイッチ部１１の状態管理を行う。
【００１２】
図５に示した構成においてサーバを切り替える動作は以下に説明するとおりである。なお、ここでは、サーバ２０を運用サーバとし、サーバ３０をバックアップサーバとする。
（手順ａ）サーバ２０は、ネットワーク５０に接続された端末等に対して機能を提供しながらサーバ３０を起動させる。
（手順ｂ）サーバ２０は、機能の提供を継続しながら様々な環境データをサーバ３０へコピーする。
（手順ｃ）サーバ２０は、ネットワーク５０に接続された端末等に対する機能の提供を停止する。
（手順ｄ）サーバ２０は、処理中のサービスに関する状態データをサーバ３０へコピーする。
（手順ｅ）サーバ２０は、サーバ３０を運転状態に移行させる。
（手順ｆ）パケットスイッチ１００の制御部１０２は、ネットワーク５０からサーバ２０へ送信されたパケットが、サーバ３０へ転送されるようにルーチングテーブルを設定する（図５における（Ａ）から（Ｂ）への切り替え）。
【００１３】
以降、サーバ３０が、サーバ２０の処理を引き継ぎ、ネットワーク５０に接続された端末に対する機能の提供が再開される。
【００１４】
上述した（手順ｃ）において、サーバ２０は機能の提供を停止している。これは、サーバ２０からサーバ３０へ状態データのコピーを行っている間にサーバ２０が何らかの処理を行うことにより、サーバ２０の内部状態が変化してしまうことを回避するためである。例えば、サーバ２０からサーバ３０へ状態データのコピーを行っている間にサーバ２０が何らかの処理を行うと、サーバ３０にコピー済みの状態データとの不整合が生じること可能性がある。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特許第４１１２１９１号
【発明の概要】
【発明が解決しようとする課題】
【００１６】
機能を提供するサーバを切り替える動作において、上述した手順ｃから手順ｆまでの間は、運用サーバもバックアップサーバも機能を提供していない。そのため、この間に運用サーバへ送信されたパケットは処理されず、サーバによる機能の提供の高信頼性を確保できないという問題点がある。
【００１７】
なお、サーバ上のソフトウェアの処理を工夫することにより、運用サーバからバックアップサーバへコピーする状態データの量を少なくしたり、コピー処理の性能を改善したりするなどして、手順ｃから手順ｆまでにかかる時間を短縮する取り組みが行われている。しかし、この時間を０にすることは困難である。
【００１８】
また、運用サーバに障害等が発生した場合には、運用サーバのソフトウェアの再起動や、バックアップサーバのソフトウェアの起動などの処理が行われるが、機能の提供が再開されるまでの間に運用サーバへ送信されたパケットは処理されない。
【００１９】
本発明は、サーバによる機能の提供の高信頼性を確保することを可能にするパケットスイッチを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために本発明のパケットスイッチは、パケットを入出力する複数のポートを備えたスイッチ部と、前記複数のポートのうちパケットを受け付けたポートと当該パケットを出力するポートとをパケットの宛先アドレスに応じて対応付けて記憶するルーチングテーブルとを有するパケットスイッチであって、
前記スイッチ部は、前記複数のポートのうちの少なくとも１つを示すポート情報、および、アドレスを含む第１のメッセージを前記複数のポートのいずれかを介して受信し、
前記複数のポートのうちの第１のポートを介して前記スイッチ部と接続され、前記第１のポートから出力されたパケットを受け付けて記憶するバッファ部と、
前記第１のメッセージが受信されると、前記複数のポートのうち当該第１のメッセージに含まれるポート情報が示すポート以外のポートにて受け付けられ、当該第１のメッセージに含まれるアドレスを宛先アドレスとするパケットを、前記第１のポートから出力するように前記ルーチングテーブルを設定する制御部と、を有する。
【発明の効果】
【００２１】
本発明は以上説明したように構成されているので、サーバによる機能の提供がされていない間にそのサーバへ送信されたパケットを一時的にバッファ部に記憶させることができる。
【００２２】
バッファ部に一時的に記憶されたパケットは、機能の提供が再開された後に、機能を提供するサーバに転送されて処理される。そのため、サーバによる機能の提供の高信頼性を確保することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明のパケットスイッチの実施の一形態の構成を示すブロック図である。
【図２】図１に示した大規模バッファ部の構成の一例を示すブロック図である。
【図３】図１および図２に示したパケットスイッチの動作の一例を説明するための図である。
【図４】図１および図２に示したパケットスイッチの動作の他の例を説明するための図である。
【図５】機能を提供するサーバを切り替えるときの動作の一例を説明するための図である。
【発明を実施するための形態】
【００２４】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２５】
図１は、本発明のパケットスイッチの実施の一形態の構成を示すブロック図である。
【００２６】
本実施形態のパケットスイッチ１０は図１に示すように、パケットを入出力するポート１１ａ〜１１ｆを有するスイッチ部１１と、制御部１２と、ルーチングテーブル部１３と、大規模バッファ部１４とを備えている。なお、図１においては、スイッチ部１１が有するポートの数を６個としているが、６個に限定されるものではない。
【００２７】
ルーチングテーブル部１３は、ルーチングテーブルを記憶している。ルーチングテーブルは、ポート１１ａ〜１１ｆのうち、パケットが受け付けられたポートとそのパケットを出力するポートとをパケットの宛先アドレスに応じて対応付けて記憶している。なお、アドレスとは例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。
【００２８】
スイッチ部１１は、ルーチングテーブルに記憶された内容に従ってパケットを転送する。具体的には、スイッチ部１１は、ポート１１ａ〜１１ｆのそれぞれにてパケットが受け付けられると、受け付けられたポートとそのパケットの宛先アドレスとから、ルーチングテーブルを参照することによってそのパケットを出力するポートを決定する。そして、スイッチ部１１は、決定したポートからそのパケットを出力する。また、スイッチ部１１は、ポート１１ａ〜１１ｄを介して接続された端末やサーバなどから送信され、制御部１２を宛先とするメッセージを受信する。このメッセージの詳細については後述する。
【００２９】
制御部１２は、パケットスイッチ１０全体の動作を制御する。具体的には例えば、ルーチングテーブルの設定および更新や、スイッチ部１１の状態管理、大規模バッファ部１４の状態管理や制御を行う。また、制御部１２は、ポート１１ｅを介してスイッチ部１１と接続されており、スイッチ部１１にて受信されたメッセージをポート１１ｅを介して受け付ける。メッセージには例えば、パケットの転送の停止を要求する第１のメッセージである停止要求メッセージや、停止したパケットの転送の再開を要求する第２のメッセージである停止解除要求メッセージがある。停止要求メッセージには、ポート１１ａ〜１１ｆのうちの少なくとも１つを示すポート情報およびアドレスが含まれている。制御部１２は、停止要求メッセージを受け付けると、受け付けた停止要求メッセージに含まれるポート情報およびアドレスに応じてルーチングテーブルを設定する。また、制御部１２は、停止解除要求メッセージを受け付けると、受け付けた停止解除要求メッセージに基づき、ポート１１ａ〜１１ｆの中から第２のポートを決定する。そして、制御部１２は、ポート１１ｆにて受け付けられたパケットを第２のポートから出力するようにルーチングテーブルを設定する。なお、制御部１２がルーチングテーブルを設定する動作の詳細については、後述する動作フローで説明する。
【００３０】
大規模バッファ部１４は、第１のポートであるポート１１ｆを介してスイッチ部と接続されており、ポート１１ｆから出力されたパケットを受け付けて記憶する。
【００３１】
図２は、図１に示した大規模バッファ部１４の構成の一例を示すブロック図である。
【００３２】
図１に示した大規模バッファ部１４は図２に示すように、バッファメモリ１４１と、読み出し部１４２と、書き込み部１４３と、管理部１４４と、レートレジスタ１４５と、タイマ１４６と、最大記憶時間レジスタ１４７と、パターンテーブル１４８とを備えている。
【００３３】
管理部１４４は、大規模バッファ部１４の状態を管理する。なお、制御部１２は、後述するレートレジスタ１４５や、最大記憶時間レジスタ１４７、パターンテーブル１４８の設定を管理部１４４を介して行う。また、制御部１２は、管理部１４４を介してバッファメモリ１４１の空き状態を監視する。
【００３４】
書き込み部１４３は、ポート１１ｆから出力されたパケットを受け付け、受け付けたパケットをバッファメモリ１４１の空きエリアに書き込む。
【００３５】
バッファメモリ１４１は、パケットを記憶するメモリである。バッファメモリ１４１のサイズは、ポート１１ａ〜１１ｆの転送速度とパケットを記憶する最長時間との積によって決定される。例えば、ポート１１ａ〜１１ｆの転送速度が１Ｇｂｐｓで、最長で８０秒間パケットを記憶する場合には、バッファメモリ１４１のサイズは１０Ｇバイトとなる。なお、この場合、バッファメモリ１４１は、パケットの書き込みとパケットの読み出しとを１Ｇｂｐｓの速度で並行して行える性能を有していなければならない。
【００３６】
読み出し部１４２は、管理部１４４を介して制御部１２から読み出し開始の指示を受け付けると、バッファメモリ１４１に記憶されたパケットを読み出して出力する。
【００３７】
ここで、大規模バッファ部１４は図２に示すように、レートレジスタ１４５と、タイマ１４６と、最大記憶時間レジスタ１４７と、パターンテーブル１４８とを備えていてもよい。
【００３８】
レートレジスタ１４５には、バッファメモリ１４１に記憶されたパケットを出力する際の所定のレートが制御部１２によって予め設定されている。レートレジスタ１４５が備えられている場合、読み出し部１４２は、レートレジスタ１４５に設定された所定のレートでバッファメモリ１４１に記憶されたパケットを出力する。
【００３９】
パターンテーブル１４８には、パケットのヘッダ部分の所定のパターンが制御部１２によって予め設定されている。パターンテーブル１４８が備えられている場合、書き込み部１４３は、ポート１１ｆから出力されたパケットを受け付けると、受け付けたパケットのヘッダ部分がパターンテーブル１４８に設定されている所定のパターンと一致するかどうかを判定する。この判定の結果、受け付けたパケットのヘッダ部分がパターンテーブル１４８に設定されている所定のパターンと一致する場合、書き込み部１４３は、受け付けたパケットをバッファメモリ１４１に書き込む。一方、受け付けたパケットのヘッダ部分がパターンテーブル１４８に設定されている所定のパターンと一致しない場合、書き込み部１４３は、受け付けたパケットを破棄する。なお、パターンテーブル１４８には、複数のパターンを設定しておくことも可能である。
【００４０】
タイマ１４６は、時刻を示すカウンタである。また、最大記憶時間レジスタ１４７には、パケットを記憶する最大の時間である最大記憶時間が制御部１２によって予め設定されている。
【００４１】
タイマ１４６と最大記憶時間レジスタ１４７が備えられている場合、書き込み部１４３は、ポート１１ｆから出力されたパケットを受け付けると、受け付けたときのタイマ１４６が示す時刻を、受け付けたパケットとともにバッファメモリ１４１の空きエリアに書き込む。この場合、受け付けたパケットを記憶させるのに必要なメモリのサイズは、時刻を記憶させる分だけ大きくなる。また、読み出し部１４２は、バッファメモリ１４１に記憶されたパケットを読み出すときに、時刻も合わせて読み出す。そして、読み出し部１４２は、パケットを読み出したときのタイマ１４６が示す時刻と、バッファメモリ１４１から読み出した時刻との差を算出する。算出した差が最大記憶時間レジスタ１４７に設定された最大記憶時間よりも小さな場合、読み出し部１４２は、読み出したパケットを出力する。一方、算出した差が最大記憶時間レジスタ１４７に設定された最大記憶時間以上である場合、読み出し部１４２は、読み出したパケットを破棄する。
【００４２】
以下に、上記のように構成されたパケットスイッチ１０の動作について説明する。ここでは、運用サーバのソフトウェアやハードウェアを計画的に交換する場合について説明する。
【００４３】
図３は、図１および図２に示したパケットスイッチ１０の動作の一例を説明するための図である。
【００４４】
図３に示すように、ネットワーク５０、サーバ２０、サーバ３０およびサーバ４０のそれぞれは、ポート１１ａ，１１ｂ，１１ｃ，１１ｄを介してスイッチ部１１に接続されている。なお、ここでは、サーバ２０を運用サーバとし、サーバ３０をバックアップサーバとする。
【００４５】
通常運用中は、宛先アドレスがサーバ２０を示すパケットがポート１１ａ、ポート１１ｃ、ポート１１ｄにて受け付けられると、受け付けられたパケットをポート１１ｂから出力するようにルーチングテーブルが設定されている。これは、図３において（１）および（５）で示されている。
【００４６】
また、通常運用中は、バッファメモリ１４１にはパケットが記憶されておらず、読み出し部１４２は動作を停止している。
【００４７】
（手順１）サーバ２０は、ネットワーク５０に接続された端末等やサーバ４０に対して機能を提供しながらサーバ３０を起動させる。
【００４８】
（手順２）サーバ２０は、機能の提供を継続しながら様々な環境データをサーバ３０へコピーする。
【００４９】
ここまでの動作は、本実施形態のパケットスイッチ１０を用いない場合でも同様である。
【００５０】
（手順３）サーバ２０は、ネットワーク５０に接続された端末等やサーバ４０に対する機能の提供を停止する。このとき、サーバ２０は、ポート１１ｃを示すポート情報とサーバ２０のアドレスとを含む停止要求メッセージを制御部１２へ送信する。制御部１２は、サーバ２０から送信された停止要求メッセージをポート１１ｅを介して受け付けると、サーバ３０，４０およびネットワーク５０と接続されたポート１１ａ，１１ｃ，１１ｄのうちポート１１ｃ以外のポート１１ａ，１１ｄにて受け付けられ、宛先アドレスがサーバ２０を示すパケットをポート１１ｆから出力するようにルーチングテーブルを設定する。これにより、図３の（２）に示すように、ネットワーク５０およびサーバ４０から送信され、宛先アドレスがサーバ２０を示すパケットは、大規模バッファ部１４へ転送されることになる。なお、受け付けた停止要求メッセージに含まれるポート情報が示すポート１１ｃにて受け付けられ、宛先アドレスがサーバ２０を示すパケットは引き続き、図３の（５）に従って転送される。つまり、サーバ３０から送信されたパケットは、大規模バッファ部１４へ転送されることはない。従って、サーバ２０とサーバ３０との間では、通信を行うことが可能である。また、図３には明示的に示していないが、ポート１１ａ〜１１ｆと制御部１２との間の通信については、制御部１２が管理しており、サーバ２０から送信された停止要求メッセージの有無によらず、転送の停止を行わないものとする。
【００５１】
（手順４）サーバ２０は、処理中のサービスに関する状態データをサーバ３０へコピーする。
【００５２】
（手順５）サーバ２０は、サーバ３０を運転状態に移行させる。
【００５３】
手順４および手順５の動作は、本実施形態のパケットスイッチ１０を用いない場合でも同様である。
【００５４】
（手順６）停止解除要求メッセージが制御部１２へ送信される。このとき、サーバ２０がポート１１ｃを示すポート情報を含む停止解除要求メッセージを送信する方法と、サーバ３０が停止解除要求メッセージを送信する方法とがある。前者の方法では、第２のポート、すなわちパケットの新たな転送先が明示的に指定されている。前者の方法では、運用サーバだけではなく、例えばサーバ群の運転状態やサーバの切り替えを管理するサーバなどから、パケットの転送の停止の解除を指示する場合に適している。一方、後者の方法において制御部１２は、ポート１１ａ〜１１ｆのうち停止解除要求メッセージが受け付けられたポートを識別することによって第２のポート、すなわちパケットの新たな転送先を決定することになる。後者の方法では、バックアップサーバが接続されているポートを示すポート情報等をバックアップサーバに設定しておかなくても、パケットの転送を再開することができる。制御部１２は、サーバ２０またはサーバ３０から送信された停止解除要求メッセージをポート１１ｅを介して受け付けると、ポート１１ｆにて受け付けられたパケットをポート１１ｃから出力するようにルーチングテーブルを設定する。これは図３に示す（３）を設定することとなる。そして、制御部１２は、読み出し開始の指示を大規模バッファ部１４へ出力する。これにより、バッファメモリ１４１に記憶されているパケットが出力されてポート１１ｆにて受け付けられ、受け付けられたパケットがポート１１ｃから出力されることになる。つまり、バッファメモリ１４１に記憶されているパケットがサーバ３０へ転送される。なお、この時点では、ポート１１ａ，１１ｄにて受け付けられ、宛先アドレスがサーバ２０を示すパケットは引き続き、ポート１１ｆから出力される。これは、新たに受け付けられたパケットが、大規模バッファ部１４に記憶されているパケットに引き続いて、サーバ３０へ転送されるようにするためである。これにより、パケットの順序の逆転などを回避することができる。なお、ポート１１ｂにて受け付けられ、宛先アドレスがサーバ２０を示すパケットについては、そのまま折り返してポート１１ｂから出力する方法と、破棄する方法が考えられるが、いずれの処理を行うかはパケットスイッチ１０の利用者が設定可能とする。
【００５５】
上記の手順６により、サーバ２０が運用サーバとして行っていた処理を引き継いだサーバ３０は機能を提供できることとなる。
【００５６】
次に、大規模バッファ部１４を経由しているパケット転送を、大規模バッファ部１４を経由しないパケット転送の状態に戻すために、以下に示す手順７が実行される。
【００５７】
（手順７）制御部１２は、バッファメモリ１４１の空き状況を監視する。そして、制御部１２は、バッファメモリ１４１に記憶されたパケットがなくなると、ポート１１ａおよびポート１１ｄにて受け付けられ、宛先アドレスがサーバ２０を示すパケットをポート１１ｃから出力するようにルーチングテーブルを設定する。これにより、図３の（４）に示すように、ネットワーク５０およびサーバ４０から送信され、宛先アドレスがサーバ２０を示すパケットは、サーバ３０へ転送されることになる。そして、制御部１２は、読み出し部１４２の動作を停止させる。これにより、大規模バッファ部１４は、別のサーバの切り替えなどに対応することが可能な状態となる。
【００５８】
このように本実施形態においてパケットスイッチ１０は、停止要求メッセージが受信されると、複数のポートのうち当該停止要求メッセージに含まれるポート情報が示すポート以外のポートにて受け付けられ、当該停止要求メッセージに含まれるアドレスを宛先アドレスとするパケットを、ポート１１ｆから出力するようにルーチングテーブルを設定する。
【００５９】
これにより、運用サーバおよびバックアップサーバがともに機能を提供していない間に運用サーバへ送信されたパケットを一時的に大規模バッファ部１４に記憶させることができる。
【００６０】
大規模バッファ部１４に一時的に記憶されたパケットは、バックアップサーバによる機能の提供が開始された後に、バックアップサーバに転送されて処理される。そのため、サーバによる機能の提供の高信頼性を確保することが可能となる。
【００６１】
また、バッファメモリ１４１を備える大規模バッファ部１４は、スイッチ部１１と接続されており、ポート１１ａ〜１１ｅのいずれにおいて受け付けられたパケットも一時的に記憶することができる。そのため、複数のサーバでバッファメモリ１４１を共有してサーバの切り替えを行うことが可能である。従って、例えば複数のポート毎に設けられているバッファの容量を拡張して一時的にパケットを記憶させる場合と比べ、サーバによる機能の提供の高信頼性を経済的に確保することが可能となる。
【００６２】
また、バックアップサーバが機能を提供するための準備を完了するまでの間には、非常に多くのパケットがバッファメモリ１４１に記憶される可能性がある。バックアップサーバが機能の提供を開始した直後に、バッファメモリ１４１に記憶された非常に多くのパケットが一斉に出力されると、バックアップサーバが輻輳状態に陥ってしまう。
【００６３】
これは、レートレジスタ１４５に設定される所定のレートを、バックアップサーバが輻輳状態に陥らないようなレートにすることによって回避することができる。
【００６４】
また、バックアップサーバが機能を提供するための準備を完了するまでの間には、様々な種類のパケットが様々な端末から送信されている可能性がある。バックアップサーバが機能の提供を開始したときに、これらのパケットの全てを処理するのではなく、これらのパケットのうち機能の提供の継続に不可欠なパケットのみを処理するような対応を行うことも考えられる。
【００６５】
パターンテーブル１４８に設定された所定のパターンと一致するヘッダ部分のパケットだけをバッファメモリ１４１に記憶させることにより、機能の提供の継続に不可欠なパケットだけをバックアップサーバに転送することが可能となる。
【００６６】
また、バックアップサーバが機能を提供するための準備を完了するまでの間に、端末等が運用サーバに向けてパケットを送信した場合、そのパケットを送信した端末等は、一定時間を経過してもそのパケットに対する応答がないと、そのパケットの再送することがある。
【００６７】
端末等がこのような動作を実行する場合、バックアップサーバが機能の提供を開始したときに、端末が再送を行うほど古いパケットについては処理をしないという対応方法も考えられる。
【００６８】
タイマ１４６および最大記憶時間レジスタ１４７を備えることにより、バックアップサーバが処理をする必要のないパケットをバックアップサーバへ転送することを回避することができる。
【００６９】
また、上述したように、停止要求メッセージにおいては、大規模バッファ部１４へのパケットの転送を明示する必要がない。従って、大規模バッファ部１４が接続されているポートを識別するポート情報を運用サーバ等に通知したり、運用サーバ等がポート情報を管理したりする必要がない。
【００７０】
また、停止要求メッセージは、大規模バッファ部１４へのパケットの転送を指示するメッセージではなく、パケットの転送の停止を指示するメッセージである。これにより、大規模バッファ部１４の有無に応じて停止要求メッセージの形式を変更しなくても済む。すなわち、パケットスイッチが停止要求メッセージを受信したとき、そのパケットスイッチが大規模バッファ部１４を備えていれば大規模バッファ部１４にパケットを転送し、大規模バッファ部１４を備えていなければパケットを破棄するということが可能となる。
【００７１】
なお、パケットが大規模バッファ部１４に転送されているときに、バッファメモリ１４１に空きエリアがなくなったときには、バッファメモリ１４１に記憶されている複数のパケットうち最も早い時期に記憶されたパケットを破棄し、大規模バッファ部１４に新たに転送されてきたパケットを記憶するようにしてもよい。これは、バッファメモリ１４１に記憶された時期が早いパケットについては、これを送信した端末が再送の手順などを開始している可能性があるためである。
【００７２】
これにより、バックアップサーバが機能を提供する際に、機能の提供に必要な可能性が高いパケットを大規模バッファ部１４に残しておくことができる。
【００７３】
また、上述した実施形態において停止要求メッセージは、バックアップサーバが接続されたポートのポート情報を含むものとして説明した。ただし、機能を提供するサーバを切り替えるために運用サーバは、切り替えの工程を管理する運用管理サーバ等と通信をする可能性もある。そのため、停止要求メッセージは、バックアップサーバが接続されたポートを示すポート情報だけではなく、このような運用管理サーバ等が接続されたポートのポート情報等も含むようにしてもよい。
【００７４】
ここで、図３を参照しながら説明したのは、運用サーバのソフトウェアやハードウェアを計画的に交換する場合に、機能を提供するサーバを運用サーバからバックアップサーバへ切り替えるときのパケットスイッチ１０の動作であった。
【００７５】
次に、運用サーバに障害等が発生したときのパケットスイッチ１０の動作について説明する。
【００７６】
図４は、図１および図２に示したパケットスイッチ１０の動作の他の例を説明するための図である。ここでは、運用サーバがソフトウェア障害を検出し、運用サーバ内のソフトウェアが再起動されるときのパケットスイッチ１０の動作について説明する。
【００７７】
図４に示すように、ネットワーク５０、サーバ２０およびサーバ４０のそれぞれは、ポート１１ａ，１１ｂ，１１ｄを介してスイッチ部１１に接続されている。また、ここでは、サーバ２０を運用サーバとする。
【００７８】
通常運用中は、宛先アドレスがサーバ２０を示すパケットがポート１１ａ、ポート１１ｄにて受け付けられると、受け付けられたパケットをポート１１ｂから出力するようにルーチングテーブルが設定されている。この状態は、図４において（６）で示されている。
【００７９】
また、通常運用中は、バッファメモリ１４１にはパケットが記憶されておらず、読み出し部１４２は動作を停止している。
【００８０】
サーバ２０がソフトウェア障害を検出し、ソフトウェアの再起動を開始すると、再起動の開始時に停止要求メッセージを制御部１２へ送信する。これにより、制御部１２は、ポート１１ａ，１１ｄにて受け付けられ、宛先アドレスがサーバ２０を示すパケットをポート１１ｆから出力するようにルーチングテーブルを設定する。これにより、図４の（７）に示すように、ネットワーク５０およびサーバ４０から送信され、宛先アドレスがサーバ２０を示すパケットは、大規模バッファ部１４へ転送されることになる。
【００８１】
次に、サーバ２０がソフトウェアの再起動を完了すると、サーバ２０は、停止解除要求メッセージを制御部１２へ送信する。これにより、制御部１２は、図４の（８）に示すように、ポート１１ｆにて受け付けられたパケットをポート１１ｂから出力するようにルーチングテーブルを設定する。そして、制御部１２は、読み出し開始の指示を大規模バッファ部１４へ出力する。これにより、サーバ２０のソフトウェアを再起動している間にサーバ２０へ送信されたパケットが、ソフトウェアの再起動後に処理される。
【００８２】
そして、制御部１２は、バッファメモリ１４１の空き状態を監視する。制御部１２は、バッファメモリ１４１に記憶されたパケットがなくなると、図４の（６）に示すように、ポート１１ａ，１１ｄにて受け付けられ、宛先アドレスがサーバ２０を示すパケットをポート１１ｂから出力するようにルーチングテーブルを設定する。これにより、通常運用中の状態に戻ることになる。
【００８３】
図４を参照しながら説明した動作の場合、運用サーバにおいて障害が発生してから障害が検出されるまでの間にサーバ２０が受信したパケットについては正常に処理されないが、障害が検出された後のパケットについては正常に処理される。
【００８４】
従って、ネットワーク５０に接続された端末等から見ると、見掛け上の中断時間は、パケットスイッチ１０を用いない場合に比べて大きく短縮されることになる。これは、運用サーバにおいてソフトウェアの再起動を行う場合だけでなく、運用サーバ内のデータの再初期化を行ったり、運用サーバ内の２重化した装置を切り替えたりするような場合でも同様である。
【００８５】
つまり、運用サーバに障害等が発生した場合にも、サーバによる機能の提供の高信頼性を確保することが可能となる。
【００８６】
なお、本発明は、従来のパケットスイッチに大規模バッファ部１４を追加し、制御部１２のソフトウェアを変更するなどによって簡単に実現が可能であり、多様なパケットスイッチへの適用が可能である。
【００８７】
特に、サーバ間での状態データの引き継ぎを行いながら、機能提供の継続性を実現するようなサーバを多数収容する可能性が高く、かつ、サーバの機能提供の中断により非常に多数の利用者に影響をあたえてしまう可能性が高い大規模データセンタを構成するパケットスイッチなどに適用されることが想定される。
【符号の説明】
【００８８】
１０    パケットスイッチ
１１    スイッチ部
１１ａ〜１１ｆ    ポート
１２    制御部
１３    ルーチングテーブル部
１４    大規模バッファ部
２０，３０，４０    サーバ
５０    ネットワーク
１４１    バッファメモリ
１４２    読み出し部
１４３    書き込み部
１４４    管理部
１４５    レートレジスタ
１４６    タイマ
１４７    最大記憶時間レジスタ
１４８    パターンテーブル
【図１】
2012124700.tif 000003
【図２】
2012124700.tif 000004
【図３】
2012124700.tif 000005
【図４】
2012124700.tif 000006
【図５】
2012124700.tif 000007