(57)【特許請求の範囲】
【請求項１】
フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶する記憶部と、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記ストレージ装置は、ＲＡＩＤグループを形成するいずれかのストレージ装置であり、
前記記憶部は、
前記ＲＡＩＤグループ内の各々のストレージ装置から取得した、前記各々のストレージ装置の書き込みデータ量を記憶し、
前記制御部は、
前記記憶部が記憶する前記各々のストレージ装置の書き込みデータ量と前記書き込み可能データ量とに基づいて、前記ＲＡＩＤグループに対応する代替ストレージ装置に対する前記確認処理の実行周期を決定する、
ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記書き込み可能データ量の所定の割合に応じた前記確認処理の実行周期を示す周期情報を参照して、前記各々のストレージ装置の書き込みデータ量に基づいて、前記代替ストレージ装置に対する前記確認処理を実行する周期を決定する、
ことを特徴とする請求項２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
さらに、前記各々のストレージ装置の書き込みデータ量と前記書き込み可能データ量とに基づいて、前記代替ストレージ装置に対する前記確認処理の完了後に前記代替ストレージ装置の動作を停止させるか否かを決定する、
ことを特徴とする請求項２または３に記載のストレージ制御装置。
【請求項５】
前記制御部は、
２以上の代替ストレージ装置に対応する複数のＲＡＩＤグループの各々のＲＡＩＤグループ内の各々のストレージ装置の書き込みデータ量に基づいて、前記各々のＲＡＩＤグループ内の最大の書き込みデータ量を特定し、
前記書き込み可能データ量の所定の割合に応じた前記確認処理の実行周期を示す周期情報を参照して、特定した前記各々のＲＡＩＤグループの最大の書き込みデータ量に応じた周期が短い順に、当該周期を前記２以上の代替ストレージ装置の各々の代替ストレージ装置に対して前記確認処理を実行する周期として順次決定する、
ことを特徴とする請求項２〜４のいずれか一つに記載のストレージ制御装置。
【請求項６】
前記代替ストレージ装置は、フラッシュメモリを記憶媒体とするストレージ装置である、
ことを特徴とする請求項１〜５のいずれか一つに記載のストレージ制御装置。
【請求項７】
コンピュータが、
フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶部に記憶させ、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する、
処理を実行することを特徴とする制御方法。
【請求項８】
コンピュータに、
フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶部に記憶させ、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する、
処理を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法、および制御プログラムに関する。
【背景技術】
【０００２】
従来、ストレージ装置に対応する代替ストレージ装置を通電状態で待機しておき、ストレージ装置が故障した際に、ストレージ装置の代わりに代替ストレージ装置を用いる技術がある。また、代替ストレージ装置が正常に機能するか否かを確認する確認処理を定期的に実行して、代替ストレージ装置の信頼性を保証する技術がある。
【０００３】
関連する先行技術として、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）からメモリブロックへのアクセス回数をカウントし、アクセス回数が所定値を超えた場合にメモリブロックに対して、周期的にメモリブロックの誤り検出および誤り訂正を行うメモリパトロールの回数を減らすものがある。また、フラッシュメモリデバイスのセルへのアクセス数および情報がメモリデバイスに記憶された後に経過した時間量の少なくとも一つに基づく条件が満足されたときにメモリデバイス中に記憶されている情報の中のエラー検出のためのスキャンを行う技術がある。また、診断制御タイマと診断制御用カウンタにより求めた過去一定時間のチャネルからの命令に関与する入出力処理頻度に応じて、ディスク装置のリード診断の可否およびリード診断対象トラック数を決定し、入出力動作の空き時間にリード診断を行う技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０５９８２１号公報
【特許文献２】特表２０１０−５３７３１４号公報
【特許文献３】特開平５−７４０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、ストレージ装置に対応する代替ストレージ装置の信頼性を維持したまま代替ストレージ装置の確認処理にかかる負荷を抑制することは困難である。例えば、確認処理の実行周期を短くすると、ストレージ装置が故障した際に代替ストレージ装置が故障している可能性が小さくなるため、代替ストレージ装置の信頼性は維持できるものの、代替ストレージ装置の確認処理にかかる負荷が増大することになる。一方、確認処理の実行周期を長くすると、代替ストレージ装置の確認処理にかかる負荷は抑制されるものの、ストレージ装置が故障した際に代替ストレージ装置が故障している可能性が高くなるため、代替ストレージ装置の信頼性が低下することになる。
【０００６】
１つの側面では、本発明は、ストレージ装置に対応する代替ストレージ装置の信頼性を維持して代替ストレージ装置の確認処理にかかる負荷を抑制することができるストレージ制御装置、制御方法、および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、フラッシュメモリを記憶媒体とするストレージ装置から取得した、ストレージ装置の書き込みデータ量を記憶部に記憶させ、記憶部が記憶するストレージ装置の書き込みデータ量とフラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定するストレージ制御装置、制御方法、および制御プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、ストレージ装置に対応する代替ストレージ装置の信頼性を維持して代替ストレージ装置の確認処理にかかる負荷を抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。
【図２】図２は、ストレージシステム２００の構成例を示す説明図である。
【図３】図３は、ＣＭ２０１ａのハードウェア構成例を示すブロック図である。
【図４】図４は、ＣＭ２０１ａの機能構成例を示すブロック図である。
【図５】図５は、ホットスペアパトロール周期閾値管理テーブル４１１の記憶内容の一例を示す説明図である。
【図６】図６は、複数のＲＡＩＤグループを有する場合のホットスペアのパトロール周期の一例を示す説明図である。
【図７】図７は、ホットスペア設定処理手順の一例を示すフローチャートである。
【図８】図８は、ホットスペアのパトロール処理手順の一例を示すフローチャートである。
【図９】図９は、ホットスペアパトロール周期閾値設定処理手順の一例を示すフローチャートである。
【図１０】図１０は、書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。
【図１１】図１１は、ＳＳＤ追加処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示のストレージ制御装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。ストレージ制御装置１０１は、フラッシュメモリを記憶媒体とする複数のストレージ装置１０２＃１〜３と、ストレージ装置１０２＃４とを制御するコンピュータである。例えば、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３によりＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術によるＲＡＩＤグループを形成するとともに、ストレージ装置１０２＃４を、ストレージ装置１０２＃１〜３に対応する代替ストレージ装置に設定する。ストレージ制御装置１０１は、例えば、ストレージ装置１０２＃４を通電状態で待機しておき、ストレージ装置１０２＃１〜３のいずれかが故障した際に、故障したストレージ装置１０２の代わりとして用いる。以下、代替ストレージ装置を、「ホットスペア（ＨＳ：Ｈｏｔ  Ｓｐａｒｅ）」と呼称する。
【００１２】
ＲＡＩＤ技術は、複数のストレージ装置を組み合わせて仮想的なディスクとして運用する技術である。ストレージ制御装置１０１は、ＲＡＩＤ技術を用いて、ＲＡＩＤグループに属するストレージ装置により、１つの仮想的なディスクを形成する。ここで、ＲＡＩＤには、仮想的なディスクの形成の仕方を表すＲＡＩＤレベルが存在する。ＲＡＩＤレベルは、ＲＡＩＤ０〜ＲＡＩＤ６までのＲＡＩＤレベルが存在する。また、ＲＡＩＤには、ＲＡＩＤ０＋１というように、複数のＲＡＩＤレベルを組み合わせたレベルも存在する。本実施の形態は、どのＲＡＩＤレベルであっても適用することができる。ストレージ制御装置１０１を利用する利用者は、構成ドライブ、構成ＲＡＩＤグループ、構成ＲＡＩＤレベル、論理容量を選択、設定することにより、任意の論理ボリュームを使用することができる。
【００１３】
ストレージ装置１０２＃１〜３は、フラッシュメモリを記憶媒体とするストレージ装置、すなわち、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。フラッシュメモリには、具体的には、例えば、ＮＯＲ型のフラッシュメモリとＮＡＮＤ型のフラッシュメモリとがある。フラッシュメモリは、書き込みを行う度に絶縁体となる酸化膜が貫通する電子によって劣化するため、書き込み可能回数が存在する。ここで、書き込み可能回数は、書き込み可能な上限となる回数である。そこで、フラッシュメモリは、保証期間内で、書き込み可能回数に基づいた書き込み可能な書き込み可能データ量を示すＴＢＷ（Ｔｏｔａｌ  Ｂｙｔｅｓ  Ｗｒｉｔｔｅｎ）の情報を有する。また、ストレージ装置１０２＃４は、フラッシュメモリを記憶媒体とするストレージ装置であってもよいし、他のストレージ装置として、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等でもよい。
【００１４】
ストレージ制御装置１０１は、ホットスペアとなるストレージ装置１０２＃４に対しても、ドライブの健全性を確保することを目的として、正常に機能するか否かを確認する確認処理を定期的に実行する。以下、確認処理を、「パトロール処理」と呼称する。また、パトロール処理の実行周期を、「パトロール周期」と呼称する。ホットスペアのパトロール処理を定期的に行うことにより、ホットスペアの信頼性を維持することができる。ここで、ホットスペアの信頼性とは、ホットスペアに対応するストレージ装置１０２が故障した際にホットスペアが正常に機能する可能性を示す。
【００１５】
ホットスペアに対してパトロール処理を定期的に行う理由は、ホットスペアに対応するストレージ装置１０２が故障した際にホットスペアが故障している可能性があるためである。ホットスペアがＨＤＤである場合、ＨＤＤの故障としては、例えば、駆動系等の機械的な故障が考えられる。また、ホットスペアがＳＳＤである場合、ＳＳＤでは機械的な故障は発生しないため、ＳＳＤは、ＨＤＤに比べ故障する可能性は低い。しかしながら、発生する可能性は低いものの、ホストからの監視時間に対して、ＳＳＤが応答を行えずタイムアウトになってしまった場合、ホストは、ＳＳＤが故障したものとみなすことになる。また、ＳＳＤには、停電中に書き込むデータを保証するための電力を蓄えるコンデンサを有するものがある。そして、発生する可能性は低いものの、前述のコンデンサが故障すると、ＳＳＤが故障したことになる。
【００１６】
ここで、パトロール処理の具体例として、ストレージ制御装置１０１は、ＲｅａｄコマンドやＶｅｒｉｆｙコマンドをストレージ装置１０２＃４に発行する。例えば、ストレージ制御装置１０１がＲｅａｄコマンドを送信したとする。この場合、Ｒｅａｄコマンドを受け付けたストレージ装置１０２＃４は、記憶媒体となるフラッシュメモリからデータを読み出して、正常に読み出せたか否かを示す情報と、読み出したデータとをストレージ制御装置１０１に送信する。また、ストレージ制御装置１０１がＶｅｒｉｆｙコマンドを送信したとする。この場合、Ｖｅｒｉｆｙコマンドを受け付けたストレージ装置１０２＃４は、記憶媒体となるフラッシュメモリからデータを読み出して、正常に読み出せたか否かを示す情報をストレージ制御装置１０１に送信する。Ｒｅａｄコマンドを送信した場合とＶｅｒｉｆｙコマンドを送信した場合とのいずれの場合であっても、ストレージ制御装置１０１は、正常に読み出せたことを示す情報を受け付けた場合、ストレージ装置１０２＃４が正常であることを確認する。
【００１７】
このように、Ｖｅｒｉｆｙコマンドを用いた方が、読み出したデータを転送しない分、Ｒｅａｄコマンドを用いる場合と比較して、ストレージ制御装置１０１とストレージ装置１０２＃４とを接続するバスにかかる負荷を抑制することができる。
【００１８】
ここで、ホットスペアの信頼性を維持したままホットスペアのパトロール処理にかかる負荷を抑制することは困難である。例えば、パトロール周期を短くすると、ストレージ装置１０２が故障した際にホットスペアが故障している可能性が小さくなるため、ホットスペアの信頼性は維持できるものの、ホットスペアのパトロール処理にかかる負荷が増大することになる。一方、パトロール周期を長くすると、ホットスペアのパトロール処理にかかる負荷は抑制されるものの、ストレージ装置が故障した際にホットスペアが故障している可能性が高くなるため、ホットスペアの信頼性が低下することになる。
【００１９】
また、ホットスペアのパトロール処理により異常を検出した場合、ストレージ制御装置は、ホットスペアを故障と判断し、ホットスペアの切り離しを実施するが、利用者視点では使用していないにも関わらず、故障が発生することもあり不満となる。また、ホットスペアがＳＳＤである場合、ＲｅａｄコマンドやＶｅｒｉｆｙコマンドが繰り返し行われると、読み出しが繰り返されることによりビットエラーが発生する、いわゆるリードディスターブが起きることがある。従って、過度なＲｅａｄコマンドやＶｅｒｉｆｙコマンドは、ホットスペアの劣化を助長することになる。
【００２０】
そこで、本実施の形態では、ホットスペアのパトロール周期を、ストレージ装置１０２＃１〜３の書き込みデータ量とＴＢＷとに基づき決定する方法について説明する。図１を用いて、ストレージ制御装置１０１の動作例について説明する。図１の例において、ストレージ装置１０２＃１〜３のＴＢＷは、３．０［ＰＢ（Ｐｅｔａ  Ｂｙｔｅ）］であるとする。
【００２１】
図１の上部において、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量を取得し、ストレージ制御装置１０１がアクセス可能な記憶部に記憶する。図１の上部の例では、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量として、ストレージ装置１０２＃１〜３から、それぞれ、１．０６［ＰＢ］、１．０４［ＰＢ］、１．６２［ＰＢ］を取得する。ストレージ制御装置１０１は、取得したストレージ装置１０２＃１〜３の書き込みデータ量を記憶部に記憶する。
【００２２】
そして、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量と、ストレージ装置１０２のＴＢＷとに基づいて、ホットスペアとなるストレージ装置１０２＃４のパトロール周期を決定する。例えば、図１の上部の例において、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量のうち最大となる１．６２［ＰＢ］を特定する。そして、ストレージ制御装置１０１は、ホットスペアとなるストレージ装置１０２＃４のパトロール周期を、１．６２［ＰＢ］に対応する月１回として決定する。
【００２３】
ここで、ストレージ制御装置１０１は、例えば、書き込みデータ量とパトロール周期とを対応付けたテーブルを参照して、ホットスペアのパトロール周期を決定してもよい。例えば、テーブルには、書き込みデータ量の閾値を設定しておく。そして、ストレージ制御装置１０１は、テーブルを参照して、閾値を超えない場合には、低頻度、すなわち長い周期をホットスペアのパトロール周期として決定し、閾値を超えた場合には、高頻度、すなわち短い周期をホットスペアのパトロール周期として決定する。テーブルを用いた例については、図５で説明する。
【００２４】
または、ストレージ制御装置１０１の管理者が、書き込みデータ量が０の場合のパトロール周期と、書き込みデータ量がＴＢＷの場合のパトロール周期とを予め設定しておく。そして、ストレージ制御装置１０１は、ホットスペアのパトロール周期を、最大の書き込みデータ量と、書き込みデータ量が０の場合のパトロール周期と、書き込みデータ量がＴＢＷの場合のパトロール周期とを用いた線形補完により決定してもよい。例えば、書き込みデータ量が０の場合のパトロール周期が９時間に一回であり、書き込みデータ量がＴＢＷの場合のパトロール周期が１時間に一回であったとする。ここで、書き込みデータ量がＴＢＷの半分の値であれば、ストレージ制御装置１０１は、ホットスペアのパトロール周期を、中間の値となる５時間に一回に決定する。
【００２５】
次に、図１の下部では、図１の上部で示した状態から相当の時間が経過して、ストレージ装置１０２＃１〜３の書き込みデータ量が増加した例を示す。図１の下部の例では、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量として、ストレージ装置１０２＃１〜３から、それぞれ、１．５６［ＰＢ］、１．５４［ＰＢ］、２．１２［ＰＢ］を取得する。ストレージ制御装置１０１は、取得したストレージ装置１０２＃１〜３の書き込みデータ量を記憶部に記憶する。
【００２６】
そして、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量と、ストレージ装置１０２のＴＢＷとに基づいて、パトロール周期を決定する。例えば、図１の下部の例において、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の書き込みデータ量のうち最大となる２．１２［ＰＢ］を特定する。そして、ストレージ制御装置１０１は、ホットスペアとなるストレージ装置１０２＃４のパトロール周期を、２．１２［ＰＢ］に対応する週１回として決定する。
【００２７】
このように、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の故障し易さを示唆する書き込みデータ量に応じたパトロール周期でホットスペアとなるストレージ装置１０２＃４のパトロール処理を行う。従って、ストレージ装置１０２＃４の信頼性を維持してストレージ装置１０２＃４のパトロール処理にかかる負荷を抑制できる。また、ストレージ装置１０２＃４がＳＳＤであれば、フラッシュメモリへの読み出しを抑制することができるため、劣化を抑制し、高寿命化を図ることができる。
【００２８】
例えば、図１の上部では、ストレージ装置１０２＃１〜３が故障する可能性は比較的小さいため、パトロール周期を長くすることにより、ストレージ装置１０２＃４のパトロール処理にかかる負荷を抑制することができる。また、図１の下部では、ストレージ装置１０２＃３が故障する可能性が大きくなってきたため、パトロール周期を短くすることにより、ストレージ装置１０２＃４の信頼性を維持することができる。
【００２９】
なお、図１では、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３によりＲＡＩＤグループを形成した例を説明したが、これに限らない。例えば、本実施の形態は、１つのストレージ装置１０２に対応する１つのホットスペアがある場合にも適用することができる。また、図１では、ホットスペアのパトロール周期を決定する例を説明したが、これに限らない。例えば、ストレージ制御装置１０１は、所定期間のうちに何回ホットスペアのパトロール処理を実行するかという回数を決定してもよい。次に、ストレージ制御装置１０１を、ストレージシステムの制御装置に適用した例を、図２を用いて説明する。
【００３０】
図２は、ストレージシステム２００の構成例を示す説明図である。ストレージシステム２００は、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２０１ａ、２０１ｂと、ＣＭ２０１ａ、２０１ｂとホストコンピュータ２１１との接続制御を行うチャネルアダプタ２０３ａ〜２０３ｄと、デバイスエンクロージャ２０２とを有する。図２に示すＣＭ２０１ａと、２０１ｂとが、図１に示したストレージ制御装置１０１に相当する。
【００３１】
ストレージシステム２００は、内蔵する複数の記憶デバイスに対するデータの入出力を行う。ストレージシステム２００は、ＲＡＩＤ１〜６等のＲＡＩＤ機能を有し、複数の記憶デバイスをまとめてＲＡＩＤを形成することにより、各ＲＡＩＤをそれぞれ１台の記憶デバイスとして管理する。
【００３２】
ＣＭ２０１ａ、２０１ｂは、ストレージシステム２００全体の制御を行う。また、ＣＭ２０１ａおよびＣＭ２０１ｂは、バス２０４によって接続される。このバス２０４を介して、ＣＭ２０１ａおよびＣＭ２０１ｂの間で、制御情報やデータが通信される。
【００３３】
ホストコンピュータ２１１は、業務処理を実行するコンピュータであり、ファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）で形成されたＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介してストレージシステム２００とデータ通信可能に接続される。ホストコンピュータ２１１は、業務処理に使用するデータについて、ストレージシステム２００への保存およびストレージシステム２００からの読み出しを行う。
【００３４】
デバイスエンクロージャ２０２は、図１で示したストレージ装置１０２に相当するＳＳＤ＃１〜Ｎおよび図示しない他の複数の記憶デバイスを含む。デバイスエンクロージャ２０２内の複数の記憶デバイスにより、ＲＡＩＤグループが生成される。ＲＡＩＤグループは、ＲＡＩＤの技術を用いた論理記憶領域である。以下の説明では、説明の簡略化のため、ＳＳＤ＃１〜３によりＲＡＩＤ５のＲＡＩＤグループを形成しており、ＳＳＤ＃４は、ＳＳＤ＃１〜３により形成されたＲＡＩＤグループに対応付けられたホットスペアであるとする。従って、ＳＳＤ＃１〜３が、図１に示したストレージ装置１０２＃１〜３に相当する。そして、ＳＳＤ＃４が、図１に示したストレージ装置１０２＃４に相当する。また、ＳＳＤ＃１〜Ｎのうち、ＲＡＩＤグループにも組み込まれず、ホットスペアにも設定されないＳＳＤがあってもよい。
【００３５】
ＳＳＤ＃１〜Ｎは、ＲＡＩＤを構成可能なＳＳＤである。また、デバイスエンクロージャ２０２が有する他のストレージ装置は、ＳＳＤ以外のフラッシュメモリを用いた記憶媒体を用いてもよい。例えば、デバイスエンクロージャ２０２が有する他のストレージ装置は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のフラッシュメモリ以外の不揮発性半導体メモリを用いた記憶媒体を用いてもよい。または、デバイスエンクロージャ２０２が有する他のストレージ装置は、磁気記憶媒体にデータを記録するＨＤＤであってもよい。
【００３６】
チャネルアダプタ２０３ａ〜２０３ｄは、ホストコンピュータ２１１とＣＭ２０１ａ、２０１ｂとの接続制御を行う。例えば、チャネルアダプタ２０３ａは、ホストコンピュータ２１１からの要求を受け付けて、ＣＭ２０１ａとの接続制御を行う。ＣＭ２０１ａ、２０１ｂは、それぞれ複数個（図２ではそれぞれ２個）のチャネルアダプタ２０３ａ〜２０３ｄに接続可能になっている。すなわち、例えばＣＭ２０１ａは、冗長構成が実現されるように、２つの異なるチャネルアダプタ２０３ａ、２０３ｂにそれぞれ接続される。
【００３７】
なお、チャネルアダプタ２０３ａ〜２０３ｄとホストコンピュータ２１１との間の通信は、ファイバチャネルで形成されたＳＡＮによって接続されるが、ファイバチャネル以外の接続方式によって接続されてもよい。また、チャネルアダプタ２０３ａ〜２０３ｄとホストコンピュータ２１１との間の通信は、専用線やＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）を用いて、ストレージシステム２００をホストコンピュータ２１１から遠隔地に設置するように構成してもよい。
【００３８】
なお、図２において、ＣＭ２０１ａ、２０１ｂは２個図示しており、およびチャネルアダプタ２０３ａ〜２０３ｄは、ＣＭ２０１ａ、２０１ｂそれぞれに対してそれぞれ２個ずつ図示したが、これらの数はそれぞれ任意である。また、デバイスエンクロージャ２０２は、１個図示したが、デバイスエンクロージャの数は任意である。
【００３９】
図３は、ＣＭ２０１ａのハードウェア構成例を示すブロック図である。ＣＭ２０１ａは、ＣＰＵ３０１ａ、メモリ３０２ａ、およびデバイスインタフェース（Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）３０３ａ＿ａ、３０３ａ＿ｂを有する。ＣＰＵ３０１ａ〜デバイスインタフェース３０３ａ＿ｂは、それぞれ、バス３０４ａにより接続される。
【００４０】
ＣＰＵ３０１ａは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などに従って処理を実行し、各種制御を行う。また、ＣＭ２０１ａは、メモリ３０２ａ、デバイスエンクロージャ２０２が有するＳＳＤ＃１〜４および他のストレージ装置、チャネルアダプタ２０３ａ〜２０３ｄなどの資源管理を行う。
【００４１】
メモリ３０２ａは、ＣＰＵ３０１ａがストレージシステム２００を制御する際に用いる制御データを記憶する。また、メモリ３０２ａは、デバイスエンクロージャ２０２が有する各ストレージ装置に読み書きされる入出力データを一時的に記憶する。
【００４２】
デバイスインタフェース３０３ａ＿ａ、３０３ａ＿ｂは、デバイスエンクロージャ２０２が有する各ストレージ装置との接続制御を行う。また、ＣＭ２０１ａ、２０１ｂは、制御装置として機能し、ストレージシステム２００に対して着脱可能である。ここで、ＣＭ２０１ｂは、ＣＭ２０１ａと同一の構成であるため、説明を省略する。
【００４３】
（ＣＭ２０１の機能構成例）
図４は、ＣＭ２０１ａの機能構成例を示すブロック図である。ＣＭ２０１ａは、制御部４００と、記憶部４１０とを有する。制御部４００は、特定部４０１と、決定部４０２と、実行部４０３と、を含む。制御部４００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したメモリ３０２や、ＳＳＤ＃１〜Ｎなどである。また、各部の処理結果は、ＣＰＵ３０１のレジスタや、ＣＰＵ３０１のキャッシュメモリ、メモリ３０２等に格納される。
【００４４】
また、ＣＭ２０１ａは、ホットスペアパトロール周期閾値管理テーブル４１１にアクセス可能である。ホットスペアパトロール周期閾値管理テーブル４１１は、書き込み可能データ量の所定の割合に応じた確認処理の実行周期を示す周期情報を記憶する。書き込みデータ量の所定の割合は、ＴＢＷに対するパトロール周期を変更する書き込みデータ量の閾値の割合である。書き込みデータ量の所定の割合は、０以上１以下の値であり、例えば、０．３、０．６等である。ホットスペアパトロール周期閾値管理テーブル４１１の情報は、記憶部４１０であるメモリ３０２といった記憶装置に格納される。ホットスペアパトロール周期閾値管理テーブル４１１の記憶内容の一例を、図５で示す。
【００４５】
記憶部４１０は、ＲＡＩＤグループ内の各々のＳＳＤから取得した、各々のＳＳＤの書き込みデータ量を記憶してもよい。また、記憶部４１０は、ＳＳＤ＃１〜ＮのいずれかのＳＳＤから取得した、いずれかのＳＳＤの書き込みデータ量を記憶する。
【００４６】
決定部４０２は、ＲＡＩＤグループ内の各々のＳＳＤの書き込みデータ量とＴＢＷとに基づいて、ホットスペアのパトロール周期を決定する。例えば、決定部４０２は、図１で記載した方法により、ホットスペアのパトロール周期を決定する。
【００４７】
また、例えば、ＲＡＩＤグループ内の各々のＳＳＤのＴＢＷが全て同一であれば、決定部４０２は、ＴＢＷに対する、各々のＳＳＤの書き込みデータ量のうちの最大の書き込みデータ量の割合を求める。そして、決定部４０２は、求めた割合に応じたパトロール周期を、ホットスペアのパトロール周期として決定してもよい。また、ＲＡＩＤグループ内の各々のＳＳＤのＴＢＷが異なるのであれば、まず、決定部４０２は、各々のＴＢＷに対する、各々のＳＳＤの書き込みデータ量のうちの書き込みデータ量の割合をそれぞれ求める。そして、決定部４０２は、それぞれ求めた割合のうち最大の割合に応じたパトロール周期を、ホットスペアのパトロール周期として決定してもよい。
【００４８】
また、決定部４０２は、ホットスペアパトロール周期閾値管理テーブル４１１を参照して、各々のストレージ装置の書き込みデータ量に基づいて、ホットスペアに対する確認処理を実行する周期を決定してもよい。
【００４９】
また、決定部４０２は、さらに、ＲＡＩＤグループ内の各々のＳＳＤの書き込みデータ量とＴＢＷとに基づいて、ホットスペアに対する確認処理の完了後にホットスペアの動作を停止させるか否かを決定してもよい。
【００５０】
実行部４０３は、決定部４０２が決定したパトロール周期で、ホットスペアのパトロール処理を実行する。また、実行部４０３は、ＳＳＤ＃１〜Ｎのうち、ＲＡＩＤグループ、ホットスペアのいずれにも該当しないＳＳＤについては、パトロール処理を行わない。
【００５１】
また、複数のＲＡＩＤグループに対応する２以上のホットスペアがあるとする。この場合、特定部４０１は、複数のＲＡＩＤグループの各々のＲＡＩＤグループ内の各々のＳＳＤの書き込みデータ量に基づいて、各々のＲＡＩＤグループ内の最大の書き込みデータ量を特定する。そして、決定部４０２は、ホットスペアパトロール周期閾値管理テーブル４１１を参照して、特定した各々のＲＡＩＤグループの最大の書き込みデータ量に応じた周期が短い順に、当該周期を各々のホットスペアに対してパトロール周期として順次決定する。具体的な決定例は、図６で説明する。
【００５２】
図５は、ホットスペアパトロール周期閾値管理テーブル４１１の記憶内容の一例を示す説明図である。ホットスペアパトロール周期閾値管理テーブル４１１は、書き込みデータ量に応じたパトロール周期とパトロール処理内容とを管理するテーブルである。図５に示すホットスペアパトロール周期閾値管理テーブル４１１は、レコード５０１−１〜４を有する。
【００５３】
ホットスペアパトロール周期閾値管理テーブル４１１は、ＴＢＷ閾値と、書き込みデータ量閾値と、パトロール周期と、パトロール処理内容というフィールドを含む。ＴＢＷ閾値フィールドには、ＴＢＷを１とした際のパトロール周期を変える閾値となる、所定の割合が格納される。書き込みデータ量閾値フィールドには、ＴＢＷ閾値に基づいて算出された、パトロール周期やパトロール処理内容が変化する書き込みデータ量の閾値が格納される。パトロール周期フィールドには、ＳＳＤの書き込みデータ量が書き込みデータ量閾値を超えた際のホットスペアのパトロール処理を行う周期を示す値が格納される。パトロール処理内容フィールドには、書き込みデータ量が書き込みデータ量閾値を超えた際のホットスペアのパトロール処理の内容を示すデータが格納される。
【００５４】
図５に示すホットスペアパトロール周期閾値管理テーブル４１１は、ＳＳＤのＴＢＷが３［ＰＢ］である例を示す。例えば、レコード５０１−１は、ＳＳＤの書き込みデータ量が０．９［ＰＢ］以下である場合には、ホットスペアのパトロール処理を周期的に行わないことを示す。さらに、レコード５０１−１は、ホットスペアのパトロール処理の内容が、ホットスペアを起動させ、初回の電源投入時だけ全面ｖｅｒｉｆｙを実行し、ホットスペア停止を実行することを示す。
【００５５】
また、レコード５０１−２は、ＳＳＤの書き込みデータ量が１．８［ＰＢ］以下であり、かつ、０．９［ＰＢ］を超える場合、ホットスペアのパトロール処理を月１回行うことを示す。さらに、レコード５０１−２は、ホットスペアのパトロール処理内容が、ホットスペアを起動させ、全面ｖｅｒｉｆｙを実行し、ホットスペア停止を実行することを示す。
【００５６】
また、レコード５０１−３は、ＳＳＤの書き込みデータ量が２．７［ＰＢ］以下であり、かつ、１．８［ＰＢ］を超える場合、ホットスペアのパトロール処理を週１回行うことを示す。さらに、レコード５０１−３は、ホットスペアのパトロール処理の内容が、ホットスペアを起動させ、全面ｖｅｒｉｆｙを実行し、ホットスペア停止を実行することを示す。
【００５７】
また、レコード５０１−４は、ＳＳＤの書き込みデータ量が２．７［ＰＢ］を超える場合、ホットスペアのパトロール処理を１秒ごとに行う。さらに、パトロール処理の内容がホットスペア起動後、１秒ごとに小セクタ分だけｖｅｒｉｆｙ  ＣＭＤを実行し続け、ホットスペアは停止しないことを示す。
【００５８】
図５の例では、ＳＳＤの書き込みデータ量が２．７［ＰＢ］を超えない場合、ＳＳＤが故障する可能性が少ないため、ホットスペアのパトロール処理には、ホットスペア停止が含まれる。これに対し、ＳＳＤの書き込みデータ量が２．７［ＰＢ］を超えた場合には、ＳＳＤが故障する可能性が高いため、ホットスペアのパトロール処理には、ホットスペア停止が含まれない。
【００５９】
次に、複数のＲＡＩＤグループとホットスペアが多対多で対応付いている場合におけるホットスペアのパトロール周期の決定例について、図６を用いて説明する。
【００６０】
図６は、複数のＲＡＩＤグループを有する場合のホットスペアのパトロール周期の一例を示す説明図である。図６の例では、ストレージシステム２００は、ＲＡＩＤグループＲ１〜Ｒ４という、４つのＲＡＩＤグループを有するとする。そして、ＲＡＩＤグループＲ１〜Ｒ４に対して、ホットスペアＨＳ＃１、２という２つのホットスペアを設定したとする。
【００６１】
以下、説明の簡略化のために、ＲＡＩＤグループＲ１〜Ｒ４のそれぞれを、単に、Ｒ１〜Ｒ４と記載する。また、図６の例では、説明の簡略化のために、ＲＡＩＤグループＲ１〜Ｒ４に含まれる全てのＳＳＤのＴＢＷが３［ＰＢ］であるとする。なお、ＳＳＤのＴＢＷは各ＲＡＩＤグループで異なってよく、この場合、ＣＭ２０１ａは、各ＲＡＩＤグループに対応するホットスペアパトロール周期閾値管理テーブル４１１を記憶する。
【００６２】
図６に示す表６０１は、Ｒ１〜Ｒ４それぞれのＲＡＩＤグループ内の最大の書き込みデータ量を示す。具体的には、表６０１は、Ｒ１内の最大の書き込みデータ量が、１．０２［ＰＢ］であり、Ｒ２〜Ｒ４内の最大の書き込みデータ量が０［ＰＢ］であることを示す。
【００６３】
ＣＭ２０１ａは、複数のＲＡＩＤグループの各々のＲＡＩＤグループの最大の書き込みデータ量に応じたパトロール周期を、パトロール周期の短い順に、２以上のホットスペアの各々のホットスペアのパトロール周期として順次決定する。例えば、表６０１の例では、ＲＡＩＤグループの最大の書き込みデータ量は、大きい順に、１．０２［ＰＢ］、０［ＰＢ］となる。そして、図５に示したホットスペアパトロール周期閾値管理テーブル４１１を参照すると、パトロール周期は、短い順に、月１回、周期的に行わない、となる。従って、ＣＭ２０１ａは、最も短いパトロール周期となる月１回を、ホットスペアＨＳ＃１のパトロール周期として決定し、次に短いパトロール周期となるパトロール処理を周期的に行わないことを、ホットスペアＨＳ＃２のパトロール周期として決定する。
【００６４】
次に、表６０１で示した状態からある程度の時間が経過した状態におけるＲ１〜Ｒ４それぞれのＲＡＩＤグループ内の最大の書き込みデータ量を、表６０２として示す。具体的には、表６０２は、Ｒ１内の最大の書き込みデータ量が２．８５［ＰＢ］であり、Ｒ３内の最大の書き込みデータ量が１．５１［ＰＢ］であり、Ｒ２、Ｒ４内の最大の書き込みデータ量が０［ＰＢ］であることを示す。
【００６５】
表６０２の例では、ＲＡＩＤグループの最大の書き込みデータ量は、大きい順に、２．８５［ＰＢ］、１．５１［ＰＢ］、０［ＰＢ］となる。そして、図５に示したホットスペアパトロール周期閾値管理テーブル４１１を参照すると、パトロール周期は、短い順に、１秒ごと、月１回、周期的に行わない、となる。従って、ＣＭ２０１ａは、最も短いパトロール周期となる１秒ごとを、ホットスペアＨＳ＃１のパトロール周期として決定し、次に短いパトロール周期となる月１回を、ホットスペアＨＳ＃２のパトロール周期として決定する。
【００６６】
次に、ＣＭ２０１ａが実行するフローチャートを、図７〜図１１を用いて説明する。
【００６７】
図７は、ホットスペア設定処理手順の一例を示すフローチャートである。ホットスペア設定処理は、ＲＡＩＤグループに対応するホットスペアを設定する処理である。また、ホットスペア設定処理は、ＲＡＩＤグループを形成する際に実行される。
【００６８】
ＣＭ２０１ａは、ＳＳＤ＃１〜＃ＮのいくつかからのＳＳＤにより、ＲＡＩＤグループを作成する（ステップＳ７０１）。次に、ＣＭ２０１ａは、作成したＲＡＩＤグループに論理ボリュームを割り当てる（ステップＳ７０２）。そして、ＣＭ２０１ａは、作成したＲＡＩＤグループに対応するホットスペアを設定する（ステップＳ７０３）。ステップＳ７０３の処理終了後、ＣＭ２０１ａは、ホットスペア設定処理を終了する。ホットスペア設定処理を実行することにより、ＣＭ２０１ａは、作成したＲＡＩＤグループの信頼性を高めることができる。
【００６９】
図８は、ホットスペアのパトロール処理手順の一例を示すフローチャートである。ホットスペアのパトロール処理は、ホットスペアの健全性を確認する処理である。また、ホットスペアのパトロール処理は、決定したパトロール周期に従って実行される。
【００７０】
ＣＭ２０１ａは、担当ＲＡＩＤグループの現在のパトロール周期を確認する（ステップＳ８０１）。次に、ＣＭ２０１ａは、担当ＲＡＩＤグループの書き込みデータ量に応じたホットスペアのパトロール処理を実行する（ステップＳ８０２）。ステップＳ８０２の処理終了後、ＣＭ２０１ａは、ホットスペアのパトロール処理を終了する。パトロール処理を実行することにより、ＣＭ２０１ａは、書き込みデータ量に応じた周期で、ホットスペアのパトロール処理を行うことができる。
【００７１】
図９は、ホットスペアパトロール周期閾値設定処理手順の一例を示すフローチャートである。ホットスペアパトロール周期閾値設定処理は、ホットスペアパトロール周期閾値管理テーブル４１１を作成して、書き込みデータ量閾値を設定する処理である。
【００７２】
ＣＭ２０１ａは、ＲＡＩＤグループ内の各ＳＳＤのＴＢＷを取得する（ステップＳ９０１）。次に、ＣＭ２０１ａは、取得した各ＳＳＤのＴＢＷに基づいて、ホットスペアパトロール周期閾値管理テーブル４１１を作成する（ステップＳ９０２）。
【００７３】
具体的には、まず、ＣＭ２０１ａは、ホットスペアパトロール周期閾値管理テーブル４１１の各フィールドのうち、書き込みデータ量閾値フィールドの値が空欄となるホットスペアパトロール周期閾値管理テーブル４１１を記憶する。そして、ＣＭ２０１ａは、取得したＴＢＷと、ホットスペアパトロール周期閾値管理テーブル４１１の各レコードのＴＢＷ閾値を乗算した値を、各レコードの書き込みデータ量閾値フィールドに格納する。例えば、取得したＴＢＷが３［ＰＢ］である場合、レコード５０１−２について、ＣＭ２０１ａは、０．３×３＝０．９［ＰＢ］を、レコード５０１−２の書き込みデータ量閾値フィールドに格納する。
【００７４】
ステップＳ９０２の処理終了後、ＣＭ２０１ａは、ホットスペアパトロール周期閾値設定処理を終了する。ホットスペアパトロール周期閾値設定処理を実行することにより、ＣＭ２０１ａは、ＳＳＤのＴＢＷに応じた書き込みデータ量閾値を設定することができる。
【００７５】
図１０は、書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。書き込みデータ量閾値超え判定処理は、書き込みデータ量閾値を超えたか否かを判定する処理である。また、書き込みデータ量閾値超え判定処理は、定期的に実行される。
【００７６】
ＣＭ２０１ａは、ＲＡＩＤグループ内の各ＳＳＤにｌｏｇ  ｓｅｎｓｅコマンドを発行して、書き込みデータ量を取得する（ステップＳ１００１）。次に、ＣＭ２０１ａは、少なくとも１つのＳＳＤの書き込みデータ量が書き込みデータ量閾値を超えたか否かを判断する（ステップＳ１００２）。全てのＳＳＤの書き込みデータ量が書き込みデータ量閾値を超えない場合（ステップＳ１００２：Ｎｏ）、ＣＭ２０１ａは、ステップＳ１００１の処理に移行する。一方、少なくとも１つのＳＳＤの書き込みデータ量が書き込みデータ量閾値を超えた場合（ステップＳ１００２：Ｙｅｓ）、ＣＭ２０１ａは、少なくとも１つのホットスペアのパトロール周期を変更する（ステップＳ１００３）。
【００７７】
ステップＳ１００３の処理において、ＣＭ２０１ａは、２つ以上のホットスペアのパトロール周期を変更してもよい。例えば、ステップＳ１００２の処理において、あるＲＡＩＤグループ内の２つのＳＳＤの書き込みデータ量が、書き込みデータ量閾値として、２．７［ＰＢ］を超えたとする。また、あるＲＡＩＤグループのホットスペアとして設定されたＳＳＤが２以上あるとする。この場合、ステップＳ１００３の処理において、ＣＭ２０１ａは、あるＲＡＩＤグループのホットスペアとして設定されたＳＳＤのうち、２つのＳＳＤのホットスペアのパトロール周期を１秒ごとに変更する。
【００７８】
次に、ＣＭ２０１ａは、最大の書き込みデータ量が書き込みデータ量閾値を超えるＲＡＩＤグループの数が増えたか否かを判断する（ステップＳ１００４）。最大の書き込みデータ量が書き込みデータ量閾値を超えるＲＡＩＤグループの数が増えた場合（ステップＳ１００４：Ｙｅｓ）、ＣＭ２０１ａは、パトロール周期を変更していないホットスペアがあるか否かを判断する（ステップＳ１００５）。
【００７９】
パトロール周期を変更していないホットスペアがある場合（ステップＳ１００５：Ｙｅｓ）、ＣＭ２０１ａは、パトロール周期を変更するホットスペアを増加させる（ステップＳ１００６）。ステップＳ１００６の処理について、例えば、４つのＲＡＩＤグループがあり、４つのＲＡＩＤグループのホットスペアとして設定されたＳＳＤが２つあるとする。この場合に、ステップＳ１００４の処理において、最大の書き込みデータ量が書き込みデータ量を超えるＲＡＩＤグループの数が１から２に増えたとする。そして、２つのホットスペアのうち、１つのホットスペアのパトロール周期が１秒ごとであり、もう一つのホットスペアのパトロール周期が週１回であって、かつ、パトロール周期を変更していないとものとする。この場合、ステップＳ１００６の処理において、ＣＭ２０１ａは、もう一つのホットスペアのパトロール周期を１秒ごとに変更する。ステップＳ１００６の処理終了後、ＣＭ２０１ａは、書き込みデータ量閾値超え判定処理を終了する。
【００８０】
最大の書き込みデータ量が書き込みデータ量閾値を超えるＲＡＩＤグループの数が増えていない場合（ステップＳ１００４：Ｎｏ）、パトロール周期を変更していないホットスペアがない場合（ステップＳ１００５：Ｎｏ）、ＣＭ２０１ａは、ステップＳ１００１の処理に移行する。書き込みデータ量閾値超え判定処理を実行することにより、ＣＭ２０１ａは、ＳＳＤが故障する可能性が高まった場合にパトロール周期を短くして、ホットスペアの信頼性を高めることができる。
【００８１】
図１１は、ＳＳＤ追加処理手順の一例を示すフローチャートである。ＳＳＤ追加処理は、ＲＡＩＤグループにＳＳＤを追加する処理である。
【００８２】
ＣＭ２０１ａは、担当ＲＡＩＤグループに新たなＳＳＤを追加する（ステップＳ１１０１）。次に、ＣＭ２０１ａは、担当ＲＡＩＤグループの最大の書き込みデータ量が書き込みデータ量閾値以下か否かを判断する（ステップＳ１１０２）。
【００８３】
担当ＲＡＩＤグループの最大の書き込みデータ量が書き込みデータ量閾値以下である場合（ステップＳ１１０２：Ｙｅｓ）、ＣＭ２０１ａは、担当ＲＡＩＤグループのホットスペアのパトロール周期を長く設定する（ステップＳ１１０３）。ステップＳ１１０２とステップＳ１１０３との処理について、例えば、書き込みデータ量閾値を２．７［ＰＢ］とし、あるＲＡＩＤグループ内のＳＳＤを交換した結果、最大の書き込みデータ量が、２．８［ＰＢ］から１．９［ＰＢ］に下がったとする。この場合、ＣＭ２０１ａは、あるＲＡＩＤグループのホットスペアのパトロール周期を１秒ごとから週１回に設定する。
【００８４】
ステップＳ１１０３の処理終了後、または、担当ＲＡＩＤグループの最大の書き込みデータ量が書き込みデータ量閾値より大きい場合（ステップＳ１１０２：Ｎｏ）、ＣＭ２０１ａは、ＳＳＤ追加処理を終了する。ＳＳＤ追加処理を実行することにより、ＣＭ２０１ａは、故障する可能性が低くなった場合にホットスペアのパトロール周期を長くして、ホットスペアの寿命を長くすることができる。
【００８５】
以上説明したように、ＣＭ２０１ａによれば、あるＳＳＤの書き込みデータ量とＴＢＷとに基づいて、ＳＳＤに対応するホットスペアのパトロール処理の実行周期を決定する。これにより、ＣＭ２０１ａは、ホットスペアの信頼性を維持してホットスペアのパトロール処理にかかる負荷を抑制することができる。
【００８６】
また、ＣＭ２０１ａによれば、ＲＡＩＤグループの各々のＳＳＤの書き込みデータ量とＴＢＷとに基づいて、ＲＡＩＤグループに対応するホットスペアのパトロール周期を決定してもよい。これにより、ＣＭ２０１ａは、ＲＡＩＤグループの中で最も故障する可能性が高いＳＳＤにあわせて、ＲＡＩＤグループに対応するホットスペアのパトロール処理の実行周期を決定することができる。
【００８７】
また、ＣＭ２０１ａによれば、ホットスペアパトロール周期閾値管理テーブル４１１を参照して、ホットスペアのパトロール周期を決定してもよい。これにより、ＣＭ２０１ａは、ホットスペアのパトロール周期の設定を、線形補完で求めるものより自由に行うことができる。例えば、図５で示すように、ＣＭ２０１ａは、最大の書き込みデータ量がＴＢＷ×０．３未満であればパトロール周期の設定を行わず、最大の書き込みデータ量が、ＴＢＷ×０．９以上になった場合に１秒おきという設定を行うことができる。
【００８８】
また、ＣＭ２０１ａによれば、ＲＡＩＤグループの各々のＳＳＤの書き込みデータ量とＴＢＷとに基づいて、ＲＡＩＤグループに対応するホットスペアの動作を停止させるか否かを決定してもよい。具体的には、書き込みデータ量が小さい場合、ホットスペアを用いる可能性は小さいため、パトロール処理完了後にホットスペアの動作を停止させることにより、ホットスペアにかかる消費電力を削減することができる。また、書き込みデータ量が大きい場合、ホットスペアを用いる可能性が大きいため、パトロール処理完了後にも通電状態として動作し続けることにより、ＳＳＤが故障した際すぐにホットスペアを用いることができるため、復旧にかかる時間を短縮することができる。
【００８９】
また、複数のＲＡＩＤグループに対応する２以上のホットスペアがあるとする。この場合に、ＣＭ２０１ａによれば、ホットスペアパトロール周期閾値管理テーブル４１１を参照して、各々のＲＡＩＤグループの最大の書き込みデータ量に応じた周期が短い順に、周期を各々のホットスペアのパトロール周期として順次決定してもよい。これにより、ＣＭ２０１ａは、全てのホットスペアのパトロール周期を、各々のＲＡＩＤグループの最大の書き込みデータ量のうちの最大の書き込みデータ量に応じた周期として決定するより、ホットスペアのパトロール処理にかかる負荷を抑制することができる。
【００９０】
また、ホットスペアは、ＳＳＤであってもよい。これにより、ホットスペアとなったＳＳＤのリードディスターブの発生を抑制することができ、ホットスペアとなったＳＳＤが故障するまでの期間を長くすることができて、ホットスペアとなったＳＳＤの高寿命化を図ることができる。
【００９１】
また、ホットスペアとなったＳＳＤは、可能性は低くとも故障する場合があるため、閑散時間帯であっても最低限のアクセス頻度で、効果的な診断を実施することが求められる。従って、本実施の形態では、ＲＡＩＤグループの各ＳＳＤの書き込みデータ量が小さい場合でも、最低限の頻度のパトロール処理を行って、ホットスペアの故障を発見することができる。
【００９２】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９４】
（付記１）フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶する記憶部と、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する制御部と、
を有することを特徴とするストレージ制御装置。
【００９５】
（付記２）前記ストレージ装置は、ＲＡＩＤグループを形成するいずれかのストレージ装置であり、
前記記憶部は、
前記ＲＡＩＤグループ内の各々のストレージ装置から取得した、前記各々のストレージ装置の書き込みデータ量を記憶し、
前記制御部は、
前記記憶部が記憶する前記各々のストレージ装置の書き込みデータ量と前記書き込み可能データ量とに基づいて、前記ＲＡＩＤグループに対応する代替ストレージ装置に対する前記確認処理の実行周期を決定する、
ことを特徴とする付記１に記載のストレージ制御装置。
【００９６】
（付記３）前記制御部は、
前記書き込み可能データ量の所定の割合に応じた前記確認処理の実行周期を示す周期情報を参照して、前記各々のストレージ装置の書き込みデータ量に基づいて、前記代替ストレージ装置に対する前記確認処理を実行する周期を決定する、
ことを特徴とする付記２に記載のストレージ制御装置。
【００９７】
（付記４）前記制御部は、
さらに、前記各々のストレージ装置の書き込みデータ量と前記書き込み可能データ量とに基づいて、前記代替ストレージ装置に対する前記確認処理の完了後に前記代替ストレージ装置の動作を停止させるか否かを決定する、
ことを特徴とする付記２または３に記載のストレージ制御装置。
【００９８】
（付記５）前記制御部は、
２以上の代替ストレージ装置に対応する複数のＲＡＩＤグループの各々のＲＡＩＤグループ内の各々のストレージ装置の書き込みデータ量に基づいて、前記各々のＲＡＩＤグループ内の最大の書き込みデータ量を特定し、
前記書き込み可能データ量の所定の割合に応じた前記確認処理の実行周期を示す周期情報を参照して、特定した前記各々のＲＡＩＤグループの最大の書き込みデータ量に応じた周期が短い順に、当該周期を前記２以上の代替ストレージ装置の各々の代替ストレージ装置に対して前記確認処理を実行する周期として順次決定する、
ことを特徴とする付記２〜４のいずれか一つに記載のストレージ制御装置。
【００９９】
（付記６）前記代替ストレージ装置は、フラッシュメモリを記憶媒体とするストレージ装置である、
ことを特徴とする付記１〜５のいずれか一つに記載のストレージ制御装置。
【０１００】
（付記７）フラッシュメモリを記憶媒体とするストレージ装置と、ストレージ装置に対応する代替ストレージ装置と、ストレージ制御装置とを有するストレージシステムであって、
前記ストレージ制御装置は、
フラッシュメモリを記憶媒体とするストレージ装置から、前記ストレージ装置の書き込みデータ量を取得し、
取得した前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する、
ことを特徴とするストレージシステム。
【０１０１】
（付記８）コンピュータが、
フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶部に記憶させ、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する、
処理を実行することを特徴とする制御方法。
【０１０２】
（付記９）コンピュータに、
フラッシュメモリを記憶媒体とするストレージ装置から取得した、前記ストレージ装置の書き込みデータ量を記憶部に記憶させ、
前記記憶部が記憶する前記ストレージ装置の書き込みデータ量と前記フラッシュメモリの書き込み可能回数から特定される書き込み可能データ量とに基づいて、前記ストレージ装置に対応する代替ストレージ装置に対する当該代替ストレージ装置が正常に機能するか否かを確認する確認処理の実行周期を決定する、
処理を実行させることを特徴とする制御プログラム。
【符号の説明】
【０１０３】
１０１  ストレージ制御装置
１０２  ストレージ装置
２００  ストレージシステム
２０１  ＣＭ
４００  制御部
４０１  特定部
４０２  決定部
４０３  実行部
４１０  記憶部
４１１  ホットスペアパトロール周期閾値管理テーブル
【図１】
0006515752.tif 000002
【図２】
0006515752.tif 000003
【図３】
0006515752.tif 000004
【図４】
0006515752.tif 000005
【図５】
0006515752.tif 000006
【図６】
0006515752.tif 000007
【図７】
0006515752.tif 000008
【図８】
0006515752.tif 000009
【図９】
0006515752.tif 000010
【図１０】
0006515752.tif 000011
【図１１】
0006515752.tif 000012