(57)【要約】【課題】異なるディスク容量を許容し、稼働中のディスク台数に対して適切な冗長性を維持するクラスタ・ストレージシステムを提供する。【解決手段】情報記録制御装置と３台以上のストレージ装置から構成されるクラスタ・ストレージを提供し、データの保存に際しては、情報記録制御装置がデータの差異を逐次計算し、複数のストレージ装置に分散保存し、データの出力に際しては情報記録制御装置が複数のストレージ装置からデータ差異を収集し、復元・出力するようにする。本発明によれば異なるディスク容量を許容し、さらに動作しているディスクの台数に応じた冗長性を確保する。【選択図】図１
2010134788.tif 000002
【特許請求の範囲】
【請求項１】
３台以上のストレージ装置と、外部装置から提供されたデータを前記３台以上のストレージ装置の何れかに格納し、かつ、前記３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置であって、
前記情報記録再生制御装置は、前記データの格納及びアクセスをオブジェクト単位で実行するアクセス解釈手段を備えることを特徴とするクラスタ・ストレージ装置。
【請求項２】
前記アクセス解釈手段は、前記オブジェクト単位のデータにＩＤを付与して管理することを特徴とする請求項１に記載のクラスタ・ストレージ装置。
【請求項３】
前記アクセス解釈手段は、前記３台以上のストレージ装置に格納されたデータに対するアクセス要求を受け取り、アクセス対象のデータに対応するＩＤを取得してデータのアクセスを実現することを特徴とする請求項２に記載のクラスタ・ストレージ装置。
【請求項４】
前記情報記録再生制御装置は、さらに、前記３台以上のストレージ装置の何れかに格納された元データを更新して生成された更新データを受け取った場合に、前記更新データと前記元データとの差分を取り、差分情報を生成する差分情報生成手段を備え、
前記アクセス解釈手段は、前記差分情報に対して前記元データと同一のＩＤを付与して前記３台以上のストレージ装置の何れかに格納することを特徴とする請求項３に記載のクラスタ・ストレージ装置。
【請求項５】
前記情報記録再生制御装置は、さらに、
前記アクセス対象のデータに対応するＩＤを基に、前記元データを検索する元データ検索手段と、
前記ＩＤを基に、前記差分情報を検索する差分情報検索手段と、
前記元データと前記差分情報を用いて、オブジェクト単位の前記更新データを復元する復元手段を備えることを特徴とする請求項４に記載のクラスタ・ストレージ装置。
【請求項６】
前記アクセス解釈手段は、前記ＩＤが付与されたオブジェクト単位のデータを前記３台以上のストレージ装置のうち少なくとも２台に格納することを特徴とする請求項２に記載のクラスタ・ストレージ装置。
【請求項７】
前記情報記録再生制御装置は、さらに、前記３台以上のストレージ装置の何れかに格納された元データを更新して生成された更新データを受け取った場合に、前記更新データと前記元データとの差分を取り、差分情報を生成する差分情報生成手段を備え、
前記アクセス解釈手段は、前記差分情報に対して前記元データと同一のＩＤを付与して前記３台以上のストレージ装置のうち少なくとも２台に格納することを特徴とする請求項６に記載のクラスタ・ストレージ装置。
【請求項８】
前記アクセス解釈手段は、１つの前記元データと、それに関連する全ての前記差分情報とを、前記３台以上のストレージ装置のうち少なくとも１台に集約して格納することを特徴とする請求項４に記載のクラスタ・ストレージ装置。
【請求項９】
前記情報記録再生制御装置は、さらに、前記１台のストレージ装置に集約して格納される前記元データにオリジナルデータであることを示すオリジナルフラグを付与するオリジナルフラグ付与手段を備え、
前記アクセス解釈手段は、前記オリジナルフラグが付与された前記元データと、それに関連する全ての前記差分情報とを、前記１台のストレージ装置に集約して格納することを特徴とする請求項８に記載のクラスタ・ストレージ装置。
【請求項１０】
前記アクセス解釈手段は、前記アクセス要求を受け取ると、対応するオブジェクト単位のデータのＩＤを取得し、
前記情報記録再生制御装置は、さらに、
前記アクセス要求のデータに対応するＩＤを基に、前記オリジナルフラグを有する元データを格納する前記ストレージ装置から前記元データを優先的に検索する元データ検索手段と、
前記ＩＤを基に、前記オリジナルフラグを有する元データを格納する前記ストレージ装置から、前記関連する全ての差分情報を検索する差分情報検索手段と、
前記オリジナルフラグを有する元データと前記関連する全ての差分情報を用いて、前記オブジェクト単位のデータを復元する復元手段を備えることを特徴とする請求項９に記載のクラスタ・ストレージ装置。
【請求項１１】
３台以上のストレージ装置と、外部装置から提供されたデータを前記３台以上のストレージ装置の何れかに格納し、かつ、前記３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置であって、
前記情報記録再生制御装置は、
前記ストレージ装置の故障を検知する故障検知手段と、
前記故障が検知されたストレージ装置以外の動作可能なストレージ装置に格納されているデータを検索し、所定の冗長度が確保されているかを検査する検査手段と、
前記所定の冗長度が確保されていない場合に、前記所定の冗長度が確保されるように、前記動作可能なストレージ装置に不足するデータを格納するデータ格納手段と、
を備えることを特徴とするクラスタ・ストレージ装置。
【請求項１２】
３台以上のストレージ装置と、外部装置から提供されたデータを前記３台以上のストレージ装置の何れかに格納し、かつ、前記３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置であって、
前記情報記録再生制御装置は、
前記ストレージ装置の故障を検知する故障検知手段と、
前記故障が検知されたストレージ装置以外の動作可能なストレージ装置に格納されているデータを検索し、所定の冗長度が確保されているかを検査する検査手段と、
前記所定の冗長度が確保されていない場合に、前記動作可能なストレージ装置に格納されているデータの一部を削除し、前記所定の冗長度を落とすデータ整理手段と、
を備えることを特徴とするクラスタ・ストレージ装置。
【請求項１３】
３台以上のストレージ装置と、外部装置から提供されたデータを前記３台以上のストレージ装置の何れかに格納し、かつ、前記３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置を制御する方法であって、
前記情報記録再生制御装置において、アクセス解釈手段が、前記データの格納及びアクセスをオブジェクト単位で実行することを特徴とする方法。
【請求項１４】
前記アクセス解釈手段は、前記オブジェクト単位のデータにＩＤを付与して管理することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記アクセス解釈手段は、前記３台以上のストレージ装置に格納されたデータに対するアクセス要求を受け取り、アクセス対象のデータに対応するＩＤを取得してデータのアクセスを実現することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記情報記録再生制御装置において、さらに、差分情報生成手段が、前記３台以上のストレージ装置の何れかに格納された元データを更新して生成された更新データを受け取った場合に、前記更新データと前記元データとの差分を取り、差分情報を生成し、
前記アクセス解釈手段が、前記差分情報に対して前記元データと同一のＩＤを付与して前記３台以上のストレージ装置の何れかに格納することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記アクセス解釈手段が、１つの前記元データと、それに関連する全ての前記差分情報とを、前記３台以上のストレージ装置のうち少なくとも１台に集約して格納することを特徴とする請求項１６に記載の方法。
【請求項１８】
前記情報記録再生制御装置において、さらに、
オリジナルフラグ付与手段が、前記１台のストレージ装置に集約して格納される前記元データにオリジナルデータであることを示すオリジナルフラグを付与し、
前記アクセス解釈手段が、前記オリジナルフラグが付与された前記元データと、それに関連する全ての前記差分情報とを、前記１台のストレージ装置に集約して格納することを特徴とする請求項１７に記載の方法。
【請求項１９】
前記アクセス解釈手段が、前記アクセス要求を受け取ると、対応するオブジェクト単位のデータのＩＤを取得し、
前記情報記録再生制御装置において、さらに、
元データ検索手段が、前記アクセス要求のデータに対応するＩＤを基に、前記オリジナルフラグを有する元データを格納する前記ストレージ装置から前記元データを優先的に検索し、
差分情報検索手段が、前記ＩＤを基に、前記オリジナルフラグを有する元データを格納する前記ストレージ装置から、前記関連する全ての差分情報を検索し、
復元手段が、前記オリジナルフラグを有する元データと前記関連する全ての差分情報を用いて、前記オブジェクト単位のデータを復元することを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スラスタ・ストレージ装置及びそれを制御する方法に関し、例えば、複数のストレージ装置における冗長性を確保する技術に関する。
【背景技術】
【０００２】
近年デジタルデータの増大とＨＤＤの容量増加が進んでいる。デジタルデータの増大はデータ保護の重要性を増し、一方のＨＤＤ容量増加は増大するデジタルデータの確保を可能にしつつも、故障時の損失という危険性を増加させている。
【０００３】
また、家庭内でもテラバイト単位のストレージが保有されるようになり、そのメンテナンスを容易にする目的で、従来大規模サーバに利用されていたデジタルデータ保護を適用することが一般的になってきている。このデジタルデータ保護方法の代表がＲＡＩＤ（Redundant Arrays of Inexpensive Disks）であり、下記非特許文献にて開示されている。
【０００４】
ＲＡＩＤには冗長度とディスク容量利用率に応じて０から６までのバリエーションがある。その中でも０、１、及び５の何れか、もしくは組み合わせてシステムを構築することが一般的に多い。以下、０、１、及び５についてそれぞれ概略を説明する。
【０００５】
ＲＡＩＤ０はストライピングとも呼ばれ、冗長度を有さないがディスク容量の利用率は１００％である。ＲＡＩＤ０の原理は２台以上の同容量のディスクにデータを細切れに分散保存し、リード時は細切れのデータをコントローラが結合・復元する仕組みである。これにより、ディスクのリード・ライト帯域がディスク台数に比例して高速になるという特徴を有する。
【０００６】
ＲＡＩＤ１はミラーリングとも呼ばれ、システムに接続されたディスク台数−１台の故障に対する耐性を有する。一方でディスク容量の利用率は１／（システムのディスク台数）×１００［％］とディスク台数に反比例し、ＲＡＩＤのバリエーションの中で最も利用率が低い。ＲＡＩＤ１の原理は２台以上の同容量のディスクに同じデータを保存する仕組みである。実装によってはＲＡＩＤ０と同じく複数台のディスクから断片的にデータを読み出しコントローラで復元することでリード帯域をディスク台数に比例して高速にすることも可能である。
【０００７】
ＲＡＩＤ５はブロック単位でのパリティ分散記録であり、１台のディスクの故障に対する耐性を有し、容量の利用率は（システムのディスク台数−１）／（システムのディスク数）×１００［％］である。ＲＡＩＤ５の原理はデータをブロック単位で分割し、それぞれのブロックに対する誤り訂正符号（パリティ）を計算し、３台以上の同容量のディスクに分散保存する仕組みである。１台のディスク故障時にはパリティを用いて元データを復元することができる。分散保存されているため、ＲＡＩＤ０と同じくリードは高速である一方で、ライト時にはパリティ計算分のレイテンシがあることが特徴である。
【０００８】
【非特許文献１】A case for redundant arrays of inexpensive disks (RAID). （SIGMOD ´88.）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＲＡＩＤは何れのバリエーションにおいても、すべてのディスクの容量が同容量であることを前提としたシステムである。すなわち、ＲＡＩＤにおいてディスク故障時にはシステム構成時に利用した容量と同容量のディスクを用意することが望ましい。ファイルをＬＢＡ（Logical Block Addressing）で管理するため、大きな容量のディスクを用いても使う領域の容量は小さい容量のディスクに依存してしまい、不使用領域が無駄となってしまうからである。
【００１０】
しかしながら、昨今の目まぐるしいディスク容量の増加により、ディスク故障時にシステム構成時と同容量のディスクを取得することは困難もしくはビット単価的に不利であることが多くなってきている。この問題によりディスク故障時にはシステム全体を再構築したり、大容量ディスクの一部を使用不可として小容量ディスクとして代替したりすることが増え、時間的損失もしくは金銭的損失が発生している。つまり、売れ筋のディスクや安価なディスク（ディスク容量が初期のものと異なるディスク）を後で使う場面を考えた場合、ディスクの容量がバラバラになってしまうが、このような場合でも各ディスクの容量をフルに活用してＲＡＩＤとして動作させることが望まれる。
【００１１】
また、ＲＡＩＤの性質上、ディスクが故障しディスク台数が減少した状態における冗長性を確保することができない。データセンタなどに比べてディスクの故障率が高く、復旧までに時間がかかる家庭内環境においてこの欠点は致命的である。すなわち家庭内システムへのＲＡＩＤ適用が適していないことを意味している。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、ストレージシステムにおいて、異なるディスク容量のディスクを許容しつつ、ディスク故障時においてもデータの冗長性を確保する技術を提供するものである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明では、３台以上のストレージ装置と、外部装置から提供されたデータを３台以上のストレージ装置の何れかに格納し、かつ、３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置において、アクセス解釈手段がデータの格納及びアクセスをオブジェクト単位で実行するようにしている。より具体的には、アクセス解釈手段は、オブジェクト単位のデータにＩＤを付与して管理し、３台以上のストレージ装置に格納されたデータに対するアクセス要求を受け取り、アクセス対象のデータに対応するＩＤを取得してデータのアクセスを実現する。
【００１４】
情報記録再生制御装置では、さらに、差分情報生成手段が、３台以上のストレージ装置の何れかに格納された元データを更新して生成された更新データを受け取った場合に、更新データと元データとの差分を取り、差分情報を生成する。そして、アクセス解釈手段が、差分情報に対して元データと同一のＩＤを付与して３台以上のストレージ装置の何れかに格納する。
【００１５】
情報記録再生制御装置では、さらに、元データ検索手段が、アクセス対象のデータに対応するＩＤを基に、元データを検索し、差分情報検索手段が、そのＩＤを基に、差分情報を検索する。そして、復元手段が、検索によって得られた元データと差分情報を用いて、オブジェクト単位の更新データを復元する。
【００１６】
また、アクセス解釈手段は、ＩＤが付与されたオブジェクト単位のデータを３台以上のストレージ装置のうち少なくとも２台に格納し、冗長度２以上を実現する。
【００１７】
さらに、アクセス解釈手段は、１つの元データと、それに関連する全ての差分情報とを、３台以上のストレージ装置のうち少なくとも１台に集約して格納する。この場合、具体的には、オリジナルフラグ付与手段が、１台のストレージ装置に集約して格納される元データにオリジナルデータであることを示すオリジナルフラグを付与し、アクセス解釈手段が、オリジナルフラグが付与された元データと、それに関連する全ての差分情報とを、１台のストレージ装置に集約して格納する。アクセス時の動作については、アクセス解釈手段は、アクセス要求を受け取ると、対応するオブジェクト単位のデータのＩＤを取得し、元データ検索手段が、アクセス要求のデータに対応するＩＤを基に、前記オリジナルフラグを有する元データを格納する前記ストレージ装置から元データを優先的に検索し、差分情報検索手段が、このＩＤを基に、オリジナルフラグを有する元データを格納するストレージ装置から、関連する全ての差分情報を検索し、復元手段が、オリジナルフラグを有する元データと関連する全ての差分情報を用いて、オブジェクト単位のデータを復元する。
【００１８】
本発明の別の態様によれば、３台以上のストレージ装置と、外部装置から提供されたデータを３台以上のストレージ装置の何れかに格納し、かつ、３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置において、故障検知手段が、ストレージ装置の故障を検知し、検査手段が、故障が検知されたストレージ装置以外の動作可能なストレージ装置に格納されているデータを検索し、所定の冗長度が確保されているかを検査し、データ格納手段が、所定の冗長度が確保されていない場合に、所定の冗長度が確保されるように、動作可能なストレージ装置に不足するデータを格納する。
【００１９】
また、本発明の別の態様によれば、３台以上のストレージ装置と、外部装置から提供されたデータを３台以上のストレージ装置の何れかに格納し、かつ、３台以上のストレージ装置の何れかに格納されたデータへのアクセスを制御する情報記録再生制御装置と、を備えるクラスタ・ストレージ装置において、故障検知手段が、ストレージ装置の故障を検知し、検査手段が、故障が検知されたストレージ装置以外の動作可能なストレージ装置に格納されているデータを検索し、所定の冗長度が確保されているかを検査し、データ整理手段が、所定の冗長度が確保されていない場合に、動作可能なストレージ装置に格納されているデータの一部を削除し、所定の冗長度を落とすようにする。
【００２０】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００２１】
本発明のクラスタ・ストレージ装置によれば、異なるディスク容量を許容し、さらに動作しているディスクの台数に応じた冗長性を確保することができる。このように異なる容量のディスクの使用を許容するので、システム修復時にビット単価観点から最もコストが低くでき、ディスク修復を極力必要としなくなり、よって安価なシステムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【００２３】
１）第１の実施形態
第１の実施形態は、システム基本概要と冗長性について関するものである。本発明の重要な特徴の一つは、データを一つの”意味のある単位（オブジェクト）”として認識することで従来のＲＡＩＤ方式では実現できなかった容量の異なるディスクの混在を実現する。つまり、ＲＡＩＤはＬＢＡ空間においてデータを単位容量（ブロック／ビット）に区切って冗長度を持たせるのに対し、第１の実施形態はデータベースなどの手段を用いてデータ単位をオブジェクトとして認識、差分情報もオブジェクトとして認識させそれぞれを多重化することで冗長性を確保している。
【００２４】
＜クラスタ・ストレージシステムの構成＞
図１は本発明の第１の実施形態によるクラスタ・ストレージシステム１の概略構成を示す図である。クラスタ・ストレージシステム１は、オブジェクトを新規作成、変更あるいは再生するクライアント装置１０と、オブジェクトを保存、保持するストレージ装置１４が３台以上とストレージ装置１４を一つの仮想的なストレージとして仮想化するバーチャライザ装置１２と、を備える。なお、ここでは、クライアント装置１０とバーチャライザ装置は、ネットワーク２を介して接続されている。
【００２５】
バーチャライザ装置１２において、複数台のストレージ装置１４を仮想化することで論理的に形成されるストレージ手段はクラスタ１６と呼ばれる。なお、ＲＡＩＤ５をベースに、ディスクが壊れる前後で同じ冗長性を維持するためには、ディスク装置（異なる容量でも良い）を３台以上必要となる。
【００２６】
クライアント装置１０は、ユーザインターフェース２０と、ＣＰＵ２２とメモリ２４と、通信インターフェース２６と、を含む装置である。
【００２７】
ユーザインターフェース２０は、キーボードなどの入力装置２０２とディスプレイなどの出力装置２０４とから構成され、ユーザが命令を入力したり、ユーザにオブジェクトを出力したりするための装置である。このオブジェクトとは適当なフォーマットで電子化されたデータをいう。
【００２８】
また、ＣＰＵ２２はメモリ２４に保存されている各手段（それぞれプログラムで実現される）を読み込み、処理するための装置である。以降、メモリ２４より手段をＣＰＵ２２に読み込み、ＣＰＵ２２が処理する動作を単に「ＣＰＵ２２が実行する」と表現する。メモリ２４は装置が使用する処理手段を保存および一時的に情報を記憶するための装置である。
【００２９】
続いて、クライアント装置１０に搭載されているメモリ２４中の各手段について説明する。オブジェクト作成手段５００はユーザが入力装置２０２を用いて入力した情報を適当なフォーマットで電子化することで、オブジェクトを生成する手段である。
【００３０】
オブジェクト更新手段５０２はユーザが入力装置２０２及び出力装置２０４を用いて既存のオブジェクトに変更・更新を加え、状態を変化させる手段である。
【００３１】
クライアント装置１０の用途によっては出力装置２０４を介してユーザにオブジェクトを出力するためのオブジェクト再生手段を有していてもよいし、さらにはオブジェクト作成かオブジェクト更新のどちらかあるいは両方を有していなくてもよい。
【００３２】
オブジェクト管理手段５０４は、通信インターフェース２６を介してクラスタ１６にオブジェクトを保存もしくはオブジェクトにアクセスするための手段である（あるアドレスからある別のアドレスまでがオブジェクトであるということを管理する）。このオブジェクト管理手段５０４は、バーチャライザ装置１２がストレージ装置１４をロジカル・ブロッキング・アドレス方式によってアクセス可能なブロック・ストレージとして仮想化する場合は、ＮＴＦＳやｅｘｔ３などの一般的なファイルシステムである。また、ネットワーク２経由でオブジェクトにアクセス可能なプロトコルで動作するネットワーク接続ストレージとして仮想化している場合、オブジェクト管理手段５０４は、ＮＦＳなどのプロトコル解釈手段でもある。さらに、検索などをベースとしたオブジェクトベースド・ストレージ・デバイスとして仮想化している場合、オブジェクト管理手段５０４は、プロトコルに応じた検索質問を動的に生成する手段であったりする。
【００３３】
通信インターフェース２６はネットワーク２に接続された他の装置に対して命令及び情報を送信したり、あるいはネットワーク２に接続された他の装置からの命令及び情報を受信したりするための装置である。
【００３４】
ストレージ装置１４は、通信インターフェース２６と、ストレージ手段２８と、を含んでいる。ストレージ手段２８は、通信インターフェース２６を介して受信した情報を命令に応じて保存するための手段である。また、ここでは、ストレージ装置１４はネットワーク２に接続された他の装置からの命令によって情報を保存するブロック・ストレージとしている。なお、ストレージ装置１４にＣＰＵ２２、メモリ２４及びオブジェクト管理手段５０４を組み込むことでストレージ装置１４がオブジェクトを管理できるように実装してもよい。
【００３５】
バーチャライザ装置１２は、通信インターフェース２６とＣＰＵ２２とメモリ２４とから構成される装置である。以下、バーチャライザ装置１２に搭載されているメモリ２４中の各手段について説明する。
【００３６】
アクセス解釈手段５２０は一種のファイルシステムであり、クライアント装置（ホスト）１０から送られてきたデータを通信プロトコルに従って、どの部分がオブジェクトかを解釈する機能を有する。言い換えると、アクセス解釈手段５２０は、ネットワーク２を介するクライアント装置１０のオブジェクトの保存要求あるいはオブジェクトへのアクセス要求をオブジェクト管理手段５０４が理解できる情報へと変換する手段である。さらに言えば、アクセス解釈手段５２０はバーチャライザ装置１２がクラスタ１６へのアクセス方法を決定する手段であり、本実施形態においてもっとも重要な手段の１つである。
【００３７】
オブジェクトは、オブジェクト作成手段５００によって作成されたベース部と、ベース部作成以降にオブジェクトに加えられた変更差分である差分情報とに別々に管理される。ベース部及び差分情報は、クラスタ１６内で一意なベースＩＤが付与されて管理される。つまり、ベース部とそれに関連する差分情報は、同一のベースＩＤを有している。このように、ベースＩＤでオブジェクトを管理するので、ＬＢＡ空間に拘束されることがなく、異なる容量のディスク装置の利用を許容することが可能となる。
【００３８】
なお、アクセス解釈手段５２０は各種サポートするアクセス方法におけるオブジェクトへのポインタを、例えばデータベース手段などを用いてベースＩＤ空間に割り当てる手段として実装される。ベースＩＤが重複しないように管理するのはベースＩＤ管理手段５２２である。
【００３９】
本実施形態における、クラスタ１６内においてオブジェクトはベースＩＤ管理手段５２２とベース部検索手段５２４と差分情報検索手段５２６と差分情報生成手段５２８と差分情報確認手段５２１０とオブジェクト復元手段５２１２と保存ストレージ決定手段５２１４とによって管理される。以降、各機能について説明する。
【００４０】
ベースＩＤ管理手段５２２はクラスタ１６内におけるベースＩＤの一意性を保証する手段である。
【００４１】
また、ベース部検索手段５２４と差分情報検索手段５２６は、それぞれアクセス解釈手段５２０がクライアント装置１０のアクセスを変換したベースＩＤを基に、それぞれベース部、差分情報をストレージ装置１４から検索する。
【００４２】
差分情報生成手段５２８は２つのオブジェクトの差分を生成する手段であり、一方オブジェクト復元手段５２１２は元オブジェクトと差分情報生成手段５２８により生成される差分情報からオブジェクトを復元する。
【００４３】
クライアント装置１０がオブジェクト更新手段５０２を用いてオブジェクトに変更が加え、クラスタ１６に保存する際には、差分情報生成手段５２８により差分情報が生成され、オブジェクトとは別にストレージ装置１４に保存する。この動作はオブジェクトが更新されるたびに実行される。すなわち、ベース部とすべての差分情報を用意したのちにオブジェクト復元手段５２１２により逐次オブジェクトを復元していくことによって、最新のオブジェクトを復元することができる。さらに、オブジェクトの変更過程をすべてトレースすることが可能となり、最新以前の状態も復元することができる。
【００４４】
差分情報確認手段５２１０は、上記ベース部とすべての差分情報の集約を確認する（全ての差分情報が存在するかを確認する）。
【００４５】
保存ストレージ決定手段５２１４は、ユーザあるいはシステム管理者により設定されたポリシーに応じて、ベース部あるいは差分情報を保存するストレージ装置１４を決定する。このポリシーとはストレージ装置１４を選択する基準をストレージ手段２８の容量負荷とするか、ストレージ装置１４へのアクセス頻度とするかなどの設定と、クラスタ１６に接続するストレージ装置１４の故障耐性数、すなわち冗長度の設定を表す。また、保存ストレージ決定手段５２１４により、オブジェクトの差分情報は保存可能なストレージ装置１４に保存される。すなわち、容量の異なるストレージ手段２８が混在していても、保存ストレージ決定手段５１２４により容量に応じた分のデータが割り振ることを可能とし、結果容量の異なるストレージ装置１４を許容しながらも冗長性を確保するクラスタ・ストレージシステム１を提供することができる。
【００４６】
本実施形態ではベース部及び差分情報を２つのストレージにそれぞれ保存することでクラスタ１６の冗長度を１台のストレージ装置１４の故障に対する耐性として実現している。冗長度を増加させるには、ベース部及び差分情報の多重度をさらに増加させればよい。この増加に必要なストレージ装置１４の数は冗長度＋１台である。ストレージ装置が３台の場合には上述のように２台のストレージ装置にベース部及び差分情報をそれぞれ保存するが、ストレージ装置の台数がもっと増加し、冗長度を増加させる場合には、３台以上のストレージ装置にそれぞれベース部及び差分情報を保存するようにしても良い。
【００４７】
以上が本発明の第１の実施形態のシステム構成例である。なお、本発明では、図１に示す構成に限らず、クライアント装置１０がバーチャライザ装置１２と直接接続し、バーチャライザ装置１２と各ストレージ装置１４はバーチャライザ装置１２が有する別の通信インターフェース２６を用いて接続する構成でもよいし、あるいはストレージ装置１４にバーチャライザ装置１２の持つ装置及び手段を組み込み、バーチャライザ装置１２をストレージ装置１４で置き換えてもよい。さらにはバーチャライザ装置１２の持つ装置及び手段をクライアント装置１０があるいはクライアント装置１０とストレージ装置１４が分担して有することでクライアント装置１０が直接ストレージ装置１４と接続し仮想化する構成でもよい。
【００４８】
＜情報の保存形式＞
以下、ストレージ装置１４内におけるベース部及び差分情報の保存形式について説明する。
【００４９】
図２は、ベース部６２の保存形式の一例を示す図である。ベース部６２はベースＩＤ７０が初期オブジェクト７２に付与されてストレージ装置１４内に保存される。ベースＩＤ７０はオブジェクトごとに割り当てられる整数値であり、ベースＩＤ管理手段５２２により、クラスタの中で一意であることが保障されている。ストレージ装置１４は、このベースＩＤを基にデータ列を一つのオブジェクトとして認識している。初期オブジェクト７２はクライアント装置１０がオブジェクト作成手段を５００により生成した、オブジェクトである。
【００５０】
なお、ベース部６２の保存方法は上記に限らず、ベースＩＤ７０を新規オブジェクト７２に直接付与する形式ではなく、例えばデータベース手段などを用いて別途管理してもよい。また、新規オブジェクト７２に直接関連付けるのではなく、例えばオブジェクトが保存されている先頭及び末尾ＬＢＡを合わせて保存する形式にしてもよい。
【００５１】
図３は、差分情報６４の保存形式の一例を示す図である。差分情報６４はベースＩＤ７０とバージョン番号７４がオブジェクト差分７６に付与された形式でストレージ装置１４内に保存される。ベースＩＤ７０は、オブジェクト更新手段５０２が加えた変更を差分情報生成手段５２８により検出したオブジェクト差分７６を同一オブジェクトのベース部６２と関連付けるために付与される。バージョン番号７４は、オブジェクトが更新された回数を記録するための整数値で、ベース部６２を０起点とし、１、２・・・とオブジェクトが更新される順に増加する。
【００５２】
なお、オブジェクト差分７６は元オブジェクトと更新されたオブジェクトから差分情報生成手段５２８によって生成される情報である。オブジェクト差分７６は、初期オブジェクト７２と最新オブジェクトの差分でもよいし、一つ前のバージョンと最新オブジェクトの差分でもよい。前者の場合はオブジェクトを保存するための領域を節約することができる。その一方で後者は、オブジェクトの更新履歴を逐次取得することができる。本実施形態では後者のオブジェクト差分６４を逐次取得する方式について以降説明する。
【００５３】
また、ベース部６２及び差分情報６４に付与されたベースＩＤ７０またはバージョン番号７４は、新規オブジェクト７２及びオブジェクト差分７６に付与する形ではなく、データベース手段などによって別途管理してもよい。
【００５４】
オブジェクト復元時にはアクセス解釈手段５２０によって得られたベースＩＤ７０において、クラスタ１６に存在する全てのバージョン番号７４を集計し、最新の差分情報までのすべての差分情報６４が揃っているかどうか確認した上でオブジェクトの復元が実行される。
【００５５】
＜動作シーケンス＞
クライアント装置１０及びクラスタ１６の動作手順の一例を説明する。図４は、第１の実施形態によるクライアント装置１０及びクラスタ１６の動作シーケンスの一例を示す図である。
【００５６】
図４において、Ｃはクライアント装置１０を示し、Ｖはバーチャライザ装置１２を示す。また、Ｓ１、Ｓ２、及びＳ３はそれぞれストレージ装置１４を表している。なお、図４は、上から順に時系列（８０、８２、８４、８６）にそれぞれの処理を表している。また、９０はストレージ装置１４の障害発生を表している。本実施形態における障害９０は一定期間で復帰可能な状態、たとえば通信の切断や電源断と定義する。
【００５７】
さらに、図４において、点線矩形で囲われた手順はオブジェクトの新規作成手順８０とストレージ装置１４の障害９０発生時におけるオブジェクトへのアクセス手順８２とストレージ装置１４の障害９０発生時におけるオブジェクト更新手順８４とストレージ装置１４の障害９０発生時におけるオブジェクト復元を伴うオブジェクトへのアクセス手順８６とをそれぞれ表している。以下、オブジェクトの新規作成手順８０より順に説明する。
【００５８】
ｉ）オブジェクトの新規作成手順８０において、クライアント装置１０は、オブジェクト作成手段５００を用いて新規オブジェクト６０１を新規作成する。そして、オブジェクト管理手段５０４により、生成した新規オブジェクト６０１の保存要求を発行し、通信インターフェース２６を介してクラスタ１６に送信する。この保存要求は、バーチャライザ装置１２によって受信される。そして、新規オブジェクトに対して、アクセス解釈手段５２０によってベースＩＤ７０が割り当てられ、新規オブジェクト６０１とベースＩＤ７０を合わせてベース部６２が生成される。
【００５９】
その後バーチャライザ装置１２は、保存ストレージ決定手段５２１４により、２台のストレージ装置１４（ここではＳ１、Ｓ２）を決定し、それぞれに対してベース部６２を送信し、保存する。
【００６０】
ii）次に、ベース部６２を保存しているストレージ装置１４に障害が発生した時におけるオブジェクトへのアクセス手順８２を説明する。
【００６１】
クライアント装置１０は、オブジェクト管理手段５０４を用いて、ユーザが要求するオブジェクト６０１へのアクセス要求を発行（例えば、ユーザによるファイル名のクリックより発行される）し、通信インターフェース２６を介してクラスタ１６に送信する。バーチャライザ装置１２は、このアクセス要求を受信し、オブジェクトアクセス応答動作８２ｖを開始する。
【００６２】
図５は、クライアント装置１０のオブジェクトアクセス要求に対するバーチャライザ装置１２によるオブジェクトアクセス応答動作８２ｖを詳細に説明するためのフローチャートである。なお、文末の各注釈は図中の参照処理を示す。
【００６３】
まず、バーチャライザ装置１２は、アクセス解釈手段５２０によってベースＩＤ７０を特定する。特定したベースＩＤ７０を基に、バーチャライザ装置１２は自身が管理する各ストレージ装置１４からベース部検索手段５２４を用いて、アクセス要求のあったベース部を検索する。（Ｓ８２２）
【００６４】
上記操作によりベース部６２が発見できなかった場合は、アクセス解釈手段５２０は、オブジェクト６０１が存在しないことをクライアント１０に通知し、オブジェクトアクセス動作８２ｖを終了する（Ｓ８２２１でＮｏ→Ｓ８２６→Ｓ８２１４）。
【００６５】
ベース部６２が発見された場合は、差分情報検索手段５２６は、発見したベース部６２と同じベースＩＤ７０を有する差分情報６４を応答可能なすべてのストレージ装置１４（Ｓ１及びＳ３）から検索する（Ｓ８２２１でＹｅｓ）。
【００６６】
その後バーチャライザ装置１２は、ストレージ装置１４より返信されて来る各差分情報６４を、差分情報確認手段５２１０を用いてオブジェクト復元に必要な差分情報６４がすべて存在しているか確認する（Ｓ８２４）。
【００６７】
確認の結果、全ての差分情報６４が存在しており、オブジェクト６０１が復元可能と判断されたならば、オブジェクト復元手段５２１２は、オブジェクト６０１を復元する（Ｓ８２４１でＹｅｓ）。
【００６８】
今回のケースでは差分情報６４は存在せず、ベース部６２のみであるので、ベース部６２からベースＩＤ７０をオブジェクト復元手段５２１２を用いて除去し、オブジェクト６０１としてクライアント装置１０へと送信し、オブジェクトアクセス動作８２ｖを終了する（Ｓ８２８→Ｓ８２１２→Ｓ８２１４）。
【００６９】
復元に必要な全ての差分情報が存在せず、オブジェクトを最新の状態として復元できない場合、復元可能なオブジェクトがクライアントに通知され、オブジェクトアクセス動作が終了する（Ｓ８２４１でＮｏ→Ｓ８２１０）。
【００７０】
この復元できなかった場合の動作８２１０は、クラスタ１６に設定されたユーザのポリシーによって決定されるものであり、例えばこの提示を行わずオブジェクトアクセス失敗を通知８２６してオブジェクトアクセス動作を終了するなどしてもよい。
【００７１】
iii）続いて、ベース部６２を保存しているストレージ装置１４（Ｓ２）障害発生時におけるオブジェクト６０１の更新手順８４について説明する。クライアント装置１０は、オブジェクト更新手段５０２を用いて、クラスタ１６より受信したオブジェクト６０１を更新する。そして、オブジェクト管理手段５０４により、更新したオブジェクト６０２の保存要求をクラスタ１６に発行する。バーチャライザ装置１２は、クライアント装置１０からの保存要求を受信し、オブジェクト保存動作８４ｖを開始する。
【００７２】
図６は、クライアント装置１０のオブジェクト保存要求に対するバーチャライザ装置１２によるオブジェクト保存動作８４ｖを詳細に説明するためのフローチャートである。
【００７３】
バーチャライザ装置１２は、アクセス解釈手段５２０を用いて更新されたオブジェクト６０２の基となるオブジェクト６０１のベースＩＤ７０を特定し、特定したベースＩＤ７０を用いてストレージ装置１４よりオブジェクト６０１を復元する。十分なメモリ２４を有している様態においては、クライアント装置１０からのオブジェクトアクセス８２時に復元したオブジェクト６０１を記憶しておくなどして既存オブジェクト６０１を得てもよい（Ｓ８４１）。
【００７４】
既存オブジェクト６０１を獲得できなかった場合、オブジェクト新規作成手順８０が実行され、オブジェクト６０２が新規オブジェクト７２として新規保存され、オブジェクト保存動作８４ｖが終了する（Ｓ８４１１でＮｏ→Ｓ８０→Ｓ８４６）。
【００７５】
既存オブジェクト６０１を獲得した場合、バーチャライザ装置１２は、オブジェクト差分情報生成手段５２８を用いて、クライアント装置１０から受信した更新オブジェクト６０２とのオブジェクト差分（図示せず）を生成する。オブジェクト差分情報生成手段５２８によるオブジェクト差分生成後、アクセス解釈手段５２０によって特定されたベースＩＤ７０と最新バージョン番号７４（この場合は１）をオブジェクト差分（図示せず）に付与することで差分情報６４を生成する（８４１１でＹｅｓ→Ｓ８４２）。
【００７６】
その後、バーチャライザ装置１２は、保存ストレージ決定手段５２１４を用いて、２台のストレージ装置１４を選択する（Ｓ８４４０）。
【００７７】
本実施形態においては、利用可能なＳ１及びＳ３が選択され、それぞれに対して差分情報６４を保存してオブジェクト保存動作８２ｖが終了する（Ｓ８４４１→Ｓ８４４２→Ｓ８４６）。
【００７８】
iv）さらに、ベース部６２及び差分情報６４を保存しているストレージ装置１４（Ｓ１）に障害が発生した時における復元を伴うオブジェクトへのアクセス手順８６を説明する。
【００７９】
クライアント装置１０は、オブジェクト管理手段５０４を用いて、ユーザが要求するオブジェクト６０２へのアクセス要求を発行し、通信インターフェース２６を介してクラスタ１６に送信する。このアクセス要求を受信したバーチャライザ装置１２は、アクセス解釈手段５２０を用いてベースＩＤ７０を特定する。その後、バーチャライザ装置１２は、このベースＩＤ７０を基にベース部６２検索手段５２４及び差分情報６４検索手段５２６を用いて、ベース部６２及び差分情報６４へのアクセス要求を発行する。そして、そのアクセス要求は、全ての応答可能なクラスタ１６に属するストレージ装置１４（Ｓ２及びＳ３）に送信される。
【００８０】
ベース部６２及び差分情報６４へのアクセス要求を受信した各ストレージ装置１４は、バーチャライザ装置１２の要求する情報を送信する。バーチャライザ装置１２は、ストレージ装置１４から受信した各情報を、差分情報確認手段５２１０を用いて解析する。本実施形態においては、最新の差分情報６４はバージョン１であり、またバージョン１までのすべての差分情報６４が集約できている。差分情報確認手段５２１０は、最新差分情報６４までの全ての差分情報６４が揃っていることを確認した後、オブジェクト復元手段５２１２は、取得した差分情報６４から最新状態のオブジェクト６０２を復元する。そして、復元したオブジェクト６０２はクライアント装置１０へ送信され、復元を伴うオブジェクトへのアクセス手順８６が完了する。
【００８１】
上記操作の特徴は、クラスタ・ストレージ装置１４のストレージ手段２８の容量が異なったとしても、保存ストレージ決定手段５２１４がベース部６２あるいは差分情報６４の保存先を適切に選択することで、冗長性を保つことができる点にある。
【００８２】
したがって、本発明によるクラスタ・ストレージ１は履歴管理機能を内包するオブジェクトの冗長管理を実現するディスク容量の異なるストレージ装置１４を許容するクラスタ・ストレージシステムを提供できる。
【００８３】
２）第２の実施形態
第２の実施形態は、オブジェクト単位で、１つのストレージ装置にできるだけデータを集約するものである。ユーザは”このオブジェクトはどこかのストレージに入っている”と直感的に想像すると考えられる。すなわち、あるオブジェクトを取得する際には１つのストレージだけ起動していればいいと考えている可能性があるのである（従来ストレージの利用のように１台ずつ起動・停止を繰り返す可能性）。
【００８４】
このような状況を考えた場合、第１の実施形態による方法では、最悪全てのデータを提供できない可能性がある。
【００８５】
そこで、オブジェクトの親装置となるストレージ装置を決定し、親装置が差分を取得できなかったときのためのストレージ装置（子装置）が仮受するような仕組みを持たせる。この動作により、上記状況においてもユーザは十分に情報を取得することができ、直感的にシステムを利用することができるようになる。
【００８６】
分散型のクラスタ・ストレージ装置の利点は分散配置によるデータアクセスの高速化とストレージ故障に対する復帰容易性すなわちメンテナンス性の２点である。データアクセス速度は一般にデータの転送がパフォーマンスのボトルネックとなる。なぜなら、データの検索もしくはデータの復元はデータの転送に比べ高速であるためである。
【００８７】
本発明では、ストレージ装置１４を用いたデータアクセスの高速化を実現するために、クライアント装置１０が差分情報確認手段５２１０及びオブジェクト復元手段５２１２を備えるようにしている。ストレージ装置１４がそれぞれベース部６２あるいは差分情報６４を検索、クライアント装置１０に対して送信する場合、データの転送速度はネットワーク２によって律速するようになる。一般にこれは最大転送速度となる。
【００８８】
一方、メンテナンス性向上に関しては、オブジェクト６０復元に際して複数のストレージ装置１４を必要とせず、１台で復元可能な状態にしておくことでオブジェクト６０の複製・移動がオブジェクト６０を有するストレージ装置１４とその他１台のストレージ装置１４のみで実現できるようにする方法がある。この方法は、さらにオブジェクト６０を物理的に携帯する際にも集約した１台のストレージ装置１４の移動で実現できるようになり、利便性もあわせて向上する。
【００８９】
第２の実施形態では、一つのストレージ装置１４にベース部６２及び差分情報６４を集約することでメンテナンス性を高める方法を説明する。
【００９０】
＜クラスタ・ストレージシステムの構成＞
図７は、本発明の第２の実施形態によるクラスタ・ストレージシステムの概略構成を示す図である。第１の実施形態との差異は、バーチャライザ装置１２が、さらにオリジナル管理手段５２１６を有していることである。
【００９１】
本実施形態において、「オリジナル」とは複数保存されるベース部６２のうち、優先度を他より上位とした一つの特別なベース部６２と定義する。また、オリジナルを保有するストレージ装置１４を「そのオブジェクトのネイティブ」であると表現する。
【００９２】
本実施形態の主旨は、ネイティブに差分情報６４を集約することで、可能な限り１つのストレージ装置１４のみでオブジェクト６０の復元を実現することにある。
【００９３】
＜ベース部のデータ構成例＞
図８は、第２の実施形態において用いられるベース部６２の構成の一例を示す図である。
【００９４】
ベース部の構成における第１の実施形態との差異は、ベースＩＤ７０以外にオリジナルフラグ７８が付与されている部分である。オリジナルフラグ７８は、そのベース部６２がオリジナルかどうか判定するための情報で、真か偽何れかの状態を採る。オリジナルフラグ７８もベースＩＤ７０と同様にベース部６２に直接付与する形態でなく、データベース手段などによるベース部６２との関連付けによって管理してもよい。
【００９５】
＜動作シーケンス＞
図９は、第２の実施形態におけるクライアント装置１０及びクラスタ１６の動作シーケンスの一例を示す図である。図９では、Ｃはクライアント装置１０を示し、Ｖはバーチャライザ装置１２を示す。また、Ｓ１、Ｓ２、及びＳ３はそれぞれストレージ装置１４を表している。図９においても上から順に処理を時系列（８１０、８１２、８１４)に表している。さらに、９０はストレージ装置１４の障害発生を表している。本実施形態においても障害は一定期間で復帰可能な状態と定義し、たとえば通信切断や電源断である。また、点線矩形で囲われた手順は、それぞれオリジナルフラグ７８を伴うオブジェクトの新規作成手順８１０とネイティブ動作時におけるオブジェクト更新手順８１２とストレージ装置１４障害発生時におけるオブジェクト復元及びネイティブへの差分情報６４の複製を伴うオブジェクトへのアクセス手順８１４とを表している。
【００９６】
ｉ）まず、オリジナルフラグ７８を伴うオブジェクトの新規作成手順８１０を説明する。
【００９７】
クライアント装置１０は、オブジェクト作成手段５００を用いて、新規オブジェクト７２を新規作成する。そして、オブジェクト管理手段５０４は、新規作成した新規オブジェクト７２の保存要求を発行し、通信インターフェース２６を介してクラスタ１６に送信する。
【００９８】
バーチャライザ装置１２は、この保存要求を受信し、新規オブジェクト保存動作を開始する。
【００９９】
図１０は、クライアント装置１０の新規オブジェクト保存要求に対するバーチャライザ装置１２の新規オブジェクト保存動作８１０ｖを詳細に説明するためのフローチャートである。
【０１００】
アクセス解釈手段５２０は、クライアント装置１０から受信した新規オブジェクト６０１にベースＩＤ７０を割り当て、新規オブジェクト７２とベースＩＤ７０を合わせてベース部６２を生成する（Ｓ８１００）。
【０１０１】
その後、バーチャライザ装置１２は、保存ストレージ決定手段５２１４を用いて、２台のストレージ装置１４（本例ではＳ１及びＳ２）を決定する（Ｓ８２４０）。このとき、オリジナル管理手段５２１６は、第１のストレージ装置１４として選択されたベース部６２に対してはオリジナルフラグ７８を真として（Ｓ８４２１）、第２のストレージ装置１４として選択されたベース部６２に対してはオリジナルフラグ７８を偽として設定する（Ｓ８４２２）。
【０１０２】
また、オリジナル管理手段５２１６は、冗長性を高める目的で３台以上のストレージ装置１４を決定する様態においては第１のストレージ装置１４以外のオリジナルフラグ７８を偽として設定する。
【０１０３】
その後、それぞれに対してベース部６２を送信し、保存する。これにより、新規オブジェクト保存動作８１０ｖが終了する（Ｓ８２４１→Ｓ８２４２→Ｓ８４４）。
【０１０４】
ii）次に、ネイティブ動作時におけるオブジェクト更新手順８１２について説明する。第１の実施形態におけるオブジェクト更新手順８４と同様に、クライアント装置１０は、オブジェクト更新手段５０２を用いてオブジェクト６０１を更新する。また、オブジェクト管理手段５０４は、更新したオブジェクトの保存要求を発行し、通信インターフェース２６を介してクラスタ１６にその保存要求を送信する。
【０１０５】
図１１は、保存要求を受信したバーチャライザ装置１２のオブジェクト保存動作８１２ｖを詳細に説明する説明するためのフローチャートである。
【０１０６】
保存要求を受信したバーチャライザ装置１２は、ベースＩＤ管理手段５２２を用いて、特定したベースＩＤ７０からストレージ装置１４よりオブジェクトを復元するか、あるいは十分なメモリ２４を有している様態においてはクライアント装置１０からのオブジェクトアクセス時に復元したオブジェクトを記憶しておく等により、既存オブジェクト６０１を獲得する（Ｓ８２１）。
【０１０７】
既存オブジェクト６０１が獲得できた場合、オブジェクト差分情報生成手段５２８は、獲得した既存オブジェクト６０１とクライアント装置１０から受信した更新オブジェクト６０２とのオブジェクト差分（図示せず）を生成し、アクセス解釈手段５２０によって特定されたベースＩＤ７０と最新バージョン番号７４（この場合は１）をそれぞれオブジェクト差分に付与することで差分情報６４を生成する（Ｓ８２１１でＹｅｓ→Ｓ８２２）。
【０１０８】
一方、既存オブジェクト６０１を獲得できなかった場合、オリジナルフラグ７８を伴うオブジェクト新規作成手順８１０（図１０参照）が実行され、更新オブジェクト６０２が新規オブジェクトとして新規保存され、オブジェクト保存動作８１２ｖが終了する（Ｓ８２１１でＮｏ→Ｓ８４）。
【０１０９】
その後、バーチャライザ装置１２は、保存ストレージ決定手段５２１４を用いて、２台のストレージ装置１４を決定（選択）する（Ｓ８２４０）。
【０１１０】
さらに、ストレージ装置決定時（Ｓ８２４０）にオブジェクト復元手段５２１２がオリジナルフラグ７８を検出する。すなわちバーチャライザ装置１２がネイティブ（Ｓ１）にアクセス可能な場合、保存ストレージ決定手段５２１４は第１のストレージとしてネイティブを優先的に選択する（Ｓ８２５０→Ｓ８２５１→Ｓ８２５２）。
【０１１１】
その後、選択されたストレージ装置１４のそれぞれに対して差分情報６４が送信され、保存される。これにより、オブジェクト保存動作が終了する（Ｓ８２４１→Ｓ８２４２→Ｓ８２６）。
【０１１２】
iii）続いて、ストレージ装置１４の障害発生時におけるオブジェクト復元及び差分情報６４の複製を伴うオブジェクトへのアクセス手順８１４について説明する。本例においてはストレージ装置１４の障害により、ネイティブのストレージ装置が復元に必要な全ての差分情報６４を有していない（即ち、復元するためのデータが一部でも欠落している）ことを仮定している。
【０１１３】
この状態において、バーチャライザ装置１２は、オブジェクト６０３へのアクセス発生時にネイティブに差分情報６４を複製し、ネイティブのストレージ装置だけでオブジェクト６０３を復元できる状態に復帰する。
【０１１４】
図１２は、クライアント装置１０からのオブジェクトアクセス要求を受信したバーチャライザ装置１２のオブジェクトアクセス応答動作８１４ｖを詳細に説明するためのフローチャートである。
【０１１５】
クライアント装置１０からのオブジェクトアクセス要求を受信したバーチャライザ装置１２は、アクセス解釈手段５２０を用いて、目的オブジェクトのベースＩＤ７０を特定する。また、バーチャライザ装置１２は、このベースＩＤ７０を基に、ベース部検索手段５２４を用いてベースＩＤ７０に合致するベース部６２をクラスタ１６に属するストレージ装置１４から検索する（Ｓ８２２）。
【０１１６】
合致するベース部６２が存在しない場合、バーチャライザ装置１２はオブジェクトアクセスの失敗をクライアント装置１０に通知する。これにより、オブジェクトアクセス応答動作８１４ｖは終了する（Ｓ８２２１でＮｏ→Ｓ８２６→Ｓ８２１４）。
【０１１７】
ベース部６２を検出した後、バーチャライザ装置１２は、差分情報検索手段５２６を用いてオブジェクト６０３の復元に必要な差分情報６４をネットワーク２に接続しているストレージ装置１４より検索する（Ｓ８２４）。
【０１１８】
復元に必要な差分情報６４が存在し、さらにベース部６２検索手段５２４によりオリジナルの存在が確認、すなわちネイティブのストレージ装置が存在する場合、差分情報確認手段５２１０は、ネイティブのストレージ装置がオブジェクト復元に必要な全ての差分を保持しているか確認する（Ｓ８２４１でＹｅｓ→Ｓ８２５０→Ｓ８２５１でＹｅｓ→Ｓ８１４０）。
【０１１９】
復元に必要な全ての差分情報６４が存在しない場合には、復元可能なオブジェクトが提示され、オブジェクトの復元が行われる（Ｓ８２４１でＮｏ→Ｓ８２１０→Ｓ８２８）。
【０１２０】
ネイティブのストレージ装置がオブジェクト復元に必要な全ての差分を保持していない場合、バーチャライザ装置１２は、不足している差分情報６４をネイティブに複製する（Ｓ８１４１でＮｏ→Ｓ８１４２）。ネイティブのストレージ装置がオブジェクト復元に必要な全ての差分を保持している場合、処理はＳ８２８に移行する。
【０１２１】
その後、バーチャライザ装置１２は、オブジェクト復元手段５２１２を用いて、オブジェクトを復元し、クライアント装置１０に送信する。これにより、オブジェクトアクセス動作が終了する（Ｓ８２８→Ｓ８２１２→Ｓ８２１４）
【０１２２】
このように、動作Ｓ８１０、Ｓ８１２、及びＳ８１４により、ネイティブのストレージ装置のみでオブジェクトを復元できる状態を維持する。これにより、オブジェクト６０の複製・移動がネイティブのストレージ装置とその他１台のストレージ装置１４のみで実現できるようになり、結果メンテナンス性が向上する。さらに、オブジェクトを物理的に携帯する際にも、ネイティブのストレージ装置のみの移動で実現できるようになり、利便性が向上する。
【０１２３】
３）第３の実施形態
第３の実施形態は、新規ストレージ追加による冗長性のメンテナンスを行うものであり、ストレージ故障を修復するためのプロセスに関する。第１及び第２の実施形態では、障害９０を起こしたストレージ装置１４は一定期間の後復帰できるものを仮定していた。
【０１２４】
しかし、実際には復帰できない障害９０、すなわち故障によりストレージ装置１４に保存された情報が利用不可能となるケースも存在する。
【０１２５】
そこで、本実施形態は、クラスタ・ストレージシステム１における故障に対する冗長度の確保方法について提供する。
【０１２６】
なお、クラスタ・ストレージシステムとしては、図１や７に示す構成を採用することができる。
【０１２７】
＜冗長度確保の動作シーケンス＞
図１３は、ストレージ装置１４の故障により冗長度が確保できなくなったクラスタ１６にストレージ装置１４１を新規に追加することで冗長度を復帰させる冗長度復帰動作の動作シーケンスの一例を示す図である。
【０１２８】
ストレージ装置１４識別記号（Ｓ１、Ｓ２、及びＳ３）の下に描かれた各要素は、クライアント装置１０（図示せず）によって保存されたオブジェクトのベース部６２及び差分情報６４を示している。また、９２はＳ３の故障を示している。
【０１２９】
以下、Ｓ３の故障により失われた冗長度を、新規ストレージ装置１４１を追加することにより復帰させる冗長度復帰動作の例について説明する。
【０１３０】
バーチャライザ装置１２が新規ストレージ装置１４１の追加を検知したとき、バーチャライザ装置１２は冗長度復帰動作を開始する。この新規ストレージ装置１４１の追加検知は、保存ストレージ決定手段５２１４によるストレージ選択の高速化を目的に、保存ストレージ決定手段５２１４を用いて定期的にネットワーク２に接続しているストレージ装置１４の情報を収集するなどして実現する。
【０１３１】
バーチャライザ装置１２は、ベースＩＤ管理手段５２２により管理されている全てのベースＩＤ７０に関して、ベース部検索手段５２４及び差分情報検索手段５２６を用いて、ベース部６２及び差分情報６４を検索する。
【０１３２】
検索の結果、保存ストレージ決定手段５２１４によって決定される冗長度に満たない数のベース部６２及び差分情報６４を、新規ストレージ装置１４１に保存することで冗長度の復帰を実現する。
【０１３３】
この動作により、クラスタ・ストレージシステム１は失われた冗長性の復帰を実現することができるようになる。
【０１３４】
４）第４の実施形態
第４の実施形態は、冗長度＋２台以上で構成されたクラスタ・ストレージ装置における冗長度のメンテナンスに関するものである。
【０１３５】
本発明によるクラスタ・ストレージ装置１４が提供可能な冗長性は（クラスタ１６の構成台数−２）台までの故障である。
【０１３６】
しかしながら、冗長性よりも容量を重視するために、冗長性＋２台以上でクラスタ１６を構成することもある。例えば、冗長性＋３台で動作しているクラスタ１６において１台のディスクが故障した場合、第３の実施形態によりディスクを復帰し冗長度を復帰させてもよいが、未だクラスタ１６は冗長性＋２台のクラスタ・ストレージ装置１４で構成されており、適切に冗長度を調整すればそのまま運用することも可能である。
【０１３７】
なお、本実施形態でも、クラスタ・ストレージシステムとしては、図１や７に示す構成を採用することができる。
【０１３８】
本実施形態においては、元々冗長度に余裕を持たせた台数で運用されたクラスタ１６における故障に対して冗長情報を適切に調整し運用を継続する、冗長度調整動作について説明する。
【０１３９】
図１４は１台のバーチャライザ装置１２と４台のクラスタ・ストレージ装置１４で構成されるクラスタ１６上で１台のディスクの故障に対する冗長度を持たせた運用において、１台のクラスタ・ストレージ装置１４（Ｓ３）が故障９２したときの冗長度調整動作のシーケンスの一例を示す図である。
【０１４０】
バーチャライザ装置１２は、保存ストレージ決定手段５２１４を用いて、クラスタ・ストレージ装置１４（Ｓ３）の故障９２を検知したとき、冗長度調整動作を開始する。
【０１４１】
まず、バーチャライザ装置１２は、ベース部検索手段５２４あるいは差分情報検索手段５２６を用いて、アクセス可能なクラスタ・ストレージ装置１４が有する全てのデータのベース部６２及び差分情報６４を検索し、さらに、それらの冗長度を、差分情報確認手段５２１０を用いて調査する。
【０１４２】
この結果、検出された冗長性が保たれていないデータ６６が検出された場合、保存ストレージ決定手段５２１４は、同様のデータを有していない各クラスタ・ストレージ装置１４を決定し、それぞれに冗長性が保たれていないデータを保存する。
【０１４３】
この冗長度調整動作により、クラスタ・ストレージ装置１４はクラスタ１６を構成するストレージによって可能な限りの冗長性を維持することができる。この特徴は平均故障間隔が長い場合において特に有効である。すなわち、常にスペアディスクが用意されているとは限らない家庭内環境などにおいて、上記クラスタ・ストレージ装置１４が適していると言える。
【０１４４】
５）第５の実施形態
第５の実施形態は、冗長情報削除による適正なオブジェクト冗長度のメンテナンスに関するものである。本実施形態でも、クラスタ・ストレージシステムとしては、図１や７に示す構成を採用することができる。
【０１４５】
家庭内においてストレージの修復は面倒で、できるなら回避したい作業である。つまり、台数が減少したとしてもそのまま稼働しつづけられるシステムはそれだけで価値があると言える。
【０１４６】
本発明のクラスタ・ストレージシステム１によれば、オブジェクトの冗長度は１からクラスタ１６を構成するクラスタ・ストレージ装置１４の台数−２の間で変更することができる。この特徴は、ストレージ装置１４の故障９２により台数が減少し、ユーザが求めている冗長度を確保できなくなった際に過多な冗長情報を保有させる原因となる。このような過剰な冗長情報はストレージ装置１４のストレージ手段２８を容量的に圧迫し、クラスタ・ストレージシステム１の利用効率を低下させる。
【０１４７】
そこで、本実施形態は、ストレージ装置１４の故障９２に起因する過多な冗長度を適切な冗長度に復帰させる手順を提供する。
【０１４８】
図１５は、ストレージ装置１４の故障９２により過多な冗長情報を有しているクラスタ１６の冗長度復帰シーケンスの一例を示す図である。
【０１４９】
まず、バーチャライザ装置１２がストレージ装置１４の故障９２を検知したとき、バーチャライザ装置１２は冗長度復帰シーケンスを開始する。なお、ストレージ装置１４の故障９２の検知は、保存ストレージ決定手段５２１４を用いて、保存ストレージ決定手段５２１４によるストレージ選択の高速化を目的に定期的にネットワーク２に接続しているストレージ装置１４の情報を収集するなどして実現する。
【０１５０】
そして、バーチャライザ装置１２は、ベース部検索手段５２４及び差分情報検索手段５２６を用いて、ベースＩＤ管理手段５２２によって管理されている全てのベースＩＤ７０に関して、ベース部６２及び差分情報６４を検索する。
【０１５１】
検索の結果、保存ストレージ決定手段５２１４によって決定される冗長度を超えるベース部６２及び差分情報６４を削除することにより、冗長度を適切な値に復帰させる。このとき情報を削除するストレージ装置１４は保存ストレージ決定手段５２１４のポリシーに応じてクラスタ１６に属する全てのストレージ装置１４の負荷が均一になるように決定される。
【０１５２】
このような動作により、クラスタ１６内のオブジェクト６０の冗長度は定常的に適切な値になる。よって、クラスタ・ストレージシステム１は、クラスタ１６を構成するストレージ装置１４の台数に応じて適切な冗長情報を、適切なディスク容量で維持することができるようになる。
【０１５３】
６）まとめ
本実施形態では、ＲＡＩＤ５を念頭にしているので、３台以上のストレージ装置が設置されたクラスタ・ストレージシステムが採用されている。そして、情報記録制御装置（バーチャライザ装置）が、ストレージ装置が保存されているデータに対する外部装置からのアクセス方式をクラスタ・ストレージ中へのアクセス方式に変換するアクセス方式変換手段（アクセス解釈手段）を備えている。このアクセス方式の変換は、データ格納時は、オブジェクト単位でのデータに識別子（ＩＤ）を付与して管理することであり、また、データアクセス時（アクセス要求が外部装置からなされた場合）は、そのオブジェクト単位のデータに対応する識別子（ＩＤ）を取得し、そのＩＤに対応するオブジェクトデータを取得することである。このように、オブジェクト単位でデータを管理すると共に、格納するデータにＩＤを付与して、データ格納及びアクセスを実現するので、３台以上のストレージ装置として、異なる容量のものを許容することができる。従来のＲＡＩＤシステムではＬＢＡによるデータ管理が行われているので異なる容量のディスク装置を許容することができないが、本発明ではオブジェクトＩＤによるデータ管理を行っているので異なる容量のディスク装置を用いることができるようになるのである。
【０１５４】
また、既に格納されているデータ（元データ或いはベース部）に更新があった場合には、更新データと元データとの差分情報が生成され、その差分情報に元データに付与されたＩＤと同一のＩＤが付与されてストレージ装置に格納される。このようにすることにより、分散して複数のストレージ装置にデータ（元データ及び差分情報）を格納しても、関連するデータを全て取得することができる。また、元データや差分データのデータ量はまちまちであり、各ストレージ装置の容量を勘案しつつ、データを格納することができる。よって、各ストレージ装置について、様々な容量のものを許容することができるようになる。
【０１５５】
別の態様では、１台のストレージ装置に、あるオブジェクト単位のデータに関する元データ（オリジナルデータであって、それを意味するフラグが付与されている）及び差分情報を全て格納し、管理する。これにより、利用者はある特定のストレージ装置のみを用いて所望のデータを迅速に取得することができるようになる。なお、より具体的には、ストレージ装置選択手段が１台のストレージ装置を特定する。そして、データ差異確認手段が、当該特定されたストレージ装置が要求されるデータを復元するのに必要なデータ（差分情報）を全て有しているか検査する。特定されたストレージ装置が要求されたデータを復元するのに必要な差分情報を有していない場合には、データ複製手段が特定されたストレージ装置が有していない差分情報を他のストレージ装置から取得して複製情報をこの特定されたストレージ装置に格納する。このようにして、特定のストレージ装置に全てのデータ（元データ及び差分情報）を集約する。
【０１５６】
また、別の態様では、故障したストレージ装置が新規ストレージ装置に交換された場合、その新規ストレージ装置を検知し、他のストレージ装置からデータを取得し、故障したストレージ装置が格納していたデータを新規ストレージ装置に移植する。ただし、この場合でも、扱うデータはオブジェクト単位であり、各ストレージ装置にデータを格納する場合には、元データ及び差分情報（更新データと元データの差分）には同じＩＤが付与されて管理されているにするとよい。このようにすることにより、新規のストレージ装置としてどのような容量のものでも許容可能となり、冗長性を確保することが容易になる。
【０１５７】
さらに、別の態様では、ストレージ装置の故障を検知した場合に、その故障したストレージ装置が格納していたデータを他のストレージ装置に移植するようにしている。ただし、この場合でも扱うデータはオブジェクト単位であり、各ストレージ装置にデータを格納する場合には、元データ及び差分情報（更新データと元データの差分）には同じＩＤが付与されて管理されているようにするとよい。このようにすることにより、冗長度を確保することができ、当該他のストレージ装置と故障したストレージ装置の容量が異なっていても問題ない（一番容量の少ないストレージ装置に影響されない）。
【０１５８】
また、別の態様では、ストレージ装置の故障を検知した場合に、その故障したストレージ装置以外の動作可能なストレージ装置が格納しているデータを検出し、故障前の冗長度を下げることが可能な場合には、動作可能なストレージ装置から余分なデータを削除して冗長度を下げるようにしている。ただし、この場合でも扱うデータはオブジェクト単位であり、各ストレージ装置にデータを格納する場合には、元データ及び差分情報（更新データと元データの差分）には同じＩＤが付与されて管理されているようにするとよい。このようにすることにより、ストレージ装置の数に余裕がある場合には、無理に高い冗長度を維持することなく、緊急事態に対応することができるようになる。特に、家庭内で使用されるストレージシステムにおいては、ストレージ装置が故障しても動作することが優先され、新規のストレージ装置が補充されるまでにはある程度の時間が必要となる。この補充までの期間でも問題なくストレージシステムを動作させることが可能となる。
【０１５９】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１６０】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１６１】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【図面の簡単な説明】
【０１６２】
【図１】本発明の第１の実施形態によるクラスタ・ストレージシステムの概略構成例を示す図である。
【図２】ベース部のデータ構成例を示す図である。
【図３】差分情報のデータ構成例を示す図である。
【図４】第１の実施形態によるクラスタ・ストレージシステムの動作シーケンスを示す図である。
【図５】バーチャライザ装置のオブジェクトアクセス応答動作を説明するためのフローチャートである。
【図６】バーチャライザ装置のオブジェクト保存動作を説明するためのフローチャートである。
【図７】本発明の第２の実施形態によるクラスタ・ストレージシステムの概略構成例を示す図である。
【図８】第２の実施形態によるベース部のデータ構成例を示す図である。
【図９】第２の実施形態によるクラスタ・ストレージシステムの動作シーケンスを示す図である。
【図１０】バーチャライザ装置の新規オブジェクト保存動作を説明するためのフローチャートである。
【図１１】バーチャライザ装置のオブジェクト保存動作を説明するためのフローチャートである。
【図１２】バーチャライザ装置のオブジェクトアクセス応答動作を説明するためのフローチャートである。
【図１３】第３の実施形態に夜クラスタ・ストレージシステムの動作シーケンスを示す図である。
【図１４】第４の実施形態に夜クラスタ・ストレージシステムの動作シーケンスを示す図である。
【図１５】第５の実施形態に夜クラスタ・ストレージシステムの動作シーケンスを示す図である。
【符号の説明】
【０１６３】
１：  クラスタ・ストレージシステム
２：  ネットワーク
１０：  クライアント装置
１２：  バーチャライザ装置
１４：  ストレージ装置
２０：  ユーザインターフェース
２２：  ＣＰＵ
２４：  メモリ
２６：  通信インターフェース
２８：  ストレージ手段
５００：  オブジェクト作成手段
５０２：  オブジェクト更新手段
５２０：  アクセス解釈手段
５２２：  ベースＩＤ管理手段
５２４：  ベース部検索手段
５２６：  差分情報検索手段
５２８：  差分情報生成手段
５２１０：  差分情報確認手段
５２１２：  オブジェクト復元手段
５２１４：  保存ストレージ決定手段
【図１】
2010134788.tif 000003
【図２】
2010134788.tif 000004
【図３】
2010134788.tif 000005
【図４】
2010134788.tif 000006
【図５】
2010134788.tif 000007
【図６】
2010134788.tif 000008
【図７】
2010134788.tif 000009
【図８】
2010134788.tif 000010
【図９】
2010134788.tif 000011
【図１０】
2010134788.tif 000012
【図１１】
2010134788.tif 000013
【図１２】
2010134788.tif 000014
【図１３】
2010134788.tif 000015
【図１４】
2010134788.tif 000016
【図１５】
2010134788.tif 000017