(57)【要約】【課題】ガベージコレクションが発生しても書き込みレスポンスの低下防止が可能なＳＳＤ使用のＳＳＤストレージシステムを提供する。【解決手段】予備用のスペアＳＳＤ５を備え、ＳＳＤ３またはＳＳＤ４内の各ブロックにおいて無効データの書き込み済みの状態にある無効ページ数をカウントする無効ページ数カウント部１１１と、該無効ページ数が所定のページ数閾値を超えたブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する閾値超え検出部１１２と、該対象ブロックに対する書き込み動作を停止し、その代わり、該対象ブロックに対して書き込むべきデータをスペアＳＳＤ５の任意のブロックに対して書き込む動作に切り換えるスペアＳＳＤ書き込み部１２１と、該対象ブロックと任意に指定したブロックとを用いて該対象ブロックに対してガベージコレクションを行うガベージコレクション実行部３１１と、を備えている。【選択図】        図１
2016192025.tif 000002
【特許請求の範囲】
【請求項１】
ＳＳＤ（Solid  State  Drive）を使用したＳＳＤストレージシステムであって、
予備用のスペアＳＳＤを備え、
前記ＳＳＤ内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアＳＳＤの任意のブロックに対して書き込む動作に切り換える手段と、
前記対象ブロックと前記ＳＳＤ内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
を有することを特徴とするＳＳＤストレージシステム。
【請求項２】
前記ガベージコレクションが終了した際に、前記対象ブロックに対して書き込むべきデータとして前記スペアＳＳＤの任意の前記ブロックに書き込んでいたデータのうち有効なデータを前記ＳＳＤ内の未使用ブロックに書き戻した後、前記スペアＳＳＤの前記ブロックのデータを無効なデータに設定する手段
をさらに有することを特徴とする請求項１に記載のＳＳＤストレージシステム。
【請求項３】
前記対象ブロック検出手段において、前記対象ブロックを検出する際に、
前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックを検出する代わりに、
前記ＳＳＤ内の各前記ブロックについて書き込み可能なブロックの数量または割合が、あらかじめ定めた未使用ブロック数閾値よりも少ない場合であって、かつ、残りの使用済みのブロックに関し、前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックの数量または割合が、あらかじめ定めた無効ページ書き込み済みブロック数閾値を超えるというブロックが存在している場合、該当する当該ブロックを前記対象ブロックとして検出する
ことを特徴とする請求項１または２に記載のＳＳＤストレージシステム。
【請求項４】
ミラーリング動作を行う前記ＳＳＤからなるＳＳＤ使用ＲＡＩＤ１システム、または、ミラーリング動作を行う前記ＳＳＤに対してさらにストライピング動作を行う前記ＳＳＤを備えたＳＳＤ使用ＲＡＩＤ１０システムとして構成する
ことを特徴とする請求項１ないし３のいずれかに記載のＳＳＤストレージシステム。
【請求項５】
前記ＲＡＩＤ１システムまたは前記ＲＡＩＤ１０システムにおいて、前記ページ数閾値をあらかじめ定めた量だけ少ない値に設定しておき、ミラーリング動作中の２つの前記ＳＳＤのうち、若番側の前記ＳＳＤから先に前記スペアＳＳＤへの書き込み、および、ガベージコレクションを行うか、または、双方の前記ＳＳＤを交互に前記スペアＳＳＤへの書き込み、ガベージコレクションを交互に行う
ことを特徴とする請求項４に記載のＳＳＤストレージシステム。
【請求項６】
ＳＳＤ（Solid  State  Drive）を使用したＳＳＤストレージシステムにおいて、予備用のスペアＳＳＤを備えて、前記ＳＳＤに対する書き込みを行う際のレスポンスの低下を防止する書き込みレスポンス低下防止制御方法であって、
前記ＳＳＤ内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントするステップと、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出ステップと、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアＳＳＤの任意のブロックに対して書き込む動作に切り換えるステップと、
前記対象ブロックと前記ＳＳＤ内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行うステップと
を有することを特徴とする書き込みレスポンス低下防止制御方法。
【請求項７】
前記ガベージコレクションが終了した際に、前記対象ブロックに対して書き込むべきデータとして前記スペアＳＳＤの任意の前記ブロックに書き込んでいたデータのうち有効なデータを前記ＳＳＤ内の未使用ブロックに書き戻した後、前記スペアＳＳＤの前記ブロックのデータを無効なデータに設定するステップ
をさらに有していることを特徴とする請求項６に記載の書き込みレスポンス低下防止制御方法。
【請求項８】
前記対象ブロック検出ステップにおいて、前記対象ブロックを検出する際に、
前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックを検出する代わりに、
前記ＳＳＤ内の各前記ブロックについて書き込み可能なブロックの数量または割合が、あらかじめ定めた未使用ブロック数閾値よりも少ない場合であって、かつ、残りの使用済みのブロックに関し、前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックの数量または割合が、あらかじめ定めた無効ページ書き込み済みブロック数閾値を超えるというブロックが存在している場合、該当する当該ブロックを前記対象ブロックとして検出する
ことを特徴とする請求項６または７に記載の書き込みレスポンス低下防止制御方法。
【請求項９】
ミラーリング動作を行う前記ＳＳＤからなるＳＳＤ使用ＲＡＩＤ１システム、または、ミラーリング動作を行う前記ＳＳＤに対してさらにストライピング動作を行う前記ＳＳＤを備えたＳＳＤ使用ＲＡＩＤ１０システムとして構成する
ことを特徴とする請求項６ないし９のいずれかに記載の書き込みレスポンス低下防止制御方法。
【請求項１０】
請求項６ないし９のいずれかに記載の書き込みレスポンス低下防止制御方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする書き込みレスポンス低下防止制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムに関し、特に、ＳＳＤを使用したストレージシステムにおいて書き込みレスポンスの低下を防止するＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムに関する。ＳＳＤを使用したＲＡＩＤシステムすなわちＳＳＤ使用ＲＡＩＤシステム、特に、ミラーリング動作を行うＳＳＤ使用ＲＡＩＤ１システムおよびミラーリング動作を行うＳＳＤ使用ＲＡＩＤ１をさらにストライピング構成としたＳＳＤ使用ＲＡＩＤ１０システムに好適に適用することができる。
【背景技術】
【０００２】
特許文献１の特開２０１４−５９８５０号公報「ストレージ装置、内部処理制御方法および内部処理制御プログラム」には、複数のＳＳＤ（Solid  State  Drive）によって構成されたストレージ装置において、ＳＳＤのガベージコレクション等の内部処理により性能が低下する問題に対して、２台のＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disk）コントローラと２ポートとを備える複数のＳＳＤによってＲＡＩＤ１システムを構成し、一方のＳＳＤがガベージコレクションを実施して負荷が高い場合、キャッシュメモリにデータを書き込んで、ホストからのＩＯ命令を完了させた後、負荷が下がった時、キャッシュメモリからＳＳＤにライトバックすることが記載されている。
【０００３】
また、１台目のＲＡＩＤコントローラのキャッシュメモリがフルになったとき、２台目のＲＡＩＤコントローラのキャッシュメモリにデータを書き込んで、ＳＳＤの内部処理性能による性能低下を極力抑制することも記載されている。
【０００４】
また、特許文献２の特開２０１１−７０３６５号公報「メモリシステム」には、ＳＳＤ内に複数のプロセッサを設け、一方のプロセッサでデータ転送を行い、もう一方のプロセッサでガベージコレクションを実施し、ＳＳＤのレスポンス速度の低下を防ぐことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−５９８５０号公報（第４−８頁）
【特許文献２】特開２０１１−７０３６５号公報（第４−８頁）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＳＡＳ（Serial  Attached  ＳＣＳＩ）  ＳＳＤを使用したＲＡＩＤシステムにおいては、使用時間の経過とともに、データの書き込みにより、ＳＳＤ内のフラッシュメモリの書き込み済ブロックが増加するとともに、ブロック中に無効ページが徐々に増加する。特定のブロックに対して、所定の時間内に頻繁にデータが更新された場合、顕著に無効ページが増加する。したがって、書き込みブロックを確保するために、書き込み可能なブロックが少なくなった時、または、ＳＳＤへのアクセス頻度が下がった時、ＳＳＤ内のＳＳＤ制御部がガベージコレクションを行う。ガベージコレクションは、ブロック間でのデータ移動とブロック消去とが必要となる（通常、数１００ｍｓ程度の時間を要する）ため、ガベージコレクション中の書き込みレスポンスが低下するという課題がある。
【０００７】
しかし、前記特許文献１や前記特許文献２に記載の技術は、ＳＳＤの通常時のレスポンス低下という課題に対して対応するということは記載されているものの、ガベージコレクション中における書き込みレスポンスの低下という課題には、対応していない。
【０００８】
（本発明の目的）
本発明は、ＳＳＤを使用したストレージシステムにおいて、たとえ、ガベージコレクションが発生しても、書き込みレスポンスの低下を防止することが可能なＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムを提供することを、その目的としている。
【課題を解決するための手段】
【０００９】
前述の課題を解決するため、本発明によるＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムは、主に、次のような特徴的な構成を採用している。
【００１０】
（１）本発明によるＳＳＤストレージシステムは、
ＳＳＤ（Solid  State  Drive）を使用したＳＳＤストレージシステムであって、
予備用のスペアＳＳＤを備え、
前記ＳＳＤ内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアＳＳＤの任意のブロックに対して書き込む動作に切り換える手段と、
前記対象ブロックと前記ＳＳＤ内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
を有することを特徴とする。
【００１１】
（２）本発明によるレスポンス低下防止制御方法は、
ＳＳＤ（Solid  State  Drive）を使用したＳＳＤストレージシステムにおいて、予備用のスペアＳＳＤを備えて、前記ＳＳＤに対する書き込みを行う際のレスポンスの低下を防止する書き込みレスポンス低下防止制御方法であって、
前記ＳＳＤ内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントするステップと、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出ステップと、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアＳＳＤの任意のブロックに対して書き込む動作に切り換えるステップと、
前記対象ブロックと前記ＳＳＤ内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行うステップと
を有することを特徴とする。
【００１２】
（３）本発明によるレスポンス低下防止制御プログラムは、前記（２）に記載の書き込みレスポンス低下防止制御方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【００１３】
本発明のＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムによれば、以下のような効果を奏することができる。
【００１４】
すなわち、ＳＳＤストレージシステム例えばＳＳＤ使用ＲＡＩＤシステム（ＳＳＤ使用ＲＡＩＤ１/１０システム等）において、ガベージコレクションが発生しても、元のＳＳＤへの書き込みを停止して、その代わり、スペアＳＳＤへの書き込みに切り換えることによって、追加コストなしで、書き込みのレスポンスの低下を防止することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明のＳＳＤストレージシステムの一実施形態に係るＳＳＤ使用ＲＡＩＤシステムの構成例を示すシステム構成図である。
【図２】図１に示すＲＡＩＤコントローラ内のＳＳＤ状態管理テーブルの設定内容の一例を示すテーブルである。
【図３】図１に示すＲＡＩＤコントローラ内のＳＳＤ状態管理テーブルの書き込み情報フラグが無効データ書き込み済みの状態に設定された無効ページが存在する状態の一例を示すテーブルである。
【図４】図１に示すＳＳＤ使用ＲＡＩＤシステムの動作の一例を説明するためのフローチャートである。
【図５】図１に示すＲＡＩＤコントローラ内のＳＳＤ状態管理テーブルの書き込み情報フラグがスペアＳＳＤへの書き込みにより有効データ書き込み済みの状態に設定された状態の一例を示すテーブルである。
【図６】図１に示すＳＳＤ使用ＲＡＩＤシステムの他の動作の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明によるＳＳＤストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明によるＳＳＤストレージシステムおよび書き込みレスポンス低下防止制御方法について説明するが、かかる書き込みレスポンス低下防止制御方法をコンピュータにより実行可能な書き込みレスポンス低下防止制御プログラムとして実施するようにしてもよいし、または、書き込みレスポンス低下防止制御プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしてもよいことは言うまでもない。また、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことも言うまでもない。
【００１７】
（本発明の特徴）
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、ＳＳＤストレージシステム例えばＳＳＤ（Solid  State  Drive）を使用したＲＡＩＤシステム（ＳＡＳ（Serial  Attached  ＳＣＳＩ）  ＳＳＤ等のＳＳＤを使用したＲＡＩＤ１/１０システム等）に関する発明であり、ストレージコントローラ例えばＲＡＩＤコントローラが、ＳＳＤ内のフラッシュメモリ全体の書き込み状態を管理し、フラッシュメモリの消去単位である或るブロックにおいて無効データ書き込み済みの無効ページ数があらかじめ定めたページ数閾値を超えた場合、当該ＳＳＤのブロックへのデータ書き込み動作を停止し、その代わり、ストレージシステム例えばＲＡＩＤシステムを構成するスペアのＳＳＤに切り換えてデータの書き込みを継続するとともに、無効データ書き込み済みページ数が前記ページ数閾値を超えた当該ＳＳＤのブロックに対してガベージコレクションを指示し、ガベージコレクション終了後に、ストレージコントローラ例えばＲＡＩＤコントローラが、スペアのＳＳＤから有効な書き込みデータだけを元の当該ＳＳＤに書き戻すことを主要な特徴としており、而して、ガベージコレクション中であっても書き込みレスポンスの低下を防止することを可能にしている。
【００１８】
本発明の特徴をより具体的に説明すると、次の通りである。本発明においては、
ＳＳＤ（Solid  State  Drive）を使用したＳＳＤストレージシステムであって、
予備用のスペアＳＳＤを備え、
前記ＳＳＤ内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアＳＳＤの任意のブロックに対して書き込む動作に切り換える手段と、
前記対象ブロックと前記ＳＳＤ内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
を有することを主要な特徴としている。
【００１９】
（本発明の実施形態）
次に、本発明の一実施形態について、本発明に係るＳＳＤ（Solid  State  Drive）ストレージシステムの一例としてＳＳＤを使用したＲＡＩＤシステムすなわちＳＳＤ使用ＲＡＩＤシステムを用いて詳細に説明する。なお、以下の実施形態の説明におけるＳＳＤは、不揮発性のフラッシュメモリを利用したフラッシュＳＳＤを用いる場合を想定している。
【００２０】
（実施形態の構成例）
まず、本発明の一実施形態におけるＳＳＤ使用ＲＡＩＤシステム（すなわち、ＳＳＤを使用したＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disk）システム）の構成例について、図１を参照して説明する。図１は、本発明の一実施形態に係るＳＳＤ使用ＲＡＩＤシステムの構成例を示すシステム構成図であり、ＳＡＳ（Serial  Attached  ＳＣＳＩ）  ＳＳＤを使用したＲＡＩＤ１システムのシステム構成図を示している。
【００２１】
図１のＲＡＩＤ１システムにおいて、ＲＡＩＤコントローラ１は、ＳＡＳインタフェース２を介して、複数のＳＳＤ３，ＳＳＤ４，ＳＳＤ５と接続されていて、ＳＳＤ３とＳＳＤ４とがミラーリング動作を行うＲＡＩＤ１におけるＳＳＤ＃１とＳＳＤ＃２との二重化構成とされ、ＳＳＤ５がＲＡＩＤ１におけるスペアＳＳＤを示すＳＳＤ＃３として構成されている。
【００２２】
また、ＲＡＩＤコントローラ１は、ＳＳＤ状態管理テーブル１０とＳＳＤ状態管理部１１とＳＳＤ動作制御部１２とを含んで構成されている。
【００２３】
ＳＳＤ状態管理テーブル１０は、各ＳＳＤ（ＳＳＤ３，ＳＳＤ４，ＳＳＤ５）毎に付与されているフラッシュメモリ番号とブロック番号とページ番号とによって示されるページアドレスにおけるデータの書き込み状態（書き込み済み（有効／無効）、未使用の各状態）と、ＲＡＩＤコントローラ１のＳＳＤ動作制御部１２から指示された論理アドレスと、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に切り換えて更新データを記録した元のＳＳＤ＃番号（＃１または＃２、ただし、未使用時は‘０’）と、を記録している。図２は、図１に示すＲＡＩＤコントローラ１内のＳＳＤ状態管理テーブル１０の設定内容の一例を示すテーブルであり、ＳＳＤ３（ＳＳＤ＃１）に関する設定内容の一例を示している。
【００２４】
図２に示すように、ＳＳＤ状態管理テーブル１０は、フラッシュメモリ番号１０ａ、ブロック番号１０ｂ、ページ番号１０ｃ、書き込み情報フラグ１０ｄ、論理アドレス１０ｅ、および、スペア書き込みＳＳＤ＃番号１０ｆ、に関する情報を含んで構成されている。ここで、書き込み情報フラグ１０ｄは、ページアドレスの書き込み状態（書き込み済み（有効／無効）、未使用）を記録しており、図２の右上側に示すように、‘００’が未使用、‘０１’が有効データ書き込み済み、‘１０’が無効データ書き込み済みの状態を示している。また、スペア書き込みＳＳＤ＃番号１０ｆは、図２の右下側に示すように、‘０’は未使用の状態を示し、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）を使用した際には、ＲＡＩＤ１を構成するＳＳＤ＃１（ＳＳＤ３の場合），ＳＳＤ＃２（ＳＳＤ４の場合）いずれかの番号を設定する。
【００２５】
また、ＳＳＤ 状態管理部１１は、無効ページ数カウント部１１１と閾値超え検出部１１２とを含んで構成される。無効ページ数カウント部１１１は、ＳＳＤ状態管理テーブル１０を参照して、フラッシュメモリ番号とブロック番号とによって示されるブロックにおけるデータ書き込み済みの無効ページ数をカウントする。閾値超え検出部１１２は、無効ページ数カウント部１１１においてカウントした、無効データ書き込み済みの無効ページ数があらかじめ任意に定めたページ数閾値を超えたブロックを、ガベージコレクションの対象とすべき対象ブロックとして検出する。
【００２６】
また、ＳＳＤ動作制御部１２は、スペアＳＳＤ書き込み部１２１、ガベージコレクション指示部１２２、スペアＳＳＤ書き戻し部１２３を含んで構成される。スペアＳＳＤ書き込み部１２１は、閾値超え検出部１１２において検出したブロックへの書き込み動作を停止し、スペアＳＳＤ５（ＳＳＤ＃３）の任意のブロックに切り換えて、元のＳＳＤのブロックすなわち閾値超え検出部１１２において検出した前記対象ブロックに書き込むべきデータを、切り換えたスペアＳＳＤ５（ＳＳＤ＃３）の任意の当該ブロックに書き込む。
【００２７】
ガベージコレクション指示部１２２は、閾値超え検出部１１２において検出した前記対象ブロックと任意に指定したブロックとを用いてガベージコレクションを行うように、ガベージコレクション対象のＳＳＤ３（ＳＳＤ＃１）またはＳＳＤ４（ＳＳＤ＃２）に対して指示する。スペアＳＳＤ書き戻し部１２３は、ＳＳＤ３（ＳＳＤ＃１）またはＳＳＤ４（ＳＳＤ＃２）におけるガベージコレクションが終了した後、ＳＳＤ３（ＳＳＤ＃１）またはＳＳＤ４（ＳＳＤ＃２）のＳＳＤ状態管理テーブル１０のスペアＳＳＤ５（ＳＳＤ＃３）に関する情報すなわちスペア書き込みＳＳＤ＃番号１０ｆおよびスペアＳＳＤ５（ＳＳＤ＃３）のＳＳＤ状態管理テーブル１０を参照して、有効なデータを元のＳＳＤ(ＳＳＤ３（ＳＳＤ＃１）またはＳＳＤ４（ＳＳＤ＃２）)の未使用ブロックに書き戻しを行う。
【００２８】
図１に示すＳＳＤ３（ＳＳＤ＃１），ＳＳＤ４（ＳＳＤ＃２），ＳＳＤ５（ＳＳＤ＃３）は、それぞれ、ＳＳＤ制御部３１，ＳＳＤ制御部４１，ＳＳＤ制御部５１とフラッシュメモリ３２，フラッシュメモリ４２，フラッシュメモリ５２とを含んで構成されるが、それぞれは全く同一の構成である。
【００２９】
ＳＳＤ制御部３１，ＳＳＤ制御部４１，ＳＳＤ制御部５１は、それぞれ、ガベージコレクション実行部３１１，ガベージコレクション実行部４１１，ガベージコレクション実行部５１１とガベージコレクション終了通知部３１２，ガベージコレクション終了通知部４１２，ガベージコレクション終了通知部５１２とを含んで構成される。
【００３０】
ガベージコレクション実行部３１１，ガベージコレクション実行部４１１，ガベージコレクション実行部５１１は、ＲＡＩＤコントローラ１のガベージコレクション指示部１２２からの指示により、それぞれ、フラッシュメモリ３２，フラッシュメモリ４２，フラッシュメモリ５２のガベージコレクションを実施する。ガベージコレクション終了通知部３１２，ガベージコレクション終了通知部４１２，ガベージコレクション終了通知部５１２は、それぞれ、ＲＡＩＤコントローラ１のスペアＳＳＤ書き戻し部１２３に対して、ガベージコレクション終了を通知する。
【００３１】
（実施形態の動作の説明）
次に、本発明の一実施形態として図１に示したＳＳＤ使用ＲＡＩＤシステムの動作について、その一例を説明する。なお、ここでは、最も簡単な例として、ＳＳＤ３（ＳＳＤ＃１）にある一つのブロックにおいてデータ書き込み済みの無効ページ数があらかじめ任意に定めたページ数閾値を超えている場合を例に採って説明する。
【００３２】
例えば、図３のＳＳＤ状態管理テーブル１０に示すように、ＳＳＤ３（ＳＳＤ＃１）にあるフラッシュメモリ番号１０ａが‘００１’のブロック番号１０ｂが‘００００１’におけるデータの書込みにより、書き込み情報フラグ１０ｄとして無効データ書き込み済みの状態を示す‘１０’が設定された無効ページ数が、ページ番号１０ｃの‘００００１’〜‘１００００’の１０，０００ページに及び、あらかじめ定めた前記ページ数閾値を超えた状態が発生している場合について説明する。ここで、図３は、図１に示すＲＡＩＤコントローラ１内のＳＳＤ３（ＳＳＤ＃１）に関するＳＳＤ状態管理テーブル１０の書き込み情報フラグ１０ｄが無効データ書き込み済みの状態に設定された無効ページが存在する状態の一例を示すテーブルであり、ＳＳＤ３（ＳＳＤ＃１）に関するＳＳＤ状態管理テーブル１０の設定内容として、書き込み情報フラグ１０ｄが‘１０’（無効データ書き込み済みの状態）に設定されている箇所をハッチングにて示している。
【００３３】
図３のＳＳＤ状態管理テーブル１０に示すように、ＳＳＤ３（ＳＳＤ＃１）のフラッシュメモリ番号１０ａが‘００１’のブロック番号１０ｂが‘００００１’のブロックにおいて、無効ページ数が前記ページ数閾値を超えたことを検出し、ＳＳＤ３（ＳＳＤ＃１）に対する書き込み停止とスペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）への書き込みとＳＳＤ３（ＳＳＤ＃１）に対するガベージコレクションとを行うまでの動作の一例について、図４のフローチャートを参照して説明する。図４は、図１に示すＳＳＤ使用ＲＡＩＤシステムの動作の一例を説明するためのフローチャートであり、ＳＳＤ３（ＳＳＤ＃１）のフラッシュメモリ番号１０ａが‘００１’のブロック番号１０ｂが‘００００１’のブロックにおいて、無効ページ数が前記ページ数閾値を超えた場合のガベージコレクション（ＧＣ）動作の一例を示している。
【００３４】
図４のフローチャートにおいて、ＲＡＩＤコントローラ１のＳＳＤ状態管理部１１内にある無効ページ数カウント部１１１は、ミラーリングのＲＡＩＤ１構成として動作しているＳＳＤ３（ＳＳＤ＃１），ＳＳＤ４（ＳＳＤ＃２）の双方の状態管理テーブル１０をサーチし（ステップＳ１）、フラッシュメモリのブロック毎に無効ページ数をカウントして、閾値超え検出部１１２に通知する（ステップＳ２）。無効ページ数カウント部１１１から無効ページ数のカウント値を受け取った閾値超え検出部１１２が、該カウント値があらかじめ定めたページ数閾値を超えているか否かを確認する（ステップＳ３）。
【００３５】
カウント値があらかじめ定めたページ数閾値を超えていない場合は（ステップＳ３のＮｏ）、ステップ１に戻って、ＳＳＤ３（ＳＳＤ＃１），ＳＳＤ４（ＳＳＤ＃２）の無効ページ数の監視動作を繰り返す。一方、図３に示したように、ＳＳＤ３のブロック‘００００１’において前記ページ数閾値を超えていることを検出すると（ステップＳ３のＹｅｓ）、ステップＳ４に移行する。
【００３６】
ステップＳ４に移行すると、ＳＳＤ動作制御部１２のスペア書き込み部１２１に制御が移って、スペア書き込み部１２１は、無効ページ数が前記ページ数閾値を超えたＳＳＤ３（ＳＳＤ＃１）へのデータ書き込みを停止し（ステップＳ４）、その代わりに、以降のＳＳＤ３（ＳＳＤ＃１）に対するデータ書き込みをスペアＳＳＤ（すなわりＳＳＤ５）に対する書き込みに切り換える（ステップＳ５）。さらに、ガベージコレクション指示部１２２が、書き込み停止中のＳＳＤ３（ＳＳＤ＃１）に備えられているＳＳＤ制御部３１内のガベージコレクション実行部３１１に対して、ガベージコレクションを指示する（ステップＳ６）。
【００３７】
ガベージコレクション実行部３１１は、ガベージコレクション指示部１２２からの指示を受け取ると、データ書き込みを停止した前記対象ブロックに対し、任意に指定したブロックを利用したガベージコレクションを実行する（ステップＳ７）。しかる後、ガベージコレクション実行部３１１が、ガベージコレクション終了を検出すると（ステップＳ８のＹｅｓ）、ガベージコレクション終了通知部３１２が起動し、ＲＡＩＤコントローラ１のＳＳＤ動作制御部１２内のスペアＳＳＤ書き戻し部１２３に対して、ガベージコレクションの終了を通知して、ガベージコレクション終了までの動作が完了する（ステップＳ９）。
【００３８】
なお、書き込み停止中のＳＳＤ３（ＳＳＤ＃１）に対する書き込みは、ＳＳＤ３（ＳＳＤ＃１）の代わりに、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に対して行われており、該スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に関するＳＳＤ状態管理テーブル１０は、図５に示すような設定内容になっているものとする。図５は、図１に示すＲＡＩＤコントローラ１内のＳＳＤ状態管理テーブル１０の書き込み情報フラグがスペアＳＳＤ（ＳＳＤ５（ＳＳＤ＃３））への書き込みにより有効データ書き込み済みの状態に設定された状態の一例を示すテーブルであり、書き込み停止中のＳＳＤ３（ＳＳＤ＃１）のスペアＳＳＤ（ＳＳＤ５（ＳＳＤ＃３））として動作中のＳＳＤ５に関するＳＳＤ状態管理テーブル１０の設定内容を例示している。
【００３９】
図５のＳＳＤ状態管理テーブル１０に示す設定内容は、ＳＳＤ５（ＳＳＤ＃３）のフラッシュメモリ番号１０ａに示すフラッシュメモリ番号‘００１’、ブロック番号１０ｂおよびページ番号１０ｃに示すブロック番号‘００００１’のページ番号‘００００１’〜‘０１００１’が、スペア書き込みＳＳＤ＃番号１０ｆにハッチングを付して示すように、 ‘１’（ミラ−リング動作を行うＳＳＤ３（ＳＳＤ＃１）を示すＳＳＤ識別番号）が設定されていて、ＳＳＤ３（ＳＳＤ＃１）に書き込むべきデータをスペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に書き込むという動作が行われていることを示している。かかる状態において、図５のＳＳＤ状態管理テーブル１０に示す設定内容は、さらに、書き込み情報フラグ１０ｄにハッチングを付して示すように、ブロック番号‘００００１’のページ番号‘００００１’〜‘０１００１’のうち、ページ番号‘００００１’〜‘０１０００’には、ＳＳＤ３（ＳＳＤ＃１）に書き込むべき有効なデータがスペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に書き込まれているが、ページ番号‘０１００１’には、無効なデータがスペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に書き込まれている状態にあることを示している。
【００４０】
次に、図５に示すようなＳＳＤ５のＳＳＤ状態管理テーブル１０の設定内容であった場合において、書き込み停止中のＳＳＤ３（ＳＳＤ＃１）が復旧して、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に書き込まれていた有効なデータをＳＳＤ３（ＳＳＤ＃１）に書き戻す場合の動作の一例について、図６のフローチャートを参照して説明する。図６は、図１に示すＳＳＤ使用ＲＡＩＤシステムの他の動作の一例を説明するためのフローチャートであり、ＳＳＤ３（ＳＳＤ＃１）のフラッシュメモリ番号１０ａが‘００１’のブロック番号１０ｂが‘００００１’のブロックに書き込むべきデータを、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）から書き戻す場合の動作の一例を示している。
【００４１】
図６のフローチャートにおいて、ＲＡＩＤコントローラ１のＳＳＤ動作制御部１２のスペアＳＳＤ書き戻し部１２３は、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）に関するＳＳＤ状態管理テーブル１０の中から、ＳＳＤ３（ＳＳＤ＃１）のスペアＳＳＤを示す表示としてスペア書き込みＳＳＤ＃番号１０ｆに‘１’が設定されている部分を参照して（ステップＳ１１）、書き込み情報フラグ１０ｄが有効データを示す‘１０’に設定されているフラッシュメモリ番号１０ａとブロック番号１０ｂとページ番号１０ｃとによって示されるページアドレスを検索する（ステップＳ１２）。
【００４２】
図５のＳＳＤ状態管理テーブル１０の設定内容の場合、フラッシュメモリ番号１０ａが‘００１’，ブロック番号１０ｂが‘００００１’，ページ番号１０ｃが‘００００１’〜‘０１０００’の範囲に有効データが存在していることを認識し、認識した有効データ存在範囲について、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）から当該有効データを読み込む（ステップＳ１３）。
【００４３】
次いで、スペアＳＳＤ書き戻し部１２３は、スペアＳＳＤ(ＳＳＤ５（ＳＳＤ＃３））に関するＳＳＤ状態管理テーブル１０のスペア書き込みＳＳＤ＃番号１０ｆおよび論理アドレス１０ｅを参照して、読み込んだ有効データの書き込み対象となる書き戻し先のＳＳＤ番号および論理アドレスを特定し（ステップＳ１４）、書き戻し先となる元のＳＳＤ(ＳＳＤ３（ＳＳＤ＃１）)の未使用のブロックにデータを書き戻す動作を開始し、このとき、書き戻し動作と同時に、元のＳＳＤ（ＳＳＤ３（ＳＳＤ＃１））のＳＳＤ状態管理デーブル１０の設定内容も更新する（ステップＳ１５）。
【００４４】
ただし、この時、元のＳＳＤ(ＳＳＤ３（ＳＳＤ＃１）)の同一論理アドレスにデータが既に存在していた場合には、ＳＳＤ３（ＳＳＤ＃１）のＳＳＤ状態管理デーブル１０の書き込み情報フラグ１０ｄを無効データの状態に設定する（ステップＳ１８）。
【００４５】
元のＳＳＤ（ＳＳＤ３（ＳＳＤ＃１））に有効データの書き戻し動作が完了すると、スペアＳＳＤ (ＳＳＤ５（ＳＳＤ＃３））のＳＳＤ状態管理テーブル１０の書き込み情報フラグ１０ｄを、無効データを示す‘１０’に設定して、ガベージコレクションを実行させることによって、再利用可能な状態に戻す（ステップＳ１６）。スペアＳＳＤ(ＳＳＤ５（ＳＳＤ＃３））に書き込まれていた全ての有効データを元ＳＳＤ（ＳＳＤ３（ＳＳＤ＃１））に対して書き込む動作が完了した後は、元ＳＳＤ（ＳＳＤ３（ＳＳＤ＃１））が本来のＲＡＩＤ構成が可能な状態に復帰するので、ＳＳＤ３（ＳＳＤ＃１）、ＳＳＤ４（ＳＳＤ＃２）は本来のＲＡＩＤ構成による運用を再開する（ステップＳ１７）。以上の動作により、スペアＳＳＤのＳＳＤ５から元のＳＳＤ３（ＳＳＤ＃１）にデータを書き戻すことが可能になる。
【００４６】
（本実施形態の効果の説明）
以上に詳細に説明したように、本実施形態においては次のような効果が得られる。すなわち、ＳＳＤストレージシステム例えばＳＳＤ使用ＲＡＩＤシステム（ＳＳＤ使用ＲＡＩＤ１等）において、ガベージコレクションが発生しても、元のＳＳＤへの書き込みを停止して、その代わり、スペアＳＳＤへの書き込みに切り換えることによって、追加コストなしで、書き込みのレスポンスの低下を防止することができる。
【００４７】
（本発明の他の実施形態）
前述の実施形態においては、ミラーリング動作を行う一方のＳＳＤ＃１に該当するＳＳＤ３の１つのブロックにおいて無効ページ数があらかじめ定めたページ数閾値を超えた際に、当該ブロックに対してガベージコレクションを実施している場合について説明した。かくのごとく、１つのブロックに対してガベージコレクションを行うことは、効率的ではないので、あらかじめ定めた或る一定のブロック数に纏めた単位に対してガベージコレクションを実施するようにしてもよい。
【００４８】
つまり、或るＳＳＤ例えばＳＳＤ３（ＳＳＤ＃１）において書き込み可能なブロック（未使用のブロック）の数量（または割合）があらかじめ定めた未使用ブロック数閾値よりも少なくなり、かつ、残りの使用済ブロックにおいて無効ページ数が前記ページ数閾値を超えた書き込みブロック数（割合）があらかじめ定めた無効ページ書き込み済みブロック数閾値を超えた場合に、当該ＳＳＤ例えばＳＳＤ３（ＳＳＤ＃１）に対するガベージコレクション動作を開始し、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）への書き込みが行われるように制御することになる。
【００４９】
現在の一般的なＳＳＤの場合は、各ページの容量は２ＫＢ〜４ＫＢ程度，各ブロックの容量は２ＭＢ程度，ＳＳＤの容量は１００ＧＢ〜１ＴＢになっている。したがって、具体的な一数値例としては、前記未使用ブロック数閾値を２０％、前記無効ページ書き込み済みブロック数閾値を７０％と設定するようにしてもよい。すなわち、書き込み可能なブロック（未使用のブロック）の数量（割合）が前記未使用ブロック数閾値の２０％よりも少なくなり、かつ、残りの使用済ブロックにおいて無効ページ数があらかじめ定めた前記ページ数閾値を超えた書き込みブロック数（割合）が前記無効ページ書き込み済みブロック数閾値の７０％を超えた時などにおいて、ＳＳＤ３（ＳＳＤ＃１）への書き込みを停止して、スペアＳＳＤのＳＳＤ５（ＳＳＤ＃３）への書き込みが行われるように制御してもよい。
【００５０】
また、ミラーリング動作を行うＲＡＩＤ１構成の場合、ＲＡＩＤを構成する２つのＳＳＤが同時にスペアＳＳＤへの書き込みとガベージコレクション処理とを行なければならない事象が発生する可能性がある。かくのごとき場合に対しても余裕を持って備えるために、無効ページ数が多く存在するブロックか否かを判定するための前記ページ数閾値の値をあらかじめ定めた量だけ下げておき、前記ページ数閾値を超えるブロックが２つのＳＳＤ双方に発生した場合、ミラーリング動作中の２つのＳＳＤのうち、若番側のＳＳＤから先にスペアＳＳＤへの書き込み，ガベージコレクションを行ったり、あるいは、双方のＳＳＤを交互にスペアＳＳＤへの書き込み、ガベージコレクションを交互に行ったりすることによって対応するようにしてもよい。
【００５１】
また、スペアＳＳＤへの書き込みの途中に、ＲＡＩＤ１を構成する元のＳＳＤにおいて故障が発生した場合には、その間に行われた、スペアＳＳＤへの書き込みデータを全て無効とし、その代わり、ＲＡＩＤ１を構成するもう一方のＳＳＤから、スペアＳＳＤに対してデータを書き込むことによって、ミラーリング動作が可能な状態にデータを復旧させて、もう一方のＳＳＤとスペアＳＳＤとによってＲＡＩＤ１構成を回復するようにしてもよい。
【００５２】
なお、以上の動作例においては、ミラーリング動作を行うＳＳＤからなるＳＳＤ使用ＲＡＩＤ１構成の場合について説明したが、本発明はかかる場合に限るものではない。すなわち、ＲＡＩＤ構成を採用していない通常のＳＳＤストレージシステムであっても、または、ミラーリング動作を行うＳＳＤに対してさらにストライピング動作を行うＳＳＤを備えた構成とするＳＳＤ使用ＲＡＩＤ１０システムであっても、本発明を適用することが可能であることは言うまでもない。
【００５３】
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【００５４】
１      ＲＡＩＤコントローラ
２      ＳＡＳインタフェース
３      ＳＳＤ
４      ＳＳＤ
５      ＳＳＤ
１０    ＳＳＤ状態管理テーブル
１０ａ  フラッシュメモリ番号
１０ｂ  ブロック番号
１０ｃ  ページ番号
１０ｄ  書き込み情報フラグ
１０ｅ  論理アドレス
１０ｆ  スペア書き込みＳＳＤ＃番号
１１    ＳＳＤ状態管理部
１２    ＳＳＤ動作制御部
３１    ＳＳＤ制御部
３２    フラッシュメモリ
４１    ＳＳＤ制御部
４２    フラッシュメモリ
５１    ＳＳＤ制御部
５２    フラッシュメモリ
１１１  無効ページ数カウント部
１１２  閾値超え検出部
１２１  スペアＳＳＤ書き込み部
１２２  ガベージコレクション指示部
１２３  スペアＳＳＤ書き戻し部
３１１  ガベージコレクション実行部
３１２  ガベージコレクション終了通知部
４１１  ガベージコレクション実行部
４１２  ガベージコレクション終了通知部
５１１  ガベージコレクション実行部
５１２  ガベージコレクション終了通知部
【図１】
2016192025.tif 000003
【図２】
2016192025.tif 000004
【図３】
2016192025.tif 000005
【図４】
2016192025.tif 000006
【図５】
2016192025.tif 000007
【図６】
2016192025.tif 000008