JPWO2017090176A1 - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JPWO2017090176A1 JPWO2017090176A1 JP2017552630A JP2017552630A JPWO2017090176A1 JP WO2017090176 A1 JPWO2017090176 A1 JP WO2017090176A1 JP 2017552630 A JP2017552630 A JP 2017552630A JP 2017552630 A JP2017552630 A JP 2017552630A JP WO2017090176 A1 JPWO2017090176 A1 JP WO2017090176A1
- Authority
- JP
- Japan
- Prior art keywords
- storage
- mode
- ssd
- block
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 86
- 230000003247 decreasing effect Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 abstract description 59
- 238000013403 standard screening design Methods 0.000 description 308
- 238000012545 processing Methods 0.000 description 46
- 238000004364 calculation method Methods 0.000 description 15
- 238000012790 confirmation Methods 0.000 description 11
- 230000007423 decrease Effects 0.000 description 9
- 230000010076 replication Effects 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本発明の一観点に係るストレージシステムは、フラッシュメモリを記憶媒体とする記憶デバイスを複数搭載する。また記憶デバイスに用いられるフラッシュメモリは、各セルをn-bitの情報を格納可能なセルまたはm-bit(n<m)の情報を格納可能なセルのいずれかとして運用可能なフラッシュメモリである。ストレージシステムは定期的に記憶デバイスから残消去可能回数を取得し、取得した残消去可能回数と記憶デバイスの稼働時間を用いて記憶デバイスの寿命を予測する。予測した寿命が所定値(耐用年数)より大きい場合、所定数のセルについて、m-bit情報を格納可能なセルに変更する。
Description
本発明は、不揮発性半導体メモリを用いたストレージシステムに関する。
不揮発性半導体メモリは、磁気記憶デバイスに比べて省電力・高性能であり、高価格であった。このような不揮発性半導体メモリは、例えばNAND型のフラッシュメモリである。近年は半導体技術の進歩に伴って低価格化が進み、HDDに替わるメインストリームの記憶デバイスとして注目されてきている。
フラッシュメモリは、データを記憶するための複数のメモリセル(以下、「セル」と略記する)を有する。セルには、1ビットの情報を記憶可能なセル(SLCという)の他に、2ビット以上の情報を記憶可能なセル(MLCという。また3ビット以上の情報を記憶可能なセルをTLCと呼ぶこともある)もある。フラッシュメモリにMLC型セルを用いると、SLC型セルを用いる場合よりも、ビットコストを低減させることができる。さらにMLC型セルの中でも、3ビット以上の情報を記憶可能なセル(TLC)を用いれば、2ビット情報を記憶可能なセルを用いるよりも、ビットコストを低減させることができる。
また近年、セルに格納可能な情報量(ビット数)を変更可能にする技術も現れてきている。たとえば特許文献1には、ある領域は1つのメモリセルトランジスタに1ビットのデータを書き込むことができるモードで運用し、別の領域は多ビットのデータを書き込むことができるモードで運用するように設定することができるメモリが開示されている。
ただし、セルに多くの情報(ビット数)を格納すればするほど、その寿命(耐用年数)が短くなる傾向がある。そのため、信頼性・耐久性を重視する場合には、格納可能なビット数の少ないセル(SLCやMLC)を用い、コスト(価格)を重視する場合には、格納可能なビット数の多いセル(TLC)を用いる等の、使い分けを行う必要がある。
特許文献1に開示の、格納可能なビット数の少ないセルと格納可能なビット数の多いセルを混在させて運用する技術を用いると、従来のフラッシュメモリよりもコストと耐久性のバランスが良い記憶デバイスを実現することができる可能性がある。ただし、フラッシュメモリ(セル)の寿命は、その消去頻度によって変動するため、格納可能なビット数の少ないセルと格納可能なビット数の多いセルの混在比率をあらかじめ決定することは困難である。
消去頻度が少ない場合、そのフラッシュメモリは長期間の使用に耐えることができる。ただし消去頻度は、ストレージシステムの稼働状態(アクセス頻度)に大きく依存する。そのため、格納可能なビット数の多いセルを多く含むように記憶デバイスを設定したが、当初想定よりもアクセス頻度が高くなることもあり得る。その場合、あらかじめ想定された記憶デバイスの寿命(耐用年数)が経過する前に、記憶デバイスが使用できなくなる可能性がある。
逆に、格納可能なビット数の少ないセルを多く含むように記憶デバイスを設定したが、当初想定よりもアクセス頻度が低い場合もあり得る。その場合は記憶デバイスの寿命は長くなるが、記憶容量が少ないため、ストレージシステムのコスト増につながる。
そのため、ストレージシステムの稼働状態に合わせて、格納可能なビット数の少ないセルと格納可能なビット数の多いセルの混在比率を適切に変更できる技術が求められる。
本発明の一観点に係るストレージシステムは、フラッシュメモリを記憶媒体とする記憶デバイスを複数搭載する。また記憶デバイスに用いられるフラッシュメモリは、各セルを、n-bitの情報を格納可能なセルまたはm-bit (n<m)の情報を格納可能なセルのいずれかのセルとして運用可能なフラッシュメモリである。
ストレージシステムは定期的に記憶デバイスから残消去可能回数を取得し、取得した残消去可能回数と記憶デバイスの稼働時間を用いて記憶デバイスの寿命を予測する。予測した寿命が所定値(耐用年数)より大きい場合、所定数のセルについて、m-bit情報を格納可能なセルに変更する。
本発明によれば、大記憶容量と高い耐久性を両立可能なストレージシステムを実現できる。
以下の実施例では、記憶デバイスに用いられる不揮発半導体記憶媒体は、フラッシュメモリ(FM)であるとする。そのフラッシュメモリは、ページ単位でリード/ライトが行われる種類のフラッシュメモリ、典型的にはNAND型のフラッシュメモリであるとする。しかし、フラッシュメモリは、NAND型に代えて他種のフラッシュメモリでも良い。また、フラッシュメモリに代えて、他種の不揮発半導体記憶媒体、例えば相変化メモリなどが採用されても良い。
以下、実施例に係るストレージ装置1の構成と動作の詳細を説明していく。図1は、ストレージシステム1(または「ストレージ装置1」とも呼ぶ)を含む計算機システムの構成例を示す図である。
ストレージ装置1は、ストレージコントローラ10と、ストレージコントローラ10に接続された複数の記憶デバイス(SSD21、HDD25)を有する。
SSD21は、ホスト(ホスト計算機)2などの外部装置からのライトデータを格納するための記憶デバイスで、フラッシュメモリ等の不揮発性半導体メモリを記憶媒体として採用した記憶デバイスである。SSD21の内部構成は後述する。SSD21は一例として、SAS(Serial Attached SCSI)規格に従う伝送線(SASリンク)や、PCI (Peripheral Component Interconnect)規格に従う伝送線(PCIリンク)などによって、ストレージコントローラ10と接続される。
また、図1に示されているように、本実施例のストレージ装置1は記憶デバイスとして、SSD21の他にHDD(Hard Disk Drive)25も使用可能である。HDD25は、磁気ディスクを記録媒体とする記憶デバイスである。HDD25もSSD21と同様、ストレージコントローラ10に接続される。またSSD21と同様、HDD25もSASリンクなどによってストレージコントローラ10に接続される。ただし以下では、本実施例のストレージ装置1には、記憶デバイスとしてSSD21のみが接続されている構成について中心に説明する。
ストレージコントローラ10は、ホスト2からのデータアクセス要求を受け付け、受け付けたアクセス要求に応じて、SSD21やHDD25に対する処理(リード処理やライト処理)を行うコンポーネントである。以下ではストレージコントローラ10は、DKC10と略記されることもある。ストレージコントローラ10には、1以上のホスト2が接続される。またストレージコントローラ10には、管理ホスト5が接続される。ストレージコントローラ10とホスト2とは、一例としてファイバチャネルを用いて形成されるSAN(Storage Area Network)3を介して接続される。ストレージコントローラ10と管理ホスト5とは、一例としてイーサネットを用いて形成されるLAN(Local Area Network)6を介して接続される
ストレージコントローラ10は少なくとも、プロセッサ(CPU)11、ホストインタフェース(図中では「ホストI/F」と表記)12、デバイスインタフェース(図中では「デバイスI/F」と表記)13、メモリ14、管理用I/F15を有する。そしてプロセッサ11、ホストI/F12、デバイスI/F13、メモリ14、管理用I/F15は、内部スイッチ(内部SW)16を介して相互接続されている。図1ではこれらの構成要素がそれぞれ1つだけ示されているが、高性能化及び高可用性の確保のため、これらの構成要素のそれぞれがストレージコントローラ10内に複数搭載されていてもよい。また内部SW16ではなく、共通バスを介して各構成要素が相互接続された構成にしてもよい。
デバイスI/F13は少なくとも、インタフェースコントローラと転送回路(非図示)を有する。インタフェースコントローラは、SSD21の用いているプロトコル(一例ではSAS)をストレージコントローラ10内部で用いられている通信プロトコル(一例としてPCI−Express)に変換するためのコンポーネントである。転送回路は、ストレージコントローラ10が、SSD21に対してデータの転送(リード、ライト)を行う際に用いられる。
ホストI/F12は、デバイスI/F13と同様に、少なくともインタフェースコントローラと転送回路(非図示)を有する。ホストI/F12が有するインタフェースコントローラは、ホスト2とストレージコントローラ10間のデータ転送経路で用いられている通信プロトコル(たとえばファイバチャネル)と、ストレージコントローラ10内部で用いられている通信プロトコルを変換するためのものである。
プロセッサ11は、ストレージ装置1の各種制御を行う。メモリ14は、プロセッサ11が実行するプログラムや、プロセッサ11が使用するストレージ装置1の各種管理情報を記憶するために用いられる。メモリ14にはたとえば、構成管理プログラム141、セルモード制御プログラム142、I/Oプログラム143が格納される。これらのプログラムの詳細は後述する。またメモリ14は、SSD21に対するI/O対象データを一時的に記憶するためにも用いられる。以下、SSD21に対するI/O対象データを一時的に記憶するために用いられる、メモリ14中の記憶領域を、「キャッシュ」と呼ぶ。メモリ14はDRAM、SRAM等の揮発性記憶媒体で構成されるが、別の実施形態として、不揮発性メモリを用いてメモリ14を構成してもよい。
管理ホスト5は、ストレージ装置1の管理操作を行うための計算機である。管理ホスト5は、キーボードやディスプレイ等の入出力デバイス(非図示)を備え、ユーザ(管理者)は入出力デバイスを用いてストレージ装置1に対する設定指示を行うことができる。また管理ホスト5は、ストレージ装置1の状態等の情報をディスプレイ等の出力デバイスに表示することもできる。
図2は、SSD21の構成例を示す図である。なお、SSD21は、複数のフラッシュメモリと、それらを制御するコントローラとを備える記憶デバイスであればよく、フォームファクタ等が公知のHDD等と同等の物でなくてもよい。
SSD21は、SSDコントローラ200と複数のFMチップ210を有する。SSDコントローラ200は、プロセッサ(CPU)201、上流I/F(upstream I/F)202、下流I/F(downstream I/F)203、メモリ204を有し、これらは内部接続スイッチ(内部接続SW)205を介して相互接続されている。
上流I/F202は、SSD21とストレージコントローラ10間の通信を行うためのインタフェースコントローラである。上流I/F202は、伝送線(SASリンクや、PCIリンク)を介してストレージコントローラ10のデバイスIF13に接続される。一方下流I/F203は、SSDコントローラ200とFMチップ210間の通信を行うためのインタフェースコントローラである。
CPU201は、ストレージコントローラ10から到来する各種コマンドに係る処理等を行う。メモリ204は、CPU201が実行するプログラムや、各種管理情報が記憶される。メモリ204にはたとえば、セルモード変更プログラム242、FM I/Oプログラム243が格納される。これらのプログラムの詳細は後述する。またメモリ204の一部の領域は、ストレージコントローラ10からライトコマンドと共に送信されてくるライトデータや、FMチップ210から読み出されたデータを一次的に格納するためのバッファとしても用いられる。メモリ204には、DRAM等の揮発性メモリが用いられる。ただしメモリ204に不揮発性メモリが使用されても良い。
FMチップ210は、たとえばNAND型フラッシュメモリ等の不揮発性半導体メモリチップである。FMチップ210は複数のダイ213を有し、各ダイ213には複数のセル214が存在する。セル214はトランジスタ等から構成された記憶素子で、各セル214は、1または複数ビットのデータを保持することができる。SSDコントローラ200からのライトデータは、このセル214に格納される。また本実施例におけるFMチップ210が有するセル214は、SSDコントローラ200からの指示によって、セル214に格納可能な情報量(ビット数)が変更可能である。周知の通り、フラッシュメモリのデータの読み出し・書き込みは、セル214単位に行うことはできない。複数のセル214の集合で、ページと呼ばれる所定サイズ(たとえば8KB等)の領域ごとに行われる。またデータ消去は、ページの集合であるブロック211ごとに行われる。
本実施例に係るSSD21は各FMチップ210にユニークな識別番号を付して管理しており、この識別番号をチップ番号(チップ#)と呼ぶ。またFMチップ210内の各ダイ213にも、FMチップ210内でユニークな識別番号が付されており、この識別番号をダイ#と呼ぶ。さらにダイ213内の各ブロック211には、ダイ213内でユニークな識別番号が付されており、この識別番号をブロック#と呼ぶ。SSDコントローラ200がFMチップ210のブロック211にアクセスする際には、チップ#、ダイ#、ブロック#を指定することで、SSD21内のブロック211を一意に特定する。
一方、本実施例に係るSSD21(SSDコントローラ200)がDKC10等のイニシエータに対して提供する記憶アドレス空間(論理アドレス空間またはLBA空間と呼ぶ)は、チップ#、ダイ#、ブロック#とは独立した空間である。そのためDKC10がSSD21に対してアクセス要求(リードコマンドやライトコマンド)を発行する際、FMチップ210やブロック211等を指定する必要はない。LBA空間上の領域には、所定サイズ(たとえば512バイト)毎にアドレスがアサインされており、このアドレスのことをLogical Block Address(LBA)と呼ぶ。DKC10は、論理アドレス空間上の領域(LBAとアクセス対象領域のサイズで特定される領域)が指定されたコマンドを発行することで、SSD21からのデータのリード、あるいはSSD21へのデータライトが可能である。LBA空間上の領域に対するライトコマンドがDKC10から到来した時、SSDコントローラ200はその領域に対してページを割り当てる。ライトデータは割り当てられたページ(内のセル214)に格納される。既にページが割り当て済みのLBA空間上領域に対するライト要求(つまり上書き要求)が到来した時は、SSDコントローラ200は、その領域に対して、新たな未使用ページ(まだデータが格納されていないページ)を割り当て、ライトデータを新たに割り当てられた未使用ページに格納する。
SSDコントローラ200は、LBA空間上領域と、このLBA空間上領域に割り当てられたページとの関係(マッピング)を管理するための管理情報(マッピングテーブル)を有する。これは公知のフラッシュメモリが持つ情報と同じであるため、本明細書では説明を略す。
先にも述べたが、セル214に格納可能なビット数は可変である。本実施例では、各セル214は、nビットのデータを格納可能なモード、あるいはmビット(ただしn<mの関係にある)のデータを格納可能なモードのいずれかで運用可能という前提で説明する。また、以下では特に断りのない限り、n=2、m=3の場合について説明する。また、セル214がnビット(2ビット)のデータを格納可能なモードのことを、MLC(Multi−Level Cell)モードと呼び、セル214がmビット(3ビット)のデータを格納可能なモードのことを、TLC(Triple−Level Cell)モードと呼ぶ。また、MLCモードとTLCモードを総称して、「セルモード」または「モード」と呼ぶ。
本実施例では、各SSD21の初期状態(使用開始直後)では、全セル214がMLCモードに設定されている前提で説明する。使用開始後しばらくして、ストレージコントローラ10がSSD21の稼働状況を考慮して、SSD21に幾つかのセル214のモードを変更(MLCモードからTLCモードに変更)させる。
また、セルモードの変更は、ブロック211単位で行われる前提とする。つまり1ブロックに含まれるセル214はすべて、同じモードに設定される。そしてSSDコントローラ200がFMチップ210に対して、FMチップ210内のあるブロックについてセルモード変更を指示した場合、そのブロック211内の全セル214がTLCモードに変更される。以下では、ブロック211内の全セル214がMLCモードに設定されている場合、「ブロックがMLCモードである」と表現する。同様にブロック211内の全セル214がTLCモードに設定されている場合、「ブロックがTLCモードである」と表現する。ただし、必ずしもブロック211毎にモードが変更されなければならないわけではない。別の実施形態として、ダイ213毎にモード変更が行われてもよいし、あるいはページ毎、セル214毎にモード変更が行われてもよい。
本実施例に係るSSD21は、DKC10に提供するLBA空間のサイズを変えることができる。DKC10に提供されるLBA空間のサイズのことを「論理容量」と呼ぶ。本実施例に係るSSD21では、論理容量は、SSD21内の全セル214の合計記憶容量と等しい。たとえばSSD21内のセル214の数がN個で、全セル214がMLCモードに設定されている場合、SSD21の論理容量はN×2(bit)である。その後、SSD21内セル214のうち、10%のセル214がTLCモードに変更された場合、SSD21の論理容量は、(0.1×N)×3+(0.9×N)×2=N×2.1(bit)になり、論理容量が増加する。ただし別の実施形態として、SSD21内のセル214のうち、一部を代替セル(障害のために使用できなくなったセル214の代替)として確保しておき、代替セルを除いたセル214の合計記憶容量を、論理容量と定義してもよい。
図3を用いて、SSD21の管理するブロック管理テーブル1150の内容を説明する。ブロック管理テーブル1150は、メモリ204に格納されている。ブロック管理テーブル1150の各行(レコード)には、SSD21内の各ブロック211についての情報が格納される。ブロック管理テーブル1150のカラムのうち、チップ#1151、ダイ#1152、ブロック#1153は、ブロック211のチップ#、ダイ#、ブロック#を格納するためのカラムである。チップ#1151、ダイ#1152、ブロック#1153が指定されることで、SSD21内のブロック211が一意に特定される。
モード1154は、ブロック211がMLCモードかTLCモードかを表す情報を格納するためのカラムである。モード1154に0が格納されている時、ブロック211がMLCモードであることを意味し、モード1154に1が格納されている時、ブロック211がTLCモードであることを意味する。
残消去可能回数1155には、ブロック211があと何回消去処理を行ってもよいかを表す情報が格納される。SSD21のブロック211の消去回数には限りがあり、ブロック211に対して所定回数(ここではこれを「消去可能回数」と呼ぶ)の消去処理を行うと、そのブロック211は使用できなくなる。消去可能回数はフラッシュメモリのベンダ等によって定められた値で、MLC型のフラッシュメモリの場合、数万回程度と言われている。残消去可能回数は、ブロック211の消去可能回数から、実際にそのブロック211に対して消去処理が行われた回数(消去回数と呼ぶ)を減算することで求められる値である。そのため初期状態(一度も消去処理が行われていない状態)では、残消去可能回数と消去可能回数は等しい。
たとえばブロック211の消去可能回数が30000回と定められている場合、あるブロック211に対して20000回消去処理を行ったとする。その場合、このブロック211の残消去可能回数は10000(30000−20000=10000)である。
初期状態では、各ブロック211の残消去可能回数1155には、消去可能回数(たとえば数万)が格納されている。なお、SSD21内の各ブロックの消去可能回数は等しい。SSDコントローラ200がブロック211の消去処理を1回行うと、SSDコントローラ200はそのブロック211の残消去可能回数1155を1減算する。ブロック211の残消去可能回数1155が0になると、そのブロック211への書き込み及び消去は禁止される。
またTLC型フラッシュメモリの場合、消去可能回数はMLC型のフラッシュメモリよりも小さい。そのため、フラッシュメモリの使用中にブロック211のモードが変更された時、残消去可能回数1155の値も変更される。本実施例では、残消去可能回数1155がn(nは0以上の整数)で、かつMLCモードに設定されていたブロック211がTLCモードに変更された時、そのブロック211の残消去可能回数1155はn/cに変更される前提で、以下の説明を行う。なお、cは2以上の値で、以下の説明では特に断りのない限り、c=10である場合について説明する。つまりブロック211のモードがMLCモードからTLCモードに変更されると、そのブロック211の残消去可能回数1155の値は、モード変更前の値の10分の1になる。
LBA空間にブロック211(内のページ)を割り当てる時、SSD21はブロック管理テーブル1150の残消去可能回数1155を参照することで、残消去可能回数1155の最も大きいブロック211を選択し、そのブロック211内のページをLBA空間に割り当てる。このようなブロック211の選択方法が採用されているので、SSD21内の特定のブロック211だけが消去回数が多くなる(残消去可能回数が少なくなる)事象が発生しにくい。ただしそれでも各ブロック211の残消去可能回数に不均衡が発生することがあるため、本実施例に係るSSD21は、公知のフラッシュメモリと同様に、各ブロック21の残消去可能回数を極力均等にするための処理(いわゆるウェアレベリング処理)を行ってもよい。ウェアレベリングは公知の処理であるから、ここでの説明は略す。
次に、本実施例に係るストレージ装置1がホスト2に提供するボリューム(仮想ボリューム)と、RAIDグループと、SSD21がDKC10に提供するLBA空間との関係について、図4、図5を用いて説明する。ストレージ装置1は、RAID(Redundant Arrays of Inexpensive/Independent Disks)技術を用いることで、複数のSSD21から論理的な1つの記憶空間を形成する。RAID技術で1つの論理的記憶空間を形成するために用いられるSSD21のセットを、RAIDグループと呼ぶ。
RAID技術では、RAIDグループにデータを格納する際に、そのデータを用いて冗長情報(パリティ)を生成し、データとパリティとをRAIDグループ内の異なるSSD21に格納する。そのためRAIDグループ内で1つ(あるいは2つ)のSSD21に障害が発生してデータアクセスできなくなった場合に、ストレージ装置1は残りのSSD21内のデータ(及びパリティ)を用いて、障害が発生したSSD21に格納されていたデータを復旧できる。
図4は、RAIDグループ30の記憶空間を説明するための概念図である。図4では、RAIDグループ30が4台のSSD21から構成される例が示されている。また図4において、SSD#0(20−0)〜SSD#3(20−3)はそれぞれ、SSD21がストレージコントローラ10に提供している論理アドレス空間(LBA空間)を表している。SSD#0(20−0)〜SSD#3(20−3)の上端が、論理アドレス空間の先頭アドレス(LBA=0)を表し、下端が論理アドレス空間の終端である。
また図4では、RAIDグループ30のRAIDレベル(RAID技術におけるデータ冗長化方式を表すもので、一般的にはRAID1〜RAID6のRAIDレベルがある)がRAID5である場合の例を表している。図4において、RAIDグループ30内の、「0」、「1」、「P」などのボックスがストライプブロックを表しており、ストライプブロックのサイズはたとえば、64KB、256KB、512KBなどである。また、各ストライプブロックに付されている、「1」等の番号のことを、「ストライプブロック番号」と呼ぶ。
図4で、ストライプブロックのうち、「P」と記載されているストライプブロックは、冗長データ(パリティ)の格納されるストライプブロックであり、これを「パリティストライプ」と呼ぶ。一方、数字(0、1等)が記載されているストライプブロックは、ホスト2などの外部装置から書き込まれるデータ(冗長データではないデータ)が格納されるストライプブロックである。このストライプブロックのことは、「データストライプ」と呼ばれる。
パリティストライプに格納される冗長データは、データストライプ内のデータを用いて生成される。以下、パリティストライプと、当該パリティストライプに格納される冗長データを生成するために用いられるデータストライプのセット(たとえば図4中の要素300)のことを、「ストライプライン」と呼ぶ。本実施例に係るストレージ装置1の場合、図4に示されているストライプライン300のように、1つのストライプラインに属する各ストライプブロックは、SSD#0(20−0)〜SSD#3(20−3)上の同じ位置(LBA)に存在するという規則で、ストライプラインが構成される。
さらにストレージコントローラ10は、RAIDグループ内に連続配置される複数のストライプラインを「チャンク」と呼ばれる管理単位で管理する。図4に示されているように、1つのチャンク31は、複数のストライプラインを有する。各チャンクのサイズは同一である。ただし1つのチャンク31が1つのストライプラインのみを有する構成でもよい。
各チャンクには、RAIDグループ内で一意な識別番号が付され、この識別番号はチャンク番号と呼ばれる。RAIDグループの先頭のストライプライン(SSD#0(20−0)〜SSD#3(20−3)の先頭にあるストライプブロックから構成されるストライプライン)を含むチャンクのチャンク番号を1とし、それ以降に位置する各チャンクには、連続した整数値が付される。
各チャンクは上で述べたとおり、RAIDグループ内に規則的に配置されているため、チャンク番号から、そのチャンクに属するSSD21のLBA空間上のアドレス(の範囲)は、比較的単純な計算で求められる。逆にSSD21のLBA空間上アドレスから、そのアドレスが属するチャンクのチャンク番号も計算で求められる。
図5は、仮想ボリュームとRAIDグループ、プールの関係を表す図である。ストレージコントローラ10は、ホスト2にはRAIDグループの記憶領域とは異なる、1以上の仮想的な記憶空間を提供する。この仮想的な記憶空間を「仮想ボリューム」と呼ぶ。仮想ボリュームの記憶空間も、所定サイズの領域ごとに分割管理される。この所定サイズの領域は「仮想チャンク」と呼ばれる。仮想チャンクとは、仮想ボリュームの記憶領域の割り当て単位である。
1つの仮想チャンクには1つのチャンクがマップされ、ホスト2から仮想チャンクに対するデータライトがあった時、マップされたチャンクにデータが格納される。ただし、仮想チャンクにチャンクがマップされる時、チャンク内のデータストライプのみがマップされる。そのため、仮想チャンクのサイズは、チャンクに含まれる全データストライプの合計サイズに等しい。ストレージコントローラ10は、仮想チャンクとチャンクのマッピングを記録する管理テーブルを有し、この管理テーブルを用いて、仮想チャンクに割り当てられる記憶領域(チャンク)を管理している
仮想ボリュームが定義された直後は、仮想ボリュームの各仮想チャンクには、チャンクがマップされていない。ストレージコントローラ10は、ホスト2から仮想チャンク上の領域に対するライト要求を受信した時にはじめて、当該領域に対してライトされたデータの書き込まれるべき、SSD21の論理アドレス空間上の記憶領域(チャンク)を決定する。ここで決定されるチャンクは、まだどの仮想チャンクにも割り当てられていないチャンク(未使用チャンク)のなかから1つのチャンクが決定される。
本実施例では、仮想チャンクに割り当て(マップ)可能な記憶領域(チャンク)を有するRAIDグループの集合を、プールと呼ぶ。仮想ボリュームの仮想チャンクにチャンクを割り当てる時、ストレージ装置1はプールで管理されているRAIDグループの中から未使用チャンクを1つ選択し、選択されたチャンクを仮想チャンクに割り当てる。
先にも述べたが、SSD21内のセルのセルモードがMLCモードからTLCモードに変更されると、論理容量が増加する。図5は、SSD#0の論理容量が拡大する場合の例を表している。このように、SSD21の論理容量が増加すると、そのSSD21を含むRAIDグループから形成可能なチャンク31の数も増加する。ただし、チャンク31は1以上のストライプ列から成る記憶領域であるので、RAIDグループ内の1つのSSD21の論理容量だけが増加しても、チャンク31の数は増加しない。RAIDグループ内の各SSD21のうち、論理容量の最も小さかったSSD21の論理容量が増加した場合、チャンク31が増加し得る。
続いて、ストレージコントローラ10で使用される管理情報について説明を行う。ストレージコントローラ10は多くの管理情報を有するが、以下では、本実施例で主たる説明の対象となる、セルモードの変更処理に関連する管理情報を中心に説明する。
図6は、RAIDグループ管理テーブルの構成を説明する図である。
RAIDグループ管理テーブル650は、ストレージ装置1が管理するRAIDグループと、RAIDグループに属するSSD21の属性情報を管理するためのテーブルで、メモリ14に格納されている。RAIDグループ管理テーブル650の各行(レコード)には、管理対象のRAIDグループの属性情報、または管理対象のRAIDグループに属するSSD21の属性情報が格納される。RAIDグループ管理テーブル650は、RG#651、RAIDレベル652、ドライブ番号653、論理容量654、残消去可能回数655、開始日656、差分比率657、寿命予測値658、T.Cell659、前回実施日660、チャンク数661のカラムを有する。
RG#651にはRAIDグループの識別番号(RAIDグループ番号)が格納され、RAIDレベル652は、RAIDグループのRAIDレベルを示している。ドライブ番号653には、RAIDグループに属するSSD21の識別子が格納される。
論理容量654には、ドライブ番号653で特定される記憶デバイス(SSD21)の論理容量が格納される。本実施例では、それぞれのRAIDグループに属する各SSD21の論理容量の初期値(ストレージ装置1にインストールされた時点の論理容量)は等しいものとするが、別の実施形態として、異なる論理容量のSSD21を用いてRAIDグループが形成されてもよい。先に述べたとおり、時間経過とともに論理容量654の値は変化し得る。
残消去可能回数655には、ドライブ番号653で特定される記憶デバイス(SSD21)の残消去可能回数が格納される。先に述べたとおり、SSD21も内部で残消去可能回数を管理しているが、SSD21はSSD21内のブロックの残消去可能回数をブロックごとに管理している。一方、残消去可能回数655に格納される値は、各ブロックの残消去可能回数の総和である。以下では「SSDの残消去可能回数」とは、SSD21内の全ブロックの残消去可能回数の合計値を意味する語として用いられる。本実施例に係るSSD21は、DKC10等のイニシエータから残消去可能回数の取得要求を受領すると、SSD21の残消去可能回数をイニシエータに返却する機能を持つ。DKC10はSSD21に残消去可能回数の取得要求を発行することで、SSD21から残消去可能回数の情報を得て、残消去可能回数655に格納する。
開始日656には、SSD21の稼働が開始された日(稼働開始日と呼ぶ)が格納される。具体的には、SSD21がストレージ装置1にインストールされ、管理者によってそのSSD21を含むRAIDグループが定義された時、DKC10はその時の日付を開始日656に格納する。
差分比率657は、本実施例においてDKC10が各SSD21の稼働状況の変化を予測するために用いる指標値である。差分比率の算出方法については後述する。DKC10は所定時間(たとえば1ヶ月等)ごとに、各SSD21の差分比率を算出する。RAIDグループ管理テーブル650には過去に算出された差分比率657も記録される。DKC10が差分比率を算出すると、算出された値はD0(657−0)に格納される。そしてD0(657−0)に値を格納した時点から1単位時間前(たとえば1ヶ月前)に算出された差分比率は、D1(657−1)に格納される。同様に、D0(657−0)に値を格納した時点から2単位時間前(たとえば2ヶ月前)に算出された差分比率は、D2(657−2)に格納され、D0(657−0)に値を格納した時点から3単位時間前(たとえば3ヶ月前)に算出された差分比率は、D3(657−3)に格納される。
T.Cell659は、セルモード変更の可否に関する情報である。レコードのT.Cell659に“0”が格納されている場合、DKC10はそのレコードに対応するRAIDグループ内のSSD21については、セルモード変更処理を行わない。一方Cell659に“1”が格納されている場合、DKC10はそのレコードに対応するRAIDグループ内のSSD21のセルモード変更処理を行う。T.Cell659には、ストレージ装置1のユーザ(管理者)がRAIDグループの定義時に、値を格納する。
前回実施日660には、過去に管理対象のRAIDグループに属するSSD21に対してセルモード変更処理が行われた日のうち、最も新しい日が格納される。初期状態(RAIDグループが定義された直後)では、前回実施日660にNULL(無効値、たとえば0等の、日付として用いられない値)が格納される。
寿命予測値658には、DKC10がSSD21の残消去可能回数の変化率に基づいて算出した、SSD21の寿命の予測値が格納される。本実施例に係るストレージシステム1における寿命の定義であるが、SSD21の残消去可能回数が0になった場合、そのSSD21が寿命を迎えた、と定義している。そのため、SSD21の残消去可能回数が0になると予測される日(時刻)が、寿命予測値である。DKC10はSSD21の残消去可能回数の変化率に基づいて、SSD21の残消去可能回数が0になる時期を予測する。寿命予測値の算出方法の詳細は後述する。なお、SSD21の残消去可能回数が0になる日(時刻)を寿命と定義するかわりに、SSD21の残消去可能回数があらかじめ定められた閾値(ただしこの閾値は0以上の値である)を下回った日(時刻)を寿命としてもよい。
また、RAIDグループ管理テーブル650には、上で説明した情報以外の情報が含まれていてもよい。たとえばRAIDグループ管理テーブル650に、各RAIDグループ内に定義可能なチャンクの数等が格納されてもよい。
DKC10はRAIDグループ管理テーブル650以外の管理情報も有する。たとえばストレージ装置1内に定義された各仮想ボリューム内の仮想チャンクと、チャンクとのマッピング関係を管理するためのテーブル、プール内のチャンクの使用状況を管理するテーブルなどである。ただしこれらは、仮想ボリュームをホストに提供する機能を持つ、公知のストレージ装置が通常有している情報と同じであるため、ここでは説明を略す。
これ以降では、各処理のフローについて説明する。まず、ストレージコントローラ10で実行されるプログラムについて説明する。ストレージ装置1のメモリ14にはたとえば、構成管理プログラム141、セルモード制御プログラム142、I/Oプログラム143が格納される。ストレージコントローラ10のCPU11が、これらのプログラムを実行することで、以下で説明する各種の処理が実行される。ただし説明が冗長になることを避けるために、以下では各処理について説明する際に、プログラムを主語として各処理の説明を行うことがある。
構成管理プログラム141は、ストレージ装置1が定義する仮想ボリュームやRAIDグループの管理を行うためのプログラムである。ユーザが管理ホスト5を用いてRAIDグループの定義指示をストレージ装置1に発行した時、ストレージ装置1(のCPU11)では構成管理プログラム141が実行される。構成管理プログラム141はユーザからの指示に基づいて、RAIDグループ管理テーブル650に情報(たとえばRAIDグループに属するSSD21の識別子等)を格納する。
またRAIDグループを定義する際、ユーザはそのRAIDグループに属するSSD21がセルモード変更を行うことを許可するか否か、についても指定を行う。ユーザが、RAIDグループに属するSSD21がセルモード変更を行うことを許可した場合、構成管理プログラム141はRAIDグループ管理テーブル650内のレコードのうち、定義対象のRAIDグループについてのレコードのT.Cell659に“1”を格納し、そうでない場合にはT.Cell659に“0”を格納する。
I/Oプログラム143は、ホスト2からのI/O要求(リードコマンドやライトコマンド)を処理するためのプログラムである。I/Oプログラム143が実行する具体的な処理の内容は、本実施例とは直接関係しないため、説明を略す。
セルモード制御プログラム142は、SSD21の稼働状況に基づいて、セルモード変更の要否を判定し、必要に応じてSSD21にセルモード変更処理を行わせるプログラムである。
図7を用いて、ストレージ装置1で実施されるセルモード変更処理の全体の処理の流れを説明する。なお、図7以降の各図において、参照番号の前に付されているアルファベットの“S”は、「ステップ」を意味する。
ステップ1、ステップ2は、RAIDグループが定義される時に行われる処理の一部であり、構成管理プログラム141がこれらのステップを実行する。なおここでは、RAIDグループを定義する処理の説明は略す。ステップ1でユーザは管理ホスト5を用いて、RAIDグループに属するSSD21がセルモード変更を行うことを許可する旨の指示をストレージ装置1に発行する。そして構成管理プログラム141はこの指示を受領する。
続いてステップ2で構成管理プログラム141は、定義対象のRAIDグループについてのレコードのT.Cell659に“1”を格納する。この処理が終わると、構成管理プログラム141はRAIDグループの定義が完了したこと、またユーザがセルモード変更を許可した場合には、セルモード変更の設定が行われたことを、ユーザに通知する。
RAIDグループは、I/Oプログラム143によってアクセス(リードまたはライト)が行われる。たとえばステップ1、ステップ2で定義されたRAIDグループがプールに登録されると、ホスト2が仮想ボリュームに対してライトコマンドを発行することに応じて、I/Oプログラム143は定義されたRAIDグループ内のチャンクを、仮想ボリュームの仮想チャンクにマップし、マップされたチャンクに対するI/O処理を実行する。ただしI/Oプログラム143の処理の具体的内容は本実施例と直接関係しないため、説明を略す。
またRAIDグループが定義された後、そのRAIDグループに対してセルモード制御プログラム142が定期的に(たとえば1ヶ月に1回)処理を行う(ステップ3〜ステップ6)。ここではストレージコントローラ10とSSD21間で行われるやり取り、またユーザとストレージコントローラ10の間で行われるやり取りを中心に説明する。
セルモード制御プログラム142はRAIDグループ毎に実行される。ただし、RAIDグループ管理テーブル650のT.Cell659に“1”が設定されたRAIDグループに対してのみ、ステップ3〜ステップ6の処理が行われる。以下では一例として、RG#n(nは非負の整数値である)を対象としてセルモード制御プログラム142が実行される例を説明する。セルモード制御プログラム142が開始されると、まずセルモード制御プログラム142はRG#nに属する各SSD21に対し、残消去可能回数の取得要求を発行する(ステップ3)。残消去可能回数の取得要求を受領したSSD21は、SSD21の残消去可能回数をストレージコントローラ10に返却する(ステップ4)。
その後、セルモード制御プログラム142は、ステップ4で受領したSSD21の残消去可能回数等を用いて、セルモード変更要否の判定を行う(ステップ5)。またステップ5で、セルモード変更要と判定された場合、セルモード制御プログラム142はRG#nに属するSSD21が所定の年数稼働可能な残消去可能回数を算出し、セルモード変更処理(ステップ6)を実施する。なお、本実施例では、期待されているSSD21の耐用年数が、最低5年の例を説明する。ステップ5、6の詳細は後述する。なお、本実施例において、ステップ6のセルモード変更処理は、“T.Cell”と呼ばれることもある。また、ステップ5でセルモード変更不要と判定された場合には、セルモード制御プログラム142はステップ6を行わず、処理を終了する。
続いて、図7のステップ3〜ステップ5の処理の詳細を、図8、図9を用いて説明する。なお、図8、図9に記載の処理は、図7のステップ3〜ステップ5に相当する処理である。またステップ6の詳細は図13に記載されている。
ステップ1010:セルモード制御プログラム142は、RG#nに属する各SSD21の稼働時間を算出する。本実施例において、SSD21の稼働時間とは、SSD21が稼働を開始してからの経過時間を意味し、現在の日付(時刻)からSSD21の稼働開始日(RAIDグループ管理テーブル650の開始日656に格納されている値)を減算することで得られる値である。
またステップ1010でセルモード制御プログラム142は、RG#nに属する各SSD21の残消去可能回数を取得するために、残消去可能回数の取得要求を各SSD21に発行する。残消去可能回数の取得要求を受領したSSD21はブロック管理テーブル1150を参照し、SSD21が有する全ブロックの残消去可能回数1155の合計を算出する。そしてSSD21は、算出された合計値(つまりSSD21の残消去可能回数)をストレージコントローラ10(セルモード制御プログラム142)に返却する。
ステップ1020:セルモード制御プログラム142は、RG#nに属する各SSD21の寿命予測値及び差分比率を算出する。以下では寿命予測値及び差分比率の定義及び算出方法について説明する。
図10を用いて寿命予測値の算出方法の概念について説明する。図10の点(a1)、(a2)は、あるSSD21の残消去可能回数をプロットしたものである。図10に記載の座標系で、横軸は時刻(日時)を表し、縦軸は残消去可能回数を表す。点(a2)は現在時刻(T2)におけるSSD21の残消去可能回数(N2)を表し、点(a1)は前回セルモード制御プログラム142を実行した時(T1)のSSD21の残消去可能回数(N1)を表す。なお、以下のステップ1020の説明において、現在時刻(日時)とは、今回セルモード制御プログラム142を実行している時点(瞬間)の時刻(日時)を意味する。
寿命予測値の算出にあたっては、SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくという仮定のもとで、算出が行われる。先に述べたとおり、寿命予測値とはSSD21の残消去可能回数が0になる時刻のことである。そのため、図10の直線(A)の延長線上と横軸との交点(図10中の点(a3))が、寿命予測値を表すことになる。寿命予測値をT3とすると、T3は、以下の式(2)で表される。
セルモード制御プログラム142は、式(2)を用いてT3を算出する事で、SSD21の寿命予測値を得る。
続いて差分比率について説明する。上で説明したSSD21の寿命予測値は、SSD21の残消去可能回数の変化率が一定という仮定の元で算出された値であるが、残消去可能回数の変化率は変動することもあり得る。そのため、残消去可能回数の変化率をもとに導出される寿命予測値も変動し得る。差分比率は寿命予測値の変動傾向を表す指標値である。
セルモード制御プログラム142は、以下に示す式(3)を用いて、差分比率を算出する。なお、以下の式(3)では、SSD21の稼働開始日(開始日656)をL0、最新の寿命予測値(今回セルモード制御プログラム142を実行した時に算出された寿命予測値)をL1、前回セルモード制御プログラム142を実行した時に算出された寿命予測値をL2、そして差分比率をDと表記する。
差分比率Dが正の値をとる場合、寿命予測値(L1)が増加傾向にある(過去の寿命予測値(L2)より増加している)ことを意味する。この場合、たとえばSSD21へのライト頻度が減少傾向にあることが考えられる。逆に差分比率Dが負の値をとる場合、寿命予測値(L1)が減少傾向にある(過去の寿命予測値(L2)より小さくなっている)ことを意味し、この場合はたとえばSSD21へのライト頻度が増加傾向にあることが考えられる。
また、差分比率が0の場合、または0に極めて近い値をとる場合、L1とL2に殆ど差がない(寿命予測値の変動がない)ことを意味し、この場合にはSSD21へのライト頻度に変化がない(一定のライト頻度である)と推定することができる。
ステップ1020では、セルモード制御プログラム142は上で述べた式(2)〜式(3)を用いて、RG#nに属する各SSD21の寿命予測値と差分比率を算出する。またセルモード制御プログラム142は、差分比率の算出後にRG#nに属する各SSD21の残消去可能回数と寿命予測値をRAIDグループ管理テーブル650の残消去可能回数655、寿命予測値658に格納する。そのため、ステップ1020の実行開始時点では、残消去可能回数655、寿命予測値658には、前回セルモード制御プログラム142が実行された時点のSSD21の残消去可能回数、寿命予測値が格納されている。
たとえばRG#nに属するあるSSD21(以下ではこれを“SSD#k”と表記する)について寿命予測値、差分比率を計算する場合、以下の手順で計算すればよい。セルモード制御プログラム142は、式(2)のN2に、ステップ1010で得られたSSD#kの残消去可能回数を代入し、またN1にはRAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの残消去可能回数655を代入する。さらにセルモード制御プログラム142は、T2に現在時刻(日時)を代入し、そしてT1には前回セルモード制御プログラム142が実行された時刻(日時)を代入する。セルモード制御プログラム142は定期的(たとえば1ヶ月に1回)が実行される。そのため、たとえば1ヶ月に1回セルモード制御プログラム142が実行される場合、セルモード制御プログラム142はT1に、現在時刻(日時)から1か月前の日時を代入すればよい。セルモード制御プログラム142は、この計算をRG#nに属する各SSD21について実施することで、各SSD21の寿命予測値を算出する。
続いてセルモード制御プログラム142は、式(2)を用いて得られた寿命予測値を式(3)のL1に代入し、前回セルモード制御プログラム142を実行した時に算出された寿命予測値(RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの寿命予測値658に格納されている)を式(3)のL2に代入し、そして稼働開始日(RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードの開始日656に格納されている)を式(3)のL0に代入することで、SSD#kの差分比率Dを算出する。
差分比率Dの算出後、セルモード制御プログラム142は、RAIDグループ管理テーブル650のレコードのうち、SSD#kに対応するレコードのD0(657−0)、D1(657−1)、D2(657−2)に格納されていた値をそれぞれ、D1(657−1)、D2(657−2)、D3(657−3)に移動する。その後セルモード制御プログラム142は、先に式(3)を用いて算出した差分比率Dの値を、D0(657−0)に格納する。これにより、D0(657−0)、D1(657−1)、D2(657−2)、D3(657−3)にはそれぞれ、最新の差分比率D、1ヶ月前に算出した差分比率、2ヶ月前に算出した差分比率、3ヶ月前に算出した差分比率が格納されることになる。
ステップ1030:セルモード制御プログラム142は、前回セルモード制御プログラム142がRG#nに属するSSD21にセルモード変更処理を行ってから所定の期間が経過したか判定する。ここでの「所定の期間」とは、RG#nを対象としてセルモード制御プログラム142が実行される周期よりも長い期間である。本実施例ではこの「所定の期間」が6ヶ月である例を説明するが、「所定の期間」は必ずしも6ヶ月である必要はない。「所定の期間」は、セルモード制御プログラム142が実行される周期よりも長い期間であればよい。ステップ1030では具体的には、セルモード制御プログラム142はRAIDグループ管理テーブル650のレコードのうち、RG#nについての情報を格納するレコード(RG#651が“n”のレコード)の前回実施日660が、現在時刻よりも6ヶ月以上前であるかを判定する。
ただし、これまでにRG#nに属するSSD21に対して一度もセルモード変更処理が行われていない場合(たとえばRG#nがストレージシステム1に導入されて間もない場合が該当する)、前回実施日660にはNULLが格納されている。その場合には、セルモード制御プログラム142はRG#nに属する全SSD21の稼働開始日(開始日656)から所定の期間(たとえば6ヶ月)経過したかを判定する。
前回のセルモード変更処理実行時点から6ヶ月以上経過していない場合(ステップ1030:NO)、セルモード制御プログラム142はRG#nに属する全SSD21のセルモードの変更を行わないと決定し、処理を終了する(ステップ1150)。またステップ1150では、セルモード制御プログラム142は、ステップ1010で取得した各SSD21の残消去可能回数をRAIDグループ管理テーブル650の残消去可能回数655に格納し、ステップ1020で算出された寿命予測値をRAIDグループ管理テーブル650の寿命予測値658に格納した後、処理を終了する。
一方ステップ1030の判定が肯定的な場合は、ステップ1060以降の処理が行われる。なお、ステップ1060以降の処理は、RG#nに属するSSD21毎に行われる。以下、RG#nに属するある1つのSSD21(仮にこれを“SSD#k”と呼ぶ)についてステップ1060〜ステップ1270が行われるケースについて説明する。
ステップ1060:セルモード制御プログラム142は、SSD#kのD0(657−0)を参照する(D0(657−0)は、ステップ1020で算出された差分比率Dである)。そしてセルモード制御プログラム142は、SSD#kのD0(657−0)が、以下の(a)〜(c)のいずれに該当するか判定する。
(a)0に極めて近い値
(b)負の値
(c)正の値
(a)0に極めて近い値
(b)負の値
(c)正の値
ここで、D0(657−0)がーα〜αの範囲にある場合、セルモード制御プログラム142はD0(657−0)が“0に極めて近い値”((a)に該当する)と判定する。なお、αは0<α<1の関係にある値で、0に近い値(たとえば0.05等)である。以下では特に断りのない限り、α=0.05の場合の例を説明する。
またD0(657−0)がーαより小さい値だった場合、セルモード制御プログラム142はD0(657−0)が負の値である((b)に該当する)と判定する。そしてD0(657−0)がαより大きい値だった場合、セルモード制御プログラム142はD0(657−0)が正の値である((c)に該当する)と判定する。
SSD#kのD0(657−0)が、(b)に該当する場合(ステップ1060:D0=マイナス値)、セルモード制御プログラム142は、RG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。この場合は、先に述べたとおりSSD21へのライト頻度が増加傾向にあると推定される。SSD#kに対する今後のライト頻度が増加する場合、実際の寿命がステップ1020で求められた寿命予測値よりも短くなる可能性がある。そのためセルモード制御プログラム142は、この場合にはセルモード変更処理を実行しないと決定する。
SSD#kのD0(657−0)が(c)に該当する場合(ステップ1060:D0=プラス値)、セルモード制御プログラム142は次にステップ1070を実行する。またSSD#kのD0(657−0)が(a)に該当する場合(ステップ1060:D0=ほぼゼロ値)、セルモード制御プログラム142は次にステップ1210(図9)を実行する。
ステップ1070:セルモード制御プログラム142はSSD#kの稼働時間(ステップ1010で算出された値である)が1年未満か判定する。SSD#kの稼働時間が1年以上の場合(ステップ1070:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。SSD#kの稼働時間が1年未満の場合(ステップ1070:YES)、セルモード制御プログラム142は次にステップ1080を実行する。SSD#kのD0(657−0)が(c)に該当する場合、先に述べたとおりSSD#kへのライト頻度が減少傾向にあると推定される。そのためSSD#kの実際の寿命がステップ1020で求められた寿命予測値よりも長くなる可能性があるため、セルモード変更処理が行われてもよいかもしれない。ただし一般に、ボリュームあるいは記憶デバイスへのアクセス傾向(ホスト等によるリードまたはライトの頻度)は、運用が開始されてからしばらくの間(たとえば半年)は変動が大きく、それ以上経つと徐々にアクセス傾向が安定する。そのためセルモード制御プログラム142は、SSD#kの稼働時間も考慮して、セルモード変更処理の実行可否を決定する。SSD#kの稼働時間が1年未満で、かつライト頻度が単調減少傾向にある場合、セルモード制御プログラム142は、SSD#kのアクセス傾向が安定し始める時期に入っていると判断し、セルモード変更処理を行って良いと判断する。ただしSSD#kの稼働時間が短いため、寿命予測値が充分長い(たとえば想定される耐用年数の倍以上)場合に限って、セルモード変更処理が行われる。一方、ライト頻度が減少傾向にあるがSSD#kの稼働時間が1年以上の場合、SSD#kへのアクセス傾向が一般的な傾向とは異なる物と推定される。たとえばSSD#kに格納されているデータの種類が、ホストからの更新によって変わった場合などである。その場合にセルモード変更処理が行うことはリスク(耐用年数を待たずにSSD#kが寿命を迎えるリスク)がある。そのためセルモード制御プログラム142は、この場合にはセルモード変更処理を実行しないと決定する。
ステップ1080:セルモード制御プログラム142はSSD#kの寿命予測値が、稼働開始日から11年後以上で、かつSSD#kの差分比率の履歴(D0(657−0)〜D3(657−3))が、D0≦D1≦D2≦D3の関係にあるか判定する。ステップ1080の判定が否定的だった場合(ステップ1080:NO)、つまりSSD#kの寿命予測値が稼働開始日から11年未満である、あるいは差分比率の履歴がD0≦D1≦D2≦D3の関係にない場合、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。ステップ1080の判定が肯定的だった場合(ステップ1080:YES)、セルモード制御プログラム142は次にステップ1090を実行する。
ステップ1090:ステップ1080の判定が肯定的だった場合は、SSD#kの寿命予測値(稼働開始日から11年以上)が、想定されているSSD21の耐用年数(たとえば5年)よりも長い場合である。またSSD#kへのDKC10からのライト頻度が単調減少傾向にあるといえる。この場合、セルモード制御プログラム142は、RG#nに属するSSD21の寿命(寿命予測値)が減少しても、SSD21の論理容量を増やすほうが良いと判断する。そこでセルモード制御プログラム142は、SSD#kの寿命予測値を削減した場合の残消去可能回数(SSD#kの論理容量を増やした場合の残消去可能回数と言い換えることもできる)を見積もる。以下では、論理容量を増やした場合のSSD21の寿命予測値のことを「目標寿命値」と呼び、またその時の残消去可能回数のことは「目標残消去可能回数」と呼ぶ。なお、ステップ1090では、セルモード制御プログラム142はSSD#kの目標寿命値を稼働開始後から10年後として、残消去可能回数を求める。ここでSSD#kの目標寿命値を稼働開始後から10年後、つまり期待されている耐用年数の倍という長い値に設定される理由は、SSD#kの稼働時間が短く(稼働開始後1年未満)、今後SSD#kに対するライト頻度(更新頻度)が変動する可能性もあるからである。セルモード制御プログラム142は目標寿命値を大きめにすることで、SSD#kのセルモードの変更が過剰に行われないようにしている。
ステップ1090(あるいは後述するステップ1230、ステップ1250、ステップ1270)で行われる目標残消去可能回数の算出方法を説明する。ここでは、ステップ1020で用いた情報を再び用いる。以下では、現在の時刻(今回セルモード制御プログラム142を実行している時点)をT2、また前回セルモード制御プログラム142を実行した時刻をT1とする。また、ステップ1020において使用した、時刻T2(現在の時刻)におけるSSD#kの残消去可能回数をN2、そして時刻T1におけるSSD#kの残消去可能回数をN1とする。
目標残消去可能回数の算出方法について、再び図10を用いて説明する。セルモード制御プログラム142が目標残消去可能回数を算出する際、ステップ1020で寿命予測値を算出した時と同様に、SSD21の残消去可能回数は、式(1)で表される変化率で推移するという仮定に基づいて算出する。ステップ1020では、残消去可能回数が0になる時の時刻を算出し、これを寿命予測値とする処理が行われた。ステップ1090では逆に、寿命予測値(つまり残消去可能回数が0になる時の時刻)が所定の値(たとえばステップ1090では、稼働開始日から10年後の時刻)であると仮定し、その寿命予測値を満たすために必要な、現在の残消去可能回数の最小値を求める。直線(A)は、ステップ1020で行われる寿命予測値の算出で用いた直線である。
ここでの残消去可能回数の算出においても、ステップ1020における寿命予測値)との算出と同様、SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくという仮定のもとで、算出が行われる。ステップ1080の判定が肯定的だった場合、図10のT3が11年以上と判定された場合である。またこの場合、SSD21の寿命(寿命予測値)が過剰に長いため、寿命がもう少し短くてもよいから論理容量を増加させたいケースである。
図10の直線(B)は、直線(A)と平行な直線(つまり傾きが式(1)で表される値に等しい直線)で、かつ座標(T3’,0)を通る直線である(ただしT3’<T3の関係にある)。また直線(B)上の点(b1)の座標値は、横軸(時刻)の値がT2、縦軸(残消去可能回数)の値がN2’である。SSD21の残消去可能回数が、式(1)で求めた変化率で減少していくと仮定すると、時刻T2(現在時刻)における残消去可能回数(N2’)が、直線(B)上(図10における点(b1))に存在していれば、寿命予測値(目標寿命値)はT3’になる(時刻T3’の時に残消去可能回数が0になる)。式(4)は、直線(B)の時刻T2における残消去可能回数(つまりN2’)を求めるための式である。
ステップ1090ではセルモード制御プログラム142は、式(4)のN1,N2,T1,T2にはステップ1020で代入した値と同じ値を代入し、またT3’(目標寿命値)には、SSD#kの稼働開始日から10年後の日付を代入することでN2’を求める。
ステップ1095:セルモード制御プログラム142はRG#nに属する全てのSSD21について処理(ステップ1060〜ステップ1090、あるいはステップ1210〜ステップ1270の処理)を行っていない場合には、未処理のSSD21に対してステップ1060の処理を実行する。RG#nに属する全てのSSD21について処理が完了している場合には、セルモード制御プログラム142は次にステップ1100を行う。
ステップ1100:セルモード制御プログラム142は、ステップ1090等で求められた目標残消去可能回数を用いて、SSD#kのセルモード変更処理を行うことを決定する。またここでセルモード制御プログラム142は、ステップ1010で取得した各SSD21の残消去可能回数をRAIDグループ管理テーブル650の残消去可能回数655に格納し、ステップ1020で算出された寿命予測値をRAIDグループ管理テーブル650の寿命予測値658に格納する。その後セルモード制御プログラム142は、ステップ6(セルモード変更処理)を実行する。ステップ6の詳細は後述する。
続いてステップ1060の判定において、SSD#kのD0(657−0)が0に極めて近い値だった場合(ステップ1060:D0=ほぼゼロ値)の処理(図9に記載のステップ1210以降の処理)について説明する。この場合、SSD#kへのライト頻度に変化がない(一定のライト頻度である)と推定されるので、セルモード制御プログラム142は原則として、セルモード変更処理を行ってよいと判断する。詳細は後述する。
ステップ1210:セルモード制御プログラム142は、SSD#kの稼働時間が1年未満か、1年以上3年未満か、3年以上か判定する。
ステップ1210で稼働時間が1年未満と判定された場合、ステップ1240が実行される。ステップ1240でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から7年以上で、かつ過去に算出した差分比率(D1,D2,D3)がいずれも0に極めて近い値(−α〜αの範囲の値)であるか判定する。ステップ1240の判定が否定的だった場合(ステップ1240:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。ステップ1240でセルモード制御プログラム142が、D1,D2,D3がいずれも−α〜αの範囲の値であるか判定する理由は、SSD21へのライト頻度に変化がないこと、つまりSSD21へのアクセス傾向が安定した状態にあるかを確認するためである。SSD21へのアクセス傾向が安定していない状態の場合、今後ライト頻度(消去頻度)が増加する等のリスクがあるため、セルモード制御プログラム142はセルモード変更処理を実行しない。
ステップ1240の判定が肯定的だった場合(ステップ1240:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1250)。ステップ1250の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から7年とした場合の目標残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から7年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210〜ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
ステップ1210で稼働時間が1年以上3年未満と判定された場合、ステップ1260が実行される。ステップ1260でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から6年以上で、かつD1,D2,D3がいずれも0に極めて近い値(−α〜αの範囲の値)であるか判定する。ステップ1240の判定が否定的だった場合(ステップ1260:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。
ステップ1260の判定が肯定的だった場合(ステップ1260:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1270)。ステップ1270の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から6年とした場合の残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から6年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210〜ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
ステップ1210で稼働時間が3年以上と判定された場合、ステップ1220が実行される。ステップ1220でセルモード制御プログラム142は、SSD#kの寿命予測値が稼働開始日から5.5年以上で、かつD1,D2,D3がいずれも0に極めて近い値(−α〜αの範囲の値)であるか判定する。ステップ1220の判定が否定的だった場合(ステップ1220:NO)、セルモード制御プログラム142はRG#n内の全SSD21についてセルモード変更処理を実行しないと決定し(ステップ1150)、処理を終了する。
ステップ1220の判定が肯定的だった場合(ステップ1220:YES)、セルモード制御プログラム142はSSD#kについて、残消去可能回数決定処理を行う(ステップ1230)。ステップ1230の処理は、ステップ1090と同様である。ただしここでは、SSD#kの目標寿命値を、稼働開始日から5.5年とした場合の残消去可能回数を決定する。つまり式(4)のT3’に稼働開始日から5.5年後の日付を代入して寿命予測値を算出する点が、ステップ1090と異なる。
その後セルモード制御プログラム142は、RG#nに属する全てのSSD21について、ステップ1210〜ステップ1270の処理が完了していない場合には(ステップ1275:NO)、未処理のSSD21についてステップ1060から処理を繰り返す。ステップ1275の判定が肯定的な場合は、続いてステップ1100が実行される。
続いて、図7のステップ6に相当する処理(セルモード変更処理)の詳細を、図13、図11、図12を用いて説明する。
まず、図13を参照しながら、ステップ6の処理の概略を説明する。セルモード制御プログラム142は、RG#nに属する各SSD21に、容量確認コマンドを発行する(ステップ7)。容量確認コマンドには、残消去可能回数の情報が含まれている。ここに含まれる残消去可能回数の情報は、セルモード制御プログラム142が図8、図9に示された処理(図7のステップ3〜ステップ5に相当する処理)を実行した結果得られた、SSD21の目標残消去可能回数である。
SSD21の一部または全部のブロック211をMLCモードからTLCモードに変更すると、SSD21の論理容量が増加するが残消去可能回数が減少する。このコマンドを受領したSSD21は、コマンドに含まれている残消去可能回数の情報を用いてTLCモードに変更可能なブロック211の数を求め、さらにそれをもとに、ブロック211をTLCモードに変更した場合の論理容量を算出する(ステップ8)、SSD21は算出された論理容量をストレージコントローラ10に返却する(ステップ9)。なお、ここでSSD21が実行する処理の詳細は、後述する。
図11を参照しながら、ステップ8でSSD21が実行する処理の流れを説明する。図11の処理は、SSD21が有するセルモード変更プログラム242により行われる。
ステップ2010:セルモード変更プログラム242はDKC10から容量確認コマンドを受領すると、容量確認コマンドに含まれている残消去可能回数の情報を抽出する。
ステップ2020:セルモード変更プログラム242はブロック管理テーブル1150の複製を作成する。ここでは作成されたブロック管理テーブル1150の複製のことを「複製テーブル」と呼ぶ。また複製テーブルの各カラムは、ブロック管理テーブル1150と同様に、チップ#1151、ダイ#1152、ブロック#1153、モード1154、残消去可能回数1155と呼ぶ。そしてセルモード変更プログラム242は複製テーブルの各レコードについて、残消去可能回数1155の大きい順にソートする。
ステップ2030:セルモード変更プログラム242は、複製テーブルの中から、レコードを1つ選択する。ここで選択されるレコードは、以下で説明するステップ2040以降の処理が行われていないレコードで、かつ残消去可能回数1155が最も大きいレコードである。
ステップ2040:セルモード変更プログラム242は、複製テーブルの内容を元にSSD21の残消去可能回数を算出する。この時セルモード変更プログラム242は、ステップ2030で選択されたレコードで管理されるブロックが、MLCモードからTLCモードに変更されたという前提で、SSD21の残消去可能回数を算出する。具体的には以下の手順で計算が行われる。
まずセルモード変更プログラム242は、複製テーブルの中の、ステップ2030で選択されたレコードを除く全てのレコードの残消去可能回数1155の合計値を算出する。続いてセルモード変更プログラム242は、ステップ2030で選択されたレコードの残消去可能回数に0.1を乗じた値を算出し、ここで算出された値を、先に算出した残消去可能回数1155の合計値に加算する。
そしてセルモード変更プログラム242は、ここで算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数以下であるか判定する。算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数以下の場合(ステップ2040:YES)、次にステップ2050が行われる。算出されたSSD21の残消去可能回数が、ステップ2010で受領した残消去可能回数よりも大きい場合(ステップ2040:NO)、セルモード変更プログラム242はステップ2050〜ステップ2070の処理をスキップし、次にステップ2080を行う。
また、ステップ2040では、もしステップ2030で選択されたレコードのモード1154が“1”だった場合(つまり選択されたレコードで管理されるブロックが既にTLCモードだった場合)も、ステップ2050〜ステップ2070の処理はスキップされ、ステップ2080が行われる。
ステップ2050:セルモード変更プログラム242は、ステップ2030で選択されたレコードの残消去可能回数1155を変更し(0.1倍する)、またこのレコードのモード1154を“1”に変更する。
ステップ2070:セルモード変更プログラム242は、複製テーブルの中に未処理のレコード(ステップ2030、ステップ2040等の処理が行われていないレコード)があるか判定する。未処理のレコードがある場合(ステップ2070:YES)、セルモード変更プログラム242は再びステップ2030の処理を行う。未処理のレコードがない場合(ステップ2070:NO)、次にステップ2080が行われる。
ステップ2080:セルモード変更プログラム242は、幾つかのブロックがTLCモードに変更された場合の、SSD21の論理容量を算出する。具体的には以下の計算を行う。
セルモード変更プログラム242は、複製テーブルのレコードのうち、モード1154が“0”であるレコードの数(これをMとする)及びモード1154が“1”であるレコードの数(これをTとする)を計数する。計数された値(M,T)はそれぞれ、SSD21内の幾つかのブロック211がTLCモードに変更された場合の、MLCモードのブロック数、TLCモードのブロック数に相当する。そしてセルモード変更プログラム242は、M×MLCモードのブロックのサイズ+T×TLCモードのブロックのサイズを算出することで、SSD21の論理容量を求める。なお、TLCモードのブロックのサイズはMLCモードのブロックのサイズの1.5倍の関係にある(1つのセル214に格納可能なビット数が、TLCはMLCの1.5倍だからである)。
ステップ2090:セルモード変更プログラム242は、ステップ2080で算出されたSSD21の論理容量をDKC10に通知し、複製テーブルを破棄し、処理を終了する。
図13の説明、つまりDKC10のセルモード制御プログラム142で実行される処理の説明に戻る。
各SSD21から論理容量が返却された後、セルモード制御プログラム142はRG#nに属するSSD21の最小容量を決定する(ステップ10)。具体的にはセルモード制御プログラム142は、RG#nに属する各SSD21から返却された論理容量の最小値を特定する。特定された値が、RG#nに属するSSD21の最小容量である。その後セルモード制御プログラム142は、セルモードの変更可否をユーザに確認する(ステップ11)。一例として、セルモード制御プログラム142は管理ホスト5に、図14に示されるような確認用画面を管理ホスト5のディスプレイに表示させ、セルモードの変更を承諾するか否か、ユーザからの返答を得る。図14の確認用画面のうち“実施する”ボタンをユーザが押した場合、管理ホスト5はその旨をセルモード制御プログラム142に返却する(ステップ12)。
セルモードの変更をユーザが許可しなかった場合、つまり確認用画面の“実施しない”ボタンをユーザが押した場合、セルモード制御プログラム142は処理を終了する。
セルモードの変更をユーザが許可した場合、つまり確認用画面の“実施する”ボタンをユーザが押した場合、セルモード制御プログラム142は、RG#nに属する各SSD21に、セルモード変更コマンドを発行する。セルモード変更コマンドには、容量情報が含まれている。セルモード制御プログラム142は、ステップ10で決定したSSD21の最小容量が容量情報として設定されたセルモード変更コマンドを、各SSD21に発行する。このコマンドを受領したSSD21は、コマンドに含まれている容量情報を用いて、SSD21内のいくつかのブロックのセルモードを、MLCモードからTLCモードに変更する(ステップ14)。
図12を用いて、セルモード変更コマンドを受領したSSD21が実施する処理(ステップ14)の詳細を説明する。
ステップ2510:セルモード変更プログラム242はDKC10からセルモード変更コマンドを受領すると、セルモード変更コマンドに含まれている容量情報を抽出する。先に述べたとおり、この容量情報はステップ10で決定された、RG#nに属するSSD21の最小容量である。
ステップ2520:セルモード変更プログラム242はブロック管理テーブル1150の中から、レコードを1つ選択する。ここで選択されるレコードは、以下で説明するステップ2530以降の処理が行われていないレコードで、かつ残消去可能回数1155が最も大きいレコードである。
ステップ2530:セルモード変更プログラム242は、ステップ2520で選択されたレコードで管理されるブロックがTLCモードに変更された想定の元、SSD21の論理容量を算出する。算出方法は以下の通りである。
セルモード変更プログラム242は、ブロック管理テーブル1150のレコードのうち、モード1154が“0”であるレコードの数から1を減算した値を算出する。この値を以下では“m”と表記する。またセルモード変更プログラム242は、ブロック管理テーブル1150のレコードのうち、モード1154が“1”であるレコードの数に1を加算した値を算出する。この値を以下では“m”と表記する。mとtは、ステップ2520で選択されたレコードで管理されるブロック(つまり1つのブロック)がTLCモードに変更されたと仮定した場合、SSD21内のMLCモードのブロック数、TLCモードのブロック数になる。
そしてセルモード変更プログラム242は、
m×MLCモードのブロックのサイズ+t×TLCモードのブロックのサイズ
を算出することで、セルモード変更後のSSD21の論理容量を求める。
m×MLCモードのブロックのサイズ+t×TLCモードのブロックのサイズ
を算出することで、セルモード変更後のSSD21の論理容量を求める。
ここで求められたセルモード変更後のSSD21の論理容量が、ステップ2510で取得した容量情報以下の場合(ステップ2530:YES)、次にステップ2540が行われる。一方、セルモード変更後のSSD21の論理容量がステップ2510で取得した容量情報より大きい場合(ステップ2530:NO)、セルモード変更プログラム242はステップ2540〜ステップ2550の処理をスキップし、次にステップ2560を行う。
ステップ2540:セルモード変更プログラム242はFMチップ210に、ステップ2520で選択されたレコードで管理されるブロック211のセルモード変更の指示を発行し、そのブロック211をTLCモードに変更させる。その後セルモード変更プログラム242は、ブロック管理テーブル1150のレコード(ステップ2520で選択されたレコード)のモード1154を“1”に変更するとともに、残消去可能回数1155を変更する(0.1倍する)。
ステップ2550:セルモード変更プログラム242は、ブロック管理テーブル1150の中に未処理のレコード(ステップ2520、ステップ2530等の処理が行われていないレコード)があるか判定する。未処理のレコードがある場合(ステップ2550:YES)、セルモード変更プログラム242は再びステップ2520の処理を行う。未処理のレコードがない場合(ステップ2550:NO)、次にステップ2560が行われる。
ステップ2560:セルモード変更プログラム242は、処理が完了した旨をDKC10に通知し、処理を終了する。この時セルモード変更プログラム242は、変更後のSSD21の論理容量をDKC10に通知する。
ステップ14(図12の処理)が終了すると(RG#nに属する全SSD21から処理完了の応答を受領すると)、セルモード制御プログラム142はSSD21から返却されたSSD21の論理容量をRAIDグループ管理テーブル650(論理容量654)に格納し、また前回実施日660に現在の日付(時刻)を格納し、処理を終了する。
以上が、本実施例に係るストレージシステムで行われる処理である。本実施例に係るストレージシステムでは、SSD21の残消去可能回数の変化率からSSD21の寿命を予測し、予測した寿命が所定値(耐用年数)より大きい場合、一部のブロック(セル)のモードをMLCモードからTLCモードに変更して、SSD21の記憶容量を増加させる。具体的にはストレージコントローラが、目標寿命を満足するSSD21の残消去可能回数(目標残消去可能回数)を算出する。そしてSSD21は、SSD21の残消去可能回数が目標残消去可能回数に変更された場合、何個のブロックをTLCモードで運用可能か決定し、決定された数のブロックについてセルモードを変更する。これによりストレージシステムは、SSD21の寿命(耐用年数)を維持しつつ、より大きな記憶容量をユーザに提供することができる。
以上、本発明の実施例を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
上で説明した実施例では、SSD21の各セルが、2ビットまたは3ビットのデータを格納可能な例を説明したが、本発明はこれに限定されるものではない。たとえばSSD21の各セルが、nビット(nは2以上の整数)のデータを格納可能なモードからmビット(ただしmは、n<mを満たす整数)のデータを格納可能なモードに変更可能である場合にも、適用可能である。また上の実施例では、あるブロックのセルモードがMLCモードからTLCモードに変更されると、そのブロックの残消去可能回数がセルモード変更前の残消去可能回数の1/c(たとえばc=10)に変更される例が説明されたが、これは一例であり、これ以外の例が用いられてもよい
また、上で説明した実施例では、ストレージシステムは複数のSSD21をRAIDグループとして運用する例が説明されたが、SSD21がRAIDグループとして運用される構成は必須ではない。たとえばストレージシステムは、単一のSSD21が提供する記憶アドレス空間をプールに登録して運用してもよいし、あるいはSSD21が提供する記憶アドレス空間が直接ホスト2に提供されてもよい。
また上で説明した実施例では、SSD21はストレージコントローラ10から容量確認コマンドを受領することで、残消去可能回数(目標残消去可能回数)を取得すると、一旦算出された容量の情報をストレージコントローラ10に返却する。そしてストレージコントローラ10から容量情報(セルモード変更コマンドに含まれている)を受領すると、その容量情報に基づいて、幾つかのセル(ブロック)のモードをMLCモードからTLCモードに変更する。つまりセルモード変更が行われるまでに、ストレージコントローラ10とSSD21の間で2回のコマンドのやり取りが行われる。ただし別の実施形態として、SSD21はストレージコントローラ10から目標残消去可能回数を与えられた時点で、一旦ストレージコントローラ10に応答を返すことなく、セルモードの変更を行ってもよい。具体的にはたとえば、図11のステップ2070までの処理で、TLCモードに変更されてもよいブロックが決定されるので、SSD21はステップ2080で決定されたブロックをTLCモードに変更するとよい。
また、上で説明した実施例ではTLCモードに変更後のセルの残寿命を推定するために残消去可能回数を使用したが、残寿命の推定方法はこの方法に限られるものではない。一例を挙げると、セルの寿命は消去回数だけでなく消去間隔(前回消去からの経過時間)にも依存することが知られている。そこで、残消去可能回数に代えて、消去間隔を加味したポイントを管理し、そのポイントの変化率に基づいて残寿命を算出(推定)するようにしてもよい(たとえば残消去可能回数の代わりに、最初は一定のポイントをすべてのブロックに与えておく。そして、ブロックの消去が行われると、消去間隔に応じてブロックから所定量の値を削減するが、消去間隔が短い場合には削減する量を多くするとよい)。これにより、より正確な残寿命の推定が可能になると考えられる。
1:ストレージ装置, 2:ホスト計算機, 3:SAN, 5:管理ホスト, 10:ストレージコントローラ, 11:CPU, 12ホストI/F, 13:デバイスI/F, 14:メモリ, 15:管理用I/F, 21:SSD, 25:HDD, 200:SSDコントローラ, 201:CPU, 202:上流I/F, 203:下流I/F, 204:メモリ, 205:内部接続スイッチ, 210:FMチップ, 211:ブロック, 213:ダイ, 214:セル
Claims (13)
- ストレージコントローラと、前記ストレージコントローラに接続される複数の記憶デバイスとを有するストレージシステムにおいて、
前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
前記ストレージコントローラは、
前記記憶デバイスから前記記憶デバイスの残消去可能回数を取得して、前記記憶デバイスの残消去可能回数の変化率を算出し、
前記記憶デバイスの残消去可能回数の変化率を用いて、前記記憶デバイスの寿命予測値を算出し、
前記寿命予測値が目標寿命より大きい場合、
前記第1モードで運用中の前記ブロックのうち、所定数の前記ブロックのモードを前記第2モードに変更させることで、前記記憶デバイスの記憶容量を増加させる、
ことを特徴とする、ストレージシステム。 - 前記所定数は、
前記第1モードで運用中の前記ブロックのうち、前記ブロックのモードが前記第2モードに変更されても前記目標寿命を満足可能な数の前記ブロックの数である、
ことを特徴とする、請求項1に記載のストレージシステム。 - 前記ストレージコントローラは、前記記憶デバイスの残消去可能回数の変化率を用いて、前記目標寿命を満足可能な前記記憶デバイスの残消去回数である、目標残消去可能回数を算出する、
ことを特徴とする、請求項2に記載のストレージシステム。 - 前記ストレージコントローラは、前記記憶デバイスに前記目標残消去可能回数を通知し、
前記記憶デバイスは、前記目標残消去可能回数を用いて、前記記憶デバイスの増加後の記憶容量を算出する、
ことを特徴とする、請求項3に記載のストレージシステム。 - 前記ストレージシステムは、前記複数の記憶デバイスから複数のRAIDグループを構成しており、
前記ストレージコントローラは、前記RAIDグループに属する各前記記憶デバイスが算出した、前記記憶デバイスの増加後の記憶容量を取得し、
前記取得した各前記記憶デバイスの増加後の記憶容量の最小値を、前記RAIDグループに属する各前記記憶デバイスに通知し、
前記通知を受領した前記記憶デバイスは、前記記憶容量が通知された前記最小値になるまで、前記第1モードで運用中の前記ブロックのモードを前記第2モードに変更する処理を繰り返す、
ことを特徴とする、請求項4に記載のストレージシステム。 - 前記ブロックに格納可能な情報量の変更可否は、前記RAIDグループ毎に設定可能で、
前記ストレージコントローラは、前記ブロックのモードの変更が可能と設定された前記RAIDグループに属する前記記憶デバイスのみについて、前記記憶デバイスの記憶容量を増加させる、
ことを特徴とする、請求項5に記載のストレージシステム。 - 前記ストレージコントローラは、前記寿命予測値の変動傾向を表す差分比率を算出することで、前記寿命予測値が減少傾向にあるか判定し、
前記寿命予測値が減少傾向にある場合、前記ブロックのモードの変更を行わせない、
ことを特徴とする、請求項1に記載のストレージシステム。 - 前記ストレージコントローラは定期的に前記差分比率を算出し、過去に算出された前記差分比率を所定個数記録しており、
前記所定個数の前記差分比率がいずれも所定の範囲内に収まる値の場合、前記ブロックのモードの変更を行わせる、
ことを特徴とする、請求項7に記載のストレージシステム。 - ストレージコントローラに接続される記憶デバイスであって、
前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
前記デバイスコントローラは、前記ストレージコントローラから目標残消去可能回数を受領すると、
前記目標残消去可能回数に基づいて、前記ブロックのうち前記第2モードで運用可能なブロックの数を特定し、
特定された前記ブロックを前記第2モードに変更した場合の、前記記憶デバイスの記憶容量をストレージコントローラに返却する、
ことを特徴とする記憶デバイス。 - 前記デバイスコントローラは、前記記憶デバイスの残消去可能回数が、前記目標残消去可能回数以下という条件を満たす場合の、前記第2モードで運用される前記ブロックの上限数を、前記ブロックのうち前記第2モードで運用可能なブロックの数とする、
ことを特徴とする、請求項9に記載の記憶デバイス。 - 前記デバイスコントローラは、前記ストレージコントローラからセルモード変更コマンドを受領すると、
前記記憶デバイスの記憶容量が前記セルモード変更コマンドに含まれている容量に達するまで、前記第1モードで運用中の前記ブロックを、前記第2モードに変更する処理を繰り返す、
ことを特徴とする、請求項9に記載の記憶デバイス。 - 前記デバイスコントローラは、前記ストレージコントローラから残消去可能回数の取得要求を受領すると、前記ブロックそれぞれの残消去可能回数の合計を、前記記憶デバイスの残消去可能回数として、前記ストレージコントローラに返却する、
ことを特徴とする、請求項9に記載の記憶デバイス。 - ストレージコントローラと、前記ストレージコントローラに接続される複数の記憶デバイスとを有するストレージシステムの制御方法であって、
前記記憶デバイスは、デバイスコントローラと、データの消去単位であるブロックを複数有する不揮発性記憶媒体とを有し、前記ブロックは複数のセルを含み、前記ブロックはそれぞれ、前記ブロック内の前記セルを、nビットの情報を格納可能な第1モードで運用中の状態から、mビット(n<m)の情報を格納可能な第2モードに変更可能であって、
前記デバイスコントローラは、前記ブロックごとに残消去可能回数を管理しており、
前記ブロックのモードが前記第1モードから前記第2モードに変更された場合、前記デバイスコントローラは前記ブロックの残消去可能回数を削減するよう構成されており、
前記ストレージコントローラが、
1)前記記憶デバイスから前記記憶デバイスの残消去可能回数を
取得して、前記記憶デバイスの残消去可能回数の変化率を算
出する工程と、
2)前記記憶デバイスの残消去可能回数の変化率を用いて、前記
記憶デバイスの寿命予測値を算出する工程と、
3)前記寿命予測値が目標寿命より大きい場合、前記第1モード
で運用中の前記ブロックのうち、所定数の前記ブロックを、
前記第2モードに変更させることで、前記記憶デバイスの記
憶容量を増加させる工程と、
を実行することを特徴とする、ストレージシステムの制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/083369 WO2017090176A1 (ja) | 2015-11-27 | 2015-11-27 | ストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017090176A1 true JPWO2017090176A1 (ja) | 2018-02-15 |
JP6286622B2 JP6286622B2 (ja) | 2018-02-28 |
Family
ID=58763266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017552630A Expired - Fee Related JP6286622B2 (ja) | 2015-11-27 | 2015-11-27 | ストレージシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10387062B2 (ja) |
JP (1) | JP6286622B2 (ja) |
CN (1) | CN107710140B (ja) |
WO (1) | WO2017090176A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6721491B2 (ja) * | 2016-11-18 | 2020-07-15 | キオクシア株式会社 | 記憶システム |
US10684785B2 (en) * | 2017-02-23 | 2020-06-16 | Hitachi, Ltd. | Storage system |
US11403198B2 (en) * | 2017-07-27 | 2022-08-02 | EMC IP Holding Company LLC | Managing data within solid state drive storage based on recurring write quotas |
JP7030463B2 (ja) | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
US10852966B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for creating mapped RAID group during expansion of extent pool |
US10852951B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID |
JP6805110B2 (ja) * | 2017-11-06 | 2020-12-23 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US11132133B2 (en) * | 2018-03-08 | 2021-09-28 | Toshiba Memory Corporation | Workload-adaptive overprovisioning in solid state storage drive arrays |
US10796729B2 (en) * | 2019-02-05 | 2020-10-06 | Micron Technology, Inc. | Dynamic allocation of a capacitive component in a memory device |
CN110007857B (zh) * | 2019-03-08 | 2022-08-19 | 北京星网锐捷网络技术有限公司 | 一种闪存芯片的寿命预测方法及装置 |
CN111767006B (zh) | 2019-04-02 | 2021-03-16 | 英韧科技(上海)有限公司 | 数据处理方法及装置 |
JP7248495B2 (ja) * | 2019-05-15 | 2023-03-29 | ファナック株式会社 | 数値制御測装置、数値制御システム、及びプログラム |
US10942881B2 (en) * | 2019-06-25 | 2021-03-09 | Micron Technology, Inc. | Parallel operations in aggregated and virtualized solid state drives |
US11163482B2 (en) * | 2019-06-26 | 2021-11-02 | International Business Machines Corporation | Dynamic performance-class adjustment for storage drives |
CN111142796A (zh) * | 2019-12-20 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种ssd寿命预测方法、装置、设备及可读存储介质 |
TWI788161B (zh) * | 2021-12-27 | 2022-12-21 | 技嘉科技股份有限公司 | 動態調整單級區塊及三級區塊比例的控制方法 |
JP7451809B2 (ja) | 2022-02-17 | 2024-03-18 | キオクシア株式会社 | 方法 |
CN117785072B (zh) * | 2024-02-27 | 2024-05-28 | 南京扬贺扬微电子科技有限公司 | 一种基于eMMC协议的存储控制系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11176178A (ja) * | 1997-12-15 | 1999-07-02 | Sony Corp | 不揮発性半導体記憶装置およびそれを用いたicメモリカード |
WO2011007599A1 (ja) * | 2009-07-17 | 2011-01-20 | 株式会社 東芝 | メモリ管理装置 |
JP2014203467A (ja) * | 2013-04-01 | 2014-10-27 | 株式会社東芝 | メモリシステム、制御システムおよび寿命予測方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4842593B2 (ja) * | 2005-09-05 | 2011-12-21 | 株式会社日立製作所 | ストレージ仮想化装置のデバイス制御引継ぎ方法 |
US20080250220A1 (en) * | 2007-04-06 | 2008-10-09 | Takafumi Ito | Memory system |
WO2013094041A1 (ja) * | 2011-12-21 | 2013-06-27 | 株式会社日立製作所 | 計算機システム、及び管理システム |
JP5977778B2 (ja) * | 2014-03-27 | 2016-08-24 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置およびメモリー管理方法 |
-
2015
- 2015-11-27 WO PCT/JP2015/083369 patent/WO2017090176A1/ja active Application Filing
- 2015-11-27 CN CN201580081270.2A patent/CN107710140B/zh active Active
- 2015-11-27 JP JP2017552630A patent/JP6286622B2/ja not_active Expired - Fee Related
- 2015-11-27 US US15/744,671 patent/US10387062B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11176178A (ja) * | 1997-12-15 | 1999-07-02 | Sony Corp | 不揮発性半導体記憶装置およびそれを用いたicメモリカード |
WO2011007599A1 (ja) * | 2009-07-17 | 2011-01-20 | 株式会社 東芝 | メモリ管理装置 |
JP2014203467A (ja) * | 2013-04-01 | 2014-10-27 | 株式会社東芝 | メモリシステム、制御システムおよび寿命予測方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107710140A (zh) | 2018-02-16 |
US10387062B2 (en) | 2019-08-20 |
US20180203631A1 (en) | 2018-07-19 |
WO2017090176A1 (ja) | 2017-06-01 |
CN107710140B (zh) | 2020-07-14 |
JP6286622B2 (ja) | 2018-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6286622B2 (ja) | ストレージシステム | |
US20200218655A1 (en) | Storage system and information processing system for controlling nonvolatile memory | |
JP5844473B2 (ja) | 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法 | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US10055130B2 (en) | Storage system, information processing system and method for controlling nonvolatile memory | |
JP6073471B2 (ja) | ストレージ装置 | |
US8775723B2 (en) | Storage system and control method of storage system | |
JP6381529B2 (ja) | ストレージ装置および記憶制御方法 | |
WO2014141411A1 (ja) | ストレージシステムおよびストレージシステム制御方法 | |
JP6216897B2 (ja) | ストレージシステム | |
WO2011010348A1 (ja) | フラッシュメモリ装置 | |
JP2017162065A (ja) | ストレージシステム、情報処理システムおよび制御方法 | |
WO2016181528A1 (ja) | ストレージ装置 | |
US10642525B2 (en) | Multiple-stage data lifetime management for storage devices | |
JPWO2017081811A1 (ja) | ストレージ装置、記録媒体、および記憶制御方法 | |
WO2018154669A1 (ja) | ストレージシステム | |
WO2017022082A1 (ja) | フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム | |
JP2019086974A (ja) | ストレージシステム及びその制御方法 | |
JP6554990B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
WO2018167890A1 (ja) | 計算機システム及び管理方法 | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
JP6666405B2 (ja) | メモリシステムおよび制御方法 | |
JP2019016386A (ja) | メモリシステムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171012 |
|
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: 20180123 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6286622 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |