JP2004046352A - Data storage device and method, and program - Google Patents

Data storage device and method, and program Download PDF

Info

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
Application number
JP2002200244A
Other languages
Japanese (ja)
Inventor
Hidehiro Shimizu
清水 英弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2002200244A priority Critical patent/JP2004046352A/en
Publication of JP2004046352A publication Critical patent/JP2004046352A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data storage device that can flexibly vary data multiplicity in compliance with data volume and disk capacity and can maximize disk reliability and a data transfer rate. <P>SOLUTION: With a storing block number set at a final block number plus one, whether there are free areas in a number of volumes equal to current multiplicity 33 or not is determined, and if there are such free areas, duplicates are stored in file blocks of multiplicity equal to the current multiplicity. If there are not such free areas, the current multiplicity is decremented by one, and areas already storing data are overwritten for storage. About the written volumes, a current block count 25 is updated, file block information 35 is added and the final block number 34 is updated. <P>COPYRIGHT: (C)2004,JPO

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 network coupling devices 3a and 3b. Reference numeral 2 denotes a bus (transfer path) connecting the central processing unit 15 and the main storage device 10, which is connected to a bus (transfer path) 2b via a bus coupling device 3c for connecting a plurality of buses. . The bus coupling device 3c is, for example, a bridge that relays between different buses and networks. Reference numerals 6a and 7a denote magnetic disk devices (storage devices), which are connected to the bus 2a by a disk controller 4a and constitute one volume 8a. Similarly, magnetic disks 6b and 7b are also connected to the bus 2b by the disk controller 4b and constitute one volume 8b. Reference numeral 5a denotes an I / O processor connected to the bus 2a. The volume 8a corresponds to a network drive and is controlled by the I / O processor 5a. The volume 8b corresponds to a local drive. Here, the volume indicates a storage unit composed of one or more magnetic disk devices managed through an operating system.
[0022]
Reference numeral 10 denotes a main storage device, which stores a volume management unit 11, a file control unit 12, an operating system 13 for controlling the entire system, a file block management unit (file block management unit) 14, and the like. Reference numeral 15 denotes a central processing unit (CPU) which executes an operating system 13 or the like to control each device of the entire system.
[0023]
In this embodiment, the data storage processing according to the present invention is realized by the file block management unit 14 stored in the main storage device 10. The file block management unit 14 may be mounted on the main storage device 10 as software programmed separately from the operating system 13 to make a file control request to the operating system 13, File control may be performed integrally with the system 13.
[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, reference numeral 8 denotes a plurality of volumes composed of magnetic disk devices, 12 denotes a file control unit for controlling the writing and reading of data to and from the volume 8 via an operating system, and 16 denotes data between the volume 8 and the operating system 13. The device driver 20 that relays transmission and reception issues a request from the volume management unit 11 to the operating system to obtain information such as the volume name (first identifier) of each volume and the volume type indicating the distinction between network drive / local drive. And a volume management table 30 generated based on these pieces of information. Reference numeral 30 denotes a volume name (second identifier) in which each file block is stored by the file block management unit 14 with respect to the operating system 13, a multiplicity of each file block, etc. of It issues a resulting request, indicating the file block management table generated based on this information.
[0025]
FIG. 3 is a diagram showing a configuration of the volume management table 20 in FIG. In the figure, reference numeral 21 denotes volume information, which includes a volume name (first identifier) 22, a type 23, a maximum block number (capacity information) 24, a current block number 25, and an active flag 26. The volume information 21 is stored in the volume management table 20 by the number of volumes. The volume name 22 is an identifier of a volume identified by the operating system 13. The type 23 is a type of a volume, and indicates a distinction between a network drive, a local drive, and the like. The maximum block number 24 represents the maximum number of file blocks that can be stored in the volume, and is obtained by dividing the volume capacity by one file block size. The current block number 25 is the number of file blocks stored in each volume, and is 0 in the initial state. The active flag 26 indicates whether or not the drive is used as part of a redundant configuration, or whether the drive is offline due to an error or the like.
[0026]
FIG. 4 is a diagram showing a configuration of the file block management table 30 in FIG.
In the figure, reference numeral 31 denotes file block management information, which comprises a maximum multiplicity 32, a current multiplicity 33, and a last block number 34. Reference numeral 35 denotes file block information, which includes a volume name (second identifier) 36, a block number 37, a time stamp 38, and a rank (priority) 39. The file block management table 30 is composed of file block management information 31 and file block information 35. One file block management information 31 is stored in the file block management table 30, and the file block information 35 is stored by the number of file blocks. You. Here, the file block is a numerical sequence obtained by dividing data to be stored in the storage device by the same capacity unit, for example, a numerical sequence that is the minimum unit of data to be stored in the storage device.
[0027]
In FIG. 4, the maximum multiplicity 32 is the maximum value of the number of copies of the stored file block, the current multiplicity 33 is the minimum value of the number of copies of the stored file block, and the last block number 34 is the block number among the block numbers in all volumes. Indicates the last number. The volume name 36 indicates the identifier of the volume in which the file block is stored. The block number 37 indicates a serial number assigned to a file block stored in each volume, and means that file blocks having the same block number 37 have the same data content. The time stamp 38 indicates the date and time when the file block was stored in the volume, and the rank 39 indicates the priority when reading (reading) the file block having the same block number.
[0028]
Next, an operation of writing data to the volume 8 will be described.
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 block management unit 14 sets the last block number 34 to 0, and sets the maximum multiplicity 32 and the current multiplicity 33 to 4 equal to the number of volumes. First, the file block management unit 14 acquires the final block number 34 = 0 from the file block management table 30 (step ST1), and sets the acquired (final block number 34) + 1 = B1 as the block number to be stored (step ST2). ). Subsequently, the file block management unit 14 determines whether a free area exists in a number of volumes equal to the current multiplicity of 33 (step ST3). For example, the determination can be made by the file block management unit 14 acquiring the maximum number of blocks 24 from the volume management table 20 via the volume management unit 11 and comparing this with the block number to be stored obtained in step ST2. If the block number to be stored is smaller than the maximum number of all blocks 24, a free area exists in a number of volumes equal to the current multiplicity of 33. In this case, since the maximum number of all blocks 24 is 8 and the block number to be stored is 1, it can be determined that there is a free area.
[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 block management unit 14 acquires the name of the volume in which the free area exists via the volume management unit 11 and sets the multiplicity of the write data to these volumes to be equal to the current multiplicity 33. A request to copy and write data is made to the operating system 13 (step ST5). The volume management unit 11 may acquire a volume in which the current block number 25 is smaller than the maximum block number 24 as a volume having a free area. The operating system 13 stores data in a free area of the volume according to a request from the file block management unit 14. In FIG. 6, one data is stored in each of the volumes # V1 to # V4 such that the multiplicity is 4.
[0031]
Subsequently, the volume management unit 11 updates the current block number 25 of each of the volume names # V1 to # V4 of the volume information 21 on the volume management table 20 to 1 (step ST6). The file block management unit 14 adds the file block information 35 of the block number B1 (step ST7), and updates the last block number 34 of the file block management information 31 to B1 (step ST8). Subsequently, when storing the next data, the process starts from step ST1 of the flowchart again and stores the next data. FIG. 6 shows a state where data is stored by repeating the above procedure, and the multiplicity of all file blocks = 4 and the final block number = B8.
[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 block management unit 14. The file block management unit 14 refers to the rank 39 of the number obtained from the file block management table 30, obtains the volume name of the file block information 35 having the highest priority, and returns it to the file control unit 12. Subsequently, the file control unit 12 requests the operating system 13 to read the read target block stored in the volume having the acquired volume name.
The operating system 13 sends a file read request to the device driver according to the request from the file control unit 12. The device driver acquires the read data from the volume and returns it to the operating system 13.
[0033]
Here, an operation of updating the rank 39 will be described.
FIG. 7 is a flowchart showing a procedure for updating the rank 39 of the file block information 35 on the file block management table 30. FIG. 8A is a diagram showing a read file block selected according to the rank 39 as an ellipse. Description will be made with reference to these figures.
[0034]
The file block management unit 14 initializes all ranks 39 of the file block information 35 on the file block management table 30 (step ST11), and first obtains the file block information 35 of the block number B1 as a rank update target file block. (Step ST12). Subsequently, the file block management unit 14 refers to the volume name of the acquired file block information 35 and calculates the total value of the rank 39 of the file block information 35 having the same volume name (step ST13). In FIG. 8A, the volume names of the file block information 35 of the block number B1 are # V1 to # V4, and the ranks 39 corresponding to all the volume names are all initialized. The total value is all 0.
[0035]
Subsequently, the file block management unit 14 compares the total value of the ranks 39 of the respective volumes, and updates the rank 39 of the rank update target block number 37 corresponding to the volume having the smallest total value to, for example, 1 (step ST14). ). When there are a plurality of ranks 39 having the smallest total value of the ranks 39, the ranks 39 may be updated according to the order of the volume information 21 on the volume management table 20. In FIG. 8A, the volume # V1 is selected according to the order of the volume information 21 out of # V1 to # V4 having the smallest total value of the rank 39, and the file block information 35 of the block number B1 stored in the volume # V1 is selected. Is updated to 1.
[0036]
Subsequently, the file block management unit 14 similarly updates the rank 39 for the file block information 35 of the block number B2. Since the rank 39 of the block number B1 of the volume # V1 has been updated to 1, the total rank of the volume # V1 is 1, and the total rank of the volumes # V2 to # V4 is 0. Therefore, the file block management unit 14 selects the volume # V2 according to the order of the volume information 21 among the volumes # V2 to # V4 having the smallest total rank value, and updates the rank 39 of the block number B2 of the volume # V2 to 1. I do. Steps ST12 to ST14 are similarly repeated for the file blocks of block numbers B3 to B8 (step ST15).
[0037]
By determining the read priority according to the rank 39 as described above, file blocks can be read from different volumes in parallel, and the overall data transfer speed and reliability are improved.
[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 block management unit 14. As in the case of FIG. 8A, the file block management unit 14 may update the rank 39 of each file block and determine the read priority of the file block according to the rank 39. When the ranks 39 are the same, the priority may be determined according to the order of the volume information 21 on the volume management table 20. When the file block management unit 14 selects a read file block according to the priority, when a read request for the same file block occurs, the file blocks with the same block number in different volumes can be read simultaneously. As a result, the data transfer waiting time can be eliminated and the throughput can be improved.
[0039]
The file block management unit 14 may perform the rank updating process immediately before reading the file block, or may perform it after the writing is completed. Further, after setting the rank 39 for the block numbers 37 of B1 to B8 according to the above procedure, the file block management unit 14 again targets the block numbers 37 corresponding to the unset ranks 39 in step ST12 of the flowchart of FIG. And step ST14 may be repeated to set the rank 39. In this case, the initial value is set to 4, and the value is decremented each time the setting is repeated thereafter. Thus, different ranks 39 are set for different file block information 35 having the same block number.
[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 block management unit 14 acquires the last block number 34 = B8 from the file block management information 31 stored in the file block management table 30 (step ST16), and stores the acquired (last block number 34) + 1 = B9. (Step ST17). Subsequently, the volume management unit 11 acquires a volume name in which an empty area exists, and passes the acquired name to the file block management unit 14. In the case of FIG. 6, since the current block number is 25 = 8 and the maximum block number is 24 = 8 in all the volumes, it can be seen that there is no free area.
[0042]
If there is a free area, the file block management unit 14 makes a request to the operating system 13 to write data to the free area, and the operating system 13 stores the data in accordance with the request of the file block management unit 14. The data is duplicated for 33 times and stored (step ST18). The volume management unit 11 updates the current block number 25 of the volume information 21 of the volume in which the data is written by adding 1 (step ST19).
[0043]
Subsequently, the file block management unit 14 determines whether or not there is an unwritten block, that is, whether or not the number obtained by subtracting the number of volumes written from the current multiplicity 33 is 0 (step ST20). Does not exist, the number of remaining writings of B9 is four. Subsequently, the file block management unit 14 acquires the volume in which the stored file block = B9 is not written, that is, the block number 37 of the file block information 35 of the volume names # V1 to # V4 (step ST21). The number of the file block information 35 of the number is counted for each block number (step ST22). The block numbers of the file block information 35 of the volume names # V1 to # V4 are B1 to B8, and the number of the file block information 35 of all the numbers is four. Here, the block number 37 of the volume to which the file block is not written is obtained so that the same block is distributed and written to a plurality of volumes.
[0044]
The file block management unit 14 compares the number of file block information 35 with the current multiplicity 33 and selects a block having a larger number of file block information 35 as a block to be overwritten (step ST23). Since the weight is 33 = 4, there is no block to be overwritten. In this case, the current multiplicity is reduced by 1 (step ST23). At this time, the file block management unit 14 may request the operating system 13 to issue a warning to the user or request an error.
[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 smallest block number 37 may be selected as the overwritten block. The volume to be stored may be determined according to the order of the volume information 21 on the volume management table 20. Therefore, the file block management unit 14 selects the block with the block number B1 of the volume # V1 as the block to be overwritten. The process of step ST23 is repeated until the number of blocks to be overwritten reaches the current multiplicity 33, that is, the number obtained by subtracting the number of volumes already written in step ST18 by the current multiplicity 33 (step ST24). Since the block B1 is selected as the block to be overwritten, the blocks having the file block information 35 larger than the current multiplicity are B2 to B8, and the block B2 of the volume # V2 is selected as the next block to be overwritten. . Similarly, block B3 of volume # V3 is selected as a block to be overwritten.
[0046]
Subsequently, the file block management unit 14 determines whether a block to be overwritten has been selected (step ST25), and issues a request to the operating system 13 to write to each volume (step ST26). The operating system 13 overwrites the storage target block. Subsequently, the file block management unit 14 updates the file block management table with the block numbers 37 = B1, B2, and B3 of the overwritten block in the file block information 35 and the overwritten and stored block number = B9 (step ST27). , The last block number 34 is updated to B9 (step ST28). When there is no remaining block to be written in step ST20, and when a block to be overwritten is selected in step ST25, steps ST27 and ST28 are performed.
[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 rank 39 of the file block information 35 of the file block management table 30, and the rank 39 is set according to the procedure shown in FIG. The procedure for setting the rank 39 will be described with reference to FIGS. 7 and 11A.
[0049]
The file block management unit 14 initializes all the ranks 39 of the file block information 35 of the file block management table 30 (step ST11), and acquires the file block information 35 of the rank update target block number B1 (step ST12). Subsequently, the total of the ranks 39 of the file block information 35 having the same volume name is calculated with reference to the volume name of the obtained file block information 35 (step ST13). In this case, the volume names of the acquired file block information 35 are # V2 to # V4, and the total value of the rank 39 corresponding to each volume name is all 0.
[0050]
Subsequently, the file block management unit 14 compares the total value of the ranks 39 of the respective volumes, and updates the rank 39 of the rank update target block number 37 corresponding to the volume name having the smallest total value to, for example, 1 (step). ST14). When there are a plurality of ranks 39 having the smallest total value of the ranks 39, the ranks 39 may be updated according to the order of the volume information 21 on the volume management table 20. In this case, the volume # V2 is selected in accordance with the order of the volume information 21 from # V2 to # V4 having the smallest total value of the rank 39, and the rank 39 of the file block information 35 of the block number B1 stored in the volume # V2 is changed. Update to 1.
[0051]
Subsequently, the file block management unit 14 similarly updates the rank 39 for the file block information 35 of the block number B2. Since the rank 39 of the block number B1 of the volume # V2 has been updated to 1, the total rank value of the volume # V2 is 1, and the total rank value of the volumes # V1, # V3, and # V4 is 0.
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 volume information 21, and the rank 39 of the block number B2 of the volume # V3 is updated to 1. Steps ST12 to ST14 are similarly repeated for the file blocks of block numbers B3 to B8 (step ST15).
[0052]
By determining the read priority according to the rank 39 updated by the above procedure, file blocks can be read from different volumes in parallel, and the overall data transfer speed and reliability are improved.
[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 block management unit 14 may update the rank 39 of each file block and determine the read priority of the file block according to the rank 39.
When the ranks 39 are the same, the priority may be determined according to the order of the volume information 21 on the volume management table 20. By selecting the read file block according to the priority, when a read request for the same file block is issued from the file control unit 12, the file blocks of the same block number in different volumes can be read simultaneously. As a result, the data transfer waiting time can be eliminated and the throughput can be improved.
[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 block management unit 14 may update the rank 39 of each file block and determine the read priority of the file block according to the rank 39, as in the case shown in FIG. When the ranks 39 are the same, the priority may be determined according to the order of the volume information 21 on the volume management table 20.
[0055]
As described above, according to the first embodiment, the file block management unit 14 determines whether or not a volume equal to the current multiplicity 33 has an empty area. Since the file blocks are duplicated and stored so that the weight becomes equal to the current multiplicity of 33, the file blocks can be stored so that the multiplicity of all the file blocks is maximized according to the number of volumes. The effect of being able to flexibly determine the number of disks and maximizing the reliability of the volume is obtained.
[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 block management unit 14 reduces the current multiplicity 33 to the area where data is already stored. Since the data is overwritten, it is possible to avoid that data cannot be stored due to lack of free space in the volume, and the effect of changing the capacity of the volume according to the data size can be obtained.
[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 block management unit 14 refers to the rank 39 of the file block management table 30 so that the file block having the highest priority is read, so that the file blocks are read in parallel from different volumes. And the effect of maximizing the overall data transfer efficiency can be obtained.
[0060]
Embodiment 2 FIG.
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 operation system 13 detects an error of the device driver or the designation of the user, the volume management unit 11 sets the active flag 26 of the volume information 21 and can determine whether or not the volume is inaccessible by referring to this. Since the file blocks stored in the inaccessible volume cannot be accessed, the file block management unit 14 selects the read file block again.
[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 block management unit 14 initializes all ranks 39 of the file block information 35 and acquires the file block information 35 of the block number B1. Subsequently, the file block management unit 14 calculates the total value of the rank 39 of the file block information 35 having the same volume name as the volume names # V3 and # V4 of the obtained file block information 35, and both of them become 0. Therefore, the file block management unit 14 updates the rank 39 of the file block information 35 of the block number B1 stored in the volume # V3 to 1.
[0063]
Subsequently, the file block management unit 14 acquires the file block information 35 of the block number B2. When calculating the total value of the rank 39 of the file block information 35 having the same volume name as the volume names # V1, # V3, and # V4 of the acquired file block information 35, the file block management unit 14 calculates 0, 1, 0, respectively. It becomes. Therefore, the file block management unit 14 selects the volume # V1 according to the volume information 21 on the volume management table 20 with the smallest total rank value, and selects the block number B2 of the volume # V1 as a read block. Similarly, the rank 39 is updated for the file blocks of the block numbers B3 to B10.
[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 rank 39 on the file block management table 30, and the rank 39 is updated by the file block management unit 14 according to the procedure shown in FIG. 7, as in the case of FIG.
[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 volume management unit 11 adds the volume information 21 of the added volume # V5 to the volume management table 20 (Step ST27). Subsequently, the file block management unit 14 acquires the file block information 35 from the file block management table 30 (step ST28), counts the number of the file block information 35 having the same block number (step ST29), and obtains the block numbers B1 and B2. , B11, and B12, the number of file block information 35 is 2, and the number of block numbers B3 to B10 of the file block information 35 is 3.
[0067]
Subsequently, the file block management unit 14 determines whether or not the number of the file block information 35 is larger than the current multiplicity 33 in descending order from the block number B12 (step ST30). Blocks in which the number of file block information 35 is equal to or less than the current multiplicity of 33 are stored in # V5. Since the number of the file block information 35 of the block number B12 is 2 and equal to or less than the current multiplicity, the file block management unit 14 requests the operating system 13 to copy and write the data of the block number B12. The operating system 13 stores the data of the block number B12 in the volume # V5 according to the request of the file block management unit 14 (Step ST31).
[0068]
Subsequently, the file block management unit 14 adds the file block information 35 of the block number B12 to the file block management table 30 (Step ST32). The file block management unit 14 performs the processing of steps ST28 to ST32 for all block numbers 37 (step ST33). If the number of the file block information 35 counted in step ST30 is larger than the current multiplicity 33, the processes of steps ST28 to ST32 are performed for the next block number. The file block management unit 14 may perform the processing of steps ST28 to ST32 in ascending order of the block numbers or in descending order. If performed in descending order, a copy of the new file block will be stored preferentially.
[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 block management unit 14 increases the current multiplicity by one and copies the file block. May be created and stored in a copy of a file block that does not store the. Alternatively, a new file block to be added in the future may be stored in the empty area. According to the above procedure, the multiplicity of all the file blocks can be made the same and maximum.
[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 rank 39 of the volume information 21 on the volume management table 20. When the ranks 39 are the same, the priority may be determined according to the order of the volume information 21 on the volume management table 20. The rank update processing may be performed at the time of reading a file block, or may be performed after file block replication storage at the time of adding a volume.
[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 block management unit 14 deletes the file stored in the accessible volume. Since the copy of the block is read, an effect of preventing a read error can be obtained.
[0073]
In addition, the file block management unit 14 refers to the rank 39 of the file block management table 30 to read the file block stored in the volume with the highest priority. , Data can be read out in parallel, and the effect of maximizing the overall data transfer efficiency can be obtained.
[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記載のデータ格納装置。The file block management means determines whether or not free space exists in the number of volumes equal to the current multiplicity, and if so, copies the file block so that the multiplicity of the file block becomes equal to the current multiplicity. The data storage device according to claim 1, wherein the data is stored. ファイルブロック管理手段は、すべてのボリュームに空き領域が存在しない場合、格納すべきファイルブロックを現多重度より多重度の高いファイルブロックが格納されている領域に上書きすることを特徴とする請求項1記載のデータ格納装置。The file block management means overwrites a file block to be stored in an area storing a file block having a higher multiplicity than the current multiplicity when all volumes have no free area. Data storage device as described. ファイルブロック管理手段は、各ボリュームからデータを読み出すにあたり、ファイルブロック管理テーブルの優先度を参照し、優先度が最も高いファイルブロックから読み出すことを特徴とする請求項1記載のデータ格納装置。2. The data storage device according to claim 1, wherein the file block management means refers to the priority of the file block management table when reading data from each volume, and reads the data from the file block having the highest priority. ファイルブロック管理手段は、一または二以上のボリュームがアクセス不能となった場合、アクセス不能となったボリュームに格納されていたファイルブロックと同じ番号のファイルブロックが格納されているアクセス可能なボリュームから当該ファイルブロックの複製を読み出すことを特徴とする請求項1記載のデータ格納装置。When one or more volumes become inaccessible, the file block management means deletes the file from the accessible volume in which the file block having the same number as the file block stored in the inaccessible volume is stored. 2. The data storage device according to claim 1, wherein a copy of the file block is read. ファイルブロック管理手段は、新たに追加されたボリュームに現多重度よりも低い多重度のファイルブロックを格納することを特徴とする請求項1記載のデータ格納装置。2. The data storage device according to claim 1, wherein the file block management means stores a file block having a lower multiplicity than the current multiplicity in the newly added volume. ファイルブロック管理手段は、現多重度が変更された場合にユーザに対して警告を発することを特徴とする請求項2記載のデータ格納装置。3. The data storage device according to claim 2, wherein the file block management unit issues a warning to the user when the current multiplicity is changed. ファイルブロック管理手段は、現多重度が変更された場合にエラーとすることを特徴とする請求項2記載のデータ格納装置。3. The data storage device according to claim 2, wherein the file block management unit generates an error when the current multiplicity is changed. 転送経路を介して接続する記憶デバイスに、データをファイルブロックごとに分割して格納する装置であって、
前記記憶デバイスから構成される各ボリュームを識別するための第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.
JP2002200244A 2002-07-09 2002-07-09 Data storage device and method, and program Pending JP2004046352A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (9)

* Cited by examiner, † Cited by third party
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