(57)【要約】【課題】低コストで高信頼性のルータ装置を提供すること。【解決手段】ルータ装置１００は、ＱｏＳ管理部１２５がバッファメモリ１２２に障害が発生した場合に、障害の発生に伴ってキューに割り当てられた使用可能なメモリ量が閾値以上となるか否かを判定する（メモリ量が不足するか否かを判定する）。そして、判定結果に基づいてデータ領域が閾値未満となるキューの不足するメモリ量をその他のキューのデータ領域を用いて動的に補う。【選択図】        図１
2008283646.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置にキューを割り当て、伝送対象となるデータを前記キューに一旦記憶した後にデータの伝送を行うルータ装置であって、
前記キューに割り当てられた使用可能なデータ領域の大きさが閾値以上となるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、使用可能なデータ領域の大きさが閾値未満となる補償対象キューのデータ領域を、当該補償対象キュー以外のキューのデータ領域で補う補償手段と、
を備えたことを特徴とするルータ装置。
【請求項２】
前記判定手段は、前記記憶装置にエラーが発生した場合に、割り当てられた使用可能なデータ領域がエラーの発生に伴ってキューに閾値以上となったか否かを判定することを特徴とする請求項１に記載のルータ装置。
【請求項３】
前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを検出し、検出したキューのデータ領域を削減し、削減したデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする請求項１または２に記載のルータ装置。
【請求項４】
前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを複数検出し、検出した各キューのデータ領域を融合し、融合後に生成されるデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする請求項１、２または３に記載のルータ装置。
【請求項５】
前記補償手段は、検出した各キューのうち特徴が類似するキュー同士のデータ領域を融合することを特徴とする請求項４に記載のルータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶装置に所定のデータ領域を有するキューを割り当て、伝送対象となるデータを前記キューに一旦記憶した後にデータの伝送を行うルータ装置に関するものである。
【背景技術】
【０００２】
ネットワーク社会の昨今においては、ネットワークの障害やシステムダウンが及ぼすビジネス上の損失は計り知れないものがあり、基幹のネットワークに配置されるルータ装置では、２４時間３６５日ノンストップで運用することが求められている。そのため、特に高信頼性・安定運用が求められる企業・キャリア向けのルータ装置においては、予期せぬハードウェア故障への対策として、ルータ装置の２重化による冗長構成で耐故障性・信頼性の強化を図っている。
【０００３】
なお、特許文献１では、通信パケットのヘッダの情報およびルータ装置が備えるキューの状態に基づいて、パケットをキューに記憶するか否かを判定することによって、通信速度を向上させるという技術が公開されている。
【０００４】
【特許文献１】特開２００５−３２３２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ルータ装置にかかる耐故障性・信頼性を強化するために、ルータ装置を２重化することはリソースの無駄が多く、コスト的・運用的な側面から実施可能な場所が限られてしまうという問題があった。
【０００６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、低コストで高信頼性のルータ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明は、記憶装置にキューを割り当て、伝送対象となるデータを前記キューに一旦記憶した後にデータの伝送を行うルータ装置であって、前記キューに割り当てられた使用可能なデータ領域の大きさが閾値以上となるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、使用可能なデータ領域の大きさが閾値未満となる補償対象キューのデータ領域を、当該補償対象キュー以外のキューのデータ領域で補う補償手段と、を備えたことを特徴とする。
【０００８】
また、本発明は、上記発明において、前記判定手段は、前記記憶装置にエラーが発生した場合に、割り当てられた使用可能なデータ領域がエラーの発生に伴ってキューに閾値以上となったか否かを判定することを特徴とする。
【０００９】
また、本発明は、上記発明において、前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを検出し、検出したキューのデータ領域を削減し、削減したデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする。
【００１０】
また、本発明は、上記発明において、前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを複数検出し、検出した各キューのデータ領域を融合し、融合後に生成されるデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする。
【００１１】
また、本発明は、上記発明において、前記補償手段は、検出した各キューのうち特徴が類似するキュー同士のデータ領域を融合することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、キューに割り当てられた使用可能なデータ領域の大きさが閾値以上となるか否かを判定し、判定結果に基づいて使用可能なデータ領域の大きさが閾値未満となる補償対象キューの不足するデータ領域を補償対象キュー以外のキューのデータ領域を用いて補うので、内部の構成変更による最小限のレベルダウン・機能制限によって、ハードウェアをノンストップで動作させることが可能となり、信頼性を向上させることができる。また、ルータ装置を二重化する必要がないので、コストを削減することもできる。
【００１３】
また、本発明によれば、記憶装置にエラーが発生した場合に、割り当てられた使用可能なデータ領域がエラーの発生に伴ってキューに閾値以上となったか否かを判定し、キューのデータ領域を補うので、ハードウェアに故障が発生した場合であっても、ハードウェアをノンストップで動作させることが可能となり、信頼性を向上させることができる。
【００１４】
また、本発明によれば、キューのデータ領域の使用率と、キューの優先度と、キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを検出し、検出したキューのデータ領域を削減し、削減したデータ領域を補償対象キューのデータ領域に割り当てるので、内部の構成変更による最小限のレベルダウン・機能制限によって、ハードウェアをノンストップで動作させることが可能となり、信頼性を向上させることができる。
【００１５】
また、本発明によれば、キューのデータ領域の使用率と、キューの優先度と、キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを複数検出し、検出した各キューのデータ領域を融合し、融合後に生成されるデータ領域を補償対象キューのデータ領域に割り当てるので、内部の構成変更による最小限のレベルダウン・機能制限によって、ハードウェアをノンストップで動作させることが可能となり、信頼性を向上させることができる。
【００１６】
また、本発明によれば、各キューのうち特徴が類似するキュー同士のデータ領域を融合するので、内部の構成変更によるレベルダウンを最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明に係るルータ装置の好適な実施の形態を詳細に説明する。
【実施例】
【００１８】
まず、本実施例にかかるルータ装置の概要および特徴について説明する。本実施例にかかるルータ装置は、記憶装置（メモリ等）に所定のデータ領域（メモリ量）を有するキューを割り当て、伝送対象となるデータをキューに一旦記憶した後にデータの伝送を行うルータ装置であり、記憶装置（記憶装置を含んだその他のハードウェア）にエラーが発生した場合に、エラーの発生に伴ってキューに割り当てられた使用可能なデータ領域が閾値以上となるか否かを判定し、判定結果に基づいてデータ領域が閾値未満となるキューの不足するデータ領域をその他のキューのデータ領域を用いて動的に補う。
【００１９】
このように、本実施例にかかるルータ装置は、エラー発生に伴って、データ領域の不足するキューが発生した場合に、不足するデータ領域をその他のキューのデータ領域によって動的に補うので、ハードウェアの一部が故障してエラーが発生した場合であっても、システムを停止させてメモリの再構築を行うことなく、ルータ装置を継続して動作させることができる。
【００２０】
つぎに、本実施例にかかるルータ装置の構成について説明する。図１は、本実施例にかかるルータ装置の構成を示す機能ブロック図である。同図に示すように、このルータ装置１００は、基幹装置１１０と、回線ブレード１２０，１３０とを備えて構成される。なお、ここでは、説明の便宜上、回線ブレード１２０，１３０のみを示すが、このルータ装置１００は、その他複数の回線ブレードを備えているものとする。
【００２１】
基幹装置１１０は、回線ブレード１２０，１３０あるいはその他の回線ブレードからパケットを受信した場合に、受信したパケットの宛先となる回線ブレードにパケットを送信する装置である。基幹装置１１０は、基幹装置１１０全体の制御を行う制御部１１１と、制御部１１１からの制御命令に応答してパケットの伝送先を切り替えるパケットスイッチ１１２とを備えて構成される。
【００２２】
回線ブレード１２０は、物理終端１２１と、バッファメモリ１２２と、フォワーディングエンジン１２３と、統計情報監視部１２４と、ＱｏＳ（Quality  of  Service）管理部１２５とを備えて構成される（回線ブレード１２０および回線ブレード１３０にかかる説明は同様であるので、本実施例では、回線ブレード１２０の説明を行い、回線ブレード１３０の説明を省略する。なお、回線ブレード１２０の物理終端１２１、バッファメモリ１２２、フォワーディングエンジン１２３、統計情報監視部１２４、ＱｏＳ管理部１２５は、それぞれ、回線ブレード１３０の物理終端１３１、バッファメモリ１３２、フォワーディングエンジン１３３、統計情報監視部１３４、ＱｏＳ管理部１３５に対応する）。
【００２３】
このうち、物理終端１２１は、外部装置（図示略）との間でパケットの送受信を行う手段であり、バッファメモリ１２２は、予め設定されたデータ領域（メモリ量）を有する複数のキューを備え、キューごとにパケットを一時的に記憶する記憶部である。
【００２４】
フォワーディングエンジン１２３は、基幹装置１１０のパケットスイッチ１１２にパケットを出力すると共に、パケットスイッチ１１２から出力されるパケットをバッファメモリ１２２に出力する手段である。
【００２５】
統計情報監視部１２４は、伝送されるパケットのバイト数をバッファメモリ１２２に備えられたキューごとにカウントし、各キューから出力されるパケットが占める帯域の割合の情報となる統計情報を生成する処理部である。統計情報に関する詳しい説明は後述する。統計情報監視部１２４は、生成した統計情報をＱｏＳ管理部１２５に出力する。
【００２６】
ＱｏＳ管理部１２５は、バッファメモリ１２２に蓄積されたパケットを、優先度・送信ポート等のパラメータによりクラスわけされた多数のキューに振り分け、スケジューリングしたのちに、近隣のルータ装置に対してパケット中継を行う手段である。
【００２７】
ＱｏＳ管理部１２５は、キュー管理テーブルおよびキュー最適化パラメータを保持しており、かかるキュー管理テーブルおよびキュー最適化パラメータを基にして、メモリ量の不足するキューをその他のキューのメモリ量によって補うこととなる。図２は、キュー管理テーブルのデータ構造の一例を示す図であり、図３は、キュー最適化パラメータのデータ構造の一例を示す図である。
【００２８】
図２に示すように、キュー管理テーブルは、キューを識別するキュー番号と、キューに蓄積可能な最大のデータ容量を示す最大キュー長と、キューに蓄積されているデータ容量を示すキュー長と、キューの優先度（数値が大きいほど優先度が高い）と、キューに割り当てられた帯域の使用率を示す統計情報とを備える。
【００２９】
例えば、キュー番号「１」に対応するキューは、最大キュー長が「１０００」であり、キュー長が「１０」であり、優先度が「７」であり、統計情報が「１００％／１Ｇ（キューに割り当てられた帯域「１Ｇ」を「１００％」使用）」となっている。
【００３０】
続いて、図３の説明に移ると、キュー最適化パラメータは、キューを識別するキュー番号と、キューに割り当てられたデータ領域（メモリ量）の使用率と、キューの優先度と、帯域監視とを備える。使用率、優先度、帯域監視には、それぞれ「１」または「０」の値が記憶される。
【００３１】
使用率に「１」が記憶されている場合には、キューに割り当てられたデータ領域の使用率が高く、パケットがキューに溜まっていることを示す。データ領域の使用率が高く、パケットが溜まっているキューは、削減・融合対象の候補としてエントリーされる。一方、使用率に「０」が記憶されている場合には、キューに割り当てられたデータ領域の使用率が低く、パケットがキューに溜まっていないことを示す。
【００３２】
優先度に「１」が記憶されている場合には、キューの優先度が低いことを示す。優先度の低いキューは、削減・融合対象の候補としてエントリーされる。一方、優先度に「０」が記憶されている場合には、キューの優先度が高いことを示す。
【００３３】
帯域監視に「１」が記憶されている場合には、キューに割り当たられた帯域の使用率が低いことを示す。帯域の使用率が低いキューは、削減・融合対象の候補としてエントリーされる。一方、帯域監視に「０」が記憶されている場合には、キューに割り当てられた帯域の使用率が高いことを示す。
【００３４】
上述した、使用率、優先度、帯域監視に記憶される各パラメータは、図２に示したキュー管理テーブルに基づいて判定（算出）される。詳しい判定方法に関しては後述する。
【００３５】
ここで、ルータ装置１００のキューおよびバッファメモリについて説明する。図４は、ルータ装置のキューおよびバッファメモリを説明するための図である。図４に示すように、各々のキューは、キュー管理テーブル（図２参照）に登録された最大キュー長（廃棄閾値）設定によって、割り当てられたメモリ量が定義されていて、実際のキュー長が最大キュー長（メモリ量）を超えた場合は、パケットが破棄される（Tail  Drop動作）。このような仕組みを持つため、図４に示すような、多数のキューをもつ大規模なルータ装置１００においては、通常の動作中に、バッファメモリ１２２内にパケットがエントリーされていない空間（未使用空間）が多く存在している。
【００３６】
最大キュー長の設定は、パケットがバースト的に入力された時のバッファ数を余分に準備しておかなければならないので、余分に設定されている場合がある。図５は、余分にメモリが確保されたキューの動作例を示す図である。
【００３７】
図５に示す動作例では、２つのキュー１０（優先度７），キュー２０（優先度１）ともメモリが余分に確保されており、キュー１０のメモリ量とキュー２０のメモリ量を減らしても、キュー１０は、１Ｇｂｐｓの性能が確保され、キュー２０は、Tail  Dropされるので、パケットの動作と性能は変わらない。つまり、リアルタイムにキューの設定情報等を監視し、場合により、最大キュー長設定を小さくしたり、キューの削減・融合を図れば、バッファメモリ１２２を有効に活用することが可能となる。
【００３８】
本発明では、ＱｏＳ管理部１２５に新アルゴリズムを適用し、定期的にキュー管理テーブル（図２参照）の各種設定データ（最大キュー長、キュー長、優先度、統計情報）を監視し、キュー最適化パラメータ（図３参照）を算出し、最適化パラメータに基づいて、キューの削減・融合を行う。
【００３９】
キュー番号ｎ（ｎは０以上の整数）のキューの最適化パラメータの使用率をＸ（ｎ）、優先度をＹ（ｎ）、帯域監視をＺ（ｎ）とすると、（１）最大キュー長と実際のキュー長とを比較し、データ領域（メモリ量）の使用率を計算し、使用率が所定値以上となれば、キューにパケットが溜まっているとみなし、Ｘ（ｎ）にｂｉｔを立てる（１を格納する）。使用率が所定値未満であれば、Ｘ（ｎ）に０を格納する。
【００４０】
（２）キューの優先度が所定値未満となるキューには、Ｙ（ｎ）にｂｉｔを立てる（１を格納する）。キューの優先度が所定値以上となるキューには、Ｙ（ｎ）に０を格納する。（３）統計情報を監視し、出力パケットの帯域が所定値未満となるキューには、Ｚ（ｎ）にｂｉｔを立てる（１を格納する）。出力パケットの帯域が所定値以上となるキューには、Ｚ（ｎ）に０を格納する。（１）〜（３）により計算されたキュー最適化パラメータを利用し、キューのチューニングを可能とする。
【００４１】
ここで、キュー最適化パラメータの具体的な計算方法について説明する。図６は、キュー最適化パラメータの算出モデルを示す図である。図６に示すように、ｎ個のキューが搭載され、キュー番号ｎの最大キュー長がＬ（ｎ）、実際のキュー長がＱ（ｎ）、優先度がＰ（ｎ）、流量（統計情報に対応）がＳ（ｎ）となるルータ装置１００の通信環境において、使用率Ｘ（ｎ）、優先度Ｙ（ｎ）、帯域監視Ｚ（ｎ）の計算方法を順に説明する。
【００４２】
（使用率Ｘ（ｎ）の算出方法）
メモリ使用量Ｍ（ｎ）は、
Ｍ（ｎ）＝（Ｌ（ｎ）−Ｑ（ｎ））／Ｌ（ｎ）
によって逐次計算できる。ただし、微小時間で計算を行うと誤差が大きくなるため、複数回のＭ（ｎ）を計算した平均である平均メモリ使用量を使用する。すなわち、
Ｍ（ｎ）＝（ΣＭ（ｎ）／Ａ）
になる（パラメータＡはユーザが任意に設定できるものとする）。
【００４３】
例えば、Ａが６０に設定されていた場合、Ｍ（ｎ）は６０秒間の平均メモリ使用量を示す。すべてのキューに対して、
ｉｆ  Ｍ（ｎ）＞Ｂ  ｔｈｅｎ
Ｘ（ｎ）＝１
ｅｌｓｅ
Ｘ（ｎ）＝０
のルーチンを実施し、キューの最適化パラメータの該当ｂｉｔを１（あるいは０）にする（上記のルーチンにおけるパラメータＢはメモリの使用率の判定基準であり、ユーザが任意設定できるものとする）。この作用により、メモリ使用率が高く、パケットが溜まっているキューが削減・融合対象としてエントリーされる。
【００４４】
（優先度Ｙ（ｎ）の算出方法）
キューの優先度は、キュー毎にレジスタにセットされている値を持っているため（キュー管理テーブルに格納されて管理されているため）、それを利用する。優先度がＣより小さい場合は、キューの最適化パラメータの該当ｂｉｔを１にする（パラメータＣは、ユーザが任意設定できるものとする）。すべてのキューに対して、
ｉｆ  Ｐ（ｎ）＜Ｃ  ｔｈｅｎ
Ｙ（ｎ）＝１
ｅｌｓｅ
Ｙ（ｎ）＝０
のルーチンを実施する。この作用により、優先度の低いキューが、削減・融合対象としてエントリーされる。
【００４５】
（帯域監視Ｚ（ｎ）の算出方法）
Ｓ（ｎ）は、１秒毎に統計情報監視部１２４によって採取される統計カウンタ（伝送されたパケットのバイト数のカウンタ）の差分から計算される。
Ｓ（ｎ）＝（１秒間のバイト数のカウンタの差分）
ただし、微小時間で計算を行うと誤差が大きくなるため、複数回のＳ（ｎ）を計算した平均である平均帯域を使用する。つまり平均帯域
Ｓ（ｎ）＝（ΣＳ（ｎ）／Ａ）
になる。
【００４６】
例えば、Ａが６０に設定されていた場合、Ｓ（ｎ）は６０秒間で平均した帯域を示す。キューの帯域が、出力ポートの帯域のＤ％であれば、キューの最適化パラメータの該当ｂｉｔを１にする（パラメータＤは、ユーザが任意に設定できるものとする）。
【００４７】
つまり、キュー番号ｎの出力ポートの最大帯域ＴｘＰｏｒｔ（ｎ）を用いて、すべてのキューに対して、
ｉｆ  Ｓ（ｎ）＜ＴｘＰｏｒｔ（ｎ）×（Ｄ／１００）  ｔｈｅｎ
Ｚ（ｎ）＝１
ｅｌｓｅ
Ｚ（ｎ）＝０
のルーチンを実施する。この作用により、帯域の低いキューが、削減・融合対象としてエントリーされる。
【００４８】
ＱｏＳ管理部１２５は、各キューのキュー最適化パラメータを参照し、ｂｉｔが多く立っているものをチューニング対象キュー（メモリを削ったり、他のキューとの融合を実施してもよいキュー）とみなす。また、どのビットを重視するかは、ユーザのポリシーに従うことができるものとする。
【００４９】
ＱｏＳ管理部１２５は、通信中にバッファメモリ１２２などにエラー（１ｂｉｔエラー、２ｂｉｔエラー、送受信処理タイムアウトなど）が発生した場合、不良箇所の診断と切り離しを行う。切り離された部分は使用不可能なメモリになり、バッファメモリ１２２のデータ容量が減少する。
【００５０】
その場合、ＱｏＳ管理部１２５は、キュー最適化パラメータに従い、ｂｉｔの多く立っているキューの最大キュー長を減らす。図７は、キューのメモリの削減を説明するための図である。例えば、図７において、ｂｉｔの多く立っているキュー番号「２」のキューに着目すると、キュー「２」の最大キュー長を「１０００」から「１００」に削減したとしても、実際に使用されているキュー長は、「１００」であるため、現状の動作に影響がないことがわかる。
【００５１】
同様に、キュー番号「１００３」のキューに着目すると、キューの最大キュー長を「５００」から「５０」に削減したとしても、実際に使用されているキュー長は「０」であるため、現状の動作に影響がないことがわかる。つまり、チューニング対象キューの最大キュー長を削減しても、最小限の機能レベルダウンでの運用を図ることができる。
【００５２】
すなわち、ＱｏＳ管理部１２５は、削減した分のデータ領域（メモリ量）を、データ領域の不足する（データ領域が所定値未満となる）キューに割り当てることができる。
【００５３】
また、多数のキューを持つルータ装置においては、キューの数を減らすことで、メモリを削減することができる。ＱｏＳ管理部１２５は、キュー最適化パラメータを利用し、キュー最適化パラメータの類似するキューを融合し、一つのキューにまとめることによって、不足するキューのメモリ量を補うことができる。
【００５４】
図８は、類似するキューの融合を説明するための図である。図８に示す例では、キュー最適化パラメータにおいて、キュー番号「３」のキューとキュー番号「１００１」のキューとが類似（一致）している。
【００５５】
図８では、キュー番号「３」の最大キュー長を「２５０」削減し、キュー番号「１００１」の最大キュー長を「５００」削減して、最大キュー長「７５０」の１つのキューに融合することで、「７５０」バッファ分のメモリを削減し、メモリ量の不足するキューの割り当てることができる。類似するキュー同士を融合することは、適当に選ばれたキュー同士の融合よりも遥かに機能のレベルダウンを抑えることができると共に、メモリを削減できる有用な手法である。
【００５６】
本発明にかかるメモリの削減および融合の処理ルーチンは、以下のように行われる。すなわち、ＱｏＳ管理部１２５は、各キューのパラメータＸ（ｎ）、Ｙ（ｎ）、Ｚ（ｎ）を
Ｑ−ＯＰＴ（ｎ）＝ｉ×Ｘ（ｎ）＋ｊ×Ｙ（ｎ）＋ｋ×Ｚ（ｎ）
に代入し、キュー全体の中で、Ｑ−ＯＰＴ（ｎ）が最大となるキューが削減対象のキューとなる。上記のｉ、ｊ、ｋは、Ｘ（ｎ）、Ｙ（ｎ）、Ｚ（ｎ）の重みづけをユーザが任意に設定できるパラメータである。
【００５７】
ＱｏＳ管理部１２５は、Ｑ−ＯＰＴ（ｎ）の値をチェックし、メモリを削減可能なキューであるか否かを判定する。具体的な判定ルーチンは、
ｉｆ（Ｑ−ＯＰＴ（ｎ）＞Ｅ）  ｔｈｅｎ
Ｌ（ｎ）＝Ｌ（ｎ）×Ｆ
となる。このうち、Ｅはメモリを削減するかの閾値を設定するパラメータであり、Ｆはメモリの削減度を設定するパラメータ（０〜１の小数で設定）である。
【００５８】
例えば、Ｑ−ＯＰＴ（ｎ）＝５、Ｅ＝４、Ｆ＝０．５、Ｌ（ｎ）＝１０００のとき、
Ｑ−ＯＰＴ（ｎ）＞４であるので、
Ｌ（ｎ）＝１０００×０．５＝５００
となり、最大キュー長Ｌ（ｎ）は、１０００から５００に削減される（１／２に削減される）。
【００５９】
ところで、ＱｏＳ管理部１２５は、メモリを削減できるキューが存在しない場合、つまり、全てのキューに対するＱ−ＯＰＴ（ｎ）の算出結果が、
Ｑ−ＯＰＴ（ｎ）≦Ｅの場合には、類似するキューの融合を行う。
【００６０】
この場合、ＱｏＳ管理部１２５は、Ｑ−ＯＰＴ（ｎ）が最大となるキューを検出し、検出したキューと出力ポートが同じキューの中でマッチング処理を行う。すなわち、
Ｘ（ｎ）＝Ｘ（ｍ）
Ｙ（ｎ）＝Ｙ（ｍ）
Ｚ（ｎ）＝Ｚ（ｍ）
を満たすキューを探索し、キュー番号「ｍ」となるキューが見つかった場合には、キュー同士の融合が可能となる。
【００６１】
キュー同士の融合を行う場合、ＱｏＳ管理部１２５は、キュー番号「ｎ」のキューとキュー番号「ｍ」のキューとの最大キュー長Ｌ（ｎ）、Ｌ（ｍ）の再計算を行う。具体的な算出ルーチンは、
Ｌ（ｎ）＝（Ｌ（ｎ）＋Ｌ（ｍ））×Ｋ
Ｌ（ｍ）＝０
となる。
【００６２】
パラメータＫは、最大キュー長の削減程度をユーザが任意に設定するためのパラメータであり、メモリ削減処理のＦと同様の効果をもたらす。図８に示す例では、キュー番号「３」のキューとキュー番号「１００１」のキューとが融合対象となり、それぞれの最大キュー長Ｌ（３）＝１０００、Ｌ（１００１）＝５００となっているので、Ｋ＝０．５とすると、
Ｌ（３）＝（Ｌ（３）＋Ｌ（１００１））×Ｋ＝（１０００＋５００）×０．５＝７５０
と計算され、
Ｌ（１００１）は、Ｌ（３）と融合された結果、０となり、Ｌ（３）は、Ｌ（１００１）と融合された結果７５０となる。ここでは、Ｌ（３）とＬ（１００１）を融合した結果、メモリ量を７５０削減しているので、削減したメモリ量７５０をメモリ量の不足するキューに割り当てることができる。
【００６３】
つぎに、図９および図１０を用いて、本実施例にかかるＱｏＳ管理部１２５の処理手順について説明する。図９は、本実施例にかかるＱｏＳ管理部１２５のキュー最適化パラメータ再計算処理を示すフローチャートであり、図１０は、本実施例にかかるＱｏＳ管理部１２５のメモリ補償処理を示すフローチャートである。ＱｏＳ管理部１２５は、図９および図１０に示す各処理を平行して実行する。
【００６４】
まず、図９の説明を行うと、ＱｏＳ管理部１２５は、バッファメモリ１２２に割り当てたキューの状態を監視し、状態が変化したか否かを判定する（ステップＳ１０１）。キューの状態が変化していない場合には（ステップＳ１０２，Ｎｏ）、ステップＳ１０１に移行する。
【００６５】
一方、ＱｏＳ管理部１２５は、キューの状態が変化している場合には、キュー管理テーブルを更新し（ステップＳ１０３）、更新後のキュー管理テーブルに基づいてキュー最適化パラメータを再計算し（ステップＳ１０４）、ステップＳ１０１に移行する。
【００６６】
続いて、図１０の説明を行うと、ＱｏＳ管理部１２５は、ハードウェア（例えば、バッファメモリ１２２）に障害が発生したか否かを判定し（ステップＳ２０１）、障害が発生していない場合には（ステップＳ２０２，Ｎｏ）、ステップＳ２０１に移行する。
【００６７】
一方、障害が発生している場合には（ステップＳ２０２，Ｙｅｓ）、ＱｏＳ管理部１２５は、バッファメモリ１２２の診断を行い（ステップＳ２０３）、異常メモリの切り離しを実施する（ステップＳ２０４）。
【００６８】
そして、ＱｏＳ管理部１２５は、削除メモリ量（メモリ量の不足するキューを補うために割り当てるメモリ量）の計算を行い（ステップＳ２０５）、キュー最適化パラメータを取得する（ステップＳ２０６）。ステップＳ２０６において、ＱｏＳ管理部１２５は、図９のＳ１０４において再計算したキュー最適化パラメータを取得する。また、ＱｏＳ管理部１２５は、ステップＳ２０６において、障害が発生した場合にでも、キューに割り当てられたデータ領域が閾値以上となる場合には、メモリ量の補償を実施する必要がないため、ステップＳ２０１に移行する（図示略）。
【００６９】
続いて、ＱｏＳ管理部１２５は、メモリ量の削減可能なキューが存在するか否かを判定し（ステップＳ２０７）、メモリ量の削減可能なキューが存在する場合には（ステップＳ２０８，Ｙｅｓ）、最大キュー長を削減し（ステップＳ２０９）、必要量、削減できたかを判定し（ステップＳ２１０）、削減できた場合には（ステップＳ２１１，Ｙｅｓ）、処理を終了する。削減できなかった場合には（ステップＳ２１１，Ｎｏ）、ステップＳ２０６に移行する。
【００７０】
一方、メモリ量の削減可能なキューが存在しない場合には（ステップＳ２０８，Ｎｏ）、ＱｏＳ管理部１２５は、類似するキューが存在するか否かを判定し（ステップＳ２１２）、存在する場合には（ステップＳ２１３，Ｙｅｓ）、キューの融合を実行し（ステップＳ２１４）、ステップＳ２１０に移行する。一方、類似するキューが存在しない場合には（ステップＳ２１３，Ｎｏ）、そのままステップＳ２１０に移行する。
【００７１】
このように、ＱｏＳ管理部１２５は、ハードウェアに障害が発生した場合に、補うべきメモリ量を計算し、かかるメモリ量を確保するために、キュー最適化パラメータに基づいて他のキューのメモリ量の削減・融合を行うので、ルータ装置１００を停止することなく、伝送処理を継続させることができる。
【００７２】
上述してきたように、本実施例にかかるルータ装置１００は、ＱｏＳ管理部１２５がバッファメモリ１２２に障害が発生した場合に、障害の発生に伴ってキューに割り当てられた使用可能なメモリ量が閾値以上となるか否かを判定し（メモリ量が不足するか否かを判定し）、判定結果に基づいてデータ領域が閾値未満となるキューの不足するメモリ量をその他のキューのデータ領域を用いて動的に補うので、使用不可能なデータ領域が発生した場合にでも、内部の構成変更による最小限のレベルダウン・機能制限によって、ハードウェアをノンストップで動作させることが可能となり、より信頼性の高い装置を作ることができる。
【００７３】
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７４】
また、図１に示したルータ装置１００の構成は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がＣＰＵ（あるいは、ＭＣＵ、ＭＰＵ）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７５】
図１１は、図１に示した回線ブレード１２０が備えるコンピュータのハードウェア構成を示す図である。このコンピュータ１０は、ユーザからのデータの入力を受け付ける入力装置１１、モニタ１２、ＲＡＭ（Random  Access  Memory）１３、バッファメモリ１４、外部装置とパケット通信を行う物理終端装置１５、基幹装置１１０との間でパケット通信を行うフォワーディングエンジン１６、ＣＰＵ（Central  Processing  Unit）１７、および、ＨＤＤ（Hard  Disk  Drive）１８をバス１９で接続して構成される。
【００７６】
そして、ＨＤＤ１８には、上述した回線ブレード１２０の機能と同様の機能を発揮する統計情報監視プログラム１８ｂ、ＱｏＳ管理プログラム１８ｃが記憶されている。そして、ＣＰＵ１７が統計情報監視プログラム１８ｂ、ＱｏＳ管理プログラム１８ｃをＨＤＤ１８から読み出して実行することにより、上述した回線ブレード１２０の機能部の機能を実現する統計情報監視プロセス１７ａ、ＱｏＳ管理プロセス１７ｂが起動される。この統計情報監視プロセス１７ａ、ＱｏＳ管理プロセス１７ｂは、図１に示した統計情報監視部１２４、ＱｏＳ管理部１２５に対応する。
【００７７】
また、ＨＤＤ１８には、上述した回線ブレード１００に記憶されるデータに対応する各種データ１８ａが記憶される。この各種データ１８ａは、図２に示したキュー管理テーブル、図３に示したキュー最適化パラメータを含む。
【００７８】
ＣＰＵ１７は、各種データ１８ａをＨＤＤ１８に記憶するとともに、各種データ１８ａをＨＤＤ１８から読み出してＲＡＭ１３に格納し、ＲＡＭ１３に格納された各種データ１３ａを利用して各種キューの管理処理を行う。
【００７９】
（付記１）記憶装置にキューを割り当て、伝送対象となるデータを前記キューに一旦記憶した後にデータの伝送を行うルータ装置であって、
前記キューに割り当てられた使用可能なデータ領域の大きさが閾値以上となるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、使用可能なデータ領域の大きさが閾値未満となる補償対象キューのデータ領域を、当該補償対象キュー以外のキューのデータ領域で補う補償手段と、
を備えたことを特徴とするルータ装置。
【００８０】
（付記２）前記判定手段は、前記記憶装置にエラーが発生した場合に、割り当てられた使用可能なデータ領域がエラーの発生に伴ってキューに閾値以上となったか否かを判定することを特徴とする付記１に記載のルータ装置。
【００８１】
（付記３）前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを検出し、検出したキューのデータ領域を削減し、削減したデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする付記１または２に記載のルータ装置。
【００８２】
（付記４）前記補償手段は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを複数検出し、検出した各キューのデータ領域を融合し、融合後に生成されるデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする付記１、２または３に記載のルータ装置。
【００８３】
（付記５）前記補償手段は、検出した各キューのうち特徴が類似するキュー同士のデータ領域を融合することを特徴とする付記４に記載のルータ装置。
【００８４】
（付記６）記憶装置にキューを割り当て、伝送対象となるデータを前記キューに一旦記憶した後にデータの伝送を行うルータ装置のキュー補償方法であって、
前記キューに割り当てられた使用可能なデータ領域の大きさが閾値以上となるか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて使用可能なデータ領域が閾値未満となる補償対象キューのデータ領域を、当該補償対象キュー以外のキューのデータ領域で補う補償工程と、
を含んだことを特徴とするキュー補償方法。
【００８５】
（付記７）前記判定工程は、前記記憶装置にエラーが発生した場合に、割り当てられた使用可能なデータ領域がエラーの発生に伴ってキューに閾値以上となったか否かを判定することを特徴とする付記６に記載のキュー補償方法。
【００８６】
（付記８）前記補償工程は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを検出し、検出したキューのデータ領域を削減し、削減したデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする付記６または７に記載のキュー補償方法。
【００８７】
（付記９）前記補償工程は、前記キューのデータ領域の使用率と、前記キューの優先度と、前記キューの帯域使用率との少なくとも一つを基にしてデータ領域を削減するキューを複数検出し、検出した各キューのデータ領域を融合し、融合後に生成されるデータ領域を前記補償対象キューのデータ領域に割り当てることを特徴とする付記６、７または８に記載のキュー補償方法。
【００８８】
（付記１０）前記補償工程は、検出した各キューのうち特徴が類似するキュー同士のデータ領域を融合することを特徴とする付記９に記載のキュー補償方法。
【産業上の利用可能性】
【００８９】
以上のように、本発明にかかるルータ装置は、パケット伝送を行うルータ等に有用であり、特に、パケットを記憶するメモリに障害が発生し、キューに割り当てられたメモリ量が不足した場合でも、ルータを停止することなく障害対策を実施する必要がある場合に適している。
【図面の簡単な説明】
【００９０】
【図１】本実施例にかかるパケット伝送システムの構成を示す機能ブロック図である。
【図２】キュー管理テーブルのデータ構造の一例を示す図である。
【図３】キュー最適化パラメータのデータ構造の一例を示す図である。
【図４】ルータ装置のキューおよびバッファメモリを説明するための図である。
【図５】余分にメモリが確保されたキューの動作例を示す図である。
【図６】キュー最適化パラメータの算出モデルを示す図である。
【図７】キューのメモリの削減を説明するための図である。
【図８】類似するキューの融合を説明するための図である。
【図９】本実施例にかかるＱｏＳ管理部のキュー最適化パラメータ再計算処理を示すフローチャートである。
【図１０】本実施例にかかるＱｏＳ管理部のメモリ補償処理を示すフローチャートである。
【図１１】図１に示した回線ブレードが備えるコンピュータのハードウェア構成を示す図である。
【符号の説明】
【００９１】
１１    コンピュータ
１２    モニタ
１３    ＲＡＭ
１３ａ，１８ａ  各種データ
１４，１２２，１３２    バッファメモリ
１５    物理終端装置
１６，１２３，１３３    フォワーディングエンジン
１７    ＣＰＵ
１７ａ  統計情報監視プロセス
１７ｂ  ＱｏＳ管理プロセス
１８    ＨＤＤ
１８ｂ  統計情報監視プログラム
１８ｃ  ＱｏＳ管理プログラム
１００    ルータ装置
１１０    基幹装置
１１１    制御部
１１２    パケットスイッチ
１２０，１３０    回線ブレード
１２１，１３１    物理終端
１２４，１３４    統計情報監視部
１２５，１３５    ＱｏＳ管理部
【図１】
2008283646.tif 000003
【図２】
2008283646.tif 000004
【図３】
2008283646.tif 000005
【図４】
2008283646.tif 000006
【図５】
2008283646.tif 000007
【図６】
2008283646.tif 000008
【図７】
2008283646.tif 000009
【図８】
2008283646.tif 000010
【図９】
2008283646.tif 000011
【図１０】
2008283646.tif 000012
【図１１】
2008283646.tif 000013