JP2015014963A - ストレージ制御装置、制御プログラム及び制御方法 - Google Patents

ストレージ制御装置、制御プログラム及び制御方法 Download PDF

Info

Publication number
JP2015014963A
JP2015014963A JP2013142023A JP2013142023A JP2015014963A JP 2015014963 A JP2015014963 A JP 2015014963A JP 2013142023 A JP2013142023 A JP 2013142023A JP 2013142023 A JP2013142023 A JP 2013142023A JP 2015014963 A JP2015014963 A JP 2015014963A
Authority
JP
Japan
Prior art keywords
data
storage
area
unit
control unit
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
JP2013142023A
Other languages
English (en)
Inventor
山口 雄一郎
Yuichiro Yamaguchi
雄一郎 山口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013142023A priority Critical patent/JP2015014963A/ja
Priority to US14/299,578 priority patent/US20150012691A1/en
Publication of JP2015014963A publication Critical patent/JP2015014963A/ja
Pending legal-status Critical Current

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/061Improving I/O performance
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】不要なTrimコマンドの処理に起因するオーバーヘッドをなくすこと。【解決手段】取得部51aが第1制御部40から判別情報及び管理情報を取得して、それぞれ判別情報記憶部51b及び管理情報記憶部51cに格納する。そして、消去領域特定部51dが判別情報記憶部51b及び管理情報記憶部51cがそれぞれ記憶する判別情報及び管理情報に基づいて、消去領域を特定し、消去指示部51eが消去領域についてTrimコマンドを発行する。そして、消去実行部44がデータの消去を行う。【選択図】図2

Description

