説明

データ書き込み装置

【課題】既存データのハッシュ値と更新データのハッシュ値と比較結果に応じて、既存データを更新するか否かを制御する計算機において、ハッシュ値生成手段やハッシュ値比較手段に障害が発生しても、データの整合性を保証し、処理を継続できるようにする。
【解決手段】識別情報生成手段11は、書き込みデータの内容に応じた識別情報(ハッシュ値等)を生成する。比較手段12は、生成された書き込みデータの識別情報と、記憶装置13に記録されている既存データの内の上記書き込みデータと対応する既存データの識別情報とを比較する。障害フラグ設定手段13は、識別情報生成手段11と比較手段12との内の少なくとも1つが障害となった後に入力されたデータに関連付けて障害フラグを設定する。書き込み手段は、書き込みデータに関連する障害フラグが設定されている場合は、書き込みデータと対応する既存データを書き込みデータで置き換える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを記憶装置に書き込む際、データのハッシュ値など、データの内容に応じた識別情報も記憶装置に書き込むデータ書き込み装置に関する。
【背景技術】
【0002】
データを記憶装置に書き込む際、そのハッシュ値などの識別情報も併せて記憶装置に書き込んでおき、データのハッシュ値を比較することにより、データの内容が一致しているか否かを判定するということが行われている(例えば、特許文献1参照)。この特許文献1に記載されている技術では、データを記憶装置に書き込む際、そのハッシュ値を生成し、データに設定(付加)しておく。そして、重複データの排除時に、データに付加されているハッシュ値を比較し、同一のハッシュ値が付加されているデータは重複データであると判定し、所定の排除処理を行う。排除処理としては、例えば、重複する2つのデータの内の一方のデータを削除するといった処理や、重複する2つのデータの内の一方の内容を他方のデータへのリンクに書き換えるといった処理を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−251725号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されているデータ書き込み装置のように、データのハッシュ値を比較することによりデータの内容が同一であるか否かを判定する機能を持ったデータ書き込み装置では、データのハッシュ値を生成するハッシュ値生成手段や、データのハッシュ値を比較するハッシュ値比較手段に障害が発生した場合、ハッシュ値の比較結果が信頼できなくなるため、処理を継続することが困難になるという問題がある。例えば、記憶装置上の既存データのハッシュ値と、既存データに対する更新データのハッシュ値とを比較し、比較不一致の場合のみ、既存データを更新データで置き換えるようにしている場合には、実際には既存データと更新データとが異なっているにもかかわらず、ハッシュ値の比較結果が一致してしまい、データの置き換えが行われず、データの整合性が保たれないという事態が発生しまうことがある。
【0005】
[発明の目的]
そこで、本発明の目的は、ハッシュ値生成手段やハッシュ値比較手段に障害が発生した場合、処理を継続することが困難になるという課題を解決したデータ書き込み装置を提供することにある。
【課題を解決するための手段】
【0006】
本発明に係るデータ書き込み装置は、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段と、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段と、
前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段と、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段とを備える。
【0007】
本発明にかかるデータ書き込み方法は、
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータが実行するデータ書き込み方法であって、
前記識別情報生成手段が、書き込みデータの内容に応じた識別情報を生成し、
前記比較手段が、前記識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較し、
前記障害フラグ設定手段が、前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定し、
前記書き込み手段が、前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える。
【0008】
本発明にかかるプログラムは、
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータをデータ書き込み装置として機能させるためのプログラムであって、
前記コンピュータを、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段、
前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段として機能させる。
【発明の効果】
【0009】
本発明によれば、ハッシュ値などの識別情報を生成する識別情報生成手段や、識別情報を比較する比較手段に障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。
【図面の簡単な説明】
【0010】
【図1】本発明にかかるデータ書き込み装置を利用したシステムの一例を示すブロック図である。
【図2】本発明にかかるデータ書き込み装置の第1の実施の形態の構成例を示すブロック図である。
【図3】ファイルシステム管理記憶手段101で管理されているデータの一例を示す図である。
【図4】ハッシュ長変換手段104の構成例を示すブロック図である。
【図5】ハッシュインデックスの一例を示す図である。
【図6】書き込み手段107の処理例を示すフローチャートである。
【図7】本発明にかかるデータ書き込み装置の第2の実施の形態の構成例を示すブロック図である。
【図8】ファイルシステム管理記憶手段101aで管理しているデータの一例を示す図である。
【図9】書き込み手段107aの処理例を示すフローチャートである。
【図10】本発明にかかるデータ書き込み装置の第3の実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0011】
次に図面を参照して本発明の実施の形態について詳細に説明する。
【0012】
[本発明の第1の実施の形態]
図1を参照すると、本発明の第1の実施の形態にかかるデータ書き込み装置1を利用したシステムの一例が示されている。このシステムにおいてデータ書き込み装置1は、汎用バックアップサーバ3を介して業務サーバ4から更新データが送られてくると、そのハッシュ値を求め、既に記憶装置群2に格納されている、上記更新データに対応する既存データ(データ名が同一のデータ)のハッシュ値と比較する。そして、ハッシュ値が一致した場合には、既存データと更新データとは内容が同一であると判断し、処理を終了する。これに対して、ハッシュ値が不一致の場合は、既存データを更新データに置き換えると共に、ハッシュ値を新たに求めたハッシュ値に置き換える。記憶装置群2は、速度が異なる複数の記憶装置から構成されている。記憶装置群2を構成する記憶装置を速度が速い順に並べると、キャッシュメモリ21、メモリ22、SSD(Solid State Drive)23、HDD(Hard Disk Drive)24、テープ装置25となる。
【0013】
図2を参照すると、データ書き込み装置1は、ファイルシステム管理記憶手段101と、データ分割出力手段102と、ハッシュ値生成手段(Hash値生成手段)103と、ハッシュ長変換手段104と、ハッシュ値格納メモリ階層指定手段105と、ハッシュ値比較手段106と、書き込み手段107と、強制非重複指示手段108と、リード制御ブロック(READ制御ブロック)109とを備えている。
【0014】
データ分割出力手段102は、汎用バックアップサーバ3を介して業務サーバ4から送られてくる書き込みデータを、ファイルやブロックといった最小処理単位に分割する機能を有する。
【0015】
ハッシュ値生成手段103は、SHA-1,MD5アルゴニズムなどを利用して、データ分割出力手段102から出力されたデータに対するハッシュ値を生成し、生成したハッシュ値をハッシュ長変換手段104に対して出力する機能を有する。また、ハッシュ値生成手段103は、自手段103に障害が発生したとき、強制非重複指示手段108に対してエラー信号を出力する機能を有する。より具体的には、ハッシュ値生成手段103は、データ分割出力手段102から出力されたデータに対するハッシュ値を生成する第1および第2のハッシュ値生成回路と、第1および第2のハッシュ値生成回路から出力されたハッシュ値が異なるものであった場合にエラー信号を出力するエラー検出回路を備えている。なお、ハッシュ長変換手段104に対しては、第1および第2のハッシュ値生成回路の内の何れか一方で生成されたハッシュ値を出力する。
【0016】
ファイルシステム管理記憶手段101内のメモリ(図示せず)には、一般的なファイルシステム、ボリュームグループなどといったあるまとまりのデータ群毎に、そのデータ群に含まれるデータの各種メタ情報が記録されている。メタ情報には、データ群に含まれている各データ(ファイルなど)をアクセスするための情報や、各データに関連するハッシュ値などをアクセスするための情報が含まれている。更に、ファイルシステム管理記憶手段101には、データ群毎に、そのデータ群に属するデータの優先度が記録されている。この優先度は、後述するように、ハッシュ長変換手段104でハッシュ値の長さを変更する場合や、ハッシュ値格納メモリ階層指定手段105でハッシュ値を記録するメモリ階層を決定する場合に利用される。なお、優先度はユーザが設定するものであり、書き込み処理時間を短くしたいデータ群に属するデータほど、高い優先度を与える。
【0017】
図3を参照すると、ファイルシステム管理記憶手段101が、自手段101内のメモリ(図示せず)に記録して管理しているデータの一例が示されている。この例は、ファイルシステム識別子が「File System A」「File System B」「File System C」…のファイルシステムに属するファイル(データ)の優先度は、それぞれ「2」「3」「4」…であることを示している。なお、本実施の形態では、小さな値ほど、優先度が高いとする。
【0018】
また、ファイルシステム管理記憶手段101は、汎用バックアップサーバ3を介して業務サーバ4から書き込みデータが送られてくると、上記書き込みデータに付加されているファイルシステム識別子と関連付けて記録されている優先度をハッシュ長変換手段104およびハッシュ値格納メモリ階層指定手段105に対して出力する機能を有する。例えば、ファイルシステム管理記憶手段101に図3に示す情報が記録され、書き込みデータに付加されていたファイルシステム識別子が「File system A」であったとすると、優先度「2」を出力し、「File
System C」であったとすると、優先度「4」を出力する。
【0019】
ハッシュ長変換手段104は、ハッシュ値生成手段103から渡されたハッシュ値を、ファイルシステム管理記憶手段101から出力されている優先度に応じてそのまま或いは長さを変更(短くする)して出力する機能を有する。ここで、ハッシュ長変換手段104は、優先度が高いときほど、変換後のハッシュ値の長さが短くなるようにする。例えば、優先度が「1」「2」「3」「4」…の場合は、変換後のハッシュ値を「5byte」「10byte」「15byte」「20byte」…とする。また、ハッシュ長変換手段104は、自手段104に障害が発生したとき、強制非重複指示手段108に対してエラー信号を出力する機能を有する。
【0020】
図4を参照すると、ハッシュ長変換手段104は、第1および第2の変換回路1041,1042と、エラー検出回路1043とを備えている。第1の変換回路1041は、ファイルシステム管理記憶手段101から出力される優先度に応じて、ハッシュ値生成手段103から出力されるハッシュ値の上位「5byte」「10byte」「15byte」「20byte」の内の何れかを選択して出力するセレクタにより実現される。第2の変換回路1042も第1の変換手段と同様の構成を備えている。エラー検出回路1043は、第1の変換回路1041から出力されるハッシュ値と、第2の変換回路1042から出力されるハッシュ値とが異なるものである場合、エラー信号を出力する。また、第1、第2の変換回路1041,1042から出力されるハッシュ値の内、第1の変換回路1041から出力されているハッシュ値がハッシュ値比較手段106および書き込み手段107に供給されている。
【0021】
ハッシュ値格納メモリ階層指定手段105は、ファイルシステム管理記憶手段101から出力される優先度に基づいて、ハッシュ値の格納先にするハッシュインデックス(Hash Index)を、どの記憶装置上のものにするのかを決定し、書き込み手段107に対して決定した記憶装置を示す情報を渡す機能を有する。なお、ハッシュ値格納メモリ階層指定手段105は、ファイルシステム管理記憶手段101から出力されている優先度が高い時ほど、上位階層の記憶装置(速度が速い記憶装置)上のハッシュインデックスを選択する。
【0022】
図5にハッシュインデックスの一例を示す。同図に示すようにハッシュインデックスには、データ識別子であるファイル名に関連付けて、該当するファイルのハッシュ値(ハッシュ長変換手段104から出力されたハッシュ値)と、障害フラグとが記録されている。障害フラグは、初期値は“0”であり、ハッシュ値生成手段103と、ハッシュ長変換手段104と、ハッシュ値比較手段106との内の少なくとも1つに障害が発生した場合、“1”となる。
【0023】
ハッシュ値比較手段106は、ハッシュ長変換手段104から出力されたハッシュ値(更新データのハッシュ値、つまり、データ分割出力手段102から出力されているデータのハッシュ値)と、リード制御ブロック109から出力される値(ファイルシステム管理記憶手段101から出力されている優先度に応じた階層の記憶装置も記録されている既存データのハッシュ値、または、所定値)とを比較し、比較結果を出力する機能を有する。また、ハッシュ値比較手段106は、自手段106に障害が発生した場合、エラー信号を強制非重複指示手段108に対して出力する機能を有する。より具体的には、ハッシュ値比較手段106は、更新データのハッシュ値と既存データのハッシュ値とを比較する第1および第2の比較回路と、第1および第2の比較回路の比較結果が異なるものである場合、エラー信号を出力するエラー検出回路とから構成される。なお、書き込み手段107に対しては、第1、第2の比較回路の内の、一方の比較結果が出力される。
【0024】
強制非重複指示手段108は、ハッシュ値生成手段103、ハッシュ長変換手段104およびハッシュ値比較手段106の内の少なくとも1つからエラー信号が出力された場合、書き込み手段107に対して出力する強制非重複指示信号を“1”とし、その状態を保持する。また、リード制御ブロック109から出力された障害フラグ(データ分割出力手段102から出力されているファイルについての障害フラグ)の値が“1”の場合も、強制非重複信号を“1”とし、その状態を保持する。
【0025】
書き込み手段107は、次のような機能(1)〜(4)を有する。
【0026】
(1)データ分割出力手段102から出力されているデータが更新データであり、強制非重複指示手段108から出力されている強制非重複指示信号が“0”であり、且つ、ハッシュ値比較手段106の比較結果が比較一致の場合は、更新データと記憶装置2群上の既存データとが一致すると判断し、処理を終了する。なお、強制非重複指示手段108から出力される強制非重複指示信号は、手段103,104,106が正常動作している間は“0”となり、上記各手段103,104,106の何れかに障害が発生した後は、“1”となる。
【0027】
(2) データ分割出力手段102から出力されているデータが更新データであり、強制非重複指示手段108から出力されている強制非重複指示信号が“0”であり、且つ、ハッシュ値比較手段106の比較結果が比較不一致の場合は、更新データと既存データとが異なっていると判断し、データ分割出力手段102から出力されている更新データで記憶装置群2上の既存データを更新し、同時に記憶装置群2上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で書き換える。
【0028】
(3) データ分割出力手段102から出力されているデータが更新データであり、且つ、強制非重複指示手段108から出力されている強制非重複指示信号が“1”の場合は、ハッシュ値比較手段106の比較結果に信頼性がないと判断し、データ分割出力手段102から出力されている更新データで記憶装置群2上の既存データを更新し、同時に記憶装置群2上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で書き換える。更に、強制非重複指示信号が“1”の場合は、該当するハッシュインデックス中の該当する障害フラグを“1”とする。
【0029】
(4)データ分割出力手段102から出力されているデータが新規データ(初めて記憶装置群2に書き込まれるデータ)の場合は、データを記憶装置群2に書き込むと共に、該当するハッシュインデックスに上記データ用のエントリを作成し、そこにハッシュ長変換手段104から出力されているハッシュ値及び障害フラグ(初期値“0”)を書き込む機能。
【0030】
リード制御ブロック109は、データ分割出力手段102から出力されているデータに対応するハッシュ値および障害フラグを記憶装置群2上のハッシュインデックスから読み込み、読み込んだハッシュ値および障害フラグの値をそれぞれハッシュ値比較手段106および強制非重複指示手段108に出力する機能を有する。なお、データ分割出力手段102から出力されているデータに対応するハッシュ値および障害フラグが記憶装置群2上のハッシュインデックスに記録されていない場合(データが新規データの場合)は、ハッシュ値比較手段106に対しては、予め定められている値を出力し、強制非重複指示手段108に対しては、強制非重複指示信号の値と同一の値を、障害フラグの値として出力する。
【0031】
上述した機能を有するデータ書き込み装置1は、コンピュータにより実現可能であり、コンピュータにより実現する場合は、例えば、次にようにする。コンピュータをファイルシステム管理記憶手段101、データ分割出力手段102、ハッシュ値生成手段103、ハッシュ長変換手段104、ハッシュ値格納メモリ階層指定手段105、ハッシュ値比較手段106、書き込み手段107、強制非重複指示手段108、および、リード制御ブロック109として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に上記各手段101〜109を実現する。
【0032】
[第1の実施の形態の動作]
次に、本実施の形態の動作について詳細に説明する。
【0033】
業務サーバ4は、データ(以下ではファイル群とする)を記憶装置群2にバックアップする場合、バックアップするファイル群と、それらのファイル群を管理しているファイルシステムのファイルシステム識別子と含んだバックアップ要求を汎用バックアップサーバ3へ送信する。汎用バックアップサーバ3は、業務サーバ4から送られてきたバックアップ要求をデータ書き込み装置1へ送信する。
【0034】
これにより、データ書き込み装置1内のファイルシステム管理記憶手段101は、バックアップ要求中のファイルシステム識別子と関連付けて管理している優先度を出力する。例えば、ファイルシステム管理記憶手段101の記憶内容が図3に示すものであり、バックアップ要求中のファイルシステム識別子がFile System Aである場合は、優先度「2」を出力することになる。
【0035】
また、データ分割出力手段102は、バックアップ要求に含まれているファイル群を処理単位であるファイルに分割して順次出力する。本実施の形態では、処理単位をファイルとするが、ファイルを更に一定長に分割したブロックを処理単位としても構わない。データ分割出力手段102から出力されたファイルは、ハッシュ値生成手段103および書き込み手段107に入力される。
【0036】
また、リード制御ブロック109は、データ分割出力手段102から出力されているファイルのハッシュ値および障害フラグを、ファイルシステム管理記憶手段101から出力されている優先度に応じた記憶装置上のハッシュインデックスから入力し、ハッシュ値および障害フラグをそれぞれハッシュ値比較手段106および強制非重複指示手段108に対して出力する。
【0037】
強制非重複指示手段108は、ハッシュ値生成手段103、ハッシュ長変換手段104、およびハッシュ値比較手段106の内の少なくとも1つがエラー信号を出力した場合と、リード制御ブロック109から出力された障害フラグが“1”の場合に、書き込み手段107に対して出力する強制非重複指示信号を“1”とし、その状態を保持する。
【0038】
ハッシュ値生成手段103は、SHA-1、MD5などの汎用のHashアルゴニズムを利用して入力されたファイルのハッシュ値を算出し、ハッシュ長変換手段104に対して出力する。
【0039】
ハッシュ長変換手段104は、ハッシュ値生成手段103で生成されたハッシュ値を、ファイルシステム管理記憶手段101から出力されている優先度に応じてそのまま或いは長さを短くして出力する。ハッシュ長変換手段104から出力されるハッシュ値の長さは、優先度が高いファイルほど短くなる。ここで、優先度が高いものほどハッシュ値の長さを短くするのは、ハッシュ値の書き込み時間を優先度が高いファイルほど短くすることができるからである。
【0040】
ハッシュ値比較手段106は、ハッシュ長変換手段104から出力されたハッシュ値(更新ファイルのハッシュ値)と、リード制御ブロック109から出力される値(ファイルシステム管理記憶手段101から出力されている優先度に応じた階層の記憶装置も記録されている既存データのハッシュ値、または、所定値)とを比較し、書き込み手段107に対して比較結果を出力する。
【0041】
書き込み手段107は、データ分割出力手段102からファイルが出力される毎に、図6のフローチャートに示す処理を行う。先ず、データ分割出力手段102から出力されたファイルが新規ファイル(初めて、記憶装置群2に書き込まれるファイル)であるか否かを判定する(ステップS61)。この判定は、例えば、上記ファイルのファイル名がハッシュインデックスに記録されているか否かに基づいて行う。
【0042】
ファイルが新規ファイルではなく、既存ファイルに対する更新ファイルである場合(ステップS61がNo)は、書き込み手段107は、強制非重複指示手段108から出力されている強制非重複信号が“1”である否かを判定する(ステップS62)。強制非重複信号が“0”の場合(ステップS62がNo)は、更にハッシュ値比較手段106の比較結果が比較一致を示しているか否かを判定する(ステップS63)。そして、比較結果が比較一致を示している場合(ステップS63がYes)は、更新ファイルと既存ファイルは同一であると判断し、その処理を終了する。これに対して、比較結果が比較不一致を示している場合(ステップS63がNo)は、既存ファイルを更新ファイルで更新すると共に、更新ファイルの優先度に応じた記憶装置上のハッシュインデックスに記録されている該当するハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で置き換え(ステップS64)、その後、処理を終了する。
【0043】
また、強制非重複指示手段108から出力されている強制非重複指示信号が“1”の場合(ステップS62がYes)は、記憶装置群2上のファイル及びハッシュ値を更新すると共に、該当するハッシュインデックス中の該当する障害フラグを“1”にし(ステップS65)、その後、処理を終了する。強制非重複指示信号は、ハッシュ値生成手段103、ハッシュ長変換手段104、或いは、ハッシュ値比較手段106に障害が発生した後、“1”となる。つまり、強制非重複指示信号が“1”の場合は、ハッシュ値比較手段106の比較結果は信頼性が低いものとなり、比較結果が一致していたとしても、ファイルの内容が異なる場合がある。そこで、本実施の形態では、強制非重複指示信号が“1”の場合は、ハッシュ値比較手段106の比較結果にかかわらず、常に、ファイルを更新することにより、ファイルの整合性を保証できるようにしている。
【0044】
また、データ分割出力手段102から出力されたファイルが新規ファイルである場合(ステップS61がYes)は、該当するハッシュインデックスに上記新規ファイル用のエントリを作成する(ステップS66)。その際、障害フラグには、初期値として“0”を設定する。更に、書き込み手段107は、データ分割出力手段102から出力されている新規ファイルを記憶装置群2上に書き込むと共に、上記ファイル用のエントリに、ハッシュ長変換手段104から出力されているハッシュ値を書き込む(ステップS67)。
【0045】
その後、書き込み手段107は、強制非重複指示手段108から出力されている強制非重複指示信号が“1”であるか否かを判定する(ステップS68)。そして、強制非重複指示信号が“0”の場合(ステップS68がNo)は、処理を終了し、“1”の場合は(ステップS68がYes)は、新規ファイル用に作成したエントリ中の障害フラグを“1”に変更し(ステップS69)、その後、その処理を終了する。なお、図6に示したフローチャートでは、更新ファイルと既存ファイルとのハッシュ値が一致した場合(ステップS63がYes)、処理を終了するようにしたが、ハッシュ値が一致した場合には、実際に更新ファイルと既存ファイルとの内容を比較し、内容が一致した場合には処理終了とし、内容が不一致の場合には、ステップS64と同様の処理を行い、ファイル及びハッシュ値を更新するようにしても良い。
【0046】
ここで、ハッシュ値を利用した重複データの削除処理について説明する。図示を省略した排除手段は、所定のタイミング(ユーザによって指示されたタイミングや、所定時間間隔など)で各階層の記憶装置に設けられているハッシュインデックス毎に、ハッシュ値が同一になっているファイルが存在するか否かを調べる。ハッシュ値が同一のファイルが存在する場合は、そのファイル対は、内容が重複しているので、一方のファイルを削除する、或いは、一方のファイルの中身を他方のファイルへのリンクに書き換えるなどといった重複データの削除処理を行う。なお、障害フラグが“1”になっているファイルについては、ハッシュ値が信頼できないものであるので、ハッシュ値が一致しているか否かにかかわらずファイルの内容を比較し、内容が一致している場合は、上記した重複データの削除処理と同様の処理を行う。
【0047】
[第1の実施の形態の効果]
本実施の形態によれば、ハッシュ値生成手段103や、ハッシュ長変換手段104や、ハッシュ値比較手段106などに障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。その理由は、上記各手段103,104,106の何れかに障害が発生した後は障害フラグを立て、障害フラグが立っている場合は、書き込みデータ(更新データ)で既存データを更新するようにしているからである。
【0048】
また、本実施の形態によれば、データの書き込み時に、データのハッシュ値(識別情報)も書き込むことが必要なデータ書き込み装置において、書き込み処理を短時間で完了させることが望ましいデータの書き込み処理時間を短くすることができるという効果を得ることができる。その理由は、速度が異なる複数の記憶装置から構成される記憶装置群にデータのハッシュ値を書き込む際、データの優先度に応じた記憶装置にハッシュ値を書き込むようにしており、優先度の高いデータのハッシュ値の書き込み時間を短くすることができるからである。また、データの優先度に応じた記憶装置にハッシュ値が記録されているので、優先度の高いデータの読み出し時間を短いものとすることができる。
【0049】
更に、本実施の形態では、データの優先度に応じて記憶装置に書き込むハッシュ値の長さを変更しているので、優先度の高いデータの読み書きを更に短時間で行うことが可能になる。
【0050】
[本発明の第2の実施の形態]
次に、本発明の第2の実施の形態について説明する。図7を参照すると、本発明の第2の実施の形態にかかるデータ書き込み装置1aは、ファイルシステム管理記憶手段101の代わりにファイルシステム管理記憶手段101aを備えている点、書き込み手段107の代わりに書き込み手段107aを備えている点、および、強制非重複指示手段108の代わりに障害フラグ設定手段110を備えている点で、図2に示した第1の実施の形態のデータ書き込み装置1と相違している。以下の説明では、第1の実施の形態との相違点について説明する。
【0051】
ファイルシステム管理記憶手段101aは、ファイルシステム管理記憶手段101が管理しているデータに加え、ファイルシステム毎に、そのファイルシステムに属するファイルのファイル名と、各ファイルについての障害フラグとが記録されている。図8に、ファイルシステム管理記憶手段101aが、自手段101a内の高速なメモリ(図示せず)に記録して管理している情報の一例を示す。この例は、ファイルシステム識別子が「File System A」のファイルシステムには、ファイル名「FSA-1,FSA-2,FSA-3,…」のファイルが存在し、各ファイルに対する障害フラグが「“0”、“1”、“0”、…」であることを示している。なお、障害フラグの初期値は、“0”であるとする。即ち、障害フラグ“0”は、障害が発生していないことを示し、障害フラグ“1”は障害が発生したことを示す。
【0052】
また、ファイルシステム管理記憶手段101aは、ファイルシステム管理記憶手段101が備えている機能に加え、管理している障害フラグの内、データ分割出力手段102が出力しているファイルに対応する障害フラグの値(“0”か“1”)を書き込み手段107aに対して出力する機能や、障害フラグ設定手段110から出力されている障害フラグ設定指示信号が“1”の間、データ分割出力手段102からファイルが出力される毎に、そのファイルに関連付けて管理している障害フラグを“1”にする機能を有する。更に、ファイルシステム管理記憶手段101aは、データ分割出力手段102から出力されたファイルについての障害フラグを管理していない場合(上記ファイルが新規ファイルの場合)は、障害フラグ設定手段110から出力されている障害フラグ設定指示信号の値と同一の値を、上記ファイルの障害フラグの値として出力すると共に、上記ファイルの障害フラグに関する情報を、該当するファイルシステム識別子に関連付けて記録する機能を有する。
【0053】
書き込み手段107aは、下記の機能(A)〜(D)を有する。
【0054】
(A)データ分割出力手段102から出力されているデータが更新データであり、ファイルシステム管理記憶手段101aから出力されている障害フラグの値が“0”であり、且つ、ハッシュ値比較手段106の比較結果が比較一致の場合は、更新データと記憶装置2群上の既存データとが一致すると判断し、処理を終了する。
【0055】
(B) データ分割出力手段102から出力されているデータが更新データであり、ファイルシステム管理記憶手段101aから出力されている障害フラグの値が“0”であり、且つ、ハッシュ値比較手段106の比較結果が比較不一致の場合は、更新データと既存データとが異なっていると判断し、データ分割出力手段102から出力されている更新データで記憶装置群2上の既存データを更新し、同時に記憶装置群2上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で書き換える。
【0056】
(C) データ分割出力手段102から出力されているデータが更新データであり、ファイルシステム管理記憶手段101aから出力されている障害フラグの値が“1”の場合は、ハッシュ値比較手段106の比較結果に信頼性がないと判断し、データ分割出力手段102から出力されている更新データで記憶装置群2上の既存データを更新し、同時に記憶装置群2上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で書き換える。
【0057】
(D)データ分割出力手段102から出力されているデータが新規データ(初めて記憶装置群2に書き込まれるデータ)の場合は、データを記憶装置群2に書き込むと共に、該当するハッシュインデックスに上記データ用のエントリを作成し、そこにハッシュ長変換手段104から出力されているハッシュ値を書き込む機能。
【0058】
障害フラグ設定手段110は、ハッシュ値生成手段103と、ハッシュ長変換手段104と、ハッシュ値比較手段106との内の少なくとも1個からエラー信号が出力されることにより、ファイルシステム管理記憶手段101aに対する障害フラグ設定指示信号を“1”とし、その状態を保持する機能を有する。
【0059】
なお、本実施の形態にかかるデータ書き込み装置1aも第1の実施の形態のデータ書き込み装置1と同様にコンピュータにより実現できる。具体的には、コンピュータをデータ書き込み装置1aとして機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、ファイルシステム管理記憶手段101a、データ分割出力手段102、ハッシュ値生成手段103、ハッシュ長変換手段104と、ハッシュ値格納メモリ階層指定手段105、ハッシュ値比較手段106、書き込み手段107a、リード制御ブロック109、及び、障害フラグ設定手段110を実現する。
【0060】
[第2の実施の形態の動作]
次に、本実施の形態の動作について説明する。
【0061】
データ書き込み装置1aには、汎用バックアップサーバ3を介して業務サーバ4からバックアップ要求が送られてくる。バックアップ要求には、バックアップするファイル群およびファイル群を管理しているファイルシステムのファイルシステム識別子が含まれている。
【0062】
データ書き込み装置1a内のデータ分割出力手段102は、バックアップ要求中のファイル群を、処理単位であるファイルに分割して出力する。また、リード制御ブロック109は、データ分割出力手段102から出力されているファイルのハッシュ値を記憶装置群2上のハッシュインデックスから読み込み、ハッシュ値比較手段106に対して出力する。なお、ファイルが新規ファイルの場合は、ハッシュ値が記録されていないので、予め定められている任意の値を出力する。
【0063】
ファイルシステム管理記憶手段101aは、バックアップ要求中のファイルシステム識別子に関連付けて管理している優先度をハッシュ長変換手段104およびハッシュ値格納メモリ階層指定手段105に対して出力する。また、ファイルシステム管理記憶手段101aは、管理している障害フラグの内、データ分割出力手段102から出力されたファイルの障害フラグの値を書き込み手段107aに対して出力する。なお、データ分割出力手段102から出力されたファイルが新規ファイルである場合は、障害フラグ設定手段110から出力されている障害フラグ設定指示信号の値と同一の値を、上記ファイルの障害フラグの値として出力すると共に、上記ファイルの障害フラグに関する情報(ファイル名と障害フラグの値)を、該当するファイルシステム識別子に関連付けて記録する。
【0064】
ハッシュ値生成手段103は、データ分割出力手段102から出力されたファイルのハッシュ値を生成してハッシュ長変換手段104に供給し、ハッシュ長変換手段104は、ハッシュ値の長さをファイルシステム管理記憶手段101aから出力されている優先度に応じたものに変換してハッシュ値比較手段106に出力する。
【0065】
ハッシュ値比較手段106は、ハッシュ長変換手段104から出力されているハッシュ値と、リード制御ブロック109から出力されているハッシュ値とを比較し、比較結果を書き込み手段107aに対して出力する。
【0066】
障害フラグ設定手段110は、ハッシュ値生成手段103と、ハッシュ長変換手段104と、ハッシュ値比較手段106との内の少なくとも1つがエラー信号を出力したならば、ファイルシステム管理記憶手段101aに対する障害フラグ設定指示信号を“1”とし、その状態を保持する。
【0067】
ファイルシステム管理記憶手段101aは、障害フラグ設定指示信号が“1”の間は、データ分割出力手段102からファイルが出力される毎に、上記ファイルの障害フラグを“1”とする。なお、データ分割出力手段102から出力されたファイルについてのエントリが存在しない場合は、上記ファイルについてのエントリを作成し、そこにファイル名と障害フラグ「“1”」とを記録する。
【0068】
データ書き込み手段107aは、データ分割出力手段102からファイルが出力される毎に、図9のフローチャートに示す処理を行う。
【0069】
先ず、書き込み手段107aは、データ分割出力手段102から出力されたファイルが新規ファイルであるか否かを判定する(ステップS91)。そして、新規ファイルではなく、既存ファイルに対する更新ファイルである場合(ステップS91がNo)は、ファイルシステム管理記憶手段101aから出力されている障害フラグの値が“1”であるか否かを判定する(ステップS92)。障害フラグが“0”の場合(ステップS92がNo)は、更にハッシュ値比較手段106の比較結果が比較一致であるか否かを判定する(ステップS93)。そして、比較一致である場合(ステップS93がYes)は、更新ファイルと既存ファイルとが同一であると判断し、その処理を終了する。これに対して、比較不一致の場合(ステップS93がNo)は、既存ファイルを更新ファイルで置き換えると共に、更新ファイルの優先度に応じた記憶装置上のハッシュインデックスに記録されている上記ファイルのハッシュ値を、ハッシュ長変換手段104から出力されているハッシュ値で置き換え(ステップS94)、その後、処理を終了する。
【0070】
また、ファイルシステム管理記憶手段101aから出力されている障害フラグの値が“1”の場合(ステップS92がYes)は、記憶装置群2上の既存データ及びハッシュ値を更新し(ステップS95)、その後、処理を終了する。障害フラグは、ハッシュ値生成手段103、ハッシュ長変換手段104、或いは、ハッシュ値比較手段106に障害が発生した後、“1”となる。つまり、障害フラグが“1”の場合は、ハッシュ値比較手段106の比較結果は信頼性が低く、比較結果が一致したとしても、ファイル内湯が異なる場合がある。そこで、本実施の形態では、障害フラグが“1”の場合は、ハッシュ値比較手段106に比較結果にかかわらず、常にファイルを更新することにより、ファイルの整合性を保証している。
【0071】
また、データ分割出力手段102aから出力されたファイルが新規ファイルである場合(ステップS91がYes)は、該当するハッシュインデックスに上記新規ファイル用のエントリを作成する(ステップS96)。次に、書き込み手段107aは、記憶装置群2に上記ファイルを書き込むと共に、上記ファイル用のエントリにファイル名およびハッシュ長変換手段104から出力されているハッシュ値を書き込み(ステップS97)、その後、処理を終了する。なお、図9に示したフローチャートでは、更新ファイルと既存ファイルとのハッシュ値が一致した場合(ステップS93がYes)、処理を終了するようにしたが、ハッシュ値が一致した場合には、実際に更新ファイルと既存ファイルとの内容を比較し、内容が一致した場合には処理終了とし、内容が不一致の場合には、ステップS94と同様の処理を行い、ファイル及びハッシュ値を更新するようにしても良い。
【0072】
[第2の実施の形態の効果]
本実施の形態によれば、第1の実施の形態で得られる効果に加え、障害フラグの記録処理に要する時間を短くすることができるという効果を得ることができる。その理由は、記憶装置群2を構成する記憶装置以外の高速なメモリに障害フラグを記録しているからである。
【0073】
[本発明の第3の実施の形態]
図10を参照すると、本発明にかかるデータ書き込み装置の第3の実施の形態は、識別情報生成手段11と、比較手段12と、障害フラグ設定手段13と、書き込み手段14と、記憶装置15とを備えている。
【0074】
識別情報生成手段11は、書き込みデータの内容に応じた識別情報であって、内容が異なる書き込みデータに対しては異なる値となり、内容が同一の書き込みデータに対しては同一の値となる識別情報を生成する。識別情報としては、例えば、書き込みデータのハッシュ値を利用することができる。
【0075】
比較手段12は、識別情報生成手段で生成された、書き込みデータの識別情報と、記憶装置15に記録されている既存データの内の上記書き込みデータと対応する既存データの識別情報とを比較する。
【0076】
障害フラグ設定手段13は、識別情報生成手段11と比較手段12との内の少なくとも1つに障害が発生した後に入力されたデータに関連付けて障害フラグを設定する。
【0077】
書き込み手段14は、書き込みデータに関連する障害フラグが設定されている場合は、書き込みデータと対応する既存データを書き込みデータで置き換える。
【0078】
[第3の実施の形態の効果]
本実施の形態によれば、識別情報生成手段11や比較手段12に障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。その理由は、上記各手段11,12の何れかに障害が発生した後は障害フラグを立て、障害フラグが立っている場合は、比較手段12の比較結果にかかわらず、書き込みデータ(更新データ)で既存データを更新するようにしているからである。
【産業上の利用可能性】
【0079】
本発明は、データを書き込む際、データのハッシュ値も併せて記録しておき、データの内容が一致しているか否かをハッシュ値に基づいて判断する計算機システムに適用可能である。
【符号の説明】
【0080】
1,1a データ書き込み装置
101,101a ファイルシステム管理記憶手段
102,102a データ分割出力手段
103 ハッシュ値生成手段
104 ハッシュ長変換手段
105 ハッシュ値格納メモリ階層指定手段
106 ハッシュ値比較手段
108 強制非重複指示手段
109 リード制御ブロック
110 障害フラグ設定手段
2 記憶装置群
21 キャッシュメモリ
22 メモリ
23 SSD
24 HDD
25 テープ装置
3 汎用バックアップサーバ
4 業務サーバ
11 識別情報生成手段
12 比較手段
13 障害フラグ設定手段
14 書き込み手段
15 記憶装置

【特許請求の範囲】
【請求項1】
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段と、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段と、
前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段と、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段とを備えることを特徴とするデータ書き込み装置。
【請求項2】
請求項1記載のデータ書き込み装置において、
前記書き込み手段は、前記書き込みデータに関連する障害フラグが設定されておらず、且つ、前記書き込みデータに対する前記比較手段の比較結果が比較一致を示している場合は、処理を終了し、前記書き込みデータに関連する障害フラグが設定されておらず、且つ、前記書き込みデータに対する前記比較手段の比較結果が比較不一致を示している場合は、前記書き込みデータに対応する前記既存データを前記書き込みデータで置き換えると共に、前記書き込みデータに関連付けて記録されていた識別情報を前記識別情報生成手段が生成した前記書き込みデータの識別情報で置き換えることを特徴とするデータ書き込み装置。
【請求項3】
請求項1または2記載のデータ書き込み装置において、
前記記憶装置の代わりに速度が異なる複数の記憶装置から構成される記憶装置群を備え、且つ、
前記書き込み手段は、前記書き込みデータの識別情報を前記記憶装置群に書き込む際、前記記憶装置群を構成する複数の記憶装置の内の、前記書き込みデータの優先度に応じた記憶装置に書き込むことを特徴とするデータ書き込み装置。
【請求項4】
請求項3記載のデータ書き込み装置において、
前記書き込み手段は、優先度が高い書き込みデータの識別情報ほど、速度が速い記憶装置に書き込むことを特徴とするデータ書き込み装置。
【請求項5】
請求項3または4記載のデータ書き込み装置において、
前記識別情報生成手段は、前記書き込みデータの優先度に応じた長さの識別情報を生成することを特徴とするデータ書き込み装置。
【請求項6】
請求項5記載のデータ書き込み装置において、
前記識別情報生成手段は、優先度が高いデータほど、長さの短い識別情報を生成することを特徴とするデータ書き込み装置。
【請求項7】
請求項1乃至6の何れか1項に記載のデータ書き込み装置において、
前記書き込みデータの識別情報は、前記書き込みデータのハッシュ値であることを特徴とするデータ書き込み装置。
【請求項8】
請求項3乃至7の何れか1項に記載のデータ書き込み装置において、
前記障害フラグは、前記記憶装置群を構成する記憶装置以外の、高速なメモリに記録されることを特徴とするデータ書き込み装置。
【請求項9】
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータが実行するデータ書き込み方法であって、
前記識別情報生成手段が、書き込みデータの内容に応じた識別情報を生成し、
前記比較手段が、前記識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較し、
前記障害フラグ設定手段が、前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定し、
前記書き込み手段が、前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換えることを特徴とするデータ書き込み装置。
【請求項10】
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータをデータ書き込み装置として機能させるためのプログラムであって、
前記コンピュータを、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段、
前記識別情報生成手段と前記比較手段との内の少なくとも1つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate