JP4881172B2 - ファイル格納システム - Google Patents

ファイル格納システム Download PDF

Info

Publication number
JP4881172B2
JP4881172B2 JP2007014552A JP2007014552A JP4881172B2 JP 4881172 B2 JP4881172 B2 JP 4881172B2 JP 2007014552 A JP2007014552 A JP 2007014552A JP 2007014552 A JP2007014552 A JP 2007014552A JP 4881172 B2 JP4881172 B2 JP 4881172B2
Authority
JP
Japan
Prior art keywords
storage
file
management means
identified
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.)
Expired - Fee Related
Application number
JP2007014552A
Other languages
English (en)
Other versions
JP2008181358A (ja
Inventor
聰 山竹
Original Assignee
聰 山竹
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 聰 山竹 filed Critical 聰 山竹
Priority to JP2007014552A priority Critical patent/JP4881172B2/ja
Publication of JP2008181358A publication Critical patent/JP2008181358A/ja
Application granted granted Critical
Publication of JP4881172B2 publication Critical patent/JP4881172B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、単一または複数のストレージを個別に管理する複数のストレージ管理手段と、クライアントからの要求に基づいて前記ストレージの何れかに対してファイルを読み書き制御するファイル管理手段がネットワーク接続されたファイル格納システムに関する。
近年、計算機システムと情報を格納するストレージシステムを分離し、ストレージをネットワークに接続して複数の計算機システムで共有するネットワークストレージが提案されている。このようなネットワークストレージの例として、SAN(Storage Area Network)で接続されてブロックアクセスを提供するSANストレージや、IPネットワークで接続されてファイルアクセスを提供するNAS(Network Attached Storage)、HTTPプロトコルでのアクセス形態を提供するWebストレージなど、種々のネットワークストレージが実現されている。
特許文献1には、複数台のNASを用いる構成において、ある情報データへのアクセスが集中するようなネットワーク負荷の増大時でも性能を維持し、障害発生時の可用性を確保できるネットワーク型記憶装置として、ネットワークと、該ネットワークに接続され磁気ディスクを用いた複数のストレージ装置と、ネットワークに接続されたクライアントシステムと、該クライアントシステムに対して提供するファイルデータとそれを制御するための管理データを上記ストレージ装置に格納し、該管理データを用いて前記クライアントシステムにファイルアクセス機能を提供する手段を有し、前記管理データと上記ファイルデータが異なった冗長性をもって前記複数のストレージ装置に分散格納されていることを特徴とするネットワーク型記憶装置が提案されている。
しかし、特許文献1に記載されたネットワーク型記憶装置では、取り扱うファイルデータの増加に伴い必然的に管理データも増加し、該ネットワーク型記憶装置のストレージ等の記憶資源が消費されることになり、さらに、ファイルアクセス時に参照する管理データの容量が増加すれば、ファイルアクセス時の処理速度にも悪影響を与え、処理速度の低下を招くこととなる。
そこで、特許文献2には、システム管理コストを抑制するために、複数のネットワークストレージを計算機システムからは仮想的に一つに見せ、新たな装置の追加を行なってもシステム全体に影響が及ばないようにするストレージの仮想化技術として、複数のネットワークストレージ装置を備え、該複数のネットワークストレージ装置の少なくとも一つにネットワーク経由で結合するクライアントからのアクセス要求を処理するネットワークストレージシステムにおいて、前記複数のネットワークストレージ装置は、前記アクセス要求の対象であるオブジェクトの論理的な識別子を引数とするハッシュ関数で決定される特定のネットワークストレージ装置に個々のオブジェクトを分散して格納することを特徴とするネットワークストレージシステムが提案されている。
当該ネットワークストレージシステムでは、ファイルの冗長格納を行なう場合には、ハッシュ関数あるいは格納関数を複数種類用意して、それぞれの値に応じた格納場所へ対象となるファイルを格納するように構成されている。
特許文献2に記載されたネットワークストレージシステムでは、アクセス対象のオブジェクトの論理的識別子、例えばファイルの識別子、と該オブジェクトを物理的に格納しているネットワークストレージとの対応表を管理する必要がなくなり、管理サーバを必要としない複数ネットワークストレージの仮想化方法が可能となる。
特開2003−208345号公報 特開特開2003−216474号公報
しかし、特許文献2に記載された技術によれば、各ファイルはファイルのパス名のハッシュ値と分散格納するネットワークストレージの台数を引数とする格納位置決定関数fをf=mod(ハッシュ値、ネットワークストレージ台数)によって一意に決定されるネットワークストレージに格納されるものであり、ファイルを冗長格納する場合に、ハッシュ関数あるいは格納関数を複数種類用意して、それぞれの値に応じた格納場所へ対象となるファイルを格納するように構成されていたために、破損したストレージを修復する場合、全てのストレージを検索した結果に基づいて修復すべきファイルを特定しなければならず、膨大な処理時間を要するという問題があった。
ハッシュ関数あるいは格納関数が不可逆関数であるため、破損したストレージの管理番号から元のハッシュ値またはファイル識別子を算出することが不可能だからである。
本発明の目的は、ファイルとファイルが格納されるストレージの記憶エリアを対照する管理情報を持つことなく、クライアントからのファイルアクセス要求に対して高速に応答可能としながらも、故障などからの復旧処理が迅速に行なえるファイル格納システムを提供することにある。
上述の目的を達成するため、本発明によるファイル格納システムの第一の特徴構成は、特許請求の範囲の書類の請求項1に記載した通り、単一または複数のストレージを個別に管理する複数のストレージ管理手段と、クライアントからの要求に基づいて前記ストレージの何れかに対してファイルを読み書き制御するファイル管理手段がネットワーク接続されたファイル格納システムであって、前記ファイル管理手段は、クライアントからのファイル格納要求に応答して、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージと、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージとを冗長格納する特定ストレージとして選択し、当該特定ストレージを管理するストレージ管理手段夫々に対してファイル単位で格納処理を実行させる冗長格納管理手段と、任意のストレージの復旧時に、復旧対象ストレージのストレージ番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージに関連する複数の関連ストレージ番号を算出し、算出した関連ストレージ番号で識別される複数のストレージに格納されているファイルの識別子に基づいて修復ファイルを特定して復旧対象ストレージを修復するストレージ修復管理手段を備えている点にある。
上述の構成によれば、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値は、ほぼランダムな値として生成されるため、そのようなハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージにファイルが格納されることにより、特定のストレージに集中することなく複数のストレージに分散して複数のファイルが格納されるようになる。そして、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージに冗長格納されるため、各ストレージにかかる負荷も同様に分散される。しかも、ファイルとファイルが格納されるストレージの関係を規定する管理データも必要がないため、システムへの格納ファイル数が増加しても、信頼性を確保しながらもクライアントからのファイル読み書きの要求に対して高速に応答することができるのである。さらに、例えば故障が発生したストレージを修復する等の場合には、復旧対象ストレージのストレージ番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されている複数のストレージ番号が算出されるため、算出されたストレージ番号で識別される複数のストレージに格納されているファイルの識別子に基づいて修復ファイルが容易に特定されるようになる。従って、全てのストレージを検索した結果に基づいて修復ファイルを特定する場合に比較して極めて迅速に復旧対象ストレージを修復することができるようになる。
同第二の特徴構成は、同請求項2に記載した通り、上述の第一特徴構成に加えて、前記ストレージ修復管理手段は、前記関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子と冗長化数に基づいて修復ファイルを特定する点にある。
上述の構成によれば、復旧対象ストレージに格納されていた可能性のあるファイルであって、関連ストレージ番号で識別されるストレージに格納されている識別子の等しいファイルの数が冗長化数無ければ、当該ファイルが修復対象ファイルであると特定することができるのである。
同第三の特徴構成は、同請求項3に記載した通り、上述の第一特徴構成に加えて、前記ストレージ修復管理手段は、前記関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージ、または、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージの何れかが復旧対象ストレージに該当するときに、当該ファイルを修復ファイルとして特定する点にある。
上述の構成によれば、復旧対象ストレージに格納されるべきファイルが冗長格納されている関連ストレージに格納されているファイルの識別子から冗長格納されるべきストレージが特定でき、そのような特定ストレージが復旧対象ストレージに該当するときに、当該ファイルが復旧対象ストレージに格納されるべきファイルであると特定することができるようになる。
同第四の特徴構成は、同請求項4に記載した通り、上述の第一から第三の何れかの特徴構成に加えて、前記可逆平準化関数は、モデュロ演算により選択されるストレージを管理するストレージ管理手段以外のストレージ管理手段により管理されるストレージを選択するように設定されている点にある。
ストレージ管理手段が故障すると、当該ストレージ管理手段により管理されるストレージの全てがアクセスできなくなるが、上述の構成により、異なるストレージ管理手段に管理されるストレージにファイルが冗長格納されるようになり、ストレージ管理手段の故障に対して信頼性の高いファイルの冗長格納が行なえるようになる。
同第五の特徴構成は、同請求項5に記載した通り、上述の第一から第四の何れかの特徴構成に加えて、前記ファイル管理手段は、ストレージの増設時に、前記ハッシュ値と増設後のストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージと、前記可逆平準化関数により求まるストレージ番号で識別されるストレージを新たな特定ストレージとして選択し、対応するファイルをコピーして冗長格納するとともに、増設前に格納されたファイルを削除する平準化処理手段を備えている点にある。
上述の構成によれば、ストレージが増設されると、既存のストレージに冗長格納された複数のファイルを改めて分散して再格納する必要が生じるが、その場合であっても、ファイルとファイルが格納されるストレージの記憶エリアを対照する管理情報を生成する必要が無く、任意のストレージに格納されているファイルが、その識別子を引数として算出されるハッシュ値と増設後のストレージ数に基づくモデュロ演算及び前記可逆平準化関数により選択されるストレージにファイルをコピーして、その後、元のファイルを削除すればよく、極めて簡単な処理の繰り返しで済む。
同第六の特徴構成は、同請求項6に記載した通り、単一または複数のストレージを個別に管理する複数のストレージ管理手段と、クライアントからの要求に基づいて前記ストレージの何れかに対してファイルを読み書き制御するファイル管理手段がネットワーク接続されたファイル格納システムであって、前記ファイル管理手段は、クライアントからのファイル格納要求に応答して、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段と、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段とを冗長格納する特定ストレージ管理手段として選択するとともに、前記特定ストレージ管理手段の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージを冗長格納する特定ストレージとして選択し、当該特定ストレージを管理する特定ストレージ管理手段夫々に対してファイル単位で格納処理を実行させる冗長格納管理手段と、任意のストレージの復旧時に、復旧対象ストレージを管理するストレージ管理手段のストレージ群番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージを管理するストレージ管理手段に関連する複数の関連ストレージ群番号を算出し、算出した関連ストレージ群番号で識別される複数のストレージ管理手段に管理されるストレージに格納されているファイルの識別子に基づいて修復ファイルを特定して復旧ストレージを修復するストレージ修復管理手段を備えている点にある。
例えば、複数のストレージ管理手段に管理されるストレージの台数が夫々異なるような場合には、可逆平準化関数の設定が困難になり、異なるストレージ管理手段に管理されるストレージに冗長格納することが困難となる場合も生じる。上述の構成によれば、そのような場合であっても、先ず冗長格納されるストレージ管理手段が平準化して選択され、その後、各ストレージ管理手段に管理されるストレージが平準化して選択されるようになるので、確実に異なるストレージ管理手段のストレージにファイルを冗長格納することができるようになる。
同第七の特徴構成は、同請求項7に記載した通り、上述の第六特徴構成に加えて、前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子及び冗長化数に基づいて修復ファイルを特定する点にある。
上述の構成によれば、復旧対象ストレージに格納されていた可能性のあるファイルであって、関連ストレージ群番号で識別されるストレージ管理手段に管理されるストレージに格納されている識別子の等しいファイルの数が冗長化数無ければ、当該ファイルが修復対象ファイルであると特定することができるのである。
同第八の特徴構成は、同請求項8に記載した通り、上述の第六または第七特徴構成に加えて、前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当するときに、当該ファイルを修復ファイルの候補として選択する点にある。
上述の構成によれば、復旧対象ストレージに格納されるべきファイルが冗長格納されている関連ストレージに格納されているファイルの識別子から冗長格納されるべきストレージが特定でき、そのような特定ストレージが復旧対象ストレージに該当するときに、当該ファイルが復旧対象ストレージに格納されるべきファイルの候補であると選択することができるようになる。
同第九の特徴構成は、同請求項9に記載した通り、上述の第六特徴構成に加えて、前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当し、前記ハッシュ値と当該ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージが復旧対象ストレージに該当するときに、当該ファイルを修復ファイルとして特定する点にある。
上述の構成によれば、復旧対象ストレージに格納されるべきファイルが冗長格納されている関連ストレージ群に管理されるストレージに格納されているファイルの識別子から冗長格納されるべきストレージが特定でき、そのような特定ストレージが復旧対象ストレージに該当するときに、当該ファイルが復旧対象ストレージに格納されるべきファイルであると特定することができるようになる。
同第十の特徴構成は、同請求項10に記載した通り、上述の第六から第九の何れかの特徴構成に加えて、前記ファイル管理手段は、ストレージ管理手段の増設時に、前記ハッシュ値と増設後のストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段と、前記可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段を新たな特定ストレージ管理手段として選択するとともに、前記特定ストレージ管理手段の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージを冗長格納する特定ストレージとして選択し、対応するファイルをコピーして冗長格納するとともに、増設前に格納されたファイルを削除する平準化処理手段を備えている点にある。
第五の特徴構成と同様に、ストレージが増設されると、既存のストレージに冗長格納された複数のファイルを改めて分散して再格納する必要が生じるが、その場合であっても、ファイルとファイルが格納されるストレージの記憶エリアを対照する管理情報を生成する必要が無く、確実に異なるストレージ管理手段のストレージに分散してファイルを再度冗長格納することができるようになる。
同第十一の特徴構成は、同請求項11に記載した通り、上述の第五または第十特徴構成に加えて、前記平準化処理手段は、ファイルの識別子を管理してファイル単位で平準化処理する点にある。
ストレージ単位で平準化処理を実行する場合には、あるストレージに格納されたファイルに対する平準化処理により他のストレージに移動したファイルが、当該移動先のストレージに対する平準化処理により再度平準化処理の対象となる虞があるが、上述の構成によれば、ファイル単位で平準化処理が管理されるので、異常な平準化処理を防ぎ、迅速に処理することができるようになる。
同第十二の特徴構成は、同請求項12に記載した通り、上述の第五または第十特徴構成に加えて、前記冗長格納管理手段は、前記平準化処理手段による平準化処理が終了するまでの間、クライアントからのファイル読出し要求に応答して、増設前のストレージ数に基づく冗長格納処理で選択される特定ストレージと、増設後のストレージ数に基づく冗長格納処理で選択される特定ストレージの何れかを当該ファイルが格納されたストレージとして特定するように構成されている点にある。
平準化処理手段による平準化処理が終了するまでの間は、増設前に冗長格納処理されたファイルと増設後に冗長格納処理されたファイルが並存する状態となる。上述の構成によれば、そのようなときにクライアントからのファイル読出し要求があっても、冗長格納管理手段により増設前と増設後の何れにも対応して当該ファイルが格納されたストレージを特定することができるようになるので、外部からの要求を受け付けながら平準化処理を行なうことができるようになるのである。
同第十三の特徴構成は、同請求項13に記載した通り、上述の第一から第十二の何れかの特徴構成に加えて、前記ストレージ管理手段は、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値に基づいて複数のディレクトリを生成するとともに、個別のハッシュ値に基づいて対応するファイルを何れかのディレクトリの配下に格納する点にある。
上述の構成によれば、格納すべきファイルがハッシュ値に基づいて生成された複数のディレクトリに何れかの配下に格納されるので、クライアントからのファイル読出し要求に対してハッシュ値を生成することにより、対応するファイルが格納されているディレクトリを特定することができ、ファイルの検索が迅速に行なえるようになる。
以上説明した通り、本発明によれば、ファイルとファイルが格納されるストレージの記憶エリアを対照する管理情報を持つことなく、クライアントからのファイルアクセス要求に対して高速に応答可能としながらも、故障などからの復旧処理が迅速に行なえるファイル格納システムを提供することができるようになった。
以下に、本発明によるファイル格納システムについて説明する。本発明によるファイル格納システム1は、図1に示すように、単一または複数のストレージ2を個別に管理する複数のストレージ管理手段3と、クライアントからの要求に基づいてストレージ2の何れかに対してファイルを読み書き制御するファイル管理手段5がローカルネットワーク6で接続され、ファイル管理手段5と複数のクライアント4が外部ネットワーク7を介して接続されて構成されている。
ファイル管理手段5は、各ストレージ管理手段3を統括して管理するとともに、クライアントからの読み書き要求に応答して各ストレージ管理手段3との間でデータを遣り取りする装置で、バッファメモリ56を介してクライアント4からのファイル読み書きの要求を処理するクライアント用ファイル受渡し手段50と、クライアント4から格納要求のあったファイルをファイル単位で冗長格納するとともに、読出し要求にあったファイルの格納のために格納先ストレージ2を選択する冗長格納管理手段51と、冗長格納管理手段51により選択された格納先ストレージ2を管理するストレージ管理手段3との間でバッファメモリ56を介してファイルを遣り取りするストレージ用ファイル受渡し手段54と、管理者に報知するために各ストレージ2の残容量や故障等の稼動状況を管理する稼動状況管理手段55と、ストレージ2の増設時に格納済みのファイルを平準化して再格納する平準化処理手段53と、任意のストレージの復旧時に、復旧対象ストレージを修復するストレージ修復管理手段52を備えて構成されている。
ファイル管理手段5は所定のOSプログラムの管理下で動作するパーソナルユースの電子計算機により構成され、上述の冗長格納管理手段51等の各機能ブロックは、OSプログラムまたはOSプログラムの管理下で動作するアプリケーションプログラム及び当該電子計算機のハードウェアリソースで構成されている。尚、ファイル管理手段5はサーバ機器や専用端末等で構成することも可能であり、上述のストレージ管理手段3の何れかに構築することも可能である。
ストレージ管理手段3の夫々は、管理対象となる複数のストレージ2に対してファイルの格納先ストレージ2に対するディレクトリを生成管理するとともに、ファイルの読み書きを管理するファイルシステム30と、各ストレージ2の稼動状態を検査するとともに、各ストレージ2に格納されたファイルの破損を検出する異常検出手段31と、破損したファイルを修復するファイル修復手段32等を備えて構成されている。
夫々のストレージ管理手段3はUSBやSCSI等の汎用のインタフェースを介して磁気ディスク装置でなる単一または複数のストレージ2が接続されたパーソナルユースの電子計算機により構成され、上述のファイルシステム30等の各機能ブロックはOSプログラムまたはOSプログラムの管理下で動作するアプリケーションプログラム及び当該電子計算機のハードウェアリソースで構成されている。尚、ストレージ管理手段3はファイルシステム機能を備えたサーバ機器や専用端末等で構成することも可能である。
クライアント用ファイル受渡し手段50は、例えば、マイクロソフト社から提供されるCIFS(Common Internet File System)等のファイル共有プロトコルに基づいて動作するように構成され、クライアント4からのファイル書込み要求に際して、クライアント4から受信したファイルをバッファメモリ56に記憶し、冗長格納管理手段51を作動させてファイルを格納すべきストレージ2を特定し、特定されたストレージ2への格納処理が完了するとクライアント4との通信を終了し、クライアント4からのファイル読出し要求に際して、冗長格納管理手段51を作動させてファイル格納先のストレージ2を特定し、ストレージ用ファイル受渡し手段54によりストレージ2から読み出されバッファメモリ56に記憶されたファイルをクライアント4へ送信して通信を終了する。
クライアント用ファイル受渡し手段50は、先ずファイルの読み書きの要求を行なうクライアント4との間でネゴシエーションを行ない、次にクライアント4の接続の認証を実行し、認証を確認するとクライアント4から該ファイル格納システム1の公開リソースであるストレージ2への接続を許容し、クライアント4からのストレージ2へのファイルの読み書き処理が可能となる。クライアント用ファイル受渡し手段50は、クライアント4から送信されたファイル操作コマンドを受信し、当該コマンドに対する結果をクライアント4に送信して作業が完了すると通信を終了する。
公開リソースは、当該ファイル格納システム1の全てのストレージ管理手段3が管理する個々のストレージ2が対象となり、個々のストレージ2の何れかにファイルが格納されるのであるが、クライアント用ファイル受渡し手段50は複数のストレージ2を仮想的に1つのストレージとしてクライアント4に公開するように構成されているため、クライアント4からは仮想的に大容量の一つのネットワークストレージ装置が外部ネットワークに接続されているように認識される。
当該ファイルシステム1は仮想的な1つのネットワークストレージに対して全てのファイルが仮想的に同一のディレクトリに格納されることになるため、クライアント4はファイルを格納するストレージ2やディレクトリを意識することなく該ファイル格納システム1を使用することができる。従って、CIFSのコマンドには、ディレクトリ作成や削除のコマンドは許可されておらず、格納されるファイルの識別子にはユニークなファイルの識別子が設定される必要がある。
クライアント用ファイル受渡し手段50は、クライアント4から既に記憶されたファイルと同一識別子を持つファイルの書込み要求があると、当該クライアント4にファイルの識別子を変更するように警告し、読み出したファイルに変更を加えた後に上書き保存することも禁止するように構成され、格納されたファイルの信頼性及び安全性が確保されたファイル格納システムが実現される。
尚、このようなファイル格納システムにファイルを格納する場合には、格納されたファイルの識別子を各クライアント4側で管理しておく必要があり、例えばCTやMRI等のモダリティ装置で取得された医療用画像を管理するファイルサーバのバックアップ用ファイル格納システムとして好適に使用することができる。
以下に、N(Nは正整数値)台のストレージ管理手段3の夫々にM(Mは正整数値)台のストレージ2が接続されている場合、つまり、M×Nのマトリクス状に配列されたストレージ2が接続されている場合を例にファイル格納システム1の具体的な構成及び動作について詳述する。
図2に示すように、稼動状況管理手段55は、各ストレージ管理手段3に「0」から始まる昇順の整数値であるストレージ群番号、各ストレージ管理手段3の配下にあるM台のストレージ2の夫々に「0」から始まる昇順の整数値であるローカルストレージ番号、さらに、ストレージ群番号の昇順に沿って対応するストレージ管理手段3により管理されるストレージ2の夫々に「0」から始まる昇順の整数値であるストレージ番号を割り振り、ストレージ管理手段3及びストレージ2夫々の故障の有無を示す故障フラグや残容量等の稼動状態を管理する稼動状況テーブル57を生成して管理している。
つまり、稼動状況管理手段55は、ストレージ管理手段3夫々を個別に識別するためにユニークなストレージ群番号を付し、ストレージ2夫々を個別に識別するためにユニークなストレージ番号を付した稼動状況テーブル57を生成して管理している。そして、稼動状況テーブル57のこれらの値は対応するストレージ管理手段3と共有されている。例えば、システムの構築時に管理者により各ストレージ管理手段及びストレージにストレージ群番号及びローカルストレージ番号が付与され、夫々が自己を認識可能に設定されていればよく、稼動状況管理手段55がこれらの管理番号を吸い上げて稼動状況テーブル57を生成するように構成すればよい。
図3に示すように、稼動状況管理手段55は、システムの起動時(SA1)、または起動後の所定時間間隔で(SA2)、さらには管理者の操作時(SA3)に、接続されている全てのストレージ管理手段3に対して、夫々が管理するストレージ数及び稼動状況を報告するよう要求し(SA4)、報告に基づいて上述の稼動状況テーブルを生成する(SA5)。システムの起動前に保持していた従前の稼動状況テーブル57と今回生成した稼動状況テーブル57を比較して、相違が生じていると(SA6)、今回作成した稼動状況テーブル57を更新稼動状況テーブル57として従前の稼動状況テーブル57とは別に保持し(SA7)、相違が無ければ(SA6)、今回生成した稼動状況テーブル57を削除する(SA8)。
システムに接続されているストレージ管理手段の数またはストレージ数に変動が生じたときに、必要な処理を行なうために従前の更新稼動状況テーブル57と更新稼動状況テーブルを備えるのであり、稼動状況管理手段55は、例えば、システムに新たなストレージ管理手段3またはストレージ2が増設されたときには平準化処理手段53を起動させ、故障またはシステムから一時切り離されていた任意のストレージが再接続された復旧時にはストレージ修復管理手段52を起動させ、定常処理では冗長格納管理手段51による故障中のストレージへのアクセスを回避する。
定常処理において、冗長格納管理手段51は、クライアント4からのファイル格納要求に応答してクライアント用ファイル受渡し手段50から起動されると、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージ2と、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージ2とを冗長格納する特定ストレージとして選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3夫々に対してファイル単位で格納処理を実行させる。
稼動状況テーブル57に基づいて特定ストレージの何れかが故障等により停止していると判断されるときには、正常稼動している特定ストレージ2を管理するストレージ管理手段3夫々に対してファイル単位で格納処理を実行させる。
また、冗長格納管理手段51は、クライアント4からのファイル読出し要求に応答してクライアント用ファイル受渡し手段50から起動されると、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージ2を特定ストレージとして選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3からファイルの読出し処理を実行させる。
当該特定ストレージが稼動状況テーブル57に基づいて故障等により停止していると判断されるときには、当該特定ストレージのストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージ、つまり、冗長格納されている特定ストレージを選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3からファイルの読出し処理を実行させる。
本実施形態では、所定のハッシュ関数としてMD5(Message Digest 5)が採用され、図4に示すように、冗長格納管理手段51はクライアント4から格納要求のあったファイルの識別子であるファイルネームを引数として128bitのハッシュ値を算出し(SB1)、その下位8バイトの値を当該ファイル格納システム1に備える全てのストレージ数で除した余りを算出するモデュロ演算f=mod(ハッシュ値、ストレージ台数(最大ストレージ番号+1))を行ない(SB2)、得られた値に相当するストレージ番号が割り振られたストレージ2をファイル格納するための1台目の特定ストレージ2として選択する(SB3)。尚、128bitのハッシュ値に対してモデュロ演算fを実行するものであってもよく、モデュロ演算のためのハッシュ値の桁数は適宜設定すればよい。
次にファイルの二重冗長格納を行うために、1台目の特定ストレージ2を管理するストレージ管理手段3に割り振られたストレージ群番号に所定の整数値を加算または減算した値に相当するストレージ群番号が割り振られたストレージ管理手段3を特定し、そのストレージ管理手段3によって管理されるストレージ2のうち1台目の特定ストレージ2に割り振られたローカルストレージ番号と同じ値のローカルストレージ番号が割り振られたストレージ2を2台目の特定ストレージとして選択する(SB4)。
つまり、モデュロ演算により求まるストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージ2を冗長格納する特定ストレージとして選択するのである。ここで、可逆平準化関数とは、ストレージ番号を引数(変数)として算出される値が引数とは異なる値として出力され、ファイルを格納するストレージ2が分散化されるような可逆関数をいう。
上述のように、ストレージ管理手段3の台数がM、各ストレージ管理手段3により管理されるストレージ2の台数がNとなるマトリクス状に構成されたストレージの場合には、モデュロ演算により求まるストレージ番号をPとして、可逆平準化関数g(P)を(数1)に示すように設定することができる。また、他の例として可逆平準化関数q(P)を(数2)に示すように設定することができる。
Figure 0004881172
ここに、Kは冗長格納数−1の整数値である。
Figure 0004881172
ここに、Kは冗長格納数−1の整数値である。
従って、二重冗長の場合にはK=1とするg(P)の値をストレージ番号とする1台のストレージが2台目の特定ストレージとして選択され、三重冗長の場合にはK=1,2とするg(P)の値をストレージ番号とする2台目及び3台目のストレージが特定ストレージとして選択される。
具体的に、図9(a)に示すように、ストレージ管理手段3の台数M=4、各ストレージ管理手段3により管理されるストレージ2の台数N=3、合計12台のストレージ2に対して二重冗長される場合、モデュロ演算により求まるストレージ番号P=3とすると、g(3)=3+3×1=6となり、ストレージ番号3,6の2台のストレージ2(図中、ハッチングで示すストレージ)が選択される。また、図9(b)に示すように、ストレージ管理手段3の台数M=4、各ストレージ管理手段3により管理されるストレージ2の台数N=3、合計12台のストレージ2に対して三重冗長される場合、モデュロ演算により求まるストレージ番号P=2とすると、g(2)=2+3×1=5(K=1)、g(2)=2+3×2=8(K=2)となり、ストレージ番号2,5,8の3台のストレージ2(図中、ハッチングで示すストレージ)が選択される。
(数1)や(数2)に示す可逆平準化関数g、qは、モデュロ演算fにより選択されるストレージ2を管理するストレージ管理手段3以外のストレージ管理手段3により管理されるストレージ2を特定ストレージとして選択するように設定されているため、必ず異なるストレージ管理手段3に管理されるストレージ2にファイルが冗長格納されるようになり、ストレージ管理手段3の故障に対して信頼性の高いファイルの冗長格納が行なえるのであるが、可逆平準化関数はこれに限るものではない。つまり、同一のストレージ管理手段3に管理される異なるストレージ2が冗長格納のためのストレージ2として選択されるように可逆平準化関数を設定するものであってもよい。
また、(数1)や(数2)に示す可逆平準化関数g、qは例示に過ぎず、このような関数に限定されるものでもなく、また、冗長格納数に応じて複数の異なる可逆平準化関数が設定されるものであってもよい。
冗長格納するべき特定ストレージを選択すると、冗長格納管理手段51は稼動状況テーブル57に基づいて正常稼動している特定ストレージを選択して(SB5)、ストレージ用ファイル受渡し手段54を起動し(SB6)、当該特定ストレージ2を管理するストレージ管理手段3夫々に対してファイル単位で格納処理を実行させる(SB7)。
ストレージ用ファイル受渡し手段54は、バッファメモリ56に蓄積されているファイルを各特定ストレージに冗長格納する際に、ストレージ単位で格納処理を順次実行してもよいし、複数のストレージに並行して格納処理を実行してもよい。このようにしてファイルの格納処理が終了すると(SB8)、クライアント用ファイル受渡し手段50によりクライアント4との通信が終了される(SB8)。
本システムでは、選択された全ての特定ストレージが同時に故障しているときには、クライアント4からの要求が拒絶されるが、そのような場合は極めて少なく実稼動に問題は生じない。また、何れかのストレージ2が故障しているときには、後述のストレージ修復管理手段52により修復されるように構成されている。
クライアント4からのファイル読出し要求に対しても同様の処理により特定ストレージが選択され、その後起動されるストレージ用ファイル受渡し手段54により該当するファイルが読み出されてバッファメモリ56に格納され、クライアント用ファイル受渡し手段50を介してクライアント4に出力される。
具体的に、図10に示すように、ストレージ管理手段3の台数M=4、各ストレージ管理手段3により管理されるストレージ2の台数N=3、合計12台のストレージ2に対して二重冗長されている場合、冗長格納管理手段51は、モデュロ演算を実行してストレージ番号を算出する。今、ストレージ番号P=2と算出されると、ストレージ番号P=2で識別されるストレージを特定ストレージとして選択し、ストレージ用ファイル受渡し手段54を起動して当該特定ストレージから該当するファイルが読み出されるように制御するのである。ここで、稼動状況テーブル57に基づいてストレージ番号P=3で識別されるストレージが故障等により停止していると判断されるときには、可逆平準化関数により冗長格納ストレージを選択してストレージ用ファイル受渡し手段54を起動する。この場合、g(3)=2+3×1=5となり、ストレージ番号5のストレージ2が選択される。
ストレージ管理手段3に設けられたファイルシステム30は、ストレージ用ファイル受渡し手段54からのファイル格納要求に対して、ファイル管理手段5からファイルの識別子に対するハッシュ値を取得し、当該ハッシュ値に基づいて複数のディレクトリを生成するディレクトリ生成手段33を備え、個別ファイルに対するハッシュ値に基づいて対応するファイルを何れかのディレクトリの配下に格納するように構成されている。
例えば、各ファイルシステム30は、128ビットのハッシュ値の上位8バイトの値に基づいて上位のディレクトリを生成し、その配下に次の下位4バイトの値に基づいて下位のディレクトリを生成する等、ハッシュ値に基づいて階層化されたディレクトリを生成し、格納要求のあったファイルのハッシュ値が属するディレクトリに当該ファイルを格納する。ディレクトリの名称は夫々のハッシュ値の対応するバイトで構成される数値そのものであってもよいし、その数値を変換テーブルにより文字コードに変換したものでもよい。
このように階層化されたディレクトリに対応するファイルを格納することにより、ファイルのアクセス速度を向上させることが可能になる。つまり、ファイルの読出し要求に対応して当該ファイルのハッシュ値に基づいて検索対象となるディレクトリを一意に特定することができるようになるのである。尚、ファイルシステム30で取り扱われるハッシュ値は、ファイル管理手段5から取得するものとしたが、ファイルシステム30内でファイルの識別子を引数とするハッシュ値を算出するものであってもよい。後者の場合には、ファイル管理手段5で採用されるハッシュ関数と異なる別のハッシュ関数を採用することも可能である。
さらに、ストレージ管理手段3に設けられた異常検出手段31は、ファイルの格納時に、当該ファイルのファイルデータを引数とするハッシュ関数によりファイルデータのハッシュ値を算出し、当該ハッシュ値をファイルの識別子と関連付けた照合用データとしてストレージ2に格納するように構成され、深夜等の所定時間またはファイル管理手段5からの指示に基づいて個々のファイルデータを読み出してファイルデータのハッシュ値を算出し、前記照合用データと比較することによりファイルの破損を検出するように構成されている。照合用データと算出されたハッシュ値が一致するときには正常と判断し、不一致のときにはファイル破損または改竄と判断するものである。
異常検出手段31は、定期的に各ストレージに対して接続確認し、任意の検証データを所定領域に書き込み、ベリファイしてハードディスクの状態を管理するとともに、残容量を確認して、ストレージの接続状態、故障状態、残容量等の稼動状況データを管理する。当該稼動状況データを受信したファイル管理手段5により上述の稼動状況テーブル57が生成されるのである。
異常検出手段31によりファイルの破損が検出されると、ファイル修復手段32が起動され、ファイルの修復処理が実行される。具体的には、当該破損ファイルのファイル識別子がファイル管理手段5の冗長格納管理手段51に送られて、冗長格納管理手段51によりファイル識別子に基づいて冗長格納された他のストレージ管理手段3が割り出され、当該他のストレージ管理手段3に対して同一ファイルを修復ファイルとして転送するように指令するのである。当該他のストレージ管理手段3から転送された修復ファイルを受信したファイル修復手段32は、破損ファイルに代えて修復ファイルを格納することによりファイルの修復を終了する。
尚、複数回の修復処理で修復されないときには、同一ストレージ内で格納領域を変更して格納することにより、ハードディスクの部分的破損に対処することも可能であり、初回の修復時に同一ストレージ内で格納領域を変更して格納するものでもよい。
図5に示すように、稼動状況管理手段55は上述した稼動状況テーブル57を更新したとき、またはシステムの負荷が低い所定時間に、従前の稼動状況テーブル57と比較して故障中のストレージ2が正常に戻り、またはシステムから切り離されていたストレージ2が再度接続されたことを検出すると(SC1)、ストレージ修復管理手段52を起動する(SC2)。
ストレージ修復管理手段52は、任意のストレージ2の復旧時に、復旧対象ストレージ2のストレージ番号と上述した可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されている複数の関連ストレージ番号を算出し、算出した関連ストレージ番号で識別される複数のストレージに格納されているファイルの識別子に基づいて修復ファイルを特定して復旧対象ストレージを修復するように構成されている。
ストレージ修復管理手段52は、稼動状況管理手段55から復旧したストレージのストレージ番号を受け取り(SC3)、当該ストレージ番号が、上述のモデュロ演算により求められたストレージ番号であった場合、または、可逆平準化関数により求められたストレージ番号であった場合の何れかを想定して、(数1)の可逆平準化関数に基づいて、冗長格納された他の関連ストレージ番号を算出する(SC4)。
具体的に、図11(a)に示すように、ストレージ管理手段の台数M=4、各ストレージ管理手段により管理されるストレージの台数N=3、合計12台のストレージに対してあるファイルが二重冗長されるとき、モデュロ演算により求まるストレージ番号P=1とすると、可逆平準化関数g(1)=1+3×1=4となり、ストレージ番号1,4の2台のストレージが特定ストレージとして冗長格納管理手段51により選択されているような場合を考える。
復旧対象ストレージのストレージ番号が1の場合を想定すると、ストレージ番号が1のストレージには可逆平準化関数によりストレージ番号10または4の何れかのストレージに冗長格納された同一のファイルが存在し、復旧対象ストレージのストレージ番号が4の場合を想定すると、ストレージ番号が4のストレージにはストレージ番号1または7の何れかのストレージに冗長格納された同一のファイルが存在していることになる。
つまり、図11(b)に示すように、復旧対象ストレージのストレージ番号が1の場合には、ストレージ番号10または4に格納されているファイルの何れかが復旧対象ファイルとなるが、さらにストレージ番号10のストレージにはストレージ番号7または1のストレージに冗長格納された同一のファイルが存在し、ストレージ番号4のストレージにはストレージ番号1または7のストレージに冗長格納された同一のファイルが存在する。
従って、ストレージ番号10のストレージに格納されているファイルの中でストレージ番号7のストレージに格納されているファイルの識別子と同一の識別子のファイルを除いたファイル、言い換えれば冗長格納数2に満たないファイルが復旧対象ストレージ(ストレージ番号が1のストレージ)に修復されるファイルとして特定することができ、同様に、ストレージ番号4のストレージに格納されているファイルの中でストレージ番号7のストレージに格納されているファイルの識別子と同一の識別子のファイルを除いたファイル、言い換えれば冗長格納数2に満たないファイルが復旧対象ストレージ(ストレージ番号が1のストレージ)に修復されるファイルとして特定することができるのである。
つまり、ストレージ修復管理手段52はこのような復旧対象ストレージのストレージ番号1と可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージと当該ストレージに格納されているファイルが冗長格納されているストレージのストレージ番号4,7,10を、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージに関連する複数の関連ストレージ番号として算出するのである。
次に、算出した関連ストレージに対して、ファイルの識別子と冗長化数に基づいて修復ファイルを特定する(SC5)。ここでは二重冗長されているので、冗長化数は2である。ストレージ番号4,7のストレージに格納されているファイルの識別子に重複している識別子があるか否かを判別して、ストレージ番号4のストレージにのみ格納されているファイルの識別子を修復ファイルとして特定し、同様に、ストレージ番号7,10のストレージに格納されているファイルの識別子に重複している識別子があるか否かを判別して、ストレージ番号10のストレージにのみ格納されているファイルの識別子を修復ファイルとして特定するのである。つまり、ストレージ修復管理手段は、関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子と冗長化数に基づいて修復ファイルを特定するのである。
その後、特定された修復ファイルを管理しているストレージ管理手段3から修復されたストレージ2のストレージ管理手段3に対象ファイルを転送するように指示することにより(SC6)、復旧対象ストレージに格納されていたファイルが修復されると新たな稼動状況テーブル57に復旧完了フラグをリセットして復旧処理を終了する(SC7)。尚、復旧完了フラグは新たな稼動状況テーブル57が生成されるときにセットされ、リセットされるまでは従前の稼動状況テーブル57に基づいて定常処理が実行される。
さらに、ストレージ修復管理手段52によるストレージの修復処理の別の手順を説明する。ストレージ修復管理手段52は、関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子を読み出して、当該識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により特定ストレージのストレージ番号、及び/または、当該ストレージ番号を引数とする可逆平準化関数により冗長格納される特定ストレージのストレージ番号を求めて、それら特定ストレージのストレージ番号が復旧対象ストレージのストレージ番号と一致するか否かを判断し、一致する場合に当該ファイルを修復ファイルとして特定するものであってもよい。この場合には、関連ストレージ番号は復旧対象ストレージのストレージ番号と可逆平準化関数に基づいて求まる復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージのストレージ番号となる。図11の例では、復旧対象ストレージのストレージ番号1に対してストレージ番号4,10が関連ストレージ番号となる。
このような手順によれば、関連ストレージ番号のストレージの全てのファイルの冗長化数を識別することなく、ファイルの識別子に基づいて修復ファイルを特定することができる。
図6に示すように、稼動状況管理手段55は上述した稼動状況テーブル57を更新したとき、またはシステムの負荷が低い所定時間に、従前の稼動状況テーブル57と比較して新たなストレージ2またはストレージ管理手段3が増設されたことを検出すると(SD1)、平準化処理手段53を起動して全てのストレージ2に格納されているファイルの平準化処理を開始する(SD2)。
平準化処理手段53は、ストレージの増設時に、前記ハッシュ値と増設後のストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージと、前記可逆平準化関数により求まるストレージ番号で識別されるストレージを新たな特定ストレージとして選択し、対応するファイルをコピーして冗長格納するとともに、増設前に格納されたファイルを削除する。
平準化処理手段53は、先ず、ストレージ番号の順にストレージに格納されているファイルの識別子を読み取り(SD3)、従前の稼動状況テーブル57によるストレージ数に基づいて、上述のハッシュ値、モデュロ演算値、及び可逆平準化関数値を算出して当該識別子に対応するファイルが冗長格納されていたストレージを特定するとともに(SD4)、新たな稼動状況テーブル57に基づいて上述のハッシュ値、モデュロ演算値、及び可逆平準化関数値を算出して新たに冗長格納すべき特定ストレージを選択する(SD5)。
次に、対象となるストレージ管理手段3に当該ファイルをコピーするように指令する(SD6)。コピー処理が終了すると(SD7)、元のストレージ2に格納されていたファイルを消去するように指令する(SD8)。
ステップSD3からステップSD8までを全てのストレージ2に対して繰り返し、終了すると(SD8)、更新稼動状況テーブル57の平準化完了フラグ(図2には示していない)をリセットして平準化処理を終了する(SD9)。尚、平準化完了フラグは更新稼動状況テーブル57が生成されるときにセットされ、リセットされるまでは従前の稼動状況テーブル57または更新稼動状況テーブル57に基づいて定常処理が実行される。そして、平準化処理が終了するまでの間、つまり平準化完了フラグがリセットされるまでの間は、稼動状況管理手段55により更新された更新稼動状況テーブル57と、従前の稼動状況テーブル57の双方が保持され、平準化完了フラグがリセットされるときに従前の稼動状況テーブル57が消去される。
平準化処理手段53による平準化処理が終了するまでの間は、増設前に冗長格納処理されたファイルと増設後に平準化により冗長格納処理されたファイルが並存する状態となる。このような期間にクライアントからのファイル読出し要求が発生すると、冗長格納管理手段51は、従前の稼動状況テーブル57に基づいて増設前のストレージ数に基づく冗長格納処理で選択される特定ストレージと、新たな稼動状況テーブル57に基づいて増設後のストレージ数に基づく冗長格納処理で選択される特定ストレージの何れかから当該ファイルが格納されたストレージを特定した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3からファイルの読出し処理を実行させる。
また、平準化処理手段53による平準化処理が終了するまでの間に、クライアントからのファイル格納要求が発生すると、クライアント用ファイル受渡し手段50から起動された冗長格納管理手段51は、更新稼動状況テーブル57に基づいて増設後のストレージ数に基づく冗長格納処理、つまり、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージ2と、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージ2とを冗長格納する特定ストレージとして選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3夫々に対してファイル単位で格納処理を実行させる。
上述の平準化処理に際して、平準化処理手段53は、ファイルの識別子を管理してファイル単位で平準化処理するように構成されている。例えば、平準化が完了したファイルの識別子をメモリに区画された一時管理テーブルに記録するように構成して、各ストレージに平準化されたファイルが再度平準化対象とならないように管理するのである。さらには、上述した定常処理、修復処理及び平準化処理時に、書込み時間を示すタイムスタンプとともにファイルを書き込むように構成し、平準化処理が開始された時刻より過去のタイムスタンプが付されたファイルのみ平準化対象ファイルとして管理するものであってもよい。
以上、N台のストレージ管理手段3の夫々にM台のストレージ2が接続されている場合、つまり、M×Nのマトリクス状に配列されたストレージ2が接続されている場合について説明したが、以下に、N(Nは正整数値)台のストレージ管理手段3の夫々に異なる台数のストレージ2が接続されている場合について、冗長格納管理手段51及びストレージ修復管理手段52の動作について詳述する。尚、以下の説明では、上述の例で説明した処理と同様の処理を実行するブロックについては説明を割愛する。
定常処理において、冗長格納管理手段51は、クライアント4からのファイル格納要求に応答してクライアント用ファイル受渡し手段50から起動されると、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段3と、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段3とを冗長格納する特定ストレージ管理手段3として選択するとともに、前記特定ストレージ管理手段3の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるローカルストレージ番号で識別されるストレージを冗長格納する特定ストレージとして選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理する特定ストレージ管理手3段夫々に対してファイル単位で格納処理を実行させる。
また、冗長格納管理手段51は、クライアント4からのファイル読出し要求に応答してクライアント用ファイル受渡し手段50から起動されると、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段3を特定ストレージ管理手段3として選択し、当該特定ストレージ管理手段3に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるローカルストレージ番号で識別されるストレージを特定ストレージとして選択した後に、ストレージ用ファイル受渡し手段54を起動して、当該特定ストレージ2を管理するストレージ管理手段3からファイルの読出し処理を実行させる。
本実施形態でも、所定のハッシュ関数としてMD5(Message Digest 5)が採用され、図7に示すように、冗長格納管理手段51はクライアント4から格納要求のあったファイルの識別子であるファイルネームを引数として128bitのハッシュ値を算出し(SE1)、その下位8バイトの値を当該ファイル格納システム1に備える全てのストレージ管理手段3の総数であるストレージ群数で除した余りを算出するモデュロ演算u=mod(ハッシュ値、ストレージ群数)を行ない(SE2)、得られた値に相当するストレージ群番号が割り振られたストレージ管理手段3をファイル格納するためのストレージを管理する1台目の特定ストレージ管理手段3として選択する(SE3)。尚、128bitのハッシュ値に対してモデュロ演算uを実行するものであってもよく、モデュロ演算のためのハッシュ値の桁数は適宜設定すればよい。
次にファイルの二重冗長格納を行うために、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段3とを冗長格納する特定ストレージ管理手段3として選択する(SE4)。
ここで、可逆平準化関数とは、ストレージ群番号を引数(変数)として算出される値が引数とは異なる値として出力され、ファイルを格納するストレージを管理するストレージ管理手段3が分散化されるような可逆関数をいう。例えば、ストレージ管理手段3の台数がMとし、選択されたストレージ管理手段3のストレージ群番号をmとするとき、可逆平準化関数vは、(数3)のように定義することができる。
Figure 0004881172
ここに、Kは冗長格納数−1の整数値である。
次に、特定ストレージ管理手段3の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段3により管理されるストレージ数(つまりローカルストレージ番号の最大数+1)に基づくモデュロ演算w=mod(ハッシュ値、ローカルストレージ台数)により求まるローカルストレージ番号で識別されるストレージ2を冗長格納する特定ストレージとして夫々選択する(SE5)。
具体的に、図12(a)に示すように、ストレージ管理手段3の台数M=4(ストレージ群番号0〜3)、各ストレージ管理手段3により管理されるストレージ2の台数(4,2,4,3台)、合計13台のストレージ2に対して二重冗長される場合、モデュロ演算uにより求まるストレージ群番号m=2とすると、v(2)=2+1=3となり、ストレージ群番号2,3の2台の特定ストレージ管理手段3(図中、ハッチングで示すストレージ管理手段)が選択される。
次に、図12(b)に示すように、選択された特定ストレージ管理手段3の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段3により管理されるストレージ数に基づくモデュロ演算wにより求まるローカルストレージ番号で識別されるストレージ2が冗長格納する特定ストレージ(図中、ハッチングで示すストレージ)として夫々選択される。
(数3)に示す可逆平準化関数vは、モデュロ演算uにより選択されるストレージ2を管理するストレージ管理手段3以外のストレージ管理手段3を特定ストレージ管理手段として選択するように設定されているため、必ず異なるストレージ管理手段3に管理されるストレージ2にファイルが冗長格納されるようになり、ストレージ管理手段3の故障に対して信頼性の高いファイルの冗長格納が行なえるのであるが、可逆平準化関数はこれに限るものではない。
また、(数3)に示す可逆平準化関数vは例示に過ぎず、このような関数に限定されるものでもなく、また、冗長格納数に応じて複数の異なる可逆平準化関数が設定されるものであってもよい。
冗長格納するべき特定ストレージを選択すると、冗長格納管理手段51は稼動状況テーブル57に基づいて正常稼動している特定ストレージを選択して(SE6)、ストレージ用ファイル受渡し手段54を起動し(SE7)、当該特定ストレージ2を管理するストレージ管理手段3夫々に対してファイル単位で格納処理を実行させる(SE8)。
ストレージ用ファイル受渡し手段54は、バッファメモリ56に蓄積されているファイルを各特定ストレージに冗長格納する際に、ストレージ単位で格納処理を順次実行してもよいし、複数のストレージに並行して格納処理を実行してもよい。このようにしてファイルの格納処理が終了すると(SE8)、クライアント用ファイル受渡し手段50によりクライアント4との通信が終了される(SE9)。
クライアント4からのファイル読出し要求に対しても、上述した同様の処理により特定ストレージが選択され、その後起動されるストレージ用ファイル受渡し手段54により該当するファイルが読み出されてバッファメモリ56に格納され、クライアント用ファイル受渡し手段50を介してクライアント4に出力される。
ストレージ修復管理手段52は、任意のストレージ2の復旧時に、復旧対象ストレージを管理するストレージ群番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されている複数の関連ストレージ群番号を算出し、算出した関連ストレージ群番号で識別される複数のストレージ管理手段3により管理されるストレージ2に格納されているファイルの識別子と冗長化数に基づいて修復ファイルを特定して復旧対象ストレージを修復する。
図8に示すように、稼動状況管理手段55は上述した稼動状況テーブル57を更新したとき、またはシステムの負荷が低い所定時間に、従前の稼動状況テーブル57と比較して故障中のストレージ2が正常に戻り、またはシステムから切り離されていたストレージ2が再度接続されたことを検出すると(SF1)、ストレージ修復管理手段52を起動する(SF2)。
ストレージ修復管理手段52は、稼動状況管理手段55から復旧したストレージを管理するストレージ管理手段3のストレージ群番号を受け取り(SF3)、当該ストレージ群番号が、上述のモデュロ演算により求められたストレージ群番号であった場合、または、可逆平準化関数により求められたストレージ群番号であった場合の何れかを想定して、(数3)の可逆平準化関数に基づいて、冗長格納された他の関連ストレージ群番号を算出する(SF4)。
具体的に、図13に示すように、ストレージ管理手段3の台数M=8、各ストレージ管理手段により管理されるストレージの台数(4,2,4,3,4,2,2,3台)、合計24台のストレージ2に対してあるファイルが二重冗長されるとき、モデュロ演算uにより求まるストレージ群番号m=3とすると、可逆平準化関数v(3)=3+1=4となり、ストレージ群番号3、4の2台のストレージ管理手段3が冗長格納管理手段51により選択されているような場合を考える。
復旧対象ストレージを管理するストレージ管理手段のストレージ群番号が3の場合を想定すると、ストレージ群番号が3のストレージ管理手段には可逆平準化関数vによりストレージ群番号2または4の何れかのストレージ管理手段により管理される何れかのストレージに冗長格納された同一のファイルが存在し、復旧対象ストレージを管理するストレージ管理手段のストレージ群番号が4の場合を想定すると、ストレージ群番号が4のストレージ管理手段には可逆平準化関数によりストレージ群番号3または5の何れかのストレージ管理手段により管理される何れかのストレージに冗長格納された同一のファイルが存在していることになる。
つまり、図13に示すように、復旧対象ストレージを管理するストレージ管理手段のストレージ群番号が3の場合には、ストレージ群番号2または4のストレージ管理手段により管理されている何れかのストレージに格納されているファイルの何れかが復旧対象ファイルとなるが、さらにストレージ群番号2のストレージ管理手段にはストレージ群番号1または3のストレージ管理手段により管理されている何れかのストレージに冗長格納された同一のファイルが存在し、ストレージ群番号4のストレージ管理手段にはストレージ群番号3または5のストレージ管理手段により管理されている何れかのストレージに冗長格納された同一のファイルが存在する。
従って、ストレージ群番号2のストレージ管理手段により管理される何れかのストレージに格納されているファイルの中でストレージ群番号1のストレージ管理手段により管理される何れかのストレージに格納されているファイルの識別子と同一の識別子のファイルを除いたファイル、言い換えれば冗長格納数2に満たないファイルが復旧対象ストレージを管理するストレージ管理手段(ストレージ群番号が3のストレージ管理手段)により管理される何れかのストレージに格納されるファイルとして特定することができ、同様に、ストレージ群番号4のストレージ管理手段により管理される何れかのストレージに格納されているファイルの中でストレージ群番号5のストレージ管理手段により管理される何れかのストレージに格納されているファイルの識別子と同一の識別子のファイルを除いたファイル、言い換えれば冗長格納数2に満たないファイルが復旧対象ストレージを管理するストレージ管理手段(ストレージ群番号が3のストレージ管理手段)により管理される何れかのストレージに格納されるファイルとして特定することができるのである。
つまり、ストレージ修復管理手段52はこのような復旧対象ストレージを管理するストレージ管理手段のストレージ群番号と可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージを管理するストレージ管理手段と当該ストレージ管理手段に管理されるストレージに格納されているファイルが冗長格納されているストレージを管理するストレージ管理手段のストレージ群番号1,2,3,4,5を、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージ管理手段に関連する複数の関連ストレージ群番号として算出するのである。
次に、算出した関連ストレージ管理手段に対して、ファイルの識別子と冗長化数に基づいて修復ファイルを特定する(SF5)。ここでは二重冗長されているので、冗長化数は2である。ストレージ群番号1、2、3のストレージ管理手段に管理される各ストレージに格納されているファイルの識別子に重複している識別子があるか否かを判別して、ストレージ群番号2のストレージ管理手段に管理されているストレージ2にのみ格納されているファイルの識別子を修復ファイルとして特定し、同様に、ストレージ群番号3、4、5のストレージ管理手段に管理されている各ストレージに格納されているファイルの識別子に重複している識別子があるか否かを判別して、ストレージ群番号4のストレージ管理手段に管理されているストレージにのみ格納されているファイルの識別子を修復ファイルとして特定するのである。
つまり、ストレージ修復管理手段は、関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子及び冗長化数に基づいて修復ファイルを特定するように構成されている。
その後、特定された修復ファイルを管理しているストレージ管理手段3から修復されたストレージ2のストレージ管理手段3に対象ファイルを転送するように指示することにより、復旧対象ストレージに格納されていたファイルが修復されると新たな稼動状況テーブル57の復旧完了フラグをリセットして復旧処理を終了する(SF6)。尚、復旧完了フラグは新たな稼動状況テーブル57が生成されるときにセットされ、リセットされるまでは従前の稼動状況テーブル57に基づいて定常処理が実行される。そして、平準化処理が終了するまでの間、つまり平準化完了フラグがリセットされるまでの間は、稼動状況管理手段55により更新された新たな稼動状況テーブル57と、従前の稼動状況テーブル57の双方が保持され、平準化完了フラグがリセットされるときに従前の稼動状況テーブル57が消去される。
平準化処理手段53による平準化処理が終了するまでの間にクライアントからのファイル読出し要求が発生した場合の読出し処理は上述と同様である。また、平準化処理手段53による平準化処理が終了するまでの間に、クライアントからのファイル格納要求が発生した場合の格納処理も上述と同様に更新稼動状況テーブル57に基づいて増設後のストレージ数に基づく冗長格納処理が行なわれる。
以下に、ストレージ修復管理手段52によるストレージの修復処理の別の手順を説明する。ストレージ修復管理手段52は、関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、及び/または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当するときに、当該ファイルを修復ファイルの候補として特定し、候補となったファイルの識別子と冗長化数に基づいて修復ファイルを特定するように構成することにより、修復ファイルの特定処理を効率的に行なうことができる。
二重冗長する上述の例ではストレージ管理手段のストレージ群番号2,3,4が関連ストレージ群番号となり、例えば、ストレージ群番号2のストレージ管理手段により管理される何れかのストレージに格納されているファイルの識別子に基づいて冗長格納処理される対象となるストレージ群番号が3となるファイルに対して、ストレージ群番号3のストレージ管理手段により管理される何れかのストレージ(修復対象ストレージを除く)に同一の識別子のファイルが存在しない場合に、当該ファイルが修復ファイルであると特定される。
以下に、ストレージの修復処理のさらに別の手順を説明する。ストレージ修復管理手段52は、関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、及び/または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当し、前記ハッシュ値と当該ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージが復旧対象ストレージに該当するときに、当該ファイルを修復ファイルとして特定するように構成してもよい。
二重冗長する上述の例ではストレージ管理手段のストレージ群番号2,4が関連ストレージ群番号となり、例えば、ストレージ群番号2のストレージ管理手段により管理される何れかのストレージに格納されているファイルの識別子に基づいて冗長格納処理される対象となるストレージ群番号が3となるファイルであって、さらに同一のストレージ管理手段により管理されるストレージに対して冗長格納処理される対象となるストレージが復旧対象ストレージとなるファイルが修復ファイルであると特定されるのである。
このような手順によれば、関連ストレージ群番号のストレージの全てのファイルの冗長化数を識別することなく、ファイルの識別子に基づいて修復ファイルを特定することができる。
以下に、他の実施形態について説明する。上述した実施形態では、所定のハッシュ関数としてMD5を用いる構成としたが、これに限定するものではなく、SHA−1等の他のハッシュ関数を用いるものであっても良い。また、ハッシュ関数の引数となるファイルの識別子は、ファイル名そのもののみならず、そのファイル(もしくはディレクトリ)が存在する場所を示すための文字列であるファイルのパスが付加されたフルパス名をファイルの識別子とすることが好ましい。
上述した実施例では、ファイル管理手段5を1台とする構成で説明したが、前記ファイル管理手段5を複数台備える構成としても良い。この場合、クライアント4との間にロードバランサ等の負荷分散装置を配置することで、クライアント4からファイル読み書きの要求を行う際のアクセス方法を変更することなく処理速度を向上させることができる。
尚、上述した実施形態は本発明の一例に過ぎず、本発明の作用効果を奏する範囲において、冗長格納管理手段やストレージ修復管理手段等の各機能ブロックの具体的構成等は適宜変更設計できることは言うまでもなく、各機能ブロックを適宜組み合わせて構成できることも可能である。
ファイル格納システムの機能ブロック構成図 稼動状況テーブルの説明図 稼動状況テーブルの生成処理を説明するフローチャート ファイルの冗長格納処理を説明するフローチャート ストレージ修復処理を説明するフローチャート ファイルの平準化処理を説明するフローチャート 別実施形態のファイルの冗長格納処理を説明するフローチャート 別実施形態のストレージ修復処理を説明するフローチャート M×Nのマトリクス状に配列されたストレージに対するファイル格納処理の説明図 M×Nのマトリクス状に配列されたストレージに対するファイル読出し処理の説明図 M×Nのマトリクス状に配列されたストレージに対するファイル修復処理の説明図 ストレージ管理手段により異なる数のストレージが管理される場合のファイル格納処理の説明図 ストレージ管理手段により異なる数のストレージが管理される場合のファイル修復処理の説明図
符号の説明
1:ファイル格納システム
2:ストレージ
3:ストレージ管理手段
4:クライアント
5:ファイル管理手段
6:ローカルネットワーク
7:ネットワーク
30:ファイルシステム
31:ファイル破損検出手段
32:ファイル修復手段
33:ディレクトリ生成管理手段
50:クライアント用ファイル受渡し手段
51:冗長格納管理手段
52:ストレージ修復管理手段
53:平準化処理手段
54:ストレージ用ファイル受渡し手段
55:稼動状況管理手段
56:バッファメモリ
57:稼動状況テーブル

Claims (13)

  1. 単一または複数のストレージを個別に管理する複数のストレージ管理手段と、クライアントからの要求に基づいて前記ストレージの何れかに対してファイルを読み書き制御するファイル管理手段がネットワーク接続されたファイル格納システムであって、
    前記ファイル管理手段は、クライアントからのファイル格納要求に応答して、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージと、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージとを冗長格納する特定ストレージとして選択し、当該特定ストレージを管理するストレージ管理手段夫々に対してファイル単位で格納処理を実行させる冗長格納管理手段と、任意のストレージの復旧時に、復旧対象ストレージのストレージ番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージに関連する複数の関連ストレージ番号を算出し、算出した関連ストレージ番号で識別される複数のストレージに格納されているファイルの識別子に基づいて修復ファイルを特定して復旧対象ストレージを修復するストレージ修復管理手段を備えているファイル格納システム。
  2. 前記ストレージ修復管理手段は、前記関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子と冗長化数に基づいて修復ファイルを特定する請求項1記載のファイル格納システム。
  3. 前記ストレージ修復管理手段は、前記関連ストレージ番号で識別される何れかのストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージ、または、当該ストレージ番号を引数とする可逆平準化関数により求まるストレージ番号で識別されるストレージの何れかが復旧対象ストレージに該当するときに、当該ファイルを修復ファイルとして特定する請求項1記載のファイル格納システム。
  4. 前記可逆平準化関数は、モデュロ演算により選択されるストレージを管理するストレージ管理手段以外のストレージ管理手段により管理されるストレージを選択するように設定されている請求項1から3の何れかに記載のファイル格納システム。
  5. 前記ファイル管理手段は、ストレージの増設時に、前記ハッシュ値と増設後のストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージと、前記可逆平準化関数により求まるストレージ番号で識別されるストレージを新たな特定ストレージとして選択し、対応するファイルをコピーして冗長格納するとともに、増設前に格納されたファイルを削除する平準化処理手段を備えている請求項1から4の何れかに記載のファイル格納システム。
  6. 単一または複数のストレージを個別に管理する複数のストレージ管理手段と、クライアントからの要求に基づいて前記ストレージの何れかに対してファイルを読み書き制御するファイル管理手段がネットワーク接続されたファイル格納システムであって、
    前記ファイル管理手段は、クライアントからのファイル格納要求に応答して、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段と、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段とを冗長格納する特定ストレージ管理手段として選択するとともに、前記特定ストレージ管理手段の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージを冗長格納する特定ストレージとして選択し、当該特定ストレージを管理する特定ストレージ管理手段夫々に対してファイル単位で格納処理を実行させる冗長格納管理手段と、任意のストレージの復旧時に、復旧対象ストレージを管理するストレージ管理手段のストレージ群番号と前記可逆平準化関数に基づいて、復旧対象ストレージに格納されるべきファイルが冗長格納されているストレージを管理するストレージ管理手段に関連する複数の関連ストレージ群番号を算出し、算出した関連ストレージ群番号で識別される複数のストレージ管理手段に管理されるストレージに格納されているファイルの識別子に基づいて修復ファイルを特定して復旧対象ストレージを修復するストレージ修復管理手段を備えているファイル格納システム。
  7. 前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子及び冗長化数に基づいて修復ファイルを特定する請求項6記載のファイル格納システム。
  8. 前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当するときに、当該ファイルを修復ファイルの候補として選択する請求項6または7記載のファイル格納システム。
  9. 前記ストレージ修復管理手段は、前記関連ストレージ群番号で識別される何れかのストレージ管理手段に管理されるストレージに格納されているファイルの識別子を引数として前記ハッシュ関数により得られるハッシュ値とストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段、または、当該ストレージ群番号を引数とする可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段の何れかが復旧対象ストレージを管理するストレージ管理手段に該当し、前記ハッシュ値と当該ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージが復旧対象ストレージに該当するときに、当該ファイルを修復ファイルとして特定する請求項6記載のファイル格納システム。
  10. 前記ファイル管理手段は、ストレージ管理手段の増設時に、前記ハッシュ値と増設後のストレージ群数に基づくモデュロ演算により求まるストレージ群番号で識別されるストレージ管理手段と、前記可逆平準化関数により求まるストレージ群番号で識別されるストレージ管理手段を新たな特定ストレージ管理手段として選択するとともに、前記特定ストレージ管理手段の夫々に対して前記ハッシュ値と当該特定ストレージ管理手段により管理されるストレージ数に基づくモデュロ演算により求まるストレージ番号で識別されるストレージを冗長格納する特定ストレージとして選択し、対応するファイルをコピーして冗長格納するとともに、増設前に格納されたファイルを削除する平準化処理手段を備えている請求項6から9の何れかに記載のファイル格納システム。
  11. 前記平準化処理手段は、ファイルの識別子を管理してファイル単位で平準化処理する請求項5または10記載のファイル格納システム。
  12. 前記冗長格納管理手段は、前記平準化処理手段による平準化処理が終了するまでの間、クライアントからのファイル読出し要求に応答して、増設前のストレージ数に基づく冗長格納処理で選択される特定ストレージと、増設後のストレージ数に基づく冗長格納処理で選択される特定ストレージの何れかを当該ファイルが格納されたストレージとして特定するように構成されている請求項5または10記載のファイル格納システム。
  13. 前記ストレージ管理手段は、ファイルの識別子を引数とする所定のハッシュ関数により得られるハッシュ値に基づいて複数のディレクトリを生成するとともに、個別のハッシュ値に基づいて対応するファイルを何れかのディレクトリの配下に格納する請求項1から12の何れかに記載のファイル格納システム。
JP2007014552A 2007-01-25 2007-01-25 ファイル格納システム Expired - Fee Related JP4881172B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007014552A JP4881172B2 (ja) 2007-01-25 2007-01-25 ファイル格納システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007014552A JP4881172B2 (ja) 2007-01-25 2007-01-25 ファイル格納システム

Publications (2)

Publication Number Publication Date
JP2008181358A JP2008181358A (ja) 2008-08-07
JP4881172B2 true JP4881172B2 (ja) 2012-02-22

Family

ID=39725214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007014552A Expired - Fee Related JP4881172B2 (ja) 2007-01-25 2007-01-25 ファイル格納システム

Country Status (1)

Country Link
JP (1) JP4881172B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5757290B2 (ja) 2010-08-19 2015-07-29 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータプログラム
WO2012124257A1 (ja) * 2011-03-14 2012-09-20 株式会社ニコン 電子機器、電子機器の制御方法およびプログラム
JP5445503B2 (ja) * 2011-03-31 2014-03-19 ブラザー工業株式会社 情報通信システム、情報通信方法
JP5796265B2 (ja) * 2011-12-28 2015-10-21 インテル・コーポレーション 設定の管理および配布のためのシステムおよび方法
JP2016526720A (ja) * 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
JP6141240B2 (ja) 2014-08-14 2017-06-07 キヤノン株式会社 印刷装置、印刷装置に接続されたストレージの制御装置、印刷装置の制御方法及びプログラム
CN116206744A (zh) 2015-06-25 2023-06-02 甘布罗伦迪亚股份公司 具有分布式数据库的医疗装置系统和方法

Also Published As

Publication number Publication date
JP2008181358A (ja) 2008-08-07

Similar Documents

Publication Publication Date Title
JP4881172B2 (ja) ファイル格納システム
JP5539683B2 (ja) 拡張可能な2次ストレージシステムと方法
JP5224240B2 (ja) 計算機システム及び管理計算機
US8924354B2 (en) Block level data replication
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
JP2007207063A (ja) データベースを有するストレージシステムの記憶制御方法
US20060184502A1 (en) Method for file level remote copy of a storage device
JP2007183763A (ja) システム、サーバ装置及びスナップショットの形式変換方法
US20110225382A1 (en) Incremental replication using snapshots
JP2013140443A (ja) バックアップ制御プログラム、バックアップ制御方法およびバックアップ制御装置
CN110413694A (zh) 元数据管理方法及相关装置
CN107046811A (zh) 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备
US9436554B2 (en) Information processing apparatus and data repairing method
CN108255576A (zh) 虚拟机热迁移异常处理方法、装置和存储介质
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
CN109189326B (zh) 分布式集群的管理方法和装置
CN105550230B (zh) 分布式存储系统节点故障的侦测方法和装置
EP2362317A1 (en) Information processing device
JP6269120B2 (ja) ストレージシステム
US10846012B2 (en) Storage system for minimizing required storage capacity during remote volume replication pair duplication
CN112083885B (zh) 一种数据迁移方法、装置、电子设备及存储介质
JP6327028B2 (ja) オブジェクトストレージシステムおよびその制御方法およびその制御プログラム
JP2015153280A (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
WO2015198371A1 (ja) ストレージシステム及び記憶制御方法
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111202

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees