(57)【要約】【課題】本発明は、不連続なデータを連続的なデータに変換して書き込むことで、不連続データの書込み処理を高速化させ得るストレージ装置を提案するものである。【解決手段】ホスト計算機から送信される不連続なデータを格納するための第１の領域と、不連続なデータがアドレス変換された連続的なデータを格納するための第２の領域とを有するストレージ装置において、ホスト計算機から送信される不連続なデータを、連続的なデータに変換し、第２の領域を分割してなる複数の第３の領域のいずれかに格納するデータ格納部と、データ格納部により第３の領域に格納された連続的なデータのうち、当該第３の領域から第１の領域に移動が必要な移動対象データを管理するデータ管理部と、データ管理部により管理された移動対象データが最も少ない第３の領域の移動対象データを第１の領域に移動することにより、第３の領域を開放する領域開放部とを備えるようにした。【選択図】図３
2007233896.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機から送信される不連続なデータを格納するための第１の領域と、前記不連続なデータがアドレス変換された連続的なデータを格納するための第２の領域とを有するストレージ装置において、
前記ホスト計算機から送信される前記不連続なデータを、前記連続的なデータに変換し、前記第２の領域を分割してなる複数の第３の領域のいずれかに格納するデータ格納部と、
前記データ格納部により前記第３の領域に格納された前記連続的なデータのうち、当該第３の領域から前記第１の領域に移動が必要な移動対象データを管理するデータ管理部と、
前記データ管理部により管理された前記移動対象データが最も少ない前記第３の領域の前記移動対象データを前記第１の領域に移動することにより、前記第３の領域を開放する領域開放部と
を備えることを特徴とするストレージ装置。
【請求項２】
前記データ管理部は、
各前記第３の領域に対する前記連続的なデータの格納量及び単位時間ごとの前記移動対象データの減少量を管理し、前記第３の領域に対する前記連続的なデータの格納量が所定閾値以上であり、かつ単位時間ごとの前記移動対象データの減少量が所定閾値未満の前記第３の領域を、開放対象の第３の領域として管理し、
前記領域開放部は、
前記データ管理部に管理された前記開放対象の第３の領域のうち、前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記領域開放部は、
前記データ管理部に前記開放対象の第３の領域が管理されていない場合には、前記第３の領域が前記連続的なデータで満たされており、かつ前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記データ管理部は、
各前記第３の領域に対する前記連続的なデータの格納量を管理し、
前記データ格納部は、
前記第３の領域が前記連続的なデータで満たされた後に、他の前記第３の領域に前記連続的なデータを格納する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記データ管理部は、
すべての前記第３の領域に対する前記連続的なデータの格納量を管理し、
前記領域開放部は、
前記第３の領域に対する前記連続的なデータの格納量が所定閾値以上であるときに、前記データ管理部により管理された前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記データ格納部は、
前記第３の領域に格納されている既存のデータに対して、上書きすべきデータが前記ホスト計算機から送信されたときに、前記既存のデータを無効化して前記上書きすべきデータを前記第３の領域の最後尾に格納する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項７】
ホスト計算機から送信される不連続なデータを格納するための第１の領域と、前記不連続なデータがアドレス変換された連続的なデータを格納するための第２の領域とを有するストレージ装置の制御方法において、
前記ホスト計算機から送信される前記不連続なデータを、前記連続的なデータに変換し、前記第２の領域を分割してなる複数の第３の領域のいずれかに格納する第１のステップと、
前記第１のステップにおいて前記第３の領域に格納した前記連続的なデータのうち、当該第３の領域から前記第１の領域に移動が必要な移動対象データを管理する第２のステップと、
前記第２のステップにおいて管理した前記移動対象データが最も少ない前記第３の領域の前記移動対象データを前記第１の領域に移動することにより、前記第３の領域を開放する第３のステップと
を備えることを特徴とするストレージ装置の制御方法。
【請求項８】
前記第１のステップでは、
各前記第３の領域に対する前記連続的なデータの格納量及び単位時間ごとの前記移動対象データの減少量を管理し、前記第３の領域に対する前記連続的なデータの格納量が所定閾値以上であり、かつ単位時間ごとの前記移動対象データの減少量が所定閾値未満の前記第３の領域を、開放対象の第３の領域として管理し、
前記第３のステップでは、
前記第１のステップにおいて管理した前記開放対象の第３の領域のうち、前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項７に記載のストレージ装置の制御方法。
【請求項９】
前記第３のステップでは、
前記第１のステップにおいて前記開放対象の第３の領域を管理していない場合には、前記第３の領域が前記連続的なデータで満たされており、かつ前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項８に記載のストレージ装置の制御方法。
【請求項１０】
前記第１のステップでは、
各前記第３の領域に対する前記連続的なデータの格納量を管理し、
前記第２のステップでは、
前記第３の領域が前記連続的なデータで満たされた後に、他の前記第３の領域に前記連続的なデータを格納する
ことを特徴とする請求項７に記載のストレージ装置の制御方法。
【請求項１１】
前記第１のステップでは、
すべての前記第３の領域に対する前記連続的なデータの格納量を管理し、
前記第３のステップでは、
前記第３の領域に対する前記連続的なデータの格納量が所定閾値以上であるときに、前記第１のステップにおいて管理した前記移動対象データが最も少ない前記第３の領域を開放する
ことを特徴とする請求項７に記載のストレージ装置の制御方法。
【請求項１２】
前記第２のステップでは、
前記第３の領域に格納されている既存のデータに対して、上書きすべきデータが前記ホスト計算機から送信されたときに、前記既存のデータを無効化して前記上書きすべきデータを前記第３の領域の最後尾に格納する
ことを特徴とする請求項７に記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、特に、物理ディスクドライブ内に対する不連続なデータの書込み処理を実行するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
従来、ストレージ装置の物理ディスクドライブへの書込み処理は、当該物理ディスクドライブ内に対する不連続なデータの書込み処理であるランダムライトと、当該物理ディスクドライブ内に対する連続的なデータの書込み処理であるシーケンシャルライトとに大別される。
【０００３】
一般に、シーケンシャルライトは、ランダムライトに比べ、データ転送性能が大きく優れるので、高速に物理ディスクドライブへの書込みが可能となるという特徴を有している。
【０００４】
そこで、ランダムライト時の性能向上手法の１つとして、不連続なデータをストレージ装置内のストレージ制御部にてアドレス変換し、連続的なデータとしてディスクに書き込む、ログ形式による書込み処理（以下、これをログ形式ライトと呼ぶ）が提案されている（例えば、特許文献１参照）。この場合、このログ形式ライトを実行するストレージ装置は、通常のデータを格納する物理ディスク領域である基本領域と、シーケンシャル変換されたデータを書き込むためのログ領域とにより構成される。
【特許文献１】US6,516,380 B2
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなログ形式ライトは、ログ領域が有限であるため、ログ領域の使用可能容量が減少した際には、ログ領域内のデータを基本領域に移動することで、ログ領域とアドレス変換テーブルとを開放する処理(以下、これをログ開放処理と呼ぶ)が必要となる。
【０００６】
そして、このようなログ形式ライトでは、ログ開放処理の実行時には、ログ形式を使用しない場合に発生する通常ディスクへのアクセスと同じである、基本領域への書き込みによるランダムライトが必ず発生することとなる。
【０００７】
従って、このようなログ形式ライトでは、ログ開放処理実行時には、ログ領域へのシーケンシャルライトに、ログ領域開放のためのランダムライトが付加的に発生することとなり、ログ形式ライトの処理効率を落とし、この結果、ランダムライトの高速化を阻害する原因となっていた。
【０００８】
本発明の目的は、不連続なデータを連続的なデータに変換して書き込むことで、不連続データの書込み処理を高速化させ得るストレージ装置及びその制御方法を提供することである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明では、ホスト計算機から送信される不連続なデータを格納するための第１の領域と、不連続なデータがアドレス変換された連続的なデータを格納するための第２の領域とを有するストレージ装置において、ホスト計算機から送信される不連続なデータを、連続的なデータに変換し、第２の領域を分割してなる複数の第３の領域のいずれかに格納するデータ格納部と、データ格納部により第３の領域に格納された連続的なデータのうち、当該第３の領域から第１の領域に移動が必要な移動対象データを管理するデータ管理部と、データ管理部により管理された移動対象データが最も少ない第３の領域の移動対象データを第１の領域に移動することにより、第３の領域を開放する領域開放部とを備えるようにした。
【００１０】
従って、第２の領域を開放するために付加的に発生する、第１の領域への不連続なデータの書込み処理時における不連続なデータのデータ総量及び処理時間を削減することができるため、第１の領域への不連続なデータの書込み処理における処理効率を向上させることができる。
【００１１】
また、本発明では、ホスト計算機から送信される不連続なデータを格納するための第１の領域と、不連続なデータがアドレス変換された連続的なデータを格納するための第２の領域とを有するストレージ装置の制御方法において、ホスト計算機から送信される不連続なデータを、連続的なデータに変換し、第２の領域を分割してなる複数の第３の領域のいずれかに格納する第１のステップと、第１のステップにおいて第３の領域に格納した連続的なデータのうち、当該第３の領域から前記第１の領域に移動が必要な移動対象データを管理する第２のステップと、第２のステップにおいて管理した移動対象データが最も少ない第３の領域の移動対象データを第１の領域に移動することにより、第３の領域を開放する第３のステップとを備えるようにした。
【００１２】
従って、第２の領域を開放するために付加的に発生する、第１の領域への不連続なデータの書込み処理時における不連続なデータのデータ総量及び処理時間を削減することができるため、第１の領域への不連続なデータの書込み処理時における処理効率を向上させることができる。
【発明の効果】
【００１３】
本発明によれば、ホスト計算機から送信される不連続なデータを、連続的なデータに変換し、第２の領域を分割してなる複数の第３の領域のいずれかに格納し、第１のステップにおいて第３の領域に格納した連続的なデータのうち、当該第３の領域から前記第１の領域に移動が必要な移動対象データを管理して、第２のステップにおいて管理した移動対象データが最も少ない第３の領域の移動対象データを第１の領域に移動することにより、第３の領域を開放することで、第２の領域を開放するために付加的に発生する、第１の領域への不連続なデータの書込み処理時における不連続なデータのデータ総量及び処理時間を削減することができるため、第１の領域への不連続なデータの書込み処理時における処理効率を向上させることができ、かくして、不連続なデータを連続的なデータに変換して書き込むことで、不連続なデータの書込み処理を高速化させ得るストレージ装置及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
図１は、本発明の一実施の形態におけるストレージシステム１の全体構成を示す構成図である。図１において、ストレージ装置１０は、当該ストレージ装置全体の制御を行なうストレージ制御装置１００と、記憶領域を提供するストレージ駆動装置２００から構成される。ストレージ装置１０には、ストレージ制御装置１００のホストアダプタ１１０を介して、ストレージ装置１０を利用する上位装置となるアプリケーションサーバなどのホスト計算機３００が接続されている。このホスト装置３００は、例えば、マイクロプロセッサ（図示せず）、メモリ（図示せず）及び通信インタフェース（図示せず）等を備えて構成されている。
【００１６】
なお、ストレージ装置１０とホスト計算機３００を接続するためのインタフェースには、専用のネットワークであるＳＡＮ(Storage Area Network)１８０を用いる。また、ＳＡＮ１８０の構築には、ファイバチャネル、ＳＣＳＩ(Small Computer System Interface)、ＵＳＢ(Universal Serial Bus)、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４バス等を用いることが可能である。また、ストレージ装置１０に接続されるホスト計算機３００は、複数台でもよい。
【００１７】
さらに、ホスト計算機３００上には、ストレージ装置１０のディスク構成の操作や設定を行い、ストレージ装置１０の動作を制御する制御ソフトウェアがインストールされており、ホスト計算機３００のマイクロプロセッサが当該制御ソフトウェアを実行することにより、ストレージ装置１０に対してコマンドなどを発行し、ストレージ装置１０の動作を制御することができる。ただし、ストレージ装置１０とホスト計算機３００上のストレージ制御ソフトウェアとは、ＬＡＮ(Local Area Network)１９０を経由し、ストレージ装置１０のＮＩＣ(Network Interface Card)１７０を介してデータのやり取りを行う。もちろん、ストレージ装置１０の管理、制御を行うホスト計算機はホスト計算機３００とは別のものを使用しても良い。
【００１８】
ストレージ制御装置１００は、ストレージ装置１０を利用するホスト計算機３００を接続するホストアダプタ１１０及びＮＩＣ１７０、ストレージ装置１０の全体制御を行なう中央演算装置(以下、ＣＰＵ（Central Processing Unit）と呼ぶ)１２０、ＣＰＵ１２０がストレージ装置１０を制御するために必要なプログラムやデータを格納するメモリ１３０、ホスト計算機３００のデータアクセスに対し高速レスポンスを提供するユーザデータキャッシュ１４０、ＲＡＩＤ(Redundant Arrays of Inexpensive Disks)を構成する際にパリティ計算等を行なうＡＳＩＣｓ(Application Specific Integrated Circuits)１５０、ストレージ制御装置１００とストレージ駆動装置２００とを接続するディスクアダプタ１６０から構成されている。
【００１９】
さらにメモリ１３０は、ＣＰＵ１２０がストレージ装置１０を制御するために使用するプログラム１３００、ログ形式ライト実行時、不連続なデータを連続的なデータにアドレス変換し、ログ領域内の書き込み位置を管理するためのアドレス変換テーブル１３１０、ログ領域の使用率や開放対象データ率をモニタし、ログ開放処理の起動を制御するためのログ開放契機管理テーブル１３２０から構成される。
【００２０】
ストレージ駆動装置２００は、多数の物理ディスクドライブ２１０(記憶デバイス)を備えており、不連続なデータを格納するための基本領域２２０（第１の領域）及び不連続なデータがアドレス変換された連続的なデータを格納するためのログ領域２３０（第２の領域）を構成する。基本領域２２０及びログ領域２３０は、一般的に、物理ディスクドライブ２１０によるＲＡＩＤ構成の１つまたは複数のＬＵ(Logical Unit)により構成されている。
【００２１】
これにより、ストレージ装置１０は、ホスト計算機３００に対して大容量の記憶領域を提供することができる。また、本発明では、ログ領域２３０を複数の分割ログ領域（第３の領域）に分割し管理する。ストレージ駆動装置２００は、ログ領域２３０にデータを格納する場合には、１つの分割ログ領域がデータで満たされた後、次の分割ログ領域を使用することとする。
【００２２】
図２は、アドレス変換テーブル１３２０の構成図である。アドレス変換テーブル１３２０は、基本領域２２０に格納されるはずのライトデータ（不連続なデータ）がログ領域２３０のどこに格納されているのか位置を管理する役割と、ログ領域２３０への書き込み時にシーケンシャルに（連続的に）書き込みを行うためのアドレス管理の役割を担う。
【００２３】
アドレス変換テーブル１３２０は、基本領域用アドレス管理テーブル１３２１と、ログ領域用アドレス管理テーブル１３２２により構成される。基本領域用アドレス管理テーブル１３２１は、ホスト計算機３００から認識される記憶領域である基本領域２２０のアドレス管理を担当する。ログ領域用アドレス管理テーブル１３２２は、ストレージ制御装置１００内でシーケンシャル変換されたアドレス管理を担当する。
【００２４】
そして、基本領域用アドレス管理テーブル１３２１及びログ領域用アドレス管理テーブル１３２２は、それぞれ1対1に対応付けされている。ただし、アドレス変換テーブル１３２０は、基本領域２２０にデータを格納する場合には、基本領域用アドレス管理テーブル１３２１のみ使用し、ログ領域用アドレス管理テーブル１３２２には、何らも記録されていない旨を示す値「Ｎ／Ａ」を入力する。
【００２５】
基本領域用アドレス変換テーブル１３２１は、ターゲットＬＵＮ(Logical Unit Number)１３２３、ターゲットＬＵ内先頭ＬＢＡ(Logical Brock Address)１３２４及びターゲットＬＵ内末尾ＬＢＡ１３２５を記録するテーブルから構成される。また、ログ領域用アドレス変換テーブル１３２２は、ターゲットＬＵＮ１３２６、ターゲットＬＵ内先頭ＬＢＡ１３２７及びターゲットＬＵ内末尾ＬＢＡ１３２８を記録するテーブルから構成される。
【００２６】
ここで、ログ領域用アドレス管理テーブル１３２２のターゲットＬＵＮ１３２６、ターゲットＬＵ内先頭ＬＢＡ１３２７及びターゲットＬＵ内末尾ＬＢＡ１３２８を追加する場合には、次コマンドの先頭ＬＢＡが前コマンドの末尾ＬＢＡの直後となるようアドレスを割り振ることで、ログ領域２３０内でのシーケンシャルライトを実現する。また、ログ領域２３０内のデータを無効化する場合には、対象となるターゲットＬＵ１３２６、ターゲットＬＵ内先頭ＬＢＡ１３２７及びターゲットＬＵ内末尾ＬＢＡ１３２８に無効化を示す値「Ｎ／Ａ」を入力する。
【００２７】
また、基本領域２２０及びログ領域２３０が新規作成、若しくは初期化された場合にも、初期状態を表す値として、対象となるターゲットＬＵＮ１３２３、ターゲットＬＵ内先頭ＬＢＡ１３２４及びターゲットＬＵ内末尾ＬＢＡ１３２５、並びにターゲットＬＵＮ１３２６、ターゲットＬＵ内先頭ＬＢＡ１３２７及びターゲットＬＵ内末尾ＬＢＡ１３２８に無効化を示す値「Ｎ／Ａ」を入力する。
【００２８】
基本領域用アドレス変換テーブル１３２１及びログ領域用アドレス変換テーブル１３２２は、構成要素として、前記ターゲットＬＵＮ１３２３、１３２６、ターゲットＬＵ内先頭ＬＢＡ１３２４、１３２７、ターゲットＬＵ内末尾ＬＢＡ１３２５、１３２８以外に、データの長さを記録するデータレングス（Length）等のテーブルを含んでも良い。さらに、アドレス変換テーブル１３２０は、データ格納位置の高速サーチを可能にするため、基本領域用アドレス変換テーブル１３２１をビットマップ管理したり、ＬＵＮやＬＢＡをソートしたりする機能を有してもよい。
【００２９】
図３は、ログ開放契機管理テーブル１３１０の構成図である。領域ＩＤ１３１１は、分割ログ領域を識別するためのＩＤである。本ＩＤは、ログ領域２３０内に作成された分割ログ領域の各ナンバー「０」〜「Ｎ」に対応する。領域使用率１３１２は、各分割ログ領域の使用率を管理するパラメータである。開放対象データ率１３１３は、各分割ログ領域の開放時に移動対象となるデータの割合を示すパラメータである。
【００３０】
ここで、本発明では、ログ領域２３０内の既存データ(以下、これを旧データと呼ぶ)に対して、上書きすべきデータ(以下、これを新データと呼ぶ)が発生した場合、ログ領域２３０内の旧データを無効化し、新データをその時点で使用している分割ログ領域の最後尾へと書き込む「追記型」を採用することとする。
【００３１】
具体的には、旧データに割り当てられているログ領域用アドレス管理テーブル１３２２の情報を、新データ書き込み位置(その時点で使用している分割ログ領域の最後尾)に書き換えることで実現する。故に、データ上書き発生率が高いほど、過去に書き込まれたデータを有する分割ログ領域の開放対象データ量は大きく削減される。
【００３２】
開放対象データ減少率１３１４は、各分割ログ領域の単位時間毎の開放対象データ減少率を管理するパラメータである。開放対象フラグ１３１５は、各分割ログ領域の開放処理起動の「要」又は「不要」を判断するためのフラグである。開放対象フラグ１３１５は、各分割ログ領域の領域使用率１３１２が高く、かつ開放対象データ減少率１３１４が設定閾値未満である場合のみ「オン」（「ＯＮ」）に設定する。
【００３３】
開放処理起動フラグ１３１６は、ログ開放処理コマンド発行の「要」又は「不要」を判断するためのフラグであり、開放対象フラグ１３１５が「オン」である割合、若しくはログ領域全体のデータ率で決定する。
【００３４】
なお、開放対象データ減少率１３１４の設定閾値、開放対象フラグ１３１５を「オン」にするための領域使用率１３１２の判定閾値及び開放処理起動フラグ１３１６を「オン」にするための設定閾値は、ホスト計算機３００内の制御ソフトウェアによりユーザが利用形態に合わせた最適値を設定可能である。
【００３５】
図４は、ライトコマンド処理時のフローチャートである。この場合、ライトコマンド処理は、ライトコマンドを受領したときに、ＣＰＵ１２０がプログラム１３００を実行することにより起動される処理である。ストレージ制御装置１００のＣＰＵ１２０は、ホスト計算機３００からのライトコマンドを受領した後(ステップＳ３０１)、ストレージ制御装置１００内にて、ＬＵＮ、ＬＢＡ、データ長、実データ等のパラメータを取得する(ステップＳ３０２)。
【００３６】
次に、ＣＰＵ１２０は、取得したパラメータ及びその時点でのログ領域の状態から、受領コマンドのログ領域への書き込みが妥当であるかどうかを判定する(ステップＳ３０３)。そして、ＣＰＵ１２０は、ステップＳ３０３の判定の結果、受領コマンドのログ領域への書き込みが不適切であると判断した場合、ステップＳ３０４からステップＳ３０６に示す手順に従い、基本領域２２０へデータの書き込みを行う。一方、ＣＰＵ１２０は、受領コマンドのログ領域への書き込みが適切であると判断した場合、ステップＳ３０７からステップＳ３１０に示す手順に従い、ログ領域２３０へデータの書き込みを行う。
【００３７】
ここで、ステップＳ３０３でログ領域への書き込みが妥当でないことの判定例としては、受領コマンドがシーケンシャルライトである場合、もしくは、ログ領域２３０の空き容量が少なくなり過ぎたことによりログ領域２３０への書き込みを制限しログ領域を開放する必要が発生した場合、又は受領コマンドがランダムライトではあるがデータサイズが大きい場合等のログ形式ライトの効果がない、もしくは小さい場合や、ログ形式ライトの実行が困難な場合が挙げられる。
【００３８】
（１）基本領域へのデータ書き込み時の動作
まず、基本領域２２０へのデータ書き込み時の動作について説明する。ＣＰＵ１２０は、ステップＳ３０３により、受領コマンドのログ領域への書き込みが不適切であると判断した場合、アドレス変換テーブル１３２０を参照し、ログ領域２３０内に存在する旧データに対して、新データが発生するかを確認する(ステップＳ３０４)。
【００３９】
そして、ＣＰＵ１２０は、旧データがログ領域２３０内に存在する場合、対象データのログ領域用アドレス管理テーブル１３２２を無効化することで、ログ領域２３０内に存在する旧データを無効化し(ステップＳ３０５)、その後、新データを基本領域２２０へと書き込む(ステップＳ３０６)。
【００４０】
一方、ＣＰＵ１２０は、ステップＳ３０４にて、ログ領域２３０内に存在するデータへの上書きライトが発生しないと判断した場合、新データを基本領域２２０へと書き込む(ステップＳ３０６)。
【００４１】
（２）ログ領域へのデータ書き込み時の動作
次に、ログ領域２３０へのデータ書き込み時の動作について説明する。ＣＰＵ１２０は、ステップＳ３０３により、受領コマンドのログ領域への書き込みが適切であると判断した場合、新データをログ領域へ書き込み（ステップＳ３０７)（詳細は、図５にて説明)、ログ開放契機管理テーブル１３１０を更新する（ステップＳ３０８)（詳細は図６にて説明)。
【００４２】
その後、ＣＰＵ１２０は、ログ開放契機管理テーブル１３１０の情報に基づき、ログ開放処理起動の「要」又は「不要」を判断し(ステップＳ３０９)、ログ開放処理の起動が必要な場合は、最も効率的にログ開放できる領域に対し、ログ開放処理起動コマンドを発行し(ステップＳ３１０)（詳細は図７にて説明)、次の受領ライトコマンドに備える。
【００４３】
一方、ＣＰＵ１２０は、ステップＳ３０９にて、ログ開放処理の起動が不要と判断した場合は、そのまま次の受領ライトコマンドに備える。
【００４４】
（２−１）ログ領域２３０への書き込み時の動作
まず、ログ領域２３０への書き込み時の動作について説明する。図５は、ログ領域２３０へのデータの書き込み時のフローチャートである。ＣＰＵ１２０は、ログ領域２３０へのデータの書き込みを行う場合、アドレス変換テーブル１３２０内に旧データのエントリが存在するかどうかを調べる（ステップＳ４０１）。
【００４５】
ＣＰＵ１２０は、ステップＳ４０１にて、ログ領域２３０内に旧データが存在すると判明した場合、対象データのログ領域用アドレス管理テーブル１３２２を無効化することで、ログ領域２３０内に存在する旧データを無効化する(ステップＳ４０２)。
【００４６】
その後、ＣＰＵ１２０は、ログ領域２３０内の新データ書き込み位置が、その時点で使用している分割ログ領域の最後尾となるようログ領域用アドレス管理テーブル１３２２を更新し（ステップＳ４０３）、テーブルにて指定された場所へ新データの書き込みを行う（ステップＳ４０４）。
【００４７】
一方、ＣＰＵ１２０は、ステップＳ４０１にて、ログ領域２３０内に旧データが存在しないと判明した場合、ログ領域２３０内の新データ書き込み位置が、その時点で使用している分割ログ領域の最後尾となるようアドレス変換テーブル１３２０のエントリである基本領域用アドレス管理テーブル１３２１と、前記基本領域用アドレス管理テーブル１３２１に対応するログ領域用アドレス管理テーブル１３２２に新規エントリを作成し（ステップＳ４０５）、アドレス変換テーブル１３２０にて指定された場所へ新データの書き込みを行う（ステップＳ４０４）。
【００４８】
（２−２）ログ開放契機管理テーブル１３１０の更新時の動作
次に、ログ開放契機管理テーブル１３１０の更新時の動作について説明する。図６は、ログ開放契機管理テーブル１３１０の更新時における詳細なフローチャートである。以下、ステップＳ５０１、ステップＳ５０２及びステップＳ５０４からステップＳ５０７までは、ステップＳ３０７にてデータの書き込みを行った分割ログ領域に対応するテーブルが更新の対象となる。また、ステップＳ５０３及びステップＳ５０８では全分割ログ領域それぞれのテーブルが更新の対象となる。
【００４９】
ＣＰＵ１２０は、ステップＳ３０７による分割ログ領域へのデータ書き込み後、書き込みを行った分割ログ領域の領域使用率１３１２を更新し（ステップＳ５０１）、同領域の開放対象データ率１３１３を更新する（ステップＳ５０２）。
【００５０】
次に、ＣＰＵ１２０は、全分割ログ領域の、各開放対象データ減少率１３１４を更新し（ステップＳ５０３）、ステップＳ５０４に進む。ここで、開放対象データ減少率更新は、単位時間毎の開放対象データ減少率を、全分割ログ領域に対し算出することで実施する。
【００５１】
続いて、ＣＰＵ１２０は、ステップＳ５０４にて、書き込みを行った領域の領域使用率１３１２が高い値になっているかをチェックし（ステップＳ５０４）、対象領域の領域使用率１３１２が十分高い値である場合はステップＳ５０５へ、領域使用率１３１２がまだ低い値である場合はステップＳ５０７へと進む。なお、領域使用率１３１２が十分高い値である場合とは、例えば、領域使用率１３１２が１００％であったり、９０％以上であったり、所定の閾値よりも高い場合を示している。
【００５２】
続いて、ＣＰＵ１２０は、ステップＳ５０４での判定の結果、領域使用率１３１２が十分高い値である場合、開放対象データ率１３１３が設定閾値未満であるかをチェックする（ステップＳ５０５）。そして、ＣＰＵ１２０は、ステップＳ５０５において、開放対象データ減少率１３１４が設定閾値未満である場合、ステップＳ５０６に進んで開放対象フラグ１３１５に「オン」を設定し（ステップＳ５０６）、その後ステップＳ５０８へと進む。
【００５３】
一方、ＣＰＵ１２０は、ステップＳ５０４にて、領域使用率１３１２がまだ低い値であると判断された場合及びステップＳ５０５の結果、開放対象データ減少率１３１４が設定閾値未満でないと判断された場合は、開放対象フラグ１３１５に「オフ」（「ＯＦＦ」）を設定し（ステップＳ５０７）、ステップＳ５０８へと進む。
【００５４】
次に、ＣＰＵ１２０は、ステップＳ５０８にて、全ログ領域２３０の使用率を算出し（ステップＳ５０８）、全ログ領域使用率が設定閾値以上であれば、開放処理起動フラグ１３１６に「オン」を設定し（ステップＳ５０９）、ログ開放契機管理テーブル１３１０の更新処理であるステップＳ３０８を終了する。
【００５５】
一方、ＣＰＵ１２０は、ステップＳ５０８での判定の結果、全ログ領域使用率が設定閾値未満である場合は、開放処理起動フラグ１３１６に「オフ」を設定し（ステップＳ５１０）、ログ開放契機管理テーブル１３１０の更新処理であるステップＳ３０８を終了する。
【００５６】
（２−３）ログ解放起動判定時の動作
ＣＰＵ１２０は、解放処理起動フラグ１３１６が「オン」の場合、ログ解放処理を開始する（ステップＳ３０９）。
【００５７】
（２−４）ログ開放処理起動時の動作
次に、ログ開放処理起動時の動作について説明する。図７は、ログ開放処理起動時の詳細なフローチャートである。ＣＰＵ１２０は、ステップＳ３０９にてログ開放処理起動実行を決定した場合、開放対象フラグ１３１５が「オン」の領域が存在するかどうかを確認する（ステップＳ６０１）。そして、ＣＰＵ１２０は、判定の結果、開放対象フラグ１３１５が「オン」の領域が存在する場合は、開放対象フラグ１３１５が「オン」で、かつ、開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施する（ステップＳ６０２）。
【００５８】
一方、次に、ＣＰＵ１２０は、ステップＳ６０１での判定時、全分割ログ領域の開放対象データ減少率１３１４が設定閾値以上であるために、開放対象フラグ１３１５が「オン」である領域が存在しない場合が存在する。この場合は、領域使用率１３１２が１００％で、かつ開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施する（ステップＳ６０３）。
【００５９】
なお、分割ログ領域及びアドレス変換テーブル１３２０開放の具体的な方法は、ログ領域用アドレス管理テーブル１３２２に対応する基本領域アドレス管理テーブル１３２１に記されたアドレス位置に、ログ領域内に格納しているデータを移動した後、開放対象データのアドレスを管理していた基本領域アドレス管理テーブル１３２１とログ領域用アドレス管理テーブル１３２２を開放することで実施する。
【００６０】
このようにして、このストレージシステム１では、開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施して、ログ領域２３０内に格納しているデータを基本領域２２０に移動する。
【００６１】
従って、ログ領域２３０を開放するために付加的に発生する基本領域２２０へのランダムライト時における不連続なデータのデータ総量及び処理時間を削減することができるため、ログ形式ライト時における処理効率を向上させることができる。
【００６２】
また、このストレージシステム１では、書き込みを行った領域の領域使用率１３１２が高い値になっており、かつ開放対象データ減少率１３１４が設定閾値未満である場合、開放対象フラグ１３１５に「オン」を設定し、開放対象フラグ１３１５が「オン」で、かつ、開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施するため、一段と適切な分割ログ領域を開放することができ、ログ形式ライト時における処理効率を向上させることができる。
【００６３】
さらに、このストレージシステム１では、開放対象フラグ１３１５が「オン」である領域が存在しない場合に、領域使用率１３１２が１００％で、かつ開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施するため、開放対象フラグ１３１５が「オン」である領域が存在しない場合にも、適切な分割ログ領域を開放することができる。
【００６４】
さらに、このストレージシステム１では、ログ領域２３０にデータを格納する場合には、１つの分割ログ領域がデータで満たされた後、次の分割ログ領域を使用するため、データで満たされた分割ログ領域に対して分割ログ領域を開放することができ、一段とログ形式ライト時における処理効率を向上させることができる。
【００６５】
さらに、このストレージシステム１では、全ログ領域２３０の使用率を算出し、全ログ領域使用率が設定閾値以上であれば、開放処理起動フラグ１３１６に「オン」を設定し、開放対象フラグ１３１５が「オン」で、かつ、開放対象データ率１３１３が最小の領域に対しログ開放処理開始コマンドを発行し、対象となる分割ログ領域の開放及びアドレス変換テーブル１３２０の開放を実施するため、全ログ領域使用率が設定閾値未満であり、ログ領域２３０が逼迫していない場合には、対象となる分割ログ領域の開放を実施せず、無駄な処理を未然且つ有効に防止することができる。
【００６６】
さらに、このストレージシステム１では、旧データに割り当てられているログ領域用アドレス管理テーブル１３２２の情報を、新データ書き込み位置(その時点で使用している分割ログ領域の最後尾)に書き換えるため、データ上書き発生率が高いほど、過去に書き込まれたデータを有する分割ログ領域の開放対象データ量を大きく削減することができる。
【産業上の利用可能性】
【００６７】
本発明は、不連続なデータを連続的なデータにアドレス変換して書き込むログ形式ライトを行うこの他種々のストレージシステムに適用することができる。
【図面の簡単な説明】
【００６８】
【図１】本実施の形態によるストレージシステムの構成を示す略線図である。
【図２】アドレス変換テーブルの説明に供する概念図である。
【図３】ログ開放契機管理テーブルの説明に供する概念図である。
【図４】ライトコマンド処理手順の説明に供するフローチャートである。
【図５】ログ領域書き込み時の手順の説明に供するフローチャートである。
【図６】ログ開放契機管理テーブル更新時の手順の説明に供するフローチャートである。
【図７】ログ開放処理開始コマンド発行時の手順の説明に供するフローチャートである。
【符号の説明】
【００６９】
１……ストレージシステム、１０……ストレージ装置、１００……ストレージ制御装置、１２０……ＣＰＵ、２００……ストレージ駆動装置、２１０……物理ディスクドライブ、２２０……基本領域、２３０……ログ領域、１３２０……アドレス変換テーブル、１３２１……基本領域用アドレス管理テーブル、１３２２……ログ領域管理用アドレス管理テーブル、１３２３、１３２６……ターゲットＬＵＮ、１３２４、１３２７……ターゲットＬＵ内先頭ＬＢＡ、１３２５、１３２８……ターゲットＬＵ内末尾ＬＢＡ、１３１０……ログ開放契機管理テーブル、１３１１……領域ＩＤ、１３１２……領域使用率、１３１３……開放対象データ率、１３１４……開放対象データ減少率、１３１５……開放対象フラグ、１３１６……開放処理起動フラグ
【図１】
2007233896.tif 000003
【図２】
2007233896.tif 000004
【図３】
2007233896.tif 000005
【図４】
2007233896.tif 000006
【図５】
2007233896.tif 000007
【図６】
2007233896.tif 000008
【図７】
2007233896.tif 000009