本発明は、ストレージ制御装置、制御プログラム及び制御方法に関する。
近年、フラッシュメモリの容量拡大にともない、SSD(Solid State Drive)がストレージ装置に用いられるようになっている。しかしながら、SSDには、使用を続けていくと書き込み性能が低下していく構造的な欠点が存在する。その理由は、データの書き換えが必要な場合に書き込み処理の工程が複雑になって時間がかかるためである。
SSD内に使用済みの領域が増えるとデータの書き換えが増えるため、書き込み性能が低下していく。ここで、使用済みの領域とは、ファイルシステムの管理上は非使用領域だが、物理的には古いデータが残っている領域である。この欠点を補うために、Trimコマンド(消去コマンド)が存在する。Trimコマンドは、ホスト(オペレーションシステムOS)がSSDに非使用領域を通知し、次回の書き込みに備えてあらかじめデータの物理的な消去を促すコマンドである。データ消去済みの領域への書き込みは1工程で行えるため、Trimコマンドを用いることによって書き込み性能は向上する。したがって、ファイルの削除時にTrimコマンドを併せて発行しておくことが一般的である。
また、ソリッドステート記憶デバイスにTrimコマンドを発行するためのインタフェースを提供する従来技術がある(例えば、特許文献1参照。)。また、SSDとHDD(Hard Disk Drive)をストレージシステムの記憶媒体として用いる従来技術がある(例えば、特許文献2参照。)。
特表2013−504142号公報 特表2011−515727号公報
しかしながら、SSDとHDDの両方を記憶媒体として用いると不要なTrimコマンドが発行され、処理のオーバーヘッドが発生するという問題がある。図15は、ホストから発行される不要なTrimコマンドを説明するための図である。
図15に示すように、ストレージ装置92は、CM(Controller Module)93と、SSD94aと、HDD94bとを有する。CM93は、ホスト91からコマンドを受信し、受信したコマンドに基づいてストレージ装置92を制御する。SSD94a及びHDD94bは、データを記憶する記憶媒体である。
また、ストレージ装置92は、データの保存先をデータの使用頻度に基づいてSSD94a又はHDD94bに割り当てる自動階層機能を有する。したがって、ストレージ装置92は、ホスト91からは1つのボリュームに見えるので、ホスト91に対しては論理ボリューム94をSSDとして見せる。このため、ホスト91は、使用済みの領域に対してTrimコマンドを発行すると、HDD94bに対してTrimコマンドを発行する場合があり、不要なTrimコマンド発行することになる。
本発明は、1つの側面では、不要なTrimコマンドの処理に起因するオーバーヘッドをなくすことを目的とする。
本願の開示するストレージ制御装置は、1つの態様において、不要なデータを記憶する領域に対し、次回の書き込みに備えてあらかじめデータの物理的な消去が行なわれる第1の記憶装置を含む複数の記憶装置により構築された記憶ボリュームに対する上位装置からのコマンドを受けて、前記記憶装置を制御するストレージ制御装置である。ストレージ制御装置は、前記第1の記憶装置で不要なデータを記憶する領域を消去領域として特定する特定部と、前記特定部により特定された消去領域のデータの消去を前記第1の記憶装置に指示する指示部とを有する。
1実施態様によれば、不要なTrimコマンドの処理に起因するオーバーヘッドをなくすことができる。
図1は、実施例1に係るストレージ装置の構成を示す図である。 図2は、実施例1に係るCMの機能構成を示す図である。 図3は、ファイルの管理情報を記憶する管理情報領域を示す図である。 図4Aは、スーパーブロックに格納される情報の一例を示す図である。 図4Bは、空き領域管理領域に格納される情報の一例を示す図である。 図4Cは、iノードに格納される情報の一例を示す図である。 図4Dは、ディレクトリデータ領域に格納される情報の一例を示す図である。 図5は、判別情報の一例を示す図である。 図6は、性能改善処理のシーケンスを示す図である。 図7は、第2制御部による性能改善処理のフローを示すフローチャートである。 図8は、性能改善処理によるデータ破壊を説明するための図である。 図9は、実施例2に係るストレージ装置の構成を示す図である。 図10は、実施例2に係るCMの機能構成を示す図である。 図11は、改善処理中に書き込み要求があった場合の処理シーケンスを示す図である。 図12は、改善処理中に読み出し要求があった場合の第1の処理シーケンスを示す図である。 図13は、改善処理中に読み出し要求があった場合の第2の処理シーケンスを示す図である。 図14は、コマンドプール使用モードでホストからコマンドを受信したときの第1制御部の処理のフローを示すフローチャートである。 図15は、ホストから発行される不要なTrimコマンドを説明するための図である。
以下に、本願の開示するストレージ制御装置、制御プログラム及び制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例1に係るストレージ装置の構成について説明する。図1は、実施例1に係るストレージ装置の構成を示す図である。図1に示すように、ストレージ装置1は、CM10と、SSD20と、HDD30とを有する。
CM10は、ホスト2からの指示に基づいてストレージ装置1を制御する。SSD20は、フラッシュメモリを記憶媒体として用いる記憶装置である。HDD30は、磁気ディスクを記憶媒体として用いる記憶装置である。
CM10は、CPU11と、CPU12と、RAM(Random Access Memory)13と、フラッシュメモリ14とを有する。CPU11及びCPU12は、フラッシュメモリ14からプログラムを読み出して実行する中央処理装置である。RAM13は、SSD20やHDD30が記憶するデータ、CPU11やCPU12が処理に用いるデータなどを記憶するメモリである。フラッシュメモリ14は、CPU11及びCPU12で実行されるプログラムを記憶するメモリである。
CPU11では、ストレージ装置1の制御に用いられる第1OS(Operating System)11aが実行される。CPU12では、ホスト2が使用するファイルシステムを有する第2OS12aが実行される。第2OS12aは、ホスト2が使用するファイルシステムを用いてSSD20をマウントする。第2OS12aがホスト2が使用するファイルシステムを用いてSSD20をマウントすることで、第2OS12aで実行されるプログラムは、ホスト2が使用するファイルシステムが管理する管理情報を参照して解釈することができる。
第2OS12aで実行されるプログラムとして性能改善プログラム100がある。性能改善プログラム100は、SSD20の使用済みの領域を特定し、使用済み領域のデータを消去するために第1OS11aを経由してSSD20にTrimコマンドを発行する。性能改善プログラム100は、第1OS11aの指示に基づいて起動される。
次に、実施例1に係るCM10の機能構成について説明する。図2は、実施例1に係るCM10の機能構成を示す図である。図2に示すように、CM10は、第1制御部40と、第2制御部50とを有する。第1制御部40は、ストレージ装置1を制御する。第1制御部40の機能は、第1OS11a及び第1OS11aで制御されるプログラムがCPU11で実行されることにより実現される。
第1制御部40は、計数部41と、性能改善指示部42と、情報送信部43と、消去実行部44と、通信部45とを有する。計数部41は、SSD20にデータが書き込まれたセクタ数の合計をカウントする。ここで、1セクタは512バイト(B)である。
性能改善指示部42は、計数部41によりカウントされたセクタ数がSSD20の容量の90%を超えたか否かを判定し、超えた場合には、第2制御部50に性能改善処理の開始を指示する。ここで、性能改善処理とは、SSD20の使用済みの領域に対してTrimコマンドを発行することにより、SSD20の書き込み性能を改善する処理である。
情報送信部43は、第2制御部50からの要求に基づいて、ディスク装置に記憶されたファイルの管理情報、及び、ディスク装置のある領域がSSD20に属する領域であるかHDD30に属する領域であるかを判別する判別情報を第2制御部50に送信する。ここで、ディスク装置とは、SSD20とHDD30を合わせた記憶装置である。
図3は、ファイルの管理情報を記憶する管理情報領域を示す図である。図3に示すように、管理情報領域は、ディスク装置全体の記憶領域の先頭の領域を占め、残りの領域は、ユーザーのデータを記憶するユーザーデータ領域である。管理情報領域は、スーパーブロックと、空き領域管理領域と、iノード領域と、ディレクトリデータ領域とを含む。
図4Aは、スーパーブロックに格納される情報の一例を示す図である。図4Aに示すように、スーパーブロックに格納される情報には、管理情報領域サイズと、ブロックサイズと、使用中のユーザーデータブロック数と、最大ファイル数と、使用中ファイル数と、空き領域管理領域位置と、空き領域管理領域サイズが含まれる。また、スーパーブロックに格納される情報には、iノード領域位置と、iノード領域サイズと、ディレクトリデータ領域位置と、ディレクトリデータ領域サイズと、ユーザーデータ領域位置と、ユーザーデータ領域サイズとが含まれる。
管理情報領域サイズは、管理情報領域の大きさを示し、ブロックサイズは、ファイルシステムにおける領域の管理単位であるブロックの大きさを示す。ここでは、ブロックサイズは、4キロバイト(KB)である。使用中のユーザーデータブロック数は、ユーザーデータの記憶領域として使用されているブロックの数である。最大ファイル数は、ファイルシステムが記憶できるファイルの最大数を示し、使用中ファイル数は、ファイルシステムが記憶するファイルの数である。
空き領域管理領域位置は、空き領域を管理する領域である空き領域管理領域の開始位置をブロック番号で示し、空き領域管理領域サイズは、空き領域管理領域の大きさをブロック数で示す。iノード領域位置は、iノード情報を記憶する領域であるiノード領域の開始位置をブロック番号で示し、iノード領域サイズは、iノード領域の大きさをブロック数で示す。
ディレクトリデータ領域位置は、ディレクトリデータを記憶する領域であるディレクトリデータ領域の開始位置をブロック番号で示し、ディレクトリデータ領域サイズは、ディレクトリデータ領域の大きさをブロック数で示す。ユーザーデータ領域位置は、ユーザーデータを記憶するユーザーデータ領域の開始位置をブロック番号で示し、ユーザーデータ領域サイズは、ユーザーデータ領域の大きさをブロック数で示す。
図4Bは、空き領域管理領域に格納される情報の一例を示す図である。図4Bに示すように、空き領域管理領域に格納される情報には、空き領域の位置と空き領域のサイズとが空き領域の個数分含まれる。空き領域の位置は、空き領域の開始位置をブロック番号で示し、空き領域のサイズは、空き領域の大きさをブロック数で示す。なお、使用済み領域は、空き領域として管理される。
図4Cは、iノード領域がファイル毎に記憶するiノードに格納される情報の一例を示す図である。図4Cに示すように、iノード領域がファイル毎に記憶するiノードに格納される情報には、ファイル種別と、アクセス権と、所有者と、更新時刻と、リンク数と、ブロック数と、ファイルデータ位置とが含まれる。
ファイル種別は、ファイルの種類を示す。アクセス権は、ファイルへのアクセス権に関する情報を示す。所有者は、ファイルの所有者を示す。更新時刻は、ファイルが最後に更新された日時を示す。リンク数は、iノード情報を参照するファイルの数である。ブロック数は、ファイルのサイズをブロック数で示す。ファイルデータ位置は、ファイルデータの開始位置をブロック番号で示す。
図4Dは、ディレクトリデータ領域に格納される情報の一例を示す図である。図4Dに示すように、ディレクトリデータ領域に格納される情報は、ファイル名とファイルの情報を記憶するiノード番号とを対応付けたディレクトリデータをディレクトリの個数分記憶する。
図5は、判別情報の一例を示す図である。図5に示すように、判別情報には、開始セクタ番号とセクタ数とがSSD20内の領域の個数分含まれる。開始セクタ番号は、SSD20内の各領域の開始位置をセクタ番号で示し、セクタ数は領域の大きさをセクタの数で示す。
図2に戻って、消去実行部44は、第2制御部50が発行するTrimコマンドに基づいて、SSD20の使用済み領域のデータを消去する。消去実行部44は、セクタ番号を指定して使用済み領域のデータを消去する。通信部45は、第2制御部50との間で通信を行う。
第2制御部50は、ホスト2と同じファイルシステムをサポートし、図3、図4A及び図4Bに示した管理情報を解釈することができる。第2制御部50の機能は、第2OS12a及び第2OS12aで制御されるプログラムがCPU12で実行されることにより実現される。
第2制御部50は、性能改善部51と通信部52とを有する。性能改善部51は、性能改善処理を実行する。性能改善部51は、取得部51aと、判別情報記憶部51bと、管理情報記憶部51cと、消去領域特定部51dと、消去指示部51eとを有する。なお、性能改善部51の機能は、性能改善プログラム100が第2OS12aの制御の下に実行されることにより実現される。
取得部51aは、情報送信部43が送信する管理情報及び判別情報を受信し、管理情報を管理情報記憶部51cに格納し、判別情報を判別情報記憶部51bに格納する。判別情報記憶部51bは、判別情報を記憶し、管理情報記憶部51cは、管理情報を記憶する。
消去領域特定部51dは、判別情報記憶部51bが記憶する判別情報及び管理情報記憶部51cが記憶する管理情報に基づいて、SSD20の消去領域を特定する。具体的には、消去領域特定部51dは、判別情報に含まれるセクタ毎に、セクタの位置情報をブロックの位置情報に換算して各セクタが空き領域に含まれるか否かを判定し、空き領域に含まれるセクタを消去領域として特定する。消去領域特定部51dが、判別情報及び管理情報に基づいて、SSD20の消去領域を特定することによって、性能改善部51は書き込み処理の性能を改善することができる。
消去指示部51eは、消去領域特定部51dにより特定された消去領域のデータを消去するように、第1制御部40に指示する。具体的には、消去指示部51eは、消去領域特定部51dにより特定されたセクタに対してTrimコマンドを発行する。
通信部52は、第1制御部40と通信を行う。なお、通信部45と通信部52との間の通信は、CPU11とCPU12との間のCPU間通信として実現される。
次に、性能改善処理のシーケンスについて説明する。図6は、性能改善処理のシーケンスを示す図である。図6に示すように、第1制御部40は、SSD20のセクタのうちデータが書き込まれたセクタの割合が90%を超えると、性能改善処理の開始を第2制御部50へ指示する(ステップS1)。
すると、第2制御部50は、判別情報の送信を第1制御部40に対して要求する(ステップS2)。すると、第1制御部40は、判別情報を第2制御部50に送信する(ステップS3)。すると、第2制御部50は、判別情報を受信して判別情報記憶部51bに格納する(ステップS4)。
そして、第2制御部50は、管理情報の送信を第1制御部40に対して要求する(ステップS5)。すると、第1制御部40は、管理情報の読み出しをディスク装置に要求し(ステップS6)、ディスク装置は、管理情報を読み出して(ステップS7)、第1制御部40に渡す。すると、第1制御部40は、管理情報を第2制御部50に送信する(ステップS8)。すると、第2制御部50は、管理情報を受信して管理情報記憶部51cに格納する(ステップS9)。
そして、第2制御部50は、判別情報及び管理情報に基づいて消去領域を特定し(ステップS10)、特定した消去領域についてTrimコマンドを発行する(ステップS11)。すると、第1制御部40は、Trimコマンドを受信して、ディスク装置に送信する(ステップS12)。すると、ディスク装置は、Trimコマンドで指定されたセクタのデータの消去を実行する(ステップS13)。なお、ステップS11〜ステップ13の処理は、消去領域に含まれるセクタの数だけ繰り返される。
このように、第2制御部50が、消去領域を特定し、消去領域のデータの消去を第1制御部40に指示することによって、第2制御部50は、SSD20の書き込み処理の性能を向上することができる。
次に、第2制御部50による性能改善処理のフローについて説明する。図7は、第2制御部50による性能改善処理のフローを示すフローチャートである。図7に示すように、第2制御部50は、第1制御部40から性能改善処理の開始指示を受信する(ステップS21)。
すると、性能改善部51は、判別情報及び管理情報を第1制御部40から取得する(ステップS22)。そして、性能改善部51は、判別情報からSSD20の1つの領域の情報を取り出し(ステップS23)、取り出した領域が空き領域か否かを管理情報を用いて判定する(ステップS24)。
その結果、空き領域である場合には、性能改善部51は、空き領域についてTrimコマンドを発行する(ステップS25)。そして、性能改善部51は、未処理の領域があるか否かを判定し(ステップS26)、未処理の領域がある場合には、判別情報から次の領域の情報を取り出し(ステップS27)、ステップS24に戻る。
一方、未処理の領域がない場合には、性能改善部51は、性能改善処理を停止し(ステップS28)、第2制御部50は、性能改善処理の停止を第1制御部40に通知する(ステップS29)。
このように、性能改善部51が、SSD20の空き領域についてTrimコマンドを発行することにより、SSD20への書き込み性能を改善することができる。
上述してきたように、実施例1では、取得部51aが第1制御部40から判別情報及び管理情報を取得して、それぞれ判別情報記憶部51b及び管理情報記憶部51cに格納する。そして、消去領域特定部51dが判別情報記憶部51b及び管理情報記憶部51cがそれぞれ記憶する判別情報及び管理情報に基づいて、消去領域を特定し、消去指示部51eが消去領域についてTrimコマンドを発行する。したがって、ホストに代わって、ストレージ装置の内部構成を把握しているCM10が、SSD20だけにTrimコマンドを発行することができ、HDD30への不要なTrimコマンドの処理に起因するオーバーヘッドをなくすことができる。また、ホストは、Trimコマンドを発行する必要がない。
また、実施例1では、計数部41がSSD20にデータが書き込まれたセクタ数の合計をカウントし、計数部41によりカウントされたセクタ数がSSD20の容量の90%を超えた場合に、性能改善指示部42が第2制御部50に性能改善処理の開始を指示する。したがって、CM10は、SSD20への書き込み性能の劣化が発生する前に、性能改善処理を実行することができる。
また、実施例1では、第2OS12aがホスト2が使用するファイルシステムを用いてSSD20をマウントするので、性能改善部51は、ホスト2が使用するファイルシステムが管理する管理情報を参照して解釈することができる。
ところで、上記実施例1では、性能改善処理を実行するタイミングによっては、性能改善処理がSSD20のデータを破壊することがある。図8は、性能改善処理によるデータ破壊を説明するための図である。図8に示すように、データの書き込み要求が発生すると、ホスト2は、ディスク装置が記憶する管理情報を第1制御部40経由で参照する(1)。一方、第2制御部50は、性能改善処理を実行し、ディスク装置が記憶する管理情報を第1制御部40経由で取得する(2)。
そして、ホスト2は、管理情報に基づいて、非使用領域に書き込みを実行する(3)。すると、書き込みが行われたデータ領域には、新しいデータが書き込まれ、データが書き込まれた領域の管理情報は使用中に更新される。一方、第2制御部50は、更新前の管理情報に基づいて、新しいデータが書き込まれたデータ領域が非使用であると判断し、そのデータ領域についてTrimコマンドを発行する(4)。その結果、新しいデータが書き込まれたデータ領域が消去され、データが破壊される。
このように、ストレージ装置の稼働中に性能改善処理を実行すると、性能改善処理を実行するタイミングによっては、性能改善処理がSSD20のデータを破壊することがあるため、データの破壊が発生しないような対策が必要となる。そこで、実施例2では、性能改善処理によるSSD20のデータの破壊を防ぐストレージ装置について説明する。
図9は、実施例2に係るストレージ装置の構成を示す図である。なお、ここでは説明の便宜上、図1に示した各部と同一の部分については同一符号を付すこととしてその詳細な説明を省略する。図9に示すように、実施例2に係るストレージ装置3は、CM60を有する。CM60は、ホスト2からの指示に基づいてストレージ装置3を制御する。
CM60は、データを記憶するRAM63を有し、RAM63は、コマンドプール71を有する。コマンドプール71は、性能改善処理中のSSD20への書き込み要求について、管理情報及び書き込みデータを一時的に記憶する。なお、性能改善処理中であっても、HDD30への書き込み要求は実行される。コマンドプール71が記憶する書き込みデータは、性能改善処理の終了後SSD20に書き込まれる。
このように、CM60は、性能改善処理中のSSD20への書き込み要求について、コマンドプール71に管理情報及び書き込みデータを一時的に保存し、性能改善処理の終了後にSSD20への書き込み処理を実行する。したがって、CM60は、性能改善処理によるSSD20のデータの破壊を防ぐことができる。
図10は、実施例2に係るCM60の機能構成を示す図である。なお、ここでは説明の便宜上、図2に示した各部と同一の部分については同一符号を付すこととしてその詳細な説明を省略する。図10に示すように、CM60は、第1制御部70と、第2制御部50とを有する。
第1制御部70は、コマンドプール71と、書込部72と、読出部73とを有する。書込部72は、ホスト2からの要求に基づいてディスク装置へのデータの書き込みを行う。ただし、書込部72は、性能改善処理中のSSD20への書き込み要求については、ディスク装置へのデータの書き込みを行うことなく、コマンドプール71に管理情報及び書き込みデータを一時的に保存する。そして、書込部72は、性能改善処理が終了すると、コマンドプール71から管理情報及び書き込みデータを取り出してSSD20にデータを書き込む。
読出部73は、ホスト2からの要求に基づいてディスク装置からデータの読み出しを行う。ただし、読出部73は、性能改善処理中のSSD20からのデータの読み出しについては、まずコマンドプール71にデータがあるか否かを判定する。その結果、コマンドプール71にデータがある場合には、読出部73は、コマンドプール71にあるデータをホスト2に応答し、コマンドプール71にデータがない場合には、SSD20からデータを読み出してホスト2に応答する。
次に、改善処理中に書き込み要求があった場合の処理シーケンスについて説明する。図11は、改善処理中に書き込み要求があった場合の処理シーケンスを示す図である。図11に示すように、第1制御部70は、SSD20のセクタのうちデータが書込まれたセクタの割合が90%超えると、コマンドプール71の使用モードに移行し(ステップS31)、性能改善処理の開始を第2制御部50に指示する(ステップS32)。
その後、第2制御部50が管理情報を取得する前に、ホスト2に書き込み要求が発生し、ホスト2が管理情報の取得を要求すると(ステップS33)、ディスク装置が、管理情報を読み出し(ステップS34)、第1制御部70経由でホスト2に送信する。
そして、第2制御部50が管理情報の取得を要求すると(ステップS35)、ディスク装置が、管理情報を読み出し(ステップS36)、第1制御部70経由で第2制御部50に送信する。
そして、ホスト2が、取得した管理情報に基づいてデータの書き込みを実行すると(ステップS37)、第1制御部70は、コマンドプール使用モードであるため、SSD20へのデータの書き込みであるときは、管理情報及び書き込みデータをコマンドプール71に保存する(ステップS38)。
一方、第2制御部50は、取得した管理情報に基づいて消去領域を特定し、特定した消去領域についてTrimコマンドを第1制御部70経由でディスク装置に発行する(ステップS39)。そして、ディスク装置が消去を実行する(ステップS40)。
その後、第2制御部50は、性能改善処理を終了すると、性能改善処理の終了を第1制御部70に通知する(ステップS41)。すると、第1制御部70は、コマンドプール71にあるデータをSSD20に書き込み(ステップS42)、ディスク装置がデータの書き込みを実行する(ステップS43)。
このように、第1制御部70は、改善処理中のSSD20への書き込み要求について、コマンドプール71に管理情報及び書き込みデータを保存し、性能改善処理終了後にコマンドプール71のデータをSSD20に書き込む。したがって、CM60は、性能改善処理によるSSD20のデータ破壊を防ぐことができる。
次に、改善処理中に読み出し要求があった場合の処理シーケンスについて説明する。図12及び図13は、改善処理中に読み出し要求があった場合の処理シーケンスを示す図である。図12は、読み出すデータがコマンドプール71にない場合のシーケンスを示し、図13は、読み出すデータがコマンドプール71にある場合のシーケンスを示す。
図12に示すように、第1制御部70は、SSD20のセクタのうちデータが書き込まれたセクタの割合が90%を超えると、コマンドプール71の使用モードに移行し(ステップS51)、性能改善処理の開始を第2制御部50に指示する(ステップS52)。
その後、ホスト2に読み出し要求が発生し、ホスト2が管理情報の取得を要求すると(ステップS53)、第1制御部70は、コマンドプール71をチェックする(ステップS54)。すなわち、第1制御部70は、コマンドプール71内の管理情報に基づいて、読み出すデータがコマンドプール71内にあるか否かを判定する。ここでは、コマンドプール71内には対象データがない場合であるので、ディスク装置が、管理情報を読み出し(ステップS55)、第1制御部70経由でホスト2に送信する。
そして、ホスト2は、管理情報に基づいて第1制御部70経由でデータの読み出しを実行し(ステップS56)、ディスク装置が、データを読み出し(ステップS57)、第1制御部70経由でホスト2にデータを送信する。その後、第2制御部50は、性能改善処理を終了すると、性能改善処理の終了を第1制御部70に通知する(ステップS58)。
また、図13に示すように、第1制御部70は、SSD20のセクタのうちデータが書き込まれたセクタの割合が90%を超えると、コマンドプール71の使用モードに移行し(ステップS61)、性能改善処理の開始を第2制御部50に指示する(ステップS62)。
その後、ホスト2に書き込み要求が発生し、ホスト2が管理情報の取得を要求すると(ステップS63)、ディスク装置が、管理情報を読み出し(ステップS64)、第1制御部70経由でホスト2に送信する。
そして、ホスト2が、取得した管理情報に基づいてデータの書き込みを実行すると(ステップS65)、第1制御部70は、コマンドプール使用モードであるため、SSD20へのデータの書き込みであるときは、管理情報及び書き込みデータをコマンドプール71に保存する(ステップS66)。
その後、ホスト2に読み出し要求が発生し、ホスト2が管理情報の取得を要求すると(ステップS67)、第1制御部70は、コマンドプール71をチェックする(ステップS68)。すなわち、第1制御部70は、コマンドプール71内の管理情報に基づいて読み出すデータがコマンドプール71内にあるか否かを判定する。ここでは、コマンドプール71内には対象データがある場合であるので、第1制御部70は、管理情報をホスト2に送信する(ステップS69)。
そして、ホスト2は、管理情報に基づいてデータの読み出しを実行し(ステップS70)、第1制御部70が、コマンドプール71からデータを読み出してホスト2に送信する(ステップS71)。その後、第2制御部50は、性能改善処理を終了すると、性能改善処理の終了を第1制御部70に通知する(ステップS72)。
このように、性能改善処理中にホスト2からデータの読み出し要求が発生すると、第1制御部70は、コマンドプール71をチェックし、コマンドプール71に対象のデータがある場合には、コマンドプール71のデータをホスト2に送信する。したがって、ホスト2は、性能改善処理中に書き込まれた最新のデータを読み出すことができる。
次に、コマンドプール使用モードでホスト2からコマンドを受信したときの第1制御部70の処理のフローについて説明する。図14は、コマンドプール使用モードでホスト2からコマンドを受信したときの第1制御部70の処理のフローを示すフローチャートである。
図14に示すように、第1制御部70は、ホスト2からコマンドを受信すると(ステップS81)、対象データの場所はSSD20であるかHDD30であるかを判定する(ステップS82)。その結果、HDD30である場合には、第1制御部70は、HDD30の読み出し処理又は書き込み処理を行う(ステップS83)。
一方、対象データの場所がSSD20である場合には、第1制御部70は、コマンド種別が読み出しか書き込みかを判定し(ステップS84)、読み出しである場合には、第1対象データはコマンドプール71にあるか否かを判定する(ステップS85)。その結果、第1制御部70は、コマンドプール71にない場合には、SSD20からデータを読み出し(ステップS86)、コマンドプール71にある場合には、コマンドプール71からデータを読み出す(ステップS87)。
また、コマンド種別が書き込みである場合には、第1制御部70は、コマンドプール71へ管理情報及び書き込みデータを格納し(ステップS88)、コマンドプール71に空きがあるか否かを判定する(ステップS89)。その結果、空きがない場合には、第1制御部70は、第2制御部50に性能改善処理終了を指示する(ステップS90)。
このように、コマンドプール71に空きがない場合に、第1制御部70は、第2制御部50に性能改善処理終了を指示することによって、書き込みデータの喪失を防ぐことができる。
上述してきたように、実施例2では、性能改善処理中にSSD20へのデータの書き込みが発生すると、第1制御部70は、管理情報とともに書き込みデータをコマンドプール71に保存する。そして、性能改善処理が終了すると、書込部72がコマンドプール71に保存されているデータをSSD20に書き込む。したがって、CM60は、性能改善処理中のデータの破壊を防ぐことができる。
また、実施例2では、性能改善処理中にホスト2からデータの読み出し要求が発生すると、第1制御部70は、コマンドプール71をチェックし、コマンドプール71に対象のデータがある場合には、コマンドプール71のデータをホスト2へ送信する。したがって、ホスト2は、性能改善処理中に書き込まれた最新のデータを読み出すことができる。
なお、実施例では、SSDを用いるストレージ装置について説明したが、本発明はこれに限定されるものではなく、新たなデータを書き込む前に、記憶する古いデータを消去する必要がある記憶媒体を用いるストレージ装置にも同様に適用することができる。
1,3,92 ストレージ装置
2,91 ホスト
10,60,93 CM
11,12 CPU
11a 第1OS
12a 第2OS
13,63 RAM
14 フラッシュメモリ
20,94a SSD
30,94b HDD
40,70 第1制御部
41 計数部
42 性能改善指示部
43 情報送信部
44 消去実行部
45 通信部
50 第2制御部
51 性能改善部
51a 取得部
51b 判別情報記憶部
51c 管理情報記憶部
51d 消去領域特定部
51e 消去指示部
52 通信部
71 コマンドプール
72 書込部
73 読出部
94 論理ボリューム
100 性能改善プログラム

