(57)【要約】【課題】既存データのハッシュ値と更新データのハッシュ値と比較結果に応じて、既存データを更新するか否かを制御する計算機において、ハッシュ値生成手段やハッシュ値比較手段に障害が発生しても、データの整合性を保証し、処理を継続できるようにする。【解決手段】識別情報生成手段11は、書き込みデータの内容に応じた識別情報（ハッシュ値等）を生成する。比較手段12は、生成された書き込みデータの識別情報と、記憶装置13に記録されている既存データの内の上記書き込みデータと対応する既存データの識別情報とを比較する。障害フラグ設定手段13は、識別情報生成手段11と比較手段12との内の少なくとも１つが障害となった後に入力されたデータに関連付けて障害フラグを設定する。書き込み手段は、書き込みデータに関連する障害フラグが設定されている場合は、書き込みデータと対応する既存データを書き込みデータで置き換える。【選択図】図１０
2013058134.tif 000002
【特許請求の範囲】
【請求項１】
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段と、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段と、
前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段と、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段とを備えることを特徴とするデータ書き込み装置。
【請求項２】
請求項１記載のデータ書き込み装置において、
前記書き込み手段は、前記書き込みデータに関連する障害フラグが設定されておらず、且つ、前記書き込みデータに対する前記比較手段の比較結果が比較一致を示している場合は、処理を終了し、前記書き込みデータに関連する障害フラグが設定されておらず、且つ、前記書き込みデータに対する前記比較手段の比較結果が比較不一致を示している場合は、前記書き込みデータに対応する前記既存データを前記書き込みデータで置き換えると共に、前記書き込みデータに関連付けて記録されていた識別情報を前記識別情報生成手段が生成した前記書き込みデータの識別情報で置き換えることを特徴とするデータ書き込み装置。
【請求項３】
請求項１または２記載のデータ書き込み装置において、
前記記憶装置の代わりに速度が異なる複数の記憶装置から構成される記憶装置群を備え、且つ、
前記書き込み手段は、前記書き込みデータの識別情報を前記記憶装置群に書き込む際、前記記憶装置群を構成する複数の記憶装置の内の、前記書き込みデータの優先度に応じた記憶装置に書き込むことを特徴とするデータ書き込み装置。
【請求項４】
請求項３記載のデータ書き込み装置において、
前記書き込み手段は、優先度が高い書き込みデータの識別情報ほど、速度が速い記憶装置に書き込むことを特徴とするデータ書き込み装置。
【請求項５】
請求項３または４記載のデータ書き込み装置において、
前記識別情報生成手段は、前記書き込みデータの優先度に応じた長さの識別情報を生成することを特徴とするデータ書き込み装置。
【請求項６】
請求項５記載のデータ書き込み装置において、
前記識別情報生成手段は、優先度が高いデータほど、長さの短い識別情報を生成することを特徴とするデータ書き込み装置。
【請求項７】
請求項１乃至６の何れか１項に記載のデータ書き込み装置において、
前記書き込みデータの識別情報は、前記書き込みデータのハッシュ値であることを特徴とするデータ書き込み装置。
【請求項８】
請求項３乃至７の何れか１項に記載のデータ書き込み装置において、
前記障害フラグは、前記記憶装置群を構成する記憶装置以外の、高速なメモリに記録されることを特徴とするデータ書き込み装置。
【請求項９】
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータが実行するデータ書き込み方法であって、
前記識別情報生成手段が、書き込みデータの内容に応じた識別情報を生成し、
前記比較手段が、前記識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較し、
前記障害フラグ設定手段が、前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定し、
前記書き込み手段が、前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換えることを特徴とするデータ書き込み装置。
【請求項１０】
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータをデータ書き込み装置として機能させるためのプログラムであって、
前記コンピュータを、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段、
前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶装置に書き込む際、データのハッシュ値など、データの内容に応じた識別情報も記憶装置に書き込むデータ書き込み装置に関する。
【背景技術】
【０００２】
データを記憶装置に書き込む際、そのハッシュ値などの識別情報も併せて記憶装置に書き込んでおき、データのハッシュ値を比較することにより、データの内容が一致しているか否かを判定するということが行われている（例えば、特許文献１参照）。この特許文献１に記載されている技術では、データを記憶装置に書き込む際、そのハッシュ値を生成し、データに設定（付加）しておく。そして、重複データの排除時に、データに付加されているハッシュ値を比較し、同一のハッシュ値が付加されているデータは重複データであると判定し、所定の排除処理を行う。排除処理としては、例えば、重複する２つのデータの内の一方のデータを削除するといった処理や、重複する２つのデータの内の一方の内容を他方のデータへのリンクに書き換えるといった処理を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２５１７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されているデータ書き込み装置のように、データのハッシュ値を比較することによりデータの内容が同一であるか否かを判定する機能を持ったデータ書き込み装置では、データのハッシュ値を生成するハッシュ値生成手段や、データのハッシュ値を比較するハッシュ値比較手段に障害が発生した場合、ハッシュ値の比較結果が信頼できなくなるため、処理を継続することが困難になるという問題がある。例えば、記憶装置上の既存データのハッシュ値と、既存データに対する更新データのハッシュ値とを比較し、比較不一致の場合のみ、既存データを更新データで置き換えるようにしている場合には、実際には既存データと更新データとが異なっているにもかかわらず、ハッシュ値の比較結果が一致してしまい、データの置き換えが行われず、データの整合性が保たれないという事態が発生しまうことがある。
【０００５】
[発明の目的]
そこで、本発明の目的は、ハッシュ値生成手段やハッシュ値比較手段に障害が発生した場合、処理を継続することが困難になるという課題を解決したデータ書き込み装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係るデータ書き込み装置は、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段と、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段と、
前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段と、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段とを備える。
【０００７】
本発明にかかるデータ書き込み方法は、
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータが実行するデータ書き込み方法であって、
前記識別情報生成手段が、書き込みデータの内容に応じた識別情報を生成し、
前記比較手段が、前記識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較し、
前記障害フラグ設定手段が、前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定し、
前記書き込み手段が、前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える。
【０００８】
本発明にかかるプログラムは、
識別情報生成手段と、比較手段と、障害フラグ設定手段と、書き込み手段とを備えたコンピュータをデータ書き込み装置として機能させるためのプログラムであって、
前記コンピュータを、
書き込みデータの内容に応じた識別情報を生成する識別情報生成手段、
該識別情報生成手段で生成された前記書き込みデータの識別情報と、記憶装置に記録されている既存データの内の前記書き込みデータと対応する既存データの識別情報とを比較する比較手段、
前記識別情報生成手段と前記比較手段との内の少なくとも１つが障害となった後に入力された書き込みデータと対応する既存データに関連付けて障害フラグを設定する障害フラグ設定手段、
前記書き込みデータと対応する既存データに障害フラグが設定されている場合は、前記比較手段の比較結果にかかわらず前記既存データを前記書き込みデータで置き換える書き込み手段として機能させる。
【発明の効果】
【０００９】
本発明によれば、ハッシュ値などの識別情報を生成する識別情報生成手段や、識別情報を比較する比較手段に障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明にかかるデータ書き込み装置を利用したシステムの一例を示すブロック図である。
【図２】本発明にかかるデータ書き込み装置の第１の実施の形態の構成例を示すブロック図である。
【図３】ファイルシステム管理記憶手段１０１で管理されているデータの一例を示す図である。
【図４】ハッシュ長変換手段１０４の構成例を示すブロック図である。
【図５】ハッシュインデックスの一例を示す図である。
【図６】書き込み手段１０７の処理例を示すフローチャートである。
【図７】本発明にかかるデータ書き込み装置の第２の実施の形態の構成例を示すブロック図である。
【図８】ファイルシステム管理記憶手段１０１ａで管理しているデータの一例を示す図である。
【図９】書き込み手段１０７ａの処理例を示すフローチャートである。
【図１０】本発明にかかるデータ書き込み装置の第３の実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
次に図面を参照して本発明の実施の形態について詳細に説明する。
【００１２】
[本発明の第１の実施の形態]
図１を参照すると、本発明の第１の実施の形態にかかるデータ書き込み装置１を利用したシステムの一例が示されている。このシステムにおいてデータ書き込み装置１は、汎用バックアップサーバ３を介して業務サーバ４から更新データが送られてくると、そのハッシュ値を求め、既に記憶装置群２に格納されている、上記更新データに対応する既存データ（データ名が同一のデータ）のハッシュ値と比較する。そして、ハッシュ値が一致した場合には、既存データと更新データとは内容が同一であると判断し、処理を終了する。これに対して、ハッシュ値が不一致の場合は、既存データを更新データに置き換えると共に、ハッシュ値を新たに求めたハッシュ値に置き換える。記憶装置群２は、速度が異なる複数の記憶装置から構成されている。記憶装置群２を構成する記憶装置を速度が速い順に並べると、キャッシュメモリ２１、メモリ２２、ＳＳＤ(Solid State Drive)２３、ＨＤＤ(Hard Disk Drive)２４、テープ装置２５となる。
【００１３】
図２を参照すると、データ書き込み装置１は、ファイルシステム管理記憶手段１０１と、データ分割出力手段１０２と、ハッシュ値生成手段（Hash値生成手段）１０３と、ハッシュ長変換手段１０４と、ハッシュ値格納メモリ階層指定手段１０５と、ハッシュ値比較手段１０６と、書き込み手段１０７と、強制非重複指示手段１０８と、リード制御ブロック（READ制御ブロック）１０９とを備えている。
【００１４】
データ分割出力手段１０２は、汎用バックアップサーバ３を介して業務サーバ４から送られてくる書き込みデータを、ファイルやブロックといった最小処理単位に分割する機能を有する。
【００１５】
ハッシュ値生成手段１０３は、SHA-1,MD5アルゴニズムなどを利用して、データ分割出力手段１０２から出力されたデータに対するハッシュ値を生成し、生成したハッシュ値をハッシュ長変換手段１０４に対して出力する機能を有する。また、ハッシュ値生成手段１０３は、自手段１０３に障害が発生したとき、強制非重複指示手段１０８に対してエラー信号を出力する機能を有する。より具体的には、ハッシュ値生成手段１０３は、データ分割出力手段１０２から出力されたデータに対するハッシュ値を生成する第１および第２のハッシュ値生成回路と、第１および第２のハッシュ値生成回路から出力されたハッシュ値が異なるものであった場合にエラー信号を出力するエラー検出回路を備えている。なお、ハッシュ長変換手段１０４に対しては、第１および第２のハッシュ値生成回路の内の何れか一方で生成されたハッシュ値を出力する。
【００１６】
ファイルシステム管理記憶手段１０１内のメモリ（図示せず）には、一般的なファイルシステム、ボリュームグループなどといったあるまとまりのデータ群毎に、そのデータ群に含まれるデータの各種メタ情報が記録されている。メタ情報には、データ群に含まれている各データ（ファイルなど）をアクセスするための情報や、各データに関連するハッシュ値などをアクセスするための情報が含まれている。更に、ファイルシステム管理記憶手段１０１には、データ群毎に、そのデータ群に属するデータの優先度が記録されている。この優先度は、後述するように、ハッシュ長変換手段１０４でハッシュ値の長さを変更する場合や、ハッシュ値格納メモリ階層指定手段１０５でハッシュ値を記録するメモリ階層を決定する場合に利用される。なお、優先度はユーザが設定するものであり、書き込み処理時間を短くしたいデータ群に属するデータほど、高い優先度を与える。
【００１７】
図３を参照すると、ファイルシステム管理記憶手段１０１が、自手段１０１内のメモリ（図示せず）に記録して管理しているデータの一例が示されている。この例は、ファイルシステム識別子が「File System A」「File System B」「File System C」…のファイルシステムに属するファイル（データ）の優先度は、それぞれ「２」「３」「４」…であることを示している。なお、本実施の形態では、小さな値ほど、優先度が高いとする。
【００１８】
また、ファイルシステム管理記憶手段１０１は、汎用バックアップサーバ３を介して業務サーバ４から書き込みデータが送られてくると、上記書き込みデータに付加されているファイルシステム識別子と関連付けて記録されている優先度をハッシュ長変換手段１０４およびハッシュ値格納メモリ階層指定手段１０５に対して出力する機能を有する。例えば、ファイルシステム管理記憶手段１０１に図３に示す情報が記録され、書き込みデータに付加されていたファイルシステム識別子が「File system A」であったとすると、優先度「２」を出力し、「File
System C」であったとすると、優先度「４」を出力する。
【００１９】
ハッシュ長変換手段１０４は、ハッシュ値生成手段１０３から渡されたハッシュ値を、ファイルシステム管理記憶手段１０１から出力されている優先度に応じてそのまま或いは長さを変更（短くする）して出力する機能を有する。ここで、ハッシュ長変換手段１０４は、優先度が高いときほど、変換後のハッシュ値の長さが短くなるようにする。例えば、優先度が「１」「２」「３」「４」…の場合は、変換後のハッシュ値を「５byte」「１０byte」「１５byte」「２０byte」…とする。また、ハッシュ長変換手段１０４は、自手段１０４に障害が発生したとき、強制非重複指示手段１０８に対してエラー信号を出力する機能を有する。
【００２０】
図４を参照すると、ハッシュ長変換手段１０４は、第１および第２の変換回路1041,1042と、エラー検出回路1043とを備えている。第１の変換回路1041は、ファイルシステム管理記憶手段１０１から出力される優先度に応じて、ハッシュ値生成手段１０３から出力されるハッシュ値の上位「５byte」「１０byte」「１５byte」「２０byte」の内の何れかを選択して出力するセレクタにより実現される。第２の変換回路1042も第１の変換手段と同様の構成を備えている。エラー検出回路1043は、第１の変換回路1041から出力されるハッシュ値と、第２の変換回路1042から出力されるハッシュ値とが異なるものである場合、エラー信号を出力する。また、第１、第２の変換回路1041，1042から出力されるハッシュ値の内、第１の変換回路1041から出力されているハッシュ値がハッシュ値比較手段１０６および書き込み手段１０７に供給されている。
【００２１】
ハッシュ値格納メモリ階層指定手段１０５は、ファイルシステム管理記憶手段１０１から出力される優先度に基づいて、ハッシュ値の格納先にするハッシュインデックス（Hash Index）を、どの記憶装置上のものにするのかを決定し、書き込み手段１０７に対して決定した記憶装置を示す情報を渡す機能を有する。なお、ハッシュ値格納メモリ階層指定手段１０５は、ファイルシステム管理記憶手段１０１から出力されている優先度が高い時ほど、上位階層の記憶装置（速度が速い記憶装置）上のハッシュインデックスを選択する。
【００２２】
図５にハッシュインデックスの一例を示す。同図に示すようにハッシュインデックスには、データ識別子であるファイル名に関連付けて、該当するファイルのハッシュ値（ハッシュ長変換手段１０４から出力されたハッシュ値）と、障害フラグとが記録されている。障害フラグは、初期値は“０”であり、ハッシュ値生成手段１０３と、ハッシュ長変換手段１０４と、ハッシュ値比較手段１０６との内の少なくとも１つに障害が発生した場合、“１”となる。
【００２３】
ハッシュ値比較手段１０６は、ハッシュ長変換手段１０４から出力されたハッシュ値（更新データのハッシュ値、つまり、データ分割出力手段１０２から出力されているデータのハッシュ値）と、リード制御ブロック１０９から出力される値（ファイルシステム管理記憶手段１０１から出力されている優先度に応じた階層の記憶装置も記録されている既存データのハッシュ値、または、所定値）とを比較し、比較結果を出力する機能を有する。また、ハッシュ値比較手段１０６は、自手段１０６に障害が発生した場合、エラー信号を強制非重複指示手段１０８に対して出力する機能を有する。より具体的には、ハッシュ値比較手段１０６は、更新データのハッシュ値と既存データのハッシュ値とを比較する第１および第２の比較回路と、第１および第２の比較回路の比較結果が異なるものである場合、エラー信号を出力するエラー検出回路とから構成される。なお、書き込み手段１０７に対しては、第１、第２の比較回路の内の、一方の比較結果が出力される。
【００２４】
強制非重複指示手段１０８は、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４およびハッシュ値比較手段１０６の内の少なくとも１つからエラー信号が出力された場合、書き込み手段１０７に対して出力する強制非重複指示信号を“１”とし、その状態を保持する。また、リード制御ブロック１０９から出力された障害フラグ（データ分割出力手段１０２から出力されているファイルについての障害フラグ）の値が“１”の場合も、強制非重複信号を“１”とし、その状態を保持する。
【００２５】
書き込み手段１０７は、次のような機能(1)〜(4)を有する。
【００２６】
(1)データ分割出力手段１０２から出力されているデータが更新データであり、強制非重複指示手段１０８から出力されている強制非重複指示信号が“０”であり、且つ、ハッシュ値比較手段１０６の比較結果が比較一致の場合は、更新データと記憶装置２群上の既存データとが一致すると判断し、処理を終了する。なお、強制非重複指示手段１０８から出力される強制非重複指示信号は、手段１０３，１０４，１０６が正常動作している間は“０”となり、上記各手段１０３，１０４，１０６の何れかに障害が発生した後は、“１”となる。
【００２７】
(2) データ分割出力手段１０２から出力されているデータが更新データであり、強制非重複指示手段１０８から出力されている強制非重複指示信号が“０”であり、且つ、ハッシュ値比較手段１０６の比較結果が比較不一致の場合は、更新データと既存データとが異なっていると判断し、データ分割出力手段１０２から出力されている更新データで記憶装置群２上の既存データを更新し、同時に記憶装置群２上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で書き換える。
【００２８】
(3) データ分割出力手段１０２から出力されているデータが更新データであり、且つ、強制非重複指示手段１０８から出力されている強制非重複指示信号が“１”の場合は、ハッシュ値比較手段１０６の比較結果に信頼性がないと判断し、データ分割出力手段１０２から出力されている更新データで記憶装置群２上の既存データを更新し、同時に記憶装置群２上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で書き換える。更に、強制非重複指示信号が“１”の場合は、該当するハッシュインデックス中の該当する障害フラグを“１”とする。
【００２９】
(4)データ分割出力手段１０２から出力されているデータが新規データ（初めて記憶装置群２に書き込まれるデータ）の場合は、データを記憶装置群２に書き込むと共に、該当するハッシュインデックスに上記データ用のエントリを作成し、そこにハッシュ長変換手段１０４から出力されているハッシュ値及び障害フラグ（初期値“０”）を書き込む機能。
【００３０】
リード制御ブロック１０９は、データ分割出力手段１０２から出力されているデータに対応するハッシュ値および障害フラグを記憶装置群２上のハッシュインデックスから読み込み、読み込んだハッシュ値および障害フラグの値をそれぞれハッシュ値比較手段１０６および強制非重複指示手段１０８に出力する機能を有する。なお、データ分割出力手段１０２から出力されているデータに対応するハッシュ値および障害フラグが記憶装置群２上のハッシュインデックスに記録されていない場合（データが新規データの場合）は、ハッシュ値比較手段１０６に対しては、予め定められている値を出力し、強制非重複指示手段１０８に対しては、強制非重複指示信号の値と同一の値を、障害フラグの値として出力する。
【００３１】
上述した機能を有するデータ書き込み装置１は、コンピュータにより実現可能であり、コンピュータにより実現する場合は、例えば、次にようにする。コンピュータをファイルシステム管理記憶手段１０１、データ分割出力手段１０２、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４、ハッシュ値格納メモリ階層指定手段１０５、ハッシュ値比較手段１０６、書き込み手段１０７、強制非重複指示手段１０８、および、リード制御ブロック１０９として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に上記各手段１０１〜１０９を実現する。
【００３２】
[第１の実施の形態の動作]
次に、本実施の形態の動作について詳細に説明する。
【００３３】
業務サーバ４は、データ（以下ではファイル群とする）を記憶装置群２にバックアップする場合、バックアップするファイル群と、それらのファイル群を管理しているファイルシステムのファイルシステム識別子と含んだバックアップ要求を汎用バックアップサーバ３へ送信する。汎用バックアップサーバ３は、業務サーバ４から送られてきたバックアップ要求をデータ書き込み装置１へ送信する。
【００３４】
これにより、データ書き込み装置１内のファイルシステム管理記憶手段１０１は、バックアップ要求中のファイルシステム識別子と関連付けて管理している優先度を出力する。例えば、ファイルシステム管理記憶手段１０１の記憶内容が図３に示すものであり、バックアップ要求中のファイルシステム識別子がFile System Aである場合は、優先度「２」を出力することになる。
【００３５】
また、データ分割出力手段１０２は、バックアップ要求に含まれているファイル群を処理単位であるファイルに分割して順次出力する。本実施の形態では、処理単位をファイルとするが、ファイルを更に一定長に分割したブロックを処理単位としても構わない。データ分割出力手段１０２から出力されたファイルは、ハッシュ値生成手段１０３および書き込み手段１０７に入力される。
【００３６】
また、リード制御ブロック１０９は、データ分割出力手段１０２から出力されているファイルのハッシュ値および障害フラグを、ファイルシステム管理記憶手段１０１から出力されている優先度に応じた記憶装置上のハッシュインデックスから入力し、ハッシュ値および障害フラグをそれぞれハッシュ値比較手段１０６および強制非重複指示手段１０８に対して出力する。
【００３７】
強制非重複指示手段１０８は、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４、およびハッシュ値比較手段１０６の内の少なくとも１つがエラー信号を出力した場合と、リード制御ブロック１０９から出力された障害フラグが“１”の場合に、書き込み手段１０７に対して出力する強制非重複指示信号を“１”とし、その状態を保持する。
【００３８】
ハッシュ値生成手段１０３は、SHA-1、MD5などの汎用のHashアルゴニズムを利用して入力されたファイルのハッシュ値を算出し、ハッシュ長変換手段１０４に対して出力する。
【００３９】
ハッシュ長変換手段１０４は、ハッシュ値生成手段１０３で生成されたハッシュ値を、ファイルシステム管理記憶手段１０１から出力されている優先度に応じてそのまま或いは長さを短くして出力する。ハッシュ長変換手段１０４から出力されるハッシュ値の長さは、優先度が高いファイルほど短くなる。ここで、優先度が高いものほどハッシュ値の長さを短くするのは、ハッシュ値の書き込み時間を優先度が高いファイルほど短くすることができるからである。
【００４０】
ハッシュ値比較手段１０６は、ハッシュ長変換手段１０４から出力されたハッシュ値（更新ファイルのハッシュ値）と、リード制御ブロック１０９から出力される値（ファイルシステム管理記憶手段１０１から出力されている優先度に応じた階層の記憶装置も記録されている既存データのハッシュ値、または、所定値）とを比較し、書き込み手段１０７に対して比較結果を出力する。
【００４１】
書き込み手段１０７は、データ分割出力手段１０２からファイルが出力される毎に、図６のフローチャートに示す処理を行う。先ず、データ分割出力手段１０２から出力されたファイルが新規ファイル（初めて、記憶装置群２に書き込まれるファイル）であるか否かを判定する（ステップＳ６１）。この判定は、例えば、上記ファイルのファイル名がハッシュインデックスに記録されているか否かに基づいて行う。
【００４２】
ファイルが新規ファイルではなく、既存ファイルに対する更新ファイルである場合（ステップＳ６１がＮｏ）は、書き込み手段１０７は、強制非重複指示手段１０８から出力されている強制非重複信号が“１”である否かを判定する（ステップＳ６２）。強制非重複信号が“０”の場合（ステップＳ６２がＮｏ）は、更にハッシュ値比較手段１０６の比較結果が比較一致を示しているか否かを判定する（ステップＳ６３）。そして、比較結果が比較一致を示している場合（ステップＳ６３がＹｅｓ）は、更新ファイルと既存ファイルは同一であると判断し、その処理を終了する。これに対して、比較結果が比較不一致を示している場合（ステップＳ６３がＮｏ）は、既存ファイルを更新ファイルで更新すると共に、更新ファイルの優先度に応じた記憶装置上のハッシュインデックスに記録されている該当するハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で置き換え（ステップＳ６４）、その後、処理を終了する。
【００４３】
また、強制非重複指示手段１０８から出力されている強制非重複指示信号が“１”の場合（ステップＳ６２がＹｅｓ）は、記憶装置群２上のファイル及びハッシュ値を更新すると共に、該当するハッシュインデックス中の該当する障害フラグを“１”にし（ステップＳ６５）、その後、処理を終了する。強制非重複指示信号は、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４、或いは、ハッシュ値比較手段１０６に障害が発生した後、“１”となる。つまり、強制非重複指示信号が“１”の場合は、ハッシュ値比較手段１０６の比較結果は信頼性が低いものとなり、比較結果が一致していたとしても、ファイルの内容が異なる場合がある。そこで、本実施の形態では、強制非重複指示信号が“１”の場合は、ハッシュ値比較手段１０６の比較結果にかかわらず、常に、ファイルを更新することにより、ファイルの整合性を保証できるようにしている。
【００４４】
また、データ分割出力手段１０２から出力されたファイルが新規ファイルである場合（ステップＳ６１がＹｅｓ）は、該当するハッシュインデックスに上記新規ファイル用のエントリを作成する（ステップＳ６６）。その際、障害フラグには、初期値として“０”を設定する。更に、書き込み手段１０７は、データ分割出力手段１０２から出力されている新規ファイルを記憶装置群２上に書き込むと共に、上記ファイル用のエントリに、ハッシュ長変換手段１０４から出力されているハッシュ値を書き込む（ステップＳ６７）。
【００４５】
その後、書き込み手段１０７は、強制非重複指示手段１０８から出力されている強制非重複指示信号が“１”であるか否かを判定する（ステップＳ６８）。そして、強制非重複指示信号が“０”の場合（ステップＳ６８がＮｏ）は、処理を終了し、“１”の場合は（ステップＳ６８がＹｅｓ）は、新規ファイル用に作成したエントリ中の障害フラグを“１”に変更し（ステップＳ６９）、その後、その処理を終了する。なお、図６に示したフローチャートでは、更新ファイルと既存ファイルとのハッシュ値が一致した場合（ステップＳ６３がＹｅｓ）、処理を終了するようにしたが、ハッシュ値が一致した場合には、実際に更新ファイルと既存ファイルとの内容を比較し、内容が一致した場合には処理終了とし、内容が不一致の場合には、ステップＳ６４と同様の処理を行い、ファイル及びハッシュ値を更新するようにしても良い。
【００４６】
ここで、ハッシュ値を利用した重複データの削除処理について説明する。図示を省略した排除手段は、所定のタイミング（ユーザによって指示されたタイミングや、所定時間間隔など）で各階層の記憶装置に設けられているハッシュインデックス毎に、ハッシュ値が同一になっているファイルが存在するか否かを調べる。ハッシュ値が同一のファイルが存在する場合は、そのファイル対は、内容が重複しているので、一方のファイルを削除する、或いは、一方のファイルの中身を他方のファイルへのリンクに書き換えるなどといった重複データの削除処理を行う。なお、障害フラグが“１”になっているファイルについては、ハッシュ値が信頼できないものであるので、ハッシュ値が一致しているか否かにかかわらずファイルの内容を比較し、内容が一致している場合は、上記した重複データの削除処理と同様の処理を行う。
【００４７】
[第１の実施の形態の効果]
本実施の形態によれば、ハッシュ値生成手段１０３や、ハッシュ長変換手段１０４や、ハッシュ値比較手段１０６などに障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。その理由は、上記各手段１０３，１０４，１０６の何れかに障害が発生した後は障害フラグを立て、障害フラグが立っている場合は、書き込みデータ（更新データ）で既存データを更新するようにしているからである。
【００４８】
また、本実施の形態によれば、データの書き込み時に、データのハッシュ値（識別情報）も書き込むことが必要なデータ書き込み装置において、書き込み処理を短時間で完了させることが望ましいデータの書き込み処理時間を短くすることができるという効果を得ることができる。その理由は、速度が異なる複数の記憶装置から構成される記憶装置群にデータのハッシュ値を書き込む際、データの優先度に応じた記憶装置にハッシュ値を書き込むようにしており、優先度の高いデータのハッシュ値の書き込み時間を短くすることができるからである。また、データの優先度に応じた記憶装置にハッシュ値が記録されているので、優先度の高いデータの読み出し時間を短いものとすることができる。
【００４９】
更に、本実施の形態では、データの優先度に応じて記憶装置に書き込むハッシュ値の長さを変更しているので、優先度の高いデータの読み書きを更に短時間で行うことが可能になる。
【００５０】
[本発明の第２の実施の形態]
次に、本発明の第２の実施の形態について説明する。図７を参照すると、本発明の第２の実施の形態にかかるデータ書き込み装置１ａは、ファイルシステム管理記憶手段１０１の代わりにファイルシステム管理記憶手段１０１ａを備えている点、書き込み手段１０７の代わりに書き込み手段１０７ａを備えている点、および、強制非重複指示手段１０８の代わりに障害フラグ設定手段１１０を備えている点で、図２に示した第１の実施の形態のデータ書き込み装置１と相違している。以下の説明では、第１の実施の形態との相違点について説明する。
【００５１】
ファイルシステム管理記憶手段１０１ａは、ファイルシステム管理記憶手段１０１が管理しているデータに加え、ファイルシステム毎に、そのファイルシステムに属するファイルのファイル名と、各ファイルについての障害フラグとが記録されている。図８に、ファイルシステム管理記憶手段１０１ａが、自手段１０１ａ内の高速なメモリ（図示せず）に記録して管理している情報の一例を示す。この例は、ファイルシステム識別子が「File System A」のファイルシステムには、ファイル名「FSA-1,FSA-2,FSA-3,…」のファイルが存在し、各ファイルに対する障害フラグが「“０”、“１”、“０”、…」であることを示している。なお、障害フラグの初期値は、“０”であるとする。即ち、障害フラグ“０”は、障害が発生していないことを示し、障害フラグ“１”は障害が発生したことを示す。
【００５２】
また、ファイルシステム管理記憶手段１０１ａは、ファイルシステム管理記憶手段１０１が備えている機能に加え、管理している障害フラグの内、データ分割出力手段１０２が出力しているファイルに対応する障害フラグの値（“０”か“１”）を書き込み手段１０７ａに対して出力する機能や、障害フラグ設定手段１１０から出力されている障害フラグ設定指示信号が“１”の間、データ分割出力手段１０２からファイルが出力される毎に、そのファイルに関連付けて管理している障害フラグを“１”にする機能を有する。更に、ファイルシステム管理記憶手段１０１ａは、データ分割出力手段１０２から出力されたファイルについての障害フラグを管理していない場合（上記ファイルが新規ファイルの場合）は、障害フラグ設定手段１１０から出力されている障害フラグ設定指示信号の値と同一の値を、上記ファイルの障害フラグの値として出力すると共に、上記ファイルの障害フラグに関する情報を、該当するファイルシステム識別子に関連付けて記録する機能を有する。
【００５３】
書き込み手段１０７ａは、下記の機能(A)〜(D)を有する。
【００５４】
(A)データ分割出力手段１０２から出力されているデータが更新データであり、ファイルシステム管理記憶手段１０１ａから出力されている障害フラグの値が“０”であり、且つ、ハッシュ値比較手段１０６の比較結果が比較一致の場合は、更新データと記憶装置２群上の既存データとが一致すると判断し、処理を終了する。
【００５５】
(B) データ分割出力手段１０２から出力されているデータが更新データであり、ファイルシステム管理記憶手段１０１ａから出力されている障害フラグの値が“０”であり、且つ、ハッシュ値比較手段１０６の比較結果が比較不一致の場合は、更新データと既存データとが異なっていると判断し、データ分割出力手段１０２から出力されている更新データで記憶装置群２上の既存データを更新し、同時に記憶装置群２上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で書き換える。
【００５６】
(C) データ分割出力手段１０２から出力されているデータが更新データであり、ファイルシステム管理記憶手段１０１ａから出力されている障害フラグの値が“１”の場合は、ハッシュ値比較手段１０６の比較結果に信頼性がないと判断し、データ分割出力手段１０２から出力されている更新データで記憶装置群２上の既存データを更新し、同時に記憶装置群２上の該当するハッシュインデックス中の該当するハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で書き換える。
【００５７】
(D)データ分割出力手段１０２から出力されているデータが新規データ（初めて記憶装置群２に書き込まれるデータ）の場合は、データを記憶装置群２に書き込むと共に、該当するハッシュインデックスに上記データ用のエントリを作成し、そこにハッシュ長変換手段１０４から出力されているハッシュ値を書き込む機能。
【００５８】
障害フラグ設定手段１１０は、ハッシュ値生成手段１０３と、ハッシュ長変換手段１０４と、ハッシュ値比較手段１０６との内の少なくとも１個からエラー信号が出力されることにより、ファイルシステム管理記憶手段１０１ａに対する障害フラグ設定指示信号を“１”とし、その状態を保持する機能を有する。
【００５９】
なお、本実施の形態にかかるデータ書き込み装置１ａも第１の実施の形態のデータ書き込み装置１と同様にコンピュータにより実現できる。具体的には、コンピュータをデータ書き込み装置１ａとして機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、ファイルシステム管理記憶手段１０１ａ、データ分割出力手段１０２、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４と、ハッシュ値格納メモリ階層指定手段１０５、ハッシュ値比較手段１０６、書き込み手段１０７ａ、リード制御ブロック１０９、及び、障害フラグ設定手段１１０を実現する。
【００６０】
[第２の実施の形態の動作]
次に、本実施の形態の動作について説明する。
【００６１】
データ書き込み装置１ａには、汎用バックアップサーバ３を介して業務サーバ４からバックアップ要求が送られてくる。バックアップ要求には、バックアップするファイル群およびファイル群を管理しているファイルシステムのファイルシステム識別子が含まれている。
【００６２】
データ書き込み装置１ａ内のデータ分割出力手段１０２は、バックアップ要求中のファイル群を、処理単位であるファイルに分割して出力する。また、リード制御ブロック１０９は、データ分割出力手段１０２から出力されているファイルのハッシュ値を記憶装置群２上のハッシュインデックスから読み込み、ハッシュ値比較手段１０６に対して出力する。なお、ファイルが新規ファイルの場合は、ハッシュ値が記録されていないので、予め定められている任意の値を出力する。
【００６３】
ファイルシステム管理記憶手段１０１ａは、バックアップ要求中のファイルシステム識別子に関連付けて管理している優先度をハッシュ長変換手段１０４およびハッシュ値格納メモリ階層指定手段１０５に対して出力する。また、ファイルシステム管理記憶手段１０１ａは、管理している障害フラグの内、データ分割出力手段１０２から出力されたファイルの障害フラグの値を書き込み手段１０７ａに対して出力する。なお、データ分割出力手段１０２から出力されたファイルが新規ファイルである場合は、障害フラグ設定手段１１０から出力されている障害フラグ設定指示信号の値と同一の値を、上記ファイルの障害フラグの値として出力すると共に、上記ファイルの障害フラグに関する情報（ファイル名と障害フラグの値）を、該当するファイルシステム識別子に関連付けて記録する。
【００６４】
ハッシュ値生成手段１０３は、データ分割出力手段１０２から出力されたファイルのハッシュ値を生成してハッシュ長変換手段１０４に供給し、ハッシュ長変換手段１０４は、ハッシュ値の長さをファイルシステム管理記憶手段１０１ａから出力されている優先度に応じたものに変換してハッシュ値比較手段１０６に出力する。
【００６５】
ハッシュ値比較手段１０６は、ハッシュ長変換手段１０４から出力されているハッシュ値と、リード制御ブロック１０９から出力されているハッシュ値とを比較し、比較結果を書き込み手段１０７ａに対して出力する。
【００６６】
障害フラグ設定手段１１０は、ハッシュ値生成手段１０３と、ハッシュ長変換手段１０４と、ハッシュ値比較手段１０６との内の少なくとも１つがエラー信号を出力したならば、ファイルシステム管理記憶手段１０１ａに対する障害フラグ設定指示信号を“１”とし、その状態を保持する。
【００６７】
ファイルシステム管理記憶手段１０１ａは、障害フラグ設定指示信号が“１”の間は、データ分割出力手段１０２からファイルが出力される毎に、上記ファイルの障害フラグを“１”とする。なお、データ分割出力手段１０２から出力されたファイルについてのエントリが存在しない場合は、上記ファイルについてのエントリを作成し、そこにファイル名と障害フラグ「“１”」とを記録する。
【００６８】
データ書き込み手段１０７ａは、データ分割出力手段１０２からファイルが出力される毎に、図９のフローチャートに示す処理を行う。
【００６９】
先ず、書き込み手段１０７ａは、データ分割出力手段１０２から出力されたファイルが新規ファイルであるか否かを判定する（ステップＳ９１）。そして、新規ファイルではなく、既存ファイルに対する更新ファイルである場合（ステップＳ９１がＮｏ）は、ファイルシステム管理記憶手段１０１ａから出力されている障害フラグの値が“１”であるか否かを判定する（ステップＳ９２）。障害フラグが“０”の場合（ステップＳ９２がＮｏ）は、更にハッシュ値比較手段１０６の比較結果が比較一致であるか否かを判定する（ステップＳ９３）。そして、比較一致である場合（ステップＳ９３がＹｅｓ）は、更新ファイルと既存ファイルとが同一であると判断し、その処理を終了する。これに対して、比較不一致の場合（ステップＳ９３がＮｏ）は、既存ファイルを更新ファイルで置き換えると共に、更新ファイルの優先度に応じた記憶装置上のハッシュインデックスに記録されている上記ファイルのハッシュ値を、ハッシュ長変換手段１０４から出力されているハッシュ値で置き換え（ステップＳ９４）、その後、処理を終了する。
【００７０】
また、ファイルシステム管理記憶手段１０１ａから出力されている障害フラグの値が“１”の場合（ステップＳ９２がＹｅｓ）は、記憶装置群２上の既存データ及びハッシュ値を更新し（ステップＳ９５）、その後、処理を終了する。障害フラグは、ハッシュ値生成手段１０３、ハッシュ長変換手段１０４、或いは、ハッシュ値比較手段１０６に障害が発生した後、“１”となる。つまり、障害フラグが“１”の場合は、ハッシュ値比較手段１０６の比較結果は信頼性が低く、比較結果が一致したとしても、ファイル内湯が異なる場合がある。そこで、本実施の形態では、障害フラグが“１”の場合は、ハッシュ値比較手段１０６に比較結果にかかわらず、常にファイルを更新することにより、ファイルの整合性を保証している。
【００７１】
また、データ分割出力手段１０２ａから出力されたファイルが新規ファイルである場合（ステップＳ９１がＹｅｓ）は、該当するハッシュインデックスに上記新規ファイル用のエントリを作成する（ステップＳ９６）。次に、書き込み手段１０７ａは、記憶装置群２に上記ファイルを書き込むと共に、上記ファイル用のエントリにファイル名およびハッシュ長変換手段１０４から出力されているハッシュ値を書き込み（ステップＳ９７）、その後、処理を終了する。なお、図９に示したフローチャートでは、更新ファイルと既存ファイルとのハッシュ値が一致した場合（ステップＳ９３がＹｅｓ）、処理を終了するようにしたが、ハッシュ値が一致した場合には、実際に更新ファイルと既存ファイルとの内容を比較し、内容が一致した場合には処理終了とし、内容が不一致の場合には、ステップＳ９４と同様の処理を行い、ファイル及びハッシュ値を更新するようにしても良い。
【００７２】
[第２の実施の形態の効果]
本実施の形態によれば、第１の実施の形態で得られる効果に加え、障害フラグの記録処理に要する時間を短くすることができるという効果を得ることができる。その理由は、記憶装置群２を構成する記憶装置以外の高速なメモリに障害フラグを記録しているからである。
【００７３】
[本発明の第３の実施の形態]
図１０を参照すると、本発明にかかるデータ書き込み装置の第３の実施の形態は、識別情報生成手段１１と、比較手段１２と、障害フラグ設定手段１３と、書き込み手段１４と、記憶装置１５とを備えている。
【００７４】
識別情報生成手段１１は、書き込みデータの内容に応じた識別情報であって、内容が異なる書き込みデータに対しては異なる値となり、内容が同一の書き込みデータに対しては同一の値となる識別情報を生成する。識別情報としては、例えば、書き込みデータのハッシュ値を利用することができる。
【００７５】
比較手段１２は、識別情報生成手段で生成された、書き込みデータの識別情報と、記憶装置１５に記録されている既存データの内の上記書き込みデータと対応する既存データの識別情報とを比較する。
【００７６】
障害フラグ設定手段１３は、識別情報生成手段１１と比較手段１２との内の少なくとも１つに障害が発生した後に入力されたデータに関連付けて障害フラグを設定する。
【００７７】
書き込み手段１４は、書き込みデータに関連する障害フラグが設定されている場合は、書き込みデータと対応する既存データを書き込みデータで置き換える。
【００７８】
[第３の実施の形態の効果]
本実施の形態によれば、識別情報生成手段１１や比較手段１２に障害が発生した場合であっても、データの整合性を保ち、処理を継続することが可能になるという効果を得ることができる。その理由は、上記各手段１１，１２の何れかに障害が発生した後は障害フラグを立て、障害フラグが立っている場合は、比較手段１２の比較結果にかかわらず、書き込みデータ（更新データ）で既存データを更新するようにしているからである。
【産業上の利用可能性】
【００７９】
本発明は、データを書き込む際、データのハッシュ値も併せて記録しておき、データの内容が一致しているか否かをハッシュ値に基づいて判断する計算機システムに適用可能である。
【符号の説明】
【００８０】
１，１ａ    データ書き込み装置
１０１，１０１ａ  ファイルシステム管理記憶手段
１０２，１０２ａ  データ分割出力手段
１０３  ハッシュ値生成手段
１０４  ハッシュ長変換手段
１０５  ハッシュ値格納メモリ階層指定手段
１０６  ハッシュ値比較手段
１０８  強制非重複指示手段
１０９  リード制御ブロック
１１０  障害フラグ設定手段
２      記憶装置群
２１    キャッシュメモリ
２２    メモリ
２３    ＳＳＤ
２４    ＨＤＤ
２５    テープ装置
３      汎用バックアップサーバ
４      業務サーバ
１１    識別情報生成手段
１２    比較手段
１３    障害フラグ設定手段
１４    書き込み手段
１５    記憶装置
【図１】
2013058134.tif 000003
【図２】
2013058134.tif 000004
【図３】
2013058134.tif 000005
【図４】
2013058134.tif 000006
【図５】
2013058134.tif 000007
【図６】
2013058134.tif 000008
【図７】
2013058134.tif 000009
【図８】
2013058134.tif 000010
【図９】
2013058134.tif 000011
【図１０】
2013058134.tif 000012