(57)【要約】【課題】複数のＳＳＤからなるストレージシステム全体の寿命を長くするストレージ装置を提供する。【解決手段】ストレージ装置は、寿命推定部と、データ交換部と、を備える。寿命推定部は、複数のＳＳＤそれぞれにおける代替セクタに関する情報と、複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する。データ交換部は、複数のＳＳＤのうち推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、複数のＳＳＤのうち第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する。さらに、データ交換部は、第１のＳＳＤに格納されたデータを、複数のＳＳＤのうち第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、寿命短縮量に基づき前記第２のＳＳＤを選択する。【選択図】図１
2018169980.tif 000002
【特許請求の範囲】
【請求項１】
複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する、寿命推定部と、
前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する、データ交換部と、
を備え、
前記データ交換部は、前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、ストレージ装置。
【請求項２】
前記寿命推定部は、
前記代替セクタに関する情報として、代替セクタの総容量と代替セクタの使用量を用いる、請求項１のストレージ装置。
【請求項３】
前記データ交換部は、
前記複数のＳＳＤのうちいずれか１つのＳＳＤに所定のサイズよりも大きいデータが書き込まれる際に、前記第１のＳＳＤと前記第２のＳＳＤの間でデータを交換するか否かを判定する、請求項１又は２のストレージ装置。
【請求項４】
前記データ交換部は、
前記寿命短縮量を算出したＳＤＤのうち、前記寿命短縮量が最も小さいＳＳＤを前記第２のＳＳＤに選択する、請求項１乃至３のいずれか一項に記載のストレージ装置。
【請求項５】
前記複数のＳＳＤを用いて、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成すべく、データ及び冗長符号を分散格納する機能を備える、請求項１乃至４のいずれか一項に記載のストレージ装置。
【請求項６】
前記データ交換部は、前記第１及び第２のＳＳＤ間でデータ交換する際のデータの入れ替え単位を、ＲＡＩＤを構成するストライピンググループのサイズを基準とする、請求項５のストレージ装置。
【請求項７】
前記データ交換部は、
前記第１及び第２のＳＳＤ間でデータ交換する際、ＲＡＩＤを構成する情報を書き換える、請求項６のストレージ装置。
【請求項８】
前記複数のＳＳＤそれぞれに対応し、対応するＳＳＤに対するデータの累計書き込み回数を計測する、複数の書き込み回数カウンタをさらに備える、請求項１乃至７のいずれか一項に記載のストレージ装置。
【請求項９】
複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定するステップと、
前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換するステップと、
を含み、
前記データを交換するステップは、
前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、ストレージ装置の制御方法。
【請求項１０】
ストレージ装置に搭載されたコンピュータに実行させるプログラムであって、
複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する処理と、
前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する処理と、
を前記コンピュータに実行させ、
前記データを交換する処理は、
前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ装置の制御方法及びプログラムに関する。特に、複数の記憶媒体を有するストレージ装置、ストレージ装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＳＳＤ（Solid State Drive）と称される記憶媒体が広く用いられている（特許文献１〜４）。
【０００３】
特許文献１は、複数のＳＳＤそれぞれにおける書き込み回数を監視し、書き込み回数がＳＳＤ間で極端に偏る場合、データスワップを行い、書き込み回数の平準化を図る技術を開示している。
【０００４】
特許文献２は、ＳＳＤへの書き込み回数が予め定めた回数よりも多い場合、データの一部をスペアディスク（スペアの記憶デバイス）に退避させる技術を開示している。
【０００５】
特許文献３は、ＳＳＤに書き込み領域を割り当てる際、ＳＳＤの特性がＳＬＣ（Single-Level-Cell）かＭＬＣ（Multi-Level-Cell）であるかを考慮し、ＳＳＤに対する書き込み頻度の高い場合はＳＬＣを割り当て、書き込み頻度が低い場合にはＭＬＣを割り当てる技術を開示している。
【０００６】
特許文献４は、複数の記憶媒体間の劣化を平準化するための技術を開示する。特許文献４には、第１論理記憶領域に割り当てられた記憶デバイスと異なる記憶デバイスを割り当てられ第１論理記憶領域の推定データより小さい推定データ量を有する第２論理記憶領域を選択し、第１論理記憶領域に格納された第１データを第２論理記憶領域に移動させる、と記載されている。
【０００７】
特許文献５は、コンパクトフラッシュ（登録商標）に関する技術を開示している。特許文献５は、代替セクタ数が閾値を超える場合は商品販売データをメモリに記憶させ、商品販売データの登録終了に応答して、メモリに記憶した複数の商品販売データを一括してコンパクトフラッシュ(登録商標)カードに書込む技術を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５２４２２６４号公報
【特許文献２】特開２０１０−５５２４７号公報
【特許文献３】特許第５１９２３５２号公報
【特許文献４】国際公開第２０１４／１４１４１１号
【特許文献５】特開２００６−１５５５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【００１０】
ＳＳＤへの書き込み回数は、ＳＳＤの寿命に影響を与える。そのため、上述のように、ＳＳＤの書き込みに関する種々の技術が存在する。しかし、ＳＳＤの寿命は書き込み回数にだけ依存して定まるものではなく、ＳＳＤへのデータ書き込みを抑制したとしてもＳＳＤの寿命を保証することはできない。
【００１１】
その理由は、実際のＳＳＤが寿命を迎えるのは、代替セクタの枯渇が主要因として考えられるからである。つまり、ＳＳＤへの書き込み回数はＳＳＤの寿命を推測する方法の１つであって、代替セクタの存在を考慮していなければ不十分である。例えば、特許文献１には、代替セクタの使用量を観測する言及がない。
【００１２】
また、ＳＳＤの内部制御回路は、ＳＳＤの読み書きが失敗した場合、代替セクタへの切り替えによって状態回復を図る。ＳＳＤの読み書き失敗は、書き込み回数によって確率的に発生し得るが、その発生頻度は、周辺環境やＳＳＤ素体の特性によって変化する。例えば、周辺温度が高い場合、書き込みエラーが発生する可能性が高くなる。また、個々のＮＡＮＤフラッシュの特性がＳＬＣかＭＬＣかによって、エラー耐性が異なることも考慮すべきである。
【００１３】
特許文献３には、記憶素子の特性に応じて（ＳＬＣかＭＬＣかに応じて）、書き換え頻度の高い領域を割り当てるか、低い領域を割り当てるかを選択する方法が開示されている。しかし、当該文献に開示された技術においても、実際の代替セクタの使用量の多寡は検証されていない。そのため、書き込み回数が少なくても、代替セクタの使用量が多いＳＳＤが存在する場合、書き込み時に代替セクタを消費する可能性が高くなる。その結果、ＳＳＤ間のデータスワップ時の書き込みで、かえってＳＳＤ寿命が短くなる可能性もある。
【００１４】
本発明は、複数のＳＳＤからなるストレージシステム全体の寿命を長くする、ストレージ装置、ストレージ装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の視点によれば、複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する、寿命推定部と、前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する、データ交換部と、を備え、前記データ交換部は、前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、ストレージ装置が提供される。
【００１６】
本発明の第２の視点によれば、複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定するステップと、前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換するステップと、を含み、前記データを交換するステップは、前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、ストレージ装置の制御方法が提供される。
【００１７】
本発明の第３の視点によれば、ストレージ装置に搭載されたコンピュータに実行させるプログラムであって、複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、前記複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する処理と、前記複数のＳＳＤのうち前記推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、前記複数のＳＳＤのうち前記第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する処理と、を前記コンピュータに実行させ、前記データを交換する処理は、前記第１のＳＳＤに格納されたデータを、前記複数のＳＳＤのうち前記第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、前記寿命短縮量に基づき前記第２のＳＳＤを選択する、プログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１８】
本発明の各視点によれば、複数のＳＳＤからなるストレージシステム全体の寿命を長くすることに寄与する、ストレージ装置、ストレージ装置の制御方法及びプログラム、が提供される。
【図面の簡単な説明】
【００１９】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係るストレージ装置の概略構成の一例を示す図である。
【図３】第１の実施形態に係るデバイスコントローラの処理構成の一例を示す図である。
【図４】第１の実施形態に係るストレージ装置の動作を説明するための図である。
【図５】第１の実施形態に係るストレージ装置の概略構成の他の一例を示す図である。
【発明を実施するための形態】
【００２０】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。
【００２１】
一実施形態に係るストレージ装置１０は、寿命推定部２０１と、データ交換部２０２と、を備える（図１参照）。寿命推定部２０１は、複数のＳＳＤ（Solid State Drive）それぞれにおける代替セクタに関する情報と、複数のＳＳＤそれぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する。データ交換部２０２は、複数のＳＳＤのうち推定された寿命値が所定の値よりも小さい第１のＳＳＤに格納されたデータと、複数のＳＳＤのうち第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する。さらに、データ交換部２０２は、第１のＳＳＤに格納されたデータを、複数のＳＳＤのうち第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、寿命短縮量に基づき前記第２のＳＳＤを選択する。
【００２２】
上述のように、ＳＳＤの寿命は代替セクタの枯渇によるものと考えられるが、ＳＳＤの寿命を延ばす（ＳＳＤを延命）ためには書き込み回数の少ない領域への割り当ても必要になる。そこで、ストレージ装置１０は、ＳＳＤの代替セクタに関する情報（例えば、代替セクタの使用量）と書き込み回数を共に観測し、これらの情報を用いた演算結果から、ＳＳＤの寿命低下を予測する。ストレージ装置１０は、特定のＳＳＤの寿命が短くなっていると判断した場合には、他の寿命が長いＳＳＤとの間でデータスワップを行う。その結果、ＳＳＤを搭載したストレージシステム全体の寿命が長くなる。また、ストレージシステム全体の寿命が長くなることで、システム全体の信頼性を向上させることができる。
【００２３】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００２４】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２５】
図２は、第１の実施形態に係るストレージ装置１の概略構成の一例を示す図である。図２を参照すると、ストレージ装置１は、ストレージコントローラ１１と、複数のＳＳＤ１２〜１５と、を含んで構成される。
【００２６】
ストレージコントローラ１１は、ストレージ装置１の全体を制御する手段である。ＳＳＤ１２〜１５のそれぞれは、データを保持する記憶デバイスである。ストレージコントローラ１１は、ＳＳＤ１２〜１５を制御するデバイスコントローラ１１１を備えている（デバイスコントローラ１１１が実装されている）。
【００２７】
デバイスコントローラ１１１は、各ＳＳＤに対応するデバイスインターフェイス１１２〜１１５を介して、ＳＳＤ１２〜１５に接続されている。また、ストレージコントローラ１１は、デバイスインターフェイス１１２〜１１５及びＳＳＤ１２〜１５に対応する書き込み回数カウンタ１１２１〜１１５１を備えている。
【００２８】
書き込み回数カウンタ１１２１〜１１５１は、対応するＳＳＤ１２〜１５に対する書き込み回数を監視する手段である。より具体的には、書き込み回数カウンタ１１２１〜１１５１は、複数のＳＳＤ１２〜１５それぞれに対応して設置され、対応するＳＳＤへのデータの累計書き込み回数を計測する。
【００２９】
また、ＳＳＤ１２〜１５のそれぞれには、代替セクタ１２１〜１５１が実装されている。代替セクタ１２１〜１５１は、必要に応じて消費される。図２では、灰色で塗りつぶされた領域が代替セクタ使用領域１２１１〜１５１１であって、代替セクタの消費分である。
【００３０】
各ＳＳＤ１２〜１５の記憶領域は、ＳＳＤ１２〜１５の間でＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成されている。つまり、ストレージ装置１は、複数のＳＳＤ１２〜１５を用いて、ＲＡＩＤを構成すべく（ＲＡＩＤを構成するための）、データおよび冗長符号を分散格納する機能を備える。また、ストライピンググループ２１は、データ領域２１２〜２１５で構成される。
【００３１】
なお、図２では、ストレージ装置１と接続されるホストや当該ホストとのインターフェイスの図示は省略している。
【００３２】
図３は、デバイスコントローラ１１１の処理構成の一例を示す図である。図３を参照すると、デバイスコントローラ１１１は、寿命推定部１０１と、データ交換部１０２と、を含んで構成される。なお、デバイスコントローラ１１１は、ストレージ装置１に搭載されたコンピュータに、上記寿命推定部１０１、データ交換部１０２を含む処理モジュールを実行させるプログラムにより実現することができる。
【００３３】
寿命推定部１０１は、複数のＳＳＤ１２〜１５それぞれにおける代替セクタに関する情報と、複数のＳＳＤ１２〜１５それぞれに対するデータの書き込み回数と、に基づき各ＳＳＤの寿命値を推定する手段である。寿命推定部１０１は、各ＳＳＤにおける代替セクタの消費量と書き込み回数の組み合わせに基づき、各ＳＳＤに関する寿命パラメータを作成する。
【００３４】
データ交換部１０２は、複数のＳＳＤ１２〜１５のうち推定された寿命値（寿命パラメータ）が所定の値よりも小さい第１のＳＳＤに格納されたデータと、複数のＳＳＤ１２〜１５のうち第１のＳＳＤとは異なる第２のＳＳＤに格納されたデータと、を交換する手段である。データ交換の際、データ交換部１０２は、第１のＳＳＤに格納されたデータを、複数のＳＳＤ１２〜１５のうち第１のＳＳＤを除くＳＳＤのそれぞれに格納した場合の各ＳＳＤにおける寿命短縮量を算出すると共に、当該算出された寿命短縮量に基づき第２のＳＳＤを選択する。
【００３５】
つまり、データ交換部１０２は、寿命悪化が見込まれるＳＳＤから余命が長いと推定されるＳＤＤに書き込み処理をスワップする（ＳＳＤ間でデータを移動する）。このようなデバイスコントローラ１１１の処理により、ＳＳＤ間の見込み寿命が平準化され、ストレージシステム全体の寿命を長くすることができる。
【００３６】
なお、データ交換部１０２は、データスワップをＲＡＩＤのストライピングごとに行う。より具体的には、データ交換部１０２は、上述の第１及び第２のＳＳＤ間でデータ交換する際のデータの入れ替え単位を、ＲＡＩＤを構成するストライピンググループのサイズを基準とする。例えば、データ交換部１０２は、ブロック単位でＳＳＤ間でデータを交換し、１つのブロックよりも小さいデータ同士をＳＳＤ間で交換することはない。例えば、図２の例では、同じストライピンググループ２１に属するデータ領域２１２〜２１５の間でデータスワップ（ＳＳＤ間のデータの移動）が行われる。
【００３７】
また、データ交換部１０２は、ＳＳＤ間でデータ交換する際、ＲＡＩＤを構成する情報を書き換える。具体的には、データ交換部１０２は、複数のＳＳＤ１２〜１５を連携する情報のうち、データとその格納先のＳＳＤを示す情報をＳＳＤ間のデータ移動の際に更新する。その結果、ホストに対してはＳＳＤ間のデータの移動は隠蔽される。換言するならば、ＳＳＤ間のデータの移動はストレージコントローラ１１（デバイスコントローラ１１１）側により隠ぺいされ、ホストが意識することはない。
【００３８】
寿命推定部１０１は、以下の式（１）により、各ＳＳＤの寿命パラメータを作成する。
Lt_SSDx=α-β*Wcountx-γ*Ssectorx*CapAll/(SsecCap*Wcountx)  ・・・（１）
【００３９】
なお、式（１）において、サフィックスｘはＳＳＤの番号（識別子）を示す。Ｌｔ_ＳＳＤｘは、各ＳＳＤの寿命の推測値を示す。Ｗｃｏｕｎｔｘは、各ＳＳＤへの書き込み回数を示す。Ｓｓｅｃｔｏｒｘは、代替セクタの使用量を示す。つまり、Ｓｓｅｃｔｏｒｘは、ＳＳＤでのエラー（代替）が発生したセクタ数と等価である。ＣａｐＡｌｌは、代替セクタを除くＳＳＤの総記憶容量を示す。ＳｓｅｃＣａｐは、各ＳＳＤの代替セクタ総容量を示す。α、β及びγはＳＳＤの種類ごとのパラメータを示す。より具体的には、αはＳＳＤ寿命の基準値、βは書き込み回数による劣化係数、γは代替セクタ使用量での寿命の短縮係数である。
【００４０】
上述の式（１）において、右辺の第二項は、書き込み回数による寿命の減少量を示す。また、右辺の第三項は、代替セクタの使用量が代替セクタの総容量に比べて大きい場合、及び、代替セクタの総容量が総記憶容量に比べて小さい場合、各ＳＳＤの寿命が短くなっていることを示す。
【００４１】
寿命推定部１０１は、上記の式（１）を用いて各ＳＳＤに関する寿命の推定値（寿命パラメータ）を算出する。なお、上記の式（１）の計算に必要なパラメータのうち、Ｗｃｏｕｎｔｘは書き込み回数カウンタ１１２１〜１１５１により得られる。また、Ｓｓｅｃｔｏｒｘは、代替セクタの使用量であるから、デバイスコントローラ１１１自身（寿命推定部１０１自身）が把握している情報である。他の情報、例えば、ＣａｐＡｌｌ、ＳｓｅｃＣａｐ、α、β及びγ、は各ＳＳＤの仕様により定まる値である。従って、事前にこれらの情報をデバイスコントローラ１１１に入力しておけばよい。
【００４２】
データ交換部１０２は、寿命推定部１０１により算出された寿命の推定値Ｌｔ_ＳＳＤｘに対して閾値処理を行い、当該推定値が所定の閾値よりも小さい場合には、データスワップを行う。あるいは、データ交換部１０２は、推定した寿命値が他のＳＳＤと比較して小さい場合には余命が短いと判断し、データスワップを行うことで寿命悪化を回避してもよい。
【００４３】
なお、データ交換部１０２によるデータスワップを行うか否かを判断は、複数のＳＳＤのうちいずれか１つのＳＳＤに所定のサイズよりも大きいデータが書き込まれるタイミングとする。例えば、１ブロックよりも大きいデータがＳＳＤに書き込まれる際に、上記データスワップの実行要否が判定される。あるいは、１ブロックよりも大きいデータがＳＳＤに書き込まれる際に、寿命推定部１０１により各ＳＳＤの寿命が推定され、その後、データ交換部１０２によりデータスワップの実行要否が判定されてもよい。
【００４４】
データ交換部１０２は、スワップする領域サイズから、寿命の変更差分を求める。つまり、データ交換部１０２は、データスワップした後の各ＳＳＤの寿命を予測する。スワップ後の予測寿命をＬｔ_ＳＳＤｘ’と表記すると、当該予測寿命Ｌｔ_ＳＳＤｘ’は下記の式（２）により算出される。
【００４５】
Lt_SSDx'=α-β*(Wcountx+SWsizex/Block)-γ*Ssectorx*CapAll*(Wcountx+SWsizex/Block)/(SsecCap*Wcountx^2))  ・・・（２）
【００４６】
上記式（２）において、ＳＷｓｉｚｅｘは、ＳＳＤの領域のうち更新頻度の高い領域でのサイズを示す。ＳＷｓｉｚｅｘは、データスワップで置き換えられるデータのサイズである。また、ＢｌｏｃｋはＳＳＤの種類ごとの書き込み更新単位を示す。Ｂｌｏｃｋは、ＳＳＤの最小書き換え単位とする。つまり、データ交換部１０２は、ＳＳＤ間でデータ交換する際のデータの入れ替え単位を、ＲＡＩＤを構成するストライピンググループのサイズ（Ｂｌｏｃｋ）を基準とする。換言すれば、ブロック単位でデータが入れ替えられ、１つのブロックよりも小さいサイズのデータ同士を入れ替えることはない。なお、ＳＷｓｉｚｅｘ／Ｂｌｏｃｋを計算することで、データスワップ時の書き換え回数が求まる。
【００４７】
ここで、代替セクタの消費量Ｓｓｅｃｔｏｒｘも、書き換え処理によって増加すると予測される。当該増加量は、書き換え回数Ｗｃｏｕｎｔｘの増加量の形で示される。データスワップ後の書き換え回数をＷｃｏｕｎｔｘ’とすると、当該書き換え回数は下記の式（３）により求まる。
Wcountx’= Wcountx+SWsizex/Block  ・・・（３）
【００４８】
代替セクタの増加量は、元の書き換え回数との比率であらわされるから、増加比率δは以下の式（４）により求まる。
δ=Wcountx’/Wcountx=(Wcountx+SWsizex/Block)/Wcountx  ・・・（４）
【００４９】
式（１）における右辺の第二項の書き換え回数を式（３）におけるＷｃｏｕｎｔｘ’で置き換え、式（１）における右辺の第三項に式（４）の増加比率δを乗じて整理すると、式（２）が得られる。但し、厳密には、右辺の第三項の分母を書き換え回数Ｗｃｏｕｎｔｘ’により置き換えるのが好ましいが、代替セクタの消費量が少なく見積もられるため、式（１）における右辺の第三項の分母は不変としている。
【００５０】
データスワップの実行が決定されると、データ交換部１０２は、式（１）と式（２）を用いて、データ移動先の候補となる各ＳＳＤの寿命の短縮量を計算する。
【００５１】
ここで、ＳＳＤの寿命の短縮量が小さいということは、元のＳＳＤの寿命が長く、寿命の変化量が小さいということと等価である。そこで、データ交換部１０２は、下記の式（５）に示すように、元の寿命の推定値Ｌｔ_ＳＳＤｘよりデータスワップ後の寿命Ｌｔ_ＳＳＤｘ’を減算することで、寿命の短縮量を算出する。
【００５２】
Lt_SSDx-Lt_SSDx'
=(β+γ*Ssectorx*CapAll/(SsecCap*Wcountx^2))*SWsizex/Block)  ・・・(５）
【００５３】
上記式（５）の値が寿命の短縮量であるから、データ交換部は、上記値が最も小さくなるＳＳＤをスワップ対象として選択する。
【００５４】
次に、図４を参照しつつ、第１の実施形態に係るストレージ装置１の動作を説明する。図４において、各ＳＳＤ１２〜１５のそれぞれの代替セクタ１２１〜１５１は、灰色領域の容量が消費されているものとする（代替セクタ１２１〜１５１は、代替セクタ使用領域１２１１〜１５１１の大きさが使用されている）。また、各ＳＳＤ１２〜１５に対する書き込み回数（書き込み回数カウンタ１１２１〜１１５１が保持するカウント値）は、Ｎ１、Ｎ２、Ｎ３、Ｎ４とする。
【００５５】
上記書き込み回数の大小関係は、下記の式（６）のとおりとする。
【００５６】
Ｎ４＞Ｎ３＞Ｎ２＞Ｎ１  ・・・（６）
【００５７】
デバイスコントローラ１１１は、各ＳＳＤの代替セクタ使用領域１２１１〜１５１１のサイズと各書き込み回数カウンタ１１２１〜１１５１の値により、各ＳＳＤの予測寿命を算出する。具体的には、デバイスコントローラ１１１は、ＳＳＤ１２〜１５のそれぞれについて式（１）を適用し、下記の式（７）〜（１０）により各ＳＳＤの予測寿命を算出する。
【００５８】
Lt_SSD12=α-β*N1-γ*Ssector12*CapAll/(SsecCap*N1)  ・・・（７）
Lt_SSD13=α-β*N2-γ*Ssector13*CapAll/(SsecCap*N2)  ・・・（８）
Lt_SSD14=α-β*N3-γ*Ssector14*CapAll/(SsecCap*N3)  ・・・（９）
Lt_SSD15=α-β*N4-γ*Ssector15*CapAll/(SsecCap*N4)  ・・・（１０）
【００５９】
なお、ＳＳＤがすべて同一種類であるとすると、α、β及びγは固定値となる。また、上記の式（７）〜（１０）では、各ＳＳＤを示す符号をサフィックスｘとしている。
【００６０】
上記（７）〜（１０）による計算の結果、ＳＳＤ１２の予測寿命値Ｌｔ_ＳＳＤ１２が最も小さく、かつ、当該予測寿命値が所定の閾値よりも小さい場合、デバイスコントローラ１１１は、ＳＳＤ１２に格納されたデータのスワップを決定する。
【００６１】
デバイスコントローラ１１１は、ＳＳＤ１２のデータをスワップする際の相手先となるＳＳＤを下記の式（１１）〜（１３）により求める。
【００６２】
Lt_SSD13 - Lt_SSD13' 
= (β+γ*Ssector13*CapAll/(SsecCap*N2^2))*SWsizex/Block)  ・・・（１１）
Lt_SSD14 - Lt_SSD14' 
= (β+γ*Ssector14*CapAll/(SsecCap*N3^2))*SWsizex/Block)  ・・・（１２）
Lt_SSD15 - Lt_SSD15'
= (β+γ*Ssector15*CapAll/(SsecCap*N4^2))*SWsizex/Block)  ・・・（１３）
【００６３】
式（１１）〜（１３）を確認すると、データスワップ後のＳＳＤの寿命の短縮量は、代替セクタの消費量が多い物ほど大きくなる。具体的には、式（１１）により計算されるＳＳＤ１３の寿命短縮量が最も小さく、式（１２）により計算されるＳＳＤ１４の寿命短縮量が最も大きくなる。
【００６４】
デバイスコントローラ１１１は、ＳＳＤの寿命短縮量が最も小さいＳＳＤをデータスワップの相手先として選出する。上記の例ではＳＳＤ１３がデータスワップの相手となる。
【００６５】
このように、デバイスコントローラ１１１は、データスワップの相手（データの移動先）とするＳＳＤは、書き込み回数に加え、代替セクタの消費量を少ないものを選出する。図４の例では、デバイスコントローラ１１１は、ＳＳＤ１２の寿命が短くなっていると判断した場合には、ＳＳＤ１２とＳＳＤ１３との間でデータスワップを実施する。
【００６６】
上記実施形態にて説明したストレージ装置１の構成や動作は例示であって、システムの構成を限定する趣旨ではない。例えば、各ＳＳＤがＲＡＩＤを構成しておらず、図４のデータ領域２１２〜２１５が互いに独立していてもよい（図５参照）。このような場合であっても、データ領域の書き込み単位が定まっていれば、データスワップは可能である。
【００６７】
以上のように、第１の実施形態に係るストレージ装置１では、ＳＳＤの代替セクタの使用量を監視することで、実際のＳＳＤの寿命をより正確に予測する。代替セクタの枯渇がＳＳＤの寿命そのものに影響するため、書き込み回数の観測より直接的にＳＳＤの状態を確認できるためである。
【００６８】
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、複数の記憶媒体を含むディスクアレイ装置等に好適に適用可能である。ディスクアレイ装置に適用することで、当該装置の長寿命化が実現できる。即ち、ＳＳＤ単体の寿命は、ＳＳＤ内部でのウェアレベリングや、代替セクタの大容量化などで増加傾向にあり、これに装置全体での延命効果を付加すれば、ＳＳＤの寿命を装置寿命程度まで伸ばすことが可能となり、ＳＳＤの交換を減らすことが可能になる。
【００６９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
上述の第１の視点に係るストレージ装置のとおりである。
［付記２］
前記寿命推定部は、
前記代替セクタに関する情報として、代替セクタの総容量と代替セクタの使用量を用いる、付記１のストレージ装置。
［付記３］
前記データ交換部は、
前記複数のＳＳＤのうちいずれか１つのＳＳＤに所定のサイズよりも大きいデータが書き込まれる際に、前記第１のＳＳＤと前記第２のＳＳＤの間でデータを交換するか否かを判定する、付記１又は２のストレージ装置。
［付記４］
前記データ交換部は、
前記寿命短縮量を算出したＳＤＤのうち、前記寿命短縮量が最も小さいＳＳＤを前記第２のＳＳＤに選択する、付記１乃至３のいずれか一に記載のストレージ装置。
［付記５］
前記複数のＳＳＤを用いて、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成すべく、データ及び冗長符号を分散格納する機能を備える、付記１乃至４のいずれか一に記載のストレージ装置。
［付記６］
前記データ交換部は、前記第１及び第２のＳＳＤ間でデータ交換する際のデータの入れ替え単位を、ＲＡＩＤを構成するストライピンググループのサイズを基準とする、付記５のストレージ装置。
［付記７］
前記データ交換部は、
前記第１及び第２のＳＳＤ間でデータ交換する際、ＲＡＩＤを構成する情報を書き換える、付記６のストレージ装置。
［付記８］
前記複数のＳＳＤそれぞれに対応し、対応するＳＳＤに対するデータの累計書き込み回数を計測する、複数の書き込み回数カウンタをさらに備える、付記１乃至７のいずれか一に記載のストレージ装置。
［付記９］
上述の第２の視点に係るストレージ装置の制御方法のとおりである。
［付記１０］
上述の第３の視点に係るプログラムのとおりである。
［付記１１］
複数のＳＳＤを内蔵するストレージ装置であって、
当該ＳＳＤ内部の代替セクタの総容量と、使用済み代替セクタの容量を確認する手段を有し、また、当該ＳＳＤ毎の累計の書き込み回数を計測する機能を有し、
当該ＳＳＤ毎の前記代替セクタ総容量と使用済み代替セクタ容量、及び累計書き込み回数を元に当該ＳＳＤ毎の寿命を予測し、
かつ、
当該ＳＳＤ毎に、ストレージ装置内で定められた、ある一定容量のデータ単位を書き込んだ場合、各々のＳＳＤの寿命の短縮量を予測し、
前記書き込み後の予測寿命の短縮量が最も小さいＳＳＤを選択する機能を有し、
最も予測寿命の短いＳＳＤが、ストレージ装置内で定められた閾値より予測寿命が短くなった場合、前記最も予測寿命の短いＳＳＤのデータと、前記予測寿命の短縮量が最も小さいＳＳＤのデータとを入れ替える機能を有することを特徴とする、ストレージ装置。
［付記１２］
複数のＳＳＤを内蔵するストレージ装置であって、
当該ＳＳＤ内部の代替セクタの総容量と、使用済み代替セクタの容量を確認する手段を有し、
また、当該ＳＳＤ毎の累計の書き込み回数を計測する機能を有し、
当該ＳＳＤ毎の前記代替セクタ総容量と使用済み代替セクタ容量、及び累計書き込み回数を元に当該ＳＳＤ毎の寿命を予測し、
かつ、
当該ＳＳＤ毎に、ストレージ装置内で定められた、ある一定容量のデータ単位を書き込んだ場合、各々のＳＳＤの寿命の変化を予測し、
前記書き込み後の予測寿命の短縮量が最も小さいＳＳＤを選択する機能を有し、
最も予測寿命の短いＳＳＤが、ストレージ装置内で定められた閾値より予測寿命が短くなった場合、前記最も予測寿命の短いＳＳＤのデータと、前記予測寿命の短縮量が最も小さいＳＳＤのデータとを入れ替える機能を有することを特徴とする、ストレージ制御方式。
［付記１３］
前記付記１１に記載されたストレージ装置であって、
ＲＡＩＤと呼ばれる冗長記録を行うディスクアレイ装置の機能を有し、
前記付記１１のデータの入れ替えを行う際、データの入れ替え単位を、ＲＡＩＤを構成するストライピンググループのサイズを基準にすることを特徴とした、ディスクアレイ装置。
［付記１４］
前記付記１３に記載されたディスクアレイ装置であって、
データを入れ替える際に、ＲＡＩＤを構成する情報を同時に書き換えることにより、
データ入れ替えの前後で、ＲＡＩＤの再構築手順に変化がないように制御することを特徴とする、ディスクアレイ装置。
なお、付記９の形態及び付記１０の形態は、付記１の形態と同様に、付記２の形態〜付記８の形態に展開することが可能である。
【００７０】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７１】
１、１０  ストレージ装置
１１  ストレージコントローラ
１２〜１５  ＳＳＤ
２１  ストライピンググループ
１０１、２０１  寿命推定部
１０２、２０２  データ交換部
１１１  デバイスコントローラ
１１２〜１１５  デバイスインターフェイス
１２１〜１５１  代替セクタ
２１２〜２１５  データ領域
１１２１〜１１５１  書き込み回数カウンタ
１２１１〜１５１１  代替セクタ使用済み領域
【図１】
2018169980.tif 000003
【図２】
2018169980.tif 000004
【図３】
2018169980.tif 000005
【図４】
2018169980.tif 000006
【図５】
2018169980.tif 000007