JPWO2013046464A1 - 不揮発半導体記憶媒体を有するストレージシステム - Google Patents
不揮発半導体記憶媒体を有するストレージシステム Download PDFInfo
- Publication number
- JPWO2013046464A1 JPWO2013046464A1 JP2013535801A JP2013535801A JPWO2013046464A1 JP WO2013046464 A1 JPWO2013046464 A1 JP WO2013046464A1 JP 2013535801 A JP2013535801 A JP 2013535801A JP 2013535801 A JP2013535801 A JP 2013535801A JP WO2013046464 A1 JPWO2013046464 A1 JP WO2013046464A1
- Authority
- JP
- Japan
- Prior art keywords
- physical
- logical
- chunk
- storage
- page
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
論理物理変換情報が、不揮発半導体記憶媒体の論理アドレス空間を構成する複数の論理ページと複数の論理チャンクとの対応関係を表す情報と、複数の論理チャンクと複数の物理記憶領域との対応関係を表す情報とを含む。各論理ページは、論理アドレス範囲に従う論理記憶領域である。各論理チャンクが、複数の論理ページのうちの二以上の論理ページに割り当てられる。各論理チャンクに、複数の物理記憶領域のうちの二以上の物理記憶領域が割り当てられる。コントローラは、各論理チャンクについて、割り当てる物理記憶領域の数を調整する。
Description
本発明は、不揮発半導体記憶媒体を有するストレージシステムの記憶制御に関する。
ストレージシステムは、一般に、複数の記憶媒体で構成されたRAID(Redundant Array of Independent Disks)グループに基づいて作成された論理ボリュームを、上位装置(例えばホストコンピュータ)へ提供する。近年、記憶媒体としては、HDD(Hard Disk Drive)に加えて又は代えて、NANDフラッシュメモリを用いたフラッシュストレージが採用されている。NANDフラッシュメモリは、不揮発性半導体メモリであり、ページと呼ばれる単位でリードが行われる。同様にライトもページ単位で実施されるが、ライトの際には事前に対象領域を消去しておく必要がある。消去は、複数のページからなるブロックと呼ばれる単位で実施される。
このような制限の下で高速なI/O処理(ライト/リード処理)を行うには、以下のような制御が有効である。まず、上位装置が認識する論理アドレスとフラッシュメモリ上の物理アドレスとの関連づけが管理される。消去済み領域は、上位装置からのI/O処理と非同期に作成されていく。上位装置からのライト対象データは、予め用意された消去済みの領域に格納される。この制御を行う場合には、バッファとして使用する更新データ格納領域が必要となる。ここで言う「更新データ格納領域」とは、いずれの論理アドレスに割り当てられていない物理アドレスが示す空きの記憶領域(例えば、消去済みのブロックにおいて有効なデータ(論理アドレスにとっての最新のデータ)が格納されていないページ)である。
特許文献1では、ブロック内の特定の領域を更新データ格納領域として使用する方法が記載されている。
フラッシュストレージにおいて、更新データ格納領域のサイズは、性能や寿命に大きな影響を与える。更新データ格納領域は、上位装置が直接使用できない領域であるため、一般的にユーザ容量(上位装置に提供される論理アドレス空間が表す記憶容量)には含まれない。従って、物理的な搭載容量(1以上のフラッシュストレージの総記憶容量)の10%を更新データ格納領域として使用するシステムに対して、物理的な搭載容量の55%を使用するシステムでは、物理的な搭載容量が同じであっても、ユーザ容量は半分となってしまう。一方で、更新データ格納領域が大きいほど、一般に、ライト性能および寿命が改善される。
容量と、性能(及び/又は寿命)とのどちらを優先するかは、フラッシュストレージを使用するユーザ毎に異なり、また、同一のユーザであっても、使用するアプリケーションプログラム(及び/又は、使用する領域やアドレス)によって異なる。例えば、高いライト性能が不要なアプリケーションプログラムが使用する領域については、更新データ格納領域のサイズは小さくすることが望ましく、逆に、高いライト性能が必要となる領域については、更新データ格納領域のサイズを大きくすることが望ましい。
この種の問題は、フラッシュストレージに限らず、他種の不揮発半導体記憶媒体についても生じ得る。
本発明の目的は、不揮発半導体記憶媒体における更新データ格納領域のサイズを適切に設定することである。
ストレージシステムが、不揮発半導体記憶媒体と、不揮発半導体記憶媒体の論理アドレスと物理記憶領域との対応関係を表す情報である論理物理変換情報を記憶する記憶部と、記憶部及び不揮発半導体記憶媒体に接続されたコントローラである媒体コントローラとを有する。論理物理変換情報が、不揮発半導体記憶媒体の論理アドレス空間を構成する複数の論理ページと複数の論理チャンクとの対応関係を表す情報と、複数の論理チャンクと複数の物理記憶領域との対応関係を表す情報とを含む。各論理ページは、論理アドレス範囲に従う論理記憶領域である。各論理チャンクが、複数の論理ページのうちの二以上の論理ページに割り当てられる。各論理チャンクに、複数の物理記憶領域のうちの二以上の物理記憶領域が割り当てられる。媒体コントローラは、論理物理変換情報を基に、データのライト先の論理アドレスが属する論理ページが割り当てられている論理チャンクに割り当てられている物理記憶領域を特定し、その特定された物理記憶領域に、そのデータを書き込むよう構成されている。媒体コントローラは、各論理チャンクについて、割り当てる物理記憶領域の数を調整する。
このストレージシステムは、不揮発記憶媒体と媒体コントローラとを有する単一の記憶デバイスであっても良いし、そのような記憶デバイスを1以上とその1以上の記憶デバイスに接続されたコントローラである上位コントローラとを有するストレージ装置であっても良いし、そのようなストレージ装置を複数台で組み合わされたストレージ装置群であっても良い。上位装置は、ストレージ装置又はストレージ装置群に接続されているホスト装置であっても良いし、記憶デバイスに接続された前述の上位コントローラであっても良い。
不揮発半導体記憶媒体における更新データ格納領域のサイズを適切に設定することができる。
以下、一実施例を図面に基づいて説明する。
なお、以下の説明では「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、要素(例えば、ページ、チャンク、フラッシュメモリチップ(FMチップ))を特定するために番号を含む識別情報が使用されるが、識別情報として、番号を含まない情報が使用されても良い。
また、以下の説明では、同種の要素を区別して説明する場合、要素名と参照符号との組合せに代えて、要素名と識別情報との組合せが使用されることがある。例えば、識別情報(識別番号)「0」のページを、「ページ#0」と表記することがある。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、コントローラに含まれるプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えば通信ポート)を用いながら行うため、処理の主語がコントローラ或いはプロセッサとされてもよい。プログラムを主語として説明された処理は、後述のフラッシュストレージデバイス、フラッシュストレージ、フラッシュコントローラ、RAIDコントローラ或いはストレージシステムが行う処理としても良い。また、コントローラは、プロセッサに代えて又は加えて、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから後述のフラッシュコントローラ或いはRAIDコントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ、又は、コンピュータが読み取り可能な記憶媒体であっても良い。
また、コンピュータシステム(或いはコンピュータシステムに含まれるストレージシステム)を管理する一つ以上の計算機の集合を、管理システムと呼ぶことがある。管理システムが表示用情報を表示する場合は、計算機が管理システムである。また、計算機と表示用装置の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理システムと同等の処理を実現してもよく、この場合は、当該複数の計算機(表示を表示用装置が行う場合は表示用装置も含め)が管理システムである。管理システムは、入出力デバイスを有する。入出力デバイスの例としては、ディスプレイ、キーボード及びポインティングデバイスが考えられるが、これらのうちの少なくとも1つに代えて他種のデバイス(例えば、ディスプレイ、キーボード及びポインティングデバイスに代えて、タッチパネル型のディスプレイ装置)が採用されてもよい。また、入出力デバイスの代替として、シリアルインターフェースやイーサーネットインターフェース(イーサーネットは登録商標)を入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用装置を接続し、表示用情報を表示用装置に送信したり、入力用情報を表示用装置から受信することで、表示用装置で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示が代替されてもよい。
また、以下の説明では、インターフェースデバイスを「I/F」と略記することがある。
また、以下の説明では、フラッシュメモリ(FM)は、ブロック単位で消去が行われ、ページ単位でアクセスが行われる種類のフラッシュメモリ、典型的にはNAND型のフラッシュメモリであるとする。しかし、フラッシュメモリは、NAND型に代えて他種のフラッシュメモリ(例えばNOR型)でも良い。また、フラッシュメモリに代えて、他種の不揮発半導体記憶媒体、例えば相変化メモリが採用されても良い。
また、以下の説明では、不揮発半導体記憶媒体はNAND型フラッシュメモリである。このため、ページとブロックという用語が使用される。また、或る論理ページ(この段落において「対象論理ページ」と言う)がライト先であり、且つ、対象論理ページに既に物理ページ(この段落において「第1の物理ページ」と言う)が割り当てられていて第1の物理ページにデータが格納されている場合、対象論理ページには、第1の物理ページに代えて、空きの物理ページ(この段落において「第2の物理ページ」と言う)が割り当てられ、第2の物理ページにデータが書き込まれることになる。第2の物理ページに書き込まれたデータが、対象論理ページにとって最新のデータであり、第1の物理ページに格納されているデータは、対象論理ページにとって旧いデータとなる。以下、各論理ページについて、最新のデータを「有効データ」と言い、旧いデータを「無効データ」と言うことがある。また、有効データを格納している物理ページを「有効物理ページ」と言い、無効データを格納している物理ページを「無効物理ページ」と言うことがある。
図1は、実施例に係るストレージシステムを含むコンピュータシステムの全体構成の一例を示す。
コンピュータシステムは、ストレージシステム101、ホストコンピュータ(以下、ホスト)102、及び管理システム103を備える。
ホスト102は、ストレージシステム101に接続するための通信ポートを有する。ホスト102は、このポートを介してホスト接続経路104を通り、ストレージシステム101に接続される。同様に、管理システム103は、管理接続経路105を通り、ストレージシステム101に接続される。図1では、ホスト102とストレージシステム101を直接接続した構成を記載しているが、ホスト接続経路104は、SAN(Storage Area Network)と呼ばれるネットワークであって良く、多くのホスト、管理システム、ストレージに対応可能な構成でよい。ここで、SANとして、Fibre ChannelやiSCSIなどのプロトコルを使用する事が出来る。また、管理接続経路105は、ホスト接続経路104と同じ接続経路でも良いし異なる接続経路でも良い。例えば、ホスト接続経路104がSANであって、管理接続経路105がLAN(Local Area Network)であっても良い。接続経路104及び105のうちの少なくとも一方は、前述したSAN或いはLAN以外の通信ネットワークでも良い。
ストレージシステム101は、RAIDコントローラ111と、フラッシュストレージデバイス141と、ディスクデバイス142とを有する。RAIDコントローラ111に、フラッシュストレージデバイス141及びディスクデバイス142が、内部バス112を介して接続される。ストレージシステム101は、RAIDにより冗長構成を実現するシステムであり、そのため、RAIDコントローラ111を備える。しかし、本発明は、RAID構成を採用することに限定されない。
フラッシュストレージデバイス141は、I/Fスイッチ121とフラッシュストレージ131とを有する。I/Fスイッチ121に内部バス112を介してRAIDコントローラ111が接続され、且つ、I/Fスイッチ121に、ディスク接続経路122を介してフラッシュストレージ131が接続される。データを実際に格納する記憶媒体は、フラッシュストレージ131である。フラッシュストレージ131は、例えば、SSD(Solid State Drive)である。
また、ディスクデバイス142は、ディスク型の記憶媒体、例えばHDD(Hard Disk Drive)を有する。HDDのI/Fは、例えば、FC(Fibre Channel)、SAS(Serial Attached SCSI)、或いはATAで良い。ディスク型の記憶媒体は、HDDに代えて他種の媒体、例えば、DVD(Digital Versatile Disk)ドライブであっても良い。また、ディスクデバイス141に代えて、他種の記憶媒体、例えば、テープを有するテープ装置であっても良い。
本実施例では、フラッシュストレージデバイス141とディスクデバイス142を区別して記述したが、これらの装置の物理的・論理的に互換とすることで、フラッシュストレージ131とその他のディスクデバイスを混在させることも可能である。例えば、SASプロトコルのディスクI/Fを備えたSSDと、SAS HDDを同一の装置内に格納し、使用することも可能である。
図2は、フラッシュストレージ131の内部構成の一例を示す。
フラッシュストレージ131は、フラッシュコントローラと、フラッシュコントローラに接続されたフラッシュメモリとを有する。
フラッシュコントローラは、上位I/Fと、記憶部と、バッファメモリ213と、下位I/Fと、それらに接続された制御部とを有する。上位I/Fは、例えば、上位入出力制御部201である。記憶部は、例えば、メモリ211を含む。下位I/Fは、例えば、フラッシュ入出力制御部203である。制御部は、例えば、データ転送制御部202と、CPU212とを含む。構成要素201、202、203、213、211及び212は、内部バス222で接続されている。
また、フラッシュメモリは、複数のFM(フラッシュメモリ)チップ1451を有する。複数のFMチップ1451は、FMバス223を介してフラッシュ入出力制御部203に接続されている。フラッシュメモリは、補助記憶デバイスの一例で良い。
上位入出力制御部201は、ディスク接続経路122を通じて、I/Fスイッチ121に接続され、上位装置とのデータ入出力の制御を行う。
データ転送制御部202は、フラッシュストレージ131内のデータ転送を制御する。
フラッシュ入出力制御部203は、FMバス223を通じて、FMチップ1451へのデータ入出力を制御する。
CPU212は、内部バス222でデータ転送制御部202と接続され、メモリ211に格納されたプログラムに従って各種の演算処理を実行し、フラッシュストレージ131全体の制御を実行する。
バッファメモリ213は、上位入出力制御部201、フラッシュメモリ入出力制御部203とやり取りするデータを一旦格納する。
図2で示した構成要素のうちの少なくとも1つは、フラッシュストレージ131に無くても良い。例えば、CPU212をはじめとする各制御部が一体となったチップを用いた構成や、その一部のみを統合するチップを用いた構成が採用されても良い。また、例えば、メモリ211とバッファメモリ213を物理的に同一のメモリにする等の構成が採用されても良い。
図3は、メモリ211に格納する情報の一例を示す。
メモリ211は、主記憶デバイスの一例で良い。メモリ211は、例えば、オペレーティングシステム301、フラッシュストレージ制御プログラム302、データ転送制御部制御プログラム303、入出力制御部制御プログラム304、論理物理変換プログラム311及び論理物理変換情報312を記憶する。プログラム301〜304及び311は、CPU212が実行するプログラムである。
オペレーティングシステム301は、CPU212が各プログラムを実行する際のスケジューリング等の基本処理を行うプログラムである。
フラッシュストレージ制御プログラム302は、フラッシュストレージ131が上位装置へ提供するボリュームの管理や、バッファメモリの管理など、フラッシュストレージ131がストレージデバイスとして動作するための制御に用いるプログラムである。
データ転送制御部制御プログラム303は、データ転送制御部202の制御に用いるプログラムである。
入出力制御部制御プログラム304は、上位入出力制御部201、フラッシュ入出力制御部203の制御に用いるプログラムである。
論理物理変換プログラム311は、上位装置(本実施例ではRAIDコントローラ111又はホスト102)から発行された入出力要求(I/O要求)である論理アドレスが、フラッシュメモリ上の物理位置である物理アドレスのどの部分に相当するかを変換して求めるプログラムである。なお、本実施例で言う「論理アドレス」は、例えば、LBA(Logical Block Address)で良い。
論理物理変換情報312は、論理物理変換プログラム311が動作する際に使用する変換のための情報である。
図3に示した情報以外にも、メモリ211は、上位装置入出力制御部201や、フラッシュ入出力制御部203を制御するための情報等を記憶してもよい。
図4は、論理物理変換処理の概要の一例を示す。
論理アドレス層1401は、フラッシュストレージ131が上位装置(実施例ではRAIDコントローラ111又はホスト102)に提供するボリューム上の位置を表すアドレスである。ここでは、説明をわかりやすくするため、論理空間が複数の論理ページ1411に分割されており、論理ページ1411のサイズは、FMチップ1451の物理ページのサイズと同じとする。ここでは、論理ページ1411のサイズは、8ボリュームブロック分とする。ここで言う「ボリュームブロック」とは、ホスト102に提供される論理ボリュームを構成する個々の記憶領域である。
論理物理変換プログラム311によって、論理アドレス層の領域は、物理層1405における物理的な領域に関連付けられる。物理層1405は、複数のFMチップ1451で構成された層である。各FMチップ1451は、NANDフラッシュメモリの消去単位である複数の物理ブロック1452から構成される。各物理ブロック1452は、リードライト単位である複数の物理ページ1453から構成される。そして、論理ページ1411は、物理ページ1453に関連付けられている。
例えば、図4の例では、LBA0x00から0x07までの領域は、FMチップ#0の物理ブロック#0の物理ページ#0に割り当てられている。フラッシュストレージ131にとっての上位装置であるホスト102又はRAIDコントローラ111から、LBA0x00から0x07までの領域を指定したリード要求が発行された場合は、フラッシュコントローラは、そのリード要求を受け、そのリード要求に従い、上記の割り当て情報(論理物理変換情報312)に基づいて、FMチップ#0の物理ブロック#0の物理ページ#0からデータをリードし、結果(そのリードしたデータを含む)を上位装置に返すこととなる。
図4では、論理ページサイズと物理ページサイズを同一としたが、必ずしも同一である必要は無い。論理ページサイズが物理ページサイズよりも小さい場合、例えば半分のサイズだった場合では、論理上の空間のより小さい範囲毎に格納位置を決定することが可能となる。すなわち、論理アドレス0x00から0x03までの4つのボリュームブロックと、0x04から0x07までの4つのボリュームブロックを別々の物理ページに格納することも可能となる。
逆に、論理ページサイズが物理ページサイズよりも大きい場合には、物理ページの配置にある程度の制限を設けることが望ましい。例えば、論理アドレス0x00から0x0Fまでの範囲は2つの物理ページに関連付けられることになるが、これらの物理ページは、同一物理ブロック中の連続した物理ページのような、一定の規則に基づいて自動的に決定されるページ群であることが望ましい。この場合は、仮想的に物理ページを拡大して使用していることに等しく、管理情報の低減が可能となる。
ここで、フラッシュストレージ131におけるライト処理について考える。
図5は、ライト処理の流れの一例を示したフロー図である。
S501で、ライト処理が開始される。ライト処理は、典型的には、フラッシュコントローラが、上位装置からライト要求を受けた場合に開始される。
フラッシュコントローラは、まず、ライト用の空き物理ページが十分に存在するか(例えば、データのライト先として適切な空き物理ページの総サイズがライト対象のデータのサイズ以上であるか)否かを判断する(S502)。これは、NANDフラッシュメモリは上書きが不可能であり、ライトを行う際には、事前に消去を行う必要がある事に起因している。S502は、ライト可能な消去済みの物理ページが存在するか否かを判断する処理である。
フラッシュコントローラは、ライト用の空き物理ページが十分に存在している場合は、その空き物理ページに、ライト対象のデータをライトし(S503)、処理を終了する(S504)。
一方、フラッシュコントローラは、ライト用の空き物理ページが十分に存在していない場合は、複数の消去候補物理ブロックから空き物理ページ作成対象ブロックの選択を行う(S511)。「消去候補物理ブロック」とは、例えば、末端の物理ページまでデータが書き込まれている物理ブロックである。特に、後述のページ待避処理のため、論理アドレスに関連付けられている物理ページ(有効データを記憶している物理ページ)が少ない物理ブロックが消去候補として望ましい。次に、フラッシュコントローラは、選択した物理ブロック内の有効データを別の空き物理ブロックへ待避する(S512)。有効データとは、前述の定義によれば、本処理の時点で論理ページに実際に割り当てられている物理ページに存在するデータである。有効データは、そのまま消去してはならないデータであるため、別の物理ブロックへの待避が必要となる。有効データの待避処理とは、有効物理ページ内の有効データをその有効物理ページを有する物理ブロックとは別の物理ブロックへコピーし、割り当て関係を更新する処理である。この処理を行うと、コピー元のデータは有効データから無効データ(不要なデータ)となるため、コピー元の物理ページは有効物理ページから無効物理ページとなる。有効データの待避が完了すると、空き物理ページ作成対象ブロック(コピー元の物理ブロック)は、非有効物理ページ、すなわち無効物理ページもしくは元々データの入っていない空きの物理ページのみで構成されることになる。待避が完了すると、フラッシュコントローラは、空き物理ページ作成対象ブロック(S511で選択された物理ブロック)の消去処理を行う(S513)。S513の消去処理によって、空き物理ページ作成対象ブロックの全ての物理ページが空きの物理ページとして使用可能になる。この処理によって、ライト用の空き物理ページが増加することになる。フラッシュコントローラは、再び、ライト用空き物理ページが十分にあるかどうかの判断を行い(S502)、ライト処理の継続を図る。
図5では、ライト処理の中で、空き物理ページの作成処理(S511〜S513)を行っているが、これをライト処理とは非同期で(すなわち、ライト処理に含まれる処理ではなく、ライト処理とは別の処理として)行われても良い。ライト処理とは非同期に空き物理ページ作成処理を行うことにより、ライト処理中の空き物理ページ作成処理を不要とし、ライト処理性能を高くすることが期待できる。
図5で示したライト処理のフローを、ページ状態の遷移という観点で考える。
図6は、ページ状態遷移の第1の観点における第1時点での複数の物理ブロック及び物理ページの状態を示す。
論理物理変換情報312は、図4の階層構造に対応した論理物理変換用テーブルT601を含む。テーブルT601は、論理物理変換用テーブルを簡略化したテーブルであって、物理ブロック及び物理ページに関する情報を有するブロックページテーブルである。前提として、物理ブロック内の物理ページ数は4とし、ユーザが使用可能な領域は、全物理容量の75%とする。すなわち、物理ブロック内の4つの物理ページのうち、平均的には3つの物理ページが有効な状態(有効物理ページ)となる。図6に示す第1時点のブロックページテーブルT601によれば、物理ブロック#10内の物理ページ#0、#1及び#2に有効なデータが格納されており、物理ブロック#10内の物理ページ#3が空き状態となっている。物理ブロック#22は消去処理直後の状態(全ての物理ページが空き物理ページ)となっている。
図7は、図6の時点の後にライトが発生した後の時点(第2時点)のブロックページテーブルT601を示す。
第2時点のテーブルT601によれば、第1の時点で空き物理ページであった、物理ブロック#10の物理ページ#3に、アドレス#101のデータが格納されている。このとき、第1時点でアドレス#101のデータを格納していた、物理ブロック#10の物理ページ#1は、既に不要なデータを記憶しているため、無効物理ページである。第2時点のテーブルT601は、図5のS503を実行した後の状態に相当する。
図8は、図7の時点から有効データの待避処理を行った後の時点(第3時点)のブロックページテーブルT601を示す。
第3時点のテーブルT601によれば、第2時点での、物理ブロック#10の有効物理ページ#0、#2及び#3内の有効データは、物理ブロック#22の物理ページ#0、#1及び#2へコピーされ、コピー元の物理ページ#0、#2及び#3は全て無効物理ページになっている。第3時点のテーブルT601は、図5のS511を実行した後の状態に相当する。
図9は、図8の時点から全てが非有効物理ページ(無効物理ページ又は空き物理ページ)となった物理ブロック#10に対して消去処理を行った後の時点(第4時点)のブロックページテーブルT601を示す。
第4の時点のテーブルT601によれば、物理ブロック#10の全ページが空き状態となっている。第4時点のテーブルT601は、図5のS513を実行した後の状態に相当する。
ここで、図6と図9を比較すると、データの格納位置は異なるものの、ページの属性(有効、無効又は空き)と各種属性の物理ページの数は一致していることがわかる。すなわち、図6〜図9を参照して説明した処理によって、データ待避や消去も含めたライトのフローが完了したことになる。図6〜図9を参照して説明した処理の流れの中で、上位装置から発行されたライト要求に従うライトは、1ページ分(物理ブロック#10の物理ページ#3)のサイズ以下である。一方、フラッシュメモリに対して行われたライトは、有効物理ページのコピーも含むため、4ページ分(物理ブロック#10の物理ページ#3、物理ブロック#22の物理ページ#0、物理ブロック#22の物理ページ#1、物理ブロック#22の物理ページ#2)である。
図10は、ページ状態遷移の第2の観点における第1時点でのブロックページテーブルT601を示す。第2の観点では、前提として、ユーザが使用可能な領域は、全物理容量の50%である。すなわち、物理ブロック内の4つの物理ページのうち、平均的には2つの物理ページが有効な状態となる。
図11は、図10の時点からライトが発生した後の時点(第2時点)のブロックページテーブルT601を示す。
第2時点のテーブルT601によれば、第1時点で空き物理ページであった、物理ブロック#10の物理ページ#2及び#3にそれぞれアドレス#101及び#100のデータが格納されている。これにより、物理ブロック#10の物理ページ#0及び#1はそれぞれ無効物理ページとなっている。第2時点のテーブルT601は、図5のS503を実行した後の状態に相当する。
図12は、図11の時点から、有効データの待避処理を行った後の時点(第3時点)のブロックページテーブルT601を示す。
第3時点のテーブルT601によれば、第2時点での、物理ブロック#10に含まれていた有効物理ページ#2及び#3のデータが、物理ブロック#22の物理ページ#0及び#1へコピーされ、コピー元の物理ページ#2及び#3が全て無効物理ページになっている。第3時点のテーブルT601は、図5のS511を実行した後の状態に相当する。
図13は、図12の時点から、全てが非有効物理ページ(無効物理ページ)となったブロック10に対して消去処理を行った後の時点(第4時点)のブロックページテーブルT601を示す。
第4の時点のテーブルT601によれば、物理ブロック10の全物理ページが空き状態となっている。第4時点のテーブルT601は、図5のS513を実行した後の状態に相当する。
ここで、図10と図13を比較すると、図6と図9の関係と同じく、データの格納位置は異なるものの、物理ページの数が属性(有効、無効、空き)毎に一致していることがわかる。図10〜図13を参照して説明した処理の流れの中で、上位装置から発行されたライト要求に従うライトは2ページ分(物理ブロック#10の物理ページ#2及び#3)である。一方、フラッシュメモリに対して行われたライトは、有効物理ページのコピーも含むため、4ページ分(物理ブロック10#の物理ページ#2及び#3、物理ブロック#22の物理ページ#0及び#1)である。
図6と図9、図10と図13は、前提条件として、物理容量に対するユーザが使用可能な容量の比率(容量率)が異なっており、この差がライト用空き物理ページ(更新データ格納領域)の量の差に影響する。図6〜図9、図10〜図13は、どちらもフラッシュメモリに対して4ページ分のライトが行われているが、上位装置からのライト要求に従うライトは、それぞれ1ページ分、2ページ分であり、ライトの量(データがライトされるページの数)に差が発生している。上位装置からのライト要求に従うライトの量に対して、フラッシュメモリに対して行われるライトの量が大きく増大する場合、ライトもしくはコピー処理によってフラッシュメモリアクセスに要するリソースを使用するため性能が悪化し、また、フラッシュメモリへのライト回数が増大することで寿命も短くなる。すなわち、更新容量を大きくとることで、性能と寿命を改善することが可能であることを示している。
図25は、実施例に係る論理物理変換を実現するための階層構造の第1の例を示す。
最上位層は論理アドレス層1401であり、上位装置であるRAIDコントローラ111やホスト102が認識するための層である。説明を分かり易くするため、論理アドレス層1401内は、物理ページ1453と同一サイズの論理ページ1411で管理することとする。
論理アドレス層1401と物理層1405との間にある第1の中間層として、論理チャンク層1402が設けられる。論理チャンク層1402は、複数の論理チャンク1421で構成されている。各論理チャンク1421は、複数のLCページ1422で構成されている。以下、論理チャンク1421内のページを「LCページ」と言うことがある。
論理ページ(論理アドレス範囲)1411は、LCページ1422としてマッピングされる。さらに、LCページ1422は、物理層1405内の物理ページ1453にマッピングされる。
これらのマッピングにより、論理ページ1411は論理チャンク1421(LCページ1422)を介して物理ページ1453に割り当てられ、実際のデータ格納場所が決定される。例えば、LBA0x00は、LCページ#00としてマッピングされており、そのLCページ#00は、物理ページ#F001にマッピングされている。このため、LBA0x00をライト先とするデータは、物理ページ#F001に格納されることになる。
図25によれば、論理チャンク1421がFMチップ1451にマッピングされている。すなわち、論理チャンク#0はFMチップ#F0にマッピングされており、論理チャンク#1はFMチップ#F1にマッピングされている。これは、論理チャンク#0内のLCページ1422はFMチップ#F0のいずれかの物理ページにのみ関連付けられることを意味している。このような制限を設けることによって、論理物理変換情報312のサイズを低減することが可能である。例えば、論理チャンク1421が無いもしくは一つの場合、マッピングすべきページ数が例えば2の16乗個存在した場合は、論理物理変換情報312に含まれる情報として、1ページあたり例えば2Byteの情報が必要となる。一方、論理空間を例えば2の8乗個の論理チャンク1421に分割した場合、論理チャンク1421内でマッピングすべきページの数は例えば2の8乗個となり、論理物理変換情報312に含まれる情報は、1ページあたり例えば1Byteでよい。このように、論理チャンク層1402を設けることによって、論理物理変換情報312のサイズを低減することができる。
図25の例では、論理チャンク層1402が無い場合は、物理層1405に存在する全物理ページ1453を認識するための情報が必要であるが、論理チャンク層1402があれば、各論理チャンク1421が、FMチップ1451にマッピングされているため、全物理ページ1453を認識するための情報は不要である。論理チャンク1421におけるページの位置(相対位置)からFMチップ1451内に存在する物理ページ1453を算出することが可能であるからである。
図14は、本実施例に係る論理物理変換を実現するための階層構造の第2の例を示す。
この図に示す第2の例によれば、論理アドレス層1401と物理層1405との間に存在する中間層の数が、図25に示した第1の例よりも多い。
すなわち、最上位層が論理アドレス層1401であり、論理アドレス層1401の下位に、前述した論理チャンク層1402があるが、第2の例によれば、更に、論理チャンク層1402の下位に、物理チャンク層1403があり、物理チャンク層1403の下位に、プール層1404がある。プール層1404の下位が、物理層1405である。物理チャンク層1403とプール層1404とのうちのいずれか一方は無くても良い。
物理チャンク層1403は、複数の物理チャンク1431で構成されている。各物理チャンク1431は、複数のブロック1431で構成されている。各ブロック1431は、複数のページ1433で構成されている。以下、物理チャンク1431におけるブロックを「PCブロック」と言い、物理チャンク1431におけるページを「PCページ」と言うことがある。
プール層1404は、複数のプール1441で構成されている。各プール1441は、複数のブロック1442で構成されている。各ブロック1442は、複数のページ1443で構成されている。各プール1441は同じサイズで良い。以下、プール1441におけるブロックを「プールブロック」と言い、プール1441におけるページを「プールページ」と言うことがある。複数のFMチップ1451は、複数のFMチップ群を構成して良く、プールは、1以上のFMチップ群に基づいて良い。FMチップ群は、FMチップ群を構成する複数のFMチップを有する回路基板、例えば、DIMM(Dual Inline Memory Module)で良い。1つのFMチップ群において、2以上のFMチップ1451のチップイネーブル線が共通であっても良い。また、2以上のFMチップ群に跨って、複数のFMチップ1451のチップイネーブル線が共通であっても良い。この場合、1つのチップイネーブル線を起動すれば、そのチップイネーブル線を共有する複数のFMバス223に並行してデータを書き込むことが可能となる。従って、後述するように、FMバス223の異なる複数のFMチップの物理ページが隣り合う論理ページ1411に割り当てられるようなマッピングが行われることが望ましい。
PCページ1433及びプールページ1443は、物理ページ1453と実質的に同一である。また、PCブロック1432及びプールブロック1442は、物理ブロック1452と実質的に同一である。
論理チャンク1421は、物理チャンク1431に例えば1対1でマッピングされる。PCブロック1432は、プールブロック1442に例えば1対1でマッピングされる。プールブロック1442は、物理ブロック1452に例えば1対1でマッピングされる。
LBA0x00は、LCページ#00にマッピングされている。そのLCページ#00は、論理チャンク#0がマッピングされている物理チャンク#C0内のPCページ#C010にマッピングされている。PCページ#C010は、PCブロック#C01がマッピングされているプールブロック#P01内のプールページ#P010にマッピングされている。プールページ#P010は、プールブロック#P01がマッピングされている物理ブロック#F01内の物理ページ#F010にマッピングされている。
これらの各階層におけるマッピングにおいて、制限もしくは自由度を与えることによって、適切な性能、寿命、論理物理変換情報サイズを得ることが出来る。例えば、本実施例では、論理アドレス層1401から論理チャンク層14012の変換の際にストライピングを実施しており、隣り合う論理アドレス範囲(論理ページ1411)は、同一の論理チャンク1421ではなく、異なる論理チャンク(例えば隣り合う論理チャンク)1421にマッピングされる。すなわち、異なる論理チャンク(例えば隣り合う論理チャンク)1421を物理的に異なるリソース(例えば、FMチップ1451、より具体的な例として、FMバス223が異なるFMチップ1451)にマッピングするように構成することで、隣り合う論理アドレス範囲(論理ページ1411)は、異なる物理リソースに割り当てられ、並列処理が可能となる。後述の通り、本実施例ではこの割り当てがされる。
本実施例では、論理チャンク層1402と物理チャンク層1403では、論理チャンク1421と物理チャンク1431が1対1の対応となっている。例えば、論理チャンク#0は物理チャンク#C0に固定的に割り当てられている。ただし、論理/物理チャンク1421/1431内のページ1422/1433は自由に割り当てを変更可能である。例えば、図14では、論理チャンク#0のLCページ#00は、物理チャンク#C0のPCブロック#C01のPCページ#C010にマッピングされているが、この領域の論理空間上の位置(LBA0x00)に対してライトが発生し、新たなデータが書かれた場合、そのデータは物理チャンク#C0上の他のPCページにライトされ、その位置に対して特に制限は設けない。このため、物理チャンク1431上の自由な位置にライト対象のデータを配置することが出来る。ここで、後述の物理位置の制限を利用すると、類似した傾向のページ(例えば、アクセス頻度が類似したデータ)を同一PCブロック1432(物理1452)に配置することが可能となる。これは、例えば、ホットスポットと呼ばれるような高頻度にライトされることが期待されるデータ群を同一のPCブロック1432(物理1452)に集めたり、または、逆にほとんどライトされない事が期待されるデータ群を同一のPCブロック1432(物理ブロック1452)に集めたり、将来シーケンシャルライトが発生することを予想し、論理アドレス上の近接データを同一のPCブロック1432(物理ブロック1452)に集めたりすることが出来る。これによって、例えば、高頻度にライトされるデータが集まったPCブロック1432(物理ブロック1452)に対して消去処理を実施しようとした場合に、そのPCブロック1432(物理ブロック1452)内に存在していたデータは既に別のライトによって無効化されている可能性が高くなり、コピー処理の量(リクラメーションにおいてコピーされるデータの量)が減ることが期待される。物理位置についての自由度を上げることは、より類似した傾向のページを集めることが可能となり、コピー量を低減可能であるが、一方で、論理物理変換情報312のサイズが大きくなってしまうというデメリットもある。本実施例においては、論理チャンク1421内の全LCページ1422は、物理チャンク1431内のPCページ1433へマッピング可能であるため、LCページ1422とPCページ1433との対応関係を表すマッピングテーブルを論理物理変換情報312に含める必要がある。
本実施例においては、物理チャンク層1403とプール層1404の変換において、複数の物理チャンク1403が一つのプール1441のリソースを使用する事を想定している。また、プール1441から物理チャンク1403へ付与されるリソースの単位はブロック1442であり、物理チャンク1403内のブロック1432はプール1441内のブロック1442へ1対1でマッピングされている。ただし、この対応関係は動的に変更されていく。図14においては、物理チャンクC#0のブロック#C01は、プール#P0のブロック#P01に割り当てられており、物理チャンク#C1のブロック#C10は、プール#P0のブロック#P02にマッピングされている。また、ページ単位のマッピングは実施せず、ブロック内の相対位置によって定められるとしている。すなわち、ブロック#C01の先頭ページであるページ#C010は、自動的にブロック#P01内の先頭ページ#P010に割り当てられる。同様に、ページ#C011はページ#P011に割り当てられることになり、これらはブロック間の割り当て関係(C01とP01)が定められた際に自動的に決定される。ブロック間の割り当てについては、後述する。
本実施例における、プール層1404と物理層1405の関係については、ブロック1442、1452間のマッピングによって定められる。ブロック1442、1452間のマッピング(対応関係)は、本実施例では固定であるとする。例えば、プール#P0内のブロック#P01は、FMチップ#F0のブロック#F01に割り当てられている。ページ1443、1453間のマッピングについては、物理チャンク1403におけるブロック1432内のページ1433とプール1441におけるブロック1442内のページ1443と同様に、ブロック1442、1452内の相対位置によって一意に定まるものとする。ここで、物理リソースのマッピングを適切に定めることにより、前述の並列処理を容易に実施する事が可能となる。例えば、隣り合う論理アドレス範囲(論理ページ)が隣り合う異なる論理チャンク1421にマッピングされ、隣り合う論理チャンク1421が隣り合う物理チャンク1431にマッピングされる。前述の通り、これらのマッピングについては固定的であるため、上記の通りに構成していればよい。物理チャンク1431が異なっていれば、FMバス223が異なっていることが望ましい。物理チャンク1431内の使用されるブロック1432は動的に変化するため、ブロック1402を固定的にマッピングすることは出来ない。しかし、本実施例では、各物理チャンク1431に、使用するプール1441がマッピングされる。すなわち、隣り合う物理チャンク1431には隣り合うプール1441がマッピングされることとし、さらに、隣り合うプール1441には、異なるFMチップ(好ましくは、バス223が異なるFMチップ)1451がマッピングされることとする。これによって、隣り合う論理アドレス範囲(論理ページ)1411は、異なるFMチップ(好ましくは、FMバス223が異なるFMチップ)1451にマッピングされることになる。これにより、大サイズのデータに対するアクセスやシーケンシャルアクセスなどの際に複数のFMチップ1451に並行してアクセスする(つまり並列処理を実施する)ことが出来る。また、上記は全て固定的なマッピングで並列処理が実現されており、動的な物理ブロックマッピングにおける物理位置であるFMチップ1451の意識が不要である。このため、物理位置の制限に関しては事前の構成によって実現可能であり、IO処理中に、物理位置の制限のための演算処理が不要である。図14においては、LBA0x00が属するページ1411とLBA0x08が属するページ1411は、それぞれ論理チャンク#0及び#1に割り当てられる。論理チャンク#0及び#1は、それぞれ物理チャンク#C0及び#C#1に割り当てられる。物理チャンク#C0及び#C#1は、それぞれ、プール#P0及び#P1に割り当てられる。プール#P0及び#P1は、それぞれ、FMチップ#F0及び#F1に割り当てられている。よって、隣り合う論理ページ1411(LBA0x00が属するページ1411とLBA0x08が属するページ1411)を同時もしくは連続的にアクセスするようなケースにおいて、FMチップ#F0及び#F1の両方を動作させることとなる。
次に、物理チャンク1403へのプールブロック1442の割り当てについて述べる。図14において、プールブロック#P02は物理チャンク#C1に割り当てられているが、前述の通り、これらの対応関係は動的に変更される。また、ある物理チャンク1431に割り当てられているプールブロック1442に関して、そのプールブロック1442の位置が変更されるのみではなく、物理チャンク1431に割り当てられるプールブロック1442の個数についても変更可能とする。本実施例では、ある論理チャンク1421に含まれるLCページ1422の個数は固定とし、物理チャンク1431に含まれるPCブロック1432の個数を増減する事を可能とする。この方式によって、ある論理空間に割り当てられる物理リソース量、すなわちある数の論理ページに対して実際に使用可能な物理ページの数を増減する事を実現し、性能及び寿命の調整を可能とする。本方式の詳細は、図15及び16等を用いて後に説明する。
また、本実施例では、論理チャンク1421内のページ1422の数を固定とし、物理チャンク1431内のブロック1432の数を変更する事により、上記調整が実現されているが、他の方法が用いられてもよい。例えば、論理チャンク1421に含まれるLCページ1422の数を増減してもよい。また本実施例では、論理チャンク1421と物理チャンク1431の対応関係は、1対1であるが、1対多、多対1でも良い。
なお、本実施例において、論理アドレス層1401からプール層1404までの全てのページのサイズは、物理層1405の物理ページ1453のサイズと同一であるが、論理アドレス層1401からプール層1404のうちの少なくとも1つの層におけるページ(以下、「上位ページ」と言うことがある)のサイズは、物理ページ1453のサイズと異なるサイズとしてもよい。例えば、下記のうちのいずれか、
(1)上位ページのサイズを物理ページ1453のサイズよりも小さくすることにより、より小さなサイズのアクセスに対する性能及び寿命の向上を実現する、
(2)上位ページのサイズを物理ページ1453のサイズよりも大きくすることにより、論理物理変換情報312のサイズを低減する、
(3)論理アドレス層1401における1つの論理ページ1411を異なるFMチップ1451(好ましくはFMバス223が異なるFMチップ1451)の複数の物理ページ1453に割り当てることにより、並列処理を実現する、
が採用されて良い。
(1)上位ページのサイズを物理ページ1453のサイズよりも小さくすることにより、より小さなサイズのアクセスに対する性能及び寿命の向上を実現する、
(2)上位ページのサイズを物理ページ1453のサイズよりも大きくすることにより、論理物理変換情報312のサイズを低減する、
(3)論理アドレス層1401における1つの論理ページ1411を異なるFMチップ1451(好ましくはFMバス223が異なるFMチップ1451)の複数の物理ページ1453に割り当てることにより、並列処理を実現する、
が採用されて良い。
また、物理層1405で考慮するリソースは、FMチップ1451それ自体に限られないでよい。1つのFMチップ1451が複数のダイで構成されている場合は、ダイがリソースとして考慮されて良い。また、FMチップ1451の一種の制御線であるチップイネーブルで接続されている部分、及び/又は、複数のFMチップ1451が接続されているFMバス223が、物理層1405で並列処理を意識する際のリソースとして考慮されて良い。
また、本実施例では、各階層における隣り合う構成要素を意識して、これらを複数物理リソースに割り当てるような構成を記載しているが、必ずしも隣り合っていなくても良い。
図15は、論理チャンク1421と物理チャンク1431とプール1441との対応関係の一例を示す。
論理チャンク1421に所属するLCページ1422は、全て物理チャンク1431内のPCページ1433に割り当てられている。基本的に、ライト先となった論理ページ1411に対応するLCページ1422には、いずれかのPCページ1433が割り当てられる。また、物理チャンク#0に所属しているブロック#0、#1及び#2は、プール#0に所属しているブロック#1、#0及び#2であり、これを物理チャンク#0が使用している状態にある。プール#0のブロック#3については、物理チャンク#0に割り当てられていない。また、図15の例では、論理チャンク#0に含まれるLCページ1422は8個であり、これに割り当てられている物理チャンク#0に含まれるPCページ1433は12個である。
図16は、図15の状態から、さらにプールブロック#3を物理チャンク#0に割り当てた状態を示す。
これは、図15から、物理チャンク#0(すなわち論理チャンク#0)用のリソースとして、プール#0から新たなプールブロック#3を確保してきた状態に相当する。このとき、論理チャンク#0に所属するページ1422の数は8個で変わっておらず、物理チャンク#0に含まれるページ1433は16個と増えている。このため、ユーザ容量に対して更新データ格納領域が多く確保されている状態に相当する。すなわち、図15と図16の関係は、図6から図9に対して、性能及び寿命の面で有利であった、図10から図13の関係と同等である。
図26は、図16の状態から、論理ページのマッピングを整理した状況である。
図5のS512の有効データ待避処理によって、物理チャンク#0のブロック#3に論理ページ1411(LCページ1422)を割り当てていない状態が作り出されている。
図26の状態から、物理チャンク#0のブロック#3を解放した状態は、図15と等しくなる。このとき、論理チャンク#0に含まれるページ1422は8個、物理チャンク#0に含まれるページ1433は12個となっている。図26において、物理チャンク#0のブロック#3に割り当てられていたプール#0のブロック#3は、割り当て状態が解除された状態であって、いずれの物理チャンク1431にも所属していない状態にある。よって、図15から図16で行ったように、プール#0のブロック#3は、物理チャンク#0や、その他のプール#0を使用している物理チャンク1431に、新たに割り当てられて良い。
このように、物理チャンク1431に所属するブロック1432の数を調整することによって、容易に性能及び寿命の改善を実現可能であり、また、これらは論理チャンク単位で調整可能である。
図28は、プール1441からブロック1442を取得する処理をライト処理(図5)に追加したフローの一例を示す。以下、図5との相違点を主に説明する。
ライト用の空き物理ページが十分に存在しない場合、フラッシュコントローラは、ライト先物理チャンク内にブロックが十分にあるか否かを判断する(S2802)。ライト先物理チャンクとは、ライト先の論理アドレスが属する論理アドレス範囲(ページ1411)に対応するページを含んだ論理チャンクにマッピングされている物理チャンクである。S2802の判断についての詳細については後述するが、これまで示してきたように、物理チャンクに割り当てられるブロックの数によって性能や寿命が変化する事から、性能や寿命の用件を満たすためのブロック数の期待値があり、S2802の判断は、物理チャンク内のブロック数がその期待値以上か否かの判断となる。物理チャンク内のブロック数の期待値は、例えば、図23に示すテーブルT2301の「容量割り当て状態」の「目標」を基に分かる。
ブロックが十分に無い場合、フラッシュコントローラは、プールからブロックを取得する(S2812)。ブロックの取得元のプールは、いずれのプールでも良いが、所与のポリシー(例えば、容量重視或いは性能重視)に基づき選択されても良い。例えば、フラッシュコントローラは、性能重視(例えば、連続した論理アドレス範囲にアクセスが生じた場合に複数のFMチップが並列に動作するようにすること)がポリシーであれば、隣り合う論理アドレス範囲にアクセスが生じた場合に異なるプール(FMチップ)にアクセスが生じるようにプールを選択しても良い。
ブロックが十分にある場合、フラッシュコントローラは、ライト先物理チャンクにおける既に割り当て済みのブロックから空きブロックを生成する必要があるため、ライト先物理チャンクについて、空きブロック生成処理(S2813)を行う。ブロック取得(S2812)及び空きブロック生成処理(S2813)を行った後、フラッシュコントローラは、再びライト用の空き物理ページ数の判断(S2802)に戻り、ライト処理を続行する。なお、図28では、空き物理ページ生成のための一連の処理(S2811,S2812,S2813)を、ライト処理と同期して実施しているが、これらは、図5における空き物理ページ生成処理と同様に、ライト処理とは非同期に実施されてもよい。
図29は、空きブロック生成処理(S2813)のフローの一例を示す。
空きブロック生成処理が開始されると(S2901)、フラッシュコントローラは、まず、空き物理ページ生成対象ブロックを選択する(S2902)。次に、フラッシュコントローラは、選択されたブロック内の有効データを別のブロックに待避し(S2903)、その後、そのブロックは非有効物理ページのみで構成されているため、そのブロックに対して消去処理を実施する(S2904)。S2904までの処理は、図5における空きブロック生成処理(S511,S512,S513)と同等であり、これによって空きブロックが生成される。
次に、フラッシュコントローラは、処理中の物理チャンク内のブロック数が期待値以上か否かを判断する(S2905)。
ブロック数が期待値未満である場合は、フラッシュコントローラは、そのまま空きブロック生成処理を終了する(S2906)。
ブロック数が期待値以上である場合は、フラッシュコントローラは、生成した空きブロックをプールに返却する(S2911)。返却先のブールは、空きブロックを有するFMチップ1451に基づくプールで良い。S2911は、物理チャンクに割り当てられているブロックの解放処理に相当し、各物理チャンクに適切な量のブロックを割り当てるための処理となる。なお、図28において、空きブロック生成処理は、ライト処理と同期して実行しているが、空き物理ページ生成の処理と同様に、ライト処理とは非同期に空きブロック生成処理を実行してもよい。
図17は、論理物理変換情報312が含む情報群の一例を示す。
論理物理変換情報312は、論理チャンク構成情報1701と、論理チャンク−物理チャンク変換情報1702と、物理チャンク構成情報1703と、物理チャンク内ページ情報1704と、プール構成情報1705と、容量割り当て情報1706とを含む。以下、これらの情報を説明する。
図18は、論理チャンク構成情報1701の構成例を示す。
この情報1701は、論理チャンク構成情報テーブルT1801を含む。テーブルT1801は、論理アドレス層1401の論理ページ1411がそれぞれ論理チャンク層1402でどの論理チャンク及びLCページに割り当てられているかを示す。
図18によれば、これらの情報をテーブルにより表しているため、論理空間上のページをどのような論理チャンク・LCページの番号に割り当てるかは自由に決定されて良い。
一方で、論理アドレス層と論理チャンク層との間では、単純な割り当てを適用する方法も有効である。例えば、LBA(論理アドレス)の昇順で論理チャンク内のLCページ番号が増加していき、LCページ番号が論理チャンクのページ数上限に従う番号に到達した場合に、LBAが次の論理チャンクに割り当てられる方法が考えられる。他には、図18のテーブルT1801のように、LBA昇順で、論理チャンク内ページ番号が変わらず、論理チャンク番号が加算されていくような方法も考えられる。これらの単純なルールを設ける方法の場合は、論理チャンク構成情報1701をテーブルとして実現する必要はなく、計算式によって構成を求めることも可能である。この場合は、メモリ量の削減や、該当する論理チャンク番号及びページ番号を求める際のサーチ処理の低減が可能となる。
図19は、論理チャンク−物理チャンク変換情報1702の構成例を示す。
この情報1702は、論理チャンク−物理チャンク変換情報テーブルT1901を含む。テーブルT1901は、論理チャンク1421内のページ1422が、それぞれ物理チャンク層1403のどの物理チャンク1431及びPCページ1433に割り当てられているかを示す。本実施例では、論理チャンク層1402と物理チャンク層1403との間で、ページ単位のマッピングが実施されている。
図20は、物理チャンク構成情報1703の構成例を示す。
この情報1703は、論理チャンク構成情報テーブルT2001を含む。テーブルT2001は、物理チャンク1431が、使用するプールはどこであり、現在いくつのブロックを所有しており、それらのブロックの番号は何かを示す。論理物理変換情報312のサイズの低減のため、ここでは、物理チャンク1431に関して使用中のブロックが順序通りに並べられている。これにより、テーブルT1901内の物理チャンク1431内ページの番号から、該当する物理ブロック番号と、その物理ブロック内のページの位置が特定される。つまり、ページ単位の位置が特定される。
図21は、物理チャンク内ページ情報1704の構成例を示す。
この情報1704は、物理チャンク内ページ情報テーブルT2101を含む。テーブルT2101は、各物理チャンクに所属する各ブロックとその中のページに関する状態(現在どのLCページに割り当てられているか、割り当てられておらず無効データが格納されているのか、或いは空き物理ページなのか)を示す。
このテーブルT2101は、必ずしもIO処理に必須の情報だけではない。例えば、ブロック番号は、このテーブルT2101内の使用ブロック番号から特定され、ページ番号は、順序通りに並べることで、テーブルT2101に登録することが不要で良い。状態のうち、論理チャンク内のページ番号については、逆方向である論理位置から物理位置を調査する方法が存在するため不要で良い。しかし、物理位置から論理位置を調査する必要がある場合等には有用な情報となる。このようなケースとしては、例えば、FMチップ1451もしくはその一部に障害が発生し、障害の生じた物理位置(FMチップ、ブロック或いはページ)から論理位置を特定し、データを待避する必要が生じたケース、などが考えられる。
図22は、プール構成情報1705の構成例を示す。
この情報1705は、プール構成情報テーブルT2201を含む。テーブルT2201は、各プールの基になっているFMチップ及び物理ブロックの状態(例えば、現在どの物理チャンクに所属しているか、無所属、又は空き状態)を示す。テーブルT2201には、FMバス223などの、物理層1405で管理すべきリソース、についての情報が記載されてもよい。
図23は、容量割り当て情報1706の構成例を示す。
この情報1706は、容量割り当てテーブルT2301を含む。このテーブルT2301は、各記憶領域がどのような属性及び状態にあり、またどのように変更すべきかを示す。ここで、テーブルT2301によれば、記憶領域は、論理アドレスで示される。各記憶領域の属性としては、例えば、RAID5パリティのような、上位装置の使用方法から決定される属性や、高頻度ライトのような運用中における統計情報から決定される属性や、容量指定のような管理者からの指示により決定される属性が存在する。
一方、物理チャンク内のブロック数によって性能や寿命を調整する方式においては、このテーブルT2301で最終的に求められる情報としては、各物理チャンクに割り当てようとする容量(ブロック数)である事が望ましい。よって、容量割り当てテーブルT2301では、記憶領域から物理チャンク番号への変換を行っている。図23によれば、ある連続した記憶領域は複数の物理チャンクで構成され、ある物理チャンクが複数の記憶領域にまたがることは無い構成が採用されている。記憶領域のサイズが大きく、論理チャンクのサイズが小さく、ストライピングのサイズと数が小さい場合に採用されることが望ましい。
上記以外の場合では、1つ物理チャンクが複数の記憶領域にまたがってしまい、図23のような形式での管理は困難となる。この場合は、物理チャンク毎にどのような属性のデータがどのくらい含まれているかを表す情報が管理され、その情報を基に、割り当てる容量を決定することが望ましい。
容量割り当てテーブルT2301では、物理チャンク毎に、現状割り当て容量と、目標容量とが管理されている。なお、本実施例では、論理チャンクのサイズが固定とされているため、同一属性の物理チャンクについては、目標とする割り当て容量は同一となる。このテーブルT2301を基に、物理チャンクのブロック確保・解放が実施される。例えば、記憶領域#1に関連付けられている物理チャンク#0は、目標4MBに対して、現状も4MBであるため、特にブロックの確保・解放処理は実施されない。記憶領域#1に関連付けられている物理チャンク#10は、目標8MBに対して、現状6MBで、割り当て済みブロック数は過少となっているため、その物理チャンク#10に対してブロックが追加されようとする。これは、ライトと同期した空き物理ページ確保処理(S2812)や、非同期の空き物理ページ確保処理の際に実施されて良い。一方、記憶領域#4の物理チャンク#40は、目標3MBに対して、現状は6MBで、割り当て済みブロック数は過多となっているため、その物理チャンク#40からブロックが解放されそのブロックがプールに返却されて良い。すなわち、空きブロック生成処理中のブロック返却処理(S2911)が実施されて良い。
このように、記憶領域の属性から、具体的な物理チャンクの割り当て目標サイズが決定され、その目標に従うようにプール1441からリソースが割り当てられて良い。ただし、例えば、全ての記憶領域で高頻度なライトが発生し、物理的な容量以上の容量を要求するような場合など、目標を全て満足することは不可能である可能性がある。このため、常に現状と目標値を監視し、容量割り当てテーブルT2301の容量割り当て状態によって割り当てが制御されて良い。
容量割り当てテーブルT2301が表す記憶領域は、論理アドレスで示されており、前述したように、各記憶領域の属性には、管理者からの指示で決定される項目が存在する。しかし、ストレージシステム101を使用するホスト102及び管理システム103からは、フラッシュストレージデバイス141上の論理アドレスを特定することは困難である
図30は、ホスト102(及び/又は管理システム103)のユーザが使用するアドレス空間と、フラッシュストレージデバイス141上の論理アドレス空間の関連の一例を示す。
ユーザが使用するユーザアドレス空間3001は、通常、LU(Logical Unit)番号とその論理アドレス(LBA)によって決定される。図30においては、LU3001が複数あり、その中に複数の論理ブロック3021が存在している。ユーザアドレス空間3001中のLU3011は、複数のフラッシュストレージ論理空間3002に跨がって構成されるLU3012に割り当てられている。ユーザアドレス空間3001中の論理ブロック3021も、同様にフラッシュストレージ論理空間(論理アドレス空間)1401中のボリュームブロック3022に割り当てられている。
ホストは、各LU内のアドレスに対してリードやライトなどのコマンドを発行し、発行されたコマンドのアドレスは、最終的にフラッシュストレージデバイス141上の論理空間に割り当てられる。この割り当ては、一般的にRAIDコントローラ111が行う。図30では、割り当ての一例を示しているが、この割り当て方法は、RAIDレベルと呼ばれる冗長性を持たせるための上長データの構成方法やデータ格納の配置や、ストライピングと呼ばれるデータ分散の単位とその分散範囲や、仮想割り当て機能と呼ばれるデータ配置の仮想化機能などによって、様々なパターンが存在しており、ユーザがこれを意識して動作を決定することは困難である。すなわち、ユーザは、フラッシュストレージデバイス141の論理アドレスを意識することが困難であり、これを指定した属性の設定もまた困難である。
一方、ユーザが意識して属性等を設定可能な単位としてはLUがある。例えば、特定のLUをデータベースに、別のLUをファイルシステムに使用するなど、LUを用途によって使い分けることは一般的であり、ユーザがこれらに応じて属性を設定することも可能である。なお、LUは、Thin Provioningに従う仮想的なLU(TP−LU)の領域に割り当てられるセグメントを含んだプールLUでも良い。プールLUは、容量プールを構成するLUであって、複数のセグメントに分割して管理される。TP−LUの領域に対してセグメントが割り当てられる。この場合、セグメントが、1以上の論理ブロック3021で構成されていて良い。
図24は、容量割り当て方針を設定するための管理画面の一例を示す。
ここで言う「管理画面」とは、管理システムが有するディスプレイに表示される画面である。管理画面2401は、容量割り当てポリシー設定状況2411と、容量割り当てポリシー設定部位2412とを表示する。容量割り当てポリシー設定状況2411にはポリシー設定状況テーブル2421があり、各LUの現状のポリシーが示されている。
図24においてポリシーとして設定されている項目を例として以下に示す。
LU#0について設定されている「自動」は、フラッシュストレージデバイス141が自動的に容量の設定を行うことを意味する。
LU#1について設定されている「通常」は、フラッシュストレージデバイス141内で通常使用される量の容量割り当てを行うことを意味する。すなわち、LU#1が使用する論理チャンクには、フラッシュストレージデバイス141内で論理チャンクに平均的に割り当て可能な物理チャンク容量が割り当てられる。
LU#2について設定されている「性能・寿命優先」は、性能・寿命面で有利になるように、LU#2が使用する論理チャンクには物理チャンク容量を多めに割り当てられることを意味する。
LU#3について設定されている「容量優先」は、LU#3が使用する論理チャンクに物理チャンク容量を少なめに割り当てることを意味する。
LU#4について設定されている「ライト量大」は、割り当て量の指定という形式になっておらず、ユーザが当該LUに対するIO特性という形式で指定している。ライト量が大きいことから、当該LUを効率よく動作させるため、性能・寿命優先と同様の設定を行う。すなわち、LU#4が使用する論理チャンクには、物理チャンク容量を多めに割り当てる。
LU#5について設定されている「更新容量20%」は、具体的な容量比率の指定という形式になる。この場合、LU#5が使用する論理チャンクには、その容量の120%の物理チャンク容量が割り当てられる。
容量割り当てポリシー設定部位2412は、設定部位2431と、実行ボタン2432と、キャンセルボタン2433とを含む。設定部位2431にて、対象とするLUと、設定するポリシーとが選択され、実行ボタン2432が押されることによって、LU及びポリシーの組み合わせが、反映される。
図24では、LU単位でポリシーが設定されているが、ユーザが指定可能な他種の単位で設定されても良い。例えば、最も詳細な設定を行う場合には、容量割り当てテーブルT2301における記憶領域と同一となり、これは、本実施例においては論理チャンク単位となる。しかし、前述の通り、ユーザがフラッシュストレージを意識した設定を行う事を避けるために、ユーザがIO特性及び目標性能を認識可能な単位としては、LUが望ましい。LUの他には、上位装置としてファイルサーバを用いた場合のファイルシステム単位やファイル単位が、これらの設定単位として有用で良い。
本管理画面の設定は、ストレージシステム101に対する設定である。LU単位の設定は、フラッシュストレージ論理空間に変換され、フラッシュストレージデバイス141内の容量割り当て情報1706に登録される。
図27は、容量割り当て情報1706の変更処理フローの一例を示す。
本フローは、図24で示した容量割り当て方針の設定や、構成情報の変更や、定期的な更新などによって開始される。図24で示したように、本実施例における容量割り当て方針はLU単位で設定することを想定している。このため、図24で設定及び変更された方針は、フラッシュストレージデバイス141の論理アドレス単位の設定に変更されて、フラッシュストレージデバイス141に届くものとする。例えば、図24の容量割り当てポリシー設定2412にて、LU1を容量優先に設定した場合、RAIDコントローラ111が、LU1に該当するフラッシュストレージデバイス141及びその論理アドレスを指定して、同様の設定変更指示を行う。また、本フローは、構成情報の変更によっても実行される。これは、例えばストレージシステム101内のあるLUが削除された場合や、LUが追加された場合、RAID構成が変更され、データやパリティの位置が変更された場合などが該当する。例えば、あるLUが削除された場合、このLUに割り当てられていたフラッシュストレージデバイス141の論理アドレスは解放可能であり、この動作によって、物理割り当て容量は変化するため、変更処理が必要となる。他にも、容量割り当て情報1706にはライト頻度などの統計情報が含まれており、これを定期的に更新するため、本フローは定期的にも実行される。
上記のような契機で変更処理が開始され(S3101)、まず、フラッシュコントローラは、設定変更未反映の領域があるかのチェックを行う(S3102)。領域とは、容量割り当て情報1706中の領域である。
未反映の領域がある場合は、フラッシュコントローラは、該当する領域に対して属性を変更する(S3103)。ここで変更する属性は、ユーザ指示によるものである。例えば、図24において、通常指定だったLU1を容量優先に変更する場合、LU1が格納されている領域に対して、通常指定から容量優先指定に変更を行っていく。
S3102において、未反映の領域がなくなった場合は、フラッシュコントローラは、領域毎の統計情報を属性に反映する(S3111)。これは、各領域に対するライト頻度等の属性情報であり、ユーザ指示とは無関係に決定される項目である。
S3103及びS3111によって、全領域の属性が定まったため、これらを考慮して、フラッシュコントローラは、目標とする割り当て容量を決定する(S3112)。このとき、容量指定の領域以外は、割り当て目標の全体平均を考慮した数値とすることが望ましい。例えば、物理チャンク全体の容量が論理チャンク全体の容量の2倍だった場合に、全ての領域が性能優先で設定されており、各領域の物理チャンク容量目標を論理チャンク容量の3倍で設定した場合などは、状況によっては全領域について現状の割り当て容量が目標を下回ってしまい、常に物理チャンクにブロックを確保しようとする状況が発生し、ブロックの確保解放が多発する、効率の悪い処理となってしまう可能性があるためである。
容量割り当て目標を設定すると、容量割り当て情報1706は全て最新の情報に更新されるため、フラッシュストレージは、処理を終了する(S3121)。以降は、新しくなった容量割り当て情報1706に従って、フラッシュストレージは、ブロック確保処理(S2812)などを行う。
以上のように、記憶領域の単位(例えばLU単位)で、記憶領域の属性が設定される。記憶領域の属性は、例えば、記憶領域の上位装置による使用方法が示す属性(例えば、RAIDレベル)や、記憶領域について運用中に取得される統計情報が示す属性(例えば、アクセス頻度、最終アクセス時刻)や、記憶領域について管理者からの指示に従う属性(例えば、目標値(期待値)のy%(例えばyは0より大きい値であって100以下)を割り当てる)がある。記憶領域のこのような属性に従って、フラッシュコントローラ(或いは、RAIDコントローラ又は管理システム)が、その記憶領域に属する物理チャンクの容量の目標値(期待値)が決定される。例えば、その目標値の算出方法としては、所定の基準値に、記憶領域の属性に従う係数を乗じて得る方法で良い。記憶領域の属性は、記憶領域の単位について入力されたポリシーに従って決定されて良い。
以上、一実施例を説明したが、本発明は、この実施例に限定されない。例えば、フラッシュストレージ131が有する情報(論理物理変換情報312)を、RAIDコントローラ111が持っていても良い。また、フラッシュコントローラが行なう処理の少なくとも一部を、RAIDコントローラ111が行っても良い。
101:ストレージシステム
Claims (15)
- 不揮発半導体記憶媒体と、
前記不揮発半導体記憶媒体の論理アドレスと物理記憶領域との対応関係を表す情報である論理物理変換情報を記憶する記憶部と、
前記記憶部及び前記不揮発半導体記憶媒体に接続されたコントローラである媒体コントローラと
を有し、
前記論理物理変換情報が、
(A)前記不揮発半導体記憶媒体の論理アドレス空間を構成する複数の論理ページと複数の論理チャンクとの対応関係を表す情報と、
(B)前記複数の論理チャンクと複数の物理記憶領域との対応関係を表す情報と
を含み、
各論理ページは、論理アドレス範囲に従う論理記憶領域であり、
各論理チャンクが、前記複数の論理ページのうちの2以上の論理ページに割り当てられ、
各論理チャンクに、前記複数の物理記憶領域のうちの2以上の物理記憶領域が割り当てられ、
前記媒体コントローラは、前記論理物理変換情報を基に、データのライト先の論理アドレスが属する論理ページが割り当てられている論理チャンクに割り当てられている物理記憶領域を特定し、その特定された物理記憶領域に、前記データを書き込むよう構成されており、
前記媒体コントローラは、各論理チャンクについて、割り当てる物理記憶領域の数を調整する、
ストレージシステム。 - 請求項1記載のストレージシステムであって、
前記(B)の情報は、下記(b1)の情報、
(b1)複数の論理チャンクと複数の物理チャンクとの対応関係を表す情報、
を含み、
前記物理チャンクに、前記複数の物理記憶領域のうちの2以上の物理記憶領域が割り当てられている、
ストレージシステム。 - 請求項2記載のストレージシステムであって、
前記(B)の情報は、更に、下記(b2)の情報、
(b2)複数の物理チャンクと複数のプールとの対応関係を表す情報、
を含み、
前記プールに、前記複数の物理記憶領域のうちの2以上の物理記憶領域が割り当てられており、
(X)前記媒体コントローラが、前記物理チャンクが割り当てられているプールからその物理チャンクに物理記憶領域を割り当て、
(Y)前記媒体コントローラが、前記物理チャンクに割り当てられている物理記憶領域をその物理チャンクに戻す、
ストレージシステム。 - 請求項3記載のストレージシステムであって、
隣り合う論理ページに異なる論理チャンクのページが割り当てられ、
異なる論理チャンクのページに異なる物理チャンクの領域が割り当てられ、
異なる物理チャンクの領域に、異なる物理リソースの物理記憶領域が割り当てられた、プールの異なる領域、が割り当てられる、
ストレージシステム。 - 請求項4記載のストレージシステムであって、
前記不揮発記憶媒体は、ブロック単位でデータが消去されページ単位でアクセスされるタイプのフラッシュメモリであり、
前記フラッシュメモリは、異なる複数のフラッシュメモリバスに接続された複数のメモリチップを含み、
各メモリチップは、複数の物理ブロックを有し、
各物理ブロックは、複数の物理ページを有し、
前記物理記憶領域は、前記物理ページであり、
前記物理チャンクの領域は、前記物理チャンクを構成する複数のブロックのうちのいずれかのブロックであり、
前記プールの領域は、前記プールを構成する複数のブロックのうちのいずれかのブロックであり、
前記複数の物理チャンクの複数のブロックに、前記複数のプールの複数のブロックが割り当てられており、
前記複数のプールの複数のブロックに、前記複数のメモリチップにおける複数の物理ブロックが割り当てられており、
前記異なる物理リソースは、異なるフラッシュメモリバスである、
ストレージシステム。 - 請求項5記載のストレージシステムであって、
前記媒体コントローラは、ライト先の論理ページ群に対応した物理ブロックにライト対象のデータのサイズ以上の空きの物理ページが無ければ、前記ライト先の各論理ページが割り当てられた各論理チャンクについて、その論理チャンクに対応した物理チャンクに割り当てられているブロックの数が、その物理チャンクについての期待値以上か否かを判断し、その判断の結果が否定的の場合に、前記(X)として、前記物理チャンクが割り当てられているプールからその物理チャンクにブロックを追加する、
ストレージシステム。 - 請求項6記載のストレージシステムであって、
前記物理チャンクに割り当てられるブロックの目標値は、その物理チャンクの属性によって異なり得る、
ストレージシステム。 - 請求項7記載のストレージシステムであって、
前記物理チャンクの属性は、その物理チャンクが属する記憶領域単位で指定されたポリシーに従って決定される、
ストレージシステム。 - 請求項8記載のストレージシステムであって、
複数の不揮発記憶デバイスと、
前記複数の不揮発記憶デバイスとホスト装置とに接続された上位のコントローラと
を有し、
各不揮発記憶デバイスが、前記不揮発記憶媒体と前記記憶部と前記媒体コントローラとを有し、
前記複数の不揮発記憶デバイスに基づく論理的な記憶領域である論理ユニットが前記ホスト装置に提供され、
前記論理ユニットの論理アドレスが、その論理ユニットに基づく複数の不揮発記憶デバイスのそれぞれの論理アドレスに対応している、
ストレージシステム。 - 請求項1記載のストレージシステムであって、
隣り合う論理ページに異なる論理チャンクのページが割り当てられ、
異なる論理チャンクのページに、異なる物理リソースの物理記憶領域が割り当てられる、
ストレージシステム。 - 請求項10記載のストレージシステムであって、
前記異なる物理リソースは、前記媒体コントローラから物理記憶領域に書き込まれるデータが経由する異なるバスであり、
前記媒体コントローラは、連続した複数の論理ページがライト先の場合、複数の異なるバスを介して複数の異なる物理記憶領域にデータを並行して書き込む、
ストレージシステム。 - 請求項10記載のストレージシステムであって、
2以上の異なる回路基板に複数の物理記憶領域が配置されており、
前記異なる物理リソースは、異なる前記回路基板である、
ストレージシステム。 - 請求項1記載のストレージシステムであって、
前記不揮発記憶媒体は、ブロック単位でデータが消去されページ単位でアクセスされるタイプのフラッシュメモリであり、
前記フラッシュメモリは、異なる複数のフラッシュメモリバスに接続された複数のメモリチップを含み、
各メモリチップは、複数の物理ブロックを有し、
各物理ブロックは、複数の物理ページを有し、
前記物理記憶領域は、前記物理ページであり、
前記(B)の情報は、下記(b1)の情報、
(b1)複数の論理チャンクと複数の物理チャンクとの対応関係を表す情報、
を含む、
ストレージシステム。 - 請求項13記載のストレージシステムであって、
前記(B)の情報は、更に、下記(b2)の情報、
(b2)複数の物理チャンクと複数のプールとの対応関係を表す情報、
を含み、
前記プールを構成する複数のブロックに、前記複数の物理チャンクの複数のブロックが割り当てられており、
前記媒体コントローラが、ライト先の論理ページ群に対応した物理ブロックにライト対象のデータのサイズ以上の空きの物理ページが無ければ、前記ライト先の各論理ページが割り当てられた各論理チャンクについて、その論理チャンクに対応した物理チャンクに割り当てられているブロックの数が、その物理チャンクについての期待値以上か否かを判断し、その判断の結果が否定的の場合に、前記物理チャンクが割り当てられているプールからその物理チャンクにブロックを追加する、
ストレージシステム。 - 不揮発半導体記憶媒体の論理アドレスと物理記憶領域との対応関係を表す情報である論理物理変換情報を基に記憶制御を行うストレージシステムの記憶制御方法であって、
前記論理物理変換情報として、
(A)前記不揮発半導体記憶媒体の論理アドレス空間を構成する複数の論理ページと複数の論理チャンクとの対応関係を表す情報と、
(B)前記複数の論理チャンクと複数の物理記憶領域との対応関係を表す情報と
を含み、
各論理チャンクについて、割り当てる物理記憶領域の数を調整する、
記憶制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/072654 WO2013046464A1 (ja) | 2011-09-30 | 2011-09-30 | 不揮発半導体記憶媒体を有するストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013046464A1 true JPWO2013046464A1 (ja) | 2015-03-26 |
JP5750513B2 JP5750513B2 (ja) | 2015-07-22 |
Family
ID=47993758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013535801A Expired - Fee Related JP5750513B2 (ja) | 2011-09-30 | 2011-09-30 | 不揮発半導体記憶媒体を有するストレージシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8539142B2 (ja) |
JP (1) | JP5750513B2 (ja) |
WO (1) | WO2013046464A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9817768B2 (en) | 2013-10-10 | 2017-11-14 | Hitachi, Ltd. | Storage system and data storing method |
US9430375B2 (en) * | 2013-12-30 | 2016-08-30 | International Business Machines Corporation | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency |
US9933980B2 (en) | 2014-02-24 | 2018-04-03 | Toshiba Memory Corporation | NAND raid controller for connection between an SSD controller and multiple non-volatile storage units |
US9253257B2 (en) | 2014-03-11 | 2016-02-02 | Hitachi, Ltd. | Storage subsystem |
US9678832B2 (en) * | 2014-09-18 | 2017-06-13 | Sandisk Technologies Llc | Storage module and method for on-chip copy gather |
US9483413B2 (en) * | 2014-10-24 | 2016-11-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
WO2016113831A1 (ja) * | 2015-01-13 | 2016-07-21 | 株式会社日立製作所 | ストレージシステム、及び、記憶制御方法 |
US20180067676A1 (en) * | 2015-06-04 | 2018-03-08 | Hitachi, Ltd. | Storage device |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US20180321874A1 (en) * | 2017-05-03 | 2018-11-08 | Alibaba Group Holding Limited | Flash management optimization for data update with small block sizes for write amplification mitigation and fault tolerance enhancement |
JP2019194780A (ja) * | 2018-05-01 | 2019-11-07 | 富士通株式会社 | 情報処理装置、データ管理プログラム及びデータ管理方法 |
TWI733360B (zh) * | 2020-03-09 | 2021-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005242897A (ja) * | 2004-02-27 | 2005-09-08 | Oki Electric Ind Co Ltd | フラッシュディスク装置 |
JP2011065624A (ja) * | 2009-09-16 | 2011-03-31 | Hitachi Ltd | 動的ページ再配置ストレージシステム管理 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5087347B2 (ja) | 2007-09-06 | 2012-12-05 | 株式会社日立製作所 | 半導体記憶装置及び半導体記憶装置の制御方法 |
JP5216463B2 (ja) | 2008-07-30 | 2013-06-19 | 株式会社日立製作所 | ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージ |
-
2011
- 2011-09-30 WO PCT/JP2011/072654 patent/WO2013046464A1/ja active Application Filing
- 2011-09-30 JP JP2013535801A patent/JP5750513B2/ja not_active Expired - Fee Related
- 2011-09-30 US US13/322,354 patent/US8539142B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005242897A (ja) * | 2004-02-27 | 2005-09-08 | Oki Electric Ind Co Ltd | フラッシュディスク装置 |
JP2011065624A (ja) * | 2009-09-16 | 2011-03-31 | Hitachi Ltd | 動的ページ再配置ストレージシステム管理 |
Also Published As
Publication number | Publication date |
---|---|
WO2013046464A1 (ja) | 2013-04-04 |
US20130086304A1 (en) | 2013-04-04 |
JP5750513B2 (ja) | 2015-07-22 |
US8539142B2 (en) | 2013-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5750513B2 (ja) | 不揮発半導体記憶媒体を有するストレージシステム | |
JP5502232B2 (ja) | ストレージシステム、及びその制御方法 | |
JP4874368B2 (ja) | フラッシュメモリを用いたストレージシステムの管理方法及び計算機 | |
US8984248B2 (en) | Data migration system and data migration method | |
JP5075761B2 (ja) | フラッシュメモリを用いたストレージ装置 | |
US8639899B2 (en) | Storage apparatus and control method for redundant data management within tiers | |
US9229652B2 (en) | Computer system and storage control method of the same | |
JP5583227B1 (ja) | 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法 | |
US8296543B2 (en) | Computer system management apparatus and management method for the computer system | |
JP2009043030A (ja) | ストレージシステム | |
WO2011096017A1 (ja) | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 | |
JP6193373B2 (ja) | 複合型ストレージシステム及び記憶制御方法 | |
JP2009104421A (ja) | ストレージアクセス装置 | |
JP5214502B2 (ja) | ストレージ装置を管理する計算機及び方法 | |
JP2014514622A (ja) | フラッシュメモリを含むストレージシステム、及び記憶制御方法 | |
US10049042B2 (en) | Storage device, semiconductor memory device, and method for controlling same | |
JP2008299559A (ja) | ストレージシステム及びストレージシステムにおけるデータ移行方法 | |
JP5597266B2 (ja) | ストレージシステム | |
JP5355603B2 (ja) | ディスクアレイ装置及び論理ボリュームアクセス方法 | |
WO2016103356A1 (ja) | 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法 | |
JP5222388B2 (ja) | フラッシュメモリを用いたストレージシステムの管理システム及び管理方法 | |
WO2017175350A1 (ja) | 計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150518 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5750513 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |