(57)【要約】  ミラーリングを行う２台のストレージ装置のロット障害による同時故障の可能性を低減する。  同時故障発生度計算手段（１ｃ）により、製造日情報の差が大きいほど値が小さくなる同時故障発生度が算出される。次に、組み合わせパターン作成手段（１ｄ）により、複数のストレージ装置を２台ずつの組とした組み合わせパターンが複数生成される。さらに、同時故障発生度合算手段（１ｅ）により、複数の組み合わせパターンそれぞれについて、ストレージ装置の組に対応する同時故障発生度の総和が算出される。そして、２重化組み合わせパターン決定手段（１ｆ）により、同時故障発生度の総和が最も小さい組み合わせパターンが、２重化組み合わせパターン（１ｇ）に決定される。
2008136074.tif 000002
【特許請求の範囲】
【請求項１】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理プログラムにおいて、
コンピュータを、
同時故障発生度を記憶する同時故障発生度記憶手段、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段、
複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する組み合わせパターン作成手段、
前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定する２重化組み合わせパターン決定手段、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信するミラーリング指示手段、
として機能させることを特徴とする２重化組み合わせ管理プログラム。
【請求項２】
前記製造日情報収集手段は、複数のミラーリング実施コンピュータが連携してミラーリングを実施する場合、前記製造日情報を複数の前記ミラーリング実施コンピュータそれぞれから取得し、
前記ミラーリング指示手段は、複数の前記ミラーリング実施コンピュータそれぞれが有する前記ミラーリング手段に対して、前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信する、
ことを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項３】
前記同時故障発生度計算手段は、所定の定数を底とし、前記製造日情報の数値の差を指数としたときの前記所定の定数のべき乗の逆数を前記同時故障発生度とすることを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項４】
前記組み合わせパターン作成手段は、複数の前記ストレージ装置から作成できる全ての組み合わせパターンを生成することを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項５】
前記組み合わせパターン作成手段は、予め設定された所定の数だけ組み合わせパターンを生成することを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項６】
前記製造日情報収集手段は、前記ストレージ装置内に複数のハードディスク装置が内蔵されている場合、任意の１台の前記ハードディスク装置の前記製造日情報を前記ストレージ装置の前記製造日情報として取得することを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項７】
前記製造日情報収集手段は、前記ストレージ装置内に複数のハードディスク装置が内蔵されている場合、全ての前記ハードディスク装置の前記製造日情報を取得し、
前記同時故障発生度計算手段は、比較対象の前記ストレージ装置の組それぞれから前記ハードディスク装置を１台ずつ選択することで生成可能な前記ハードディスク装置の組それぞれに関して、２台の前記ハードディスク装置それぞれの前記製造日情報を用いて前記同時故障発生度を算出し、算出した中で最も高い値を前記ストレージ装置の組の前記同時故障度発生度とする、
ことを特徴とする請求の範囲第１項記載の２重化組み合わせ管理プログラム。
【請求項８】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理プログラムにおいて、
コンピュータを、
同時故障発生度を記憶する同時故障発生度記憶手段、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段、
データの格納領域を複数のセグメントに分割した論理ボリュームを定義し、前記セグメント単位でミラーリングを行う際に、複数の前記セグメントそれぞれに対してミラーリングのための２台の前記ストレージ装置の組を割り当てすることによって得られる配置パターンを複数生成する配置パターン作成手段、
前記配置パターン作成手段で生成された複数の前記配置パターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記配置パターンを、２重化配置パターンに決定する２重化配置パターン決定手段、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化配置パターン決定手段で決定された前記２重化配置パターンに示される前記セグメントそれぞれに対応する２台ずつの前記ストレージ装置の組による前記セグメントごとのミラーリングの指示を送信するミラーリング指示手段、
として機能させることを特徴とする２重化組み合わせ管理プログラム。
【請求項９】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理において、
同時故障発生度を記憶する同時故障発生度記憶手段と、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段と、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段と、
複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する組み合わせパターン作成手段と、
前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段と、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定する２重化組み合わせパターン決定手段と、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信するミラーリング指示手段と、
を有することを特徴とする２重化組み合わせ管理装置。
【請求項１０】
データを２重化するストレージ装置の組をコンピュータで決定するための２重化組み合わせ管理方法において、
製造日情報収集手段が、複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得し、
同時故障発生度計算手段が、前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納し、
組み合わせパターン作成手段が、複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成し、
同時故障発生度合算手段が、前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出し、
２重化組み合わせパターン決定手段が、前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定し、
ミラーリング指示手段が、複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信する、
ことを特徴とする２重化組み合わせ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータを２重化するストレージ装置の組を決定するための２重化組み合わせ管理プログラム、２重化組み合わせ管理装置、および２重化組み合わせ管理方法に関し、特に同一タイプのストレージ装置を用いてデータの２重化を行うための２重化組み合わせ管理プログラム、２重化組み合わせ管理装置、および２重化組み合わせ管理方法に関する。
【背景技術】
【０００２】
高い信頼性を要求されるストレージシステムでは、ミラーリングが行われることがある。ミラーリングは、複数のハードディスク装置にデータを２重化して書き込む技術である。ミラーリングを行うことで、一方のディスク装置が故障しても、他方のディスク装置からデータを読み出すことができる。これによりデータロスト（データを復旧出来なくなること）を防止できる。【０００３】
ところが、データを２重化していても、２重化した２台のハードディスク装置が同時に故障した場合、データがロストしてしまう。なお、２台のハードディスク装置がそれぞれ異なる原因で同時に故障することは稀である。すなわち、２台のハードディスク装置が同時に故障する場合は、２台のハードディスク装置を製造したときの製造上の問題が原因であることが多い。【０００４】
そこで、磁気記憶装置と半導体記憶装置とでミラーリングのペアを作り、データを冗長化することが考えられている。異なるタイプの記憶装置を用いてデータを冗長化させることで、同一原因による同時障害を防止できる（たとえば、特許文献１参照）。
【特許文献１】特開２００６−２６０００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、異なるタイプのストレージ装置でミラーリングを行うと、データのアクセス速度を性能の悪い方のストレージ装置に合わせることとなり、データのアクセス効率が低下する。たとえば、磁気式のハードディスク装置と半導体記憶装置とによるミラーリングを行った場合、半導体記憶装置の方が高速にデータのアクセスが可能であっても、ハードディスク装置に対するデータのアクセスが完了するまで、データアクセスを完了させることができない。すなわち、半導体記憶装置のデータアクセス性能が発揮されておらず、装置の能力が有効に活用されていないこととなる。【０００６】
各ストレージ装置の能力を有効に活用してミラーリングを行うには、同等の性能を有する２台の記憶装置でミラーリングのペアを作ることが基本である。そのため、一般のミラーリング機能を有するＲＡＩＤ（Redundant Array of Independent Disks）システムでは、同じ企業が製造した同じモデルのハードディスク装置を複数台搭載している。同じモデルのハードディスク装置であれば、データのアクセス性能も同一であり、装置の性能を十分に発揮させることができる。【０００７】
しかし、ハードディスク装置のような工業製品は、工場のある特定のロットで製造された装置に同じ障害が発生することがある。このような障害を、一般的にロット障害と呼んでいる。このようなロット障害は、ハードディスク装置に限らず、半導体記憶装置などのその他のストレージ装置全般に存在する。工場における特定のロットの製品にロット障害が発生する場合、そのロットのストレージ装置でミラーリングを行うと、２台が同時に故障する確率が非常に高くなってしまう。【０００８】
本発明はこのような点に鑑みてなされたものであり、ミラーリングを行う２台のストレージ装置のロット障害による同時故障の可能性を低減することができる２重化組み合わせ管理プログラム、２重化組み合わせ管理装置、および２重化組み合わせ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記課題を解決するために、図１に示すような１、２重化組み合わせ管理装置１としてコンピュータを機能させるための２重化組み合わせ管理プログラム、および２重化組み合わせ管理装置１と同様の処理をコンピュータに行わせるための２重化管理方法が提供される。本発明に係る２重化組み合わせ管理装置１は、データを２重化するストレージ装置の組を決定するために、以下の機能を有する。【００１０】
同時故障発生度記憶手段１ａは、同時故障発生度を記憶する。製造日情報収集手段１ｂは、複数のストレージ装置２〜５からストレージ装置２〜５の製造日に応じた数値が設定された製造日情報を取得する。同時故障発生度計算手段１ｃは、製造日情報収集手段１ｂが取得した製造日情報に基づいて、２台のストレージ装置の組ごとの製造日情報の数値の差を計算し、製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、ストレージ装置の組に対応付けて同時故障発生度を同時故障発生度記憶手段１ａに格納する。組み合わせパターン作成手段１ｄは、複数のストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する。同時故障発生度合算手段１ｅは、組み合わせパターン作成手段１ｄで生成された複数の組み合わせパターンそれぞれについて、ストレージ装置の組に対応する同時故障発生度を同時故障発生度記憶手段１ａから取得し、取得した同時故障発生度の総和を算出する。２重化組み合わせパターン決定手段１ｆは、同時故障発生度合算手段１ｅで求められた同時故障発生度の総和が最も小さい組み合わせパターンを、２重化組み合わせパターン１ｇに決定する。ミラーリング指示手段１ｈは、複数のストレージ装置を用いてミラーリングを実施するミラーリング手段１ｉに対して、２重化組み合わせパターン決定手段１ｆで決定された２重化組み合わせパターン１ｇに示される２台ずつのストレージ装置の組によるミラーリングの指示を送信する。【００１１】
このような２重化組み合わせ管理装置１によれば、製造日情報収集手段１ｂにより、ストレージ装置２〜５の製造日情報が取得される。次に、同時故障発生度計算手段１ｃにより、製造日情報の差が大きいほど値が小さくなる同時故障発生度が算出される。さらに、組み合わせパターン作成手段１ｄにより、複数のストレージ装置を２台ずつの組とした組み合わせパターンが複数生成される。組み合わせパターンが作成されると、同時故障発生度合算手段１ｅにより、複数の組み合わせパターンそれぞれについて、ストレージ装置の組に対応する同時故障発生度の総和が算出される。同時故障発生度の総和が算出されると、２重化組み合わせパターン決定手段１ｆにより、同時故障発生度の総和が最も小さい組み合わせパターンが、２重化組み合わせパターン１ｇに決定される。そして、ミラーリング指示手段１ｈにより、複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段１ｉに対して、２重化組み合わせパターン決定手段１ｆで決定された２重化組み合わせパターン１ｇに示される２台ずつのストレージ装置の組によるミラーリングの指示が送信される。
【発明の効果】
【００１２】
本発明では、ストレージ装置の組について製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、ストレージ装置の組み合わせパターンのうち同時故障発生度の総和が最も小さい組み合わせパターンでミラーリングを実行させるようにした。そのため、製造日の離れたストレージ装置の組によるミラーリングが行われ、ミラーリングを行う２台のストレージ装置のロット障害による同時故障の可能性が低減する。【００１３】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】発明の概要を示す図である。
【図２】本実施の形態の分散ストレージシステム構成例を示す図である。
【図３】本実施の形態に用いる制御ノードのハードウェア構成例を示す図である。
【図４】論理ボリュームのデータ構造を示す図である。
【図５】分散ストレージシステムの各装置の機能を示すブロック図である。
【図６】論理ボリューム管理部の内部機能を示すブロック図である。
【図７】論理ボリューム作成処理の手順を示す図である。
【図８】同時故障発生度表作成処理の手順を示すフローチャートである。
【図９】同時故障発生度計算処理の手順を示すフローチャートである。
【図１０】同時故障発生度表のデータ構造例を示す図である。
【図１１】スライス割り当て処理の手順を示すフローチャートである。
【図１２】セカンダリスライスの再配置処理を示すフローチャートである。
【図１３】スライスの配置パターンに応じた同時故障発生度の総和を説明する図である。
【図１４】メタデータ記憶部のデータ構造例を示す図である。
【図１５】スライス管理情報のデータ構造例を示す図である。
【図１６】論理ボリューム情報のデータ構造例を示す図である。
【図１７】第２の実施の形態におけるスライス割り当て処理の手順を示すフローチャートである。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、発明の概要を示す図である。２重化組み合わせ管理装置１は、データを２重化するストレージ装置の組を決定するために、同時故障発生度記憶手段１ａ、製造日情報収集手段１ｂ、同時故障発生度計算手段１ｃ、組み合わせパターン作成手段１ｄ、同時故障発生度合算手段１ｅ、２重化組み合わせパターン決定手段１ｆ、ミラーリング指示手段１ｈ、およびミラーリング手段１ｉを有している。【００１６】
同時故障発生度記憶手段１ａは、同時故障発生度を記憶する。同時故障発生度は、２台のストレージ装置の組に関して、２台のストレージ装置が同時に故障する可能性を示す数値である。同時故障発生度の値が大きい程、２台のストレージ装置が同時に故障する可能性が高いことを示す。【００１７】
製造日情報収集手段１ｂは、複数のストレージ装置２〜５からストレージ装置２〜５の製造日に応じた数値が設定された製造日情報を取得する。たとえば、製造日情報収集手段１ｂは、２重化組み合わせパターン決定指示の操作入力が行われ時に、製造日情報を取得する。なお、製造日情報は、少なくとも製造日の差を判断するための基準となる情報であればよい。たとえば、ストレージ装置２〜５の正確な製造日が取得できるのであれば、その製造日が製造日情報として取得される。【００１８】
また、正確な製造日が取得できない場合、製造日の差を判断するための他の情報を製造日情報とすることができる。たとえば、ストレージ装置２〜５に対して製造番号がシリアルに昇順で付与されていれば、その製造番号から製造日の差をある程度予測可能となる。１日の製造台数が１万台であれば、製造番号で１万の差を、製造日で１日の差に換算できる。そこで、正確な製造日が取得できない場合、製造番号を製造日情報として取得してもよい。【００１９】
同時故障発生度計算手段１ｃは、製造日情報収集手段１ｂが取得した製造日情報に基づいて、２台のストレージ装置の組ごとの製造日情報の数値の差を計算する。さらに、同時故障発生度計算手段１ｃは、製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出する。たとえば、同時故障発生度計算手段１ｃは、所定の定数を底とし、製造日情報の数値の差を指数としたときの所定の定数のべき乗の逆数を同時故障発生度とする。そして、同時故障発生度計算手段１ｃは、ストレージ装置の組に対応付けて同時故障発生度を同時故障発生度記憶手段１ａに格納する。【００２０】
組み合わせパターン作成手段１ｄは、複数のストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する。
同時故障発生度合算手段１ｅは、組み合わせパターン作成手段１ｄで生成された複数の組み合わせパターンそれぞれについて、ストレージ装置の組に対応する同時故障発生度を同時故障発生度記憶手段１ａから取得する。そして、同時故障発生度合算手段１ｅは、取得した同時故障発生度の総和を算出する。【００２１】
２重化組み合わせパターン決定手段１ｆは、同時故障発生度合算手段１ｅで求められた同時故障発生度の総和が最も小さい組み合わせパターンを、２重化組み合わせパターン１ｇに決定する。【００２２】
ミラーリング指示手段１ｈは、複数のストレージ装置を用いてミラーリングを実施するミラーリング手段１ｉに対して、２重化組み合わせパターン決定手段１ｆで決定された２重化組み合わせパターン１ｇに示される２台ずつのストレージ装置の組によるミラーリングの指示を送信する。【００２３】
ミラーリング手段１ｉは、２重化組み合わせパターン１ｇに示されるストレージ装置の組によるミラーリングを行う。なお、図１では、２重化組み合わせ管理装置１内にミラーリング手段１ｉが設けられているが、ミラーリング手段１ｉは、ネットワークを介して接続された他のコンピュータ内に設けられていてもよい。【００２４】
このような２重化組み合わせ管理装置１によれば、製造日情報収集手段１ｂにより、ストレージ装置２〜５の製造日情報が取得される。たとえば、図１の例では、ストレージ装置２の製造日は２００７年４月１日であり、ストレージ装置３の製造日は２００７年４月２日であり、ストレージ装置４の製造日は２００７年４月３日であり、ストレージ装置５の製造日は２００７年４月４日である。【００２５】
次に、同時故障発生度計算手段１ｃにより、ストレージ装置の組ごとに、製造日情報の差が大きいほど値が小さくなる同時故障発生度が算出される。たとえば、製造日の差（単位は日）を指数とした２のべき乗の逆数を同時故障発生度とすると、各ストレージ装置の組の同時故障発生度は、図１に示した通りとなる。すなわち、名称「Ａ」のストレージ装置２と名称「Ｂ」のストレージ装置３との組に対する同時故障発生度は「０．５」、名称「Ａ」のストレージ装置２と名称「Ｃ」のストレージ装置４との組に対する同時故障発生度は「０．２５」、名称「Ａ」のストレージ装置２と名称「Ｄ」のストレージ装置５との組に対する同時故障発生度は「０．１２５」、名称「Ｂ」のストレージ装置３と名称「Ｃ」のストレージ装置４との組に対する同時故障発生度は「０．５」、名称「Ｂ」のストレージ装置３と名称「Ｄ」のストレージ装置５との組に対する同時故障発生度は「０．２５」、名称「Ｃ」のストレージ装置４と名称「Ｄ」のストレージ装置５との組に対する同時故障発生度は「０．５」である。【００２６】
ストレージ装置の組に対する同時故障発生度が求められると、組み合わせパターン作成手段１ｄにより、複数のストレージ装置を２台ずつの組とした組み合わせパターンが複数生成される。たとえば、組み合わせパターン作成手段１ｄは、同時故障発生度記憶手段１ａを参照して生成可能なストレージ装置の組を認識し、重複せずに生成可能なストレージ装置の組による組み合わせパターンを作成する。図１の例では３つも組み合わせパターンが生成できる。１つ目の組み合わせパターンは、名称「Ａ」のストレージ装置２と名称「Ｂ」のストレージ装置３との組、および名称「Ｃ」のストレージ装置４と名称「Ｄ」のストレージ装置５との組で構成される。２つ目の組み合わせパターンは、名称「Ａ」のストレージ装置２と名称「Ｃ」のストレージ装置４との組、および名称「Ｂ」のストレージ装置３と名称「Ｄ」のストレージ装置５との組で構成される。３つ目の組み合わせパターンは、名称「Ａ」のストレージ装置２と名称「Ｄ」のストレージ装置５との組、および名称「Ｂ」のストレージ装置３と名称「Ｃ」のストレージ装置４との組で構成される。【００２７】
組み合わせパターンが作成されると、同時故障発生度合算手段１ｅにより、複数の組み合わせパターンそれぞれについて、ストレージ装置の組に対応する同時故障発生度の総和が算出される。たとえば、図１の例では、１つ目の組み合わせパターンにおける同時故障発生度の総和は「１」である。２つ目の組み合わせパターンにおける同時故障発生度の総和は「０．５」である。３つ目の組み合わせパターンにおける同時故障発生度の総和は「０．６２５」である。【００２８】
同時故障発生度の総和が算出されると、２重化組み合わせパターン決定手段１ｆにより、同時故障発生度の総和が最も小さい組み合わせパターンが、２重化組み合わせパターン１ｇに決定される。図１の例では、２つ目の組み合わせパターンの同時故障発生度の総和が最も小さい。従って、名称「Ａ」のストレージ装置２と名称「Ｃ」のストレージ装置４との組、および名称「Ｂ」のストレージ装置３と名称「Ｄ」のストレージ装置５との組で構成される２つ目の組み合わせパターンが、２重化組み合わせパターン１ｇに決定される。【００２９】
そして、ミラーリング指示手段１ｈにより、複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段１ｉに対して、２重化組み合わせパターン決定手段１ｆで決定された２重化組み合わせパターン１ｇに示される２台ずつのストレージ装置の組によるミラーリングの指示が送信される。その後、ミラーリング手段１ｉによって、２重化組み合わせパターン１ｇに応じた組み合わせでミラーリング技術を採用した各ストレージ装置２〜５へのデータアクセスが行われる。【００３０】
このようにして、できるだけ製造日が離れたストレージ装置同士を使ったデータの２重化が可能となる。その結果、２重化されたデータを有する複数のストレージ装置が同時に故障する確率を下げることができる。【００３１】
すなわち、製造日が離れている程、別ロットで製造された可能性が高い。しかも、製造日が大きく異なっていれば、使用されている部品についても、製造ロットが異なる可能性が高くなる。別ロットで製造されたストレージ装置であれば、ロット障害によって同時に故障する可能性が低くなる。その結果、ミラーリングを行うストレージシステムにおける信頼性を向上させることができる。【００３２】
ところで、図１の例では、１つのミラーリング手段１ｉが複数のストレージ装置２〜５を制御してミラーリングを行うシステムを示しているが、ネットワークで接続された複数のコンピュータ間で連携してミラーリングを行うこともできる。その場合、ミラーリング手段は、各コンピュータに実装されることとなる。【００３３】
そこで、複数のコンピュータでミラーリングを行う分散ストレージステムに本発明を適用した場合の例を用いて、本発明の実施の形態を具体的に説明する。
［第１の実施の形態］
図２は、本実施の形態の分散ストレージシステム構成例を示す図である。本実施の形態では、スイッチ１０を介して、複数のストレージノード１００，２００，３００，４００、制御ノード５００、アクセスノード６００、および管理ノード７００が接続されている。ストレージノード１００，２００，３００，４００それぞれには、ストレージ装置１１０，２１０，３１０，４１０が接続されている。この分散ストレージシステムは、端末装置２１〜２３に対して、仮想的なボリューム（以下、論理ボリュームと呼ぶ）として機能する。【００３４】
ストレージ装置１１０には、複数のハードディスク装置（ＨＤＤ）１１１，１１２，１１３，１１４が実装されている。ストレージ装置２１０には、複数のＨＤＤ２１１，２１２，２１３，２１４が実装されている。ストレージ装置３１０には、複数のＨＤＤ３１１，３１２，３１３，３１４が実装されている。ストレージ装置４１０には、複数のＨＤＤ４１１，４１２，４１３，４１４が実装されている。各ストレージ装置１１０，２１０，３１０，４１０は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。本実施の形態では、各ストレージ装置１１０，２１０，３１０，４１０のＲＡＩＤ５のディスク管理サービスを提供する。【００３５】
なお、各ＨＤＤは、管理情報が格納された半導体の記憶媒体（たとえば、ＲＯＭ）を有している。その記憶媒体には、ＨＤＤの製造日が記憶されている。なお、ストレージ装置１１０，２１０，３１０，４１０が、ＲＡＩＤシステムとして工場で製造されている場合、１つのストレージ装置には、ほぼ同時期に製造されたＨＤＤが組み込まれる。そこで、本実施の形態では、１つのストレージ装置に格納されている複数のＨＤＤの製造日は同一（あるいは数日の違いしかない）であるものとする。【００３６】
ストレージノード１００，２００，３００，４００は、たとえば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。ストレージノード１００，２００，３００，４００は、接続されたストレージ装置１１０，２１０，３１０，４１０に格納されたデータを管理し、管理しているデータをスイッチ１０経由で端末装置２１，２２，２３に提供する。また、ストレージノード１００，２００，３００，４００は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも２つのストレージノードで管理されている。【００３７】
制御ノード５００は、ストレージノード１００，２００，３００，４００を制御する。たとえば、制御ノード５００は、ストレージノード１００，２００，３００，４００上に作成する論理ボリュームを定義する。論理ボリュームは、異なるストレージノードに作成されたプライマリスライスとセカンダリスライスとによってミラーリングされる。プライマリスライスとセカンダリスライスとは、それぞれ異なるストレージノード内の記憶領域の一部に割り当てられている。制御ノード５００は、論理ボリュームの定義内容をアクセスノード６００やストレージノード１００，２００，３００，４００に通知することで、論理ボリューム上のアドレスを指定したストレージノード１００，２００，３００，４００へのアクセスを可能としている。【００３８】
また、制御ノード５００は、管理ノード７００からの指示に応じて、スライスの再配置を行う。このとき、制御ノード５００は、プライマリスライスが配置された各ストレージノードのＨＤＤの製造日と、プライマリスライスが配置された各ストレージノードのＨＤＤの製造日とができるだけ離れるようにする。【００３９】
アクセスノード６００には、ネットワーク２０を介して複数の端末装置２１，２２，２３が接続されている。アクセスノード６００は、ストレージノード１００，２００，３００，４００それぞれが管理しているデータの格納場所を認識しており、端末装置２１，２２，２３からの要求に応答して、ストレージノード１００，２００，３００，４００へのデータアクセスを行う。【００４０】
管理ノード７００は、システム全体を管理するためのコンピュータである。たとえば、管理ノード７００は、管理者からの操作入力に応答して、制御ノード５００に対してスライス再配置の指示を送信する。【００４１】
図３は、本実施の形態に用いる制御ノードのハードウェア構成例を示す図である。制御ノード５００は、ＣＰＵ（Central Processing Unit）５０１によって装置全体が制御されている。ＣＰＵ５０１には、バス５０７を介してＲＡＭ（Random Access Memory）５０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）５０３、グラフィック処理装置５０４、入力インタフェース５０５、および通信インタフェース５０６が接続されている。【００４２】
ＲＡＭ５０２には、ＣＰＵ５０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ５０２には、ＣＰＵ５０１による処理に必要な各種データが格納される。ＨＤＤ５０３には、ＯＳやアプリケーションプログラムが格納される。【００４３】
グラフィック処理装置５０４には、モニタ１１が接続されている。グラフィック処理装置５０４は、ＣＰＵ５０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース５０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース５０５は、キーボード１２やマウス１３から送られてくる信号を、バス５０７を介してＣＰＵ５０１に送信する。【００４４】
通信インタフェース５０６は、スイッチ１０に接続されている。通信インタフェース５０６は、スイッチ１０を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には制御ノードのハードウェア構成例を示したが、ストレージノード１００，２００，３００，４００、アクセスノード６００、管理ノード７００、および端末装置２１，２２，２３も同様のハードウェア構成で実現できる。【００４５】
次に、論理ボリュームのデータ構造について説明する。
図４は、論理ボリュームのデータ構造を示す図である。論理ボリューム８００には、「ＬＶＯＬ−Ａ」という識別子（論理ボリューム識別子）が付与されている。また、スイッチ１０経由で接続された４台のストレージノード１００，２００，３００，４００には、個々のストレージノードの識別のためにそれぞれ「ＳＮ−Ａ」、「ＳＮ−Ｂ」、「ＳＮ−Ｃ」、「ＳＮ−Ｄ」というノード識別子が付与されている。各ストレージノード１００，２００，３００，４００のノード識別子によって、それぞれのストレージノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０が識別される。【００４６】
各ストレージノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０それぞれにおいてＲＡＩＤ５の論理ディスクが構成されている。この論理ディスクは５つのスライスに分割され個々のストレージノード内で管理されている。【００４７】
図４の例では、ストレージ装置１１０内の記憶領域は、５つのスライス１２１〜１２５に分けられている。ストレージ装置２１０内の記憶領域は、５つのスライス２２１〜２２５に分けられている。ストレージ装置３１０内の記憶領域は、５つのスライス３２１〜３２５に分けられている。ストレージ装置４１０内の記憶領域は、５つのスライス４２１〜４２５に分けられている。【００４８】
なお、論理ボリューム８００は、セグメント８１０，８２０，８３０，８４０という単位で構成される。セグメント８１０，８２０，８３０，８４０の記憶容量は、ストレージ装置１１０，２１０，３１０，４１０における管理単位であるスライスの記憶容量と同じである。たとえば、スライスの記憶容量が１ギガバイトとするとセグメントの記憶容量も１ギガバイトである。論理ボリューム８００の記憶容量はセグメント１つ当たりの記憶容量の整数倍である。セグメントの記憶容量が１ギガバイトならば、論理ボリューム８００の記憶容量は、たとえば４ギガバイトといったものになる。【００４９】
セグメント８１０，８２０，８３０，８４０は、それぞれプライマリスライス８１１，８２１，８３１，８４１とセカンダリスライス８１２，８２２，８３２，８４２との組から構成される。同じセグメントに属するスライスは別々のストレージノードに属する。個々のスライスを管理する領域には論理ボリューム識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。【００５０】
図４の例では、スライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。たとえば、１番目のセグメント８１０のプライマリスライスが「Ｐ１」で示され、セカンダリスライスが「Ｓ１」で示される。【００５１】
このような構造の論理ボリューム８００の各プライマリスライスおよびセカンダリスライスが、ストレージ装置１１０，２１０，３１０，４１０内のいずれかのスライスに対応付けられる。たとえば、セグメント８１０のプライマリスライス８１１は、ストレージ装置４１０のスライス４２４に対応付けられ、セカンダリスライス８１２は、ストレージ装置２１０のスライス２２２に対応付けられている。【００５２】
そして、各ストレージ装置１１０，２１０，３１０，４１０では、自己のスライスに対応するプライマリスライスまたはセカンダリスライスのデータを記憶する。
図５は、分散ストレージシステムの各装置の機能を示すブロック図である。アクセスノード６００は、論理ボリュームアクセス制御部６１０と論理ボリューム情報記憶部６２０とを有している。【００５３】
論理ボリュームアクセス制御部６１０は、端末装置２１，２２，２３からの論理ボリューム８００内のデータを指定したアクセス要求に応じて、対応するデータを管理するストレージノードに対してデータアクセスを行う。アクセス要求は論理ボリュームにおけるセグメント番号とセグメント内のブロック番号で指定される。そこで、論理ボリュームアクセス制御部６１０は、論理ボリューム情報記憶部６２０に格納された論理ボリュームを参照して、アクセス要求で指定されたセグメントに対応するスライス（通常動作時であればプライマリスライス）を有するストレージノードを判断する。また、論理ボリュームアクセス制御部６１０は、論理ボリュームのセグメントへのスライスの割り当てが変更された場合などに制御ノード５００から論理ボリューム情報が送られると、その論理ボリューム情報を受信する。そして、論理ボリュームアクセス制御部６１０は、受信した論理ボリューム情報を、論理ボリューム情報記憶部６２０に格納する。【００５４】
論理ボリューム情報記憶部６２０は、論理ボリューム８００の各セグメントのプライマリスライスまたはセカンダリスライスと、ストレージ装置１１０，２１０，３１０，４１０内のスライスとの対応関係を示す論理ボリューム情報を記憶する。たとえば、アクセスノード６００内のＨＤＤの一部の記憶領域が、論理ボリューム情報記憶部６２０として使用される。【００５５】
制御ノード５００は、論理ボリューム管理部５１０とメタデータ記憶部５２０とを有している。
論理ボリューム管理部５１０は、ストレージノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０内のスライスを管理する。たとえば、論理ボリューム管理部５１０は、システム構築時に、論理ボリュームを構成する各セグメントに対してスライスを割り当てる。具体的には、その際、論理ボリューム管理部５１０は、２重化されたセグメントを構成するプライマリスライスとセカンダリスライスとが配置されるＨＤＤの製造日ができるだけ離れるように、割り当てるべきスライスを決定する。論理ボリューム管理部５１０は、セグメントに割り当てるスライスが決定されると、メタデータ記憶部５２０内のメタデータを更新する。また、論理ボリューム管理部５１０は、各ストレージノード１００，２００，３００，４００に対して、それぞれに応じたスライス管理情報を送信する。さらに、論理ボリューム管理部５１０は、論理ボリュームの各セグメントと、そのセグメントを構成するプライマリスライスとセカンダリスライスそれぞれが配置されたストレージノードとの対応関係を示す論理ボリューム情報を送信する。【００５６】
また、論理ボリューム管理部５１０は、システム起動時に、ストレージノード１００，２００，３００，４００に対してスライス管理情報取得要求を送信する。そして、論理ボリューム管理部５１０は、スライス管理情報取得要求に対して返信されたスライス管理情報からメタデータを構成し、メタデータ記憶部５２０に格納する。【００５７】
また、論理ボリューム管理部５１０は、管理ノード７００からの要求に応じて、スライスの再配置を行う。その際、論理ボリューム管理部５１０は、プライマリスライスとセカンダリスライスとが配置されるＨＤＤの製造日ができるだけ離れるように、スライスの配置先となるストレージノードを決定する。論理ボリューム管理部５１０は、スライスの再配置先が決定されると、ストレージノード１００，２００，３００，４００を制御して、スライス内のデータを再配置先の記憶領域にコピーする。コピーが完了すると、論理ボリューム管理部５１０は、メタデータ記憶部５２０内のメタデータを更新する。また、論理ボリューム管理部５１０は、新たなメタデータを各ストレージノード１００，２００，３００，４００に送信する。さらに、論理ボリューム管理部５１０は、論理ボリューム情報を送信する。【００５８】
メタデータ記憶部５２０は、ストレージノード１００，２００，３００，４００から収集されたスライス管理情報によって構成されるメタデータを記憶する記憶装置である。たとえば、制御ノード５００内のＲＡＭの記憶領域の一部がメタデータ記憶部５２０として使用される。【００５９】
ストレージノード１００は、データアクセス部１３０、データ管理部１４０、およびスライス管理情報記憶部１５０を有している。また、ストレージノード１００に接続されたストレージ装置１１０には、製造日記憶部１１５が設けられている。製造日記憶部１１５は、ストレージ装置１１０に格納されたＨＤＤ１１１〜１１４が製造された日付を記憶する記憶装置である。たとえば、ストレージ装置１１０内のコントローラに実装されたＲＯＭの記憶領域の一部が製造日記憶部１１５として使用される。また、任意の１台のＨＤＤ内のＲＯＭに記憶されているそのＨＤＤの製造日を、ストレージ装置１１０の製造日とすることもできる。【００６０】
データアクセス部１３０は、アクセスノード６００からの要求に応答して、ストレージ装置１１０内のデータにアクセスする。具体的には、データアクセス部１３０は、アクセスノード６００からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置１１０から取得し、アクセスノード６００に送信する。また、データアクセス部１３０は、アクセスノード６００からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置１１０内に格納する。【００６１】
データ管理部１４０は、ストレージ装置１１０内のデータを管理する。具体的には、データ管理部１４０は、制御ノード５００からディスクの製造日の取得要求を受け取ると、いずれかのＨＤＤ内の半導体の記録媒体からそのＨＤＤの製造日を取得する。なお、ストレージ装置内にＨＤＤとは別に製造日の情報がＲＯＭなどの記録媒体で記録されている場合、ストレージ装置に登録されている製造日を取得してもよい。【００６２】
スライス管理情報記憶部１５０は、スライス管理情報を記憶する記憶装置である。たとえば、ストレージノード１００のＲＡＭ内の記憶領域の一部がスライス管理情報記憶部１５０として使用される。なお、スライス管理情報記憶部１５０に格納されるスライス管理情報は、システム停止時にはストレージ装置１１０内に格納され、システム起動時にスライス管理情報記憶部１５０に読み込まれる。【００６３】
他のストレージノード２００，３００，４００は、ストレージノード１００と同様の機能を有している。すなわち、ストレージノード２００は、データアクセス部２３０、データ管理部２４０、およびスライス管理情報記憶部２５０を有している。ストレージノード３００は、データアクセス部３３０、データ管理部３４０、およびスライス管理情報記憶部３５０を有している。ストレージノード４００は、データアクセス部４３０、データ管理部４４０、およびスライス管理情報記憶部４５０を有している。ストレージノード２００，３００，４００内の各要素は、ストレージノード１００内の同名の要素と同じ機能を有している。【００６４】
また、ストレージノード２００，３００，４００に接続された各ストレージ装置１１０，２１０，３１０，４１０も、ストレージ装置１１０と同様に製造日記憶部２１５，３１５，４１５，を有している。【００６５】
以上のような構成の分散ストレージシステムにおいて、同時故障発生度が低いＨＤＤ間でデータの２重化が行われる。以下、同時故障発生度が低くなるようなスライスの割り当て処理について説明する。【００６６】
図６は、論理ボリューム管理部の内部機能を示すブロック図である。論理ボリューム管理部５１０は、同時故障発生度表作成部５１１、同時故障発生度表記憶部５１２、スライス割り当て部５１３、データ再配置管理部５１４、およびメタデータ管理部５１５を有している。【００６７】
同時故障発生度表作成部５１１は、論理ボリューム内の各セグメントへのスライスの割り当てを行う際に同時故障発生度表を作成する。同時故障発生度表は、２つのストレージノードの組み合わせに対して、それぞれのストレージノード内のＨＤＤが同時に故障する度合いを数値化して登録したものである。【００６８】
同時故障発生度表記憶部５１２は、同時故障発生度表を記憶するための記憶領域である。たとえば、ＲＡＭ５０２内の一部の記憶領域が、同時故障発生度表記憶部５１２として使用される。【００６９】
スライス割り当て部５１３は、同時故障発生度表を参照して、論理ボリューム内の各セグメントへのスライスの割り当てを行う。
データ再配置管理部５１４は、スライス割り当て部５１３によって決定された各セグメントへのスライスの割り当て結果に基づいて、各ストレージノード１００，２００，３００，４００が管理するデータの再配置を行う。【００７０】
メタデータ管理部５１５は、システム起動時に各ストレージノード１００，２００，３００，４００からスライス管理情報を収集する。そして、メタデータ管理部５１５は、収集したスライス管理情報をまとめてメタデータとし、そのメタデータをメタデータ記憶部５２０に格納する。また、メタデータ管理部５１５は、スライスの再割り当てが行われた場合、再割り当て結果に基づいて、各ストレージノード１００，２００，３００，４００のスライス管理情報を生成し、対応するストレージノード１００，２００，３００，４００に送信する。さらに、メタデータ管理部５１５は、スライスの再割り当て結果に基づいてメタデータ記憶部５２０内のメタデータを更新する。そして、メタデータ管理部５１５は、更新後のメタデータをアクセスノード６００に送信する。【００７１】
図７は、論理ボリューム作成処理の手順を示す図である。以下、図７に示す処理をステップ番号に沿って説明する。なお、図７に示す処理は、管理ノード７００から論理ボリュームの作成条件が入力されたときに実行される。論理ボリュームの作成条件には、論理ボリューム識別子、論理ボリュームを構成するセグメントの数などが含まれる。【００７２】
［ステップＳ１１］論理ボリューム管理部５１０内の同時故障発生度表作成部５１１は、同時故障発生度表作成処理を行う。この処理により、同時故障発生度表が作成され、同時故障発生度表記憶部５１２に格納される。この処理の詳細は後述する（図８参照）。【００７３】
［ステップＳ１２］スライス割り当て部５１３は、同時故障発生度表記憶部５１２内の同時故障発生度表に基づいて、２重化されるストレージ装置同士の同時故障発生度が低くなるように論理ボリュームの各セグメントへのスライスの割り当てを行う。割り当て結果は、メタデータ管理部５１５に渡される。この処理の詳細は後述する（図１１参照）。【００７４】
［ステップＳ１３］メタデータ管理部５１５は、スライス割り当て部５１３で決定された各セグメントへのスライスの割り当て結果に基づいてメタデータを作成する。作成されたメタデータには、ストレージノードごとのスライス管理情報が含まれる。スライス管理情報には、対応するストレージノードが管理するスライスと、そのスライスのミラーリングの相手となるスライスとに関する情報が含まれている。【００７５】
［ステップＳ１４］メタデータ管理部５１５は、作成したメタデータをメタデータ記憶部５２０に格納する。
［ステップＳ１５］メタデータ管理部５１５は、各ストレージノード１００，２００，３００，４００に対して、対応するスライス管理情報を送信する。さらに、メタデータ管理部５１５は、アクセスノード６００に対してメタデータを送信する。【００７６】
次に、同時故障発生度表作成処理の詳細について説明する。
図８は、同時故障発生度表作成処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。【００７７】
［ステップＳ２１］同時故障発生度表作成部５１１は、全てのストレージ装置間の同時故障発生度の算出が完了したか否かを判断する。全てのストレージ装置間の同時故障発生度が算出できた場合、処理が終了する。同時故障発生度が算出されていないストレージ装置の組がある場合、処理がステップＳ２２に進められる。【００７８】
［ステップＳ２２］同時故障発生度表作成部５１１は、未処理の２つのストレージ装置の組を選択する。
［ステップＳ２３］同時故障発生度表作成部５１１は、選択したストレージ装置の組に関する同時故障発生度を算出する。この処理の詳細は後述する（図９参照）。【００７９】
［ステップＳ２４］同時故障発生度表作成部５１１は、算出した同時故障発生度を、同時故障発生度表に記録する。その後、処理がステップＳ２１に進められる。
次に、同時故障発生度計算処理の手順について説明する。【００８０】
図９は、同時故障発生度計算処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］同時故障発生度表作成部５１１は、２台のストレージ装置の製造日の差を求めｄ（０以上の整数）とする。【００８１】
［ステップＳ３２］同時故障発生度表作成部５１１は、同時故障発生度ｐを「ｐ＝α-d」とする。ここで、αはＨＤＤの品質情報（たとえば、ＭＴＢＦ(Mean Time Between Failure)などの値や１つのストレージ装置に実装されたＨＤＤ数）に合わせて決定された定数（０より大きい実数）である。【００８２】
このようにして、同時故障発生度表が生成される。生成された同時故障発生度表は、同時故障発生度表記憶部５１２に格納される。ここで、α＝２とし、識別番号「ＳＮ−１」のストレージ装置１１０の製造日を２００７年４月１日、識別番号「ＳＮ−２」のストレージ装置２１０の製造日を２００７年４月２日、識別番号「ＳＮ−３」のストレージ装置３１０の製造日を２００７年４月３日、識別番号「ＳＮ−４」のストレージ装置４１０の製造日を２００７年４月４日とする。このような場合に作成される同時故障発生度表を図１０に示す。【００８３】
図１０は、同時故障発生度表のデータ構造例を示す図である。同時故障発生度表５１２ａは、縦軸と横軸とのそれぞれのラベルにストレージノードのノード識別子を設定した行列形式の表である。任意の２つのストレージノードを選択したとき、そのストレージノードのノード識別子それぞれが縦軸と横軸とのラベルとなる位置に、選択されたストレージ装置の組に対する同時故障発生度が設定される。【００８４】
ノード識別子「ＳＮ−Ａ」のストレージノード１００のストレージ装置１１０と、ノード識別子「ＳＮ−Ｂ」のストレージノード２００のストレージ装置２１０との製造日の差ｄは１日である。すると、同時故障発生度ｐ＝０．５となる。また、ノード識別子「ＳＮ−Ａ」のストレージノード１００のストレージ装置１１０と、ノード識別子「ＳＮ−Ｃ」のストレージノード３００のストレージ装置３１０との製造日の差ｄは２日である。すると、同時故障発生度ｐ＝０．２５となる。また、ノード識別子「ＳＮ−Ａ」のストレージノード１００のストレージ装置１１０とノード識別子「ＳＮ−Ｄ」のストレージノード４００のストレージ装置４１０との製造日の差ｄは３日である。すると、同時故障発生度ｐ＝０．１２５となる。同様にして、全てのストレージ装置の組み合わせについて同時故障発生度が算出され、同時故障発生度表５１２ａに設定されている。【００８５】
次に、スライス割り当て処理の詳細について説明する。
図１１は、スライス割り当て処理の手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。【００８６】
［ステップＳ４１］スライス割り当て部５１３は、スライスの仮割り当てを行う。具体的には、スライス割り当て部５１３は、論理ボリューム８００の各セグメント８１０，８２０，８３０，８４０を構成するプライマリスライスとセカンダリスライスとに対して、ストレージ装置１１０，２１０，３１０，４１０のどのスライスを割り当てるのかを決定する。スライスの割り当てに際しては、１つのセグメントを構成するプライマリスライスとセカンダリスライスとに対して、それぞれ異なるストレージ装置のスライスが割り当てられることが必要である。【００８７】
たとえば、スライス割り当て部５１３は、ストレージ装置１１０、ストレージ装置２１０、ストレージ装置３１０、ストレージ装置４１０の順にスライスを順に抽出して、それぞれ各セグメント８１０，８２０，８３０，８４０を構成するプライマリスライスに対して割り当てる。次に、スライス割り当て部５１３は、ストレージ装置２１０、ストレージ装置３１０、ストレージ装置４１０、ストレージ装置１１０の順にスライスを抽出して、それぞれ各セグメント８１０，８２０，８３０，８４０を構成するセカンダリスライスに対して割り当てる。【００８８】
なお、仮割り当てが行われたスライスの配置パターン（各セグメントと、そのセグメントを構成するプライマリスライスとセカンダリスライスとのそれぞれに割り当てられたスライスを有するストレージノードのノード識別子との対応関係）は、ＲＡＭ５０２内に一時的に記憶される。【００８９】
［ステップＳ４２］スライス割り当て部５１３は、セカンダリスライスの全ての配置パターンが求められたか否かを判断する。たとえば、スライス割り当て部５１３は、セグメントの数とストレージ装置の数とによって、配置パターンが何パターン生成可能かを計算する。そして、スライス割り当て部５１３は、生成した配置パターン数が、生成可能な配置パターン数に達した場合に、全ての配置パターンが求められたと判断する。全ての配置パターンが求められた場合、処理がステップＳ４９に進められる。未生成の配置パターンがある場合、処理がステップＳ４３に進められる。【００９０】
［ステップＳ４３］スライス割り当て部５１３は、セカンダリスライスの再配置を行う。再配置後の配置パターンは、以前に作成された配置パターンに加えて、ＲＡＭ５０２内に記憶される。この処理の詳細は後述する（図１２参照）。【００９１】
［ステップＳ４４］スライス割り当て部５１３は、セカンダリスライス再配置後の配置パターンにおいて、プライマリスライスとセカンダリスライスとが同一のストレージ装置に配置されたセグメントが存在するか否かを判断する。該当するセグメントが存在すれば、処理がステップＳ４２に進められる。該当するセグメントが存在しなければ、処理がステップＳ４５に進められる。【００９２】
［ステップＳ４５］スライス割り当て部５１３は、ステップＳ４３で再配置後の配置パターンに基づいて、各セグメントのプライマリスライスとセカンダリスライスとが配置されたストレージ装置間の同時故障発生度を、同時故障発生度表５１２ａから取得する。そして、各セグメントのスライス配置先の同時故障発生度の総和を求める。【００９３】
［ステップＳ４６］スライス割り当て部５１３は、ステップＳ４５で算出した同時故障発生度の総和が、以前に作成した配置パターンの同時故障発生度の総和と比べたとき、最小値か否かを判断する。具体的には、以前に作成した配置パターンの同時故障発生度の総和の最小値が、ＲＡＭ５０２に記憶されている。そこで、スライス割り当て部５１３は、新たに算出した同時故障発生度の総和と格納されている最小値とを比較し、新たに算出した同時故障発生度の総和の方が小さければ、新たに算出した同時故障発生度の総和が最小値であると判断する。新たに算出した同時故障発生度の総和が最小値であれば、処理がステップＳ４７に進められる。最小値でなければ、処理がステップＳ４２に進められる。【００９４】
［ステップＳ４７］スライス割り当て部５１３は、ステップＳ４５で算出した同時故障発生度の総和を、最小値としてＲＡＭ５０２に記憶する。
［ステップＳ４８］スライス割り当て部５１３は、現在のスライスの配置パターンを仮割り当てとする。その後、処理がステップＳ４２に進められる。【００９５】
［ステップＳ４９］スライス割り当て部５１３は、全ての配置パターンが生成された後、そのときに仮割り当てとして設定されている配置パターンを、正式の配置パターンに決定する。【００９６】
図１２は、セカンダリスライスの再配置処理を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］スライス割り当て部５１３は、仮割り当てされている配置パターンからランダムに２つのセカンダリスライスを選択する。なお、ステップＳ５３から遷移してきた場合、スライス割り当て部５１３は、ステップＳ５２の交換処理で得られた配置パターンからランダムに２つのセカンダリスライスを選択する。【００９７】
［ステップＳ５２］スライス割り当て部５１３は、選択したセカンダリスライスの配置先となるストレージ装置のスライスを交換して、新たな配置パターンとする。
［ステップＳ５３］スライス割り当て部５１３は、ステップＳ５２の交換処理により得られた配置パターンが、以前に生成されたことがあるか否かを判断する。具体的には、スライス割り当て部５１３は、交換処理で得られた配置パターンと、ＲＡＭ５０２に記憶されている以前に生成した配置パターンと比較し、同一のものがあるか否かを判断する。以前に生成されたことのある配置パターンであれば、処理がステップＳ５１に進められる。新しい配置パターンであれば、処理がステップＳ５４に進められる。【００９８】
［ステップＳ５４］スライス割り当て部５１３は、交換処理によってセカンダリスライスの再配置が行われた配置パターンを、ＲＡＭ５０２内に一時的に記憶する（既に記憶されている配置パターンに対して追加記憶）。【００９９】
以上のようにして、全ての配置パターンのうち、同時故障発生度の総和が最小となる配置パターンが、スライスの割り当て結果を示すこととなる。
図１３は、スライスの配置パターンに応じた同時故障発生度の総和を説明する図である。図１３には、上段に仮割り当てされた配置パターンの例を示している。下段には、正式な配置パターンを示している。【０１００】
仮割り当てされた配置パターンでは、セグメント８１０のプライマリスライス８１１に対して、ノード識別子「ＳＮ−Ａ」のストレージノード１００が有するストレージ装置１１０のスライスが割り当てられている。また、セグメント８１０のセカンダリスライス８１２に対して、ノード識別子「ＳＮ−Ｂ」のストレージノード２００が有するストレージ装置２１０のスライスが割り当てられている。【０１０１】
ストレージ装置１１０内のＨＤＤの製造日は２００７年４月１日である。また、ストレージ装置２１０内のＨＤＤの製造日は２００７年４月２日である。すると、セグメント８１０を構成するプライマリスライス８１１とセカンダリスライス８１２との製造日の差ｄは、１日である。その結果、セグメント８１０を構成するプライマリスライス８１１とセカンダリスライス８１２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．５」（定数α＝２の場合）である。なお、スライス割り当て部５１３は、同時故障発生度表５１２ａ（図１０参照）を参照することで、仮割り当てられた２台のストレージノードそれぞれが有するストレージ装置間の同時故障発生度ｐを認識する。【０１０２】
同様に、セグメント８２０を構成するプライマリスライス８２１とセカンダリスライス８２２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．５」となる。セグメント８３０を構成するプライマリスライス８３１とセカンダリスライス８３２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．５」となる。セグメント８４０を構成するプライマリスライス８４１とセカンダリスライス８４２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．１２５」となる。すると、同時故障発生度の総和は、「１．６２６」となる。【０１０３】
このような仮割り当てされた配置パターンから、セカンダリスライスの再配置が行われ、図１３の下段に示すような配置パターンとなる。たとえば、図１３の例では、セグメント８１０のセカンダリスライス８１２に対して、ノード識別子「ＳＮ−Ｃ」のストレージノード３００が有するストレージ装置３１０のスライスが割り当てられている。【０１０４】
ストレージ装置１１０内のＨＤＤの製造日は２００７年４月１日である。また、ストレージ装置２１０内のＨＤＤの製造日は２００７年４月３日である。すると、セグメント８１０を構成するプライマリスライス８１１とセカンダリスライス８１２との製造日の差ｄは、２日である。その結果、セグメント８１０を構成するプライマリスライス８１１とセカンダリスライス８１２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．２５」（定数α＝２の場合）である。【０１０５】
同様に、セグメント８２０を構成するプライマリスライス８２１とセカンダリスライス８２２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．２５」となる。セグメント８３０を構成するプライマリスライス８３１とセカンダリスライス８３２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．２５」となる。セグメント８４０を構成するプライマリスライス８４１とセカンダリスライス８４２とに割り当てられたストレージ装置の同時故障発生度ｐは、「０．２５」となる。すると、同時故障発生度の総和は、１となる。【０１０６】
このように、セカンダリスライスの再配置を行うことで、同時故障発生度の総和がより小さい配置パターンが生成される。
このような正式の配置パターンに従ってメタデータが生成される。【０１０７】
図１４は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部５２０には、メタデータ５２１が格納されている。なお、この例では、各ストレージノード１００，２００，３００，４００に送信するスライス管理情報１５１，２５１，３５１，４５１に分類した状態のメタデータ５２１を示している。各スライス管理情報１５１，２５１，３５１，４５１内に、送信先となるストレージノード１００，２００，３００，４００のノード識別子が示されている。【０１０８】
スライス管理情報１５１，２５１，３５１，４５１の構成要素は、左側の要素から順に以下の通りである。
・スライス番号
・開始ブロック位置（該当スライスの先頭に当たるブロックの番号）
・ブロック数（スライス内のブロック数）
・フラグ（プライマリ／セカンダリ）
・論理ボリューム識別子
・セグメント番号
・論理ボリューム開始ブロック位置
・論理ボリューム内でのブロック数
・ペアを組むストレージノード識別子
・ペアを組むスライス番号
これらのスライス管理情報１５１，２５１，３５１，４５１が、ストレージノード１００，２００，３００，４００に送信される。各ストレージノード１００，２００，３００，４００では、データ管理部１４０，２４０，３４０，４４０によって、スライス管理情報１５１，２５１，３５１，４５１がスライス管理情報記憶部１５０，２５０，３５０，４５０に格納される。【０１０９】
図１５は、スライス管理情報のデータ構造例を示す図である。図１５には、ノード識別子「ＳＮ−Ａ」のストレージノード１００のスライス管理情報記憶部１５０に格納されたスライス管理情報１５１の例が示されている。【０１１０】
図１５で示したスライス管理情報１５１は、図４で示した論理ボリューム８００を構成している。たとえば、ノード識別子「ＳＮ−Ａ」のスライス管理情報１５１におけるスライス番号「１」のスライスは「ＬＶＯＬ−Ａ」のセグメント番号「１」のプライマリスライスであり、ペアを組んでいるのは「ＳＮ−Ｃ」のセグメント番号「２」のスライスである、ということを意味する。同様のスライス管理情報が、他のストレージノード２００，３００，４００のスライス管理情報記憶部２５０，３５０，４５０にも格納されている。【０１１１】
各ストレージノード１００，２００，３００，４００に配布されたスライス管理情報１５１，２５１，３５１，４５１は、システムの運用停止後もストレージノード１００，２００，３００，４００内で保持される。そして、システムの運用が再開される場合、各ストレージノード１００，２００，３００，４００に配布されたスライス管理情報１５１，２５１，３５１，４５１が制御ノード５００で収集される。そして、制御ノード５００のメタデータ管理部５１５によってメタデータ５２１が再構成される。【０１１２】
また、運用を開始する際には、制御ノード５００からアクセスノード６００に対して運用ボリューム情報が送信される。運用ボリューム情報は、メタデータ管理部５１５によってメタデータ５２１に基づいて作成される。アクセスノード６００では、論理ボリュームアクセス制御部６１０が論理ボリューム情報を受信し、論理ボリューム情報記憶部６２０に格納する。【０１１３】
図１６は、論理ボリューム情報のデータ構造例を示す図である。論理ボリューム情報記憶部６２０に格納された論理ボリューム情報６２１には、論理ボリュームを識別するための論理ボリューム識別子「ＬＶＯＬ−Ａ」が付与されている。また、論理ボリューム情報６２１には、セグメント、プライマリスライス、およびセカンダリスライスの欄が設けられている。【０１１４】
セグメントの欄には、セグメント番号が設定される。プライマリスライスの欄には、セグメント番号で示されるセグメントに対応するプライマリスライスが割り当てられたストレージノードのノード識別子と、そのストレージノードが有するストレージ装置内のスライス番号が設定されている。セカンダリスライスの欄には、セグメント番号で示されるセグメントに対応するセカンダリスライスに割り当てられたストレージノードのノード識別子と、そのストレージノードが有するストレージ装置内のスライス番号が設定されている。【０１１５】
アクセスノード６００の論理ボリュームアクセス制御部６１０は、論理ボリューム情報６２１を参照して、アクセス要求に応じたアクセス先のストレージノードを判断することがきる。たとえば、論理ボリューム「ＬＶＯＬ−Ａ」内のセグメント「１」へのアクセス要求を受け取った場合、論理ボリュームアクセス制御部６１０は、論理ボリューム情報６２１を参照して、セグメント「１」のプライマリスライスに対して、ノード識別子「ＳＮ−Ａ」のストレージノード１００のスライス「１」が割り当てられていることが分かる。そこで、論理ボリュームアクセス制御部６１０は、ストレージノード１００にアクセス要求を送信する。アクセス要求には、「ＬＶＯＬ−Ａ」内のセグメント「１」に対するアクセスであることが示される。【０１１６】
すると、ストレージノード１００内のデータアクセス部１３０は、スライス管理情報１５１を参照して、「ＬＶＯＬ−Ａ」内のセグメント「１」に対応するスライスが、ストレージ装置１１０のスライス「１」であることを判断する。そして、データアクセス部１３０は、ストレージ装置１１０のスライス「１」にアクセスし、アクセス結果を論理ボリュームアクセス制御部６１０に返す。アクセス要求がデータのリード要求であれば、アクセス結果としてリードされたデータが返される。アクセス要求がデータのライト要求であれば、アクセス結果としてライト完了通知が返される。【０１１７】
なお、アクセス要求がデータのライト要求の場合、データ管理部１４０によってスライス管理情報１５１が参照され、データが書き込まれたスライスの２重化対象のスライスが判断される。そして、データ管理部１４０によって、２重化相手のストレージノード内のデータ管理部に対して、更新されたデータのライト要求が出される。そのライト要求に対するライト完了通知が返されることにより、データアクセス部１３０はデータのライト処理が完了したと判断し、アクセスノード６００に対してライト完了通知を送信する。【０１１８】
以上のようにして、分散ストレージシステムにおいて、ストレージ装置内のＨＤＤの製造日ができるだけ離れるように、２重化のためのストレージノードのペアを作成することができる。製造日が離れていることにより、ロット不良によって２重化したデータを記憶する双方のＨＤＤが同時に故障する可能性を低下させることができる。【０１１９】
なお、図１を用いた発明の原理説明と本実施の形態とでは、原理説明ではストレージ装置の組み合わせパターンを生成しているが、本実施の形態ではスライス割り当てによる配置パターンを生成している点が異なっている。本実施の形態においても、ストレージ装置間の組み合わせパターンのうちで最も同時故障発生度の小さい組み合わせたパターンを決定するようにしてもよい。その場合、決定された組み合わせパターンにおけるストレージ装置の組を、セグメントのプライマリスライスとセカンダリスライスとに割り当てるようにする。【０１２０】
ただし、本実施の形態のような分散ストレージステムは、ストレージ装置を有するストレージノードをスイッチ１０に接続するだけで、システムを増強できる点に大きなメリットがある。ストレージ装置を２台ずつの組として固定してしまうと、全てのデータアクセをミラーリングするには、ストレージ装置の台数が偶数でなければならなくなる。すなわち、ストレージ装置を有するストレージノード１台だけの増強が意味を成さなくなる。【０１２１】
そこで、本実施の形態では、スライス割り当てによる配置パターンの最適化を行うことで、同時故障の発生確率の低下を図っている。これによって、ストレージ装置の台数が奇数であっても、各ストレージ装置の資源を有効利用した上で、信頼性の高いミラーリングが可能となる。しかも、システムにストレージ装置を１台ずつ追加することで処理能力の増強を図ることができ、システムの拡張を柔軟に行うことができる。【０１２２】
［第２の実施の形態］
第２の実施の形態は、セカンダリスライスの再配置の際に、配置パターンの生成を所定数で終わりにするものである。すなわち、第１の実施の形態では、セカンダリスライスの再配置を行う際に、全ての配置パターンを生成していた。しかし、ストレージノード数の数や論理ボリュームのセグメント数が増えるに従って、全ての配置パターンを生成するための処理付加が増加する。そこで、第２の実施の形態では、全ての配置パターンの中から同時故障発生度の総和が最小になるものを選択するのではなく、所定数の配置パターンを生成し、その中から同時故障発生度の総和が最小になるものを選択する。【０１２３】
図１７は、第２の実施の形態におけるスライス割り当て処理の手順を示すフローチャートである。なお、図１７に示す処理のうち、ステップＳ６３を除くステップＳ６１，Ｓ６２，Ｓ６４〜Ｓ７０の処理は、それぞれ図１１に示した第１の実施の形態におけるスライス割り当て処理のステップＳ４１〜Ｓ４９の処理と同じである。そこで、第１の実施の形態と同じ処理については説明を省略し、ステップＳ６３の処理について説明する。【０１２４】
［ステップＳ６３］スライス割り当て部５１３は、生成した配置パターンが所定数に達したか否かを判断する。所定数とは、予めスライス割り当て部５１３に設定された数値である。生成した配置パターン数が所定数に達した場合、処理がステップＳ７０に進められる。生成した配置パターンが所定数に達していなければ、処理がステップＳ６４に進められる。【０１２５】
このようにして、配置パターンが所定数に達した時点で配置パターンの生成処理を終了させることができる。
［その他の変形例］
既にスライス配置が決定しているときに、スライスの割り当てを変更することもできる。その場合、図１１または図１７に示したスライス割り当て処理のフローチャートにおけるスライスの仮割り当て処理（ステップＳ４１，Ｓ６１）を削除した処理手順となる。【０１２６】
また、上記の説明では、各ストレージ装置に実装されるＨＤＤの製造日が同じ日であるものとした。しかし、ストレージ装置に製造日の異なる複数のディスクが接続されている場合も有り得る。その場合、同時故障発生度は、以下の計算式で計算できる（ストレージノード単位でスライス割り当て、再配置を行う場合）。【０１２７】
ここでは、ストレージノード１００，２００それぞれのストレージ装置１１０，２１０に複数台のディスクが接続されているものとする。このときに、ストレージ装置１１０とストレージ装置２１０との同時故障発生度を以下の方法で計算する。【０１２８】
ストレージノード１００が管理するｉ番目（ｉは、１以上ストレージ装置１１０内のＨＤＤ数以下の整数）のＨＤＤと、ストレージノード２００が管理するｊ番目（ｊは、１以上ストレージ装置２１０内のＨＤＤ数以下の整数）のＨＤＤとの製造日の差をｄｉｊ[日]とする。このとき、２台のＨＤＤの同時故障発生度をｐｉｊ＝α-dijとする。【０１２９】
スライス割り当て部５１３は、ｉとｊとの全ての組み合わせについて、同時故障発生度ｐｉｊを算出する。そして、スライス割り当て部５１３は、算出した同時故障発生度の最大値を、ストレージ装置１１０とストレージ装置２１０との同時故障発生度とする。【０１３０】
また、上記の説明では、ストレージ装置１１０，２１０，３１０，４１０は、内蔵する複数のＨＤＤによってＲＡＩＤシステムを構成しているものとしている。この場合、外部からは、ストレージ装置１１０，２１０，３１０，４１０それぞれが１つの実ボリュームと認識される。しかし、ストレージ装置１１０，２１０，３１０，４１０内のＨＤＤをＲＡＩＤシステムとせずに、個別の実ボリュームとして使用することもできる。その場合、同時故障発生度表作成部５１１は、ストレージ装置１１０，２１０，３１０，４１０に内蔵された全てのＨＤＤ間の同時故障発生度を計算する。そして、同時故障発生度表作成部５１１は、ＨＤＤの識別番号を、縦軸と横軸のラベルに設定したマトリックス状の同時故障発生度表を作成する。【０１３１】
スライス割り当て部５１３は、スライスの割り当て処理の際に、各セグメントのプライマリスライスとセカンダリスライスとに割り当てられたスライスを有するＨＤＤの識別番号に基づいて、同時故障発生度表からセグメント毎の同時故障発生度を取得する。そして、スライス割り当て部５１３は、取得した同時故障発生度の総和が最小となる配置パターン（あるいは生成した配置パターンの中で最も同時故障発生度の総和が最小となるもの）を決定し、その配置パターンに沿って、スライスの割り当てや再配置を行う。これにより、同時故障発生度を下げることができる。【０１３２】
さらに、上記の例では、ＨＤＤの製造日が取得できる場合を前提としている。しかし、必ずＨＤＤやストレージ装置内に製造日が記録されているとは限らない。そこで、製造日に代えて、ストレージ装置（あるいはＨＤＤ）の分散ストレージシステムへの接続日を用いることもできる。そのためには、同時故障発生度表作成部５１１は、各ストレージ装置内のＨＤＤを新たに認識する毎に、その認識した年月日を接続日として、ＨＤＤの識別番号に対応付けて記憶する。そして、同時故障発生度表作成部５１１は、同時故障発生度表を作成する際には、上記の例における製造日に代えて接続日を用いて同時故障発生度を計算する。【０１３３】
また、ＨＤＤの製品番号として製造順に連続の番号が付与されている場合、製造日に代えて、製品番号を用いることもできる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージノード１００，２００，３００，４００、管理ノード７００、アクセスノード６００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。【０１３４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【０１３５】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。【０１３６】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１３７】
１  ２重化組み合わせ管理装置
１ａ  同時故障発生度記憶手段
１ｂ  製造日情報収集手段
１ｃ  同時故障発生度計算手段
１ｄ  組み合わせパターン作成手段
１ｅ  同時故障発生度合算手段
１ｆ  ２重化組み合わせパターン決定手段
１ｇ  ２重化組み合わせパターン
１ｈ  ミラーリング指示手段
１ｉ  ミラーリング手段
２〜５  ストレージ装置
【図１】
2008136074.tif 000003
【図２】
2008136074.tif 000004
【図３】
2008136074.tif 000005
【図４】
2008136074.tif 000006
【図５】
2008136074.tif 000007
【図６】
2008136074.tif 000008
【図７】
2008136074.tif 000009
【図８】
2008136074.tif 000010
【図９】
2008136074.tif 000011
【図１０】
2008136074.tif 000012
【図１１】
2008136074.tif 000013
【図１２】
2008136074.tif 000014
【図１３】
2008136074.tif 000015
【図１４】
2008136074.tif 000016
【図１５】
2008136074.tif 000017
【図１６】
2008136074.tif 000018
【図１７】
2008136074.tif 000019
【手続補正書】
【提出日】平成21年7月6日(2009.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理プログラムにおいて、
コンピュータを、
同時故障発生度を記憶する同時故障発生度記憶手段、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段、
複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する組み合わせパターン作成手段、
前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定する２重化組み合わせパターン決定手段、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信するミラーリング指示手段、
として機能させることを特徴とする２重化組み合わせ管理プログラム。
【請求項２】
前記製造日情報収集手段は、複数のミラーリング実施コンピュータが連携してミラーリングを実施する場合、前記製造日情報を複数の前記ミラーリング実施コンピュータそれぞれから取得し、
前記ミラーリング指示手段は、複数の前記ミラーリング実施コンピュータそれぞれが有する前記ミラーリング手段に対して、前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信する、
ことを特徴とする請求項１記載の２重化組み合わせ管理プログラム。
【請求項３】
前記同時故障発生度計算手段は、所定の定数を底とし、前記製造日情報の数値の差を指数としたときの前記所定の定数のべき乗の逆数を前記同時故障発生度とすることを特徴とする請求項１記載の２重化組み合わせ管理プログラム。
【請求項４】
前記製造日情報収集手段は、前記ストレージ装置内に複数のハードディスク装置が内蔵されている場合、任意の１台の前記ハードディスク装置の前記製造日情報を前記ストレージ装置の前記製造日情報として取得することを特徴とする請求項１記載の２重化組み合わせ管理プログラム。
【請求項５】
前記製造日情報収集手段は、前記ストレージ装置内に複数のハードディスク装置が内蔵されている場合、全ての前記ハードディスク装置の前記製造日情報を取得し、
前記同時故障発生度計算手段は、比較対象の前記ストレージ装置の組それぞれから前記ハードディスク装置を１台ずつ選択することで生成可能な前記ハードディスク装置の組それぞれに関して、２台の前記ハードディスク装置それぞれの前記製造日情報を用いて前記同時故障発生度を算出し、算出した中で最も高い値を前記ストレージ装置の組の前記同時故障度発生度とする、
ことを特徴とする請求項１記載の２重化組み合わせ管理プログラム。
【請求項６】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理プログラムにおいて、
コンピュータを、
同時故障発生度を記憶する同時故障発生度記憶手段、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段、
データの格納領域を複数のセグメントに分割した論理ボリュームを定義し、前記セグメント単位でミラーリングを行う際に、複数の前記セグメントそれぞれに対してミラーリングのための２台の前記ストレージ装置の組を割り当てすることによって得られる配置パターンを複数生成する配置パターン作成手段、
前記配置パターン作成手段で生成された複数の前記配置パターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記配置パターンを、２重化配置パターンに決定する２重化配置パターン決定手段、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化配置パターン決定手段で決定された前記２重化配置パターンに示される前記セグメントそれぞれに対応する２台ずつの前記ストレージ装置の組による前記セグメントごとのミラーリングの指示を送信するミラーリング指示手段、
として機能させることを特徴とする２重化組み合わせ管理プログラム。
【請求項７】
データを２重化するストレージ装置の組を決定するための２重化組み合わせ管理装置において、
同時故障発生度を記憶する同時故障発生度記憶手段と、
複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得する製造日情報収集手段と、
前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納する同時故障発生度計算手段と、
複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成する組み合わせパターン作成手段と、
前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出する同時故障発生度合算手段と、
前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定する２重化組み合わせパターン決定手段と、
複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信するミラーリング指示手段と、
を有することを特徴とする２重化組み合わせ管理装置。
【請求項８】
データを２重化するストレージ装置の組をコンピュータで決定するための２重化組み合わせ管理方法において、
製造日情報収集手段が、複数のストレージ装置から前記ストレージ装置の製造日に応じた数値が設定された製造日情報を取得し、
同時故障発生度計算手段が、前記製造日情報収集手段が取得した前記製造日情報に基づいて、２台の前記ストレージ装置の組ごとの前記製造日情報の数値の差を計算し、前記製造日情報の差が大きいほど値が小さくなる同時故障発生度を算出し、前記ストレージ装置の組に対応付けて前記同時故障発生度を前記同時故障発生度記憶手段に格納し、
組み合わせパターン作成手段が、複数の前記ストレージ装置を２台ずつの組とした組み合わせパターンを複数生成し、
同時故障発生度合算手段が、前記組み合わせパターン作成手段で生成された複数の前記組み合わせパターンそれぞれについて、前記ストレージ装置の組に対応する前記同時故障発生度を前記同時故障発生度記憶手段から取得し、取得した前記同時故障発生度の総和を算出し、
２重化組み合わせパターン決定手段が、前記同時故障発生度合算手段で求められた同時故障発生度の総和が最も小さい前記組み合わせパターンを、２重化組み合わせパターンに決定し、
ミラーリング指示手段が、複数の前記ストレージ装置を用いてミラーリングを実施するミラーリング手段に対して、前記２重化組み合わせパターン決定手段で決定された前記２重化組み合わせパターンに示される２台ずつの前記ストレージ装置の組によるミラーリングの指示を送信する、
ことを特徴とする２重化組み合わせ管理方法。
【国際調査報告】
2008136074.tif 000020
2008136074.tif 000021
2008136074.tif 000022