説明

ストレージ装置、およびストレージ装置制御方法

【課題】複数の記憶媒体が同時に書き込み回数の上限に達することを抑制する。
【解決手段】選択部1dは、記憶媒体1a−1の書き込み回数と、記憶媒体1a−2の書き込み回数との差を計算し、第1の差とする。また選択部1dは、記憶媒体1a−1の書き込み回数と、記憶媒体1a−2内のデータの記憶媒体1a−3へのコピー後の記憶媒体1a−3の書き込み回数との差を計算し、第2の差とする。そして、選択部1dは、第1の差よりも第2の差の方が大きくなるような第2の記憶媒体1a−2を、交換対象として選択する。設定変更部1eは、交換対象として選択した記憶媒体1a−2が記憶しているデータを記憶媒体1a−3にコピーし、記憶媒体1a−2の設定を予備に変更し、記憶媒体1a−3の設定をデータ書き込み先に変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本件は、ストレージ装置、およびストレージ装置制御方法に関する。
【背景技術】
【0002】
磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体を利用したストレージ装置では、記憶容量の大容量化が進められている。このストレージ装置の記憶容量の大容量化に関して、RAID(Redundant Arrays of Inexpensive Disks)という記憶媒体を多重化して信頼性を高めたストレージ装置を構成する技術が広く用いられている。
【0003】
また、RAIDを用いたストレージ装置において、記憶媒体に、フラッシュメモリを用いたSSD(Solid State Drive)等のランダムアクセス性能に優れている不揮発性半導体メモリを用いて、ランダムアクセス時のデータアクセスの向上を図ったものも用いられている。
【0004】
ここで、フラッシュメモリ等の半導体メモリには、使用時において書き込み回数に制限があり、所定回数以上書き込みを行うことができない。このように、記憶媒体には、使用回数や使用時間等による書き込み回数の上限が設定されているものがある。
【0005】
また、半導体メモリの書き込み回数の管理に関して、以下の技術が知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−146220号公報
【特許文献2】特開2004−118407号公報
【特許文献3】特開平08−96589号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、ストレージ装置は、複数の記憶媒体で構成したRAIDを使用するが、複数の記憶媒体が同時に書き込み回数の上限に達して交換の必要が生じたり、不具合が生じたりした場合には、冗長性が維持されない場合が生じ得るという問題点がある。
【0008】
本件はこのような点に鑑みてなされたものであり、複数の記憶媒体が同時に書き込み回数の上限に達することを抑制することが可能なストレージ装置、およびストレージ装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために以下のようなストレージ装置が提供される。
ストレージ装置は、複数の記憶媒体、書き込み部、カウント部、選択部、および設定変更部を有する。複数の記憶媒体は、少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定される。書き込み部は、入力されたデータを、データ書き込み先に設定された記憶媒体に書き込む。カウント部は、複数の記憶媒体それぞれに対して行われた書き込み回数をカウントする。選択部は、データ書き込み先に設定されている第1の記憶媒体の書き込み回数と、データ書き込み先に設定されている第2の記憶媒体の書き込み回数との差よりも、第1の記憶媒体の書き込み回数と、予備に設定されている第3の記憶媒体の書き込み回数および第2の記憶媒体内のデータの第3の記憶媒体へのコピーの際に生じる書き込み回数に基づいて決定される値との差の方が大きくなる第2の記憶媒体を、交換対象として選択する。設定変更部は、交換対象として選択した第2の記憶媒体が記憶しているデータを第3の記憶媒体にコピーし、第2の記憶媒体の設定を予備に変更し、第3の記憶媒体の設定をデータ書き込み先に変更する。
【発明の効果】
【0010】
開示のストレージ装置、およびストレージ装置制御方法によれば、複数の記憶媒体が同時に書き込み回数の上限に達することを抑制することが可能になる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態のストレージ装置を示す図である。
【図2】第2の実施の形態のストレージ装置のハードウェアを示す図である。
【図3】第2の実施の形態のストレージ装置の機能を示すブロック図である。
【図4】第2の実施の形態のスケジュール設定テーブルを示す図である。
【図5】第2の実施の形態の記憶デバイスのデータコピーおよび交換時の動作を示す図である。
【図6】第2の実施の形態の待機期間長の算出時の動作を示す図である。
【図7】第2の実施の形態のスケジュール設定処理を示すフローチャートである。
【図8】第2の実施の形態の記憶デバイス交換処理を示すフローチャートである。
【図9】第3の実施の形態のストレージ装置を示すブロック図である。
【図10】第3の実施の形態の記憶デバイスの交換時の動作を示す図である。
【図11】第3の実施の形態の記憶デバイスの交換時の動作を示す図である。
【図12】第3の実施の形態の記憶デバイスの交換時の動作を示す図である。
【図13】第3の実施の形態の記憶デバイスの書き込み回数の推移を示す図である。
【図14】第3の実施の形態の記憶デバイス交換処理を示すフローチャートである。
【図15】第3の実施の形態の記憶デバイス交換処理を示すフローチャートである。
【図16】第3の実施の形態の記憶デバイス交換処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置を示す図である。第1の実施の形態のストレージ装置1は、記憶媒体群1a、書き込み部1b、カウント部1c、選択部1d、および設定変更部1eを有する。記憶媒体群1aは、例えばデバイスエンクロージャ(device enclosure)内に設けられる。
【0013】
記憶媒体群1aには、複数の記憶媒体1a−1,1a−2,1a−3が含まれる。複数の記憶媒体1a−1,1a−2,1a−3は、少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定される。
【0014】
書き込み部1bは、入力されたデータを、データ書き込み先に設定された記憶媒体に書き込む。
カウント部1cは、複数の記憶媒体1a−1,1a−2,1a−3それぞれに対して行われた書き込み回数をカウントする。
【0015】
選択部1dは、データ書き込み先に設定されている記憶媒体1a−1,1a−2の中から、交換対象の記憶媒体を選択する。例えば選択部1dは、データ書き込み先に設定されている記憶媒体1a−1,1a−2のうちの1つを第1の記憶媒体、他の1つを第2の記憶媒体とし、予備に設定されている記憶媒体の1つを第3の記憶媒体とする。図1の例では、記憶媒体1a−1を第1の記憶媒体、記憶媒体1a−2を第2の記憶媒体とし、記憶媒体1a−3を第3の記憶媒体としたものとする。このとき、選択部1dは、以下のようにして、交換対象の選択を行う。
【0016】
選択部1dは、第1の記憶媒体(記憶媒体1a−1)の書き込み回数と、第2の記憶媒体(記憶媒体1a−2)の書き込み回数との差を計算し、第1の差とする。また選択部1dは、第3の記憶媒体(記憶媒体1a−3)の書き込み回数に、第2の記憶媒体(記憶媒体1a−2)内のデータの第3の記憶媒体(記憶媒体1a−3)へのコピーの際に生じる書き込み回数を加算した値を計算し、予想書き込み回数とする。さらに選択部1dは、第1の記憶媒体(記憶媒体1a−1)の書き込み回数と、予想書き込み回数との差を計算し、第2の差とする。そして、選択部1dは、第1の差よりも第2の差の方が大きくなるような第2の記憶媒体1a−2を、交換対象として選択する。
【0017】
設定変更部1eは、交換対象として選択した第2の記憶媒体(記憶媒体1a−2)が記憶しているデータを第3の記憶媒体(記憶媒体1a−3)にコピーし、第2の記憶媒体(記憶媒体1a−2)の設定を予備に変更し、第3の記憶媒体(記憶媒体1a−3)の設定をデータ書き込み先に変更する。
【0018】
このように第2の記憶媒体の設定を予備に変更した場合に、変更前よりも変更後の方が、データ書き込み先に設定されている記憶媒体それぞれの書き込み回数間の差が大きくなる第2の記憶媒体が、交換対象に選択される。そして、交換対象の第2の記憶媒体の設定が予備に変更され、第3の記憶媒体の設定がデータ書き込み先に変更される。これにより、データ書き込み先に設定されている記憶媒体それぞれの書き込み回数の差が増大し、複数の記憶媒体が同時に書き込み回数の上限に達することが抑制される。
【0019】
なお、各記憶媒体の書き込み回数に基づいて、交換対象の記憶媒体を選択するのではなく、例えば予め決められたスケジュールに従って、交換対象の記憶媒体を選択するようにしてもよい。例えば、ストレージ装置1内に、複数の記憶媒体1a−1,1a−2,1a−3それぞれに関し、単位期間内でデータ書き込み先に設定する期間が定められ、該期間の長さが、記憶媒体間で不均一に定められたスケジュールを定義する。選択部1dは、スケジュールに基づき、単位期間内での各記憶媒体のデータ書き込み先に設定される期間の長さがスケジュール通りとなるように、データ書き込み先に設定されている記憶媒体を、交換対象として選択する。
【0020】
このようなスケジュールに従って交換対象の記憶媒体を選択すると、ストレージ装置1を単位期間運用する間に、記憶媒体それぞれがデータ書き込み先として利用される期間の長さが異なる。各記憶媒体に書き込み処理が実行される回数は、データ書き込み先として利用される期間と相関性があるものと考えられる。すなわち、データ書き込み先として利用される期間が長い記憶媒体ほど、単位期間内にデータの書き込み処理が行われる回数が多いものと考えられる。そのため、単位期間内に各記憶媒体に書き込み処理が実行された回数が、記憶媒体間で不均一となる。その結果、複数の記憶媒体が同時に書き込み回数の上限に達することが抑止できる。
【0021】
なおストレージ装置1は、スケジュールを、例えば、記憶媒体1a−1,1a−2,1a−3のストレージ装置1の搭載期間の長さに基づいて作成することができる。例えば、搭載期間の長さが長い記憶媒体は、搭載期間の長さが短い記憶媒体に比べ、すでに実行された書き込み処理の回数が多いものと想定される。そこでストレージ装置1は、搭載期間の長さが長い記憶媒体よりも搭載期間の長さが短い記憶媒体の方が、単位期間内でデータ書き込み先に設定されている期間が短くなるように、スケジュールを作成する。このようにして作成されたスケジュールに従って、データ書き込み先に設定されている記憶媒体から交換対象を選択することで、搭載期間の長さが長い記憶媒体ほど、単位期間内に書き込み処理が実行される回数が多くなる。換言すると、搭載期間の長さが短い記憶媒体ほど、単位期間内に書き込み処理が実行される回数が抑止される。このように、搭載期間の長さに応じてデータ書き込み先に設定する期間を設定したスケジュールに基づいて、交換対象の記憶媒体を選択することで、記憶媒体それぞれの書き込み回数間の差を、ストレージ装置1の運用に伴って増大させることができる。
【0022】
なお、予備に設定されている記憶媒体1a−3は、例えばデータ書き込み先に設定が変更されるまで、通常時は電源が投入されたまま待機している。また予備の記憶媒体1a−3は、電源が投入されていない状態で待機しており、データ書き込み先に設定されている記憶媒体のデータをコピーするときに、コピー処理に先立って電源が投入されてもよい。
【0023】
なお、第1の実施の形態のストレージ装置1が交換する記憶媒体の数は、任意である。また記憶媒体のうち、データ書き込み先に設定する記憶媒体の数は、2以上の任意の数である。また記憶媒体のうち、予備に設定する記憶媒体の数は、1以上の任意の数である。
【0024】
[第2の実施の形態]
次に、RAIDグループを構成する記憶デバイスと予備の記憶デバイスとを交換して、RAIDグループの記憶デバイスが同時に書き込み回数の上限に達することを抑制する実施の形態を、第2の実施の形態として説明する。ここで記憶媒体の交換とは、RAIDグループに属する記憶媒体の1つをそのRAIDグループから除外し、代わりに他の記憶媒体をそのRAIDグループに組み込む処理である。第2の実施の形態では、予め生成したスケジュールに従って、RAIDグループに属する記憶デバイスから交換対象の記憶デバイスを選択する。
【0025】
なお、記憶デバイスは、第1の実施の形態の記憶媒体の一例である。またRAIDグループを構成する記憶デバイスは、第1の実施の形態におけるデータ書き込み先に設定された記憶媒体の一例である。
【0026】
図2は、第2の実施の形態のストレージ装置のハードウェアを示す図である。ストレージ装置100は、装置全体の制御を行うCM(Controller Module)110a,110b、CM110a,110bとホストコンピュータ300との接続制御を行うチャネルアダプタ130c〜130f、記憶デバイス120a,120b,120c,120dおよび図示しないその他の複数の記憶デバイスを有するデバイスエンクロージャ120を有する。
【0027】
ストレージ装置100は、内蔵する複数の記憶デバイスに対するデータの入出力を行う。ストレージ装置100は、RAID0〜6等のRAID機能を有し、複数の記憶デバイスをまとめてRAIDを構成することにより、各RAIDをそれぞれ1台の記憶デバイスとして管理する。
【0028】
ホストコンピュータ300は、業務処理を実行するコンピュータであり、ファイバチャネル(Fibre Channel)で構成されたSAN(Storage Area Network)を介してストレージ装置100とデータ通信可能に接続されている。ホストコンピュータ300は、業務処理に使用するデータについて、ストレージ装置100への保存およびストレージ装置100からの読み出しを行う。
【0029】
CM110aは、CPU(Central Processing Unit)111a、キャッシュメモリ112a、およびデバイスインタフェース(device interface)113c,113dを有する。
【0030】
CPU111aは、OS(オペレーティングシステム)などに従って処理を実行し、各種制御を行う。また、CM110aは、キャッシュメモリ112a、デバイスエンクロージャ120が有する記憶デバイス120a,120b,120c,120dおよびその他の記憶デバイス、チャネルアダプタ130c,130dなどの資源管理を行う。
【0031】
キャッシュメモリ112aは、CPU111aがストレージ装置100を制御するために必要な制御データを記憶する。また、キャッシュメモリ112aは、デバイスエンクロージャ120が有する各記憶デバイスに読み書きされる入出力データを一時的に記憶する。
【0032】
デバイスインタフェース113c,113dは、デバイスエンクロージャ120が有する各記憶デバイスとの接続制御を行う。
また、CM110aおよびCM110bは、バス140によって接続されている。このバス140を介して、CM110aおよびCM110bの間で、制御情報やデータが通信される。また、CM110a,110bは、制御装置として機能し、ストレージ装置100に対して着脱可能である。ここで、CM110bは、CM110aと同一の構成であるため、説明を省略する。
【0033】
デバイスエンクロージャ120は、記憶デバイス120a〜120d等の複数の記憶デバイスを有する。デバイスエンクロージャ120内の複数の記憶デバイスにより、RAIDグループが生成される。RAIDグループは、RAIDの技術を用いた論理記憶領域である。
【0034】
記憶デバイス120a〜120dおよびデバイスエンクロージャ120が有するその他の記憶デバイスは、RAIDを構成可能なSSDである。記憶デバイス120a〜120dは、ホストコンピュータ300から送信されたシステムの利用者のデータまたはバックアップデータを記憶する。SSDは、フラッシュメモリ(flash memory)を使用した記憶媒体であり、ランダムアクセス性能に優れているが、書き込み回数に上限が設定されており、書き込み回数の上限を超えて使用すると、故障が生じる可能性がある。なお、システムの利用者のデータおよびバックアップデータは1つの記憶デバイスに記憶されている必要はなく、複数の記憶デバイスに分散して記憶されていてもよい。また、1つの記憶デバイスに複数の利用者のデータおよびバックアップデータが記憶されていてもよい。また、記憶デバイス120a〜120dは、SSD以外の記憶媒体であって書き込み回数、使用回数、使用時間に上限が設定されている記憶媒体や、使用回数や使用時間が寿命に大きく影響する記憶媒体を用いてもよい。例えば、記憶デバイス120a〜120dは、SSD以外のフラッシュメモリを用いた記憶媒体を用いてもよい。また、記憶デバイス120a〜120dは、EEPROM(Electrically Erasable Programmable Read-Only Memory)等のフラッシュメモリ以外の不揮発性半導体メモリを用いた記憶媒体を用いてもよい。さらに記憶デバイス120a〜120dは、磁気記憶媒体にデータを記録するハードディスクドライブ(HDD:Hard disk drive)であってもよい。
【0035】
チャネルアダプタ130c〜130fは、ホストコンピュータ300とCM110a,110bとの接続制御を行う。例えば、チャネルアダプタ130cは、ホストコンピュータ300からの要求を受け付けて、CM110aとの接続制御を行う。CM110a,110bは、それぞれ複数個(図ではそれぞれ2個)のチャネルアダプタ130c〜130fに接続可能になっている。すなわち、例えばCM110aは、冗長構成が実現されるように、2つの異なるチャネルアダプタ130c,130dにそれぞれ接続されている。
【0036】
なお、チャネルアダプタ130c〜130fとホストコンピュータ300との間の通信は、ファイバチャネルで構成されたSANによって接続されているが、ファイバチャネル以外の接続方式によって接続されていてもよい。また、チャネルアダプタ130c〜130fとホストコンピュータ300との間の通信は、専用線やVPN(Virtual Private Network)を用いて、ストレージ装置100をホストコンピュータ300から遠隔地に設置するように構成してもよい。
【0037】
なお、図2において、CM110a,110bは2個図示し、デバイスインタフェース113c〜113fおよびチャネルアダプタ130c〜130fは、CM110a,110bそれぞれに対してそれぞれ2個ずつ図示しているが、これらの数はそれぞれ任意である。また、デバイスエンクロージャ120は、1個図示しているが、デバイスエンクロージャの数は任意である。
【0038】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図3は、第2の実施の形態のストレージ装置の機能を示すブロック図である。第2の実施の形態のストレージ装置100は、制御部101、設定部102、書き込み部103、デバイスエンクロージャ120、スケジュール設定情報記憶部151を有する。
【0039】
制御部101は、選択部101aと設定変更部101bとを有する。
選択部101aは、スケジュール設定情報記憶部151に記憶されているスケジュール設定情報に基づくスケジュールに基づき、RAIDグループに属する記憶デバイス120a,120bの中から、予備の記憶デバイス120cと交換する記憶デバイスを選択する。例えばスケジュール設定情報には、単位期間内に、各記憶デバイスがRAIDグループに属する期間の長さが定義されている。その場合、選択部101aは、単位期間内での各記憶デバイスがRAIDグループに属する期間の長さがスケジュール通りとなるように、記憶デバイスを選択する。このとき、選択部101aは、後述するように、スケジュール設定情報に基づいて、搭載期間の長さが相対的に短いものを優先的に交換対象に選択する。また選択部101aは、搭載期間の長さが長いものは交換を抑制し、かつ、交換される期間を短くすることで、書き込み回数の差を増加させる。
【0040】
ここで、交換対象として記憶デバイス120bが選択されたものとする。すると設定変更部101bは、交換対象として選択した記憶デバイス120bが記憶しているデータを予備の記憶デバイス120cにコピーする。設定変更部101bは、データのコピーが終了後、交換対象として選択した記憶デバイス120bと予備の記憶デバイス120cとの交換を行う。すなわち設定変更部101bは、交換対象として選択した記憶デバイス120bをRAIDグループから除外する設定を行い、予備の記憶デバイス120cをRAIDグループに組み込む設定を行う。これにより、選択されたRAIDグループに属する記憶デバイスの120bと予備の記憶デバイス120cとの交換が行われ、予備であった記憶デバイス120cがRAIDグループに属し、RAIDグループに属していた記憶デバイス120bが予備となる。これにより、選択された記憶デバイス120bの書き込み回数の増加が抑制される。他方、選択されなかった記憶デバイス120aおよび予備であった記憶デバイス120cについては、RAIDグループに対する書き込み処理が行われることで、書き込み回数が増加する。
【0041】
設定部102は、RAIDグループに属する記憶デバイス120a,120bのストレージ装置100への搭載期間の長さに基づいてスケジュール設定情報を設定し、設定したスケジュール設定情報をスケジュール設定情報記憶部151に記憶させる。このとき、設定部102は、搭載期間の長さが短い記憶デバイスの待機期間長が長くなるようにスケジュール設定情報を設定する。
【0042】
書き込み部103は、ホストコンピュータ300から入力されたデータを、RAIDグループに属する記憶デバイスに書き込む。
スケジュール設定情報記憶部151は、設定部102によって設定されたRAIDグループに属する記憶デバイス120a,120bを予備の記憶デバイス120cとの交換のスケジュールを示すスケジュール設定情報を記憶する。
【0043】
デバイスエンクロージャ120は、記憶デバイス120a,120b,120cを有する。記憶デバイス120a〜120cは、データを記憶可能な記憶領域を有する。ストレージ装置100は、RAIDグループに、ホストコンピュータ300等から送信されたデータを記憶する。記憶デバイス120a,120bは、データを記憶するRAIDグループに属する。記憶デバイス120cは、予備でありRAIDグループに属さない。なお、RAIDグループは、2以上の任意の数の記憶デバイスで設定することができる。
【0044】
記憶デバイス120cは、予備の記憶デバイスであって、通常時はRAIDグループには属さず電源が投入されたままホットスタンバイ(hot standby)で待機している。記憶デバイス120cは、スケジュール設定情報に示されたスケジュールに基づく交換時期に、RAIDグループに属するいずれかの記憶デバイスに代えて、そのRAIDグループに組み込まれる。また記憶デバイス120cは、RAIDグループの記憶デバイス120a,120bやその他の図示しない記憶デバイスに障害が発生した場合には、障害が発生した記憶デバイスの代わりに、障害が発生した記憶デバイスが属していたRAIDに組み入れることも可能である。なお、記憶デバイス220cの待機時の状態は、ホットスタンバイに限られない。例えば記憶デバイス120cは、ウォームスタンバイ(warm standby)で待機してもよく、電源が投入されていないコールドスタンバイ(cold standby)で待機し、使用の際に電源が投入されてもよい。
【0045】
なお、第2の実施の形態のストレージ装置100が1回の交換において交換するRAIDグループに属する記憶デバイスおよび予備の記憶デバイスの数は、任意である。
図4は、第2の実施の形態のスケジュール設定テーブルを示す図である。図4に示すスケジュール設定テーブル151aは、ストレージ装置100が有するスケジュール設定情報記憶部151に記憶されており、ストレージ装置100の設定部102によって管理される。スケジュール設定テーブル151aは、ストレージ装置100が有するRAIDグループの各記憶デバイスが、RAIDグループに組み込まれて使用されるスケジュールを示すスケジュール設定情報を記憶するテーブルである。
【0046】
スケジュール設定テーブル151aには、項目として“デバイス番号”、“搭載期間長”、“優先順位”、“使用期間長”、“待機期間長”が設けられている。スケジュール設定テーブル151aにおいて、各項目の横方向に並べられた情報同士がスケジュール設定情報として互いに関連付けられている。
【0047】
デバイス番号は、RAIDグループに属する記憶デバイスおよび予備の記憶デバイスを一意に識別するために、各記憶デバイスに割り当てられた番号である。
搭載期間長は、スケジュール設定テーブル151a作成時において、記憶デバイスがストレージ装置100に対して搭載されている通算期間を月単位で示す情報である。搭載期間長は、優先順位の設定に使用される。搭載期間長は、例えば、設定部102が、S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)を用いて各記憶デバイスの通電時間を示す値を収集することで取得してもよい。
【0048】
優先順位は、ストレージ装置100が搭載期間長に基づいて設定する値であり、使用期間長の設定に使用される。
使用期間長は、単位期間内で、記憶デバイスがRAIDグループに組み込まれて使用される期間(使用期間)の長さを月単位で示す情報である。使用期間長は、すべての記憶デバイスに対してストレージ装置100が優先順位に基づいて設定する値である。
【0049】
待機期間長は、RAIDグループに組み込まれている記憶デバイスが、予備の記憶デバイスと交換されたときに、予備の記憶デバイスとして待機する期間(待機期間)の長さを月単位で示す情報である。待機期間長は、すべての記憶デバイスに対してストレージ装置100が使用期間長に基づいて設定する値である。待機期間長は、使用期間長が長い記憶デバイスは短くなり、使用期間長が短い記憶デバイスは長くなるように設定するとよい。
【0050】
ここで、第2の実施の形態では、詳しくは図6に関する説明において後述するように、搭載期間長が短い記憶デバイスには、高い優先順位(優先順位の値が小さい)、搭載期間長が長い記憶デバイスには、低い優先順位(優先順位の値が大きい)が設定される。また、優先順位が高い記憶デバイスには、使用期間長が短く設定され、優先順位が低い記憶デバイスには、使用期間長が長く設定される。
【0051】
すなわち、ストレージ装置100は、搭載期間長が短い記憶デバイスには、使用期間長を短く設定し、搭載期間長が長い記憶デバイスには、使用期間長を長く設定する。ここで、搭載期間長が短い記憶デバイスは、書き込み回数が相対的に少なく、搭載期間長が長い記憶デバイスは、書き込み回数が相対的に多い傾向があると考えられる。このため、当該時点までの書き込み回数が少ないと考えられる搭載期間長が短い記憶デバイスに短い使用期間長を設定して、待機に使用されることで書き込みが行われない期間を相対的に増加させる。一方、当該時点までの書き込み回数が多いと考えられる搭載期間長が長い記憶デバイスに長い使用期間長を設定して、待機に使用される期間を相対的に減少させる。これにより、書き込み回数の少ない記憶デバイスの書き込み回数の増加を抑制することができる。また、書き込み回数が多い記憶デバイスの書き込み回数をより増加させるので、RAIDグループに属する記憶デバイスの書き込み回数の差を増加させることができる。
【0052】
また、優先順位を、当該記憶デバイスと予備の記憶デバイスと交換する順序の決定に用いてもよい。すなわち、優先順位が高い記憶デバイスから順に予備の記憶デバイスと交換して待機させることで、優先順位が高い記憶デバイスの書き込み回数の増加を抑制できる。これにより、RAIDグループに属する記憶デバイスの書き込み回数の差を増加させることができる。
【0053】
図5は、第2の実施の形態の記憶デバイスのデータコピーおよび交換時の動作を示す図である。図5(A)は、第2の実施の形態におけるRAIDグループに属する記憶デバイス120fから予備の記憶デバイス120gへのデータコピー時の動作を示す。図5(B)は、第2の実施の形態におけるRAIDグループに属する記憶デバイス120fと予備の記憶デバイス120gとの交換時の動作を示す。ここで、図5(A)および図5(B)では、後述するスケジュール設定処理および記憶デバイス交換処理に基づいて、RAIDグループに属する記憶デバイス120fと予備の記憶デバイス120gとの交換が決定されたものとする。
【0054】
図5(A)に示すように、第2の実施の形態のストレージ装置100は、記憶デバイス120fと記憶デバイス120gとの交換の際に、予め記憶デバイス120fに記憶されているデータを、待機している予備の記憶デバイス120gにコピーするとよい。これにより、記憶デバイス120gが記憶デバイス120fの代わりにRAIDグループに含められた際に、RAIDグループの稼働の中断時間の長期化を抑制することができる。
【0055】
次に、図5(B)に示すように、ストレージ装置100は、記憶デバイス120fと記憶デバイス120gとを交換する。ストレージ装置100は、RAIDグループに属する記憶デバイス120e,120fが正常であっても、RAIDグループに属さない予備の記憶デバイスと所定のスケジュールに従って交換することで、記憶デバイスの書き込み回数の差を増加させる。これにより、RAIDグループに属する記憶デバイスが同時に書き込み回数の上限に達することを抑制する。
【0056】
なお、ストレージ装置100は、RAIDグループに属する記憶デバイス120e,120fに故障が発生している場合には、故障が発生した記憶デバイスと予備の記憶デバイス120gとの交換を行う。予備の記憶デバイスが故障した記憶デバイスと交換された場合、記憶デバイス120e,120fの故障が修理、交換等により解消するまで、後述するスケジュール設定処理および記憶デバイス交換処理に基づく交換は行わなくてもよい。
【0057】
図6は、第2の実施の形態の待機期間長の算出時の動作を示す図である。図6(A)は、第2の実施の形態において、RAIDグループが1つである場合の待機期間長の算出時の動作を示す。図6(B)は、第2の実施の形態において、RAIDグループが2つである場合の待機期間長の算出時の動作を示す。
【0058】
図6(A)に従って、RAIDグループが1つである場合の待機期間長の算出を示す。図6(A)に示すように、第2の実施の形態のストレージ装置100は、記憶デバイス120h,120i,120j,120kによるRAID5(3+1)の構成であるRAIDグループおよび予備の記憶デバイス120lを有するものとする。RAID5(3+1)のRAIDグループでは、記憶デバイス3本分の記憶容量がデータの保存用に使用され、記憶デバイス1本分の記憶容量を冗長データの保存用に使用される。また、記憶デバイス120hには優先順位“4”が設定され、記憶デバイス120iには優先順位“3”が設定され、記憶デバイス120jには優先順位“2”が設定され、記憶デバイス120kには優先順位“1”が設定されているものとする。
【0059】
この場合、ストレージ装置100は、以下の式(1)に従って、記憶デバイス同士の交換や期間の計算および判定の単位となる単位時間を算出する。
【0060】
【数1】

