JP2016192025A - Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム - Google Patents

Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム Download PDF

Info

Publication number
JP2016192025A
JP2016192025A JP2015070882A JP2015070882A JP2016192025A JP 2016192025 A JP2016192025 A JP 2016192025A JP 2015070882 A JP2015070882 A JP 2015070882A JP 2015070882 A JP2015070882 A JP 2015070882A JP 2016192025 A JP2016192025 A JP 2016192025A
Authority
JP
Japan
Prior art keywords
ssd
block
spare
written
invalid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015070882A
Other languages
English (en)
Inventor
和敏 本尾
Kazutoshi Motoo
和敏 本尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015070882A priority Critical patent/JP2016192025A/ja
Publication of JP2016192025A publication Critical patent/JP2016192025A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ガベージコレクションが発生しても書き込みレスポンスの低下防止が可能なSSD使用のSSDストレージシステムを提供する。【解決手段】予備用のスペアSSD5を備え、SSD3またはSSD4内の各ブロックにおいて無効データの書き込み済みの状態にある無効ページ数をカウントする無効ページ数カウント部111と、該無効ページ数が所定のページ数閾値を超えたブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する閾値超え検出部112と、該対象ブロックに対する書き込み動作を停止し、その代わり、該対象ブロックに対して書き込むべきデータをスペアSSD5の任意のブロックに対して書き込む動作に切り換えるスペアSSD書き込み部121と、該対象ブロックと任意に指定したブロックとを用いて該対象ブロックに対してガベージコレクションを行うガベージコレクション実行部311と、を備えている。【選択図】 図1

Description