Claims (7)

  1. 不要なデータを記憶する領域に対し、次回の書き込みに備えてあらかじめデータの物理的な消去が行なわれる第1の記憶装置を含む複数の記憶装置により構築された記憶ボリュームに対する上位装置からのコマンドを受けて、前記記憶装置を制御するストレージ制御装置において、
    前記第1の記憶装置において前記不要なデータを記憶する領域を消去領域として特定する特定部と、
    前記特定部により特定された消去領域のデータの消去を前記第1の記憶装置に指示する指示部と
    を有することを特徴とするストレージ制御装置。
  2. 前記特定部又は前記指示部による処理中に、前記第1の記憶装置へのデータの読み書きを指示する上位装置からのデータの書き込み指示を記憶する指示記憶部と、
    前記特定部及び前記指示部による処理の終了後に前記指示記憶部に記憶された書き込み指示を実行する書込部と
    をさらに有することを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記上位装置からデータの読み出し要求を受信すると、前記指示記憶部に記憶された書き込み指示により書き込まれるデータの読み出し要求であるか否かを判定し、前記指示記憶部に記憶された書き込み要求により書き込まれるデータの読み出し要求である場合に、該書き込まれるデータを前記上位装置に送信する読出部
    をさらに有することを特徴とする請求項2に記載のストレージ制御装置。
  4. 前記第1の記憶装置へ書き込まれたデータの量を測定する測定部をさらに有し、
    前記測定部により測定されたデータの量が所定の閾値を越えると前記特定部に処理の開始を指示する開始指示部と
    をさらに有することを特徴とする請求項1、2又は3に記載のストレージ制御装置。
  5. 前記特定部は、前記記憶装置へのデータの読み書きを指示する上位装置で動作するファイルシステムに基づいて前記消去領域を特定することを特徴とする請求項1〜4のいずれか一つに記載のストレージ制御装置。
  6. 不要なデータを記憶する領域に対し、次回の書き込みに備えてあらかじめデータの物理的な消去が行なわれる第1の記憶装置を含む複数の記憶装置により構築された記憶ボリュームに対する上位装置からのコマンドを受けて、前記記憶装置を制御するストレージ制御装置に組み込まれたコンピュータで実行される制御プログラムにおいて、
    前記第1の記憶装置において前記不要なデータを記憶する領域を消去領域として特定し、
    特定した消去領域のデータの消去を前記第1の記憶装置に指示する
    処理を前記コンピュータに実行させることを特徴とする制御プログラム。
  7. 不要なデータを記憶する領域に対し、次回の書き込みに備えてあらかじめデータの物理的な消去が行なわれる第1の記憶装置を含む複数の記憶装置により構築された記憶ボリュームに対する上位装置からのコマンドを受けて、前記記憶装置を制御するストレージ制御装置の制御方法において、
    前記第1の記憶装置で不要なデータを記憶する領域を消去領域として特定し、
    特定した消去領域のデータの消去を前記第1の記憶装置に指示する
    ことを特徴とする制御方法。
JP2013142023A 2013-07-05 2013-07-05 ストレージ制御装置、制御プログラム及び制御方法 Pending JP2015014963A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013142023A JP2015014963A (ja) 2013-07-05 2013-07-05 ストレージ制御装置、制御プログラム及び制御方法
US14/299,578 US20150012691A1 (en) 2013-07-05 2014-06-09 Storage control apparatus, control program, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013142023A JP2015014963A (ja) 2013-07-05 2013-07-05 ストレージ制御装置、制御プログラム及び制御方法

Publications (1)

Publication Number Publication Date
JP2015014963A true JP2015014963A (ja) 2015-01-22

Family

ID=52133602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013142023A Pending JP2015014963A (ja) 2013-07-05 2013-07-05 ストレージ制御装置、制御プログラム及び制御方法

Country Status (2)

Country Link
US (1) US20150012691A1 (ja)
JP (1) JP2015014963A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016143327A (ja) * 2015-02-04 2016-08-08 京セラドキュメントソリューションズ株式会社 データ管理装置、画像処理装置及びデータ管理方法
CN107615253A (zh) * 2015-06-01 2018-01-19 深圳市大疆创新科技有限公司 用于存储器架构的系统和方法
KR20190052083A (ko) * 2016-09-14 2019-05-15 알리바바 그룹 홀딩 리미티드 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016160624A1 (en) * 2015-03-27 2016-10-06 Other Lab Llc Lower-leg exoskeleton system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275111A (ja) * 1997-03-27 1998-10-13 Internatl Business Mach Corp <Ibm> ディスクドライブ装置及びその制御方法
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
WO2011145138A1 (ja) * 2010-05-18 2011-11-24 株式会社日立製作所 ストレージ装置及びデータ管理方法
JP2012198811A (ja) * 2011-03-22 2012-10-18 Toshiba Corp メモリシステム、不揮発性記憶装置及びその制御方法
JP2012221251A (ja) * 2011-04-08 2012-11-12 Toshiba Corp メモリシステムの制御方法、情報処理装置、及びプログラム
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
TWI472916B (zh) * 2008-06-02 2015-02-11 A Data Technology Co Ltd 記憶體儲存空間管理方法
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US10558705B2 (en) * 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US20130326161A1 (en) * 2012-05-31 2013-12-05 Oren Cohen Method and Host Device for Assessing Execution of Trim Commands

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275111A (ja) * 1997-03-27 1998-10-13 Internatl Business Mach Corp <Ibm> ディスクドライブ装置及びその制御方法
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
WO2011145138A1 (ja) * 2010-05-18 2011-11-24 株式会社日立製作所 ストレージ装置及びデータ管理方法
JP2012198811A (ja) * 2011-03-22 2012-10-18 Toshiba Corp メモリシステム、不揮発性記憶装置及びその制御方法
JP2012221251A (ja) * 2011-04-08 2012-11-12 Toshiba Corp メモリシステムの制御方法、情報処理装置、及びプログラム
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016143327A (ja) * 2015-02-04 2016-08-08 京セラドキュメントソリューションズ株式会社 データ管理装置、画像処理装置及びデータ管理方法
CN107615253A (zh) * 2015-06-01 2018-01-19 深圳市大疆创新科技有限公司 用于存储器架构的系统和方法
JP2018515852A (ja) * 2015-06-01 2018-06-14 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd ファイルを格納する方法
US10635633B2 (en) 2015-06-01 2020-04-28 SZ DJI Technology Co., Ltd. Systems and methods for memory architecture
KR20190052083A (ko) * 2016-09-14 2019-05-15 알리바바 그룹 홀딩 리미티드 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스
JP2019532413A (ja) * 2016-09-14 2019-11-07 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む方法及びデバイス
KR102275094B1 (ko) 2016-09-14 2021-07-08 앤트 파이낸셜 (항저우) 네트워크 테크놀로지 씨오., 엘티디. 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스
US11099744B2 (en) 2016-09-14 2021-08-24 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Method and device for writing stored data into storage medium based on flash memory
US11287984B2 (en) 2016-09-14 2022-03-29 Beijing Oceanbase Technology Co., Ltd. Method and device for writing stored data into storage medium based on flash memory

