JP2019159639A - ストレージシステム、データ管理方法、及びデータ管理プログラム - Google Patents

ストレージシステム、データ管理方法、及びデータ管理プログラム Download PDF

Info

Publication number
JP2019159639A
JP2019159639A JP2018043950A JP2018043950A JP2019159639A JP 2019159639 A JP2019159639 A JP 2019159639A JP 2018043950 A JP2018043950 A JP 2018043950A JP 2018043950 A JP2018043950 A JP 2018043950A JP 2019159639 A JP2019159639 A JP 2019159639A
Authority
JP
Japan
Prior art keywords
data
storage area
area
storage
capacity
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
JP2018043950A
Other languages
English (en)
Inventor
貴洋 成子
Takahiro Naruko
貴洋 成子
昌弘 鶴谷
Masahiro Tsuruya
昌弘 鶴谷
彬史 鈴木
Akifumi Suzuki
彬史 鈴木
鎮平 野村
Shimpei Nomura
鎮平 野村
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018043950A priority Critical patent/JP2019159639A/ja
Priority to US16/052,861 priority patent/US20190278486A1/en
Publication of JP2019159639A publication Critical patent/JP2019159639A/ja
Pending legal-status Critical Current

Links

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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0653Monitoring storage devices or 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7208Multiple device management, e.g. distributing data over multiple flash 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】不揮発性半導体メモリデバイスを接続可能なストレージシステムにおける平均リードレイテンシを低く維持できるようにする。【解決手段】1以上のSSD220を接続可能であって、SSD220の記憶領域に対するデータの入出力を制御可能なストレージシステム20において、ストレージシステム20は、処理を実行するプロセサ211を有し、プロセサ211を、1以上の同一の特性のSSD220により提供される記憶領域の一部を所定のデータを記憶するための第1記憶領域(性能保持領域)として管理し、ライトアクセス頻度が所定値未満であるデータの中から、第1記憶領域に格納させるデータを決定し、第1記憶領域に格納させ、第1記憶領域に格納させると決定されなかったデータを、SSD220により提供される第1記憶領域と異なる第2記憶領域(普通領域)に格納させるように構成する。【選択図】図1

Description

