(57)【要約】【課題】それぞれのスイッチのキャッシュの同期を不要とし，トラフィックの圧迫を軽減すること。【解決手段】直接接続ディスク検出部１５１と，直接接続ディスクテーブル１５２と，キャッシュ情報制御部１５３と，キャッシュメモリ１５４と，パス切り替え部１５５から構成されるキャッシュ内蔵型スイッチ１５０であって，直接接続ディスク検出部１５１は，スイッチ１５０に直接接続しているディスク１８０を検出し，そのディスク１８０のディスク番号を直接接続ディスクテーブル１５２に登録し，キャッシュ情報制御部１５３は，受信したフレームに記録されている送信先のディスク番号が，直接接続ディスクテーブル１５２に格納されているか否かを判定し，格納されている場合は前記送信先のディスクに対するキャッシュを有効化し，格納されていない場合は無効化するように制御を行う。【選択図】  図１
2004199169.tif 000002
【特許請求の範囲】
【請求項１】
直接接続ディスク検出部と，直接接続ディスクテーブルと，キャッシュ情報制御部と，キャッシュメモリと，パス切り替え部から構成されるキャッシュ内蔵型スイッチであって，
直接接続ディスク検出部は，キャッシュ内蔵型スイッチに直接接続しているディスクを検出し，そのディスクのディスク番号を直接接続ディスクテーブルに登録し，
キャッシュ情報制御部は，受信したフレームに記録されている送信先のディスク番号が，直接接続ディスクテーブルに格納されているか否かを判定し，格納されている場合は前記送信先のディスクに対するキャッシュを有効化し，格納されていない場合は無効化するように制御を行う，
ことを特徴とするキャッシュ内蔵型スイッチ。
【請求項２】
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムは，スイッチの直接接続対象であるディスクが直接接続されているか否かを判定するステップと，ディスクが直接接続されていると判定した時は，そのディスクのディスク番号を直接接続ディスクテーブルに登録するステップからなる直接接続検出処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項３】
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムは，受信したフレームから送信先のディスク番号を取得するステップと，取得したディスク番号が直接接続ディスクテーブルに格納されているか否かを判定するステップと，そのディスク番号が直接接続ディスクテーブルに格納されていると判定した時は，そのディスクへのアクセスではキャッシュを有効化するための処理をするステップと，そのディスク番号が直接接続ディスクテーブルに格納されていないと判定した時は，そのディスクへのアクセスではキャッシュを無効化するための処理をするステップからなるキャッシュ有効無効処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，複数の上位装置（サーバ等，ディスクをアクセスするコンピュータ）と複数のディスクを接続するキャッシュ内蔵型スイッチに関し，特にスイッチ間のキャッシュの同期を不要とするキャッシュ内蔵型スイッチに関する。
【０００２】
【従来の技術】
多数の上位装置と多数のディスクを接続する場合に，トランザクション性能等を向上するために接続用スイッチを用いることが考えられている。接続のための伝送路及びスイッチの具体的な製品の規格としてファイバーチャネルスイッチがある。このファイバーチャネルスイッチは，上位装置及びディスクと接続するためのＩ／Ｆを持ち，データの変換を行う。図６に，ファイバーチャネルスイッチを使用した従来のシステムを示す。このシステムは，多数の上位装置（代表として符号１１０を付記する）と，多数のディスク（代表として符号１８０，１９０を付記する）が，多数の接続用スイッチ１２０，１３０，１４０，１５０，１６０，１７０により，伝送路を介して接続されて成る。各スイッチ間の距離は，数メートルの近距離から，数万メートルの長距離に至る，様々な距離をとることが可能である。
【０００３】
なお，本発明は，図６に示すように，１つのディスクが１つのスイッチに直接接続するのみで，複数のスイッチには直接接続しないシステム構成を前提とする（１つのディスクが複数のスイッチに直接接続するシステム構成は除外する）。但し，スイッチは，１つのスイッチが複数のディスクに直接接続してもよい（図６に示す例では，ディスク１８０は１つのスイッチ１５０のみに，ディスク１９０は１つのスイッチ１６０のみに，それぞれ直接接続するだけであるが，そのスイッチ１５０は３つのディスクに，スイッチ１６０は２つのディスクに，それぞれ直接接続している。なお，スイッチ１２０は２つのディスクに，スイッチ１３０は１つのディスクに，スイッチ１４０は３つのディスクに，スイッチ１７０は２つのディスクに，それぞれ直接接続している）。ここで，「直接接続」とは，１つのスイッチのポートに直接，１つのディスクが接続されている状態をいい，「間接接続」とは，スイッチとディスクが別の異なるスイッチを介して接続している状態をいう。
【０００４】
図６に示す例において，上位装置１１０がディスク１８０にアクセスする場合，スイッチ１２０，１３０，１５０の経路と，スイッチ１２０，１４０，１５０の経路の何れかを経なければならない。
【０００５】
ところで，そのファイバーチャネルスイッチにキャッシュを内蔵したキャッシュ内蔵型スイッチが提案されている（例えば，特許文献１参照）。このキャッシュ内蔵型スイッチは，キャッシュを制御するためのキャッシュ制御部及びキャッシュ管理情報を持ち，上位装置からのデータ要求に対してキャッシュ内にデータが存在するか（キャッシュヒット）の判定及びデータの送信を行う。
【０００６】
これらの従来技術では，全てのファイバーチャネルスイッチのキャッシュを有効化することにより，それぞれの上位装置は高速でディスクにあるデータにアクセス可能になる。
【０００７】
【特許文献１】
特開２００１−３２５２０７号公報
【０００８】
【発明が解決しようとする課題】
しかし，前記従来技術のように，複数のスイッチのキャッシュを有効化しておくと，ある特定の上位装置がある特定のディスクのデータを更新するために，そのディスクに直接接続されているスイッチのキャッシュの当該データを更新した場合，他の全てのスイッチのキャッシュの内容について同期を取る必要がある。同期を取るためには，ある特定のスイッチのキャッシュにおいて発生した修正を他の全てのスイッチにも通知する必要がある。この通知のためのトラフィックはスイッチの個数に比例して大きくなり，トラフィックの圧迫を招くという問題があった。
【０００９】
本発明は，上記課題に鑑みて為されたものであり，それぞれのスイッチのキャッシュの同期を不要とし，トラフィックの圧迫を軽減することを目的とする。
【００１０】
【課題を解決するための手段】
請求項１の記載に係る発明は，
直接接続ディスク検出部と，直接接続ディスクテーブルと，キャッシュ情報制御部と，キャッシュメモリと，パス切り替え部から構成されるキャッシュ内蔵型スイッチであって，
直接接続ディスク検出部は，キャッシュ内蔵型スイッチに直接接続しているディスクを検出し，そのディスクのディスク番号を直接接続ディスクテーブルに登録し，
キャッシュ情報制御部は，受信したフレームに記録されている送信先のディスク番号が，直接接続ディスクテーブルに格納されているか否かを判定し，格納されている場合は前記送信先のディスクに対するキャッシュを有効化し，格納されていない場合は無効化するように制御を行う，
ことを特徴とする。
【００１１】
請求項２の記載に係る発明は，
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムは，スイッチの直接接続対象であるディスクが直接接続されているか否かを判定するステップと，ディスクが直接接続されていると判定した時は，そのディスクのディスク番号を直接接続ディスクテーブルに登録するステップからなる直接接続検出処理プログラムであることを特徴とする。
【００１２】
請求項３の記載に係る発明は，
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムは，受信したフレームから送信先のディスク番号を取得するステップと，取得したディスク番号が直接接続ディスクテーブルに格納されているか否かを判定するステップと，そのディスク番号が直接接続ディスクテーブルに格納されていると判定した時は，そのディスクへのアクセスではキャッシュを有効化するための処理をするステップと，そのディスク番号が直接接続ディスクテーブルに格納されていないと判定した時は，そのディスクへのアクセスではキャッシュを無効化するための処理をするステップからなるキャッシュ有効無効処理プログラムであることを特徴とする。
【００１３】
【発明の実施の形態】
以下，本発明のキャッシュ内蔵型スイッチを，図１〜図５を用いて説明する。図１は本発明のキャッシュ内蔵型スイッチの構成を，図２は直接接続ディスク検出部の直接接続検出処理のフローチャートを，図３は直接接続ディスクテーブルの例を，図４はキャッシュ情報制御部のキャッシュ有効無効処理のフローチャートを，図５は本発明のキャッシュ内蔵型スイッチを動作させた場合のシステム状態の例を，それぞれ示す図である。なお，図１は，前記従来技術の図６における，符号を付記した上位装置１１０，スイッチ１２０，１３０，１４０，１５０，及びディスク１８０のみを抽出して表したものである。
【００１４】
図１において，スイッチ１５０は，直接接続ディスク検出部１５１と，直接接続ディスクテーブル１５２と，キャッシュ情報制御部１５３と，キャッシュメモリ１５４と，パス切り替え部１５５から構成される。スイッチ１２０，１３０，１４０，１６０，１７０も同じ構成である。なお，図１では，スイッチ１５０は，ディスク１８０と直接接続し，又上位装置１１０とは，スイッチ１３０，１２０を介して，又はスイッチ１４０，１２０を介して間接接続している。キャッシュメモリ１５４はキャッシュの内容を記憶するものであり，パス切り替え部１５５はスイッチ１３０，１４０とディスク１８０の間のパスの切り替えを行うものであって，従来から知られているものである。
【００１５】
直接接続ディスク検出部１５１は，スイッチ１５０に直接接続しているディスク１８０を検出し，そのディスク１８０のディスク番号（個々のディスクを識別するための識別子。例えば，ファイバーチャネルではＷＷＮ（ＷＷＮは，装置のポートの識別番号である）で個々のディスクの識別を行っている）を直接接続ディスクテーブル１５２に登録する。図２に，この直接接続検出処理のフローチャートを示す。
【００１６】
図２において，直接接続ディスク検出部１５１は，スイッチ１５０の電源オンやリブート，スイッチ１５０とディスク１８０の接続，ディスク１８０の電源オンやリブート，或いは外部からの命令を契機として，直接接続検出処理プログラムを起動する。最初に，スイッチ１５０の直接接続対象であるディスクが直接接続されているか否かを判定する（ステップＳ２０１）。もし，ディスクが直接接続されていなければ，直接接続検出処理を終了する。ディスクが直接接続されていると判定した時は，そのディスク１８０のディスク番号を直接接続ディスクテーブル１５２に登録し（ステップＳ２０２），直接接続検出処理を終了する。
【００１７】
直接接続検出処理プログラムを起動する契機としてスイッチ１５０とディスク１８０の接続を採用した場合，例えばファイバチャネルでは，ディスク１８０がスイッチ１５０のネームサーバへファブリック・ログイン（ＦＬＯＧＩ）或いは，Ｎ＿Ｐｏｒｔログイン（ＰＬＯＧＩ）するタイミングとすればよい。或いは，定期的にスイッチ１５０のポートを監視することによっても，ディスク１８０の接続を検出することは可能である。
【００１８】
スイッチ１５０に直接接続しているディスク１８０のディスク番号を取得するには，例えばファイバチャネルでは，以下のように行われる。先ず，ＧＡ＿ＮＸＴ（Ｇｅｔ  ａｌｌ  ｎｅｘｔ）コマンドで，スイッチ１５０に直接接続している装置のＷＷＮを取得する。次に，ＧＰＬＴ（Ｇｅｔ  Ｐｌａｔｆｏｒｍ  Ｔｙｐｅ）コマンドで，それぞれのＷＷＮの装置種別を確認する。以上の情報を組み合わせて，直接接続している装置のうち，ディスクがどれかを判別することにより，直接接続しているディスクのＷＷＮを取得する。
【００１９】
直接接続ディスクテーブル１５２は，前述したように，スイッチ１５０に直接接続されたディスクのディスク番号を登録するためのテーブルである。図３に，直接接続ディスクテーブル１５２の例を示す。直接接続ディスクテーブル１５２には，スイッチ１５０に直接接続しているディスク１８０，及びその他のディスクのディスク番号（例として，Ｎｏ．１，Ｎｏ．５，Ｎｏ．８）が格納されている。
【００２０】
なお，本発明の直接接続ディスクテーブル１５２は，当該スイッチ１５０の電源オン又はリブート時には登録されているディスク番号を全て消去し，又，当該スイッチ１５０からのディスクの切り離し又は当該スイッチ１５０に直接接続されているディスクの電源オフ時には，そのディスクのディスク番号のみを消去するようにしているので，以前にスイッチ１５０に直接接続していたものの現在は直接接続していないディスクのディスク番号が，直接接続ディスクテーブル１５２に記憶されて残るようなことは無い。
【００２１】
キャッシュ情報制御部１５３は，受信したフレームに記録されている送信先のディスク番号が，直接接続ディスクテーブル１５２に格納されているか否かを判定し，前記送信先のディスクに対するキャッシュの有効化／無効化に関する制御を行うものである。図４に，このキャッシュ有効無効処理のフローチャートを示す。
【００２２】
図４において，キャッシュ情報制御部１５３は，フレームの送受信を契機として，キャッシュ有効無効処理プログラムを起動する。最初に，受信したフレームから送信先のディスク番号を取得する（ステップＳ４０１）。次に，取得したディスク番号が直接接続ディスクテーブル１５２に格納されているか否かを判定し（ステップＳ４０２），そのディスク番号が直接接続ディスクテーブル１５２に格納されていると判定した時は，そのディスクへのアクセスではキャッシュを有効化するための処理をした（ステップＳ４０３）後，キャッシュ有効無効処理を終了する。そのディスク番号が直接接続ディスクテーブル１５２に格納されていないと判定した時は，そのディスクへのアクセスではキャッシュを無効化するための処理をした（ステップＳ４０４）後，キャッシュ有効無効処理を終了する。
【００２３】
図５は，本発明のキャッシュ内蔵型スイッチを動作させた場合のシステム状態の例を示す図である。
【００２４】
ディスク１８０を使用とする上位装置１１０とディスク１８０の間が，ファイバーチャネルを介して，複数のスイッチ１２０，１３０，１４０，１５０により接続されている。図５に示すように，スイッチ１２０，１３０，１４０はディスク１８０と直接接続していないため，そのディスク１８０へのアクセスではキャッシュが無効化されている。これに対して，スイッチ１５０はディスク１８０と直接接続しているために，このディスク１８０への入出力に対するキャッシュが有効化されている。
【００２５】
以上述べたように，スイッチ１５０のキャッシュ情報制御部１５３を動作させることにより，当該スイッチ１５０に直接接続しているディスク１８０に対する上位装置からのアクセスに対してのみ，当該スイッチ１５０のキャッシュを自動的に有効化し，当該スイッチ１５０に間接接続している他のディスクに対する上位装置からのアクセスに対しては，当該スイッチ１５０のキャッシュは自動的に無効化する。つまり，複数のスイッチを介して複数の上位装置と複数のディスクを接続する構成では，ある特定のディスクに対するアクセスではキャッシュが有効なスイッチは，そのディスクに直接接続しているスイッチのみであり，常に１つだけである。
【００２６】
このようにすることによって，１つのディスクのデータ内容を一時的に記憶するキャッシュが，１つのスイッチのものとなるため，複数のスイッチ間でデータの同期を取る必要が無くなる。従って，同期によるトラフィックの圧迫を招かない。
【００２７】
又，複数のスイッチにおけるキャッシュの有効化，無効化の制御を行うためには，どのディスクがどのスイッチに直接接続しているかという情報が必要であるが，本発明のキャッシュ内蔵型スイッチによれば，この情報収集を自動的に行うため，作業量を削減出来る。
【００２８】
又，ある上位装置が，あるディスクのデータ内容を更新する際には，必ずそのディスクに直接接続したスイッチに内蔵されているキャッシュへの書き込みを経るために，常にディスクのデータの内容よりもスイッチのキャッシュの内容の方が新しい。それ故，スイッチのキャッシュの内容をディスクに反映する契機は，当該スイッチの電源断に備える時と，キャッシュメモリの容量が不足してディスクに書き戻す必要が生じる時に限られことになり，スイッチとディスクの間のトラフィックを軽減することが出来る。
【００２９】
【発明の効果】
以上述べたように，本発明によれば，複数の上位装置が複数のキャッシュ内蔵型スイッチを介して複数のディスクと接続しているシステムにおいて，ディスクに直接接続しているスイッチのキャッシュのみを自動的に有効化することにより，それぞれのスイッチのキャッシュの同期を不要とすることが出来，トラフィックの圧迫を軽減するすることが出来るという効果がある。
【図面の簡単な説明】
【図１】本発明のキャッシュ内蔵型スイッチの構成を示す図である。
【図２】直接接続ディスク検出部１５１の直接接続検出処理のフローチャートを示す図である。
【図３】直接接続ディスクテーブル１５２の例を示す図である。
【図４】キャッシュ情報制御部１５３のキャッシュ有効無効処理のフローチャートを示す図である。
【図５】本発明のキャッシュ内蔵型スイッチを動作させた場合のシステム状態の例を示す図である。
【図６】キャッシュ内蔵型スイッチを使用した従来システムを示す図である。
【符号の説明】
１１０  上位装置
１２０  スイッチ
１３０  スイッチ
１４０  スイッチ
１５０  スイッチ
１５１  直接接続ディスク検出部
１５２  直接接続ディスクテーブル
１５３  キャッシュ情報制御部
１５４  キャッシュメモリ
１５５  パス切り替え部
１６０  スイッチ
１７０  スイッチ
１８０  ディスク
１９０  ディスク
【図１】
2004199169.tif 000003
【図２】
2004199169.tif 000004
【図３】
2004199169.tif 000005
【図４】
2004199169.tif 000006
【図５】
2004199169.tif 000007
【図６】
2004199169.tif 000008