(57)【特許請求の範囲】
【請求項１】
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えたストレージシステムであって、
前記ストレージシステムを構成する情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要な起動データを前記記憶装置内の前記アドレスデータにて参照される格納位置に記憶しており、
前記起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を格納する起動用記憶装置と、
前記起動用記憶装置から前記ブートパス情報を読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段と、
を備えたストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータをさらに参照する前記ブートパス情報を前記起動用記憶装置に記憶する起動データ書き込み手段を備えた、
ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記起動データ書き込み手段は、前記記憶装置に既に記憶されている前記起動データの格納位置とは異なる前記記憶装置内の格納位置に新たな前記起動データを記憶し、当該新たな起動データのデータ内容及び格納位置に基づく新たな前記アドレスデータをさらに参照する新たな前記ブートパス情報を前記起動用記憶装置に記憶する、
ストレージシステム。
【請求項４】
請求項１乃至３のいずれかに記載のストレージシステムであって、
前記ファイルシステムアクセス手段をそれぞれ備え前記記憶装置にアクセス可能な情報処理装置である複数のアクセラレータノードを備え、
各前記アクセラレータノードが備える各前記起動手段は、前記起動データの格納位置を参照する前記アドレスデータをさらに参照する前記ブートパス情報に基づいて同一の前記起動データを前記記憶装置からそれぞれ読み出す、
ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
各前記アクセラレータノードが有する各前記起動手段は、同一の前記起動用記憶装置から前記起動データを参照する前記アドレスデータをさらに参照する前記ブートパス情報を読み出して、当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出す、
ストレージシステム。
【請求項６】
請求項５に記載のストレージシステムであって、
前記起動用記憶装置は、前記ストレージシステムを構成する前記情報処理装置のうち、前記ソフトウェアが組み込まれる前記情報処理装置と接続された他の情報処理装置に装備されている、
ストレージシステム。
【請求項７】
請求項１乃至６のいずれかに記載のストレージシステムであって、
前記起動手段は、ＲＯＭ（Read Only Memory）に記憶されたプログラムの実行により作動する、
ストレージシステム。
【請求項８】
請求項１乃至７のいずれかに記載のストレージシステムであって、
前記ソフトウェアは、前記ストレージシステムを構成する前記情報処理装置のオペレーティングシステムである、
ストレージシステム。
【請求項９】
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置に、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を、起動用記憶装置から読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段、を実現させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムであって、
前記情報処理装置に、前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータをさらに参照する前記ブートパス情報を前記起動用記憶装置に記憶する起動データ書き込み手段、を実現させるためのプログラム。
【請求項１１】
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置が、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を、起動用記憶装置から読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する、
情報処理方法。
【請求項１２】
請求項１１に記載の情報処理方法であって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータをさらに参照する前記ブートパス情報を前記起動用記憶装置に記憶する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにかかり、特に、格納したデータの内容に応じて特定される固有のアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレス型のストレージシステムに関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
【０００４】
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
【０００５】
また、上記コンテンツアドレスとしては、データの内容に応じて固有となるよう生成される値、例えば、データのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【０００６】
また、コンテンツアドレスストレージシステムでは、特許文献２に示すように、ツリー型ファイルシステムが用いられている。これは、格納したデータを参照するコンテンツアドレス自体を、さらに上位階層に位置するコンテンツアドレスにて参照し、コンテンツアドレスをツリー構造に形成して格納している、というものである。これにより、上位階層から下位階層に向かって、コンテンツアドレスの参照先を辿っていくことで、目的の格納データにアクセスすることができる。
【０００７】
そして、ツリー型ファイルシステムでアクセス可能なコンテンツアドレスストレージシステムでは、ファイルが削除、または、上書きされたとき、元のデータは、ツリー型ファイルシステムからは参照ができなくなるが、コンテンツアドレスを指定すれば参照可能な状態としてデータブロックを残すことができる。これは、後に同一データが再び書き込まれたときに、既に記憶されているデータブロックと重複していることから再書き込みが発生せず、性能向上の効果が期待できるためである。ただし、データブロックを削除しないと格納可能な領域が減ってしまうため、一定時間後、もしくは、領域を全て使用した時点でリンクしていないデータブロックを回収する必要がある。
【０００８】
ここで、図１を参照して、コンテンツアドレスストレージシステム１１０の特徴について説明する。コンテンツアドレスストレージシステム１１０は、CPU（Central Processing Unit）、メモリ、ディスクなど汎用的に使用できる部品から構成されており、その上で、例えば、ツリー型ファイルシステムにアクセスすると、データ格納部１２０にデータを格納することのできるファイルシステムアクセス部１１２が動作する。このようにして、汎用的な部品を使用し、新たな機能を持つストレージシステムを構成している。
【０００９】
このとき、上述したファイルシステムアクセス部１１２等を構成するOS（SW実行部）１１１やソフトウェアのデータは、コンテンツアドレス可能なデータ格納部１２０とは別の一般的なファイルシステムを持つSW格納部１２２，１２３に格納されている。なお、SW格納部１２２，１２３は、コンテンツアドレスストレージシステム１１０から直接アクセスできる形態ではなく、ネットワークで接続されるブートサーバ１３０に装備したり、当該ブートサーバ１３０を介して装備することもできる。
【００１０】
ここで、図２を参照して、既存技術でのシステムを起動する動作について説明する。先に説明したとおり、起動方法は直接アクセスできるディスクからの起動と、ネットワークを介した起動の２つに分類できる。
【００１１】
第１に、直接アクセスできるディスクからの起動のときは（ステップＳ１０１でＹｅｓ）、OS起動部１１５は、ブートを行うための１次ブートローダと呼ばれる小さなソフトウェアを読み込む（ステップＳ１０２）。このソフトウェアは、例えば、ROMに記憶されている。ブートローダは、OSのすべての機能を持っているわけではなく、OSを起動するための別のプログラムをロードするのに十分な機能を持っており、多段階にブートする。例えば、１次ブートローダは、ディスクの決まった位置に格納されており、容易に読み出せるようになっており、そのプログラムを用い、２次ブートローダを読み（ステップＳ１０３）、ファイルシステムを介して読み込みができるようになる。そして、最終的にOSイメージを読み込み、OSの起動が行われる（ステップＳ１０４）。
【００１２】
第２に、ネットワークを介した起動のときは（ステップＳ１０１でＮｏ）、OS起動部１１５は、例えば、bootpやDHCPなどのプロトコルを用いて、ブートサーバ１３０からブートに必要な情報を得る（ステップＳ１１１，Ｓ１１２）。ネットワークを介してブート情報が存在するホストにアクセスするため、ブートするOSイメージの所在を示すブートパスの他に、自側IPアドレスの設定などが、あわせて返却される。OS起動部１１５は、ブートパスに従い、ブートサーバ１３０から、２次ブートローダやOSイメージを読み込む（ステップＳ１１３，Ｓ１１４，Ｓ１１５，Ｓ１１６）。このとき、データブロックの転送は、TFTPのような単純なプロトコルで行う。このようにしてネットワークを介しOSイメージを読み込み、システムを起動することができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第４３７２６７１号公報
【特許文献２】特開２０１０−１９８５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述した技術では、以下のような問題がある。まず、コンテンツアドレスストレージシステムとしては、重複排除の機能を提供するとともに、冗長性を高める効果を提供している。一方で、OSイメージやSWイメージを格納しているSW格納部１２２，１２３については、例えば、RAIDディスクと一般的なファイルシステムを具備し、冗長性を高め、システムとしてのロバストである構成をとるなどしている。このように、格納領域としては、２つの異なる機能が必要である、という問題がある。さらに言えば、一般的なOSやSWイメージの格納場所としては、ツリー型のファイルシステムで扱われることが多い。ところが、OSイメージやSWイメージを一般的なツリー型ファイルシステムと同様にアクセスし、コンテンツアドレス可能なデータ格納部に格納することは容易であるが、このように格納されたイメージをブート時にツリー構造を辿って読み出すことは困難である。
【００１５】
また、バージョンアップやソフトウェアの更新など保守において、OSイメージやSWイメージを置換する際には、これらを構成するファイルの一貫性をとる必要がある。例えば、OSイメージを置換するときは、前のイメージを壊す可能性があるため、いくつかのバージョンを保存しておくなどバージョン管理が必要となる。また、関連する設定ファイルがある場合、置換の途中で一時的な障害で再起動が行われると、一部は最新のファイルであるが残りは前のバージョンのファイルとなってしまうという問題がある。さらに言えば、コンテンツアドレスストレージシステムは、複数の装置でひとつのストレージシステムとして構成することもできるが、このときも同様に、あるノードではソフトウェアの最新化が終っているのに対して、他のノードでは未完了の場合がある、といった問題も生じる。
【００１６】
このため、本発明の目的は、上述した課題である、重複排除機能を有するストレージシステムにおける起動を容易に実現することにある。
【課題を解決するための手段】
【００１７】
本発明の一形態であるストレージシステムは、
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えたストレージシステムであって、
前記ストレージシステムを構成する情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要な起動データを前記記憶装置内の前記アドレスデータにて参照される格納位置に記憶しており、
前記起動データを参照する前記アドレスデータを格納する起動用記憶装置と、
前記起動用記憶装置から前記アドレスデータを読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段と、
を備えた、
という構成を取る。
【００１８】
また、本発明の他の形態であるプログラムは、
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置に、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段、を実現させるためのプログラムである。
【００１９】
また、本発明の他の形態である情報処理方法は、
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置が、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する、
という構成を取る。
【発明の効果】
【００２０】
本発明は、以上のように構成されることにより、重複排除機能を有するストレージシステムにおける起動を容易に実現することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明に関連するストレージシステムの構成を示すブロック図である。
【図２】本発明に関連するストレージシステムの起動時の動作を示すフローチャートである。
【図３】ストレージシステムの構成を示す図である。
【図４】本発明のストレージシステムの構成を示すブロック図である。
【図５】図４に開示したストレージシステムにおけるデータ格納時の様子を示す説明図である。
【図６】図４に開示したストレージシステムにおけるデータ格納時の様子を示す説明図である。
【図７】図４に開示したストレージシステムに格納されたデータの様子を示す図である。
【図８】図４に開示したストレージシステムに格納されたデータの様子を示す図である。
【図９】図４に開示したストレージシステムに格納されたデータの様子を示す図である。
【図１０】図４に開示したストレージシステムの起動時の動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
＜実施形態１＞
図３に示すように、本発明の実施形態１におけるストレージシステム１０は、ネットワークＮを介してバックアップ処理を制御するバックアップシステム４０に接続されている。そして、バックアップシステム４０は、ネットワークＮを介して接続されたバックアップ対象装置（図示せず）に格納されているバックアップ対象データ（記憶対象データ）を取得し、ストレージシステム１に対して記憶するよう要求する。これにより、ストレージシステム１は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【００２３】
そして、本実施形態におけるストレージシステム１は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム１は、ストレージシステム１自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード１Ａと、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード１Ｂと、を備えている。なお、アクセラレータノード１Ａの数とストレージノード１Ｂの数は、図３に示したものに限定されず、さらに多くの各ノード１Ａ，１Ｂが接続されて構成されていてもよい。
【００２４】
さらに、本実施形態におけるストレージシステム１は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。具体的な構成については詳述する。
【００２５】
また、以下では、ストレージシステム１が１つのシステムであるとして、当該ストレージシステム１が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム１が有する構成及び機能は、アクセラレータノード１Ａあるいはストレージノード１Ｂのいずれに備えられていてもよい。なお、ストレージシステム１は、図３に示すように、必ずしもアクセラレータノード１Ａとストレージノード１Ｂとを備えていることに限定されず、いかなる構成であってもよい。
【００２６】
図４に、上述したストレージシステム１の具体的な構成を示す。この図に示すように、ストレージシステム１は、上述したアクセラレータノード１Ａとストレージノード１Ｂとによって、データを記憶するデータ格納部２０と、当該データ格納部２０に対するデータの記憶及び読み出し動作を制御するコンテンツアドレスストレージシステム１０と、を備えている。例えば、上記コンテンツアドレスストレージシステム１０は、図３に示した１台のアクセラレータノード１Ａにて構成されており、上記データ格納部３０は、複数台のストレージノード１Ｂにて構成されている。
【００２７】
そして、図４に示すように、上記コンテンツアドレスストレージシステム１０は、アクセラレータノード１Ａに装備されたＣＰＵ（Central Processing Unit）といった演算装置にプログラムが組み込まれることにより構築された、ＯＳ（ＳＷ実行部）１１と、ＯＳ起動部１５と、データ読み出し部１６と、を備えている。そして、上記ＯＳ（ＳＷ実行部）１１は、ファイルシステムアクセス部１２と、ＯＳイメージ書き込み部１３と、ＳＷ起動部１４と、を備えている。また、コンテンツアドレスストレージシステム１０は、ブートサーバ３０とバックアップシステム４０とに接続されている。以下、各構成について詳述する。
【００２８】
上記ＯＳ（SW実行部）１１は、ソフトウェアをメモリ上にロードし、CPUで実行を行う機能を有する。これは、一般的に知られているUNIX（登録商標）やWindows（登録商標）などのオペレーティングシステムと同等であり、当該ＯＳ１１が備えるファイルシステムアクセス部１２は、例えば、実行ファイルやライブラリなど複数のファイルから構成されている。そして、ＯＳ（SW実行部）１１は、それらの必要な部分をメモリ上にロードし実行することにより、ファイルシステムアクセス部１２が動作する。
【００２９】
上記ファイルシステムアクセス部１２は、バックアップシステム４０からのバックアップ対象データをデータ格納部２０に格納すると共に、当該データ格納部２０から読み出す処理を行う。特に、ファイルシステムアクセス部１２は、データ格納部２０に対して、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定する。以下、図５乃至図６を参照して、ファイルシステムアクセス部１２によるデータの書き込み及び読み出し時の様子を説明する。
【００３０】
まず、ファイルシステムアクセス部１２は、図６の矢印Ｙ１に示すようにバックアップ対象データＡの入力を受けると、図５及び図６の矢印Ｙ２に示すように、当該バックアップ対象データＡを、所定容量（例えば、６４ＫＢ）のブロックデータＤに分割する。そして、このブロックデータＤのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Ｈ（内容識別情報）を算出する（矢印Ｙ３）。なお、ハッシュ値Ｈは、例えば、予め設定されたハッシュ関数を用いて、ブロックデータＤのデータ内容に基づいて算出する。
【００３１】
また、ファイルシステムアクセス部１２は、バックアップ対象データＡのブロックデータＤのハッシュ値Ｈを用いて、当該ブロックデータＤが既にデータ格納部２０に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータＤは、そのハッシュ値Ｈと格納位置を表すコンテンツアドレスＣＡが、関連付けられてＭＦＩ（Ｍａｉｎ  Ｆｒａｇｍｅｎｔ  Ｉｎｄｅｘ）ファイルに登録されている。従って、ファイルシステムアクセス部１２は、格納前に算出したブロックデータＤのハッシュ値ＨがＭＦＩファイル内に存在している場合には、既に同一内容のブロックデータＤが格納されていると判断できる（図６の矢印Ｙ４）。この場合には、格納前のブロックデータＤのハッシュ値Ｈと一致したＭＦＩファイル内のハッシュ値Ｈに関連付けられているコンテンツアドレスＣＡを、当該ＭＦＩファイルから取得する。そして、このコンテンツアドレスＣＡを、記憶要求にかかるブロックデータＤのコンテンツアドレスＣＡとして返却する。これにより、このコンテンツアドレスＣＡにて参照される既に格納されているデータが、記憶要求されたブロックデータＤとして使用されることとなり、当該記憶要求にかかるブロックデータＤは記憶する必要がなくなる。
【００３２】
また、ファイルシステムアクセス部１２は、まだデータ格納部２０記憶されていないと判断されたブロックデータＤを圧縮して、図６の矢印Ｙ５に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図５の符号Ｄ１〜Ｄ９に示すように、９つのフラグメントデータ（分割データ５１）に分割する。さらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ５１に追加する。例えば、図５の符号Ｄ１０〜Ｄ１２に示すように、３つのフラグメントデータ（冗長データ５２）を付加する。これにより、９つの分割データ５１と、３つの冗長データ５２とにより構成される１２個のフラグメントデータからなるデータセット５０を生成する。
【００３３】
また、ファイルシステムアクセス部１２は、上述したように生成されたデータセット５０を構成する各フラグメントデータを、データ格納部２０に形成された各記憶領域に、それぞれ分散して格納する。例えば、図５に示すように、１２個のフラグメントデータＤ１〜Ｄ１２を生成した場合には、１２個のデータ格納部２０にそれぞれ形成したデータ格納ファイルＦ１〜Ｆ１２（データ格納領域）に、各フラグメントデータＤ１〜Ｄ１２を１つずつそれぞれ格納する（図６の矢印Ｙ６参照）。
【００３４】
また、ファイルシステムアクセス部１２は、上述したようにデータ格納部２０に格納したフラグメントデータＤ１〜Ｄ１２の格納位置、つまり、当該フラグメントデータＤ１〜Ｄ１２にて復元されるブロックデータＤの格納位置を表す、コンテンツアドレスＣＡを生成して管理する。具体的には、格納したブロックデータＤの内容に基づいて算出したハッシュ値Ｈの一部（ショートハッシュ）（例えば、ハッシュ値Ｈの先頭８Ｂ（バイト））と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスＣＡを生成する。そして、このコンテンツアドレスＣＡを、ストレージシステム１０内のファイルシステムに返却する（図６の矢印Ｙ７）。すると、ファイルシステムアクセス部１２は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスＣＡとを関連付けてファイルシステムで管理しておく。
【００３５】
また、ファイルシステムアクセス部１２は、ブロックデータＤのコンテンツアドレスＣＡと、当該ブロックデータＤのハッシュ値Ｈと、を関連付けて、各ストレージノード１０ＢがＭＦＩファイルにて管理する。このように、上記コンテンツアドレスＣＡは、ファイルを特定する情報やハッシュ値Ｈなどと関連付けられて、ストレージシステム１０内に格納される。
【００３６】
このようにして、データ格納部２０には、最終的には、図７等に示すように、格納されたデータを参照するコンテンツアドレスがツリー構造にて格納されることとなる。例えば、図７の「ca00」や「ca01」に示される箱は、データブロックを示しており、「ca00」や「ca01」の値は、それぞれそのコンテンツを特定するアドレスである。
【００３７】
ここで、図７に示すように、あるデータブロックから別のデータブロックを参照するときは、コンテンツアドレスである「ca」で示す直接アドレスを用いる方法と、「#1」で示す間接アドレスを用いる方法がある。関節アドレスを用いる場合には、アドレス対応表「ca100」に、間接アドレスが参照するデータの直接アドレスであるコンテンツアドレス「ca」を格納している。例えば、図７の例では、「file1」の格納先は「#3」となっており、直接コンテンツアドレス「ca30」を記録するのではなく間接アドレスを用いている。直接アドレスを用いるときには、ツリー構造のリーフにおける変更はルートまで伝搬されることとなる。例えば、「ca30」の変更は「ca11」の変更になり、さらに上位の「ca10」を変更しなければならない。間接アドレスを用いることで、当該関節アドレスに対応づけたコンテンツアドレスを変更すればよく、上述したようなコンテンツアドレスの変更の伝搬を抑制することができる。なお、ツリー構造をたどる源は、ルート情報として格納されており、格納データは、このルート情報から木構造でたどることができる。
【００３８】
そして、図７に示す例では、OS（SW実行部）１１を起動するために必要なデータであるOSイメージ（起動データ）を、「/dir2/file3/OSimage」ファイルに格納しているデータブロックトツリー構造を示している。なお、OSイメージは、図４に示すように、後述するOS起動部１５にてデータ読み出し部１６を介して読み出され、この内容を元に多段ブートによりOS（SW実行部）１１を構築するものである。
【００３９】
具体的に、OSイメージ２１は、OSイメージ書き込み部１３（起動データ書き込み手段）によって、データ格納部２０に書き込まれる。例えば、図７に示すように、OSイメージは、コンテンツアドレス「ca50」にて参照されるコンテンツアドレス「ca51」及び「ca52」に対応するデータブロックとして記憶される。そして、OSイメージ書き込み部１３は、データ格納部２０に書き込んだOSイメージの格納位置を参照するコンテンツアドレス「ca50」を、ブートサーバ３０に装備された記憶装置内の「ブートパス」３１に格納する。なお、ブートパス３１は、データ格納部２０とは異なる記憶装置の記憶領域（起動用記憶装置）である。但し、上記OSイメージの格納位置を参照するコンテンツアドレスは、ROMなどの他の記憶装置（起動用記憶装置）に記憶されていてもよい。
【００４０】
また、OSイメージ書き込み部１３は、例えばOS（SW実行部）１１のバージョンアップなどの更新を行うと、データ格納部２０に新しいOSイメージの格納を行い、当該OSイメージが新たに格納された格納位置を表すコンテンツアドレスを、ブートサーバ３０のブートパス３１に格納する。例えば、図８に示すように、新しいOSイメージを格納すると、当該OSイメージを参照するコンテンツアドレス「ca50-1」にて参照されるコンテンツアドレス「ca51-1」及び「ca52-1」に対応するデータブロックとして記憶される。そして、OSイメージ書き込み部１３は、図９に示すように、データ格納部２０に新たに書き込んだOSイメージの格納位置を参照するコンテンツアドレス「ca50-1」を、ブートサーバ３０に装備された記憶装置内の「ブートパス」３１に新たに格納して、これまでのコンテンツアドレスから書き換える。
【００４１】
このとき、書き換えられる前の「ブートパス」３１に格納されていた元のデータブロック、つまり、以前のOSイメージは、データ格納部２０内の上記コンテンツアドレス「ca50」にて参照される「ca51」、「ca52」で特定される格納位置に、削除されずに残ることとなる。従って、ブートパス情報として、「ca50」が残っている限り、一貫性が破壊されることなく、前のOSイメージでブート可能な状態を保つことができる。なお、ブートパスであるOSイメージの格納先となるコンテンツアドレスは、ここでは、ブートサーバ３０上に持つこととしているが、コンテンツアドレスストレージシステム１０にてアクセス可能な他の記憶装置に記憶されていてもよく、データ格納部２０内の特定の場所に記憶してもよい。
【００４２】
さらに、ファイルシステムアクセス部１２は、上述したように格納したバックアップ対象データを読み出す制御を行う。例えば、ストレージシステム１０に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスＣＡを指定する。そして、ファイルシステムアクセス部１２は、コンテンツアドレスＣＡがＭＦＩファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
【００４３】
一方、読み出し要求にかかるコンテンツアドレスＣＡが登録されている場合には、上記コンテンツアドレスＣＡにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。
【００４４】
そして、ファイルシステムアクセス部１２は、読み出し要求に応じて読み出した各フラグメントデータからブロックデータＤを復元する。さらに、ファイルシステムアクセス部１２は、復元したブロックデータＤを複数連結し、ファイルＡなどの一群のデータに復元して、返却する。
【００４５】
また、OS起動部１５（起動手段）は、ＯＳ（SW実行部）１１をＣＰＵに構築し、利用可能にするための小さなプログラムであり、ROMに記憶されたソフトウェアから構成される。そして、OS起動部１５は、まず、bootpのような簡素なプロトコルを用い、ブートサーバ３０からコンテンツアドレスを得る。そして、このコンテンツアドレスの参照先となるデータ格納部２０内のデータブロックに格納されたOSイメージを、データ読み出し部１６にて読み出し、当該OSイメージの内容を元に多段ブートを行う。これにより、OS（実行部）１１を起動することができる。
【００４６】
［動作］
次に、上述したストレージシステムの動作を、図９及び図１０を参照して説明する。なお、ここでは、データ格納部２０には、図９に示すように、コンテンツアドレス「ca50-1」の格納位置に新しいOSイメージが格納されており、かかるコンテンツアドレス「ca50-1」がブートサーバ３０のブートパス３１に格納されていることとする。
【００４７】
システムの起動時に、OS起動部１５は、ブートサーバ３０にシステム起動のためのコンテンツアドレスを問い合わせる（ステップＳ１）。このコンテンツアドレスの問い合わせは、bootpのようなプロトコルで実施可能であり、ブートサーバ３０は、あらかじめ記録したコンテンツアドレスを、ブートパス３０として返却する（ステップＳ２）。
【００４８】
その後、OS起動部１５は、データ読み出し部１６を介し、返却されたコンテンツアドレス「ca50-1」にて参照されるコンテンツアドレス列「ca51-1」、「ca52-1」を入手し、かかる格納位置に格納されたOSイメージ２１を入手する。そして、データ読み出し部１６は、入手したOSイメージ２１をOS起動部１５に渡し、多段階にブートすることで、OSの起動を行う（ステップＳ３〜Ｓ６）。
【００４９】
このようにして、OSイメージやSWイメージを読み込み、これをメモリ上に展開する。このとき、例えば、ISOイメージのような形式でOSと必要なSWをまとめておくこともできる。そして、メモリファイルシステムとして展開することによって、起動に必要な情報をまとめてツリー構造ファイルシステムとして得てもかまわない。
【００５０】
なお、このとき、データ格納部２０を構成する特定のストレージノード内に該当コンテンツアドレスつまりブートパス３０として返却されたコンテンツアドレスが存在していなければ、他のストレージノードを検索し、該当コンテンツアドレスにて参照される格納領域の内容を読み出すことができる。このときの方法として、コンテンツアドレスを他のストレージノードにブロードキャストをする方法で該当コンテンツアドレスを探してもよく、コンテンツアドレスより該当サーバのアドレスが求まる方法であってもかまわない。
【００５１】
また、データ格納部２０にアクセスするコンテンツアドレスストレージシステム１０は、複数のアクセラレータノードに形成されることとなるが、各アクセラレータノードは、それぞれが同一のブートサーバ３０から同一のブートパス３１を入手し、それぞれが同一のコンテンツアドレスにて参照される格納位置だけに格納されているOSイメージを取得することで、同一のOS（SW実行部）１１を構築することができる。
【００５２】
以上により、本発明によると、複数のコンピュータにて構成されたストレージシステム全体において、OSやソフトウェアの一貫性を保つことができる。それは、格納されたデータの内容はコンテンツアドレスで一意となるからであり、複数ノードから構成されるシステムにおいては、同一コンテンツアドレスからブートすれば、全ノードでOSイメージやソフトウェアを共有し、その一貫性を保つことができる。例えば、保守作業でOSイメージやソフトウェアの更新を行ったとしても、ブートで使用するコンテンツアドレスを変えなければ、以前のイメージを読み出すことができる。従って、ファイルシステムとは独立して、コンテンツアドレスを用いてOSイメージやソフトウェアのバージョン管理を容易に行うことができる。
【００５３】
また、本発明によると、万一、新しいOSやソフトウェアに問題があったときに、前のバージョンで起動ができる。その理由は、OSやソフトウェアをコンテンツアドレス可能なデータ格納部２０に格納することで、前のコンテンツを破壊することなく、格納可能であるためである。起動するコンテンツアドレスを前のものに戻すことにより、以前のOSイメージやSWイメージを用いることができる。
【００５４】
また、本発明によると、OS、ソフトウェアの格納領域の容量と、置換にかかる時間とを、最小に抑えることができる。その理由は、各アクセラレータノードのOSイメージが同一であるとき、全ノードで個々イメージを持つ必要が無く、同一のアドレスを持つコンテンツとして格納されるからである。
【００５５】
さらに、本発明によると、ストレージシステムの構成を簡素化できることにある。その理由は、これまでのストレージシステムの構成は、図１に示したように、コンテンツアドレス可能なデータ格納部の他に、OS起動やソフトウェア格納用に個別のデータ格納部を持っているのに対し、本発明では、コンテンツアドレス可能なデータ格納部２０に、OSイメージ、SWイメージを格納するからである。
【００５６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム等の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００５７】
（付記１）
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えたストレージシステムであって、
前記ストレージシステムを構成する情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要な起動データを前記記憶装置内の前記アドレスデータにて参照される格納位置に記憶しており、
前記起動データを参照する前記アドレスデータを格納する起動用記憶装置と、
前記起動用記憶装置から前記アドレスデータを読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段と、
を備えたストレージシステム。
【００５８】
（付記２）
付記１に記載のストレージシステムであって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する起動データ書き込み手段を備えた、
ストレージシステム。
【００５９】
（付記３）
付記２に記載のストレージシステムであって、
前記起動データ書き込み手段は、前記記憶装置に既に記憶されている前記起動データの格納位置とは異なる前記記憶装置内の格納位置に新たな前記起動データを記憶し、当該新たな起動データのデータ内容及び格納位置に基づく新たな前記アドレスデータを前記起動用記憶装置に記憶する、
ストレージシステム。
【００６０】
（付記４）
付記１乃至３のいずれかに記載のストレージシステムであって、
前記ファイルシステムアクセス手段をそれぞれ備え前記記憶装置にアクセス可能な情報処理装置である複数のアクセラレータノードを備え、
各前記アクセラレータノードが備える各前記起動手段は、前記起動データの格納位置を参照する前記アドレスデータに基づいて同一の前記起動データを前記記憶装置からそれぞれ読み出す、
ストレージシステム。
【００６１】
（付記５）
付記４に記載のストレージシステムであって、
各前記アクセラレータノードが有する各前記起動手段は、同一の前記起動用記憶装置から前記起動データを参照する前記アドレスデータを読み出して、当該アドレスデータを参照して前記記憶装置から前記起動データを読み出す、
ストレージシステム。
【００６２】
（付記６）
付記５に記載のストレージシステムであって、
前記起動用記憶装置は、前記ストレージシステムを構成する前記情報処理装置のうち、前記ソフトウェアが組み込まれる前記情報処理装置と接続された他の情報処理装置に装備されている、
ストレージシステム。
【００６３】
（付記７）
付記１乃至６のいずれかに記載のストレージシステムであって、
前記起動手段は、ＲＯＭ（Read Only Memory）に記憶されたプログラムの実行により作動する、
ストレージシステム。
【００６４】
（付記８）
付記１乃至７のいずれかに記載のストレージシステムであって、
前記ソフトウェアは、前記ストレージシステムを構成する前記情報処理装置のオペレーティングシステムである、
ストレージシステム。
【００６５】
（付記９）
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置に、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段、を実現させるためのプログラム。
【００６６】
（付記１０）
付記９に記載のストレージシステムであって、
前記情報処理装置に、前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する起動データ書き込み手段、を実現させるためのプログラム。
【００６７】
（付記１１）
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置が、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する、
情報処理方法。
【００６８】
（付記１２）
付記１１に記載の情報処理方法であって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する、
情報処理方法。
【符号の説明】
【００６９】
１  ストレージシステム
１Ａ  アクセラレータノード
１Ｂ  ストレージノード
２  バックアップシステム
１０  コンテンツアドレスストレージシステム
１１  OS（SW実行部）
１２  ファイルシステムアクセス部
１３  OSイメージ書き込み部
１４  SW起動部
１５  OS起動部
１６  データ読み出し部
２０  データ格納部
２１  OSイメージ
３０  ブートサーバ
３１  ブートパス
４０  バックアップシステム
【図１】
0005725546.tif 000002
【図２】
0005725546.tif 000003
【図３】
0005725546.tif 000004
【図４】
0005725546.tif 000005
【図５】
0005725546.tif 000006
【図６】
0005725546.tif 000007
【図７】
0005725546.tif 000008
【図８】
0005725546.tif 000009
【図９】
0005725546.tif 000010
【図１０】
0005725546.tif 000011