本発明は、不揮発性半導体メモリデバイスの記憶領域を用いてデータを管理するストレージシステムに関する。
不揮発性半導体メモリデバイスに備えられる不揮発性半導体メモリとしては、例えば、フラッシュメモリが知られている。フラッシュメモリは、データの書き込み後の経過時間に応じて、反転したビット(障害ビット)が格納したデータ内に増加する特性(リテンション特性)を持つ。さらに、フラッシュメモリは、消去処理の回数(消去回数)に伴って、障害ビット数の増加が加速する特性(データ保持特性の低下)を持つ。このため、フラッシュメモリを記憶媒体とした記憶デバイス、例えば、SSD(Solid State Drive)においては、記憶するデータに対して複数ビットの誤り符号訂正能力を持つECC(Error Correcting Code)を付加して記憶するようにし、データの読み出し時にECCを用いて、障害ビットを修正するようにしている。
しかし、データの書き込みから長期間が経過した場合や、SSDのデータ保持特性が低下した場合、または、これらの事象が組み合わさった場合には、ECCによって訂正可能な数を超える数の障害ビットが発生することがある。これに対して、SSDにおいては、フラッシュメモリのパラメタを微調整しながら格納データを読み出す方式(再読み出し方式)や、強力な誤り符号訂正アルゴリズムを使用することで、障害ビットを修正して、データを読み出す方式が使用されている。
消去回数が多く、データ保持特性が低下したSSDにおいては、障害ビットが高速に増加するため、障害ビット数がECCによる訂正可能数を超えるデータが増加する。これらのデータは、再読み出し方式や強力な誤り符号訂正アルゴリズムを用いて読み出す必要がある。しかし、再読み出し方式や、強力な誤り符号訂正アルゴリズムを用いる場合には、長い処理時間を要するため、障害ビット数が増加したデータを読み出すためには、大きなレイテンシを要する。以上の理由により、SSDの平均リードレイテンシは、SSDへライトしたデータ量とともに悪化することとなる。
例えば、特許文献1には、フラッシュメモリにデータを記録させてから所定の間隔でデータをいったん読み出して、再びフラッシュメモリに書き直す技術(リフレッシュ)が開示されている。
米国特許第7325090号明細書
例えば、フラッシュメモリにおいて、平均リードレイテンシの悪化に対して無対策であるケースについて説明する。このケースでは、ライト頻度が高いデータについては、SSDへのデータライト量によらず一定のレイテンシでリードできる。これは、ライト頻度が高いデータは書き込みからの経過時間が短く、障害ビット数がECCによる訂正可能数以下に留まるためである。一方、ライト頻度が低いデータについては、SSDへのデータライト量の増加に伴ってレイテンシが増加する。このため、SSDの平均リードレイテンシは、SSDへのデータライト量の増加に伴って悪化することとなる。
次に、フラッシュメモリにおいて、平均リードレイテンシを改善するために、データが消失してしまう間隔よりも短い間隔でリフレッシュ(高頻度リフレッシュ)を行うケースについて説明する。この高頻度リフレッシュを行うケースにおいては、格納されているデータは、このデータの障害ビット数がECCによる訂正可能数を超える前に、リフレッシュにより上書きされる。このため、ライト頻度が高いデータに加え、ライト頻度が低いデータについても、リードレイテンシはSSDへのデータライト量によらず一定に維持することができる。しかし、高頻度リフレッシュを実行する場合には、フラッシュメモリへの頻繁なデータの書き直しを要する。フラッシュメモリに書き込み可能なデータ量(書き換え耐性)は有限であるため、高頻度リフレッシュは、上位装置がSSDにライト可能なデータ量(寿命)の減少を招いてしまう。
例えば、今後普及が見込まれるQLC(Quad Level Cell)フラッシュメモリは、現行のTLC(Triple Level Cell)フラッシュメモリに比べ、書き換え耐性が低いと予想されている。このため、高頻度リフレッシュを使用する場合、ユーザによるデータライト量に対して十分なSSDの寿命を提供できない虞がある。
本発明は、上記事情に鑑みなされたものであり、その目的は、不揮発性半導体メモリデバイスを接続可能なストレージシステムにおけるデータの平均リードレイテンシを低く維持することのできる技術を提供することにある。
上記目的を達成するため、一観点に係るストレージシステムは、1以上の不揮発性半導体メモリデバイスを接続可能であって、不揮発性半導体メモリデバイスの記憶領域に対するデータの入出力を制御可能なストレージシステムであって、ストレージシステムは、処理を実行するプロセサ部を有し、プロセサ部は、1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される記憶領域の一部を所定のデータを記憶するための第1記憶領域として管理し、ライトアクセス頻度が所定値未満であるデータの中から、第1記憶領域に格納させるデータを決定し、第1記憶領域に格納させ、第1記憶領域に格納させると決定されなかったデータを、1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される第1記憶領域と異なる第2記憶領域に格納させる。
本発明によれば、不揮発性半導体メモリデバイスを接続可能なストレージシステムにおける平均リードレイテンシを低く維持することができる。
図1は、第1実施形態に係る計算機システムの全体構成図である。 図2は、第1実施形態に係るストレージコントローラのRAMの構成図である。 図3は、第1実施形態に係るボリュームの論理構成を説明する図である。 図4は、第1実施形態に係る管理画面の一例を示す図である。 図5は、第1実施形態に係る接続デバイス管理テーブルの構成図である。 図6は、第1実施形態に係るアクセス頻度管理テーブルの構成図である。 図7は、第1実施形態に係る仮想アドレス変換テーブルの構成図である。 図8は、第1実施形態に係る空き物理アドレス管理キューの構成図である。 図9は、第1実施形態に係る初期設定処理のフローチャートである。 図10は、第1実施形態に係る領域容量計算処理のフローチャートである。 図11は、第1実施形態に係るリード処理のフローチャートである。 図12は、第1実施形態に係るライト処理のフローチャートである。 図13は、第1実施形態に係るアクセス頻度更新処理のフローチャートである。 図14は、第1実施形態に係るマイグレーション処理のフローチャートである。 図15は、第1実施形態に係る配置領域判定処理のフローチャートである。 図16は、第1実施形態に係るページマイグレーション処理のフローチャートである。 図17は、第2実施形態に係る計算機システムの全体構成図である。 図18は、第2実施形態に係るSSDの構成図である。 図19は、第2実施形態に係る初期設定処理のフローチャートである。
いくつかの実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プロセサ部」は、1以上のプロセサを含む。少なくとも1つのプロセサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセサである。1以上のプロセサの各々は、シングルコアでもよいしマルチコアでもよい。プロセサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶部(例えばメモリ)及び/又はインタフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体が、プロセサ(或いは、そのプロセサを有する装置又はシステム)とされてもよい。また、プロセサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な不揮発性の記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
まず、第1実施形態に係る計算機システムについて説明する。
図1は、第1実施形態に係る計算機システムの全体構成図である。
計算機システム10は、ホスト計算機(以下、ホストという)11と、管理装置12と、ストレージシステム20と、を備える。ホスト11と、管理装置12と、ストレージシステム20とは、例えば、LAN(Local Area Network)や、WAN(Wide area network)等のネットワーク13を介して接続されている。
ホスト11は、例えば業務システムの中核をなすコンピュータ、ファイルサーバ等で構成され、ストレージシステム20に対してリード/ライトを要求する装置である。管理装置12は、例えば、プロセサ、メモリ、ネットワークインタフェース、ローカル入出力デバイス等のハードウェア資源と、管理プログラムなどのソフトウェア資源とを備えたコンピュータである。管理装置12は、管理プログラムによってストレージシステム20から情報を取得し、ローカル入出力デバイス(ディスプレイ等)を介して、例えば、管理画面500(図4参照)を表示する。また、管理装置12は、管理画面500を介してシステム管理者によりに入力された各種設定情報を、ストレージシステム20からの要求に対して応答する機能を有する。なお、ストレージシステム20、ホスト11、及び管理装置12は、それぞれ同一のハードウェア装置で構成されていてもよく、異なるハードウェア装置で構成されていてもよい。
ストレージシステム20は、ストレージコントローラ200と、1以上の不揮発性半導体メモリデバイスの一例としてのSSD(Solid State Drive)220とを備える。
ストレージコントローラ200は、ネットワークインタフェース210と、プロセサ部の一例としてのプロセサ211と、キャッシュ用メモリ212と、ドライブインタフェース214と、メモリ部の一例としてのRAM(Random Access Memory)215と、これら各要素を相互接続するスイッチ213とを備える。
プロセサ211は、RAM215に格納されたプログラムや管理情報に基づいて、ストレージシステム20の全体を制御する。RAM215は、プロセサ211により実行されるプログラムを格納するプログラム領域216と、各種管理情報を格納する管理情報領域217とを備える。
キャッシュ用メモリ212は、ホスト11から送信されたライト対象データを、ライト対象データがSSD220に書き込まれるまでの間保持する。また、キャッシュ用メモリ212は、ホスト11からのリード要求に応答して、SSD220から読み出されたライト対象データを、ライト対象データがホスト11に送信されるまでの間保持する。ドライブインタフェース214は、ストレージコントローラ200と、1以上のSSD220とを通信可能に接続するインタフェースである。ネットワークインタフェース210は、ネットワーク13を介して外部装置(ホスト11、管理装置12等)を通信可能に接続するインタフェースである。
なお、ネットワークインタフェース210、プロセサ211、キャッシュ用メモリ212、デバイスインタフェース214、RAM215、及びスイッチ213は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)として、1つの半導体素子として構成してもよいし、複数の個別のIC(Integrated Circuit)を相互に接続して構成してもよい。
本実施形態では、複数のSSD220は、同一の特性(少なくともメモリセル構成が同一である)を持つSSDであり、例えば、同一容量であって、同一書き換え耐性を有していてもよい。なお、SSD220は、同一メモリセル構成(例えば、QLC、TLCのいずれか)であって、容量が異なっていてもよい。本実施形態においては、ストレージシステム20における平均リードレイテンシを低く維持するために、ストレージコントローラ200は、SSD220を単位として、それぞれの記憶領域を性能保持領域(第1記憶領域)と、普通領域(第2記憶領域)とのいずれかに割り当てて管理する。
次に、ストレージコントローラ200のRAM215の構成について詳細に説明する。
図2は、第1実施形態に係るストレージコントローラのRAMの構成図である。
RAM215は、プロセサ211により実行されるプログラムを格納するプログラム領域216と、プログラムが読み書き等を行う各種管理情報を格納する管理情報領域217とを備える。
プログラム領域216には、初期設定プログラム320、データ読み出しプログラム321、データ書き込みプログラム322、アクセス頻度更新プログラム323、マイグレーションプログラム324、領域容量計算プログラム325、配置領域判定プログラム326、及びページマイグレーションプログラム327が格納される。
初期設定プログラム320は、装置パラメタの算出、RAIDグループの構築、及び管理情報の初期化を行うプログラムである。データ読み出しプログラム321は、ホスト11からのリード要求に対し、SSD220からデータを読み出し、ホスト11に応答する処理を行うプログラムである。データ書き込みプログラム322は、ホスト11からのライト要求に対応するライトデータをSSD220に書き込む処理を行うプログラムである。アクセス頻度更新プログラム323は、データのリード頻度とライト頻度とを計算するプログラムである。マイグレーションプログラム324は、データのリード頻度と、ライト頻度とに基づき、SSD220におけるデータの再配置を行うプログラムである。領域容量計算プログラム325は、性能保持領域の容量と、普通領域の容量とを計算するためのプログラムである。配置領域判定プログラム326は、論理ページに割り当てる物理ページの領域を判定するためのプログラムである。ページマイグレーションプログラム327は、論理ページのデータのマイグレーションを実行するためのプログラムである。
管理情報領域321には、接続デバイス管理テーブル330、アクセス頻度管理テーブル331、仮想アドレス変換テーブル332、及び空き物理領域管理キュー333が格納される。
接続デバイス管理テーブル330は、ストレージコントローラ200に接続されたSSD220の容量や、書き換え耐性などの情報を格納する。アクセス頻度管理テーブル331は、ボリュームの論理ページ毎のリード頻度とライト頻度とを管理する。仮想アドレス変換テーブル332は、ボリュームにおける論理アドレスと物理アドレスとの変換情報を格納する。空き物理アドレス管理キュー333は、SSD220の未使用領域のアドレスを管理する。
次に、ストレージシステム20で管理されるボリュームの論理構成について説明する。
図3は、第1実施形態に係るボリュームの論理構成を説明する図である。
ストレージシステム20においては、1以上の論理ボリューム(LVOL)400,401を管理する。論理ボリューム400,401は、ホスト11から認識可能な論理的な記憶領域を有し、ホスト11によるライト要求とリード要求の対象となるボリュームである。各LVOL400,401には、識別可能なLUN(Logical Unit Number)が割り当てられる。ストレージシステム20においては、論理ボリューム400(401)は、論理的な記憶領域を所定の固定長の論理ページ410(411)に分割されて管理されている。
また、ストレージシステム20においては、普通領域に割り当てられた複数のSSD220により構成されるRAIDグループ420と、性能保持領域に割り当てられた複数のSSD220により構成されるRAIDグループ421とが構成される。各RAIDグループ420,421は、物理的な記憶領域を、論理ページと同サイズの物理ページ430,431に分割されて管理されている。
本実施形態では、ストレージシステム20は、ホスト11から或る論理ページに対して初めてライト要求を受け取った場合に、この論理ページに対して、普通領域に割り当てられているRAIDグループ420の物理ページ430を動的に割り当てる。本実施形態では、後述するマイグレーション処理により、論理ページ410,411に割り当てられる物理ページは変更されることがある。
次に、管理装置12がシステム管理者に表示する管理画面500について説明する。
図4は、第1実施形態に係る管理画面の一例を示す図である。
管理画面500には、設定テーブル510と、装置ステータステーブル520と、メッセージウインドウ530とが表示される。
設定テーブル510は、システム管理者がストレージシステム20の動作を調整するためのパラメタを入力するテーブルである。設定テーブル510は、ユーザデータライト量フィールド511を含む。ユーザデータライト量フィールド511は、ユーザがホスト11を使用してストレージシステム20に印加するワークロードの想定ライト量(ユーザデータライト量)を指定するための領域である。ライト量の単位は、所定の時間当たりのデータ量、例えば、TB(Tera Bytes)/Day(日)であってもよく、DWPD(Drive Write Per Day)であってもよく、又は、TBW (Total Bytes Written)など、他の単位であってもよい。システム管理者により、ユーザデータライト量フィールド511に想定ライト量が指定されると、管理装置12は、指定された想定ライト量をストレージシステム20に通知する。なお、想定ライト量を通知するタイミングとしては、指定された時点であってもよく、ストレージシステム20から要求があった場合であってもよい。
装置ステータステーブル520は、ストレージシステム20の現在の状態を表示するためのテーブルである。この装置ステータステーブル520は、例えば、ストレージシステム20から送信された情報に基づいて表示される。装置ステータステーブル520は、性能保持領域容量フィールド521と、普通領域容量フィールド522と、性能保持領域使用済み容量フィールド523と、普通領域使用済み容量フィールド524とを含む。
性能保持領域容量フィールド521には、性能保持領域に割り当てられたSSD220の物理容量が表示される。普通領域容量フィールド522には、普通領域に割り当てられたSSD220の物理容量が表示される。性能保持領域使用済み容量フィールド523には、性能保持領域に格納されたデータの合計容量が表示される。普通領域使用済み容量フィールド524には、普通領域に格納されたデータの合計容量が表示される。なお、これらのフィールドに表示される容量は、TB単位に加え、又は代えて、使用割合のパーセンテージなどの他の表現としてもよい。
メッセージウインドウ530には、各種メッセージが表示される。
次に、ストレージコントローラ200で管理されている管理情報について詳細に説明する。
まず、接続デバイス管理テーブル330について説明する。
図5は、第1実施形態に係る接続デバイス管理テーブルの構成図である。
接続デバイス管理テーブル330は、ストレージコントローラ200に接続されたSSD220の状態を管理するテーブルであり、容量フィールド610と、書き換え耐性フィールド611と、接続台数612フィールドとを含む1次元テーブルである。
容量フィールド610には、ストレージコントローラ200に接続されているSSD220の1台当たりの物理容量が格納される。書き換え耐性フィールド611には、SSD220の1台当たりに書き込み可能なデータ量に関する書き換え耐性情報が格納される。書き換え耐性情報は、DWPD、TBW等の単位としてもよい。接続台数フィールド612には、ストレージコントローラ200に接続されているSSD220の台数が格納される。接続デバイス管理テーブル330に格納される情報は、例えば、容量と書き換え耐性とを応答可能なインタフェースを有するSSD220から取得するようにしてもよく、或いは、システム管理者による情報の入力が行われた管理装置12から取得するようにしてもよい。
次に、アクセス頻度管理テーブル331について説明する。
図6は、第1実施形態に係るアクセス頻度管理テーブルの構成図である。
アクセス管理テーブル331は、LVOLの各論理ページ毎にアクセスの頻度に関するアクセス頻度情報を管理するための2次元テーブルであり、各論理ページ毎の行を有する。アクセス管理テーブル331の行(エントリ)は、LUNフィールド710と、仮想アドレスフィールド711と、リード頻度フィールド712と、ライト頻度フィールド713と、リード回数フィールド714と、ライト回数フィールド715とを含む。
LUNフィールド710には、行に対応する論理ページが属するLVOLのLUNが格納される。仮想アドレスフィールド711には、LVOLにおける論理ページの開始アドレス(仮想アドレス)が格納される。リード頻度フィールド712には、行に対応する論理ページに対するリードの頻度(リード頻度:リードアクセス頻度)が格納される。本実施形態では、リード頻度フィールド712には、アクセス頻度更新処理(図13参照)の前々回の実行から前回の実行までの時間間隔におけるリード頻度が格納される。ライト頻度フィールド713には、行に対応する論理ページに対するライトの頻度(ライト頻度:ライトアクセス頻度)が格納される。本実施形態では、ライト頻度フィールド713には、アクセス頻度更新処理の前々回の実行から前回の実行までの時間間隔におけるライト頻度が格納される。リード回数フィールド714には、前回のアクセス頻度更新処理の実行から現在までの時間間隔における、行に対応する論理ページに対するリード回数が格納される。ライト回数フィールド715には、前回のアクセス頻度更新処理の実行から現在までの時間間隔における、行に対応する論理ページに対するライト回数が格納される。
リード頻度及びライト頻度は、1日当たりのアクセス回数(Access/Day)であってもよく、他の単位で表現されてもよい。アクセス頻度管理テーブルは、図6に示す例では、各論理ページの行を、LUNフィールド710及び仮想アドレスフィールド711の値について昇順となるように並べていたが、本発明はこれに限られず、各論理ページの行は、任意の順序で並べてもよい。また、アクセス頻度管理テーブル331で管理する情報を、テーブル以外のデータ構造によって管理するようにしてもよい。
次に、仮想アドレス変換テーブル332について説明する。
図7は、第1実施形態に係る仮想アドレス変換テーブルの構成図である。
仮想アドレス変換テーブル332は、論理ページに割り当てられた仮想アドレスと、論理ページに割り当てられている物理ページの物理アドレスとの対応関係を表すテーブルであり、各論理ページ毎の行を有する。仮想アドレス変換テーブル332の行は、LUNフィールド810と、仮想アドレスフィールド811と、領域フィールド812と、物理アドレスフィールド813とを含む。
LUNフィールド810には、行に対応する論理ページが属するLVOLのLUNが格納される。仮想アドレスフィールド811には、LVOLにおける論理ページの開始アドレスが格納される。領域フィールド812には、行に対応する論理ページに割り当てられている物理ページの領域を示す情報(領域情報)が格納される。領域フィールド812には、行に対応する論理ページに対して物理ページが割り当てられていないことを表す「未割り当て」と、行に対応する論理ページに対して普通領域の物理ページが割り当てられていることを表す「普通」と、行に対応する論理ページに対して性能保持領域の物理ページが割り当てられていることを表す「性能保持」とのいずれかが設定される。物理アドレスフィールド813には、行に対応する論理ページに割り当てられた物理ページの先頭の物理アドレスが格納される。なお、物理アドレスフィールド813の物理アドレスは、行に対応する領域フィールド812の領域情報が示す領域に応じたRAIDグループの物理ページの物理アドレスである。
なお、仮想アドレス変換テーブル332は、図7に示す例では、各行をLUN810及び仮想アドレス811の値について昇順となるように並べた例を示しているが、本発明はこれに限られず、各行は、任意の順序としてもよい。また、仮想アドレス変換テーブル332で管理する情報を、テーブル以外のデータ構造によって管理するようにしてもよい。
次に、空き物理アドレス管理キュー333について説明する。
図8は、第1実施形態に係る空き物理アドレス管理キューの構成図である。
空き物理アドレス管理キュー333は、第2物理アドレス管理情報の一例としての普通領域管理キュー910と、第1物理アドレス管理情報の一例としての性能保持領域管理キュー911との2本のキューを含む。
普通領域管理キュー910は、普通領域に属する物理ページのうち、論理ページに未割り当ての物理ページの先頭アドレス920を保持する。普通領域管理キュー910は、要素としての普通領域の先頭物理アドレスを、最大で普通領域に属する物理ページの数だけ保持することができる。
性能保持領域管理キュー911は、性能保持領域に属する物理ページのうち、論理ページに未割り当ての物理ページの先頭アドレス930を保持する。性能保持領域管理キュー911は、要素としての性能保持領域の物理アドレス930を、最大で性能保持領域に属する物理ページ数だけ保持することができる。普通領域管理キュー910と、性能保持領域管理キュー911とのいずれのキューに対してもFIFO(First-in-first-out)方式で要素のエンキュー及びデキューを行うことができる。なお、空き物理アドレス管理キュー333で管理する情報を、テーブルなど、キュー以外のデータ構造により管理するようにしてもよい。
次に、第1実施形態に係るストレージシステム20の処理動作について説明する。
図9は、第1実施形態に係る初期設定処理のフローチャートである。
初期設定処理(S1000)は、例えば、ストレージコントローラ200が初めて起動された際に、プロセサ211が初期設定動作プログラム320を実行することにより実行される。
初期設定動作処理(S1000)が開始されると、初期設定プログラム320を実行するプロセサ211は、領域容量計算プログラム325をコールすることにより、性能保持領域及び普通領域に割り当てる容量を計算する領域容量計算処理(図10参照)を実行させる(S1002)。領域容量計算処理から戻り値として普通領域容量及び性能保持領域容量が返される。
次いで、プロセサ211は、普通領域に割り当てるSSD220の台数Nを計算する(S1003)。プロセサ211は、台数Nを、次の式により計算する。
台数N=Ceil(普通領域容量/SSD1台当たりの容量)。
すなわち、プロセサ211は、普通領域に割り当てる容量(普通領域容量)を、接続デバイス管理テーブル330の行の容量フィールド610に格納されている容量で除算し、商を切り上げることにより台数Nを算出する。
次に、プロセサ211は、性能保持領域に割り当てるSSD220の台数Pを計算する(S1004)。プロセサ211は、台数Pを次の式により計算する。
台数P=接続台数−N
すなわち、プロセサ211は、接続デバイス管理テーブル330の行の接続台数フィールド612の接続台数から、台数Nを減算することで台数Pを計算する。
次に、プロセサ211は、普通領域を構成するRAIDグループ420を構築する(S1005)。具体的には、プロセサ211は、ストレージコントローラ200に接続されたSSD220の中からN台を任意に選択し、これらのSSD220の記憶領域を普通領域に割り当て、これらのSSD220によりRAIDグループ420を構築する。なお、プロセサ211は、N台のSSD220のすべてを使用して1つのRAIDグループを構築するようにしてもよいし、複数のRAIDグループを構築し、これらのRAIDグループの記憶領域を1つのアドレス空間で扱えるよう仮想化するようにしてもよい。また、構築するRAIDグループ420のRAIDレベルは、任意のレベルとしてもよい。なお、RAIDグループ420のRAIDレベルをRAID0以外とする場合には、パリティ用のSSDを別に用意する必要がある。
次いで、プロセサ211は、性能保持領域を構成するRAIDグループ421を構築する(S1006)。具体的には、プロセサ211は、S1005で普通領域に割り当てられなかったSSD220について、これらSSD220の記憶領域を性能保持領域に割り当て、これらのSSD220によりRAIDグループ421を構築する。なお、プロセサ211は、これらSSD220により1つのRAIDグループを構築するようにしてもよいし、複数のRAIDグループを構築し、これらのRAIDグループの記憶領域を1つのアドレス空間で扱えるよう仮想化するようにしてもよい。また、構築するRAIDグループ421のRAIDレベルは、任意のレベルとしてもよい。なお、RAIDグループ421のRAIDレベルをRAID0以外とする場合には、パリティ用のSSDを別に用意する必要がある。
次に、プロセサ211は、普通領域管理キュー910を初期化する(S1007)。具体的には、プロセサ211は、物理ページのサイズの倍数(各物理ページの先頭アドレス)を、0からRAIDグループ420の容量未満となるまで、普通領域管理キュー910にエンキューする。たとえば、物理ページのサイズが1MB(0x100000)、RAIDグループ420のサイズが4GB(0x100000000)のとき、プロセサ211は、x00000,0x100000,0x200000,…,0xfff00000を普通領域管理キュー910にエンキューする。
次に、プロセサ211は、性能保持領域管理キュー911を初期化する(S1008)。具体的には、プロセサ211は、物理ページのサイズの倍数(各物理ページの先頭アドレス)を、0からRAIDグループ421の容量未満となるまで、性能保持領域管理キュー911にエンキューする。
次に、プロセサ211は、管理装置12の管理画面500を更新させる(S1009)。具体的には、プロセサ211は、S1002で計算した性能保持領域の容量及び普通領域の容量を、ネットワーク13を介して管理装置12に通知する。これに対して、管理装置12では、性能保持領域の容量及び普通領域の容量を受領し、これらの容量を管理画面500の性能保持領域容量フィールド521及び普通領域容量フィールド522に表示することとなる。なお、S1009の後、プロセサ211は、初期設定処理を終了する(S1010)。
次に、初期設定処理のS1002に対応する領域容量計算処理について説明する。
図10は、第1実施形態に係る領域容量計算処理のフローチャートである。
領域容量計算処理(S1100)は、プロセサ211によって領域容量計算プログラム325がコールされた場合(初期設定処理のS1002)に、領域容量計算プログラム325をプロセサ211が実行することにより実現される処理であり、性能保持領域及び普通領域の容量を計算し、計算結果をコール元へ返す処理(サブルーチン)である。
領域容量計算処理(S1100)が開始されると、プロセサ211は、SSD220にライト可能なデータ量の総量(ドライブ総ライト可能量)を計算する(S1101)。具体的には、プロセサ211は、接続デバイス管理テーブル330の容量フィールド610、書き換え耐性フィールド611、及び接続台数フィールド612を参照して、SSD1台の容量と、書き換え耐性と、接続台数とを取得し、これらの積を計算してドライブ総ライト可能量とする。ここで、上記計算式からわかるように、ドライブ総ライト可能量とは、同時にライトできるデータ量ではなく、データをライトし、その後消去し、またデータをライトするといったように、消去を繰り返し行いつつデータをライトできるデータ量を意味している。
次に、プロセサ211は、管理装置12からユーザデータライト量を取得する(S1102)。具体的には、プロセサ211は、管理装置12にユーザデータライト量を問い合わせる。この問い合わせに対して、管理装置12は、管理画面500のユーザデータライト量フィールド511にシステム管理者によって指定されたユーザデータライト量を特定し、特定したユーザデータライト量をストレージコントローラ200に応答する。これに対して、プロセサ211は、管理装置12の応答を受領してユーザデータライト量を取得する。なお、ユーザデータライト量を取得する方法は、上記したPULL型の情報取得方法に限られず、例えば、管理装置12がストレージコントローラ200に自発的にユーザデータライト量を送付するPUSH型の情報取得方法としてもよい。
次に、プロセサ211は、ユーザによるデータの総ライト量(総ユーザライト量)を計算する(S1103)。具体的には、プロセサ211は、S1102で取得したユーザデータライト量と、ストレージシステム20の製品保証期間(想定期間の一例)との積を計算して、総ユーザライト量とする。例えば、ユーザデータライト量が100TB/Day、製品保証期間が5年である場合、プロセサ211は、総ユーザライト量を、182.5PBと計算する。
次に、プロセサ211は、ストレージコントローラ200に接続されたSSD220の容量の合計(総物理容量)を計算する(S1104)。具体的には、プロセサ211は、接続デバイス管理テーブル330の容量フィールド610と接続台数フィールド612からSSD1台当たりの容量と接続台数とを取得し、これらの積を計算することにより総物理容量を得る。
次に、プロセサ211は、普通領域の容量(普通領域容量)を計算する(S1105)。具体的には、プロセサ211は、S1103で計算した総ユーザライト量を、S1101で計算したドライブ総ライト可能量で除算した商を求める。次に、プロセサ211は、この商と、S1104で計算した総物理容量との積を求め、これを普通領域容量とする。この計算により普通領域容量を算出すると、この普通領域容量に対応する普通領域に対して、ライト可能なデータの総量は、総ユーザライト量以上となる。すなわち、ユーザによりライトされるデータの全てを普通領域の記憶領域に集中してライトしたとしても、SSD220を製品保証期間に亘って使用することを担保することができる。
次に、プロセサ211は、性能保持領域の容量(性能保持領域容量)を計算する(S1106)。具体的には、プロセサ211は、総物理容量から普通領域容量を減算し、その値を性能保持領域容量とする。すなわち、プロセサ211は、SSD220の総物理容量のうち、普通領域以外の領域を性能保持領域とする。次に、プロセサ211は、領域容量計算処理を終了して、処理結果(すなわち、普通領域容量及び性能保持領域容量)をコール元へ返す(S1107)。
次に、リード処理について説明する。
図11は、第1実施形態に係るリード処理のフローチャートである。
リード処理(S1200)は、ホスト11からストレージコントローラ200に対して読み出し要求があった場合に、データ読み出しプログラム321を実行するプロセサ211により実行される。なお、読み出し要求(リード要求)には、読み出し対象のLVOLを示すLUNと、読み出し対象の論理ページを示す仮想アドレスとが含まれている。
プロセサ211は、ホスト11から読み出し要求を受信すると、読み出し要求に含まれているLUN及び仮想アドレスが示す論理ページに対応する物理ページが含まれる領域と、その物理アドレスとを取得する(S1201)。具体的には、プロセサ211は、仮想アドレス変換テーブル332の行を先頭から順に参照し、LUNフィールド810のLUN及び仮想アドレスフィールド811の仮想アドレスが、読み出し要求に含まれるLUN及び仮想アドレスと一致する行を探索する。次に、プロセサ211は、探索により発見した行の領域フィールド812の領域情報と、物理アドレスフィールド813の物理アドレスとを取得する。なお、仮想アドレス変換テーブル332から対応する行を探索する方法としては、上記した先頭から順に探索する方法に限られず、例えば、2分探索など他のアルゴリズムを用いた探索方法としてもよい。
次に、プロセサ211は、S1201で取得した領域情報が示す領域に対応するRAIDグループにおける、取得した物理アドレスに対応する領域から読み出し対象のデータをリードし、リードしたデータをキャッシュメモリ212に格納する(S1202)。なお、プロセサ211は、ドライブインタフェース214のDMA(Direct Memory Access)機能により、ドライブインタフェース214にSSD220からのデータの読み出しと、読み出したデータのキャッシュメモリ212への格納をさせるようにしてもよい。
次に、プロセサ211は、S1202でキャッシュメモリ212に格納したデータをホスト11に送信する(S1203)。なお、プロセサ211は、ネットワークインタフェース210のDMA機能により、ネットワークインタフェース210にキャッシュメモリ212からのデータの読み出しと、読み出したデータのホスト11への送信をさせるようにしてもよい。
次に、プロセサ211は、読み出し要求に伴うアクセス頻度管理テーブル331の更新を行う(S1204)。具体的には、プロセサ211は、アクセス頻度管理テーブル331の行を先頭から順に参照し、LUNフィールド710のLUN及び仮想アドレスフィールド711の仮想アドレスが、読み出し要求に含まれるLUN及び仮想アドレスと一致する行を探索する。次に、プロセサ211は、探索により発見した行のリード回数フィールド714の値をインクリメント(+1)する。なお、アクセス頻度管理テーブル331から行を探索する方法は、上記した先頭から順に探索する方法に限られず、例えば、2分探索など他のアルゴリズムを用いた探索方法としてもよい。S1204の後、プロセサ211は、リード処理を終了する(S1205)。
次に、ライト処理について説明する。
図12は、第1実施形態に係るライト処理のフローチャートである。
ライト処理(S1300)は、ホスト11からストレージコントローラ200に対して書き込み要求があった場合に、データ書き込みプログラム322を実行するプロセサ211により実行される。なお、書き込み要求(ライト要求)には、書き込み対象のLVOLを示すLUNと、書き込み対象の論理ページを示す仮想アドレスと、書き込み対象のデータ(書き込み対象データ)とが含まれている。
プロセサ211は、ホスト11から書き込み要求を受信すると、書き込み要求に含まれている書き込み対象データをキャッシュメモリ212に格納する(S1301)。次いで、プロセサ211は、ホスト11に書き込み(ライト)の完了を応答する(S1302)。なお、本実施形態では、ライトバックキャッシュを想定するため、S1301の直後にライト完了応答を行っているが、本発明はこれに限られず、S1301の後の任意のタイミングでライト完了応答を実行してもよく、また、ライトスルーキャッシュを想定し、書き込み対象データをSSD220へデステージ後に、ライト完了応答をするようにしてもよい。
次に、プロセサ211は、書き込み要求に含まれているLUNと仮想アドレスに対応する物理ページが含まれる領域の情報と、その物理アドレスとを取得する(S1303)。具体的には、プロセサ211は、仮想アドレス変換テーブル332の行を先頭から順に参照し、LUNフィールド810のLUN及び仮想アドレスフィールド811の仮想アドレスが、書き込み要求に含まれるLUN及び仮想アドレスと一致する行を探索する。次に、プロセサ211は、探索により発見した行の領域フィールド812の領域情報と、物理アドレスフィールド813の物理アドレスとを取得する。なお、仮想アドレス変換テーブル332から対応する行を探索する方法としては、上記した先頭から順に探索する方法に限られず、例えば、2分探索など他のアルゴリズムを用いた探索方法としてもよい。
次に、プロセサ211は、書き込み要求に含まれているLUN及び仮想アドレスに対応する物理ページが存在するか否かを判定する(S1304)。この結果、仮想アドレスに対応する物理ページが存在しない場合、すなわち、S1303で取得した領域の情報が「未割り当て」の場合(S1304:No)には、仮想アドレスに対応する物理ページが存在しないことを意味するので、プロセサ211は、処理をS1305に進める。一方、仮想アドレスに対応する物理ページが存在する場合(S1304:Yes)、すなわち、S1303で取得した領域の情報がそれ以外の場合には、仮想アドレスに対応する物理ページが存在することを意味するので、プロセサ211は、処理をS1308に進める。
S1305では、プロセサ211は、普通領域管理キュー910から、普通領域内の未使用物理アドレス920をデキューする。次いで、プロセサ211は、仮想アドレス変換テーブル332の領域フィールド812を更新する(S1306)。具体的には、プロセサ211は、S1303で発見した行の領域フィールド812に「普通」を設定する。
次に、プロセサ211は、仮想アドレス変換テーブル332の物理アドレスフィールド813の値を更新する(S1307)。具体的には、プロセサ211は、S1303で発見した行の物理アドレスフィールド813に、S1304でデキューした物理アドレスを設定する。
仮想アドレスに対応する物理ページが存在する場合(S1304:Yes)、又はS1307を実行した場合には、プロセサ211は、S1303で発見した行の領域フィールド812の領域の情報と物理アドレスフィールド813の物理アドレスとを取得する(S1308)。
次に、プロセサ211は、キャッシュメモリ212に格納されている書き込み対象データをSSD220にデステージする(S1309)。具体的には、プロセサ211は、キャッシュメモリ212に格納された書き込み対象データを、S1308で取得した領域の情報が示す領域のRAIDグループの、S1308で取得した物理アドレスに書き込む。なお、プロセサ211は、ドライブインタフェース214のDMA(Direct Memory Access)機能により、ドライブインタフェース214にキャッシュメモリ212からSSD220に書き込み対象データの書き込みをさせるようにしてもよい。
次に、プロセサ211は、アクセス頻度管理テーブル331を更新する(S1310)。具体的には、プロセッサ211は、アクセス頻度管理テーブル331の行を先頭から順に参照し、LUNフィールド710のLUN及び仮想アドレスフィールド711の仮想アドレスが、書き込み要求に含まれるLUN及び仮想アドレスと一致する行を探索する。次に、プロセサ211は、探索により発見した行のライト回数フィールド715の値をインクリメント(+1)する。なお、アクセス頻度管理テーブル331から行を探索する方法は、上記した先頭から順に探索する方法に限られず、例えば、2分探索など他のアルゴリズムを用いた探索方法としてもよい。S1310の後、プロセサ211は、ライト処理を終了する(S1311)。
次に、アクセス頻度更新処理について説明する。
図13は、第1実施形態に係るアクセス頻度更新処理のフローチャートである。
アクセス頻度更新処理は、例えば、プロセサ211が、所定の周期(例えば、24時間)毎に定期的にアクセス頻度更新プログラム323を実行することにより実現される。なお、アクセス頻度更新処理を実行する周期の設定を、例えば、管理装置12の管理画面500を介してシステム管理者から受け付けるようにしてもよい。
プロセサ211は、アクセス頻度管理テーブル331の各行を処理対象としてループAの処理(S1402〜S1405)を繰り返し実行する。なお、アクセス頻度更新処理の説明において、処理対象の行を対象行ということとする。
ループAの処理においては、プロセサ211は、対象行のリード回数フィールド714とライト回数フィールド715とから、リード回数とライト回数を取得する(S1402)。次いで、プロセサ211は、リード頻度とライト頻度と計算する(S1403)。具体的には、プロセサ211は、S1402で取得したリード回数を、アクセス頻度更新処理の実行周期で除算することにより、リード頻度を算出する。また、プロセサ211は、S1403で取得したライト回数を、アクセス頻度更新処理の実行周期で除算することにより、ライト頻度を算出する。
次に、プロセサ211は、対象行のリード頻度フィールド712及びライト頻度フィールド713のそれぞれの値を、S1405で算出したリード頻度及びライト頻度に更新する(S1404)。次に、プロセサ211は、対象行のリード回数フィールド714とライト回数フィールド715の値を、0にリセットし(S1405)、処理対象となっていない行がある場合には、その行を次の対象行として処理を実行する。
その後、ループAの処理をアクセス頻度管理テーブル331のすべての行を処理対象として実行した後、プロセサ211は、ループAを終了し、アクセス頻度更新処理を終了する(S1407)。
次に、マイグレーション処理について説明する。
図14は、第1実施形態に係るマイグレーション処理のフローチャートである。
マイグレーション処理は、例えば、プロセサ211が、所定の周期(例えば、24時間)毎に定期的にマイグレーションプログラム324を実行することにより実現される。なお、マイグレーション処理を実行する周期の設定を、例えば、管理装置12の管理画面500を介してシステム管理者から受け付けるようにしてもよい。また、マイグレーション処理の実行周期を、アクセス頻度更新処理の実行周期と同一としてもよく、異ならせてもよい。
プロセサ211は、アクセス頻度管理テーブル331の各行を処理対象としてループBの処理(S1502〜S1505)を繰り返し実行する。なお、マイグレーション処理の説明において、処理対象の行を対象行ということとし、対象行に対応する論理ページを対象論理ページということとする。
ループBの処理においては、プロセサ211は、配置領域判定プログラム326をコールすることにより、対象論理ページに対応する物理ページが配置されるべき領域(新領域)を判定する配置領域判定処理(図15参照)を実行させる(S1502)。プロセサ211は、配置領域判定プログラム326をコールする際に、例えば、対象行を一意に特定できる情報(例えば、論理ページに対応するLUN及び仮想アドレス)を引数とする。配置領域判定処理からの戻り値は、対象論理ページが配置されるべき新領域を示す情報である。
次に、プロセッサ211は、仮想アドレス変換テーブル332の領域フィールド812から対象論理ページに対応する物理領域の配置されている領域(現領域)の情報を取得する(S1503)。例えば、アクセス頻度管理テーブル331と仮想アドレス変換テーブル332が各論理ページに対応する行を同一順序で保持している場合には、プロセサ211は、対象行と同じ順番の仮想アドレス変換テーブル332の行の領域フィールド812から領域の情報を取得する。なお、アクセス頻度管理テーブル331と仮想アドレス変換テーブル332とが各論理ページに対応する行を同一順序で保持していない場合には、プロセサ211は、対象行のLUNフィールド710及び仮想アドレスフィールド711の値と、LUNフィールド810及び仮想アドレスフィールド811の値とが一致する仮想アドレス変換テーブル332の行を探索し、探索で得られた行の領域フィールド812から領域の情報を取得する。
次に、プロセサ211は、対象論理ページに対応するS1502で得られた新領域と、S1503で得られた現領域とが一致するか否かを判定する(S1504)。この結果、新領域と現領域とが一致する場合(S1504:Yes)には、プロセサ211は、処理をループ終端に移動させる。一方、新領域と現領域とが一致しない場合(S1504:No)には、プロセサ211は、処理をS1505に進める。
S1505では、プロセサ211は、ページマイグレーションプログラム327をコールすることにより、対象論理ページに対応するデータを現領域から新領域に移動させるページマイグレーション処理(図16参照)を実行させる(S1505)。プロセサ211は、ページマイグレーションプログラム327をコールする際に、例えば、対象論理ページを一意に特定できる情報(例えば、LUN及び仮想アドレス)と、新領域を示す情報とを引数とする。次に、処理対象となっていない行がある場合には、プロセサ211は、その行を次の対象行としてループBの処理を実行する。
その後、ループBの処理をアクセス頻度管理テーブル331のすべての行を処理対象として実行した後、プロセサ211は、ループBを終了し、マイグレーション処理を終了する(S1507)。
次に、マイグレーション処理のS1502に対応する配置領域判定処理について説明する。
図15は、第1実施形態に係る配置領域判定処理のフローチャートである。
配置領域判定処理(S1600)は、プロセサ211によって配置領域判定プログラム326がコールされた場合に、配置領域判定処理プログラム326をプロセサ211が実行することにより実現される処理であり、論理ページに対応する物理ページが配置されるべき領域を判定し、判定結果をコール元へ返す処理(サブルーチン)である。
配置領域判定処理(S1600)が開始されると、プロセサ211は、アクセス頻度管理テーブル331から、引数として指定された対象論理ページのライト頻度を取得する(S1601)。例えば、引数において対象論理ページがアクセス頻度管理テーブル331の行番号で指定されている場合、プロセサ211は、行番号に基づいて、行を特定し、特定した行のライト頻度フィールド713からライト頻度を取得する。一方、引数として、対象論理ページがLUN及び仮想アドレスで指定されている場合、プロセサ211は、指定されたLUN及び仮想アドレスによりアクセス頻度管理テーブル331を探索し、探索によって得られた行のライト頻度フィールド713からライト頻度を取得する。
次に、プロセサ211は、S1601で取得したライト頻度が、ストレージコントローラ200が静的に有する所定の閾値(所定値:ライト頻度閾値)未満であるか否かを判定する(S1602)。この結果、取得したライト頻度がライト頻度閾値未満である場合(S1602:Yes)には、プロセサ211は、処理をS1603に進める一方、取得したライト頻度がライト頻度閾値未満でない場合(S1602:No)には、プロセサ211は、処理をS1608に進め、コール元に対象論理ページの新領域が普通領域であるとの情報を戻す。
S1603では、プロセサ211は、領域容量計算プログラム325をコールすることにより、性能保持領域及び普通領域に割り当てる容量を計算する領域容量計算処理(図10参照)を実行させる。この領域容量計算処理から、普通領域容量及び性能保持領域容量が戻ってくる。
プロセサ211は、得られた性能保持領域容量から性能保持領域に格納可能なページ数Lを計算する(S1604)。具体的には、プロセサ211は、S1603により得られた性能保持領域容量を物理ページサイズで除算することによりページ数Lを算出する。
次に、プロセサ211は、ライト頻度がライト頻度閾値未満である論理ページ中、対象論理ページがリード頻度について降順で何番目であるかを計算する。ここで、算出された順番をM番目とする。Mについては、例えば、アクセス頻度管理テーブル331を先頭から走査しながら、ライト頻度がライト頻度閾値未満であり、かつリード頻度が対象論理ページのリード頻度以上である論理ページの数をカウントすることにより算出することができる。
次に、プロセサ211は、Mがページ数L以下であるか否かを判定する(S1606)。この結果、MがL以下である場合(S1606:Yes)には、性能保持領域に格納するのに適したデータであることを意味しているので、プロセサ211は、処理をS1607に進め、コール元に対象論理ページの新領域が性能保持領域であるとの情報を戻す。一方、MがL以下でない場合(S1606:No)には、プロセサ211は、処理をS1608に進め、コール元に対象論理ページの新領域が普通領域であるとの情報を戻す。
次に、マイグレーション処理のS1505に対応するページマイグレーション処理について説明する。
図16は、第1実施形態に係るページマイグレーション処理のフローチャートである。
ページマイグレーション処理(S1700)は、プロセサ211によってページマイグレーションプログラム327がコールされた場合に、ページマイグレーションプログラム327をプロセサ211が実行することにより実現される処理であり、対象論理ページのデータを指定された領域の物理ページに移動させる処理(サブルーチン)である。
プロセサ211は、引数として受け取った対象論理ページを特定可能な情報に基づいて、仮想アドレス変換テーブル332から対象論理ページに対応する行を特定し、特定した行の領域フィールド812から領域の情報を取得し、物理アドレスフィールド813から物理アドレスを取得する(S1701)。例えば、引数において対象論理ページが仮想アドレス変換テーブル332の行番号で指定されている場合、プロセサ211は、行番号に基づいて、行を特定し、特定した行の領域フィールド812及び物理アドレスフィールド813から、領域の情報及び物理アドレス(本処理の説明において対象物理アドレスという)を取得する。一方、引数として、対象論理ページがLUN及び仮想アドレスで指定されている場合、プロセサ211は、指定されたLUN及び仮想アドレスにより仮想アドレス変換テーブル332を探索し、探索によって得られた行の領域フィールド812及び物理アドレスフィールド813から領域情報及び物理アドレス(本処理の説明において対象物理アドレスという)を取得する。
次に、プロセサ211は、取得した領域情報が示す領域(本処理の説明において対象領域という)に対応するRAIDグループの対象物理アドレスに対応する記憶領域からデータをリードし、リードしたデータをキャッシュメモリ212に格納する(S1702)。次に、プロセサ211は、対象物理アドレスを開放する(ステップS1703)。すなわち、プロセサ211は、空き物理アドレス管理キュー333の対象領域に対応するキューに対象物理アドレスをエンキューする。なお、対象物理アドレスは、物理対象アドレスに対応する物理ページのデータが消去された後にエンキューされてもよい。
次に、プロセサ211は、対象論理ページに新しい物理ページを割り当てる(S1704)。具体的には、プロセサ211は、空き物理アドレス管理キュー333から、引数で指定された移動先領域(新領域)の物理アドレス(920又は930)をデキューする。次に、プロセサ211は、仮想アドレス変換テーブル332の対象論理ページの行の領域フィールド812に、引数で指定された移動先領域を設定する(S1705)。次に、プロセサ211は、仮想アドレス変換テーブル332の物理アドレスフィールド813にS1704で取得した物理アドレスを設定する(S1706)。次に、プロセサ211は、キャッシュメモリ212に格納されているデータを新領域の対象物理アドレスに対応するSSD220の記憶領域にデステージし(S1707)、マイグレーション処理を終了する(S1708)。
以上説明したように、本実施形態に係る計算機システムによると、性能保持領域にはライト頻度がライト頻度閾値未満のデータのみが配置される。このため、性能保持領域のデータ保持特性は、普通領域と比べて高く維持され、結果として、性能保持領域に配置したデータは、普通領域に配置した場合に比べて、低レイテンシで読み出すことができる。また、リード頻度が高いデータを優先して性能保持領域に格納することにより、ストレージシステム20における平均リードレイテンシをベストエフォートで最小化することができる。また、性能保持領域に格納するデータと同程度にリード頻度が高いにも関わらず普通領域に格納されたデータは、性能保持領域に配置したデータを普通領域に配置する場合と比べ、低レイテンシで読み出すことができる。これは、普通領域に配置されるデータはライト頻度がライト頻度閾値以上のデータであり、頻繁に書き換えられるため、障害ビット数がECCによる訂正可能数以下となるからである。このように、帆実施形態に係る計算機システムによると、ストレージシステム20における全体としてのリードレイテンシ、すなわち、平均リードレイテンシを改善することができる。
次に、第2実施形態に係る計算機システムについて説明する。
第1実施形態に係る計算機システムでは、普通領域にユーザによるデータライトに耐え得る容量のSSDを割り当て、その他のSSDを性能保持領域に割り当てるようにしている。すなわち、各領域の容量をSSD単位としていた。このため、普通領域の容量は、ユーザによるデータライトに必要な容量(総ユーザデータライト量)よりも、最大でSSDのドライブ容量に近い容量分だけ多くなる可能性がある。これに対して第2実施形態に係る計算機システム10Aでは、SSDの内部で両領域を区切るようにして、両領域の容量をより細粒度に設定することができるようにする。このように両領域の容量をより細粒度に設定することにより、例えば、性能保持領域により多くの容量を割り当てることが可能となり、平均リードレイテンシをより改善することができる。
まず、第2実施形態に係る計算機システムについて説明する。
図17は、第2実施形態に係る計算機システムの全体構成図である。なお、第1実施形態と同様な構成については、同一の符号を付し、重複する説明を省略する。
ストレージシステム21のストレージコントローラ200には、1以上のSSD1820が接続されている。SSD1820は、同一の特性を有するSSDである。本実施形態では、SSD1820は、すべてメモリセルの構成が同一であり、同一容量且つ同一書き換え耐性のSSDである。SSSD1820は、SSD内部の物理記憶領域を分割する機能と、物理記憶領域の分割をストレージコントローラ200から指示可能とするインタフェースを有する。ストレージコントローラ200は、各SSD1820の物理領域を、例えば、他のSSD1820と同一割合で、性能保持領域用の物理領域1830と、普通領域用の物理領域1831とに分割して管理する。
ストレージコントローラ200のRAM215には、第1実施形態と同様に、データ読み出しプログラム321、データ書き込みプログラム322、アクセス頻度更新プログラム323、マイグレーションプログラム324、領域容量計算プログラム325、配置領域判定プログラム326、ページマイグレーションプログラム327、接続デバイス管理テーブル330、アクセス頻度管理テーブル331、仮想アドレス変換テーブル332、及び空き物理アドレス管理キュー333が格納されている。
次に、SSD1820の構成について説明する。
図18は、第2実施形態に係るSSDの構成図である。
SSD1820は、ドライブインタフェース1901と、コントローラ1904と、RAM1903と、これらを相互に接続するスイッチ1902と、複数のフラッシュメモリチップ(FM)1910とを備える。
ドライブインタフェース1901は、上位装置であるストレージコントローラ200との間を通信可能に接続する。コントローラ1904は、ストレージコントローラ200から受領した読み出し要求及び書き込み要求の解釈や、要求に基づくフラッシュメモリチップ1910に対する制御を行う。また、コントローラ1904は、ストレージコントローラ200からの物理領域の分割要求に対し、フラッシュメモリチップ1910を複数の領域に排他的に割り当てる。本実施形態においては、コントローラ1904は、複数のフラッシュメモリチップ1910を、性能保持領域のフラッシュメモリチップ1910と、普通領域のフラッシュメモリチップ1910とに分割する。各領域には、物理的に異なるフラッシュメモリチップ1910が割り当てられているため、各領域へのデータライト量に応じて、両領域の性能保持特性はそれぞれ独立に低下する。なお、図18においては、領域分割を、フラッシュメモリチップ1910を単位として行った例を示しているが、本発明はこれに限られず、領域分割する際の粒度としては、例えば、フラッシュメモリチップ1910内のDie単位、Plane単位、フラッシュメモリチップ1910における消去単位であるブロック単位としてもよい。
次に、第2実施形態に係るストレージシステム21における処理動作について説明する。
図19は、第2実施形態に係る初期設定処理のフローチャートである。なお、図9に示す第1実施形態に係る初期設定処理と同様な部分については、同一符号を付し、重複する説明を省略する。
S2003では、プロセサ211は、接続デバイス管理テーブル330の接続台数フィールド612からストレージコントローラ200に接続されたSSD1820の接続台数を取得する。次いで、プロセサ211は、各SSD1820に割り当てる普通領域容量を計算する(S2004)。具体的には、プロセサ211は、S1002で算出されたストレージシステム21全体の普通領域容量を、S2003で取得したSSDの接続台数で除算することにより、各SSD1820に割り当てる普通領域容量を算出する。
次に、プロセサ211は、各SSD1820に割り当てる性能保持領域容量を計算する(S2005)。具体的には、プロセサ211は、S1002で算出したストレージシステム21全体の性能保持領域容量を、S2003で得したSSD接続台数で除算することにより、各SSD1820に割り当てる性能保持領域容量を算出する。
次に、プロセサ211は、ストレージコントローラ200に接続されたSSD1820について、各SSD1820の物理記憶領域を、普通領域用と性能保持領域用とに分割する(S2006)。具体的には、プロセサ211は、ドライブインタフェース214を介して、SSD1820が提供するI/Fを用いて、各SSD1820の物理記憶領域を分割する。
次に、プロセサ211は、各SSD1820の物理領域のうち、普通領域用に割り当てられた領域を使用して普通領域用のRAIDグループを作成する(S2007)。次に、プロセサ211は、各SSD1820の物理領域のうち、性能保持領域用に割り当てられた領域を使用して性能保持領域用のRAIDグループを作成する(S2008)。
以上説明したように、第2実施形態に係る計算機システムでは、SSDの内部で性能保持領域と普通領域とを区切って管理することができ、例えば、普通領域に対して、より細かい粒度で容量を割り当てることができる。これにより、SSDにおける記憶領域の有効利用を図ることができる。また、普通領域により細かい粒度で容量を割り当てることができるので、性能保持領域に対してより多くの容量を割り当てることができる。これにより、より多くのデータを性能保持領域に格納することができることとなり、計算機システムにおける平均リードレイテンシをより改善することができる。また、各SSDに性能保持領域と普通領域とを設けるようにしているので、性能保持領域に対する読み出し及び書き込み処理、普通領域に対する読み出し及び書き込み処理を、各SSDに分散させて処理させることができるので、ストレージシステム21における読み出し及び書き込み処理の処理効率を向上させることができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、1以上の同一特性のSSDの記憶領域を性能保持領域と、普通領域との2つの領域に分割するようにしていたが、本発明はこれに限られず、例えば、性能保持領域と、普通領域と、その他の領域とを設けるようにしてもよく、また、性能保持領域をさらに複数の領域に分割するようにしてもよく、また、普通領域をさらに複数の領域に分割するようにしてもよい。
また、上記実施形態では、同一容量及び同一書き換え耐性の複数のSSDを用いる例を示していたが、本発明はこれに限られず、メモリセルの構成が同一であって、容量の異なる複数のSSDを用いてもよく、例えば、メモリセルの構成が同一であって、単位容量あたりの書き換え耐性が同一又は略同一のSSDを用いてもよい。
また、上記実施形態では、ライト頻度がライト頻度閾値未満の論理ページのデータについて、リード頻度が高いほうから所定の順番となる論理ページのデータを性能保持領域に格納するようにしていたが、本発明はこれに限られず、例えば、ライト頻度がライト頻度閾値未満であって、リード頻度が所定の閾値以上であることを満たす場合に性能保持領域に格納するようにしてもよい。
また、上記実施形態では、普通領域の容量を決定し、全体の容量から普通領域の容量を除いた容量を性能保持領域としていたが、本発明はこれに限られず、性能保持領域の容量を、全体の容量から普通領域の容量を除いた容量の少なくとも一部であってよい。また、予め性能保持領域の容量を決定し、全体の容量から性能保持領域の容量を除いた容量の少なくとも一部を普通領域の容量としてもよい。
また、上記実施形態では、管理画面500に、性能保持領域と普通領域との使用済み容量を表示するようにしていたが、本発明はこれに限られず、性能保持領域と普通領域との空き容量を表示するようにしてもよい。
また、上記実施形態において、必要に応じて、いわゆる高頻度リフレッシュを実行するようにしてもよい。
また、上記実施形態において、プロセサが行っていた処理の一部又は全部を、専用のハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
10,10A…計算機システム、11…ホスト、12…管理装置、13…ネットワーク、20,21…ストレージシステム、200…ストレージコントローラ、211…プロセサ、215…RAM、220,1820…SSD



