(57)【特許請求の範囲】
【請求項１】
ストレージ群に含まれるストレージの組合せであるストレージ組合せを複数管理するストレージ管理装置であって、
前記各ストレージの故障確率に基づいて、前記ストレージ組合せの故障確率を算出する組合せ故障確率算出部と、
前記ストレージ組合せの前記故障確率に基づいて、前記ストレージ組合せに対する受信データの割当比率を算出する割当比率算出部と、
を備え、
前記割当比率算出部は、第１のストレージ組合せの故障確率が第２のストレージ組合せの故障確率よりも高い場合に、第１のストレージ組合せの割当比率が第２のストレージ組合せの割当比率よりも小さくなるように、前記割当比率を算出する
ストレージ管理装置。
【請求項２】
前記割当比率算出部は、前記ストレージ組合せの前記故障確率が高いほど、前記割当比率が小さくなるように、前記割当比率を算出する
請求項１に記載のストレージ管理装置。
【請求項３】
前記組合せ故障確率算出部は、前記ストレージ組合せの前記故障確率として、前記ストレージ組合せに含まれる前記各ストレージの前記故障確率の積、和、又は最大値を算出する
請求項１又は請求項２に記載のストレージ管理装置。
【請求項４】
前記ストレージの前記故障確率を算出するストレージ故障確率算出部を備える
請求項１乃至請求項３のいずれか１項に記載のストレージ管理装置。
【請求項５】
前記ストレージ故障確率算出部は、前記ストレージの稼働時間、書き込み回数、読み書き誤り率、応答速度、メーカ、ロット番号、ディスク枚数、チップ枚数、製造メーカ、製造地、ファームウェアバージョン、及び製造日時の少なくとも１つに基づいて、前記ストレージの前記故障確率を算出する
請求項４に記載のストレージ管理装置。
【請求項６】
前記割当比率算出部は、前記ストレージ組合せの前記割当比率に基づいて、前記ストレージ組合せのハッシュ範囲を算出する
請求項１乃至請求項５のいずれか１項に記載のストレージ管理装置。
【請求項７】
前記ストレージ組合せの前記割当比率に基づいて、前記各ストレージの使用頻度を算出する使用頻度算出部を備える
請求項１乃至請求項６のいずれか１項に記載のストレージ管理装置。
【請求項８】
前記割当比率算出部は、前記各ストレージの前記使用頻度が均等になるように、前記割当比率を算出する
請求項７に記載のストレージ管理装置。
【請求項９】
前記割当比率算出部は、前記各ストレージ組合せの前記故障確率と前記割当比率との積の和が小さくなるように、前記割当比率を算出する
請求項７又は請求項８に記載のストレージ管理装置。
【請求項１０】
前記各ストレージの故障確率に基づいて、元のストレージ組合せから新たなストレージ組合せを生成するストレージ組合せ生成部を備え、
前記新たなストレージ組合せの前記故障確率は、前記元のストレージ組合せの前記故障確率より低い
請求項１乃至請求項９のいずれか１項に記載のストレージ管理装置。
【請求項１１】
前記ストレージ組合せ生成部は、前記元のストレージ組合せに含まれる前記ストレージのうち、前記故障確率が最も高い前記ストレージを、他のストレージに置換することにより、前記新たなストレージを生成する
請求項１０に記載のストレージ管理装置。
【請求項１２】
複数の前記ストレージ組合せを設定された複数の前記ストレージと、
請求項１乃至請求項１１のいずれか１項に記載のストレージ管理装置と、
を備えたストレージシステム。
【請求項１３】
前記ストレージは、前記ストレージが含まれる前記ストレージ組合せに対して割当てられた前記受信データに応じたデータを格納する
請求項１２に記載のストレージシステム。
【請求項１４】
前記受信データに応じたデータは、前記受信データを複製したデータ、又は前記受信データを分割して消失符号を付加したデータである
請求項１３に記載のストレージシステム。
【請求項１５】
ストレージ群に含まれるストレージの組合せであるストレージ組合せを複数管理するために、コンピュータに実行されるストレージ管理方法であって、
前記ストレージの故障確率に基づいて、前記ストレージ組合せの故障確率を算出する工程と、
前記ストレージ組合せの前記故障確率に基づいて、前記ストレージ組合せに対する受信データの割当比率を算出する工程と、
を備え、
前記割当比率を算出する工程では、第１のストレージ組合せの故障確率が第２のストレージ組合せの故障確率よりも高い場合に、第１のストレージ組合せの割当比率が第２のストレージ組合せの割当比率よりも小さくなるように、前記割当比率が算出される
ストレージ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ストレージ管理装置、方法、及びストレージシステムに関する。
【背景技術】
【０００２】
従来、クライアントなどから受信した受信データを複製し、複製した受信データをそれぞれ異なるストレージに格納するストレージシステムが利用されている。このストレージシステムでは、同一の受信データが複数のストレージに格納されるため、受信データの損失確率を低減することができる。
【０００３】
しかしながら、従来のストレージシステムでは、同一の受信データを格納するストレージの組合せや、各組合せに対する受信データの割当比率が固定されていた。このため、使用頻度や通電時間の増大により、組合せ全体の故障確率が上昇した場合、その組合せに格納された受信データを損失する恐れがあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１３１２７１号特許公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
受信データの損失を抑制できるストレージ管理装置、方法、及びストレージシステムを提供する。
【課題を解決するための手段】
【０００６】
一実施形態に係るストレージ管理装置は、ストレージ群に含まれるストレージの組合せであるストレージ組合せを複数管理する。ストレージ管理装置は、組合せ故障確率算出部と、割当比率算出部と、を備える。組合せ故障確率算出部は、ストレージの故障確率に基づいて、ストレージ組合せの故障確率を算出する。割当比率算出部は、ストレージ組合せの故障確率に基づいて、ストレージ組合せに対する受信データの割当比率を算出する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係るストレージシステムの概略構成を示す図。
【図２】第１実施形態に係るストレージシステムの概要を説明する図。
【図３】第１実施形態に係るストレージシステムの概要を説明する図。
【図４】第１実施形態に係るストレージ管理装置の機能構成の一例を示す図。
【図５】ストレージ故障確率テーブルの一例を示す図。
【図６】ストレージ組合せテーブルの一例を示す図。
【図７】組合せ故障確率テーブルの一例を示す図。
【図８】割当比率テーブルの一例を示す図。
【図９】第１実施形態に係るストレージ管理装置のハードウェア構成の一例を示す図。
【図１０】第１実施形態に係るストレージ管理装置の通常動作を示すフローチャート。
【図１１】第１実施形態に係るストレージ管理装置による割当比率の更新処理を示すフローチャート。
【図１２】データの損失確率を説明する図。
【図１３】第２実施形態に係るストレージ管理装置の機能構成の一例を示す図。
【図１４】使用頻度テーブルの一例を示す図。
【図１５】第２実施形態に係るストレージ管理装置による割当比率の更新処理を示すフローチャート。
【図１６】第３実施形態に係るストレージシステムの概要を説明する図。
【図１７】第３実施形態に係るストレージ管理装置の機能構成の一例を示す図。
【図１８】第３実施形態に係るストレージ管理装置によるストレージ組合せの更新処理を示すフローチャート。
【図１９】ストレージ組合せ生成部によるストレージ組合せの生成処理を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面を参照して説明する。
【０００９】
（第１実施形態）
第１実施形態に係るストレージシステムについて、図１〜図１２を参照して説明する。図１は、本実施形態に係るストレージシステムの概略構成を示す図である。図１に示すように、このストレージシステムは、複数のストレージ１と、通信制御装置２と、ストレージ管理装置３と、を備える。ストレージシステムは、通信制御装置２を介してネットワーク４に接続され、ネットワーク４を介して複数のクライアント５に接続させている。
【００１０】
ストレージ１は、ストレージシステムがクライアント５から受信したデータ（以下、「受信データ」という）を格納する。ストレージ１は、例えば、１つ又は複数のＨＤＤ（Hard Disk Drive）、ＨＤＤのプラッタ、ＨＤＤのセクタ、１つ又は複数のＳＳＤ（Solid State Drive）、ＳＳＤのメモリチップ、及びＳＳＤのブロックなどである。以下では、ストレージシステムに含まれる複数のストレージ１を、ストレージ群という。
【００１１】
通信制御装置２は、ネットワーク４に接続され、ストレージ管理装置３からの指令に従って、ストレージシステムとクライアント５との間のデータの送受信を制御する。具体的には、通信制御装置２は、ネットワーク４を介して、クライアント５から受信データを受信し、受信データをストレージ管理装置３により指定された所定のストレージ１に格納する。
【００１２】
ストレージ管理装置３（以下、「管理装置３」という）は、ストレージ群を管理する。より詳細には、管理装置３は、受信データをどのストレージ１に格納するかを管理する。管理装置３は、通信制御装置２が受信データを受信すると、その受信データを格納するストレージ１を指定する。管理装置３について、詳しくは後述する。
【００１３】
ここで、本実施形態に係るストレージシステムの概要について、図２及び図３を参照して説明する。
【００１４】
本実施形態において、ストレージ群は、複数のストレージ組合せを予め設定される。ストレージ組合せとは、ストレージ群に含まれる１つ又は複数のストレージ１の組合せのことである。すなわち、各ストレージ組合せには、１つ又は複数のストレージ１が含まれる。
【００１５】
各ストレージ組合せには、同じ数のストレージ１が含まれてもよいし、異なる数のストレージ１が含まれてもよい。また、各ストレージ１は、１つのストレージ群に含まれてもよいし、複数のストレージ群に含まれてもよい。
【００１６】
各ストレージ組合せに複数のストレージ１が含まれる場合、同一のストレージ組合せに含まれる各ストレージ１の配置場所は異なるのが好ましい。配置場所が異なるとは、各ストレージ１が配置されたラック、部屋、階床、及び建物などが異なることをいう。
【００１７】
図２は、本実施形態に係るストレージシステムの概要を説明する図である。図２において、♯ｉは各ストレージ１を識別するストレージＩＤ、Ｃｊは各ストレージ組合せを識別する組合せＩＤである。
【００１８】
図２の例では、ストレージ群には９つのストレージ♯ｉ（ｉ＝０〜８）が含まれており、ストレージ群に対してｎ個のストレージ組合せＣｊ（ｊ＝１〜ｎ）が設定されている。各ストレージ組合せＣｊには、それぞれ異なるラックに設置された３つのストレージ♯ｉが含まれている。例えば、ストレージ組合せＣ２には、ラック１に配置されたストレージ♯１と、ラック２に配置されたストレージ♯３と、ラック３に配置されたストレージ♯７と、が含まれる。
【００１９】
本実施形態において、通信制御装置２が受信した受信データは、ストレージ群に設定されたいずれか１つのストレージ組合せＣｊに割当てられる。そして、受信データが割当てられたストレージ組合せＣｊに含まれる各ストレージ♯ｉに、受信データに応じたデータがそれぞれ格納される。
【００２０】
例えば、ある受信データが図２のストレージ組合せＣ２に割当てられた場合、その受信データに応じたデータは、ストレージ＃１，＃３，＃７にそれぞれ格納される。
【００２１】
各ストレージ＃ｉに格納される、受信データに応じたデータは、受信データを複製したデータであってもよいし、受信データを分割して消失符号を付加したデータであってもよいし、これらのデータに所定の情報（例えば、メタデータ）を付加したデータであってもよい。いずれの場合も、受信データの格納が冗長化されるため、受信データの損失を抑制することができる。
【００２２】
本実施形態において、受信データは、各ストレージ組合せＣｊに、所定の割合で割当てられる。この割合を割当比率という。例えば、あるストレージ組合せＣｊの割当比率が１／１０であった場合、全受信データの１／１０が、そのストレージ組合せＣｊに割当てられる。
【００２３】
このような受信データの割当を実現するために、各ストレージ組合せＣｊには、ハッシュ範囲がそれぞれ設定される。ハッシュ範囲とは、ハッシュ値の範囲のことである。各ストレージ組合せＣｊのハッシュ範囲は、各ストレージ組合せＣｊの割当比率に従って設定される。
【００２４】
すなわち、あるストレージ組合せＣｊのハッシュ範囲は、全ハッシュ範囲に対するそのストレージ組合せＣｊのハッシュ範囲の割合が、そのストレージ組合せＣｊの割当比率と一致するように設定される。例えば、ストレージ組合せＣｊの割当比率が１／１０である場合、そのストレージ組合せＣｊのハッシュ範囲は、全ハッシュ範囲の１／１０となるように設定される。
【００２５】
本実施形態に係る管理装置３は、ハッシュ関数により受信データのハッシュ値を算出し、算出したハッシュ値が含まれるハッシュ範囲を設定されたストレージ組合せＣｊに、その受信データを割当てる。
【００２６】
図２の例では、各ストレージ組合せＣｊの割当比率は１／ｎであり、全ハッシュ範囲は０〜ｎ×１００−１である。各ストレージ組合せＣｊには、ハッシュ範囲として（ｊ−１）×１００〜ｊ×１００−１が設定されている。例えば、ストレージ組合せＣ２のハッシュ範囲は、１００〜１９９である。したがって、ある受信データのハッシュ値が１５４であった場合、その受信データはストレージ組合せＣ２に割当てられる。
【００２７】
このような割当て方法により、受信データを、ストレージ組合せＣｊの割当比率に従って、ストレージ組合せＣｊに割当てることが可能となる。
【００２８】
従来のストレージシステムでは、各ストレージ組合せＣｊに設定された割当比率が固定されていた。このため、ストレージ組合せＣｊの故障確率Ｐｃｊが上昇した場合であっても、ストレージ組合せＣｊには、当初設定された割当比率に従って、受信データが割当てられた。
【００２９】
これに対して、本実施形態に係る管理装置３は、ストレージ組合せＣｊの故障確率Ｐｃｊに応じて、ストレージ組合せＣｊに設定された割当比率を変化させる。具体的には、管理装置３は、ストレージ組合せＣｊの故障確率Ｐｃｊが高いほど、ストレージ組合せＣｊに設定された割当比率を小さくする。
【００３０】
例えば、図２のストレージ＃１，＃３の状態が悪化し、ストレージ組合せＣ２の故障確率Ｐｃｊが高まった場合、管理装置３は、割当比率Ｃ２を更新し、図３に示すように、ストレージ組合せＣ２の割当比率を小さくする。図３の例では、ストレージ組合せＣ２の割当比率は１／２ｎに更新されている。これに伴い、ストレージ組合せＣ２のハッシュ範囲は、１００〜１４９に更新されている。
【００３１】
本実施形態によれば、このように、故障確率Ｐｃｊが高いストレージ組合せＣｊの割当比率を小さくすることにより、受信データの損失を抑制することができる。なお、故障確率Ｐｃｊについて、詳しくは後述する。
【００３２】
ここで、管理装置３について、図４〜図８を参照して詳細に説明する。以下では、ストレージ群には、ｍ＋１個のストレージ＃ｉ（ｉ＝０〜ｍ）が含まれ、ｎ個のストレージ組合せＣｊ（ｊ＝１〜ｎ）が設定されているものとする。
【００３３】
図４は、本実施形態に係る管理装置３の機能構成の一例を示す図である。図４に示すように、この管理装置３は、ストレージ管理部１０１と、ハッシュ値算出部１０２と、ハッシュ値テーブル１０３と、ストレージ故障確率算出部１０４と、ストレージ故障確率テーブル１０５と、ストレージ組合せテーブル１０６と、組合せ故障確率算出部１０７と、組合せ故障確率テーブル１０８と、割当比率算出部１０９と、割当比率テーブル１１０と、旧割当比率テーブル１１１と、を備える。
【００３４】
ストレージ管理部１０１は、管理装置３の全体の動作を統括管理する。また、ストレージ管理部１０１は、通信制御装置２を介して、外部機器との間でデータを送受信する。例えば、ストレージ管理部１０１は、通信制御装置２から受信データに関する情報を受信したり、ストレージ群から各ストレージ＃ｉに関する情報を受信したりする。
【００３５】
ハッシュ値算出部１０２は、ハッシュ関数により受信データのハッシュ値を算出する。ハッシュ値算出部１０２は、既存の任意のハッシュ法を利用することができる。また、ハッシュ関数のキーとして、例えば、受信データのファイル名などが利用可能である。ハッシュ値算出部１０２は、算出したハッシュ値を、受信データのファイル名など対応付けて、ハッシュ値テーブル１０３に格納する。
【００３６】
ハッシュ値テーブル１０３は、ハッシュ値算出部１０２が算出したハッシュ値を格納する。ハッシュ値テーブル１０３には、例えば、受信データのハッシュ値とファイル名などが対応付けて格納される。ハッシュ値テーブル１０３は、ストレージ群に格納された受信データを検索するために利用される。
【００３７】
ストレージ故障確率算出部１０４は、各ストレージ＃ｉの物理特性値や製造属性値に基づいて、各ストレージ＃ｉの故障確率Ｐｉを算出する。物理特性値は、例えば、データ読み書き回数、データ読み書きリトライ回数、通電時間、書き込み回数、及びベンダー独自に定義されたエラーレート（いわゆる、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報）などである。また、製造属性値は、例えば、メーカ、ファーム、ロット番号、製造場所、製造日時などである。
【００３８】
故障確率Ｐｉとは、ストレージ＃ｉの状態を評価した値である。ストレージ＃ｉの状態が劣化しているほど、故障確率Ｐｉは高くなる。したがって、ストレージ＃ｉは、故障確率Ｐｉが高いほど、格納されたデータを損失する可能性が高い。
【００３９】
ストレージ故障確率算出部１０４は、既存の任意の方法を利用して、故障確率Ｐｉを計算することが可能である。ストレージ故障確率算出部１０４は、算出した各ストレージ＃ｉの故障確率Ｐｉをストレージ故障確率テーブル１０５に格納する。
【００４０】
ストレージ故障確率テーブル１０５は、ストレージ故障確率算出部１０４が算出した各ストレージ＃ｉの故障確率Ｐｉを格納する。図５は、ストレージ故障確率テーブル１０５の一例を示す図である。図５の例では、ストレージ＃０〜＃ｍの故障確率Ｐ０〜Ｐｍがそれぞれ格納されている。例えば、ストレージ＃０の故障確率Ｐ０は、０．１である。
【００４１】
ストレージ組合せテーブル１０６は、ストレージ群に設定された各ストレージ組合せＣｊを格納する。図６は、ストレージ組合せテーブル１０６の一例を示す図である。図５の例では、ｎ個のストレージ組合せＣｊ（ｊ＝１〜ｎ）が格納されている。各ストレージ組合せＣｊには、それぞれ異なるラックに配置された３つのストレージ＃ｉが含まれている。例えば、ストレージ組合せＣ１には、ストレージ＃０，＃４，＃６が含まれる。
【００４２】
組合せ故障確率算出部１０７は、各ストレージ＃ｉの故障確率Ｐｉと、各ストレージ組合せＣｊと、に基づいて、各ストレージ組合せＣｊの故障確率Ｐｃｊを算出する。
【００４３】
故障確率Ｐｃｊとは、ストレージ組合せＣｊの状態を評価した値である。ストレージ組合せＣｊに含まれる各ストレージ＃ｉの状態が劣化しているほど、故障確率Ｐｃｊは高くなる。したがって、ストレージ組合せＣｊは、故障確率Ｐｃｊが高いほど、格納されたデータを損失する可能性が高い。
【００４４】
組合せ故障確率算出部１０７は、ストレージ組合せＣｊに含まれる各ストレージ＃ｉの故障確率Ｐｉに基づいて、故障確率Ｐｃｊを算出する。組合せ故障確率算出部１０７は、例えば、故障確率Ｐｃｊとして、ストレージ組合せＣｊに含まれる各ストレージ＃ｉの故障確率Ｐｉの積、和、又は最大値を算出する。故障確率Ｐｃｊは、離散化された故障確率Ｐｉに基づいて算出されてもよい。ここでいう離散化とは、切り上げ、切り下げ、及び四捨五入などにより、故障確率Ｐｉの値を丸めることをいう。
【００４５】
図５及び図６の例では、ストレージ組合せＣ１には、ストレージ＃０，＃４，＃６が含まれ、故障確率Ｐｉは、それぞれＰ０＝０．１，Ｐ４＝０，Ｐ６＝２．０である。この場合、ストレージ組合せＣ１の故障確率Ｐｃ１は、０（＝Ｐ０×Ｐ４×Ｐ６）、２．８（＝Ｐ０＋Ｐ４＋Ｐ６）、又は２．０（＝ｍａｘ（Ｐ０，Ｐ４，Ｐ６））となる。
【００４６】
なお、故障確率Ｐｃｊの算出方法は、上記の方法に限られない。組合せ故障確率算出部１０７は、故障確率Ｐｉを利用した任意の方法で、故障確率Ｐｃｊを算出することが可能である。また、ストレージ組合せＣｊに１つのストレージ＃ｉしか含まれない場合、組合せ故障確率算出部１０７は、ストレージ＃ｉの故障確率Ｐｉを、そのストレージ組合せＣｊの故障確率Ｐｃｊとして算出すればよい。組合せ故障確率算出部１０７は、算出した故障確率Ｐｃｊを組合せ故障確率テーブル１０８に格納する。
【００４７】
組合せ故障確率テーブル１０８は、組合せ故障確率算出部１０７が算出した各ストレージ組合せＣｊの故障確率Ｐｃｊを格納する。図７は、組合せ故障確率テーブル１０８の一例を示す図である。図７の例では、ストレージ組合せＣ１〜Ｃｎの故障確率Ｐｃ１〜Ｐｃｎがそれぞれ格納されおり、各故障確率Ｐｃｊは、故障確率Ｐｉの積として算出されている。例えば、ストレージ組合せＣ１の故障確率Ｐｃ１は０（＝Ｐ０×Ｐ４×Ｐ６）である。
【００４８】
割当比率算出部１０９は、各ストレージ組合せＣｊの故障確率Ｐｃｊに基づいて、各ストレージ組合せＣｊの割当比率ｗｃｊを算出する。割当比率算出部１０９は、上述の通り、故障確率Ｐｃｊが高いほど、割当比率ｗｃｊが小さくなるように、割当比率ｗｃｊを算出する。割当比率ｗｃｊは、例えば、以下の式により算出される。
【００４９】
【数１】
0006499038.tif 000002
【００５０】
式（１）において、α（≧０）は割当比率ｗｃｊのばらつきを調整するための定数であり、ｋは正規化定数である。正規化定数ｋは、例えば、以下の式で算出される。
【００５１】
【数２】
0006499038.tif 000003
【００５２】
このように割当比率ｗｃｊを算出することにより、故障確率Ｐｃｊが高いほど、割当比率ｗｃｊは小さくなる。割当比率算出部１０９は、算出した割当比率ｗｃｊを割当比率テーブル１１０に格納する。
【００５３】
また、割当比率算出部１０９は、算出した割当比率ｗｃｊに基づいて、各ストレージ組合せＣｊのハッシュ範囲を算出する。ストレージ組合せＣｊのハッシュ範囲は、例えば、以下の式により算出される。
【００５４】
【数３】
0006499038.tif 000004
【００５５】
式（３）において、ｈｍａｘは、全ハッシュ範囲におけるハッシュ値の最大値である。ストレージ組合せＣ１のハッシュ範囲は、０〜ｈ１−１（＝ｈｍａｘ×ｗｃ１−１）となる。また、ストレージ組合せＣ２〜Ｃｎのハッシュ範囲は、ｈｊ−１〜ｈｊ−１（ｊ＝２〜ｎ）となる。割当比率算出部１０９は、算出した各ストレージ組合せＣｊのハッシュ範囲を割当比率テーブル１１０に格納する。
【００５６】
割当比率テーブル１１０は、割当比率算出部１０９が算出した各ストレージ組合せＣｊの割当比率ｗｃｊ及びハッシュ範囲を格納する。図８は、割当比率テーブル１１０の一例を示す図である。図８の例では、ストレージ組合せＣ１〜Ｃｎの割当比率ｗｃｊ及びハッシュ範囲がそれぞれ格納されている。
【００５７】
旧割当比率テーブル１１１は、割当比率算出部１０９により更新される前の割当比率ｗｃｊ及びハッシュ範囲を格納する。旧割当比率テーブル１１１は、更新前の割当比率ｗｃｊ及びハッシュ範囲に従ってストレージ群に格納されたデータを、更新後の割当比率ｗｃｊ′に従ってストレージ群に格納し直すために利用される。
【００５８】
次に、本実施形態に係る管理装置３のハードウェア構成について、図９を参照して説明する。本実施形態に係る管理装置３は、コンピュータ３０により構成される。コンピュータ３０には、サーバ、クライアント、マイコン、及び汎用コンピュータなどが含まれる。管理装置３を構成するコンピュータ３０は、例えば、通信制御装置２に接続された管理サーバや管理ノードである。
【００５９】
図９は、コンピュータ３０の一例を示す図である。図３０に示すように、コンピュータ３０は、ＣＰＵ（中央演算装置）３１と、入力装置３２と、表示装置３３と、通信装置３４と、記憶装置３５と、を備える。ＣＰＵ３１、入力装置３２、表示装置３３、通信装置３４、及び記憶装置３５は、バス３６により相互に接続されている。
【００６０】
ＣＰＵ３１は、コンピュータ３０の制御装置及び演算装置を含む電子回路である。ＣＰＵ３１は、バス３６を介して接続された各装置（例えば、入力装置３２、通信装置３４、記憶装置３５）から入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を、バス３６を介して接続された各装置（例えば、表示装置３３、通信装置３４、記憶装置３５）に出力する。具体的には、ＣＰＵ３１は、コンピュータ３０のＯＳ（オペレーティングシステム）や、ストレージ管理プログラムなどを実行し、コンピュータ３０を構成する各装置を制御する。
【００６１】
ストレージ管理プログラム（以下、「管理プログラム」という）とは、コンピュータ３０に、管理装置３の上述の各機能構成を実現させるプログラムである。管理プログラムは、一時的でない有形のコンピュータ読み取り可能な記憶媒体に記憶される。上記の記憶媒体は、例えば、光ディスク、光磁気ディスク、磁気ディスク、磁気テープ、フラッシュメモリ、半導体メモリであるが、これに限られない。ＣＰＵ３１が管理プログラムを実行することにより、コンピュータ３０が管理装置３として機能する。
【００６２】
入力装置３２は、コンピュータ３０に情報を入力するための装置である。入力装置３２は、例えば、キーボード、マウス、及びタッチパネルであるが、これに限られない。ユーザは、入力装置３２を用いることにより、割当比率の更新処理の実行命令などを入力することができる。
【００６３】
表示装置３３は、画像や映像を表示するための装置である。表示装置３３は、例えば、ＬＣＤ（液晶ディスプレイ）、ＣＲＴ（ブラウン管）、及びＰＤＰ（プラズマディスプレイ）であるが、これに限られない。表示装置３３には、ハッシュ値テーブル１０３、ストレージ故障確率テーブル１０５、ストレージ組合せテーブル１０６、組合せ故障確率テーブル１０８、割当比率テーブル１１０、及び旧割当比率テーブル１１１などが表示されてもよい。
【００６４】
通信装置３４は、コンピュータ３０が外部装置と無線又は有線で通信するための装置である。通信装置３４は、例えば、モデム、ハブ、及びルータであるが、これに限られない。コンピュータ３０は、通信装置３４を介して通信制御装置２と接続することができる。
【００６５】
記憶装置３５は、コンピュータ３０のＯＳや、管理プログラム、管理プログラムの実行に必要なデータ、及び管理プログラムの実行により生成されたデータなどを記憶する記憶媒体である。記憶装置３５には、主記憶装置と外部記憶装置とが含まれる。主記憶装置は、例えば、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭであるが、これに限られない。また、外部記憶装置は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。ハッシュ値テーブル１０３、ストレージ故障確率テーブル１０５、ストレージ組合せテーブル１０６、組合せ故障確率テーブル１０８、割当比率テーブル１１０、及び旧割当比率テーブル１１１などは、記憶装置３５上に構築することができる。
【００６６】
なお、コンピュータ３０は、ＣＰＵ３１、入力装置３２、表示装置３３、通信装置３４、及び記憶装置３５を、それぞれ１つ又は複数備えてもよいし、プリンタやスキャナなどの周辺機器を接続されていてもよい。
【００６７】
また、管理装置３は、単一のコンピュータ３０により構成されてもよいし、相互に接続された複数のコンピュータ３０からなるシステムとして構成されてもよい。
【００６８】
さらに、管理プログラムは、コンピュータ３０の記憶装置３５に予め記憶されていてもよいし、コンピュータ３０の外部の記憶媒体に記憶されていてもよいし、インターネット上にアップロードされていてもよい。いずれの場合も、管理プログラムをコンピュータ３０にインストールして実行することにより、管理装置３の機能が実現される。
【００６９】
次に、本実施形態に係る管理装置３の動作について、図１０及び図１１を参照して説明する。まず、管理装置３の通常動作について説明する。図１０は、管理装置３の通常動作を示すフローチャートである。
【００７０】
通信制御装置２は、クライアント５から受信データを受信すると、受信データに関する情報を、ストレージ管理部１０１に送信する。受信データに関する情報は、例えば、受信データのファイル名またはサイズであるが、これに限られない。通信制御装置２は、受信データに関する情報と共に、受信データ自体をストレージ管理部１０１に送信してもよい。
【００７１】
ストレージ管理部１０１は、通信制御装置２が送信した情報を受信すると、受信した情報をハッシュ値算出部１０２に渡し、ハッシュ値算出部１０２にハッシュ値の算出処理を実行させる。ハッシュ値算出部１０２は、受信データに関する情報に基づいて、受信データのハッシュ値を算出する（ステップＳ１１）。ハッシュ値の算出方法は、上述の通りである。ハッシュ値算出部１０２は、算出したハッシュ値を、ハッシュ値テーブル１０３に格納する。
【００７２】
次に、ストレージ管理部１０１は、ハッシュ値テーブル１０３から受信データのハッシュ値を取得し、割当比率テーブル１１０を参照して、受信データを割当てるストレージ組合せＣｊを決定する（ステップＳ１２）。例えば、受信データのハッシュ値が１５０であり、ストレージ管理部１０１が図２の割当比率テーブル１１０を参照した場合、受信データを割当てるストレージ組合せＣｊは、ストレージ組合せＣ２に決定される。
【００７３】
続いて、ストレージ管理部１０１は、ストレージ組合せテーブル１０６を参照して、受信データを割当てるストレージ組合せＣｊに含まれるストレージ＃ｉを特定する（ステップＳ１３）。図２の例では、ストレージ組合せＣ２に含まれるストレージ＃ｉとして、ストレージ＃１，＃３，＃７が特定される。
【００７４】
その後、ストレージ管理部１０１は、通信制御装置２に指令を送信し、受信データを格納するストレージ＃ｉとして、ステップＳ１３で特定されたストレージ＃ｉを指定する（ステップＳ１４）。
【００７５】
指令を受信した通信制御装置２は、ストレージ管理部１０１により指定されたストレージ＃ｉに、受信データに応じたデータを格納する。例えば、ストレージ管理部１０１によりストレージ＃１，＃３，＃７が指定された場合、通信制御装置２は、ストレージ＃１，＃３，＃７に受信データに応じたデータを格納する。受信データの複製、分割、及び消失符号の付加などの処理は、通信制御装置２が行なってもよいし、受信データを受け取ったストレージ管理部１０１が行なってもよい。
【００７６】
管理装置３は、通信制御装置２が受信データを受信する度に、上記の処理を実行する。これにより、各ストレージ組合せＣｊの割当比率ｗｃｊに従って、受信データがストレージ群に格納される。
【００７７】
次に、管理装置３による割当比率の更新処理について説明する。図１１は、管理装置３による割当比率の更新処理を示すフローチャートである。
【００７８】
まず、ストレージ管理部１０１は、通信制御装置２を介して、各ストレージ＃ｉに、物理特性値及び製造属性値を要求する（ステップＳ２１）。要求を受信した各ストレージ＃ｉは、物理特性値及び製造属性値を送信する。ストレージ管理部１０１は、送信された各ストレージ＃ｉの物理特性値及び製造属性値を、通信制御装置２を介して受信する。
【００７９】
次に、ストレージ管理部１０１は、受信した各ストレージ＃ｉの物理特性値及び製造属性値をストレージ故障確率算出部１０４に渡し、ストレージ故障確率算出部１０４に故障確率Ｐｉの算出処理を実行させる。
【００８０】
ストレージ故障確率算出部１０４は、各ストレージ＃ｉの物理特性値及び製造属性値に基づいて、各ストレージ＃ｉの故障確率Ｐｉを算出し、ストレージ故障確率テーブル１０５に格納する（ステップＳ２２）。故障確率Ｐｉの算出方法は、上述の通りである。なお、各ストレージ＃ｉから故障確率Ｐｉを受信できる場合には、ストレージ故障確率算出部１０４は、受信した故障確率Ｐｉをそのままストレージ故障確率テーブル１０５に格納してもよい。
【００８１】
続いて、ストレージ管理部１０１は、組合せ故障確率算出部１０７に、各ストレージ組合せＣｊの故障確率Ｐｃｊの算出処理を実行させる。
【００８２】
組合せ故障確率算出部１０７は、ストレージ故障確率テーブル１０５から各ストレージ＃ｉの故障確率Ｐｉを取得し、ストレージ組合せテーブル１０６から各ストレージ組合せＣｊに含まれるストレージ＃ｉを取得する。組合せ故障確率算出部１０７は、取得した情報に基づいて、各ストレージ組合せＣｊの故障確率Ｐｃｊを算出し、組合せ故障確率テーブル１０８に格納する（ステップＳ２３）。故障確率Ｐｃｊの算出方法は、上述の通りである。
【００８３】
その後、ストレージ管理部１０１は、組合せ故障確率テーブル１０８を参照して、故障確率Ｐｃｊが所定の閾値Ｐｔｈ１より大きいストレージ組合せＣｊがあるか判定する（ステップＳ２４）。
【００８４】
故障確率Ｐｃｊが閾値Ｐｔｈ１より大きいストレージ組合せＣｊがない場合（ステップＳ２４のＮＯ）、ストレージ管理部１０１は、更新処理を終了させる。これは、故障確率Ｐｃｊが低い場合には、データの損失確率が低いためである。故障確率Ｐｃｊが低い場合に更新処理を実行しないことにより、更新頻度を抑制し、管理装置３の動作の安定性を向上させたり、管理装置３の計算量を抑制したりすることができる。なお、閾値Ｐｔｈ１は、任意に設定可能である。
【００８５】
一方、故障確率Ｐｃｊが閾値Ｐｔｈ１より大きいストレージ組合せＣｊがあった場合（ステップＳ２４のＹＥＳ）、ストレージ管理部１０１は、割当比率テーブル１１０を、旧割当比率テーブル１１１にコピーする（ステップＳ２５）。そして、ストレージ管理部１０１は、割当比率算出部１０９に、各ストレージ組合せＣｊの割当比率ｗｃｊの算出処理を実行させる。
【００８６】
割当比率算出部１０９は、組合せ故障確率テーブル１０８から各ストレージ組合せＣｊの故障確率Ｐｃｊを取得する。割当比率算出部１０９は、取得した故障確率Ｐｃｊに基づいて、各ストレージ組合せＣｊの割当比率ｗｃｊ及びハッシュ範囲を算出し、割当比率テーブル１１０に格納する（ステップＳ２６）。割当比率ｗｃｊ及びハッシュ範囲の算出方法は上述の通りである。これにより、図２及び図３を参照して説明したように、割当比率ｗｃｊ及びハッシュ範囲が更新される。
【００８７】
管理装置３は、以上の更新処理を、所定の時間間隔で実行してもよいし、管理装置３のユーザから入力された実行命令に従って実行してもよい。
【００８８】
また、ストレージ管理部１０１は、更新処理の実行後、更新前の割当比率ｗｃｊに従って格納したデータを、更新後の割当比率ｗｃｊ′に従って格納し直してもよい。例えば、図２の割当比率ｗｃｊが図３の割当比率ｗｃｊ′に更新された場合、更新後に受信したハッシュ値が１５０〜１９９の受信データはストレージ組合せＣ３に格納されるのに対して、更新前に受信したハッシュ値が１５０〜１９９の受信データはストレージ組合せＣ２に格納されている。
【００８９】
この場合、ストレージ管理部１０１は、割当比率ｗｃｊの更新後、ハッシュ値テーブル１０３を参照して、ストレージ組合せＣ２に格納されているハッシュ値が１５０〜１９９の受信データを特定し、特定した受信データをストレージ組合せＣ３に格納し直すように、通信制御部２に指令すればよい。
【００９０】
ストレージ管理部１０１は、更新後のハッシュ範囲が格納された割当比率テーブル１１０と、更新前のハッシュ範囲が格納された旧割当比率テーブル１１１と、を参照することにより、格納し直す対象となる受信データのハッシュ値を取得すればよい。
【００９１】
以上説明した通り、本実施形態に係る管理装置３は、ストレージ組合せＣｊの故障確率Ｐｃｊが高いほど、そのストレージ組合せＣｊの割当比率ｗｃｊを小さくする。これにより、データの損失確率を低減することができる。
【００９２】
ここで、データの損失確率について説明する。ストレージシステムにおけるデータの損失確率Ｐｌｏｓｔは、一般に、以下の式で評価できる。
【００９３】
【数４】
0006499038.tif 000005
【００９４】
例えば、図１２に示すように、ストレージ群に２つのストレージ組合せＣ１，Ｃ２が設定され、故障確率Ｐｃ１が０．２、故障確率Ｐｃ２が０．８、割当比率ｗｃ１が０．５、割当比率ｗｃ２が０．５であった場合、このストレージシステムにおけるデータの損失確率Ｐｌｏｓｔは０．５（＝０．２×０．５＋０．８×０．５）となる。
【００９５】
本実施形態に係る管理装置３は、故障確率Ｐｃｊが高いストレージ組合せＣｊの割当比率ｗｃｊが小さくなるように、各割当比率ｗｃｊを更新する。したがって、図１２の例では、ストレージ組合せＣ２の割当比率ｗｃ２が小さくなるように更新される。
【００９６】
図１２に示すように、更新処理により、割当比率ｗｃ１が０．８、割当比率ｗｃ２が０．２に更新された場合、このストレージシステムにおけるデータの損失確率Ｐｌｏｓｔは０．３２（＝０．２×０．８＋０．８×０．２）となる。
【００９７】
このように、管理装置３が各ストレージ組合せＣｊの割当比率ｗｃｊを更新することにより、データの損失確率Ｐｓｌｏｔを低減することができる。したがって、本実施形態によれば、受信データの損失を抑制することができる。
【００９８】
本実施形態に係るストレージシステムは、任意の分散ストレージシステムに適用可能である。本実施形態に係るストレージシステムは、コンシステントハッシュ法によりデータの配置を分散させるストレージシステムや、オブジェクトストレージに適用するのが好ましい。
【００９９】
（第２実施形態）
第２実施形態に係るストレージシステムについて、図１３〜図１５を参照して説明する。本実施形態では、各ストレージ＃ｉの使用頻度を考慮して、各ストレージ組合せＣｊの割当比率ｗｃｊを更新する管理装置３について説明する。
【０１００】
図１３は、本実施形態に係る管理装置３の機能構成の一例を示す図である。図１３に示すように、この管理装置３は、使用頻度算出部１１２と、使用頻度テーブル１１３と、を備える。他の構成は、第１実施形態と同様である。
【０１０１】
使用頻度算出部１１２は、各ストレージ組合せＣｊの割当比率ｗｃｊに基づいて、各ストレージ＃ｉの使用頻度Ｕｉを算出する。使用頻度Ｕｉとは、ストレージ＃ｉが使用される、すなわち、ストレージ＃ｉにデータが格納される割合に応じた値である。
【０１０２】
使用頻度Ｕｉは、ストレージ＃ｉが含まれる各ストレージ組合せＣｊの割当比率ｗｃｊの和として算出される。例えば、あるストレージ＃ｉがストレージ組合せＣ１，Ｃ２に含まれ、ｗｃ１が０．１、ｗｃ２が０．２である場合、このストレージ＃ｉの使用頻度Ｕｉは、０．３（＝０．１＋０．２）となる。使用頻度Ｕｉは、以下の式で算出される。
【０１０３】
【数５】
0006499038.tif 000006
【０１０４】
式（５）において、ＩＮＣ（ｉ，Ｃｊ）は、ストレージ＃ｉがストレージ組合せＣｊに含まれる場合に１、含まれない場合に０となる関数である。使用頻度算出部１１２は、算出した各ストレージ＃ｉの使用頻度Ｕｉを、使用頻度テーブル１１３に格納する。
【０１０５】
使用頻度テーブル１１３は、使用頻度算出部１１２が算出した各ストレージ＃ｉの使用頻度Ｕｉを格納する。図１４は、使用頻度テーブル１１３の一例を示す図である。図１４の例では、ストレージ＃０〜＃ｍの各使用頻度Ｕ０〜Ｕｍが格納されている。各使用頻度は、ｗｃｉの関係式で表現される。例えば、ストレージ組み合わせテーブルが図６に表される状態であった時、ストレージ＃０はストレージ組合せＣ１，Ｃ３，Ｃ４にて使用されているため、使用頻度Ｕ０は、ｗｃ１＋ｗｃ３＋ｗｃ４である。
【０１０６】
本実施形態において、割当比率算出部１０９は、各ストレージ＃ｉの使用頻度Ｕｉを考慮して、割当比率ｗｃｊを算出する。具体的には、各ストレージ＃ｉの使用頻度Ｕｉが等しくなり、かつ、損失確率Ｐｌｏｓｔが最小となるように、割当比率ｗｃｊを算出する。これは、Ｕ０＝Ｕ１＝・・・＝Ｕｍという制約条件のもと、式（４）のＰｌｏｓｔを最小化するｗｃｊの組合せを求める線形計画問題を解くことに相当する。
【０１０７】
割当比率算出部１０９は、任意の方法で上記の線形計画問題を解くことができる。例えば、割当比率算出部１０９は、候補解（ｗｃｊの組）をランダムで生成し、生成した候補解に応じた損失確率Ｐｌｏｓｔを算出し、生成した候補解を割当比率テーブル１１０に格納する。次に、使用頻度算出部１１２が、格納された候補解に応じた各使用頻度Ｕｉを算出し、使用頻度テーブル１１３に格納する。割当比率算出部１０９は、使用頻度テーブル１１３を参照し、生成した候補解が制約条件を満たしているか判定する。
【０１０８】
割当比率算出部１０９は、生成された候補解が制約条件を満たしていない場合、その候補解を放棄し、制約条件を満たしている場合、その候補解を記憶する。割当比率算出部１０９は、このような処理を終了条件が満たされるまで繰り返し、制約条件を満たす候補解の中で、損失確率Ｐｌｏｓｔが最小となる候補解を、解として選択すればよい。
【０１０９】
終了条件は、処理回数が所定回数になることや、制約条件を満たし、かつ、損失確率Ｐｌｏｓｔが所定値以下になる候補解が得られること、など任意に設定できる。なお、割当比率ｗｃｊの算出方法は、上記の方法に限られず、単体法や内点法などの任意の解法を利用できる。
【０１１０】
割当比率算出部１０９は、各ストレージ組合せＣｊの割当比率ｗｃｊを算出した後、その割当比率ｗｃｊに応じたハッシュ範囲を算出し、割当比率ｗｃｊ及びハッシュ範囲を割当比率テーブル１１０に格納する。
【０１１１】
次に、本実施形態に係る管理装置３による割当比率ｗｃｊの更新処理について、図１５を参照して説明する。図１５は、本実施形態に係る管理装置３による割当比率ｗｃｊの更新処理を示すフローチャートである。なお、図１５のフローチャートにおけるステップＳ２１〜Ｓ２５及び管理装置３の通常動作は、第１実施形態と同様である。
【０１１２】
本実施形態では、ステップＳ２５の後、ストレージ管理部１０１は、割当比率算出部１０９及び使用頻度算出部１１２に、割当比率ｗｃｊの算出処理を実行させる。
【０１１３】
上述の通り、割当比率算出部１０９は、使用頻度算出部１１２と協働して、損失確率Ｐｌｏｓｔが最小となり、かつ、各ストレージ＃ｉの使用頻度Ｕｉが等しくなる、各ストレージ組合せＣｊの割当比率ｗｃｊ及びハッシュ範囲を算出し、割当比率テーブル１１０に格納する（ステップＳ２７）。これにより、割当比率ｗｃｊ及びハッシュ範囲が更新される。
【０１１４】
管理装置３は、以上の更新処理を、所定の時間間隔で実行してもよいし、管理装置３のユーザから入力された実行命令に従って実行してもよい。また、ストレージ管理部１０１は、更新処理の実行後に、更新前の割当比率ｗｃｊに従って格納したデータを、更新後の割当比率ｗｃｊ′に従って格納し直してもよい。
【０１１５】
以上説明した通り、本実施形態に係る管理装置３は、損失確率Ｐｌｏｓｔが最小となるように、各ストレージ組合せＣｊの割当比率ｗｃｊを更新する。これにより、受信データの損失を抑制することができる。
【０１１６】
また、本実施形態に係る管理装置３は、各ストレージ＃ｉの使用頻度Ｕｉが等しくなるように、各ストレージ組合せＣｊの割当比率ｗｃｊを更新する。これにより、各ストレージ＃ｉの使用頻度Ｕｉを均一化することができる。
【０１１７】
一般に、同一のストレージ＃ｉが集中的に使用されると、そのストレージ＃ｉの状態が劣化し、故障確率Ｐｉが大きくなる。本実施形態では、各ストレージ＃ｉの使用頻度Ｕｉが均一化されるため、上記のようなストレージ＃ｉの劣化を抑制することができる。
【０１１８】
なお、本実施形態において、制約条件は、各ストレージ＃ｉの使用頻度Ｕｉが等しいこと、に限られない。例えば、制約条件は、全てのストレージ＃ｉの使用頻度Ｕｉが所定値以下であること、であってもよいし、各ストレージ＃ｉの使用頻度Ｕｉの分散や標準偏差が所定値以下であること、であってもよい。
【０１１９】
（第３実施形態）
第３実施形態に係るストレージシステムについて、図１６〜図１９を参照して説明する。図１６は、本実施形態に係るストレージシステムの概要を説明する図である。
【０１２０】
上述の各実施形態では、故障確率Ｐｃｊが高いストレージ組合せＣｊの割当比率ｗｃｊを小さくすることにより、損失確率Ｐｌｏｓｔを低減する管理装置３について説明した。これに対して、本実施形態に係る管理装置３は、図１６に示すように、ストレージ組合せＣｊの故障確率Ｐｃｊが高い場合、そのストレージ組合せＣｊに含まれるストレージ＃ｉを置換することにより、損失確率Ｐｌｏｓｔを低減する。図１６の例では、ストレージ組合せＣ２のストレージ＃３が、ストレージ＃５に置換されている。
【０１２１】
ここで、図１７は、本実施形態に係る管理装置３の機能構成の一例を示す図である。図１７に示すように、この管理装置３は、割当比率算出部１０９及び旧割当比率テーブル１１１の代わりに、ストレージ組合せ生成部１１４と、旧ストレージ組合せテーブル１１５と、を備える。他の構成は、第１実施形態と同様である。
【０１２２】
ストレージ組合せ生成部１１４は、各ストレージ＃ｉの故障確率Ｐｉに基づいて、元のストレージ組合せＣｊから、新たなストレージ組合せＣｊ′を生成する。より詳細には、ストレージ組合せ生成部１１４は、元のストレージ組合せＣｊに含まれるストレージ＃ｉのうち、故障確率Ｐｉが最も高いストレージ＃ｉｍａｘを、他のストレージ＃ｉ′に置換する。これにより、他のストレージ＃ｉ′を含む新たなストレージ組合せＣｊ′が生成される。
【０１２３】
ストレージ組合せ生成部１１４は、他のストレージ＃ｉ′として、ストレージ＃ｉｍａｘよりも故障確率Ｐｉが低いストレージ＃ｉを選択する。すなわち、他のストレージ＃ｉ′の故障確率Ｐｉ′は、ストレージ＃ｉｍａｘの故障確率Ｐｉｍａｘよりも低い。ストレージ組合せ生成部１１４は、このようなストレージ＃ｉ′を、ストレージ故障確率テーブル１０５を参照して選択する。
【０１２４】
こうして生成された新たなストレージ組合せＣｊ′の故障確率Ｐｃｊ′は、元のストレージ組合せＣｊの故障確率Ｐｃｊよりも低くなる。これは、故障確率Ｐｃｊが、ストレージ組合せＣｊに含まれる各ストレージ＃ｉの故障確率Ｐｉの積、和、及び最大値のいずれの場合であっても同様である。
【０１２５】
例えば、図１６の例では、元のストレージ組合せＣ２には、ストレージ＃１，＃３，＃７が含まれ、新たなストレージ組合せＣ２′には、ストレージ＃１，＃５，＃７が含まれる。すなわち、ストレージ＃３がストレージ＃ｉｍａｘに相当し、ストレージ＃５がストレージ＃ｉ′に相当する。したがって、故障確率Ｐ５は、故障確率Ｐ３より低い。
【０１２６】
例えば、Ｐ３＝０．２、Ｐ５＝０．１とすると、元のストレージ組合せＣ２の故障確率Ｐｃ２はＰ１×０．２×Ｐ７、新たなストレージ組合せＣ２′の故障確率Ｐｃ２′はＰ１×０．１×Ｐ７となり、故障確率が小さくなっていることがわかる。
【０１２７】
ストレージ組合せ生成部１１４は、生成した新たなストレージ組合せＣｊ′を、ストレージ組合せテーブル１０６に格納する。これにより、元のストレージ組合せＣｊが、新たなストレージ組合せＣｊ′に更新される。
【０１２８】
旧ストレージ組合せテーブル１１５は、ストレージ組合せ生成部１１４により更新される前のストレージ組合せＣｊを格納する。旧ストレージ組合せテーブル１１５は、更新前のストレージ組合せＣｊに従ってストレージ群に格納されたデータを、更新後のストレージ組合せＣｊ′に従ってストレージ群に格納し直すために利用される。
【０１２９】
次に、本実施形態に係る管理装置３によるストレージ組合せＣｊの更新処理について、図１８及び図１９を参照して説明する。図１８は、本実施形態に係る管理装置３によるストレージ組合せＣｊの更新処理を示すフローチャートである。なお、図１８のフローチャートにおけるステップＳ２１〜Ｓ２４及び管理装置３の通常動作は、第１実施形態と同様である。
【０１３０】
本実施形態では、故障確率Ｐｃｊが閾値Ｐｔｈ１より大きいストレージ組合せＣｊがあった場合（ステップＳ２４のＹＥＳ）、ストレージ管理部１０１は、ストレージ組合せテーブル１０６を、旧ストレージ組合せ１１５にコピーする（ステップＳ２８）。そして、ストレージ管理部１０１は、ストレージ組合せ生成部１１４に、新たなストレージ組合せＣｊ′の生成処理を実行させる。
【０１３１】
ストレージ組合せ生成部１１４は、ストレージ管理部１０１からの要求に応じて、新たなストレージ組合せＣｊ′の生成処理を実行する（ステップＳ２９）。その後、ストレージ管理部１０１は、更新処理を終了させる。
【０１３２】
図１９は、ストレージ組合せ生成部１１４によるストレージ組合せの生成処理を示すフローチャートである。図１９に示す処理は、図１８におけるステップＳ２９に相当する。したがって、図１９のステップＳ２９１は、図１８のステップＳ１８の後に実行される。以下では、故障確率Ｐｃｊが閾値Ｐｔｈ１より大きいストレージ組合せＣｊが１つの場合を例に説明する。
【０１３３】
図１９に示すように、まず、ストレージ組合せ生成部１１４は、ストレージ組合せテーブル１０６を参照して、ストレージ組合せＣｊに含まれる各ストレージ＃ｉを特定し、ストレージ故障確率テーブル１０５を参照して、特定された各ストレージ＃ｉの中で故障確率Ｐｉが最大のストレージ＃ｉｍａｘを特定する（ステップＳ２９１）。
【０１３４】
次に、ストレージ組合せ生成部１１４は、変数ｋを１に初期化する（ステップＳ２９２）。変数ｋは、ストレージ＃ｉｍａｘを、ストレージ故障確率Ｐｉが何番目に小さいストレージ＃ｉに置換するかを示す変数である。
【０１３５】
続いて、ストレージ組合せ生成部１１４は、ストレージ故障確率テーブル１０５を参照して、全てのストレージ＃ｉの中で故障確率Ｐｉがｋ番目に小さいストレージ＃ｍｉｎｋを特定する（ステップＳ２９３）。ここでは、故障確率Ｐｉが最小のストレージ＃ｍｉｎ１が特定される。
【０１３６】
そして、ストレージ組合せ生成部１１４は、ストレージ＃ｉｍａｘの故障確率Ｐｉｍａｘが、ストレージ＃ｍｉｎｋの故障確率Ｐｍｉｎｋ以下であるか判定する（ステップＳ２９４）。
【０１３７】
故障確率Ｐｉｍａｘが故障確率Ｐｍｉｎｋ以下の場合（ステップＳ２９４のＹＥＳ）、ストレージ組合せ生成部１１４は、生成処理を終了する。これは、故障確率Ｐｉｍａｘが故障確率Ｐｍｉｎｋ以下の場合とは、ストレージ＃ｉｍａｘより故障確率Ｐｉが低いストレージ＃ｉが存在しない場合に相当するためである。
【０１３８】
一方、故障確率Ｐｉｍａｘが故障確率Ｐｍｉｎｋより大きい場合（ステップＳ２９４のＮＯ）、ストレージ組合せ生成部１１４は、ストレージ組合せテーブル１０５を参照して、元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれるか判定する（ステップＳ２９５）。
【０１３９】
元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれる場合（ステップＳ２９５のＹＥＳ）、ストレージ組合せ生成部１１４は、変数ｋを１大きくする（ステップＳ２９６）。その後、生成処理はステップＳ２９３に戻り、ストレージ組合せ生成部１１４は、新たなストレージ＃ｍｉｎｋを特定する（ステップＳ２９３）。
【０１４０】
すなわち、図１９の例では、元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれる場合、ストレージ＃ｉｍａｘとストレージ＃ｍｉｎｋとは置換されない。これは、ストレージ＃ｉｍａｘをストレージ＃ｍｉｎｋに置換すると、ストレージ組合せＣｊ′に含まれるストレージ＃ｉの数が１つ減ってしまうためである。
【０１４１】
ここでは、ストレージシステムの冗長性を維持するために、ストレージ組合せＣｊに含まれるストレージ＃ｉの数は一定であることを想定している。このため、ストレージ組合せＣｊ′に含まれるストレージ＃ｉの数が減少する場合には、ストレージ組合せ生成部１１４は、ストレージ＃ｉｍａｘとストレージ＃ｍｉｎｋとを置換しない。
【０１４２】
しかしながら、ストレージ組合せＣｊに含まれるストレージ＃ｉの数が減ってもよい場合には、元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれる場合であっても、ストレージ組合せ生成部１１４は、ストレージ＃ｉｍａｘとストレージ＃ｍｉｎｋとを置換してもよい。すなわち、元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれる場合（ステップＳ２９５のＹＥＳ）であっても生成処理がステップＳ２９７に進んでもよい。
【０１４３】
このような場合として、例えば、ストレージシステムの冗長性よりもデータの損失確率の低減の方が重要な場合や、ストレージシステムに十分な冗長性が確保されており、ストレージ組合せＣｊに含まれるストレージ＃ｉが１つ減っても問題にならない場合などが想定される。
【０１４４】
一方、元のストレージ組合せＣｊにストレージ＃ｍｉｎｋが含まれない場合（ステップＳ２９５のＮＯ）、ストレージ組合せ生成部１１４は、ストレージ組合せＣｊのストレージ＃ｉｍａｘをストレージ＃ｍｉｎｋに置換して、新たなストレージ組合せＣｊ′を生成する（ステップＳ２９７）。
【０１４５】
その後、ストレージ組合せ生成部１１４は、新たなストレージ組合せＣｊ′を組合せ故障確率算出部１０７に渡し、組合せ故障確率算出部１０７が算出したストレージ組合せＣｊ′の故障確率Ｐｃｊ′を受け取る。そして、ストレージ組合せ生成部１１４は、組合せ故障確率テーブル１０８を参照して、故障確率Ｐｃｊ′が、故障確率Ｐｃｊより所定の閾値Ｐｔｈ２以上小さいか判定する（ステップＳ２９８）。
【０１４６】
故障確率Ｐｃｊ′が故障確率Ｐｃｊより閾値Ｐｔｈ２以上小さくない場合（ステップＳ２９８のＮＯ）、ストレージ組合せ生成部１１４は、生成処理を終了する。これは、故障確率Ｐｃｊ′が故障確率Ｐｃｊより閾値Ｐｔｈ２以上小さくない場合には、ストレージ組合せＣｊを更新しても、故障確率Ｐｃｊの低減効果が小さいためである。
【０１４７】
このような場合に更新処理を実行しないことにより、更新頻度を抑制し、管理装置３の動作の安定性を向上させたり、管理装置３の計算量を抑制したりすることができる。なお、閾値Ｐｔｈ２は、任意に設定可能である。
【０１４８】
一方、故障確率Ｐｃｊ′が故障確率Ｐｃｊより閾値Ｐｔｈ２以上小さい場合（ステップＳ２９８のＹＥＳ）、ストレージ組合せ生成部１１４は、新たなストレージ組合せＣｊ′をストレージ組合せテーブル１０６に格納し、元のストレージ組合せＣｊを、新たなストレージ組合せＣｊ′に更新する（ステップＳ２９９）。その後、生成処理及び更新処理は終了する。
【０１４９】
管理装置３は、以上の更新処理を、所定の時間間隔で実行してもよいし、管理装置３のユーザから入力された実行命令に従って実行してもよい。また、ストレージ管理部１０１は、更新処理の実行後に、更新前のストレージ組合せＣｊに従って格納したデータを、更新後のストレージ組合せＣｊ′に従って格納し直してもよい。
【０１５０】
さらに、故障確率Ｐｃｊが閾値Ｐｔｈ１より大きいストレージ組合せＣｊが複数存在する場合には、ストレージ組合せ生成部１１４は、ステップＳ２９１〜ステップＳ２９９の生成処理を、各ストレージ組合せＣｊに対して実行すればよい。
【０１５１】
以上説明した通り、本実施形態に係る管理装置３は、ストレージ組合せＣｊに含まれる故障確率Ｐｉが高いストレージ＃ｉを、故障確率Ｐｉが低い他のストレージ＃ｉに置換することにより、新たなストレージ組合せＣｊ′を生成する。そして、管理装置３は、元のストレージ組合せＣｊを新たなストレージ組合せＣｊ′に更新する。
【０１５２】
これにより、故障確率Ｐｃｊが高いストレージ組合せＣｊを、故障確率Ｐｃｊ′が低いストレージ組合せＣｊ′に更新できるため、データの損失確率を低減し、受信データの損失を抑制することができる。
【０１５３】
なお、図１７の例では、管理装置３は、割当比率算出部１０９及び旧割当比率テーブル１１１を備えないが、これらを備える構成も可能である。この場合、管理装置３は、割当比率ｗｃｊの更新処理と、ストレージ組合せＣｊの更新処理と、をそれぞれ実行可能となる。管理装置３は、割当比率ｗｃｊの更新処理と、ストレージ組合せＣｊの更新処理と、を連続して実行してもよいし、それぞれ異なるタイミングで実行してもよい。
【０１５４】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組合せることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組合せてもよい。
【符号の説明】
【０１５５】
１：ストレージ、２：通信制御装置、３：ストレージ管理装置、４：ネットワーク、５：クライアント、３０：コンピュータ、３１：ＣＰＵ、３２：入力装置、３３：表示装置、３４：通信装置、３５：記憶装置、３６：バス、１０１：ストレージ管理部、１０２：ハッシュ値算出部、１０３：ハッシュ値テーブル、１０４：ストレージ故障確率算出部、１０５：ストレージ故障確率テーブル、１０６：ストレージ組合せテーブル、１０７：組合せ故障確率算出部、１０８：組合せ故障確率テーブル、１０９：割当比率算出部、１１０：割当比率テーブル、１１１：旧割当比率テーブル、１１２：使用頻度算出部、１１３：使用頻度テーブル、１１４：ストレージ組合せ生成部、１１５：旧ストレージ組合せテーブル
【図１】
0006499038.tif 000007
【図２】
0006499038.tif 000008
【図３】
0006499038.tif 000009
【図４】
0006499038.tif 000010
【図５】
0006499038.tif 000011
【図６】
0006499038.tif 000012
【図７】
0006499038.tif 000013
【図８】
0006499038.tif 000014
【図９】
0006499038.tif 000015
【図１０】
0006499038.tif 000016
【図１１】
0006499038.tif 000017
【図１２】
0006499038.tif 000018
【図１３】
0006499038.tif 000019
【図１４】
0006499038.tif 000020
【図１５】
0006499038.tif 000021
【図１６】
0006499038.tif 000022
【図１７】
0006499038.tif 000023
【図１８】
0006499038.tif 000024
【図１９】
0006499038.tif 000025