冗長装置を構成する装置
【課題】
冗長装置において、マスタ装置が障害となった場合の切替先として障害が発生する確率が低い装置を選択し、多重障害を抑止することでネットワークへの影響を軽減することを目的とする。
【解決手段】
装置内で発生するイベントを監視情報として検出条件と共に定義し、監視情報を検出した回数を発生回数格納テーブルに格納する。発生回数格納テーブルに格納した発生回数から装置単位の障害率を算出する。算出した障害率を冗長装置で動作するプロトコルで通知することにより、冗長装置のなかで最も障害率の低い装置をマスタ装置の切替先として選択可能である。また、装置の障害率を可視化することで、障害発生前に装置の部品交換や設定変更等が可能となり、ネットワークの障害率を減らすことができる。
冗長装置において、マスタ装置が障害となった場合の切替先として障害が発生する確率が低い装置を選択し、多重障害を抑止することでネットワークへの影響を軽減することを目的とする。
【解決手段】
装置内で発生するイベントを監視情報として検出条件と共に定義し、監視情報を検出した回数を発生回数格納テーブルに格納する。発生回数格納テーブルに格納した発生回数から装置単位の障害率を算出する。算出した障害率を冗長装置で動作するプロトコルで通知することにより、冗長装置のなかで最も障害率の低い装置をマスタ装置の切替先として選択可能である。また、装置の障害率を可視化することで、障害発生前に装置の部品交換や設定変更等が可能となり、ネットワークの障害率を減らすことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、冗長装置を構成する装置に関し、特に冗長装置を構成する装置において、マスタ装置の切替先を選択する制御技術に関するものである。
【背景技術】
【0002】
ネットワーク装置の冗長化技術には装置を冗長化し、仮想的に1台の装置(冗長装置)として扱うことができる技術が存在する。冗長装置は、プロトコル処理などの制御処理を行うマスタ装置と、マスタ装置からの指示によりパケット中継を行うスレーブ装置で構成される。冗長化技術を有する装置は、マスタ装置で障害が発生した場合に、スレーブ装置をマスタ装置に切り替える装置切替機能を有する。
【0003】
マスタ装置の切替先を選択する一般的な方法として、コンフィグレーションによって装置単位に優先度を設定しておき、冗長装置を構成する装置間でお互いの装置の優先度を通知し合うことにより優先度の高い装置をマスタ装置として選択する方法が用いられている。さらには、装置内でパケット中継が不可能になった事象を検出すると、コンフィグレーションで設定された自装置の優先度を下げて他の装置へ通知することで、自装置がマスタ装置へ切り替わることを抑止し、当該事象が復旧すると元の優先度へ戻して他の装置へ通知することで、マスタ装置への切り替え抑止を解除する方法が用いられている。
【0004】
また、特許文献1には、予備系と運用系を少なくとも1つずつ備えることで冗長化された複数の通信データ処理装置を制御する制御装置において、運用系から収集した情報を基に障害発生確率の高い運用系を予測し、予測した運用系が保持している、障害発生のときに予備系に引き継がれるべき引継情報を、予め予備系に登録させることが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−199675号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
コンフィグレーションで設定した優先度に従いマスタ装置を選択する方法は、ユーザが意図した優先度に従ってマスタ装置を切り替える考え方に基づいているが、装置の運用状況を考慮出来ない。さらには、パケット中継が不可能になった事象を検出するとコンフィグレーションで設定した優先度を下げて通知し事象が復旧すると元の優先度へ戻して通知する方法は、当該事象が何度も発生する装置であっても、コンフィグレーションで設定した優先度に従うため、マスタ装置の切替先として選択されてしまう。
特許文献1の方式では、運用系の障害発生確率を考慮してはいるものの、予備系の障害発生確率については何ら考慮されていない。
【0007】
一般的にマスタ装置の切り替えは、プロトコル処理を行う制御部を切り替えるため、ネットワークに及ぼす影響が大きい。また、切替先の新たなマスタ装置で障害が発生すると、さらにネットワークに及ぼす影響が大きくなってしまう。
そこで、本発明は障害率の低い装置をマスタ装置の切替先として選択することにより、マスタ装置の切り替え後に障害が発生する確率が低減し、ネットワークに及ぼす影響を軽減することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記課題を解決するために、
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、自装置に障害が発生する確率を示す障害率を算出する計算部と、前記計算部が算出した自装置の障害率または障害率を加味した優先度と前記他の装置の障害率または優先度とに基づいて前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択する選択部とを備える装置を提供する。
【発明の効果】
【0009】
本発明によれば、障害率の低い装置をマスタ装置の切替先として選択可能になることで、マスタ装置の切り替え後、障害が発生する確率が低くなり、ネットワークに及ぼす影響を軽減することができる。
【図面の簡単な説明】
【0010】
【図1】冗長装置を適用したネットワークの構成を示す図である。
【図2】装置101の内部構成を示すブロック図である。
【図3】監視情報テーブル111の構成を示す図である。
【図4】冗長装置情報113の構成を示す図である。
【図5】検出回数格納テーブル114の構成を示す図である。
【図6】障害率601を算出するための計算式を示す図である。
【図7】実施例1で使用する冗長装置情報格納テーブル116の構成を示す図である。
【図8】コンフィグレーション制御部121の処理フローを示す図である。
【図9】監視処理部122の処理フローを示す図である。
【図10】障害率計算処理部124の処理フローを示す図である。
【図11】パケット送受信部128がプロトコルの制御パケットを送信する処理フローを示す図である。
【図12】パケット送受信部128がプロトコルの制御パケットを受信する処理フローを示す図である。
【図13】切替先装置選択部125の処理フローを示す図である。
【図14】実施例2における冗長装置情報格納テーブル116の構成を示す構成図である。
【図15】実施例2における障害率計算処理部124の処理フローを示す図である。
【図16】冗長装置表示処理部123の処理フローを示す図である。
【発明を実施するための形態】
【0011】
図1は冗長装置を適用したネットワークの構成を示す図である。ネットワーク装置である3台の装置101a〜101cは冗長化され、冗長装置205を構成している。なお装置101にはa〜cの符号を付しているが、特に各装置を区別する必要がない場合は単に装置101と記載する場合がある。装置101aはマスタ装置であり、装置101b、101cはスレーブ装置である。なおスレーブ装置は2台より多くても良い。各装置101は冗長装置接続パス206で接続しており、詳細は後述するが、それぞれの装置101で算出した障害率を冗長装置205を構成する各装置101間で動作するプロトコルの制御パケットによって通知する。障害率通知207は前記プロトコルの制御パケットによって障害率を通知している様子を示している。また、他のネットワーク装置である装置A201、装置B202、装置C203、装置D204は、冗長装置205とそれぞれ接続し、冗長装置205で中継したパケットの送受信を行う。なお、各装置A201〜装置D204からは冗長装置205は仮想的な1台の装置として認識されている。
【0012】
図2は装置101の内部構成を示すブロック図である。
装置101はルータやスイッチ等のネットワーク装置であり、障害率の計算やマスタ装置の切替先の選択等を行う制御部102と、隣接装置101とパケットの送受信を行うインタフェース部103と、プロトコルの処理や装置の切替処理を行う機能処理部104を有する。
【0013】
制御部102は、保守者などから設定されたコンフィグレーションを格納するコンフィグレーション112と、装置101内で発生するイベントのうち監視対象とするイベントを監視情報として格納する監視情報テーブル111と、装置101の優先度を格納する冗長装置情報113と、監視情報テーブル111で設定した監視情報を検出した回数を格納する検出回数格納テーブル114と、検出回数格納テーブル114の情報をもとに装置101の障害率を算出する障害率計算処理部124と、障害率計算処理部124で算出した障害率や装置101間で送受信する情報を格納する冗長装置情報格納テーブル116と、監視情報テーブル111と冗長装置情報113に設定された情報を制御するコンフィグレーション制御部121と、装置101内で発生するイベントを監視する監視処理部122と、装置101内で保持する装置の状態を表示する冗長装置表示処理部123と、冗長装置情報格納テーブル116の情報をもとにマスタ装置の切替先を選択する切替先装置選択部125と、インタフェース部103を介してプロトコルの制御パケットなどの送受信を行うパケット送受信部128を備える。
【0014】
機能処理部104は、冗長装置205を構成する各装置101間で動作するプロトコルを処理するプロトコル処理部126と、マスタ装置の装置切替処理を実施する装置切替処理部127を備える。プロトコル処理部126で動作するプロトコルは全ての隣接装置101とやりとりするOSPF(Open Shortest Path First)やVRRP(Virtual Router Redundancy Protocol)のような標準プロトコルであっても、装置独自のプロトコルであっても良い。装置切替処理部127は装置切替イベントが発生した際に、マスタ装置をスレーブ装置へ、またはスレーブ装置をマスタ装置へ切り替えるための処理を実施する。
【0015】
図3は監視情報テーブル111の構成を示す図である。
監視情報テーブル111は、項番301、監視情報302、検出条件303、重み付け係数304を有する。保守者はコンフィグレーションにより予め各項目を設定する。監視情報302には、項番301毎に装置101内で発生するイベントのうち監視対象とするイベントを設定する。同じ監視情報302であっても、監視対象のモジュールや部品が異なれば複数指定することも可能である。検出条件303には、各監視情報302を検出する条件や閾値を設定する。重み付け係数304には、障害率を算出する際に使用する監視情報302毎の重要度を重み付け係数として格納する。
【0016】
図4は冗長装置情報113の構成を示す図である。
冗長装置情報113は、項番401、装置識別子402、優先度403を有する。保守者はコンフィグレーションにより予め各項目を設定する。項番401は項番を示し、装置識別子402は自装置である装置101を識別する情報を格納する。本実施形態では、装置識別子402に「10.1.1.1」としてIPアドレスを格納しているが、記号や装置番号など冗長装置205のなかで装置101を一意に識別できるものであれば良い。優先度403は自装置の優先度を格納し、冗長装置205のなかで装置101ごとに重複しない値を格納する。
【0017】
図5は検出回数格納テーブル114の構成を示す図である。
検出回数格納テーブル114は、項番501、監視情報502、検出回数503を有する。項番501、監視情報502は、監視情報テーブル111の項番301、監視情報302と同じ内容であり、監視情報テーブル111に情報が設定されるとコンフィグレーション制御部121によって同じ情報が検出回数格納テーブル114にも設定される。例えば、監視情報テーブル111の項番「1」の監視情報302に「パッケージ障害」が設定されると、コンフィグレーション制御部121が、検出回数格納テーブル114の項番「1」の監視情報502に「パッケージ障害」を格納する。検出回数503は監視処理部122が監視情報502のイベントを検出した際に加算する。
【0018】
図6は障害率601を算出するための計算式を示す図である。
障害率601は装置101に障害が発生する確率を示し、本実施形態では、監視情報テーブル111に設定した監視情報302が稼働時間602あたりに発生する確率を障害率601とする。障害率601は検出回数格納テーブル114に設定している全ての監視情報502(k=1:検出回数格納テーブル114の項番「1」を示し、項番「n」まで実施する)に対して、検出回数503と監視情報テーブル111に設定された対応する重み付け係数304を掛けた合計値を算出し、装置101の稼働時間602で割って求める。なお、障害率601の計算方法は図6の計算式に限られず、例えば重み付け係数を用いなくてもよいし、検出回数格納テーブル111に設定している監視情報502の中から所定の監視情報502のみを計算対象としてもよく、任意の計算式を用いて装置101の障害率を算出可能である。
【0019】
図7は実施例1で使用する冗長装置情報格納テーブル116の構成を示す図である。
冗長装置情報格納テーブル116は項番801、装置識別子802、系状態803、優先度804、障害率805、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を有する。
【0020】
項番801は項番を示し、装置識別子802は装置101を識別するための情報を格納する。系状態803は、装置の状態がマスタかスレーブかを示す情報を格納する。優先度804は、装置101毎に設定した冗長装置情報113に格納している優先度403を格納する。障害率805は、障害率計算処理部124が算出した障害率601を格納する。優先度から選択した切替先順位806は、系状態803が「スレーブ」である装置について優先度804が最も高い装置から降順に順位を「1位」から格納する。障害率から選択した切替先順位807は、系状態803が「スレーブ」である装置について障害率805が最も低い装置から昇順に順位を「1位」から格納する。切替先808はマスタ装置の切替先となる装置を示す。
【0021】
図8はコンフィグレーション制御部121の処理フローを示す図である。
コンフィグレーション制御部121は監視情報テーブル111または冗長装置情報113に情報が設定されると図8の処理フローを実行し、検出回数格納テーブル114の設定と監視処理部122へ監視開始の指示、または冗長装置情報格納テーブル116の設定を実施する。以下、処理フローを説明する。
【0022】
コンフィグレーション制御部121は監視情報テーブル111または冗長装置情報113に情報が設定されると処理を開始する(S91)。設定されたコンフィグレーション112を判定する(S92)。S92の判定の結果、冗長装置情報113が設定された場合、冗長装置情報113から自装置101の装置識別子402と優先度403を取得する(S93)。S93で取得した自装置の装置識別子402と優先度403を冗長装置情報格納テーブル116の装置識別子802と優先度804へそれぞれ追加する(S94)。なお、自装置の初期の系状態(マスタまたはスレーブ)は、保守者によるコンフィグレーションや各装置101間で動作するプロトコルの制御パケットなどによって決定されるため、S94のタイミングで冗長装置情報格納テーブル116へ自装置の系状態803を格納しておく。
【0023】
S92の判定の結果、監視情報テーブル111が設定された場合、監視情報テーブル111から設定された監視情報302と検出条件303を取得する(S95)。S95で取得した監視情報302の検出回数を格納するために、取得した監視情報302を検出回数格納テーブル114の監視情報502へ追加する(S96)。監視処理部122へ検出条件303を満たす監視情報302を監視開始するよう通知する(S97)。S94、またはS97の処理後にコンフィグレーション制御部121の処理を終了する(S98)。
【0024】
図9は監視処理部122の処理フローを示す図である。
監視処理部122はコンフィグレーション制御部121から監視開始を通知された場合に処理開始し(S97)、検出条件303を満たす監視情報302を監視する。検出条件303を満たす監視情報302が発生すると検出回数格納テーブル114の該当する監視情報502の検出回数503を加算する。なお、監視処理部122は、監視情報302の監視および検出回数の加算処理を開始すると、検出回数格納テーブル114から当該監視情報が削除されるまで処理を続ける。以下、処理フローを説明する。
【0025】
監視処理部122はコンフィグレーション制御部121から監視開始を通知された場合に処理を開始する(S101)。監視処理部122は検出条件303を満たす監視情報302が発生しているのか監視する(S102)。検出条件303を満たす監視情報302が発生すると、検出回数格納テーブル114の対応する監視情報502の検出回数503を加算し、障害率を計算するため、障害率計算処理部124へ障害率計算を要求する(S103)。S103の処理後に監視処理部122の処理を終了する(S104)。
【0026】
図10は障害率計算処理部124の処理フローを示す図である。
障害率計算処理部124は監視処理部122やパケット送受信処理部128などから障害率の計算を要求された場合に図10の処理フローを実行し、検出回数格納テーブル114から検出回数503を取得し、図6の計算式に基づいて障害率601を算出し、冗長装置情報格納テーブル116へ算出結果を格納する。以下、処理フローを説明する。
【0027】
障害率計算処理部124は監視処理部122やパケット送受信部128などから障害率の計算を要求された場合に処理を開始する(S111)。障害率を算出するため、検出回数格納テーブル114から監視情報502毎の検出回数503を取得し、監視情報テーブル111から各監視情報502に対応する重み付け係数304を取得する(S112)。図6に示す計算式により障害率601を算出し、冗長装置情報格納テーブル116の自装置の装置識別子802に対応する障害率805へ算出した障害率601を格納する(S113)。S113の処理後に障害率計算処理部124の処理を終了する(S114)。
【0028】
図11はパケット送受信部128がプロトコルの制御パケットを送信する処理フローを示す図である。
パケット送受信部128はプロトコル処理部126がプロトコルの制御パケットを送信する際に図11の処理フローを実行し、冗長装置情報格納テーブル116から隣接装置101へ通知する情報を取得し、プロトコル処理部126が生成した制御パケットに取得した情報を格納するための新規フィールドを追加して送信する。なお、プロトコル処理部126は、冗長装置205を構成する各装置101間で動作するプロトコルの制御パケットを定期的に送受信しており、本処理フローはプロトコル処理部126が制御パケットを送信する度に実行される。以下、処理フローを説明する。
【0029】
パケット送受信部128はプロトコル処理部126がプロトコルの制御パケットを送信する際に処理を開始する(S121)。プロトコルの制御パケットを送信する際に障害率を算出するため、障害率計算処理部124へ障害率計算を要求する(S122)。冗長装置情報格納テーブル116を参照し、自装置の系状態803を判定する(S123)。S123の判定の結果、系状態803が「スレーブ」であった場合、マスタ装置が切り替わる場合の切替先を選択しておくため、切替先装置選択部125へ切替先選択を通知する(S124)。なおこの際、切替先装置選択部125に対して処理種別が送信処理(制御パケットを送信する際の処理)であることを通知する。
【0030】
S123の判定の結果、系状態803が「マスタ」であった場合、またはS124の処理後、S125で、パケット送受信部128は冗長装置情報格納テーブル116から自装置の装置識別子802、系状態803、優先度804、障害率805を取得する。パケット送受信部128は、プロトコル処理部126が生成した制御パケットに新規フィールドを追加して、取得した自装置の装置識別子802、系状態803、優先度804、障害率805を設定することにより、新たな制御パケットを生成する(S125)。S125で生成したプロトコルの新たな制御パケットをインタフェース部103より隣接装置101へ送信する(S126)。隣接装置101への制御パケットの送信は図1に障害率通知207として示している。S126の処理後にパケット送受信部128の処理を終了する(S127)。
【0031】
図12はパケット送受信部128がプロトコルの制御パケットを受信する処理フローを示す図である。
パケット送受信部128はS126で隣接装置101が送信したプロトコルの制御パケットをインタフェース部103から受信した際に図12の処理フローを実行し、プロトコルの制御パケットからS125で追加された情報を取得し、取得した情報を切替先装置選択部125へ通知する。以下、処理フローを説明する。
【0032】
パケット送受信部128はインタフェース部103がプロトコルの制御パケットを受信した際に処理を開始する(S131)。プロトコルの制御パケットから隣接装置101によってS125で追加された情報(装置識別子802、系状態803、優先度804、障害率805)を取得し、マスタ装置の切替先を選択するために切替先装置選択部125へ取得した情報を通知する。なおこの際、切替先装置選択部125に対して処理種別が受信処理(制御パケットを受信した際の処理)であることを通知する。さらに、受信した制御パケットからS125で追加された新規フィールドを削除する(S132)。プロトコル処理を実施するため、プロトコル処理部126へプロトコルの制御パケットを通知する(S133)。S133の処理後にパケット送受信部128の処理を終了する(S134)。
【0033】
図13は切替先装置選択部125の処理フローを示す図である。
切替先装置選択部125はパケット送受信部128がプロトコルの制御パケットを送信する際(S124)、または受信した際(S132)に図13の処理フローを実行する。優先度804に基づいて優先度から選択した切替先順位806を、障害率805に基づいて障害率から選択した切替先順位807を、優先度から選択した切替先順位806と障害率から選択した切替先順位807に基づいて切替先808を設定する処理フローである。以下、処理フローを説明する。
【0034】
切替先装置選択部125はパケット送受信部128がプロトコルの制御パケットを送信する際(S124)、または受信した際(S132)に処理を開始する(S141)。切替先装置選択部125がパケット送受信部128から通知された処理種別が送信処理または受信処理のどちらであるか判定する(S142)。S142の判定の結果、処理種別が受信処理の場合、切替先装置選択部125はパケット送受信部128から通知された情報を冗長装置情報格納テーブル116に格納する。具体的には、切替先装置選択部125はパケット送受信部128から通知された装置識別子802で冗長装置情報格納テーブル116の装置識別子802を検索し、既に登録されていた場合、対応する系状態803、優先度804、障害率805をパケット送受信部128から通知された情報で更新する。パケット送受信部128から通知された装置識別子802が登録されていなかった場合、新規に装置識別子802を追加し、系状態803、優先度804、障害率805を登録する(S143)。
【0035】
S142の判定の結果、処理種別が送信処理の場合、またはS143の処理後、切替先装置選択部125は冗長装置情報格納テーブル116の系状態803が「スレーブ」である装置の優先度804を比較し、優先度が高い(優先度804の値が大きい)順に、優先度から選択した切替先順位806に順位を設定する(S144)。切替先装置選択部125は冗長装置情報格納テーブル116の系状態803が「スレーブ」である装置の障害率805を比較し、障害率が低い(障害率805の値が小さい)順に、障害率から選択した切替先順位807に順位を設定する(S145)。
【0036】
切替先装置選択部125は、障害率から選択した切替先順位807が1位の(スレーブ装置のなかで障害率が最も低い)装置識別子802を検索する(S146)。S146で検索した結果、1位の装置識別子802が1台であった場合、障害率から選択した切替先順位807が1位の装置識別子802の装置101を切替先808として決定する。切替先808が他の装置識別子802に設定されていた場合、切替先808として決定した装置識別子802の切替先808へ値を変更する。または、切替先808が未だ設定されていない場合、切替先808として決定した装置識別子802の切替先808へ値を設定する(S147)。
【0037】
S146で検索した結果、1位の装置識別子802が複数台であった場合、さらに優先度から選択した切替先順位806を比較し、優先度から選択した切替先順位806が1番高い(最も優先度が高い)装置識別子802の装置101を切替先808として決定する。切替先808が他の装置識別子802に設定されていた場合、切替先808として決定した装置識別子802の切替先808へ値を変更する。または、切替先808が未だ設定されていない場合、切替先808として決定した装置識別子802の切替先808へ値を設定する(S148)。なお、図7ではS147またはS148で切替先として決定された装置101の切替先808に○印を付して示している。S147、またはS148の処理後に切替先装置選択部125の処理を終了する(S149)。
【実施例1】
【0038】
前述した図1で説明したネットワーク構成においてパッケージ障害を検出した装置101aが障害率601を算出する動作と、算出した結果をプロトコルの制御パケットへ付加して隣接装置101bと隣接装置101cへ通知する動作と、隣接装置101bからプロトコルの制御パケットを受信した動作と、図7に示した冗長装置情報格納テーブル116の切替先808を再選択する動作について説明する。
【0039】
装置101aが、図3の監視情報テーブル111、図4の冗長装置情報113、図5の検出回数格納テーブル114、図7の冗長装置情報格納テーブル116をそれぞれ保持しているものとし、装置101aで監視処理部122がパッケージ障害の発生を検出したとする。
【0040】
装置101aが障害率601を算出する動作を説明する。
パッケージ障害を監視する監視処理部122は図9の処理フローを実施する。監視中にパッケージ障害を検出した場合、図5の検出回数格納テーブル114から該当する監視情報502を検索し、監視情報502が「パッケージ障害」のエントリの検出回数503の値を加算して「2」とする。監視処理部122はパッケージ障害発生の検出を契機として障害率を計算するため、障害率計算処理部124へ障害率計算を要求する。
【0041】
障害率計算処理部124は図10の処理フローを実施する。検出回数格納テーブル114から全てのエントリ(項番「1」から項番「n」)の検出回数503を取得し、監視情報テーブル111からも全てのエントリ(項番「1」から項番「n」)の重み付け係数304を取得する。障害率計算処理部124は図6の計算式を使用して、障害率601(値は0.05)を算出し、冗長装置情報格納テーブル116に、算出した自装置の障害率601(値は0.05)を格納する。図7の例では、装置識別子802の自装置を表す値「10.1.1.1」に対応する障害率805へ値「0.05」を格納する。
【0042】
冗長装置205を構成する各装置101間で動作するプロトコルの処理はプロトコル処理部126が実施し、プロトコルの制御パケットを装置101間で送受信する。装置101はプロトコルの制御パケットを送信する際、冗長装置情報格納テーブル116に格納した自装置の情報をプロトコルの制御パケットに付加し、隣接装置101へ障害率を通知する。
【0043】
装置101aが算出した障害率601をプロトコルの制御パケットへ付加し、隣接装置101bと隣接装置101cへ通知する動作を説明する。
装置101aのプロトコル処理部126はプロトコルの処理により、制御パケットを送信する場合、制御パケットを生成してパケット送受信部128へ送信を要求する。パケット送受信部128が制御パケットを送信する際、図11に示した処理フローを実施する。パケット送受信部128はプロトコル処理部126が生成した制御パケットに付加する障害率を更新するため、障害率計算処理部124へ障害率計算を要求する。これにより、障害率計算処理部124が自装置101aの障害率を計算して冗長装置情報格納テーブル116へ格納する。パケット送受信部128は、冗長装置情報格納テーブル116を参照し、自装置の系状態803が「マスタ」であるため、冗長装置情報格納テーブル116から自装置の装置識別子802「10.1.1.1」のエントリから系状態803「マスタ」、優先度804「200」、障害率805「0.05」をそれぞれ取得する。取得した情報を制御パケットに付加するため、制御パケットに新規フィールドを追加し、装置識別子802「10.1.1.1」、系状態803「マスタ」、優先度804「200」、障害率805「0.05」をそれぞれ追加した新規フィールドに設定して新たな制御パケットを生成する。生成した新たな制御パケットをインタフェース部103を介して隣接装置101bと隣接装置101cへ送信する。
【0044】
装置101aが隣接装置101bからプロトコルの制御パケットを受信した際の動作を説明する。
装置101aが隣接装置101bからプロトコルの制御パケットをインタフェース部103で受信すると、図12に示すパケット送受信部128の処理フローを実施する。パケット送受信部128は受信した制御パケットから追加フィールドに設定されている装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、障害率805「0.01」の各情報を取得する。マスタ装置の切替先を選択するために切替先装置選択部125へ取得した各情報を通知する。さらに、処理種別が受信処理であることを切替先装置選択部125へ通知する。また、プロトコル処理部126がプロトコル処理を実施可能とするため、制御パケットから追加フィールドを削除し、本来のプロトコルの制御パケットに戻す。追加フィールドを削除したプロトコルの制御パケットをプロトコル処理部126へ通知し、プロトコルの処理を実施する。
【0045】
制御パケットから取得した装置識別子802「10.1.1.2」の情報をパケット送受信部128が切替先装置選択部125へ通知すると、切替先装置選択部125が図13に示す処理フローを実施する。切替先装置選択部125は、通知された処理種別が受信処理であるため、冗長装置情報格納テーブル116から、パケット送受信部128から通知された装置識別子802「10.1.1.2」と一致するエントリを検索し、パケット送受信部128から通知された系状態803の「スレーブ」、優先度804「50」、障害率805「0.01」を更新する。そしてマスタ装置の切替先を選択するため、優先度から選択した切替先順位806と障害率から選択した切替先順位807を設定する。
【0046】
優先度から選択した切替先順位806は、冗長装置情報格納テーブル116に登録されている系状態803が「スレーブ」である装置の優先度804を比較し、優先度804の値が最も高い装置(装置識別子802が「10.1.1.3」である装置101c)を優先度から選択した切替先順位806が「1位」であるとして設定する。2番目に優先度804の値が高い装置(装置識別子802が「10.1.1.2」である装置101b)を優先度から選択した切替先順位806が「2位」であるとして設定する。
【0047】
障害率から選択した切替先順位807は、冗長装置情報格納テーブル116に登録されている系状態803が「スレーブ」である装置の障害率805を比較し、障害率805の値が最も低い装置(装置識別子802が「10.1.1.2」である装置101b)を障害率から選択した切替先順位807が「1位」であるとして設定する。2番目に障害率805の値が低い装置(装置識別子802が「10.1.1.3」である装置101c)を障害率から選択した切替先順位807が「2位」であるとして設定する。
【0048】
マスタ装置の切替先を示す切替先808を設定するため、障害率から選択した切替先順位807が「1位」の装置識別子802を検索する。検索した結果、障害率から選択した切替先順位807が「1位」の装置識別子802が1台しかいないため、障害率から選択した切替先順位807が「1位」の装置(装置識別子802が「10.1.1.2」である装置101b)を切替先808として決定し、○印を設定する。
【0049】
図7に示した冗長装置情報格納テーブル116の切替先808を再選択する動作について説明する。なお装置101bの監視処理部122が監視情報302を検出し、装置101bの障害率が「0.01」から「0.20」へ更新され、その算出結果がプロトコルの制御パケットに付加されて隣接装置101aへ送信される例を説明する。
【0050】
装置101bのパケット送受信部128が図11に示した処理フローを実施するすることにより、追加フィールドに装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、障害率805「0.20」が設定された制御パケットを隣接装置101aおよび101cに送信する。ここで、装置101aで管理していた装置101bの障害率805は、図7に示すように「0.01」であったが、今回送信された制御パケットには障害率805がS122により更新された結果、「0.20」が設定されている。また、装置101bは系状態803が「スレーブ」であるため、図11においてS124が実行される。
【0051】
装置101bにおいて、図11のS124が実行されるため、切替先装置選択部125が図13に示す処理フローを実施する。切替先装置選択部125は、処理種別が送信処理であるため、優先度から選択した切替先順位806と、障害率から選択した切替先順位807と、切替先808を設定する。
【0052】
装置101bでは、冗長装置情報格納テーブル116の優先度から選択した切替先順位806について、装置101c(装置識別子:10.1.1.3、優先度:100)が「1位」と設定され、装置101b(装置識別子:10.1.1.2、優先度:50)が「2位」と設定される。
【0053】
また、障害率から選択した切替先順位807については、装置101bの障害率805が「0.01」から「0.20」に更新されたため、装置101c(装置識別子:10.1.1.3、障害率:0.15)が「1位」と設定され、装置101b(装置識別子:10.1.1.2、障害率:0.20)が「2位」と設定される。
【0054】
切替先808については、障害率から選択した切替先順位807の「1位」が装置101bから装置101cに変更されたため、装置101b(装置識別子802:10.1.1.2)の切替先808に設定されていた○印を装置101c(装置識別子802:10.1.1.3)の切替先808へ変更する。
【0055】
続いて、装置101bが送信したプロトコルの制御パケットを受信した装置101aの動作について説明する。
装置101aが隣接装置101bからプロトコルの制御パケットを受信すると、図12に示す処理フローを実施する。
装置101aでは、パケット送受信部128が受信したプロトコルの制御パケットから装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、更新された障害率805「0.20」の各情報を取得し、切替先装置選択部125へ通知する。この際、処理種別が受信処理であることも通知する。
【0056】
パケット送受信部128から各情報を通知された切替先装置選択部125は図13に示す処理フローを実施する。切替先装置選択部125は、処理種別が受信処理であるため、冗長装置情報格納テーブル116から装置101b(装置識別子802:10.1.1.2)のエントリを検索し、パケット送受信部128から通知された系状態803「スレーブ」、優先度804の「50」、障害率805「0.20」を更新する。そしてマスタ装置の切替先を選択するため、優先度から選択した切替先順位806と障害率から選択した切替先順位807を設定する。
【0057】
装置101aの切替先装置選択部125は、図7の冗長装置情報格納テーブル116の優先度から選択した切替先順位806について、装置101c(装置識別子:10.1.1.3、優先度:100)を「1位」と設定し、装置101b(装置識別子:10.1.1.2、優先度:50)を「2位」と設定する。
【0058】
また、障害率から選択した切替先順位807については、装置101bの障害率805が「0.01」から「0.20」に更新されたため、装置101c(装置識別子:10.1.1.3、障害率:0.15)を「1位」に変更し、装置101b(装置識別子:10.1.1.2、障害率:0.20)を「2位」に変更する。
【0059】
切替先808については、障害率から選択した切替先順位807の「1位」が装置101bから装置101cに変更されたため、装置101b(装置識別子802:10.1.1.2)の切替先808に設定されていた○印を装置101c(装置識別子802:10.1.1.3)の切替先808へ変更する。
【0060】
以上説明したように、本実施例によれば、障害率の低い装置をマスタ装置の切替先として選択可能になるため、マスタ装置の切り替え後に障害が発生する確率が低くなり、ネットワークに及ぼす影響を軽減することができる。また、監視情報302の発生を検出するたび、またはプロトコルの制御パケットを送信するたびに装置の障害率を算出し、算出した障害率をプロトコルの制御パケットで隣接装置101へ通知する。これにより、障害率805を更新し、そのつど最新の障害率805から切替先808を決めるため、常に障害率の低い装置をマスタ装置の切替先として選択可能となる。
【0061】
なお、本実施例では、マスタ装置の切替先の選択手法について記載しているが、実際にマスタ装置の切り替えを行うタイミングについては特に規定しておらず、任意のタイミングでマスタ装置の切り替えを行うことができる。例えば、マスタ装置が装置障害によりダウンしてしまった場合にマスタ装置の切り替えを行うことが考えられる。この場合は、マスタ装置のダウンを検出した各スレーブ装置が冗長装置情報格納テーブル116の切替先808を参照し、切替先として選択されているスレーブ装置がマスタ装置に切り替わることになる。また、別の例として、プロトコルの制御フレームを送受信して冗長装置情報格納テーブル116が更新される度にマスタ装置の切り替え要否を判断するようにしてもよい。この場合、プロトコルの制御フレームの送受信により冗長装置情報格納テーブル116が更新される度に、スレーブ装置のなかから切替先808に指定されている装置の障害率805とマスタ装置の障害率805とを比較し、切替先808に指定されているスレーブ装置の障害率の方が低い場合にはマスタ装置の切り替えを行うことになる。また、更に別の例として、冗長装置205を構成する各装置101間でマスタ装置としての運用時間をなるべく均一化するために、所定の時間毎にマスタ装置の切り替えを行うことも可能である。この場合も各スレーブ装置が所定の時間毎に冗長装置情報格納テーブル116の切替先808を参照し、切替先として選択されているスレーブ装置がマスタ装置に切り替わることになる。
【実施例2】
【0062】
図14は実施例2における冗長装置情報格納テーブル116の構成を示す構成図である。図示したように実施例2における冗長装置情報格納テーブル116は、図7で示した実施例1の構成から系状態803、優先度804、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を削除し、自装置のみの情報を保持するようにしたものである。このように本実施例では、冗長装置情報格納テーブル116に優先度を保持しないため、図8のコンフィグレーション制御部121の処理において、冗長装置情報113からの自装置の優先度403の取得(図8のS93)と、冗長装置情報格納テーブル116への自装置の優先度403の格納(図8のS94)は不要となる。つまり、図8のS93では冗長装置情報113からの自装置の装置識別子402を取得し、S94では冗長装置情報格納テーブル116に自装置の装置識別子402を格納することになる。
【0063】
図15は実施例2における障害率計算処理部124の処理フローを示す図である。図10で示した実施例1の障害率計算処理部124の処理フローにS164を追加した点が大きく異なるため、実施例1との差分について説明する。S113の処理後、プロトコルの制御パケットの優先度設定フィールドにS113で算出した障害率を加味した値を設定するため、プロトコル処理部126へ算出した障害率601を通知する(S164)。
【0064】
プロトコル処理部126は、障害率601の値を変換して装置101間で動作するプロトコルの制御パケットの優先度設定フィールドに設定する。これにより、プロトコルによって規定された制御パケットの優先度フィールドに、障害率601を加味した優先度を設定して隣接装置に送信することができるため、実施例1のようにプロトコルの制御パケットに新規にフィールドを追加する必要がない。装置101間で動作するプロトコルはVRRP(Virtual Router Redundancy Protocol)のようなプロトコルの制御パケット内に優先度を設定するフィールドをもつプロトコルを指す。
【0065】
なお、プロトコル処理部126が障害率601の値を変換する例として、障害率601の逆数に変換する、または障害率601を10のn乗し整数値として変換する、または優先度403の値に障害率601の値を掛けて変換する、などが考えられ、プロトコルに応じて優先度設定フィールドに設定する値を任意に変換すればよい。
【0066】
図1で示したネットワーク構成において、装置101aが障害率601を算出し、算出した障害率601を加味した優先度をプロトコルの制御パケットに設定して隣接装置101bと隣接装置101cへ送信する動作について、実施例1との差分を説明する。
【0067】
装置101aは図2に示す内部構成を備えており、冗長装置情報格納テーブル116は図14で示す値を格納しているものとし、装置101で監視処理部122がパッケージ障害を検出して、障害率計算処理部124へ障害率の計算を要求したとする。
【0068】
障害率計算処理部124は図15に示した処理フローを実施する。S112,S113により自装置の障害率601「0.05」を算出し、冗長装置情報格納テーブル116に格納する。S164にて、プロトコル処理部126へ算出した障害率601「0.05」を通知する。
【0069】
プロトコル処理部126は、プロトコルの制御パケットを送信する際、障害率計算処理部124から通知された障害率601「0.05」を変換して優先度設定フィールドに設定する値を決定する。障害率601「0.05」を変換する方法として、逆数を使用した例を示す。障害率601の値(0.05)の逆数を取ると、「20」になる。変換した値(20)を優先度設定フィールドに設定し、プロトコルの制御パケットの送信をパケット送受信部128へ要求する。
【0070】
パケット送受信部128は前記プロトコル処理部126で生成したプロトコルの制御パケットを隣接装置101bと隣接装置101cへインタフェース部103を介して送信する。なお、プロトコル処理部126が算出した障害率を加味した優先度は、図4の冗長装置情報113に保持される。このとき、冗長装置情報113の優先度403のフィールドに上書きしてもよいし、優先度403とは別フィールドに保持してもよい。
【0071】
また、装置101aは、隣接装置101b、101cから同じく障害率を加味した優先度を設定したプロトコルの制御パケットを受信すると、パケット送受信部128がプロトコル処理部126へ通知する。プロトコル処理部126は、プロトコルの制御パケットの優先度設定フィールドから装置101b、101cそれぞれの優先度を取得し、冗長装置情報113に保持している自装置101aの優先度403と比較して、マスタ装置の切り替えが必要か否か判断する。マスタ装置の切り替えが必要であると判断すると、装置切替処理部127へマスタ装置の切替処理を要求する。同様に隣接装置101b、101cでもマスタ装置の切り替えが必要であるか否かを判断し、適宜マスタ装置を切り替える。
【0072】
本実施例2によれば、優先度設定フィールドをもつプロトコルの制御パケットと連携することができ、プロトコルで規定された制御パケットのフォーマットを変更せずに障害率を加味したマスタ装置の切り替えを実現することができる。
【実施例3】
【0073】
図16は冗長装置表示処理部123の処理フローを示す図である。
冗長装置表示処理部123は自装置101の情報を表示する際、または冗長装置205を構成する全ての装置101の情報を表示する際に、検出回数格納テーブル114または冗長装置情報格納テーブル116を参照し、各情報を出力する。以下、処理フローを説明する。
【0074】
自装置101の情報、または冗長装置205を構成する全ての装置101の情報を表示する際に冗長装置表示処理部123は図16の処理を開始する。処理を開始する際は、自装置101の情報を表示するか、冗長装置205を構成する全ての装置101の情報を表示するかをパラメータとして指示する表示命令(表示コマンド)を保守者等から入力される(S211)。なお、S211において、保守者は例えば装置101が備えるキー入力部(図示は省略)から表示命令を行ってもよいし、冗長装置205に保守端末(図示は省略)を接続して当該保守端末から装置101に対して表示命令を行うなどの手法でもよい。
【0075】
入力されたパラメータを判定する(S212)。S212の判定の結果、自装置101の情報を表示する場合、検出回数格納テーブル114から監視情報502と検出回数503を取得し、冗長装置情報格納テーブル116から自装置101のレコードを取得し、取得したレコードに格納された各情報を出力する(S213)。S212の判定の結果、冗長装置205を構成する全ての装置101の情報を表示する場合、冗長装置情報格納テーブル116から全ての装置のレコードを取得し、取得したレコードに格納された各情報を出力する(S214)。なお、S213,S214において出力された各情報は、例えば装置101が備える表示部(図示は省略)に表示してもよいし、上述した保守者が操作する保守端末に表示してもよい。S213またはS214の処理後に、冗長装置表示処理部123の処理を終了する(S215)。
【0076】
実施例1、実施例2において検出回数格納テーブル114と冗長装置情報格納テーブル116に格納した情報を表示するまでの動作について説明する。
表示コマンドによって自装置101の情報を表示、または冗長装置205を構成する全ての装置101の情報を表示する際に処理する冗長装置表示処理部123は図16に示した処理フローを実施する。
【0077】
表示コマンドによって入力されたパラメータ(自装置101の情報を表示、または冗長装置205を構成する全ての装置101の情報を表示)から表示内容を判定する。パラメータが自装置101の情報表示を示している場合、検出回数格納テーブル114の項番501「1」から項番「n」までの監視情報502と検出回数503を取得する。また、冗長装置情報格納テーブル116の装置識別子802の値が自装置のレコードから各情報を取得し出力する。一方、パラメータが冗長装置205を構成する全ての装置101の情報表示を示している場合、冗長装置情報格納テーブル116の全ての装置識別子802のレコードから各情報を取得し出力する。
【0078】
例えば、図7に示した冗長装置情報格納テーブル116を保持している状態で、手動の表示コマンドによって冗長装置205を構成する全ての装置101の情報を表示することが命令されたとする。冗長装置情報格納テーブル116から装置識別子802の値「10.1.1.1」から「10.1.1.3」までの系状態803、優先度804、障害率805、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を取得し出力する。なお、実施例2のケースでは、冗長装置情報格納テーブル116が自装置の装置識別子802と障害率805しか保持しないため、表示コマンドのパラメータとしては自装置101の情報表示しか選択できない。この場合は、自装置の装置識別子802と障害率805を出力し、表示する。
【0079】
本実施例3によれば、装置毎に算出した障害率、または装置内で発生した監視情報の検出回数などを可視化することで、冗長装置のなかで障害率が高い装置を把握することができる。さらには、装置のなかでも障害発生回数の多い監視情報を特定することが出来るため、保守者が障害発生前に装置の部品交換や設定変更等が可能になり、ネットワークの障害率を減らすことができる。
【符号の説明】
【0080】
101a〜c:装置、102:制御部、103:インタフェース部、104:機能処理部、111:監視情報テーブル、112:コンフィグレーション、113:冗長装置情報、114:検出回数格納テーブル、116:冗長装置情報格納テーブル、121:コンフィグレーション制御部、122:監視処理部、123:冗長装置表示処理部、124:障害率計算処理部、125:切替先装置選択部、126:プロトコル処理部、127:装置切替処理部、128:パケット送受信部、201:装置A、202:装置B、203:装置C、204:装置D、205:冗長装置、206:冗長装置接続パス、207:障害率通知
【技術分野】
【0001】
本発明は、冗長装置を構成する装置に関し、特に冗長装置を構成する装置において、マスタ装置の切替先を選択する制御技術に関するものである。
【背景技術】
【0002】
ネットワーク装置の冗長化技術には装置を冗長化し、仮想的に1台の装置(冗長装置)として扱うことができる技術が存在する。冗長装置は、プロトコル処理などの制御処理を行うマスタ装置と、マスタ装置からの指示によりパケット中継を行うスレーブ装置で構成される。冗長化技術を有する装置は、マスタ装置で障害が発生した場合に、スレーブ装置をマスタ装置に切り替える装置切替機能を有する。
【0003】
マスタ装置の切替先を選択する一般的な方法として、コンフィグレーションによって装置単位に優先度を設定しておき、冗長装置を構成する装置間でお互いの装置の優先度を通知し合うことにより優先度の高い装置をマスタ装置として選択する方法が用いられている。さらには、装置内でパケット中継が不可能になった事象を検出すると、コンフィグレーションで設定された自装置の優先度を下げて他の装置へ通知することで、自装置がマスタ装置へ切り替わることを抑止し、当該事象が復旧すると元の優先度へ戻して他の装置へ通知することで、マスタ装置への切り替え抑止を解除する方法が用いられている。
【0004】
また、特許文献1には、予備系と運用系を少なくとも1つずつ備えることで冗長化された複数の通信データ処理装置を制御する制御装置において、運用系から収集した情報を基に障害発生確率の高い運用系を予測し、予測した運用系が保持している、障害発生のときに予備系に引き継がれるべき引継情報を、予め予備系に登録させることが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−199675号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
コンフィグレーションで設定した優先度に従いマスタ装置を選択する方法は、ユーザが意図した優先度に従ってマスタ装置を切り替える考え方に基づいているが、装置の運用状況を考慮出来ない。さらには、パケット中継が不可能になった事象を検出するとコンフィグレーションで設定した優先度を下げて通知し事象が復旧すると元の優先度へ戻して通知する方法は、当該事象が何度も発生する装置であっても、コンフィグレーションで設定した優先度に従うため、マスタ装置の切替先として選択されてしまう。
特許文献1の方式では、運用系の障害発生確率を考慮してはいるものの、予備系の障害発生確率については何ら考慮されていない。
【0007】
一般的にマスタ装置の切り替えは、プロトコル処理を行う制御部を切り替えるため、ネットワークに及ぼす影響が大きい。また、切替先の新たなマスタ装置で障害が発生すると、さらにネットワークに及ぼす影響が大きくなってしまう。
そこで、本発明は障害率の低い装置をマスタ装置の切替先として選択することにより、マスタ装置の切り替え後に障害が発生する確率が低減し、ネットワークに及ぼす影響を軽減することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記課題を解決するために、
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、自装置に障害が発生する確率を示す障害率を算出する計算部と、前記計算部が算出した自装置の障害率または障害率を加味した優先度と前記他の装置の障害率または優先度とに基づいて前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択する選択部とを備える装置を提供する。
【発明の効果】
【0009】
本発明によれば、障害率の低い装置をマスタ装置の切替先として選択可能になることで、マスタ装置の切り替え後、障害が発生する確率が低くなり、ネットワークに及ぼす影響を軽減することができる。
【図面の簡単な説明】
【0010】
【図1】冗長装置を適用したネットワークの構成を示す図である。
【図2】装置101の内部構成を示すブロック図である。
【図3】監視情報テーブル111の構成を示す図である。
【図4】冗長装置情報113の構成を示す図である。
【図5】検出回数格納テーブル114の構成を示す図である。
【図6】障害率601を算出するための計算式を示す図である。
【図7】実施例1で使用する冗長装置情報格納テーブル116の構成を示す図である。
【図8】コンフィグレーション制御部121の処理フローを示す図である。
【図9】監視処理部122の処理フローを示す図である。
【図10】障害率計算処理部124の処理フローを示す図である。
【図11】パケット送受信部128がプロトコルの制御パケットを送信する処理フローを示す図である。
【図12】パケット送受信部128がプロトコルの制御パケットを受信する処理フローを示す図である。
【図13】切替先装置選択部125の処理フローを示す図である。
【図14】実施例2における冗長装置情報格納テーブル116の構成を示す構成図である。
【図15】実施例2における障害率計算処理部124の処理フローを示す図である。
【図16】冗長装置表示処理部123の処理フローを示す図である。
【発明を実施するための形態】
【0011】
図1は冗長装置を適用したネットワークの構成を示す図である。ネットワーク装置である3台の装置101a〜101cは冗長化され、冗長装置205を構成している。なお装置101にはa〜cの符号を付しているが、特に各装置を区別する必要がない場合は単に装置101と記載する場合がある。装置101aはマスタ装置であり、装置101b、101cはスレーブ装置である。なおスレーブ装置は2台より多くても良い。各装置101は冗長装置接続パス206で接続しており、詳細は後述するが、それぞれの装置101で算出した障害率を冗長装置205を構成する各装置101間で動作するプロトコルの制御パケットによって通知する。障害率通知207は前記プロトコルの制御パケットによって障害率を通知している様子を示している。また、他のネットワーク装置である装置A201、装置B202、装置C203、装置D204は、冗長装置205とそれぞれ接続し、冗長装置205で中継したパケットの送受信を行う。なお、各装置A201〜装置D204からは冗長装置205は仮想的な1台の装置として認識されている。
【0012】
図2は装置101の内部構成を示すブロック図である。
装置101はルータやスイッチ等のネットワーク装置であり、障害率の計算やマスタ装置の切替先の選択等を行う制御部102と、隣接装置101とパケットの送受信を行うインタフェース部103と、プロトコルの処理や装置の切替処理を行う機能処理部104を有する。
【0013】
制御部102は、保守者などから設定されたコンフィグレーションを格納するコンフィグレーション112と、装置101内で発生するイベントのうち監視対象とするイベントを監視情報として格納する監視情報テーブル111と、装置101の優先度を格納する冗長装置情報113と、監視情報テーブル111で設定した監視情報を検出した回数を格納する検出回数格納テーブル114と、検出回数格納テーブル114の情報をもとに装置101の障害率を算出する障害率計算処理部124と、障害率計算処理部124で算出した障害率や装置101間で送受信する情報を格納する冗長装置情報格納テーブル116と、監視情報テーブル111と冗長装置情報113に設定された情報を制御するコンフィグレーション制御部121と、装置101内で発生するイベントを監視する監視処理部122と、装置101内で保持する装置の状態を表示する冗長装置表示処理部123と、冗長装置情報格納テーブル116の情報をもとにマスタ装置の切替先を選択する切替先装置選択部125と、インタフェース部103を介してプロトコルの制御パケットなどの送受信を行うパケット送受信部128を備える。
【0014】
機能処理部104は、冗長装置205を構成する各装置101間で動作するプロトコルを処理するプロトコル処理部126と、マスタ装置の装置切替処理を実施する装置切替処理部127を備える。プロトコル処理部126で動作するプロトコルは全ての隣接装置101とやりとりするOSPF(Open Shortest Path First)やVRRP(Virtual Router Redundancy Protocol)のような標準プロトコルであっても、装置独自のプロトコルであっても良い。装置切替処理部127は装置切替イベントが発生した際に、マスタ装置をスレーブ装置へ、またはスレーブ装置をマスタ装置へ切り替えるための処理を実施する。
【0015】
図3は監視情報テーブル111の構成を示す図である。
監視情報テーブル111は、項番301、監視情報302、検出条件303、重み付け係数304を有する。保守者はコンフィグレーションにより予め各項目を設定する。監視情報302には、項番301毎に装置101内で発生するイベントのうち監視対象とするイベントを設定する。同じ監視情報302であっても、監視対象のモジュールや部品が異なれば複数指定することも可能である。検出条件303には、各監視情報302を検出する条件や閾値を設定する。重み付け係数304には、障害率を算出する際に使用する監視情報302毎の重要度を重み付け係数として格納する。
【0016】
図4は冗長装置情報113の構成を示す図である。
冗長装置情報113は、項番401、装置識別子402、優先度403を有する。保守者はコンフィグレーションにより予め各項目を設定する。項番401は項番を示し、装置識別子402は自装置である装置101を識別する情報を格納する。本実施形態では、装置識別子402に「10.1.1.1」としてIPアドレスを格納しているが、記号や装置番号など冗長装置205のなかで装置101を一意に識別できるものであれば良い。優先度403は自装置の優先度を格納し、冗長装置205のなかで装置101ごとに重複しない値を格納する。
【0017】
図5は検出回数格納テーブル114の構成を示す図である。
検出回数格納テーブル114は、項番501、監視情報502、検出回数503を有する。項番501、監視情報502は、監視情報テーブル111の項番301、監視情報302と同じ内容であり、監視情報テーブル111に情報が設定されるとコンフィグレーション制御部121によって同じ情報が検出回数格納テーブル114にも設定される。例えば、監視情報テーブル111の項番「1」の監視情報302に「パッケージ障害」が設定されると、コンフィグレーション制御部121が、検出回数格納テーブル114の項番「1」の監視情報502に「パッケージ障害」を格納する。検出回数503は監視処理部122が監視情報502のイベントを検出した際に加算する。
【0018】
図6は障害率601を算出するための計算式を示す図である。
障害率601は装置101に障害が発生する確率を示し、本実施形態では、監視情報テーブル111に設定した監視情報302が稼働時間602あたりに発生する確率を障害率601とする。障害率601は検出回数格納テーブル114に設定している全ての監視情報502(k=1:検出回数格納テーブル114の項番「1」を示し、項番「n」まで実施する)に対して、検出回数503と監視情報テーブル111に設定された対応する重み付け係数304を掛けた合計値を算出し、装置101の稼働時間602で割って求める。なお、障害率601の計算方法は図6の計算式に限られず、例えば重み付け係数を用いなくてもよいし、検出回数格納テーブル111に設定している監視情報502の中から所定の監視情報502のみを計算対象としてもよく、任意の計算式を用いて装置101の障害率を算出可能である。
【0019】
図7は実施例1で使用する冗長装置情報格納テーブル116の構成を示す図である。
冗長装置情報格納テーブル116は項番801、装置識別子802、系状態803、優先度804、障害率805、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を有する。
【0020】
項番801は項番を示し、装置識別子802は装置101を識別するための情報を格納する。系状態803は、装置の状態がマスタかスレーブかを示す情報を格納する。優先度804は、装置101毎に設定した冗長装置情報113に格納している優先度403を格納する。障害率805は、障害率計算処理部124が算出した障害率601を格納する。優先度から選択した切替先順位806は、系状態803が「スレーブ」である装置について優先度804が最も高い装置から降順に順位を「1位」から格納する。障害率から選択した切替先順位807は、系状態803が「スレーブ」である装置について障害率805が最も低い装置から昇順に順位を「1位」から格納する。切替先808はマスタ装置の切替先となる装置を示す。
【0021】
図8はコンフィグレーション制御部121の処理フローを示す図である。
コンフィグレーション制御部121は監視情報テーブル111または冗長装置情報113に情報が設定されると図8の処理フローを実行し、検出回数格納テーブル114の設定と監視処理部122へ監視開始の指示、または冗長装置情報格納テーブル116の設定を実施する。以下、処理フローを説明する。
【0022】
コンフィグレーション制御部121は監視情報テーブル111または冗長装置情報113に情報が設定されると処理を開始する(S91)。設定されたコンフィグレーション112を判定する(S92)。S92の判定の結果、冗長装置情報113が設定された場合、冗長装置情報113から自装置101の装置識別子402と優先度403を取得する(S93)。S93で取得した自装置の装置識別子402と優先度403を冗長装置情報格納テーブル116の装置識別子802と優先度804へそれぞれ追加する(S94)。なお、自装置の初期の系状態(マスタまたはスレーブ)は、保守者によるコンフィグレーションや各装置101間で動作するプロトコルの制御パケットなどによって決定されるため、S94のタイミングで冗長装置情報格納テーブル116へ自装置の系状態803を格納しておく。
【0023】
S92の判定の結果、監視情報テーブル111が設定された場合、監視情報テーブル111から設定された監視情報302と検出条件303を取得する(S95)。S95で取得した監視情報302の検出回数を格納するために、取得した監視情報302を検出回数格納テーブル114の監視情報502へ追加する(S96)。監視処理部122へ検出条件303を満たす監視情報302を監視開始するよう通知する(S97)。S94、またはS97の処理後にコンフィグレーション制御部121の処理を終了する(S98)。
【0024】
図9は監視処理部122の処理フローを示す図である。
監視処理部122はコンフィグレーション制御部121から監視開始を通知された場合に処理開始し(S97)、検出条件303を満たす監視情報302を監視する。検出条件303を満たす監視情報302が発生すると検出回数格納テーブル114の該当する監視情報502の検出回数503を加算する。なお、監視処理部122は、監視情報302の監視および検出回数の加算処理を開始すると、検出回数格納テーブル114から当該監視情報が削除されるまで処理を続ける。以下、処理フローを説明する。
【0025】
監視処理部122はコンフィグレーション制御部121から監視開始を通知された場合に処理を開始する(S101)。監視処理部122は検出条件303を満たす監視情報302が発生しているのか監視する(S102)。検出条件303を満たす監視情報302が発生すると、検出回数格納テーブル114の対応する監視情報502の検出回数503を加算し、障害率を計算するため、障害率計算処理部124へ障害率計算を要求する(S103)。S103の処理後に監視処理部122の処理を終了する(S104)。
【0026】
図10は障害率計算処理部124の処理フローを示す図である。
障害率計算処理部124は監視処理部122やパケット送受信処理部128などから障害率の計算を要求された場合に図10の処理フローを実行し、検出回数格納テーブル114から検出回数503を取得し、図6の計算式に基づいて障害率601を算出し、冗長装置情報格納テーブル116へ算出結果を格納する。以下、処理フローを説明する。
【0027】
障害率計算処理部124は監視処理部122やパケット送受信部128などから障害率の計算を要求された場合に処理を開始する(S111)。障害率を算出するため、検出回数格納テーブル114から監視情報502毎の検出回数503を取得し、監視情報テーブル111から各監視情報502に対応する重み付け係数304を取得する(S112)。図6に示す計算式により障害率601を算出し、冗長装置情報格納テーブル116の自装置の装置識別子802に対応する障害率805へ算出した障害率601を格納する(S113)。S113の処理後に障害率計算処理部124の処理を終了する(S114)。
【0028】
図11はパケット送受信部128がプロトコルの制御パケットを送信する処理フローを示す図である。
パケット送受信部128はプロトコル処理部126がプロトコルの制御パケットを送信する際に図11の処理フローを実行し、冗長装置情報格納テーブル116から隣接装置101へ通知する情報を取得し、プロトコル処理部126が生成した制御パケットに取得した情報を格納するための新規フィールドを追加して送信する。なお、プロトコル処理部126は、冗長装置205を構成する各装置101間で動作するプロトコルの制御パケットを定期的に送受信しており、本処理フローはプロトコル処理部126が制御パケットを送信する度に実行される。以下、処理フローを説明する。
【0029】
パケット送受信部128はプロトコル処理部126がプロトコルの制御パケットを送信する際に処理を開始する(S121)。プロトコルの制御パケットを送信する際に障害率を算出するため、障害率計算処理部124へ障害率計算を要求する(S122)。冗長装置情報格納テーブル116を参照し、自装置の系状態803を判定する(S123)。S123の判定の結果、系状態803が「スレーブ」であった場合、マスタ装置が切り替わる場合の切替先を選択しておくため、切替先装置選択部125へ切替先選択を通知する(S124)。なおこの際、切替先装置選択部125に対して処理種別が送信処理(制御パケットを送信する際の処理)であることを通知する。
【0030】
S123の判定の結果、系状態803が「マスタ」であった場合、またはS124の処理後、S125で、パケット送受信部128は冗長装置情報格納テーブル116から自装置の装置識別子802、系状態803、優先度804、障害率805を取得する。パケット送受信部128は、プロトコル処理部126が生成した制御パケットに新規フィールドを追加して、取得した自装置の装置識別子802、系状態803、優先度804、障害率805を設定することにより、新たな制御パケットを生成する(S125)。S125で生成したプロトコルの新たな制御パケットをインタフェース部103より隣接装置101へ送信する(S126)。隣接装置101への制御パケットの送信は図1に障害率通知207として示している。S126の処理後にパケット送受信部128の処理を終了する(S127)。
【0031】
図12はパケット送受信部128がプロトコルの制御パケットを受信する処理フローを示す図である。
パケット送受信部128はS126で隣接装置101が送信したプロトコルの制御パケットをインタフェース部103から受信した際に図12の処理フローを実行し、プロトコルの制御パケットからS125で追加された情報を取得し、取得した情報を切替先装置選択部125へ通知する。以下、処理フローを説明する。
【0032】
パケット送受信部128はインタフェース部103がプロトコルの制御パケットを受信した際に処理を開始する(S131)。プロトコルの制御パケットから隣接装置101によってS125で追加された情報(装置識別子802、系状態803、優先度804、障害率805)を取得し、マスタ装置の切替先を選択するために切替先装置選択部125へ取得した情報を通知する。なおこの際、切替先装置選択部125に対して処理種別が受信処理(制御パケットを受信した際の処理)であることを通知する。さらに、受信した制御パケットからS125で追加された新規フィールドを削除する(S132)。プロトコル処理を実施するため、プロトコル処理部126へプロトコルの制御パケットを通知する(S133)。S133の処理後にパケット送受信部128の処理を終了する(S134)。
【0033】
図13は切替先装置選択部125の処理フローを示す図である。
切替先装置選択部125はパケット送受信部128がプロトコルの制御パケットを送信する際(S124)、または受信した際(S132)に図13の処理フローを実行する。優先度804に基づいて優先度から選択した切替先順位806を、障害率805に基づいて障害率から選択した切替先順位807を、優先度から選択した切替先順位806と障害率から選択した切替先順位807に基づいて切替先808を設定する処理フローである。以下、処理フローを説明する。
【0034】
切替先装置選択部125はパケット送受信部128がプロトコルの制御パケットを送信する際(S124)、または受信した際(S132)に処理を開始する(S141)。切替先装置選択部125がパケット送受信部128から通知された処理種別が送信処理または受信処理のどちらであるか判定する(S142)。S142の判定の結果、処理種別が受信処理の場合、切替先装置選択部125はパケット送受信部128から通知された情報を冗長装置情報格納テーブル116に格納する。具体的には、切替先装置選択部125はパケット送受信部128から通知された装置識別子802で冗長装置情報格納テーブル116の装置識別子802を検索し、既に登録されていた場合、対応する系状態803、優先度804、障害率805をパケット送受信部128から通知された情報で更新する。パケット送受信部128から通知された装置識別子802が登録されていなかった場合、新規に装置識別子802を追加し、系状態803、優先度804、障害率805を登録する(S143)。
【0035】
S142の判定の結果、処理種別が送信処理の場合、またはS143の処理後、切替先装置選択部125は冗長装置情報格納テーブル116の系状態803が「スレーブ」である装置の優先度804を比較し、優先度が高い(優先度804の値が大きい)順に、優先度から選択した切替先順位806に順位を設定する(S144)。切替先装置選択部125は冗長装置情報格納テーブル116の系状態803が「スレーブ」である装置の障害率805を比較し、障害率が低い(障害率805の値が小さい)順に、障害率から選択した切替先順位807に順位を設定する(S145)。
【0036】
切替先装置選択部125は、障害率から選択した切替先順位807が1位の(スレーブ装置のなかで障害率が最も低い)装置識別子802を検索する(S146)。S146で検索した結果、1位の装置識別子802が1台であった場合、障害率から選択した切替先順位807が1位の装置識別子802の装置101を切替先808として決定する。切替先808が他の装置識別子802に設定されていた場合、切替先808として決定した装置識別子802の切替先808へ値を変更する。または、切替先808が未だ設定されていない場合、切替先808として決定した装置識別子802の切替先808へ値を設定する(S147)。
【0037】
S146で検索した結果、1位の装置識別子802が複数台であった場合、さらに優先度から選択した切替先順位806を比較し、優先度から選択した切替先順位806が1番高い(最も優先度が高い)装置識別子802の装置101を切替先808として決定する。切替先808が他の装置識別子802に設定されていた場合、切替先808として決定した装置識別子802の切替先808へ値を変更する。または、切替先808が未だ設定されていない場合、切替先808として決定した装置識別子802の切替先808へ値を設定する(S148)。なお、図7ではS147またはS148で切替先として決定された装置101の切替先808に○印を付して示している。S147、またはS148の処理後に切替先装置選択部125の処理を終了する(S149)。
【実施例1】
【0038】
前述した図1で説明したネットワーク構成においてパッケージ障害を検出した装置101aが障害率601を算出する動作と、算出した結果をプロトコルの制御パケットへ付加して隣接装置101bと隣接装置101cへ通知する動作と、隣接装置101bからプロトコルの制御パケットを受信した動作と、図7に示した冗長装置情報格納テーブル116の切替先808を再選択する動作について説明する。
【0039】
装置101aが、図3の監視情報テーブル111、図4の冗長装置情報113、図5の検出回数格納テーブル114、図7の冗長装置情報格納テーブル116をそれぞれ保持しているものとし、装置101aで監視処理部122がパッケージ障害の発生を検出したとする。
【0040】
装置101aが障害率601を算出する動作を説明する。
パッケージ障害を監視する監視処理部122は図9の処理フローを実施する。監視中にパッケージ障害を検出した場合、図5の検出回数格納テーブル114から該当する監視情報502を検索し、監視情報502が「パッケージ障害」のエントリの検出回数503の値を加算して「2」とする。監視処理部122はパッケージ障害発生の検出を契機として障害率を計算するため、障害率計算処理部124へ障害率計算を要求する。
【0041】
障害率計算処理部124は図10の処理フローを実施する。検出回数格納テーブル114から全てのエントリ(項番「1」から項番「n」)の検出回数503を取得し、監視情報テーブル111からも全てのエントリ(項番「1」から項番「n」)の重み付け係数304を取得する。障害率計算処理部124は図6の計算式を使用して、障害率601(値は0.05)を算出し、冗長装置情報格納テーブル116に、算出した自装置の障害率601(値は0.05)を格納する。図7の例では、装置識別子802の自装置を表す値「10.1.1.1」に対応する障害率805へ値「0.05」を格納する。
【0042】
冗長装置205を構成する各装置101間で動作するプロトコルの処理はプロトコル処理部126が実施し、プロトコルの制御パケットを装置101間で送受信する。装置101はプロトコルの制御パケットを送信する際、冗長装置情報格納テーブル116に格納した自装置の情報をプロトコルの制御パケットに付加し、隣接装置101へ障害率を通知する。
【0043】
装置101aが算出した障害率601をプロトコルの制御パケットへ付加し、隣接装置101bと隣接装置101cへ通知する動作を説明する。
装置101aのプロトコル処理部126はプロトコルの処理により、制御パケットを送信する場合、制御パケットを生成してパケット送受信部128へ送信を要求する。パケット送受信部128が制御パケットを送信する際、図11に示した処理フローを実施する。パケット送受信部128はプロトコル処理部126が生成した制御パケットに付加する障害率を更新するため、障害率計算処理部124へ障害率計算を要求する。これにより、障害率計算処理部124が自装置101aの障害率を計算して冗長装置情報格納テーブル116へ格納する。パケット送受信部128は、冗長装置情報格納テーブル116を参照し、自装置の系状態803が「マスタ」であるため、冗長装置情報格納テーブル116から自装置の装置識別子802「10.1.1.1」のエントリから系状態803「マスタ」、優先度804「200」、障害率805「0.05」をそれぞれ取得する。取得した情報を制御パケットに付加するため、制御パケットに新規フィールドを追加し、装置識別子802「10.1.1.1」、系状態803「マスタ」、優先度804「200」、障害率805「0.05」をそれぞれ追加した新規フィールドに設定して新たな制御パケットを生成する。生成した新たな制御パケットをインタフェース部103を介して隣接装置101bと隣接装置101cへ送信する。
【0044】
装置101aが隣接装置101bからプロトコルの制御パケットを受信した際の動作を説明する。
装置101aが隣接装置101bからプロトコルの制御パケットをインタフェース部103で受信すると、図12に示すパケット送受信部128の処理フローを実施する。パケット送受信部128は受信した制御パケットから追加フィールドに設定されている装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、障害率805「0.01」の各情報を取得する。マスタ装置の切替先を選択するために切替先装置選択部125へ取得した各情報を通知する。さらに、処理種別が受信処理であることを切替先装置選択部125へ通知する。また、プロトコル処理部126がプロトコル処理を実施可能とするため、制御パケットから追加フィールドを削除し、本来のプロトコルの制御パケットに戻す。追加フィールドを削除したプロトコルの制御パケットをプロトコル処理部126へ通知し、プロトコルの処理を実施する。
【0045】
制御パケットから取得した装置識別子802「10.1.1.2」の情報をパケット送受信部128が切替先装置選択部125へ通知すると、切替先装置選択部125が図13に示す処理フローを実施する。切替先装置選択部125は、通知された処理種別が受信処理であるため、冗長装置情報格納テーブル116から、パケット送受信部128から通知された装置識別子802「10.1.1.2」と一致するエントリを検索し、パケット送受信部128から通知された系状態803の「スレーブ」、優先度804「50」、障害率805「0.01」を更新する。そしてマスタ装置の切替先を選択するため、優先度から選択した切替先順位806と障害率から選択した切替先順位807を設定する。
【0046】
優先度から選択した切替先順位806は、冗長装置情報格納テーブル116に登録されている系状態803が「スレーブ」である装置の優先度804を比較し、優先度804の値が最も高い装置(装置識別子802が「10.1.1.3」である装置101c)を優先度から選択した切替先順位806が「1位」であるとして設定する。2番目に優先度804の値が高い装置(装置識別子802が「10.1.1.2」である装置101b)を優先度から選択した切替先順位806が「2位」であるとして設定する。
【0047】
障害率から選択した切替先順位807は、冗長装置情報格納テーブル116に登録されている系状態803が「スレーブ」である装置の障害率805を比較し、障害率805の値が最も低い装置(装置識別子802が「10.1.1.2」である装置101b)を障害率から選択した切替先順位807が「1位」であるとして設定する。2番目に障害率805の値が低い装置(装置識別子802が「10.1.1.3」である装置101c)を障害率から選択した切替先順位807が「2位」であるとして設定する。
【0048】
マスタ装置の切替先を示す切替先808を設定するため、障害率から選択した切替先順位807が「1位」の装置識別子802を検索する。検索した結果、障害率から選択した切替先順位807が「1位」の装置識別子802が1台しかいないため、障害率から選択した切替先順位807が「1位」の装置(装置識別子802が「10.1.1.2」である装置101b)を切替先808として決定し、○印を設定する。
【0049】
図7に示した冗長装置情報格納テーブル116の切替先808を再選択する動作について説明する。なお装置101bの監視処理部122が監視情報302を検出し、装置101bの障害率が「0.01」から「0.20」へ更新され、その算出結果がプロトコルの制御パケットに付加されて隣接装置101aへ送信される例を説明する。
【0050】
装置101bのパケット送受信部128が図11に示した処理フローを実施するすることにより、追加フィールドに装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、障害率805「0.20」が設定された制御パケットを隣接装置101aおよび101cに送信する。ここで、装置101aで管理していた装置101bの障害率805は、図7に示すように「0.01」であったが、今回送信された制御パケットには障害率805がS122により更新された結果、「0.20」が設定されている。また、装置101bは系状態803が「スレーブ」であるため、図11においてS124が実行される。
【0051】
装置101bにおいて、図11のS124が実行されるため、切替先装置選択部125が図13に示す処理フローを実施する。切替先装置選択部125は、処理種別が送信処理であるため、優先度から選択した切替先順位806と、障害率から選択した切替先順位807と、切替先808を設定する。
【0052】
装置101bでは、冗長装置情報格納テーブル116の優先度から選択した切替先順位806について、装置101c(装置識別子:10.1.1.3、優先度:100)が「1位」と設定され、装置101b(装置識別子:10.1.1.2、優先度:50)が「2位」と設定される。
【0053】
また、障害率から選択した切替先順位807については、装置101bの障害率805が「0.01」から「0.20」に更新されたため、装置101c(装置識別子:10.1.1.3、障害率:0.15)が「1位」と設定され、装置101b(装置識別子:10.1.1.2、障害率:0.20)が「2位」と設定される。
【0054】
切替先808については、障害率から選択した切替先順位807の「1位」が装置101bから装置101cに変更されたため、装置101b(装置識別子802:10.1.1.2)の切替先808に設定されていた○印を装置101c(装置識別子802:10.1.1.3)の切替先808へ変更する。
【0055】
続いて、装置101bが送信したプロトコルの制御パケットを受信した装置101aの動作について説明する。
装置101aが隣接装置101bからプロトコルの制御パケットを受信すると、図12に示す処理フローを実施する。
装置101aでは、パケット送受信部128が受信したプロトコルの制御パケットから装置識別子802「10.1.1.2」、系状態803「スレーブ」、優先度804「50」、更新された障害率805「0.20」の各情報を取得し、切替先装置選択部125へ通知する。この際、処理種別が受信処理であることも通知する。
【0056】
パケット送受信部128から各情報を通知された切替先装置選択部125は図13に示す処理フローを実施する。切替先装置選択部125は、処理種別が受信処理であるため、冗長装置情報格納テーブル116から装置101b(装置識別子802:10.1.1.2)のエントリを検索し、パケット送受信部128から通知された系状態803「スレーブ」、優先度804の「50」、障害率805「0.20」を更新する。そしてマスタ装置の切替先を選択するため、優先度から選択した切替先順位806と障害率から選択した切替先順位807を設定する。
【0057】
装置101aの切替先装置選択部125は、図7の冗長装置情報格納テーブル116の優先度から選択した切替先順位806について、装置101c(装置識別子:10.1.1.3、優先度:100)を「1位」と設定し、装置101b(装置識別子:10.1.1.2、優先度:50)を「2位」と設定する。
【0058】
また、障害率から選択した切替先順位807については、装置101bの障害率805が「0.01」から「0.20」に更新されたため、装置101c(装置識別子:10.1.1.3、障害率:0.15)を「1位」に変更し、装置101b(装置識別子:10.1.1.2、障害率:0.20)を「2位」に変更する。
【0059】
切替先808については、障害率から選択した切替先順位807の「1位」が装置101bから装置101cに変更されたため、装置101b(装置識別子802:10.1.1.2)の切替先808に設定されていた○印を装置101c(装置識別子802:10.1.1.3)の切替先808へ変更する。
【0060】
以上説明したように、本実施例によれば、障害率の低い装置をマスタ装置の切替先として選択可能になるため、マスタ装置の切り替え後に障害が発生する確率が低くなり、ネットワークに及ぼす影響を軽減することができる。また、監視情報302の発生を検出するたび、またはプロトコルの制御パケットを送信するたびに装置の障害率を算出し、算出した障害率をプロトコルの制御パケットで隣接装置101へ通知する。これにより、障害率805を更新し、そのつど最新の障害率805から切替先808を決めるため、常に障害率の低い装置をマスタ装置の切替先として選択可能となる。
【0061】
なお、本実施例では、マスタ装置の切替先の選択手法について記載しているが、実際にマスタ装置の切り替えを行うタイミングについては特に規定しておらず、任意のタイミングでマスタ装置の切り替えを行うことができる。例えば、マスタ装置が装置障害によりダウンしてしまった場合にマスタ装置の切り替えを行うことが考えられる。この場合は、マスタ装置のダウンを検出した各スレーブ装置が冗長装置情報格納テーブル116の切替先808を参照し、切替先として選択されているスレーブ装置がマスタ装置に切り替わることになる。また、別の例として、プロトコルの制御フレームを送受信して冗長装置情報格納テーブル116が更新される度にマスタ装置の切り替え要否を判断するようにしてもよい。この場合、プロトコルの制御フレームの送受信により冗長装置情報格納テーブル116が更新される度に、スレーブ装置のなかから切替先808に指定されている装置の障害率805とマスタ装置の障害率805とを比較し、切替先808に指定されているスレーブ装置の障害率の方が低い場合にはマスタ装置の切り替えを行うことになる。また、更に別の例として、冗長装置205を構成する各装置101間でマスタ装置としての運用時間をなるべく均一化するために、所定の時間毎にマスタ装置の切り替えを行うことも可能である。この場合も各スレーブ装置が所定の時間毎に冗長装置情報格納テーブル116の切替先808を参照し、切替先として選択されているスレーブ装置がマスタ装置に切り替わることになる。
【実施例2】
【0062】
図14は実施例2における冗長装置情報格納テーブル116の構成を示す構成図である。図示したように実施例2における冗長装置情報格納テーブル116は、図7で示した実施例1の構成から系状態803、優先度804、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を削除し、自装置のみの情報を保持するようにしたものである。このように本実施例では、冗長装置情報格納テーブル116に優先度を保持しないため、図8のコンフィグレーション制御部121の処理において、冗長装置情報113からの自装置の優先度403の取得(図8のS93)と、冗長装置情報格納テーブル116への自装置の優先度403の格納(図8のS94)は不要となる。つまり、図8のS93では冗長装置情報113からの自装置の装置識別子402を取得し、S94では冗長装置情報格納テーブル116に自装置の装置識別子402を格納することになる。
【0063】
図15は実施例2における障害率計算処理部124の処理フローを示す図である。図10で示した実施例1の障害率計算処理部124の処理フローにS164を追加した点が大きく異なるため、実施例1との差分について説明する。S113の処理後、プロトコルの制御パケットの優先度設定フィールドにS113で算出した障害率を加味した値を設定するため、プロトコル処理部126へ算出した障害率601を通知する(S164)。
【0064】
プロトコル処理部126は、障害率601の値を変換して装置101間で動作するプロトコルの制御パケットの優先度設定フィールドに設定する。これにより、プロトコルによって規定された制御パケットの優先度フィールドに、障害率601を加味した優先度を設定して隣接装置に送信することができるため、実施例1のようにプロトコルの制御パケットに新規にフィールドを追加する必要がない。装置101間で動作するプロトコルはVRRP(Virtual Router Redundancy Protocol)のようなプロトコルの制御パケット内に優先度を設定するフィールドをもつプロトコルを指す。
【0065】
なお、プロトコル処理部126が障害率601の値を変換する例として、障害率601の逆数に変換する、または障害率601を10のn乗し整数値として変換する、または優先度403の値に障害率601の値を掛けて変換する、などが考えられ、プロトコルに応じて優先度設定フィールドに設定する値を任意に変換すればよい。
【0066】
図1で示したネットワーク構成において、装置101aが障害率601を算出し、算出した障害率601を加味した優先度をプロトコルの制御パケットに設定して隣接装置101bと隣接装置101cへ送信する動作について、実施例1との差分を説明する。
【0067】
装置101aは図2に示す内部構成を備えており、冗長装置情報格納テーブル116は図14で示す値を格納しているものとし、装置101で監視処理部122がパッケージ障害を検出して、障害率計算処理部124へ障害率の計算を要求したとする。
【0068】
障害率計算処理部124は図15に示した処理フローを実施する。S112,S113により自装置の障害率601「0.05」を算出し、冗長装置情報格納テーブル116に格納する。S164にて、プロトコル処理部126へ算出した障害率601「0.05」を通知する。
【0069】
プロトコル処理部126は、プロトコルの制御パケットを送信する際、障害率計算処理部124から通知された障害率601「0.05」を変換して優先度設定フィールドに設定する値を決定する。障害率601「0.05」を変換する方法として、逆数を使用した例を示す。障害率601の値(0.05)の逆数を取ると、「20」になる。変換した値(20)を優先度設定フィールドに設定し、プロトコルの制御パケットの送信をパケット送受信部128へ要求する。
【0070】
パケット送受信部128は前記プロトコル処理部126で生成したプロトコルの制御パケットを隣接装置101bと隣接装置101cへインタフェース部103を介して送信する。なお、プロトコル処理部126が算出した障害率を加味した優先度は、図4の冗長装置情報113に保持される。このとき、冗長装置情報113の優先度403のフィールドに上書きしてもよいし、優先度403とは別フィールドに保持してもよい。
【0071】
また、装置101aは、隣接装置101b、101cから同じく障害率を加味した優先度を設定したプロトコルの制御パケットを受信すると、パケット送受信部128がプロトコル処理部126へ通知する。プロトコル処理部126は、プロトコルの制御パケットの優先度設定フィールドから装置101b、101cそれぞれの優先度を取得し、冗長装置情報113に保持している自装置101aの優先度403と比較して、マスタ装置の切り替えが必要か否か判断する。マスタ装置の切り替えが必要であると判断すると、装置切替処理部127へマスタ装置の切替処理を要求する。同様に隣接装置101b、101cでもマスタ装置の切り替えが必要であるか否かを判断し、適宜マスタ装置を切り替える。
【0072】
本実施例2によれば、優先度設定フィールドをもつプロトコルの制御パケットと連携することができ、プロトコルで規定された制御パケットのフォーマットを変更せずに障害率を加味したマスタ装置の切り替えを実現することができる。
【実施例3】
【0073】
図16は冗長装置表示処理部123の処理フローを示す図である。
冗長装置表示処理部123は自装置101の情報を表示する際、または冗長装置205を構成する全ての装置101の情報を表示する際に、検出回数格納テーブル114または冗長装置情報格納テーブル116を参照し、各情報を出力する。以下、処理フローを説明する。
【0074】
自装置101の情報、または冗長装置205を構成する全ての装置101の情報を表示する際に冗長装置表示処理部123は図16の処理を開始する。処理を開始する際は、自装置101の情報を表示するか、冗長装置205を構成する全ての装置101の情報を表示するかをパラメータとして指示する表示命令(表示コマンド)を保守者等から入力される(S211)。なお、S211において、保守者は例えば装置101が備えるキー入力部(図示は省略)から表示命令を行ってもよいし、冗長装置205に保守端末(図示は省略)を接続して当該保守端末から装置101に対して表示命令を行うなどの手法でもよい。
【0075】
入力されたパラメータを判定する(S212)。S212の判定の結果、自装置101の情報を表示する場合、検出回数格納テーブル114から監視情報502と検出回数503を取得し、冗長装置情報格納テーブル116から自装置101のレコードを取得し、取得したレコードに格納された各情報を出力する(S213)。S212の判定の結果、冗長装置205を構成する全ての装置101の情報を表示する場合、冗長装置情報格納テーブル116から全ての装置のレコードを取得し、取得したレコードに格納された各情報を出力する(S214)。なお、S213,S214において出力された各情報は、例えば装置101が備える表示部(図示は省略)に表示してもよいし、上述した保守者が操作する保守端末に表示してもよい。S213またはS214の処理後に、冗長装置表示処理部123の処理を終了する(S215)。
【0076】
実施例1、実施例2において検出回数格納テーブル114と冗長装置情報格納テーブル116に格納した情報を表示するまでの動作について説明する。
表示コマンドによって自装置101の情報を表示、または冗長装置205を構成する全ての装置101の情報を表示する際に処理する冗長装置表示処理部123は図16に示した処理フローを実施する。
【0077】
表示コマンドによって入力されたパラメータ(自装置101の情報を表示、または冗長装置205を構成する全ての装置101の情報を表示)から表示内容を判定する。パラメータが自装置101の情報表示を示している場合、検出回数格納テーブル114の項番501「1」から項番「n」までの監視情報502と検出回数503を取得する。また、冗長装置情報格納テーブル116の装置識別子802の値が自装置のレコードから各情報を取得し出力する。一方、パラメータが冗長装置205を構成する全ての装置101の情報表示を示している場合、冗長装置情報格納テーブル116の全ての装置識別子802のレコードから各情報を取得し出力する。
【0078】
例えば、図7に示した冗長装置情報格納テーブル116を保持している状態で、手動の表示コマンドによって冗長装置205を構成する全ての装置101の情報を表示することが命令されたとする。冗長装置情報格納テーブル116から装置識別子802の値「10.1.1.1」から「10.1.1.3」までの系状態803、優先度804、障害率805、優先度から選択した切替先順位806、障害率から選択した切替先順位807、切替先808を取得し出力する。なお、実施例2のケースでは、冗長装置情報格納テーブル116が自装置の装置識別子802と障害率805しか保持しないため、表示コマンドのパラメータとしては自装置101の情報表示しか選択できない。この場合は、自装置の装置識別子802と障害率805を出力し、表示する。
【0079】
本実施例3によれば、装置毎に算出した障害率、または装置内で発生した監視情報の検出回数などを可視化することで、冗長装置のなかで障害率が高い装置を把握することができる。さらには、装置のなかでも障害発生回数の多い監視情報を特定することが出来るため、保守者が障害発生前に装置の部品交換や設定変更等が可能になり、ネットワークの障害率を減らすことができる。
【符号の説明】
【0080】
101a〜c:装置、102:制御部、103:インタフェース部、104:機能処理部、111:監視情報テーブル、112:コンフィグレーション、113:冗長装置情報、114:検出回数格納テーブル、116:冗長装置情報格納テーブル、121:コンフィグレーション制御部、122:監視処理部、123:冗長装置表示処理部、124:障害率計算処理部、125:切替先装置選択部、126:プロトコル処理部、127:装置切替処理部、128:パケット送受信部、201:装置A、202:装置B、203:装置C、204:装置D、205:冗長装置、206:冗長装置接続パス、207:障害率通知
【特許請求の範囲】
【請求項1】
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、
自装置に障害が発生する確率を示す障害率を算出する計算部と、
前記計算部が算出した自装置の障害率と前記他の装置の障害率に基づいて前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択する切替先装置選択部とを備えることを特徴とする装置。
【請求項2】
請求項1記載の装置であって、
前記他の装置の障害率は、前記他の装置から受信する制御パケットによって通知されることを特徴とする装置。
【請求項3】
請求項1または請求項2記載の装置であって、
自装置の前記障害率を格納した制御パケットを前記他の装置へ送信するパケット送信部を備えることを特徴とする装置。
【請求項4】
請求項1乃至請求項3のいずれかに記載の装置であって、
前記切替先装置選択部は、前記冗長装置を構成するスレーブ装置のなかから最も前記障害率が低い装置をマスタ装置となる装置として選択することを特徴とする装置。
【請求項5】
請求項1乃至請求項4のいずれかに記載の装置であって、
前記自装置において発生するイベントである監視情報の発生を監視する監視処理部と、
前記監視処理部が前記監視情報の発生を検出した回数である検出回数を前記監視情報毎に保持する検出回数格納部とを備え、
前記計算部は、前記監視情報に対して設定された重み付け値と前記監視情報毎の検出回数とに基づいて前記障害率を算出することを特徴とする装置。
【請求項6】
請求項5記載の装置であって、
前記冗長装置を構成する装置の障害率または前記監視情報毎の検出回数の少なくとも一方を出力または表示する処理部を備えることを特徴とする装置。
【請求項7】
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、
自装置に障害が発生する確率を示す障害率を算出する計算部と、
前記計算部が算出した自装置の障害率を加味して自装置の優先度を決定し、決定した優先度と前記他の装置の優先度に基づいて、前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択するプロトコル処理部とを備えることを特徴とする装置。
【請求項8】
請求項7記載の装置であって、
前記他の装置の障害率を加味した優先度は、前記他の装置から受信する制御パケットによって通知されることを特徴とする装置。
【請求項9】
請求項7または請求項8記載の装置であって、
自装置の前記障害率を加味した優先度を格納した制御パケットを前記他の装置へ送信するパケット送信部を備えることを特徴とする装置。
【請求項10】
請求項7乃至請求項9のいずれかに記載の装置であって、
前記プロトコル処理部は、前記冗長装置を構成する装置のなかから最も前記優先度が高い装置をマスタ装置となる装置として選択することを特徴とする装置。
【請求項11】
請求項7乃至請求項10のいずれかに記載の装置であって、
前記自装置において発生するイベントである監視情報の発生を監視する監視処理部と、
前記監視処理部が前記監視情報の発生を検出した回数である検出回数を前記監視情報毎に保持する検出回数格納部とを備え、
前記計算部は、前記監視情報に対して設定された重み付け値と前記監視情報毎の検出回数とに基づいて前記障害率を算出することを特徴とする装置。
【請求項12】
請求項11記載の装置であって、
前記自装置の障害率または前記監視情報毎の検出回数の少なくとも一方を出力または表示する処理部を備えることを特徴とする装置。
【請求項1】
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、
自装置に障害が発生する確率を示す障害率を算出する計算部と、
前記計算部が算出した自装置の障害率と前記他の装置の障害率に基づいて前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択する切替先装置選択部とを備えることを特徴とする装置。
【請求項2】
請求項1記載の装置であって、
前記他の装置の障害率は、前記他の装置から受信する制御パケットによって通知されることを特徴とする装置。
【請求項3】
請求項1または請求項2記載の装置であって、
自装置の前記障害率を格納した制御パケットを前記他の装置へ送信するパケット送信部を備えることを特徴とする装置。
【請求項4】
請求項1乃至請求項3のいずれかに記載の装置であって、
前記切替先装置選択部は、前記冗長装置を構成するスレーブ装置のなかから最も前記障害率が低い装置をマスタ装置となる装置として選択することを特徴とする装置。
【請求項5】
請求項1乃至請求項4のいずれかに記載の装置であって、
前記自装置において発生するイベントである監視情報の発生を監視する監視処理部と、
前記監視処理部が前記監視情報の発生を検出した回数である検出回数を前記監視情報毎に保持する検出回数格納部とを備え、
前記計算部は、前記監視情報に対して設定された重み付け値と前記監視情報毎の検出回数とに基づいて前記障害率を算出することを特徴とする装置。
【請求項6】
請求項5記載の装置であって、
前記冗長装置を構成する装置の障害率または前記監視情報毎の検出回数の少なくとも一方を出力または表示する処理部を備えることを特徴とする装置。
【請求項7】
少なくとも1台の他の装置と接続され、前記他の装置と冗長装置を構成する装置であって、
自装置に障害が発生する確率を示す障害率を算出する計算部と、
前記計算部が算出した自装置の障害率を加味して自装置の優先度を決定し、決定した優先度と前記他の装置の優先度に基づいて、前記冗長装置を構成する装置のなかからマスタ装置となる装置を選択するプロトコル処理部とを備えることを特徴とする装置。
【請求項8】
請求項7記載の装置であって、
前記他の装置の障害率を加味した優先度は、前記他の装置から受信する制御パケットによって通知されることを特徴とする装置。
【請求項9】
請求項7または請求項8記載の装置であって、
自装置の前記障害率を加味した優先度を格納した制御パケットを前記他の装置へ送信するパケット送信部を備えることを特徴とする装置。
【請求項10】
請求項7乃至請求項9のいずれかに記載の装置であって、
前記プロトコル処理部は、前記冗長装置を構成する装置のなかから最も前記優先度が高い装置をマスタ装置となる装置として選択することを特徴とする装置。
【請求項11】
請求項7乃至請求項10のいずれかに記載の装置であって、
前記自装置において発生するイベントである監視情報の発生を監視する監視処理部と、
前記監視処理部が前記監視情報の発生を検出した回数である検出回数を前記監視情報毎に保持する検出回数格納部とを備え、
前記計算部は、前記監視情報に対して設定された重み付け値と前記監視情報毎の検出回数とに基づいて前記障害率を算出することを特徴とする装置。
【請求項12】
請求項11記載の装置であって、
前記自装置の障害率または前記監視情報毎の検出回数の少なくとも一方を出力または表示する処理部を備えることを特徴とする装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2013−98671(P2013−98671A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−238185(P2011−238185)
【出願日】平成23年10月31日(2011.10.31)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願日】平成23年10月31日(2011.10.31)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
[ Back to top ]