(58)【調査した分野】(Int.Cl.,DB名)
同期領域設定手段は、第2の記憶手段の書き込み速度に対する第1の記憶手段の書き込み速度の速度割合を取得し、前記第1の記憶手段の書き込み可能領域から、前記書き込み可能領域の容量を前記速度割合で割った容量を持つ領域を除外した領域を第1の同期領域とする
請求項1記載の記憶装置。
同期領域設定手段は、第1の同期領域に空き容量が無くなるまでデータが書き込まれ、書き込まれた全ての前記データの複製データが第2の同期領域に書き込まれた場合、前記第1の同期領域を再度書き込み可能領域にする
請求項1から請求項3のうちのいずれか1項に記載の記憶装置。
第1の記憶手段と、前記第1の記憶手段に比べてデータの書き込み速度が遅く記憶容量が大きい第2の記憶手段とを含む仮想記憶手段を備える記憶装置において実行される記憶方法であって、
前記第1の記憶手段の書き込み可能領域に第1の同期領域を、前記第2の記憶手段の書き込み可能領域に第2の同期領域をそれぞれ設定し、
前記第2の記憶手段よりも前記第1の記憶手段に優先的に書き込み要求を出力し、
前記書き込み要求により前記第1の同期領域にデータが書き込まれた場合、前記データの複製データを作成し、
前記第1の同期領域への前記データの書き込み処理とは非同期に前記複製データを前記第2の記憶手段へ転送し、
前記第2の記憶手段に前記複製データを前記第2の同期領域へ書き込むように指示し、
前記仮想記憶手段は、前記第1の記憶手段と前記第2の記憶手段をそれぞれ2つ以上含む
ことを特徴とする記憶方法。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を図面を参照して説明する。
図1は、本発明による記憶装置の一実施形態の構成例を示すシステム構成図である。
図1に示す記憶装置であるディスクアレイ装置100は、汎用サーバ200と通信路300で接続されている。
【0017】
ディスクアレイ装置100は、プログラム制御により動作する記憶装置である。本実施形態において、ディスクアレイ装置100は、HDD間で非同期にデータを転送する際に、HDDの一部の領域を同期(ミラー)領域として設定する。すなわち、ディスクアレイ装置100は、HDDの領域単位ごとにデータを転送する。
【0018】
この時、ディスクアレイ装置100は、ディスクアレイ装置が保持している簡易なデータ転送機能のみを使用することによって、HDD間の非同期データ転送を実現できる。このように、HDDにミラー領域を設定すると、データ転送処理が単純化される。その結果、OS側の処理負荷が軽減され、データ転送処理の効率化が図られる。
【0019】
汎用サーバ200は、通信路300を介して、ディスクアレイ装置100にデータの入力要求、またはデータの出力要求を発行し、データを処理する。
【0020】
通信路300は、汎用サーバ200と、ディスクアレイ装置100とを通信可能に接続する。通信路300は、例えば、SAN(Storage Area Network)である。
【0021】
次に、ディスクアレイ装置100の詳細な構成を
図2を参照して説明する。
図2は、ディスクアレイ装置100の構成例を示すブロック図である。
【0022】
図2に示すディスクアレイ装置100は、メモリ110と、CPU(Central Processing Unit)120と、入出力手段130と、プール140と、入出力速度検査手段150と、ディスク構成記憶手段160と、データ転送手段170とを含む。
【0023】
メモリ110は、データの入出力情報を一時的に記憶する機能を有する。メモリ110は、汎用サーバ200から入力されたデータ、入出力手段130から出力されたデータ、およびCPU120からの演算結果を一時的に記憶する。メモリ110は、例えば、CPUが直接読み書きできるSRAM(Static Random Access Memory)によって実現される。
【0024】
CPU120は、演算処理を行う機能を有する。CPU120は、メモリ110上のデータ、入出力手段130からのデータ、入出力速度検査手段150からのデータ、およびディスク構成記憶手段160からのデータを基にデータ分配ロジックを算出する。CPU120は、演算結果をディスク構成記憶手段160に出力する。
【0025】
入出力手段130は、プール140を構成するHDDへデータを入出力する機能を有する。入出力手段130は、メモリ110上のデータやCPU120の演算結果を基に、HDDへデータを入出力する。また、入出力手段130は、プール140を構成するHDDの数の増減を検出する。
【0026】
プール140は、HDDの集合から構成された仮想的なデータ記憶領域である。なお、プール140は、RAIDにより構成されていてもよい。
【0027】
プール140を構成するHDDは、入出力手段130またはデータ転送手段170から入力されたデータを記憶する。また、HDDは、入出力手段130またはデータ転送手段170からの読み出し要求に応じて、データを出力する。
【0028】
入出力速度検査手段150は、HDDのデータの入出力速度を検査する機能を有する。入出力速度検査手段150は、ディスクアレイ装置100の初期設定時に、ディスクアレイ装置100に最初から搭載されている各HDDにメモリ110からデータが入力される際の速度、および各HDDからメモリ110にデータが出力される際の速度をそれぞれ検出する。入出力速度検査手段150は、検出した速度の情報をディスク構成記憶手段160へ入力する。
【0029】
また、入出力速度検査手段150は、プール140にHDDが増設された場合、各HDDにメモリ110からデータが入力される際の速度、および各HDDからメモリ110にデータが出力される際の速度を検出する。入出力速度検査手段150は、検出した速度の情報をディスク構成記憶手段160へ入力する。
【0030】
ディスク構成記憶手段160は、プール140を構成するHDDの構成情報を記憶する機能を有する。ディスク構成記憶手段160は、HDDが増設された場合、増設後のプール140の容量を記憶する。
【0031】
また、ディスク構成記憶手段160は、CPU120から入力したデータ分配ロジックから、HDD構成、RAID構成、データ分割方法、およびHDD間のミラー設定を確定する。ディスク構成記憶手段160は、確定した内容を記憶する。
【0032】
データ転送手段170は、HDD間でデータを転送する機能を有する。データ転送手段170は、ディスク構成記憶手段160に記憶されている情報に基づき、HDDの領域単位ごとにミラー領域を設定する。また、データ転送手段170は、設定されたミラー領域ごとにHDD間のデータ転送を行う。
【0033】
以下、本発明のデータ転送処理の動作を
図3のフローチャートと
図4〜
図6の説明図を参照して説明する。
図3は、ディスクアレイ装置100のデータ転送処理の動作を示すフローチャートである。
図4は、ディスクアレイ装置100のHDD間のデータ転送処理の例を示す説明図である。また、
図5および
図6は、ディスクアレイ装置100のHDD間のデータ転送処理の他の例を示す説明図である。
【0034】
図4〜
図6には、HDD1台からHDD1台へ非同期にデータを転送する例が示されている。なお、本実施形態において、非同期データ転送を行う際の転送元のHDDおよび転送先のHDDは、それぞれ1台以上でもよい。
【0035】
図4〜
図6に示す例において、HDD(A)は、転送速度が速く容量の少ない転送元になるHDDである。また、HDD(B)は、転送速度が遅く容量の大きい転送先になるHDDである。
【0036】
図4〜
図6には、転送処理の各進行段階におけるHDDが示されている。S1〜S12は、転送処理の進行段階を意味する。具体的には、
図4のS1には転送処理の開始段階のHDDが示されている。S1からS12に進むにつれて、転送処理は進行する。
【0037】
また、
図4〜
図6に示す例において、横線部で示されたHDDの領域は、データの書き込みに使用される直接使用領域である。右斜線部で示されたHDDの領域は、データ転送が行なわれるように設定されたミラー領域である。左斜線部で示されたHDDの領域は、データの同期が完了したミラー領域である。空白部で示されたHDDの領域は、未使用領域である。
【0038】
また、
図4〜
図6に示す例において、直線で結ばれたHDD(A)の領域とHDD(B)の領域は、ミラー領域として設定されており、かつ未だデータ転送が行なわれていない領域である。右向き矢印で結ばれたHDD(A)の領域とHDD(B)の領域は、ミラー領域として設定されており、かつデータ転送が行なわれている領域である。両矢印で結ばれたHDD(A)の領域とHDD(B)の領域は、データの同期が完了したミラー領域である。
【0039】
図4〜
図6に示す例において、HDD(A)とHDD(B)の速度比率は2:1である。また、HDD(A)とHDD(B)の容量比率は1:2である。なお、本実施形態において、HDD(A)とHDD(B)の速度比率および容量比率は、それぞれ2:1、1:2以外のどのような比率でもよい。
【0040】
図4〜
図6に示す例において使用される最適なデータ分配ロジックは、ディスクアレイ装置100のアクセス速度を向上させることを目的として、特定のHDD(
図4〜
図6の例ではHDD(A))にデータが多く書き込まれるように非同期データ転送量を決定する。
【0041】
ディスクアレイ装置100のアクセス速度を向上させるためのHDD(A)へのデータの書き込み量は、速度比率を考慮すると、少なくともHDD(B)へのデータの書き込み量の2倍であればよい。また、ディスクアレイ装置100の容量効率を向上させるためのHDD(B)へのデータ格納量は、容量比率を考慮すると、少なくともHDD(A)へのデータ格納量の2倍であればよい。
【0042】
よって、
図4〜
図6に示す例において、最適なデータ分配ロジックによる非同期データ転送量は、HDD(A)への書き込み量の2分の1の量になる。この量は、HDD(A)にデータ転送量の2倍の量のデータが書き込まれる時の、HDD(B)に書き込まれるデータ量と同等である。
【0043】
図4〜
図6に示す例において、データ転送手段170は、特定のHDDの一部をミラー領域として設定し、ミラー領域に使用した領域のみ再利用を繰り返す方法をとっている。すなわち、HDDの使用領域が増えるほど、ミラー領域の容量は段々と小さくなる。なお、データ転送手段170は、特定のHDDにデータを残さず、ミラー領域の容量を所定の容量に保ったまま非同期データ転送を実施してもよい。
【0044】
以下、ディスクアレイ装置100によるデータ転送処理の動作を、
図3のフローチャートを参照して説明する。データ転送処理を実施するために、入出力手段130は、プール140を構成するHDDの数を確認する。ディスク構成記憶手段160は、プール140の容量を確認する。入出力速度検査手段150は、各HDDへの入出力速度を確認する。
【0045】
それぞれ確認された情報は、CPU120へ出力される。CPU120は、入力した情報を基に、最適なデータ分配ロジックを算出する(ステップS101)。CPU120による演算結果は、ディスク構成記憶手段160に記憶される。
【0046】
対象のHDDにミラー領域を初めて設定する場合、データ転送手段170は、初期値としてi=1を設定する(ステップS102)。
【0047】
データ転送手段170は、算出されたデータ分配ロジックから、HDD間の非同期データ転送を行うミラー領域を2つ設定する。データ転送手段170は、各HDDの未使用領域からi番目と(i+1)番目のミラー領域を設定する(ステップS103)。
【0048】
図4のS1に示す例において、データ転送手段170は、ミラー領域を初めて設定するため初期値としてi=1を設定する(ステップS102)。そして、データ転送手段170は、HDD(A)の領域A12とHDD(B)の領域B12を、1番目のミラー領域(ミラー領域1)として設定する。
【0049】
同様に、データ転送手段170は、HDD(A)の領域A22とHDD(B)の領域B22を、2番目のミラー領域(ミラー領域2)として設定する(ステップS103)。また、データ転送手段170は、HDD(B)の領域B100を、データの書き込みが行なわれないように未使用領域として設定する。
【0050】
ミラー領域が設定された後、入出力手段130は、汎用サーバ200からの書き込み要求に対して、なるべく各HDDの前方の領域からデータを書き込む(ステップS104)。
【0051】
図4のS1に示すように、入出力手段130は、HDD(A)の領域A11およびA12、HDD(B)の領域B11から書き込みを始める(ステップS104)。ミラー領域1として設定されているA12から、同じくミラー領域1として設定されているB12へのデータ転送は、A12に初めてデータが書き込まれた時から非同期に実施される。
【0052】
次に、データ転送手段170は、データを書き込むごとにミラー領域iに空き容量が無くなり、ミラー領域(i+1)へ書き込みが進んだか否か確認する(ステップS105)。ミラー領域(i+1)へ書き込みが進んでいない場合(ステップS105のNo)、入出力手段130は、再度各HDDの前方の領域からデータの書き込みを実施する(ステップS104)。
【0053】
ミラー領域(i+1)へ書き込みが進んだ場合(ステップS105のYes)、データ転送手段170は、ミラー領域iの同期が完了したか確認する(ステップS106)。なお、ミラー領域の同期は、HDD(A)のミラー領域からHDD(B)の対応するミラー領域へのデータ転送の残処理が無くなったときに完了する。
【0054】
ミラー領域iの同期が完了していない場合(ステップS106のNo)、入出力手段130は、再度各HDDの前方の領域からデータの書き込みを実施する(ステップS104)。
【0055】
ミラー領域iの同期が完了している場合(ステップS106のYes)、データ転送手段170は、ミラー領域iの容量が所定の容量以下か否か確認する(ステップS107)。所定の容量は、例えば、128メガバイトである。
【0056】
図4のS2に示す例において、入出力手段130がデータを書き込む領域は、A21、A22およびB21へ移動している。すなわち、ミラー領域2へ書き込みが進んでいる(ステップS105のYes)。また、HDD(A)のミラー領域1であるA12と、HDD(B)のミラー領域1であるB12との同期が完了している(ステップS106のYes)。
【0057】
ミラー領域の容量が所定の容量以下である場合(ステップS107のYes)、ほぼ全てのHDDの全領域は、一度書き込みが実施された状態になる。よって、その後の汎用サーバ200からのアクセスは、データの読み込みまたはデータの更新を行うアクセスが主となり、新規のデータ書き込みは少なくなる。ステップS107がYesの場合、データ転送手段170は、ミラー領域における非同期データ転送を終了する。
【0058】
ミラー領域の容量が所定の容量より大きい場合(ステップS107のNo)、データ転送手段170は、ミラー領域iの設定を解除し、ミラー領域iを開放する(ステップS108)。データ転送手段170は、開放した領域に対して再度データ分配ロジックを適用し、ミラー領域(i+2)を設定する(ステップS109)。
【0059】
ミラー領域を設定した後、データ転送手段170は、iに1を加算する(ステップS110)。以後、データ転送手段170は、再度各HDDの前方の領域からデータの書き込みを実施する(ステップS104)。
【0060】
図4のS3に示す例において、ミラー領域1の容量が所定の容量より大きいため(ステップS107のNo)、ミラー領域1の設定は解除される。すなわち、HDD(A)の領域A12とHDD(B)の領域B12との間に設定されていた関係は解除される。関係が解除された後、入出力手段130は、A12へのアクセスをB12に対して行うように設定を変更する。
図4のS3に示すように、A12は開放され、一旦未使用領域になる(ステップS108)。
【0061】
データ転送手段170は、HDD間の非同期データ転送を行うために、ディスク構成記憶手段160に記憶されているデータ分配ロジックから再度ミラー領域を設定する。そして、
図4のS4に示すように、データ転送手段170は、HDD(A)の未使用領域A12からA32を、HDD(B)の未使用領域B100からB32をそれぞれ、3番目のミラー領域(ミラー領域3)として設定する(ステップS109)。
【0062】
データ分配ロジックにより、未使用領域A12は、A31とA32に分割されて再使用される。同様に、未使用領域B100は、B31、B32およびB101に分割されて使用される。
【0063】
次いで、データ転送手段170は、ミラー領域の識別番号を1つ進める(ステップS110)。データ転送手段170は、再度データの書き込み要求に対してなるべくHDDの前方の領域から使用する(ステップS104)。なお、データ転送手段170は、ミラー領域2であるA22の領域全てにデータを書き込む前に、A31またはA32に対してデータを書き込むことは無い。
【0064】
以後、データ転送手段170は、同様の手順を繰り返す。データの書き込みがミラー領域3(A32とB32)へ達すると(ステップS105のYes)、データ転送手段170は、ミラー領域2(A22とB22)の同期状態を確認する(ステップS106)。
【0065】
図5のS5に示すように、ミラー領域2の同期が完了している場合(ステップS106のYes)、データ転送手段170は、ミラー領域2(A22とB22)の容量を確認する(ステップS107)。ミラー領域2の容量が所定の容量よりも大きいため(ステップS107のNo)、データ転送手段170は、
図5のS6に示すようにミラー領域2を開放し、A22を未使用領域にする(ステップS108)。
【0066】
未使用領域に対して、データ転送手段170は、再度データ分配ロジックを適用する。
図5のS7に示すように、データ転送手段170は、ミラー領域4(A42とB42)を設定する(ステップS109)。
図5のS8には、ミラー領域4への書き込みが始まり(ステップS105のYes)、ミラー領域3の同期が完了した(ステップS106のYes)状態の各HDDが示されている。
【0067】
図6のS9には、ミラー領域3が開放され、A32が未使用領域とされた(ステップS108)状態の各HDDが示されている。
図6のS10には、未使用領域に対して再度データ分配ロジックが適用され、ミラー領域5(A52とB52)が設定された(ステップS109)状態の各HDDが示されている。
【0068】
図6のS11には、ミラー領域5への書き込みが始まり(ステップS105のYes)、ミラー領域4の同期が完了した(ステップS106のYes)状態の各HDDが示されている。
図6のS12には、ミラー領域4が開放され、A42が未使用領域とされた(ステップS108)状態の各HDDが示されている。
【0069】
図4〜
図6のS1からS12に示すように、各HDDの使用領域が増えるほどミラー領域の容量は小さくなる。よって、最終的にはミラー領域の容量が所定の容量以下となり、ステップS107の処理によりデータ転送処理が終了する。
【0070】
本実施形態の記憶装置を使用する場合、ユーザは、通常のディススクアレイ装置が保持している簡易なデータ転送機能のみを使用して非同期データ転送(ミラー転送)処理を実施できる。通常の非同期データ転送手段では、汎用サーバからの命令を要したり、ディスクアレイ装置のメモリやCPUのリソースを多用したりするが、本実施形態ではこれらの命令やリソースを必要としないため、効率的に非同期データ転送を実施できる。
【0071】
次に、本発明の概要を説明する。
図7は、本発明による記憶装置の概要を示すブロック図である。本発明による記憶装置1は、第1の記憶手段3(例えば、HDD)と、第1の記憶手段3に比べてデータの書き込み速度が遅く記憶容量が大きい第2の記憶手段4(例えば、HDD)とを含む仮想記憶手段2(例えば、プール140)と、第1の記憶手段3の書き込み可能領域に第1の同期領域を設定し、第2の記憶手段4の書き込み可能領域に第2の同期領域を設定する同期領域設定手段5(例えば、データ転送手段170)と、書き込み要求を受けたときに、第2の記憶手段4よりも第1の記憶手段3に優先的に書き込み要求を出力する書き込み制御手段6(例えば、入出力手段130)と、書き込み要求により第1の同期領域にデータが書き込まれた場合、データの複製データを作成し、第1の同期領域へのデータの書き込み処理とは非同期に複製データを第2の記憶手段4へ転送し、第2の記憶手段4に複製データを第2の同期領域へ書き込むように指示する転送制御手段7(例えば、データ転送手段170)とを備える。
【0072】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、特性の異なる複数の記憶媒体間でデータを低負荷で転送できる。
【0073】
同期領域設定手段5は、第2の記憶手段4の書き込み速度に対する第1の記憶手段3の書き込み速度の速度割合を取得し、第1の記憶手段3の書き込み可能領域から、書き込み可能領域の容量を速度割合で割った容量を持つ領域を除外した領域を第1の同期領域としてもよい。
【0074】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、記憶装置のアクセス速度を向上させることができる。
【0075】
同期領域設定手段5は、第1の記憶手段3の書き込み可能領域を全て第1の同期領域としてもよい。
【0076】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、記憶装置のアクセス速度を最大にすることができる。
【0077】
同期領域設定手段5は、第1の同期領域に空き容量が無くなるまでデータが書き込まれ、書き込まれた全てのデータの複製データが第2の同期領域に書き込まれた場合、第1の同期領域を再度書き込み可能領域にしてもよい。
【0078】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、記憶装置のアクセス速度を維持できる。
【0079】
同期領域設定手段5は、第1の同期領域と第2の同期領域とをそれぞれ2つ以上設定してもよい。
【0080】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、同期領域が1つしか設定されていない場合に比べると、データが転送されている間に待機することなくデータ書き込みを実施できる。
【0081】
仮想記憶手段2は、第1の記憶手段3と第2の記憶手段4をそれぞれ2つ以上含んでいてもよい。
【0082】
そのような構成により、この記憶装置を使用する場合、使用するユーザは、複数のHDDから複数のHDDへ、非同期にデータを転送できる。