本発明は、SSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムに関し、特に、SSDを使用したストレージシステムにおいて書き込みレスポンスの低下を防止するSSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムに関する。SSDを使用したRAIDシステムすなわちSSD使用RAIDシステム、特に、ミラーリング動作を行うSSD使用RAID1システムおよびミラーリング動作を行うSSD使用RAID1をさらにストライピング構成としたSSD使用RAID10システムに好適に適用することができる。
特許文献1の特開2014−59850号公報「ストレージ装置、内部処理制御方法および内部処理制御プログラム」には、複数のSSD(Solid State Drive)によって構成されたストレージ装置において、SSDのガベージコレクション等の内部処理により性能が低下する問題に対して、2台のRAID(Redundant Arrays of Inexpensive Disk)コントローラと2ポートとを備える複数のSSDによってRAID1システムを構成し、一方のSSDがガベージコレクションを実施して負荷が高い場合、キャッシュメモリにデータを書き込んで、ホストからのIO命令を完了させた後、負荷が下がった時、キャッシュメモリからSSDにライトバックすることが記載されている。
また、1台目のRAIDコントローラのキャッシュメモリがフルになったとき、2台目のRAIDコントローラのキャッシュメモリにデータを書き込んで、SSDの内部処理性能による性能低下を極力抑制することも記載されている。
また、特許文献2の特開2011−70365号公報「メモリシステム」には、SSD内に複数のプロセッサを設け、一方のプロセッサでデータ転送を行い、もう一方のプロセッサでガベージコレクションを実施し、SSDのレスポンス速度の低下を防ぐことが記載されている。
特開2014−59850号公報(第4−8頁) 特開2011−70365号公報(第4−8頁)
従来のSAS(Serial Attached SCSI) SSDを使用したRAIDシステムにおいては、使用時間の経過とともに、データの書き込みにより、SSD内のフラッシュメモリの書き込み済ブロックが増加するとともに、ブロック中に無効ページが徐々に増加する。特定のブロックに対して、所定の時間内に頻繁にデータが更新された場合、顕著に無効ページが増加する。したがって、書き込みブロックを確保するために、書き込み可能なブロックが少なくなった時、または、SSDへのアクセス頻度が下がった時、SSD内のSSD制御部がガベージコレクションを行う。ガベージコレクションは、ブロック間でのデータ移動とブロック消去とが必要となる(通常、数100ms程度の時間を要する)ため、ガベージコレクション中の書き込みレスポンスが低下するという課題がある。
しかし、前記特許文献1や前記特許文献2に記載の技術は、SSDの通常時のレスポンス低下という課題に対して対応するということは記載されているものの、ガベージコレクション中における書き込みレスポンスの低下という課題には、対応していない。
(本発明の目的)
本発明は、SSDを使用したストレージシステムにおいて、たとえ、ガベージコレクションが発生しても、書き込みレスポンスの低下を防止することが可能なSSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムを提供することを、その目的としている。
前述の課題を解決するため、本発明によるSSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムは、主に、次のような特徴的な構成を採用している。
(1)本発明によるSSDストレージシステムは、
SSD(Solid State Drive)を使用したSSDストレージシステムであって、
予備用のスペアSSDを備え、
前記SSD内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアSSDの任意のブロックに対して書き込む動作に切り換える手段と、
前記対象ブロックと前記SSD内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
を有することを特徴とする。
(2)本発明によるレスポンス低下防止制御方法は、
SSD(Solid State Drive)を使用したSSDストレージシステムにおいて、予備用のスペアSSDを備えて、前記SSDに対する書き込みを行う際のレスポンスの低下を防止する書き込みレスポンス低下防止制御方法であって、
前記SSD内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントするステップと、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出ステップと、
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアSSDの任意のブロックに対して書き込む動作に切り換えるステップと、
前記対象ブロックと前記SSD内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行うステップと
を有することを特徴とする。
(3)本発明によるレスポンス低下防止制御プログラムは、前記(2)に記載の書き込みレスポンス低下防止制御方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
本発明のSSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムによれば、以下のような効果を奏することができる。
すなわち、SSDストレージシステム例えばSSD使用RAIDシステム(SSD使用RAID1/10システム等)において、ガベージコレクションが発生しても、元のSSDへの書き込みを停止して、その代わり、スペアSSDへの書き込みに切り換えることによって、追加コストなしで、書き込みのレスポンスの低下を防止することができる。
本発明のSSDストレージシステムの一実施形態に係るSSD使用RAIDシステムの構成例を示すシステム構成図である。 図1に示すRAIDコントローラ内のSSD状態管理テーブルの設定内容の一例を示すテーブルである。 図1に示すRAIDコントローラ内のSSD状態管理テーブルの書き込み情報フラグが無効データ書き込み済みの状態に設定された無効ページが存在する状態の一例を示すテーブルである。 図1に示すSSD使用RAIDシステムの動作の一例を説明するためのフローチャートである。 図1に示すRAIDコントローラ内のSSD状態管理テーブルの書き込み情報フラグがスペアSSDへの書き込みにより有効データ書き込み済みの状態に設定された状態の一例を示すテーブルである。 図1に示すSSD使用RAIDシステムの他の動作の一例を説明するためのフローチャートである。
以下、本発明によるSSDストレージシステム、書き込みレスポンス低下防止制御方法および書き込みレスポンス低下防止制御プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明によるSSDストレージシステムおよび書き込みレスポンス低下防止制御方法について説明するが、かかる書き込みレスポンス低下防止制御方法をコンピュータにより実行可能な書き込みレスポンス低下防止制御プログラムとして実施するようにしてもよいし、または、書き込みレスポンス低下防止制御プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしてもよいことは言うまでもない。また、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことも言うまでもない。
(本発明の特徴)
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、SSDストレージシステム例えばSSD(Solid State Drive)を使用したRAIDシステム(SAS(Serial Attached SCSI) SSD等のSSDを使用したRAID1/10システム等)に関する発明であり、ストレージコントローラ例えばRAIDコントローラが、SSD内のフラッシュメモリ全体の書き込み状態を管理し、フラッシュメモリの消去単位である或るブロックにおいて無効データ書き込み済みの無効ページ数があらかじめ定めたページ数閾値を超えた場合、当該SSDのブロックへのデータ書き込み動作を停止し、その代わり、ストレージシステム例えばRAIDシステムを構成するスペアのSSDに切り換えてデータの書き込みを継続するとともに、無効データ書き込み済みページ数が前記ページ数閾値を超えた当該SSDのブロックに対してガベージコレクションを指示し、ガベージコレクション終了後に、ストレージコントローラ例えばRAIDコントローラが、スペアのSSDから有効な書き込みデータだけを元の当該SSDに書き戻すことを主要な特徴としており、而して、ガベージコレクション中であっても書き込みレスポンスの低下を防止することを可能にしている。
本発明の特徴をより具体的に説明すると、次の通りである。本発明においては、
SSD(Solid State Drive)を使用したSSDストレージシステムであって、
予備用のスペアSSDを備え、
前記SSD内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と
前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアSSDの任意のブロックに対して書き込む動作に切り換える手段と、
前記対象ブロックと前記SSD内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
を有することを主要な特徴としている。
(本発明の実施形態)
次に、本発明の一実施形態について、本発明に係るSSD(Solid State Drive)ストレージシステムの一例としてSSDを使用したRAIDシステムすなわちSSD使用RAIDシステムを用いて詳細に説明する。なお、以下の実施形態の説明におけるSSDは、不揮発性のフラッシュメモリを利用したフラッシュSSDを用いる場合を想定している。
(実施形態の構成例)
まず、本発明の一実施形態におけるSSD使用RAIDシステム(すなわち、SSDを使用したRAID(Redundant Arrays of Inexpensive Disk)システム)の構成例について、図1を参照して説明する。図1は、本発明の一実施形態に係るSSD使用RAIDシステムの構成例を示すシステム構成図であり、SAS(Serial Attached SCSI) SSDを使用したRAID1システムのシステム構成図を示している。
図1のRAID1システムにおいて、RAIDコントローラ1は、SASインタフェース2を介して、複数のSSD3,SSD4,SSD5と接続されていて、SSD3とSSD4とがミラーリング動作を行うRAID1におけるSSD#1とSSD#2との二重化構成とされ、SSD5がRAID1におけるスペアSSDを示すSSD#3として構成されている。
また、RAIDコントローラ1は、SSD状態管理テーブル10とSSD状態管理部11とSSD動作制御部12とを含んで構成されている。
SSD状態管理テーブル10は、各SSD(SSD3,SSD4,SSD5)毎に付与されているフラッシュメモリ番号とブロック番号とページ番号とによって示されるページアドレスにおけるデータの書き込み状態(書き込み済み(有効/無効)、未使用の各状態)と、RAIDコントローラ1のSSD動作制御部12から指示された論理アドレスと、スペアSSDのSSD5(SSD#3)に切り換えて更新データを記録した元のSSD#番号(#1または#2、ただし、未使用時は‘0’)と、を記録している。図2は、図1に示すRAIDコントローラ1内のSSD状態管理テーブル10の設定内容の一例を示すテーブルであり、SSD3(SSD#1)に関する設定内容の一例を示している。
図2に示すように、SSD状態管理テーブル10は、フラッシュメモリ番号10a、ブロック番号10b、ページ番号10c、書き込み情報フラグ10d、論理アドレス10e、および、スペア書き込みSSD#番号10f、に関する情報を含んで構成されている。ここで、書き込み情報フラグ10dは、ページアドレスの書き込み状態(書き込み済み(有効/無効)、未使用)を記録しており、図2の右上側に示すように、‘00’が未使用、‘01’が有効データ書き込み済み、‘10’が無効データ書き込み済みの状態を示している。また、スペア書き込みSSD#番号10fは、図2の右下側に示すように、‘0’は未使用の状態を示し、スペアSSDのSSD5(SSD#3)を使用した際には、RAID1を構成するSSD#1(SSD3の場合),SSD#2(SSD4の場合)いずれかの番号を設定する。
また、SSD 状態管理部11は、無効ページ数カウント部111と閾値超え検出部112とを含んで構成される。無効ページ数カウント部111は、SSD状態管理テーブル10を参照して、フラッシュメモリ番号とブロック番号とによって示されるブロックにおけるデータ書き込み済みの無効ページ数をカウントする。閾値超え検出部112は、無効ページ数カウント部111においてカウントした、無効データ書き込み済みの無効ページ数があらかじめ任意に定めたページ数閾値を超えたブロックを、ガベージコレクションの対象とすべき対象ブロックとして検出する。
また、SSD動作制御部12は、スペアSSD書き込み部121、ガベージコレクション指示部122、スペアSSD書き戻し部123を含んで構成される。スペアSSD書き込み部121は、閾値超え検出部112において検出したブロックへの書き込み動作を停止し、スペアSSD5(SSD#3)の任意のブロックに切り換えて、元のSSDのブロックすなわち閾値超え検出部112において検出した前記対象ブロックに書き込むべきデータを、切り換えたスペアSSD5(SSD#3)の任意の当該ブロックに書き込む。
ガベージコレクション指示部122は、閾値超え検出部112において検出した前記対象ブロックと任意に指定したブロックとを用いてガベージコレクションを行うように、ガベージコレクション対象のSSD3(SSD#1)またはSSD4(SSD#2)に対して指示する。スペアSSD書き戻し部123は、SSD3(SSD#1)またはSSD4(SSD#2)におけるガベージコレクションが終了した後、SSD3(SSD#1)またはSSD4(SSD#2)のSSD状態管理テーブル10のスペアSSD5(SSD#3)に関する情報すなわちスペア書き込みSSD#番号10fおよびスペアSSD5(SSD#3)のSSD状態管理テーブル10を参照して、有効なデータを元のSSD(SSD3(SSD#1)またはSSD4(SSD#2))の未使用ブロックに書き戻しを行う。
図1に示すSSD3(SSD#1),SSD4(SSD#2),SSD5(SSD#3)は、それぞれ、SSD制御部31,SSD制御部41,SSD制御部51とフラッシュメモリ32,フラッシュメモリ42,フラッシュメモリ52とを含んで構成されるが、それぞれは全く同一の構成である。
SSD制御部31,SSD制御部41,SSD制御部51は、それぞれ、ガベージコレクション実行部311,ガベージコレクション実行部411,ガベージコレクション実行部511とガベージコレクション終了通知部312,ガベージコレクション終了通知部412,ガベージコレクション終了通知部512とを含んで構成される。
ガベージコレクション実行部311,ガベージコレクション実行部411,ガベージコレクション実行部511は、RAIDコントローラ1のガベージコレクション指示部122からの指示により、それぞれ、フラッシュメモリ32,フラッシュメモリ42,フラッシュメモリ52のガベージコレクションを実施する。ガベージコレクション終了通知部312,ガベージコレクション終了通知部412,ガベージコレクション終了通知部512は、それぞれ、RAIDコントローラ1のスペアSSD書き戻し部123に対して、ガベージコレクション終了を通知する。
(実施形態の動作の説明)
次に、本発明の一実施形態として図1に示したSSD使用RAIDシステムの動作について、その一例を説明する。なお、ここでは、最も簡単な例として、SSD3(SSD#1)にある一つのブロックにおいてデータ書き込み済みの無効ページ数があらかじめ任意に定めたページ数閾値を超えている場合を例に採って説明する。
例えば、図3のSSD状態管理テーブル10に示すように、SSD3(SSD#1)にあるフラッシュメモリ番号10aが‘001’のブロック番号10bが‘00001’におけるデータの書込みにより、書き込み情報フラグ10dとして無効データ書き込み済みの状態を示す‘10’が設定された無効ページ数が、ページ番号10cの‘00001’〜‘10000’の10,000ページに及び、あらかじめ定めた前記ページ数閾値を超えた状態が発生している場合について説明する。ここで、図3は、図1に示すRAIDコントローラ1内のSSD3(SSD#1)に関するSSD状態管理テーブル10の書き込み情報フラグ10dが無効データ書き込み済みの状態に設定された無効ページが存在する状態の一例を示すテーブルであり、SSD3(SSD#1)に関するSSD状態管理テーブル10の設定内容として、書き込み情報フラグ10dが‘10’(無効データ書き込み済みの状態)に設定されている箇所をハッチングにて示している。
図3のSSD状態管理テーブル10に示すように、SSD3(SSD#1)のフラッシュメモリ番号10aが‘001’のブロック番号10bが‘00001’のブロックにおいて、無効ページ数が前記ページ数閾値を超えたことを検出し、SSD3(SSD#1)に対する書き込み停止とスペアSSDのSSD5(SSD#3)への書き込みとSSD3(SSD#1)に対するガベージコレクションとを行うまでの動作の一例について、図4のフローチャートを参照して説明する。図4は、図1に示すSSD使用RAIDシステムの動作の一例を説明するためのフローチャートであり、SSD3(SSD#1)のフラッシュメモリ番号10aが‘001’のブロック番号10bが‘00001’のブロックにおいて、無効ページ数が前記ページ数閾値を超えた場合のガベージコレクション(GC)動作の一例を示している。
図4のフローチャートにおいて、RAIDコントローラ1のSSD状態管理部11内にある無効ページ数カウント部111は、ミラーリングのRAID1構成として動作しているSSD3(SSD#1),SSD4(SSD#2)の双方の状態管理テーブル10をサーチし(ステップS1)、フラッシュメモリのブロック毎に無効ページ数をカウントして、閾値超え検出部112に通知する(ステップS2)。無効ページ数カウント部111から無効ページ数のカウント値を受け取った閾値超え検出部112が、該カウント値があらかじめ定めたページ数閾値を超えているか否かを確認する(ステップS3)。
カウント値があらかじめ定めたページ数閾値を超えていない場合は(ステップS3のNo)、ステップ1に戻って、SSD3(SSD#1),SSD4(SSD#2)の無効ページ数の監視動作を繰り返す。一方、図3に示したように、SSD3のブロック‘00001’において前記ページ数閾値を超えていることを検出すると(ステップS3のYes)、ステップS4に移行する。
ステップS4に移行すると、SSD動作制御部12のスペア書き込み部121に制御が移って、スペア書き込み部121は、無効ページ数が前記ページ数閾値を超えたSSD3(SSD#1)へのデータ書き込みを停止し(ステップS4)、その代わりに、以降のSSD3(SSD#1)に対するデータ書き込みをスペアSSD(すなわりSSD5)に対する書き込みに切り換える(ステップS5)。さらに、ガベージコレクション指示部122が、書き込み停止中のSSD3(SSD#1)に備えられているSSD制御部31内のガベージコレクション実行部311に対して、ガベージコレクションを指示する(ステップS6)。
ガベージコレクション実行部311は、ガベージコレクション指示部122からの指示を受け取ると、データ書き込みを停止した前記対象ブロックに対し、任意に指定したブロックを利用したガベージコレクションを実行する(ステップS7)。しかる後、ガベージコレクション実行部311が、ガベージコレクション終了を検出すると(ステップS8のYes)、ガベージコレクション終了通知部312が起動し、RAIDコントローラ1のSSD動作制御部12内のスペアSSD書き戻し部123に対して、ガベージコレクションの終了を通知して、ガベージコレクション終了までの動作が完了する(ステップS9)。
なお、書き込み停止中のSSD3(SSD#1)に対する書き込みは、SSD3(SSD#1)の代わりに、スペアSSDのSSD5(SSD#3)に対して行われており、該スペアSSDのSSD5(SSD#3)に関するSSD状態管理テーブル10は、図5に示すような設定内容になっているものとする。図5は、図1に示すRAIDコントローラ1内のSSD状態管理テーブル10の書き込み情報フラグがスペアSSD(SSD5(SSD#3))への書き込みにより有効データ書き込み済みの状態に設定された状態の一例を示すテーブルであり、書き込み停止中のSSD3(SSD#1)のスペアSSD(SSD5(SSD#3))として動作中のSSD5に関するSSD状態管理テーブル10の設定内容を例示している。
図5のSSD状態管理テーブル10に示す設定内容は、SSD5(SSD#3)のフラッシュメモリ番号10aに示すフラッシュメモリ番号‘001’、ブロック番号10bおよびページ番号10cに示すブロック番号‘00001’のページ番号‘00001’〜‘01001’が、スペア書き込みSSD#番号10fにハッチングを付して示すように、 ‘1’(ミラ−リング動作を行うSSD3(SSD#1)を示すSSD識別番号)が設定されていて、SSD3(SSD#1)に書き込むべきデータをスペアSSDのSSD5(SSD#3)に書き込むという動作が行われていることを示している。かかる状態において、図5のSSD状態管理テーブル10に示す設定内容は、さらに、書き込み情報フラグ10dにハッチングを付して示すように、ブロック番号‘00001’のページ番号‘00001’〜‘01001’のうち、ページ番号‘00001’〜‘01000’には、SSD3(SSD#1)に書き込むべき有効なデータがスペアSSDのSSD5(SSD#3)に書き込まれているが、ページ番号‘01001’には、無効なデータがスペアSSDのSSD5(SSD#3)に書き込まれている状態にあることを示している。
次に、図5に示すようなSSD5のSSD状態管理テーブル10の設定内容であった場合において、書き込み停止中のSSD3(SSD#1)が復旧して、スペアSSDのSSD5(SSD#3)に書き込まれていた有効なデータをSSD3(SSD#1)に書き戻す場合の動作の一例について、図6のフローチャートを参照して説明する。図6は、図1に示すSSD使用RAIDシステムの他の動作の一例を説明するためのフローチャートであり、SSD3(SSD#1)のフラッシュメモリ番号10aが‘001’のブロック番号10bが‘00001’のブロックに書き込むべきデータを、スペアSSDのSSD5(SSD#3)から書き戻す場合の動作の一例を示している。
図6のフローチャートにおいて、RAIDコントローラ1のSSD動作制御部12のスペアSSD書き戻し部123は、スペアSSDのSSD5(SSD#3)に関するSSD状態管理テーブル10の中から、SSD3(SSD#1)のスペアSSDを示す表示としてスペア書き込みSSD#番号10fに‘1’が設定されている部分を参照して(ステップS11)、書き込み情報フラグ10dが有効データを示す‘10’に設定されているフラッシュメモリ番号10aとブロック番号10bとページ番号10cとによって示されるページアドレスを検索する(ステップS12)。
図5のSSD状態管理テーブル10の設定内容の場合、フラッシュメモリ番号10aが‘001’,ブロック番号10bが‘00001’,ページ番号10cが‘00001’〜‘01000’の範囲に有効データが存在していることを認識し、認識した有効データ存在範囲について、スペアSSDのSSD5(SSD#3)から当該有効データを読み込む(ステップS13)。
次いで、スペアSSD書き戻し部123は、スペアSSD(SSD5(SSD#3))に関するSSD状態管理テーブル10のスペア書き込みSSD#番号10fおよび論理アドレス10eを参照して、読み込んだ有効データの書き込み対象となる書き戻し先のSSD番号および論理アドレスを特定し(ステップS14)、書き戻し先となる元のSSD(SSD3(SSD#1))の未使用のブロックにデータを書き戻す動作を開始し、このとき、書き戻し動作と同時に、元のSSD(SSD3(SSD#1))のSSD状態管理デーブル10の設定内容も更新する(ステップS15)。
ただし、この時、元のSSD(SSD3(SSD#1))の同一論理アドレスにデータが既に存在していた場合には、SSD3(SSD#1)のSSD状態管理デーブル10の書き込み情報フラグ10dを無効データの状態に設定する(ステップS18)。
元のSSD(SSD3(SSD#1))に有効データの書き戻し動作が完了すると、スペアSSD (SSD5(SSD#3))のSSD状態管理テーブル10の書き込み情報フラグ10dを、無効データを示す‘10’に設定して、ガベージコレクションを実行させることによって、再利用可能な状態に戻す(ステップS16)。スペアSSD(SSD5(SSD#3))に書き込まれていた全ての有効データを元SSD(SSD3(SSD#1))に対して書き込む動作が完了した後は、元SSD(SSD3(SSD#1))が本来のRAID構成が可能な状態に復帰するので、SSD3(SSD#1)、SSD4(SSD#2)は本来のRAID構成による運用を再開する(ステップS17)。以上の動作により、スペアSSDのSSD5から元のSSD3(SSD#1)にデータを書き戻すことが可能になる。
(本実施形態の効果の説明)
以上に詳細に説明したように、本実施形態においては次のような効果が得られる。すなわち、SSDストレージシステム例えばSSD使用RAIDシステム(SSD使用RAID1等)において、ガベージコレクションが発生しても、元のSSDへの書き込みを停止して、その代わり、スペアSSDへの書き込みに切り換えることによって、追加コストなしで、書き込みのレスポンスの低下を防止することができる。
(本発明の他の実施形態)
前述の実施形態においては、ミラーリング動作を行う一方のSSD#1に該当するSSD3の1つのブロックにおいて無効ページ数があらかじめ定めたページ数閾値を超えた際に、当該ブロックに対してガベージコレクションを実施している場合について説明した。かくのごとく、1つのブロックに対してガベージコレクションを行うことは、効率的ではないので、あらかじめ定めた或る一定のブロック数に纏めた単位に対してガベージコレクションを実施するようにしてもよい。
つまり、或るSSD例えばSSD3(SSD#1)において書き込み可能なブロック(未使用のブロック)の数量(または割合)があらかじめ定めた未使用ブロック数閾値よりも少なくなり、かつ、残りの使用済ブロックにおいて無効ページ数が前記ページ数閾値を超えた書き込みブロック数(割合)があらかじめ定めた無効ページ書き込み済みブロック数閾値を超えた場合に、当該SSD例えばSSD3(SSD#1)に対するガベージコレクション動作を開始し、スペアSSDのSSD5(SSD#3)への書き込みが行われるように制御することになる。
現在の一般的なSSDの場合は、各ページの容量は2KB〜4KB程度,各ブロックの容量は2MB程度,SSDの容量は100GB〜1TBになっている。したがって、具体的な一数値例としては、前記未使用ブロック数閾値を20%、前記無効ページ書き込み済みブロック数閾値を70%と設定するようにしてもよい。すなわち、書き込み可能なブロック(未使用のブロック)の数量(割合)が前記未使用ブロック数閾値の20%よりも少なくなり、かつ、残りの使用済ブロックにおいて無効ページ数があらかじめ定めた前記ページ数閾値を超えた書き込みブロック数(割合)が前記無効ページ書き込み済みブロック数閾値の70%を超えた時などにおいて、SSD3(SSD#1)への書き込みを停止して、スペアSSDのSSD5(SSD#3)への書き込みが行われるように制御してもよい。
また、ミラーリング動作を行うRAID1構成の場合、RAIDを構成する2つのSSDが同時にスペアSSDへの書き込みとガベージコレクション処理とを行なければならない事象が発生する可能性がある。かくのごとき場合に対しても余裕を持って備えるために、無効ページ数が多く存在するブロックか否かを判定するための前記ページ数閾値の値をあらかじめ定めた量だけ下げておき、前記ページ数閾値を超えるブロックが2つのSSD双方に発生した場合、ミラーリング動作中の2つのSSDのうち、若番側のSSDから先にスペアSSDへの書き込み,ガベージコレクションを行ったり、あるいは、双方のSSDを交互にスペアSSDへの書き込み、ガベージコレクションを交互に行ったりすることによって対応するようにしてもよい。
また、スペアSSDへの書き込みの途中に、RAID1を構成する元のSSDにおいて故障が発生した場合には、その間に行われた、スペアSSDへの書き込みデータを全て無効とし、その代わり、RAID1を構成するもう一方のSSDから、スペアSSDに対してデータを書き込むことによって、ミラーリング動作が可能な状態にデータを復旧させて、もう一方のSSDとスペアSSDとによってRAID1構成を回復するようにしてもよい。
なお、以上の動作例においては、ミラーリング動作を行うSSDからなるSSD使用RAID1構成の場合について説明したが、本発明はかかる場合に限るものではない。すなわち、RAID構成を採用していない通常のSSDストレージシステムであっても、または、ミラーリング動作を行うSSDに対してさらにストライピング動作を行うSSDを備えた構成とするSSD使用RAID10システムであっても、本発明を適用することが可能であることは言うまでもない。
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
1 RAIDコントローラ
2 SASインタフェース
3 SSD
4 SSD
5 SSD
10 SSD状態管理テーブル
10a フラッシュメモリ番号
10b ブロック番号
10c ページ番号
10d 書き込み情報フラグ
10e 論理アドレス
10f スペア書き込みSSD#番号
11 SSD状態管理部
12 SSD動作制御部
31 SSD制御部
32 フラッシュメモリ
41 SSD制御部
42 フラッシュメモリ
51 SSD制御部
52 フラッシュメモリ
111 無効ページ数カウント部
112 閾値超え検出部
121 スペアSSD書き込み部
122 ガベージコレクション指示部
123 スペアSSD書き戻し部
311 ガベージコレクション実行部
312 ガベージコレクション終了通知部
411 ガベージコレクション実行部
412 ガベージコレクション終了通知部
511 ガベージコレクション実行部
512 ガベージコレクション終了通知部

Claims (10)

  1. SSD(Solid State Drive)を使用したSSDストレージシステムであって、
    予備用のスペアSSDを備え、
    前記SSD内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントする手段と、
    前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出手段と、
    前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアSSDの任意のブロックに対して書き込む動作に切り換える手段と、
    前記対象ブロックと前記SSD内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行う手段と
    を有することを特徴とするSSDストレージシステム。
  2. 前記ガベージコレクションが終了した際に、前記対象ブロックに対して書き込むべきデータとして前記スペアSSDの任意の前記ブロックに書き込んでいたデータのうち有効なデータを前記SSD内の未使用ブロックに書き戻した後、前記スペアSSDの前記ブロックのデータを無効なデータに設定する手段
    をさらに有することを特徴とする請求項1に記載のSSDストレージシステム。
  3. 前記対象ブロック検出手段において、前記対象ブロックを検出する際に、
    前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックを検出する代わりに、
    前記SSD内の各前記ブロックについて書き込み可能なブロックの数量または割合が、あらかじめ定めた未使用ブロック数閾値よりも少ない場合であって、かつ、残りの使用済みのブロックに関し、前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックの数量または割合が、あらかじめ定めた無効ページ書き込み済みブロック数閾値を超えるというブロックが存在している場合、該当する当該ブロックを前記対象ブロックとして検出する
    ことを特徴とする請求項1または2に記載のSSDストレージシステム。
  4. ミラーリング動作を行う前記SSDからなるSSD使用RAID1システム、または、ミラーリング動作を行う前記SSDに対してさらにストライピング動作を行う前記SSDを備えたSSD使用RAID10システムとして構成する
    ことを特徴とする請求項1ないし3のいずれかに記載のSSDストレージシステム。
  5. 前記RAID1システムまたは前記RAID10システムにおいて、前記ページ数閾値をあらかじめ定めた量だけ少ない値に設定しておき、ミラーリング動作中の2つの前記SSDのうち、若番側の前記SSDから先に前記スペアSSDへの書き込み、および、ガベージコレクションを行うか、または、双方の前記SSDを交互に前記スペアSSDへの書き込み、ガベージコレクションを交互に行う
    ことを特徴とする請求項4に記載のSSDストレージシステム。
  6. SSD(Solid State Drive)を使用したSSDストレージシステムにおいて、予備用のスペアSSDを備えて、前記SSDに対する書き込みを行う際のレスポンスの低下を防止する書き込みレスポンス低下防止制御方法であって、
    前記SSD内の各ブロックにおいて無効データの書き込み済みの状態になっているページ数を無効ページ数としてカウントするステップと、
    前記無効ページ数があらかじめ定めたページ数閾値を超えるページ数に達しているブロックを検出した際に、ガベージコレクションの対象とする対象ブロックとして検出する対象ブロック検出ステップと、
    前記対象ブロックに対する書き込み動作を停止し、その代わり、前記対象ブロックに対して書き込むべきデータを前記スペアSSDの任意のブロックに対して書き込む動作に切り換えるステップと、
    前記対象ブロックと前記SSD内の任意に指定したブロックとを用いて前記対象ブロックに対してガベージコレクションを行うステップと
    を有することを特徴とする書き込みレスポンス低下防止制御方法。
  7. 前記ガベージコレクションが終了した際に、前記対象ブロックに対して書き込むべきデータとして前記スペアSSDの任意の前記ブロックに書き込んでいたデータのうち有効なデータを前記SSD内の未使用ブロックに書き戻した後、前記スペアSSDの前記ブロックのデータを無効なデータに設定するステップ
    をさらに有していることを特徴とする請求項6に記載の書き込みレスポンス低下防止制御方法。
  8. 前記対象ブロック検出ステップにおいて、前記対象ブロックを検出する際に、
    前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックを検出する代わりに、
    前記SSD内の各前記ブロックについて書き込み可能なブロックの数量または割合が、あらかじめ定めた未使用ブロック数閾値よりも少ない場合であって、かつ、残りの使用済みのブロックに関し、前記無効ページ数が前記ページ数閾値を超えるページ数に達しているブロックの数量または割合が、あらかじめ定めた無効ページ書き込み済みブロック数閾値を超えるというブロックが存在している場合、該当する当該ブロックを前記対象ブロックとして検出する
    ことを特徴とする請求項6または7に記載の書き込みレスポンス低下防止制御方法。
  9. ミラーリング動作を行う前記SSDからなるSSD使用RAID1システム、または、ミラーリング動作を行う前記SSDに対してさらにストライピング動作を行う前記SSDを備えたSSD使用RAID10システムとして構成する
    ことを特徴とする請求項6ないし9のいずれかに記載の書き込みレスポンス低下防止制御方法。
  10. 請求項6ないし9のいずれかに記載の書き込みレスポンス低下防止制御方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする書き込みレスポンス低下防止制御プログラム。
JP2015070882A 2015-03-31 2015-03-31 Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム Pending JP2016192025A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015070882A JP2016192025A (ja) 2015-03-31 2015-03-31 Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015070882A JP2016192025A (ja) 2015-03-31 2015-03-31 Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム

Publications (1)

Publication Number Publication Date
JP2016192025A true JP2016192025A (ja) 2016-11-10

Family

ID=57246785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015070882A Pending JP2016192025A (ja) 2015-03-31 2015-03-31 Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム

Country Status (1)

Country Link
JP (1) JP2016192025A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095388A (ja) * 2018-12-11 2020-06-18 キヤノン株式会社 情報処理装置
CN111949558A (zh) * 2019-05-16 2020-11-17 北京兆易创新科技股份有限公司 一种垃圾数据回收方法、装置和存储设备
CN114528233A (zh) * 2022-01-21 2022-05-24 苏州浪潮智能科技有限公司 一种固态硬盘的io写仲裁控制的方法、装置、设备及介质
US11635909B2 (en) 2018-02-26 2023-04-25 Nec Platforms, Ltd. Disk array device, control method for disk array device, and control program for disk array device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11635909B2 (en) 2018-02-26 2023-04-25 Nec Platforms, Ltd. Disk array device, control method for disk array device, and control program for disk array device
JP2020095388A (ja) * 2018-12-11 2020-06-18 キヤノン株式会社 情報処理装置
JP7305340B2 (ja) 2018-12-11 2023-07-10 キヤノン株式会社 情報処理装置
CN111949558A (zh) * 2019-05-16 2020-11-17 北京兆易创新科技股份有限公司 一种垃圾数据回收方法、装置和存储设备
CN111949558B (zh) * 2019-05-16 2023-11-21 兆易创新科技集团股份有限公司 一种垃圾数据回收方法、装置和存储设备
CN114528233A (zh) * 2022-01-21 2022-05-24 苏州浪潮智能科技有限公司 一种固态硬盘的io写仲裁控制的方法、装置、设备及介质
CN114528233B (zh) * 2022-01-21 2023-07-25 苏州浪潮智能科技有限公司 一种固态硬盘的io写仲裁控制的方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
KR101574844B1 (ko) Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현
US20160342476A1 (en) Solid state drive operations
US10198318B2 (en) Storage apparatus having nonvolatile memory device, and nonvolatile memory device
US20120005402A1 (en) Storage system having a plurality of flash packages
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US9940201B2 (en) Disk array having mirror configuration and rebuilding method therefor
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
KR20090017238A (ko) 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP6306737B2 (ja) 半導体メモリデバイス、及び、半導体メモリデバイスを有するストレージ装置
US10579540B2 (en) Raid data migration through stripe swapping
CN104583930A (zh) 数据迁移的方法、控制器和数据迁移装置
JP2016192025A (ja) Ssdストレージシステム、書き込みレスポンス低下防止制御方法およびそのプログラム
CN111356991B (zh) 逻辑块寻址范围冲突爬虫
US9323630B2 (en) Enhanced data recovery from data storage devices
CN111984441A (zh) 瞬间断电回复处理方法及装置以及计算机可读取存储介质
US20150067285A1 (en) Storage control apparatus, control method, and computer-readable storage medium
US20160259571A1 (en) Storage subsystem
JP2008299559A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
JP7219746B2 (ja) ストレージシステム及びストレージシステムのファイル再配置方法
US20170115886A1 (en) Storage device and method of performing a write operation by the same
US8850087B2 (en) Storage device and method for controlling the same
JP2015185133A (ja) 情報記憶装置および情報記憶方法
JP2014112377A (ja) 複数のフラッシュパッケージを有するストレージシステム