JP2004046352A - Data storage device and method, and program - Google Patents
Data storage device and method, and program Download PDFInfo
- Publication number
- JP2004046352A JP2004046352A JP2002200244A JP2002200244A JP2004046352A JP 2004046352 A JP2004046352 A JP 2004046352A JP 2002200244 A JP2002200244 A JP 2002200244A JP 2002200244 A JP2002200244 A JP 2002200244A JP 2004046352 A JP2004046352 A JP 2004046352A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- file
- file block
- block
- stored
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は、データを複製して複数の二次記憶装置に書き込むデータ格納装置およびデータ格納方法に関するものである。
【0002】
【従来の技術】
近年、二次記憶装置(以下、ディスクと称する)の大容量化が進み、それに伴いディスクからの高速なデータ転送や、ディスクの高信頼性が求められてきた。
これらの対応手段としてディスクアレイ装置があり、ディスクアレイ装置には以下に示すようないくつかのデータ格納法が提案されている。
【0003】
ディスクアレイ装置のデータ格納法の一つにミラーリングがある。ミラーリングとは、2つのディスクに同一データを書き込むことによりディスクの信頼性を向上させる方法である。ミラーディスクはRAID1(RAID:Redundant Arrays of Inexpensive Disks)とも呼ばれる。
【0004】
図15は、ミラーリングによるデータ格納例を示す図である。図において、#D1〜#D4は物理ディスク、B1〜B24はファイルブロック番号を示す。物理ディスク#D1と物理ディスク#D2が対、物理ディスク#D3と物理ディスク#D4が対となり、それぞれの対が一つの論理ディスクを構成する。対となる物理ディスクには同一のデータが書込まれており、オペレーティングシステムは例えば#D1に障害が発生した時には#D2にアクセスするように動作し、#D2に障害が発生した時には#D1にアクセスするように動作する。そのため、対となる2つの物理ディスクが同時に故障しない限りデータへのアクセスは可能である。
【0005】
ミラーリングには、データ転送時に各物理ディスクへの負荷が均等になるようにデータを転送するディスクを選択し、ディスクの全体的なデータ転送効率を向上させる負荷分散機能を有するものもある。これはミラーリング構成をとる論理ディスクに対してデータ転送要求が発行された場合に、要求されたデータが物理ディスクから転送されてくる待ち時間の間に、次のデータ転送要求をその対となる物理ディスクに対して発行するものである。これにより、データ転送が同時並列に行われるため、データの転送効率が向上する。
【0006】
以上のように、同一データを2つのディスクに格納するミラーリング構成をとることにより、ディスクの高信頼性と高速転送を実現することができる。
【0007】
また、特開平6−18722号公報には、データの複製を複数のディスクに格納する方法が開示されている。図16、図17はその格納例を示す図である。それぞれの図において、図15と共通する要素には同一符号を付し、その説明を省略する。図16の格納例は、各ディスク上のデータの複製を他の全てのディスクに分散させて格納する方法によるものである。また、図17のデータ格納例は、複製を他の2台以上の複製用ディスクに分けて格納する方法によるものである。
【0008】
図16、図17に示すデータ格納法において、格納されたデータを転送する時は各ディスクから並列にデータを転送するため、高速転送が実現できる。また、特定のディスクにデータ転送要求が集中した場合には同一データを他のディスクから転送することにより、負荷を分散させることが可能である。さらに、ディスク故障後の障害復旧の際には、複数のディスクから並列にデータを転送してスペアディスクに書き込むことができるため、一台のディスクのみに複製を格納するミラーリングシステムよりも障害復旧が早いという利点もある。
【0009】
【発明が解決しようとする課題】
従来のデータ格納装置は以上のように構成されているので、ディスク接続時にデータの多重度、すなわちデータを複製する数が決定されるため、格納するデータ量の増減やディスクの接続台数の増減に応じて多重度を柔軟に変更することができないという課題があった。
【0010】
この発明は上記のような課題を解決するためになされたもので、データ量およびディスクの容量に応じてデータの多重度を柔軟に変更することができ、かつディスクの信頼度とデータ転送効率を最大にすることができるデータ格納装置およびデータ格納方法を得ることを目的とする。
【0011】
【課題を解決するための手段】
この発明に係るデータ格納装置は、記憶デバイスから構成される各ボリュームを識別するための第1の識別子と各ボリュームの容量情報とを記憶するボリューム管理テーブルと、ボリュームに格納するファイルブロックの複製数の最小値である現多重度、各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブルと、第1の識別子、容量情報、現多重度および第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うとともに、優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うファイルブロック管理手段とを備えたものである。
【0012】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、現多重度に等しい数のボリュームに空き領域が存在するか否か判定し、存在する場合はファイルブロックの多重度が現多重度と等しくなるようにファイルブロックを複製して格納するものである。
【0013】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、すべてのボリュームに空き領域が存在しない場合、格納すべきファイルブロックを現多重度より多重度の高いファイルブロックが格納されている領域に上書きするものである。
【0014】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、各ボリュームからデータを読み出すにあたり、ファイルブロック管理テーブルの優先度を参照し、優先度が最も高いファイルブロックから読み出すものである。
【0015】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、あるボリュームがアクセス不能となった場合、アクセス可能なボリュームに格納されたファイルブロックの複製を読み出すものである。
【0016】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、新たに追加されたボリュームに現多重度よりも低い多重度のファイルブロックを格納するものである。
【0017】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、現多重度が変更された場合にユーザに対して警告を発するものである。
【0018】
この発明に係るデータ格納装置は、ファイルブロック管理手段が、現多重度が変更された場合にエラーとするものである。
【0019】
この発明に係るデータ格納方法は、記憶デバイスから構成される各ボリュームを識別するための第1の識別子と各ボリュームの容量情報とを記憶するボリューム管理テーブルと、ボリュームに格納するファイルブロックの複製数の最小値である現多重度、各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブルとを備えたデータ格納装置のデータ格納方法であって、第1の識別子、容量情報、現多重度および第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うと共に、優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うものである。
【0020】
この発明に係るデータ格納プログラムは、記憶デバイスから構成される各ボリュームを識別するための第1の識別子と各ボリュームの容量情報とを記憶するボリューム管理テーブル、ボリュームに格納するファイルブロックの複製数の最小値である現多重度、各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブル、第1の識別子、容量情報、現多重度および第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うとともに、優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うファイルブロック管理手段としてコンピュータを機能させるものである。
【0021】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1によるデータ格納装置を含むシステムの構成を示す図である。図において、1はネットワーク結合装置3a,3bによってバス(転送経路)2,2aに接続されるネットワーク(転送経路)である。2は中央処理装置15と主記憶装置10を接続しているバス(転送経路)であり、複数のバスを接続するためのバス結合装置3cを介してバス(転送経路)2bに接続されている。バス結合装置3cは、例えば異なるバスやネットワーク間を中継するブリッジである。6a,7aは磁気ディスク装置(記憶デバイス)であり、ディスクコントローラ4aによってバス2aに接続され、一つのボリューム8aを構成する。同様に、6b,7bも磁気ディスク装置であり、ディスクコントローラ4bによってバス2bに接続され、一つのボリューム8bを構成する。5aはバス2aに接続されるI/Oプロセッサである。ボリューム8aはネットワークドライブに相当し、I/Oプロセッサ5aにより制御される。ボリューム8bはローカルドライブに相当する。ここで、ボリュームとは、オペレーティングシステムを介して管理される1台以上の磁気ディスク装置から構成される記憶単位を表す。
【0022】
10は主記憶装置であり、ボリューム管理部11、ファイル制御部12、システム全体の制御を行うオペレーティングシステム13およびファイルブロック管理部(ファイルブロック管理手段)14などを格納する。15は中央処理装置(CPU)であって、オペレーティングシステム13などを実行してシステム全体の各装置を制御する。
【0023】
この実施の形態では、この発明によるデータ格納処理を主記憶装置10に格納されるファイルブロック管理部14により実現している。このファイルブロック管理部14は、オペレーティングシステム13とは分離してプログラムされたソフトウエアとして主記憶装置10上に実装されて、オペレーティングシステム13に対してファイル制御の要求を行ってもよいし、オペレーティングシステム13と一体となってファイル制御を行ってもよい。
【0024】
図2はこの発明の実施の形態1によるデータ格納装置の構成要素の相互関係を示す図である。図において、8は磁気ディスク装置からなる複数のボリューム、12はボリューム8へのデータ書き込みおよび読み出しの制御をオぺレーティングシステムを介して行うファイル制御部、16はボリューム8とオペレーティングシステム13とのデータ送受を中継するデバイスドライバ、20はボリューム管理部11がオペレーティングシステムに対して各ボリュームのボリューム名(第1の識別子)、ネットワークドライブ/ローカルドライブの区別を示すボリューム種別等の情報の取得要求を出し、これらの情報に基づいて生成するボリューム管理テーブル、30はファイルブロック管理部14がオペレーティングシステム13に対して各ファイルブロックが格納されるボリューム名(第2の識別子)、各ファイルブロックの多重度等の取得要求を出し、この情報に基づいて生成するファイルブロック管理テーブルを示す。
【0025】
図3は、図2中のボリューム管理テーブル20の構成を示す図である。図において、21はボリューム情報であり、ボリューム名(第1の識別子)22、種別23、最大ブロック数(容量情報)24、現ブロック数25、アクティブフラグ26から構成される。ボリューム情報21は、ボリューム管理テーブル20内にボリュームの数だけ格納される。ボリューム名22は、オペレーティングシステム13により識別されるボリュームの識別子である。種別23は、ボリュームの種別であり、ネットワークドライブ、ローカルドライブ等の区別を示す。最大ブロック数24は、ボリュームに格納可能なファイルブロックの最大数を表し、ボリュームの容量を1ファイルブロックサイズで割ったものである。現ブロック数25は、各ボリュームに格納されているファイルブロックの数であり、初期状態では0である。アクティブフラグ26は、ドライブを冗長構成の一部として利用するか否か、またはエラー等によりオフライン状態であるか等の状態を示すものである。
【0026】
図4は、図2中のファイルブロック管理テーブル30の構成を示す図である。
図において、31はファイルブロック管理情報であり、最大多重度32、現多重度33、最終ブロック番号34から構成される。35はファイルブロック情報であり、ボリューム名(第2の識別子)36、ブロック番号37、タイムスタンプ38、ランク(優先度)39から構成される。ファイルブロック管理テーブル30は、ファイルブロック管理情報31とファイルブロック情報35とから成り、ファイルブロック管理テーブル30内にファイルブロック管理情報31は1つ格納、ファイルブロック情報35はファイルブロックの数だけ格納される。ここで、ファイルブロックとは、記憶デバイスに格納すべきデータを同一容量単位で分割した数値列で、例えば記憶デバイスに格納すべきデータの最小単位となる数値列を示す。
【0027】
図4において、最大多重度32は格納されたファイルブロックの複製数の最大値、現多重度33は格納されたファイルブロックの複製数の最小値、最終ブロック番号34は全ボリュームにおけるブロック番号のうち最終番号を示す。ボリューム名36はファイルブロックが格納されているボリュームの識別子を示す。ブロック番号37は、各ボリュームに格納されたファイルブロックに付された通し番号を示し、同一ブロック番号37のファイルブロックはデータの内容が同一であることを意味する。タイムスタンプ38は、ファイルブロックがボリュームに格納された日時、ランク39は、同一ブロック番号のファイルブロックをリードする(読み込む)際の優先度を示す。
【0028】
次にボリューム8へのデータの書き込み動作について説明する。
図5はこの実施の形態におけるファイルブロックの格納手順を示すフローチャート、図6は図5の手順によるファイルブロックの格納例であり、図6において、#V1〜#V4はボリューム名、B1〜B8はブロック番号を示し、以降の図においても共通の要素を示すとしてその説明を省略する。図6は最大ボリューム数24=8である4つのボリュームの全領域にデータが格納された状態を示す。
図6のボリュームがすべて空き領域である初期状態からデータを格納する手順について図5を参照して説明する。
【0029】
図6の初期状態では、ブロック管理部14は最終ブロック番号34を0、最大多重度32と現多重度33をボリューム数に等しい4に設定する。まず、ファイルブロック管理部14は、ファイルブロック管理テーブル30から最終ブロック番号34=0を取得し(ステップST1)、取得した(最終ブロック番号34)+1=B1を格納するブロック番号とする(ステップST2)。続いて、ファイルブロック管理部14は現多重度33に等しい数のボリュームに空き領域が存在するか否かを判定する(ステップST3)。例えば、ファイルブロック管理部14がボリューム管理部11を介してボリューム管理テーブル20から最大ブロック数24を取得し、これとステップST2で求めた格納するブロック番号とを比較することにより判定できる。格納するブロック番号がすべての最大ブロック数24より小さい場合は、現多重度33に等しい数のボリュームに空き領域が存在する。この場合はすべての最大ブロック数24=8、格納するブロック番号=1であるため、空き領域は存在すると判定できる。
【0030】
空き領域が存在しない場合はブロックの上書き更新処理へ移る(ステップST4)。空き領域が存在する場合、ファイルブロック管理部14はボリューム管理部11を介して空き領域の存在するボリューム名を取得し、これらのボリュームに書き込みデータの多重度が現多重度33と等しくなるようにデータを複製して書き込む要求をオペレーティングシステム13に対して行う(ステップST5)。ボリューム管理部11は、現ブロック数25が最大ブロック数24より小さいボリュームを空き領域が存在するボリュームとして取得してもよい。オペレーティングシステム13はファイルブロック管理部14の要求に従ってボリュームの空き領域にデータを格納する。図6では、1つのデータを多重度が4となるようにボリューム#V1〜#V4それぞれに格納する。
【0031】
続いて、ボリューム管理部11はボリューム管理テーブル20上のボリューム情報21のボリューム名#V1〜#V4の各現ブロック数25を1に更新する(ステップST6)。ファイルブロック管理部14は、ブロック番号B1のファイルブロック情報35を追加し(ステップST7)、ファイルブロック管理情報31の最終ブロック番号34をB1に更新する(ステップST8)。続いて、次のデータを格納する場合、再びこのフローチャートのステップST1から開始して次のデータを格納する。図6は上記手順を繰り返してデータを格納し、すべてのファイルブロックの多重度=4、最終ブロック番号=B8となった状態を示す。
【0032】
次にファイルブロック読み出し動作について説明する。
まず、ファイル制御部12が、読み出し対象ブロック番号をファイルブロック管理部14に渡す。ファイルブロック管理部14はファイルブロック管理テーブル30から取得した番号のランク39を参照し、最も優先度の高いファイルブロック情報35のボリューム名を取得してファイル制御部12に返す。続いて、ファイル制御部12は取得したボリューム名のボリュームに格納される読み出し対象ブロックを読み出すようにオペレーティングシステム13に対して要求する。
オペレーティングシステム13は、ファイル制御部12の要求に従いデバイスドライバにファイル読み出しの要求を行う。デバイスドライバはボリュームから読み出しデータを取得しオペレーティングシステム13に返す。
【0033】
ここで、上記ランク39を更新する動作について説明する。
図7はファイルブロック管理テーブル30上のファイルブロック情報35のランク39を更新する手順を示すフローチャート、図8(a)は上記ランク39に従って選択された読み出しファイルブロックを楕円で示した図であり、これらの図を参照して説明する。
【0034】
ファイルブロック管理部14は、ファイルブロック管理テーブル30上のファイルブロック情報35の全てのランク39を初期化し(ステップST11)、ランク更新対象のファイルブロックとして、まずブロック番号B1のファイルブロック情報35を取得する(ステップST12)。続いて、ファイルブロック管理部14は取得したファイルブロック情報35のボリューム名を参照し、同一ボリューム名を持つファイルブロック情報35のランク39の合計値を計算する(ステップST13)。図8(a)では、ブロック番号B1のファイルブロック情報35のボリューム名は#V1〜#V4であり、全てのボリューム名に対応するランク39は全て初期化されているため各ボリュームのランク39の合計値は全て0となる。
【0035】
続いて、ファイルブロック管理部14は各ボリュームのランク39の合計値を比較し、その合計値が最も小さいボリュームに対応するランク更新対象ブロック番号37のランク39を、例えば1に更新する(ステップST14)。ランク39の合計値が最も小さいものが複数存在する場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従ってランク39を更新してもよい。図8(a)では、ランク39の合計値が最小の#V1〜#V4のうちボリューム情報21の順番に従ってボリューム#V1を選択し、ボリューム#V1に格納されるブロック番号B1のファイルブロック情報35のランク39を1に更新する。
【0036】
続いて、ファイルブロック管理部14はブロック番号B2のファイルブロック情報35についても同様にランク39の更新処理を行う。ボリューム#V1のブロック番号B1のランク39が1に更新されたため、ボリューム#V1のランク合計値は1、ボリューム#V2〜#V4の各ランク合計値は0となる。よって、ファイルブロック管理部14は、ランク合計値が最小のボリューム#V2〜#V4のうちボリューム情報21の順番に従ってボリューム#V2を選択し、ボリューム#V2のブロック番号B2のランク39を1に更新する。ブロック番号B3〜B8のファイルブロックについても同様に、上記ステップST12からステップST14までを繰り返す(ステップST15)。
【0037】
上記のように、ランク39に従って読み出し優先度を決定することにより、異なるボリュームからファイルブロックを並列にリードでき、全体としてのデータ転送速度と信頼度が向上する。
【0038】
図8(b)は、ファイル制御部12からファイルブロック管理部14に対してブロック番号B3のリード要求が4つ行われた場合に読み出されるリードファイルブロックを楕円により示す図である。図8(a)の場合と同様に、ファイルブロック管理部14が各ファイルブロックのランク39を更新し、ランク39に従ってファイルブロックの読み出し優先度を決定してもよい。ランク39が同一である場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従って優先度を決定してもよい。ファイルブロック管理部14が優先度に従ってリードファイルブロックを選択することにより、同一ファイルブロックのリード要求が発生した場合に、異なるボリュームの同一ブロック番号のファイルブロックを同時に読み出すことができる。これにより、データ転送の待ち時間をなくしスループットを向上させることができる。
【0039】
ファイルブロック管理部14は、上記ランク更新処理をファイルブロックを読み出す直前に行ってもよいし、書き込み終了後に行ってもよい。また、ファイルブロック管理部14は、B1〜B8のブロック番号37について上記手順によりランク39を設定した後、未設定のランク39に対応するブロック番号37を対象に、再度図7のフローチャートのステップST12からステップST14を繰り返し、ランク39を設定してもよい。この場合、初期値を4とし以後繰り返し設定を行う毎に値をデクリメントする。これにより、同一ブロック番号を持つ異なるファイルブロック情報35には、異なるランク39が設定される。
【0040】
次に、上書き処理を含むデータ書き込み動作について説明する。
図9は上書き処理を含むデータ書き込み手順を示すフローチャート、図10(a)は図6のように格納されたファイルブロックに上書き更新処理を行った図であり、図9に従って図6の構成を上書きする手順を説明する。
【0041】
ファイルブロック管理部14は、ファイルブロック管理テーブル30上の格納されるファイルブロック管理情報31から最終ブロック番号34=B8を取得し(ステップST16)、取得した(最終ブロック番号34)+1=B9を格納するブロック番号とする(ステップST17)。続いて、ボリューム管理部11が空き領域の存在するボリューム名を取得し、ファイルブロック管理部14に渡す。図6の場合、すべてのボリュームにおいて現ブロック数25=8、最大ブロック数24=8であるため、空き領域が存在しないことがわかる。
【0042】
ここで、空き領域が存在する場合、ファイルブロック管理部14はオペレーティングシステム13に対して空き領域にデータの書き込みを行う要求を行い、オペレーティングシステム13はファイルブロック管理部14の要求に従いデータを現多重度33分複製して格納する(ステップST18)。ボリューム管理部11はデータが書き込まれたボリュームのボリューム情報21の現ブロック数25に1を加えて更新する(ステップST19)。
【0043】
続いて、ファイルブロック管理部14は書き残りのブロックが存在するか否か、すなわち現多重度33から書き込まれたボリューム数を引いた数が0か否か判定する(ステップST20)と、空き領域が存在しないため、B9の書き残りは4つとなる。続いて、ファイルブロック管理部14は格納するファイルブロック=B9が書き込まれていないボリューム、すなわちボリューム名#V1〜#V4のファイルブロック情報35のブロック番号37を取得し(ステップST21)、取得したブロック番号のファイルブロック情報35の数をブロック番号毎にカウントする(ステップST22)。ボリューム名#V1〜#V4のファイルブロック情報35のブロック番号はB1〜B8であり、すべての番号のファイルブロック情報35の数は4である。ここで、ファイルブロックが書き込まれていないボリュームが持つブロック番号37を取得するのは、同一ブロックが複数のボリュームに分散されて書き込まれるようにするためである。
【0044】
ファイルブロック管理部14は、ファイルブロック情報35の数と現多重度33とを比較し、ファイルブロック情報35の数の方が大きいブロックを上書きされるブロックとして選択する(ステップST23)が、現多重度33=4であるため、上書きされるブロックが存在しない。この場合、現多重度を1減らす(ステップST23)。このとき、ファイルブロック管理部14はオペレーティングシステム13に対してユーザへの警告を発するように要求してもよいし、エラーとするように要求してもよい。
【0045】
これにより、番号B1〜B8のファイルブロックが上書きされるブロックの候補となる。このように、ファイルブロック情報35の数が現多重度33より多いブロックが複数存在する場合、ブロック番号37が最も小さいブロックを上書きされるブロックとして選択してもよい。また、格納されるボリュームはボリューム管理テーブル20上のボリューム情報21の順番に従って決めてもよい。よって、ファイルブロック管理部14は、ボリューム#V1のブロック番号B1のブロックを上書きされるブロックとして選択する。上書きされるブロックの数が現多重度33に達するまで、すなわち、現多重度33がステップST18で既に書き込まれたボリューム数を引いた数だけステップST23の処理を繰り返す(ステップST24)。ブロックB1が上書きされるブロックとして選択されたため、ファイルブロック情報35の数が現多重度よりも大きいブロックはB2〜B8となり、次に上書きされるブロックとしてはボリューム#V2のブロックB2が選択される。同様に、上書きされるブロックとしてボリューム#V3のブロックB3が選択される。
【0046】
続いて、ファイルブロック管理部14は上書きされるブロックが選択されたか否かを判定し(ステップST25)、オペレーティングシステム13に対してそれぞれのボリュームに書き込みを行う要求を出す(ステップST26)。オペレーティングシステム13は格納対象ブロックを上書きする。続いて、ファイルブロック管理部14は上書きされたブロックのファイルブロック情報35のブロック番号37=B1,B2,B3を、上書き格納したブロック番号=B9にしてファイルブロック管理テーブルを更新し(ステップST27)、最終ブロック番号34をB9に更新する(ステップST28)。ステップST20で書き残りのブロックが存在しない場合、および、ステップST25で上書きされるブロックが選択されたかった場合、ステップST27とステップST28を行う。
【0047】
図10(a)には上記手順により上書きしたブロックを丸で示す。上記手順により、それぞれのファイルブロックの多重度が最大で、かつ同一ブロックが各ボリュームに均等に分散するように上書きされる。また、図10(b)は上記手順によりファイルブロックが上書きされ、すべてのファイルブロックの多重度が1となった場合を示す図である。この例では、これ以上ファイルブロックを格納することはできない。
【0048】
図11(a)は図10(a)に示すファイルブロックから読み出されるファイルブロックを楕円で示す図である。読み出しの優先度はファイルブロック管理テーブル30のファイルブロック情報35のランク39に従って決定され、ランク39は図7に示す手順により設定される。ランク39の設定手順について図7と図11(a)を参照して説明する。
【0049】
ファイルブロック管理部14は、ファイルブロック管理テーブル30のファイルブロック情報35の全てのランク39を初期化し(ステップST11)、ランク更新対象のブロック番号B1のファイルブロック情報35を取得する(ステップST12)。続いて、取得したファイルブロック情報35のボリューム名を参照し、同一ボリューム名を持つファイルブロック情報35のランク39の合計を計算する(ステップST13)。この場合、取得したファイルブロック情報35のボリューム名は#V2〜#V4であり、それぞれのボリューム名に対応するランク39の合計値は全て0となる。
【0050】
続いて、ファイルブロック管理部14は各ボリュームのランク39の合計値を比較し、その合計値が最も小さいボリューム名に対応するランク更新対象ブロック番号37のランク39を、例えば1に更新する(ステップST14)。ランク39の合計値が最も小さいものが複数存在する場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従ってランク39を更新してもよい。この場合、ランク39の合計値が最小の#V2〜#V4のうちボリューム情報21の順番に従ってボリューム#V2を選択し、ボリューム#V2に格納されるブロック番号B1のファイルブロック情報35のランク39を1に更新する。
【0051】
続いて、ファイルブロック管理部14はブロック番号B2のファイルブロック情報35についても同様にランク39の更新処理を行う。ボリューム#V2のブロック番号B1のランク39が1に更新されたため、ボリューム#V2のランク合計値は1、ボリューム#V1,#V3,#V4の各ランク合計値は0となる。
よって、ランク合計値が最小のボリューム#V1,#V3,#V4のうちボリューム情報21の順番に従ってボリューム#V3を選択し、ボリューム#V3のブロック番号B2のランク39を1に更新する。ブロック番号B3〜B8のファイルブロックについても同様に、上記ステップST12からステップST14までを繰り返す(ステップST15)。
【0052】
上記手順により更新されたランク39に従って読み出し優先度を決定することにより、異なるボリュームからファイルブロックを並列にリードでき、全体としてのデータ転送速度と信頼度が向上する。
【0053】
図11(b)は、ブロック番号B3のリード要求が3つ行われた場合に読み出されるファイルブロックを楕円により示す図である。図11(a)に示す場合と同様に、ファイルブロック管理部14が各ファイルブロックのランク39を更新し、ランク39に従ってファイルブロックの読み出し優先度を決定してもよい。
ランク39が同一である場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従って優先度を決定してもよい。優先度に従ってリードファイルブロックが選択されることにより、ファイル制御部12から同一ファイルブロックのリード要求が発生した場合に異なるボリュームの同一ブロック番号のファイルブロックを同時に読み出すことができる。これにより、データ転送の待ち時間をなくしスループットを向上させることができる。
【0054】
図11(c)は、ファイルブロックが上書きされ現多重度が2となった状態でのリードファイルブロックを楕円により示す図であり、図11(d)はファイルブロックが上書きされ全てのファイルブロックの多重度が2となった状態でのリードファイルブロックを楕円により示す図である。それぞれの図において、図11(a)に示す場合と同様に、ファイルブロック管理部14が各ファイルブロックのランク39を更新し、ランク39に従ってファイルブロックの読み出し優先度を決定してもよい。ランク39が同一である場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従って優先度を決定してもよい。
【0055】
以上のように、この実施の形態1によれば、ファイルブロック管理部14が、現多重度33に等しい数のボリュームに空き領域が存在するか否か判定し、存在する場合はファイルブロックの多重度が現多重度33と等しくなるようにファイルブロックを複製して格納されるようにしたので、ボリュームの数に応じてすべてのファイルブロックの多重度が最大となるように格納できるため、接続するディスクの数を柔軟に決定でき、またボリュームの信頼度を最大にすることができる効果が得られる。
【0056】
また、空き領域にファイルブロックを格納し、全領域に格納したときに書き残りのブロックが存在する場合、ファイルブロック管理手段14は、現多重度33を減らして既にデータが格納されている領域にデータを上書きするようにしたので、ボリュームの空き領域不足によりデータを格納できないということを回避でき、データ規模に応じてボリュームの容量を変更できる効果が得られる。
【0057】
また、ファイルブロック管理手段14は、現多重度33が変更された場合にユーザに対して警告を発するようにしたので、必要な場合はユーザによりボリュームを増設することで、必要な多重度の信頼性を維持することができる効果が得られる。
【0058】
また、ファイルブロック管理手段14は、現多重度33が変更された場合にエラーとするようにしたので、システムとして必要最低限の多重度を下回る多重度でデータが格納されることを防ぐことができ、最低限の多重度の信頼性を保証することができる効果が得られる。
【0059】
また、ファイルブロック管理手段14は、各ボリュームからデータを読み出すにあたり、ファイルブロック管理テーブル30のランク39を参照して優先度が最も高いファイルブロックが読み出されるようにしたので、異なるボリュームから並列に読み出すことができ、全体のデータ転送効率を最大にすることができる効果が得られる。
【0060】
実施の形態2.
この発明の実施の形態2では、ディスクの故障やネットワークの障害などにより、あるボリュームへのアクセスが不可能となった場合におけるファイルブロック読み出しについて示す。また、アクセス不能となったボリュームの復旧または新しいボリュームの追加に対するファイルブロックの複製について示す。
【0061】
図12(a)はこの実施の形態で、ブロック番号B1〜B10のファイルブロックが書き込まれた状態でボリューム#V2が故障してアクセス不能となった場合に、ボリューム#V2以外のボリュームから読み出されるファイルブロックを楕円により示す図である。オペレーションシステム13がデバイスドライバのエラーやユーザの指定を検出すると、ボリューム管理部11がボリューム情報21のアクティブフラグ26に設定し、これを参照することによりボリュームがアクセス不能か否かが判断できる。アクセス不能となったボリュームに格納されているファイルブロックにはアクセスできないため、ファイルブロック管理部14により再度リードファイルブロックの選択を行う。
【0062】
リードファイルブロックの選択のためのランク更新処理は、図7に示すフローチャートによる手順で行われ、図7に従って図12(a)のランクを決定する手順を説明する。ファイルブロック管理部14は、ファイルブロック情報35の全てのランク39を初期化し、ブロック番号B1のファイルブロック情報35を取得する。続いてファイルブロック管理部14は、取得したファイルブロック情報35のボリューム名#V3,#V4と同一ボリューム名を持つファイルブロック情報35のランク39の合計値を計算すると、ともに0となる。よって、ファイルブロック管理部14はボリューム#V3に格納されるブロック番号B1のファイルブロック情報35のランク39を1に更新する。
【0063】
続いて、ファイルブロック管理部14はブロック番号B2のファイルブロック情報35を取得する。ファイルブロック管理部14は、取得したファイルブロック情報35のボリューム名#V1,#V3,#V4と同一ボリューム名を持つファイルブロック情報35のランク39の合計値を計算すると、それぞれ0,1,0となる。よって、ファイルブロック管理部14はランクの合計値が最小で、かつボリューム管理テーブル20上のボリューム情報21に従ってボリューム#V1を選択し、ボリューム#V1のブロック番号B2を読み出しブロックとして選択する。同様に、ブロック番号B3〜B10のファイルブロックについてランク39を更新する。
【0064】
図12(b)は、ファイルブロック番号B1〜B16まで書き込まれた状態でボリューム#V2が故障したときに、リードファイルブロックを楕円により示す図である。図において、読み出しファイルブロックはファイルブロック管理テーブル30上のランク39に従って選択され、ランク39は図12(a)の場合と同様、図7に示す手順でファイルブロック管理部14により更新される。
【0065】
次に追加されたボリュームにデータを格納する動作について説明する。
図13は、追加されたボリュームへのデータ格納手順を示すフローチャート、図14は最終ブロック番号=B12、現多重度=2の状態でデータが格納されたボリューム#V1〜#V4にボリューム#V5が追加され、図13の手順に従ってボリューム#V5にファイルブロックが格納された例を示す図である。ボリューム#V5がすべて空き領域の状態からファイルブロックを格納する手順を、図13、図14を参照して説明する。
【0066】
ボリューム管理部11は、追加されたボリューム#V5のボリューム情報21をボリューム管理テーブル20に追加する(ステップST27)。続いてファイルブロック管理部14はファイルブロック管理テーブル30からファイルブロック情報35を取得し(ステップST28)、同一ブロック番号のファイルブロック情報35の数をカウントする(ステップST29)と、ブロック番号B1,B2,B11,B12のファイルブロック情報35の数が2であり、ブロック番号B3〜B10のファイルブロック情報35の数が3である。
【0067】
続いて、ファイルブロック管理部14はファイルブロック情報35の数が現多重度33より大きいか否かを、ブロック番号B12から降順に判定する(ステップST30)。ファイルブロック情報35の数が現多重度33以下のブロックを、#V5に格納するものとする。ブロック番号B12のファイルブロック情報35の数は2であり現多重度以下であるため、ファイルブロック管理部14はブロック番号B12のデータを複製して書き込むようにオペレーティングシステム13に要求する。オペレーティングシステム13はファイルブロック管理部14の要求に従ってボリューム#V5にブロック番号B12のデータを格納する(ステップST31)。
【0068】
続いて、ファイルブロック管理部14はブロック番号B12のファイルブロック情報35をファイルブロック管理テーブル30に追加する(ステップST32)。ファイルブロック管理部14はすべてのブロック番号37について上記ステップST28〜ステップST32の処理を行う(ステップST33)。ステップST30でカウントしたファイルブロック情報35の数が現多重度33より大きい場合は、次のブロック番号について上記ステップST28〜ステップST32の処理を行う。ファイルブロック管理部14は、上記ステップST28〜ステップST32の処理をブロック番号の昇順で行ってもよいし、降順で行ってもよい。降順で行った場合、新しいファイルブロックの複製が優先的に格納されることになる。
【0069】
追加されたボリュームにファイルブロックの複製が格納され、全てのファイルブロックの多重度が同一となった後に空き領域が残っている場合、ファイルブロック管理部14は、現多重度を一つ上げて複製を格納していないファイルブロックの複製を作成して格納してもよい。また、空き領域のままにしておき将来追加される新たなファイルブロックを格納するようにしてもよい。上記の手順により、全てのファイルブロックの多重度を同一、かつ最大とすることができる。
【0070】
図14は、ボリューム#V5にブロック番号B12,B11,B2,B1のファイルブロックが順に格納され全てのファイルブロックの多重度が3となった後、さらにブロック番号が大きいブロック、すなわちブロック番号B10,B9,B8,B7のブロックが格納された状態を示す。また、図14にブロック番号B1〜B12のファイルブロックのリード要求が発生した場合に読み出されるリードファイルブロックを楕円により示す。リードファイルブロックは、ボリューム管理テーブル20上のボリューム情報21のランク39に従って選択してもよい。また、ランク39が同一である場合は、ボリューム管理テーブル20上のボリューム情報21の順番に従って優先度を決定してもよい。ランク更新処理は、ファイルブロックの読み出し時に行ってもよいし、ボリューム追加時のファイルブロック複製格納終了後に行ってもよい。
【0071】
故障したボリュームが復旧した場合についても、上記ボリューム追加手順と同様の手順でファイルブロックを複製して格納する。
【0072】
以上のように、この実施の形態2によれば、物理ディスクの故障やネットワークの障害などによりあるボリュームがアクセス不能となった場合、ファイルブロック管理手段14は、アクセス可能なボリュームに格納されたファイルブロックの複製が読み出されるようにしたので、読み出しエラーを防ぐことができる効果が得られる。
【0073】
また、ファイルブロック管理手段14は、ファイルブロック管理テーブル30のランク39を参照して優先度が最も高いボリュームに格納されるファイルブロックが読み出すようにしたので、アクセス可能なボリュームから読み出す場合も異なるボリュームから並列に読み出すことができ、全体のデータ転送効率を最大にすることができる効果が得られる。
【0074】
また、ファイルブロック管理手段は、新たに追加されたボリュームに、現多重度よりも小さい多重度のファイルブロックの複製が格納されるようにしたので、新しいボリュームを追加した場合にも柔軟に対応できる効果が得られる。
【0075】
【発明の効果】
以上のように、この発明によれば、記憶デバイスから構成される各ボリュームを識別するための第1の識別子と各ボリュームの容量情報とを記憶するボリューム管理テーブルと、すべてのボリュームに格納されたファイルブロックの複製数の最小値である現多重度、各ファイルブロックが格納されるボリュームを識別するための第2の識別子および各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブルと、第1の識別子、容量情報、現多重度および第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うとともに、優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うファイルブロック管理手段とを備えるように構成したので、ボリュームの数に応じてすべてのファイルブロックの多重度が最大となるように格納できるため、接続するディスクの数を柔軟に決定でき、またボリュームの信頼度を最大にすることができる効果がある。
【0076】
この発明によれば、上記の構成により、異なるボリュームから並列に読み出すことができ、全体のデータ転送効率を最大にすることができる効果が得られる。
【図面の簡単な説明】
【図1】この発明の実施の形態1によるデータ格納装置を含むシステムの構成を示す図である。
【図2】実施の形態1によるデータ格納装置の構成要素の相互関係を示す図である。
【図3】図2中のボリューム管理テーブルの内部構成を示す図である。
【図4】図2中のファイルブロック管理テーブルの内部構成を示す図である。
【図5】実施の形態1に係るファイルブロックの格納手順を示すフローチャートである。
【図6】実施の形態1に係るファイルブロックの格納図である。
【図7】実施の形態1に係るリードファイルブロック選択のためのランク更新手順を示すフローチャートである。
【図8】実施の形態1に係る複数ファイルブロックの読み出しについて示す図である。
【図9】実施の形態1に係る上書き処理を含むファイルブロック格納手順を示すフローチャートである。
【図10】実施の形態1に係るファイルブロックの上書き格納図である。
【図11】実施の形態1に係るファイルブロックが上書きされた状態での複数ブロック読み出しについて示した図である。
【図12】この発明の実施の形態2において、あるボリュームがアクセス不能となった場合の複数ブロック読み出しについて示す図である。
【図13】実施の形態2において、ボリュームが追加された時のファイルブロックの複製格納手順を示すフローチャートである。
【図14】実施の形態2において、ボリュームが追加された時のファイルブロックの複製を示す図である。
【図15】ミラーリングシステムで適用されるファイルブロック格納図である。
【図16】ミラーリングシステムで適用されるファイルブロック格納図である。
【図17】ミラーリングシステムで適用されるファイルブロック格納図である。
【符号の説明】
1 ネットワーク、2,2a,2b バス、3a,3b ネットワーク結合装置、3c バス結合装置、4a,4b ディスクコントローラ、5a I/Oプロセッサ、6a,7a,6b,7b 磁気ディスク装置、8,8a,8b ボリューム、10 主記憶装置、11 ボリューム管理部、12 ファイル制御部、13 オペレーションシステム、14 ファイルブロック管理部、15 中央処理装置、16 デバイスドライバ、20 ボリューム管理テーブル、21 ボリューム情報、22 ボリューム名、23 種別、24 最大ブロック数、25 現ブロック数、26 アクティブフラグ、30 ファイルブロック管理テーブル、31ファイルブロック管理情報、32 最大多重度、33 現多重度、34 最終ブロック番号、35 ファイルブロック情報、36 ボリューム名、37 ブロック番号、38 タイムスタンプ、39 ランク、#D1,#D2,#D3,#D4 物理ディスク、#V1,#V2,#V3,#V4,#V5 ボリューム、B1〜B12 ファイルブロック。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data storage device and a data storage method for copying and writing data to a plurality of secondary storage devices.
[0002]
[Prior art]
In recent years, the capacity of secondary storage devices (hereinafter, referred to as disks) has been increased, and accordingly, high-speed data transfer from disks and high reliability of disks have been required.
There is a disk array device as a means for dealing with these, and several data storage methods as described below have been proposed for the disk array device.
[0003]
One of the data storage methods of a disk array device is mirroring. Mirroring is a method for improving the reliability of disks by writing the same data to two disks. The mirror disk is also called RAID1 (RAID: Redundant Arrays of Inexpensive Disks).
[0004]
FIG. 15 is a diagram illustrating an example of data storage by mirroring. In the figure, # D1 to # D4 indicate physical disks, and B1 to B24 indicate file block numbers. The physical disk # D1 and the physical disk # D2 form a pair, and the physical disk # D3 and the physical disk # D4 form a pair. Each pair forms one logical disk. The same data is written in the paired physical disks, and the operating system operates to access # D2 when a failure occurs in # D1, for example, and when the failure occurs in # D2, the operating system operates on # D1. Operate to access. Therefore, data can be accessed as long as two paired physical disks do not fail simultaneously.
[0005]
Some mirroring has a load distribution function that selects a disk to which data is transferred so that the load on each physical disk is equalized during data transfer, and improves the overall data transfer efficiency of the disk. This is because when a data transfer request is issued to a logical disk that has a mirroring configuration, the next data transfer request is sent to the corresponding physical disk during the waiting time for the requested data to be transferred from the physical disk. It is issued for a disc. Thereby, the data transfer is performed in parallel and the data transfer efficiency is improved.
[0006]
As described above, by adopting a mirroring configuration in which the same data is stored in two disks, high reliability and high-speed transfer of the disks can be realized.
[0007]
Japanese Patent Application Laid-Open No. 6-18722 discloses a method of storing a copy of data on a plurality of disks. FIG. 16 and FIG. 17 are diagrams showing storage examples. In each figure, the same reference numerals are given to the same elements as those in FIG. 15, and the description thereof will be omitted. The storage example of FIG. 16 is based on a method of storing a copy of data on each disk in a distributed manner on all other disks. The data storage example of FIG. 17 is based on a method of storing a copy by dividing it into two or more other duplication disks.
[0008]
In the data storage method shown in FIGS. 16 and 17, when the stored data is transferred, the data is transferred in parallel from each disk, so that high-speed transfer can be realized. When data transfer requests are concentrated on a specific disk, the load can be distributed by transferring the same data from another disk. Furthermore, when recovering from a failure after a disk failure, data can be transferred from multiple disks in parallel and written to a spare disk, making recovery more difficult than a mirroring system that stores copies on only one disk. It also has the advantage of being fast.
[0009]
[Problems to be solved by the invention]
Since the conventional data storage device is configured as described above, the multiplexing degree of data at the time of disk connection, that is, the number of data copies is determined, so that it is possible to increase or decrease the amount of stored data or increase or decrease the number of connected disks. There has been a problem that the multiplicity cannot be flexibly changed accordingly.
[0010]
The present invention has been made in order to solve the above-described problems, and can flexibly change the degree of multiplexing of data according to the amount of data and the capacity of a disk, and can improve the reliability and data transfer efficiency of the disk. It is an object to obtain a data storage device and a data storage method that can be maximized.
[0011]
[Means for Solving the Problems]
A data storage device according to the present invention includes a volume management table storing a first identifier for identifying each volume constituted by a storage device and capacity information of each volume, and a copy number of a file block stored in the volume. A file block management table for storing the current multiplicity, which is the minimum value, a second identifier for identifying the volume in which each file block is to be stored, and the read priority of each file block, a first identifier, and a capacity. File block management means for controlling the writing of file blocks to each volume based on the information, the current multiplicity and the second identifier, and controlling the reading of file blocks from each volume in accordance with the priority. is there.
[0012]
In the data storage device according to the present invention, the file block management means determines whether or not free space exists in a number of volumes equal to the current multiplicity, and if so, the multiplicity of the file block is equal to the current multiplicity. In this case, the file block is duplicated and stored.
[0013]
In the data storage device according to the present invention, the file block management means overwrites a file block to be stored with an area storing a file block having a higher multiplicity than the current multiplicity when no free space exists in all volumes. Is what you do.
[0014]
In the data storage device according to the present invention, when reading data from each volume, the file block management means refers to the priority of the file block management table and reads out the file block having the highest priority.
[0015]
In the data storage device according to the present invention, when a certain volume becomes inaccessible, the file block management means reads a copy of the file block stored in the accessible volume.
[0016]
In the data storage device according to the present invention, the file block management means stores a file block having a lower multiplicity than the current multiplicity in the newly added volume.
[0017]
In the data storage device according to the present invention, the file block management means issues a warning to the user when the current multiplicity is changed.
[0018]
In the data storage device according to the present invention, the file block management means causes an error when the current multiplicity is changed.
[0019]
According to the data storage method of the present invention, a volume management table storing a first identifier for identifying each volume constituted by a storage device and capacity information of each volume, and a copy number of a file block stored in the volume And a file block management table for storing a second identifier for identifying a volume in which each file block is to be stored, and a read priority of each file block. A data storage method, which controls writing of a file block to each volume based on a first identifier, capacity information, current multiplicity, and a second identifier, and reads a file block from each volume according to a priority. The control is performed.
[0020]
A data storage program according to the present invention includes a volume management table for storing a first identifier for identifying each volume composed of a storage device and capacity information of each volume, and a copy number of a file block stored in the volume. A file block management table for storing the current multiplicity which is the minimum value, a second identifier for identifying a volume in which each file block is to be stored, and a read priority of each file block, a first identifier, capacity information, The computer functions as file block management means for controlling the writing of file blocks to each volume based on the current multiplicity and the second identifier, and controlling the reading of file blocks from each volume according to the priority. .
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described.
Embodiment 1 FIG.
FIG. 1 is a diagram showing a configuration of a system including a data storage device according to Embodiment 1 of the present invention. In the figure, reference numeral 1 denotes a network (transfer path) connected to the buses (transfer paths) 2 and 2a by the
[0022]
[0023]
In this embodiment, the data storage processing according to the present invention is realized by the file
[0024]
FIG. 2 is a diagram showing the interrelation of the components of the data storage device according to the first embodiment of the present invention. In the figure,
[0025]
FIG. 3 is a diagram showing a configuration of the volume management table 20 in FIG. In the figure,
[0026]
FIG. 4 is a diagram showing a configuration of the file block management table 30 in FIG.
In the figure,
[0027]
In FIG. 4, the
[0028]
Next, an operation of writing data to the
FIG. 5 is a flowchart showing a file block storage procedure in this embodiment. FIG. 6 is an example of file block storage according to the procedure of FIG. 5. In FIG. 6, # V1 to # V4 are volume names, and B1 to B8 are Block numbers are shown and common elements are shown in the following figures, and the description thereof is omitted. FIG. 6 shows a state where data is stored in all areas of four volumes having a maximum volume number of 24 = 8.
The procedure for storing data from the initial state in which all the volumes in FIG. 6 are free areas will be described with reference to FIG.
[0029]
In the initial state of FIG. 6, the
[0030]
If there is no free area, the process proceeds to block overwrite update processing (step ST4). If there is a free area, the file
[0031]
Subsequently, the
[0032]
Next, a file block read operation will be described.
First, the file control unit 12 passes the read target block number to the file
The
[0033]
Here, an operation of updating the
FIG. 7 is a flowchart showing a procedure for updating the
[0034]
The file
[0035]
Subsequently, the file
[0036]
Subsequently, the file
[0037]
By determining the read priority according to the
[0038]
FIG. 8B is a diagram showing, by an ellipse, the read file blocks that are read when four read requests for the block number B3 are made from the file control unit 12 to the file
[0039]
The file
[0040]
Next, a data write operation including an overwrite process will be described.
FIG. 9 is a flowchart showing a data writing procedure including an overwriting process. FIG. 10A is a diagram in which a file block stored as shown in FIG. 6 is overwritten and updated, and the configuration of FIG. 6 is overwritten according to FIG. The procedure to be performed will be described.
[0041]
The file
[0042]
If there is a free area, the file
[0043]
Subsequently, the file
[0044]
The file
[0045]
As a result, the file blocks with the numbers B1 to B8 become candidates for blocks to be overwritten. As described above, when there are a plurality of blocks in which the number of the file block information 35 is larger than the current multiplicity 33, the block having the
[0046]
Subsequently, the file
[0047]
In FIG. 10A, blocks overwritten by the above procedure are indicated by circles. According to the above procedure, the file blocks are overwritten so that the multiplicity of each file block is maximum and the same blocks are evenly distributed to each volume. FIG. 10B is a diagram showing a case where a file block is overwritten by the above procedure and the multiplicity of all the file blocks becomes 1. In this example, no more file blocks can be stored.
[0048]
FIG. 11A is a diagram showing an ellipse of a file block read from the file block shown in FIG. The read priority is determined according to the
[0049]
The file
[0050]
Subsequently, the file
[0051]
Subsequently, the file
Accordingly, the volume # V3 is selected from the volumes # V1, # V3, and # V4 having the smallest rank total value in accordance with the order of the
[0052]
By determining the read priority according to the
[0053]
FIG. 11B is a diagram showing, by ellipses, file blocks that are read when three read requests for the block number B3 are made. As in the case shown in FIG. 11A, the file
When the
[0054]
FIG. 11C is a diagram showing an ellipse of a read file block in a state where the file block is overwritten and the current multiplicity is 2, and FIG. 11D is a diagram in which the file block is overwritten and all the file blocks are overwritten. It is a figure which shows the read file block in the state in which the multiplicity was set to 2 by an ellipse. 11A, the file
[0055]
As described above, according to the first embodiment, the file
[0056]
When a file block is stored in a free area and there is a block to be written when stored in the entire area, the file
[0057]
In addition, the file block management means 14 issues a warning to the user when the current multiplicity 33 is changed. Therefore, if necessary, the volume is increased by the user, so that the reliability of the required multiplicity can be improved. The effect that the property can be maintained is obtained.
[0058]
Further, the file block management means 14 sets an error when the current multiplicity 33 is changed, so that it is possible to prevent data from being stored at a multiplicity lower than the minimum required multiplicity as a system. Thus, an effect that the reliability of the minimum multiplicity can be guaranteed can be obtained.
[0059]
In reading data from each volume, the file
[0060]
In the second embodiment of the present invention, a file block read operation when a certain volume cannot be accessed due to a disk failure or a network failure will be described. In addition, a description is given of file block duplication for recovery of an inaccessible volume or addition of a new volume.
[0061]
FIG. 12A shows this embodiment. In a case where the volume # V2 fails and becomes inaccessible in a state where the file blocks of the block numbers B1 to B10 are written, data is read from volumes other than the volume # V2. It is a figure which shows a file block with an ellipse. When the
[0062]
The rank updating process for selecting a read file block is performed according to the procedure shown in the flowchart of FIG. 7, and the procedure for determining the rank of FIG. 12A according to FIG. 7 will be described. The file
[0063]
Subsequently, the file
[0064]
FIG. 12B is a diagram showing a read file block by an ellipse when the volume # V2 fails while the file block numbers B1 to B16 are written. In the figure, the read file block is selected according to the
[0065]
Next, an operation of storing data in the added volume will be described.
FIG. 13 is a flowchart showing a procedure for storing data in the added volume. FIG. 14 is a diagram showing a case where the volume # V5 is stored in the volumes # V1 to # V4 in which data is stored in a state where the last block number is B12 and the current multiplicity is 2. FIG. 14 is a diagram illustrating an example in which a file block is added and stored in volume # V5 according to the procedure of FIG. 13; A procedure for storing a file block from a state where all the volumes # V5 are free areas will be described with reference to FIGS.
[0066]
The
[0067]
Subsequently, the file
[0068]
Subsequently, the file
[0069]
If a copy of the file block is stored in the added volume and the free space remains after all the file blocks have the same multiplicity, the file
[0070]
FIG. 14 shows that, after the file blocks of the block numbers B12, B11, B2, and B1 are sequentially stored in the volume # V5 and the multiplicity of all the file blocks becomes 3, the block having the larger block number, that is, the block number B10, This shows a state in which blocks B9, B8, and B7 are stored. FIG. 14 shows, by an ellipse, a read file block that is read when a read request for a file block of block numbers B1 to B12 occurs. The read file block may be selected according to the
[0071]
When the failed volume is recovered, the file block is duplicated and stored in the same procedure as the volume addition procedure.
[0072]
As described above, according to the second embodiment, when a certain volume becomes inaccessible due to a physical disk failure, a network failure, or the like, the file
[0073]
In addition, the file
[0074]
In addition, the file block management unit stores a copy of a file block having a multiplicity smaller than the current multiplicity in the newly added volume, so that it can flexibly cope with a case where a new volume is added. The effect is obtained.
[0075]
【The invention's effect】
As described above, according to the present invention, the volume management table storing the first identifier for identifying each volume constituted by the storage device and the capacity information of each volume, and the volume management table stored in all the volumes A file block management table storing a current multiplicity, which is the minimum number of file block copies, a second identifier for identifying a volume in which each file block is stored, and a reading priority of each file block; File block management means for controlling writing of file blocks to each volume based on the first identifier, capacity information, current multiplicity, and second identifier, and controlling reading of file blocks from each volume in accordance with priority; Configuration, so that all files can be Since the multiplicity of yl block can store so as to maximize the number of disks connected with flexibility in determining, also it has the effect that can maximize the reliability of the volume.
[0076]
According to the present invention, with the above configuration, data can be read out in parallel from different volumes, and the effect of maximizing the overall data transfer efficiency can be obtained.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a system including a data storage device according to a first embodiment of the present invention.
FIG. 2 is a diagram showing a mutual relationship between components of the data storage device according to the first embodiment.
FIG. 3 is a diagram showing an internal configuration of a volume management table in FIG. 2;
FIG. 4 is a diagram showing an internal configuration of a file block management table in FIG. 2;
FIG. 5 is a flowchart showing a file block storage procedure according to the first embodiment.
FIG. 6 is a storage diagram of file blocks according to the first embodiment.
FIG. 7 is a flowchart showing a rank update procedure for selecting a read file block according to the first embodiment.
FIG. 8 is a diagram showing reading of a plurality of file blocks according to the first embodiment.
FIG. 9 is a flowchart showing a file block storage procedure including an overwriting process according to the first embodiment.
FIG. 10 is an overwrite storage diagram of a file block according to the first embodiment.
FIG. 11 is a diagram showing reading of a plurality of blocks in a state where a file block according to the first embodiment is overwritten.
FIG. 12 is a diagram showing a plurality of blocks read when a certain volume becomes inaccessible according to the second embodiment of the present invention;
FIG. 13 is a flowchart showing a copy block storage procedure of a file block when a volume is added in the second embodiment.
FIG. 14 is a diagram showing a copy of a file block when a volume is added in the second embodiment.
FIG. 15 is a storage diagram of a file block applied in the mirroring system.
FIG. 16 is a storage diagram of a file block applied in the mirroring system.
FIG. 17 is a storage diagram of a file block applied in the mirroring system.
[Explanation of symbols]
1 network, 2, 2a, 2b bus, 3a, 3b network coupling device, 3c bus coupling device, 4a, 4b disk controller, 5a I / O processor, 6a, 7a, 6b, 7b magnetic disk device, 8, 8a, 8b Volume, 10 main storage device, 11 volume management unit, 12 file control unit, 13 operation system, 14 file block management unit, 15 central processing unit, 16 device driver, 20 volume management table, 21 volume information, 22 volume name, 23 Type, 24 maximum block number, 25 current block number, 26 active flag, 30 file block management table, 31 file block management information, 32 maximum multiplicity, 33 current multiplicity, 34 last block number, 35 file block information, 36 volume Name, 37 block number, 38 time stamp, 39 rank, # D1, # D2, # D3, # D4 physical disk, # V1, # V2, # V3, # V4, # V5 volume, B1-B12 file block .
Claims (10)
前記記憶デバイスから構成される各ボリュームを識別するための第1の識別子と前記各ボリュームの容量情報とを記憶するボリューム管理テーブルと、
前記ボリュームに格納するファイルブロックの複製数の最小値である現多重度、前記各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および前記各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブルと、
前記第1の識別子、前記容量情報、前記現多重度および前記第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うとともに、前記優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うファイルブロック管理手段と
を備えたことを特徴とするデータ格納装置。In a data storage device that divides data into file blocks and stores the data in a storage device connected via a transfer path,
A volume management table for storing a first identifier for identifying each volume composed of the storage device and capacity information of each volume;
The current multiplicity, which is the minimum value of the number of copies of the file blocks stored in the volume, the second identifier for identifying the volume in which each of the file blocks is to be stored, and the read priority of each of the file blocks are stored. A file block management table,
Based on the first identifier, the capacity information, the current multiplicity, and the second identifier, write control of file blocks to each volume is performed, and read control of file blocks from each volume is controlled according to the priority. A data storage device comprising:
前記記憶デバイスから構成される各ボリュームを識別するための第1の識別子と前記各ボリュームの容量情報とを記憶するボリューム管理テーブルと、
前記ボリュームに格納するファイルブロックの複製数の最小値である現多重度、前記各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および前記各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブルとを備えたデータ格納装置のデータ格納方法において、
前記第1の識別子、前記容量情報、前記現多重度および前記第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うと共に、前記優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うことを特徴とするデータ格納方法。An apparatus for dividing data into file blocks and storing the data in a storage device connected via a transfer path,
A volume management table for storing a first identifier for identifying each volume composed of the storage device and capacity information of each volume;
The current multiplicity, which is the minimum value of the number of copies of the file blocks stored in the volume, the second identifier for identifying the volume in which each of the file blocks is to be stored, and the read priority of each of the file blocks are stored. In a data storage method of a data storage device having a file block management table,
Based on the first identifier, the capacity information, the current multiplicity, and the second identifier, write control of a file block to each volume is performed, and read control of a file block from each volume is performed according to the priority. A data storage method characterized by performing.
記憶デバイスから構成される各ボリュームを識別するための第1の識別子と前記各ボリュームの容量情報とを記憶するボリューム管理テーブル、
前記ボリュームに格納するファイルブロックの複製数の最小値である現多重度、前記各ファイルブロックを格納すべきボリュームを識別するための第2の識別子および前記各ファイルブロックの読み出しの優先度を記憶するファイルブロック管理テーブル、
前記第1の識別子、前記容量情報、前記現多重度および前記第2の識別子に基づいて各ボリュームへのファイルブロックの書き込み制御を行うとともに、前記優先度に従って各ボリュームからのファイルブロックの読み出し制御を行うファイルブロック管理手段
としてコンピュータを機能させるプログラム。When data is divided into file blocks and stored in a storage device connected via a transfer path,
A volume management table for storing a first identifier for identifying each volume composed of a storage device and capacity information of each volume;
The current multiplicity, which is the minimum value of the number of copies of the file blocks stored in the volume, the second identifier for identifying the volume in which each of the file blocks is to be stored, and the read priority of each of the file blocks are stored. File block management table,
Based on the first identifier, the capacity information, the current multiplicity, and the second identifier, write control of file blocks to each volume is performed, and read control of file blocks from each volume is controlled according to the priority. A program that causes a computer to function as a file block management unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002200244A JP2004046352A (en) | 2002-07-09 | 2002-07-09 | Data storage device and method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002200244A JP2004046352A (en) | 2002-07-09 | 2002-07-09 | Data storage device and method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004046352A true JP2004046352A (en) | 2004-02-12 |
Family
ID=31707164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002200244A Pending JP2004046352A (en) | 2002-07-09 | 2002-07-09 | Data storage device and method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004046352A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006252336A (en) * | 2005-03-11 | 2006-09-21 | Mitsubishi Electric Corp | Inter-device data transfer apparatus, inter-device data transfer method and program |
JP2007122167A (en) * | 2005-10-25 | 2007-05-17 | Fujitsu Ltd | Data transfer program, data transfer method, and data transfer unit |
JP2007193886A (en) * | 2006-01-18 | 2007-08-02 | Fujitsu Ltd | Disk device, data writing control method, and command control method |
JP2008204206A (en) * | 2007-02-20 | 2008-09-04 | Nec Corp | Data distribution and storage system, data distribution method, device to be used for this and its program |
US7552278B2 (en) | 2005-06-24 | 2009-06-23 | Fujitsu Limited | Disk array access dynamic control device and method |
JP2010238124A (en) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | Data management program, data management device and data managing method |
JP2011186852A (en) * | 2010-03-09 | 2011-09-22 | Nippon Telegr & Teleph Corp <Ntt> | File dividing device, method and program |
WO2014119269A1 (en) * | 2013-02-04 | 2014-08-07 | 日本電気株式会社 | Data set multiplicity change device, server, and data set multiplicity change method |
-
2002
- 2002-07-09 JP JP2002200244A patent/JP2004046352A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006252336A (en) * | 2005-03-11 | 2006-09-21 | Mitsubishi Electric Corp | Inter-device data transfer apparatus, inter-device data transfer method and program |
US7552278B2 (en) | 2005-06-24 | 2009-06-23 | Fujitsu Limited | Disk array access dynamic control device and method |
JP2007122167A (en) * | 2005-10-25 | 2007-05-17 | Fujitsu Ltd | Data transfer program, data transfer method, and data transfer unit |
JP2007193886A (en) * | 2006-01-18 | 2007-08-02 | Fujitsu Ltd | Disk device, data writing control method, and command control method |
JP2008204206A (en) * | 2007-02-20 | 2008-09-04 | Nec Corp | Data distribution and storage system, data distribution method, device to be used for this and its program |
JP2010238124A (en) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | Data management program, data management device and data managing method |
JP2011186852A (en) * | 2010-03-09 | 2011-09-22 | Nippon Telegr & Teleph Corp <Ntt> | File dividing device, method and program |
WO2014119269A1 (en) * | 2013-02-04 | 2014-08-07 | 日本電気株式会社 | Data set multiplicity change device, server, and data set multiplicity change method |
JPWO2014119269A1 (en) * | 2013-02-04 | 2017-01-26 | 日本電気株式会社 | Data set multiplicity changing device, server, and data set multiplicity changing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4412989B2 (en) | Data processing system having a plurality of storage systems | |
JP4124348B2 (en) | Storage system | |
EP0405926B1 (en) | Method and apparatus for managing a shadow set of storage media | |
EP0768599B1 (en) | On-line disk array reconfiguration | |
US7496718B2 (en) | Data transfer and access control between disk array systems | |
US6381674B2 (en) | Method and apparatus for providing centralized intelligent cache between multiple data controlling elements | |
US7913042B2 (en) | Virtual storage system control apparatus, virtual storage system control program and virtual storage system control method | |
CN100378672C (en) | Using file system information in raid data reconstruction and migration | |
US7152184B2 (en) | Storage device, backup method and computer program code of this storage device | |
US6018790A (en) | Data access from the one of multiple redundant out-of-sync disks with the calculated shortest access time | |
JP4115060B2 (en) | Data recovery method for information processing system and disk subsystem | |
JP5007350B2 (en) | Apparatus and method for hardware-based file system | |
US7120767B2 (en) | Snapshot creating method and apparatus | |
US6961818B1 (en) | Method, system and computer program product for managing data in a mirrored cache using an access balancing technique | |
US6584473B2 (en) | Information storage system | |
JP5257672B2 (en) | Computer system and method for managing journal hierarchy | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
US20040123068A1 (en) | Computer systems, disk systems, and method for controlling disk cache | |
US6260109B1 (en) | Method and apparatus for providing logical devices spanning several physical volumes | |
JP2003513355A5 (en) | ||
JPH03505643A (en) | File systems for multiple storage classes | |
US20050246576A1 (en) | Redundant system utilizing remote disk mirroring technique, and initialization method for remote disk mirroring for in the system | |
US11880566B2 (en) | Storage system and control method of storage system including a storage control unit that performs a data amount reduction processing and an accelerator | |
JP2004046352A (en) | Data storage device and method, and program | |
JP7421078B2 (en) | Information processing equipment, information processing system, and data relocation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050627 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20071030 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071030 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080701 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080812 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080829 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090421 |