JP2004013373A - External storage device system and storage controller - Google Patents
External storage device system and storage controller Download PDFInfo
- Publication number
- JP2004013373A JP2004013373A JP2002163786A JP2002163786A JP2004013373A JP 2004013373 A JP2004013373 A JP 2004013373A JP 2002163786 A JP2002163786 A JP 2002163786A JP 2002163786 A JP2002163786 A JP 2002163786A JP 2004013373 A JP2004013373 A JP 2004013373A
- Authority
- JP
- Japan
- Prior art keywords
- block
- virtual
- virtual block
- data
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、データ圧縮による記憶効率がよくリアルタイム応答性のよいストレージを提供する外部記憶装置システム及び記憶制御装置に関する。
【0002】
【従来の技術】
外部記憶装置上の記憶スペースを有効に活用する技術として、データマイグレーション技術が広く研究・開発されている。この技術は、各データの利用頻度に応じてその格納場所を決めるものであり、利用頻度の低いデータを圧縮して非圧縮データの格納領域から圧縮データの格納領域へ移動するものである。この技術をディスクアレイ装置に適用したものとして、特開平5−73213号公報に開示された発明がある。この発明は、ディスクとして非圧縮データを蓄積する活性記憶プールと、圧縮データを蓄積する非活性記憶プールを設ける。各プールは一定領域を持つ複数の論理ボリュームから構成される。ディスクアレイ装置内では、各論理ボリュームについて上位からのアクセス頻度により、アクセス頻度の少ない活性記憶プールのボリュームデータは圧縮され、非活性プールのボリュームデータに蓄積される。また非活性プールのボリュームデータに上位からアクセスが発生した場合、そのデータは活性プールのボリュームに一度展開された後、上位へ応答される。
【0003】
【発明が解決しようとする課題】
上記従来技術によれば、外部記憶装置システムは、活性プール、非活性プールともにボリューム単位のデータ管理をするために、上位装置から非活性プール中のデータにアクセス要求があったとき、そのデータの格納されているボリュームを一度活性プールのボリュームに展開する必要がある。このため非活性プール中のデータのアクセス要求に対してリアルタイムで応答することは困難である。また活性プール中のデータは非圧縮データであり、記憶効率の点で問題があった。
【0004】
本発明の目的は、記憶効率がよくリアルタイム応答性のよい外部記憶装置システム及び記憶制御装置を提供することにある。
【0005】
【課題を解決するための手段】
本発明は、上位装置で認識可能な仮想ブロックを一時記憶するキャッシュ手段と、当該外部記憶装置システム内で認識する圧縮データが格納される実ブロックを格納する記憶装置と、仮想ブロックのアドレスと実ブロックのアドレスとの対応情報を格納する記憶手段と、上位装置からのリード/ライト要求に応答して要求された仮想ブロックがキャッシュ手段中にあればキャッシュ手段中の仮想ブロックについてリード/ライトを行うよう制御する手段と、キャッシュ手段中になければ上記の記憶手段を参照し要求された仮想ブロックに対応する実ブロックのデータを記憶装置から読み込み、キャッシュ手段中にデータ展開した仮想ブロックについてリード/ライトを行うよう制御する手段と、キャッシュ手段中の仮想ブロックにデータ更新が生じたとき当該仮想ブロックの圧縮データを含む対応する記憶装置中の実ブロックを更新するよう制御する手段とを有する外部記憶装置システムを特徴とする。
【0006】
また外部記憶装置システムを記憶制御装置と下位記憶装置に区分したとき、該当するキャッシュ手段、記憶手段および制御手段を有する記憶制御装置を特徴とする。
【0007】
【発明の実施の形態】
以下本発明の実施形態について図面を用いて説明する。
【0008】
図1は、外部記憶装置システムの構成を示す図である。外部記憶装置システムは、記憶制御部101とディスク群105から構成される。記憶制御部101は、制御部106、キャッシュメモリ102、上位のホスト計算機とのインタフェース部およびディスク群105とのインタフェース部を有する記憶制御装置である。キャッシュメモリ102は、仮想ブロック−実ブロック対応テーブル103および仮想ブロック領域104を有する。ここで仮想ブロックはホスト計算機が認識可能なデータであり、実ブロックは外部記憶装置システム内で認識される通常圧縮されたデータである。仮想ブロック−実ブロック対応テーブル103は、仮想ブロックのアドレスと実ブロックのアドレスとの対応関係を記憶する。また仮想ブロック領域104は、キャッシュメモリ内に保存される仮想ブロックを格納する。
【0009】
制御部106は、ホスト計算機からデータのリード要求を受けたとき、仮想ブロック−実ブロック対応テーブル103を参照し、要求されたデータが仮想ブロック領域104内にあればそのデータを応答する。また仮想ブロック領域104内になければ対応する実ブロックの圧縮データを仮想ブロック領域104に展開した後にそのデータを応答する。制御部106がホスト計算機からデータライト要求を受けたとき、仮想ブロック−実ブロック対応テーブル103を参照し、要求されたデータが仮想ブロック104内にあればそのデータを更新する。また仮想ブロック領域104内になければ対応する実ブロックの圧縮データを仮想ブロック領域104に展開した後にそのデータを更新する。制御部106は、複数のプロセッサとメモリから構成され、メモリ内のプログラムによって複数の処理を並行して実行することが可能である。
【0010】
ディスク群105は、複数のディスクから成るディスクアレイを構成し、実ブロックを保存する。実ブロックは、論理ボリューム番号と実ブロック番号の組によってアドレスされる。ディスク群105は、記憶制御部101の下位記憶装置として独立した装置であってもよい。
【0011】
図2は、仮想ブロック−実ブロック対応テーブル103のデータ構成を示す図である。仮想ブロック301は、ホスト計算機が認識する仮想ブロックのアドレスであり、論理ブロック番号−ブロック番号の形式で表現される。仮想ブロックは、非圧縮データあるいはホスト計算機による圧縮データを含む。実ブロック302は、ディスク上の実ブロック領域に記憶されるデータブロックのアドレスであり、論理ブロック番号−ブロック番号の形式で表現される。実ブロックは、記憶制御部101内で圧縮された圧縮データか又は圧縮されないデータを含む。展開先アドレス303は、実ブロックから展開された仮想ブロックの仮想ブロック領域104上のアドレスである。この例では仮想ブロックが仮想ブロック領域104上に展開されていないことを示している。圧縮/非圧縮フラグ304は、実ブロック302によってアドレス付けされる実ブロックが記憶制御部101による圧縮ブロックか非圧縮ブロックかを区分するフラグである。圧縮効率の悪い仮想ブロックは圧縮されず、そのまま実ブロックとなる。
【0012】
本例では仮想ブロックのサイズと実ブロックのサイズは同じであり、ディスク群105のディスクアレイのストライプサイズに準じた64KB程度のサイズとしている。しかしユーザはブロックサイズを任意に指定できる。また仮想ブロック301のブロック番号は0〜7FFFのように連続しているので、仮想ブロック301の欄を設けずに実ブロック302、展開先アドレス303及び圧縮/非圧縮フラグ304だけでテーブルを構成してもよい。その場合には、仮想ブロック・アドレスを対応する仮想ブロック−実ブロック対応テーブル103内メモリアドレスに変換することによって、目的のテーブル・エントリにアクセスできる。また仮想ブロック301と展開先アドレス303との対応を仮想ブロック−実ブロック対応テーブル103とは別のテーブルに設けてもよい。さらに仮想ブロック−実ブロック対応テーブル103をキャッシュメモリ102上に設ける代わりにディスク上に設けてもよい。
【0013】
図3は、データ初期書き込み時の仮想ブロックデータと実ブロック中に格納されるデータの対応関係を説明する図である。仮想ブロック領域104中に格納される各仮想ブロックは、圧縮された場合にディスク上の実ブロック領域ではサイズの縮小された圧縮データとなる。このため1つの実ブロック中に複数の仮想ブロックの圧縮データを収容することが可能である。10−0,10−1,…は連続する仮想ブロック・アドレスであり、1A−0,1A−1,…は実ブロック・アドレスである。また1A−0−0,1A−0−1,…は同一実ブロック中の各圧縮データを区別するために付けられたシーケンス番号である。各実ブロックの後尾の斜線領域は未使用領域を示す。この例のように実ブロックの未使用領域に書き込めない圧縮データは次の実ブロックに書き込まれるため、1つの圧縮データが実ブロックの境界を跨ぐことはない。
【0014】
図4は、ディスクリード時の制御部106の処理手順を示すフローチャートである。制御部106は、上位のホスト計算機からリード要求を受けると(ステップ201)、仮想ブロック−実ブロック対応テーブル103を参照し、指定された仮想ブロック・アドレスに対応する実ブロック・アドレス、展開先アドレスおよび圧縮/非圧縮フラグを取得する(ステップ202)。次に展開先アドレス303により要求されたデータが仮想ブロック領域104に展開済か否かを判定する(ステップ203)。展開先アドレス303に仮想ブロック領域104のアドレスが格納されていれば展開済、そうでなければ展開されていない。仮想ブロック領域104に展開済であれば、展開先アドレス303によって位置付けされる仮想ブロック領域104内格納場所から仮想ブロックを読み取り、そのデータをホスト計算機に応答する(ステップ204)。仮想ブロック領域104に展開済でなければ、実ブロック302で位置付けされる実ブロック領域より実ブロックを読み出し、必要に応じて伸長処理を行い、その結果を仮想ブロック領域104に展開する(ステップ205)。後述するように実ブロックの読み出しとデータ展開は並行して処理可能である。このときステップ205でデータ展開した少なくとも1つの仮想ブロックに対応する各展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定する。なお指定された仮想ブロックに対応する圧縮/非圧縮フラグ304が非圧縮を示していれば、読み出した実ブロックをそのまま仮想ブロックとする。次にデータ展開した仮想ブロックのうち指定された仮想ブロックをホスト計算機に応答する(ステップ206)。後述するように、ステップ205のデータ展開処理とステップ206の上位へのデータ応答は並行して処理可能である。
【0015】
図5は、アドレス10−0,10−1及び10−2の仮想ブロックの仮想ブロック領域104上のアドレスが各々#00A,#00B及び#00Cであることを示している。また図6は、これらの仮想ブロック領域104アドレスが仮想ブロック−実ブロック対応テーブル103の該当する展開先アドレス303に設定された状態を示している。この例では、制御部106は、仮想ブロック−実ブロック対応テーブル103を参照してアドレス1A−0の実ブロックに収容した仮想ブロックの数を求め、その仮想ブロック数分の領域を仮想ブロック領域104上に確保する。アドレス#00A〜#00Cをもつ領域が確保された領域である。次に実ブロック領域からアドレス1A−0の実ブロック・データを読み出し、読み出し時に、確保した仮想ブロック領域104上の領域にデータ展開する。実ブロック・データの読み出しと仮想ブロック領域104へのデータ展開は並行して実行される。領域#00Aについてアドレス10−0の仮想ブロックのデータ展開が終了した時点で該当する展開先アドレス303にアドレス#00Aを書き込む。領域#00B及び#00Cの処理についても同様である。
【0016】
またアドレス10−0の仮想ブロックが仮想ブロック領域104に格納完了したときにこの仮想ブロックを上位にデータ応答できるので、アドレス10−1の仮想ブロックのデータ展開とアドレス10−0の仮想ブロックの上位への応答は並行して実行される。
【0017】
このようにして仮想ブロック領域104の終端まで仮想ブロックが格納された場合、後続の仮想ブロックについては仮想ブロック領域104の先頭から順次上書きされる。またディスク上の実ボリューム領域の一部を仮想ブロック領域のために割り当てることも可能である。
【0018】
図7は、ディスクライト時の制御部106の処理手順を示すフローチャートである。制御部106は、上位のホスト計算機からライト要求を受けると(ステップ901)、仮想ブロック−実ブロック対応テーブル103を参照し、指定された仮想ブロック・アドレスに対応する実ブロック・アドレス、展開先アドレスおよび圧縮/非圧縮フラグを取得する(ステップ902)。次に展開先アドレスにより要求されたデータが仮想ブロック領域104に展開済か否かを判定する(ステップ903)。仮想ブロック領域104に展開済であれば、展開先アドレス303によって位置付けされる仮想ブロック領域104内の仮想ブロックを上位から受け取ったデータによって更新する(ステップ904)。仮想ブロック領域104に展開済でなければ、実ブロック302で位置付けされる実ブロック領域より実ブロックを読み出し、必要に応じて指定された仮想ブロックに対応する圧縮データを伸長して仮想ブロック領域104内に展開する(ステップ905)。このときデータ展開した少なくとも1つの仮想ブロックに対応する展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定する。なお指定された仮想ブロックに対応する圧縮/非圧縮フラグ304が非圧縮を示していれば、読み出した実ブロックをそのまま仮想ブロックとする。次にデータ展開された仮想ブロック領域104の仮想ブロックのうち指定された仮想ブロックを上位から受け取ったデータによって更新する(ステップ906)。
【0019】
なお指定された仮想ブロックが新規データの場合には、当該仮想ブロックに対応する実ブロック302が設定されていないから、ステップ905の処理は、当該仮想ブロックに対応する展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定するだけである。またステップ906はこの格納場所に新規の仮想ブロックを書き込む処理となる。
【0020】
次にステップ901〜906の処理と同期してあるいは非同期に仮想ブロック領域104で更新した仮想ブロックを必要に応じてデータ圧縮し、その圧縮データを実ブロック領域に書き込む(ステップ907)。言い換えれば記憶制御部101からディスク群105へ書き込むべき実ブロックを送る。このとき当該仮想ブロックに対応する実ブロック302に決定した実ブロック・アドレスを書き込む。また実ブロック領域に書き込まれたデータが圧縮データであるか非圧縮データであるかに応じて該当する圧縮/非圧縮フラグ304を設定する。後述するようにデータ圧縮処理と実ブロック書き込みは並行して処理可能である。
【0021】
次にディスクライトが仮想ブロックのデータ書き換えである場合のステップ907の処理の詳細について説明する。制御部106は、仮想ブロック−実ブロック対応テーブル103を参照して更新される仮想ブロックと同一実ブロックに収容される少なくとも1つの仮想ブロックについて圧縮処理し、それら圧縮データを1つまたは複数の実ブロックに書き込み、圧縮された仮想ブロックに対応する実ブロック302が変更されるか否かに応じてその内容を更新またはそのままとする。
【0022】
例えば図6に示す仮想ブロック−実ブロック対応テーブル103において、アドレス10−2の仮想ブロックにデータ書き換え処理が発生した場合、仮想ブロック領域104上の#00A,#00Bおよび#00Cのそれぞれ格納されるアドレス10−0〜10−2の仮想ブロックについて圧縮処理を行う。これら圧縮データがアドレス1A−0の実ブロックに収容できる場合には、その実ブロックに書き込む。
【0023】
圧縮データ量がアドレス1A−0の実ブロック容量を越える場合には、アドレス10−0および10−1の仮想ブロックの圧縮データをアドレス1A−0の実ブロックに収容し、アドレス10−2の仮想ブロックの圧縮データを新しい実ブロックに書き込む。図8は、各仮想ブロックの圧縮データが実ブロックに書き込まれた状態を示す。また図9は、新しい実ブロックの使用によってアドレス10−2の仮想ブロックに対応する実ブロック302が更新された状態を示す。
【0024】
上記データ書き換え時のディスク書き込み処理は、データ書き換えが発生したタイミングで実行してもよいし、仮想ブロック領域104が満杯になったとき次に上書きされる仮想ブロックについて実行してもよい。あるいはホスト計算機からのアクセスの少ない時に適時実行してもよい。仮想ブロック領域104上の仮想ブロックが上書きによって消去されるとき、対応する展開先アドレス303は削除される。
【0025】
また上記データ書き換えが多くの仮想ブロックに対して発生した結果として、アドレスが連続した仮想ブロックに対してアドレスが不連続となる実ブロックが多数発生する場合がある。このような場合、上位からのアクセスが少ない時に実ボリューム中の実ブロックを順次仮想ブロック領域104にデータ展開し、再圧縮した後に実ブロックが連続アドレスとなるように実ボリュームの再配置を実施してもよい。
【0026】
ステップ907のデータ圧縮処理と実ブロック書き込みをシリアルに行う方式と並行して行う方式がある。シリアル方式の場合には、メモリに圧縮データ量カウンタをもち、このカウンタにデータ圧縮した次の仮想ブロックのデータ量を加算できるか否か判定する。加算しても実ブロックの容量を越えない場合には加算し、その次の仮想ブロックのデータ圧縮を続ける。加算した場合に実ブロックの容量を越えるときには、カウンタに示されるデータ量の圧縮データを実ブロックに書き込み、次の実ブロック書き込みのためにカウンタをクリアして最後の圧縮データのデータ量を加算する。
【0027】
データ圧縮処理と実ブロック書き込みを並行して行う場合には、メモリ上に実際の実ブロックに書き込んだデータの量を示すディスク記録量カウンタをもち、連続する仮想ブロックのデータ圧縮処理を並行して実行する。このときディスク記録量カウンタが実ブロックの容量に達したか否かを判定する。カウンタが実ブロックの容量に達したとき、最後の圧縮データの実ブロック書き込みを中止し、カウンタをクリアして最後の圧縮データを改めて次の実ブロックに書き込み開始する。
【0028】
圧縮データ量カウンタとディスク記録量カウンタによる監視を併用することも可能である。すなわちデータ圧縮処理と実ブロック書き込みを並行して実行し、次の仮想ブロックのデータ圧縮が終了していれば圧縮データ量カウンタにこの圧縮データのデータ量を加算できるか否か判定する。加算できなければこの圧縮データを次の実ブロックに書き込む。一方ディスク記録量カウンタも監視し、この圧縮データのディスク書き込みによってこのカウンタが実ブロックの容量に達したか否かを判定する。ディスク記録量カウンタが実ブロックの容量に達したことを検出したとき、次の実ブロックに書き込み開始する。言い換えれば両カウンタのうちいずれか容量オーバーの検出の早い方に従って実ブロック書き込みを制御する。
【0029】
仮想ブロックを圧縮して実ブロックに格納するか、原データのままで実ブロックに格納するかの判定は、圧縮効率に基づいて行われる。この圧縮効率を求めるために、次に示すように圧縮率と正規化伸長速度の2つのパラメータを用いることができる。
【0030】
圧縮率を次式の通り定義する。
圧縮率α=(圧縮データの容量)/(原データの容量)
また非圧縮データの読み出し時間の平均値をτとし、圧縮データの読み出し時間の平均値とその伸長処理時間との和を伸長時間Tとするとき、正規化伸長速度を次式の通り定義する。
正規化伸長速度β=T/τ
単純に圧縮効率を算出する方式として、次式を定義する。
Φ=N1*α+N2*β
ここでN1,N2は、ユーザが指定する重み係数である。このΦを用いてΦが所定値以下である場合に仮想ブロックをデータ圧縮して実ブロックに格納し、そうでない場合には仮想ブロックをそのまま実ブロックに格納することができる。
【0031】
また伸長時間Tに制限時間T1がある場合、
α<1,T≦T1
の条件下では圧縮データを実ブロックに格納するようにしてもよい。
【0032】
次に上記圧縮効率に基づく判定をリアルタイムでデータ圧縮処理に適用する実施例について述べる。まず仮想ブロックをデータ圧縮し、そのときの圧縮データの容量を計数する。圧縮データの容量が仮想ブロックの容量を越えるときには、無条件で仮想ブロックをそのまま実ブロックに格納する。圧縮データ容量が仮想ブロック容量を越えないときには、圧縮データを再び伸長して伸長処理時間を測定し、上記Φの式あるいは伸長時間Tの制限に従ってその仮想ブロックを圧縮するか否かを決定する。仮想ブロックのデータ圧縮処理と伸長処理を並行して実行することも可能である。
【0033】
【発明の効果】
以上述べたように本発明によれば、記憶効率がよくリアルタイム応答性のよい外部記憶装置システム及び記憶制御装置を提供できる。またデータ圧縮効率によって実ブロックとして圧縮データまたは原データを格納することができる。
【図面の簡単な説明】
【図1】実施例の外部記憶装置システムの構成図である。
【図2】実施例の仮想ブロック−実ブロック対応テーブル103のデータ構成を示す図である。
【図3】仮想ブロックデータと実ブロックデータの対応関係を説明する図である。
【図4】実施例のディスクリード時の処理手順を示すフローチャートである。
【図5】仮想ブロックの展開先アドレスを例示する図である。
【図6】実施例の仮想ブロック−実ブロック対応テーブル103に仮想ブロックの展開先が設定された状態を示す図である。
【図7】実施例のディスクライト時の処理手順を示すフローチャートである。
【図8】仮想ブロックにデータ書き換えが発生し、実ブロックが分離された状態の例を説明する図である。
【図9】仮想ブロックのデータ書き換えの結果として実ブロックアドレスが更新された例を示す図である。
【符号の説明】
101…記憶制御部、102…キャッシュメモリ、103…仮想ブロック−実ブロック対応テーブル、104…仮想ブロック領域、105…ディスク群、106…制御部、301…仮想ブロック、302…実ブロック、303…展開先アドレス、304…圧縮/非圧縮フラグ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an external storage device system and a storage control device that provide storage with good storage efficiency and high real-time response by data compression.
[0002]
[Prior art]
Data migration technology has been widely researched and developed as a technology for effectively utilizing a storage space on an external storage device. This technique determines the storage location of each data in accordance with the frequency of use, and compresses data with a low frequency of use and moves it from a storage area for uncompressed data to a storage area for compressed data. As an application of this technique to a disk array device, there is an invention disclosed in Japanese Patent Application Laid-Open No. Hei 5-73213. According to the present invention, an active storage pool for storing non-compressed data and a non-active storage pool for storing compressed data are provided as disks. Each pool is composed of a plurality of logical volumes having a certain area. In the disk array device, the volume data of the active storage pool with a low access frequency is compressed according to the access frequency from the upper level for each logical volume, and accumulated in the volume data of the inactive pool. When access is made to the volume data of the inactive pool from the upper level, the data is expanded once in the volume of the active pool and then responded to the upper level.
[0003]
[Problems to be solved by the invention]
According to the above prior art, the external storage device system manages data in units of volume for both the active pool and the inactive pool. Therefore, when an upper device requests access to data in the inactive pool, the external storage system It is necessary to expand the stored volume to the active pool volume once. Therefore, it is difficult to respond in real time to an access request for data in the inactive pool. Further, the data in the active pool is uncompressed data, which has a problem in terms of storage efficiency.
[0004]
An object of the present invention is to provide an external storage device system and a storage control device having high storage efficiency and high real-time response.
[0005]
[Means for Solving the Problems]
The present invention provides a cache unit for temporarily storing a virtual block recognizable by a host device, a storage device for storing a real block in which compressed data to be recognized in the external storage system is stored, an address of the virtual block and a real address. Storage means for storing information corresponding to the addresses of the blocks, and read / write for the virtual blocks in the cache means if the requested virtual block is in the cache means in response to the read / write request from the host device Means for controlling a virtual block that is not in the cache means, reads the data of the real block corresponding to the requested virtual block from the storage device by referring to the storage means, and reads / writes the virtual block data expanded in the cache means Means to perform the data update and data update to the virtual block in the cache means. The external storage system and means for controlling so as to update the real block in the corresponding storage device containing compressed data of the virtual block when generated characterized.
[0006]
When the external storage device system is divided into a storage control device and a lower-order storage device, a storage control device having a corresponding cache means, storage means and control means is characterized.
[0007]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0008]
FIG. 1 is a diagram illustrating a configuration of an external storage device system. The external storage system includes a
[0009]
When receiving a data read request from the host computer, the
[0010]
The
[0011]
FIG. 2 is a diagram showing a data configuration of the virtual block-real block correspondence table 103. The
[0012]
In this example, the size of the virtual block is the same as the size of the real block, and is set to a size of about 64 KB according to the stripe size of the disk array of the
[0013]
FIG. 3 is a diagram for explaining the correspondence between virtual block data at the time of initial data writing and data stored in a real block. Each virtual block stored in the
[0014]
FIG. 4 is a flowchart showing a processing procedure of the
[0015]
FIG. 5 shows that the addresses of the virtual blocks of the addresses 10-0, 10-1 and 10-2 on the
[0016]
When the virtual block at the address 10-0 is completely stored in the
[0017]
When a virtual block is stored up to the end of the
[0018]
FIG. 7 is a flowchart showing a processing procedure of the
[0019]
If the specified virtual block is new data, the
[0020]
Next, the virtual block updated in the
[0021]
Next, the details of the processing in
[0022]
For example, in the virtual block-real block correspondence table 103 shown in FIG. 6, when the data rewriting process occurs in the virtual block at the address 10-2, # 00A, # 00B, and # 00C on the
[0023]
If the amount of compressed data exceeds the real block capacity at
[0024]
The disk writing process at the time of data rewriting may be executed at the timing when data rewriting occurs, or may be executed for the next virtual block to be overwritten when the
[0025]
In addition, as a result of the data rewriting occurring for many virtual blocks, there may be a case where a large number of real blocks whose addresses are discontinuous with respect to virtual blocks having continuous addresses. In such a case, when there is little access from the upper level, the real blocks in the real volume are sequentially expanded in the
[0026]
There is a method in which the data compression processing in
[0027]
When data compression processing and real block writing are performed in parallel, a disk recording amount counter indicating the amount of data written to the actual real blocks on the memory is provided, and data compression processing for consecutive virtual blocks is performed in parallel. Execute. At this time, it is determined whether or not the disk recording amount counter has reached the capacity of the actual block. When the counter reaches the capacity of the real block, the writing of the last compressed data to the real block is stopped, the counter is cleared, and the last compressed data is written to the next real block again.
[0028]
Monitoring by the compressed data amount counter and the disk recording amount counter can be used together. That is, the data compression processing and the real block writing are executed in parallel, and if the data compression of the next virtual block has been completed, it is determined whether or not the data amount of the compressed data can be added to the compressed data amount counter. If addition is not possible, the compressed data is written to the next real block. On the other hand, the disk recording amount counter is also monitored, and it is determined whether or not this counter reaches the capacity of the actual block by writing the compressed data to the disk. When the disk recording amount counter detects that the capacity of the real block has been reached, writing to the next real block is started. In other words, the actual block writing is controlled in accordance with which of the two counters detects the overcapacity earlier.
[0029]
The decision whether to compress the virtual block and store it in the real block or to store the original data as it is in the real block is made based on the compression efficiency. To determine this compression efficiency, two parameters, a compression ratio and a normalized decompression speed, can be used as shown below.
[0030]
The compression ratio is defined as follows.
Compression ratio α = (Compressed data capacity) / (Original data capacity)
When the average value of the read time of the uncompressed data is τ and the sum of the average value of the read time of the compressed data and the decompression processing time is the decompression time T, the normalized decompression speed is defined as follows.
Normalized elongation rate β = T / τ
The following equation is defined as a method for simply calculating the compression efficiency.
Φ = N1 * α + N2 * β
Here, N1 and N2 are weighting factors specified by the user. Using Φ, when Φ is equal to or less than a predetermined value, the virtual block can be data-compressed and stored in the real block. Otherwise, the virtual block can be stored as it is in the real block.
[0031]
If the extension time T has a time limit T1,
α <1, T ≦ T1
Under the condition (1), compressed data may be stored in a real block.
[0032]
Next, an embodiment in which the determination based on the compression efficiency is applied to data compression processing in real time will be described. First, the virtual block is compressed, and the amount of compressed data at that time is counted. When the capacity of the compressed data exceeds the capacity of the virtual block, the virtual block is unconditionally stored as it is in the real block. If the compressed data capacity does not exceed the virtual block capacity, the compressed data is decompressed again to measure the decompression processing time, and it is determined whether or not to compress the virtual block according to the expression of Φ or the restriction of the decompression time T. It is also possible to execute data compression processing and decompression processing of a virtual block in parallel.
[0033]
【The invention's effect】
As described above, according to the present invention, it is possible to provide an external storage device system and a storage control device with good storage efficiency and real-time response. Also, compressed data or original data can be stored as a real block depending on the data compression efficiency.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an external storage device system according to an embodiment.
FIG. 2 is a diagram illustrating a data configuration of a virtual block-real block correspondence table 103 according to the embodiment.
FIG. 3 is a diagram illustrating the correspondence between virtual block data and real block data.
FIG. 4 is a flowchart illustrating a processing procedure at the time of reading a disk according to the embodiment;
FIG. 5 is a diagram illustrating an example of a destination address of a virtual block;
FIG. 6 is a diagram illustrating a state in which a virtual block development destination is set in the virtual block-real block correspondence table 103 according to the embodiment;
FIG. 7 is a flowchart illustrating a processing procedure at the time of disc writing according to the embodiment;
FIG. 8 is a diagram illustrating an example of a state in which data rewriting has occurred in a virtual block and a real block has been separated;
FIG. 9 is a diagram illustrating an example in which a real block address is updated as a result of rewriting data of a virtual block.
[Explanation of symbols]
101: storage control unit, 102: cache memory, 103: virtual block-real block correspondence table, 104: virtual block area, 105: disk group, 106: control unit, 301: virtual block, 302: real block, 303: development Destination address, 304 ... compressed / uncompressed flag
Claims (5)
前記仮想ブロックを一時記憶するキャッシュ手段と、前記仮想ブロックのアドレスと前記実ブロックのアドレスとの対応情報を格納する記憶手段と、前記上位装置からのリード/ライト要求に応答して要求された仮想ブロックが前記キャッシュ手段中にあれば前記キャッシュ手段中の仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中になければ前記記憶手段を参照し要求された仮想ブロックに対応する実ブロックのデータを前記下位記憶装置から読み込み、前記キャッシュ手段中にデータ展開した仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中の仮想ブロックにデータ更新が生じたとき当該仮想ブロックの圧縮データを含む対応する実ブロックを書き込むために前記下位記憶装置へ送る制御手段とを有することを特徴とする記憶制御装置。A storage controller for exchanging virtual blocks recognizable by the higher-level device with a higher-level device and reading / writing a real block in which compressed data is stored with a lower-level storage device,
A cache unit for temporarily storing the virtual block; a storage unit for storing correspondence information between the address of the virtual block and the address of the real block; and a virtual unit requested in response to a read / write request from the higher-level device. If the block is in the cache, the read / write control is performed on the virtual block in the cache. If the block is not in the cache, the virtual block corresponding to the requested virtual block is referred to by referring to the storage. Means for reading data of a block from the lower-level storage device, and for controlling read / write of a virtual block developed in the cache means; and when the data is updated in the virtual block in the cache means, To write the corresponding real block containing the compressed data of Storage control apparatus characterized by a control means for sending to the lower data storage apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002163786A JP4220726B2 (en) | 2002-06-05 | 2002-06-05 | External storage system and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002163786A JP4220726B2 (en) | 2002-06-05 | 2002-06-05 | External storage system and storage controller |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004013373A true JP2004013373A (en) | 2004-01-15 |
JP2004013373A5 JP2004013373A5 (en) | 2005-10-13 |
JP4220726B2 JP4220726B2 (en) | 2009-02-04 |
Family
ID=30432112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002163786A Expired - Fee Related JP4220726B2 (en) | 2002-06-05 | 2002-06-05 | External storage system and storage controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4220726B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006259962A (en) * | 2005-03-16 | 2006-09-28 | Hitachi Ltd | Storage system |
CN100347654C (en) * | 2004-12-20 | 2007-11-07 | 富士通株式会社 | Data management method and apparatus, hierarchical storage apparatus and computer-readable storage medium |
JP2009104236A (en) * | 2007-10-19 | 2009-05-14 | Hitachi Ltd | Storage apparatus and data storage method using the same |
WO2015075837A1 (en) * | 2013-11-25 | 2015-05-28 | 株式会社日立製作所 | Storage device and control method therefor |
WO2015087424A1 (en) * | 2013-12-12 | 2015-06-18 | 株式会社日立製作所 | Storage device and method for controlling storage device |
WO2015162755A1 (en) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | Storage device for compressing and storing data |
JP2018014129A (en) * | 2017-09-14 | 2018-01-25 | 株式会社日立製作所 | Storage device and method of controlling storage device |
-
2002
- 2002-06-05 JP JP2002163786A patent/JP4220726B2/en not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100347654C (en) * | 2004-12-20 | 2007-11-07 | 富士通株式会社 | Data management method and apparatus, hierarchical storage apparatus and computer-readable storage medium |
JP2006259962A (en) * | 2005-03-16 | 2006-09-28 | Hitachi Ltd | Storage system |
JP4615337B2 (en) * | 2005-03-16 | 2011-01-19 | 株式会社日立製作所 | Storage system |
JP2009104236A (en) * | 2007-10-19 | 2009-05-14 | Hitachi Ltd | Storage apparatus and data storage method using the same |
WO2015075837A1 (en) * | 2013-11-25 | 2015-05-28 | 株式会社日立製作所 | Storage device and control method therefor |
CN104956312A (en) * | 2013-12-12 | 2015-09-30 | 株式会社日立制作所 | Storage device and method for controlling storage device |
WO2015087424A1 (en) * | 2013-12-12 | 2015-06-18 | 株式会社日立製作所 | Storage device and method for controlling storage device |
GB2536514A (en) * | 2013-12-12 | 2016-09-21 | Hitachi Ltd | Storage device and method for controlling storage device |
JPWO2015087424A1 (en) * | 2013-12-12 | 2017-03-16 | 株式会社日立製作所 | Storage device and storage device control method |
CN104956312B (en) * | 2013-12-12 | 2018-02-13 | 株式会社日立制作所 | The control method of storage device and storage device |
US9916248B2 (en) | 2013-12-12 | 2018-03-13 | Hitachi, Ltd. | Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache |
WO2015162755A1 (en) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | Storage device for compressing and storing data |
JP2018014129A (en) * | 2017-09-14 | 2018-01-25 | 株式会社日立製作所 | Storage device and method of controlling storage device |
Also Published As
Publication number | Publication date |
---|---|
JP4220726B2 (en) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5778411A (en) | Method for virtual to physical mapping in a mapped compressed virtual storage subsystem | |
JP3532413B2 (en) | Method and data processing system for allocating disk storage space for storage of compressed data records | |
KR100216146B1 (en) | Data compression method and structure for a direct access storage device | |
JP3271668B2 (en) | Configuration of mass storage function using host processor memory | |
US6941420B2 (en) | Log-structure array | |
US6542960B1 (en) | System and method for parity caching based on stripe locking in raid data storage | |
JP2846839B2 (en) | Data storage system and related methods | |
JP3347015B2 (en) | Adaptive localization method and apparatus for frequently accessed and randomly addressed data | |
JP2010102715A (en) | Large block allocation for disk-based file system | |
JPH08234921A (en) | Method for management of address space and storage subsystem | |
JPH08249128A (en) | Storage controller, method for controlling disk storage device and method for managing compressed data | |
JPH05204561A (en) | Semiconductor disk having flash memory as storage medium | |
JPH08241241A (en) | Method and system for improvement of performance of memory in restricted virtual memory environment by reduction of paging activity | |
US20060164743A1 (en) | Method for copying source data from a source hard disk to multiple target hard disks | |
JP4308152B2 (en) | Method, system, and product for reserving memory | |
US7000077B2 (en) | Device/host coordinated prefetching storage system | |
JP4220726B2 (en) | External storage system and storage controller | |
JP3627915B2 (en) | BOOT BLOCK FLASH MEMORY CONTROL CIRCUIT, IC MEMORY CARD WITH THE SAME, SEMICONDUCTOR STORAGE DEVICE, AND BOOT BLOCK FLASH MEMORY METHOD | |
JP2003167781A (en) | Magnetic disk device and data readout control method | |
US6266671B1 (en) | Data storage apparatus, method, and medium with variable data storage structure | |
JP3127796B2 (en) | Information recording / reproducing device | |
JP2004013373A5 (en) | ||
JPH08249135A (en) | Method and system for allocation of physical space in logical map-type data storage device | |
JPH06332622A (en) | Information processor | |
JPH0863397A (en) | Method for controlling disk cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050603 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050603 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080324 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081021 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081114 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131121 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |