(57)【要約】【課題】ＳＡＮ上でのデータへのアクセスを高速化し、ネットワークの負荷を減少させる。【解決手段】コピー管理スイッチがデータへのリード要求を、より近くにあるコピーデータを保持する記憶装置へのリード要求に変換する。【選択図】  図１
2005010969.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、
前記計算機とネットワークを介して接続されるスイッチと、
前記スイッチとネットワークを介して接続される第一の記憶装置と、
前記スイッチとネットワークを介して接続される第二の記憶装置とを有し、
前記スイッチは、あらかじめ前記第一の記憶装置に格納されたデータを前記第二の記憶装置に転送し、
前記計算機は、前記第一の記憶装置に対するデータの読み出し要求を発行し、
前記読み出し要求を受信した前記スイッチは、前記前記第一の記憶装置に対するデータの読み出し要求を前記第二の記憶装置への読み出し要求に変換して、前記第二の記憶装置に変換した前記データの読み出し要求を送信し、
前記第二の記憶装置は、受信した前記データの読み出し要求に対応するデータを前記スイッチに転送し、
データを受信した前記スイッチは、前記受信したデータを前記第一の記憶装置から転送されたデータとして前記計算機に転送することを特徴とするネットワークシステム。
【請求項２】
前記スイッチに接続される第二の計算機を有し、
前記スイッチは、前記第二の計算機からの指示に基づいて、前記第一の記憶装置に格納されたデータを前記第二の記憶装置へデータに転送することを特徴とする請求項１記載のネットワークシステム。
【請求項３】
前記スイッチは、前記第一の記憶装置に対するデータの読み出し要求を前記第二の記憶装置への読み出し要求に変換する際に、前記データの読み出し要求の送信元を示す情報を別の情報に変換して前記第二の記憶装置に転送し、前記第二の記憶装置から前記変換したデータの読み出し要求に対応するデータを受信した際には、前記データの送信先として含まれている前記別の情報を前記計算機の情報に変換することを特徴とする請求項２記載のネットワークシステム。
【請求項４】
計算機と、
前記計算機とネットワークを介して接続されるスイッチと、
前記スイッチとネットワークを介して接続される第一の記憶装置と、
前記スイッチとネットワークを介して接続される第二の記憶装置とを有し、
前記スイッチは、あらかじめ前記第一の記憶装置に格納されたデータを前記第二の記憶装置に転送し、
前記スイッチは、前記計算機に前記第一の記憶装置に対応する仮想的な第三の記憶装置を提供し、
前記計算機は、前記第三の記憶装置に対するデータの読み出し要求を発行し、
前記読み出し要求を受信した前記スイッチは、前記前記第三の記憶装置に対するデータの読み出し要求を前記第二の記憶装置への読み出し要求に変換して、前記第二の記憶装置に変換した前記データの読み出し要求を送信し、
前記第二の記憶装置は、受信した前記データの読み出し要求に対応するデータを前記スイッチに転送し、
データを受信した前記スイッチは、前記受信したデータを前記第三の記憶装置から転送されたデータとして前記計算機に転送することを特徴とするネットワークシステム。
【請求項５】
前記仮想的な第三の記憶装置には、前記第二の記憶装置と同じドメインアドレスが割り振られていることを特徴とする請求項４記載のネットワークシステム。
【請求項６】
計算機と、
前記計算機とネットワークを介して接続される第一の記憶装置と、
前記計算機とネットワークを介して接続される第二の記憶装置とを有し、
前記第二の記憶装置は、前記計算機及び前記第一の記憶装置とネットワークを介して接続されるスイッチ部と前記スイッチ部と内部ネットワークを介して接続される記憶部とを有し、
前記スイッチ部は、あらかじめ前記第一の記憶装置に格納されたデータを前記記憶部に転送し、
前記計算機は、前記第一の記憶装置に対するデータの読み出し要求を発行し、
前記読み出し要求を受信した前記スイッチ部は、前記前記第一の記憶装置に対するデータの読み出し要求を前記記憶部への読み出し要求に変換して、前記記憶部に変換した前記データの読み出し要求を送信し、
前記記憶部は、受信した前記データの読み出し要求に対応するデータを前記スイッチ部に転送し、
データを受信した前記スイッチ部は、前記受信したデータを前記第一の記憶装置から転送されたデータとして前記計算機に転送することを特徴とするネットワークシステム。
【請求項７】
計算機と、
前記計算機とネットワークを介して接続されるスイッチと、
前記スイッチとネットワークを介して接続される第一の記憶装置と、
前記スイッチとネットワークを介して接続される第二の記憶装置とを有し、
前記計算機は、前記第一の記憶装置に対するデータの読み出し要求を発行し、
前記読み出し要求を受信した前記スイッチは、前記第一の記憶装置に格納されたデータが前記第二の記憶装置に格納されている場合には前記前記第一の記憶装置に対するデータの読み出し要求を前記第二の記憶装置への読み出し要求に変換して、前記第二の記憶装置に変換した前記データの読み出し要求を送信し、前記第一の記憶装置に格納されたデータが前記第二の記憶装置に格納されていない場合には、前記第一の記憶装置へ前記データの読み出し要求を変換せずに送信し、
前記第二の記憶装置は、受信した前記データの読み出し要求に対応するデータを前記スイッチに転送し、
データを受信した前記スイッチは、前記受信したデータを前記第一の記憶装置から転送されたデータとして前記計算機に転送することを特徴とするネットワークシステム。
【請求項８】
前記スイッチは、前記第一の記憶装置に格納されたデータが前記第二の記憶装置に格納されているかどうかを示す情報を有することを特徴とする請求項７記載のネットワークシステム。
【請求項９】
前記スイッチは、前記第一の記憶装置に格納されたデータが前記第二の記憶装置に格納されていない場合に、前記データの読み出し要求に応じて前記第一の記憶装置から転送されたデータを前記第二の記憶装置へ転送して前記情報を更新することを特徴とする請求項８記載のネットワークシステム。
【請求項１０】
前記スイッチは、前記第一の記憶装置から転送されたデータを前記第二の記憶装置へ転送する際に、前記第二の記憶装置に前記データを格納するだけの記憶容量が存在しない場合には、前記第二の記憶装置に格納された他のデータのうち、前記計算機に使用される頻度が少ないデータを削除して、前記データを前記第二の記憶装置へ転送し、前記情報を更新することを特徴とする請求項９記載のネットワークシステム。
【請求項１１】
計算機、第一の記憶装置及び第二の記憶装置と接続されるスイッチであって、
外部装置と接続されるポート部と、
前記ポート部が受信したコマンドやデータを振り分ける変換部と、
前記コマンドや前記データをアドレス情報に基づき中継するスイッチ部とを有し、
前記変換部は、前記第一の記憶装置に格納されたデータを前記第二の記憶装置へ予め転送し、前記計算機から受信した前記第一の記憶装置に格納されたデータに対するアクセス要求を前記第二の記憶装置へのアクセス要求に変換し、
前記スイッチ部は、前記第二の記憶装置へのアクセス要求を前記ポートを介して前記第二の記憶装置に送信し、
前記変換部は、前記第二の記憶装置から受信した前記アクセス要求に対応するデータを前記第一の記憶装置から転送されたデータに変換して前記計算機に転送することを特徴とするスイッチ。
【請求項１２】
請求項１１記載のスイッチであって、第二の計算機が接続されており、前記第二の計算機の指示に従って、前記変換部は、前記第一の記憶装置に格納されたデータを前記第二の記憶装置へ転送することを特徴とするスイッチ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置とコンピュータとを接続するネットワークに配置されたスイッチに関する。
【０００２】
【従来の技術】
企業等で使用される記憶装置の記憶容量の増加に伴って、記憶装置間又は記憶装置とコンピュータとがファイバチャネル等のネットワークを介して接続された一つのシステムが構築されるようになってきた。この記憶装置等を接続するネットワーク又はネットワークによって接続されたシステム全体はストレージエリアネットワーク（以下ＳＡＮ）と呼ばれる。
【０００３】
一方、ネットワークでのデータの転送頻度を減らし、コンピュータが記憶装置に格納されたデータへアクセスする時間を短縮する技術としてネットワークキャッシュ技術がある。すなわち、ネットワーク上にデータを一時保存する記憶領域（以下「キャッシュ装置」）を用意し、コンピュータが記憶装置に格納されたデータをキャッシュ装置を介して読み出した場合に、その読み出したデータがキャッシュ装置に格納され、その後のそのデータへのアクセスにはキャッシュ装置が応答を返す。これにより、データへのアクセス時間が短縮される。
【０００４】
ＳＡＮにおいてネットワークキャッシュ技術を使用する例が特許文献１に開示されている。具体的には、ＳＡＮ内にメタデータサーバと呼ばれるコンピュータを用意し、記憶装置へアクセスするコンピュータは最初にメタデータサーバにアクセスする。メタデータサーバは、アクセスすべきデータの位置をコンピュータに通知する。キャッシュが用いられる場合には、コンピュータにキャッシュを有する装置の位置が通知される。
【０００５】
また、ＷＷＷ等のインターネットで、ネットワーク上にキャッシュを有する装置を配置する技術として、トランスペアレントキャッシュと呼ばれる技術がある。本技術では、コンピュータから記憶装置へのデータのアクセス要求（以下「アクセスリクエスト」とも称する）を受取ったスイッチが、そのアクセスリクエストを一度キャッシュを有する計算機（以下「キャッシュサーバ」）に送る。キャッシュサーバが有するキャッシュにアクセスリクエストの対象となるファイルが存在する場合（以下「キャッシュヒット」）、キャッシュサーバは対象となったファイルをアクセスリクエストを発行したコンピュータに送信する。一方、対象となるデータがキャッシュに存在しない場合（以下「キャッシュミス」）は、キャッシュサーバが記憶装置にアクセスリクエストを送信してデータを取得し、取得したデータをアクセスリクエストを発行したコンピュータに送信する。
【０００６】
【特許文献１】
特開２００２−１３２４５５号公報
【０００７】
【発明が解決しようとする課題】
上述したように、ＳＡＮにおいてネットワークキャッシュ技術を用いれば、キャッシュヒットの場合には、要求されたデータを取得するまでの時間が短縮される。
【０００８】
しかし、特許文献１に開示された技術では、ＳＡＮ内にキャッシュ装置を設置できるものの、データのアクセスの為にメタデータサーバを必要とするなど、コンピュータの設定や動作を従来ＳＡＮで使用されているデータアクセスのためのプロトコル、例えばＳＣＳＩプロトコルからメタデータサーバを使用するための専用のプロトコルに変更する必要がある。
【０００９】
一方、トランスペアレントキャッシュの様にファイル単位でのネットワークキャッシュ技術を用いる場合、キャッシュヒットの判定処理が複雑であるためレスポンスを高速化することが難しい。
【００１０】
具体的には、ファイル単位でキャッシュを行う場合、リード要求はファイルの名前などを指定したアクセス要求である。キャッシュサーバは、アクセス要求を受け取ると自身の記憶装置内に保持しているファイルと、そのファイルが記憶装置内のどのブロックに対応するかを記憶するメタデータと呼ばれるデータを読み出し、その中にリード要求が指定するファイルがあるか検索することでキャッシュヒットの判定が行われる。この検索処理は、名前が一致するか等を判定するため、ＳＣＳＩのようなブロックアクセスのプロトコルがアクセス先の位置を指定するために用いる論理ブロックアドレスという数値の比較に比べて処理が複雑になる。
【００１１】
本発明の目的は、ＳＡＮにおいてコンピュータの設定を変更することなく、データに対するアクセスを高速化し、ネットワーク帯域を節約することである。
【００１２】
【課題を解決するための手段】
上述の目的を達成するために、本発明のネットワークシステムは以下の構成を有する。即ち、計算機と、計算機と接続されるスイッチと、スイッチとネットワークを介して接続される第一の記憶装置と、スイッチとネットワークを介して接続される第二の記憶装置を有するネットワークシステムである。
【００１３】
本ネットワークシステムにおいて、スイッチは外部からの指示に基づいて第一の記憶装置に格納されたデータを第二の記憶装置へ転送する。その後、計算機から第一の記憶装置に格納されたデータに対するアクセス要求を受けたスイッチは、そのアクセス要求を第二の記憶装置へのアクセス要求に変換し、変換したアクセス要求を第二の記憶装置へ転送する。その後、第二の記憶装置からデータを受信したスイッチは、そのデータが第一の記憶装置から送信されたデータとなるように変換して計算機に送信する。
【００１４】
尚、スイッチに指示を与えるのはスイッチに接続される第二の計算機でも良い。又、スイッチは、第一の記憶装置に対応する仮想的な記憶装置を計算機に提供しても良い。この場合、計算機は、仮想的な記憶装置へアクセス要求を発行する。
【００１５】
更に、本発明の別の態様としては、上述したスイッチと第二の記憶装置が一体となって一つの装置を構成していても良い。
【００１６】
又、本発明の別の態様としては、スイッチがあらかじめ第一の記憶装置に格納されたデータを第二の記憶装置へ転送するのではなく、計算機からのアクセス要求に応じて、第一の記憶装置に格納されたデータを第二の記憶装置へ転送しても良い。更に本形態の場合、スイッチは第一の記憶装置に格納されたデータが第二の記憶装置に転送されたかどうかの情報を有し、その情報に基づいてアクセス要求を第一又は第二の記憶装置へ転送しても良い。更に、本形態において、スイッチが第一の記憶装置から第二の記憶装置へデータを転送する際に、第二の記憶装置の記憶容量を確認し、転送するデータを格納する分の記憶容量が第二の記憶装置に存在しない場合には、第二の記憶装置に格納されているデータを一定の基準、例えば計算機における使用頻度、に応じて消去し、そこにデータを転送する構成が考えられる。
【００１７】
尚、スイッチの代わりに、第一又は第二の記憶装置がデータの転送を制御しても良い。
【００１８】
【発明の実施の形態】
図１は、本発明を適用したコンピュータシステムの第１の実施形態を説明する図である。コンピュータシステムには、ＳＡＮ１０１、ホスト１０５、記憶装置１０４ａ及び記憶装置１０４ｂが含まれる。ホスト１０５、記憶装置１０４ａ及び記憶装置１０４ｂは、ＳＡＮ１０１を介して相互に接続されている。ＳＡＮ１０１は、ホスト１０５、スイッチ１０２ａ、１０２ｂ、１０２ｃ及び後述するコピー管理スイッチ１０３を有する。
【００１９】
以下、本実施形態においては、ホスト１０５は記憶装置１０４ａに格納されたデータ（以下「マスタデータ」と称する）に対するリード要求を行うものとする。
【００２０】
ホスト１０５は、ＣＰＵ１０５１、メモリ１０５２及びＳＡＮ１０１へ接続するためのインタフェイス１０５３を有する計算機である。
【００２１】
記憶装置１０４は、データを格納するメディア１０４３、ＳＡＮ１０１へ接続するためのインタフェイス１０４４、ホスト１０５からの要求に応答するためのプログラムを実行するためのＣＰＵ１０４１及びメモリ１０４２を有する。尚、記憶装置１０４が有するメディア１０４３には、多種の例が考えられる。例えば、メディア１０４３として、複数のハードディスクドライブから構成されるディスクアレイを採用しても良い。また、記憶装置１０４は、ホスト１０５からデータのリード要求を受け取ると、要求に対応するデータをホスト１０５に送信し、最後に送信を完了したことを示すレスポンスを送信する。
【００２２】
スイッチ１０２ａ、１０２ｂ、１０２ｃおよび、コピー管理スイッチ１０３は、相互に接続情報を交換し、後述するルーティング処理に必要なルーティングテーブルを作成する。具体的には、各スイッチ間の通信の負荷（オーバーヘッド）を表す情報（以下「接続コスト」という）を交換する。接続コストは一般にスイッチ間の通信線の通信帯域が小さいほど大きくなる。ただし、管理者等は、後述する管理端末１０６を介して、接続コストを任意の値に設定することもできる。各スイッチは取得した全ての接続コストから、他の各スイッチへの最も接続コストの和が小さい経路を算出し、それらをルーティングテーブルとして記憶する。
【００２３】
スイッチ１０２ａ、１０２ｂ、１０２ｃ及びコピー管理スイッチ１０３には、各スイッチに固有のＳＡＮドメインアドレスが割り振られている。また記憶装置１０４ａ、１０４ｂ及びホスト１０５には、それぞれ固有のＳＡＮアドレスが割り振られる。ここで、ＳＡＮアドレスは、ＳＡＮ１０１に接続されるコンピュータ等の装置（以下「ノード」とも言う）と接続されるＳＡＮ１０１内のスイッチのＳＡＮドメインアドレス及びＳＡＮドメインアドレスで指定される集団（以下「ドメイン」）内部で固有のＳＡＮノードアドレスから構成されるアドレスである。
【００２４】
各ノードは他のノードへフレームを送受信する時、フレームに送信元と送信先のＳＡＮアドレスを付加することで、自分と相手を指定する。スイッチ１０２ａ、１０２ｂ、１０２ｃ及びコピー管理スイッチ１０３は、ルーティングテーブル内でフレームの送信先のＳＡＮドメインアドレスを検索して、フレームのルーティングを行う。また、フレームの送信先のＳＡＮドメインアドレスが当該スイッチ１０２のＳＡＮドメインアドレスと一致している場合は、フレームの送信先のＳＡＮノードアドレスと一致するＳＡＮノードアドレスを持つ、当該スイッチ１０２に直接接続するノードへフレームを転送する。尚、フレームとは、ＳＡＮ１０１で使用されるプロトコルにおけるデータ又はアクセスリクエストを転送する際の単位である。
【００２５】
本実施形態では、接続コストが小さい、距離が短い又は記憶装置１０４ｂの方が記憶装置１０４ａよりも高性能などの理由により、ホスト１０５から記憶装置１０４ａへアクセスするよりも、記憶装置１０４ｂへアクセスするほうが、高速にアクセス出来るものとする。
【００２６】
コピー管理スイッチ１０３には、管理端末１０６が接続されている。本実施形態のコンピュータシステムのユーザ又は管理者は、管理端末１０６を用いてコピー管理スイッチ１０３にマスタデータを記憶装置１０４ｂへコピーするよう指示する。この際管理者は、管理端末１０６を介して、マスタデータの位置とコピーされたデータ（以下「コピーデータ」と称する）の位置との対応を示す情報をコピー管理スイッチ１０３、具体的には、後述するコピー管理テーブル１３１に登録する。尚、管理者等は、管理端末１０６を介してホスト１０５から記憶装置１０４ａへのアクセス頻度などの情報を収集し、マスタデータ全体ではなくアクセス頻度の高い一部の領域だけを記憶装置１０４ｂにコピーする旨、コピー管理スイッチ１０３に指示しても良い。
【００２７】
また、スイッチ１０２ａ、１０２ｂ、１０２ｃ及びコピー管理スイッチ１０３はネーム管理を行う場合もある。例えばファイバチャネルスイッチは、ノードやポートに割り振られる、世界でユニークな不変の値であるワールドワイドネーム（以下「ＷＷＮ」）から、ＳＡＮ１０１内でユニークなポートのＳＡＮアドレスを検索するためのテーブルを有する。ＷＷＮには、ＳＡＳ１０１に接続するポートに固有なＷＷＰＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｐｏｒｔ  Ｎａｍｅ）と、ノードに固有なＷＷＮＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎｏｄｅ  Ｎａｍｅ）がある。複数の接続ポートを持つノードは、１つのＷＷＮＮと複数のＷＷＰＮを持つことができる。また、ＩＰネットワーク上にＳＣＳＩプロトコルを流すｉＳＣＳＩと呼ばれる規格でもｉＳＮＳと呼ばれるネーム管理用の体系が存在する。
【００２８】
図２はコピー管理スイッチ１０３の構成を示す図である。コピー管理スイッチ１０３は、他のノードと接続するためのポート１１１、制御部１１２、管理端末１０６と接続するための管理ポート１１３、アドレス変換部１１４並びにルーティング処理及びスイッチング処理を行うスイッチング処理部１１５を有する。スイッチング処理部１１５は、ルーティング処理を行うためのルーティングテーブルを保持する。
【００２９】
制御部１１２は、ＣＰＵ１１２１、メモリ１１２２及び不揮発メモリ１１２３を有する。アドレス変換部１１４は、ＣＰＵ１１４１及びメモリ１１４２を有する。尚、本図で開示された構成は実施の一例であり、同等の機能が達成できるならば他の構成であってもよい。
【００３０】
図３は、コピー管理スイッチ１０３のメモリ１１２２、１１４２及び不揮発メモリ１１２３に格納されるプログラムやデータを示す図である。
【００３１】
初期化処理プログラム１２１は、コピー管理スイッチ１０３の起動時にＣＰＵ１１２１で実行されるプログラムである。ＣＰＵ１１２１は、初期化処理プログラム１２１を実行することで、他の各プログラムを不揮発メモリ１１２３からメモリ１１２２及びメモリ１１４２に読み出し、後述するコピー管理テーブル１３１を各アドレス変換部１１４が有するメモリ１１４２に読み出す。
【００３２】
管理端末からの要求処理プログラム１２２、ルーティングプロトコル処理プログラム１２３及びネームサービス処理プログラム１２４は制御部１１２のメモリ１１２２に格納され、ＣＰＵ１１２１で実行される。アドレス変換処理プログラム１２６はアドレス変換部１１４のメモリ１１４２に格納され、ＣＰＵ１１４１で実行される。
【００３３】
ＣＰＵ１１２１は、管理端末からの要求処理プログラム１２２を実行することで、管理ポート１１３で受信される管理端末１０６からの要求に基づき、コピー管理テーブル１３１の内容を変更する。またＣＰＵ１１２１は、管理端末１０６からの要求処理プログラム１２２を実行することで、管理端末１０６からの要求に基づき、データのコピーを実行する。
【００３４】
一方、ＣＰＵ１１２１は、管理端末からの要求処理プログラム１２２を実行することで、一般的なスイッチで行われる管理を実行することができる。尚、管理ポート１１３で用いられるプロトコルは例えばＴＣＰ／ＩＰなどがあるが、管理端末１０６と通信できるならば他のプロトコルが用いられても良い。
【００３５】
ＣＰＵ１１２１は、ルーティングプロトコル処理プログラム１２３を実行することで、他のスイッチ１０２とＳＡＮ１０１内における接続に関する情報（以下「接続情報」）を交換することでルーティングテーブルを作成し、スイッチング処理部１１５が有するメモリに、作成したルーティングテーブルを格納する。
【００３６】
ＣＰＵ１１２１は、ネームサービス処理プログラム１２４を実行することで、コピー管理スイッチ１０３に接続されているノードの情報をネームデータベース１２５に登録する一方、ノードからの検索要求に応答する。ノードからのネームデータベース１２５への検索要求を受け取るため、制御部１１２にはＳＡＮアドレスが割り振られている。
【００３７】
アドレス変換部１１４のＣＰＵ１１４１は、アドレス変換処理プログラム１２６を実行して、ポート１１１がフレームを受信したことを契機に、コピー管理テーブル１３１に登録されている情報に基づいて、リード要求・リードデータなどの送信先・送信元ＳＡＮアドレスを変換する。アドレス変換処理の詳細は後述する。尚、本実施形態ではアドレス変換処理をプログラムに基づいて実行するが、専用ハードウェアでアドレス変換処理を行っても良い。
【００３８】
図４は、コピー管理テーブル１３１の構造を示す図である。コピー管理テーブル１３１は、複数のコピー管理エントリ１３２を有する。各コピー管理エントリ１３２には、一組のマスタデータとコピーデータの対応関係の情報が保持される。コピー管理エントリ１３２は、マスタデータを格納する記憶装置１０４を示すマスタＳＡＮアドレスが登録されるフィールド１３３、マスタデータが格納される記憶装置１０４内の論理ユニットを示す番号（以下「マスタＬＵＮ」）が登録されるフィールド１３４、論理ユニット内のマスタデータの先頭位置を示す論理ブロックアドレス（以下「マスタＬＢＡ」）が登録されるフィールド１３５、マスタデータのサイズを示すマスタＬｅｎｇｔｈが登録されるフィールド１３６、コピー管理エントリ１３２に登録されたマスタデータに対応するコピーデータが格納された記憶装置１０４を示すコピーＳＡＮアドレスが登録されるフィールド１３７、コピーデータが格納される記憶装置１０４内の論理ユニットを示す番号（以下「コピーＬＵＮ」）が登録されるフィールド１３８及び論理ユニット内のコピーデータの先頭位置を示す論理ブロックアドレス（以下「コピーＬＢＡ」）が登録されるフィールド１３９を有する。尚、コピーデータのデータ長さはマスタデータと同じなので、コピーＬｅｎｇｔｈを登録するフィールドは不要である。
【００３９】
以下、本発明における各装置の動作の概要について説明する。
【００４０】
本実施形態では、まず、管理者等の指示にしたがって、コピー管理スイッチ１０３がマスタデータが格納された記憶装置１０５ａから記憶装置１０５ｂにマスタデータが転送され、コピーデータが作成される。この際、コピー管理テーブル１３１にマスタデータを格納する記憶装置１０５ａとコピーデータを格納する記憶装置１０５ｂとの関係を示す情報が登録される。
【００４１】
上述したコピー処理の終了後、コピー管理スイッチ１０３は、ホスト１０５からリード要求を受け取ると、リード要求が含まれるフレームが保持するアドレス情報が上述したマスタデータとコピーデータとの対応関係を示す情報に含まれているか否かを判断することで、リード要求に対応するデータがマスタデータで、かつマスタデータに対応するコピーデータが存在するか判定する。
【００４２】
リード要求の対象となるマスタデータに対応するコピーデータが存在する場合、コピー管理スイッチ１０３は、ホスト１０５から受信した記憶装置１０４ａに格納されたマスタデータへのリード要求を、そのコピーデータを格納する記憶装置１０４ｂに対するリード要求に変換する。具体的には、コピー管理スイッチ１０３は、リード要求に含まれるリクエスト受信先（記憶装置１０４ａ）を示すＳＡＮアドレスを、コピーデータが格納された記憶装置１０４ｂのＳＡＮアドレスに変更する。これによりネットワークの効率的な利用を行う。
【００４３】
以下、コピーデータ作成の手順について説明する。システムの使用者又は管理者は管理端末１０６を介して、記憶装置１０４ａのＳＡＮアドレス、マスタデータの記憶装置１０４ａ内部でのアドレスである論理ユニット番号（以下「ＬＵＮ」）、論理ブロックアドレス（以下「ＬＢＡ」）、マスタデータのＬｅｎｇｔｈ、記憶装置１０４ｂのＳＡＮアドレス、データコピー先のＬＵＮ、ＬＢＡをコピー管理スイッチ６０３に送信する。
それらの情報を受信した制御部１１２は、マスタデータへのリード要求を記憶装置１０４ａに送信する。
【００４４】
次に、制御部１１２は、記憶装置１０４ａから送られてきたリードデータをメモリ１１２２に格納する。続けて制御部１１２は、記憶装置１０４ｂにライト要求を送信し、メモリ１１２２に格納されているマスタデータを記憶装置１０４ｂに書き込む。このような処理によって、データのコピーが行われる。
【００４５】
尚、上述のコピー動作は処理の一例であり、この方法に限定されるものではない。例えばメモリ１１２２の代わりにリードデータを格納する専用のバッファを制御部１１２に設けても良い。また、記憶装置１０４ａ自体がコピー処理を行っても良い。例えばＳＣＳＩプロトコルの規格には、ＥＸＴＥＮＤＥＤ  ＣＯＰＹというコマンドがある。このコマンドを処理することができる記憶装置は、ＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドを受け取ると、コマンドが指定する記憶装置の特定の領域を他の記憶装置の特定の領域にコピーする。
【００４６】
したがって、マスタデータを保持する記憶装置１０４ａがＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドを処理することができる場合、以下のようにしてもコピー処理を実行できる。
【００４７】
制御部１１２は、マスタデータを保持する記憶装置１０４ａにコピーを行うようＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドを送信する。記憶装置１０４ａは、ＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドで指定された記憶領域の内容を、記憶装置１０４ｂに転送する。指定された記憶領域に格納されたデータの転送が終了すると、記憶装置１０４ａは、処理の終了をしめすレスポンスをＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドの送信元、ここではコピー管理スイッチ６０３へ送信し、コピー処理が完了する。
【００４８】
次に、コピー処理完了後のコピー管理スイッチ１０３の動作について説明する。上述したように、ホスト１０５からフレームを受信したコピー管理スイッチ１０３は、アドレス変換部１１４でフレームの転送元あるいは転送先のアドレスを変換し、適切な装置へフレームを転送する。
【００４９】
図５は、アドレス変換部１１４で実行されるアドレス変換処理の手順の一例を示すフローチャートである。
ポート１１１がフレームを受け取ると、ＣＰＵ１１４１は、アドレス変換処理プログラム１２６の実行を開始する（ステップ１５１）。ＣＰＵ１１４１は、ポート１１１で受信されたフレームが、ホスト１０５が発行した記憶装置１０４へのリード要求を含むフレームであるか否かを判定する（ステップ１５２）。
【００５０】
フレームがリード要求を含む場合、ＣＰＵ１１４１は、リード要求が要求するデータのコピーがコンピュータシステムに存在するか判定する。具体的には、ＣＰＵ１１４１は、コピー管理エントリ１３２に含まれるフィールド１３３、フィールド１３４、フィールド１３５及びフィールド１３６に登録された情報で示される領域に、リード要求を含むフレームに格納されている送信先ＳＡＮアドレス、ＬＵＮ、ＬＢＡ及びＬｅｎｇｔｈで示される領域が含まれるという条件を満たすコピー管理エントリ１３２がコピー管理テーブル１３１に存在するか判定する（ステップ１５３）。
【００５１】
ステップ１５３の条件に合致するコピー管理エントリ１３２が存在する場合、ＣＰＵ１１４１は、そのコピー管理エントリ１３２を用いて、リード要求を含むフレームをコピーデータが格納されている記憶装置１０４へのリード要求を含むフレームに変換する。具体的には、ＣＰＵ１１４１は、リード要求を含むフレームの送信先をフィールド１３７に登録された値に、ＬＵＮをフィールド１３８に登録された値に、ＬＢＡを（ＬＢＡ＋フィールド１３９に登録された値−フィールド１３５に登録された値）に変更する。
【００５２】
ステップ１５２でフレームの内容がリード要求ではないと判断した場合、ＣＰＵ１１４１は、フレームの内容がリード要求に対応して記憶装置１０４から転送されるデータ（以下「リードデータ」）又はレスポンスであるか判定する（ステップ１５５）。フレームの内容がリードデータ又はレスポンスである場合、ＣＰＵ１１４１は、リードデータ又はレスポンスが、コピーデータが格納された記憶装置１０４ｂから送信されたものか判定する。具体的には、ＣＰＵ１１４１は、フレームの送信元がフィールド１３７に登録された値と一致するコピー管理エントリ１３２がコピー管理テーブル１３１に存在するか判定する（ステップ１５６）。
【００５３】
フレームがコピーデータが格納された記憶装置１０４ｂから送信されていた場合、ＣＰＵ１１４１は、ステップ１５６で見つけたコピー管理エントリ１３２を用いて、フレームの送信元をフィールド１３３に登録されたマスタＳＡＮアドレスに変更する（ステップ１５７）。
【００５４】
ステップ１５４及び１５７で説明される処理の終了後、ＣＰＵ１１４１は、スイッチング処理部１１５に処理したフレームを送信する。尚、ステップ１５３及びステップ１５６で該当するコピー管理エントリ１３２が存在しない場合並びにステップ１５５でフレームがリードデータ及びレスポンスではないと判断された場合、ＣＰＵ１１４１は、受信したフレームをそのままスイッチング処理部１１５に送信する（ステップ１５８）。
【００５５】
本実施形態のコンピュータシステムの一連の動作をまとめると、次のようになる。
【００５６】
システムの使用者又は管理者が管理端末１０６を介して、コピー管理スイッチ１０３にデータコピーを指示し、コピー管理テーブル１３１を登録する。
【００５７】
図４には、スイッチ１０２ｃのＳＡＮドメインアドレスが４、記憶装置１０４ａのＳＡＮノードアドレスが０１、コピー管理スイッチ１０３のＳＡＮドメインアドレスが５、記憶装置１０４ｂのＳＡＮノードアドレスが０２であり、長さ１０００００のマスタデータが記憶装置１０４ａのＬＵＮ０のＬＢＡ０から格納されていて、マスタデータ全体を記憶装置１０４ｂのＬＵＮ５のＬＢＡ５００００から始まる領域にコピーした場合のマスタデータとコピーデータの対応関係を示す情報がコピー管理エントリ１３２の各フィールドに登録された例が示されている。
【００５８】
ホスト１０５が記憶装置１０４ａへのリード要求を行う。リード要求に対応するフレームには、送信先である記憶装置１０４ａのＳＡＮアドレス、ＬＵＮ、ＬＢＡ、Ｌｅｎｇｔｈ及び送信元であるホスト１０５のＳＡＮアドレスが含まれる。
【００５９】
リード要求は送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを経由してコピー管理スイッチ１０３に届く。リード要求を受取ったコピー管理スイッチ１０３は、コピー管理テーブル１３１の情報とフレームの内容とを照合する。リード要求に対応するコピーデータが存在する場合、リード要求をコピーデータへのリード要求に変換し、記憶装置１０４ｂに変換されたフレームをルーティングする。
【００６０】
リード要求を受取った記憶装置１０４ｂは、リード要求の対象であるコピーデータを読み出し、リード要求の送信元であるホスト１０５へリードデータを送信する。リードデータのフレームには、送信先であるホスト１０５のＳＡＮアドレス及び送信元である記憶装置１０４ｂのＳＡＮアドレスが含まれる。
【００６１】
リードデータを受取ったコピー管理スイッチ１０３は、コピー管理テーブル１３１の情報に基づきリードデータの送信元を記憶装置１０４ａに変更する。その後、リードデータは送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを通りホスト１０５に届く。ホスト１０５は、リードデータを記憶装置１０４ａから送信されたものとして受け取る。
【００６２】
一連の動作により、記憶装置１０４ａへのリード要求は、実際にはＳＡＮ１０１でより高速にアクセスできる記憶装置１０４ｂで処理されるので、レスポンスが高速になり、スイッチ１０２ｂ、１０２ｃおよび記憶装置１０４ａにかかる負荷を減らすことができる。
【００６３】
図６は、本発明を適用したコンピュータシステムの第二の実施形態を示す図である。第一の実施形態とは、コピー管理スイッチ２０３が複数存在する点が異なっている。尚、他の構成については第一の実施形態と同一であるので、説明を省略する。
【００６４】
また、本実施形態では、ホスト１０５から記憶装置１０４ａへの最短経路は、ホスト１０５→スイッチ１０２ａ→コピー管理スイッチ２０３ａ→スイッチ１０２ｂ→記憶装置１０４ａとし、ホスト１０５から記憶装置１０４ｂへの最短経路はホスト１０５→スイッチ１０２ａ→コピー管理スイッチ２０３ｂ→記憶装置１０４ｂとする。またホスト１０５から記憶装置１０４ａの接続コストよりホスト１０５から記憶装置１０４ｂの接続コストの方が小さいものとする。
【００６５】
システムの管理者又は利用者は、コピー管理スイッチ２０３ａ及び２０３ｂと接続される管理端末１０６を介して、記憶装置１０４ａが保持するマスタデータを記憶装置１０４ｂにコピーする指示をコピー管理スイッチ２０３ｂに行い、マスタデータとコピーデータの対応を示す情報を、コピー管理スイッチ２０３ａ、２０３ｂが有するコピー管理テーブル２３１に登録する。
【００６６】
また、コピー管理スイッチ２０３が有するメモリ１１２２には、第一の実施形態におけるプログラム等に加え、代理アドレステーブル２４１が格納される。さらに、ＣＰＵ１１４１が実行するアドレス変換処理プログラム２２６の内容も第一の実施形態と異なる。
【００６７】
また、不揮発メモリ１１２３に格納されるコピー管理テーブル２３１が有するコピー管理エントリ２３２は、第一の実施形態のコピー管理エントリ１３２の各フィールドに加え、ローカルフラグを登録するフィールド２４０を有する。
【００６８】
ローカルフラグは、コピー管理スイッチ２０３が有するコピー管理エントリ２３２のマスタＳＡＮアドレス１３３に対応する記憶装置１０４と、当該コピー管理スイッチ２０３を含めた複数のコピー管理スイッチ２０３との間の接続関係を示すフラグである。具体的には、複数のコピー管理スイッチ２０３と記憶装置１０４との間に存在する機器の個数に応じて、値が設定される。以下、機器の個数が少ないことを「近い」と表現する。
【００６９】
本実施形態では、コピー管理スイッチ２０３ａよりコピー管理スイッチ２０３ｂの方が記憶装置１０４ｂの近くに接続されているので、管理端末１０６はコピー管理スイッチ２０３ａにはローカルフラグを０に、コピー管理スイッチ２０３ｂにはローカルフラグを１にしたコピー管理エントリ２３２をコピー管理テーブル２３１に登録する。
【００７０】
図７は、代理アドレステーブル２４１の構成を示す図である。代理アドレステーブル２４１は、データを要求するホスト１０５を示すＳＡＮアドレス（以下「ホストＳＡＮアドレス」）、マスタＳＡＮアドレス、及び本実施形態におけるアドレス変換処理で用いられる代理アドレス（以下「代理ＳＡＮアドレス」）との対応関係を記録するためのテーブルである。
【００７１】
代理アドレステーブル２４１は複数の代理アドレスエントリ２４２を有する。各代理アドレスエントリ２４２は、ホストＳＡＮアドレスが登録されるフィールド２４３、マスタＳＡＮアドレスが登録されるフィールド２４４及び代理ＳＡＮアドレスが登録されるフィールド２４５を有する。代理アドレステーブル２４１の使用方法については後述する。
【００７２】
図８は、本実施形態におけるＣＰＵ１１４１のアドレス変換処理の手順の一例を示すフローチャートである。
【００７３】
ポート１１１がフレームを受信したら、ＣＰＵ１１４１は、アドレス変換処理プログラム２２６の実行を開始する（ステップ２５１）。ＣＰＵ１１４１は、受信したフレームの内容がリード要求か否かを判定する（ステップ２５２）。受信したフレームの内容がリード要求である場合、ＣＰＵ１１４１は、リード要求が要求するデータのコピーがコンピュータシステム内に存在するか判定する。具体的には、ＣＰＵ１１４１は、コピー管理エントリ１３２に含まれるフィールド１３３、フィールド１３４、フィールド１３５及びフィールド１３６に登録された情報で示される領域に、リード要求を含むフレームに格納されている送信先ＳＡＮアドレス、ＬＵＮ、ＬＢＡ及びＬｅｎｇｔｈで示される領域が含まれるという条件を満たすコピー管理エントリ１３２がコピー管理テーブル１３１に存在するか判定する（ステップ２５３）
ステップ２５３で示される条件に合致するコピー管理エントリ２３２が存在する場合、ＣＰＵ１１４１は、ステップ２５３で見つけたコピー管理エントリ２３２を用いて、リード要求をコピーデータが格納される記憶装置１０４へのリード要求に変換する。具体的には、リード要求を含むフレームの送信先をフィールド１３７に登録されたコピーＳＡＮアドレスに、フレームのＬＵＮをフィールド１３８に登録されたコピーＬＵＮに、フレームのＬＢＡを（ＬＢＡ＋フィールド１３９に登録されたコピーＬＢＡの値−フィールド１３５に登録されたマスタＬＢＡの値）に変更する（ステップ２５４）。
【００７４】
ステップ２５３でフレームの送信先がコピー管理テーブル２３１に含まれていない場合及びフレームをコピーデータが格納されている記憶装置１０４へのリード要求に変換した場合、ＣＰＵ１１４１は、リード要求がＣＰＵ１１４１が属するコピー管理スイッチ２０３に接続された記憶装置１０４へのものかどうか判定する。具体的には、まずリード要求の送信先のＳＡＮアドレス、ＬＵＮ、ＬＢＡ及びＬｅｎｇｔｈで表される領域を、コピーＳＡＮアドレス１３７、コピーＬＵＮ１３８、コピーＬＢＡ１３９とマスタＬｅｎｇｔｈ１３６で表される領域が含み、かつローカルフラグ２４０が１であるコピー管理エントリ２３２がコピー管理テーブル２３１に存在するか判定する（ステップ２５５）。
【００７５】
ローカルフラグが１であるコピー管理エントリ２３２がある場合、ＣＰＵ１１４１は、リード要求を含むフレームの送信元を変更する。これは、コピーデータへのリード要求と、コピーデータを保持する記憶装置１０４が保持するコピーデータ以外のデータへのリード要求とを区別できるようにするためである。具体的には、まずＣＰＵ１１４１は代理ＳＡＮアドレスを生成する。代理ＳＡＮアドレスは、当該コピー管理スイッチ２０３に割り振られたＳＡＮドメインアドレスを含み、他のいかなるノードのＳＡＮアドレスや、代理アドレステーブル２４１に保持される代理アドレスエントリ２４２のフィールド２４５に登録された代理ＳＡＮアドレスと重複しないように決定される。
【００７６】
次に、ＣＰＵ１１４１は、代理アドレステーブル２４１内の使用されていない代理アドレスエントリ２４２に、リード要求を発行したホスト１０５に対応するホストＳＡＮアドレス、マスタＳＡＮアドレス及び代理アドレスとの対応関係を登録する。具体的には、ステップ２５５で見つかったコピー管理エントリ２３２を用いて、ＣＰＵ１１１４１は、リード要求の送信元であるホスト１０５を示すホストＳＡＮアドレスをフィールド２４３に、マスタＳＡＮアドレス１３３をフィールド２４４に、生成した代理ＳＡＮアドレスをフィールド２４５に登録する。その後、ＣＰＵ１１４１は、リード要求であるフレームの送信元を、生成した代理アドレスに変更する（ステップ２５６）。
【００７７】
ステップ２５２で受信したフレームの内容がリード要求でないと判断した場合、ＣＰＵ１１４１は、受信したフレームの内容がリードデータであるか判定する（ステップ２５７）。受信したフレームの内容がリードデータである場合、ＣＰＵ１１４１は、リードデータの送信先が当該コピー管理スイッチ２０３の生成した代理ＳＡＮアドレスであるか判定する。具体的には、ＣＰＵ１１４１は、リードデータの送信先を示すＳＡＮアドレスがフィールド２４５に登録された代理ＳＡＮアドレスと一致する代理アドレスエントリ２４２が代理アドレステーブル２４１に存在するか判定する（ステップ２５８）。
【００７８】
条件を満たす代理アドレスエントリ２４２が見つかった場合、ＣＰＵ１１４１は、ステップ２５８で見つけた代理アドレスエントリ２４２に登録された情報を用いて、フレームの送信元をフィールド２４４に登録されたマスタＳＡＮアドレスに、送信先をフィールド２４３に登録されたホストＳＡＮアドレスに変更する（ステップ２５９）。
【００７９】
ステップ２５７で受信したフレームの内容がリードデータでないと判断した場合、ＣＰＵ１１４１は、受信したフレームの内容がレスポンスであるか判定する（ステップ２６０）。フレームの内容がレスポンスである場合、ＣＰＵ１１４１は、フレームの送信先が当該コピー管理スイッチ２０３の生成した代理ＳＡＮアドレスで示されるノードであるか判定する。具体的には、ＣＰＵ１１４１は、フレームの送信先を示すＳＡＮアドレスがフィールド２４５に登録された代理ＳＡＮアドレスと一致する代理アドレスエントリ２４２が代理アドレステーブル２４１に存在するか判定する（ステップ２６１）。
【００８０】
ステップ２６１で条件を満たす代理アドレスエントリ２４２が見つかった場合、ＣＰＵ１１４１は、見つかった代理アドレスエントリ２４２に登録された情報を用いて、フレームの送信元をフィールド２４４に登録されたマスタＳＡＮアドレスに、送信先をフィールド２４３に登録されたホストＳＡＮアドレスに変更する。また、ＣＰＵ１１４１は、代理アドレスエントリ２４２を代理アドレステーブル２４１から消去する（ステップ２６２）。
【００８１】
フレームの送信先がステップ２５５で示される条件を満たさない場合、ステップ２５８及び２６１でフレームの送信先が代理ＳＡＮアドレスでない場合並びにステップ２５６、２５９及び２６２でフレームのアドレス変換が済んだ場合、ＣＰＵ１１４１は、スイッチング処理部１１５へ処理したフレームを送信する（ステップ２６３）。
【００８２】
本実施形態におけるコンピュータシステムの一連の動作をまとめると、次のようになる。
【００８３】
システムの使用者又は管理者が管理端末１０６を介して、コピー管理スイッチ１０３にデータコピーを指示し、各コピー管理スイッチのコピー管理テーブル２３１へその情報を登録する。
【００８４】
ホスト１０５が記憶装置１０４ａへのリード要求を行う。リード要求は送信先である記憶装置１０４ａのＳＡＮアドレス、ＬＵＮ、ＬＢＡ、Ｌｅｎｇｔｈと送信元であるホスト１０５のＳＡＮアドレスを含む。リード要求は送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを経由してコピー管理スイッチ２０３ａに届く。
【００８５】
コピー管理スイッチ２０３ａはリード要求を受け取ると、コピー管理テーブル２３１の情報と照合する。コピー管理スイッチ２０３ａは、リード要求の送信先を記憶装置１０４ｂが保持するコピーデータへのリード要求に変換しルーティングする。ただし、記憶装置１０４ｂはコピー管理スイッチ２０３ａに接続されていないので、代理アドレスは生成されず、送信元も変更されない。
【００８６】
書き換えられたリード要求は送信先のＳＡＮアドレスに基づいてルーティングされ、コピー管理スイッチ２０３ｂに届く。リード要求を受取ったコピー管理スイッチ２０３ｂは、受取ったフレームの内容をコピー管理テーブル２３１の情報と照合する。その結果、コピー管理スイッチ２０３ｂは、代理ＳＡＮアドレスを生成し、ホスト１０５のＳＡＮアドレス、マスタである記憶装置１０４ａのＳＡＮアドレス及び代理ＳＡＮアドレスの対応関係を代理アドレステーブル２４１の代理アドレスエントリ２４２に記録する。その後、コピー管理スイッチ２０３ｂは、リード要求の送信元を代理ＳＡＮアドレスに変更してフレームをルーティングする。
【００８７】
リード要求を受取った記憶装置１０４ｂは、リード要求に対応するコピーデータを読み出し、送信先を代理ＳＡＮアドレスにしてリードデータをコピー管理スイッチ２０３ｂへ送信する。リードデータを含むフレームには、送信先である代理ＳＡＮアドレスと送信元である記憶装置１０４ｂのＳＡＮアドレスが含まれる。
【００８８】
リードデータのフレームがコピー管理スイッチ２０３ｂに届くと、コピー管理スイッチ２０３ｂは代理アドレステーブル２４１の情報に基づき、リードデータの送信元を記憶装置１０４ａのＳＡＮアドレス、送信先をホスト１０５のＳＡＮアドレスに変更する。その後、リードデータを含むフレームは送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを通りホスト１０５に届く。ホスト１０５はリードデータを記憶装置１０４ａから送信されたものとして受け取る。
【００８９】
一方、記憶装置１０４ｂからのレスポンスがコピー管理スイッチ２０３ｂに届くと、コピー管理スイッチ２０３ｂは、送信元を記憶装置１０４ａのＳＡＮアドレス、送信先をホスト１０５のＳＡＮアドレスに変更しルーティングすると同時に、代理アドレステーブル２４１から対応関係を記録している代理アドレスエントリ２４２を消去する。ホスト１０５はレスポンスを記憶装置１０４ａから送信されたレスポンスとして受け取る。
【００９０】
本実施形態では、ホスト１０５とマスタデータを保持する記憶装置１０４ａの経路上にコピー管理スイッチ２０３ａが存在している。しかし第１の実施形態と異なり、コピー管理スイッチ２０３ａにはコピーデータを保持する記憶装置１０４ｂは接続されていない。それでも、本実施形態では、リード要求はコピーデータを保持する記憶装置１０４ｂへのリード要求へ変換され、コピーデータを保持する記憶装置１０４ｂが接続しているコピー管理スイッチ２０３ｂに届き、コピーデータが記憶装置１０４ａからのリードデータとしてホスト１０５に送信される。
【００９１】
また、本実施形態では代理ＳＡＮアドレスを用いることで、コピー管理スイッチ２０３によって変更されたリード要求と、元々コピーを保持する記憶装置１０４ｂへ発行されたリード要求などのコマンドとを区別することが可能である。そのため、コピーデータを有する記憶装置１０４ｂを通常の記憶装置１０４ｂとして用いることが可能になる。さらに、リード要求ごとに異なる代理ＳＡＮアドレスを用いるので、複数の記憶装置１０４に保持されるマスタデータを一つの記憶装置１０４ｂにコピーして、コピーデータとして用いることが可能になる。
【００９２】
尚、本実施形態では代理ＳＡＮアドレスを用いて、記憶装置１０４からのリードデータを、そのアドレス情報を変換する必要のあるリードデータと、変換する必要のないリードデータを分類した。しかし、フレームにリード要求とリードデータとレスポンスの対応を認識できるような情報が付加されている場合は代理ＳＡＮアドレスを用いず、その付加情報でリードデータを分類することもできる。例えば、ファイバチャネルプロトコルではエクスチェンジＩＤと呼ばれるＩＤが各フレームに付加されているので、この情報に基づいてリードデータ、レスポンスを分類することも可能である。
【００９３】
図９は、本発明の第３の実施形態を適用したコンピュータシステムの構成例を示す図である。ＳＡＮ１０１は、スイッチ１０２ａ、１０２ｂ及びコピー管理スイッチ３０３を有する。また、ホスト１０５、記憶装置１０４ａ及び記憶装置１０４ｂがＳＡＮ１０１に接続されている。記憶装置１０４ａにはマスタデータが格納されている。
【００９４】
尚、本実施形態においても、ホスト１０５と記憶装置１０４ａとの間の通信線の接続コストよりホスト１０５と記憶装置１０４ｂとの間の通信線の接続コストの方が小さいものとする。
【００９５】
システムの使用者や管理者は、コピー管理スイッチ３０３に接続された管理端末１０６を介して、上述した他の実施形態と同様に、マスタデータのコピーを行い、マスタデータとコピーデータの対応関係の情報を、コピー管理スイッチ３０３のコピー管理テーブル２３１に記録し管理する。本実施例では、これらに加えて後述する仮想アドレステーブル３４１も記録し、管理する。
【００９６】
コピー管理スイッチ３０３は、後述する方法を用いて、コピー管理スイッチ３０３に接続される装置に対して、仮想的な記憶装置１０４（以下「仮想記憶装置３０７」）が存在するかのように振舞う。
【００９７】
以下、本実施形態においては、ホスト１０５はマスタデータが仮想記憶装置３０７に格納されていると判断して、仮想記憶装置３０７へリード要求を行う。これは、後述するコピー管理エントリ２３２ａ、２３２ｂが管理端末１０６によってコピー管理スイッチ３０３に登録されているため、コピー管理スイッチ３０３が仮想記憶装置３０７へのリード要求を、コピーデータの有無により記憶装置１０４ａないし記憶装置１０４ｂへのリード要求に変換するからである。これによりネットワークの効率的な利用を行う。尚、ホスト１０５には仮想記憶装置３０７のＷＷＮが設定されている。ホスト１０５はネームサービスを使って、仮想記憶装置３０７のＷＷＮから仮想記憶装置３０７のＳＡＮアドレス（２つ）を知る。
【００９８】
尚、本実施形態におけるコピー管理スイッチ３０３の構成は第１の実施形態のコピー管理スイッチ１０３と同様である。しかし、コピー管理スイッチ３０３が有するメモリに登録される情報等については、第二の実施形態と比較して、下記に示すような違いがある。
【００９９】
第一に、ＣＰＵ１１２１が初期化処理プログラム３２１を実行して、後述する仮想アドレステーブル３４１を不揮発メモリ１１２３から読み出し、仮想アドレステーブル３４１に記録されている仮想記憶装置３０７のアドレス情報をネームデータベース１２５に登録する点である。第二に、ＣＰＵ１１２１が端末からの要求処理プログラム３２２を実行して、第２の実施形態における処理に加え、管理ポート１１３で受信される管理端末１０６からの要求に答え、不揮発メモリ１１２３に保持される仮想アドレステーブル３４１の変更を行う点である。
【０１００】
図１０は、仮想アドレステーブル３４１の内容を示す図である。仮想アドレステーブル３４１は、複数の仮想アドレスエントリ３４２を有する。仮想アドレスエントリ３４２は１つの仮想的なノード、例えば仮想記憶装置３０７に対応し、仮想的なノードのＳＡＮアドレス（以下「仮想ＳＡＮアドレス」）及び仮想的なＷＷＮ（以下、「仮想ＷＷＰＮ」、「仮想ＷＷＮＮ」と称する）が、仮想アドレスエントリ３４２のエントリ３４３、３４４及び３４５に登録される。
【０１０１】
尚、本実施形態におけるコピー管理テーブル２３１、代理アドレステーブル２４１は第２の実施形態と同様のものを用いる。アドレス変換処理プログラム２２６も第２の実施形態と同様である。
【０１０２】
本実施形態におけるコンピュータシステムの一連の動作をまとめると、次のようになる。
【０１０３】
はじめに、システムの使用者や管理者が、コピー管理スイッチ３０３に接続された管理端末１０６を介して、記憶装置１０４ａに格納されたマスタデータを記憶装置１０４ｂコピーする指示をコピー管理スイッチ３０３に行う。続けて、仮想アドレステーブル３４１とコピー管理テーブル２３１を設定する。スイッチ１０２ａのＳＡＮドメインアドレスが４、コピー管理スイッチのＳＡＮドメインアドレスが５、記憶装置１０４ａのＳＡＮアドレスが４０１、記憶装置１０４ｂのＳＡＮアドレスが５０１、仮想記憶装置３０７に割り当てるＳＡＮアドレスを５０２、ＷＷＰＮを１２３４、ＷＷＮＮを５６７８とし、マスタデータが記憶装置１０４ａのＬＵＮ０、ＬＢＡ０から始まる長さ１０００００の領域に格納されており、マスタデータの先頭から長さ５００００の部分を記憶装置１０４ｂのＬＵＮ０、ＬＢＡ０から始まる領域にコピーした場合のコピー管理テーブル２３１、コピー管理エントリ２３２ａ、２３２ｂと仮想アドレステーブル３４１、仮想アドレスエントリ３４２にセットされる値を図１０、図１１に示す。コピー管理エントリ２３２ａは、仮想記憶装置３０７のＬＵＮ０、ＬＢＡ０から始まる長さ５００００の部分へのリード要求が、記憶装置１０４ｂへのリード要求に変換されることを示す。一方コピー管理エントリ２３２ｂは、仮想記憶装置３０７のＬＵＮ０，ＬＢＡ５００００から始まる長さ５００００の部分へのリード要求が、記憶装置１０４ａへのリード要求に変換されることを示す。
【０１０４】
設定終了後、ホスト１０５が仮想記憶装置３０７へのリード要求を発行する。リード要求のフレームには、送信先である仮想記憶装置３０７のＳＡＮアドレス、ＬＵＮ、ＬＢＡ、Ｌｅｎｇｔｈ及び送信元であるホスト１０５のＳＡＮアドレスが含まれる。リード要求のフレームは、送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを経由してコピー管理スイッチ３０３に届く。
【０１０５】
リード要求を受取ったコピー管理スイッチ３０３は、リード要求のフレームに含まれている情報をコピー管理テーブル２３１の情報と照合する。照合の結果、リード要求がコピー管理エントリ２３２ａにヒットしたなら、コピー管理スイッチ３０３は、第二の実施形態と同様に、リード要求の送信先をコピーデータを有する記憶装置１０４ｂへのリード要求に変換し、代理アドレスを生成し、送信元を代理アドレスに変更して、そのリード要求のフレームを記憶装置１０４ｂに転送する。そして、コピー管理スイッチ３０３ｂは、ホスト１０５ａ、仮想記憶装置３０７及び代理アドレスの対応を代理アドレステーブル２４１の代理アドレスエントリ２４２に記録する。また、照合の結果、リード要求がコピー管理エントリ２３２ｂにヒットした場合は、リード要求を１０４ａに格納されたマスタデータへのリード要求に変換し、同様の処理を行う。
【０１０６】
リード要求を受取った記憶装置１０４ｂは、指定されたデータを読み出し、送信先を代理ＳＡＮアドレスに設定してリードデータを送信する。リードデータのフレームには送信先を示す代理ＳＡＮアドレス及び送信元である記憶装置１０４ｂのＳＡＮアドレスが含まれる。
【０１０７】
リードデータのフレームを受信すると、コピー管理スイッチ３０３は代理アドレステーブル２４１の情報に基づき、リードデータのフレームの送信元を仮想記憶装置３０７のＳＡＮアドレス、送信先をホスト１０５のＳＡＮアドレスに変更する。リードデータは送信先のＳＡＮアドレスに基づいてルーティングされ、スイッチ１０２ａを通りホスト１０５に届く。ホスト１０５は、リードデータを仮想記憶装置３０７から送信されたものとして受け取る。
【０１０８】
第１、第２の実施形態では、ホスト１０５とマスタデータを保持する記憶装置１０４ａとの間のネットワークの経路（以下「パス」）上にコピー管理スイッチ１０３等があり、そのコピー管理スイッチ１０３等でリード要求のフレームが変更されていた。しかし本実施形態では、コピー管理スイッチ３０３が仮想記憶装置３０７を提供するため、ホスト１０５と記憶装置１０４ａとの間のパス上には無いコピー管理スイッチ３０３に直接リード要求が到達する。
【０１０９】
また、本実施形態の一つとして、図１２のような構成を取ることもできる。この構成では、記憶装置１０４ａがコピー管理スイッチ３０３ａに接続される。管理者等は、管理端末１０６を介してコピー管理スイッチ３０３ａ、３０３ｂのコピー管理テーブル２３１や仮想アドレステーブル３４１を設定し、それぞれのコピー管理スイッチが仮想記憶装置３０７を提供するようにする。
【０１１０】
この場合、ホスト１０５ａ、１０５ｂが各コピー管理スイッチ３０３のネームデータベースを参照したときに、仮想記憶装置３０７が複数のポートを持つノードとして認識されるように、コピー管理スイッチ３０３ａ、３０３ｂの仮想アドレステーブル３４１において、ＷＷＮＮが等しい仮想アドレスエントリ３４２が登録される。
【０１１１】
ホスト１０５ａ、１０５ｂでは、アクセスすべき記憶装置１０４がＷＷＮＮで設定される。ホスト１０５ａ、１０５ｂはネームデータベースを参照し、アクセスすべき記憶装置１０４（実際には仮想化記憶装置３０７）の二つのＳＡＮアドレスを取得する。この場合、ホスト１０５は、どちらのＳＡＮアドレスを使用しても、仮想化記憶装置３０７にアクセスすることができる。これら複数のＳＡＮアドレスで示される複数のポートから一つを選択する方法としては、以下の二つが考えられる。
【０１１２】
一つは、ホスト１０５がスイッチ１０２ないしコピー管理スイッチ３０３からＳＡＮ１０１のトポロジ情報を取得できる場合、より接続コストの少ないポートを選択し、そのポートへリード要求を送信する。
【０１１３】
もう一つは、ホスト１０５がトポロジ情報が取得できない場合、ホスト１０５が両方のポートにリード要求を送信し、より速くアクセスできるポートを選択するという方法である。
【０１１４】
尚、上述の構成においては、マスタデータ全体を記憶装置１０４ｂにコピーしている際に記憶装置１０４ｂが故障した場合、コピー管理スイッチ３０３が記憶装置１０４の故障を検出できると仮定すると、コピー管理エントリ２３２を変更することで、無事な記憶装置１０４ａへアクセス要求のルーティングが行われるようなフェイルセーフを行うことが可能である。
【０１１５】
コピー管理スイッチ３０３は、記憶装置１０４の故障をいくつかの方法で検出できる。例えば光ファイバを通信線として用いている場合、物理的な接続が切れることは、ポート１１１で光が消える形で検出できる。また記憶装置１０４ｂからのレスポンスにはエラー情報が含まれるため、ポート１１１においてレスポンスの内容を監視することによって、コピー管理スイッチ３０３が記憶装置１０４の故障を検出することも可能である。以下、フェイルセーフの例を説明する。
【０１１６】
記憶装置１０４ｂの故障を検出したコピー管理スイッチ３０３は、管理端末１０６に故障の発生を通知し、ユーザ等が管理端末１０６を介してコピー管理スイッチ３０３のコピー管理テーブル２３１を設定しなおす。例えば、図９の記憶装置１０４ａが故障した場合、ユーザは、管理端末１０６を介してコピー管理スイッチ３０３のコピー管理エントリ２３２ａを削除し、コピー管理エントリ２３２ｂのマスタＬＢＡ１３５ｂとコピーＬＢＡ１３９ｂを０にし、マスタＬｅｎｇｔｈ１３６ｂを１０００００にする。
【０１１７】
これにより、コピー管理スイッチ３０３は、ホスト１０５から仮想記憶装置３０７へのリード要求を全て記憶装置１０４ａにルーティングするようになる。第一及び第二の実施例でも同様のフェイルオーバ処理が可能である。
【０１１８】
また、図１２の構成の場合は、送信したリード要求の結果がタイムアウトするか否かによって、ホスト１０５が選択するポートを切替えることでフェイルオーバを実現することができる。
【０１１９】
図１３は、本発明の第４の実施形態を適用したコンピュータシステムの構成例を示す図である。本実施形態は、コピー管理スイッチ４０３ａ及び４０３ｂが、仮想スイッチ４０８を提供する点が第３の実施形態とは異なる。
【０１２０】
本実施形態におけるコピー管理スイッチ４０３の構成は第３の実施形態におけるコピー管理スイッチ１０３と同様であるが、コピー管理スイッチ４０３が有するメモリ１１２２に登録される情報等が、以下の点で第３の実施形態とは異なる。
【０１２１】
第一に、仮想アドレステーブル４４１に、第３の実施形態の仮想アドレステーブル３４１に加えて仮想ドメインアドレスを登録するエントリ４４６が追加される。エントリ４４６に登録される仮想ドメインアドレスは、仮想スイッチ４０８のＳＡＮドメインアドレスを示す。
【０１２２】
第二に、ＣＰＵ１１２１がルーティングプロトコル処理プログラム４２２を実行して、エントリ４４６に登録された仮想ドメインアドレスで指定されるＳＡＮドメインアドレスを持つ仮想スイッチ４０８が接続されているという情報を他のスイッチと交換し、ルーティングテーブルを作成する点である。このとき、ルーティングの整合性を保つため、コピー管理スイッチ４０３ａと仮想スイッチ４０８との間の接続コストとコピー管理スイッチ４０３ｂと仮想スイッチ４０８との間の接続コストは等しいように設定する。
【０１２３】
以下、本実施形態の処理の一連の流れを説明する。
【０１２４】
はじめに、システムの使用者や管理者が、コピー管理スイッチ４０３ａ、４０３ｂに接続された管理端末１０６を介して、記憶装置１０４ａに格納されたマスタデータを記憶装置１０４ｂコピーする指示をコピー管理スイッチ４０３ａ（または４０３ｂ）に行う。続けて、管理者等は、各コピー管理スイッチ４０３に登録された仮想アドレステーブル４４１とコピー管理テーブル２３１に情報を設定する。
【０１２５】
ここで、本実施形態では、コピー管理スイッチ４０３ａのＳＡＮドメインアドレスが４、コピー管理スイッチ４０３ｂのＳＡＮドメインアドレスが５、仮想スイッチ４０８のＳＡＮドメインアドレスを８、記憶装置１０４ａのＳＡＮアドレスが４０１、記憶装置１０４ｂのＳＡＮアドレスが５０１、仮想記憶装置３０７に割り当てるＳＡＮアドレスを８０１、ＷＷＰＮを１２３４、ＷＷＮＮを５６７８とし、マスタデータが記憶装置１０４ａのＬＵＮ０、ＬＢＡ０から始まる長さ１０００００の領域に格納されており、マスタデータの先頭から長さ５００００の部分を記憶装置１０４ｂのＬＵＮ０、ＬＢＡ０から始まる領域にコピーするものとする。
【０１２６】
また、ホスト１０５と各コピー管理スイッチ４０３との間の接続コストは以下のとおりであると仮定する。すなわち、ホスト１０５ａに関しては、コピー管理スイッチ４０３ｂとの間の方がコピー管理スイッチ４０３ａとの間より接続コストが小さく、ホスト１０５ｂに関しては、コピー管理スイッチ４０３ａとの間の方がコピー管理スイッチ４０３ｂとの間より接続コストが小さい。
【０１２７】
ホスト１０５ａが仮想記憶装置３０７にリード要求を発行すると、接続コストが最小となるルーティングによってリード要求はコピー管理スイッチ４０３ｂに到達し、その後は第３の実施形態と同様の処理が行われる。
【０１２８】
ホスト１０５ｂが仮想記憶装置３０７にリード要求を発行すると、リード要求はコピー管理スイッチ４０３ａに到達し、第３の実施形態と同様の処理が行われる。
本実施形態により、ホスト１０５は、図１２の構成のようにパスを選択しなくても、接続コストが小さいコピー管理スイッチ４０３にリード要求を送ることができる。これは、コピー管理スイッチ４０３ａ，４０３ｂと仮想スイッチ３０８の間の接続コストが等しいので、ホスト１０５から仮想スイッチ３０８のＳＡＮドメイン宛に送信されたフレームはホスト１０５の直近のコピー管理スイッチ４０３ａないし４０３ｂにたどり着くからである。
【０１２９】
図１４は、本発明の第５の実施形態を適用したコンピュータシステムの構成例を示す図である。本実施形態は、コピー管理スイッチ５０３が記憶装置１０４ｃ及び１０４ｄを有する点が第一の実施形態と異なる。
【０１３０】
本実施形態においては、記憶装置１０４ａがマスタデータを保持しており、ホスト１０５はマスタデータへリード要求を行う。また、本実施形態ではコピー管理スイッチ５０３がコピーデータを保持する。そして、ホスト１０５からマスタデータへのリード要求を受取ったコピー管理スイッチ５０３は、内部の記憶装置１０４ｃ、１０４ｄに保持しているコピーデータを読み出して、ホスト１０５にリードデータを送信する。
【０１３１】
図１５は、コピー管理スイッチ５０３の内部構成の具体例を示す図である。
コピー管理スイッチ５０３は、複数のポート５０３１及びポートプロセッサ５０３３を有するプロトコル変換部５０３２、ディスク制御部５０３５、ハードディスク５０３６、管理部５０３７及びこれらの構成部分を接続するスイッチ部５０３４を有する。ポートプロセッサ５０３３はＣＰＵ及びメモリを有し、管理部５０３７はＣＰＵ、メモリ及び記憶装置を有する。
【０１３２】
ディスク制御部５０３５は、ディスク制御部５０３５に接続された複数のハードディスクの記憶容量を一つ又は複数の論理的な記憶領域として他の装置に提供する。コピー管理スイッチ５０３は、自スイッチ５０３に含まれる複数のディスク制御部５０３５が提供する論理的な記憶領域をまとめて一つ又は複数の仮想的な記憶領域として、コピー管理スイッチ５０３に接続される装置に提供する。
【０１３３】
コピー管理スイッチ５０３は、ポート５０３１を介して、他のノードとコマンドやデータを送受信する。ポート５０３１を介してコマンド等を受信したプロトコル変換部５０３２は、受信したコマンドやデータのプロトコルを変換してスイッチ部５０３４に転送する。ここで、プロトコル変換部５０３２は、受信したコマンドがコピー管理スイッチ５０３の提供する仮想的な記憶領域に対するものか判別する。受信したコマンドが自記憶領域に対するものである場合、プロトコル変換部５０３２は、その記憶領域に対応するディスク制御部５０３５へコマンドを発行する。自記憶領域に対応しない場合、プロトコル変換部５０３２は、受け取ったフレームをそのままスイッチ部５０３４に転送する。
【０１３４】
コピー管理スイッチ５０３の提供する仮想的な記憶領域とディスク制御部５０３５が提供する論理的な記憶領域との対応関係を示す情報は管理部５０３７の記憶装置に格納される。またこの情報は、コピー管理スイッチ５０３の起動時に管理部５０３７のＣＰＵによってポートプロセッサ５０３３が有するメモリに格納される。また、管理部５０３７は内部のメモリにネームデータベースを保持し、ＷＷＮＮ等の問い合わせに応答する処理を内部ＣＰＵにて実行する。
スイッチ部５０３４は、フレームのアドレス情報に基づきルーティング処理を行う。
【０１３５】
ディスク制御部５０３５は、提供する論理的な記憶領域と接続されている各ハードディスク５０３６が有する記憶領域との対応関係の情報を内部のメモリに保持している。ディスク制御部５０３５は、スイッチ部５０３４からコマンド（ここでは、フレームの内部にコマンドが格納されている）を受け取ると、メモリに保持された対応関係の情報を用いて、コマンドが指定する記憶領域に対応するハードディスク５０３６と、その内部での格納位置を決定する。そして対応するハードディスク５０３６へデータの読み出し等の命令を発行し、コマンドを処理する。
【０１３６】
尚、図１５においてスイッチ部５０３４、ディスク管理部５０３５及び管理部５０３７が各々２個ずつ存在するのは、冗長性を持たせて信頼性を向上させるためであり、本発明においてこの構成が必須というわけでは無い。
【０１３７】
本実施形態のコピー管理スイッチ５０３において、プロトコル変換部５０３２のポートプロセッサ５０３３が有するメモリにアドレス変換処理プログラム１２６が格納される。アドレス変換処理プログラム１２６は、プロトコル変換部５０３２のポート５０３１がフレームを受信した場合、またフレームをスイッチ部５０３４から受信した場合にポートプロセッサ５０３３ａで実行される。また、管理部５０３７内部のメモリには、第１の実施形態において説明したメモリ１１２２に格納される各プログラムが格納される。
【０１３８】
本実施形態のコンピュータシステムにおける処理の一連の流れを以下に示す。
まずホスト１０５は、記憶装置１０４ａに保持されるマスタデータへリード要求を発行する。
【０１３９】
リード要求を受信したコピー管理スイッチ５０３のプロトコル変換部５０３２は、ポートプロセッサ５０３３においてアドレス変換処理プログラム１２６を実行し、じ受信したリード要求のフレームをコピーデータを格納した記憶領域へのリード要求のフレームに変換する。
【０１４０】
その後、プロトコル変換部５０３２は変換したリード要求の内容を確認する。本実施形態の場合、コピー管理スイッチ５０３の提供する記憶領域へのリード要求であるので、プロトコル変換部５０３２は、変換したリード要求のフレームをディスク管理部５０３５に対して送信する。
【０１４１】
スイッチ部５０３４を介してリード要求を受取ったディスク管理部５０３５は、受信したリード要求に従い、ハードディスク５０３６から指定されたデータを読み出し、読み出したリードデータをスイッチ部５０３４を介してプロトコル変換部５０３２へ送信する。
【０１４２】
リードデータを受信したプロトコル変換部５０３２は、ポートプロセッサ５０３３でアドレス変換処理プログラム１２６を実行し、リードデータの送信元を記憶装置１０４ａのＳＡＮアドレスに変更し、その変更後のリードデータのフレームをポート５０３１を介してホスト１０５へ転送する。ホスト１０５は、リードデータを記憶装置１０４ａから送信されたものとして受信する。
【０１４３】
このようにして、ホスト１０５から記憶装置１０４ａに格納されたマスタデータへのリード要求は、コピー管理スイッチ５０３が提供する記憶領域に格納されたコピーデータを用いてコピー管理スイッチ５０３によって処理される。
【０１４４】
本実施形態では、コピー管理スイッチ５０３の提供する記憶領域をコピーデータの保持に用いた。しかし、本実施形態のコピー管理スイッチ５０３は、上述した第一から第四の実施形態で説明したコピー管理スイッチ１０３と同様の使用方法に使用することができる。
【０１４５】
次に、本発明の第六の実施形態について説明する。上述した第１〜５の実施形態では、マスタデータの全体又は決められた一部をコピーしていた。また、データのコピーは、管理者等の指示に基づいて、コピー管理テーブル１３１、２３１の設定と共に実行されていた。しかし、ここで説明する第６の実施形態では、後述するコピー管理スイッチ７０３が、ホスト１０５からのリード要求に応じて、マスタデータを格納した記憶装置１０４ａから指定された記憶装置１０４ｂにリード要求の対象となったデータをコピーする。このように動作することで、記憶装置１０４ｂが有する記憶容量を効率よく使用出来る。
【０１４６】
第六の実施形態のコンピュータシステムの構成は、コピー管理スイッチ７０３がコピー管理スイッチ１０３と置き換わった以外は第１の実施形態と同じである。
【０１４７】
本実施形態では、コピー管理スイッチ７０３のメモリ１１２２、１１４２に格納される情報等が、第一の実施形態と以下の点で異なる。
第一に、ＣＰＵ１１２１が初期化処理プログラム７２１を実行して、後述するコピー管理テーブル７３１の各コピー管理エントリ７３２のキャッシュインデックス７３７に対応するキャッシュテーブル７４１を作成する点である。
【０１４８】
第二に、ＣＰＵ１１２１が端末からの要求処理プログラム７２２を実行して、コピー管理テーブル７３１の内容の変更に伴うキャッシュインデックス７３７の追加・削除に応じて、キャッシュテーブル７４１を追加・削除する処理を行う点である。
第三に、ＣＰＵ１１４１がアドレス変換処理プログラム７２６を実行して、ポート１１１がフレームを受信した際に、リード要求に含まれるアドレス情報を判定してキャッシュ処理プログラム７２７の実行を制御部１１２に指示する点である。さらにＣＰＵ１１４１は、リードデータなどのアドレス情報の変換を行う。処理手順の詳細は後述する。
【０１４９】
第四に、ＣＰＵ１１２１がキャッシュ処理プログラム７２７を実行し、キャッシュテーブル７４１を用いて、マスタデータへのリード要求に対応するコピーデータが存在するかどうかを判定し、存在するならばコピーデータが格納された記憶装置１０４（ここでは記憶装置１０４ｂ）へリード要求を発行する。一方、コピーデータが存在しないならば、ＣＰＵ１１２１は、リード要求が指定するマスタデータを記憶装置１０４ａから記憶装置１０４ｂにコピーし、コピーデータをホスト１０５に送信する点である。処理手順の詳細は後述する。
【０１５０】
図１６は、コピー管理テーブル７３１の構造を示す図である。コピー管理テーブル７３１は複数のコピー管理エントリ７３２を有する。各コピー管理エントリ７３２は、第一の実施形態とは異なり、マスタデータの格納位置とコピー先の格納位置の対応関係をＳＡＮアドレス及びＬＵＮで管理する。具体的には、各コピー管理エントリ７３２は、マスタＳＡＮアドレスを登録するエントリ７３３、マスタＬＵＮを登録するエントリ７３４、コピーＳＡＮアドレスを登録するエントリ７３５、コピーＬＵＮを登録するエントリ７３６及びキャッシュインデックスの情報を登録するエントリ７３７から構成される。つまり、コピー管理エントリ７３２は、マスタデータが格納された記憶装置１０４ａ及びそのＬＵＮ並びにコピーデータの格納に用いる記憶装置１０４ｂ及びそのＬＵＮを指定する。
尚、キャッシュインデックスは、後述するキャッシュテーブル７４１を指定する為の情報である。
【０１５１】
図１７は、キャッシュテーブル７４１の構造の一例を示す図である。キャッシュテーブル７４１は、コピー管理テーブル７３１で使用されているコピー管理エントリ７３２の数だけ存在し、エントリ７３７に登録されるキャッシュインデックスによってコピー管理テーブル７３１と関連付けられている。各キャッシュテーブル７４１は複数のキャッシュエントリ７４２を有する。各キャッシュテーブル７４１のキャッシュエントリ７４２の数はメモリ１１２２の容量などから設計時に決定されている。
【０１５２】
キャッシュエントリ７４２は、マスタＬＢＡを登録するエントリ７４３、コピーＬＢＡを登録するエントリ７４４、マスタＬｅｎｇｔｈを登録するエントリ７４５、非アクセスカウンタを登録するエントリ７４６及び有効フラグを登録するエントリ７４７を有する。非アクセスカウンタはキャッシュ処理プログラム７２７で用いられるカウンタであり、その使われ方は後述する。有効フラグはその有効フラグが所属するキャッシュエントリ７４２が有効か無効かを示し、例えば１ならば有効で０なら無効であることを示す。
【０１５３】
つまり有効な（エントリ７４７に１が登録されている）キャッシュエントリ７４２は、マスタＬＢＡから始まり長さがマスタＬｅｎｇｔｈである記憶装置１０４ａの記憶領域が、コピーＬＢＡから始まる記憶装置１０４ｂの記憶領域にコピーされている事を示す。
【０１５４】
図１８は、本実施形態におけるアドレス変換部１１４で実行される処理手順を示すフローチャートである。尚、本処理は、ＣＰＵ１１４１がアドレス変換処理プログラム７２６を実行することによって行われる。
まず、ポート１１１でフレームを受け取ると、ＣＰＵ１１４１は、アドレス変換処理プログラム７２６の実行を開始する（ステップ７５１）。
【０１５５】
次に、ＣＰＵ１１４１は、受信したフレームの内容がリード要求か判定する（ステップ７５２）。受信したフレームの内容がリード要求である場合、ＣＰＵ１１４１は、リード要求で要求されるデータが、コピー対象（すなわちマスタデータ）となっている記憶装置１０４のＬＵＮに格納されたデータであるかを判定する。具体的には、ＣＰＵ１１４１は、リード要求の送信先ＳＡＮアドレス及びＬＵＮが、エントリ７３３及び７３４に登録された値と一致するコピー管理エントリ７３２を探す（ステップ７５３）。
【０１５６】
ステップ７５３で条件を満たすコピー管理エントリ７３２が見つかった場合、ＣＰＵ１１４１は、制御部１１２に対してキャッシュ処理プログラム７２７の実行を指示する。この際、ＣＰＵ１１４１は、受信したフレームとステップ７５３で選択したコピー管理エントリ７３２に登録された情報を制御部１１２に送信する（ステップ７５４）。ステップ７５４での処理の終了後、ＣＰＵ１１４１は処理を終了する。
【０１５７】
一方、ステップ７５２で受信したフレームの内容がリード要求ではないと判断された場合、ＣＰＵ１１４１は、フレームがリードデータ、またはレスポンスであるか判定する（ステップ７５５）。フレームの内容がリードデータ又はレスポンスであった場合、ＣＰＵ１１４１は、受信したフレームがコピーデータが格納された記憶装置１０４（ここでは１０４ｂ）から送信されたものか判定する。具体的には、フレームの送信元がエントリ７３５に登録された値と一致するコピー管理エントリ７３２がコピー管理テーブル７３１に存在するか判定する（ステップ７５６）。
【０１５８】
ステップ７５６で条件を満たすコピー管理エントリ７３２がコピー管理テーブル７３１に存在する場合、ＣＰＵ１１４１は、ステップ７５６で見つけたコピー管理エントリ７３２を用いて、フレームの送信元をエントリ７３３に登録されたマスタＳＡＮアドレスに変更する（ステップ７５７）。
【０１５９】
ステップ７５３でリード要求であるフレームの送信先がコピー管理テーブル７３１に存在しない場合、ステップ７５５でフレームがリードデータでもレスポンスでもないと判断された場合及びステップ７５６でフレームの送信元がコピー管理テーブル７３１に存在しなかった場合には、ＣＰＵ１１４１は、スイッチング処理部１１５に処理したフレームを転送して処理を終了する（ステップ７５８）。
【０１６０】
図１９は、ステップ７５４におけるアドレス変換部１１４の指示によって制御部１１２で実行される処理手順を説明する図である。本処理は、制御部１１２がキャッシュ処理プログラム７２７を実行することで行われる。
【０１６１】
アドレス変換部１１４の指示を受けた制御部１１２は、アドレス変換部１１４から受信したフレームの内容であるリード要求のＬＢＡ及びＬｅｎｇｔｈで指定されるマスタデータを格納する記憶装置１０４ａの記憶領域が、コピーデータが格納される記憶装置１０４ｂに格納されているかどうかを判定する。具体的には、ＣＰＵ１１２１は、アドレス変換部１１４から転送されたコピー管理エントリ７３２のエントリ７３７に登録された値で指定されるキャッシュテーブル７４１に、リード要求のＬＢＡ及びＬｅｎｇｔｈで指定される領域がエントリ７４３及びエントリ７４５で指定される領域に含まれ、かつ有効フラグが１であるキャッシュエントリ７４２が存在するか判定する（ステップ７６１）。
【０１６２】
ステップ７６１の条件を満たすキャッシュエントリ７４２が存在する場合、ＣＰＵ１１２１は、ステップ７６１で使用されたキャッシュテーブル７４１に含まれる有効なキャッシュエントリ７４２の非アクセスカウンタ７４６を操作する。具体的には、ＣＰＵ１１２１は、ステップ７６１の条件を満たすキャッシュエントリ７４２のエントリ７４６の値を０にセットし、他の全ての有効なキャッシュエントリ７４２のエントリ７４６に登録された値を１増やす（ステップ７６２）。
【０１６３】
その後、ＣＰＵ１１２１は、コピーデータへのリード要求を生成する。具体的には、ＣＰＵ１１２１は、アドレス変換部１１４から送信されたコピー管理エントリ７３２のエントリ７３５及び７３６に登録された値を各々送信先ＳＡＮアドレスとＬＵＮとする。更に、ＣＰＵ１１２１は、ステップ７６１で見つかったキャッシュエントリ７４２に登録された情報を用いて、ＬＢＡを（リード要求で指定されるＬＢＡ＋エントリ７４４に登録された値−エントリ７４３に登録された値）に、Ｌｅｎｇｔｈをエントリ７４５に登録された値にする（ステップ７６３）。その後、ＣＰＵ１１２１は、スイッチング処理部１１５に処理したフレームを送信する（ステップ７６４）。
【０１６４】
一方、ステップ７６１の条件を満たすキャッシュエントリ７４２が存在しない場合、ＣＰＵ１１２１は、コピー管理エントリ７３２が指定するコピーデータを格納する記憶装置１０４ｂの記憶領域にリード要求が指定するＬｅｎｇｔｈのデータを格納できる分の空き領域が存在するかを判定する。また、ＣＰＵ１１２１は、キャッシュテーブル７４１に、使われていないキャッシュエントリ７４２が存在するかを判定する。具体的には、ＣＰＵ１１２１は、キャッシュテーブル７４１の有効な全てのキャッシュエントリ７４２の情報を用いて、記憶装置１０４ｂで使用されている記憶領域を判別し、それ以外の記憶領域でリード要求に含まれるＬｅｎｇｔｈの値以上連続している記憶領域を記憶装置１０４ｂから探す（ステップ７６５）。
【０１６５】
有効ないずれのキャッシュエントリ７４２にも使用されておらず、リード要求のＬｅｎｇｔｈ以上の長さの記憶領域が記憶装置１０４ｂに見つからない場合、もしくは全てのキャッシュエントリ７４２が有効なため、キャッシュエントリ７４２の更新が行えない場合、ＣＰＵ１１２１は、キャッシュテーブル７４１が有する有効なキャッシュエントリ７４２のうち１つを削除すなわち無効化して記憶領域の空き領域を広げる。具体的には、ＣＰＵ１１２１は、有効なキャッシュエントリ７４２の中で最もエントリ７４６に登録された値が大きいキャッシュエントリ７４２のエントリ７４７の値を０にする（ステップ７６６）。その後、ＣＰＵ１１２１は、ステップ７６５の処理を繰り返す。
【０１６６】
有効ないずれのキャッシュエントリ７４２にも使用されておらず、リード要求のＬｅｎｇｔｈ以上の長さの記憶領域が記憶装置１０４ｂに見つかり、さらに無効なキャッシュエントリ７４２が１つでもある場合、見つかったキャッシュエントリ７４２を更新し、リード要求が指定するマスタデータと、見つかった記憶装置１０４ｂの記憶領域の対応を登録する。そのため、まずマスタデータのコピーを行う。はじめに該当する記憶領域が見つかり、かつ無効なキャッシュエントリ７４２が１つでも見つかった場合、ＣＰＵ１１２１は、リード要求で指定されるマスタデータを、マスタデータを保持する記憶装置１０４ａから読み出す。具体的には、送信元を制御部１１２のＳＡＮアドレスにしたマスタデータのリード要求を作成し、スイッチング処理部１１５に送信する。その後、ＣＰＵ１１２１は、マスタデータを保持する記憶装置から送られてくるリードデータを、メモリ１１２２に格納する（ステップ７６７）。
【０１６７】
その後、ＣＰＵ１１２１は、メモリ１１２２に格納されたマスタデータを、ステップ７６５で見つけた記憶装置１０４ｂの記憶領域に転送する（ステップ７６８）。その後、ＣＰＵ１１２１は、キャッシュテーブル７４１を更新する。具体的には、ＣＰＵ１１２１は、ステップ７６５で見つかった無効なキャッシュエントリ７４２について、メモリ１１２２から転送されたデータが格納された記憶領域に対応するコピーＬＢＡをエントリ７４４に、そのマスタデータの記憶領域に対応するマスタＬＢＡ及びマスタＬｅｎｇｔｈをエントリ７４３及び７４５に登録し、かつそのキャッシュエントリ７４２のエントリ７４６の値を０、エントリ７４７の値を１にセットする（ステップ７６９）。その後、ＣＰＵ１１２１は、ステップ７６３以降の処理を行う。
【０１６８】
本実施形態の一連の動作をまとめると、次のようになる。
【０１６９】
はじめに、システムの使用者や管理者が、コピー管理スイッチ７０３に接続された管理端末１０６を介して、記憶装置１０４ａのあるＬＵＮで指定される記憶領域に格納されたマスタデータを記憶装置１０４ｂのあるＬＵＮで指定される記憶領域にコピーする設定をコピー管理テーブル７３１に行う。そして、この時点では、データは記憶装置１０４ｂにコピーされていない状態とする。つまり、コピー管理テーブル７３１のコピー管理エントリ７３２は存在するが、そのコピー管理エントリ７３２のキャッシュインデックス７３７に対応するキャッシュテーブル７４１のキャッシュエントリ７４２は全て無効になっている。これが初期状態となる。
【０１７０】
初期状態においてホスト１０５が記憶装置１０４ａに保持されているマスタデータへのリード要求を発行すると、リード要求のフレームがコピー管理スイッチ７０３に到達する。
【０１７１】
フレームの受信を確認すると、アドレス変換部１１４はアドレス変換処理プログラム７２６を起動する。ここでは、アドレス変換部１１４は、リード要求がマスタデータへの要求であると判定し、制御部１１２へキャッシュ処理プログラム７２７の実行を指示する。
【０１７２】
指示を受けた制御部１１２は、リード要求で指定されるデータに対応するキャッシュエントリ７４２を探す。この時点でデータは一切記憶装置１０４ｂに転送されていないので、キャッシュエントリ７４２は見つからない。そこで制御部１１２は、記憶装置１０４ａに対してリード要求を発行し、そのリードデータを記憶装置１０４ｂに転送する。また制御部１１２は、記憶装置１０４ｂに転送されたデータに対応するキャッシュエントリ７４２をキャッシュテーブル７４１に登録する。
【０１７３】
更に、制御部１１２は、受信したリード要求のフレームからホスト１０５を送信元にしたコピーデータへのリード要求のフレームを生成し、そのフレームをスイッチング処理部１１５に転送する。
【０１７４】
スイッチング処理部１１５はフレームを記憶装置１０４ｂに転送する。フレームを受取った記憶装置１０４ｂは、ホスト１０５を送信先としたリードデータのフレームをコピー管理スイッチ７０３に経由でホスト１０５へ送信する。
【０１７５】
リードデータのフレームを受取ったアドレス変換部１１４は、この場合、受信したフレームのリードデータがコピーデータだと判定する。アドレス変換部１１４は、リードデータの送信元を記憶装置１０４ａに変更し、スイッチング処理部１１５に転送する。
スイッチング処理部１１５はリードデータをホスト１０５に転送する。リードデータは記憶装置１０４ａから送信されたデータとしてホスト１０５に到達する。
【０１７６】
以上の流れにより、ホスト１０５からのリード要求によって記憶装置１０４ｂにコピーが作成され、キャッシュエントリ７４２がキャッシュテーブル７４１に作成される。
【０１７７】
その後、ホスト１０５が再び同じマスタデータへリード要求を発行すると、リード要求のフレームを受信した制御部１１２は、当該マスタデータに対応するキャッシュエントリ７４２を見つけることが出来る。この場合、制御部１１２は、リード要求のフレームに基づいてホスト１０５を送信元にしたコピーデータへのリード要求を生成し、スイッチング処理部１１５に転送する。
【０１７８】
このように、２度目のリード要求は記憶装置１０４ｂに格納されたコピーデータだけを用いて処理される。このためリード要求の処理が高速化される。また、本実施形態においては、実際にホストがアクセスするマスタデータのみがコピーされる。更に、非アクセスカウンタ７４６を用いて最も長い間アクセスされないコピーデータがキャッシュエントリ７４２から削除される。つまり、ホストからのアクセス頻度が高いデータのみが記憶装置１０４ｂに格納されることとなる。したがって、本実施形態では、記憶装置１０４ｂの記憶容量を効率的に使用できる。
【０１７９】
本実施形態でキャッシュエントリ７４２を削除するために用いた方法は、一般にＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）と呼ばれる方法であるが、他の方法でも良い。また、本実施形態では、コピー管理装置は、ホスト１０５からのリード要求で指定されるマスタデータを記憶装置１０４ａから読み出し、そのリードデータをメモリ１１２２に保存してからコピーデータを格納する記憶装置１０４ｂに転送した。しかし、ホスト１０５からのリード要求が指定するマスタデータだけでなく、その前後を含むデータを記憶装置１０４ａから読み出しても良い。
【０１８０】
例えば、ホスト１０５からのリード要求が指定する記憶領域に対して、同じ先頭位置から始まりＬｅｎｇｔｈをより長くした記憶領域からデータを読み出すとしても良い。こうすると、ホスト１０５が連続した領域へリード要求を行う場合に、次回のリード要求が記憶装置１０４ｂに存在する可能性が高くなる。また、ＳＡＮアドレスとＬＵＮで指定される記憶領域全体を読み出しても良い。
【０１８１】
また、記憶装置１０４ａがＳＣＳＩのＥＸＴＥＮＤＥＤ  ＣＯＰＹコマンドを処理できる場合は、記憶装置１０４ａに対するデータのリード要求を、記憶装置１０４ａから記憶装置１０４ｂへのデータのコピー要求に置き換えても良い。さらに、マスタデータをコピーデータを格納する記憶装置１０４ｂに転送するための専用のバッファメモリを制御部１１２に用意しても良い。さらに、コピーを保持する記憶装置１０４ｂにリードデータを転送しながら同時にホスト１０５にリードデータを送信しても良い。
【０１８２】
【発明の効果】
本発明によれば、ＳＡＮに接続された記憶装置に保持されたデータへのアクセスを高速化することができる。
また本発明によればＳＡＮを流れるデータを減らすことができるので、ＳＡＮの負荷を減らすことができる。
【図面の簡単な説明】
【図１】本発明を適用したコンピュータシステムの第一の実施形態の構成を示す図である。
【図２】第１の実施形態のコピー管理スイッチの構成を示す図である。
【図３】第１の実施形態のコピー管理スイッチのメモリ構成を示す図である。
【図４】第１の実施形態のコピー管理テーブルの構成を示す図である。
【図５】第１の実施形態のアドレス変換処理のフローチャートである。
【図６】本発明を適用したコンピュータシステムの第二の実施形態の構成を示す図である。
【図７】第２の実施形態の代理アドレステーブルの構成を示す図である。
【図８】第２の実施形態のアドレス変換処理のフローチャートである。
【図９】本発明を適用したコンピュータシステムの第三の実施形態の構成を示す図である。
【図１０】第３の実施形態の仮想アドレステーブルの構成を示す図である。
【図１１】第３の実施形態におけるコピー管理テーブルの例を示す図である。
【図１２】第３の実施形態においてコピー管理スイッチが複数ある構成例を示す図である。
【図１３】本発明を適用したコンピュータシステムの第４の実施形態の構成を示す図である。
【図１４】本発明を適用したコンピュータシステムの第５の実施形態の構成を示す図である。
【図１５】コピー管理スイッチの構成例を示す図である。
【図１６】第６の実施形態のコピー管理テーブルの構成を示す図である。
【図１７】第６の実施形態のキャッシュテーブルの構成を示す図である。
【図１８】第６の実施形態のアドレス変換処理のフローチャートである。
【図１９】第６の実施形態のキャッシュ処理のフローチャートである。
【符号の説明】
１０１…ストレージエリアネットワーク、１０２…スイッチ、１０３…コピー管理スイッチ、１０４…記憶装置、１０５…ホスト、１０６…管理端末。
【図１】
2005010969.tif 000003
【図２】
2005010969.tif 000004
【図３】
2005010969.tif 000005
【図４】
2005010969.tif 000006
【図５】
2005010969.tif 000007
【図６】
2005010969.tif 000008
【図７】
2005010969.tif 000009
【図８】
2005010969.tif 000010
【図９】
2005010969.tif 000011
【図１０】
2005010969.tif 000012
【図１１】
2005010969.tif 000013
【図１２】
2005010969.tif 000014
【図１３】
2005010969.tif 000015
【図１４】
2005010969.tif 000016
【図１５】
2005010969.tif 000017
【図１６】
2005010969.tif 000018
【図１７】
2005010969.tif 000019
【図１８】
2005010969.tif 000020
【図１９】
2005010969.tif 000021