(57)【要約】【課題】  ホストコンピュータからのアクセス要求の処理に要する時間が長くなってしまうことを抑えられるようにする。【解決手段】  記憶デバイスに設けられるエクステントに設定可能なアクセス制御属性として、書込み許可、読出し許可、及び書込み禁止を意味するアクセス制御属性のどれでもよいが、読出し禁止を意味するアクセス制御属性はサポートされない。データ処理システムは、読出し対象データの読み出し要求を送信する通信装置（１００Ａ）から読出し要求が受信された場合には、読み出し要求に従う読み出し元エクステントのアクセス制御属性を複数のアクセス制御属性の中から検索することを行うことなく、読出し元エクステントから読出し対象データを読み出す。【選択図】      図８
2006178849.tif 000002
【特許請求の範囲】
【請求項１】
通信装置に接続されるデータ処理システムにおいて、
少なくとも一つのコンピュータと、
前記少なくとも一つのコンピュータに読み込まれる少なくとも一つのコンピュータプログラムを記憶するプログラム記憶域と、
データを記憶することができるサブ領域であるエクステントを複数個有する記憶デバイスと、
前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する属性記憶域と
を有し、
エクステントに対応したアクセス制御属性は、複数種類のアクセス制御属性の中から選択された種類のアクセス制御属性であり、
前記複数種類のアクセス制御属性には、読出し禁止を意味するアクセス制御属性が含まれておらず、書込み許可を意味するアクセス制御属性と、読出し許可を意味するアクセス制御属性と、書込み禁止を意味するアクセス制御属性とが含まれており、
前記少なくとも一つのコンピュータプログラムを読み込んだ前記少なくとも一つのコンピュータが、
書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記書込み要求に従う書込み先エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御するが、
読出し対象データの読み出し要求を送信する通信装置から前記読出し要求が受信された場合には、前記読み出し要求に従う読み出し元エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索することを行うことなく、前記読出し元エクステントから前記読出し対象データを読み出す、
請求項１記載のデータ処理システム。
【請求項２】
前記少なくとも一つのコンピュータが、前記通信装置からの要求に応答して、以下の（１）又は（２）の処理、
（１）第一の時点から第二の時点の間に前記記憶デバイスに書き込まれた少なくとも一つの書き込み対象データを有する領域を含んだ領域を一つのエクステントとし、且つ、前記エクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
（２）第一の時点で一つのエクステントを設定し、前記設定されたエクステントに書込み対象データが格納された後の第二の時点で前記設定されたエクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
を実行する、
請求項１記載のデータ処理システム。
【請求項３】
通信装置に接続されるデータ処理システムにおいて、
少なくとも一つのコンピュータと、
前記少なくとも一つのコンピュータに読み込まれる少なくとも一つのコンピュータプログラムを記憶するプログラム記憶域と、
データを記憶する複数の記憶デバイスと、
前記複数の記憶デバイスの少なくとも一つの記憶デバイスに設けられる複数のエクステントと、
記憶デバイスと前記通信装置との間でやり取りされるデータを一時的に記憶するキャッシュメモリ領域と、
前記データのやり取りを制御するための情報を記憶する制御メモリ領域と、
前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する第一の管理領域と、
書込み禁止を意味するアクセス制御属性に対応したエクステントである書込み禁止エクステントが前記複数のエクステントに含まれているか否かを表す書込み禁止エクステント有無情報を各記憶デバイス毎に記憶する第二の管理領域と
を備え、
前記第一の管理領域は、前記複数のエクステントを有する前記記憶デバイス内に存在し、
前記第二の管理領域は、前記キャッシュメモリ領域と前記制御メモリ領域とのうちの少なくとも一方に存在し、
前記少なくとも一つのコンピュータプログラムを読み込んだ前記少なくとも一つのコンピュータが、
書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記第二の管理領域にアクセスして、前記書込み要求に従う書込み先記憶デバイスに対応した書込み禁止エクステント有無情報を参照することにより、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在するか否かの判定を行い、
前記書込み先記憶デバイスに前記書込み禁止エクステントが存在すると判定された場合、前記書込み先記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記書込み先記憶デバイスに設けられた複数のエクステントのうちの書込み先エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する、
データ処理システム。
【請求項４】
前記第二の管理領域は、読出し禁止を意味するアクセス制御属性に対応したエクステントである読出し禁止エクステントが前記複数のエクステントに含まれているか否かを表す読出し禁止エクステント有無情報を各記憶デバイス毎に記憶し、
前記少なくとも一つのコンピュータが、
読出し対象データの読出し要求を送信する通信装置から前記読出し要求が受信された場合、前記第二の管理領域にアクセスして、前記読出し要求に従う読出し元記憶デバイスに対応した読出し禁止エクステント有無情報を参照することにより、前記読出し元記憶デバイスに前記読出し禁止エクステントが存在するか否かの判定を行い、
前記読出し元記憶デバイスに前記読出し禁止エクステントが存在すると判定された場合、前記読出し元記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記読出し元記憶デバイスに設けられた複数のエクステントのうちの読出し元エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が読出し禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記読出し対象データを前記読出し元エクステントから読み出すか否かを制御する、
請求項３記載のデータ処理システム。
【請求項５】
前記通信装置と前記記憶デバイスとの間で前記キャッシュメモリ領域を介してやり取りされるデータには、
前記記憶デバイスを管理するための種々の管理情報要素を含む管理情報と、
前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータと
があり、
前記少なくとも一つのコンピュータが、
前記記憶デバイスに書き込まれたデータであって、前記キャッシュメモリ領域に残っているデータのうち、前記管理情報に含まれる管理情報要素を優先的に前記キャッシュメモリ領域に残し、前記ホストデータを先に前記キャッシュメモリ領域から削除する、
請求項３記載のデータ処理システム。
【請求項６】
前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有し、
前記制御メモリ領域が、各記憶デバイス毎に、前記管理情報記憶域が更新中か否かを表す更新ステータスと、前記管理情報記憶域の更新が済んだ場合に変更される更新番号とを記憶し、
前記少なくとも一つのコンピュータが、
或る記憶デバイスに格納するための管理情報を送信する通信装置から前記管理情報を受信した場合に、前記或る記憶デバイスへのデータの書き込みを禁止することを表すロックを設定し、
前記或る記憶デバイスの前記更新ステータスを、更新中であることを意味する更新中ステータスに変更し、
前記或る記憶デバイスの前記管理情報記憶域に前記受信した管理情報を書き込み、
前記管理情報の書込みが済んだ場合に、前記或る記憶デバイスに対応した前記更新番号を変更し、
前記或る記憶デバイスの前記更新ステータスを、更新中で無いことを意味する更新無しステータスに変更し、
前記或る記憶デバイスの更新ステータス及び更新番号を参照し、
前記或る記憶デバイスの更新ステータス及び更新番号を参照した後で、前記或る記憶デバイスの管理情報記憶域から管理情報を読み出し、
前記管理情報を読み出した後で、再び、前記或る記憶デバイスの更新ステータス及び更新番号を参照し、
前記管理情報を読み出す前と後で参照した更新ステータスが両方とも更新中ステータスではなく、且つ、前記管理情報を読み出す前と後で参照した更新番号が両方とも同じ番号である場合に、前記読み出された管理情報を有効と判断する、
請求項３記載のデータ処理システム。
【請求項７】
前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とのうちの少なくとも前記ホスト記憶領域を有し、
前記少なくとも一つのコンピュータが、
所定の条件に合致する場合に、前記或る記憶デバイスに前記管理情報記憶域を設定すること、及び、前記或る記憶デバイスから前記管理情報記憶域を削除することの少なくとも一方を禁止する、
請求項３記載のデータ処理システム。
【請求項８】
前記所定の条件とは、前記或る記憶デバイスが前記ホストコンピュータに接続されていることと、前記或る記憶デバイスに少なくとも一つのエクステントが設定されていることとの少なくとも一方である、
請求項７記載のデータ処理システム。
【請求項９】
前記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在し、
前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有し、
前記別の記憶デバイスが、前記記憶デバイスの前記管理情報記憶領域が存在する場所と同じ場所に、前記管理情報記憶領域と同じ記憶容量の別の管理情報記憶領域を有し、
前記少なくとも一つのコンピュータが、
前記記憶デバイス内の全ての情報を、前記別の管理情報記憶領域が用意された前記別の記憶デバイスにコピーする、
請求項３記載のデータ処理システム。
【請求項１０】
前記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在し、
前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有し、
前記別の記憶デバイスが、別の管理情報記憶領域を有しないが別のホスト記憶領域を有し、
前記少なくとも一つのコンピュータが、
前記記憶デバイス内の全ての情報を、前記別の管理情報記憶領域が用意された前記別の記憶デバイスにコピーし、
前記別の記憶デバイスの前記別のホスト記憶領域のアドレスを調整する、
請求項３記載のデータ処理システム。
【請求項１１】
記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在し、
前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有し、
前記少なくとも一つのコンピュータが、
前記別の記憶デバイスが所定の条件に適合する場合には、前記記憶デバイス内の情報のコピー先として設定することを禁止する、
請求項３記載のデータ処理システム。
【請求項１２】
前記所定の条件とは、前記別の記憶デバイスに少なくとも一つのエクステントが設定されていることである、
請求項１１記載のデータ処理システム。
【請求項１３】
記憶デバイスに設けられた複数のエクステントにそれぞれ対応した複数のアクセス制御属性があり、
エクステントに対応したアクセス制御属性は、複数種類のアクセス制御属性の中から選択された種類のアクセス制御属性であり、
前記複数種類のアクセス制御属性には、読出し禁止を意味するアクセス制御属性が含まれておらず、書込み許可を意味するアクセス制御属性と、読出し許可を意味するアクセス制御属性と、書込み禁止を意味するアクセス制御属性とが含まれており、
書込み対象データと書込み要求とを送信するホストコンピュータから前記書込み要求を受信し、
前記受信した書込み要求に従う書込み先エクステントのアクセス制御属性を、記憶デバイスに設けられた複数のエクステントにそれぞれ対応した複数のアクセス制御属性の中から検索し、
前記検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、
前記判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御し、
読出し対象データの読み出し要求を送信するホストコンピュータから前記読出し要求を受信し、
前記受信した読み出し要求に従う読み出し元エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索することを行うことなく、前記読出し元エクステントから前記読出し対象データを読み出す、
データ処理方法。
【請求項１４】
前記通信装置からの要求に応答して、以下の（１）又は（２）、
（１）第一の時点から第二の時点の間に前記記憶デバイスに書き込まれた少なくとも一つの書き込み対象データを有する領域を含んだ領域を一つのエクステントとし、且つ、前記エクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
（２）第一の時点で一つのエクステントを設定し、前記設定されたエクステントに書込み対象データが格納された後の第二の時点で前記設定されたエクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
を実行する、
請求項１３記載のデータ処理方法。
【請求項１５】
複数の記憶デバイスの少なくとも一つの記憶デバイスに設けられる複数のエクステントと、
記憶デバイスと通信装置との間でやり取りされるデータを一時的に記憶するキャッシュメモリ領域と、
データのやり取りを制御するための情報を記憶する制御メモリ領域と、
前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する第一の管理領域と、
書込み禁止を意味するアクセス制御属性に対応したエクステントである書込み禁止エクステントが前記複数のエクステントに含まれているか否かを表す書込み禁止エクステント有無情報を各記憶デバイス毎に記憶する第二の管理領域と
が備えられ、
前記第一の管理領域は、前記複数のエクステントを有する前記記憶デバイス内に存在し、
前記第二の管理領域は、前記キャッシュメモリ領域と前記制御メモリ領域とのうちの少なくとも一方に存在し、
書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記第二の管理領域にアクセスして、前記書込み要求に従う書込み先記憶デバイスに対応した書込み禁止エクステント有無情報を参照することにより、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在するか否かの判定を行い、
前記書込み先記憶デバイスに前記書込み禁止エクステントが存在すると判定された場合、前記書込み先記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記書込み先記憶デバイスに設けられた複数のエクステントのうちの書込み先エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理するためのコンピュータ技術に関する。
【背景技術】
【０００２】
複数の物理記憶デバイス（例えばディスクドライブ）を備えるストレージシステムが知られている。複数の物理記憶デバイスには、複数の論理記憶デバイス（論理ボリューム或いは論理ユニットと言うこともある）を用意することができる。ストレージシステムは、例えば、ホストコンピュータと通信することができ、キャッシュメモリと、制御メモリ（共有メモリと呼ばれることもある）とを備える。キャッシュメモリは、ホストコンピュータと論理記憶デバイス（以下、Logical Deviceを略して「ＬＤＥＶ」と称する）との間でやり取りされるデータを一時的に記憶するためのメモリであり、制御メモリは、そのデータのやり取りの制御等に利用される制御情報が格納されるメモリである。制御情報には、ストレージシステム内のＬＤＥＶ毎に設定可能な属性を含むことができる。
【０００３】
すなわち、データ処理技術の一つに、例えば、複数のＬＤＥＶの各々に対するホストコンピュータからのアクセスを制御するための技術があるが（例えば特許文献１）、この技術によれば、ＬＤＥＶごとに、読み出し／書き込み共に可能、書き込み禁止、又は、読み出し／書き込み共に禁止、のいずれかの属性が設定される。ホストコンピュータからの読み出し／書き込みコマンドは、読み出し／書き込み対象の論理記憶デバイスに設定された属性に従って処理される。その属性は、制御メモリに格納される制御情報に含めることができる。
【０００４】
【特許文献１】特開２０００−１１２８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１によれば、書き込み禁止等の属性（以下、「アクセス制御属性」と言う）が設定されたＬＤＥＶ内のデータを、そのＬＤＥＶを備えるストレージシステムとは別のストレージシステム内のＬＤＥＶに移動した場合には、移動先のデータを移動元のデータと同等に保護することができない。データの移動先のＬＤＥＶを有する別のストレージシステムでは、アクセス制御属性の管理が行われていないためである。
【０００６】
また、上記の特許文献１によれば、アクセス制御属性は、ＬＤＥＶに対して設定される。このため、例えば、書込み禁止を意味するアクセス制御属性がＬＤＥＶに設定されていれば、そのＬＤＥＶに空き領域があっても、その空き領域にはデータを書き込むことができない。
【０００７】
以上の問題点を解消するために、本出願人は、ＬＤＥＶ内に、そのＬＤＥＶよりも記憶容量の小さい記憶領域（以下、「エクステント」と言う）を複数個設定し、各エクステント毎に、書き込み禁止等のアクセス制御属性を設定し、且つ、各エクステント毎のアクセス制御属性をそのエクステントと同一のＬＤＥＤＶ内に保存することを考え出した（特願２００４−３１３８７４：本出願時点では未公開）。
【０００８】
これにより、例えば、ＬＤＥＶ内の全てのデータを別のＬＤＥＶに移動すれば、エクステント内のデータと共に、そのエクステントに設定されたアクセス制御属性も別のＬＤＥＶに移動するので、データの移動先である別のＬＤＥＶでも、移動元と同等にデータを保護することが期待できる。
【０００９】
また、これにより、ＬＤＥＶ内に生じ得る無駄な空き領域の量を低減することができる。例えば、同一のＬＤＥＶ内において、第一のエクステントにはデータの書込みを禁止するアクセス制御属性が設定されていても、第二のエクステントにそのアクセス制御属性が設定されていなければ、その第二のエクステントには、データの書き込みをすることができる。
【００１０】
ところで、各エクステントを管理するためには、アクセス制御属性に限らず、種々の情報があった方が良いと考えられる。そのため、各エクステント毎に、そのエクステントのアクセス制御属性を含んだエクステント管理情報を用意することができる。エクステントの数が多くなればなるほど、エクステント管理情報の数も多くなり、故に、エクステント管理情報群の情報量が多くなる。エクステント情報群の保存場所としては、そのエクステント情報群によって管理されている複数のエクステントを備えたＬＤＥＶが考えられる。
【００１１】
しかし、この場合、ホストコンピュータからのアクセス要求（読み出し要求又は書き込み要求）の処理に要する時間が長くなってしまうという問題が生じるおそれがある。なぜなら、通常、ＬＤＥＶからのデータの読み出し速度は、メモリからのデータの読出し速度よりも遅く、エクステント管理情報群をＬＤＥＶに保存した場合には、アクセス要求をホストコンピュータから受ける都度に、ＬＤＥＶにアクセスしエクステント管理情報群から一以上のエクステント管理情報を読み出す処理が必要になってしまうからである。
【００１２】
これを解消するための方法として、エクステント管理情報群をメモリに保存させておく方法が考えられる。しかし、この方法では、ストレージシステムのコストが高くなってしまうという別の問題が生じる。なぜなら、ストレージシステムに存在するエクステントの数が膨大になれば、それだけエクステント管理情報群の情報量も膨大になり、その膨大な情報量のエクステント管理情報群を保存するために、メモリの記憶容量を多くしておく必要があるためである。これは、ＬＤＥＶの数が増えれば増えるほど、換言すれば、エクステント管理情報群の数が増えれば増えるほど、一層大きな問題となる。
【００１３】
従って、本発明の目的の一つは、通信装置からのアクセス要求の処理に要する時間が長くなってしまうことを抑えられるようにすることにある。
【００１４】
本発明の更なる目的は、メモリの記憶容量を膨大にすること無しに、上記のことを実現することにある。
【００１５】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本発明の第一の側面に従うデータ処理システムは、通信装置と通信可能に接続され、少なくとも一つのコンピュータと、前記少なくとも一つのコンピュータに読み込まれる少なくとも一つのコンピュータプログラムを記憶するプログラム記憶域と、データを記憶することができるサブ領域であるエクステントを複数個有する記憶デバイスと、前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する属性記憶域とを有する。エクステントに対応したアクセス制御属性は、複数種類のアクセス制御属性の中から選択された種類のアクセス制御属性である。前記複数種類のアクセス制御属性には、読出し禁止を意味するアクセス制御属性が含まれておらず、書込み許可を意味するアクセス制御属性と、読出し許可を意味するアクセス制御属性と、書込み禁止を意味するアクセス制御属性とが含まれている。
【００１７】
この場合、前記少なくとも一つのコンピュータプログラムを読み込んだ前記少なくとも一つのコンピュータ（例えば制御手段）が、書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記書込み要求に従う書込み先エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する。また、前記少なくとも一つのコンピュータが、読出し対象データの読み出し要求を送信する通信装置から前記読出し要求が受信された場合には、前記読み出し要求に従う読み出し元エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索することを行うことなく、前記読出し元エクステントから前記読出し対象データを読み出す。
【００１８】
ここで、エクステントは、例えば、記憶デバイス上に物理的に設定するのではなく、記憶デバイスとは別の記憶域（例えばメモリ）上で論理的に設定することができる。論理的に設定するとは、例えば、記憶デバイスのどの位置からどの位置までが一つのエクステントであるか（又はどの位置からどんな記憶サイズを有するものが一つのエクステントであるか）を表す情報を上記別の記憶域に記憶させることとすることができる。
【００１９】
一つの実施態様では、前記少なくとも一つのコンピュータが、前記通信装置からの要求に応答して、以下の（１）又は（２）の処理、
（１）第一の時点から第二の時点の間に前記記憶デバイスに書き込まれた少なくとも一つの書き込み対象データを有する領域を含んだ領域を一つのエクステントとし、且つ、前記エクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
（２）第一の時点で一つのエクステントを設定し、前記設定されたエクステントに書込み対象データが格納された後の第二の時点で前記設定されたエクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
を実行することができる。
【００２０】
本発明の第二の側面に従うデータ処理システムは、通信装置に通信可能に接続され、少なくとも一つのコンピュータと、前記少なくとも一つのコンピュータに読み込まれる少なくとも一つのコンピュータプログラムを記憶するプログラム記憶域と、データを記憶する複数の記憶デバイスと、前記複数の記憶デバイスの少なくとも一つの記憶デバイスに設けられる複数のエクステントと、記憶デバイスと前記通信装置との間でやり取りされるデータを一時的に記憶するキャッシュメモリ領域と、前記データのやり取りを制御するための情報を記憶する制御メモリ領域と、前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する第一の管理領域と、書込み禁止を意味するアクセス制御属性に対応したエクステントである書込み禁止エクステントが前記複数のエクステントに含まれているか否かを表す書込み禁止エクステント有無情報を各記憶デバイス毎に記憶する第二の管理領域とを備える。前記第一の管理領域は、前記複数のエクステントを有する前記記憶デバイス内に存在する。前記第二の管理領域は、前記キャッシュメモリ領域と前記制御メモリ領域とのうちの少なくとも一方に存在する。
【００２１】
この場合、前記少なくとも一つのコンピュータプログラムを読み込んだ前記少なくとも一つのコンピュータ（例えば制御手段）が、書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記第二の管理領域にアクセスして、前記書込み要求に従う書込み先記憶デバイスに対応した書込み禁止エクステント有無情報を参照することにより、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在するか否かの判定を行う。また、前記少なくとも一つのコンピュータが、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在すると判定された場合、前記書込み先記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記書込み先記憶デバイスに設けられた複数のエクステントのうちの書込み先エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する。
【００２２】
一つの実施態様では、前記第二の管理領域は、読出し禁止を意味するアクセス制御属性に対応したエクステントである読出し禁止エクステントが前記複数のエクステントに含まれているか否かを表す読出し禁止エクステント有無情報を各記憶デバイス毎に記憶することができる。前記少なくとも一つのコンピュータが、読出し対象データの読出し要求を送信する通信装置から前記読出し要求が受信された場合、前記第二の管理領域にアクセスして、前記読出し要求に従う読出し元記憶デバイスに対応した読出し禁止エクステント有無情報を参照することにより、前記読出し元記憶デバイスに前記読出し禁止エクステントが存在するか否かの判定を行うことができる。また、前記少なくとも一つのコンピュータが、前記読出し元記憶デバイスに前記読出し禁止エクステントが存在すると判定された場合、前記読出し元記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記読出し元記憶デバイスに設けられた複数のエクステントのうちの読出し元エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が読出し禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記読出し対象データを前記読出し元エクステントから読み出すか否かを制御することができる。
【００２３】
一つの実施態様では、前記通信装置と前記記憶デバイスとの間で前記キャッシュメモリ領域を介してやり取りされるデータには、前記記憶デバイスを管理するための種々の管理情報要素を含む管理情報と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータとがあってもよい。この場合、前記少なくとも一つのコンピュータが、前記記憶デバイスに書き込まれたデータであって、前記キャッシュメモリ領域に残っているデータのうち、前記管理情報に含まれる管理情報要素を優先的に前記キャッシュメモリ領域に残し、前記ホストデータを先に前記キャッシュメモリ領域から削除することができる。
【００２４】
一つの実施態様では、前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有することができる。前記制御メモリ領域が、各記憶デバイス毎に、前記管理情報記憶域が更新中か否かを表す更新ステータスと、前記管理情報記憶域の更新が済んだ場合に変更される更新番号とを記憶することができる。この場合、前記少なくとも一つのコンピュータが、以下の処理、
或る記憶デバイスに格納するための管理情報を送信する通信装置から前記管理情報を受信した場合に、前記或る記憶デバイスへのデータの書き込みを禁止することを表すロックを設定し、
前記或る記憶デバイスの前記更新ステータスを、更新中であることを意味する更新中ステータスに変更し、
前記或る記憶デバイスの前記管理情報記憶域に前記受信した管理情報を書き込み、
前記管理情報の書込みが済んだ場合に、前記或る記憶デバイスに対応した前記更新番号を変更し、
前記或る記憶デバイスの前記更新ステータスを、更新中で無いことを意味する更新無しステータスに変更し、
前記或る記憶デバイスの更新ステータス及び更新番号を参照し、
前記或る記憶デバイスの更新ステータス及び更新番号を参照した後で、前記或る記憶デバイスの管理情報記憶域から管理情報を読み出し、
前記管理情報を読み出した後で、再び、前記或る記憶デバイスの更新ステータス及び更新番号を参照し、
前記管理情報を読み出す前と後で参照した更新ステータスが両方とも更新中ステータスではなく、且つ、前記管理情報を読み出す前と後で参照した更新番号が両方とも同じ番号である場合に、前記読み出された管理情報を有効と判断する、
を実行することができる。
【００２５】
一つの実施態様では、前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とのうちの少なくとも前記ホスト記憶領域を有することができる。この場合、前記少なくとも一つのコンピュータが、所定の条件に合致する場合に、前記或る記憶デバイスに前記管理情報記憶域を設定すること、及び、前記或る記憶デバイスから前記管理情報記憶域を削除することの少なくとも一方を禁止することができる。前記所定の条件とは、前記或る記憶デバイスが前記ホストコンピュータに接続されていることと、前記或る記憶デバイスに少なくとも一つのエクステントが設定されていることとの少なくとも一方であってもよい。
【００２６】
一つの実施態様では、前記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在してもよい。前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有することができる。前記別の記憶デバイスが、前記記憶デバイスの前記管理情報記憶領域が存在する場所と同じ場所に、前記管理情報記憶領域と同じ記憶容量の別の管理情報記憶領域を有することができる。前記少なくとも一つのコンピュータが、前記記憶デバイス内の全ての情報を、前記別の管理情報記憶領域が用意された前記別の記憶デバイスにコピーすることができる。
【００２７】
一つの実施態様では、前記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在してもよい。前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有することができる。前記別の記憶デバイスが、別の管理情報記憶領域を有しないが別のホスト記憶領域を有することができる。前記少なくとも一つのコンピュータが、前記記憶デバイス内の全ての情報を、前記別の管理情報記憶領域が用意された前記別の記憶デバイスにコピーし、前記別の記憶デバイスの前記別のホスト記憶領域のアドレスを調整することができる。
【００２８】
一つの実施態様では、記記憶デバイスと同じ記憶サイズを有する別の記憶デバイスが存在してもよい。前記記憶デバイスが、前記記憶デバイスの構成に関する種々の管理情報を記憶するための管理情報記憶領域と、前記通信装置の一つであるホストコンピュータによって読み出される又は書き込まれるデータであるホストデータを記憶するためのホスト記憶領域とを有することができる。前記少なくとも一つのコンピュータが、前記別の記憶デバイスが所定の条件に適合する場合には、前記記憶デバイス内の情報のコピー先として設定することを禁止することができる。前記所定の条件とは、前記別の記憶デバイスに少なくとも一つのエクステントが設定されていることであってもよい。
【００２９】
本発明の第三の側面に従うデータ処理方法では、記憶デバイスに設けられた複数のエクステントにそれぞれ対応した複数のアクセス制御属性がある。エクステントに対応したアクセス制御属性は、複数種類のアクセス制御属性の中から選択された種類のアクセス制御属性である。前記複数種類のアクセス制御属性には、読出し禁止を意味するアクセス制御属性が含まれておらず、書込み許可を意味するアクセス制御属性と、読出し許可を意味するアクセス制御属性と、書込み禁止を意味するアクセス制御属性とが含まれている。この場合、上記データ処理方法は、以下の処理、
書込み対象データと書込み要求とを送信するホストコンピュータから前記書込み要求を受信し、
前記受信した書込み要求に従う書込み先エクステントのアクセス制御属性を、記憶デバイスに設けられた複数のエクステントにそれぞれ対応した複数のアクセス制御属性の中から検索し、
前記検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、
前記判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御し、
読出し対象データの読み出し要求を送信するホストコンピュータから前記読出し要求を受信し、
前記受信した読み出し要求に従う読み出し元エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索することを行うことなく、前記読出し元エクステントから前記読出し対象データを読み出す、
を実行する。
【００３０】
一つの実施態様では、上記データ処理方法は、前記通信装置からの要求に応答して、以下の（１）又は（２）、
（１）第一の時点から第二の時点の間に前記記憶デバイスに書き込まれた少なくとも一つの書き込み対象データを有する領域を含んだ領域を一つのエクステントとし、且つ、前記エクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
（２）第一の時点で一つのエクステントを設定し、前記設定されたエクステントに書込み対象データが格納された後の第二の時点で前記設定されたエクステントに対するアクセス制御属性を前記属性記憶域に格納する処理、
を実行する。
【００３１】
本発明の第四の側面に従うデータ処理方法では、複数の記憶デバイスの少なくとも一つの記憶デバイスに設けられる複数のエクステントと、記憶デバイスと通信装置との間でやり取りされるデータを一時的に記憶するキャッシュメモリ領域と、データのやり取りを制御するための情報を記憶する制御メモリ領域と、前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する第一の管理領域と、書込み禁止を意味するアクセス制御属性に対応したエクステントである書込み禁止エクステントが前記複数のエクステントに含まれているか否かを表す書込み禁止エクステント有無情報を各記憶デバイス毎に記憶する第二の管理領域とが備えられる。前記第一の管理領域は、前記複数のエクステントを有する前記記憶デバイス内に存在し、前記第二の管理領域は、前記キャッシュメモリ領域と前記制御メモリ領域とのうちの少なくとも一方に存在する。この場合、データ処理方法は、以下の処理、
書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信された場合、前記第二の管理領域にアクセスして、前記書込み要求に従う書込み先記憶デバイスに対応した書込み禁止エクステント有無情報を参照することにより、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在するか否かの判定を行い、
前記書込み先記憶デバイスに前記書込み禁止エクステントが存在すると判定された場合、前記書込み先記憶デバイスに設けられた前記第一の管理領域にアクセスし、前記書込み先記憶デバイスに設けられた複数のエクステントのうちの書込み先エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索し、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行い、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する、
を実行する。
【００３２】
本発明の第五の側面に従うデータ処理システムは、記憶デバイスに設けられた複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する属性記憶域と、書込み対象データと書込み要求とを送信するホストコンピュータから前記書込み要求を受信する書込み要求受信手段と、前記受信した書込み要求に従う書込み先エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索する属性検索手段と、前記検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行う書込み禁止判定手段と、前記判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する書込み制御手段と、読出し対象データの読み出し要求を送信するホストコンピュータから前記読出し要求を受信する読出し要求受信手段と、前記受信した読み出し要求に従う読み出し元エクステントのアクセス制御属性を前記複数のアクセス制御属性の中から検索することを行うことなく、前記読出し元エクステントから前記読出し対象データを読み出す読出し手段とを備える。エクステントに対応したアクセス制御属性は、複数種類のアクセス制御属性の中から選択された種類のアクセス制御属性である。前記複数種類のアクセス制御属性には、読出し禁止を意味するアクセス制御属性が含まれておらず、書込み許可を意味するアクセス制御属性と、読出し許可を意味するアクセス制御属性と、書込み禁止を意味するアクセス制御属性とが含まれている。
【００３３】
本発明の第六の側面に従うデータ処理システムでは、複数の記憶デバイスの少なくとも一つの記憶デバイスに設けられる複数のエクステントがある。そのデータ処理システムは、記憶デバイスと前記通信装置との間でやり取りされるデータを一時的に記憶するキャッシュメモリ領域と、前記データのやり取りを制御するための情報を記憶する制御メモリ領域と、前記複数のエクステントにそれぞれ対応した複数のアクセス制御属性を記憶する第一の管理領域と、書込み禁止を意味するアクセス制御属性に対応したエクステントである書込み禁止エクステントが前記複数のエクステントに含まれているか否かを表す書込み禁止エクステント有無情報を各記憶デバイス毎に記憶する第二の管理領域とを備える。前記第一の管理領域は、前記複数のエクステントを有する前記記憶デバイス内に存在し、前記第二の管理領域は、前記キャッシュメモリ領域と前記制御メモリ領域とのうちの少なくとも一方に存在する。この場合、データ処理システムは、書込み対象データと書込み要求とを送信する通信装置から前記書込み要求が受信する手段と、前記第二の管理領域にアクセスして、前記書込み要求に従う書込み先記憶デバイスに対応した書込み禁止エクステント有無情報を参照する手段と、前記参照により、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在するか否かの判定を手段と、前記書込み先記憶デバイスに前記書込み禁止エクステントが存在すると判定された場合、前記書込み先記憶デバイスに設けられた前記第一の管理領域にアクセスする手段と、前記書込み先記憶デバイスに設けられた複数のエクステントのうちの書込み先エクステントに対応したアクセス制御属性を前記複数のアクセス制御属性の中から検索する手段と、検索されたアクセス制御属性が書込み禁止を意味するアクセス制御属性か否かの判定を行う手段と、その判定の結果に応じて、前記書き込み対象データを前記書込み先エクステントに書き込むか否かを制御する手段とを備える。
【００３４】
上記各手段は、ハードウェア、コンピュータプログラム又はそれらの組み合わせにより実現することができる。また、上記各手段は、ステップと読みかえられても良い。その場合には、データ処理方法を表すことができる。
【００３５】
通信装置は、通信機能を備えた装置であればどのような種類のものでも採用することができる。例えば、通信装置は、ホストコンピュータ、別のデータ処理システム（例えば、ストレージシステム）、後述する管理端末又は保守端末とすることができる。
【００３６】
また、記憶デバイスは、物理的な記憶デバイスであっても良いし、物理的な記憶デバイス上に設けられる論理的な記憶デバイスであっても良い。
【００３７】
また、少なくとも一つのコンピュータは、例えば、マイクロプロセッサであっても良いし、パーソナルコンピュータ或いはサーバ等のコンピュータマシンであっても良い。
【発明の効果】
【００３８】
本発明によれば、通信装置からのアクセス要求の処理に要する時間が長くなってしまうことを抑えることができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の一実施形態に係る幾つかの実施例について、図面を参照して説明する。
【実施例１】
【００４０】
図１は、本発明の一実施形態の第一実施例に係るコンピュータシステムのハードウェア構成を示すブロック図である。
【００４１】
第一実施例に係るコンピュータシステムは、ホストコンピュータ（以下、「ホスト」と略記する）１１０と、ストレージシステム１２０と、管理端末１３０と、メールサーバ１８０とを備える。ホスト１１０、ストレージシステム１２０、管理端末１３０及びメールサーバ１８０は、ＬＡＮ１７０等の第一の通信ネットワークに接続される。さらに、ホスト１１０、ストレージシステム１２０及びメールサーバ１８０は、ストレージエリアネットワーク（ＳＡＮ）１５０等の第二の通信ネットワークに接続される。このコンピュータシステムには、複数のホスト１１０及び複数のストレージシステム１２０が含まれてもよい。図１には、一台のホスト１００Ａ、二台のストレージシステム１２０Ａ及びストレージシステム１２０Ｂを代表的に例に採り示す。
【００４２】
ホスト１１０Ａは、ＳＡＮ１５０を介してストレージシステム１２０と通信しデータの転送を制御する入出力部（例えばインターフェース回路）１１３と、コンピュータプログラムやデータ等が格納されるメインメモリ１１２と、メインメモリ１１２に格納されたコンピュータプログラムを実行することによりホスト１１０Ａの動作を制御するプロセッサ１１１とを備える。
【００４３】
ストレージシステム１２０Ａも１２０Ｂも、実質的に同じ構成にすることができるので、１２０Ａを代表的に例に採り説明する。ストレージシステム１２０Ａは、例えば、一又は複数のディスクドライブ（例えばハードディスクドライブ）１２１を有するディスクアレイ装置とすることができる。ストレージシステム１２０Ａは、ディスクドライブ１２１の他に、保守端末１２２とストレージ制御装置１４０とを備える。
【００４４】
保守端末１２２は、例えば、プロセッサやメモリを備えるコンピュータ装置（例えばノート型のパーソナルコンピュータ）であり、ＬＡＮ１７０を介して管理端末１３０と通信することができる。保守端末１２２は、例えば、管理端末１３０又は保守端末１２２のオペレータからの指示に応答して、ストレージ制御装置１４０内の制御メモリに記録されている情報を更新したり、ディスクドライブ１２１に設けられた論理記憶デバイス内の情報を更新したりすることができる。
【００４５】
ストレージ制御装置１４０は、ストレージシステム１２０Ａの動作を制御する装置である。ストレージ制御装置１４０は、ＳＡＮ１５０を介してホスト１１０Ａと通信してデータの転送を制御する入出力部（例えばインターフェース回路）１４１と、ホスト１１０Ａとディスクドライブ１２１との間でやり取りされるデータを一時的に格納するキャッシュメモリ１４２とを備える。また、ストレージ制御装置１４０は、ディスクドライブ１２１と通信しデータの転送を制御する入出力部（例えばインターフェース回路）１４３と、コンピュータプログラム等の種々の情報が格納される制御メモリ１４５と、制御メモリ１４５に格納されたコンピュータプログラムを実行することによりストレージ制御装置１４０の動作を制御するプロセッサ１４４とを備える。
【００４６】
管理端末１３０は、ＬＡＮ１７０を介してホスト１１０Ａ、ストレージシステム１２０、メールサーバ１８０と通信し、これらを管理するコンピュータである。管理端末１３０のハードウェア構成は、ホスト１１０Ａと同様であるため、図示及び説明を省略する。管理端末１３０は、保守端末１２２の入出力コンソールとして動作数することができる。すなわち、管理端末１３０と保守端末１２２とにより、ストレージシステム１２０の保守や管理を行うことができる。
【００４７】
メールサーバ１８０は、ＬＡＮ１７０を介して接続された他のコンピュータ（図示省略）に電子メールサービスを提供するコンピュータである。メールサーバ１８０のハードウェア構成は、ホスト１１０Ａと同様であるため、図示及び説明を省略する。メールサーバ１８０は、電子メールサービスを提供する際に、電子メールをストレージシステム１２０Ｂに格納する。そして、メールサーバ１８０は、所定のタイミングで（例えば、毎日所定の時刻に）、ストレージシステム１２０Ｂに格納された電子メールを、ＳＡＮ１５０を介して読み出し、ＬＡＮ１７０を介してホスト１１０Ａに転送する。ホスト１１０Ａは、例えば、いわゆるアーカイブサーバであり、メールサーバ１８０から転送された電子メールを、ストレージシステム１２０Ａに格納する。
【００４８】
以上が、第一実施例に係るコンピュータシステムのハードウェア構成についての説明である。なお、メールサーバ１８０からホスト１１０Ａへの電子メールの転送は、ホスト１１０Ａからの要求によって実行されてもよいし、メールサーバ１８０からの要求によって実行されてもよい。
【００４９】
また、電子メールは、メールサーバ１８０又はホスト１１０Ａからの指示によって、ＬＡＮ１７０を経由せず、ＳＡＮ１５０を経由して、ストレージシステム１２０Ｂからストレージシステム１２０Ａに直接転送されてもよい。
【００５０】
また、所定のタイミングでホスト１１０ＡがＳＡＮ１５０を経由してストレージシステム１２０Ｂに格納されている電子メールを読み出して、読み出した電子メールデータをストレージシステム１２０Ａに格納してもよい。
【００５１】
さらに、メールサーバ１８０は、ストレージシステム１２０Ａを用いて電子メールサービスを提供し、ストレージシステム１２０Ａに電子メールを格納してもよい。この場合、電子メールは、所定のタイミングで、メールサーバ１８０が使用するストレージシステム１２０Ａ内のＬＤＥＶから、ホスト１１０Ａが使用するストレージシステム１２０Ａ内の他のＬＤＥＶにコピーされてもよい。このコピー処理は、メールサーバ１８０又はホスト１１０Ａからの命令に基づいて、ストレージシステム１２０Ａのストレージ制御装置１４０が実行してもよい。あるいは、ホスト１１０Ａが、ストレージシステム１２０Ａ内のＬＤＥＶから電子メールを読み出して、読み出した電子メールを、ホスト１１０Ａが使用するストレージシステム１２０Ａ内の他のＬＤＥＶに格納してもよい。
【００５２】
図２は、本発明の一実施形態の第一実施例に係るコンピュータシステムの機能ブロック図である。図２において、図１と共通する部分は、説明を省略する。
【００５３】
ホスト１１０Ａのメインメモリ１１２には、複数のコンピュータプログラムを格納することができるが、それら複数のコンピュータプログラムに含まれるコンピュータプログラムとして、例えば、アプリケーション２１１と、ストレージシステム制御部２１２とがある。
【００５４】
アプリケーション２１１は、ホスト１１０Ａをアーカイブサーバとして機能させるためのプログラムである。ホスト１１０Ａは、その他の機能を実現するために、複数のアプリケーション２１１を有してもよい。
【００５５】
ストレージシステム制御部２１２は、例えば常駐型のコンピュータプログラムであり、ストレージシステム１２０Ａへのデータの書き込み及びストレージシステム１２０Ａからのデータの読み出しを制御する。ストレージシステム制御部２１２は、例えば、アプリケーション２１１からの指示に応答して、エクステント毎のアクセス制御属性の設定を行う機能をもっている。
【００５６】
管理端末１３０内の管理部１３１は、ホスト１１０Ａ、ストレージシステム１２０及びメールサーバ１８０を管理するためのコンピュータプログラムである。管理部１３１は、例えば、ホスト１１０Ａを管理する管理プログラム、ストレージシステム１２０を管理するための管理プログラム、及び、メールサーバ１８０を管理するための管理プログラム等の複数の管理プログラムによって構成されてもよい。あるいは、上記の各管理プログラムが異なる管理端末１３０に実装されてもよい。
【００５７】
ストレージシステム１２０Ａ内のＬＤＥＶ２２６は、論理ボリューム或いは論理ユニットと呼ばれることもあり、一又は複数のディスクドライブ１２１上に設けられた論理的な記憶デバイスである。一つのＬＤＥＶ２２６は、一つのディスクドライブ１２１の一部の記憶領域であってもよいし、複数のディスクドライブ１２１の記憶領域によって構成されてもよい。ストレージシステム１２０Ａには、任意の数のＬＤＥＶ２２６を設定することができる。各ＬＤＥＶ２２６には、任意の数のエクステント（図３参照）を設定することができる。「エクステント」とは、ＬＤＥＶ２２６内に設定される記憶領域である。その記憶領域のサイズは、一つのＬＤＥＶ２２６よりも小さければ、予め定められた固定サイズであっても良いし、ユーザ任意のサイズであってもよい。本実施例では、エクステント毎に、種々のアクセス制御属性を設定することができる。
【００５８】
ストレージシステム１２０Ａの制御メモリ１４５には、複数のコンピュータプログラムを格納することができるが、それら複数のコンピュータプログラムに含まれるコンピュータプログラムとしては、例えば、アクセス制御部２２１と、エクステント管理部２２２とがある。
【００５９】
アクセス制御部２２１は、ホスト１１０Ａからのアクセス要求（すなわち、データの書き込み要求又は読み出し要求）に従って、ＬＤＥＶ２２６にアクセスし、データの書き込み又は読み出しを実行する。アクセス先のエクステントに書き込み禁止等のアクセス制御属性が設定されている場合は、アクセス制御部２２１は、そのアクセス制御属性に従ってアクセスを制御する。
【００６０】
エクステント管理部２２２は、ＬＤＥＶ２２６内のエクステントを管理する。具体的には、例えば、エクステント管理部２２２は、エクステントの新規作成、エクステントの削除、及び、エクステントに対するアクセス制御属性の設定のうちの少なくとも一つを実行することができる。
【００６１】
ＬＤＥＶ群管理情報２２３は、ストレージシステム１２０Ａに備えられる複数のＬＤＥＶ２２６を管理するための情報であり、例えば、制御メモリ１４５に格納される。ＬＤＥＶ群管理情報２２３には、例えば、各ＬＤＥＶ２２６毎に、そのＬＤＥＶ２２６を識別するためのＬＤＥＶ番号（番号に限らず他種のＩＤであっても良い）と、そのＬＤＥＶ２２５にボリューム管理領域（以下、「ＶＭＡ」と言う）が存在するか否かを示す情報が含まれる。
【００６２】
以上が、本発明の一実施形態の第一実施例に係るコンピュータシステムの概要についての説明である。なお、上述の説明において、キャッシュメモリ１４２と制御メモリ１４５とは必ずしも物理的に別々のメモリである必要は無く、例えば、同一のメモリに、キャッシュメモリ１４２として扱われるメモリ領域と、制御メモリ１４５として扱われるメモリ領域とが用意されてもよい。
【００６３】
さて、以下、本実施例で行われるエクステントの管理や、アクセス制御について、詳細に説明する。
【００６４】
図３は、ＬＤＥＶ２２６の構成例を示す。なお、以下の説明では、複数の対象のうちのどの対象でも良い場合には、枝符号を付さずに親番号のみで表記する。例えば、複数のエクステント管理情報３０６Ａ、３０６Ｂ、…のうちのどのエクステント管理情報でも良い場合には、「エクステント管理情報３０６」のように、枝符号「Ａ」や「Ｂ」を付さずに表記する。
【００６５】
ＬＤＥＶ２２６の記憶領域は、ボリューム管理領域（ＶＭＡ）３０１と、ユーザ領域３０２とに大別される。
【００６６】
ＶＭＡ３０１は、そのＶＭＡ３０１を有するＬＤＥＶ２２６を管理するための情報が格納される領域である。それに対し、ユーザ領域３０２は、ホスト１１０Ａから書き込まれたり読み出されたりするデータ（換言すれば、ユーザが書き込み対象或いは読み出し対象とするデータ）が格納される領域である。ユーザ領域３０２には、複数のエクステント３０７Ａ、３０７Ｂ、…が設定され、各エクステント３０７Ａ、３０７Ｂ、…に、データが格納される。ユーザは、ユーザ領域３０２内の任意の領域を、エクステント３０７として設定することができる。さらに、ユーザは、各エクステント３０７に任意のアクセス制御属性を設定することができる。
【００６７】
ＶＭＡ３０１には、ＬＤＥＶ共通情報３０３と、複数のエクステント３０７Ａ、３０７Ｂ、…にそれぞれ対応した複数のエクステント管理情報３０６Ａ、３０６Ｂ、…とが格納される。すなわち、例えば一つのエクステント３０７Ａに対し、そのエクステント３０７Ａに対応した例えば一つのエクステント管理情報３０６ＡがＶＭＡ３０１に格納される。ＶＭＡ３０１では、例えば、ＬＤＥＶ共通情報３０３の方が、複数のエクステント管理情報３０６Ａ、３０６Ｂ、…よりも、先頭側に位置する。換言すれば、例えば、ＬＤＥＶ共通情報３０３が格納される領域の方が、一又は複数のエクステント管理情報３０６Ａ、３０６Ｂ、…が格納される領域よりも先頭側に位置する。
【００６８】
ＬＤＥＶ２２６内の各領域は、論理ブロック（図示省略）によって構成することができる。したがって、ＬＤＥＶ２２６内の各領域は、論理ブロックアドレス（ＬＢＡ）によって定義することができる。ＬＢＡには、ホスト１１０Ａによって認識される外部ＬＢＡと、ストレージシステム１２０によって認識される内部ＬＢＡとがある。ＶＭＡ３０１を構成する論理ブロックには、内部ＬＢＡが付与されるが、外部ＬＢＡは付与されない。図３の例では、ＬＤＥＶ２２６がＬＢＡ「０」から「１０００」までの論理ブロックによって構成され、そのうち、ＶＭＡ３０１の論理ブロック数が１００である。この場合、ＶＭＡ３０１の論理ブロックには、「０」から「９９」までの内部ＬＢＡが付与されるが、外部ＬＢＡは付与されない。一方、ユーザ領域３０２の先頭論理ブロックの内部ＬＢＡは「１００」であり、外部ＬＢＡは「０」である。さらに、ユーザ領域３０２の末尾論理ブロックの内部ＬＢＡは「１０００」であり、外部ＬＢＡ
は「９００」である。ユーザは、ＶＭＡ３０１及びユーザ領域３０２を任意の大きさに設定することができる。また、ユーザは、ＶＭＡ３０１を含まないＬＤＥＶ２２６を設定することもできる。ただし、ＬＤＥＶ２２６にエクステント３０７を設定し、各エクステント３０７にアクセス制御属性を設定するためには、ＬＤＥＶ２２６にＶＭＡ３０１を設けるか、ＶＭＡ３０１の代わりに、制御メモリ１４５にＶＭＡ３０１を含んだ情報を格納する必要がある。
【００６９】
以下、エクステント管理情報３０６及びＬＤＥＶ共通情報３０３について説明する。なお、以下の説明では、ＶＭＡ３０１に書かれる情報要素群を、便宜上、「管理情報群」と称する場合がある。
【００７０】
図４Ａは、エクステント管理情報３０６の説明図である。
【００７１】
エクステント管理情報３０６は、そのエクステント管理情報に対応したエクステント３０７に関する種々の情報要素を含んでいる。具体的には、例えば、エクステント管理情報３０６は、エクステントＩＤ、アクセス制御属性情報、先頭外部ＬＢＡ（ＬＢＡは、論理ブロックアドレスの略）、エクステント長、継続期間設定日時、継続期間及びエクステントポインタを含む。
【００７２】
「エクステントＩＤ」は、ＬＤＥＶ２２６内の複数のエクステント３０７のうちの一つを一意に識別するための識別子である。例えば、一つのＬＤＥＶ２２６内に、最大６５５３６個のエクステント３０７が存在する場合には、エクステントＩＤを２バイト（１６ビット）以上にすると良いと考えられる。なぜなら、エクステント３０７が存在する最大の数と同じ６５５３６通りのエクステントＩＤを用意することができるからである。
【００７３】
「アクセス制御属性情報」は、複数種類のアクセス制御属性のうちのいずれか一つのアクセス制御属性を表す。複数種類のアクセス制御属性としては、例えば、「リード／ライト可能」、「リードオンリー」、「ライトオンリー」及び「リード／ライト不可」の４種類がある。「リード／ライト可能」は、読み出しと書き込みの両方が許可されていることを意味する。「リードオンリー」は、データが一旦書かれた場合にそのデータを読み出すことは許可されているがそのデータを更新することは許可されていないことを意味する。「ライトオンリー」は、データを更新することは許可されているがそのデータを読み出すことは許可されていないことを意味する。「リード／ライト不可」は、データが一旦書かれた場合にはそのデータを読み出すことも更新することもできないことを意味する。
【００７４】
アクセス制御属性情報が表すアクセス制御属性は、複数種類のステータスフラグのオン及びオフによって表現される。複数種類のステータスフラグとしては、例えば、書込み禁止フラグと、読み出し禁止フラグとがある。書き込み禁止フラグが「有効」（例えば「１」）に設定された場合、エクステント３０７には書き込みが禁止という属性が設定されたことになり、その結果、当該エクステント３０７へのデータの書き込みが禁止される。同様に、読み出し禁止フラグが「有効」に設定された場合、エクステント３０７には読み出し禁止という属性が設定されたことになり、その結果、当該エクステント３０７からのデータの読み出しが禁止される。以上のことから、各種アクセス制御属性は、図４Ｂに示すように表現される。すなわち、アクセス制御属性が、「リード／ライト可能」の場合、書込み禁止フラグ「０」（無効）及び読み出し禁止フラグ「０」となり、「リードオンリー」の場合、書込み禁止フラグ「１」（有効）及び読み出し禁止フラグ「０」となり、「ライトオンリー」の場合、書込み禁止フラグ「０」及び読み出し禁止フラグ「１」となり、「リード／ライト不可」の場合、書込み禁止フラグ「１」及び読み出し禁止フラグ「１」となる。書き込み禁止フラグ及び読み出し禁止フラグは、ユーザが、ホスト１１０Ａ、管理端末１３０、又は、保守端末１２２を操作して設定してもよい。あるいは、ホスト１１０Ａ又はストレージシステム１２０Ａが自動的にこれらのフラグを設定してもよい。
【００７５】
「先頭外部ＬＢＡ」は、エクステント３０７の先頭論理ブロックの外部ＬＢＡである。
【００７６】
「エクステント長」は、エクステントの記憶サイズ（換言すれば記憶容量）である。
【００７７】
「継続期間設定日時」は、書き込み禁止フラグ及び読み出し禁止フラグのうちの少なくとも一方を「有効」に設定した時の日時である。
【００７８】
「継続期間」は、書き込み禁止フラグ及び読み出し禁止フラグの無効化が禁止される期間である。継続期間は、例えば、それらのフラグが「有効」に設定された時点で設定される。継続期間は、別の言い方をすれば、エクステント３０７に格納されたデータの保存期間と言うこともできる。例えば、ユーザが、あるエクステント３０７に対して、２００４年１０月１日０時０分に書き込み禁止フラグを「有効」に設定し、この書き込み禁止フラグの無効化が禁止される期間を「１年間」と設定する。このとき、当該エクステント３０７の継続期間設定日時には、書き込み禁止フラグを「有効」に設定した日時として、「２００４年１０月１日０時０分」が書き込まれる。さらに、継続期間には、書き込み禁止フラグの無効化が禁止される期間として、「１年間」が書き込まれる。この場合、当該エクステント３０７には、２００５年１０月１日０時０分まで書き込み禁止属性が設定される。すなわち、２００５年１０月１日０時０分までは、当該エクステント３０７にデータを書き込むことができない。
【００７９】
「エクステントポインタ」は、エクステント３０７を含む管理ブロックにそのエクステント３０７の次のエクステント３０７が含まれている場合に書かれる情報であり、具体的には、当該次のエクステント３０７のエクステントＩＤである。なお、管理ブロックについては、後で説明する。
【００８０】
以上が、エクステント管理情報に含まれる各種情報要素についての説明である。
【００８１】
ＬＤＥＶ共通情報３０３は、そのＬＤＥＶ共通情報３０３が書かれたＬＤＥＶ２２６を管理するための情報であり、その情報にも、複数の情報要素が含まれる。例えば、ＬＤＥＶ共通情報３０３は、トータル容量（ＶＭＡ３０１とユーザ領域３０２とを含んだＬＤＥＶ２２６それ自体の記憶容量）、ＶＭＡタイプ（ＶＭＡ３０１の用途を表す情報）及びＶＭＡ容量（ＶＭＡ３０１の記憶容量）のうちの少なくとも一種類の情報要素を含んでもよい。また、ＬＤＥＶ共通情報３０３は、その情報要素に代えて又は加えて、以下の種類の情報を含むことができる。
【００８２】
図５は、ＬＤＥＶ共通情報３０３に含まれる情報要素の種類の一例を示す。
【００８３】
ＬＤＥＶ共通情報３０３には、例えば、ＶＭＡ識別子、エクステント有無、ライト禁止エクステント有無、エクステントＩＤビットマップ、管理ブロック情報ビットマップ、及びエクステントポインタが含まれる。
【００８４】
「エクステント有無」は、ＬＤＥＶ２２６が一つ以上のエクステント３０７を含むか否かを示す情報である。
【００８５】
「書込み禁止エクステント有無」は、書込みの禁止に関するアクセス制御属性が設定されたエクステントが一つでもＬＤＥＶ２２６に存在するか否かを表す情報である。
【００８６】
「読出し禁止エクステント有無」は、読出しの禁止に関するアクセス制御属性が設定されたエクステントが一つでもＬＤＥＶ２２６に存在するか否かを表す情報である。
【００８７】
「エクステントＩＤビットマップ」は、ＬＤＥＶ２２６内に存在するエクステント３０７によって使用されているエクステントＩＤを示すビットマップである。具体的には、例えば、エクステントＩＤが２バイト（１６ビット）である場合、ＬＤＥＶ２２６内に６５５３６通りのエクステントＩＤが存在し得る。この場合、エクステントＩＤビットマップは、６５５３６ビットの領域を有し、各ビットが、存在し得るエクステントＩＤと対応する。これらのビットは、対応するエクステントＩＤがＬＤＥＶ２２６内に実際に存在するか否かを示すフラグである。
【００８８】
「管理ブロック情報ビットマップ」は、ＬＤＥＶ２２６内に設けられた管理ブロック（後述の図６Ａ乃至図６Ｂ参照）の状態を示すビットマップである。具体的には、例えば、管理ブロック情報ビットマップは、各管理ブロック８０１がエクステント３０７を含むか否か、各管理ブロックがエクステント３０７の端点（始点又は終点）を含むか否か、各管理ブロックが書き込み禁止領域を含むか否か、及び、各管理ブロックが読み出し禁止領域を含むか否かを示すステータスフラグを含む。
【００８９】
ここで、書き込み禁止領域とは、書き込み禁止属性が設定されたエクステント３０７であり、読み出し禁止領域とは、読み出し禁止属性が設定されたエクステント３０７である。
【００９０】
管理ブロックがエクステント３０７を含む場合、当該管理ブロックがエクステント３０７を含むか否かを示すフラグの値は「有効」（例えば、「１」）に設定される。
【００９１】
また、管理ブロックがエクステント３０７の端点を含むとき、当該管理ブロックがエクステント３０７を含むか否かを示すフラグの値は「有効」に設定される。すなわち、このフラグの値が「有効」のとき、当該管理ブロック８０１には、エクステント３０７の始点及び終点のうち少なくとも一方が含まれる。
【００９２】
管理ブロック８０１に含まれる少なくとも一つのエクステント３０７に書き込み禁止属性が設定されている場合、当該管理ブロック８０１が書き込み禁止領域を含むか否かを示すフラグの値は「有効」に設定される。
【００９３】
管理ブロック８０１に含まれる少なくとも一つのエクステント３０７に読み出し禁止属性が設定されている場合、当該管理ブロック８０１が読み出し禁止領域を含むか否かを示すフラグの値は「有効」に設定される。
【００９４】
エクステントポインタ５０４は、各管理ブロック内の先頭エクステント３０７へのポインタである。具体的には、管理ブロック内に一つのエクステント３０７が存在する場合、そのエクステント３０７のエクステントＩＤであり、管理ブロック内に複数のエクステント３０７が存在する場合、先頭のエクステント３０７のエクステントＩＤである。
【００９５】
図６Ａ及び図６Ｂは、管理ブロックの説明図である。具体的には、図６Ａは、一つのエクステント３０７Ｃが複数の管理ブロック８０１に跨る場合の一例を示す。図６Ｂは、一つのエクステント３０７Ｄが一つの管理ブロック８０１に含まれる場合を示す。
【００９６】
ＬＤＥＶ２２６の全体は、所定の大きさ（例えば３２メガバイト）の管理ブロック８０１に分割される。それに対し、エクステント３０７の位置及び大きさは、予め定められていても良いが、ユーザが任意に定めることができる。
【００９７】
図６Ａの例では、エクステント３０７Ｃは、管理ブロック８０１Ａの途中に始点があり、管理ブロック８０１Ｂ及び８０１Ｃの全体を占め、管理ブロック８０１Ｄの途中に終点がある。以下、エクステント３０７Ｃの端点（始点）を含む管理ブロック（例えば８０１Ａ）を、「端点管理ブロック」と呼ぶことがある。また、エクステント３０７Ｃの中間部分に相当する管理ブロック（例えば８０１Ｂ及び８０１Ｃ）を、「中間管理ブロック」と呼ぶことがある。また、エクステント３０７Ｃの端点（終点）を含む管理ブロック（例えば８０１Ｄ）を、「端点管理ブロック」と呼ぶことがある。
【００９８】
一方、図６Ｂの例では、エクステント３０７Ｄは、管理ブロック８０１Ｆに含まれる。すなわち、管理ブロック８０１Ｆは、エクステント３０７Ｄの端点（始点及び終点）を含む。このため、このような管理ブロック（例えば８０１Ｆ）を、端点管理ブロックと呼ぶことにする。
【００９９】
図６Ａにおいて、管理ブロック８０１Ｂ及び８０１Ｃは、全体にエクステント３０７Ｃが設定されている。このため、管理ブロック８０１Ｂ及び８０１Ｃには、新たなエクステント３０７を作成することができない。さらに、エクステント３０７Ｃに書き込み禁止属性が設定されている場合、管理ブロック８０１Ｂ及び８０１Ｃには、データを書き込むことができない。
【０１００】
一方、図６Ｂにおいて、管理ブロック８０１Ｅ、８０１Ｇ及び８０１Ｈには、エクステント３０７が設定されていない。このため、管理ブロック８０１Ｅ、８０１Ｇ及び８０１Ｈには、新たなエクステントを作成することができる。また、データを書き込み又は読み出すこともできる。
【０１０１】
このように、中間管理ブロック８０１Ｂ及び８０１Ｃ、並びに、エクステント３０７を含まない管理ブロック８０１Ｅ、８０１Ｇ及び８０１Ｈについては、管理ブロック８０１ごとに、新たなエクステントの作成、データの書き込み又は読み出し等の処理の可否を判定することができる。その結果、これらの処理の可否の判定が簡略化される。
【０１０２】
一方、中間管理ブロック８０１Ｂ、８０１Ｃ及び８０１Ｆについては、これらの処理の可否を詳細に判定する必要がある。
【０１０３】
このような管理ブロック８０１を用いた処理の可否の判定について、図６Ｃを参照して詳細に説明する。
【０１０４】
図６Ｃは、管理ブロック８０１のステータスフラグと、処理の可否の判定との関係の説明図である。
【０１０５】
図６Ｃにおいて、ステータスフラグ９０１は、ボリューム内エクステント管理情報３０５の管理ブロック情報ビットマップ５０３の内容である。具体的には、ステータスフラグ９０１は、管理ブロック８０１がエクステント３０７を含むか否かを示すフラグ（９０３）、管理ブロック８０１がエクステント３０７の端点を含むか否かを示すフラグ（９０４）、管理ブロック８０１が書き込み禁止領域を含むか否かを示すフラグ（９０５）、及び、管理ブロック８０１が読み出し禁止領域を含むか否かを示すフラグ（９０６）を含む。
【０１０６】
管理ブロック８０１がエクステント３０７を含むか否かを示すフラグ（９０３）の値が「１」であるとき、その管理ブロック８０１は、エクステント３０７を含む。他のフラグも同様の意味を有する。
【０１０７】
図６Ｃは、これら四つのフラグの値の全ての組み合わせを示す。ただし、エクステント３０７を含まない管理ブロック８０１は、エクステント３０７の端点、書き込み禁止領域及び読み出し禁止領域のいずれも含まないため、行９２６〜行９２８及び行９３３〜行９３６の組み合わせは、存在しない。
【０１０８】
処理可否判定９０２は、管理ブロック８０１に対して処理を実行してよいか否かの判定である。判定される処理は、エクステント３０７の新規作成（９０７）、データの書き込み（９１０）及びデータの読み出し（９１１）である。エクステント３０７の新規作成（９０７）については、さらに、判定の対象の管理ブロック８０１が、新規作成されるエクステント３０７（以下、「新規エクステント３０７」と記載する）の端点管理ブロックに該当する場合（９０８）と、新規エクステント３０７の中間管理ブロックに該当する場合（９０９）とがある。
【０１０９】
管理ブロック８０１がエクステント３０７を含まない場合、全ての処理は、「可（ＯＫ）」と判定される（９２５）。
【０１１０】
管理ブロック８０１がエクステント３０７を含み（９０３）、当該管理ブロック８０１が、新規エクステント３０７の中間管理ブロックに該当するとき（９０９）、当該新規エクステント３０７の新規作成は「不可（ＮＧ）」と判定される（ｔ〜９２４、９２９〜９３２）。
【０１１１】
管理ブロック８０１がエクステント３０７を含むが（９０３）、当該エクステント３０７の端点を含まない場合（９０４）、当該管理ブロック８０１は、当該エクステント３０７の中間管理ブロックである。当該管理ブロック８０１が、新規エクステント３０７の端点管理ブロックに該当するとき（９０８）、当該新規エクステント３０７の新規作成は「不可」と判定される（９２１、９２４、９２９、９３２）。
【０１１２】
管理ブロック８０１がエクステント３０７を含み（９０３）、さらに、当該エクステント３０７の端点も含む場合（９０４）、当該管理ブロック８０１は、当該エクステント３０７の端点管理ブロックである。当該管理ブロック８０１が、新規エクステント３０７の端点管理ブロックに該当するときは（９０８）、当該新規エクステント３０７を新規作成することができる場合とできない場合とがある。このため、詳細判定が必要であると判定される（９２２、９２３、９３０、９３１）。
【０１１３】
具体的には、当該管理ブロック８０１内で当該エクステント３０７と当該新規エクステント３０７とが重複する場合は、当該新規エクステント３０７を新規作成することができない。一方、当該管理ブロック８０１内で当該エクステント３０７と当該新規エクステント３０７とが重複しない場合は、当該新規エクステント３０７を新規作成することができる。
【０１１４】
同様にして、管理ブロック８０１が書き込み禁止領域を含まない場合（９０５）、当該管理ブロック８０１へのデータの書き込みは「可」と判定される（９２１、９２２、９２９、９３０）。管理ブロック８０１が書き込み禁止領域を含み（９０５）、エクステント３０７の端点を含まない場合（９０４）、当該管理ブロック８０１へのデータの書き込みは「不可」と判定される（９２４、９３２）。管理ブロック８０１が書き込み禁止領域を含み（９０５）、さらに、エクステント３０７の端点も含む場合（９０４）、当該管理ブロック８０１にデータを書き込むことができる場合とできない場合とがある。具体的には、データが書き込まれる位置が、書き込み禁止領域内であるとき、当該データを書き込むことができない。このため、詳細判定が必要であると判定される（９２３、９３１）。
【０１１５】
管理ブロック８０１が読み出し禁止領域を含まない場合（９０６）、当該管理ブロック８０１からのデータの読み出しは「可」と判定される（９２１〜９２４）。管理ブロック８０１が読み出し禁止領域を含み（９０９）、エクステント３０７の端点を含まない場合（９０４）、当該管理ブロック８０１からのデータの読み出しは「不可」と判定される（９２９、９３２）。管理ブロック８０１が読み出し禁止領域を含み（９０６）、さらに、エクステント３０７の端点も含む場合（９０４）、当該管理ブロック８０１からデータを読み出すことができる場合とできない場合とがある。具体的には、読み出されるデータが、読み出し禁止領域内にあるとき、当該データを読み出すことができない。このため、詳細判定が必要であると判定される（９３０、９３１）。
【０１１６】
以上のような管理ブロック８０１を用いた処理可否判定の具体例を、図６Ａ乃至図６Ｃを参照して説明する。
【０１１７】
図６Ａにおいて、エクステント３０７Ｃに書き込み禁止属性が設定され、読み出し禁止属性が設定されていない場合、管理ブロック８０１Ａは、エクステント３０７Ｃを含み、エクステント３０７Ｃの端点を含み、書き込み禁止領域を含み、読み出し禁止領域を含まない。すなわち、管理ブロック８０１Ａのステータスフラグ９０１は、図６Ｃの行９２３に相当する。
【０１１８】
管理ブロック８０１Ａにエクステント３０７を新規作成する場合、新規エクステント３０７の端点が管理ブロック８０１に含まれるときは、エクステント３０７Ｃと当該新規エクステント３０７とが重複するときと重複しないときとがある。したがって、詳細な判定が必要になる（９０８）。エクステント３０７Ｃと当該新規エクステント３０７とが重複しないとき、当該新規エクステント３０７を新規作成することができる。
【０１１９】
新規エクステント３０７の端点が管理ブロック８０１に含まれるときは、エクステント３０７Ｃと当該新規エクステント３０７とが必ず重複する。このため、当該新規エクステント３０７を新規作成することができない（９０９）。
【０１２０】
管理ブロック８０１Ａにデータを書き込む場合、データが書き込まれる位置がエクステント３０７Ｃの外側であれば、当該データを書き込むことができる。しかし、データが書き込まれる位置がエクステント３０７Ｃの内側であれば、当該データを書き込むことができない。このため、データが書き込まれる位置がエクステント３０７Ｃの外側であるか内側であるかを詳細に判定する必要がある（９１０）。
【０１２１】
管理ブロック８０１Ａには、読み出し禁止領域が含まれない。このため、管理ブロック８０１Ａ内の全てのデータを読み出すことができる（９１１）。
【０１２２】
以上が、本実施例で行われるエクステントの管理や、アクセス制御についての説明である。本実施例（及び／又は後述の他の実施例）では、特願２００４−３１３８７４（本出願時点では未公開）に開示の技術を援用することができる。
【０１２３】
さて、以下、本実施例についてより詳細に説明していく。
【０１２４】
図７Ａは、ホスト１１０Ａから書き込み要求を受けた場合に行われる書込み要求処理の流れを示す。
【０１２５】
プロセッサ１４４は、ホスト１１０Ａから入出力部１４１を介して書き込み要求（例えばＳＣＳＩプロトコルに基づくライトコマンド）と書込み対象データとを受けた場合、キャッシュメモリ１４２にキャッシュセグメント（別の言い方をすればキャッシュ領域）を確保し、少なくとも書込み対象データを、確保されたキャッシュセグメントに格納する。
【０１２６】
プロセッサ１４４は、書き込み要求が書き込み先とする領域を持ったＬＤＥＶ（以下、書込みターゲットＬＤＥＶ）２２６にＶＭＡ３０１が存在するか否かの判定を行う（ステップＳ１１）。例えば、プロセッサ１４４は、書込みターゲットＬＤＥＶ２２６のＶＭＡ３０１にＬＤＥＶ共通情報３０３（又はエクステント管理情報３０６）の全部又は一部（例えば所定の情報要素）が存在するか否かをチェックすることにより、Ｓ１１の判定を行うことができる。また、その際、プロセッサ１４４は、参照対象、すなわち、そのＬＤＥＶ共通情報３０３（又はエクステント管理情報３０６）の全部又は所定の一部（例えばＶＭＡ識別子）がキャッシュメモリ１４２に存在する場合には、キャッシュメモリ１４２にアクセスしてその参照対象を参照し、参照対象がキャッシュメモリ１４２に存在しない場合には、書込みターゲットＬＤＥＶ２２６からキャッシュメモリ１４２に参照対象を読み出し、その後、キャッシュメモリ１４２にアクセスしてその参照対象を参照することができる。参照対象を参照できた場合に、ＶＭＡ３０１が存在するとの判定結果を得ることができる。
【０１２７】
書込みターゲットＬＤＥＶ２２６にＶＭＡ３０１が存在するとの判定結果が得られた場合（Ｓ１１でＹｅｓ）、プロセッサ１４４は、書込み禁止が設定されたエクステントが書込みターゲットＬＤＥＶ２２６に存在するか否かの判定を行う（Ｓ１２）。プロセッサ１４４は、例えば、ＬＤＥＶ共通情報３０３中の情報要素「書込み禁止エクステント有無」を参照し、書込みの禁止に関するアクセス制御属性が設定されたエクステントが一つでもＬＤＥＶ２２６に存在することが記述されているか否かをチェックすることにより、Ｓ１２の判定を行うことができる。また、その際、プロセッサ１４４は、情報要素「書込み禁止エクステント有無」がキャッシュメモリ１４２に存在すればそれを参照し、存在しなければ、ＬＤＥＶ２２６からキャッシュメモリ１４２に少なくとも情報要素「書込み禁止エクステント有無」を読出し、読み出されたその情報要素を参照してもよい。情報要素「書込み禁止エクステント有無」から、書込み禁止が設定されたエクステントが存在しないことが特定された場合に、書込み禁止が設定されたエクステントが書込みターゲットＬＤＥＶ２２６に存在しないとの判定結果を得ることができる。
【０１２８】
書込み禁止が設定されたエクステントが書込みターゲットＬＤＥＶ２２６に存在しないとの判定結果が得られた場合（Ｓ２２でＹｅｓ）、プロセッサ１４４は、書込み要求に従う書込み先領域を含んだエクステント（以下、書込み先エクステント）に対応するエクステント管理情報３０６をＶＭＡ３０１から検索する（Ｓ１３）。検索ヒットした場合、例えば、プロセッサ１４４は、検索ヒットしたそのエクステント管理情報３０６をＶＭＡ３０１から読み出しキャッシュメモリ１４２に書く。
【０１２９】
プロセッサ１４４は、そのエクステント管理情報３０６中の所定の情報要素「アクセス制御属性情報」を参照し、その情報要素が書込み禁止を表しているか否か（換言すれば、書込み禁止フラグが有効になっているか否か）をチェックすることにより、書込み先エクステントに書込み禁止が設定されているか否かの判定を行う（Ｓ１４）。情報要素「アクセス制御属性情報」が書込み禁止を表していないこと（換言すれば、書き込みを許可していること）が特定された場合に、書込み先エクステントに書込み禁止が設定されていないとの判定結果を得ることができる。
【０１３０】
書込み先エクステントに書込み禁止が設定されていないとの判定結果が得られた場合（Ｓ２４でＹｅｓ）、プロセッサ１４４は、書込み処理を実行する（Ｓ１５）。具体的には、例えば、プロセッサ１４４は、上記確保されたキャッシュセグメントから書込み対象データを読み出し、読み出された書込み対象データを、入出力部１４３を介して、書込み先エクステントに書き込む。
【０１３１】
以上が、書込み要求処理の流れである。
【０１３２】
この説明によれば、各ＬＤＥＶ２２６への書込み要求を受ける都度に、ＶＭＡ３０１へのアクセス、換言すればディスクドライブ１２１へのアクセスが行われる。その際、参照対象がＶＭＡ３０１ではなくキャッシュメモリ１４２に読み出されている場合には、キャッシュメモリ１４２へのアクセスが行われる。また、書込み要求に従う書込み先エクステントにデータを書き込んでも良いか否かを判定するために、ＶＭＡの中から書き込み先エクステントに対応したエクステント管理情報を検索し、且つ、検索されたエクステント管理情報から書込み先エクステントのアクセス制御属性が何であるかが判断されなければならない。
【０１３３】
このように、書込み要求を受けてからエクステントに書込み対象データが書かれる前に、ディスクドライブ１２１へのアクセス及び／又はキャッシュメモリ１４２へのアクセスが複数回行われるので、この書込み要求処理にかかる時間は、書込み要求で指定された領域に書込み対象データを単純に書き込む場合に比べて長くなる。
【０１３４】
この問題点は、格別の工夫が無ければ、読出し要求に応答して行われる読出し要求処理についても同様に存在する。
【０１３５】
しかし、本実施例では、以下の工夫により、読出し要求処理に要する時間の短縮が図られる。
【０１３６】
その工夫とは、図８に例示するように、読出し禁止を表すアクセス制御属性（例えば「リード／ライト不可」）が、どのエクステントにも設定されないようになっていることにある。これにより、読出し要求を受けた場合、プロセッサ１４４は、読出し要求に従う読出し対象データが書かれたエクステント（以下、読出し元エクステント）に読出し禁止の制限がかけられているか否かを判定する必要なく、読出し元エクステントから読出し対象データを読み出すことができる。なぜなら、本実施例では、読出し禁止を表すアクセス制御属性がどのエクステントにも設定されていないので、どのエクステントからもデータの読出しは可能であるからである。
【０１３７】
この実施例では、具体的には、例えば、以下の流れで読み出し要求処理が行われる。
【０１３８】
図７Ｂは、ホスト１１０Ａから読み出し要求を受けた場合に行なわれる読出し要求処理の流れを示す。
【０１３９】
プロセッサ１４４は、ホスト１１０Ａから入出力部１４１を介して読み出し要求（例えばＳＣＳＩプロトコルに基づくリードコマンド）を受けた場合、キャッシュメモリ１４２にキャッシュセグメント（別の言い方をすればキャッシュ領域）を確保する。
【０１４０】
プロセッサ１４４は、読出し元エクステントを持ったＬＤＥＶ（以下、読み出し元ＬＤＥＶ）２２６にＶＭＡ３０１が存在するか否かの判定を行う（Ｓ１）。このＳ１の判定は、Ｓ１１の判定と同じ方法で行うことができる。
【０１４１】
読み出し元ＬＤＥＶ２２６にＶＭＡ３０１が存在するとの判定結果が得られた場合（Ｓ１でＹｅｓ）、プロセッサ１４４は、読出し処理を実行する（Ｓ５）。具体的には、例えば、プロセッサ１４４は、読出し元エクステントから入出力部１４３を介して読出し対象データを読出し、読み出された読出し対象データを上記確保されたキャッシュセグメントに書き、且つ、キャッシュセグメントに書かれた読出し対象データを読出し、読み出された読出し対象データを、入出力部１４１を介してホスト１１０Ａに送信する。
【０１４２】
以上のように、この実施例では、読出し禁止がどのエクステントにも設定されていないので、読み出し要求処理では、読出し元エクステントのアクセス制御属性を全く確認することなく、読出し元エクステントから読出し対象データを読み出すことができる。このため、読み出し要求処理では、読出し禁止を表すアクセス制御属性（例えばリード／ライト不可）が設定されている可能性がある場合には行う必要のあるＳ２乃至Ｓ４の処理（図７Ｂに点線で示した処理）、すなわち、エクステント管理情報の検索やアクセス制御属性の参照などの処理（図７ＡのＳ１２乃至Ｓ１４と同様の処理）を行う必要が無い。故に、読出し要求処理は、少なくとも上記の書込み要求処理よりも短い時間で行うことができる。
【０１４３】
なお、読出し禁止を表すアクセス制御属性が、どのエクステントにも設定されないようにする方法としては、幾つかの方法が考えられる。
【０１４４】
例えば、上述した４種類のアクセス制御属性「リード／ライト可能」、「リードオンリー」、「ライトオンリー」及び「リード／ライト不可」のうち、読出し禁止を表すアクセス制御属性「リード／ライト不可」が選択肢としてサポートしない方法（つまり、読出し禁止を表すアクセス制御属性を予め用意しておかない方法）がある。
【０１４５】
また、別法として、例えば、各ＬＤＥＶ毎に、そのＬＤＥＶに格納するデータの種類を設定し（別の言い方をすれば、ＬＤＥＶの種類を設定し）、ＬＤＥＶに格納されるデータの種類が所定種類とは別の種類の場合には、そのＬＤＥＶ内のエクステントに、読出し禁止を表すアクセス制御属性を設定することを許可するが、ＬＤＥＶに格納されるデータの種類が所定種類（例えば、デジタルアーカイブ）の場合には、そのＬＤＥＶ内のどのエクステントにも、読出し禁止を表すアクセス制御属性を設定しないようにする方法が考えられる。この方法は、例えば、エクステント３０７の設定やＬＤＥＶ共通情報３０３の設定をユーザから受付けるコンピュータプログラム（例えば、ホスト１１０Ａ、管理端末１３０又は保守端末１２２にインストールされるプログラム）が、実行することができる。そのコンピュータプログラムは、例えば、ストレージシステム１２０Ａに入力された情報（例えば、ユーザから入力されたＬＤＥＶ種類、又は、ＬＤＥＶ２２６に格納されたデータファイルの属性（例えば識別子））から、そのＬＤＥＶ２２６に格納されるデータ種類が所定種類であるか否かを判断し、所定種類であると判断した場合には、そのＬＤＥＶ２２６内のエクステント３０７に設定可能なアクセス制御属性として、読出し禁止を表すアクセス制御属性を選択可能に受付けない（例えば、ディスプレイ画面に表示しない）。
【０１４６】
以上が、書込み要求処理及び読出し要求処理についての説明である。
【０１４７】
ところで、上述した書込み要求処理及び読出し要求処理において、プロセッサ１４４は、アクセス先のＬＢＡの調整を行うことができる。例えば、プロセッサ１４４は、ホスト１１０Ａからのアクセス要求（書込み要求又は読出し要求）に従うアクセス先が外部ＬＢＡ＃ｍ（例えばｍ＝０）の場合には、ＶＭＡ３０１の記憶容量に基づくオフセット分＃ｋ（例えばｋ＝１００）を加算した内部ＬＢＡ＃ｍ＋ｋ（例えばｍ＋ｋ＝１００）をアクセス先とすることができる。
【０１４８】
また、上述した書込み要求処理及び読出し要求処理において、プロセッサ１４４は、ＶＭＡ３０１に書かれる情報を参照する方法として、複数のパターン、例えば以下の３つのパターンの少なくとも一つを実行することができる。
【０１４９】
（Ａ）第一の情報参照パターン。
【０１５０】
第一の情報参照パターンは、プロセッサ１４４が、アクセス要求を受ける都度に、ＬＤＥＶ２２６のＶＭＡ３０１から情報を読出し、読み出しされた情報をキャッシュメモリ１４２に格納するパターンである。なお、読み出す情報は、ＶＭＡ３０１に書かれた情報全てであっても良いし、ステップの実行で参照される情報（例えばＳ１２では、書込み先ＬＤＥＶのＬＤＥＶ共通情報３０３中の情報要素「ライト禁止エクステント」のみ）であっても良い。
【０１５１】
（Ｂ）第二の情報参照パターン。
【０１５２】
第二の情報参照パターンは、アクセス要求を受ける前に予め、ＶＭＡ３０１に書かれる情報中の少なくとも所定種類の情報を、キャッシュメモリ１４２に格納しておくパターンである。格納しておく情報は、ＶＭＡ３０１に書かれた情報全てであっても良いが、書込み要求処理のＳ１１及びＳ１２の判定に必要な情報が好ましい。この「必要な情報」としては、例えば、図９に例示するように、各ＬＤＥＶ毎に、ＬＤＥＶ番号と、ＶＭＡ有無（例えば、「有」ならＶＭＡ識別子が書かれる）と、書込み禁止エクステント有無とが対応付けられた情報である。この場合、例えば、プロセッサ１４４は、ホスト１１０Ａから書込み要求を受けた場合、キャッシュメモリ１４２にアクセスして、書込み要求に従うＬＤＥＶ番号に対応する情報要素「ＶＭＡ有無」を参照してＶＭＡ３０１の有無を判定し（Ｓ１１）、ＶＭＡ３０１が有ると判定された場合には、そのＬＤＥＶ番号に対応する情報要素「書込み禁止エクステント有無」を参照して、書込み禁止が設定されたエクステントの有無を判定する（Ｓ１２）。また、例えば、プロセッサ１４４は、ホスト１１０Ａから読出し要求を受けた場合、キャッシュメモリ１４２にアクセスして、読出し要求に従うＬＤＥＶ番号に対応する情報要素「ＶＭＡ有無」を参照してＶＭＡ３０１の有無を判定し（Ｓ１）、ＶＭＡ３０１が有ると判定された場合には、読出し処理を実行する（Ｓ５）。
【０１５３】
なお、キャッシュメモリ１４２には、図９に記載の情報要素「書込み禁止エクステント有無」に代えて又は加えて、「エクステント有無」も格納されていてもよい。この場合、プロセッサ１４４は、ＶＭＡが有ると判定された後に、情報要素「エクステント有無」を参照することにより、エクステントが有ると判定された場合には、更に先のステップを実行し（例えばＳ１２の判定を実行し）、一方、エクステントが無いと判定された場合には、ユーザ領域３０１にデータを書き込む処理、ユーザ領域３０１からデータを読み出す処理、又はアクセスできないことを表す所定のエラー処理（例えば、エクステントを設定することをユーザに指示する処理）を行っても良い。
【０１５４】
また、図９では、さらに、情報要素「読出し禁止エクステント有無」が書かれていても良い。これにより、読出し禁止を意味するアクセス制御属性がエクステントに設定される場合に、読出し要求処理の短縮化に貢献することができる。
【０１５５】
（Ｃ）第三の情報参照パターン。
【０１５６】
第三の情報参照パターンは、アクセス要求を受ける前に予め、ＶＭＡ３０１に書かれる複数種類の情報中の少なくとも所定種類の情報を、キャッシュメモリ１４２に格納しておくが、それら複数種類の情報のうちのどれが優先度の高い情報であるかを判定し、優先度の高い種類の情報を、キャッシュメモリ１４２に残し、優先度の低い種類の情報はキャッシュメモリ１４２から破棄するパターンである。
【０１５７】
ＶＭＡ３０１に書かれる管理情報群は、例えば、管理端末１３０又はホスト１１０Ａから、キャッシュメモリ１４２に確保された一又は複数のキャッシュセグメントを介して、ディスクドライブ１２１に格納される。そこで、第三の情報参照パターンが採用された場合には、例えば、プロセッサ１４４が、ディスクドライブ１２１への書き込みが済んだデータを有する各キャッシュセグメント毎に、そのキャッシュセグメントを破棄しても良いか否かの判定処理（以下、「キャッシュフリー化判定処理」と言う）を行い、優先度の高い種類の情報のみを、そのままキャッシュメモリ１４２に残すようにする。
【０１５８】
図１０は、キャッシュフリー化判定処理の流れの一例を示す。
【０１５９】
プロセッサ１４４は、キャッシュフリー化判定処理の対象となるキャッシュセグメント（以下、当該キャッシュセグメント）が、キャッシュフリー化判定処理済みか否かを判定する（Ｓ２１）。プロセッサ１４４は、例えば、各キャッシュセグメント毎のＩＤとキャッシュフリーか判定処理済みか否かを示す情報とを含んだキャッシュ管理情報を制御メモリ１４５に記録しておき、そのキャッシュ管理情報を参照することで、当該キャッシュセグメントがキャッシュフリー化判定処理済みか否かを判定することができる。
【０１６０】
Ｓ２１において、当該キャッシュセグメントはキャッシュフリー化判定処理済みではないと判定された場合（Ｓ２１でＮｏ）、プロセッサ１４４は、当該キャッシュセグメントに格納されているデータが、ＶＭＡ３０１に書かれたデータであるか否かを判定する（Ｓ２２）。プロセッサ１４４は、例えば、ＶＭＡ３０１の領域に関する情報（例えばＬＢＡ）とキャッシュセグメントのＩＤとの対応関係を表す情報を制御メモリ１４５に書き込んでおき、その情報を参照することで、当該キャッシュセグメントに格納されているデータがＶＭＡ３０１に既に書かれたデータであるか否かを判定することができる。
【０１６１】
Ｓ２２において、当該キャッシュセグメントに格納されているデータがＶＭＡ３０１に書かれたデータではない（例えば、ＶＭＡ３０１はなくユーザ領域３０２に書かれた又はＶＭＡ３０１を持たないＬＤＥＶ２２６に書かれた）と判定された場合（Ｓ２２でＮｏ）、プロセッサ１４４は、当該キャッシュセグメントの確保を解除する（Ｓ２４）。これにより、当該キャッシュセグメント内のデータは破棄される。
【０１６２】
当該キャッシュセグメントに格納されているデータがＶＭＡ３０１に書かれたデータであると判定された場合（Ｓ２２Ｙｅｓ）、プロセッサ１４４は、当該キャッシュセグメントに書かれているデータは優先度が所定の優先度よりも高いか否かを判定する（Ｓ２３）。Ｓ２３において、優先度が低いと判定された場合には（Ｓ２３でＮｏ）、プロセッサ１４４は、Ｓ２４の処理を行うが、優先度が高いと判定された場合には（Ｓ２３でＹｅｓ）、Ｓ２４の処理を行わない。
【０１６３】
ここで、「優先度が高い種類の情報」とは、書込み要求処理又は読出し要求処理において参照される回数（例えば頻度）が多い情報であり、「優先度が低い種類の情報」とは、「優先度の高い種類の情報」よりも上記回数が少ない情報である。「優先度が高い種類の情報」の具体例としては、例えば、書込み要求処理のＳ１１及びＳ１２で参照される情報とすることができるが、それに代えて又は加えて、管理ブロック情報１、及び／又は、ＬＤＥＶアクセス頻度情報２とすることもできる。
【０１６４】
管理ブロック情報１とは、各管理ブロック８０１毎に書込み禁止の有無（又は、それに加えて、読み出し禁止の有無）を表した情報であり、具体的には、例えば、ＬＤＥＶ共通情報３０３中の情報要素「管理ブロック情報ビットマップ」の全部又は一部の情報である。管理ブロック情報１が、「優先度が高い種類の情報」として採用できる理由としては、或る管理ブロック８０１に読出し禁止も書込み禁止も設定されていないことが特定された場合には、その或る管理ブロック８０１にアクセスするのに、わざわざアクセス制御属性を参照する必要がなくなるということが挙げられる。プロセッサ１４４は、例えば、Ｓ２３の判定処理において、当該キャッシュセグメントに格納されているデータが、管理ブロック情報１の全部又は一部であることを特定した場合には（例えば、ＶＭＡ３０１の管理ブロック情報１が書かれるための領域に書かれたデータであることを特定した場合には）、当該キャッシュセグメントに書かれているデータを破棄せずに残す。
【０１６５】
ＬＤＥＶアクセス頻度情報２とは、各ＬＤＥＶ２２６毎のアクセス頻度を表す情報である。このＬＤＥＶアクセス頻度情報２は、例えば制御メモリ１４５に記憶される。プロセッサ１４４は、各ＬＤＥＶ２２６にアクセスする都度に、そのＬＤＥＶ２２６に対応するアクセス頻度を更新する。そして、プロセッサ１４４は、Ｓ２３の判定処理において、当該キャッシュセグメントが、アクセス頻度が所定頻度よりも少ないＬＤＥＶ２２６のＶＭＡ３０１に書かれたデータを有することを特定した場合には、そのデータを破棄し（Ｓ２４）、一方、アクセス頻度が所定頻度以上であるＬＤＥＶ２２６のＶＭＡ３０１に書かれたデータを有することを特定した場合には、当該キャッシュセグメント内のデータを破棄せずに残すようにする。この判定は、定期的に行っても良い。また、一旦破棄されても、アクセス頻度が所定回数以上になったことを検出した場合には、プロセッサ１４４は、そのＬＤＥＶ２２６のＶＭＡ３０１から「優先度の高い種類の情報」を読み出してキャッシュメモリ１４２に格納し、その格納した情報を、再びアクセス頻度が所定回数よりも少なくなるまで、キャッシュメモリ１４２に残しておいても良い。
【０１６６】
以上が、ＶＭＡ３０１に書かれる情報を参照する３つのパターンである。
【０１６７】
ＶＭＡ３０１は、前述したとおり、ＬＤＥＶ２２６に用意される。従って、ＶＭＡ３０１に書かれる管理情報群の更新が行われる場合には、キャッシュメモリ１４２を介して、ユーザが操作する管理端末１３０、保守端末１２２又はホスト１１０Ａとディスクドライブ１２１との間でデータのやり取りが行われる。ＶＭＡ３０１内の管理情報群の更新方法としては、例えば、後述するように、更新ステータスと更新番号とを用いた方法を採用することができる。
【０１６８】
この方法が採用された場合、以下に説明するＶＭＡ更新管理情報が、所定の記憶域、例えば制御メモリ１４５に格納される。
【０１６９】
図１１は、ＶＭＡ更新管理情報の構成例を示す。
【０１７０】
ＶＭＡ更新管理情報３は、各ＬＤＥＶ２２６におけるＶＭＡ３０１の更新を管理するための情報である。ＶＭＡ更新管理情報３は、例えば、各ＬＤＥＶ２２６毎に、ＬＤＥＶ番号と、ロック情報と、更新ステータスと、ＶＭＡ更新番号とを含む。ロック情報とは、ロックがかかっているか否かを表す情報である。
【０１７１】
以下、上述のＶＭＡ更新管理情報３を用いたＶＭＡ更新処理とＶＭＡ参照処理とについて説明する。
【０１７２】
図１２は、ＶＭＡ更新処理の流れの一例を示す。
【０１７３】
プロセッサ１４４は、或るＬＤＥＶ２２６のＶＭＡ３０１の更新の要求を受けた場合、そのＬＤＥＶ２２６にロックをかける（Ｓ３１）。これにより、例えば、ストレージシステム１２０Ａに複数のプロセッサが搭載されている場合には、ロックをかけたプロセッサ１４４以外のプロセッサによって、上記或るＬＤＥＶ２２６内の情報が更新されてしまうことを防ぐ排他処理を行うことができる。なお、このＳ３１では、例えば、プロセッサ１４４が、ＶＭＡ更新管理情報３にアクセスし、そのＬＤＥＶ２２６のＬＤＥＶ番号に対応したロック情報を「ロック無」から「ロック有」に変更することによって、そのＬＤＥＶ２２６にロックをかけることができる。ロックをかけることができなかった場合（Ｓ３１でＮｏ）、異常終了（例えばタイムアウト）（Ｓ３２でＹｅｓ）にならない限り、プロセッサ１４４は、Ｓ３１の処理を試みる。
【０１７４】
ロックをかけられたならば（Ｓ３１でＹｅｓ）、プロセッサ１４４は、ロックがかかったＬＤＥＶ２２６のＶＭＡ３０１から少なくとも更新対象（例えば、管理情報群の全て又はＬＤＥＶ共通情報３０３）を読み出す（Ｓ３３）。更新対象を読み出すことができなかった場合（Ｓ３５でＮｏ）、異常終了（Ｓ３４でＹｅｓ）にならない限り、プロセッサ１４４は、Ｓ３３の処理を試みる。
【０１７５】
更新対象が読み出された場合（Ｓ３５でＹｅｓ）、プロセッサ１４４によって、更新要求元（管理端末１３０、保守端末１２２又はホスト１１０Ａ）に更新対象が送信され、その更新要求元において、その更新対象が編集される（Ｓ３６）。Ｓ３６では、例えば、プロセッサ１４４は、読み出された更新対象をキャッシュメモリ１４２で保持し、更新要求元からの情報（ユーザの操作結果）に応答して、キャッシュメモリ１４２上の更新対象を編集しても良い。
【０１７６】
プロセッサ１４４は、更新対象が読み出された場合、ＶＭＡ更新管理情報３にアクセスし、その更新対象を記憶していたＬＤＥＶ２２６の更新ステータスを、「更新無し」から「更新中」に変更する（Ｓ３７）。
【０１７７】
プロセッサ１４４は、更新ステータスの変更後、編集後の更新対象を、ＶＭＡ３０１に書き込む（Ｓ３８）。このＳ３８では、例えば、プロセッサ１４４は、編集後の更新対象を編集前の更新対象に上書きする。編集後の更新対象を書き込むことができなかった場合（Ｓ３９でＮｏ）、異常終了（Ｓ４０でＹｅｓ）にならない限り、プロセッサ１４４は、Ｓ３８の処理を試みる。
【０１７８】
編集後の更新対象が書き込まれた場合（Ｓ３９でＹｅｓ）、プロセッサ１４４は、ＶＭＡ更新管理情報３にアクセスし、その更新対象が書かれたＬＤＥＶ２２６の更新番号を１つインクリメントし（Ｓ４１）、且つ、そのＬＤＥＶ２２６の更新ステータスを、「更新中」から「更新無し」に変更する（Ｓ４２）。そして、プロセッサ１４４は、そのＬＤＥＶ２２６のロックを解除する（例えば、そのＬＤＥＶ２２６のロック情報を「ロック有」から「ロック無」に変更する）（Ｓ４３）。
【０１７９】
図１３は、図１２のＶＭＡ更新処理が行われる場合のＶＭＡ参照処理の流れの一例を示す。
【０１８０】
プロセッサ１４４は、或るＬＤＥＶ２２６のＶＭＡ３０１の読出し要求を受けた場合、そのＬＤＥＶ２２６に対応した更新番号をＶＭＡ更新管理情報３から取得し（Ｓ５１）、且つ、そのＬＤＥＶ２２６に対応した更新ステータス情報を参照する（Ｓ５２）。
【０１８１】
更新ステータスが「更新中」であれば（Ｓ５３でＮｏ）、異常終了（Ｓ５４でＹｅｓ）しない限り、Ｓ５３でＹｅｓになるまで、Ｓ５１〜Ｓ５３が繰り返される。
【０１８２】
更新ステータスが「更新無」であれば、すなわち、更新中ではないことが検出されれば（Ｓ５３でＹｅｓ）、プロセッサ１４４は、ＶＭＡ３０１に存在する読出し要求された情報（例えば、編集後の更新情報）を読み出す（Ｓ５５）。要求された情報を読み出すことができなかった場合（Ｓ５６でＮｏ）、異常終了（Ｓ５７でＹｅｓ）にならない限り、プロセッサ１４４は、Ｓ５５の処理を試みる。
【０１８３】
ＶＭＡ３０１から情報が読み出された場合（Ｓ５６でＹｅｓ）、プロセッサ１４４は、Ｓ５１及びＳ５２と同じ処理を行う（Ｓ５８及びＳ５９）。プロセッサ１４４は、情報を読み出す前と後の両方で取得された２つの更新番号（つまりＳ５１とＳ５８で取得された２つの更新番号）が互いに同じ番号であり、且つ、情報を読み出す前と後の両方で参照された更新ステータス（つまりＳ５２とＳ５９で取得された更新ステータス）が両方とも「更新中」でないかどうかを判定する（Ｓ６０）。Ｓ６０の判定の結果、肯定的な判定結果が得られた場合に、プロセッサ１４４は、Ｓ５５で読み出された情報を、読出し要求元に送信してもよい。
【０１８４】
上述した更新方法では、ＶＭＡ更新処理中に、ＬＤＥＶのロックがかけられるが、このロックは、ＬＤＥＶ２２６に対する書き込みと読み出しの両方を意味するロックとすることができる。しかし、そうすると、ＶＭＡ３０１の更新中にはそのＶＭＡ３０１を有するＬＤＥＶ２２６に一切アクセスすることができなくなってしまう。
【０１８５】
これを解消するための方法として、ＬＤＥＶにかけられるロックを、書き込みを禁止するが読み出しは許可することを意味するロックとすることができる。しかし、この場合、格別の工夫がされなければ、ＶＭＡ３０１から読み出された情報が更新前の情報であり、読み出された後に、その情報が更新されることがある。
【０１８６】
そこで、本実施例では、上記のように、ＶＭＡ３０１の参照された情報がきちんと更新の済んだ後の情報であることを確かめるための方法が用意されている。その方法の一例が、上述したように、更新番号及び更新ステータスが、ＶＭＡ３０１から情報を読み出す前と後で同じかどうかを確かめる方法である。更新番号及び更新ステータスの両方が、情報を読み出す前と後で同じかどうかを確かめることにより、ＶＭＡ３０１から読み出された情報の正当性を保証することができる。なぜなら、例えば、更新番号が同じであっても更新ステータスが違っていれば、読み出された情報は更新中ということになり得るし、更新ステータスが両方とも「更新無し」であっても更新番号が違っていれば、更新前の古い情報が読み出されたということになり得るからである。
【０１８７】
ところで、ＶＭＡ３０１に書かれた情報は、ストレージシステム１２０Ａに接続された端末（例えば、管理端末１３０、保守端末１２２又はホスト１１０Ａ）のディスプレイ画面で見ることができる。
【０１８８】
具体的には、例えば、プロセッサ１４４は、ＬＤＥＶ共通情報３０３については、例えば図１４Ａに例示するように、ストレージシステム１２０Ａに搭載されている全ＬＤＥＶ分を一覧で表示する。この場合、全ＬＤＥＶ２２６のＬＤＥＶ共通情報３０３が既に制御メモリ１４５又はキャッシュメモリ１４２に格納されていれば、わざわざＬＤＥＶ２２６にアクセスすることなくＬＤＥＶ共通情報３０３を読み出せるので、プロセッサ１４４は、一覧を表示するまでにかかる時間を短くすることができる。
【０１８９】
また、例えば、エクステント管理情報３０６については、一つのＬＤＥＶに存在するエクステント管理情報の数だけでも膨大なもの（例えば約６万個）となり得るので、図１４Ｂに例示するように、プロセッサ１４４は、複数のＬＤＥＶ（例えばプルダウンメニューに表示された複数のＬＤＥＶ番号）の中からユーザによって選択された一つのＬＤＥＶ内の全エクステントのエクステント管理情報を一覧で表示する。つまり、エクステント管理情報は、ＬＤＥＶ別に表示される。
【０１９０】
ホスト１１０Ａは、ユーザ領域３０２にデータを格納することができるが、それに加えて、エクステント３０７も設定することができる。また、更に、それに加えて、ホスト１１０Ａは、ＶＭＡ３０１に書かれた情報（例えばエクステント管理情報３０６）の更新も行うことができる。エクステント３０７の設定や、ＶＭＡ３０１に書かれた情報の更新は、例えば、ホスト１１０Ａにインストールされているホスト常駐プログラム（例えば図２のストレージシステム制御部２１２）によって行うことができる。
【０１９１】
具体的には、例えば、ホスト常駐プログラムは、図１５Ａに例示するように、初めはエクステントを設定せず、或る時点Ｔ１（例えば、エクステントの設定されていない位置から書込み対象データが書かれ初めた時点）からそれよりも後の時点Ｔ２（例えば、所定量のデータがかかれた時点、又は、時点Ｔ１から所定期間経過した時点）になった場合に、時点Ｔ１〜Ｔ２の間にデータが書かれた領域を含んだ部分を新規にエクステントと設定することができる。また、その場合に、ホスト常駐プログラムは、設定したエクステントのエクステント管理情報に、データの読み出しを許可するアクセス制御属性（例えばリードオンリー）を含めることができる（換言すれば、読み出しを禁止するアクセス制御属性を設定しない）。
【０１９２】
また、例えば、ホスト常駐プログラムは、図１５Ｂに例示するように、予め、任意の時点Ｔ３でエクステントを設定しておき、その後の時点Ｔ４（例えば、エクステント一杯にデータがかかれた時点、又は、時点Ｔ３から所定期間経過した時点）になった場合に、時点Ｔ３で設定したエクステントのエクステント管理情報に、データの読み出しを許可するアクセス制御属性（例えばリードオンリー）を含めることができる（換言すれば、読み出しを禁止するアクセス制御属性を設定しない）。
【０１９３】
ストレージシステム１２０Ａのプロセッサ１４４は、ユーザが操作する端末（例えば、ホスト１１０Ａ、管理端末１３０又は保守端末１２２）から、或るＬＤＥＶ２２６に対するＶＭＡの設定又は削除の要求（以下、ＶＭＡ設定／削除要求）を受けることができる。しかし、必ずしもその要求に従って、ＶＭＡの設定又は削除が行われても良いわけではない。なぜなら、図１６Ａに例示するように、ＶＭＡ有りのＬＤＥＶからＶＭＡが削除されたり、或いは、ＶＭＡ無しのＬＤＥＶにＶＭＡが設定されたりすると、ＶＭＡの記憶容量に基づくオフセット分だけ外部ＬＢＡがずれてしまうためである。また、ＬＤＥＶの構成も壊れてしまうためである。
【０１９４】
そこで、プロセッサ１４４は、図１６Ｂに例示する処理により、ＶＭＡ設定／削除要求を処理することができる。
【０１９５】
プロセッサ１４４は、ＶＭＡ設定／削除要求を受けた場合（Ｓ７１）、所定の記憶域（例えば制御メモリ１４５）に格納されているＶＭＡ設定／削除不可条件４を参照し、ＶＭＡ設定／削除要求に従う処理が可能か否かを判断する（Ｓ７２）。ＶＭＡ設定／削除不可条件４は、ＶＭＡの設定及び削除が不可能である場合の条件を含んでおり、例えば、ホストとＬＤＥＶとの間に論理パスが既に形成されているという条件や、エクステントが存在するという条件を含んでいる。ここに例示した条件にマッチする場合に、ＶＭＡの設定及び削除が行われてしまうと、ホスト１１０Ａが、所望の領域（例えばユーザ領域の先頭）にアクセスしたつもりでも別の領域にアクセスしてしまうということが起こり得る。
【０１９６】
そのため、プロセッサ１４４は、ＶＭＡ設定／削除要求の対象となっているＬＤＥＶがＶＭＡ設定／削除不可条件４にマッチする場合には（Ｓ７２でＮｏ）、ＶＭＡ設定／削除要求に従う処理を行わず（例えばエラーを要求元に返し）（Ｓ７３）、ＶＭＡ設定／削除不可条件４にマッチしない場合に（Ｓ７２でＹｅｓ）、ＶＭＡ設定／削除要求に従う処理、すなわち、ＶＭＡの設定又は削除を行う（Ｓ７４）。
【０１９７】
これにより、或るＬＤＥＶについてＶＭＡの設定や削除を行う場合には、ＶＭＡの設定や削除を行うことで、ホスト１１０Ａに対してそのＬＤＥＶ内の領域へのアクセスをミスさせてしまうことがないかどうかが判断され、そのようなミスをさせてしまうことがないという判断結果が得られた場合に、上記或るＬＤＥＶに対してＶＭＡの設定や削除を行うことができる。
【実施例２】
【０１９８】
以下、本発明の一実施形態の第二実施例について説明する。なお、以下の説明では、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略又は簡略する。
【０１９９】
上述した第一実施例では、基本的には、管理情報群の全てが、ＬＤＥＶ２２６に用意されたＶＭＡ３０１に書かれ、必要に応じて、キャッシュメモリ１４２に読み出されるようになっているが、この第二実施例では、それに代えて又は加えて、制御メモリ１４５に、管理情報群の少なくとも一部が格納される。管理情報群の少なくとも一部を制御メモリ１４５に格納しておく複数種類のパターンとして、以下の（Ａ）〜（Ｃ）の３種類のパターン、
（Ａ）管理情報群の全てが、ＶＭＡ３０１と制御メモリ１４５との両方に格納される。
（Ｂ）管理情報群の全てがＶＭＡ３０１に格納されるが、その管理情報群のうちの所定の一部の情報が制御メモリ１４５に格納される。
（Ｃ）管理情報群のうちの所定の一部の情報が制御メモリ１４５に格納され、管理情報群のうちの残りの情報がＶＭＡ３０１に格納される。
が考えられる。
【０２００】
ここで、（Ｂ）及び（Ｃ）における「所定の一部の情報」とは、管理情報群のうち、上記残りの情報よりも頻繁に参照される情報、又は、書込み要求処理（図７Ａ参照）や読出し要求処理（図７Ｂ参照）で上記残りの情報よりも早い時点で参照される情報である。具体的には、例えば、「所定の一部の情報」とは、図９に例示したような情報、すなわち、各ＬＤＥＶ毎に、ＬＤＥＶ番号、ＬＤＥＶ共通情報３０３中のＶＭＡ識別子（別の言い方をすればＶＭＡ有無）、書込み禁止エクステント有無（又は、それに加えて、読出し禁止エクステント有無）を含んだ情報である。このようにすることで、例えば、書込み要求処理のＳ１１及びＳ１２は、制御メモリ１４５にアクセスすることにより実行することができ、わざわざＬＤＥＶ２２６にアクセスする必要が無いので、書込み要求処理の時間短縮化が図れる。
【０２０１】
また、上記（Ｂ）及び（Ｃ）のパターンにおいて、書き込み要求処理では（もし、読出し禁止に関するアクセス制御属性が設定されている場合（例えば読出し禁止エクステント有となっている場合）には読み出し要求処理でも）、Ｓ１４まで処理がすすめば、制御メモリ１４５に格納されている情報だけでは足らないので、プロセッサ１４４は、ＬＤＥＶ２２６のＶＭＡ３０１からキャッシュメモリ１４２に情報を読み出す必要がある。
【０２０２】
図１７Ａは、管理情報群のうちの或る情報要素が読み出される場合に行われる処理の流れの一例を示す。なお、以下の説明では、制御メモリ１４５における上記「所定の一部の情報」が格納されている領域を、便宜上、「サブＶＭＡ」と称する。
【０２０３】
プロセッサ１４４は、管理情報群中の情報要素の読出し要求を受けた場合、制御メモリ１４１のサブＶＭＡを参照する（Ｓ８１）。プロセッサ１４４は、読出し要求の対象となる情報要素がサブＶＭＡに存在しないと判定した場合には（Ｓ８２でＹｅｓ）、その情報要素がキャッシュメモリに読み出されているか否かの判定を行う（Ｓ８３）。
【０２０４】
読み出されていないと判定された場合（Ｓ８３でＮｏ）、プロセッサ１４４は、その情報要素をＶＭＡ３０１からキャッシュメモリ１４２に読み出すことの指示を出し、且つ、その場で待たずに「リトライ要」という命令を発生することで、再度、Ｓ８１の処理を行うようにする。一方、読み出されていると判定された場合（Ｓ８３でＹｅｓ）、プロセッサ１４４は、キャッシュメモリ１４２にアクセスしてその情報要素を参照する（Ｓ８５）。
【０２０５】
図１７Ｂは、管理情報群のうちの或る情報要素が更新される場合に行われる処理の流れの一例を示す。
【０２０６】
この処理は、上記の図１７Ａの処理とほぼ同様である。すなわち、プロセッサ１４４は、管理情報群中の情報要素の更新要求を受けた場合、制御メモリ１４１のサブＶＭＡを参照し（Ｓ９１）、更新要求の対象となる情報要素がサブＶＭＡに存在しないと判定した場合には（Ｓ９２でＹｅｓ）、その情報要素がキャッシュメモリに読み出されているか否かの判定を行う（Ｓ９３）。以降、Ｓ８４又はＳ８５が行われる（Ｓ９４又はＳ９５）。
【０２０７】
なお、図１７Ａ及び図１７Ｂに示した処理流れは一例であり、それに限定する必要は無い。例えば、制御メモリ１４４に、管理情報中のどんな情報要素がＶＭＡ３０１に存在しどんな情報要素がサブＶＭＡに存在するかを表したＶＭＡ管理情報が格納されており、プロセッサ１４４は、そのＶＭＡ管理情報を参照することにより、読出し対象又は更新対象となる情報要素がサブＶＭＡとＶＭＡ３０１とのどちらに存在するかを判断し、その判断結果に応じた処理を行っても良い。
【実施例３】
【０２０８】
以下、本発明の一実施形態の第三実施例について説明する。
【０２０９】
第三実施例では、図１８Ａに例示するように、ストレージシステム１１０Ａには、ディスクドライブ１２１に実際に記憶領域を有する実装ＬＤＥＶの他に、ディスクドライブ１２１に記憶領域を有しない仮想ＬＤＥＶ２２６Ｖが存在し、且つ、仮想ＬＤＥＶ２２６Ｖには、外部のストレージシステム１２０Ｂに存在するＬＤＥＶ（以下、外部ＬＤＥＶ）２２６Ｒに対応付けられている。ＬＤＥＶ群管理情報２２３（図２参照）には、例えば、各ＬＤＥＶ２２６毎に、実装ＬＤＥＶであるか仮想ＬＤＥＶであるかを示す情報や、仮想ＬＤＥＶである場合にはその仮想ＬＤＥＶに対応付けられている外部ＬＤＥＶを識別するための情報（例えば、その外部ＬＤＥＶを備えるストレージシステムのＩＤや、その外部ＬＤＥＶのＬＤＥＶ番号）が含まれている。
【０２１０】
この場合、ストレージシステム１２０Ａのプロセッサ１４４は、ホスト１１０Ａからアクセス要求（例えば読み出し要求）を受けた場合、そのアクセス要求が表すアクセス先（例えばＬＤＥＶ番号）が仮想ＬＤＥＶ２２６ＶであることをＬＤＥＶ群管理情報２２３から特定した場合には、その仮想ＬＤＥＶ２２６Ｖに対応した外部ＬＤＥＶ２２６Ｒにアクセスする（例えば、その外部ＬＤＥＶからデータを読み出し、読み出されたデータをホスト１１０Ａに送信する）。
【０２１１】
この第三実施例では、ＶＭＡ３０１の所定位置（例えば先頭）に、ＶＭＡ識別子が記録されており、且つ、そのＶＭＡ識別子から、ＶＭＡタイプが識別できるようになっている。その仕組みの一例として、例えば、プロセッサ１４４に読み込まれるコンピュータプログラムに、図１８Ｂに例示したＶＭＡ識別子とＶＭＡタイプとの対応付けを表す情報を組み込んでおき、そのコンピュータプログラムが、所定の判定処理の中で、ＶＭＡ識別子からＶＭＡタイプを識別しても良い。また、例えば、図１８Ｂに例示した情報を制御メモリ１４５等の所定の記憶域に格納しておき、プロセッサ１４４が、ＶＭＡ識別子を検索キーにその情報を参照することにより、そのＶＭＡ識別子に対応したＶＭＡタイプを検索しても良い。
【０２１２】
これにより、この第三実施例では、例えば図１８Ｃに例示することが実現できる。すなわち、例えば、プロセッサ１４４は、仮想ＬＤＥＶ２２６Ｖに外部ＬＤＥＶ２２６Ｒが対応付けられた場合に（Ｓ１０１）、対応付けられた外部ＬＤＥＶ２２６ＲからＶＭＡ識別子を読み出すことにより、そのＶＭＡ識別子を仮想ＬＤＥＶ２２６Ｖに反映すること、換言すれば、仮想ＬＤＥＶ２２６ＶのＶＭＡタイプを認識することができる。また、その対応付けが解除された後、その仮想ＬＤＥＶ２２６Ｖが再び外部ＬＤＥＶ２２６Ｒに対応付けられた場合も（Ｓ１０３）、プロセッサ１４４は、対応付けられた外部ＬＤＥＶ２２６ＲからＶＭＡ識別子を読み出すことにより、そのＶＭＡ識別子を仮想ＬＤＥＶ２２６Ｖに反映することができる。同様に、別の仮想ＬＤＥＶが外部ＬＤＥＶ２２６Ｒに対応付けられた場合でも（Ｓ１０４）、プロセッサ１４４は、対応付けられた外部ＬＤＥＶ２２６ＲからＶＭＡ識別子を読み出すことにより、そのＶＭＡ識別子を別の仮想ＬＤＥＶに反映することができる。
【実施例４】
【０２１３】
以下、本発明の一実施形態の第四実施例について説明する。
【０２１４】
第四実施例では、プライマリのＬＤＥＶ２２６ＰからセカンダリのＬＤＥＶ２２６Ｓへデータのコピーが行われる。この場合、ストレージシステム１２０ＡのＬＤＥＶ群管理情報２２３には、例えば、各ＬＤＥＶ２２６毎に、ペア相手となるＬＤＥＶが存在する場合に、そのペア相手のＬＤＥＶを備えるストレージシステム１２０Ｂを識別するためのストレージシステムＩＤ（例えば、番号、ＩＰアドレス或いはＷＷＮ（ワールドワイドネーム））や、そのペア相手のＬＤＥＶ２２６ＳのＬＤＥＶ番号や、自分がプライマリのＬＤＥＶであるかセカンダリのＬＤＥＶであるかを表す情報も含まれていても良い。
【０２１５】
ここで、自分がプライマリのＬＤＥＶで、ペア相手がセカンダリのＬＤＥＶであり、且つ、ペアを構成するＬＤＥＶが同一のストレージシステム１２０Ａに存在することが、ＬＤＥＶ群管理情報２２３から特定された場合には、プロセッサ１４４によって、プライマリのＬＤＥＶに存在するデータが読み出され、読み出されたデータがセカンダリのＬＤＥＶに格納されることにより、セカンダリのＬＤＥＶをプライマリのＬＤＥＶの複製にすることができる。また、自分がプライマリのＬＤＥＶでストレージシステム１２０Ａに存在し、ペア相手がセカンダリのＬＤＥＶであり別のストレージシステム１２０Ｂに存在することが、ＬＤＥＶ群管理情報２２３から特定された場合には、プロセッサ１４４によって、図１９Ａに例示するように、プライマリのＬＤＥＶ２２６Ｐに存在するデータが読み出され、読み出されたデータがストレージシステム１２０Ｂ内のセカンダリのＬＤＥＶ２２６Ｓに格納されることにより（つまり、いわゆるリモートコピーが行われることにより）、セカンダリのＬＤＥＶ２２６ＳをプライマリのＬＤＥＶ２２６Ｐの複製にすることができる。
【０２１６】
この第四実施例では、図１９Ｂ及び図１９Ｃのうちの少なくとも一方に示したＬＢＡ管理方式を採用することができる。
【０２１７】
図１９Ｂに例示した第一のＬＢＡ管理方式は、第一実施例で説明した内部ＬＢＡと外部ＬＢＡとを用意する方式である。この第一のＬＢＡ管理方式では、例えば、ストレージシステム１２０Ｂは、ホスト１１０Ａからアクセス要求を受けた場合には、そのアクセス要求に従うＬＢＡの外部ＬＢＡにアクセスすることにより、ホスト１１０Ａを要求された場所にアクセスさせることができる。また、この第一のＬＢＡ管理方式では、例えば、ストレージシステム１２０Ｂは、ストレージシステム１２０Ａからアクセス要求（例えばリモートコピー要求）を受けた場合には、そのアクセス要求に従うＬＢＡの内部ＬＢＡにアクセスすることにより、ストレージシステム１２０Ａを要求された場所にアクセスさせることができる。この場合、ストレージシステム１２０Ａは、例えば、セカンダリＬＤＥＶ２２６Ｓのユーザ領域３０２にアクセスする場合には、ＶＭＡ３０１の記憶容量に基づくオフセット分（例えば１０００）だけ加算したＬＢＡをアクセス先としたアクセス要求を発行することにより、所望の場所にアクセスすることができる。
【０２１８】
図１９Ｃに例示した第二のＬＢＡ管理方式は、ＶＭＡ用のＬＢＡと、ユーザ領域用ＬＢＡとを用意する方式である。この場合、ストレージシステム１２０Ａは、例えば、ストレージシステム１２０ＢのＬＤＥＶのユーザ領域にアクセスする場合に、上記オフセット分を考慮しなくても、ＬＢＡの他にアクセス先がユーザ領域であることをストレージシステム１２０Ｂに通知すれば、ストレージシステム１２０Ｂ（例えばそれに搭載されたプロセッサ）が、その通知に従い、ストレージシステム１２０ＡをセカンダリＬＤＥＶ２２６Ｓのユーザ領域の所望の場所（通知されたＬＢＡ）にアクセスさせることができる。また、この方式では、例えば、ストレージシステム１２０Ａも１２０Ｂも、ホスト１１０Ａからアクセス要求を受けた場合には、常にユーザ領域用のＬＢＡに従うアクセスを行わせることにより、ホスト１１０Ａをホスト所望の場所（例えばホスト１１０Ａから指定されたＬＢＡ）にアクセスさせることができる。また、例えば、ストレージシステム１２０Ｂは、アクセス要求元（例えばストレージシステム１２０Ａ又はホスト１１０Ａ）から、ＶＭＡとユーザ領域のどちらにアクセスするかを表す情報を受けた場合、その情報に従うＬＢＡを用いて、アクセス要求元にアクセスさせることができる。また、例えば、ストレージシステム１２０Ｂは、アクセス要求元から、第一領域（ユーザ領域又はＶＭＡ）にアクセスすることの命令を受けた後は、第一領域とは別の第二領域（ＶＭＡ又はユーザ領域）にアクセスすることの命令を受けるまでの間は、常に、第一領域用のＬＢＡにアクセス要求元をアクセスさせるようにすることもできる。
【０２１９】
プライマリＬＤＥＶとセカンダリＬＤＥＶの記憶容量は、例えば同じである。この第四実施例では、例えば、以下のようなコピー制御が行うことができる。以下、前述したリモートコピーを例に採り説明するが、そのコピー制御は、同一のストレージシステムにおけるプライマリＬＤＥＶからセカンダリＬＤＥＶへのコピーの制御にも適用することができる。また、プライマリＬＤＥＶからセカンダリＬＤＥＶへのコピーは、プライマリ側のストレージシステムからセカンダリ側のストレージシステムへの書込み要求によって行うことも、セカンダリ側のストレージシステムからプライマリ側のストレージシステムへの読み出し要求によって行うことも可能であるが、以下の説明では、前者の書込み要求の場合を例に採る。
【０２２０】
図２０Ａは、第一のコピー制御の説明図である。なお、以下、ストレージシステム１２０Ａのプロセッサ１４４を、「第一のプロセッサ」と称し、ストレージシステム１２０Ｂのプロセッサを「第二のプロセッサ」と称する。
【０２２１】
プライマリＬＤＥＶ２２６Ｐには、ＬＤＥＶ共通情報３０３等が格納されたＶＭＡ３０１Ｐと、少なくとも一つのエクステントが設定されたユーザ領域３０１Ｐとがあるとする。一方、セカンダリＬＤＥＶ２２６Ｓは、何の情報も領域も設定されておらず空き状態になっているとする。
【０２２２】
この状態において、ストレージシステム１２０Ｂの第二のプロセッサは、ユーザが操作する端末であるユーザ操作端末（例えば、管理端末１３０、保守端末１２２又はホスト１１０Ａ）から、ＶＭＡ設定の要求を受け、その要求に応答して、図２０Ａの上側に示すように、プライマリＬＤＥＶ２２６ＰのＶＭＡ３０１Ｐの記憶容量Ｋと同じ容量ＫのＶＭＡ３０１ＳをセカンダリＬＤＥＶ２２６Ｓに設定する（Ｓ１２１）。これにより、セカンダリＬＤＥＶ２２６Ｓが、ＶＭＡ３０１Ｓとユーザ領域３０２Ｓとに区切られる。また、その際、セカンダリＬＤＥＶ２２６ＳのＬＢＡの配置は、例えばユーザ操作端末から入力された情報により、プライマリＬＤＥＶ２２６のＬＢＡの配置と同じにすることができる。なお、ＶＭＡ３０１Ｓの設定は、例えば、プライマリＬＤＥＶ２２６ＰとセカンダリＬＤＥＶ２２６Ｓとの間でＬＤＥＶペアが形成された時に行うことができる。このＶＭＡ３０１Ｓの設定は、自動で行われても良いし手動で行われても良い。自動の場合には、例えば、第二のプロセッサが、プライマリＬＤＥＶ２２６ＰのＬＤＥＶ共通情報中のＶＭＡサイズに基づいて、セカンダリＬＤＥＶ２２６Ｓに、ＶＭＡ３０１Ｐと同じ位置に同じサイズでＶＭＡ３０１Ｓを設定することができる。
【０２２３】
ストレージシステム１２０Ａの第一のプロセッサは、任意のタイミングで（例えば、ユーザ操作端末からのコピー要求に応答して）、プライマリＬＤＥＶ２２６内の全ての情報をセカンダリＬＤＥＶ２２６Ｓに書き込むことの要求をストレージシステム１２０Ｂに発行する（Ｓ１２２）。それにより、ストレージシステム１２０Ｂの第二のプロセッサが、その要求に応答して、キャッシュメモリを介して、プライマリＬＤＥＶ２２６内の全ての情報をセカンダリＬＤＥＶ２２６Ｓに書き込む。
【０２２４】
以上の処理により、図２０Ａの下側に示すように、セカンダリＬＤＥＶ２２６Ｓは、プライマリＬＤＥＶ２２６Ｐの複製となる。すなわち、例えば、セカンダリＬＤＥＶ２２６Ｓのユーザ領域３０２Ｓには、プライマリＬＤＥＶ２２６Ｐのユーザ領域３０１Ｐ内のエクステントと同じ場所に、そのエクステントと同じエクステントが設定され、且つ、セカンダリＬＤＥＶ２２６ＳのＶＭＡ３０１Ｓには、プライマリＬＤＥＶ２２６ＰのＶＭＡ３０１Ｐ内の全ての情報が書かれる。故に、プライマリＬＤＥＶ２２６Ｐの各エクステントに対して設定されたアクセス制御属性が、コピー先のセカンダリＬＤＥＶ２２６Ｓの各エクステントに引き継ぐことができる。
【０２２５】
この第一のコピー制御によれば、プライマリＬＤＥＶ２２６ＰからセカンダリＬＤＥＶ２２６Ｓへのコピーが行われても、予めＶＭＡ３０１Ｓが設定されているので、ＬＢＡのオフセットを生じさせないようにすることができる。
【０２２６】
図２０Ｂは、第二のコピー制御の説明図である。
【０２２７】
プライマリＬＤＥＶ２２６Ｐには、ＬＤＥＶ共通情報３０３等が格納されたＶＭＡ３０１Ｐと、少なくとも一つのエクステントが設定されたユーザ領域３０１Ｐとがあるとする。一方、セカンダリＬＤＥＶ２２６Ｓは、何の情報も領域も設定されておらず空き状態になっているとする。
【０２２８】
この状態において、ストレージシステム１２０Ａの第一のプロセッサは、任意のタイミングで（例えば、ユーザ操作端末からのコピー要求に応答して）、図２０Ｂの下側に示すように、プライマリＬＤＥＶ２２６内の全ての情報をセカンダリＬＤＥＶ２２６Ｓに書き込むことの要求をストレージシステム１２０Ｂに発行する（Ｓ１３１）。それにより、ストレージシステム１２０Ｂの第二のプロセッサが、その要求に応答して、キャッシュメモリを介して、プライマリＬＤＥＶ２２６内の全ての情報をセカンダリＬＤＥＶ２２６Ｓに書き込む。
【０２２９】
以上の処理により、図２０Ｂの下側に示すように、セカンダリＬＤＥＶ２２６Ｓは、プライマリＬＤＥＶ２２６Ｐの複製となる。すなわち、例えば、セカンダリＬＤＥＶ２２６Ｓのユーザ領域３０２Ｓには、プライマリＬＤＥＶ２２６Ｐのユーザ領域３０１Ｐ内のエクステントと同じ場所に、そのエクステントと同じエクステントが設定され、且つ、セカンダリＬＤＥＶ２２６ＳのＶＭＡ３０１Ｓには、プライマリＬＤＥＶ２２６ＰのＶＭＡ３０１Ｐ内の全ての情報が書かれる。故に、プライマリＬＤＥＶ２２６Ｐの各エクステントに対して設定されたアクセス制御属性が、コピー先のセカンダリＬＤＥＶ２２６Ｓの各エクステントに引き継ぐことができる。なお、セカンダリＬＤＥＶ２２６Ｓに、プライマリＬＤＥＶ２２６Ｐと同じ記憶容量ＫのＶＭＡ３０１Ｓを設定する場合、第二のプロセッサ（又は第一のプロセッサ）は、第一のＬＢＡ管理方式を採用するならば、図２０Ｂの下側に示すように、セカンダリＬＤＥＶ２２６Ｓの外部ＬＢＡ０を、ＶＭＡ３０１Ｓの記憶容量Ｋに基づくオフセット分だけ下げるようにする（ユーザ領域３０１Ｓの先頭に位置させる）。また、図示しないが、プライマリＬＤＥＶ２２６Ｐと同じ記憶容量ＫのＶＭＡ３０１Ｓを設定する場合、第二のＬＢＡ管理方式を採用するならば、第二のプロセッサ（又は第一のプロセッサ）は、セカンダリＬＤＥＶ２２６Ｓに、ＶＭＡ用のＬＢＡとユーザ領域用のＬＢＡとを用意することができる。
【０２３０】
この第二のコピー制御によれば、セカンダリＬＤＥＶ２２６Ｓに予めＶＭＡ３０１Ｓを設定しておかなくて済むという利便性を得ることができる。
【０２３１】
図２１は、第三のコピー制御の説明図である。
【０２３２】
プライマリＬＤＥＶ２２６Ｐには、ＬＤＥＶ共通情報３０３等が格納されたＶＭＡ３０１Ｐと、少なくとも一つのエクステントが設定されたユーザ領域３０１Ｐとがあるとする。一方、セカンダリＬＤＥＶ２２６Ｓには、少なくとも、ＶＭＡ３０１Ｐと同じ記憶容量を持ったＶＭＡ３０１Ｓが設定されているとする。
【０２３３】
この状態において、ストレージシステム１２０Ａの第一のプロセッサは、コピー実行タイミングになった場合（例えば、ユーザ操作端末からのコピー要求を受けた場合）（Ｓ１４１）、コピーが可能か否かの判定を行う（Ｓ１４２）。具体的には、例えば、第一のプロセッサは、ＶＭＡ３０１Ｓから少なくとも情報要素「エクステント有無」を取得し、その情報要素「エクステント有無」から、セカンダリＬＤＥＶ２２６Ｓにエクステントが存在するか否かを判定する。エクステントが存在すると判定された場合には、コピーが不可能であると判定されたことになり、エクステントが存在しないと判定された場合には、コピーが可能であると判定されたことになる。セカンダリＬＤＥＶ２２６Ｓにエクステントが存在するにもかかわらずに、プライマリＬＤＥＶ２２６Ｐ内の全情報がセカンダリＬＤＥＶ２２６Ｓにコピーされてしまうと、セカンダリＬＤＥＶ２２６Ｓの構成が変わってしまうためである。なお、コピーが可能か否かの判定基準には、例えば、図１６Ｂを参照して説明したＶＭＡ設定／削除不可条件が採用されても良い。すなわち、セカンダリＬＤＥＶ２２６Ｓがホストに認識されている場合には、コピー不可と判定され、セカンダリＬＤＥＶ２２６Ｓがホストに認識されていない場合には、コピー可能と判定されても良い。
【０２３４】
Ｓ１４２において、コピー可能と判定された場合（例えばセカンダリＬＤＥＶ２２６Ｓにエクステントが一つも存在しないと判定された場合）（Ｓ１４３−１）、第一のプロセッサは、プライマリＬＤＥＶ２２６Ｐ内の情報をセカンダリＬＤＥＶ２２６Ｓにコピーする。
【０２３５】
一方、Ｓ１４２において、コピー不可能と判定された場合（例えばセカンダリＬＤＥＶ２２６Ｓにエクステントが存在すると判定された場合）（Ｓ１４３−２）、第一のプロセッサは、プライマリＬＤＥＶ２２６Ｐ内の情報をセカンダリＬＤＥＶ２２６Ｓにコピーしない。これにより、現在のセカンダリＬＤＥＶ２２６Ｓの構成が維持される。
【０２３６】
以上が、第四実施例についての説明である。この第四実施例では、プライマリＬＤＥＶ内の情報がセカンダリＬＤＥＶにコピーされる。このため、エクステント及びそのエクステントに設定されたアクセス制御属性が、プライマリＬＤＥＶからセカンダリＬＤＥＶに引き継がれ、コピー先のセカンダリＬＤＥＶ内の各エクステント内の情報を、プライマリＬＤＥＶ内の各エクステント内の情報と同等に保護することができる。
【０２３７】
なお、この第四実施例では、適宜、特願２００４−０７９１１９号（US Patent Application No.10/844,482）：本願出願時には未公開）に開示の技術を援用することができる。
【０２３８】
以上、本発明の好適な幾つかの変形例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、プロセッサ１４４は、入出力部１４１及び入出力部１４３の両方に備えられ、複数のプロセッサによって制御メモリ１４５が共有されても良い。また、書込み要求処理や読み出し要求処理は、ホスト側の入出力部１４１に搭載されたプロセッサ１４４が行っても良い。また、データのコピー元及びコピー先の少なくとも一方は、磁気テープであってもよい。
【図面の簡単な説明】
【０２３９】
【図１】図１は、本発明の一実施形態の第一実施例に係るコンピュータシステムのハードウェア構成を示すブロック図である。
【図２】図２は、本発明の一実施形態の第一実施例に係るコンピュータシステムの機能ブロック図である。
【図３】図３は、ＬＤＥＶ２２６の構成例を示す。
【図４】図４Ａは、エクステント管理情報３０６の説明図である。図４Ｂは、本発明の一実施形態の第一実施例において、エクステントに設定されたアクセス制御属性と、そのアクセス制御属性を表す各種ステータスフラグの状態と、そのアクセス制御属性の場合に実行されるアクセス制御行為との対応の説明図である。
【図５】図５は、ＬＤＥＶ共通情報３０３に含まれる情報要素の種類の一例を示す。
【図６】図６Ａ及び図６Ｂは、管理ブロックの説明図である。図６Ｃは、これら四つのフラグの値の全ての組み合わせを示す。
【図７】図７Ａは、ホストから書き込み要求を受けた場合に行われる書込み要求処理の流れを示す。図７Ｂは、ホストから読出し要求を受けた場合に行われる読み出し要求処理の流れを示す。
【図８】図８は、読出し禁止を表すアクセス制御属性がどのエクステントにも設定されないようになっていることを表す概念図。
【図９】図９は、キャッシュメモリ１４２又は制御メモリ１４４に書かれる情報の例を示す。
【図１０】図１０は、キャッシュフリー化判定処理の流れの一例を示す。
【図１１】図１１は、ＶＭＡ更新管理情報の構成例を示す。
【図１２】図１２は、ＶＭＡ更新処理の流れの一例を示す。
【図１３】図１３は、図１２のＶＭＡ更新処理が行われる場合のＶＭＡ参照処理の流れの一例を示す。
【図１４】図１４Ａは、ＬＤＥＶ共通情報３０３の表示の一例を示す。図１４Ｂは、エクステント管理情報の表示の一例を示す。
【図１５】図１５Ａは、エクステントの設定方法の一例を示す。図１５Ｂは、エクステントの設定方法の別の一例を示す。
【図１６】図１６Ａは、ＶＭＡの設定や削除によりＬＢＡにずれが生じることを示す。図１６Ｂは、ＶＭＡ設定／削除要求を受けた場合に行われる処理の流れの一例を示す。
【図１７】図１７Ａは、本発明の一実施形態の第二実施例において、管理情報群のうちの或る情報要素が読み出される場合に行われる処理の流れの一例を示す。図１７Ｂは、管理情報群のうちの或る情報要素が更新される場合に行われる処理の流れの一例を示す。
【図１８】図１８Ａは、本発明の一実施形態の第三実施例において、ホストから仮想ＬＤＥＶにアクセスされた場合には、その仮想ＬＤＥＶに対応付けられた外部ＬＤＥＶへのアクセスが行われることを示す。図１８Ｂは、ＶＭＡ識別子からＶＭＡタイプを判定するのに用いられる情報の構成例を示す。図１８Ｃは、外部ＬＤＥＶ内のＶＭＡ識別子を仮想ＬＤＥＶに反映させることができることを示す。
【図１９】図１９Ａは、本発明の一実施形態の第四実施例におけるいわゆるリモートコピーの説明図である。図１９Ｂは、第一のＬＢＡ管理方式の説明図である。図１９Ｃは、第二のＬＢＡ管理方式の説明図である。
【図２０】図２０Ａは、第一のコピー制御の説明図である。図２０Ｂは、第二のコピー制御の説明図である。
【図２１】図２１は、第三のコピー制御の説明図である。
【符号の説明】
【０２４０】
１１０Ａ…ホスト、１１１、１４４…プロセッサ、１１２…メインメモリ、１１３、１４１、１４３…入出力部、１２０…ストレージシステム、１２１…ディスクドライブ、１４０…ストレージ制御装置、１４５…制御メモリ、１５０…ＳＡＮ、１７０…ＬＡＮ、１８０…メールサーバ、２１１…アプリケーション、２１２…ストレージシステム制御部、２２１…アクセス制御部、２２２…エクステント管理部、２２３…ＬＤＥＶ管理情報、２２６…ＬＤＥＶ、３０１…ボリューム管理領域（ＶＭＡ）、３０２…ユーザ領域、３０３…ＬＤＥＶ共通情報、３０６…エクステント管理情報、３０７…エクステント、８０１…管理ブロック
【図１】
2006178849.tif 000003
【図２】
2006178849.tif 000004
【図３】
2006178849.tif 000005
【図４】
2006178849.tif 000006
【図５】
2006178849.tif 000007
【図６】
2006178849.tif 000008
【図７】
2006178849.tif 000009
【図８】
2006178849.tif 000010
【図９】
2006178849.tif 000011
【図１０】
2006178849.tif 000012
【図１１】
2006178849.tif 000013
【図１２】
2006178849.tif 000014
【図１３】
2006178849.tif 000015
【図１４】
2006178849.tif 000016
【図１５】
2006178849.tif 000017
【図１６】
2006178849.tif 000018
【図１７】
2006178849.tif 000019
【図１８】
2006178849.tif 000020
【図１９】
2006178849.tif 000021
【図２０】
2006178849.tif 000022
【図２１】
2006178849.tif 000023