(57)【要約】【課題】オンライン状態になっているデータ記憶領域に対してデータアクセスを行うのと同様の方法でそのデータ記憶領域とは別のデータ記憶領域に対してアクセスできるようにする。【解決手段】ディスクアレイ装置３が有する複数の論理ボリューム１１には、ホスト１に対してオンライン状態であるオンラインボリュームと、オフライン状態であるオフラインボリュームとが含まれる。ホスト１は、ターゲットボリューム１１Ｔを指すターゲット情報を含んだアクセスコマンド１９を、そのボリューム１１Ｔとは別の起動ボリューム１１Ｋに対するアクセスコマンドとしてディスクアレイ装置３に送信する。ディスクアレイ装置３は、起動ボリューム１１Ｋに対するアクセスコマンド１９を受信し、そのアクセスコマンド１９が持つターゲット情報に基づいて、ターゲットボリューム１１Ｔに対するデータアクセスをホスト１に提供する。【選択図】        図４
2005010997.tif 000002
【特許請求の範囲】
【請求項１】
記憶システムと、前記記憶システムと通信可能に接続されているホスト装置とを有するデータアクセスシステムにおいて、
前記記憶システムは、
前記ホスト装置に対してオンライン状態であるオンライン記憶領域を含む、物理的又は論理的な複数のデータ記憶領域と、
前記ホスト装置をして、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスすることを可能にせしめるアクセス制御手段と
を備えるデータアクセスシステム。
【請求項２】
前記ターゲット記憶領域は、前記ホスト装置に対しオフライン状態であるオフライン記憶領域である、
請求項１記載のデータアクセスシステム。
【請求項３】
前記ホスト装置は、前記ターゲット記憶領域を指すターゲット情報を含んだアクセス要求を、前記所望のオンライン記憶領域に対するアクセス要求として前記記憶システムに送信するアクセス要求手段を有し、
前記アクセス制御手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信し、そのアクセス要求が持つターゲット情報に基づいて、前記ターゲット記憶領域からデータをリードして前記ホスト装置に提供する、又は、前記ホスト装置からデータを受けて前記ターゲット記憶領域にライトする、
請求項１記載のデータアクセスシステム。
【請求項４】
請求項１記載のデータアクセスシステムにおいて、
前記アクセス制御手段は、
前記ホスト装置に対する通信インターフェースであるホスト通信手段と、
前記複数のデータ記憶領域に対してアクセスする記憶領域通信手段と、
前記データ記憶領域からリードされたリードデータ又は前記ホスト装置から受信したライトデータを前記ホスト通信手段と前記記憶領域通信手段との間で受け渡すためのキャッシュメモリと
備え、
前記キャッシュメモリには、前記リードデータ又は前記ライトデータを一時的に格納するための記憶領域であるキャッシュスロットが確保されるようになっていて、
前記キャッシュスロットは、一つのデータ記憶領域に対して専用に設けられるようになっており、
前記ホスト通信手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信した場合、前記所望のオンライン記憶領域に対してではなく、前記受信したアクセス要求が持つターゲット情報が指すターゲット記憶領域に専用のターゲット用キャッシュスロットを前記キャッシュメモリ上に確保し、それにより、前記ターゲット記憶領域から読み出されたリードデータ又は前記ターゲット記憶領域にライトするライトデータが前記確保したターゲット用キャッシュスロットに一時的に格納されるようにする、
データアクセスシステム。
【請求項５】
請求項１記載のデータアクセスシステムにおいて、
前記アクセス制御手段は、
前記ホスト装置に対する通信インターフェースであるホスト通信手段と、
前記複数のデータ記憶領域に対してアクセスする記憶領域通信手段と、
前記複数のデータ記憶領域へのアクセスを制御するためのアクセス制御テーブルと
を備えていて、
前記アクセス制御テーブルには、どのデータ記憶領域にアクセスするかのアクセス対象を記録することができるようになっており、
前記ホスト通信手段は、前記ホスト装置から前記アクセス要求を受信した場合、前記アクセス制御テーブルに、前記受信したアクセス要求が持つターゲット情報が指す前記ターゲット記憶領域を前記アクセス対象として登録し、
前記記憶領域通信手段は、前記アクセス制御テーブルに登録された前記アクセス対象に基づいて、前記ターゲット記憶領域からデータをリードしそのリードデータが前記ホスト通信手段から前記ホスト装置に送信されるようにする、又は、前記ホスト通信手段が前記ホスト装置から受信したライトデータを前記ターゲット記憶領域にライトする、
請求項１記載のデータアクセスシステム。
【請求項６】
請求項３記載のデータアクセスシステムにおいて、
前記ホスト装置が送信するアクセス要求には、第１のサブアクセス要求と、第２のサブアクセス要求とが含まれており、
前記第１のサブアクセス要求は、前記所望のオンライン記憶領域に対する要求であって、前記ターゲット情報を含んでおり、
前記第２のサブアクセス要求も、前記所望のオンライン記憶領域に対する要求であって、データのリードとライトのどちらを実行するのかを表すリード／ライト情報を含んでおり、
前記アクセス制御手段は、前記第２のアクセス要求の前に前記第１のサブアクセス要求を受信することにより、前記ターゲット情報に基づいてリード／ライト準備処理を行い、続いて、前記第２のサブアクセス要求を受信することにより、前記ターゲット情報が指すターゲット記憶領域に対するデータのリード又はライトを実行する、
データアクセスシステム。
【請求項７】
前記リード／ライト準備処理には、前記ホスト通信手段が前記キャッシュメモリ上に前記キャッシュスロットを確保することが含まれる、
請求項４及び６記載のデータアクセスシステム。
【請求項８】
請求項１記載のデータアクセスシステムにおいて、
前記記憶システムが、物理的な１又は複数の記憶装置上に、プライマリの論理的なデータ記憶領域であるプライマリ記憶領域と、セコンダリの論理的なデータ記憶領域であるセコンダリ記憶領域とのペアを用意し、前記プライマリ記憶領域と前記セコンダリ記憶領域の両方にデータをライトする二重化処理を行う場合、
前記所望のオンライン記憶領域は前記プライマリ記憶領域であり、
前記ターゲット記憶領域は前記セコンダリ記憶領域である、
データアクセスシステム。
【請求項９】
第１のホスト装置と第２のホスト装置が前記記憶システムに通信可能に接続されている場合、
前記第１のホスト装置にとっての前記ターゲット記憶領域には、前記第２のホスト装置に対してオンライン状態になっているデータ記憶領域が含まれている、請求項１記載のデータアクセスシステム。
【請求項１０】
請求項４記載のデータアクセスシステムにおいて、
第１のホスト装置と第２のホスト装置が前記記憶システムに通信可能に接続されている場合、
前記キャッシュメモリには、第１のホスト装置用のキャッシュ領域である第１ホスト用領域と第２のホスト装置用のキャッシュ領域である第２ホスト用領域とが用意されており、
前記第１のホスト装置にとっての前記ターゲット記憶領域には、前記第２のホスト装置に対してオンライン状態になっている第２ホストオンライン記憶領域が含まれており、
前記ホスト通信手段は、前記第１のホスト装置から、前記第２ホストオンライン記憶領域をターゲット記憶領域とするターゲット情報を持ったアクセス要求を受けたときは、前記キャッシュメモリ上の前記第２ホスト用領域内に、前記第２ホストオンライン記憶領域用の前記キャッシュスロットを確保する、
データアクセスシステム。
【請求項１１】
ホスト装置と通信接続可能な記憶システムにおいて、
前記ホスト装置に対してオンライン状態であるオンライン記憶領域を含む、物理的又は論理的な複数のデータ記憶領域と、
前記ホスト装置をして、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスすることを可能にせしめるアクセス制御手段と
を備える記憶システム。
【請求項１２】
物理的又は論理的な複数のデータ記憶領域を持つ記憶システムに対してホスト装置がデータアクセスするための方法において、
前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域が含まれている場合、
前記ホスト装置をして、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスすることを可能にせしめるステップを有する、
データアクセス方法。
【請求項１３】
物理的又は論理的な複数のデータ記憶領域を持つ記憶システムに対して通信可能に接続することができるホスト装置において、
前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域が含まれている場合、
所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスする手段を備えるホスト装置。
【請求項１４】
請求項１３記載のホスト装置において、
各データ記憶領域がオンライン状態であるか、或いは、前記ホスト装置に対しオフライン状態であるかを示すオンライン／オフライン識別情報と、
前記オンライン／オフライン識別情報に基づいて各データ記憶領域がオンライン状態であるかオフライン状態であるかを識別し、オンライン状態のときには前記アクセス要求手段を実行するようにし、オフライン状態のときにはエラーを出力する制御手段と、
前記ターゲット記憶領域がオフライン記憶領域の場合には、前記制御手段に対してそのターゲット記憶領域をオンライン状態であると識別させるべく、そのターゲット記憶領域の状態をオンライン状態とするように前記オンライン／オフライン識別情報を更新する情報更新手段と
を備え、
前記制御手段が、前記情報更新手段によって更新された後の前記オンライン／オフライン識別情報に基づいて動作するようになっている、
ホスト装置。
【請求項１５】
物理的又は論理的な複数のデータ記憶領域を持つ記憶システムに対して通信可能に接続することができるホスト装置として動作するためのコンピュータプログラムにおいて、
前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域が含まれている場合、
所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスするステップをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ記憶領域に対するデータアクセスのための技術に関し、具体的には、例えば、アレイ状に配設された多数のディスク型記憶装置上に用意された論理ボリュームからデータをリードする又はその論理ボリュームにデータをライトするための技術に関する。
【０００２】
【従来の技術】
例えば、大容量のデータを取り扱う基幹業務用のデータベースシステムでは、ホストコンピュータ（以下、単に「ホスト」と言う）とは別体に構成された記憶システムを用いてデータが管理されている。この記憶システムは、例えば、ディスクアレイ装置とも呼ばれ、多数のディスク型記憶装置をアレイ状に配設して構成されているＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）である。
【０００３】
この記憶システムには、例えば次のようなものがある。
【０００４】
すなわち、その記憶システムは、ホストからリード／ライトコマンドを受けることができ、また、仮想的な記憶領域として仮想ディスクを持つことができる。記憶システムは、ホストからライトコマンドを受けたときは、その仮想ディスクが制御ボリュームとして定義されていれば、ミラーリングを行ない、その仮想ディスクが制御ボリュームとして定義されていなければ、通常のリード又はライトのための動作を行なう（例えば特許文献１）。
【０００５】
【特許文献１】
特開２０００−１１２６６６号公報。
【０００６】
【発明が解決しようとする課題】
ところで、例えば、記憶システムには、仮想的な記憶領域である論理ボリュームを複数個用意することができるものがあり、ホストのオペレーティングシステム（以下、「ホストＯＳ」と言う）には、記憶システム上の各論理ボリューム毎にその論理ボリュームがオンライン状態かオフライン状態かを管理するものがある。そのホストＯＳは、同ホストのアプリケーションプログラム（以下、「ホストＡＰ」と言う）から、所定の又はユーザ所望の論理ボリューム（以下、「ターゲットボリューム」と言う）に対するデータの書込み又は読出し処理（以下、「Ｉ／Ｏ処理」と言う）の要求を受けたときは、そのターゲットボリュームがオンライン状態になっているか否かをチェックし、オンライン状態になっていれば、記憶システムに対してそのターゲットボリュームに対するＩ／Ｏ処理要求を送信し、オフライン状態であれば、ホストＡＰにエラーを返答する。すなわち、ホストＯＳは、ターゲットボリュームに対してオンライン状態になっていなければ、そのターゲットボリュームに対してデータの読出し又は書込みを行なうことができない。
【０００７】
しかし、ユーザは、オフライン状態になっているターゲットボリュームに対してデータの読出し又は書込みを行ないたい場合がある。
【０００８】
具体的には、例えば、記憶システムでは、記憶装置内のディスクの故障に起因してデータが損失等してもシステムが停止することがないようにするために二重化処理（いわゆるミラーリング処理）が行われることがある。この処理では、記憶システムは、正ボリュームと副ボリュームという２つの論理ボリュームを有し、ホストからデータの書込み要求を受けたときは、書込み要求されたデータ（以下、「ライトデータ」と言う）を複製して、正ボリュームと副ボリュームの両方に同一のライトデータを書込む。
【０００９】
このような二重化処理において、正ボリュームと副ボリュームは、一般に、ペア状態で管理されていて、同じボリュームラベル（例えばボリューム名）を持っている。そのため、ホストＯＳは、ペア状態で管理されている正ボリュームと副ボリュームを別々のボリュームとして区別することはできない。故に、二重化処理では、一方の論理ボリューム、例えば、正ボリュームが強制的にオンライン状態となり、副ボリュームがオフライン状態となり、ホストＯＳは、正ボリュームに対してのみオンライン状態になる。
【００１０】
しかし、ユーザは、ホストＡＰを操作し副ボリュームに対してＩ／Ｏ処理を行いたい場合がある。そのためには、ユーザは、副ボリュームのボリュームラベルを正ボリュームのそれと違えることにより副ボリュームを正ボリュームから切り離し、更に、その後、ホストを再起動することにより、ホストＯＳに対して副ボリュームを認識させるようにする。すなわち、ユーザは、手動で、副ボリュームを正ボリュームから切り離し、副ボリュームをホストＯＳとの間でオンライン状態にする必要がある。
【００１１】
このように、オフライン状態になっている論理ボリュームに対してデータの読出し又は書込みを行なうためには、ユーザにとって面倒な処理が必要になる。
【００１２】
また、例えばホストＯＳによっては、ユーザが上述のような作業を行なっても、オフライン状態になっている論理ボリュームをオンライン状態にすることができない場合もある。
【００１３】
更に、例えば二重化処理において、ホストＯＳに対してオフライン状態である副ボリュームをオンライン状態にするためには、その副ボリュームを正ボリュームから切り離す必要があるが、副ボリュームが正ボリュームから切り離されている間は、二重化処理が行われないので、万一ライトデータの損失があった場合には対応が困難である。
【００１４】
以上のような問題点は、仮想的な記憶領域である論理ボリュームに限らず、物理的な記憶領域についても存在し得るものである。
【００１５】
従って、本発明の目的は、オンライン状態になっている物理的又は論理的なデータ記憶領域に対してデータアクセスを行うのと同様の方法でそのデータ記憶領域とは別のデータ記憶領域、例えばホストに対してオフライン状態になっているデータ記憶領域に対してデータアクセスを行うことができるようにすることにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【００１６】
【課題を解決するための手段】
本発明に従うデータアクセスシステムは、記憶システムと、前記記憶システムと通信可能に接続されているホスト装置とを有するシステムであって、前記記憶システムは、前記ホスト装置に対してオンライン状態であるオンライン記憶領域を含む、物理的又は論理的な複数のデータ記憶領域と、前記ホスト装置をして、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスすることを可能にせしめるアクセス制御手段とを備える。
【００１７】
なお、ここで言う「ターゲット記憶領域」には、ホスト装置に対してオフライン状態であるデータ記憶領域が含まれても良いし、或いは、ホスト装置に対する複数のオンライン記憶領域のうちの前記所望のオンライン記憶領域以外のオンライン記憶領域（すなわち、アクセス要求の発行先となっていない他のオンライン記憶領域）が含まれても良い。
【００１８】
このデータアクセスシステムによれば、ターゲット記憶領域がオンライン状態か否かに関わらず、そのターゲット記憶領域を指すターゲット情報を含んだアクセス要求を、そのターゲット記憶領域とは別の所望のオンライン記憶領域に対して送信することができる。すなわち、ユーザは、オンライン状態である所望のデータ記憶領域に対してデータアクセスを行うのと同様の方法でそのデータ記憶領域とは別のデータ記憶領域に対してデータアクセスを行なうことができる。
【００１９】
第１の好適な実施形態では、前記ターゲット記憶領域は、前記ホスト装置に対しオフライン状態であるオフライン記憶領域である。これにより、ユーザは、オンライン状態である所望のデータ記憶領域に対してデータアクセスを行うのと同様の方法で所望のオンライン状態のデータ記憶領域に対してデータアクセスを行なうことができる。
【００２０】
第２の好適な実施形態では、前記ホスト装置は、前記ターゲット記憶領域を指すターゲット情報を含んだアクセス要求を、前記所望のオンライン記憶領域に対するアクセス要求として前記記憶システムに送信するアクセス要求手段を有し、前記アクセス制御手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信し、そのアクセス要求が持つターゲット情報に基づいて、前記ターゲット記憶領域からデータをリードして前記ホスト装置に提供する、又は、前記ホスト装置からデータを受けて前記ターゲット記憶領域にライトする。
【００２１】
第３の好適な実施形態では、前記アクセス制御手段は、前記ホスト装置に対する通信インターフェースであるホスト通信手段と、前記複数のデータ記憶領域に対してアクセスする記憶領域通信手段と、前記データ記憶領域からリードされたリードデータ又は前記ホスト装置から受信したライトデータを前記ホスト通信手段と前記記憶領域通信手段との間で受け渡すためのキャッシュメモリと備える。前記キャッシュメモリには、前記リードデータ又は前記ライトデータを一時的に格納するための記憶領域であるキャッシュスロットが確保されるようになっている。前記キャッシュスロットは、一つのデータ記憶領域に対して専用に設けられるようになっている。前記ホスト通信手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信した場合、前記所望のオンライン記憶領域に対してではなく、前記受信したアクセス要求が持つターゲット情報が指すターゲット記憶領域に専用のターゲット用キャッシュスロットを前記キャッシュメモリ上に確保し、それにより、前記ターゲット記憶領域から読み出されたリードデータ又は前記ターゲット記憶領域にライトするライトデータが前記確保したターゲット用キャッシュスロットに一時的に格納されるようにする。
【００２２】
第４の好適な実施形態では、前記アクセス制御手段は、前記ホスト装置に対する通信インターフェースであるホスト通信手段と、前記複数のデータ記憶領域に対してアクセスする記憶領域通信手段と、前記複数のデータ記憶領域へのアクセスを制御するためのアクセス制御テーブルとを備えている。前記アクセス制御テーブルには、どのデータ記憶領域にアクセスするかのアクセス対象情報を記録することができるようになっており、前記ホスト通信手段は、前記ホスト装置から前記アクセス要求を受信した場合、前記アクセス制御テーブルに、前記受信したアクセス要求が持つターゲット情報が指す前記ターゲット記憶領域をアクセス対象としたアクセス対象情報を登録し、前記記憶領域通信手段は、前記アクセス制御テーブルに登録された前記アクセス対象に基づいて、前記ターゲット記憶領域からデータをリードしそのリードデータが前記ホスト通信手段から前記ホスト装置に送信されるようにする、又は、前記ホスト通信手段が前記ホスト装置から受信したライトデータを前記ターゲット記憶領域にライトする。
【００２３】
より詳細には、例えば、前記アクセス制御手段は、前記複数のデータ記憶領域に対してそれぞれ用意される複数のアクセス制御テーブルを備えている。各データ記憶領域の前記アクセス制御テーブルには、そのデータ記憶領域のどこにアクセスするかのアクセスアドレスを記録することができるようになっている。前記ホスト通信手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信した場合、前記所望のオンライン記憶領域のアクセス制御テーブルに、前記受信したアクセス要求が持つターゲット情報が指す前記ターゲット記憶領域を識別するためのターゲット領域識別情報を前記アクセスアドレスとして登録し、且つ、前記ターゲット記憶領域の前記アクセス制御テーブルに、前記ターゲット情報に基づいて前記ターゲット記憶領域の前記アクセスアドレスであるターゲットアクセスアドレスを登録する。前記記憶領域通信手段は、前記所望のオンライン記憶領域の前記アクセス制御テーブルに登録された前記ターゲット領域識別情報から前記ターゲット記憶領域を識別して、そのターゲット記憶領域のアクセス制御テーブルを参照し、そのアクセス制御テーブルに登録されている前記ターゲットアクセスアドレスからデータをリードしそのリードデータが前記ホスト通信手段から前記ホスト装置に送信されるようにする、又は、前記ホスト通信手段が前記ホスト装置から受信したライトデータを前記ターゲットアクセスアドレスにライトする。
【００２４】
更に詳細には、例えば、前記アクセス制御手段は、前記データ記憶領域からリードされたリードデータ又は前記ホスト装置から受信したライトデータを前記ホスト通信手段と前記記憶領域通信手段との間で受け渡すためのキャッシュメモリを更に備える。前記キャッシュメモリには、前記リードデータ又は前記ライトデータを一時的に格納するための記憶領域であるキャッシュスロットが確保されるようになっている。前記キャッシュスロットは、一つのデータ記憶領域に対して専用に設けられるようになっている。各データ記憶領域の前記アクセス制御テーブルには、更に、そのデータ記憶領域に専用に設けられた前記キャッシュスロットを特定するためのキャッシュポインタが記録されるようになっている。前記ホスト通信手段は、前記ホスト装置から前記所望のオンライン記憶領域に対するアクセス要求を受信した場合、前記所望のオンライン記憶領域に対してではなく、前記受信したアクセス要求が持つターゲット情報が指すターゲット記憶領域に専用のターゲット用キャッシュスロットを前記キャッシュメモリ上に確保して、前記確保したターゲット用キャッシュスロットのキャッシュポインタであるターゲット用キャッシュポインタも前記アクセス制御テーブルに登録し、そのターゲット用キャッシュポインタからリードデータを読み出して前記ホスト装置に送信する、又は、前記ホスト装置からのライトデータを前記ターゲット用キャッシュポインタに格納する。前記記憶領域通信手段は、前記ターゲット記憶領域のアクセス制御テーブルを参照してそのターゲット記憶領域のターゲット用アクセスポインタ及びターゲット用キャッシュポインタを特定し、前記特定されたターゲット用アクセスポインタからデータをリードしそのリードデータを前記特定されたターゲット用キャッシュポインタに格納する、又は、前記ホスト通信手段によって前記ターゲット用キャッシュポインタに格納された前記ライトデータを前記ターゲット用キャッシュポインタから読み出して前記ターゲット用アクセスポインタにライトする。
【００２５】
第５の好適な実施形態では、前記ホスト装置が送信するアクセス要求には、第１のサブアクセス要求と、第２のサブアクセス要求とが含まれている。前記第１のサブアクセス要求は、前記所望のオンライン記憶領域に対する要求であって、前記ターゲット情報を含んでいる（更に、前記所望のオンライン記憶領域とそれとは別のデータ記憶領域のどちらに対してデータのリード又はライトを行なうかを表すアクセス種別を含んでいても良い）。前記第２のサブアクセス要求も、前記所望のオンライン記憶領域に対する要求であって、データのリードとライトのどちらを実行するのかを表すリード／ライト情報を含んでいる。前記アクセス制御手段は、前記第２のアクセス要求の前に前記第１のサブアクセス要求を受信することにより、前記ターゲット情報に基づいてリード／ライト準備処理を行い、続いて、前記第２のサブアクセス要求を受信することにより、前記ターゲット情報が指す前記ターゲット記憶領域に対するデータのリード又はライトを実行する。
【００２６】
第６の好適な実施形態では、第３及び第５の好適な実施形態において、前記リード／ライト準備処理には、前記ホスト通信手段が前記キャッシュメモリ上に前記キャッシュスロットを確保することが含まれる。
【００２７】
第７の好適な実施形態では、前記記憶システムが、物理的な１又は複数の記憶装置上に、プライマリの論理的なデータ記憶領域であるプライマリ記憶領域と、セコンダリの論理的なデータ記憶領域であるセコンダリ記憶領域とのペアを用意し、前記プライマリ記憶領域と前記セコンダリ記憶領域の両方にデータをライトする二重化処理を行う場合、前記所望のオンライン記憶領域は前記プライマリ記憶領域であり、前記ターゲット記憶領域（例えばオフライン記憶領域）は前記セコンダリ記憶領域である。
【００２８】
更に好適には、例えば、前記プライマリ記憶領域内の第１のデータと前記セコンダリ記憶領域内の第２のデータが互いに一致しない場合、前記記憶システムは、前記セコンダリ記憶領域から前記第２のデータをリードし、その第２のデータを前記プライマリ記憶領域内の前記第１のデータに上書きする手段を有する。この場合、例えば、前記ホスト装置は、前記セコンダリ記憶領域の前記第２のデータをアクセス対象とした第２データアクセス要求を前記プライマリ記憶領域に対するものとして前記記憶システムに送信し、前記記憶システムは、前記ホスト装置からの前記第２データアクセス要求に基づいて前記セコンダリ記憶領域から前記第２のデータをリードし、そのリードした第２のデータを前記プライマリ記憶領域の第１のデータに上書きする。
【００２９】
第８の好適な実施形態では、第１のホスト装置と第２のホスト装置が前記記憶システムに通信可能に接続されている場合、前記第１のホスト装置にとっての前記ターゲット記憶領域（例えばオフライン記憶領域）には、前記第２のホスト装置に対してオンライン状態であるデータ記憶領域が含まれている。
【００３０】
第９の好適な実施形態では、第３の好適な実施形態において、第１のホスト装置と第２のホスト装置が前記記憶システムに通信可能に接続されている場合、前記キャッシュメモリには、第１のホスト装置用のキャッシュ領域である第１ホスト用領域と第２のホスト装置用のキャッシュ領域である第２ホスト用領域とが用意されており、前記第１のホスト装置にとっての前記ターゲット記憶領域（例えばオフライン記憶領域）には、前記第２のホスト装置に対してオンライン状態である第２ホストオンライン記憶領域が含まれており、前記ホスト通信手段は、前記第１のホスト装置から、前記第２ホストオンライン記憶領域をターゲット記憶領域とするターゲット情報を持ったアクセス要求を受けたときは、前記キャッシュメモリ上の前記第２ホスト用領域内に、前記第２ホストオンライン記憶領域用の前記キャッシュスロットを確保する。
【００３１】
本発明に従う記憶システムは、通信接続可能なホスト装置に対してオンライン状態であるオンライン記憶領域を含む、物理的又は論理的な複数のデータ記憶領域と、前記ホスト装置をして、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスすることを可能にせしめるアクセス制御手段とを備える。
【００３２】
具体的には、例えば、記憶システムは、物理的又は論理的な複数のデータ記憶領域と、前記ホスト装置の各データ記憶領域に対するデータアクセスを制御するアクセス制御手段とを備えている。前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域と、前記ホスト装置に対しオフライン状態であるオフライン記憶領域とが含まれている場合、前記アクセス制御手段は、アクセスしたいターゲットのデータ記憶領域であるターゲット記憶領域を指すターゲット情報を含んだアクセス要求を、前記ターゲット記憶領域とは別の所望のオンライン記憶領域に対するアクセス要求として前記ホスト装置から受信し、そのアクセス要求が持つターゲット情報に基づいて、前記ターゲット記憶領域からデータをリードして前記ホスト装置に提供する、又は、前記ホスト装置からデータを受けて前記ターゲット記憶領域にライトする。
【００３３】
本発明に従うホスト装置は、物理的又は論理的な複数のデータ記憶領域を持つ記憶システムに対して通信可能に接続することができるホスト装置であって、前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域が含まれている場合、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスする手段を備える。具体的には、例えば、ホスト装置は、アクセスしたいターゲットのデータ記憶領域であるターゲット記憶領域を指すターゲット情報を含んだアクセス要求を、前記ターゲット記憶領域とは別の所望のオンライン記憶領域に対するアクセス要求として生成する要求生成手段と、前記生成したアクセス要求を前記記憶システムに送信するアクセス要求手段とを備える。
【００３４】
好適な実施形態では、ホスト装置は、更に、各データ記憶領域毎にそのデータ記憶領域がオンライン状態であるかオフライン状態であるかを示すオンライン／オフライン識別情報と、前記オンライン／オフライン識別情報に基づいて各データ記憶領域がオンライン状態であるかオフライン状態であるかを識別し、オンライン状態のときには前記アクセス要求手段を実行するようにし、オフライン状態のときにはエラーを出力する制御手段と、前記ターゲット記憶領域がオフライン記憶領域の場合には、そのターゲット記憶領域がオンライン状態であることを示すように前記オンライン／オフライン識別情報を更新する情報更新手段とを備える。この場合、前記制御手段が、前記情報更新手段によって更新された後の前記オンライン／オフライン識別情報に基づいて動作するようになっている。
【００３５】
この実施形態によれば、ターゲット記憶領域がオフライン記憶領域であっても、制御手段が参照するオンライン／オフライン識別情報では、そのターゲット記憶領域はオンライン記憶領域であると更新され、制御手段は、その更新後のオンライン／オフライン識別情報を参照するので、制御手段によってエラーが出力されることはない。
【００３６】
また、この実施形態によれば、例えば、ホスト装置のＯＳが、前記情報更新手段を有していないが故に上記のようにエラーを出力するようになっていても、そのＯＳに前記情報更新手段を組み込むことによりエラーが出力されないようにすることが可能になるので、既存のホスト装置のＯＳを簡単に設計変更するだけで、ホスト装置が、所望のオンライン記憶領域にデータアクセスするのと同様にオフライン記憶領域にアクセスすることができるようにすることが可能である。
【００３７】
本発明に従うコンピュータプログラム（又はそれを記録した記録媒体）は、物理的又は論理的な複数のデータ記憶領域を持つ記憶システムに対して通信可能に接続することができるホスト装置として動作するためのコンピュータプログラムにおいて、前記複数のデータ記憶領域には、前記ホスト装置に対してオンライン状態であるオンライン記憶領域が含まれている場合、所望の又は所定の前記オンライン記憶領域を介して、前記オンライン記憶領域とは別のデータ記憶領域であって、前記ホスト装置がアクセスしたいターゲットであるターゲット記憶領域にアクセスするステップをコンピュータに実行させるためのコンピュータプログラムである。
【００３８】
本発明のデータアクセスシステム、記憶システム及びホスト装置は、専用ハードウェア、プログラムされたコンピュータ、又はそれらの組合せのいずれによっても実現することができる。
【００３９】
【発明の実施の形態】
図１は、本発明の一実施形態に係るアクセスシステムの全体構成を示す。
【００４０】
このアクセスシステム１００には、ディスクアレイ装置（例えばＲＡＩＤ）３と、そのディスクアレイ装置３に通信可能に接続することができるホストシステム（以下、単に「ホスト」と言う）１とが備えられる（一つのホスト１に複数台のディスクアレイ装置３が接続されても良いし、一つのディスクアレイ装置３に複数台のホスト１が接続されても良い）。ディスクアレイ装置３は、アレイ状に配設された複数のディスク型記憶装置を有する１以上の物理ディスク群９を有し、それら物理ディスク群９により提供される物理的な記憶領域上には、論理的な記憶領域である複数の論理ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）１１が設定される。
【００４１】
ホスト１は、例えば、パーソナルコンピュータやワークステーション等であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ等を備えたコンピュータシステムである。ホスト１のＣＰＵが各種プログラムを実行することにより、種々の機能が実現される。ホスト１は、例えば、ＬＡＮ等の通信ネットワークを介してディスクアレイ装置３に接続される。
【００４２】
このホスト１は、図示のように、１又は複数のアプリケーションプログラム（以下、「ホストＡＰ」と言う）５と、オペレーティングシステム（以下、「ホストＯＳ」と言う）７とを有している。
【００４３】
ホストＡＰ５は、所定の又はユーザから指定された論理ボリューム（以下、「ターゲットボリューム」と言う）１１に対するデータの書込み処理又は読出し処理（以下、「Ｉ／Ｏ処理」と言う）の要求をホストＯＳ７に発行する。
【００４４】
ホストＯＳ７は、ホストＡＰ５からのＩ／Ｏ処理要求に応答して、ターゲットボリューム１１がオンライン状態であるか否かのチェックを行ない、その結果に応じた内容を持つデータ書込み／読出しコマンド（以下、「アクセスコマンド」と言う）を生成し、そのコマンドをディスクアレイ装置３に送信する。
【００４５】
ディスクアレイ装置３は、１又は複数のチャネル制御部１３と、キャッシュメモリ１５と、制御メモリ１７と、１以上の物理ディスク群９と、１以上のディスク制御部１９と、スイッチング制御部２１とを備えている。
【００４６】
１又は複数のチャネル制御部１３は、１又は複数のホスト１と通信可能に接続される。各チャネル制御部１３は、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができ、このディスクアレイ装置３とそれに接続されているホスト１との間のデータ通信を行う。各チャネル制御部１３は、接続されているホスト１と通信を行うための通信インターフェースを有し、また、ホスト１から受信した各種コマンドを解釈して処理するためのコマンドプロセッサ機能も有する。各チャネル制御部１３は、制御メモリ１７に登録されている情報を参照して、キャッシュメモリ１５に格納されているデータを読み出してホスト１に送信したり、ホスト１から受信した書込み対象のデータ（以下、「ライトデータ」と言う）をキャッシュメモリ１５に格納したりする。
【００４７】
キャッシュメモリ１５は、各チャネル制御部１３や各ディスク制御部１９により共有されるメモリである。キャッシュメモリ１５には、各チャネル制御部１３によって、１又は複数の仮想記憶領域（以下、「キャッシュスロット」と言う）を設定することができる。キャッシュスロットは、或る一つの論理ボリュームに対して設定される。具体的には、キャッシュスロットには、そのキャッシュスロットに対応している論理ボリュームにライトされるデータ、又は、その論理ボリュームからリードされたデータが一時的に格納される。
【００４８】
制御メモリ１７も、各チャネル制御部１３や各ディスク制御部１９により共有されるメモリである。制御メモリ１７には、１以上の物理ディスク群９上に用意される各論理ボリューム１１毎に制御テーブル（図示せず）が用意され、各制御テーブルには後述する所定の種々の情報が格納される。キャッシュメモリ１５上のキャッシュスロットや、各論理ボリューム１１に対するデータの読出しや書込みは、その論理ボリュームに対応した制御テーブルに記録されている所定の情報に基づいて行なわれる。
【００４９】
各物理ディスク群９は、複数のディスク型記憶装置をアレイ状に配設して構成されている。物理ディスク群９を構成するディスク型記憶装置としては、例えば、ハードディスク装置、フレキシブルディスク装置、半導体記憶装置等の種々のデバイスを用いることができる。１以上の物理ディスク群９により提供される物理的な記憶領域上には、前述したように、論理的な記憶領域である複数の論理ボリューム１１が設定される。
【００５０】
各ディスク制御部１９は、各物理ディスク群９毎に備えられており、その所定の物理ディスク群９を制御するものである。例えば、ディスク制御部１９は、制御メモリ１７上のターゲットボリューム１１の制御テーブルに基づいて、１以上の物理ディスク群９上のターゲットボリューム１１に対してデータの読出し又は書込みを行なう。また、ディスク制御部１９は、論理アドレスを物理アドレスに変換することにより、論理ボリューム１１に対するデータアクセス要求を物理ディスクへのデータアクセス要求に変換する。
【００５１】
スイッチング制御部２１は、例えば、高速スイッチング動作によりデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。スイッチング制御部２１は、各チャネル制御部１３と、各ディスク制御部１９と、制御メモリ１７と、キャッシュメモリ１５とを相互に通信可能に接続する。これらの各チャネル制御部１３と、各ディスク制御部１９と、制御メモリ１７と、キャッシュメモリ１５との間のデータやコマンドの授受は、スイッチング制御部２１を介して行われる。
【００５２】
以上が、この実施形態に係るアクセスシステム１００の概要である。なお、このアクセスシステム１００では、例えば、各ディスク制御部１９と各物理ディスク群９とは、直接的に接続してもよいし、ネットワークを介して間接的に接続してもよい。また、物理ディスク群９とディスク制御部１９とを一体的に構成しても良い。また、各チャネル制御部１３毎にそれぞれ１つの論理ボリューム１１が割り当てられても良いし、複数のチャネル制御部１３で１つの論理ボリューム１１が共有されても良い。
【００５３】
さて、以下、本実施形態に係るアクセスシステム１００をより詳細に説明する。
【００５４】
まず、ホスト１がディスクアレイ装置３に対して発行するアクセスコマンドについて説明する。
【００５５】
図２は、ホスト１が発行するアクセスコマンドを示す。
【００５６】
ホスト１がディスクアレイ装置３に対して発行するアクセスコマンド１９は、第１のサブコマンド１９Ａと、第２のサブコマンド１９Ｂとを含んでいる。
【００５７】
第１のサブコマンド１９Ａは、第２のサブコマンド１９Ｂよりも先に（例えば最初に）ホスト１からディスクアレイ装置３に送信されるパケットである。このサブコマンド１９Ａには、コマンド対象ボリュームＩＤ、第１アクセス種別コード、及びターゲット情報が含まれている。
【００５８】
「コマンド対象ボリュームＩＤ」とは、アクセスコマンド１９の発行先とする論理ボリュームの識別コードであり、この実施形態では、必ず、起動ボリュームのＩＤになる。「起動ボリューム」とは、ホスト１に対してオンライン状態である１又は複数の論理ボリューム（以下、「オンラインボリューム」と言う）の中からホスト１によって選択されたオンラインボリュームのことであり、アクセスコマンド１９の発行先となるものである（起動ボリュームは、所定の規則に基づいてホスト１又はディスクアレイ装置３によって自動的に選択されても良いし、ユーザが任意に選択しても良い）。
【００５９】
「第１アクセス種別コード」とは、ホスト１がどのような種別のアクセスを行ないたいかを示すコードである。第１のアクセス種別には、例えば、リード、ライト、リードコントロール及びライトコントロールの４種類がある（このような４種類に限定しなくても良い）。第１アクセス種別コードとして「リード」を示すコードが含まれている場合、起動ボリュームからデータをリードすることを意味する。同様に、第１のアクセス種別コードとして「ライト」を示すコードが含まれている場合、起動ボリュームにデータをライトすることを意味する。一方、「リードコントロール」を示すコードが含まれている場合、起動ボリュームとは別の論理ボリューム（例えば、起動ボリューム以外のオンラインボリューム、又は、ホスト１に対してオフライン状態である論理ボリュームであるオフラインボリューム）からデータをリードすることを意味する。また、「ライトコントロール」を示すコードが含まれている場合、起動ボリュームとは別の論理ボリュームにデータをライトすることを意味する。
【００６０】
「ターゲット情報」とは、ホスト１がリードしたいデータを持っている論理ボリューム又はホスト１がデータをライトしたい論理ボリューム（つまりターゲットボリューム）に関する情報である。具体的には、例えば、第１のサブコマンド１９Ａにおいて、アクセス種別コードがリード又はライトを示すコードである場合、ターゲット情報には、起動ボリュームのどこにアクセスするかのアクセス先を表すアドレス（以下、「アクセスアドレス」と言う）が含まれている。一方、第１のサブコマンド１９Ａにおいて、アクセス種別コードがリードコントロール又はライトコントロールを示すコードである場合、ターゲット情報には、起動ボリュームとは別の論理ボリュームのボリュームＩＤと、その別の論理ボリュームのどこにアクセスするかのアクセス先を表すアクセスアドレスとが含まれている。
【００６１】
第２のサブコマンド１９Ｂは、第１のサブコマンド１９Ａがホスト１からディスクアレイ装置３に送信された後、所定のタイミングで、ホスト１からディスクアレイ装置３に送信されるパケットである。このサブコマンド１９Ｂには、コマンド対象ボリュームＩＤ、第２アクセス種別コード、及び付属データが含まれている。
【００６２】
「コマンド対象ボリュームＩＤ」は、第１のサブコマンド１９Ａに含まれるコマンド対象ボリュームＩＤと同じである。すなわち、アクセスコマンド１９は、ホスト１が起動ボリュームにアクセスしたいのか或いは別の論理ボリュームにアクセスしたいのかに関わらず（換言すれば、ターゲットボリュームが起動ボリュームであるか或いは別の論理ボリュームであるかに関わらず）、起動ボリュームをコマンドの対象としているため、第１のサブコマンド１９Ａと同様に、このサブコマンド１９Ｂのコマンド対象ボリュームＩＤは、起動ボリュームのＩＤになる。
【００６３】
「第２アクセス種別コード」は、第１アクセス種別コードと異なり、リードとライトのいずれかを示すコードになる。すなわち、この第２アクセス種別コードとして「リード」を示すコードが含まれている場合、第１のサブコマンド１９Ａのターゲット情報から特定可能なターゲットボリューム（すなわち、起動ボリューム又は起動ボリュームとは別の論理ボリューム）からデータをリードすることを意味する。同様に、第２のサブコマンド１９Ｂにアクセス種別コードとして「ライト」を示すコードが含まれている場合、そのターゲットボリュームにデータをライトすることを意味する。
【００６４】
「付属データ」とは、第２のサブコマンド１９Ｂに付属するデータである。具体的には、例えば、付属データは、第２アクセス種別コードがライトを示すコードのときは、ホスト１がターゲットボリュームにライトしたいライトデータを含み、一方、第２アクセス種別コードがリードを示すコードのときは、ライトデータの代わりにヌルのデータを含む。
【００６５】
以上が、ホスト１がディスクアレイ装置３に対して発行するアクセスコマンドについての説明である（どのような流れでホスト１が第１及び第２のサブコマンド１９Ａ、１９Ｂを送信し、その第１及び第２のサブコマンド１９Ａ、１９Ｂに基づいてディスクアレイ装置３がどのような流れで動作するかについては後で詳述する）。
【００６６】
次に、ディスクアレイ装置３が有する制御メモリ１７上に用意される制御テーブルについて説明する。
【００６７】
図３は、制御メモリ１７に用意される制御テーブルを示す。
【００６８】
制御テーブル３１は、前述したように、各論理ボリューム１１毎に用意される。各制御テーブル３１には、ボリュームＩＤ、アクセス種別、アクセス対象情報、及びキャッシュポインタ等が記録される。
【００６９】
「ボリュームＩＤ」は、対応する論理ボリュームのＩＤである。各チャネル制御部１３及びディスク制御部１９は、このボリュームＩＤを参照することにより、どの制御テーブル３１がどの論理ボリューム１１に対応しているのかを認識することができる。
【００７０】
「アクセス種別」は、対応する論理ボリュームに対してどのような種別のアクセスが行なわれるのかを示すものである。具体的には、例えば、ターゲットボリュームが起動ボリュームの場合には、起動ボリュームの制御テーブル３１に、アクセス種別として、リード又はライトが登録される。一方、ターゲットボリュームが起動ボリュームとは別の論理ボリューム（以下、「別ボリューム」と略記する）の場合には、起動ボリュームの制御テーブル３１に、アクセス種別として、リードコントロール又はライトコントロールが登録され、別ボリュームの制御テーブル３１には、アクセス種別として、リード又はライトが登録される。
【００７１】
「アクセスアドレス」は、対応する論理ボリュームのどこにアクセスするかを表すアクセス先のアドレス（例えば論理アドレス）を示す。
【００７２】
「キャッシュポインタ」とは、対応する起動ボリュームに対してキャッシュメモリ１５上に専用に用意されたキャッシュスロットを指し示す情報である。各チャネル制御部１３及び各ディスク制御部１９は、各制御テーブル３１に登録されているキャッシュポインタを参照することにより、その制御テーブル３１に対応した論理ボリューム１１からリードしたデータ又はその論理ボリューム１１にライトするデータをどのキャッシュスロットに格納すれば良いのかを識別することができる。
【００７３】
以上が、制御テーブル３１についての説明である。
【００７４】
次に、本実施形態に係るデータアクセスシステムにおいて、ホスト１が起動ボリュームとは別の論理ボリュームをターゲットとしそこからデータをリードする場合の流れを簡単に説明する。なお、以下の説明では、ターゲットボリュームを、ホスト１に対してオフライン状態であるオフラインボリュームであるとする。
【００７５】
図４は、本実施形態に係るデータアクセスシステムにおいて、ホスト１が起動ボリュームとは別の論理ボリュームをターゲットとしそこからデータをリードする場合の流れを示す。
【００７６】
ホストＡＰ５は、所定の又はユーザから指定されたオフラインボリューム（つまりターゲットボリューム）１１Ｔから所定の又はユーザ指定のデータをリードする旨を表したＩ／Ｏ処理要求をホストＯＳ７に発行する。
【００７７】
ホストＯＳ７は、ホストＡＰ５からのＩ／Ｏ処理要求に応答して、オフラインボリューム１１を指すターゲット情報を持ったアクセスコマンド１９を生成し、それを起動ボリューム１１Ｋに対するコマンドとしてディスクアレイ装置３に送信する。
【００７８】
ホスト１と通信可能に接続されているチャネル制御部１３は、ホスト１から、起動ボリューム１１Ｋに対するアクセスコマンド１９を受信して、そのアクセスコマンド１９に含まれている第１アクセス種別コードを解析する。その結果、その第１アクセス種別コードが、起動ボリュームとは別の論理ボリュームからデータをリードするリードコントロールを意味している場合には、チャネル制御部１３は、次のように動作する。
【００７９】
すなわち、チャネル制御部１３は、キャッシュメモリ１５上にキャッシュスロット２１を確保するが、その際、アクセスコマンド１９が起動ボリューム１１Ｋに対するものであっても、ターゲットがオフラインボリューム１１Ｔなので、起動ボリューム１１Ｋに対してではなくオフラインボリューム１１Ｔに対してキャッシュスロット２１を確保する。そして、チャネル制御部１３は、アクセスコマンド１９に含まれているターゲット情報から特定できるオフラインボリューム１１Ｔの制御テーブル３１Ｔに、オフラインボリューム１１Ｔに対して確保したキャッシュスロット２１のキャッシュポイントを登録する（起動ボリューム１１Ｋの制御テーブル３１Ｋには、キャッシュポインタを登録しない）。また、チャネル制御部１３は、アクセスコマンド１９に含まれているターゲット情報から特定できるオフラインボリューム１１Ｔのアクセスアドレスも、制御テーブル３１Ｔに登録する。
【００８０】
各ディスク制御部１９は、例えば、自分が接続されている物理ディスク群９上に用意された論理ボリューム１１のＩＤを把握しており、その論理ボリューム１１の制御テーブル（以下、「対象制御テーブル」と言う）を常に監視している。その結果、各ディスク制御部１９は、対象制御テーブルに新たにキャッシュポインタ、アクセスアドレス及びアクセス種別等が登録されたら、そのアクセス種別に応じた処理を行う。
【００８１】
すなわち、この図４の例で言えば、オフラインボリューム１１Ｔが用意されている物理ディスク群９に対応したディスク制御部（以下、「担当ディスク制御部」と言う）１９は、制御テーブル３１Ｔに新たにキャッシュポインタ及びアクセスアドレス等が登録されたことを検出したならば、そのアクセスアドレス（すなわちオフラインボリューム１１Ｔにおけるアドレス）からデータをリードし、リードしたデータを（以下、「リードデータ」と言う）、制御テーブル３１Ｔに登録されているキャッシュポインタから識別できるキャッシュスロット２１に格納する。
【００８２】
チャネル制御部１３は、所定の方法（例えば、上記確保したキャッシュスロット２１を監視する方法）でキャッシュスロット２１にリードデータが格納されたことを検出したら、そのリードデータをキャッシュスロット２１から読出してホスト１に送信する。
【００８３】
このような流れにより、ホスト１は、起動ボリューム１１Ｋに対するアクセスコマンド１９をディスクアレイ装置３に送信しても、起動ボリューム１１Ｋとは別の論理ボリューム（例えばオフラインボリューム１１Ｔ）からデータをリードすることができる。
【００８４】
なお、ホスト１及びディスクアレイ装置３についての動作については後で更に詳細に説明するので、ここでは詳しくは説明しないが、図４を参照した上記説明から、別ボリュームにデータをライトする場合の動作も理解することができる。
【００８５】
すなわち、チャネル制御部１３は、ターゲットボリューム１１Ｔに対してキャッシュスロット２１を確保してそれのキャッシュスロットを制御テーブル３１Ｔに登録し、且つ、そのキャッシュスロット２１に、ホスト１からのライトデータを格納する。担当ディスク制御部１９は、制御テーブル３１Ｔに登録されているキャッシュポインタからライトデータがあるキャッシュスロット２１を識別し、そのキャッシュスロット２１から、ライトデータを読み出して、そのライトデータを、制御テーブル３１Ｔに登録されているアクセスアドレスにライトする。
【００８６】
上記のことをより抽象的に表現すれば、例えば、ディスクアレイ装置３は、ホスト１をして、所望の又は所定のオンラインボリューム（すなわち起動ボリューム）１１Ｋを介して、そのオンラインボリューム１１Ｋとは別の論理ボリュームであって、ホスト１がアクセスしたいターゲットであるターゲットボリューム１１Ｔにアクセスすることを可能にせしめる。別の観点から言えば、例えば、ホスト１は、ディスクアレイ装置３が有する複数の論理ボリュームのうちの所望の又は所定のオンラインボリューム１１Ｋを介して、そのオンラインボリューム１１Ｋとは別の論理ボリュームであるターゲットボリューム１１Ｔにアクセスする。
【００８７】
さて、以下、ホスト１及びディスクアレイ装置３の動作について更に詳細に説明する。
【００８８】
図５は、ホストＯＳ７の動作流れを示す。
【００８９】
まず、動作を説明する前に、ホストＯＳ７が管理している２種類の情報について説明する。
【００９０】
ホストＯＳ７は、各論理ボリューム１１毎に、オンラインビットとオープンビットを管理している。
【００９１】
「オンラインビット」とは、対応する論理ボリュームがホスト１に対してオンライン状態か否かを表すものである。このオンラインビットがセットされていれば（例えば「１」であれば）、対応する論理ボリュームがオンライン状態であることを示し、セットされていなければ（例えば「０」であれば）、その論理ボリュームがオフライン状態であることを示す。ホストＯＳ７は、任意のタイミングで、各論理ボリュームがオンライン状態かオフライン状態かを監視し、その監視結果に応じて、各論理ボリュームのオンラインビットをセットしたり、或いは、セットされているオンラインビットをはずしたりする（例えば「１」から「０」にしたりする）。
【００９２】
「オープンビット」とは、対応する論理ボリュームに対し、Ｉ／Ｏ処理を要求するホストＡＰ５以外の他のホストＡＰ（図示せず）がアクセスしてはならないか否かをホストＯＳ７に対して示すものである。このオープンビットがセットされていれば（例えば「１」であれば）、対応する論理ボリュームに、Ｉ／Ｏ処理を要求するホストＡＰ５以外の他のホストＡＰ（図示せず）がアクセスさせてはならないことをホストＯＳ７に対して示し（つまり排他処理実行中であることを示し）、セットされていなければ（例えば「０」であれば）、その論理ボリュームにどのホストＡＰ５がアクセスしても良いこと（つまり排他処理が行われていないこと）を示す。
【００９３】
次に、このようなオンラインビット及びオープンビットを管理するホストＯＳ７がどのような流れで動作するのかを説明する。
【００９４】
ホストＯＳ７は、ホストＡＰ５から、ターゲットボリューム１１Ｔの通知と共に、そのターゲットボリューム１１Ｔに対してＩ／Ｏ処理を行うことのＩ／Ｏ処理要求を受ける（ステップＳ１１）。
【００９５】
ホストＯＳ７は、ホストＡＰ５からのＩ／Ｏ処理要求に応答して、ターゲットボリューム１１Ｔに対してオープン処理を行うことを開始する（Ｓ１２）。この「オープン処理」とは、ターゲットボリューム１１Ｔに対して他のホストＡＰ（図示せず）がアクセスしないようにする排他処理のことである。
【００９６】
まず、ホストＯＳ７は、ターゲットボリューム１１Ｔにオンラインビットがセットされているか否かに関わらず、ターゲットボリューム１１Ｔのオンラインビットをセットする（Ｓ１３）。
【００９７】
次に、ホストＯＳ７は、ターゲットボリューム１１Ｔにオンラインビットがセットされているか否かを確認する（Ｓ１４）。ここで、ホストＯＳ７は、Ｓ１３でオンラインビットがセットされたので、オンラインビットがセットされていることを検出し（Ｓ１４でＹＥＳ）、そのターゲットボリューム１１Ｔに対してオープンビットをセットする（Ｓ１６）。そして、ホストＯＳ７は、そのターゲットボリューム１１Ｔを起動ボリューム１１Ｋとする、或いは、そのターゲットボリューム１１Ｔとは別のオンラインボリュームを起動ボリューム１１Ｋとするアクセスコマンド１９（厳密に言うと、この段階では第１のサブコマンド１９Ａ）を生成してディスクアレイ装置３に送信する。
【００９８】
以上が、ホストＯＳ７の動作流れである。
【００９９】
なお、上記流れにおいて、ホストＯＳ７は、もし、Ｓ１４の結果、オンラインビットがセットされていないことを検出したならば（Ｓ１４でＮＯ）、ターゲットボリューム１１Ｔがオフラインボリュームということであり、エラーをホストＡＰ５に通知するようになっている（Ｓ１５）。しかし、前述した工夫、すなわち、ターゲットボリューム１１Ｔにオンラインビットがセットされているか否かを確認する処理（Ｓ１４の処理）の前に、ターゲットボリューム１１Ｔにオンラインビットがセットされているか否かに関わらずターゲットボリューム１１Ｔのオンラインビットをセットする処理（Ｓ１３の処理）を行うという工夫がホストＯＳ７に施されていることにより、ターゲットボリューム１１Ｔがオフラインボリュームであっても、ホストＯＳ７からホストＡＰ５にエラーが通知されること無く、ターゲットボリューム１１Ｔがオンラインボリュームであるときと同様に、ホストＯＳ７からディスクアレイ装置３にアクセスコマンド１９が送信される。
【０１００】
また、上述のＳ１２〜Ｓ１６の処理は、マクロによって行なわれても良い。従って、Ｓ１４の処理の前に、ターゲットボリューム１１Ｔにオンラインビットがセットされているか否かに関わらず強制的にターゲットボリューム１１Ｔのオンラインビットをセットする処理（Ｓ１３の処理）を行なうようになったマクロをホストＯＳ７に搭載すれば、ホストＯＳ７は前述した図５の動作を実行することができる。また、ホストＯＳ７に既に搭載されているマクロが、Ｓ１２の処理の後、Ｓ１３の処理を行わずにＳ１４の処理を行うようになっていても、Ｓ１２の処理とＳ１４の処理との間にＳ１３の処理を入れ込むことで、前述したＳ１２〜Ｓ１６の動作を行なうことができるマクロに変更することができる。
【０１０１】
また、図５の処理は、ターゲットボリューム１１Ｔがオフラインボリュームの場合にのみ行なわれるようにしても良い。具体的には、例えば、Ｓ１２において、ホストＯＳ７は、一次的にターゲットボリューム１１Ｔにオンラインビットがセットされているか否かを確認し、その結果、オンラインビットがセットされていないときにのみ、Ｓ１３の処理を行い、オンラインビットが既にセットされているときは（つまりターゲットボリューム１１Ｔがオンラインボリュームの場合には）、Ｓ１３の処理を省略してＳ１４の処理（二次的にターゲットボリューム１１Ｔにオンラインビットがセットされているか否かを確認する処理）を行っても良い。
【０１０２】
また、図示しないが、ホストＯＳ７は、第１のサブコマンド１９Ａを送信した後、任意のタイミングで（例えば、ディスクアレイ装置３から所定内容の返答を受けたときに）、第２のサブコマンド１９Ｂを生成し送信することができる。具体的には、例えば、ホストＯＳ７は、送信した第１のサブコマンド１９Ａに含まれる第１アクセス種別コードが、リード又はリードコントロールを示すコードであれば、リードを示す第２アクセス種別コードを持った第２のサブコマンド１９Ｂを生成し送信し、一方、上記第１アクセス種別コードがライト又はライトコントロールを示すコードであれば、ライトを示す第２アクセス種別コードを持った第２のサブコマンド１９Ｂを生成し送信する。
【０１０３】
図６〜図１０は、ディスクアレイ装置３の動作流れを示す。具体的には、図６は、ホスト１から第１のサブコマンド１９Ａを受信したときのディスクアレイ装置３の動作流れを示し、図７〜図１０は、ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを示す。
【０１０４】
まず、図６を参照して、ホスト１から第１のサブコマンド１９Ａを受信したときのディスクアレイ装置３の動作流れを説明する。
【０１０５】
図６に示すように、ディスクアレイ装置３のチャネル制御部１３は、ホスト１から第１のサブコマンド１９Ａを受信した場合（Ｓ２１）、そのサブコマンド１９Ａに含まれているコマンド対象ボリュームＩＤから起動ボリューム１１Ｋを特定すると共に、そのサブコマンド１９Ａに含まれている第１アクセス種別コードを解析する（Ｓ２２）。
【０１０６】
Ｓ２２の結果、第１アクセス種別コードがリード又はライトを示している場合、ターゲットが起動ボリューム１１Ｋであることを意味するので、チャネル制御部１３は、上記特定された起動ボリューム１１ＫのＩＤを持つ制御テーブル（以下、「起動制御テーブル」と言う）３１Ｋに、アクセス種別としてリード又はライトを登録し、且つ、起動ボリューム１１Ｋのアクセスアドレスを登録する（Ｓ２３）。そして、チャネル制御部１３は、第１のサブコマンド１９Ａについての処理が完了した旨を表すコマンド処理終了をホスト１に返答する（Ｓ２６）。
【０１０７】
一方、Ｓ２２の結果、第１アクセス種別コードがリードコントロール又はライトコントロールを示している場合、ターゲットは起動ボリューム１１Ｋとは別のボリューム（例えばオフラインボリューム）１１Ｔであることを意味するので、チャネル制御部１３は、起動制御テーブル３１Ｋに、アクセス種別としてリードコントロール又はライトコントロールを登録し、且つ、受信したサブコマンド１１Ａに含まれるターゲット情報が示すターゲットボリューム１１ＴのボリュームＩＤを、制御テーブル３１Ｋに登録する（Ｓ２４）。また、チャネル制御部１３は、ターゲットボリューム１１Ｔの制御テーブル（以下、「ターゲット制御テーブル」と言う）３１Ｔに、アクセス種別としてリード又はライトを登録し、且つ、ターゲットボリューム１１Ｔのアクセスアドレスを登録する（Ｓ２５）。それが完了したら、チャネル制御部１３は、上述したコマンド処理終了をホスト１に返答する（Ｓ２６）。
【０１０８】
ホストＯＳ７は、チャネル制御部１３からコマンド処理終了の返答を受けたら、第２のサブコマンド１９Ｂを生成し送信する。このとき送信されるサブコマンド１９Ｂに含まれる第２アクセス種別コードは、前述したように、先に送信した第１のサブコマンド１９Ａに含まれる第１アクセス種別コードがリード又はリードコントロールを示すコードのときは、リードを示すコードであり、上記第１アクセス種別コードがライト又はライトコントロールを示すコードのときは、ライトを示すコードである。
【０１０９】
さて、次に、図７〜１０を参照して、ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを説明する。なお、その際、説明を分かり易くするために、以下の４つの場合、
（１）起動ボリューム１１Ｋからデータをリードする場合（換言すれば、先に受信した第１のサブコマンド１９Ａが持つ第１アクセス種別コードがリードを示す場合、以下、「通常リードの場合」と言う）、
（２）起動ボリューム１１Ｋとは別のボリューム１１Ｔからデータをリードする場合（換言すれば、先に受信した第１のサブコマンド１９Ａが持つ第１アクセス種別コードがリードコントロールを示す場合、以下、単に「リードコントロールの場合」と言う）、
（３）起動ボリューム１１Ｋとは別のボリューム１１Ｔにデータをライトする場合（換言すれば、先に受信した第１のサブコマンド１９Ａが持つ第１アクセス種別コードがライトコントロールを示す場合、以下、単に「ライトコントロールの場合」と言う）、
（４）起動ボリューム１１Ｋにデータをライトする場合（換言すれば、先に受信した第１のサブコマンド１９Ａが持つ第１アクセス種別コードがライトを示す場合、以下、「通常ライトの場合」と言う）、
に分けて説明する。
【０１１０】
（１）通常リードの場合。
【０１１１】
図７に示すように、チャネル制御部１３は、ホスト１から第２のサブコマンド１９Ｂを受信すると（Ｓ３１）、そのサブコマンド１９Ｂに含まれているコマンド対象ボリュームＩＤから起動ボリューム１１Ｋを特定すると共に、そのサブコマンド１９Ｂに含まれている第２アクセス種別コードを解析する（Ｓ３２）。
【０１１２】
Ｓ３２の結果、チャネル制御部１３は、第２アクセス種別コードがリードを示しているときは、第２のサブコマンド１９Ｂの対象となっている起動ボリューム１１Ｋの制御テーブル３１Ｋを参照して、アクセス種別としてリードとリードコントロールのどちらが登録されているかを調べる（Ｓ３３）。
【０１１３】
Ｓ３３の結果、リードが登録されていれば、チャネル制御部１３は、起動制御テーブル３１Ｋにキャッシュポインタが登録されているか否か（以下、これを「キャッシュヒットしたか否か」と言う）を確認する（Ｓ３４）。
【０１１４】
Ｓ３４の結果、キャッシュヒットしなければ（Ｓ３５でＮ）、チャネル制御部１３は、キャッシュメモリ１５上に起動ボリューム１１Ｋに専用のキャッシュスロット２１を確保し、そのキャッシュスロット２１のキャッシュポインタを起動制御テーブル３１Ｋに登録する（Ｓ３６）。その後、チャネル制御部１３は、ホスト１に切り離し要求（具体的には、例えば、複数の通信チャネルのうちの所定の通信チャネルを切断する要求）をする（Ｓ３７）。それにより、ホスト１によって、ホスト１とディスクアレイ装置３との間で切り離しが行なわれる。
【０１１５】
Ｓ３７の後、図８に示すように、起動ボリューム１１Ｋが用意されている物理ディスク群９に対応のディスク制御部１９が、起動制御テーブル３１Ｋにキャッシュポインタ等が新たに登録されたことを検出したら、その起動制御テーブル３１Ｋに登録されているアクセスアドレス（つまり起動ボリューム１１Ｋのアクセスアドレス）からデータをリードし、そのリードデータを、起動制御テーブル３１Ｋに登録されているキャッシュポインタが示すキャッシュポインタ２１に格納する（Ｓ４４）。そして、そのディスク制御部１９は、起動ボリューム１１Ｋのキャッシュスロット２１にリードデータを格納したことを意味するデータ準備完了をチャネル制御部１３に通知する（Ｓ４５）。なお、どのチャネル制御部１３に通知するかは、例えば、起動制御テーブル３１Ｋにキャッシュポインタ等を登録するチャネル制御部１３が自分の識別コードも一緒に登録し、ディスク制御部１９は、その識別コードから、上記データ準備完了の通知先とするチャネル制御部１３を識別することができる。
【０１１６】
チャネル制御部１３は、ディスク制御部１９からデータ準備完了の通知を受けたときは、図７のＳ３７で切り離しを要求したホスト１に対し再接続を要求する（Ｓ４６）。
【０１１７】
ホストＯＳ７は、チャネル制御部１３から再接続の要求を受けたときは、ディスクアレイ装置３に対して再接続を行なって（例えば、切断した所定の通信チャネルを形成し）、先に送信した第２のサブコマンド１９Ｂを再送信する。そのため、再び、上述した図７のＳ３１〜Ｓ３４の処理が行われる。
【０１１８】
このときＳ３４では、Ｓ３６で起動制御テーブル３１Ｋにキャッシュポインタが登録されたので、キャッシュヒットする（Ｓ３５でＹ）。その場合、チャネル制御部１３は、キャッシュヒットしたキャッシュスロット２１（すなわち、起動制御テーブル３１Ｋに登録されたキャッシュポインタが示すキャッシュスロット２１）から、上記格納されたリードデータを読み出してホスト１に送信し、且つ、ホスト１に、正常にリード処理が行われた旨を示す正常ステータスを通知して、起動制御テーブル３１Ｋ上のレコード（例えば、キャッシュポインタ、アクセスアドレス、アクセス種別等）を消去する（Ｓ３８）。
【０１１９】
以上が、通常リードの場合の流れである。
【０１２０】
（２）リードコントロールの場合（すなわち、起動ボリューム１１Ｋとは別のボリューム１１Ｔからデータをリードする場合）。
【０１２１】
この場合、まず、図７に示すように、通常リードの場合と同様にＳ３１〜Ｓ３３が行われる。そして、この場合では、Ｓ３３の結果として、起動制御テーブル３１Ｋにリードコントロールが登録されていることが検出される。そのため、チャネル制御部１３は、起動制御テーブル３１Ｋに登録されているターゲットボリュームのＩＤから、ターゲットボリューム１１Ｔ及びそれの制御テーブル（つまりターゲット制御テーブル）３１Ｔを認識し、その認識された制御テーブル３１Ｔを参照して、キャッシュヒットしたか否かを確認する（Ｓ３９）。
【０１２２】
Ｓ３９の結果、キャッシュヒットしなければ（Ｓ４０でＮ）、チャネル制御部１３は、キャッシュメモリ１５上にターゲットボリューム１１Ｔに専用のキャッシュスロット２１を確保し、そのキャッシュスロット２１のキャッシュポインタをターゲット制御テーブル３１Ｔに登録する（Ｓ４１）。その後、チャネル制御部１３は、ホスト１に切り離し要求をする（Ｓ４２）。それにより、ホスト１によって、ホスト１とディスクアレイ装置３との間で切り離しが行なわれる。
【０１２３】
Ｓ４２の後、図８に示すように、ターゲットボリューム１１Ｔが用意されている物理ディスク群９に対応のディスク制御部１９が、ターゲット制御テーブル３１Ｔにキャッシュポインタ等が新たに登録されたことを検出したら、そのターゲット制御テーブル３１Ｔに登録されているアクセスアドレス（つまりターゲットボリューム１１Ｔのアクセスアドレス）からデータをリードし、そのリードデータを、ターゲット制御テーブル３１Ｔに登録されているキャッシュポインタが示すキャッシュポインタ２１に格納する（Ｓ４４）。そして、そのディスク制御部１９は、ターゲットボリューム１１Ｔのキャッシュスロット２１にリードデータを格納したことを意味するデータ準備完了をチャネル制御部１３に通知する（Ｓ４５）。
【０１２４】
チャネル制御部１３は、ディスク制御部１９からデータ準備完了の通知を受けたときは、図７のＳ３７で切り離しを要求したホスト１に対し再接続を要求する（Ｓ４６）。
【０１２５】
ホストＯＳ７は、チャネル制御部１３から再接続の要求を受けたときは、ディスクアレイ装置３に対して再接続を行なって、先に送信した第２のサブコマンド１９Ｂを再送信する。そのため、再び、上述したＳ３１〜Ｓ３３及びＳ３９の処理が行われる。
【０１２６】
このときＳ３９では、Ｓ４１でターゲット制御テーブル３１Ｔにキャッシュポインタが登録されたので、キャッシュヒットする（Ｓ４０でＹ）。その場合、チャネル制御部１３は、キャッシュヒットしたキャッシュスロット２１（すなわち、ターゲット制御テーブル３１Ｔに登録されたキャッシュポインタが示すキャッシュスロット２１）から、上記格納されたリードデータを読み出してホスト１に送信し、且つ、ホスト１に、正常にリード処理が行われた旨を示す正常ステータスを通知して、起動制御テーブル３１Ｋ及びターゲット制御テーブル３１Ｔ上のレコード（例えば、キャッシュポインタ、アクセスアドレス、アクセス種別等）を消去する（Ｓ４３）。
【０１２７】
以上が、リードコントロールの場合の流れである。
【０１２８】
（３）ライトコントロールの場合（すなわち、起動ボリューム１１Ｋとは別のボリューム１１Ｔにデータをライトする場合）。
【０１２９】
この場合、まず、図７に示すように、通常リードの場合と同様にＳ３１〜Ｓ３２が行われる。そして、この場合では、Ｓ３２の結果として、第２のサブコマンド１９Ｂが持つ第２アクセス種別コードはライトを示すことが検出される。
【０１３０】
その後、図９に示すように、チャネル制御部１３は、第２のサブコマンド１９Ｂの対象となっている起動ボリューム１１Ｋの制御テーブル３１Ｋを参照して、アクセス種別としてライトとライトコントロールのどちらが登録されているかを調べる（Ｓ４７）。
【０１３１】
Ｓ４７の結果、ライトコントロールが登録されていれば、チャネル制御部１３は、起動制御テーブル３１Ｋに登録されているターゲットボリュームのＩＤから、ターゲットボリューム１１Ｔ及びそれの制御テーブル３１Ｔを認識し、その認識された制御テーブル３１Ｔを参照して、キャッシュヒットしたか否かを確認する（Ｓ４９）。
【０１３２】
Ｓ４９の結果、キャッシュヒットしなければ（Ｓ５０でＮ）、チャネル制御部１３は、キャッシュメモリ１５上にターゲットボリューム１１Ｔに専用のキャッシュスロット２１を確保し、そのキャッシュスロット２１のキャッシュポインタをターゲット制御テーブル３１Ｔに登録する（Ｓ５１）。その後、チャネル制御部１３は、ホスト１に切り離し要求をする（Ｓ５２）。
【０１３３】
Ｓ５２の後、図１０に示すように、ターゲットボリューム１１Ｔが用意されている物理ディスク群９に対応のディスク制御部１９が、ターゲット制御テーブル３１Ｔにキャッシュポインタ等が新たに登録されたことを検出したら、そのターゲット制御テーブル３１Ｔに登録されているアクセスアドレス（つまりターゲットボリューム１１Ｔのアクセスアドレス）からデータをリードし、そのリードデータを、ターゲット制御テーブル３１Ｔに登録されているキャッシュポインタが示すキャッシュポインタ２１に格納する（Ｓ５４）。そして、そのディスク制御部１９は、データ準備完了をチャネル制御部１３に通知する（Ｓ５５）。
【０１３４】
チャネル制御部１３は、ディスク制御部１９からデータ準備完了の通知を受けたときは、図９のＳ５２で切り離しを要求したホスト１に対し再接続を要求する（Ｓ５６）。
【０１３５】
ホストＯＳ７は、チャネル制御部１３から再接続の要求を受けたときは、ディスクアレイ装置３に対して再接続を行なって、先に送信した第２のサブコマンド１９Ｂを再送信する。そのため、再び、上述したＳ３１〜Ｓ３２、Ｓ４７及びＳ４９の処理が行われる。
【０１３６】
このときのＳ４９では、Ｓ５１でターゲット制御テーブル３１Ｔにキャッシュポインタが登録されたので、キャッシュヒットする（Ｓ５０でＹ）。その場合、チャネル制御部１３は、キャッシュヒットしたキャッシュスロット２１（すなわち、ターゲット制御テーブル３１Ｔに登録されたキャッシュポインタが示すキャッシュスロット２１）に、上記受信した第２のサブコマンド１９Ｂに含まれているライトデータを格納する（Ｓ５３）。
【０１３７】
Ｓ５３の後、図１０に示すように、ディスク制御部１９は、ターゲット制御テーブル３１Ｔに登録されているキャッシュポインタが示すキャッシュポインタ２１にライトデータがあることを検出してそのライトデータを読み出し、それを、ターゲット制御テーブル３１Ｔに登録されているアクセスアドレス（つまりターゲットボリューム１１Ｔのアクセスアドレス）にライトする。その後、そのディスク制御部１９は、ライトデータの格納が完了したことをチャネル制御部１３に通知する（Ｓ５８）。
【０１３８】
ライトデータの格納が完了した通知を受けたチャネル制御部１３は、正常にライト処理が行われた旨を示す正常ステータスをホスト１に通知すると共に、起動制御テーブル３１Ｋ及びターゲット制御テーブル３１Ｔ上のレコード（例えば、キャッシュポインタ、アクセスアドレス、アクセス種別等）を消去する（Ｓ５９）。
【０１３９】
以上が、ライトコントロールの場合の動作流れである。
【０１４０】
（４）通常ライトの場合（起動ボリューム１１Ｋにデータをライトする場合）。
【０１４１】
この場合、まず、ライトコントロールの場合と同様にＳ３１〜Ｓ３２及びＳ４７が行われる。そして、この場合では、Ｓ４７の結果として、起動制御テーブル３１Ｋにライトが登録されていることが検出されるので、通常のライト処理が行われる（Ｓ４８）。通常のライト処理の流れについては特別図示しないが、通常リード、リードコントロール、及びライトコントロールの場合の動作流れについての上記説明から、当業者であれば、通常のライト処理は下記のような流れで行なわれることを理解することができる。
【０１４２】
すなわち、チャネル制御部１３は、起動制御テーブル３１Ｋを参照して、キャッシュヒットしたか否かを確認する。その結果、キャッシュヒットしなければ、チャネル制御部１３は、キャッシュメモリ１５上に起動ボリューム１１Ｋに専用のキャッシュスロット２１を確保し、そのキャッシュスロット２１のキャッシュポインタを起動制御テーブル３１Ｋに登録する。その後、チャネル制御部１３は、ホスト１に切り離し要求をする。
【０１４３】
起動ボリューム１１Ｋが用意されている物理ディスク群９に対応のディスク制御部１９が、起動制御テーブル３１Ｋにキャッシュポインタ等が新たに登録されたことを検出したら、その制御テーブル３１Ｋに登録されているアクセスアドレスからデータをリードし、そのリードデータを、起動制御テーブル３１Ｋに登録されているキャッシュポインタが示すキャッシュポインタ２１に格納する。そしてて、ディスク制御部１９は、データ準備完了をチャネル制御部１３に通知する。
【０１４４】
チャネル制御部１３は、ディスク制御部１９からデータ準備完了の通知を受けたときは、ホスト１に対し再接続を要求する。
【０１４５】
ホストＯＳ７は、チャネル制御部１３から再接続の要求を受けたときは、ディスクアレイ装置３に対して再接続を行なって、先に送信した第２のサブコマンド１９Ｂを再送信する。そのため、再び、キャッシュヒットしたか否かが確認される。
【０１４６】
この場合の確認では、前述の通り、起動制御テーブル３１Ｋにキャッシュポインタが登録されたので、キャッシュヒットする。その場合、チャネル制御部１３は、キャッシュヒットしたキャッシュスロット２１に、上記受信した第２のサブコマンド１９Ｂに含まれているライトデータを格納する。
【０１４７】
その後、ディスク制御部１９は、起動制御テーブル３１Ｋに登録されているキャッシュポインタが示すキャッシュポインタ２１にライトデータがあることを検出してそのライトデータを読み出し、それを、起動制御テーブル３１Ｋに登録されているアクセスアドレス（つまり起動ボリューム１１Ｋのアクセスアドレス）にライトする。その後、そのディスク制御部１９は、ライトデータの格納が完了したことをチャネル制御部１３に通知する。
【０１４８】
ライトデータの格納が完了した通知を受けたチャネル制御部１３は、正常にライト処理が行われた旨を示す正常ステータスをホスト１に通知すると共に、起動制御テーブル３１Ｋ上のレコードを消去する。
【０１４９】
以上が、通常ライトの場合の動作流れである。
【０１５０】
上述した実施形態によれば、ホスト１が、アクセスコマンド１９を起動ボリューム（つまりそのコマンド１９の対象となる論理ボリューム）１１Ｋに送信するようになっており、その場合、アクセスしたいターゲットの論理ボリューム１１に関するターゲット情報をアクセスコマンド１９に含めて送信するようになっている。ディスクアレイ装置３は、アクセスコマンド１９を受けると、そのアクセスコマンド１９に含まれているターゲット情報が示すターゲットボリュームが起動ボリューム１１Ｋとは別のボリューム１１Ｔであっても、その別のボリューム１１Ｔからデータをリードしてホスト１に提供したり、或いは、ホスト１が書き込みたいデータをその別のボリューム１１Ｔにライトしたりする。このように、この実施形態によれば、オンライン状態になっている起動ボリュームに対してデータアクセスを行うのと同様の方法でそれとは別のターゲットボリュームに対してデータアクセスを行なうことができる。それ故、ユーザにとって便利である。なお、このことは、ターゲットボリュームがオフラインボリュームである場合には特に利便性が高い。
【０１５１】
ところで、上述した説明では、ホストＡＰ５がどのようにしてターゲットボリュームをホストＯＳ７に通知するかについては具体的に説明してないが、これについては幾つかの方法が考えられる。一例として、ユーザが、予め、ディスクアレイ装置３に対して直接的に又は遠隔から所定の操作を行なって、ディスクアレイ装置３が持つ全ての論理ボリュームと各論理ボリュームにはどのようなデータが格納されているかということ（以下、これを「ボリューム情報」と言う）をディスクアレイ装置３から通知してもらい、その通知されたボリューム情報に基づいて、ホストＡＰ５に対し所望のターゲットボリュームを入力することで、ホストＡＰ５がホストＯＳ７にターゲットボリュームを通知する方法が考えられる。別の一例として、ディスクアレイ装置３が、ユーザからの要求に応答して或いは任意のタイミングで自発的に、上記ボリューム情報をホスト１に送信し、ホスト１がそのボリューム情報を所定の記憶領域に格納しておき、ユーザがホストＡＰ５を操作してターゲットボリュームを入力するときは、ホストＡＰ５が、そのボリューム情報を読み出してディスプレイ画面に表示し、ユーザに選択された論理ボリュームをターゲットボリュームとしてホストＯＳ７に通知する方法も考えられる。
【０１５２】
また、起動ボリューム１１Ｋは、例えば、ホスト１に対してオンライン状態である複数のオンラインボリュームの中から、ホスト１又はディスクアレイ装置３によって自動的に又はユーザによって任意に選択されたものである。
【０１５３】
さて、上述した実施形態には、幾つか応用例、例えば下記のような第１〜第３の応用例が考えられる。
【０１５４】
図１１は、本発明の一実施形態に係るアクセスシステムの第１の応用例を示す。
【０１５５】
第１の応用例は、上述した実施形態を、正ボリューム（プライマリのボリューム）と副ボリューム（セコンダリのボリューム）とをペアで管理して二重化処理を行うことができるようになったディスクアレイ装置Ａ１を有するデータアクセスシステム２００に適用したものである。
【０１５６】
この第１の応用例では、起動ボリューム１１Ｋは、正ボリュームであり、起動ボリューム１１Ｋとは別のターゲットボリューム（例えばオフラインボリューム）１１Ｔは、副ボリュームである。
【０１５７】
この第１の応用例によれば、ホスト１に対して正ボリューム１１Ｋのみがオンライン状態になっていて副ボリューム１１Ｔはオフライン状態でも、ホスト１は、正ボリューム１１Ｋに対してデータアクセスする方法と同様の方法で副ボリューム１１Ｔにデータアクセスすることができる。具体的には、図示のように、ホスト１は、正ボリューム１１Ｋを対象とするアクセスコマンド１９を発行しても、そのアクセスコマンド１９に、リードコントロールを示す第１アクセス種別コードと、副ボリューム１１ＴのＩＤ及びアクセスアドレスを含んだターゲット情報とを含めれば、副ボリューム１１Ｔから所望のデータを取得することができる。また、ホスト１は、正ボリューム１１Ｋを対象とするアクセスコマンド１９を発行しても、そのアクセスコマンド１９に、ライトコントロールを示す第１アクセス種別コードと、副ボリューム１１ＴのＩＤ及びアクセスアドレスを含んだターゲット情報とを含めれば、副ボリューム１１Ｔに所望のデータをライトすることができる。
【０１５８】
なお、この第１の応用例において、例えば、正ボリューム１１Ｋ内の第１のデータと副ボリューム１１Ｔ内の第２のデータ（第１のデータとペアになったもの）が互いに一致しない場合、ディスクアレイ装置３は、副ボリューム１１Ｔから第２のデータをリードし、その第２のデータを正ボリューム１１Ｋ内の第１のデータに上書きすることにより、第１のデータの回復を行なうことができる。この処理は、例えば、ディスクアレイ装置３が任意のタイミングで上記第１のデータと第２のデータの比較を行ない一致しないときに自動的に行なっても良いし、或いは、上記一致しないことをホスト１に通知し、ホスト１が、ユーザからの要求に応じて又は自発的に、副ボリューム１１Ｔの上記第２のデータをターゲットとしたアクセスコマンド１９を、正ボリューム１１Ｋを起動ボリュームとして送信し、ディスクアレイ装置３が、ホスト１からのそのコマンド１９に基づいて、上述の上書き処理をおこなっても良い。
【０１５９】
図１２は、本発明の一実施形態に係るアクセスシステムの第２の応用例を示す。
【０１６０】
第２の応用例は、上述した実施形態を、複数のホスト１Ａ、１Ｂと、それら複数のホスト１Ａ、１Ｂに通信可能に接続されるディスクアレイ装置Ａ２とを有するデータアクセスシステム３００に適用したものである。
【０１６１】
この第２の応用例では、ホスト１Ａにとっての起動ボリューム１１Ｋは、ホスト１Ａに対してオンライン状態になっている１又は複数のオンラインボリューム１１ＫＡの中から自動で又は手動で選択された一つの論理ボリュームである。一方、ホスト１Ａにとってのターゲットボリューム（例えばオフラインボリューム）１１Ｔは、ホスト１Ａに対してはオンライン状態になっていないが別のホスト１Ｂに対してオンライン状態になっている１又は複数のオンラインボリューム１１ＫＢの中からホスト１Ａで指定された論理ボリュームである。
【０１６２】
この第２の応用例によれば、ホスト１Ａは、自機に対してオンライン状態になっている起動ボリューム１１Ｋに対してデータアクセスする方法と同様の方法で、他のホスト１Ｂに対してオンライン状態になっている論理ボリューム１１ＫＢにデータアクセスすることができる。別の言い方をすれば、各ホスト１Ａ、１Ｂ毎に論理ボリュームが割当てられている場合、各ホスト１Ａ、１Ｂは、自機に割当てられているオンラインボリュームに対してデータアクセスする方法と同様の方法で、他のホストに対して割当てられている論理ボリュームにデータアクセスすることができる。このため、ホスト１Ａ、１Ｂはホスト種類（例えば、ホストのメーカ、ホストのＯＳの種類）が異なっていて、ホスト１Ａ、１Ｂがそれぞれ認識している論理ボリューム１１ＫＡ、１１ＫＢのデータ形式が異なっていたとしても、各ホスト１Ａ、１Ｂは、自機に割当てられているオンラインボリュームに対してデータアクセスする方法と同様の方法で、他のホストに割当てられているオンラインボリューム（オフラインボリュームでも良い）にデータアクセスすることができる。
【０１６３】
図１３は、本発明の一実施形態に係るアクセスシステムの第３の応用例を示す。
【０１６４】
第３の応用例は、上記の第２の応用例を変形例であり、複数のホスト１Ａ、１Ｂ、１Ｃと、それら複数のホスト１Ａ、１Ｂ、１Ｃに通信可能に接続されるディスクアレイ装置Ａ３とを有するデータアクセスシステム４００に適用したものである。
【０１６５】
この第３の応用例において、ディスクアレイ装置Ａ３のキャッシュメモリ１５の記憶領域は、各ホスト毎に仕切られている。具体的に言えば、キャッシュメモリ１５には、第１のホスト１Ａに対して割当てられた第１のキャッシュ領域１５Ａと、第２のホスト１Ｂに対して割当てられた第２のキャッシュ領域１５Ｂと、第３のホスト１Ｃに対して割当てられた第３のキャッシュ領域１５Ｃとがある。
【０１６６】
この第３の応用例では、ホスト１Ａにとっての起動ボリューム１１Ｋは、第２の応用例と同様に、ホスト１Ａに対してオンライン状態になっている１又は複数のオンラインボリューム１１ＫＡの中から自動で又は手動で選択された一つの論理ボリュームである。一方、ホスト１Ａにとってのターゲットボリューム（例えばオフラインボリューム）１１Ｔは、ホスト１Ａに対してはオンライン状態になっていないが別のホスト１Ｃに対してオンライン状態になっている１又は複数のオンラインボリューム１１ＫＣの中からホスト１Ａで指定された論理ボリュームである。
【０１６７】
この第３の応用例では、ホスト１Ａからアクセスコマンド１９を受けたチャネル制御部１３は、そのコマンド１９に含まれているターゲット情報が、第３のホスト１Ｃの或る一つのオンラインボリューム１１ＫＣを指しているので、その第３のホスト１Ｃのキャッシュ領域１５Ｃ内にキャッシュスロット２１を確保し、且つ、そのオンラインボリューム１１ＫＣに対応した制御テーブルに、そのキャッシュスロット２１のキャッシュポインタを記入する。
【０１６８】
この第３の応用例によれば、各ホスト毎にキャッシュ領域が割当てられている場合、ホスト１Ａが、他のホスト１Ｃのオンラインボリューム１１ＫＣに対してデータアクセスするときは、ホスト１Ａと通信するチャネル制御部１３は、ホスト１Ａに対応したキャッシュ領域１５Ａではなく、ホスト１Ａのターゲットボリューム１１Ｔに対してオンライン状態になっている他のホスト１Ｃのキャッシュ領域１５Ｃにキャッシュスロット２１を確保し、そのキャッシュスロット２１を介して、ホスト１Ａと、他のホスト１Ｃに対するオンラインボリュームとの間でデータがやり取りされる。すなわち、各ホスト毎にキャッシュ領域が割当てられている場合であっても、各ホスト１Ａ、１Ｂ、１Ｃは、自機に割当てられているオンラインボリュームに対してデータアクセスする方法と同様の方法で、他のホストに対して割当てられているオンラインボリューム（オフラインボリュームでも良い）にデータアクセスすることができる。
【０１６９】
以上、本発明の好適な実施形態及びそれの応用例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び応用例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ディスクアレイ装置３は、複数台存在してもよく、その場合、ホスト１の起動ボリューム１１Ｋは、ホスト１に接続されている第１のディスクアレイ装置内にあり、ホスト１のターゲットボリューム１１Ｔは、そのディスクアレイ装置とは別の第２のディスクアレイ装置内に存在しても良い。この場合、ホスト１は、自機が接続されているディスクアレイ装置内の所望の起動ボリュームに対してデータアクセスするのと同様の方法で、他のディスクアレイ装置内の論理ボリュームにデータアクセスすることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るアクセスシステムの全体構成を示す。
【図２】ホスト１が発行するアクセスコマンドを示す。
【図３】制御メモリ１７に用意される制御テーブルを示す。
【図４】本実施形態に係るデータアクセスシステムにおいて、ホスト１が起動ボリュームとは別の論理ボリュームをターゲットとしそこからデータをリードする場合の流れを示す。
【図５】ホストＯＳ７の動作流れを示す。
【図６】ホスト１から第１のサブコマンド１９Ａを受信したときのディスクアレイ装置３の動作流れを示す。
【図７】ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを示す。
【図８】ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを示す。
【図９】ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを示す。
【図１０】ホスト１から第２のサブコマンド１９Ｂを受信したときのディスクアレイ装置３の動作流れを示す。
【図１１】本発明の一実施形態に係るアクセスシステムの第１の応用例を示す。
【図１２】本発明の一実施形態に係るアクセスシステムの第２の応用例を示す。
【図１３】本発明の一実施形態に係るアクセスシステムの第３の応用例を示す。
【符号の説明】
１  ホストシステム
３  ディスクアレイ装置
５  アプリケーションプログラム（ホストＡＰ）
７  オペレーティングシステム（ホストＯＳ）
９  物理ディスク群
１１  論理ボリューム
１１Ｋ  起動ボリューム
１１Ｔ  ターゲットボリューム
１３  チャネル制御部
１５  キャッシュメモリ
１７  制御メモリ
１９  ディスク制御部
２１  スイッチング制御部
３１  制御テーブル
３１Ｋ  起動ボリュームの制御テーブル
３１Ｔ  ターゲットボリュームの制御テーブル
【図１】
2005010997.tif 000003
【図２】
2005010997.tif 000004
【図３】
2005010997.tif 000005
【図４】
2005010997.tif 000006
【図５】
2005010997.tif 000007
【図６】
2005010997.tif 000008
【図７】
2005010997.tif 000009
【図８】
2005010997.tif 000010
【図９】
2005010997.tif 000011
【図１０】
2005010997.tif 000012
【図１１】
2005010997.tif 000013
【図１２】
2005010997.tif 000014
【図１３】
2005010997.tif 000015