Claims (13)

  1. 1以上の不揮発性半導体メモリデバイスを接続可能であって、前記不揮発性半導体メモリデバイスの記憶領域に対するデータの入出力を制御可能なストレージシステムであって、
    前記ストレージシステムは、処理を実行するプロセサ部を有し、
    前記プロセサ部は、
    1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される記憶領域の一部を所定のデータを記憶するための第1記憶領域として管理し、
    ライトアクセス頻度が所定値未満であるデータの中から、前記第1記憶領域に格納させるデータを決定し、前記第1記憶領域に格納させ、前記第1記憶領域に格納させると決定されなかったデータを、前記1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される前記第1記憶領域と異なる第2記憶領域に格納させる
    ストレージシステム。
  2. 前記プロセサ部は、
    ライトアクセス頻度が所定値未満であるデータについて、リードアクセス頻度がより高いデータを優先して前記第1記憶領域に格納させるデータに決定する
    請求項1に記載のストレージシステム。
  3. 前記プロセサ部は、
    ライトアクセス頻度が所定値未満であるデータであって、リードアクセス頻度が高いほうから所定の順番以内のデータを前記第1記憶領域に格納させるデータに決定する
    請求項2に記載のストレージシステム。
  4. 前記不揮発性半導体メモリデバイスが複数接続され、
    前記プロセサ部は、
    前記複数の不揮発性半導体メモリデバイスの中の一部の不揮発性半導体メモリデバイスの記憶領域を前記第1記憶領域として管理する
    請求項1から請求項3のいずれか一項に記載のストレージシステム。
  5. 前記プロセサ部は、
    前記不揮発性半導体メモリデバイス内の一部の記憶領域を、前記第1記憶領域を構成する記憶領域として管理する
    請求項1から請求項3のいずれか一項に記載のストレージシステム。
  6. 前記プロセサ部は、
    前記不揮発性半導体メモリデバイスに対してユーザが格納させる所定期間あたりのデータライト量を受け付け、
    前記データライト量に基づいて、前記不揮発性半導体メモリデバイスにおける前記第2記憶領域として必要な記憶容量を算出し、
    前記不揮発性半導体メモリデバイスにおける、算出された前記記憶容量の記憶領域を前記第2記憶領域とし、前記不揮発性半導体メモリデバイスの前記全体の容量から算出された前記記憶容量を除いた容量の記憶領域の少なくとも一部を前記第1記憶領域として管理する
    請求項1から請求項5のいずれか一項に記載のストレージシステム。
  7. 前記第2記憶領域として必要な記憶容量は、所定の想定期間に渡って前記データライト量のデータをライトしても前記不揮発性半導体メモリデバイスの寿命とならない記憶容量である
    請求項6に記載のストレージシステム。
  8. 前記プロセサ部は、
    前記第2記憶領域の記憶容量と、前記第1記憶領域の記憶容量との値を所定の表示装置に表示させる
    請求項1から請求項7のいずれか一項に記載のストレージシステム。
  9. 前記第1記憶領域の書き込み可能な物理ページのアドレスを管理する第1物理アドレス管理情報と、前記第2記憶領域の書き込み可能な物理ページのアドレスを管理する第2物理アドレス管理情報とをメモリ部に記憶し、
    前記プロセサ部は、
    前記第1物理アドレス管理情報及び前記第2物理アドレス管理情報に基づいて、論理ページに対して物理ページを割り当てる
    請求項1から請求項8のいずれか一項に記載のストレージシステム。
  10. 前記プロセサ部は、
    データを格納する論理ページ毎に、前記論理ページのデータに対するリードアクセス頻度と、ライトアクセス頻度とに関するアクセス頻度情報とを管理し、
    前記アクセス頻度情報に基づいて、論理ページに格納されているデータについて、前記第1記憶領域と、前記第2記憶領域とのいずれの領域に格納させるかを判定し、
    前記論理ページに格納されているデータが、前記判定された領域と異なる領域に格納されている場合に、前記データを前記判定された領域に移動させる
    請求項1から請求項9のいずれか一項に記載のストレージシステム。
  11. 前記プロセサ部は、
    前記第1記憶領域と前記第2記憶領域との使用済みの容量、または空き容量を表示させる
    請求項1から請求項10のいずれか一項に記載のストレージシステム。
  12. 1以上の不揮発性半導体メモリデバイスを接続可能であって、前記不揮発性半導体メモリデバイスの記憶領域に対するデータの入出力を制御可能なストレージシステムによるデータ管理方法であって、
    1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される記憶領域の一部を所定のデータを記憶するための第1記憶領域として管理し、
    ライトアクセス頻度が所定値未満であるデータの中から、前記第1記憶領域に格納させるデータを決定し、前記第1記憶領域に格納させ、
    前記第1記憶領域に格納させると決定されなかったデータを、前記1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される前記第1記憶領域と異なる第2記憶領域に格納させる
    データ管理方法。
  13. 1以上の不揮発性半導体メモリデバイスを接続可能であって、前記不揮発性半導体デバイスの記憶領域に対するデータの入出力を制御可能なストレージシステムを構成するコンピュータに実行されるデータ管理プログラムであって、
    前記データ管理プログラムは、前記コンピュータに、
    1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される記憶領域の一部を所定のデータを記憶するための第1記憶領域として管理させ、
    ライトアクセス頻度が所定値未満であるデータの中から、前記第1記憶領域に格納させるデータを決定し、前記第1記憶領域に格納させ、前記第1記憶領域に格納させると決定されなかったデータを、前記1以上の同一の特性の不揮発性半導体メモリデバイスにより提供される前記第1記憶領域と異なる第2記憶領域に格納させる
    データ管理プログラム。




