(57)【要約】【課題】  ディスク領域の利用効率を高める。【解決手段】  仮想ボリューム制御部１３は、仮想ボリューム１１に対するホスト装置２０からの書き込みデータ受信時、ゼロデータ判定部１２によるゼロデータの判定結果を得、ゼロであれば物理ボリューム１１への実容量割当てを禁止し、ゼロでなければ物理ボリューム１１への実容量の割当て制御を行う。また、ホスト装置２０から読み出し要求があった場合、実容量割当て済み領域であれば、物理ボリューム１７からデータを読み出し、実容量未割当て領域であれば、ゼロデータ生成部１６で生成したゼロデータをホスト装置２０へ送信する制御を行う。【選択図】図１
2011048553.tif 000002
【特許請求の範囲】
【請求項１】
仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置において、
外部から前記仮想ボリュームへの書き込みがあった場合、その書き込みデータがゼロであるか否かを判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する制御手段、
を備えたことを特徴とするストレージ装置。
【請求項２】
前記制御手段は、
前記書き込みとは非同期に、実容量割当て済みの領域への書き込みデータがゼロか否かを判定し、ゼロであった場合に、前記実容量割当て済みの領域を、未割当ての状態に更新設定することを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記制御手段は、
前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを有し、
外部から書き込み要求を受信すると前記第１のデータ割当て管理テーブルを参照し、
前記仮想ボリュームへの書き込みアドレスが物理ボリュームへ未割当てであった場合、前記割当て状況が未割当て状態になっている物理ボリュームの番号およびアドレスを検索し、該当の物理ボリュームの割当て状況を割当て済み状態に更新すると共に、該当の物理ボリュームへの前記書き込みデータの転送を指示し、
前記仮想ボリュームへの書き込みアドレスが前記物理ボリュームへ割当て済み常態になっていた場合、該当の物理ボリュームへの前記書き込みデータの転送を指示することを特徴とする請求項１記載のストレージ装置。
【請求項４】
前記制御手段は、
前記仮想ボリュームへの書き込みデータがゼロであった場合に前記第１のデータ割当て管理テーブルを参照し、
前記仮想ボリュームへの書き込みアドレスの割当て状況が未割当て状態になっていた場合に、前記書き込みデータの前記物理モジュールへの割当てを禁止し、
前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっていた場合に、前記割当て状況を、未割当ての状態に更新設定することを特徴とする請求項３記載のストレージ装置。
【請求項５】
前記制御手段は、
前記仮想ボリュームへの読み出しアドレスの割当て状況が記憶された第２のデータ割当て管理テーブルを有し、
外部から読み出し要求を受信すると前記第２のデータ割当て管理テーブルを参照し、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ未割当て状態になっていた場合、別途生成されるゼロデータの読み出しを指示し、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ割当て済み状態になっていた場合に、該当する物理ボリュームからの読み出しデータの転送を指示することを特徴とする請求１記載のストレージ装置。
【請求項６】
前記制御手段は、
前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを有し、
前記書き込みとは非同期に、実記憶容量割当て済みの領域への書き込みデータを参照し、ゼロであった場合に、前記第１のデータ割当て管理テーブルを参照し、前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっている前記物理ボリュームを未割当て状態に更新することを特徴とする請求項２記載のストレージ装置。
【請求項７】
仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置における実容量割当て方法であって、
外部から前記仮想ボリュームへの書き込みがあった場合に、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する第１のステップ、
を有することを特徴とするストレージ装置における実容量割当て方法。
【請求項８】
前記書き込みとは非同期に、実記量割当て済みの領域への書き込みデータがゼロか否かを判定し、ゼロであった場合に、前記実容量割当て済みの領域を、未割当ての状態に更新設定する第２のステップと、
を有することを特徴とする請求項７記載のストレージ装置における実容量割当て方法。
【請求項９】
前記第１のステップは、
外部から書き込み要求を受信すると、前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを参照するサブステップと、
前記仮想ボリュームへの書き込みアドレスが物理ボリュームへ未割当てであった場合、前記割当て状況が未割当て状態になっている物理ボリュームの番号およびアドレスを検索し、該当の物理ボリュームの割当て状況を割当て済み状態に更新すると共に、該当の物理ボリュームへの前記書き込みデータの転送を指示するサブステップと、
前記仮想ボリュームへの書き込みアドレスが前記物理ボリュームへ割当て済み常態になっていた場合、該当の物理ボリュームへの前記書き込みデータの転送を指示するサブステップと、
を有することを特徴とする請求項７記載のストレージ装置における実容量割当て方法。
【請求項１０】
前記第１のステップは、
前記仮想ボリュームへの書き込みデータがゼロであった場合に前記第１のデータ割当て管理テーブルを参照するサブステップと、
前記仮想ボリュームへの書き込みアドレスの割当て状況が未割当て状態になっていた場合に、前記書き込みデータの前記物理ボリュームへの割当てを禁止するサブステップと、
前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっていた場合に、前記割当て状況を、未割当ての状態に更新設定するサブステップと、
を更に有することを特徴とする請求項９記載のストレージ装置における実容量割当て方法。
【請求項１１】
前記第１のステップは、
外部から読み出し要求を受信すると、前記仮想ボリュームへの読み出しアドレスの割当て状況が記憶された第２のデータ割当て管理テーブルを参照するサブステップと、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ未割当て状態になっていた場合、別途生成されるゼロデータの読み出しを指示するサブステップと、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ割当て済み状態になっていた場合に、該当する物理ボリュームからの読み出しデータの転送を指示するサブステップと、
を有することを特徴とする請求７記載のストレージ装置における実容量割当て方法。
【請求項１２】
前記第２のステップは、
前記書き込みとは非同期に、実記憶容量割当て済みの領域への書き込みデータがゼロか否かを判定するサブステップと、
ゼロであった場合に、前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを参照し、前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっている前記物理ボリュームを未割当ての状態に更新設定するサブステップと、
を有することを特徴とする請求項８記載のストレージ装置における実容量割当て方法。
【請求項１３】
コンピュータ上で実行され、仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置の実容量割当てプログラムであって、
前記コンピュータに、
外部から前記仮想ボリュームへの書き込みがあった場合に、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する第１の処理、
を実行させることを特徴とする実容量割当てプログラム。
【請求項１４】
前記書き込みとは非同期に、実容量割当て済みの領域への書き込みデータがゼロか否かを判定し、ゼロであった場合に、前記実容量割当て済みの領域を未割当ての状態に更新設定する第２の処理、
を実行させることを特徴とする請求項１３記載の実容量割当てプログラム。
【請求項１５】
前記第１の処理は、
外部から書き込み要求を受信すると、前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを参照する処理と、
前記仮想ボリュームへの書き込みアドレスが物理ボリュームへ未割当てであった場合、前記割当て状況が未割当て状態になっている物理ボリュームの番号およびアドレスを検索し、該当の物理ボリュームの割当て状況を割当て済み状態に更新すると共に、該当の物理ボリュームへの前記書き込みデータの転送を指示する処理と、
前記仮想ボリュームへの書き込みアドレスが前記物理ボリュームへ割当て済み常態になっていた場合、該当の物理ボリュームへの前記書き込みデータの転送を指示する処理と、
を含むことを特徴とする請求項１３記載の実容量割当てプログラム。
【請求項１６】
前記第１の処理は、
前記仮想ボリュームへの書き込みデータがゼロであった場合に前記第１のデータ割当て管理テーブルを参照する処理と、
前記仮想ボリュームへの書き込みアドレスの割当て状況が未割当て状態になっていた場合に、前記書き込みデータの前記物理ボリュームへの割当てを禁止する処理と、
前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっていた場合に、前記割当て状況を、未割当ての状態に更新設定する処理と、
を更に含むことを特徴とする請求項１５記載の実容量割当てプログラム。
【請求項１７】
前記第１の処理は、
外部から読み出し要求を受信すると、前記仮想ボリュームへの読み出しアドレスの割当て状況が記憶された第２のデータ割当て管理テーブルを参照する処理と、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ未割当て状態になっていた場合、別途生成されるゼロデータの読み出しを指示する処理と、
前記仮想ボリュームへの読み出しアドレスが前記物理ボリュームへ割当て済み状態になっていた場合に、該当する物理ボリュームからの読み出しデータの転送を指示する処理と、
を含むことを特徴とする請求１３記載の実容量割当てプログラム。
【請求項１８】
前記第２の処理は、
前記書き込みとは非同期に、実記憶容量割当て済みの領域への書き込みデータがゼロか否かを判定する処理と、
ゼロであった場合に、前記物理ボリュームへの書き込みアドレスの割当て状況が記憶された第１のデータ割当て管理テーブルを参照し、前記仮想ボリュームへの書き込みアドレスの割当て状況が割当て済み状態になっている前記物理ボリュームを未割当て状態に更新設定する処理と、
を含むことを特徴とする請求項１４記載の実容量割当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、および同装置における実容量割当て方法、ならびに実容量割当てプログラムに関し、例えば、ホスト装置からアクセスされるディスクアレイにおいて、ディスク容量の利用効率を高める技術に関する。
【背景技術】
【０００２】
例えば、ＲＡＩＤ（Redundant Arrays
of Inexpensive Disks）を構成するディスクアレイに仮想的なボリュームを構築し、実際に書き込みがあった領域に対してのみ実容量を割当てるストレージ装置が知られている。その具体的な内容は、以下にリストした特許文献１、２に詳細に開示されている。
【０００３】
特許文献１、２に開示されたストレージ装置では、システム構成の大規模化、複数のホスト装置によるによる共有化等によりディスクアレイ内に複数の仮想ボリュームが構築されるようになれば、実際に書き込みがあった領域に対して割当てられる実容量が有効利用できなくなるといった課題がある。
【０００４】
このため、特許文献３では、未使用領域と判定された領域に割当てられたエクステント（実容量に相当）を論理ディスクから開放し、物理ディスクを有効利用可能なディスクアレイ装置が提案されており、また、特許文献４では、書き込みデータをチェックし、デフォルトボイドデータパターンであればチャンク（実容量に相当）割当て行わないストレージシステムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１７６８９号公報
【特許文献２】特開２００８−１５８６６１号公報
【特許文献３】特開２００７−２４９７２８号公報
【特許文献４】特開２００８−１３００８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献２、３に開示されているように、仮想的なボリュームを構築し、実際に書き込みがあった領域に対してのみ実容量を割当てる機能を有するストレージ装置では、テープなどのバックアップデータからのリストア、あるいはボリュームの複製を作成する場合、有効データが格納されていない領域についても書き込みが行われてしまう。このため、無効なデータのために実容量を割当ててしまい、したがって、システムに実装されたディスク容量を無駄に消費してしまうという問題があった。
【０００７】
その理由は、仮想ボリュームへの書き込みデータの内容がゼロの場合でも物理ボリュームへの実容量割当てが行われることにある。
【０００８】
（発明の目的）
本発明の目的は、ディスク領域の利用効率を高めたストレージ装置、および同装置における実容量割当て方法、ならびに実容量割当てプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１のストレーシ装置は、仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置において、外部から仮想ボリュームへの書き込みがあった場合、その書き込みデータがゼロであるか否かを判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する制御手段、を含む。
【００１０】
本発明の第２のストレージ装置における実容量割当て方法は、仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置における実容量割当て方法であって、外部から仮想ボリュームへの書き込みがあった場合に、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する第１のステップ、を含む。
【００１１】
本発明の第３の実容量割当てプログラムは、コンピュータ上で実行され、仮想ボリュームを生成し、書き込みがあった領域に対して実容量を割当てるストレージ装置の実容量割当てプログラムであって、コンピュータに、外部から仮想ボリュームへの書き込みがあった場合に、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する第１の処理、を実行させる。
【発明の効果】
【００１２】
本発明によれば、ディスク領域の利用効率を高めたストレージ装置、および同装置における実容量割当て方法、ならびに実容量割当てプログラムを提供することができる。
【００１３】
その理由は、制御手段が、仮想ボリュームへの書き込みデータの内容がゼロの場合に、物理ボリュームへの実容量の割当てを禁止する制御を行うからである。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態によるストレージ装置の構成を示すブロック図である。
【図２】本実施の形態によるストレージ装置が有するデータ割当て管理テーブルのデータ構造の一例を示す図である。
【図３】本実施の形態によるストレージ装置の物理ボリュームへの実容量割当て処理を示すフローチャートである。
【図４】本実施の形態によるストレージ装置の物理ボリュームの開放処理を示すフローチャートである。
【図５】本発明の第２の実施の形態によるストレージ装置の物理ボリュームの開放処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
（第１の実施の形態の構成）
図１は、本実施の形態によるストレージ装置の構成を示すブロック図である。
【００１７】
図１を参照すると、本実施の形態によるストレージ装置１０は、ホスト装置２０に接続され、仮想ボリューム１１と、ゼロデータ判定部１２と、仮想ボリューム制御部１３と、データ転送制御部１４と、キャッシュ１５と、ゼロデータ生成部１６と、物理ボリューム１７とを含み、構成される。
【００１８】
仮想ボリューム制御部１３は、本実施の形態によるストレージ装置１０の制御中枢となり、外部接続されるホスト装置２０から、仮想ボリューム１１への書き込み要求があった場合にそのデータ転送を制御すると共に、書き込みデータを記憶する領域を物理ボリューム１７に割当てるために、仮想ボリューム１１と物理ボリューム１７のデータ割当て状況を管理するデータ割当てテーブル１３０を更新する機能を有する。
【００１９】
仮想ボリューム制御部１３が内蔵する上述したデータ割当てテーブル１３０は、物理割当て管理テーブル１３１（第１のデータ割当てテーブル）と、仮想割当て管理テーブル１３２（第２のデータ割当て管理テーブル）とにより構成され、そのデータ構造の一例が、図２（ａ）（ｂ）にそれぞれ示されている。
【００２０】
物理割当て管理テーブル１３１は、仮想ボリューム制御部１３よって管理さる、物理ボリューム１７の割当て状況を示す表データであり、図２（ａ）にそのデータ構造の一例が示されるように、物理ボリュームアドレス、割当て状況、仮想ボリューム番号および仮想ボリュームアドレスの各データフィールドにより構成される。
【００２１】
また、仮想割当て管理テーブル１３２は、仮想ボリューム制御部１３によって管理される、仮想ボリューム１１の割当て状況を示す表データであり、図２（ｂ）にそのデータ構造の一例が示されるように、仮想ボリュームアドレス、割当て状況および物理ボリュームアドレスの各データフィールドで構成される。なお、物理割当て管理テーブル１３１、仮想割当て管理テーブル１３２共に、割当てを行うデータサイズは任意のサイズで実現すればよい。
【００２２】
データ転送制御部１４は、仮想ボリューム制御部１３からの指示により、キャッシュ１５から物理ボリューム１７へのデータ転送を制御し、また、後述するゼロデータ生成部１６により生成さるゼロデータ、及び物理ボリューム１７の有効データをキャッシュ１５へデータ転送する機能を有する。
【００２３】
キャッシュ１５は、物理ボリューム１７に格納されたディスク上の使用頻度の高いデータが格納されるバッファメモリであり、仮想ボリューム１１と物理ボリューム１７との間のデータ転送パスになる。
【００２４】
ゼロデータ判定部１２は、ホスト装置２０から書き込み要求と共に受信する書き込みデータの内容が“ゼロ”であるかを判定する機能を有する。また、ゼロデータ生成部１６は、ホスト装置２０からの読み出し要求時、仮想ボリューム１１への読み出しアドレスが物理ボリューム１７へ未割当てであった場合に、ゼロデータを生成してキャッシュ１５へ転送する機能を有する。
【００２５】
このため、ゼロデータ判定部１２は、上述した仮想ボリューム制御部１３と協働して動作することにより、外部（ホスト装置２０）から仮想ボリュームへの書き込みがあった場合、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止する制御手段として機能する。
【００２６】
（第１の実施の形態の動作）
ここで、図３、図４を参照して、本実施の形態によるストレージ装置１０の動作について説明する。
【００２７】
まず、図３のフローチャートを参照しながら、仮想ボリューム制御部１３による、物理ボリューム１７への実容量割当て処理（Ｓ３００）について説明する。図３によれば、ホスト装置２０からストレージ装置１０に対し、仮想ボリューム１１へ書き込み要求があった場合（ステップＳ３０１“書き込み”）、その書き込みデータは、キャッシュ１５へ転送される。このとき、仮想ボリューム制御部１３は、ホスト装置２０から仮想ボリューム１１への書き込みアドレスの割当て状況を確認するため、データ割当てテーブル１３０（物理割当て管理テーブル１３１）の内容を参照する（ステップＳ３０２）。
【００２８】
仮想ボリューム制御部１３は、物理割当て管理テーブル１３１参照の結果、仮想ボリューム１１への書き込みアドレスが物理ボリューム１７へ未割当てであった場合（ステップＳ３０３“ＹＥＳ”）、割当て状況が“未割当て”の状態になっている物理ボリュームアドレスを検索する（ステッフＳ３０４）。そして、この検索にＨＩＴした場合に（ステップＳ３０５“ＹＥＳ”）、その割当て状況を“割当て済み”に更新すると共に（ステップＳ３０６）、実容量の割当てを行う物理ボリューム１７の仮想ボリューム番号、および仮想ボリュームアドレスを記憶し、データ転送制御部１４へ、キャッシュ１５から物理ボリューム１７へのデータ転送を指示する（ステップＳ３０７）。
【００２９】
一方、ステップＳ３０３の未割当て判定処理で、仮想ボリューム１１への書き込みアドレスが既に物理ボリューム１７へ割当て済みであった場合（ステップＳ３０３“ＮＯ”）、仮想ボリューム制御部１３は、物理割当て管理テーブル１３１の内容は更新せず、データ転送制御部１４へ、キャッシュ１５から物理ボリューム１７へのデータ転送を指示する（ステップＳ３０７）。
【００３０】
次に、ホスト装置２０からストレージ装置１０の仮想ボリューム１１へ読み出し要求があった場合（ステップＳ３０１“読み出し”）、仮想ボリューム制御部１３は、ホスト装置２０から仮想ボリューム１１への読み出しアドレスの割当て状況を確認するため、仮想割当て管理テーブル１３２の内容を参照する（ステップＳ３０８）。
【００３１】
仮想割当て管理テーブル１３２参照の結果、仮想ボリューム１１への読み出しアドレスが物理ボリューム１７へ未割当てであった場合（ステップＳ３０９“ＹＥＳ”）、仮想ボリューム制御部１３は、データ転送制御部１４に対して、データ生成部１６にキャッシュ１５へのデータ転送を指示し、このときデータ生成部１６は、生成したゼロデータをキャッシュ１５へデータ転送する（ステップＳ３１０）。
【００３２】
一方、仮想ボリューム１１への読み出しアドレスが物理ボリューム１８へ割当て済みであった場合（ステップＳ３０９“ＮＯ”）、仮想ボリューム制御部１３は、データ転送制御部１４に対し、物理ボリューム１７からキャッシュ１５へのデータ転送を指示する（ステップＳ３１１）。
【００３３】
次に、本実施の形態における物理ボリュームの開放処理（Ｓ４００）について、図４のフローチャートを参照しながら説明する。
【００３４】
図４によれば、ストレージ装置１０がホスト装置２０から書き込み要求を受信した場合（ステップＳ４０１）、ゼロデータ判定部１２は、同時に受信する仮想ボリューム１１への書き込みデータを常に監視し、ここで、書き込みデータが“ゼロ”であることを検出すると（ステップＳ４０２“ＹＥＳ”）、そのことを仮想ボリューム制御部１３に通知する。これを受けた仮想ボリューム制御部１３は、物理割当て管理テーブル１３１の内容を参照し（ステップＳ４０３）、仮想ボリューム１１への書き込みアドレスの割当て状況が“未割当て”であった場合（ステップＳ４０４“ＹＥＳ”）、先に無効データであることを示すゼロデータの通知を受けているため、物理ボリューム１７への実容量の割当てを禁止し（ステップＳ４０５）、この領域の他への使用を開放する。
【００３５】
一方、仮想ボリューム１１への書き込みアドレスの割当て状況が“割当て済み”であった場合（ステップＳ４０４“ＮＯ”）、仮想ボリューム制御部１３は、物理割当て管理テーブル１３１の割当て状況フィールドの内容を“未割当て”状態に更新する（ステップＳ４０６）。
【００３６】
なお、ステップＳ４０２の書き込みデータゼロ判定処理で、書き込みデータがゼロでない有効データの場合（ステップＳ４０２“ＮＯ”）、仮想ボリューム制御部１３は、図３に示した仮想ボリュームへの実容量割当て処理を実行する（ステップＳ３００）。
【００３７】
すなわち、本実施の形態によるストレージ装置１０は、仮想ボリューム１１に対するホスト装置２０からの書き込みデータ受信時、仮想ボリューム制御部１３による制御の下、ゼロデータ判定部１２によるゼロデータの判定結果を得、ゼロであれば物理ボリューム１１への実容量割当てを禁止し、ゼロでなければ実容量を割当てる制御を行う。また、ホスト装置２０から読み出し要求があった場合、実容量割当て済み領域であれば、物理ボリューム１７からデータを読み出し、実容量未割当て領域であれば、ゼロデータ生成部１６で生成したゼロデータをホスト装置２０へ送信する制御を行う。
【００３８】
（第１の実施の形態による効果）
本実施の形態によるストレージ装置１０では、制御手段が、外部から仮想ボリュームへの書き込みがあった場合、その書き込みデータがゼロであるか否か判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止するように制御することで、データ記憶容量を削減することが可能になる。この結果、バックアップデータからのリストア時、ボリュームデータの複製時等、無駄にディスク容量を消費することを回避でき、その分の領域の使用を他へ開放することができる。
【００３９】
その理由は、御手段が、仮想ボリュームへの書き込みデータの内容がゼロの場合に、物理ボリュームへの実容量の割当てを禁止するからである。
【００４０】
（第２の実施の形態の構成）
上述した第１の実施の形態では、割当て済みの領域に対してゼロデータの書き込みが行われる場合の実容量割当て開放処理を、書き込みデータのゼロ判定により行うものとして説明したが、この書き込みとは非同期に動作するバックグランド処理にて、物理ボリュームのデータがゼロであるかを否かを判定し、ゼロである領域の割当てを開放することによって代替することも可能である。これを第２の実施の形態として以下に説明する。
【００４１】
図５は、本発明の第２の実施の形態によるストレージ装置１０の物理ボリュームの開放処理（Ｓ５００）を示すフローチャートである。以下に説明する第２の実施の形態においても上述した第１の実施の形態同様、図１に示すストレージ装置１０の構成、及び、図２に示すデータ割当てテーブル１３０のデータ構造を利用するものとする。
【００４２】
図５によれば、仮想ボリューム制御部１３は、まず、Ｐｖｉを０に初期化する（ステップＳ５０１）。ここで、Ｐｖｉは、物理ボリューム番号（アドレス）を指定するためにプログラム内に設定されるレジスタとする。続いて仮想ボリューム制御部１３は、内蔵のタイマをスタートさせ、タイムアウト（Ｔ．Ｏ）を検出する（ステップＳ５０２）。ここで、タイマは、バックグラントで実行される物理ボリューム１７への書き込みデータのゼロ判定の周期をカウントするために使用されるものであり、例えは１秒間隔を監視するものとする。
【００４３】
仮想ボリューム制御部１３は、Ｔ．Ｏを検出すると（ステップＳ５０２“ＹＥＳ”）、ゼロデータ判定部１２を動作させ、ゼロデータ判定部１２からその判定結果を取得する。仮想ボリューム制御部１３は、ゼロデータ判定部１２から、物理ボリューム番号０のアドレスに該当する物理ボリューム１７のデータがゼロであることの通知を受けとると（ステップＳ５０３“ＹＥＳ”）、データ管理テーブル１３０（物理割当て管理テーブル１３１）の割当て状況のフィールドの内容を“未割当て”の状態に更新し、同物理ボリューム番号のアドレスに相当する実割当て領域の使用を他へ開放する（ステップＳ５０４）。そして、Ｐｖｉを＋１更新して（ステップＳ５０５）、ステップＳ５０２のＴ．Ｏ判定処理へ戻る。
【００４４】
以降、次の物理ボリュームのゼロ判定を行ない（ステップＳ５０３）、その結果によっては物理割当て管理テーブル１３１の内容更新を行い（ステップＳ５０４）、Ｐｖｉの更新を実行する処理（Ｓ５０５）を、Ｐｖｉが、割当てられたデータサイズの全てをカウントするまでの間（ステップＳ５０６“ＹＥＳ”）、繰り返し実行する。
【００４５】
一方、ステップＳ５０３の物理ボリューム１７のゼロデータ判定処理で、ゼロデータ判定部１２から物理ボリューム１７のデータが有効データであることの通知を受けると（ステップＳ５０３“ＮＯ”）、仮想ボリューム制御部１３は、ステップＳ５０４のデータ管理テーブル１３０の割当て状況のフィールドの更新処理をスキップしてＰｖｉを＋１更新し（ステップＳ５０５）、ステップＳ５０２の判定処理以降の処理に戻り、次の物理ボリュームのゼロ判定を行う。以上の処理は、Ｐｖｉが、割当てられたデータサイズの全てをカウントとするまでの間（ステップＳ５０６“ＹＥＳ”）、繰り返し実行される。
【００４６】
（第２の実施の形態の効果）
本実施の形態では、制御手段が、ホスト装置２０からの書き込み要求とは非同期に、物理ボリューム１７への実容量割当て済みの領域への書き込みデータがゼロか否かを判定し、ゼロであった場合に、実容量割当て済みの領域を、未割当ての状態に更新設定することにより、データ記憶容量を削減することが可能になる。この結果、上述した第１の実施の形態同様、バックアップデータからのリストア時、ボリュームデータの複製時等、無駄にディスク容量を消費することを回避でき、その領域の使用を他へ開放することができる。
【００４７】
その理由は、制御手段が、書き込みとは非同期に、物理ボリューム１７のデータがゼロであるか否かを判定し、ゼロである領域の割当てを開放するからである。但し、上述した物理ボリューム１７の開放処理は、バックグランドで行われるため、その間隔によっては第１の実施の形態に比べストレージ装置１０（仮想ボリューム制御部１３）の処理負担は少なからず増加することになる。
【００４８】
なお、図１に示す制御手段（例えは、ゼロデータ判定部１２と仮想ボリューム制御部１３）が有する機能は、全てをソフトウェアによって実現しても、あるいはその少なくとも一部をハードウェアで実現してもよい。例えば、制御手段が、外部から仮想ボリュームへの書き込みがあった場合、その書き込みデータがゼロであるか否かを判定し、ゼロであった場合に書き込みがあった領域に対する実容量の割当てを禁止するデータ処理は、１または複数のプログラムによりコンピュータ上で実現してもよく、また、その少なくとも一部をハードウェアで実現してもよい。
【００４９】
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上述実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【産業上の利用可能性】
【００５０】
本発明によれば、割当て済みの領域に対しゼロデータの書き込みが行われる場合の無効データの判定により、又は、書き込みとは非同期に、物理ボリュームのデータのゼロ判定により、ゼロである領域の割当てを開放することにより、ディスク容量の使用効率を高めることができるため、特に、システム構成の大規模化、複数のホスト装置によるによる共有化等により、ディスクアレイ内に複数の仮想ボリュームが構築されるシステムに利用して顕著な効果が得られる。
【符号の説明】
【００５１】
１０：ストレージ装置
１１：仮想ボリューム
１２：ゼーデータ判定部
１３：仮想ボリューム制御部（制御手段）
１４：データ転送制御部
１５：キャッシュ
１６：ゼロデータ生成部
１７：物理ボリューム
２０：ホスト装置
１３０：データ割当て管理テーブル
１３１：物理割当て管理テーブル
１３２：仮想割当て管理テーブル
【図１】
2011048553.tif 000003
【図２】
2011048553.tif 000004
【図３】
2011048553.tif 000005
【図４】
2011048553.tif 000006
【図５】
2011048553.tif 000007