JP6142860B2 - ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム - Google Patents

ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム Download PDF

Info

Publication number
JP6142860B2
JP6142860B2 JP2014225394A JP2014225394A JP6142860B2 JP 6142860 B2 JP6142860 B2 JP 6142860B2 JP 2014225394 A JP2014225394 A JP 2014225394A JP 2014225394 A JP2014225394 A JP 2014225394A JP 6142860 B2 JP6142860 B2 JP 6142860B2
Authority
JP
Japan
Prior art keywords
data
received
unit
solid state
command
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.)
Active
Application number
JP2014225394A
Other languages
English (en)
Other versions
JP2016091318A (ja
Inventor
俊 栗田
俊 栗田
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 JP2014225394A priority Critical patent/JP6142860B2/ja
Priority to EP15190525.4A priority patent/EP3018573A1/en
Priority to US14/924,841 priority patent/US20160124661A1/en
Priority to CN201510746687.8A priority patent/CN105573666B/zh
Publication of JP2016091318A publication Critical patent/JP2016091318A/ja
Application granted granted Critical
Publication of JP6142860B2 publication Critical patent/JP6142860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Debugging And Monitoring (AREA)

Description

本発明は、ディスク制御の技術に関し、特にソリッドステートドライブの寿命延長の技術に関する。
HDD(Hard Disk Drive)やSSD(Solid State Drive、ソリッドステートドライブ)のような記憶装置を複数備え、アレイを構成しているディスクアレイ装置がある。このようなディスクアレイ装置において、シンプロビジョニング(Thin Provisioning)という技術がある。シンプロビジョニングにおいては、ディスクアレイ装置は、アレイの物理領域をエクステント(物理エクステント)という一定サイズに区切って管理し、論理ボリュームへのライトアクセスの際に、その物理エクステントを仮想的に割り当てる。こうすることで、シンプロビジョニングにおいては、ディスクの物理容量が削減される。
シンプロビジョニングでは、物理エクステントの割り当ては、ホスト装置からの書き込み(データライト)を契機に行われる。図1は、物理エクステントの割り当てのイメージを示す図である。また、不要となった物理エクステントの解放は、ホスト装置からの解放コマンド(例えば、SCSI(Small Computer System Interface)コマンドのUNMAPコマンド(アンマップコマンド))により行われる。
UNMAPコマンドが物理エクステント単位に一致する範囲を指定して発行された場合、ディスクアレイ装置は、その物理エクステントの解放を行う。その後、解放された物理エクステントは、新たなホスト装置からの書き込みを契機に、その書き込みのデータの領域として割り当てられる。ディスクアレイ装置は、物理エクステント解放時には、物理エクステントのデータをそのままにしておく。そして、ディスクアレイ装置は、物理エクステントがデータの領域として新たに割り当てられたときに、その物理エクステントのデータを更新する。
一方、UNMAPコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、物理エクステント内の、そのUNMAPコマンドの範囲外の、データは保持されなければならない。そのため、ディスクアレイ装置は、その物理エクステントの全体を解放することができない。また、この場合、ホスト装置は、そのUNMAPコマンドを発行した範囲をリードしたとき、「0」のデータが返却されることを期待する。
特許文献1は、このようなエクステント単位の範囲未満の範囲を指定して発行された領域解放コマンド(UNMAPコマンド)に対応するための技術を開示する。特許文献1のストレージ装置は、UNMAPコマンドが物理エクステント単位の範囲未満の範囲で発行された場合、UNMAPコマンドで指定した範囲に「0」を書き込む。以後、「0」を書き込むことをゼロデータライトと表記する。そして、そのストレージ装置は、その後のUNMAPコマンドの発行などで物理エクステント内のデータがすべて「0」になるのを周期的にチェックする機能により物理エクステントの解放を行う。図2は、そのストレージ装置における、UNMAPコマンドの実行のイメージを示す図である。
特許文献2は、特許文献1と類似の技術を開示する。特許文献2のメモリシステムは、管理単位(例えば、物理エクステント)より小さいデータ量を単位として論理アドレスの削除領域を指定した削除通知(UNMAPコマンド)をホストから受け取る。この場合、そのメモリシステムは、その削除領域に含まれる管理単位に満たない領域に論物変換テーブルにおいて対応する、物理アドレスの不揮発性メモリ上の領域に所定のデータパターンを書き込む。更に、そのメモリシステムは、管理単位がすべて所定のデータパターンである解放可能な管理単位の領域に論物変換テーブルにて対応する物理アドレスに、無効値を書き込む。こうすることにより、そのメモリシステムは、その解放可能な管理単位の、論理アドレスの領域を解放する。
しかしながら、特許文献1及び特許文献2に開示される技術においては、ディスクアレイ装置がSSDで構成される場合に、以下に示す問題があった。
SSDは、NAND(Negative AND)ブロックに対するデータ書き込み回数に制限がある。ここで、NANDブロックは、データ更新における、消去単位のブロックである。すなわち、SSDに対して書き込み回数が増加するとSSDの寿命が短くなってしまうという問題がある。上述したUNMAPコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、UNMAPコマンドで指定された範囲は、SSDに対して所定のデータ(例えば、「0」)が書き込まれる。そして、その後のUNMAPコマンドの発行などにより物理エクステント内のデータがすべて所定のデータになった場合に物理エクステントを解放する。従って、UNMAPコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、所定のデータを書き込む分だけ、書き込み回数が増加してしまう。
このような問題点を解決する技術が、特許文献3に記載されている。特許文献3は、物理エクステント単位の範囲未満の範囲のUNMAPコマンドが発行された場合に、UNMAP発行範囲をリストに記憶しておき、ゼロデータライトを削減する技術を示す。
しかしながら、特許文献3に開示される技術においては、以下に示す問題点があった。第1に、そのリストは有限であり、そのリストからあふれたUNMAPコマンドに対しては、ゼロデータライトが実施される。そのため、書き込み回数が増加してしまう。また、リストとして管理情報を持つため、LD(Logical Drive)及びSSDごとに管理情報が必要であり、ディスクアレイ装置のメモリ使用量が増大する。そのため、ディスクアレイ装置で使用できるキャッシュメモリ容量の縮小や、大きなメモリの搭載によるコストアップなど、という弊害が発生してしまう。
特許文献3の問題点を解決する技術が、特許文献4に記載されている。特許文献4に記載のストレージシステムは、一以上のRAID(Redundant Arrays of Inexpensive Disks)グループを構成する複数のフラッシュパッケージと、複数のフラッシュパッケージに接続されたコントローラとを備える。各フラッシュパッケージは、複数の物理ブロックで構成された複数のフラッシュチップを有する。コントローラは、不要領域にかかわる対象領域を特定し、その対象領域に属する論理ブロックに割り当てられているアドレス範囲を指定した解放指示を、そのアドレス範囲を管理するドライブに送信する。そして、ドライブによってセクタ解放処理が行われ、ドライブで管理される論理セクタが解放対象として管理され、論理ブロック内のすべての論理セクタが解放対象となっていれば、その論理ブロックから物理ブロックが解放される。
特許文献5は、高速な記憶媒体(例えば、SSD)の空き容量を増やすための技術を開示する。特許文献5に記載の情報記憶装置において、情報削除制御部がホストからの削除要求を検出すると、情報複写部は、高速情報記憶媒体の該当情報を低速情報記憶媒体(例えば、HDD)に複写する。また、情報複写部は、ホストからの復元要求時において、低速情報記憶媒体から高速情報記憶媒体に該当情報を複写する。
特開2008−217689号公報 特開2012−203864号公報 特開2013−073409号公報 特表2012−523594号公報 特開2011−090531号公報
しかしながら、上述した特許文献4に記載された技術においては、以下の問題点がある。その問題点は、SSDを搭載するディスクアレイ装置が、そのSSDのあるNANDブロックについて、データが格納されていないのかそれともデータが不正なのかを、正しく認識できない場合があるという問題点である。
以下に、その問題点を具体的に説明する。
SSDは、LBA(Logical Block Addressing)ごとに、データがどのNANDブロックに格納されているかと、どのNANDブロックにも格納されていないかと、をMAP状態管理テーブルで管理する。データがいずれかのNANDブロックに格納されている状態のLBAを「MAPPEDであるLBA」と呼ぶ。データを格納されていない状態のLBAを「UNMAPPEDであるLBA」と呼ぶ。
SSDは、UNMAPPEDであるLBAに対してリードが発行された場合には、「0」のデータを返却し、ライトが発行された場合には、NANDブロックの割り当てを行い、MAP状態管理テーブルを更新する。図3は、SSDにおける、上述の動作のMAP状態管理テーブルの更新のイメージを示す図である。
また、SSDは小さいサイズのUNMAPを標準的にサポートしている。SSDは、UNMAPコマンドを発行されると、MAP状態管理テーブル上の該当するLBAをUNMAPPEDに変更する。その後、SSDは、そのLBAに割り当てられていたNANDブロックを、別のデータの領域として使用する。図4は、SSDにおける、上述の動作のMAP状態管理テーブルの更新のイメージを示す図である。
つまり、SSDは、UNMAPPEDを発行された場合、NANDブロックに対するゼロデータライトを実施しない。そのため、上述した特許文献4に開示されたディスクアレイ装置は、ホスト装置からのUNMAPコマンドがエクステント単位の範囲未満の範囲を指定して発行された場合、ゼロデータライトを実施する代わりに、SSDに対してUNMAPコマンドを発行する。こうすることで、SSDに対しての書き込み回数を削減することができる。
しかし、ディスクアレイ装置は、HDDやSSDなどの記憶装置にデータを格納する際、データの信頼性向上のため、データにトレーラと呼ばれるチェックコードを付与してライトを実行するのが一般的である。図5は、ディスクアレイ装置におけるトレーラ付与のイメージを示す図である。
この場合、ディスクアレイ装置がUNMAPコマンドを発行したSSDの領域に対してリードを行うと、SSDからは値が「0」のデータ(以後、ゼロデータと表記する)と値が「0」であるトレーラ(以後、ゼロトレーラと表記する)が返却される。このため、ディスクアレイ装置はトレーラエラーと判断してしまう。図6は、SSDからゼロデータとゼロトレーラが返却される場合のイメージを示す図である。
この問題を解決するために、SSDからリードした領域がゼロデータかつゼロトレーラだった場合、ディスクアレイ装置がその領域をUNMAPPED領域だと判断する、制御を追加することが考えられる。しかし、SSDからリードした領域がMAPPEDの領域であるにも拘わらず、SSDの故障が原因で、SSDからゼロデータかつゼロトレーラのデータが返却された場合、ディスクアレイ装置は、その領域をUNMAPPED領域であると判断してしまう。すなわち、ディスクアレイ装置が、SSDの故障を検出できない場合があり得る。
換言すると、ディスクアレイ装置がSSDに対してリードを発行したときに返却された、SSDからのゼロデータとゼロトレーラについて、UNMAPPED領域を示すのか、不正なデータであることを示すのかを正しく判断できない場合があるという課題がある。
本発明の目的は、上述した問題点を解決するディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラムを提供することにある。
本発明の一様態におけるディスクアレイ装置は、ロジカルブロックアドレッシングに消去単位物理領域が割り当てられているか否かを示す状態情報を通知するソリッドステートドライブと、前記ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、通知された前記状態情報に基づいて、前記受信したデータをホスト装置へ送信するコントロール手段と、を含む。
本発明の一様態におけるソリッドステートドライブは、コントロール手段から受信したコマンドに応答して、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報を通知する手段を含み、前記コントロール手段は、前記ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段である。
本発明の一様態におけるコントロール装置は、ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段を含む。
本発明の一様態におけるディスク制御方法は、コンピュータが、ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する。
本発明の一様態におけるプログラムは、ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する処理をコンピュータに実行させる。
本発明は、SSDに対してUNMAPコマンドを発行することでSSDに対しての書き込み回数を削減する場合に、SSDにおけるLBAのUNMAPPED状態とデータの異常とを区別することが可能になるという効果がある。
図1は、関連技術における物理エクステントの割り当てのイメージを示す図である。 図2は、関連技術のストレージ装置における、UNMAPコマンドの実行のイメージを示す図である。 図3は、関連技術のSSDにおける、MAP状態管理テーブルの更新のイメージを示す図である。 図4は、関連技術のSSDにおける、MAP状態管理テーブルの更新のイメージを示す図である。 図5は、関連技術のディスクアレイ装置における、トレーラ付与のイメージを示す図である。 図6は、関連技術におけるSSDからゼロデータとゼロトレーラが返却される場合のイメージを示す図である。 図7は、本発明の第1の実施形態に係るディスクアレイ装置の構成を示すブロック図である。 図8は、第1の実施形態に係るSSDの構成を示すブロック図である。 図9は、第1の実施形態におけるMAP状態管理テーブルの構造の一例を示す図である。 図10は、第1の実施形態における割り当て管理テーブルの構造の一例を示す図である。 図11は、第1の実施形態に係るディスクアレイ装置を実現するコンピュータのハードウエア構成を示すブロック図である。 図12は、第1の実施形態における割り当て管理テーブルの具体的な例を示す図である。 図13は、第1の実施形態におけるMAP状態管理テーブルの具体的な例を示す図である。 図14は、第1の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。 図15は、第1の実施形態における割り当て管理テーブルの具体的な例を示す図である。 図16は、第1の実施形態におけるMAP状態管理テーブルの具体的な例を示す図である。 図17は、第1の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。 図18は、第1の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。 図19は、第1の実施形態における割り当て管理テーブルの具体的な例を示す図である。 図20は、第1の実施形態におけるMAP状態管理テーブルの具体的な例を示す図である。 図21は、本発明の第2の実施形態に係るディスクアレイ装置の構成を示すブロック図である。
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
<<<第1の実施形態>>>
図7は、本発明の第1の実施形態に係るディスクアレイ装置1とホスト装置4とを備える情報処理システムの構成を示すブロック図である。
図7に示すように、本発明の第1の実施形態のディスクアレイ装置1は、コントローラ2とディスク部3とを含む。
===ディスク部3===
ディスク部3は、複数台のHDD10及びSSD20からなる。例えば、ディスク部3は、図7に示すように、任意の数のRAID構成80と任意の数のRAID構成90とを含む。1つのRAID構成80は、任意の台数のHDD10で構成される。また、1つのRAID構成90は、任意の台数のSSD20で構成される。
===SSD20===
図8は、SSD20の構成を示すブロック図である。図8に示すように、SSD20は、データを格納する複数のNANDブロック(消去単位物理領域とも呼ばれる)200、MAP状態管理テーブル210及びUNMAP状態返却部220を含む。尚、本実施形態の各図中の「#」は、その「#」の右側の数字が番号(この図8では、NANDブロック200の番号)であることを示す。
===MAP状態管理テーブル210===
MAP状態管理テーブル210は、SSD20のLBA(ロジカルブロックアドレッシングとも呼ばれる)のそれぞれに対応するデータが、格納されているNANDブロック200、もしくは、データが格納されていないこと、を示す情報を保持する。
図9は、MAP状態管理テーブル210の構造の一例を示す図である。図9に示すように、MAP状態管理テーブル210は、LBA211とMAP212とからなるレコードを含む。LBA211は、LBAの値である。MAP212は、LBA211に割り当てられたNANDブロック200の番号、もしくは、データが格納されていない(UNMAPPED)、すなわちそのLBA211にNANDブロック200が割り当てられていないことを示す情報(「−」)である。
コントローラ2がSSD20のあるLBA211に対してライトコマンドを実行した場合、SSD20は、データを割り当てられていないNANDブロック200にそのライトコマンドのライトデータを格納する。すなわち、SSD20は、そのLBA211にそのNANDブロック200を割り当てる。同時に、SSD20は、そのライト前にそのLBA211に割り当てていた、元々データが格納されていたNANDブロック200を解放する。このとき、SSD20は、MAP状態管理テーブル210において、ライトコマンドを指定されたLBA211に対応する、ライトデータを格納したNANDブロック200を示すMAP212を記憶させる。尚、MAP状態管理テーブル210において、データが格納されていないLBA211は、未割り当てであることを示す情報がMAP212に記憶される。
===UNMAP状態返却部220===
UNMAP状態返却部220は、コントローラ2から状態取得コマンドを受信した場合、その状態取得コマンドで指定された領域に対応する状態情報をMAP状態管理テーブル210から取得しコントローラ2へ送信する。具体的には、UNMAP状態返却部220は、状態取得コマンドで指定されたLBA211に対応するMAP212がNANDブロック番号である場合は、MAPPEDを送信する。また、UNMAP状態返却部220は、状態取得コマンドで指定されたLBA211に対応するMAP212が「−」である場合は、UNMAPPEDを送信する。
尚、UNMAP状態返却部220は、コントローラ2からリードコマンドを受信した場合、そのリードコマンドで指定される領域に対応する状態情報をリードデータに付加して送信してもよい。こうした場合、UNMAP状態取得部60は、そのリードデータに含まれる状態情報を取得してよい。
===コントローラ2===
コントローラ2は、ホスト制御部5と、ディスク制御部6と、UNMAPコマンド制御部30と、割り当て管理テーブル40とを含む。
===ディスク制御部6===
ディスク制御部6は、ディスク部3と接続され、HDD10及びSSD20へのデータの読み書きを行う。ディスク制御部6は、UNMAP状態取得部60とUNMAPコマンド発行部70とを含む。
===UNMAP状態取得部60===
UNMAP状態取得部60は、ディスク部3のSSD20へ、状態取得コマンドを送信し、UNMAP状態を取得する。
===UNMAPコマンド発行部70===
UNMAPコマンド発行部70は、ホスト装置4からディスクアレイ装置1が受信した第1のUNMAPコマンドに対応する、第2のUNMAPコマンドをディスク部3のSSD20へ送信する。第2のUNMAPコマンドについては、後述する。
===割り当て管理テーブル40===
図10は、割り当て管理テーブル40の構造の一例を示す図である。
図10示すように、割り当て管理テーブル40は、LDごとのLDテーブル41を含む。LDテーブル41のそれぞれは、LBAを特定するLBA42ごとに、そのLBAに割り当てられているエクステントを示す割り当てエクステント43を含む。
===ホスト制御部5===
ホスト制御部5は、1台もしくは複数台のホスト装置4と接続され、ホスト装置4とのデータの送受信を行う。
ホスト制御部5は、ライトコマンド、リードコマンド及びUNMAPコマンドを、ホスト装置4から受信する。
ホスト装置4があるLDに対してライトが実行された場合、ホスト制御部5は、割り当て管理テーブル40を参照し、そのライトコマンドで指定されたLBAがエクステントを割り当てられているか否かを判断する。割り当てられている場合(MAPPED)は、ホスト制御部5は、データが格納されているそのエクステントのデータを上書きする。
割り当てられていない場合(UNMAPPED)、ホスト制御部5は、そのライトコマンドに対応するLDが属するHDD10及びSSD20の、割り当てられていないエクステントに、ライトデータを格納する。そして、ホスト制御部5は、そのライトデータを格納したエクステントを示す割り当てエクステント43の番号をLDテーブル41に記憶する。
ホスト装置4からリードコマンドが発行された場合、ホスト制御部5は、割り当て管理テーブル40を参照し、そのリードコマンドに基づいてディスク部3からデータを読み込む。
ホスト制御部5は、SSD20からデータ及びトレーラを読み込み、その読み込んだデータ及びトレーラが0であった場合、UNMAP状態取得部60を介して、SSD20から状態情報を取得する。ここで、状態情報は、そのリードコマンドに対応するLBAにNANDブロック200が割り当てられている(真)か否(偽)かを示す情報である。換言すると、その状態情報は、そのリードコマンドの対象であるデータが、SSD20の領域のいずれかに割り当てられているかどうかを示す情報である。ホスト制御部5は、その状態情報が真の場合、トレーラエラー処理を実行する。ホスト制御部5は、その状態情報が偽の場合、ゼロデータをホスト装置4に返却(送信)する。
ホスト装置4から第1のUNMAPコマンドが発行された場合、ホスト制御部5は、その第1のUNMAPコマンドをエクステント別に分割し、UNMAPコマンド制御部30を介して、その分割された第1のUNMAPコマンドのそれぞれを処理する。以後、その分割された第1のUNMAPコマンドを、分割UNMAPコマンドと呼ぶ。
===UNMAPコマンド制御部30===
UNMAPコマンド制御部30は、その分割UNMAPコマンドの処理範囲(UNMAPの処理の対象であるSSD20のサイズ)がエクステント単位かどうかを判断する。その処理サイズがエクステント単位であれば、UNMAPコマンド制御部30は、エクステントの割り当てを解放する。具体的には、UNMAPコマンド制御部30は、割り当て管理テーブル40について、その分割UNMAPコマンドで指定されたLBA42に対応する割り当てエクステント43をエクステントが割り当てられていない状態(例えば「−」)にする。
また、その処理範囲がエクステント単位の範囲未満の範囲であって、RAID構成90に対する分割UNMAPコマンドであれば、UNMAPコマンド制御部30は、UNMAPコマンド発行部70を介して、SSD20に第2のUNMAPコマンドを発行する。第2のUNMAPコマンドは、分割UNMAPコマンドが、SSD20が解釈可能な形式に変換されたものである
以上、詳細に実施形態の構成を説明したが、ディスクアレイ装置1の上記に説明した以外の部分は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な説明は省略する。
図11は、本実施形態におけるコントローラ2を実現するコンピュータ700のハードウエア構成を示す図である。
図11に示すように、コンピュータ700は、CPU(Central Processing Unit)701、記憶部702、記憶装置703、通信部706及びインタフェース部708を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。例えば、記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の全体の動作を制御する。例えば、CPU701は、記憶装置703に装着された記録媒体707から、そのプログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部702に書き込む。ここで、そのプログラムは、例えば、後述の図14、図17及び図18に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
そして、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、図7に示すUNMAPコマンド制御部30、ホスト制御部5、ディスク制御部6として各種の処理を実行する。
尚、CPU701は、通信網(不図示)に接続される外部コンピュータ(不図示)から、記憶部702にそのプログラムやそのデータをダウンロードしてもよい。
記憶部702は、そのプログラムやそのデータを記憶する。記憶部702は、割り当て管理テーブル40を記憶してよい。記憶部702は、UNMAPコマンド制御部30、ホスト制御部5、ディスク制御部6の一部として含まれてよい。
記憶装置703は、例えば、光ディスクや、フレキシブルディスク、磁気光ディスク、外付けハードディスク半導体メモリなどであって、記録媒体707を含む。記憶装置703(記録媒体707)は、そのプログラムをコンピュータ読み取り可能に記憶する。また、記憶装置703は、そのデータを記憶してもよい。記憶装置703は、割り当て管理テーブル40を記憶してよい。記憶装置703は、UNMAPコマンド制御部30、ホスト制御部5、ディスク制御部6の一部として含まれてよい。
通信部706は、ホスト装置4とのインタフェースを実現する。通信部706は、ホスト制御部5の一部として含まれてよい。
インタフェース部708は、ディスク部3とのインタフェースを実現する。インタフェース部708は、ディスク制御部6の一部として含まれてよい。
以上説明したように、図7に示すコントローラ2の機能単位の各構成要素は、図11に示すハードウエア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給される場合、CPU701は、記録媒体707に格納されたそのプログラムのコードを読み出して実行してもよい。或いは、CPU701は、記録媒体707に格納されたそのプログラムのコードを、記憶部702、記憶装置703またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するそのプログラム(ソフトウエア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
以上が、本実施形態におけるコントローラ2を実現するコンピュータ700の、ハードウエア単位の各構成要素についての説明である。
次に、本実施形態の図7に示すディスクアレイ装置1の動作について、以下の図面を参照して詳細に説明する。図14、図17及び図18は、本実施形態のディスクアレイ装置1の動作を示すフローチャートである。図12、図15及び図19は、割り当て管理テーブル40の具体的な例を示す図である。図13、図16及び図20は、MAP状態管理テーブル210の具体的な例を示す図である。
ここでは、説明のための具体例として、以下の通りであるものとする。
LD番号0はSSD20で構成されるRAID構成90に属している。そして、LD番号0のデータは、図12の割り当て管理テーブル40に示されるように、LBA42が「0x00000000」のLBAは、割り当てエクステント43が示す番号が「0」のエクステントに割り当てられている状態を初期状態とする。同様に、LBA42が「0x00001000」のLBAは、割り当てエクステント43が示す番号が「1」の、エクステントに割り当てられている状態を初期状態とする。
また、図13のMAP状態管理テーブル210に示すように、割り当てエクステント43が示す番号が「0」に該当するデータは、SSD20のLBA211が「0x00000000」のSBAから順に対応する。そして、そのデータは、MAP212に示される番号「00」のNANDブロック200から順に格納されている。また、割り当てエクステント43が示す番号が「1」に該当するデータは、SSD20のLBA211が「0x00001000」のSBAから順に対応する。そして、そのデータはMAP212に示される番号が「10」のNANDブロック200から順に格納されているとする。
尚、LDの番号やLBA42の値、割り当てエクステント43の番号、エクステントの単位、SSD20のLBA211の値、NANDブロック200の番号及びNANDブロック200の単位、などは、上述した値のみに限定されることはない。
まず、ホスト装置4から、あるLDに対してUNMAPコマンドが発行された場合の処理を、図14に示すフローチャートを参照して説明する。
ホスト装置4から、LDに対して第1のUNMAPコマンドが発行される(ステップS101)。
次に、ディスクアレイ装置1のコントローラ2のホスト制御部5は、その第1のUNMAPコマンドを分割UNMAPコマンドに分割する(ステップS102)。
次に、UNMAPコマンド制御部30は、分割UNMAPコマンドの処理サイズがエクステント単位の範囲であるか、エクステント単位の範囲未満の範囲であるかを判定する(ステップステップS103)。
分割UNMAPコマンドの処理範囲がエクステント単位の範囲の場合(ステップS103でYES)、UNMAPコマンド制御部30は、エクステントを解放する(ステップS104)。そのエクステントは、その分割UNMAPコマンドに対応する、割り当て管理テーブル40において該当LDテーブル41のLBA42が示す、LBAに割り当てられているエクステントである。具体的には、UNMAPコマンド制御部30は、図15に示すように、LBA42が「0x00000000」の割り当てエクステント43を「−(エクステントが割り当てられていないことを示す)」にする。
分割UNMAPコマンドの処理サイズがエクステント単位の範囲未満の範囲の場合(ステップS103でNO)、UNMAPコマンド制御部30は、該当するLBA42がHDD10とSSD20のどちらに属するかを判断する(ステップS105)。
該当するLBA42がHDD10に属する場合(ステップS105でYES)、ディスク制御部6は、HDD10に対して、該当範囲にゼロデータライトを実施する(ステップS106)。
該当するLBA42がSSD20に属する場合(ステップS105でNO)、UNMAPコマンド制御部30は、UNMAPコマンド発行部70を通じて、SSD20にUNMAPコマンドを発行する(ステップS107)。
尚、SSD20は、UNMAPコマンドが発行された場合、MAP状態管理テーブル210において、UNMAPコマンドで指定された範囲に該当するLBA211のデータを格納しているNANDブロック200をMAP212から解放する。具体的には、SSD20は、図16に示すように、LBA211が「0x00001000」のMAP212を「−」にする。
次に、UNMAPコマンド制御部30は、すべての分割UNMAPコマンドを処理したか否かを判定する(ステップS108)。すべての分割UNMAPコマンドを処理した場合、(ステップS108でYES)処理は終了する。処理していない分割UNMAPコマンドがある場合(ステップS108でNO)、処理はステップステップS103へ戻る。
次に、ホスト装置4から、LDに対してリードコマンドが発行された場合の処理を、図17及び図18に示すフローチャートを参照して説明する。
ホスト装置4から、LDに対してリードコマンドが発行される(ステップS201)。
次に、ディスクアレイ装置1のコントローラ2のホスト制御部5は、リードコマンドをエクステントの単位に分割する(ステップS202)。以後、エクステントのサイズに分割されたリードコマンドを分割リードコマンドと呼ぶ。
ホスト制御部5は、分割リードコマンドについて、割り当て管理テーブル40において、該当するLBA42が示すLBAにエクステントが割り当てられているかどうかを判断する(ステップS203)。
エクステントが割り当てられていない場合(ステップS203でNO)ホスト制御部5は、ホスト装置4にゼロデータを返却する(ステップS204)。その後、処理はステップS212へ進む。具体的には、「エクステントが割り当てられていない場合」は、図19に示す、LBA42が「0x00008000」の割り当てエクステント43が「−」であるような場合である。
エクステントが割り当てられている場合(ステップS203でYES)、ホスト制御部5は、ディスク制御部6を介して、HDD10またはSSD20からデータをリードする(ステップS205)。具体的には、「エクステントが割り当てられている場合」は、図19に示す、LBA42が「0x00000000」及び「0x00001000」の割り当てエクステント43のそれぞれが「0」及び「1」であるような場合である。
次に、ホスト制御部5は、リードしたデータが、ゼロデータかつゼロトレーラであるかどうかを判断する(ステップS206)。
そのデータが「ゼロデータかつゼロトレーラ」でない場合(ステップS206でNO)、ホスト制御部5は、リードしたデータをホスト装置4に返却する(ステップS211)。
そのデータがゼロデータかつゼロトレーラである場合(ステップS206でYES)、ホスト制御部5は、該当するLBA42がHDD10とSSD20のどちらに属するかを判断する(ステップS207)。
該当するLBA42がHDD10に属する場合(ステップS207でYES)は、ホスト制御部5は、トレーラエラー処理を実行する(ステップS208)。
該当するLBA42がSSD20に属する場合(ステップS207でNO)、UNMAP状態取得部60は、状態取得コマンドをSSD20に対して発行し、状態情報を取得する(ステップS209)。
尚、ステップS209において、状態取得コマンドを受信したSSD20のUNMAP状態返却部220は、状態取得コマンドで指定されたLBAがNANDブロック200を割り当てられているか否かを確認する。具体的には、UNMAP状態返却部220は、MAP状態管理テーブル210を参照して、該当するLBA211に対応するMAP212をチェックする。そして、UNMAP状態返却部220は、MAP212がNANDブロック番号である場合にはMAPPEDを、MAP212が「−」である場合にはUNMAPPEDを、状態情報として返却する。具体的には、「NANDブロック200を割り当てられている場合」は、例えば図20に示す、LBA211が「0x00000000」のMAP212が「NAND#00」の場合である。また、「NANDブロック200を割り当てられていない場合」は、例えば図20に示す、LBA211が「0x00001000」のMAP212が「−」の場合である。
次に、ホスト制御部5は、UNMAP状態取得部60により取得した状態情報をチェックする(ステップS210)。
状態情報がMAPPEDである場合(ステップS210でYES)、ホスト制御部5は、トレーラエラー処理を実施する(ステップS208)。その後、処理はステップS212へ進む。
状態情報がUNMAPPEDである場合(ステップS210でNO)、ホスト制御部5は、SSD20からリードしたデータ(つまりゼロデータ)をホスト装置4に返却する(ステップS211)。その後、処理はステップS212へ進む。
次に、ホスト制御部5は、すべての分割リードコマンドを処理したか否かを判定する(ステップS212)。すべての分割リードコマンドを処理した場合(ステップS212でYES)、処理は終了する。処理していない分割リードコマンドがある場合(ステップS212でNO)、処理はステップS203へ戻る。
上述した本実施形態における効果は、SSD20に対してUNMAPコマンドを発行することでSSD20に対しての書き込み回数を削減する場合に、SSD20におけるLBAのUNMAPPED状態とデータの異常とを区別することが可能になる点である。
その理由は、以下のような構成を含むからである。第1に、SSD20のUNMAP状態返却部220が、LBAにNANDブロック200が割り当てられているか否かを示す状態情報を通知する。第2に、コントローラ2のホスト制御部5が、SSD20から、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、通知された状態情報に基づいて、その受信したデータをホスト装置4へ送信する。
<<<第2の実施形態>>>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
本発明の第2の実施形態は、課題を解決するための最小構成の実施形態である。
図21は、本発明の第2の実施形態に係るディスクアレイ装置102の構成を示すブロック図である。
図21に示すように、本実施形態におけるディスクアレイ装置102は、ホスト制御部5とSSD20とを含む。
===SSD20===
SSD20は、図8に示す構成のSSD20であってよい。SSD20は、LBAにNANDブロック200が割り当てられているか否かを示す状態情報を通知する。
===ホスト制御部5===
ホスト制御部5は、SSD20から、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、通知された状態情報に基づいて、その受信したデータをホスト装置(不図示)へ送信する。
図21に示すホスト制御部5は、図7に示すホスト制御部5と同様に、図11に示すコンピュータ700によって実現されてよい。
上述した構成を含む本実施形態は、第1の実施形態と同様の効果を有する
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、複数個の任意のその構成要素が1個のモジュールとして実現されてよい。また、その構成要素の内の任意のひとつが複数のモジュールで実現されてもよい。また、その構成要素の内の任意のひとつがその構成要素の内の任意の他のひとつであってよい。また、その構成要素の内の任意のひとつの一部と、その構成要素の内の任意の他のひとつの一部とが重複してもよい。
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウエア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウエア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、コンピュータが読み取り可能な非一時的記録媒体に記録され、コンピュータに提供される。そして、そのプログラムは、コンピュータの立ち上げ時などに、非一時的記録媒体からコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生してよい。また、ある動作と他の動作との実行タイミングが部分的にないし全部において重複してもよい。
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で変更されてよい。
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得るさまざまな変更をすることができる。
1 ディスクアレイ装置
2 コントローラ
3 ディスク部
4 ホスト装置
5 ホスト制御部
6 ディスク制御部
10 HDD
20 SSD
30 UNMAPコマンド制御部
40 管理テーブル
41 LDテーブル
42 LBA
43 割り当てエクステント
60 UNMAP状態取得部
70 UNMAPコマンド発行部
80 RAID構成
90 RAID構成
102 ディスクアレイ装置
200 NANDブロック
210 MAP状態管理テーブル
211 LBA
212 MAP
220 UNMAP状態返却部
700 コンピュータ
701 CPU
702 記憶部
703 記憶装置
706 通信部
707 記録媒体
708 インタフェース部

Claims (7)

  1. ロジカルブロックアドレッシングに消去単位及び解放単位であるNegative ANDブロックが割り当てられているか否かを示す状態情報を通知するソリッドステートドライブと、
    前記ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、通知された前記状態情報に基づいて、前記受信したデータをホスト装置へ送信するコントロール手段と、を含み、
    前記コントロール手段は、
    前記Negative ANDブロックの単位に満たない範囲の指定を含む第1のアンマップコマンドを受信し、受信した前記第1のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記Negative ANDブロックの単位に満たない範囲に対する第2のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記Negative ANDブロックの単位に満たない範囲に対応する領域に0を書き込み、
    更に、前記コントロール手段は、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
    受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報がUNMAPPEDである場合に前記受信したデータをホスト装置へ送信し、前記状態情報がMAPPEDである場合にエラー処理を実行する、
    ディスクアレイ装置。
  2. 前記コントロール手段は、前記ゼロデータを受信した場合に、前記ソリッドステートドライブへ状態取得コマンドを送信し、
    前記ソリッドステートドライブは、前記状態取得コマンドを受信した場合に、前記コントロール手段へ前記状態情報を送信する、
    請求項1記載のディスクアレイ装置。
  3. 前記ソリッドステートドライブは、前記コントロール手段へデータを送信する場合に、前記データに対応する前記状態情報を付加して前記コントロール手段へ前記状態情報を通知する
    請求項1または2記載のディスクアレイ装置。
  4. コントロール手段から受信したコマンドに応答して、ロジカルブロックアドレッシングに消去単位及び解放単位であるNegative ANDブロックがマッピングされているか否かの状態情報を通知する手段を含み、
    前記コントロール手段は、前記状態情報を通知する手段から、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段であり、
    前記コントロール手段は、
    前記Negative ANDブロックの単位に満たない範囲の指定を含む第1のアンマップコマンドを受信し、受信した前記第1のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記Negative ANDブロックの単位に満たない範囲に対する第2のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記Negative ANDブロックの単位に満たない範囲に対応する領域に0を書き込み、
    更に、前記コントロール手段は、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
    受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報がUNMAPPEDである場合に前記受信したデータをホスト装置へ送信し、前記状態情報がMAPPEDである場合にエラー処理を実行する、
    ソリッドステートドライブ。
  5. ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位及び解放単位であるNegative ANDブロックがマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段を含み、
    前記手段が更に、
    前記Negative ANDブロックの単位に満たない範囲の指定を含む第1のアンマップコマンドを受信し、受信した前記第1のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記Negative ANDブロックの単位に満たない範囲に対する第2のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記Negative ANDブロックの単位に満たない範囲に対応する領域に0を書き込み、
    更に、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
    受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報がUNMAPPEDである場合に前記受信したデータをホスト装置へ送信し、前記状態情報がMAPPEDである場合にエラー処理を実行する、
    コントロール装置。
  6. コンピュータが、
    ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位及び解放単位であるNegative ANDブロックがマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信し、
    更に、
    前記Negative ANDブロックの単位に満たない範囲の指定を含む第1のアンマップコマンドを受信し、受信した前記第1のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記Negative ANDブロックの単位に満たない範囲に対する第2のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記Negative ANDブロックの単位に満たない範囲に対応する領域に0を書き込み、
    更に、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
    受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報がUNMAPPEDである場合に前記受信したデータをホスト装置へ送信し、前記状態情報がMAPPEDである場合にエラー処理を実行する、
    ディスク制御方法。
  7. ソリッドステートドライブから、データ及びトレーラの値がすべて0である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位及び解放単位であるNegative ANDブロックがマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する処理と、
    前記Negative ANDブロックの単位に満たない範囲の指定を含む第1のアンマップコマンドを受信し、受信した前記第1のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記Negative ANDブロックの単位に満たない範囲に対する第2のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記Negative ANDブロックの単位に満たない範囲に対応する領域に0を書き込む処理と、
    更に、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
    受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報がUNMAPPEDである場合に前記受信したデータをホスト装置へ送信し、前記状態情報がMAPPEDである場合にエラー処理と、
    をコンピュータに実行させる
    プログラム。
JP2014225394A 2014-11-05 2014-11-05 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム Active JP6142860B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014225394A JP6142860B2 (ja) 2014-11-05 2014-11-05 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム
EP15190525.4A EP3018573A1 (en) 2014-11-05 2015-10-20 Disk array device, disk control device, solid state drive, disk control method, and recording medium
US14/924,841 US20160124661A1 (en) 2014-11-05 2015-10-28 Disk array device, disk control device, solid state drive, disk control method, and recording medium
CN201510746687.8A CN105573666B (zh) 2014-11-05 2015-11-05 盘阵列设备、盘控制设备、固态驱动器、盘控制方法和记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014225394A JP6142860B2 (ja) 2014-11-05 2014-11-05 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム

Publications (2)

Publication Number Publication Date
JP2016091318A JP2016091318A (ja) 2016-05-23
JP6142860B2 true JP6142860B2 (ja) 2017-06-07

Family

ID=54365953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014225394A Active JP6142860B2 (ja) 2014-11-05 2014-11-05 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム

Country Status (4)

Country Link
US (1) US20160124661A1 (ja)
EP (1) EP3018573A1 (ja)
JP (1) JP6142860B2 (ja)
CN (1) CN105573666B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6783645B2 (ja) * 2016-12-21 2020-11-11 キオクシア株式会社 メモリシステムおよび制御方法
US20190205044A1 (en) * 2017-01-10 2019-07-04 Hitachi, Ltd. Device for restoring lost data due to failure of storage drive
US10261693B1 (en) * 2018-01-31 2019-04-16 EMC IP Holding Company LLC Storage system with decoupling and reordering of logical and physical capacity removal
CN108563401B (zh) * 2018-03-27 2021-05-28 深圳忆联信息***有限公司 一种ssd性能加速方法
US11068181B2 (en) * 2019-10-17 2021-07-20 EMC IP Holding Company LLC Generating and storing monotonically-increasing generation identifiers
CN111007985B (zh) * 2019-10-31 2021-10-22 苏州浪潮智能科技有限公司 一种存储***空间回收的兼容处理方法、***及设备
CN111158589B (zh) * 2019-12-16 2023-10-20 绿晶半导体科技(北京)有限公司 存储阵列的动态管理方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736376A (en) * 1985-10-25 1988-04-05 Sequoia Systems, Inc. Self-checking error correcting encoder/decoder
EP1367481A3 (en) * 2002-05-29 2008-04-09 Hitachi, Ltd. Centralized storage management method
US7313724B1 (en) * 2004-07-01 2007-12-25 Symantec Operating Corporation Method and apparatus for synchronizing redundant data with a volume
US7337270B2 (en) * 2004-09-10 2008-02-26 Wistron Corporation Apparatus, system, and method for servicing a data storage device using work-in-process (WIP) maps
JP4805660B2 (ja) * 2005-02-08 2011-11-02 富士通株式会社 ディスクライト抜け検出装置
US7734836B2 (en) * 2006-10-11 2010-06-08 Coatney Douglas W Method and apparatus for dynamically qualifying mass storage devices
JP4331220B2 (ja) 2007-03-07 2009-09-16 株式会社東芝 未使用物理領域自律管理機能を持つストレージ装置
JP5070005B2 (ja) * 2007-11-01 2012-11-07 株式会社日立製作所 演算装置および演算方法ならびにコンピュータシステム
CN102449610B (zh) * 2009-03-27 2014-07-16 Lsi公司 用于提供存储***逻辑块地址的释放管理的方法及设备
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
US8671258B2 (en) * 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
WO2011024239A1 (en) * 2009-08-31 2011-03-03 Hitachi, Ltd. Storage system having plurality of flash packages
JP2011090531A (ja) 2009-10-23 2011-05-06 Hitachi-Lg Data Storage Inc 情報記憶装置
US9052825B2 (en) * 2010-08-30 2015-06-09 Vmware, Inc. System software interfaces for space-optimized block devices
JP5581256B2 (ja) 2011-03-28 2014-08-27 株式会社東芝 メモリシステム、コントローラ、およびメモリシステムの制御方法
JP2013073409A (ja) 2011-09-27 2013-04-22 Toshiba Corp ディスクアレイ装置
US8635407B2 (en) * 2011-09-30 2014-01-21 International Business Machines Corporation Direct memory address for solid-state drives
US8938584B2 (en) * 2012-04-30 2015-01-20 Dell Products, Lp System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated
US10528272B2 (en) * 2015-02-20 2020-01-07 International Business Machines Corporation RAID array systems and operations using mapping information

Also Published As

Publication number Publication date
CN105573666B (zh) 2019-08-16
CN105573666A (zh) 2016-05-11
US20160124661A1 (en) 2016-05-05
EP3018573A1 (en) 2016-05-11
JP2016091318A (ja) 2016-05-23

Similar Documents

Publication Publication Date Title
JP6142860B2 (ja) ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム
JP5581256B2 (ja) メモリシステム、コントローラ、およびメモリシステムの制御方法
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
US10209897B2 (en) Storage device and control method of the same
KR20100011698A (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법
JP2012137885A (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
US10649891B2 (en) Storage device that maintains mapping data therein
US20110271037A1 (en) Storage device performing data invalidation operation and data invalidation method thereof
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
US20140297949A1 (en) Disk array device
US20160266827A1 (en) Memory controller, memory device, data transfer system, data transfer method, and computer program product
US20140344503A1 (en) Methods and apparatus for atomic write processing
US10528360B2 (en) Storage device, information processing system, method of activating storage device and program
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
US10853321B2 (en) Storage system
US20150089122A1 (en) Apparatus, control apparatus, control method and storage medium
CN104978280B (zh) 数据储存***及其特定指令执行方法
CN116136739A (zh) 用于改善存储装置的数据输入/输出性能的设备和方法
JP6175566B2 (ja) ストレージシステム及び記憶制御方法
JPWO2018142622A1 (ja) 計算機
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
JP2014222528A (ja) メモリシステムおよび不揮発性メモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170323

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: 20170411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170424

R150 Certificate of patent or registration of utility model

Ref document number: 6142860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150