JP2018043950A 2018-03-12 2018-03-12 ストレージシステム、データ管理方法、及びデータ管理プログラム Pending JP2019159639A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018043950A JP2019159639A (ja) 2018-03-12 2018-03-12 ストレージシステム、データ管理方法、及びデータ管理プログラム
US16/052,861 US20190278486A1 (en) 2018-03-12 2018-08-02 Storage system, data management method, and data management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018043950A JP2019159639A (ja) 2018-03-12 2018-03-12 ストレージシステム、データ管理方法、及びデータ管理プログラム

Publications (1)

Publication Number Publication Date
JP2019159639A true JP2019159639A (ja) 2019-09-19

Family

ID=67842637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018043950A Pending JP2019159639A (ja) 2018-03-12 2018-03-12 ストレージシステム、データ管理方法、及びデータ管理プログラム

Country Status (2)

Country Link
US (1) US20190278486A1 (ja)
JP (1) JP2019159639A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021182178A (ja) * 2020-05-18 2021-11-25 Necプラットフォームズ株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102211122B1 (ko) * 2018-12-20 2021-02-02 삼성전자주식회사 스토리지 장치 및 스토리지 시스템
US11797550B2 (en) * 2019-01-30 2023-10-24 Uptake Technologies, Inc. Data science platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021182178A (ja) * 2020-05-18 2021-11-25 Necプラットフォームズ株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP7044403B2 (ja) 2020-05-18 2022-03-30 Necプラットフォームズ株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム

Also Published As

Publication number Publication date
US20190278486A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
US20220214834A1 (en) Ssd architecture supporting low latency operation
US11640333B2 (en) Systems and methods for allocating blocks of memory to multiple zones associated with corresponding error correction mechanisms
US10042563B2 (en) Segmenting read requests and interleaving segmented read and write requests to reduce latency and maximize throughput in a flash storage device
US20190065058A1 (en) Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes
US11138124B2 (en) Migrating data between block pools in a storage system
US10802733B2 (en) Methods and apparatus for configuring storage tiers within SSDs
EP2378410A2 (en) Method and apparatus to manage tier information
US11132143B2 (en) Universal flash storage (UFS) device and computing device and computing device including storage UFS device for reporting buffer size based on reuse time after erase
EP3336706A1 (en) Method and storage device for processing stripes in storage device
CN114127677B (zh) 用于写高速缓存架构中的数据放置的方法和系统
US10956049B2 (en) Wear-aware block mode conversion in non-volatile memory
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
US11436159B2 (en) Using multi-tiered cache to satisfy input/output requests
EP3418897B1 (en) Nand flash storage device with nand buffer
JP2019159639A (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
US20190243758A1 (en) Storage control device and storage control method
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
CN112346658A (zh) 在具有高速缓存体系结构的存储设备中提高数据热量跟踪分辨率
US11593262B1 (en) Garbage collection command scheduling
WO2018167890A1 (ja) 計算機システム及び管理方法
CN111367825A (zh) 存储设备的虚拟校验数据缓存