【0061】
具体的には、式(1)における記憶デバイスの耐用月数は、記憶デバイス120h〜120kに設定されている耐用月数である。耐用月数が異なる記憶デバイスが存在する場合には、耐用月数が最も短い記憶デバイスの耐用月数としてもよい。式(1)における記憶デバイスの数は、ストレージ装置100におけるRAIDグループに属する記憶デバイス120h〜120kの個数(例えば、4)である。予備の記憶デバイスの数は、ストレージ装置100における予備の記憶デバイス120lの個数(例えば、1)である。
【0062】
なお、第2の実施の形態では、単位時間を最大で1カ月とするが、記憶デバイスの耐用月数や使用頻度に応じて任意の期間を設定することができる。また、計算処理の簡略化のため、単位時間を固定値(例えば、1)にしてもよい。
【0063】
次に、ストレージ装置100は、以下の式(2)に従って、後述する記憶デバイス交換処理における交換が一巡する期間(単位期間)の長さである単位期間長を算出する。
【0064】
【数2】

【0065】
式(2)におけるNは、RAIDグループに属する記憶デバイスの数である。kは、1以上の整数である。具体的には、単位期間長は、式(1)で算出した単位時間と、1からRAIDグループに属する記憶デバイスの数までの整数の数列の総和との積によって算出される。図6(A)の例では、RAIDグループに4台の記憶デバイスが属しているため、N=4である。ここで単位時間が1月であれば、単位期間長は10月(1+2+3+4)となる。なお、単位期間長は、任意に設定することができる。
【0066】
次に、ストレージ装置100は、以下の式(3)に従って、1つの単位期間において各RAIDグループに属する各記憶デバイス120h〜120kが使用される使用期間長を算出する。
【0067】
使用期間長=単位期間長+優先順位−RAIDグループの記憶デバイスの数
・・・(3)
具体的には、使用期間長は、式(2)で算出した単位期間長に当該記憶デバイスの優先順位を加算し、当該RAIDグループの記憶デバイスの数を減算することで算出される。図6(A)の例では、優先順位が“4”の記憶デバイス120hの使用期間長は、10月(10+4−4)となる。優先順位が“3”の記憶デバイス120iの使用期間長は、9月(10+3−4)となる。優先順位が“2”の記憶デバイス120jの使用期間長は、8月(10+2−4)となる。優先順位が“1”の記憶デバイス120kの使用期間長は、7月(10+1−4)となる。
【0068】
算出された使用期間長は、スケジュール設定情報記憶部151に記憶されているスケジュール設定情報に設定される。なお、これに限らず、使用期間長は、優先順位が高い記憶デバイスは短く、優先順位が低い記憶デバイスは長くなるように、任意の方法で設定することができる。また、予備の記憶デバイス120lの使用期間長は、RAIDグループに属するすべての記憶デバイスの待機期間長(後述)の合計によって算出することができる。
【0069】
次に、ストレージ装置100は、以下の式(4)に従って、後述する記憶デバイス交換処理における1つの交換を行ってから次の交換を行うまでの期間(待機期間)の長さである待機期間長を算出する。
【0070】
待機期間長=単位期間長−使用期間長 ・・・(4)
具体的には、待機期間長は、式(2)で算出した単位期間長から、式(3)で算出した当該記憶デバイスの使用期間長を減算することで算出される。待機期間長は、単位期間における当該記憶デバイスが待機となる期間の長さを示す。図6(A)の例では、使用期間長が10月の記憶デバイス120hの待機期間長は、0月(10−10)となる。使用期間長が9月の記憶デバイス120iの待機期間長は、1月(10−9)となる。使用期間長が8月の記憶デバイス120jの待機期間長は、2月(10−8)となる。使用期間長が7月の記憶デバイス120kの待機期間長は、3月(10−7)となる。
【0071】
RAIDグループに属する記憶デバイスの待機期間長に基づいて、予備の記憶デバイスが単位期間内に使用される期間の長さ(使用期間長)が得られる。すなわち、RAIDグループに属する記憶デバイスの待機期間長の合計が、予備の記憶デバイスの使用期間長となる。図6(A)の例では、予備の記憶デバイス120lの使用期間長は、6月(0+1+2+3)である。
【0072】
なお、待機期間長の算出方法は、式(4)に基づく方法に限られない。待機期間長は、優先順位が高い記憶デバイスは長く、優先順位が低い記憶デバイスは短くなるように、任意の方法で設定することができる。ここで、第2の実施の形態では、データコピー自体が予備の記憶デバイス120lの書き込み回数を増加させることから、交換回数を少なくするために、1つの記憶デバイスの待機期間が連続するように設定するとよい。後述する記憶デバイス交換処理では、このように設定した待機期間長に基づいて各記憶デバイスを交換する。
【0073】
次に、図6(B)に従って、RAIDグループが2つである場合の待機期間長の算出を示す。図6(B)に示すように、第2の実施の形態のストレージ装置100は、2つのRAIDグループを有する。1つ目は、記憶デバイス120m,120n,120o,120pによるRAID5(3+1)のRAIDグループである。2つ目は、記憶デバイス120q,120rによるRAID1のRAIDグループである。ストレージ装置100は、2つのRAIDグループそれぞれに属する記憶デバイス以外に、予備の記憶デバイス120sを有する。また、記憶デバイス120mには優先順位“4”が設定され、記憶デバイス120nには優先順位“3”が設定され、記憶デバイス120oには優先順位“2”が設定され、記憶デバイス120pには優先順位“1”が設定され、記憶デバイス120qには優先順位“2”が設定され、記憶デバイス120rには優先順位“1”が設定されているものとする。
【0074】
この場合、ストレージ装置100は、式(1)に従って、単位時間を算出する。算出される単位時間は、各RAIDグループに共通である。ここで、式(1)における記憶デバイスの数は、ストレージ装置100全体の記憶デバイスの数である。
【0075】
ここで、図6(B)では、式(1)における記憶デバイスの耐用月数は、耐用月数が異なる記憶デバイスが存在する場合には、ストレージ装置100のすべての記憶デバイスのうち耐用月数が最も短い記憶デバイスの耐用月数としてもよい。式(1)における記憶デバイスの数は、ストレージ装置100におけるすべてのRAIDグループに属する記憶デバイスの個数の合計である。予備の記憶デバイスの数は、ストレージ装置100における予備の記憶デバイスの個数である。
【0076】
次に、ストレージ装置100は、以下の式(5)に従って、単位期間長を算出する。
【0077】
【数5】

