(57)【要約】【課題】データロスト率の低減を図る。【解決手段】ストレージ装置１は、制御部１ａと、記憶装置群１ｂを備える。記憶装置群１ｂは、複数の記憶装置を含む。制御部１ａは、記憶装置群１ｂ内の記憶装置の動作監視を行って記憶装置の故障検出を行う。制御部１ａは、第１のボリュームに属する記憶装置の故障を検出した場合、第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ第１のボリュームの要求性能を満たす第２のボリュームを、記憶装置群に残存する稼働中記憶装置から生成する。そして、制御部１ａは、第１のボリュームに配置されるデータを第２のボリュームへ移動する。【選択図】図１
2020113113.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置群と、
前記記憶装置群に生成される第１のボリュームに属する記憶装置の故障を検出した場合、前記第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ前記第１のボリュームの要求性能を満たす第２のボリュームを、前記記憶装置群に残存する稼働中記憶装置から生成し、前記第１のボリュームに配置されているデータを前記第２のボリュームへ移動する制御部と、
を有するストレージ装置。
【請求項２】
前記制御部は、前記記憶装置群に生成される各ボリュームの前記アクセス頻度の総和を前記記憶装置群の実質稼働率から減算して前記余力稼働率を算出する請求項１記載のストレージ装置。
【請求項３】
前記制御部は、前記第２のボリュームの候補を複数生成可能な場合、前記余力稼働率が最小の候補を前記第２のボリュームとして選択する請求項１記載のストレージ装置。
【請求項４】
前記制御部は、前記稼働中記憶装置から前記第２のボリュームの生成が不可の場合、前記記憶装置群内の非稼働記憶装置から前記第２のボリュームを生成する請求項１記載のストレージ装置。
【請求項５】
前記制御部は、前記記憶装置群内に前記非稼働記憶装置が存在しない場合、前記記憶装置群内の空き記憶領域に前記第１のボリュームに含まれる前記データを退避させる請求項４記載のストレージ装置。
【請求項６】
コンピュータが、
記憶装置群に生成される第１のボリュームに属する記憶装置の故障を検出した場合、
前記第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ前記第１のボリュームの要求性能を満たす第２のボリュームを、前記記憶装置群に残存する稼働中記憶装置から生成し、
前記第１のボリュームに配置されているデータを前記第２のボリュームへ移動する、
処理を実行するデータ配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置およびデータ配置方法に関する。
【背景技術】
【０００２】
ストレージ装置は、複数の記憶装置を備えて、情報処理で扱う大量のデータを記録管理する。記憶装置には、例えば、ＨＤＤ（Hard Disk Drive）や、ＨＤＤよりも高速なＳＳＤ（Solid State Drive）が用いられる。
【０００３】
また近年では、例えば、観測データのような長期保存するコールドデータ（cold data）の記録に特化したストレージ装置が注目されている。
このようなストレージ装置は、データの追記および読み出しは行われるが、通常、記憶装置に格納されている既存データの書き換えは行われない。また、コールドデータへのアクセス頻度は少ないため消費電力や発熱も低く、このため記憶装置を高密度に実装できるので効率のよいスペース活用が可能である。
【０００４】
ストレージ装置の従来技術としては、例えば、アクセス頻度情報の格納順序にもとづいて、磁気ディスクに格納されている複数のファイルを索引域に近い位置から再配置する技術が提案されている。また、論理デバイス内でデータの最適配置を立案し、立案された計画にしたがって論理デバイス内のデータの配置を行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３４１２号公報
【特許文献２】特開２００６−３３１４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のようなコールドデータの記録に特化したストレージ装置では、通常、記憶装置に故障が生じた場合でも保守交換は前提としておらず、残存する記憶装置で運用が継続される。また、記憶装置に対するデータの配置（格納）としては、複数の記憶装置が１つのボリュームを形成してボリューム単位でデータが配置される。
【０００７】
したがって、ボリュームを形成している複数の記憶装置のうちから故障記憶装置が発生した場合、その故障記憶装置は保守交換されず、故障記憶装置が残ったまま運用が継続することになる。このため、故障記憶装置が属しているボリュームに配置されていたデータのデータロスト率が増加するという問題がある。
【０００８】
１つの側面では、本発明は、データロスト率の低減を図ったストレージ装置およびデータ配置方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、ストレージ装置が提供される。ストレージ装置は、記憶装置群と、記憶装置群に生成される第１のボリュームに属する記憶装置の故障を検出した場合、第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ第１のボリュームの要求性能を満たす第２のボリュームを、記憶装置群に残存する稼働中記憶装置から生成し、第１のボリュームに配置されているデータを第２のボリュームへ移動する制御部とを有する。
【００１０】
また、上記課題を解決するために、コンピュータが上記ストレージ装置と同様の制御を実行するデータ配置方法が提供される。
【発明の効果】
【００１１】
１側面によれば、データロスト率の低減が可能になる。
【図面の簡単な説明】
【００１２】
【図１】ストレージ装置の一例を説明するための図である。
【図２】ストレージシステムの構成の一例を示す図である。
【図３】制御ノードのハードウェア構成の一例を示す図である。
【図４】ボリューム生成要求があった場合のストレージ装置の動作の一例を示すフローチャートである。
【図５】記憶装置が故障した場合のストレージ装置の動作の一例を示すフローチャートである。
【図６】記憶装置ユニットが追加された場合のストレージ装置の動作の一例を示すフローチャートである。
【図７】ボリューム生成要求を受けてボリュームを生成する場合の動作の一例を示す図である。
【図８】ボリューム生成要求を受けてボリュームを生成する場合の動作の一例を示す図である。
【図９】記憶装置が故障した場合の動作の一例を示す図である。
【図１０】記憶装置が故障した場合の動作の一例を示す図である。
【図１１】記憶装置が故障した場合の動作の一例を示す図である。
【図１２】記憶装置が故障した場合の動作の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について図１を用いて説明する。図１はストレージ装置の一例を説明するための図である。ストレージ装置１は、制御部１ａと、記憶装置群１ｂを備える。
【００１４】
記憶装置群１ｂは、複数の記憶装置を含む。制御部１ａは、記憶装置群１ｂに第１のボリュームを生成して第１のボリュームにデータを配置する。また、制御部１ａは、記憶装置群１ｂ内の記憶装置の動作監視を行って記憶装置の故障検出を行う。
【００１５】
記憶装置群１ｂに生成される第１のボリュームに属する記憶装置の故障が検出されたとする。この場合、制御部１ａは、第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ第１のボリュームの要求性能を満たす第２のボリュームを、記憶装置群に残存する稼働中記憶装置から生成する。そして、制御部１ａは、第１のボリュームに配置されるデータを第２のボリュームへ移動する。
【００１６】
図１に示す例を用いて動作について説明する。ストレージ装置１の記憶装置群１ｂには、複数の記憶装置ｄ１、・・・、ｄ１８が含まれる。また、記憶装置ｄ１、・・・、ｄ１８のうち、記憶装置ｄ１、・・・、ｄ４および記憶装置ｄ１３、・・・、ｄ１８は稼働中であり、記憶装置ｄ５、・・・、ｄ１２は非稼働とする。
【００１７】
〔ステップＳ１〕制御部１ａは、記憶装置ｄ１、・・・、ｄ１８のうち、記憶装置ｄ１、・・・、ｄ４にボリュームＶ１を生成し、ボリュームＶ１にデータを配置している。
〔ステップＳ２〕制御部１ａは、ボリュームＶ１に属する記憶装置ｄ３の故障を検出したとする。この場合、制御部１ａは、ボリュームＶ１のアクセス頻度以上の余力稼働率を有し、かつボリュームＶ１の要求性能を満たすボリュームを構成可能な記憶装置を、残存する稼働中の記憶装置ｄ１３、・・・、ｄ１８のうちから探索する（探索する際の各条件の内容については後述する）。
【００１８】
〔ステップＳ３〕制御部１ａは、稼働中記憶装置ｄ１３、・・・、ｄ１８のうち、記憶装置ｄ１５、・・・、ｄ１８で生成したボリュームが上記の条件を満たすものと判定した場合、記憶装置ｄ１５、・・・、ｄ１８が属するボリュームＶ２を生成する。そして、制御部１ａは、ボリュームＶ１に配置されているデータをボリュームＶ２へ移動（コピー）する。
【００１９】
このように、ストレージ装置１では、第１のボリュームに属する記憶装置が故障した場合、第１のボリュームのアクセス頻度と要求性能を満たす第２のボリュームを稼働中の残存記憶装置から生成し、第１のボリュームから第２のボリュームへデータを移動する。これにより、ストレージ装置１は、記憶装置に故障が発生した場合でもデータロスト率の低減を図ることが可能になる。
【００２０】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態のストレージ装置は、例えば、コールドデータの記録を行い、また記憶装置に故障が生じた場合でも保守交換はせずに、残存する記憶装置で運用を継続する装置である。最初にシステム構成について説明する。
【００２１】
図２はストレージシステムの構成の一例を示す図である。ストレージシステムｓｙ１は、サーバ２０およびストレージ装置１０を備える。
ストレージ装置１０は、ネットワークスイッチｓｗ、制御ノード１１および記憶装置群１２０を備える。記憶装置群１２０は、記憶装置ユニット１２−１、・・・、１２−ｎ（総称する場合は記憶装置ユニット１２と呼ぶ）を含む。
【００２２】
記憶装置ユニット１２は、複数の記憶装置（ディスク）を含む。なお、制御ノード１１は、図１の制御部１ａの機能を実現し、記憶装置群１２０は、図１の記憶装置群１ｂの機能を実現する。
【００２３】
ネットワークスイッチｓｗには、サーバ２０、制御ノード１１および記憶装置群１２０が接続される。
制御ノード１１は、アクセス元のサーバ２０からの指示にもとづき、ネットワークスイッチｓｗを介して所定の記憶装置ユニット１２にアクセスし、記憶装置ユニット１２のＩ／Ｏ制御等を行う。
【００２４】
また、記憶装置ユニット１２内では、記憶装置の冗長化が行われ、例えば、記憶装置ユニット１２に対してＲＡＩＤ（Redundant Arrays of Inexpensive Disks）６が適用される。ＲＡＩＤ６は、２種のパリティを異なる記憶装置に配置するダブルパリティを備え、同一ＲＡＩＤグループ内の記憶装置の２台の故障までを救済できるようにしたディスクアレイ機構である。また、記憶装置ユニット１２内に生成されるボリューム毎にＲＡＩＤが適用される。
【００２５】
ここで、記憶装置ユニット１２内の記憶装置をＮ台とする。また、記憶装置ユニット１２では、記憶装置が高密度実装されるため、電源や放熱等の制約から、すべての記憶装置を同時に稼働させることはなく、記憶装置ユニット１２に含まれる複数の記憶装置のうちＰ台を同時稼働できるとする。さらに、記憶装置ユニット１２に含まれる複数の記憶装置のうち、故障して稼働していない記憶装置がＦ台あるとする（故障記憶装置には通電はない）。
【００２６】
このとき、記憶装置ユニット１２の実質稼働率Ｒｃは、以下の式（１）で算出される。
Ｒｃ＝Ｐ／（Ｎ−Ｆ）・・・（１）
なお、式（１）から故障記憶装置の台数が増えるほど、残存記憶装置の稼働率が上がることになる。
【００２７】
＜ハードウェア＞
図３は制御ノードのハードウェア構成の一例を示す図である。制御ノード１１は、プロセッサ（コンピュータ）１００によって制御ノード全体が制御されている。
【００２８】
プロセッサ１００には、バス１０３を介して、メモリ１０１および複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
メモリ１０１は、制御ノード１１の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。
【００３０】
また、メモリ１０１は、制御ノード１１の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００３１】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、保守端末が接続可能である。
【００３２】
また、入出力インタフェース１０２は、プロセッサ１００からの命令にしたがって制御ノード１１の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００３３】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
さらにまた、入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００３４】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００３５】
ネットワークインタフェース１０４は、ネットワークスイッチｓｗを介してネットワークの通信インタフェース制御を行い、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等を使用することもできる。ネットワークインタフェース１０４で受信されたデータは、メモリ１０１やプロセッサ１００に出力される。
【００３６】
以上のようなハードウェア構成によって、制御ノード１１の処理機能を実現することができる。例えば、制御ノード１１は、プロセッサ１００がそれぞれ所定のプログラムを実行することで本発明のストレージ制御を行うことができる。
【００３７】
制御ノード１１は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。制御ノード１１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００３８】
例えば、制御ノード１１に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【００３９】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４０】
＜フローチャート＞
次に動作について、ボリューム生成要求があった場合、記憶装置が故障した場合、および記憶装置ユニットが追加された場合の事象に分けて、図４から図６のフローチャートを用いて説明する。
【００４１】
図４はボリューム生成要求があった場合のストレージ装置の動作の一例を示すフローチャートである。
〔ステップＳ２１〕制御ノード１１は、サーバ２０、またはストレージ装置１０に接続される保守端末等から送信されたボリューム生成要求を受信する。
【００４２】
〔ステップＳ２２〕制御ノード１１は、要求されたボリュームのアクセス頻度（Ｌ）と要求性能（Ｒ）を検出する。
ここで、アクセス頻度（Ｌ）は、ボリュームに属する複数の記憶装置のうち、時間当たり何台の記憶装置が同時稼働しているかを示す指標である。例えば、１ボリュームに１０台の記憶装置が属し、そのうち５台が同時稼働している場合、アクセス頻度は０．５または５０％と表せる。
【００４３】
要求性能（Ｒ）は、ボリュームの読み出しスループットＴ［ＭＢ／ｓ］を示す指標であり、記憶装置にデータをストライピングして書き込む台数に、記憶装置からデータを読み出す際の読み出しスループットを乗算した値になる。
【００４４】
例えば、ＲＡＩＤ６でＮ台の記憶装置を利用する場合、Ｎ−２台の記憶装置にデータをストライピングして書き込むことになるため（残り２台はパリティ用）、この場合、要求性能（Ｒ）は、（Ｎ−２）×Ｔ［ＭＢ／ｓ］と算出される。
【００４５】
〔ステップＳ２３〕制御ノード１１は、現在稼働している複数の記憶装置ユニットから、要求ボリュームを生成可能な記憶装置ユニット候補の探索を行う。
〔ステップＳ２４〕制御ノード１１は、要求ボリューム分の空きがあり、余力稼働率がアクセス頻度（Ｌ）を上回り、さらに要求性能（Ｒ）を満たすボリュームが構成可能な条件を満たす記憶装置ユニット候補を探索する。条件を満たす記憶装置ユニット候補がある場合はステップＳ２５へ処理が進み、条件を満たす記憶装置ユニット候補がない場合はステップＳ２７へ処理が進む。
【００４６】
ここで、装置稼働率および余力稼働率について説明する。装置稼働率は、各ボリュームのアクセス頻度（Ｌ）の合計値である。例えば、記憶装置ユニット内に３つのボリュームが生成され、各ボリュームのアクセス頻度（Ｌ）が１％、２％および３％である場合、この記憶装置ユニットの装置稼働率は、６％（＝１％＋２％＋３％）となる。
【００４７】
また、余力稼働率は、実質稼働率から装置稼働率を減算した値である。例えば、１つの記憶装置ユニットの実質稼働率が２０％であり、該記憶装置ユニットの装置稼働率が６％の場合、余力稼働率は１４％（＝２０％−６％）となる。
【００４８】
〔ステップＳ２５〕制御ノード１１は、上記条件を満たす記憶装置ユニット候補が複数ある場合、複数の候補のうち余力稼働率が最小の記憶装置ユニットを選択する。ここで、余力稼働率が最小の記憶装置ユニットを選択しておけば、新たにボリュームの生成要求を受けた場合であっても、残存する記憶装置ユニットから該ボリュームを生成できる可能性を高めることができる。
【００４９】
〔ステップＳ２６〕制御ノード１１は、選択した記憶装置ユニットのうちの記憶装置に対して要求性能（Ｒ）を満たす台数分を使用したボリュームを生成する。
〔ステップＳ２７〕制御ノード１１は、現在稼働していない非稼働（未使用）の記憶装置ユニットがあるか否かを判定する。非稼働の記憶装置ユニットがある場合はステップＳ２８へ処理が進み、非稼働の記憶装置ユニットがない場合はボリューム生成不可として処理を終了する。
【００５０】
〔ステップＳ２８〕制御ノード１１は、非稼働の記憶装置ユニットにボリュームを生成する。
上記のように、稼働中記憶装置から新たなボリュームを生成するので、残存する記憶装置（残存ドライブ）を効率よく活用することができ、また、ほぼ全数の稼働中ドライブが故障するまで使い続けることができるため、設備利用効率を高めることができる。
【００５１】
図５は記憶装置が故障した場合のストレージ装置の動作の一例を示すフローチャートである。
〔ステップＳ３１〕制御ノード１１は、記憶装置ユニット１２に含まれる複数の記憶装置のうちで、故障した記憶装置を検出する（故障記憶装置の検出）。
【００５２】
〔ステップＳ３２〕制御ノード１１は、故障記憶装置が属するボリュームのアクセス頻度（Ｌ）と要求性能（Ｒ）を検出する。
〔ステップＳ３３〕制御ノード１１は、現在稼働している複数の記憶装置ユニットから、故障記憶装置が属するボリュームで処理されていたデータの移動先候補となる移動先記憶装置ユニット候補の探索を行う。
【００５３】
〔ステップＳ３４〕制御ノード１１は、故障記憶装置が属している移動元ボリューム分の空きがあり、余力稼働率がアクセス頻度（Ｌ）を上回り、さらに要求性能（Ｒ）を満たすボリュームが構成可能な条件を満たす移動先記憶装置ユニット候補を探索する。移動先記憶装置ユニット候補がある場合はステップＳ３５へ処理が進み、移動先記憶装置ユニット候補がない場合はステップＳ３９へ処理が進む。
【００５４】
〔ステップＳ３５〕制御ノード１１は、上記条件を満たす移動先記憶装置ユニット候補が複数ある場合、余力稼働率が最小の記憶装置ユニットを選択する。
〔ステップＳ３６〕制御ノード１１は、選択した記憶装置ユニットのうちの記憶装置に対して要求性能（Ｒ）を満たす台数分を使用したボリュームを生成する。
【００５５】
〔ステップＳ３７〕制御ノード１１は、故障記憶装置が含まれるボリュームに配置されていたデータを、ステップＳ３６で生成した新たなボリュームへ移動する。
〔ステップＳ３８〕制御ノード１１は、故障記憶装置が含まれる移動元のボリュームを解放する。
【００５６】
〔ステップＳ３９〕制御ノード１１は、現在稼働していない非稼働の記憶装置ユニットがあるか否かを判定する。非稼働の記憶装置ユニットがある場合はステップＳ４０へ処理が進み、非稼働の記憶装置ユニットがない場合はステップＳ４１へ処理が進む。
【００５７】
〔ステップＳ４０〕制御ノード１１は、非稼働の記憶装置ユニットにボリュームを生成し、故障記憶装置が含まれるボリュームに配置されていたデータを、生成したボリュームに移動する。
【００５８】
〔ステップＳ４１〕制御ノード１１は、任意の空き記憶装置（記憶装置ユニット内の空き記憶領域）があるか否かを判定する。空き記憶装置がある場合はステップＳ４２へ処理が進み、空き記憶装置がない場合はステップＳ４３へ処理が進む。
【００５９】
〔ステップＳ４２〕制御ノード１１は、故障記憶装置の代わりに空き記憶装置を使用して、故障記憶装置の記憶領域に配置されていたデータを空き記憶装置に退避させてデータを分散配置する。
【００６０】
例えば、記憶装置ユニットＡのうちの記憶装置Ａ１、Ａ２、Ａ３でボリュームが生成されているときに記憶装置Ａ３が故障したとする。また、記憶装置ユニットＢのうちの記憶装置Ｂ１が空き記憶装置であったとする。
【００６１】
この場合、記憶装置Ａ３の代わりに記憶装置Ｂ１が使用できるとき、記憶装置ユニットＡ内の記憶装置Ａ１、Ａ２と、記憶装置ユニットＢ内の記憶装置Ｂ１が使用されて、当該ボリュームのデータが分散して配置される。
【００６２】
なお、分散配置状態での運用は、機能低下の可能性があるので、制御ノード１１では、退避データがある場合（データが複数の記憶装置ユニットに跨って分散配置されている場合）、例えば、アラーム通知を行って記憶装置の再構成を促すようにしてもよい。
【００６３】
〔ステップＳ４３〕制御ノード１１は、記憶装置ユニットの追加待機状態になる。この場合、制御ノード１１は、記憶装置ユニットの追加要求を示すアラーム等を発することができる。
【００６４】
図６は記憶装置ユニットが追加された場合のストレージ装置の動作の一例を示すフローチャートである。
〔ステップＳ５１〕制御ノード１１は、保守者によって追加された記憶装置ユニットを検出する。
【００６５】
〔ステップＳ５２〕制御ノード１１は、退避データがあるか否かを判定する。退避データがある場合はステップＳ５３へ処理が進み、退避データがない場合はステップＳ５４へ処理が進む。
【００６６】
〔ステップＳ５３〕制御ノード１１は、退避データを含むボリュームを、追加された記憶装置ユニットに展開する。なお、退避データが配置されていた記憶装置は解放されて元の空き記憶装置になる。
【００６７】
〔ステップＳ５４〕制御ノード１１は、運用継続を行う（記憶装置ユニットが追加されたことによる特段の処理はない）。
＜動作例＞
次に具体的な例を挙げて動作について、図７から図１２を用いて説明する。なお、以降の説明では、記憶装置１台につき１００ＭＢ／ｓの性能があり、ＲＡＩＤ６を適用するものとする。よってパリティ格納用の記憶装置は２台になる。例えば、６台の記憶装置の場合、そのうち２台はパリティ格納用になるため、実質的な性能は４００ＭＢ／ｓとなる。
【００６８】
図７、図８はボリューム生成要求を受けてボリュームを生成する場合の動作の一例を示す図である。
〔状態Ｓｔ１〕記憶装置ユニット１２ａは、記憶装置ａ１、・・・、ａ１８を含む。また、記憶装置ユニット１２ａには、ボリュームＶａ１、Ｖａ２、Ｖａ３、Ｖａ４が生成されている。ボリュームＶａ１は、Ｌ＝０．１であり、記憶装置ａ１、・・・、ａ４が属している。ボリュームＶａ２は、Ｌ＝０．２であり、記憶装置ａ５、・・・、ａ９が属している。
【００６９】
ボリュームＶａ３は、Ｌ＝０．１であり、記憶装置ａ１０、・・・、ａ１３が属している。ボリュームＶａ４は、Ｌ＝０．３であり、記憶装置ａ１４、・・・、ａ１８が属している。
【００７０】
記憶装置ユニット１２ｂは、記憶装置ｂ１、・・・、ｂ１８を含む。また、記憶装置ユニット１２ｂには、ボリュームＶｂ１が生成されている。ボリュームＶｂ１は、Ｌ＝０．３であり、記憶装置ｂ１、・・・、ｂ４が属している。なお、記憶装置ｂ５、・・・、ｂ１２および記憶装置ｂ１７、ｂ１８は、Ｒ＝３００ＭＢ／ｓを満たさないとする。
【００７１】
記憶装置ユニット１２ｃは、記憶装置ｃ１、・・・、ｃ１８を含む。また、記憶装置ユニット１２ｃには、ボリュームＶｃ１が生成されている。ボリュームＶｃ１は、Ｌ＝０．２であり、記憶装置ｃ１、・・・、ｃ４が属している。なお、記憶装置ｃ１０、ｃ１３は、Ｒ＝３００ＭＢ／ｓを満たさないとする。
【００７２】
〔状態Ｓｔ２〕制御ノード１１は、アクセス頻度（Ｌ）が０．４、要求性能（Ｒ）が３００ＭＢ／ｓの新たなボリュームの生成要求を受信したとする。
制御ノード１１は、記憶装置ユニット１２ｃのうち、記憶装置ｃ１４、・・・、ｃ１８が要求（Ｌ＝０．４、Ｒ＝３００ＭＢ／ｓ）を満たすことを検出したとする。この場合、制御ノード１１は、記憶装置ｃ１４、・・・、ｃ１８が属するボリュームＶｃ２を記憶装置ユニット１２ｃ内に生成する。
【００７３】
図９から図１２は記憶装置が故障した場合の動作の一例を示す図である。
〔状態Ｓｔ１１〕上述の状態Ｓｔ１と同じ記憶装置ユニット１２ａ、１２ｂ、１２ｃにおいて、記憶装置ユニット１２ａ内の記憶装置ａ１６が故障したとする。また、記憶装置ａ１６が属しているボリュームＶａ４は、Ｌ＝０．３、Ｒ＝２００ＭＢ／ｓとする。
【００７４】
〔状態Ｓｔ１２〕制御ノード１１は、記憶装置ユニット１２ｂ、１２ｃのうち、故障記憶装置が属しているボリューム分の空きがあり、余力稼働率がアクセス頻度（Ｌ）を上回り、さらに要求性能（Ｒ）を満たすボリュームが構成可能な条件を満たす移動先記憶装置ユニット候補を探索する。ここでは、制御ノード１１は、記憶装置ユニット１２ｂが条件を満たすことを検出したとする。
【００７５】
〔状態Ｓｔ１３〕制御ノード１１は、記憶装置ユニット１２ｂに含まれる記憶装置のうちから記憶装置ｂ５、・・・、ｂ９を用いて、移動先のボリュームとなるボリュームＶｂ２を生成する。そして、制御ノード１１は、ボリュームＶａ４のデータをボリュームＶｂ２へ移動する。
【００７６】
〔状態Ｓｔ１４〕制御ノード１１は、ボリュームＶａ４に属していた記憶装置ａ１４、ａ１５、ａ１７、ａ１８を解放して空き記憶装置にする。
以上説明したように、記憶装置に故障が生じた場合でも保守交換を前提としないストレージ装置に対して、故障が発生したボリューム（ＲＡＩＤセット）に配置されるデータを新たに生成したボリュームへ移動する制御を行うことにより、データロスト率の低減を図ることが可能になる。
【００７７】
また、このような制御が行われることで、保守交換を行わないという前提を継続することができるので、高密度実装を維持したまま作業コストの低減を図ることもできる。
さらに、故障記憶装置が発生した場合であっても、故障記憶装置が属していたボリュームから新たに生成されたボリュームへデータ配置が行われる。このため、ストレージ内において読み出し頻度が高いホット（Hot）領域が増えていくことになり、別途ホット領域用のストレージを要せずに、同一装置でシステムを構成することができる。
【００７８】
なお、上記では、コールドデータの記録を行い、故障時に保守交換はせずに残存記憶装置で運用を継続する装置に対して、本発明の機能を適用する例について説明したが、コールドデータだけでなく通常のデータ記録を行う装置や、保守交換を対象とする装置に対しても適用可能である。
【００７９】
上記で説明した本発明のストレージ装置１、１０の処理機能は、コンピュータによって実現することができる。この場合、ストレージ装置１、１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００８０】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【００８１】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【００８３】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【００８４】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【００８５】
（付記１）  記憶装置群と、
前記記憶装置群に生成される第１のボリュームに属する記憶装置の故障を検出した場合、前記第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ前記第１のボリュームの要求性能を満たす第２のボリュームを、前記記憶装置群に残存する稼働中記憶装置から生成し、前記第１のボリュームに配置されているデータを前記第２のボリュームへ移動する制御部と、
を有するストレージ装置。
【００８６】
（付記２）  前記制御部は、前記記憶装置群に生成される各ボリュームの前記アクセス頻度の総和を前記記憶装置群の実質稼働率から減算して前記余力稼働率を算出する付記１記載のストレージ装置。
【００８７】
（付記３）  前記制御部は、前記第２のボリュームの候補を複数生成可能な場合、前記余力稼働率が最小の候補を前記第２のボリュームとして選択する付記１記載のストレージ装置。
【００８８】
（付記４）  前記制御部は、前記稼働中記憶装置から前記第２のボリュームの生成が不可の場合、前記記憶装置群内の非稼働記憶装置から前記第２のボリュームを生成する付記１記載のストレージ装置。
【００８９】
（付記５）  前記制御部は、前記記憶装置群内に前記非稼働記憶装置が存在しない場合、前記記憶装置群内の空き記憶領域に前記第１のボリュームに含まれる前記データを退避させる付記４記載のストレージ装置。
【００９０】
（付記６）  コンピュータが、
記憶装置群に生成される第１のボリュームに属する記憶装置の故障を検出した場合、
前記第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ前記第１のボリュームの要求性能を満たす第２のボリュームを、前記記憶装置群に残存する稼働中記憶装置から生成し、
前記第１のボリュームに配置されているデータを前記第２のボリュームへ移動する、
処理を実行するデータ配置方法。
【００９１】
（付記７）  第１の記憶装置ユニットおよび第２の記憶装置ユニットを含む記憶装置群と、
前記第１の記憶装置ユニットに生成される第１のボリュームに属する記憶装置の故障を検出した場合、前記第１のボリュームのアクセス頻度以上の余力稼働率を有し、かつ前記第１のボリュームの要求性能を満たす第２のボリュームを、前記第２の記憶装置ユニット内の稼働中記憶装置から生成し、前記第１のボリュームに配置されているデータを前記第２のボリュームへ移動する制御部と、
を有するストレージ装置。
【符号の説明】
【００９２】
１  ストレージ装置
１ａ  制御部
１ｂ  記憶装置群
ｄ１、・・・、ｄ１８  記憶装置
Ｖ１、Ｖ２  ボリューム
【図１】
2020113113.tif 000003
【図２】
2020113113.tif 000004
【図３】
2020113113.tif 000005
【図４】
2020113113.tif 000006
【図５】
2020113113.tif 000007
【図６】
2020113113.tif 000008
【図７】
2020113113.tif 000009
【図８】
2020113113.tif 000010
【図９】
2020113113.tif 000011
【図１０】
2020113113.tif 000012
【図１１】
2020113113.tif 000013
【図１２】
2020113113.tif 000014