(57)【要約】【課題】障害が発生したディスクを代替させるＨＳを適切に選択できる。【解決手段】ＲＡＩＤ装置９は、複数のディスクで構成されるＲＡＩＤグループがレスポンスを優先する運用かバックアップを優先する運用かを、ＲＡＩＤグループのアクセス対象である論理ボリュームへのアクセス動作に基づいて判定するＲＡＩＤグループ運用判定部３４１と、ＲＡＩＤグループを構成するディスクの故障が検知された場合、ＲＡＩＤグループ運用判定部３４１によって判定された当該ＲＡＩＤグループの運用に基づいて、障害が検知されたディスクのＨＳを選択するＨＳ選択部３４２とを有する。【選択図】図１
2013020544.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶媒体で構成されるストレージグループの運用を、前記ストレージグループのアクセス対象である論理ボリュームへのアクセス動作に基づいて判定する判定部と、
ストレージグループを構成する記憶媒体の故障が検知された場合、前記判定部によって判定された当該ストレージグループの運用に基づいて、故障が検知された記憶媒体の代替記憶媒体を選択する選択部と
を有することを特徴とするストレージ装置。
【請求項２】
前記判定部は、前記論理ボリュームからのデータの読み出しおよび前記論理ボリュームへのデータの書き込みの回数を所定期間分カウントし、読み出しの回数が書き込みの回数より多い場合にレスポンスを優先する運用と判定することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記選択部は、前記判定部によって当該ストレージグループの運用がレスポンスを優先する運用であると判定された場合、故障が検知された記憶媒体が属するストレージグループで、最小の回転数と同一の回転数または当該回転数より大きい回転数であって最小の回転数に最も近い回転数を有する代替記憶媒体を選択することを特徴とする請求項１または請求項２に記載のストレージ装置。
【請求項４】
前記選択部は、前記判定部によって当該ストレージグループの運用がバックアップを優先する運用であると判定された場合、故障が検知された記憶媒体が属するストレージグループで、最小の回転数と同一の回転数または当該回転数より小さい回転数であって最小の回転数に最も近い回転数を有する代替記憶媒体を選択することを特徴とする請求項１から請求項３のいずれか１つに記載のストレージ装置。
【請求項５】
ストレージ装置によって実行される代替記憶媒体選択方法であって、
複数の記憶媒体で構成されるストレージグループのアクセス対象である論理ボリュームの運用を、前記論理ボリュームへのアクセス動作に基づいて判定し、
ストレージグループを構成する記憶媒体の故障が検知された場合、当該ストレージグループの運用を、該論理ボリュームの運用を判定する処理によって判定された当該ストレージグループに属する論理ボリュームの運用に基づいて判定し、
該ストレージグループの運用を判定する処理によって判定された当該ストレージグループの運用に基づいて、故障が検知された記憶媒体の代替記憶媒体を選択する
処理を含むことを特徴とする代替記憶媒体選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置等に関する。
【背景技術】
【０００２】
従来から、ストレージ装置では、装置内のディスクに障害が発生した場合、障害が発生したディスクをホットスペア（ＨＳ）と呼ばれる予備のディスクに代替させる技術が普及している。
【０００３】
かかる技術の例として、ディスクが多重化構成であるストレージ装置におけるディスクの代替技術が開示されている。このストレージ装置は、ディスク障害を検出した場合、障害ディスクの代替として利用可能なＨＳ群の中からＨＳを決定するための優先条件に従って特定のＨＳを決定し、決定したＨＳを障害ディスクと交換する。優先条件として、例えばＨＳが障害ディスクと同じタイプであることが開示されている。
【０００４】
また、障害が生じたディスクの物理スペックに一致または近似するＨＳを障害ディスクの代替として決定する別の代替技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３５７０６１号公報
【特許文献２】特開２００７−８７０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、障害が発生したディスクをＨＳに代替させる従来の技術では、代替させるＨＳを適切に選択できない場合があるという問題がある。
【０００７】
ＨＳを適切に選択できない一例について説明する。例えば、ストレージ装置には、回転数の異なるディスクを混在して構成する場合がある。このようなストレージ装置は、障害が発生したディスクと同じ回転数のディスクをＨＳとして代替させることが望ましいが、状況によっては遅い回転数のディスクをＨＳとして選択することもある。この結果、ストレージ装置は、ホストとのレスポンスを優先させる運用の場合であっても、選択したＨＳを代替させた後のレスポンスを代替前より低下させることとなる。したがって、ストレージ装置は、障害が発生したディスクを代替させるＨＳを適切に選択できない。
【０００８】
１つの側面では、本発明は、障害が発生したディスクを代替させるＨＳを適切に選択できるストレージ装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するストレージ装置は、一つの態様において、複数の記憶媒体で構成されるストレージグループの運用を、前記ストレージグループのアクセス対象である論理ボリュームへのアクセス動作に基づいて判定する判定部と、ストレージグループを構成する記憶媒体の故障が検知された場合、前記判定部によって判定された当該ストレージグループの運用に基づいて、故障が検知された記憶媒体の代替記憶媒体を選択する選択部とを有する。
【発明の効果】
【００１０】
本願の開示するストレージ装置の一つの態様によれば、障害が発生したディスクを代替させるＨＳを適切に選択できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係るＲＡＩＤ装置の構成を示す機能ブロック図である。
【図２】図２は、ボリュームテーブルのデータ構造の一例を示す図である。
【図３】図３は、ＲＡＩＤグループテーブルのデータ構造の一例を示す図である。
【図４】図４は、ディスクテーブルのデータ構造の一例を示す図である。
【図５】図５は、ボリュームとＲＡＩＤグループとディスクとの関係を説明する図である。
【図６】図６は、ボリューム運用判定の処理手順を示すフローチャートである。
【図７】図７は、ＲＡＩＤグループ運用判定の処理手順を示すフローチャートである。
【図８】図８は、レスポンス優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を示すフローチャートである。
【図９】図９は、バックアップ優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するストレージ装置および代替記憶媒体選択方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、ストレージ装置の一例としてＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）装置を適用する場合を示す。また、記憶媒体の一例としてディスクを適用する場合を示す。しかし、本実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
［実施例に係るＲＡＩＤ装置の構成］
図１は、実施例に係るＲＡＩＤ装置の構成を示す機能ブロック図である。図１に示すように、ＲＡＩＤ装置９は、ホスト１とコントロールモジュール（ＣＭ）２とディスク群３とを有する。ホスト１は、ＣＭ２と接続し、入出力要求をＣＭ２に通知する。ディスク群３は、ＣＭ２と接続し、所謂ストレージとして機能する複数のディスクを有する。なお、ＲＡＩＤ装置９は、２台のＣＭ２を持つ小規模なＲＡＩＤ装置を例に示すが、４台の中規模のＲＡＩＤ装置、８台の大規模なＲＡＩＤ装置であっても良い。
【００１４】
ここで、ＲＡＩＤ装置９が有するディスクは、ＲＡＩＤグループとしてグループ化される。図１の例では、ディスク＃００〜＃０７の８つのディスクが１つのＲＡＩＤグループ＃０を構成し、ディスク＃０８〜＃１５の８つのディスクが１つのＲＡＩＤグループ＃１を構成する。また、ディスク＃１６〜＃２３の８つのディスクが１つのＲＡＩＤグループ＃２を構成する。
【００１５】
また、ディスク＃２８〜＃３１の４つのディスクは、障害の発生したディスクを代替する予備のディスクとして配置される。この予備のディスクのことをホットスペア（ＨＳ）という。ＨＳには、特定のＲＡＩＤグループが対象となるＨＳ（Dedicated  Hot  Spare）と全てのＲＡＩＤグループが対象となるＨＳ（Global  Hot  Spare）とがある。特定のＲＡＩＤグループが対象となるＨＳの場合、個々のＲＡＩＤグループに対してＨＳをあらかじめ準備することとなるので、コストがかかる。このため、実施例では、コストがかからない、全てのＲＡＩＤグループが対象となるＨＳを採用する。
【００１６】
各ＲＡＩＤグループには、ユーザが規定する運用目的に応じたディスクが配置される。運用目的には、例えば、ホスト１へのレスポンスを優先する運用目的やデータのバックアップを優先する運用目的がある。ホスト１へのレスポンスを優先する運用目的であるＲＡＩＤグループの場合、レスポンス時間を落とさないように、回転数が例えば平均値より大きいディスクが配置される。一方、データのバックアップを優先する運用目的であるＲＡＩＤグループの場合、性能を求めないので、回転数が例えば平均値より小さいディスクが配置される。図１の例では、ＲＡＩＤグループ＃０がレスポンスを優先する運用目的である場合、１５０００ｒｐｍ（revolution  per  minute）の回転数を有するディスクが配置されている。また、ＲＡＩＤグループ＃２がバックアップを優先する運用目的である場合、７２００ｒｐｍの回転数を有するディスクが配置されている。さらに、ＲＡＩＤグループ＃１は、レスポンス優先であってもバックアップ優先であっても良い場合、１００００ｒｐｍの回転数を有するディスクが配置されている。なお、ＲＡＩＤグループを構成する各ディスクは、全て同一の回転数を有していても良いし、有していなくても良い。
【００１７】
ＣＭ２は、チャネルアダプタ（ＣＡ）２１と、ディスク側アダプタ（ＤＡ）２２と、マンマシンインタフェース（ＭＭＩ）部２３と、記憶部２４と、制御部２５とを有する。ＣＡ２１は、ホスト１と通信接続する通信インタフェースである。ＤＡ２２は、ディスク群３と通信接続する通信インタフェースである。ＭＭＩ部２３は、入出力装置と接続するマンマシンインタフェースである。入出力装置の入力装置には、例えばキーボード、マウスやタブレット等がある。入出力装置の出力装置には、例えばディスプレイ、プリンタやスピーカ等がある。制御部２５は、ＣＭ２全体を制御する。
【００１８】
記憶部２４は、ボリュームテーブル４１と、ＲＡＩＤグループテーブル４２と、ディスクテーブル４３とを有する。ボリュームテーブル４１は、ボリューム単位の管理情報およびボリューム単位のディスク群３へのアクセス情報を記憶する。ＲＡＩＤグループテーブル４２は、ＲＡＩＤグループ単位の管理情報を記憶する。ディスクテーブル４３は、ディスク単位の管理情報を記憶する。ここで、ボリュームとは、複数のディスクやディスク内に区切られた記憶領域をグループ化した結果、グループ化した各グループを論理的な記憶領域としたものであり、データを読み書きする際のアクセス対象となる。そして、各ＲＡＩＤグループには、複数のボリュームが作成される。なお、ボリュームテーブル４１、ＲＡＩＤグループテーブル４２およびディスクテーブル４３の詳細については後述する。
【００１９】
制御部２５は、キャッシュ制御部３１と、ＲＡＩＤ制御部３２と、故障判定部３３と、リビルド・コピーバック制御部３４とを有する。ＲＡＩＤ制御部３２は、ボリューム運用判定部３２１を有する。リビルド・コピーバック制御部３４は、ＲＡＩＤグループ運用判定部３４１と、ＨＳ選択部３４２とを有する。
【００２０】
キャッシュ制御部３１は、ホスト１からのデータのアクセス要求に基づいて、キャッシュを制御する。例えば、キャッシュ制御部３１は、ホスト１からデータの読み出し要求を取得すると、取得した読み出し要求に応じてディスク群３の対応するボリュームからデータを読み出し、キャッシュに取り込む。ここで、ボリュームからデータを読み出してキャッシュに取り込むことを「ステージング」という。そして、キャッシュ制御部３１は、ステージングが行われたボリュームの識別情報をボリューム運用判定部３２１に通知する。また、キャッシュ制御部３１は、ホスト１からデータの書き込み要求を取得すると、書き込み要求に応じてディスク群３の対応するボリュームへデータを書き込む。ここで、キャッシュからボリュームへデータを書き込むことを「ライトバック」という。そして、キャッシュ制御部３１は、ライトバックが行われたボリュームの識別情報をボリューム運用判定部３２１に通知する。
【００２１】
ボリューム運用判定部３２１は、各ボリュームがレスポンスを優先する運用目的かバックアップを優先する運用目的かを、ボリュームへのアクセス動作に基づいて判定する。例えば、ボリューム運用判定部３２１は、あるＲＡＩＤグループに新たなボリュームが作成されたときから所定期間分、ＲＡＩＤグループに作成されている各ボリュームについて、ステージングおよびライトバックの回数をカウントする。そして、ボリューム運用判定部３２１は、ボリューム毎にカウント結果をボリュームテーブル４１に格納する。なお、回数をカウントするタイミングは、例えば、ＲＡＩＤグループに新たなボリュームが作成されたときとしたが、あらかじめ定めた時点であっても良く、これらに限定されるものではない。また、回数をカウントする所定期間は、例えば１日とするが、１０日としても良く、ステージングおよびライトバックを十分に実行できるような期間であれば良い。
【００２２】
また、ボリューム運用判定部３２１は、所定期間経過後、ボリューム毎にステージングの回数とライトバックの回数とを比較し、ステージングの回数がライトバックの回数と一致するかまたは少ない場合にバックアップを優先する運用目的と判定する。すなわち、バックアップを優先する運用目的の場合には、データをボリュームへ書き込むライトバックの動作がほとんどであり、ボリュームからデータを読み出すステージングの動作頻度が少ない。そこで、ステージングの回数がライトバックの回数と一致するかまたは少ない場合にバックアップを優先する運用目的とするものである。
【００２３】
一方、ボリューム運用判定部３２１は、ステージングの回数がライトバックの回数より多い場合にレスポンスを優先する運用目的と判定する。すなわち、レスポンスを優先する運用目的の場合、バックアップを優先する運用目的の場合と異なり、ステージングの動作頻度がライトバックの動作頻度より多い。例えば、ディスク群３をデータベースとして用いる場合には、シーケンシャルなステージング動作が連続することが多く、ステージング動作に比較してライトバックの頻度が少ない。そこで、ステージングの回数がライトバックの回数より多い場合にレスポンスを優先する運用目的とするものである。
【００２４】
また、ボリューム運用判定部３２１は、ボリューム毎に判定された運用目的を後述するボリュームテーブル４１の運用判定結果に格納する。
【００２５】
ここで、ボリュームテーブル４１のデータ構造について、図２を参照して説明する。図２は、実施例に係るボリュームテーブルのデータ構造の一例を示す図である。図２に示すように、ボリュームテーブル４１は、ボリューム番号４１ａ毎に、ボリュームサイズ４１ｂおよび開始ＬＢＡ（Logical  Block  Addressing）４１ｃを対応付けて記憶する。さらに、ボリュームテーブル４１は、ボリューム番号４１ａ毎に、測定開始時間４１ｄ、ステージング回数４１ｅ、ライトバック回数４１ｆおよび運用判定結果４１ｇを対応付けて記憶する。
【００２６】
ボリューム番号４１ａには、ボリュームを識別する番号が記憶される。ボリュームサイズ４１ｂには、ボリュームのサイズが記憶される。開始ＬＢＡ４１ｃには、ボリューム番号４１ａで示されるボリュームが開始されるＬＢＡが記憶される。なお、ＬＢＡは、物理媒体であるディスクにアクセスできる単位（セクタ）に割り当てられたアドレスを指し、例えば０から順番に数字が割り当てられる。
【００２７】
測定開始時間４１ｄには、アクセス動作の測定を開始した時間が記憶される。ステージング回数４１ｅには、アクセス動作の測定を開始してからのボリューム番号４１ａで示されるボリュームに対するステージングの回数が記憶される。ライトバック回数４１ｆには、アクセス動作の測定を開始してからのボリューム番号４１ａで示されるボリュームに対するライトバックの回数が記憶される。運用判定結果４１ｇには、ボリューム番号４１ａで示されるボリュームについて、レスポンスを優先する運用目的かバックアップを優先する運用目的かの判定結果が記憶される。例えば、運用判定結果４１ｇには、レスポンスを優先する運用目的を示す「１」、バックアップを優先する運用目的を示す「２」または運用目的が未決定であることを示す「０」が記憶される。なお、運用判定結果４１ｇには、アクセス動作が測定中であっても、前回計測して判定された結果が保持されている。
【００２８】
図１に戻って、故障判定部３３は、ＲＡＩＤグループのディスクの故障を検知した場合、故障を検知したディスクを切り離すか否かを判定する。例えば、故障判定部３３は、故障を検知したディスクについて、異常が発生した都度計算される異常に関する統計情報に基づいて、切り離すか否かを判定する。そして、故障判定部３３は、故障を検知したディスクについて、切り離すと判定した場合、切り離すディスクを、ＲＡＩＤグループ運用判定部３４１に通知する。一方、故障判定部３３は、故障を検知したディスクについて、切り離さないと判定した場合、今回検知した故障から異常に関する統計情報を計算し、統計情報を更新する。そして、故障判定部３３は、故障を検知したディスクの運用をそのまま継続する。
【００２９】
ＲＡＩＤグループ運用判定部３４１は、故障ディスクを含むＲＡＩＤグループがレスポンスを優先する運用目的かバックアップを優先する運用目的かを、ＲＡＩＤグループ内のボリュームへのアクセス動作に基づいて判定する。例えば、ＲＡＩＤグループ運用判定部３４１は、切り離すディスクの通知を、故障判定部３３から取得した場合、切り離すディスクが属するＲＡＩＤグループをＲＡＩＤグループテーブル４２に基づいて探索する。また、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループに属する全てのボリュームがバックアップを優先する運用目的か否かを判定する。
【００３０】
また、ＲＡＩＤグループ運用判定部３４１は、全てのボリュームがバックアップを優先する運用目的と判定した場合、探索したＲＡＩＤグループを、バックアップを優先する運用目的と判定する。一方、ＲＡＩＤグループ運用判定部３４１は、１つでもレスポンスを優先する運用目的のボリュームがあると判定したした場合、探索したＲＡＩＤグループを、レスポンスを優先する運用目的と判定する。すなわち、探索したＲＡＩＤグループにレスポンスを優先する運用目的のボリュームが１つでもあれば、そのボリュームを含むＲＡＩＤグループ全体のレスポンスの遅延を防止するため、当該ＲＡＩＤグループを、レスポンスを優先する運用目的とする。そして、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループの運用目的をＨＳ選択部３４２に通知する。
【００３１】
ここで、ＲＡＩＤグループテーブル４２のデータ構造について、図３を参照して説明する。図３は、実施例に係るＲＡＩＤグループテーブルのデータ構造の一例を示す図である。図３に示すように、ＲＡＩＤグループテーブル４２は、ＲＡＩＤグループ番号４２ａ毎に、ＲＡＩＤレベル４２ｂおよびボリューム数４２ｃを対応付けて記憶する。さらに、ＲＡＩＤグループテーブル４２は、ＲＡＩＤグループ番号４２ａ毎に、ボリューム番号［１］〜［ｎ］４２ｄ、ディスク数４２ｅおよびディスク番号［１］〜［ｍ］４２ｆを対応付けて記憶する。なお、ｎ、ｍは、２以上の自然数を示し、固定であっても可変であっても良い。ただし、ｎはボリュームの数を含む数、ｍはディスクの数を含む数である。
【００３２】
ＲＡＩＤグループ番号４２ａには、ＲＡＩＤグループを識別する番号が記憶される。ＲＡＩＤレベル４２ｂには、ＲＡＩＤグループ番号４２ａで示されるＲＡＩＤグループのＲＡＩＤレベルが記憶される。ボリューム数４２ｃには、ＲＡＩＤグループに属するボリュームの数が記憶される。ボリューム番号４２ｄには、ＲＡＩＤグループに属するボリューム数分のボリュームの識別番号が記憶される。ディスク数４２ｅには、ＲＡＩＤグループに属するディスクの数が記憶される。ディスク番号４２ｆには、ＲＡＩＤグループに属するディスク数分のディスクの識別番号が記憶される。このディスク番号４２ｆをＲＡＩＤグループ運用判定部３４１が参照することで、切り離すディスクが属するＲＡＩＤグループを探索できる。
【００３３】
また、ディスクテーブル４３のデータ構造について、図４を参照して説明する。図４は、実施例に係るディスクテーブルのデータ構造の一例を示す図である。図４に示すように、ディスクテーブル４３は、ディスク番号４３ａ毎に、ディスクサイズ４３ｂ、ディスク状態４３ｃ、ＨＳ区別４３ｄ、ディスク種類４３ｅおよびディスク回転数４３ｆを対応付けて記憶する。ディスク番号４３ａには、ディスクを識別する番号が記憶される。ディスクサイズ４３ｂには、ディスク番号４３ａで示されるディスクのサイズが記憶される。ディスク状態４３ｃは、ディスク番号４３ａで示されるディスクの状態が記憶される。ＨＳ区別４３ｄには、ディスク番号４３ａで示されるディスクがＨＳであるか否かの区別が記憶される。ディスク種類４３ｅには、ディスク番号４３ａで示されるディスクの種類、例えばＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）等のディスクの種類が記憶される。ディスク回転数４３ｆには、ディスクの回転数が記憶される。
【００３４】
図１に戻って、ＨＳ選択部３４２は、故障ディスクが属するＲＡＩＤグループの運用目的に基づいて、当該故障ディスクのＨＳを選択する。すなわち、ＨＳ選択部３４２は、故障ディスクが属するＲＡＩＤグループがレスポンスを優先する運用目的の場合とバックアップを優先する運用目的の場合とで当該故障ディスクのＨＳの選択処理を分ける。
【００３５】
ＲＡＩＤグループがレスポンスを優先する運用目的の場合の一例として、ＨＳ選択部３４２は、当該ＲＡＩＤグループで、最も回転数が小さいディスクの回転数をディスクテーブル４３のディスク回転数４３ｆに基づいて求める。このＲＡＩＤグループで、最も回転数が小さいディスクの回転数を「ベース回転数」という。また、ＨＳ選択部３４２は、ＨＳのうちベース回転数と同じ回転数のＨＳがあるか否かを判定し、ベース回転数と同じ回転数のＨＳがあれば、同じ回転数のＨＳを選択する。一方、ＨＳ選択部３４２は、ベース回転数と同じ回転数のＨＳがなければ、ベース回転数より大きい回転数であってベース回転数に最も近い回転数を有するＨＳを選択する。また、ＨＳ選択部３４２は、ベース回転数より大きい回転数がない場合には、ＳＳＤのＨＳがあればＳＳＤのＨＳを選択する。ＳＳＤは、高速に読み書きでき、レスポンスを優先する運用の維持を図ることができるためである。なお、ＨＳ選択部３４２は、レスポンスを優先する運用の維持を図るために、ベース回転数より小さい回転数のＨＳを選択しない。
【００３６】
ＲＡＩＤグループがバックアップを優先する運用目的の場合の一例として、ＨＳ選択部３４２は、当該ＲＡＩＤグループのベース回転数をディスクテーブル４３のディスク回転数４３ｆに基づいて求める。また、ＨＳ選択部３４２は、ＨＳのうちベース回転数と同じ回転数のＨＳがあるか否かを判定し、ベース回転数と同じ回転数のＨＳがあれば、同じ回転数のＨＳを選択する。一方、ＨＳ選択部３４２は、ベース回転数と同じ回転数のＨＳがなければ、ベース回転数より小さい回転数であってベース回転数に最も近い回転数を有するＨＳを選択する。なお、ＨＳ選択部３４２は、レスポンス優先用のＨＳとして残しておくために、ベース回転数より大きい回転数のＨＳおよびＳＳＤを選択しない。
【００３７】
また、ＨＳ選択部３４２は、ＨＳを選択した場合、故障ディスクのデータを、選択したＨＳに再構築（リビルド）する。そして、ＨＳ選択部３４２は、故障ディスクを切り離す。その後、ＨＳ選択部３４２は、ＨＳのデータを正常なディスクに復旧（コピーバック）することとなる。
【００３８】
次に、ボリュームとＲＡＩＤグループとディスクとの関係について、図５を参照して説明する。図５は、ボリュームとＲＡＩＤグループとディスクとの関係を説明する図である。図５に示すように、ＲＡＩＤグループは、複数のボリュームを有し、ボリュームと別個独立に複数のディスクを有する。ここでは、ＲＡＩＤグループ番号＃０のＲＡＩＤグループは、ボリューム番号＃１０と＃１１と＃１２の３個のボリュームを有する。さらに、ＲＡＩＤグループ番号＃０のＲＡＩＤグループは、ディスク番号＃００と＃０１と＃０２と＃０３の４個のディスクを有する。
【００３９】
このような関係の下、故障ディスクを含むＲＡＩＤグループがＲＡＩＤグループ番号＃０であったとする。すると、ＲＡＩＤグループ運用判定部３４１は、＃０のＲＡＩＤグループに属する全てのボリューム＃１０〜＃１２がバックアップを優先する運用目的か否かを、ボリュームテーブル４１の運用判定結果４１ｇに基づいて判定する。そして、ＨＳ選択部３４２は、ＲＡＩＤグループ運用判定部３４１によって判定された運用目的に基づいて、故障ディスクのＨＳを選択する。このとき、ＨＳ選択部３４２は、＃０のＲＡＩＤグループのベース回転数をディスクテーブル４３のディスク回転数４３ｆに基づいて求める。すなわち、ＨＳ選択部３４２は、ディスク＃００〜＃０３のディスク回転数に基づいて、ＲＡＩＤグループ＃０のベース回転数を求める。そして、ＨＳ選択部３４２は、求めたベース回転数を用いて、運用目的に応じたＨＳを選択するのである。
【００４０】
［実施例に係るボリューム運用判定の処理手順］
次に、実施例に係るボリューム運用判定の処理手順を、図６を参照して説明する。図６は、ボリューム運用判定の処理手順を示すフローチャートである。
【００４１】
まず、ボリューム運用判定部３２１は、ＲＡＩＤ装置９に存在するいずれかのＲＡＩＤブループに新たなボリュームが作成されたか否かを判定する（ステップＳ１１）。新たなボリュームが作成されていないと判定した場合（ステップＳ１１；Ｎｏ）、ボリューム運用判定部３２１は、新たなボリュームが作成されるまで、判定処理を繰り返す。
【００４２】
一方、新たなボリュームが作成されたと判定した場合（ステップＳ１１；Ｙｅｓ）、ボリューム運用判定部３２１は、ＲＡＩＤ装置９に存在する全てのボリュームについて、ボリュームテーブル４１の測定開始時間４１ｄに現在の時間を記録する。そして、ボリューム運用判定部３２１は、ＲＡＩＤ装置９に存在する全てのボリュームについて、ボリュームテーブル４１のステージング回数４１ｅとライトバック回数４１ｆを０に初期化する（ステップＳ１２）。
【００４３】
その後、ボリューム運用判定部３２１は、ステージングが行われたボリュームについて、ボリュームテーブル４１のステージング回数４１ｅをインクリメントする。また、ボリューム運用判定部３２１は、ライトバックが行われたボリュームについて、ボリュームテーブル４１のライトバック回数４１ｆをインクリメントする（ステップＳ１３）。
【００４４】
そして、ボリューム運用判定部３２１は、現在の時間とボリュームテーブル４１に記録された測定開始時間４１ｄとの差分が所定時間以上であるか否かを判定する（ステップＳ１４）。差分が所定時間以上でないと判定した場合（ステップＳ１４；Ｎｏ）、ボリューム運用判定部３２１は、アクセス動作の測定を継続すべく、ステップＳ１３に移行する。
【００４５】
一方、差分が所定時間以上であると判定した場合（ステップＳ１４；Ｙｅｓ）、ボリューム運用判定部３２１は、ＲＡＩＤ装置９に存在する全てのボリューム毎に、ステージング回数がライトバック回数以下であるか否かを判定する（ステップＳ１５）。
【００４６】
そして、ボリューム運用判定部３２１は、ステージング回数がライトバック回数より多いボリュームについて（ステップＳ１５；Ｎｏ）、レスポンス優先と判定し、判定結果をボリュームテーブル４１の運用判定結果４１ｇに記録する（ステップＳ１６）。一方、ボリューム運用判定部３２１は、ステージング回数がライトバック回数以下のボリュームについて（ステップＳ１５：Ｙｅｓ）、バックアップ優先と判定し、判定結果をボリュームテーブル４１の運用判定結果４１ｇに記録する（ステップＳ１７）。ボリューム運用判定部３２１は、ＲＡＩＤ装置９に存在する全てのボリュームについて、判定結果を記録した後、ボリューム運用判定処理を終了する。
【００４７】
［実施例に係るＲＡＩＤグループ運用判定の処理手順］
次に、実施例に係るＲＡＩＤグループ運用判定の処理手順を、図７を参照して説明する。図７は、ＲＡＩＤグループ運用判定の処理手順を示すフローチャートである。
【００４８】
まず、故障判定部３３は、ディスクに故障が発生したか否かを判定する（ステップＳ２１）。ディスクに故障が発生していない判定した場合（ステップＳ２１；Ｎｏ）、故障判定部３３は、ディスクに故障が発生するまで判定処理を繰り返す。一方、ディスクに故障が発生したと判定した場合（ステップＳ２１；Ｙｅｓ）、ＲＡＩＤグループ運用判定部３４１は、ＲＡＩＤグループテーブル４２に基づいて、故障ディスクのＲＡＩＤグループを探索する（ステップＳ２２）。
【００４９】
そして、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループに属する全てのボリュームがバックアップを優先する運用目的か否かを判定する（ステップＳ２３）。例えば、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループに属する全てのボリュームがバックアップを優先する運用目的か否かを、ボリュームテーブル４１の運用判定結果４１ｇに基づいて判定する。運用判定結果４１ｇには、レスポンスを優先する運用目的かバックアップを優先する運用目的かの判定結果が記憶されている。そして、全てのボリュームがバックアップを優先する運用目的であると判定した場合（ステップＳ２３；Ｙｅｓ）、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループを、バックアップを優先する運用目的と判定する（ステップＳ２４）。そして、引き続き、ＨＳ選択部３４２は、バックアップ目的のＲＡＩＤグループにおけるＨＳ選択処理を実行する。
【００５０】
一方、１つでもレスポンスを優先する運用目的のボリュームがあると判定した場合（ステップＳ２３；Ｎｏ）、ＲＡＩＤグループ運用判定部３４１は、探索したＲＡＩＤグループを、レスポンスを優先する運用目的と判定する（ステップＳ２５）。そして、引き続き、ＨＳ選択部３４２は、レスポンス優先のＲＡＩＤグループにおけるＨＳ選択処理を実行する。
【００５１】
［実施例に係るレスポンス優先のＲＡＩＤグループにおけるＨＳ選択処理手順］
次に、実施例に係るレスポンス優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を、図８を参照して説明する。図８は、レスポンス優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を示すフローチャートである。
【００５２】
まず、ＨＳ選択部３４２は、故障ディスクのＲＡＩＤグループについて、ベース回転数を求める（ステップＳ３１）。例えば、ＨＳ選択部３４２は、故障ディスクのＲＡＩＤグループに属するディスクのディスク回転数をディスクテーブル４３から読み出し、読み出したディスク回転数からベース回転数を求める。
【００５３】
そして、ＨＳ選択部３４２は、求めたベース回転数と同じ回転数のＨＳがあるか否かを判定する（ステップＳ３２）。ベース回転数と同じ回転数のＨＳがあると判定した場合（ステップＳ３２；Ｙｅｓ）、ＨＳ選択部３４２は、ベース回転数と同じ回転数のＨＳを選択する（ステップＳ３３）。そして、ＨＳ選択部３４２は、ステップＳ３８に移行する。
【００５４】
一方、ベース回転数と同じ回転数のＨＳがないと判定した場合（ステップＳ３２；Ｎｏ）、ＨＳ選択部３４２は、ベース回転数より大きいＨＳがあるか否かを判定する（ステップＳ３４）。ベース回転数より大きいＨＳがあると判定した場合（ステップＳ３４；Ｙｅｓ）、ＨＳ選択部３４２は、ベース回転数より大きいＨＳのうち、ベース回転数に最も近いＨＳを選択する（ステップＳ３５）。そして、ＨＳ選択部３４２は、ステップＳ３８に移行する。
【００５５】
一方、ベース回転数より大きいＨＳがないと判定した場合（ステップＳ３４；Ｎｏ）、ＨＳ選択部３４２は、ＳＳＤのＨＳがあるか否かを判定する（ステップＳ３６）。ＳＳＤのＨＳがあると判定した場合（ステップＳ３６；Ｙｅｓ）、ＨＳ選択部３４２は、ＳＳＤのＨＳを選択する（ステップＳ３７）。そして、ＨＳ選択部３４２は、ステップＳ３８に移行する。
【００５６】
ステップＳ３８では、ＨＳ選択部３４２が、ＨＳを選択した場合、故障ディスクのデータを、選択したＨＳへリビルドする（ステップＳ３８）。一方、ＳＳＤのＨＳがないと判定した場合（ステップＳ３６；Ｎｏ）、ＨＳ選択部３４２は、故障ディスクのデータをリビルドしない（ステップＳ３９）。
【００５７】
［実施例に係るバックアップ優先のＲＡＩＤグループにおけるＨＳ選択処理手順］
次に、実施例に係るバックアップ優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を、図９を参照して説明する。図９は、バックアップ優先のＲＡＩＤグループにおけるＨＳ選択の処理手順を示すフローチャートである。
【００５８】
まず、ＨＳ選択部３４２は、故障ディスクのＲＡＩＤグループについて、ベース回転数を求める（ステップＳ４１）。例えば、ＨＳ選択部３４２は、故障ディスクのＲＡＩＤグループに属するディスクのディスク回転数をディスクテーブル４３から読み出し、読み出したディスク回転数からベース回転数を求める。
【００５９】
そして、ＨＳ選択部３４２は、求めたベース回転数と同じ回転数のＨＳがあるか否かを判定する（ステップＳ４２）。ベース回転数と同じ回転数のＨＳがあると判定した場合（ステップＳ４２；Ｙｅｓ）、ＨＳ選択部３４２は、ベース回転数と同じ回転数のＨＳを選択する（ステップＳ４３）。そして、ＨＳ選択部３４２は、ステップＳ４６に移行する。
【００６０】
一方、ベース回転数と同じ回転数のＨＳがないと判定した場合（ステップＳ４２；Ｎｏ）、ＨＳ選択部３４２は、ベース回転数より小さいＨＳがあるか否かを判定する（ステップＳ４４）。ベース回転数より小さいＨＳがあると判定した場合（ステップＳ４４；Ｙｅｓ）、ＨＳ選択部３４２は、ベース回転数より小さいＨＳのうち、ベース回転数に最も近いＨＳを選択する（ステップＳ４５）。そして、ＨＳ選択部３４２は、ステップＳ４６に移行する。
【００６１】
ステップＳ４６では、ＨＳ選択部３４２が、ＨＳを選択した場合、故障ディスクのデータを、選択したＨＳへリビルドする（ステップＳ４６）。一方、ベース回転数より小さいＨＳがないと判定した場合（ステップＳ４４；Ｎｏ）、ＨＳ選択部３４２は、故障ディスクのデータをリビルドしない（ステップＳ４７）。
【００６２】
なお、本実施例では、ＨＳ選択部３４２は、故障ディスクを含むＲＡＩＤグループがバックアップを優先する運用目的の場合、ベース回転数より大きい回転数の代替ディスクおよびＳＳＤをＨＳとして選択しないようにした。しかしながら、ＨＳ選択部３４２は、これに限定されず、ベース回転数より大きい回転数の代替ディスクおよびＳＳＤを、優先順位を落としてＨＳとして選択するようにしても構わない。
【００６３】
また、ボリューム運用判定部３２１は、ボリューム毎にステージングの回数とライトバックの回数とを比較し、ステージングの回数がライトバックの回数と一致するか少ない場合に、バックアップを優先する運用目的と判定するようにした。しかしながら、ボリューム運用判定部３２１の処理は、これに限定するものではない。例えば、ＲＡＩＤ装置９には、ＣＭ２の制御部２５を使用せずにストレージだけでコピーするアドバンスドコピー機能を備えている場合がある。かかる場合には、ボリューム運用判定部３２１は、コピー先のボリュームを、バックアップを優先する運用目的と判定すれば良い。一方、ボリューム運用判定部３２１は、コピー元のボリュームを、レスポンスを優先する運用目的と判定すれば良い。
【００６４】
また、ＲＡＩＤグループ運用判定部３４１は、故障ディスクを含むＲＡＩＤグループがレスポンスを優先する運用目的であるかバックアップを優先する運用目的であるかを、ＲＡＩＤグループに属するボリューム毎の運用目的に応じて判定するようにした。しかしながら、ＲＡＩＤグループ運用判定部３４１は、これに限定するものではなく、例えばＲＡＩＤグループのＲＡＩＤレベルに基づいて運用目的を判定するようにしても良い。つまり、ＲＡＩＤグループ運用判定部３４１は、ミラーリングを示すＲＡＩＤ１やＲＡＩＤ１+０か、パリティを示すＲＡＩＤ５、ＲＡＩＤ５+０、ＲＡＩＤ６やＲＡＩＤ６+０かで判定することも可能である。すなわち、ＲＡＩＤグループがミラーリングを示すＲＡＩＤレベルの場合、データを書き込む際、書き込む前のデータとパリティを読み出して更新パリティを作成後書き込むというライトペナルティがないので、レスポンス優先の運用に用いられることが多い。一方、ＲＡＩＤグループがパリティを示すＲＡＩＤレベルの場合、ディスク数に対するデータの保持量が多いので、バックアップ優先の運用に用いられることが多い。そこで、ＲＡＩＤグループ運用判定部３４１は、ＲＡＩＤグループのＲＡＩＤレベルがパリティを示すものであれば、バックアップを優先する運用目的と判定すれば良い。一方、ＲＡＩＤグループ運用判定部３４１は、ＲＡＩＤグループのＲＡＩＤレベルがミラーリングを示すものであれば、レスポンスを優先する運用目的と判定すれば良い。
【００６５】
［実施例の効果］
上記実施例によれば、ＲＡＩＤ装置９は、複数のディスクで構成されるＲＡＩＤグループがレスポンスを優先する運用かバックアップを優先する運用かを、ＲＡＩＤグループのアクセス対象である論理ボリュームへのアクセス動作に基づいて判定する。そして、ＲＡＩＤ装置９は、ＲＡＩＤグループのディスク障害が検知された場合、判定された当該ＲＡＩＤグループの運用に基づいて、障害が検知されたディスクの代替ディスクを選択する。かかる構成によれば、ＲＡＩＤ装置９は、障害が検知されたディスクを代替させる代替ディスクを、ＲＡＩＤグループの運用に基づいて選択するので、ＲＡＩＤグループの運用に合った代替ディスクを適切に選択できる。この結果、ＲＡＩＤ装置９は、障害が検知されたディスクを含むＲＡＩＤグループがレスポンスを優先する運用の場合、当該ディスクの代替ディスクを運用に合ったディスクとすることで、レスポンスを優先する運用を維持することが可能となる。また、ＲＡＩＤ装置９は、障害が検知されたディスクを含むＲＡＩＤグループがバックアップを優先する運用の場合、当該ディスクの代替ディスクを運用に合ったディスクとすることで、バックアップを優先する運用を維持することが可能となる。
【００６６】
また、上記実施例によれば、ＲＡＩＤ装置９は、論理ボリュームからのデータの読み出しおよび論理ボリュームへのデータの書き込みの回数を所定期間分カウントし、読み出しの回数が書き込みの回数より多い場合にレスポンスを優先する運用と判定する。かかる構成によれば、ＲＡＩＤ装置９は、論理ボリュームについて、読み出しの回数が書き込みの回数より多い場合にレスポンスを優先する運用と判定するので、論理ボリュームに対応するＲＡＩＤグループの運用を容易に判定することができる。
【００６７】
また、上記実施例によれば、ＲＡＩＤ装置９は、転送元の論理ボリュームから転送先の論理ボリュームへのデータの転送が行われた場合、転送元の論理ボリュームを、レスポンスを優先する運用と判定する。かかる構成によれば、ＲＡＩＤ装置９は、転送元の論理ボリュームをレスポンスを優先する運用と判定するので、論理ボリュームに対応するＲＡＩＤグループの運用を容易に判定することができる。
【００６８】
また、上記実施例によれば、ＲＡＩＤ装置９は、ＲＡＩＤグループの運用がレスポンスを優先する運用であると判定された場合、障害が検知されたディスクが属するＲＡＩＤグループのうち最小の回転数（ベース回転数）と同一の代替ディスクを選択する。そして、ＲＡＩＤ装置９は、ベース回転数と同一の代替ディスクがない場合、ベース回転数より大きい回転数であってベース回転数に最も近い回転数の代替ディスクを選択する。かかる構成によれば、ＲＡＩＤ装置９は、ＲＡＩＤグループの運用がレスポンスを優先する運用である場合、ベース回転数と同一またはベース回転数より大きい回転数の代替ディスクを選択するので、レスポンスを優先する運用を維持することが可能となる。
【００６９】
また、上記実施例によれば、ＲＡＩＤ装置９は、ＲＡＩＤグループの運用がバックアップを優先する運用であると判定された場合、障害が検知されたディスクが属するＲＡＩＤグループのうち最小の回転数（ベース回転数）と同一の代替ディスクを選択する。そして、ＲＡＩＤ装置９は、ベース回転数と同一の回転数の代替ディスクがない場合、ベース回転数より小さい回転数であってベース回転数に最も近い回転数の代替ディスクを選択する。かかる構成によれば、ＲＡＩＤ装置９は、ＲＡＩＤグループの運用がバックアップを優先する運用である場合、ベース回転数と同一またはベース回転数より小さい回転数の代替ディスクを選択するので、バックアップを優先する運用を維持することが可能となる。また、ＲＡＩＤ装置９は、ベース回転数より大きい回転数の代替ディスクを、レスポンスを優先する運用であるＲＡＩＤグループ用の予備として確保しておくことができる。
【００７０】
［その他］
なお、図示したＲＡＩＤ装置９の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ＲＡＩＤ装置９の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、ＲＡＩＤグループ運用判定部３４１とＨＳ選択部３４２とを１つの部として統合しても良い。また、ＨＳ選択部３４２をレスポンスを優先する運用目的の場合の第１のＨＳ選択部とバックアップを優先する運用目的の場合の第２のＨＳ選択部とに分散しても良い。また、記憶部２４をＣＭ２の外部装置としてネットワーク経由で接続するようにしても良い。
【００７１】
また、ＣＭ２にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、制御部２５にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現されても良い。
【００７２】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【００７３】
（付記１）複数の記憶媒体で構成されるストレージグループの運用を、前記ストレージグループのアクセス対象である論理ボリュームへのアクセス動作に基づいて判定する判定部と、
ストレージグループを構成する記憶媒体の故障が検知された場合、前記判定部によって判定された当該ストレージグループの運用に基づいて、故障が検知された記憶媒体の代替記憶媒体を選択する選択部と
を有することを特徴とするストレージ装置。
【００７４】
（付記２）前記判定部は、前記論理ボリュームからのデータの読み出しおよび前記論理ボリュームへのデータの書き込みの回数を所定期間分カウントし、読み出しの回数が書き込みの回数より多い場合にレスポンスを優先する運用と判定することを特徴とする付記１に記載のストレージ装置。
【００７５】
（付記３）前記判定部は、転送元の論理ボリュームから転送先の論理ボリュームへのデータの転送が行われた場合、転送元の論理ボリュームを、レスポンスを優先する運用と判定することを特徴とする付記１に記載のストレージ装置。
【００７６】
（付記４）前記選択部は、前記判定部によって当該ストレージグループの運用がレスポンスを優先する運用であると判定された場合、故障が検知された記憶媒体が属するストレージグループで、最小の回転数と同一の回転数または当該回転数より大きい回転数であって最小の回転数に最も近い回転数を有する代替記憶媒体を選択することを特徴とする付記１から付記３のいずれか１つに記載のストレージ装置。
【００７７】
（付記５）前記選択部は、前記判定部によって当該ストレージグループの運用がバックアップを優先する運用であると判定された場合、故障が検知された記憶媒体が属するストレージグループで、最小の回転数と同一の回転数または当該回転数より小さい回転数であって最小の回転数に最も近い回転数を有する代替記憶媒体を選択することを特徴とする付記１から付記３のいずれか１つに記載のストレージ装置。
【００７８】
（付記６）ストレージ装置によって実行される代替記憶媒体選択方法であって、
複数の記憶媒体で構成されるストレージグループのアクセス対象である論理ボリュームの運用を、前記論理ボリュームへのアクセス動作に基づいて判定し、
ストレージグループを構成する記憶媒体の故障が検知された場合、当該ストレージグループの運用を、該論理ボリュームの運用を判定する処理によって判定された当該ストレージグループに属する論理ボリュームの運用に基づいて判定し、
該ストレージグループの運用を判定する処理によって判定された当該ストレージグループの運用に基づいて、故障が検知された記憶媒体の代替記憶媒体を選択する
処理を含むことを特徴とする代替記憶媒体選択方法。
【符号の説明】
【００７９】
１  ホスト
２  ＣＭ
３  ディスク群
９  ＲＡＩＤ装置
２１  ＣＡ
２２  ＤＡ
２３  ＭＭＩ部
２４  記憶部
２５  制御部
３１  キャッシュ制御部
３２  ＲＡＩＤ制御部
３３  故障判定部
３４  リビルド・コピーバック制御部
４１  ボリュームテーブル
４２  ＲＡＩＤグループテーブル
４３  ディスクテーブル
３２１  ボリューム運用判定部
３４１  ＲＡＩＤグループ運用判定部
３４２  ＨＳ選択部
【図１】
2013020544.tif 000003
【図２】
2013020544.tif 000004
【図３】
2013020544.tif 000005
【図４】
2013020544.tif 000006
【図５】
2013020544.tif 000007
【図６】
2013020544.tif 000008
【図７】
2013020544.tif 000009
【図８】
2013020544.tif 000010
【図９】
2013020544.tif 000011