Also Published As

Publication number Publication date
US20150012691A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
US10732898B2 (en) Method and apparatus for accessing flash memory device
US8521949B2 (en) Data deleting method and apparatus
JP4890048B2 (ja) 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
US8285965B2 (en) Aligning data storage device partition to boundary of physical data sector
JP4859837B2 (ja) 情報記録媒体アクセス装置、及びデータ記録方法
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US8924659B2 (en) Performance improvement in flash memory accesses
US20110099326A1 (en) Flash memory system and defragmentation method
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
WO2011095516A1 (en) Method and system for mass storage on flash memory
JP4280055B2 (ja) メモリ制御方法および装置
EP3346387B1 (en) Storage system and system garbage collection method
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
KR20100056750A (ko) 불휘발성 메모리 시스템 및 그것의 액세스 방법
KR20110005817A (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
US20190243758A1 (en) Storage control device and storage control method
KR20110139956A (ko) 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
US20140297949A1 (en) Disk array device
JP2015014963A (ja) ストレージ制御装置、制御プログラム及び制御方法
JP2011022760A (ja) データ消去方法及び情報機器
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
CN110312986B (zh) 用于在固态设备上存储数据的流的机会性使用
JP4340327B1 (ja) マルチファンクションプリンタ
US20180232154A1 (en) Append Only Streams For Storing Data On A Solid State Device
US20160041759A1 (en) Storage system and data transmitting method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180227