【0078】
式(5)におけるN1は、1つ目のRAIDグループに属する記憶デバイスの数である。N2は、2つ目のRAIDグループに属する記憶デバイスの数である。kとlは、共に1以上の整数である。具体的には、ストレージ装置100がRAIDグループを2つ有する場合の単位期間長は、各RAIDグループについて単位期間長を図6(A)と同様に算出し、算出した単位期間長をすべてのRAIDグループについて合計した算出結果と同一である。図6(B)の例では、4つの記憶デバイスが属する1つ目のRAIDグループから算出した単位期間長は10月(1+2+3+4)である。また2つの記憶デバイスが属する2つ目のRAIDグループから算出した単位期間長は3月(1+2)である。その結果、全体での単位期間長は13月(10+3)となる。
【0079】
次に、ストレージ装置100は、式(3)に従って、記憶デバイス120m〜120rについて使用期間長を算出する。このとき、式(3)におけるRAIDグループの記憶デバイスの数は、使用期間長の算出対象の記憶デバイスが属しているRAIDグループに属する記憶デバイスの数とする。
【0080】
図6(B)の例では、RAID5が適用された1つ目のRAIDグループに属する記憶デバイス120m〜120pの使用期間長は、以下の通りである。
優先順位“4”の記憶デバイス120mの使用期間長は13月(13+4−4)である。優先順位“3”の記憶デバイス120nの使用期間長は12月(13+3−4)である。優先順位“2”の記憶デバイス120oの使用期間長は11月(13+2−4)である。優先順位“1”の記憶デバイス120pの使用期間長は10月(13+1−4)である。
【0081】
またRAID1が適用された2つ目のRAIDグループに属する記憶デバイス120q,120rの使用期間長は、以下の通りである。
優先順位“2”の記憶デバイス120qの使用期間長は13月(13+2−2)である。優先順位“1”の記憶デバイス120rの使用期間長は12月(13+1−2)である。
【0082】
次に、ストレージ装置100は、式(4)に従って、記憶デバイス120m〜120rについて待機期間長を算出する。
図6(B)の例では、RAID5が適用された1つ目のRAIDグループに属する記憶デバイス120m〜120pの待機期間長は、以下の通りである。
【0083】
使用期間長が13月の記憶デバイス120mの待機期間長は0月(13−13)である。使用期間長が12月の記憶デバイス120nの待機期間長は1月(13−12)である。使用期間長が11月の記憶デバイス120oの待機期間長は2月(13−11)である。使用期間長が10月の記憶デバイス120pの待機期間長は3月(13−10)である。
【0084】
またRAID1が適用された2つ目のRAIDグループに属する記憶デバイス120q,120rの待機期間長は、以下の通りである。
使用期間長が13月の記憶デバイス120qの待機期間長は0月(13−13)である。使用期間長が12月の記憶デバイス120rの待機期間長は1月(13−12)である。
【0085】
図6(B)の例では、予備の記憶デバイス120sの使用期間長は、7月(0+1+2+3+0+1)である。
また、ストレージ装置100が有するRAIDグループの数が3以上の場合には、ストレージ装置100は、図6(B)と同様、各RAIDグループに共通の単位時間を算出する。次に、ストレージ装置100は、単位時間および記憶デバイスの数に基づいてストレージ装置100の全体の単位期間長を算出する。次に、ストレージ装置100は、単位期間長、RAIDグループ内の優先順位などに基づいて各記憶デバイスの使用期間長を算出する。次に、ストレージ装置100は、使用期間長に基づいて待機期間長を算出する。
【0086】
図7は、第2の実施の形態のスケジュール設定処理を示すフローチャートである。第2の実施の形態のストレージ装置100は、RAIDグループに属する各記憶デバイスについて使用期間長を算出するスケジュール設定処理を実行する。以下では、図7に示すスケジュール設定処理をフローチャートのステップ番号に沿って説明する。
【0087】
[ステップS11]設定部102は、RAIDグループに属する記憶デバイスの数に基づいて、スケジュールの単位期間長を算出する。
[ステップS12]設定部102は、RAIDグループに属する各記憶デバイスの搭載期間長を取得し、取得した搭載期間長をスケジュール設定情報記憶部151に記憶されているスケジュール設定情報に設定する。
【0088】
[ステップS13]設定部102は、RAIDグループに属する各記憶デバイスについて、ステップS12で取得した、スケジュール設定情報記憶部151に記憶されているスケジュール設定情報の搭載期間長に基づいて優先順位を設定する。さらに設定部102は、設定した優先順位をスケジュール設定情報記憶部151に記憶されているスケジュール設定情報に設定する。このとき、搭載期間長が長い記憶デバイスには優先順位が低く、搭載期間長が短い記憶デバイスには優先順位が高くなるように設定される。
【0089】
[ステップS14]設定部102は、RAIDグループに属する各記憶デバイスについて、ステップS13で設定した優先順位に基づいて、使用期間長を設定する。さらに設定部102は、設定した使用期間長をスケジュール設定情報記憶部151に記憶されているスケジュール設定情報に設定する。このとき、優先順位が高い記憶デバイスには使用期間長が短く、優先順位が低い記憶デバイスには使用期間長が長くなるように設定される。
【0090】
[ステップS15]設定部102は、RAIDグループに属する各記憶デバイスについて、ステップS14で設定した使用期間長に基づいて、待機期間長を設定する。さらに設定部102は、設定した待機期間長をスケジュール設定情報記憶部151に記憶されているスケジュール設定情報に設定する。各記憶デバイスの待機期間長は、単位期間長から当該記憶デバイスの使用期間長を減算して算出することができる。これにより、使用期間長が長い記憶デバイスには待機期間長が短く、使用期間長が短い記憶デバイスには待機期間長が長くなるように設定される。その後、処理は終了する。
【0091】
図8は、第2の実施の形態の記憶デバイス交換処理を示すフローチャートである。第2の実施の形態のストレージ装置100は、スケジュール設定処理で決定した優先順位および使用期間長に基づいてRAIDグループに属する各記憶デバイス120h〜120kを予備の記憶デバイス120lと交換する記憶デバイス交換処理を実行する。以下では、図8に示す記憶デバイス交換処理をフローチャートのステップ番号に沿って説明する。
【0092】
[ステップS21]制御部101の選択部101aは、RAIDグループに属する記憶デバイス120h〜120kにおいて、未交換の記憶デバイスが存在するか否かを判定する。未交換の記憶デバイスが存在すれば(ステップS21 YES)、処理はステップS22に進められる。一方、未交換の記憶デバイスが存在しなければ(ステップS21 NO)、処理は終了する。
【0093】
[ステップS22]制御部101の選択部101aは、未交換の記憶デバイス(例えば、記憶デバイス120h,120iが未交換であるとする)のうち、最も優先順位が高い記憶デバイス(例えば、120i)を選択する。設定変更部101bは、選択した記憶デバイス120iに記憶されているデータを、予備の記憶デバイス120lにコピーする。
【0094】
[ステップS23]制御部101の設定変更部101bは、ステップS22で選択した記憶デバイス120iと、予備の記憶デバイス120lとを交換する。具体的には、設定変更部101bは、記憶デバイス120iのデータを論理的に消去し、RAIDグループから除外して予備の記憶デバイスとして待機させる。また、設定変更部101bは、記憶デバイス120lを、記憶デバイス120iの代わりにRAIDグループに含める。
【0095】
[ステップS24]制御部101の設定変更部101bは、ステップS23で記憶デバイス120i,120lを交換してから次の交換を行うまでの待機期間が経過したか否かを判定する。待機期間が経過したか否かは、ステップS23の処理を実行してから、ステップS22で選択した記憶デバイスの待機期間長さだけ経過したか否かで判断できる。待機期間が経過していれば(ステップS24 YES)、処理はステップS25に進められる。一方、待機期間が経過していなければ(ステップS24 NO)、待機期間が経過するまでステップS24の処理が繰り返される。ここで、待機期間長は、上記式(4)で算出される。
【0096】
これにより、搭載期間長が短いために優先順位が高く、使用期間長が短い記憶デバイスは、予備の記憶デバイスと交換されて待機している期間が相対的に長くなる。一方、搭載期間長が長いために優先順位が低く、使用期間長が長い記憶デバイスは、予備の記憶デバイスと交換されて待機している期間が相対的に短くなる。従って、搭載期間長が短い記憶デバイスの書き込み回数の増加が抑制され、搭載期間長が長い記憶デバイスの書き込み回数が相対的に増加する。このため、RAIDグループに属する記憶デバイスの書き込み回数の差が増加する。
【0097】
[ステップS25]制御部101の設定変更部101bは、ステップS22でデータをコピーし、ステップS23で予備の記憶デバイス120lと交換した記憶デバイス120iに対して、記憶デバイス120lに記憶されているデータをコピーする。また、設定変更部101bは、記憶デバイス120lのデータを論理的に消去し、再び予備としてRAIDグループから除外する。また、記憶デバイス120iを、記憶デバイス120lの代わりにRAIDグループに含める。その後、処理はステップS21に進められる。
【0098】
なお、第2の実施の形態の記憶デバイス交換処理では、ステップS22でデータのコピーを行った後にステップS23で記憶デバイスを交換するが、これに限らず、記憶デバイスの交換を行った後にデータのコピーを行ってもよい。
【0099】
このように、第2の実施の形態のストレージ装置100では、RAIDグループに属する記憶デバイスそれぞれに異なる使用期間長を設定し、単位期間内で、各記憶デバイスを使用期間長に示された期間だけ使用するようにした。これにより、単位期間内での各記憶デバイスの使用頻度が異なり、単位期間内で行われる書き込み回数も、記憶デバイス毎に異なる値となる。その結果、複数の記憶デバイスが同時に書き込み回数の上限に達することを抑制することが可能になる。
【0100】
また、搭載期間長が短い記憶デバイスの待機期間長が長くなるようにスケジュール設定情報を設定するので、書き込み回数が少ないと考えられる搭載期間長が短い記憶デバイスについて予備として待機する期間が増加し、書き込み回数の増加が抑制される。これにより、記憶デバイスの書き込み回数の差を増加させることができる。
【0101】
また、搭載期間長が短い記憶デバイスを優先的に交換するので、書き込み回数が少ない記憶デバイスから先に書き込み回数の増加が抑制され、記憶デバイスの書き込み回数の差の増加が促進される。
【0102】
[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との差異を中心に説明し、同様の事項については説明を省略する。第3の実施の形態のストレージ装置は、RAIDグループに所定回数の書き込みが行われる毎に、RAIDグループに属する記憶デバイスの書き込み回数に基づいて交換対象の記憶デバイスを判定して記憶デバイスの交換を行う点で、第2の実施の形態と異なる。
【0103】
図9は、第3の実施の形態のストレージ装置を示すブロック図である。第3の形態のストレージ装置200は、制御部201、書き込み部202、書き込み回数カウント部203、デバイスエンクロージャ220を有する。
【0104】
制御部201は、選択部201aと設定変更部201bとを有する。
選択部201aは、書き込み回数カウント部203によるカウント結果に基づいて、RAIDグループに属する記憶デバイス220a,220bの中から、予備の記憶デバイス120cと交換する記憶デバイスを選択する。第3の実施の形態では、選択部201aは、予備の記憶デバイス220cと交換した場合に、RAIDグループに属する記憶デバイス同士の書き込み回数の差が、交換前よりも交換後の方が大きくなる記憶デバイスを交換対象として選択する。このとき、選択部201aは、書き込み回数カウント部203のカウント結果に基づいて、RAIDグループに属する記憶デバイス220a,220bの書き込み回数を取得して、交換前の書き込み回数の差を算出する。さらに選択部201aは、予備の記憶デバイス220cの書き込み回数を取得して、RAIDグループに属する記憶デバイス220a,220bそれぞれと交換を行った場合の、交換後にRAIDグループに属する記憶デバイス同士の書き込み回数の差を算出する。そして、選択部201aは、交換前後における書き込み回数の差を比較することで、交換対象の記憶デバイスを選択し、書き込み回数の差を増加させる。
【0105】
例えば選択部201aは、交換前の書き込み回数の差として、RAIDグループに属する記憶デバイス220a,220b同士の書き込み回数の差を算出する。また選択部201aは、交換後の書き込み回数の差として、予備の記憶デバイス220cをRAIDグループに組み込んだ後の予備の記憶デバイス220cの書き込み回数と、記憶デバイス220aの書き込み回数との差を計算する。これは交換対象として記憶デバイス220bを選択した場合の、交換後の書き込み回数の差である。さらに選択部201aは、交換後の書き込み回数の差として、予備の記憶デバイス220cをRAIDグループに組み込んだ後の予備の記憶デバイス220cの書き込み回数と、記憶デバイス220bの書き込み回数との差を計算する。これは交換対象として記憶デバイス220aを選択した場合の、交換後の書き込み回数の差である。選択部201aは、算出した交換前後の書き込み回数の差に基づき、交換前の書き込み回数の差よりも交換後の書き込み回数の差が大きくなるように、交換対象の記憶デバイスを選択する。
【0106】
なお、予備の記憶デバイスをRAIDグループに組み込む際には、そのRAIDグループから外される記憶デバイスのデータが、予備の記憶デバイスにコピーされる。このコピーの際に発生する予備の記憶デバイスへの書き込み回数を、コピー時書き込み回数とする。選択部201aは、予備の記憶デバイスをRAIDグループに組み込んだ後の予備の記憶デバイスの書き込み回数は、組み込み前の予備の記憶デバイスの書き込み回数に対して、コピー時書き込み回数を加算した値とする。コピー時書き込み回数は、例えば、選択部201aに予め推定値を設定しておくことができる。
【0107】
設定変更部201bは、交換対象として選択した記憶デバイス220bが記憶しているデータを予備の記憶デバイス220cにコピーする。その後、設定変更部201bは、交換対象として選択した記憶デバイス220bと予備の記憶デバイス220cとの交換を行う。これにより、選択されたRAIDグループに属する記憶デバイス220bと予備の記憶デバイス220cとの交換が行われ、予備であった記憶デバイス220cがRAIDグループに属し、RAIDグループに属していた記憶デバイス220bが予備となる。従って、選択された記憶デバイス220bの書き込み回数の増加が抑制され、選択されなかった記憶デバイス220aおよび予備であった記憶デバイス220cについてRAIDグループに対する書き込み処理が行われることで、書き込み回数が増加する。
【0108】
書き込み部202は、ホストコンピュータ300から入力されたデータを、RAIDグループに属する記憶デバイスに書き込む。
書き込み回数カウント部203は、RAIDグループに属する記憶デバイス220a,220bに対して行われた書き込み処理の回数をカウントする。例えば書き込み回数カウント部203は、書き込み部202の動作を監視する。そして書き込み回数カウント部203は、書き込み部202が書き込みを行う毎に、データの書き込み先の記憶デバイスの書き込み回数の値をカウントアップする。制御部201の選択部201aは、書き込み回数カウント部203によるカウント結果を取得して、後述する記憶デバイス交換処理における交換の判定を行うとともに、記憶デバイス同士の書き込み回数の差の算出を行う。
【0109】
デバイスエンクロージャ220は、記憶デバイス220a,220b,220cを有する。記憶デバイス220a〜220cは、データを記憶可能な記憶領域を有する。ストレージ装置200は、RAIDグループに、ホストコンピュータ300等から送信されたデータを記憶する。記憶デバイス220a,220bは、データを記憶するRAIDグループに属する。記憶デバイス220cは、予備でありRAIDグループに属さない。なお、RAIDグループは、任意の数の記憶デバイスで設定することができる。
【0110】
記憶デバイス220cは、予備の記憶デバイスであって、通常時はRAIDグループには属さず電源が投入されたままホットスタンバイで待機している。記憶デバイス220cは、記憶デバイス220cをRAIDグループ内の記憶デバイスと交換することで、そのRAIDグループ内での記憶デバイス間の書き込み回数の差が大きくなる場合に、そのRAIDグループに組み込まれる。また記憶デバイス220cは、RAIDグループの記憶デバイス220a,220bやその他の図示しない記憶デバイスに障害が発生した場合には、障害が発生した記憶デバイスの代わりに障害が発生した記憶デバイスが属していたRAIDグループに組み入れられる。なお、記憶デバイス220cの待機時の状態は、ホットスタンバイに限られない。例えば記憶デバイス220cは、ウォームスタンバイで待機してもよく、電源が投入されていないコールドスタンバイで待機し、使用の際に電源が投入されてもよい。
【0111】
なお、第2の実施の形態のストレージ装置200が1回の交換において交換するRAIDグループに属する記憶デバイスおよび予備の記憶デバイスの数は、任意である。
図10から図12は、第3の実施の形態の記憶デバイスの交換時の動作を示す図である。第3の実施の形態では、ストレージ装置200は、各記憶デバイスの書き込み回数を監視する。ストレージ装置200は、予め設定された交換書き込み回数毎に、交換した場合にRAIDグループにおける書き込み回数の差が大きくなる記憶デバイスを選択する。そしてストレージ装置200は、そのRAIDグループ内の選択した記憶デバイスを、予備の記憶デバイスに交換する。これにより、RAIDグループの記憶デバイスの書き込み回数の差を増加させることができる。
【0112】
ここで、第3の実施の形態のストレージ装置200では、以下の式(6)に従って、交換書き込み回数を算出する。
【0113】
【数6】

【0114】
具体的には、式(6)における記憶デバイスの書き込み回数上限は、記憶デバイス220t〜220xに設定されている書き込み回数の上限である。書き込み回数の上限が異なる記憶デバイスが存在する場合には、書き込み回数の上限が最も少ない記憶デバイスの書き込み回数の上限としてもよい。式(6)における記憶デバイスの数は、ストレージ装置200におけるRAIDグループに属する記憶デバイス220t〜220wの個数(例えば、4)である。予備の記憶デバイスの数は、ストレージ装置200における予備の記憶デバイス220xの個数(例えば、1)である。
【0115】
なお交換書き込み回数には、最大値を設定しておくこともできる。式(6)の計算結果が最大値を超えた場合、最大値を交換書き込み回数とする。例えば、最大値を1000000回に設定する。
【0116】
第3の実施の形態では、交換書き込み回数が80000回であるものとする。従って、前回の記憶デバイス交換処理の実行以後のストレージ装置200全体の記憶デバイスの書き込み回数の合計が80000回に達する毎に、後述する記憶デバイス交換処理において、記憶デバイスの交換の判定が行われる。また、交換時におけるRAIDグループに属する記憶デバイスから予備の記憶デバイスへのデータコピーの書き込み回数(コピー時書き込み回数)の推定値および実際の書き込み回数は、5000回とする。なお、これに限らず、交換書き込み回数およびコピー時書き込み回数の推定値は、任意に設定することができる。
【0117】
図10に示すように、第3の実施の形態のストレージ装置200は、2つのRAIDグループを有する。1つ目は、記憶デバイス220t,220uによるRAID1のRAIDグループである。2つ目は、記憶デバイス220v,220wによるRAID1のRAIDグループである。ストレージ装置100は、2つのRAIDグループそれぞれに属する記憶デバイス以外に、予備の記憶デバイス220xを有する。
【0118】
また、RAIDグループに属する記憶デバイス220t〜220wには、ストレージ装置200に搭載されてから、それぞれ20000回の書き込み処理が行われているものとする。予備の記憶デバイス220xがストレージ装置200に搭載されてからの書き込み回数は0回であるものとする。また、図10に示した状況にいたるまで、記憶デバイス220t〜220xについて、記憶デバイス交換処理は1回も行われていないものとする。また、図10に示す状況になった時点で、記憶デバイス220t〜220xの書き込み回数の合計は、80000回であり、上記の交換書き込み回数に達している。
【0119】
従って、図11に示すようにストレージ装置200は、後述する記憶デバイス交換処理に基づいて記憶デバイスの交換を実行する。このとき、交換前の時点では、記憶デバイス220t〜220wの書き込み回数は同数であり、いずれを交換してもRAIDグループ内の書き込み回数の差は増加する。ここでは、RAIDグループに属する記憶デバイス220uと予備の記憶デバイス220xとが交換されたものとする。また、このとき交換に先立って、記憶デバイス220uのデータが記憶デバイス220xにコピーされる。これにより、記憶デバイス220xの書き込み回数が、0回から5000回増加し、5000回となる。また、交換により予備となった記憶デバイス220uに対してはデータコピーが行われないので、記憶デバイス220uの書き込み回数は増加しない。
【0120】
このように、ストレージ装置200は、予備の記憶デバイスと交換した、RAIDグループに属していた記憶デバイス220uを、新たな予備の記憶デバイスとして待機させる。これより、RAIDグループから外された記憶デバイス220uを元のRAIDグループに戻さなくてもよくなる。そのため、記憶デバイス220uを元のRAIDグループに戻す際に発生する、予備であった記憶デバイス220xから記憶デバイス220uへのデータの書き込みが不要となる。その結果、交換時に記憶デバイス220uの書き込み回数の増加を抑制することができる。
【0121】
次に、RAIDグループに属する記憶デバイス220t,220x,220v,220wに対してそれぞれ20000回の書き込み処理が行われたものとする。これにより、記憶デバイス220t,220x,220v,220wの書き込み回数は、それぞれ、40000回、25000回、40000回、40000回となる。また、記憶デバイス220t,220x,220v,220wの記憶デバイス交換処理における前回の交換の判定からの書き込み回数の合計は、80000回であり、上記の交換書き込み回数に達している。
【0122】
従って、図12に示すようにストレージ装置200は、記憶デバイス交換処理に基づいて記憶デバイスの交換を実行する。このとき、交換前の時点では、記憶デバイス220t,220x,220v,220wの書き込み回数は、それぞれ40000回、25000回、40000回、40000回である。他方、予備の記憶デバイス220uの書き込み回数は20000である。すると、記憶デバイス220v,220wのうちのいずれかを予備の記憶デバイス220uと交換することで、RAIDグループ内の書き込み回数の差は増加する。ここでは、RAIDグループに属する記憶デバイス220wと予備の記憶デバイス220uとが交換されたものとする。また、このとき交換に先立って、記憶デバイス220wのデータが記憶デバイス220uにコピーされる。これにより、記憶デバイス220uの書き込み回数が、20000回から5000回増加し、25000回となる。これにより、同一のRAIDグループに属する記憶デバイス220v(40000回)と記憶デバイス220u(25000回)との書き込み回数の差は、15000回となる。ここで、記憶デバイス220vの書き込み回数が40000回であり、記憶デバイス220wの書き込み回数が40000回であることから、当該RAIDグループの交換前の書き込み回数の差は、0回である。従って、当該交換によって書き込み回数の差は増加する。また、交換により予備となった記憶デバイス220wに対してはデータコピーが行われないので、記憶デバイス220wの書き込み回数は増加しない。
【0123】
図13は、第3の実施の形態の記憶デバイスの書き込み回数の推移を示す図である。図13に示すように、ストレージ装置200は、RAID#1、RAID#2の2つのRAIDグループを有する。また、RAID#1およびRAID#2の構成は、RAID1であり、それぞれ2つの記憶デバイスが属している。RAID#1に属している記憶デバイスの一方を、記憶デバイス#1とし、他方を記憶デバイス#2とする。RAID#2に属している記憶デバイスの一方を、記憶デバイス#3とし、他方を記憶デバイス#4とする。また、ストレージ装置200は、5つの記憶デバイスを有する。ストレージ装置200が有する記憶デバイスを、それぞれ、SSD A、SSD B、SSD C、SSD D、SSD Eとする。これらのSSD A〜Eが、ストレージ装置200のRAID#1,#2の記憶デバイス#1〜#4および予備用記憶デバイスのいずれかに設定されるとともに、後述する記憶デバイス交換処理により交換される。
【0124】
ここで、上記のように、交換書き込み回数が80000回であるものとする。また、データコピーの書き込み回数の推定値および実際の書き込み回数は、5000回とする。以下、図13に従って、第3の実施の形態のストレージ装置200における各記憶デバイスの書き込み回数の推移を示す。なお、1回目交換前には、ストレージ装置200において記憶デバイス交換処理における交換の判定は行われていないものとする。
【0125】
[1回目交換前]RAID#1の記憶デバイス#1にSSD Aが設定されており、記憶デバイス#2にSSD Bが設定されている。RAID#2の記憶デバイス#3にSSD Cが設定されており、記憶デバイス#4にSSD Dが設定されている。予備用記憶デバイスにSSD Eが設定されている。SSD A〜SSD Dの書き込み回数は、20000回である。SSD Eの書き込み回数は、0回である。RAID#1,#2に属するSSD A〜SSD Dの書き込み回数の合計が交換書き込み回数である80000回に達しているので、交換の判定が行われる。
【0126】
ここで、ストレージ装置200は、RAID#1,#2のうち、書き込み回数が最大の記憶デバイスを有するRAIDを選択する。このとき、RAID#1,#2に属するSSD A〜SSD Dの書き込み回数が20000回とすべて等しい。そのためストレージ装置200は、任意のRAIDを選択することができる。ここでは、RAID#1が選択されたものとする。また、ストレージ装置200は、選択したRAID#1の記憶デバイスのうち、交換した場合にRAID#1に属する記憶デバイス間での書き込み回数の差が交換前よりも交換後の方が大きくなるような交換対象の記憶デバイスを判定する。このとき、RAID#1に属するSSD A、SSD Bの書き込み回数が20000回と等しい。また、交換を行った場合、予備用記憶デバイスに設定されているSSD Eの書き込み回数は、コピー時書き込み回数の推定値を加算すると5000回となる。ここで、記憶デバイス#2に設定されているSSD Bと予備用記憶デバイスに設定されているSSD Eとを交換した場合の交換の適否について説明する。この場合、記憶デバイス#1であるSSD A(書き込み回数20000回)と交換により記憶デバイス#2に設定されるSSD E(書き込み回数5000回(交換実行時))との書き込み回数の差は、15000回となり、交換をしない場合(書き込み回数の差0回)よりも書き込み回数の差は増加する。従って、RAID#1の記憶デバイス#2であるSSD Bを交換の対象として選択可能である。同様に、RAID#1の記憶デバイス#1であるSSD Aも、交換の対象として選択可能である。この場合、ストレージ装置100は、SSD AとSSD Bとのうち、任意のSSDを選択することができる。図13の例では、SSD Bが選択され、SSD Bと予備用記憶デバイスであるSSD Eとの交換が行われる。
【0127】
[1回目交換後]1回目の交換の実行により、RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、20000回である。記憶デバイス#2にSSD Eが設定されている。SSD Eの書き込み回数は、5000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、20000回である。記憶デバイス#4にSSD Dが設定されている。SSD Dの書き込み回数は、20000回である。予備用記憶デバイスにSSD Bが設定されている。SSD Bの書き込み回数は、20000回である。
【0128】
[2回目交換前]1回目の交換後からさらにRAID#1,#2に属する記憶デバイス#1〜#4に、それぞれ20000回の書き込み処理が行われたものとする。RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、40000回である。記憶デバイス#2にSSD Eが設定されている。SSD Eの書き込み回数は、25000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、40000回である。記憶デバイス#4にSSD Dが設定されている。SSD Dの書き込み回数は、40000回である。予備用記憶デバイスにSSD Bが設定されている。SSD Bの書き込み回数は、20000回である。前回の交換の判定からのRAID#1,#2に属するSSD A,SSD E,SSD C,SSD Dの書き込み回数の合計が交換書き込み回数である80000回に達しているので、交換の判定が行われる。
【0129】
ここで、ストレージ装置200は、RAID#1,#2のうち、書き込み回数が最大の記憶デバイスを有するRAIDを選択する。このとき、RAID#1,#2に属するSSD A,SSD C,SSD Dの書き込み回数が40000回とすべて等しい。ここで、RAID#1が選択されたものとする。この場合、ストレージ装置200は、選択したRAID#1の記憶デバイスと予備用デバイスとを交換した場合に、RAID#1の記憶デバイスの書き込み回数の差が大きくなる交換の有無を判定する。このとき、RAID#1に属するSSD Aの書き込み回数は40000回であり、SSD Eの書き込み回数は25000回である。また、交換を行った場合、予備用記憶デバイスに設定されているSSD Bの書き込み回数は、書き込み回数の推定値を加算すると25000回となる。すると、予備用記憶デバイスであるSSD BとRAID#1に属するSSD Aとを交換した場合の書き込み回数の差は0回である。予備用記憶デバイスであるSSD BとSSD Eとを交換した場合の書き込み回数の差は15000回である。そのためSSD AとSSD Eとのいずれと交換を行っても、交換後の書き込み回数の差は交換前のSSD AとSSD Eとの書き込み回数の差15000回を上回らないので、交換の前後で書き込み回数の差は増加しない。特に、SSD AとSSD Bとを交換した場合、交換後の書き込み回数の差が、交換前よりも減少してしまい、不適切である。従って、ストレージ装置200は、RAID#1の選択を取り止め、選択対象から除外する。次に、RAID#2が選択されたものとする。この場合、ストレージ装置200は、選択したRAID#2の記憶デバイスと予備用デバイスとを交換した場合に、RAID#2の記憶デバイスの書き込み回数の差が大きくなる交換の有無を判定する。このとき、RAID#2に属するSSD C、SSD Dの書き込み回数が40000回と等しい。また、交換を行った場合、上記のように予備用記憶デバイスに設定されているSSD Bの書き込み回数は、書き込み回数の推定値を加算すると25000回となる。ここで、記憶デバイス#4に設定されているSSD Dと予備用記憶デバイスに設定されているSSD Bとを交換した場合、記憶デバイス#3であるSSD C(書き込み回数40000回)と交換により記憶デバイス#4に設定されるSSD B(書き込み回数25000回(交換実行時))との書き込み回数の差は、15000回となり、交換をしない場合(書き込み回数の差0回)よりもSSD間の書き込み回数差は増加する。従って、RAID#2の記憶デバイス#4であるSSD Dと予備用記憶デバイスであるSSD Bとの交換が行われる。
【0130】
[2回目交換後]2回目の交換の実行により、RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、40000回である。記憶デバイス#2にSSD Eが設定されている。SSD Eの書き込み回数は、25000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、40000回である。記憶デバイス#4にSSD Bが設定されている。SSD Bの書き込み回数は、25000回である。予備用記憶デバイスにSSD Dが設定されている。SSD Dの書き込み回数は、40000回である。
【0131】
[3回目交換前]2回目の交換後からさらにRAID#1,#2に属する記憶デバイス#1〜#4に、それぞれ20000回の書き込み処理が行われたものとする。RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、60000回である。記憶デバイス#2にSSD Eが設定されている。SSD Eの書き込み回数は、45000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、60000回である。記憶デバイス#4にSSD Bが設定されている。SSD Bの書き込み回数は、45000回である。予備用記憶デバイスにSSD Dが設定されている。SSD Dの書き込み回数は、40000回である。前回の交換の判定からRAID#1,#2に属するSSD A,SSD E,SSD C,SSD Bの書き込み回数の合計が交換書き込み回数である80000回に達しているので、交換の判定が行われる。
【0132】
ここで、ストレージ装置200は、RAID#1,#2のうち、書き込み回数が最大の記憶デバイスを有する方を選択する。このとき、RAID#1,#2に属するSSD A,SSD Cの書き込み回数が60000回と等しい。ここで、RAID#1が選択されたものとする。この場合、ストレージ装置200は、選択したRAID#1の記憶デバイスとの交換のうち、交換した場合にRAID#1の記憶デバイスの書き込み回数の差が大きくなる交換の有無を判定する。このとき、RAID#1に属するSSD Aの書き込み回数は60000回であり、SSD Eの書き込み回数は45000回である。また、交換を行った場合、予備用記憶デバイスに設定されているSSD Dの書き込み回数は、書き込み回数の推定値を加算すると45000回となる。従って、予備用記憶デバイスであるSSD DとRAID#1に属するSSD A(交換した場合の書き込み回数の差は0回)、SSD E(交換した場合の書き込み回数の差は15000回)のいずれと交換を行っても、交換の前後で書き込み回数の差は増加しない。従って、ストレージ装置200は、RAID#1の選択を取り止め、選択対象から除外する。次に、RAID#2が選択されたものとする。この場合、ストレージ装置200は、選択したRAID#2の記憶デバイスとの交換のうち、交換した場合にRAID#2の記憶デバイスの書き込み回数の差が大きくなる交換の有無を判定する。このとき、RAID#2に属するSSD Cの書き込み回数は60000回であり、SSD Bの書き込み回数は45000回である。また、交換を行った場合、上記のように予備用記憶デバイスに設定されているSSD Dの書き込み回数は、書き込み回数の推定値を加算すると45000回となる。従って、予備用記憶デバイスであるSSD DとRAID#2に属するSSD C(交換した場合の書き込み回数の差は0回)、SSD B(交換した場合の書き込み回数の差は15000回)のいずれと交換を行っても、交換の前後で書き込み回数の差は増加しない。従って、ストレージ装置200は、RAID#2の選択を取り止め、選択対象から除外する。これにより、選択対象のRAIDが無くなるので、交換は行われない。
【0133】
[3回目交換後(交換なし)]3回目の交換が実行されないため、RAID#1,#2の記憶デバイス#1〜#4の状態は、3回目の交換前から変化しない。
[4回目交換前]3回目の交換後からさらにRAID#1,#2に属する記憶デバイス#1〜#4に、それぞれ20000回の書き込み処理が行われたものとする。RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、80000回である。記憶デバイス#2にSSD Eが設定されている。SSD Eの書き込み回数は、65000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、80000回である。記憶デバイス#4にSSD Bが設定されている。SSD Bの書き込み回数は、65000回である。予備用記憶デバイスにSSD Dが設定されている。SSD Dの書き込み回数は、40000回である。前回の交換の判定からRAID#1,#2に属するSSD A,SSD E,SSD C,SSD Bの書き込み回数の合計が交換書き込み回数である80000回に達しているので、交換の判定が行われる。
【0134】
ここで、ストレージ装置200は、RAID#1,#2のうち、書き込み回数が最大の記憶デバイスを有する方を選択する。このとき、RAID#1,#2に属するSSD A,SSD Cの書き込み回数が80000回と等しい。ここで、RAID#1が選択されたものとする。この場合、ストレージ装置200は、選択したRAID#1の記憶デバイスとの交換のうち、交換した場合にRAID#1の記憶デバイスの書き込み回数の差が大きくなる交換の有無を判定する。このとき、RAID#1に属するSSD Aの書き込み回数は80000回であり、SSD Eの書き込み回数は65000回である。また、交換を行った場合、予備用記憶デバイスに設定されているSSD Dの書き込み回数は、書き込み回数の推定値を加算すると45000回となる。ここで、記憶デバイス#2に設定されているSSD Eと予備用記憶デバイスに設定されているSSD Dとを交換した場合、記憶デバイス#1であるSSD A(書き込み回数80000回)と交換により記憶デバイス#2に設定されるSSD D(書き込み回数45000回(交換実行時))との書き込み回数の差は、35000回となり、交換をしない場合(書き込み回数の差15000回)よりも増加する。従って、RAID#1の記憶デバイス#2であるSSD Eと予備用記憶デバイスであるSSD Dとの交換が行われる。
【0135】
[4回目交換後]4回目の交換の実行により、RAID#1の記憶デバイス#1にSSD Aが設定されている。SSD Aの書き込み回数は、80000回である。記憶デバイス#2にSSD Dが設定されている。SSD Dの書き込み回数は、45000回である。RAID#2の記憶デバイス#3にSSD Cが設定されている。SSD Cの書き込み回数は、80000回である。記憶デバイス#4にSSD Bが設定されている。SSD Bの書き込み回数は、65000回である。予備用記憶デバイスにSSD Eが設定されている。SSD Eの書き込み回数は、65000回である。
【0136】
図14から図16は、第3の実施の形態の記憶デバイス交換処理を示すフローチャートである。第3の実施の形態のストレージ装置200は、所定回数の書き込みが行われる毎に、記憶デバイス220t〜220xを、RAIDグループに属する記憶デバイスと予備の記憶デバイスとの間で交換する記憶デバイス交換処理を実行する。以下では、図14から図16に示す記憶デバイス交換処理をフローチャートのステップ番号に沿って説明する。
【0137】
[ステップS31]制御部201の選択部201aは、書き込み回数カウント部203のカウント数に基づき、ストレージ装置200全体の書き込み回数を合計し、交換書き込み回数の書き込みが行われたか否かを判定する。所定回数の書き込みが行われていれば(ステップS31 YES)、処理はステップS32に進められる。一方、所定回数の書き込みが行われていなければ(ステップS31 NO)、所定回数の書き込みが行われるまでステップS31の処理が繰り返される。
【0138】
[ステップS32]制御部201の選択部201aは、ストレージ装置200が有するRAIDグループのうち、未選択のRAIDグループが存在するか否かを判定する。未選択のRAIDグループが存在すれば(ステップS32 YES)、処理はステップS33に進められる。一方、未選択のRAIDグループが存在しなければ(ステップS32 NO)、選択部201aは、ステップS32におけるRAIDグループの選択、ステップS34における記憶デバイスの選択、ステップS41の記憶デバイスの一対の選択を解除して未選択とする。また、書き込み回数カウント部203は、カウント数をリセットする。その後、処理はステップS31に進められる。
【0139】
[ステップS33]制御部201の選択部201aは、未選択のRAIDグループであって最も書き込み回数が多いRAIDグループを選択する。ここで、RAIDグループの書き込み回数は、それぞれのRAIDグループのうちの書き込み回数が最大の記憶デバイスの書き込み回数としてもよい。これにより、書き込み回数の上限に最も近い記憶デバイスと、当該RAIDグループの他の記憶デバイスとの書き込み回数の差を増加できる。また、RAIDグループの書き込み回数は、それぞれのRAIDグループの記憶デバイスの書き込み回数の合計値としてもよい。これにより、記憶デバイスの交換が行われた回数が少ないRAIDグループの記憶デバイスを予備の記憶デバイスと交換することで、当該RAIDグループの書き込み回数の差を増加させる。これにより、ストレージ装置200が有する複数のRAIDグループについて偏りなく、RAIDグループ内の記憶デバイスの書き込み回数の差を増加させることができる。
【0140】
[ステップS34]制御部201の選択部201aは、ステップS33で選択したRAIDグループにおいて、未選択の記憶デバイスが存在するか否かを判定する。未選択の記憶デバイスが存在すれば(ステップS34 YES)、処理はステップS41(図15)に進められる。一方、未選択の記憶デバイスが存在しなければ(ステップS34 NO)、処理はステップS35に進められる。
【0141】
[ステップS35]制御部201の選択部201aは、ステップS33で選択したRAIDグループを選択対象から除外する。その後、処理はステップS32に進められる。
[ステップS41]制御部201の選択部201aは、ステップS33で選択したRAIDグループの記憶デバイスのうち、書き込み回数の差が最も少ない記憶デバイスの一対を選択する。
【0142】
なお、選択部201aは、ステップS33で選択したRAIDグループの記憶デバイスのうち、書き込み回数が最も多い記憶デバイスと、当該記憶デバイスとの書き込み回数の差が最も少ない記憶デバイスの一対を選択してもよい。この場合、RAIDグループ内で最も書き込み回数が多い記憶デバイスと、2番目に書き込み回数が多い記憶デバイスとの対が選択される。これにより、書き込み回数の上限に最も近い記憶デバイスと、RAIDグループ内において書き込み回数の上限に2番目に近い記憶デバイスとの書き込み回数の差を増加させることができ、RAIDグループの記憶デバイスが同時に書き込み回数の上限に達することを抑制できる。
【0143】
また最も書き込み回数が多い記憶デバイスと、2番目に書き込み回数が多い記憶デバイスとの対を選択することで、書き込み回数の上限に達した記憶デバイスから予備のデバイスへのデータコピー中に、別の記憶デバイスが書き込み上限に達することを抑止できる。すなわち、書き込み回数が最も多い記憶デバイスは、RAIDグループ内で最初に書き込み回数の上限に達するものと想定される。書き込み回数が最も多い記憶デバイスが書き込み回数の上限に達すると、その記憶デバイス内のデータが予備の記憶デバイスにコピーされる。データのコピーには一定の時間がかかる。最も書き込み回数が多い記憶デバイスと、2番目に書き込み回数が多い記憶デバイスとの書き込み回数の差が大きい程、データコピーの完了前に2番目に書き込み回数が多い記憶デバイスが書き込み回数の上限に達することが抑止される。
【0144】
[ステップS42]制御部201の選択部201aは、当該時点の予備の記憶デバイスについて、データコピーによって予備の記憶デバイスに生じる書き込みの回数の推定値として予め設定された所定回数を、予備の記憶デバイスの当該時点の書き込み回数に加算する。選択部201aは、加算結果を、予備の記憶デバイスの交換後書き込み回数を算出する。
【0145】
[ステップS43]制御部201の選択部201aは、書き込み回数カウント部203のカウント結果に基づき、ステップS41で選択した一対の記憶デバイスのそれぞれの書き込み回数の差を算出する。選択した一対の記憶デバイスのそれぞれの書き込み回数の差は、交換前の差である。
【0146】
また、選択部201aは、ステップS41で選択した一対の記憶デバイスの一方の書き込み回数と、予備の記憶デバイスの交換後書き込み回数とを比較して、書き込み回数の差を算出する。
【0147】
また、選択部201aは、ステップS41で選択した一対の記憶デバイスの他方の書き込み回数と、予備の記憶デバイスの交換後書き込み回数とを比較して、書き込み回数の差を算出する。なおステップS41で選択した一対の記憶デバイスのそれぞれの書き込み回数は、書き込み回数カウント部203のカウント結果から得られる。予備の記憶デバイスの交換後書き込み回数は、ステップS42で算出した結果から得られる。
【0148】
[ステップS44]制御部201の選択部201aは、ステップS43で算出した書き込み回数の差に基づき、選択した一対のいずれかと予備の記憶デバイスとの交換において、書き込み回数の差が、交換しない場合よりも大きくなる交換が存在するか否かを判定する。書き込み回数の差が交換しない場合よりも大きくなる交換が存在すれば(ステップS44 YES)、処理はステップS45に進められる。一方、書き込み回数の差が交換しない場合よりも大きくなる交換が存在しなければ(ステップS44 NO)、処理はステップS46に進められる。
【0149】
[ステップS45]制御部201の選択部201aは、ステップS43で算出した書き込み回数の差に基づき、選択した一対のいずれかと予備の記憶デバイスとの交換のうち、書き込み回数の差がより大きくなる方の交換を選択する。その後、処理はステップS51(図16)に進められる。
【0150】
[ステップS46]制御部201の選択部201aは、ステップS41で選択した記憶デバイスの一対を選択対象から除外する。ここで、選択対象から記憶デバイスの一対が除外されることで、当該一対は選択されないが、当該一対のうちのいずれか一方が異なる場合には選択の対象となり得る。その後、処理はステップS34に進められる。
【0151】
[ステップS51]制御部201の設定変更部201bは、ステップS45で交換を選択した記憶デバイスに記憶されているデータを、予備の記憶デバイスにコピーする。
[ステップS52]制御部201の設定変更部201bは、ステップS45で交換を選択した記憶デバイスと、予備の記憶デバイスとを交換する。具体的には設定変更部201bは、ステップS45で選択した記憶デバイスのデータを論理的に消去し、RAIDグループから除外して予備の記憶デバイスとして待機させる。また設定変更部201bは、予備の記憶デバイスを、ステップS45で交換を選択した記憶デバイスの代わりにRAIDグループに含める。また選択部201aは、ステップS32におけるRAIDグループの選択、ステップS34における記憶デバイスの選択、ステップS41の記憶デバイスの一対の選択を解除して未選択とする。また、書き込み回数カウント部203は、カウント数をリセットする。その後、処理はステップS31に進められる。
【0152】
なお、第3の実施の形態の記憶デバイス交換処理では、ステップS51でデータのコピーを行った後にステップS52で記憶デバイスを交換するが、これに限らず、記憶デバイスの交換を行った後にデータのコピーを行ってもよい。
【0153】
このように、第3の実施の形態のストレージ装置200では、書き込み回数のカウント結果に基づき、書き込み回数の差が大きくなる記憶デバイスを交換するので、複数の記憶デバイスが同時に書き込み回数の上限に達することを抑制することが可能になる。
【0154】
また、RAIDグループに属する記憶デバイスと、予備の記憶デバイスとを交換した場合のRAIDグループに属する記憶デバイス同士の書き込み回数の差を算出して比較し、書き込み回数の差に基づいて交換対象の記憶デバイスを選択する。これにより、RAIDグループに属するいずれの記憶デバイスを交換した場合に書き込み回数の差を最も大きくできるかを比較でき、効果的に書き込み回数の差を増加させることができる。
【0155】
また、交換時のコピーにより増加する書き込み回数の推定値である交換書き込み回数に基づいて予備の記憶デバイスの交換後の交換後書き込み回数を算出し、交換後書き込み回数の算出結果に基づいて交換対象の記憶デバイスを選択する。これにより、交換時のコピーの影響を反映して記憶デバイスの書き込み回数の差を算出でき、交換対象の記憶デバイスの選択を適切に行うことができる。
【0156】
以上、開示のストレージ装置、およびストレージ装置制御方法を、図示の実施の形態に基づいて説明したが、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、開示の技術に他の任意の構成物や工程が付加されてもよい。また、開示の技術は前述した実施の形態のうちの任意の2以上の構成を組み合わせたものであってもよい。
【符号の説明】
【0157】
1 ストレージ装置
1a 記憶媒体群
1b 書き込み部
1c カウント部
1d 選択部
1e 設定変更部
1a−1,1a−2,1a−3 記憶媒体

【特許請求の範囲】
【請求項1】
少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定された、複数の記憶媒体と、
入力されたデータを、データ書き込み先に設定された記憶媒体に書き込む書き込み部と、
前記複数の記憶媒体それぞれに対して行われた書き込み回数をカウントするカウント部と、
データ書き込み先に設定されている第1の記憶媒体の書き込み回数と、データ書き込み先に設定されている第2の記憶媒体の書き込み回数との差よりも、前記第1の記憶媒体の書き込み回数と、予備に設定されている第3の記憶媒体の書き込み回数および前記第2の記憶媒体内のデータの前記第3の記憶媒体へのコピーの際に生じる書き込み回数に基づいて決定される値との差の方が大きくなる前記第2の記憶媒体を、交換対象として選択する選択部と、
交換対象として選択した前記第2の記憶媒体が記憶しているデータを前記第3の記憶媒体にコピーし、前記第2の記憶媒体の設定を予備に変更し、前記第3の記憶媒体の設定をデータ書き込み先に変更する設定変更部と、
を有することを特徴とするストレージ装置。
【請求項2】
前記選択部は、予め設定された推定値を、前記第2の記憶媒体内のデータの前記第3の記憶媒体へのコピーの際に生じる書き込み回数とすることを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記選択部は、前記複数の記憶媒体に所定の回数だけデータの書き込み処理が行われる毎に、交換対象とする記憶媒体を選択することを特徴とする請求項1または2のいずれかに記載のストレージ装置。
【請求項4】
少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定された、複数の記憶媒体を有するストレージ装置を制御するストレージ装置制御方法において、
入力されたデータを、データ書き込み先に設定された記憶媒体に書き込み、
前記複数の記憶媒体それぞれに対して行われた書き込み回数をカウントし、
データ書き込み先に設定されている第1の記憶媒体の書き込み回数と、データ書き込み先に設定されている第2の記憶媒体の書き込み回数との差よりも、前記第1の記憶媒体の書き込み回数と、予備に設定されている第3の記憶媒体の書き込み回数および前記第2の記憶媒体内のデータの前記第3の記憶媒体へのコピーの際に生じる書き込み回数に基づいて決定される値との差の方が大きくなる前記第2の記憶媒体を、交換対象として選択し、
交換対象として選択した前記第2の記憶媒体が記憶しているデータを前記第3の記憶媒体にコピーし、
前記第2の記憶媒体の設定を予備に変更し、前記第3の記憶媒体の設定をデータ書き込み先に変更する、
を有することを特徴とするストレージ装置制御方法。
【請求項5】
少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定された、複数の記憶媒体と、
入力されたデータを、データ書き込み先に設定された記憶媒体に書き込む書き込み部と、
前記複数の記憶媒体それぞれに関する、単位期間内でデータ書き込み先に設定する期間の長さが、記憶媒体間で不均一に定められた使用期間長情報に基づき、単位期間内での各記憶媒体のデータ書き込み先に設定される期間の長さが該使用期間長情報通りとなるスケジュールで、データ書き込み先に設定されている記憶媒体を、交換対象として選択する選択部と、
交換対象として選択した記憶媒体が記憶しているデータを、予備に設定されている記憶媒体にコピーし、該交換対象として選択した記憶媒体の設定を予備に変更し、該予備に設定されている記憶媒体の設定を、データ書き込み先に変更する設定変更部と、
を有することを特徴とするストレージ装置。
【請求項6】
搭載期間の長さが短い記憶媒体ほど、単位期間内でデータ書き込み先に設定されている期間の長さが短くなるように前記使用期間長情報を設定する設定部をさらに有することを特徴とする請求項5記載のストレージ装置。
【請求項7】
前記選択部は、単位期間内で、搭載期間の長さが長い記憶媒体よりも搭載期間の長さが短い記憶媒体を先に、交換対象として選択することを特徴とする請求項5または6のいずれかに記載のストレージ装置。
【請求項8】
少なくとも2つの記憶媒体がデータ書き込み先に設定され、データ書き込み先に設定された記憶媒体以外の少なくとも1つの記憶媒体が予備に設定された、複数の記憶媒体を有するストレージ装置を制御するストレージ装置制御方法において、
入力されたデータを、データ書き込み先に設定された記憶媒体に書き込み、
前記複数の記憶媒体それぞれに関する、単位期間内でデータ書き込み先に設定する期間の長さが、記憶媒体間で不均一に定められた使用期間長情報に基づき、単位期間内での各記憶媒体のデータ書き込み先に設定される期間の長さが該使用期間長情報通りとなるスケジュールで、データ書き込み先に設定されている記憶媒体を、交換対象として選択し、
交換対象として選択した記憶媒体が記憶しているデータを、予備に設定されている記憶媒体にコピーし、
交換対象として選択した記憶媒体の設定を予備に変更し、予備に設定されている記憶媒体の設定を、データ書き込み先に変更する、
ことを特徴とするストレージ装置制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate