【文献】
福田和宏,クラウドにも使える 最新KNOPPIX徹底活用 Part2 好みの仮想OSをどこでも使える! 新機能「OS Circular」を試す,日経Linux,日本,日経BP社,2010年 2月 8日,第12巻 第3号,pp. 84〜89
(58)【調査した分野】(Int.Cl.,DB名)
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えたストレージシステムであって、
前記ストレージシステムを構成する情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要な起動データを前記記憶装置内の前記アドレスデータにて参照される格納位置に記憶しており、
前記起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を格納する起動用記憶装置と、
前記起動用記憶装置から前記ブートパス情報を読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段と、
を備えたストレージシステム。
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置に、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を、起動用記憶装置から読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段、を実現させるためのプログラム。
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置が、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータをさらに参照する前記アドレスデータであるブートパス情報を、起動用記憶装置から読み出して当該ブートパス情報を参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する、
情報処理方法。
【背景技術】
【0002】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【0003】
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
【0004】
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
【0005】
また、上記コンテンツアドレスとしては、データの内容に応じて固有となるよう生成される値、例えば、データのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【0006】
また、コンテンツアドレスストレージシステムでは、特許文献2に示すように、ツリー型ファイルシステムが用いられている。これは、格納したデータを参照するコンテンツアドレス自体を、さらに上位階層に位置するコンテンツアドレスにて参照し、コンテンツアドレスをツリー構造に形成して格納している、というものである。これにより、上位階層から下位階層に向かって、コンテンツアドレスの参照先を辿っていくことで、目的の格納データにアクセスすることができる。
【0007】
そして、ツリー型ファイルシステムでアクセス可能なコンテンツアドレスストレージシステムでは、ファイルが削除、または、上書きされたとき、元のデータは、ツリー型ファイルシステムからは参照ができなくなるが、コンテンツアドレスを指定すれば参照可能な状態としてデータブロックを残すことができる。これは、後に同一データが再び書き込まれたときに、既に記憶されているデータブロックと重複していることから再書き込みが発生せず、性能向上の効果が期待できるためである。ただし、データブロックを削除しないと格納可能な領域が減ってしまうため、一定時間後、もしくは、領域を全て使用した時点でリンクしていないデータブロックを回収する必要がある。
【0008】
ここで、
図1を参照して、コンテンツアドレスストレージシステム110の特徴について説明する。コンテンツアドレスストレージシステム110は、CPU(Central Processing Unit)、メモリ、ディスクなど汎用的に使用できる部品から構成されており、その上で、例えば、ツリー型ファイルシステムにアクセスすると、データ格納部120にデータを格納することのできるファイルシステムアクセス部112が動作する。このようにして、汎用的な部品を使用し、新たな機能を持つストレージシステムを構成している。
【0009】
このとき、上述したファイルシステムアクセス部112等を構成するOS(SW実行部)111やソフトウェアのデータは、コンテンツアドレス可能なデータ格納部120とは別の一般的なファイルシステムを持つSW格納部122,123に格納されている。なお、SW格納部122,123は、コンテンツアドレスストレージシステム110から直接アクセスできる形態ではなく、ネットワークで接続されるブートサーバ130に装備したり、当該ブートサーバ130を介して装備することもできる。
【0010】
ここで、
図2を参照して、既存技術でのシステムを起動する動作について説明する。先に説明したとおり、起動方法は直接アクセスできるディスクからの起動と、ネットワークを介した起動の2つに分類できる。
【0011】
第1に、直接アクセスできるディスクからの起動のときは(ステップS101でYes)、OS起動部115は、ブートを行うための1次ブートローダと呼ばれる小さなソフトウェアを読み込む(ステップS102)。このソフトウェアは、例えば、ROMに記憶されている。ブートローダは、OSのすべての機能を持っているわけではなく、OSを起動するための別のプログラムをロードするのに十分な機能を持っており、多段階にブートする。例えば、1次ブートローダは、ディスクの決まった位置に格納されており、容易に読み出せるようになっており、そのプログラムを用い、2次ブートローダを読み(ステップS103)、ファイルシステムを介して読み込みができるようになる。そして、最終的にOSイメージを読み込み、OSの起動が行われる(ステップS104)。
【0012】
第2に、ネットワークを介した起動のときは(ステップS101でNo)、OS起動部115は、例えば、bootpやDHCPなどのプロトコルを用いて、ブートサーバ130からブートに必要な情報を得る(ステップS111,S112)。ネットワークを介してブート情報が存在するホストにアクセスするため、ブートするOSイメージの所在を示すブートパスの他に、自側IPアドレスの設定などが、あわせて返却される。OS起動部115は、ブートパスに従い、ブートサーバ130から、2次ブートローダやOSイメージを読み込む(ステップS113,S114,S115,S116)。このとき、データブロックの転送は、TFTPのような単純なプロトコルで行う。このようにしてネットワークを介しOSイメージを読み込み、システムを起動することができる。
【発明を実施するための形態】
【0022】
<実施形態1>
図3に示すように、本発明の実施形態1におけるストレージシステム10は、ネットワークNを介してバックアップ処理を制御するバックアップシステム40に接続されている。そして、バックアップシステム40は、ネットワークNを介して接続されたバックアップ対象装置(図示せず)に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム1に対して記憶するよう要求する。これにより、ストレージシステム1は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【0023】
そして、本実施形態におけるストレージシステム1は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード1Aと、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード1Bと、を備えている。なお、アクセラレータノード1Aの数とストレージノード1Bの数は、
図3に示したものに限定されず、さらに多くの各ノード1A,1Bが接続されて構成されていてもよい。
【0024】
さらに、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。具体的な構成については詳述する。
【0025】
また、以下では、ストレージシステム1が1つのシステムであるとして、当該ストレージシステム1が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム1が有する構成及び機能は、アクセラレータノード1Aあるいはストレージノード1Bのいずれに備えられていてもよい。なお、ストレージシステム1は、
図3に示すように、必ずしもアクセラレータノード1Aとストレージノード1Bとを備えていることに限定されず、いかなる構成であってもよい。
【0026】
図4に、上述したストレージシステム1の具体的な構成を示す。この図に示すように、ストレージシステム1は、上述したアクセラレータノード1Aとストレージノード1Bとによって、データを記憶するデータ格納部20と、当該データ格納部20に対するデータの記憶及び読み出し動作を制御するコンテンツアドレスストレージシステム10と、を備えている。例えば、上記コンテンツアドレスストレージシステム10は、
図3に示した1台のアクセラレータノード1Aにて構成されており、上記データ格納部30は、複数台のストレージノード1Bにて構成されている。
【0027】
そして、
図4に示すように、上記コンテンツアドレスストレージシステム10は、アクセラレータノード1Aに装備されたCPU(Central Processing Unit)といった演算装置にプログラムが組み込まれることにより構築された、OS(SW実行部)11と、OS起動部15と、データ読み出し部16と、を備えている。そして、上記OS(SW実行部)11は、ファイルシステムアクセス部12と、OSイメージ書き込み部13と、SW起動部14と、を備えている。また、コンテンツアドレスストレージシステム10は、ブートサーバ30とバックアップシステム40とに接続されている。以下、各構成について詳述する。
【0028】
上記OS(SW実行部)11は、ソフトウェアをメモリ上にロードし、CPUで実行を行う機能を有する。これは、一般的に知られているUNIX(登録商標)やWindows(登録商標)などのオペレーティングシステムと同等であり、当該OS11が備えるファイルシステムアクセス部12は、例えば、実行ファイルやライブラリなど複数のファイルから構成されている。そして、OS(SW実行部)11は、それらの必要な部分をメモリ上にロードし実行することにより、ファイルシステムアクセス部12が動作する。
【0029】
上記ファイルシステムアクセス部12は、バックアップシステム40からのバックアップ対象データをデータ格納部20に格納すると共に、当該データ格納部20から読み出す処理を行う。特に、ファイルシステムアクセス部12は、データ格納部20に対して、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定する。以下、
図5乃至
図6を参照して、ファイルシステムアクセス部12によるデータの書き込み及び読み出し時の様子を説明する。
【0030】
まず、ファイルシステムアクセス部12は、
図6の矢印Y1に示すようにバックアップ対象データAの入力を受けると、
図5及び
図6の矢印Y2に示すように、当該バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値H(内容識別情報)を算出する(矢印Y3)。なお、ハッシュ値Hは、例えば、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容に基づいて算出する。
【0031】
また、ファイルシステムアクセス部12は、バックアップ対象データAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既にデータ格納部20に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、ファイルシステムアクセス部12は、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(
図6の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFIファイル内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、記憶要求にかかるブロックデータDのコンテンツアドレスCAとして返却する。これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、記憶要求されたブロックデータDとして使用されることとなり、当該記憶要求にかかるブロックデータDは記憶する必要がなくなる。
【0032】
また、ファイルシステムアクセス部12は、まだデータ格納部20記憶されていないと判断されたブロックデータDを圧縮して、
図6の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、
図5の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ51)に分割する。さらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ51に追加する。例えば、
図5の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ52)を付加する。これにより、9つの分割データ51と、3つの冗長データ52とにより構成される12個のフラグメントデータからなるデータセット50を生成する。
【0033】
また、ファイルシステムアクセス部12は、上述したように生成されたデータセット50を構成する各フラグメントデータを、データ格納部20に形成された各記憶領域に、それぞれ分散して格納する。例えば、
図5に示すように、12個のフラグメントデータD1〜D12を生成した場合には、12個のデータ格納部20にそれぞれ形成したデータ格納ファイルF1〜F12(データ格納領域)に、各フラグメントデータD1〜D12を1つずつそれぞれ格納する(
図6の矢印Y6参照)。
【0034】
また、ファイルシステムアクセス部12は、上述したようにデータ格納部20に格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表す、コンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム10内のファイルシステムに返却する(
図6の矢印Y7)。すると、ファイルシステムアクセス部12は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理しておく。
【0035】
また、ファイルシステムアクセス部12は、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード10BがMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、ストレージシステム10内に格納される。
【0036】
このようにして、データ格納部20には、最終的には、
図7等に示すように、格納されたデータを参照するコンテンツアドレスがツリー構造にて格納されることとなる。例えば、
図7の「ca00」や「ca01」に示される箱は、データブロックを示しており、「ca00」や「ca01」の値は、それぞれそのコンテンツを特定するアドレスである。
【0037】
ここで、
図7に示すように、あるデータブロックから別のデータブロックを参照するときは、コンテンツアドレスである「ca」で示す直接アドレスを用いる方法と、「#1」で示す間接アドレスを用いる方法がある。関節アドレスを用いる場合には、アドレス対応表「ca100」に、間接アドレスが参照するデータの直接アドレスであるコンテンツアドレス「ca」を格納している。例えば、
図7の例では、「file1」の格納先は「#3」となっており、直接コンテンツアドレス「ca30」を記録するのではなく間接アドレスを用いている。直接アドレスを用いるときには、ツリー構造のリーフにおける変更はルートまで伝搬されることとなる。例えば、「ca30」の変更は「ca11」の変更になり、さらに上位の「ca10」を変更しなければならない。間接アドレスを用いることで、当該関節アドレスに対応づけたコンテンツアドレスを変更すればよく、上述したようなコンテンツアドレスの変更の伝搬を抑制することができる。なお、ツリー構造をたどる源は、ルート情報として格納されており、格納データは、このルート情報から木構造でたどることができる。
【0038】
そして、
図7に示す例では、OS(SW実行部)11を起動するために必要なデータであるOSイメージ(起動データ)を、「/dir2/file3/OSimage」ファイルに格納しているデータブロックトツリー構造を示している。なお、OSイメージは、
図4に示すように、後述するOS起動部15にてデータ読み出し部16を介して読み出され、この内容を元に多段ブートによりOS(SW実行部)11を構築するものである。
【0039】
具体的に、OSイメージ21は、OSイメージ書き込み部13(起動データ書き込み手段)によって、データ格納部20に書き込まれる。例えば、
図7に示すように、OSイメージは、コンテンツアドレス「ca50」にて参照されるコンテンツアドレス「ca51」及び「ca52」に対応するデータブロックとして記憶される。そして、OSイメージ書き込み部13は、データ格納部20に書き込んだOSイメージの格納位置を参照するコンテンツアドレス「ca50」を、ブートサーバ30に装備された記憶装置内の「ブートパス」31に格納する。なお、ブートパス31は、データ格納部20とは異なる記憶装置の記憶領域(起動用記憶装置)である。但し、上記OSイメージの格納位置を参照するコンテンツアドレスは、ROMなどの他の記憶装置(起動用記憶装置)に記憶されていてもよい。
【0040】
また、OSイメージ書き込み部13は、例えばOS(SW実行部)11のバージョンアップなどの更新を行うと、データ格納部20に新しいOSイメージの格納を行い、当該OSイメージが新たに格納された格納位置を表すコンテンツアドレスを、ブートサーバ30のブートパス31に格納する。例えば、
図8に示すように、新しいOSイメージを格納すると、当該OSイメージを参照するコンテンツアドレス「ca50-1」にて参照されるコンテンツアドレス「ca51-1」及び「ca52-1」に対応するデータブロックとして記憶される。そして、OSイメージ書き込み部13は、
図9に示すように、データ格納部20に新たに書き込んだOSイメージの格納位置を参照するコンテンツアドレス「ca50-1」を、ブートサーバ30に装備された記憶装置内の「ブートパス」31に新たに格納して、これまでのコンテンツアドレスから書き換える。
【0041】
このとき、書き換えられる前の「ブートパス」31に格納されていた元のデータブロック、つまり、以前のOSイメージは、データ格納部20内の上記コンテンツアドレス「ca50」にて参照される「ca51」、「ca52」で特定される格納位置に、削除されずに残ることとなる。従って、ブートパス情報として、「ca50」が残っている限り、一貫性が破壊されることなく、前のOSイメージでブート可能な状態を保つことができる。なお、ブートパスであるOSイメージの格納先となるコンテンツアドレスは、ここでは、ブートサーバ30上に持つこととしているが、コンテンツアドレスストレージシステム10にてアクセス可能な他の記憶装置に記憶されていてもよく、データ格納部20内の特定の場所に記憶してもよい。
【0042】
さらに、ファイルシステムアクセス部12は、上述したように格納したバックアップ対象データを読み出す制御を行う。例えば、ストレージシステム10に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、ファイルシステムアクセス部12は、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
【0043】
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。
【0044】
そして、ファイルシステムアクセス部12は、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、ファイルシステムアクセス部12は、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して、返却する。
【0045】
また、OS起動部15(起動手段)は、OS(SW実行部)11をCPUに構築し、利用可能にするための小さなプログラムであり、ROMに記憶されたソフトウェアから構成される。そして、OS起動部15は、まず、bootpのような簡素なプロトコルを用い、ブートサーバ30からコンテンツアドレスを得る。そして、このコンテンツアドレスの参照先となるデータ格納部20内のデータブロックに格納されたOSイメージを、データ読み出し部16にて読み出し、当該OSイメージの内容を元に多段ブートを行う。これにより、OS(実行部)11を起動することができる。
【0046】
[動作]
次に、上述したストレージシステムの動作を、
図9及び
図10を参照して説明する。なお、ここでは、データ格納部20には、
図9に示すように、コンテンツアドレス「ca50-1」の格納位置に新しいOSイメージが格納されており、かかるコンテンツアドレス「ca50-1」がブートサーバ30のブートパス31に格納されていることとする。
【0047】
システムの起動時に、OS起動部15は、ブートサーバ30にシステム起動のためのコンテンツアドレスを問い合わせる(ステップS1)。このコンテンツアドレスの問い合わせは、bootpのようなプロトコルで実施可能であり、ブートサーバ30は、あらかじめ記録したコンテンツアドレスを、ブートパス30として返却する(ステップS2)。
【0048】
その後、OS起動部15は、データ読み出し部16を介し、返却されたコンテンツアドレス「ca50-1」にて参照されるコンテンツアドレス列「ca51-1」、「ca52-1」を入手し、かかる格納位置に格納されたOSイメージ21を入手する。そして、データ読み出し部16は、入手したOSイメージ21をOS起動部15に渡し、多段階にブートすることで、OSの起動を行う(ステップS3〜S6)。
【0049】
このようにして、OSイメージやSWイメージを読み込み、これをメモリ上に展開する。このとき、例えば、ISOイメージのような形式でOSと必要なSWをまとめておくこともできる。そして、メモリファイルシステムとして展開することによって、起動に必要な情報をまとめてツリー構造ファイルシステムとして得てもかまわない。
【0050】
なお、このとき、データ格納部20を構成する特定のストレージノード内に該当コンテンツアドレスつまりブートパス30として返却されたコンテンツアドレスが存在していなければ、他のストレージノードを検索し、該当コンテンツアドレスにて参照される格納領域の内容を読み出すことができる。このときの方法として、コンテンツアドレスを他のストレージノードにブロードキャストをする方法で該当コンテンツアドレスを探してもよく、コンテンツアドレスより該当サーバのアドレスが求まる方法であってもかまわない。
【0051】
また、データ格納部20にアクセスするコンテンツアドレスストレージシステム10は、複数のアクセラレータノードに形成されることとなるが、各アクセラレータノードは、それぞれが同一のブートサーバ30から同一のブートパス31を入手し、それぞれが同一のコンテンツアドレスにて参照される格納位置だけに格納されているOSイメージを取得することで、同一のOS(SW実行部)11を構築することができる。
【0052】
以上により、本発明によると、複数のコンピュータにて構成されたストレージシステム全体において、OSやソフトウェアの一貫性を保つことができる。それは、格納されたデータの内容はコンテンツアドレスで一意となるからであり、複数ノードから構成されるシステムにおいては、同一コンテンツアドレスからブートすれば、全ノードでOSイメージやソフトウェアを共有し、その一貫性を保つことができる。例えば、保守作業でOSイメージやソフトウェアの更新を行ったとしても、ブートで使用するコンテンツアドレスを変えなければ、以前のイメージを読み出すことができる。従って、ファイルシステムとは独立して、コンテンツアドレスを用いてOSイメージやソフトウェアのバージョン管理を容易に行うことができる。
【0053】
また、本発明によると、万一、新しいOSやソフトウェアに問題があったときに、前のバージョンで起動ができる。その理由は、OSやソフトウェアをコンテンツアドレス可能なデータ格納部20に格納することで、前のコンテンツを破壊することなく、格納可能であるためである。起動するコンテンツアドレスを前のものに戻すことにより、以前のOSイメージやSWイメージを用いることができる。
【0054】
また、本発明によると、OS、ソフトウェアの格納領域の容量と、置換にかかる時間とを、最小に抑えることができる。その理由は、各アクセラレータノードのOSイメージが同一であるとき、全ノードで個々イメージを持つ必要が無く、同一のアドレスを持つコンテンツとして格納されるからである。
【0055】
さらに、本発明によると、ストレージシステムの構成を簡素化できることにある。その理由は、これまでのストレージシステムの構成は、
図1に示したように、コンテンツアドレス可能なデータ格納部の他に、OS起動やソフトウェア格納用に個別のデータ格納部を持っているのに対し、本発明では、コンテンツアドレス可能なデータ格納部20に、OSイメージ、SWイメージを格納するからである。
【0056】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム等の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【0057】
(付記1)
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えたストレージシステムであって、
前記ストレージシステムを構成する情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要な起動データを前記記憶装置内の前記アドレスデータにて参照される格納位置に記憶しており、
前記起動データを参照する前記アドレスデータを格納する起動用記憶装置と、
前記起動用記憶装置から前記アドレスデータを読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段と、
を備えたストレージシステム。
【0058】
(付記2)
付記1に記載のストレージシステムであって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する起動データ書き込み手段を備えた、
ストレージシステム。
【0059】
(付記3)
付記2に記載のストレージシステムであって、
前記起動データ書き込み手段は、前記記憶装置に既に記憶されている前記起動データの格納位置とは異なる前記記憶装置内の格納位置に新たな前記起動データを記憶し、当該新たな起動データのデータ内容及び格納位置に基づく新たな前記アドレスデータを前記起動用記憶装置に記憶する、
ストレージシステム。
【0060】
(付記4)
付記1乃至3のいずれかに記載のストレージシステムであって、
前記ファイルシステムアクセス手段をそれぞれ備え前記記憶装置にアクセス可能な情報処理装置である複数のアクセラレータノードを備え、
各前記アクセラレータノードが備える各前記起動手段は、前記起動データの格納位置を参照する前記アドレスデータに基づいて同一の前記起動データを前記記憶装置からそれぞれ読み出す、
ストレージシステム。
【0061】
(付記5)
付記4に記載のストレージシステムであって、
各前記アクセラレータノードが有する各前記起動手段は、同一の前記起動用記憶装置から前記起動データを参照する前記アドレスデータを読み出して、当該アドレスデータを参照して前記記憶装置から前記起動データを読み出す、
ストレージシステム。
【0062】
(付記6)
付記5に記載のストレージシステムであって、
前記起動用記憶装置は、前記ストレージシステムを構成する前記情報処理装置のうち、前記ソフトウェアが組み込まれる前記情報処理装置と接続された他の情報処理装置に装備されている、
ストレージシステム。
【0063】
(付記7)
付記1乃至6のいずれかに記載のストレージシステムであって、
前記起動手段は、ROM(Read Only Memory)に記憶されたプログラムの実行により作動する、
ストレージシステム。
【0064】
(付記8)
付記1乃至7のいずれかに記載のストレージシステムであって、
前記ソフトウェアは、前記ストレージシステムを構成する前記情報処理装置のオペレーティングシステムである、
ストレージシステム。
【0065】
(付記9)
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置に、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する起動手段、を実現させるためのプログラム。
【0066】
(付記10)
付記9に記載のストレージシステムであって、
前記情報処理装置に、前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する起動データ書き込み手段、を実現させるためのプログラム。
【0067】
(付記11)
記憶対象データを記憶装置に格納すると共に、当該記憶対象データのデータ内容及び格納位置に基づくアドレスデータであり前記記憶対象データ又は他のアドレスデータを参照する前記アドレスデータをツリー構造にて前記記憶装置に格納し、前記アドレスデータを参照することにより前記記憶装置に格納された前記記憶対象データにアクセスするファイルシステムアクセス手段を備えた情報処理装置が、
前記情報処理装置自体に組み込まれて動作するソフトウェアの起動に必要である前記記憶装置内に記憶された起動データを参照する前記アドレスデータを、起動用記憶装置から読み出して当該アドレスデータを参照して前記記憶装置から前記起動データを読み出し、当該起動データを実行させることにより前記ソフトウェアを起動する、
情報処理方法。
【0068】
(付記12)
付記11に記載の情報処理方法であって、
前記ソフトウェアの前記起動データを前記記憶装置に記憶すると共に、当該起動データの格納位置を参照する前記アドレスデータを前記起動用記憶装置に記憶する、
情報処理方法。