JP2010244521A - フラッシュメモリストレージの寿命の評価指標と管理 - Google Patents

フラッシュメモリストレージの寿命の評価指標と管理 Download PDF

Info

Publication number
JP2010244521A
JP2010244521A JP2010021966A JP2010021966A JP2010244521A JP 2010244521 A JP2010244521 A JP 2010244521A JP 2010021966 A JP2010021966 A JP 2010021966A JP 2010021966 A JP2010021966 A JP 2010021966A JP 2010244521 A JP2010244521 A JP 2010244521A
Authority
JP
Japan
Prior art keywords
write
disk
flash memory
rnd
seq
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
Application number
JP2010021966A
Other languages
English (en)
Other versions
JP5520624B2 (ja
Inventor
Tomohiro Kawaguchi
智大 川口
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
Publication of JP2010244521A publication Critical patent/JP2010244521A/ja
Application granted granted Critical
Publication of JP5520624B2 publication Critical patent/JP5520624B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Abstract

【課題】フラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムを提供する。
【解決手段】フラッシュメモリ媒体の信頼性の評価方法は、それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップ、各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率を取得するステップ、及び各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算するステップからなる。
【選択図】図36

Description

0001 本発明は一般的にフラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムに関連する。
0002 フラッシュメモリ媒体について、寿命の評価指標の例には、MTBF(平均故障間隔時間)、MTTF(平均故障時間)、及びLDE(長期データ耐久性)が含まれる。MTBFはHDDの可用性/信頼性の一般的な評価指標であり、統計的HDD寿命を表わす。MTTFはRAIDグループの可用性の一般的な評価指標であり、統計的RAIDグループ寿命を表わす。LDEは媒体が許容される書き込み動作の量を表わす評価指標である。高可用性/信頼性へのストレージ制御の例としてRAID(独立したディスク群の冗長アレイ)がある。RAID10は4つ以上のディスクを持ち、二重にデータを保存する。RAID5は3つ以上のディスクを持ち、データとパリティデータを保存する。パリティデータはデータから生成される。この制御の最適化方法は米国特許No.5,682,396号に記載されている。RAID6は4つ以上のディスクを持ち、データとダブルパリティデータを保存する。ダブルパリティデータはデータから生成される。
米国特許5,682,396号公報
0003 HDD(ハードディスクドライブ)媒体は機械ユニット(ヘッド、円板、モーター)を持つので、一般にHDDの寿命はその走行時間によって支配される。しかしながら、フラッシュメモリ媒体は消去動作が起こるとデータをリセットするために高電圧を印加するので、フラッシュメモリ媒体の寿命は書き込み回数(消去動作回数)によって支配される。この消去動作は損傷を引き起こす可能性がある。その一方で、特に企業環境に於いて、その高いトランザクションやスループット性能のためにストレージシステム用フラッシュメモリ媒体の使用が求められている。これらの環境ではフラッシュメモリ媒体の使用が故障により停止されないことが重要である。
0004 本発明の典型的な実施例はフラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムを提供し、より具体的には、消去動作により引き起こされるフラッシュメモリ故障を予測し、このような故障に対して保護する方法を提供する。
一つの実施例では、ストレージシステムはフラッシュメモリ媒体グループの構成(RAIDグループ又はシン・プロビジョニング・プール)を管理し、消去(書き込み)動作回数を数え又はフラッシュメモリ媒体から情報を取得することでフラッシュメモリ媒体の各ディスクの残存寿命を測定し、それぞれの書き込みI/Oタイプ(シーケンシャル/ランダム)の比率を測定し、フラッシュメモリ媒体の残存寿命、フラッシュメモリ媒体グループの構成(冗長特性)、及び書き込みI/Oタイプの比率を使用してフラッシュメモリ媒体グループそれぞれの残存寿命を計算し、計算したフラッシュメモリ媒体グループの残存寿命を報告する。フラッシュメモリ媒体装置を便宜上ディスクと呼ぶ。「ディスク」という語はフラッシュメモリ媒体装置の物理構造を限定するようには意図しておらず、任意のフラッシュメモリ構成を包含する。
0005 本発明の一つの態様によれば、フラッシュメモリ媒体の信頼性評価方法は、それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップと、各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率を取得するステップと、各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算するステップからなる。
0006 いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップ、又はディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタからフラッシュメモリ残存寿命を取得するステップ、の一方からなる。
0007 いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタからフラッシュメモリ残存寿命を取得するステップからなる。計算するステップは以下によりディスクのRAIDグループの残存寿命Eを計算するステップからなる。
E=ρEp/Seq+(1−ρ)Ep/Rnd
ここで、
RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
pはディスクのRAIDグループのRAIDレベルである、
Seqはシーケンシャルな書き込みI/Oタイプである、
Rndはランダムな書き込みI/Oタイプである、
p/Seqはシーケンシャルな書き込みI/OタイプでのRAIDレベルpのRAIDグループの書き込みI/O耐久性である、
p/Rndはランダムな書き込みI/OタイプでのRAIDレベルpのRAIDグループの書き込みI/O耐久性である、
iはディスクIDであり、0≦i≦N−1の整数である、
NはRAIDグループ内のディスク数である、
λはディスクiの残存寿命である、
ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である。
0008 特定の実施例では、複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のRAIDグループを持つ一つ以上のシン・プロビジョニング・プール内に提供される。計算するステップは以下のようにして各シン・プロビジョニング・プールの残存寿命EThin Provを計算するステップからなる。


ここで、
jはシン・プロビジョニング・プール内のディスクのRAIDグループのIDである、
はE=ρEp/Seq+(1−ρ)Ep/Rndを使用したRAIDグループjの残存寿命である、
Mはシン・プロビジョニング・プール内のRAIDグループ数である。
0009 いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップからなる。計算は以下のようにしてディスクのRAIDグループの残存寿命Eを計算するステップからなる。
E=ρEp/Seq+(1−ρ)Ep/Rnd
ここで、
RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
pはディスクのRAIDグループのRAIDレベルである、
Seqはシーケンシャルな書き込みI/Oタイプである、
Rndはランダムな書き込みI/Oタイプである、
p/Seqはシーケンシャルな書き込みI/OタイプでのRAIDグループの書き込みI/O耐久性である、
p/Rndはランダムな書き込みI/OタイプでのRAIDグループの書き込みI/O耐久性である、
iはディスクIDであり、0≦i≦N−1の整数である、
NはRAIDグループ内のディスク数である、
ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
λはディスクiの残存寿命であり、λ≡L−Iである、
はディスクiへの書き込み回数の理論限界である、
はシーケンシャルな書き込みI/Oタイプの書き込みI/O耐久性を計算するステップで使用されるディスクiに対するシーケンシャル書き込み動作数、又はランダムな書き込みI/Oタイプの書き込みI/O耐久性を計算するステップで使用されるディスクiに対するランダム書き込み動作数、の一方である。
0010 いくつかの実施例では、複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供される。計算するステップは以下のようにしてシン・プロビジョニング・プールの残存寿命EThin Provを計算するステップからなる。


ここで、
iはディスクIDである、
λはディスクiの残存寿命である、
Pはシン・プロビジョニング・プール内のディスク数である。
0011 本発明の別な態様によれば、フラッシュメモリ媒体の信頼性評価システムは、それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスク、データと一つ以上のモジュールを保存するメモリ、複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定し、各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率を取得し、各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算する、ために一つ以上のモジュールを実行するプロセッサを備える。
0012 本発明の別な態様は、フラッシュメモリ媒体の信頼性を評価するためにデータプロセッサを制御する複数の命令を保存するコンピュータ読み取り可能ストレージ媒体に向けられる。複数の命令は、それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命をデータプロセッサに測定させる命令と、各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率をデータプロセッサに取得させる命令と、各フラッシュメモリ媒体グループ内の各ディスクに対する測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命をデータプロセッサに計算させる命令、とからなる。
0013 本発明のこれら及びその他の特徴と利点は、以下の特定な実施例の詳細な説明に照らすことにより、この技術分野に於ける通常の知識を有する者(当業者)には明白になるであろう。
0014 図1は本発明の方法と装置が適用可能なコンピュータシステムのハードウェア構成の例を示す。 0015 図2は本発明の第1の実施例によるストレージサブシステム内のメモリの例を示す。 0016 図3は第1の実施例によるRAIDグループ管理テーブルの例を示す。 0017 図4は第1の実施例による仮想ボリューム管理テーブルの例を示す。 0018 図5は第1の実施例によるディスク管理テーブルの例を示す。 0019 図6はキャッシュ管理テーブルの例を示す。 0020 図7は仮想ボリュームとディスクの関係を図示して典型的な論理構造を示す。 0021 図8はキャッシュ管理テーブルに対するテーブル参照構造の例を示す。 0022 図9は書き込みI/O制御のプロセスフローダイアグラムの例を示す。 0023 図10は読み出しI/O制御のプロセスフローダイアグラムの例を示す。 0024 図11はステージング制御のプロセスフローダイアグラムの例である。 0025 図12は第1の実施例によるデステージング制御のプロセスフローダイアグラムの例である。 0026 図13はフラッシュ制御のプロセスフローダイアグラムの例である。 0027 図14はキャッシュ制御のプロセスフローダイアグラムの例である。 0028 図15は信頼性管理制御のプロセスフローダイアグラムの例である。 0029 図16はRAID1又は10のボリュームへのシーケンシャル又はランダム書き込みI/Oのシーケンスチャートの例を示す。 0030 図17はRAID5のボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。 0031 図18はRAID6のボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。 0032 図19はRAID6のボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。 0033 図20は第1の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。 0034 図21はディスプレイ上の出力イメージの例を示す。 0035 図22は第1の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。 0036 図23は本発明の第2の実施例によるディスク管理テーブルの例を示す。 0037 図24は第2の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。 0038 図25は第2の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。 0039 図26は第2の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。 0040 図27は本発明の第3の実施例によるストレージサブシステム内のメモリの例を示す。 0041 図28は第3の実施例によるRAIDグループ管理テーブルの例を示す。 0042 図29は第3の実施例による仮想ボリューム管理テーブルの例を示す。 0043 図30は仮想ボリュームページ管理テーブルの例を示す。 0044 図31は容量プールチャンク管理テーブルの例を示す。 0045 図32は容量プールページ管理テーブルの例を示す。 0046 図33は第3の実施例による仮想ボリュームとそのテーブル構造の例を示す。 0047 図34は第3の実施例による容量プールに向かうテーブル参照構造の例を示す。 0048 図35は第3の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。 図36は第3の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。 0049 図37はページ移行制御のプロセスフローダイアグラムの例を示す。 0050 図38は第3の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。 図39は本発明の第4の実施例によるストレージサブシステム内のメモリの例を示す。 0052 図40は第4の実施例によるディスク管理テーブルの例を示す。 0053 図41は第4の実施例による仮想ボリューム管理テーブルの例を示す。 0054 図42は第4の実施例による仮想ボリュームページ管理テーブルの例を示す。 0055 図43は第4の実施例による仮想ボリュームとそのテーブル構造の例を示す。 0056 図44は第4の実施例による容量プールに向かうテーブル参照構造の例を示す。 0057 図45は第4の実施例によるステップの信頼性の計算式の例を示す。
0058 以下の本発明の詳細な説明に於いて、付随する図面が参照され、この図面は開示内容の一部を構成し、図中では本発明が実施できる典型的な実施例が、限定するためでなく説明の目的で示されている。図中では、複数の図を通して類似の番号は実質的に同様なコンポーネントを表わしている。更に、詳細な説明は、以下に記述され、図で説明されるように多様な典型的な実施例を提供するが、本発明はここに記述され図示される実施例に限定されるものでなく、当業者には知られているか、又は知得されるであろう他の実施例に拡張可能であることはいうまでもない。明細書中での「一つの実施例」、「本実施例」、又は「これらの実施例」という言及は、その実施例に関連して記述される特定の特徴、構造、又は特性が本発明の少なくとも一つの実施例に含まれることを意味し、これらの語句が明細書中の種々の箇所に出現したとしても必ずしもすべてが同じ実施例を参照しているわけではない。更に、以下の詳細な説明に於いて、数多くの特定な詳細が、本発明の十分な理解を可能にするために記述される。しかしながら本発明を実施するのにこれら特定の詳細すべてが必要とされるわけでないことは、当業者には明白であろう。他の状況では、本発明を不必要に分かりにくくしないように、公知の構造、材料、回路、プロセス及びインタフェースは詳細には記述されておらず、及び/又はブロックダイアグラムの形で説明されることもあり得る。
0059 更に、以下の詳細な説明のいくつかの部分はコンピュータ内の動作のアルゴリズムと記号表現の用語で示される。これらのアルゴリズムの記述と記号表現はデータ処理技術分野の当業者が他の当業者に革新的技術の本質を最も効果的に伝えるために使用する手段である。アルゴリズムは望ましい最終状態或いは結果に導く一連の定義されたステップである。本発明では、実行されるステップは具体的な結果を達成するための具体的な量の物理的な操作を必要とする。通常、必ずしもそうとは限らないが、これらの量は保存され、転送され、組み合わされ、比較され、及びそれ以外の方法で操作されることができる、電気的又は磁気的信号或いは命令の形態をとる。主として一般的に使用されるという理由で、これらの信号をビット、値、要素、記号、文字、項、数値、命令、等で呼ぶのが折に触れて便利なことが分かっている。しかしながら、これら及び同様な用語はすべて適切な物理量と関連付けられるべきであり、これらの量に適用される単に便宜的なラベルである。後続する議論から明白なように、別な方法で特別に述べられない限り、説明を通じて「処理する」、「コンピュータで計算する」、「計算する」、「決定する」、「表示する」、等のような用語を使用した議論は、コンピュータシステムのレジスタやメモリ内の物理量(電子的な量)として表わされるデータを操作して他の同様にコンピュータシステムのメモリ又はレジスタ或いは他の情報ストレージ、転送又はディスプレイデバイス内の物理量として表わされるデータに変換する、コンピュータシステム又は他の情報処理デバイスの動作やプロセスを含むことができるのは当然である。
0060 本発明は更に、ここで述べた動作を遂行する装置にも関連する。この装置は要求される目的のために特別に構築されても良いし、或いは一つ以上のコンピュータプログラムにより選択的に起動され或いは再構成される一つ以上の汎用コンピュータを含んでいても良い。そのようなコンピュータプログラムは光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、半導体デバイスとドライブ、或いは電子的情報を保存するのに適した任意のその他のタイプの媒体のような、ただしこれらに限定されない、コンピュータ読み取り可能ストレージ媒体に保存できる。ここで提供されるアルゴリズムとディスプレイはいかなる特定のコンピュータ又はその他の装置にも本質的に関係するわけでない。種々の汎用システムが、ここで述べた技術に従ってプログラムやモジュールと共に使用でき、或いは望まれる方法ステップを遂行するためにより専用の装置を構築するのが便利なことが分かることもあり得る。更に、本発明はいかなる特定のプログラム言語にも言及しては記述されていない。当然のことながら、多様なプログラミング言語がここで記述される本発明の教示内容を実施するために使用できる。プログラミング言語の命令は一つ以上の処理デバイス、例えばCPU(中央処理装置)、プロセッサ、又はコントローラ、により実行できる。
0061 本発明の典型的な実施例は、以下により詳細に記述されるように、消去動作によって引き起こされるフラッシュメモリ故障を予測し、そのような故障に対して保護するための装置、方法及びコンピュータプログラムを提供する。
0062 第1の実施例
0063 図1は本発明の方法と装置が適用可能なコンピュータシステムのハードウェア構成の例を示す。ストレージサブシステム100は、CPU111、メモリ112、ストレージインタフェース113、ローカルネットワークインタフェース114、及びディスクインタフェース115a−115dを含むストレージコントローラ110を持つ。CPU111はストレージサブシステム100を制御し、メモリ112からプログラムとテーブルを読み出す。メモリ112はプログラムとテーブルを保存する。ストレージインタフェース113はストレージネットワーク200を介してホストコンピュータ300と接続する。ローカルネットワークインタフェース114はストレージ管理ターミナル400と接続する。ディスクインタフェース115a−115dはディスク装置120内に格納される複数のディスク121a−121dと接続する。ディスク121はデータを保存するフラッシュメモリを含む。ストレージネットワーク200はストレージシステム100とホストコンピュータ300を接続する。ホストコンピュータ300はストレージネットワーク200を介してストレージサブシステム100にI/O要求を送信し、ストレージネットワーク200を介してストレージシステム100との間でデータを送受信する。ストレージ管理ターミナル400はストレージサブシステム100の可用性/信頼性情報を示す。ターミナル400はメモリ412内に保存されるプログラムとテーブルを読み出すCPU411を含む。ローカルネットワークインタフェース414はストレージサブシステム100と接続する。ディスプレイ419はストレージサブシステム100の可用性/信頼性情報を表示する。
0064 ハードウェア
0065 図2は本発明の第1の実施例によるストレージサブシステム100内のメモリ112の例を示す。メモリ112はディスク121とそれらのグループの物理構造管理のためのRAIDグループ管理テーブル112−11−1、ボリューム構成管理のための仮想ボリューム管理テーブル112−11−2、及びディスク管理テーブル112−11−3を持つボリューム管理テーブル112−11を含む。メモリ112は更に、キャッシュデータ領域112−30の管理とLRU/MRU(最長時間未使用/最も最近使用)管理のためのキャッシュ管理テーブル112−14を含む。ボリュームI/O制御112−21は、書き込みI/O要求によって走行し、書き込みデータを受信し、それをチャネルインタフェース113を介してキャッシュデータ領域112−30に保存する書き込みI/O制御112−21−1、及び読み出しI/O要求によって走行し、チャネルインタフェース113を介してキャッシュデータ領域112−30から読み出したデータを送信する読み出しI/O制御112−21−2を含む。物理ディスク制御112−22はディスク121からキャッシュデータ領域にデータを転送するステージング制御112−22−1、及びキャッシュデータ領域112−30からディスク121にデータを転送するデステージング制御112−22−2を含む。フラッシュ制御112−23はキャッシュデータ領域112−30内のダーティーデータをディスク121に定期的にフラッシュする。キャッシュ制御112−24はキャッシュデータ領域112−30内でキャッシュされたデータを検出し、キャッシュデータ領域112−30内の新たなキャッシュ領域に割り当てる。信頼性管理制御112−29はRAIDグループ又はシン・プロビジョニング・プールのそれぞれに関しその構成とディスク情報により信頼性を計算し、ストレージ管理ターミナル400に信頼性情報を報告する。カーネル112−40は走行プログラムのスケジュールを制御する。キャッシュデータ領域112−30は読み出し及び書き込みキャッシュデータを保存し、複数のキャッシュスロットに分離されている。
0066 図3は第1の実施例によるRAIDグループ管理テーブル112−11−1の例を示す。このテーブルはRAIDグループのIDを表わすRAIDグループ番号112−11−1−1、及びRAIDグループの構造を表わすRAIDレベル112−11−1−2をリストアップする。「N(=10、5、6等)」は「RAIDレベルがN」であることを意味する。「該当なし」はRAIDグループが存在しないことを意味する。テーブルは更にRAIDグループに属するディスク121のIDリストを表わすディスク番号112−11−1−3、及び冗長領域を除くRAIDグループの全容量を表わすRAIDグループ容量112−11−1−4をリストアップする。
0067 図4は第1の実施例による仮想ボリューム管理テーブル112−11−2の例を示す。このテーブルはボリュームIDを表わすボリューム番号112−11−2−1、及びボリュームの容量を表わすボリューム容量112−11−2−2をリストアップする。「該当なし」はボリュームが存在しないことを意味する。このテーブルは更にボリュームが現在使用するRAIDグループIDを表わす使用中RAIDグループ番号112−11−2−3、ボリュームがRAIDグループ内で使用するトップアドレスを表わすトップアドレス番号112−11−2−4、ボリュームへのシーケンシャルな書き込みI/Oのカウンタを表わすシーケンシャル書き込みカウンタ112−11−2−6、及びボリュームへのランダムな書き込みI/Oのカウンタを表わすランダム書き込みカウンタ112−11−2−7をリストアップする。
0068 図5は第1の実施例によるディスク管理テーブル112−11−3の例を示す。このテーブルはディスクのIDを表わすディスク番号112−11−3−1、及びディスクの容量を表わすディスク容量112−11−3−2をリストアップする。
0069 図6はキャッシュ管理テーブル112−14の例を示す。このテーブルはキャッシュデータ領域112−30内のキャッシュスロットのIDを表わすキャッシュスロット番号(インデックス)112−14−1、キャッシュスロットが属する仮想ボリューム141のIDを表わすボリューム番号112−14−2、キャッシュスロットに関する仮想ボリュームアドレス(LBA、論理ブロックアドレス)112−14−3、及びキューを管理するための次のキャッシュスロット番号を表わす次のスロットポインタ112−14−4をリストアップする。「ヌル」はキューの終わりを意味する。テーブルは更にキャッシュスロットのキューの種類を現すキューの種類情報112−14−5をリストアップする。「フリー」は未使用のキャッシュスロットを持つキューを意味する。「クリーン」はディスクスロットと同じデータを保存するキャッシュスロットを持つキューを意味する。「ダーティー」はディスクスロットと異なるデータを保存するキャッシュスロットを持つキューを意味し、それ故ストレージコントローラ110は将来ディスクスロットにキャッシュスロットデータをフラッシュする必要がある。このテーブル内のキューインデックスポインタ112−14−6はキャッシュスロットキューのインデックスを表わす。
0070 論理構造
0071 図7は仮想ボリューム141とディスク121の関係を図示して典型的な論理構造を示す。矢印付きの実線はそれぞれ計算によるオブジェクトを指す。仮想ボリュームのスロット141−3に関し、仮想ボリューム141は複数の仮想ボリュームスロット141−3に分割され、各仮想ボリュームスロット141−3はディスクスロット121−3に関連する。ディスクスロット121−3に関し、各ディスク121は複数のディスクスロット121−3に分割され、各ディスクスロット121−3はパリティデータ領域を除いて仮想ボリュームスロット141−3に関連する。
0072 図8はキャッシュ管理テーブル112−14に対するテーブル参照構造の例を示す。矢印付きのラインには実線と破線がある。破線はポインタによるオブジェクトを指す。実線は計算によるオブジェクトを指す。キャッシュデータ領域112−30は複数のキャッシュスロット112−30−1に分割される。キャッシュスロット112−30−1のサイズは容量プールストライプ121−3のサイズ及び仮想ボリュームのスロット141−3のサイズに等しい。キャッシュ管理テーブル112−18とキャッシュスロット112−30−1は一対一の関係にある。キャッシュ管理テーブル112−18は、仮想ボリュームのスロット141−3を参照する時に、RAIDグループ管理テーブル112−11−1を参照することにより容量プールストライプ121−3を決定することができる。
0073 プログラムフロー
0074 図9はステップ112−21−1−1に始まる、書き込みI/O制御112−21−1のプロセスフローダイアグラムの例を示す。ステップ112−21−1−2で、プログラムはキャッシュスロット112−30−1を探すためにキャッシュ制御112−24をコールする。ステップ112−21−1−3で、プログラムはホストコンピュータ300から書き込みI/Oデータを受信し前述のキャッシュスロット112−30−1にデータを保存する。ステップ112−21−1−4で、プログラムはその前の書き込みI/Oアドレスによって書き込みI/Oタイプ(シーケンシャルかランダムか)をチェックする。もし書き込みI/Oがシーケンシャルならば、プログラムはシーケンシャル書き込みカウンタ112−11−2−6をカウントアップする。もし書き込みI/Oがランダムならば、プログラムはランダム書き込みカウンタ112−11−2−7をカウントアップする。プロセスはステップ112−21−1−5で終了する。
0075 図10はステップ112−21−2−1に始まる、読み出しI/O制御112−21−2のプロセスフローダイアグラムの例を示す。ステップ112−21−2−2で、プログラムはキャッシュスロット112−30−1を探すためにキャッシュ制御112−24をコールする。ステップ112−21−2−3で、プログラムは、データが既にそこに保存し終わったか否かに関して前述のキャッシュスロット112−30−1の状態をチェックする。もしNoならば、ステップ112−21−2−4でプログラムはステージング制御112−22−1をコールする。もしYesならば、ステップ112−21−2−5でプログラムはホストコンピュータ300にキャッシュスロット112−30−1のデータを転送する。プロセスはステップ112−21−2−6で終了する。
0076 図11はステップ112−22−1−1に始まる、ステージング制御112−22−1のプロセスフローダイアグラムの例である。ステップ112−22−1−3でプログラムはディスク121のスロットからデータを読み出し、そのデータをキャッシュデータ領域112−30に保存する。ステップ112−22−1−4でプログラムはデータ転送が終わるのを待つ。プロセスはステップ112−22−1−5で終了する。
0077 図12はステップ112−22−2−1に始まる、第1の実施例によるデステージング制御112−22−2のプロセスフローダイアグラムの例である。ステップ112−22−2−3でプログラムはキャッシュデータ領域112−30からデータを読み出し、そのデータをディスク121のスロットに保存する。ステップ112−22−2−4でプログラムはスロットが属するRAIDレベルをチェックする。もしRAIDレベルが0、1、又は10ならば、プログラムはステップ112−22−2−8にスキップする。もしRAIDレベルが5又は6ならば、ステップ112−22−2−5でプログラムは、キャッシュデータ領域112−30の同じパリティの行に属する他のスロットのデータが存在するかチェックし、パリティスロットに対してリード・モディファイ・ライトを遂行する必要があるか判定する。もしYesならば、ステップ112−22−2−6で(キャッシュミスの場合も含む)プログラムはディスク121からパリティスロットデータをステージする。もしNoならば、プログラムはステップ112−22−2−6をスキップする。ステップ112−22−2−7でプログラムは新たなパリティデータを生成する。もしリード・モディファイ・ライトを行う必要がないならば(ステップ112−22−2−5でNoの場合)、プログラムはキャッシュデータ領域112−30内に保存された書き込み済みデータに基づいて新たなパリティデータを計算する。もしリード・モディファイ・ライトを行う必要があるならば(ステップ112−2−2−5でYesの場合)、プログラムはキャッシュデータ領域112−30内に保存された書き込み済みデータとステップ112−22−2−6で保存された現在のパリティデータに基づいて新たなパリティデータを計算する。ステップ112−22−2−8でプログラムはデータ転送が終わるのを待つ。
0078 図13はステップ112−23−1に始まる、フラッシュ制御112−23のプロセスフローダイアグラムの例である。ステップ112−23−2でプログラムはキャッシュ管理テーブル112−14の「ダーティーキュー」を読み出す。もしダーティーキャッシュ領域が存在すれば、ステップ112−23−3でプログラムは検出したダーティーキャッシュスロット112−30−1のためにデステージング制御112−22−2をコールする。もしNoならばプログラムはステップ112−23−4で終了する。
0079 図14はステップ112−28−1に始まる、キャッシュ制御112−28のプロセスフローダイアグラムの例である。ステップ112−28−2でプログラムはキャッシュ管理テーブル112−14を読み出し、仮想ボリュームスロット141−1又は容量プールストライプ121−1の特定されたアドレスを検索する。I/Oアドレスに対して何らキャッシュ領域が存在しないならば、ステップ112−28−3でプログラムは「フリー」又は「クリーン」キューから特定されるアドレスに対して新たなキャッシュスロット112−30−1を取得する。もしI/Oアドレスに対してキャッシュ領域が存在するならばプログラムはステップ112−28−4で終了する。
0080 図15はステップ112−29−1−1に始まる、信頼性管理制御112−29−1のプロセスフローダイアグラムの例である。ステップ112−29−1−2でプロセスは(シーケンシャル書き込みカウンタ112−11−2−6及びランダム書き込みカウンタ112−11−2−7を使用することにより)I/Oタイプの比率、各ディスク121の残存寿命情報、及び(RAIDグループ管理テーブル112−11−1を使用することにより)グループの構造からグループ(RAIDグループ、シン・プロビジョニンググループ)の残存寿命を計算する。ステップ112−29−1−3でプログラムはストレージ管理ターミナル400に計算結果を送信する。プログラムはステップ112−29−1−4で終了する。
0081 データフローのシーケンス
0082 図16はRAID1又は10のボリュームへのシーケンシャル又はランダム書き込みI/Oのシーケンスチャートの例を示す。S1000でホストコンピュータ300はストレージサブシステム100に書き込みI/Oを要求しデータを送信する。S1001でストレージサブシステム100はホストコンピュータ300からデータを受信する。CPU111は書き込みI/O制御112−21−1を実行しキャッシュデータ領域112−30にデータを保存する。S1002でキャッシュデータ領域112−30はデータを保存する。S1020でCPU111はフラッシュ制御112−23を実行し、書き込みI/Oデータを検出し、キャッシュデータ領域112−30からディスク121(ディスクaとディスクb)にデータを転送するように命令する。S1021でキャッシュデータ領域112−30はディスク121(ディスクaとディスクb)にデータを二重に転送する。S1022でディスク121はデータを受信し保存する。
0083 図17はRAID5ボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。図16と比較した相違点のみを記す。S1010でCPU111はディスク121(ディスクd)からキャッシュデータ領域112−30にパリティデータを転送するように命令し、キャッシュデータ領域112−30上の書き込み済みデータとステージ済みパリティデータから新たなパリティデータを生成する。S1011でディスク121(ディスクd)はキャッシュデータ領域112−30にデータを転送する。S1012でキャッシュデータ領域112−30はディスク121からデータを受信する。S1021’でキャッシュデータ領域112−30はデータをディスク121(ディスクaとディスクd)に転送する。
0084 図18はRAID6ボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。図17と比較した相違点のみを記す。S1010’でCPU111はディスク121(ディスクcとディスクd)からキャッシュデータ領域112−30にパリティデータを転送するように命令し、キャッシュデータ領域112−30上の書き込み済みデータとステージ済みパリティデータから新たなパリティデータを生成する。
0085 図19はRAID6ボリュームへのランダム書き込みI/Oのシーケンスチャートの例を示す。図17と比較した相違点のみを記す。S1010”でCPU111はキャッシュデータ領域112−30上の書き込み済みデータから新たなパリティデータを生成し、そのデータをキャッシュデータ領域112−30に保存する。S1011’でキャッシュデータ領域112−30は生成済みのパリティデータを保存する。
0086
0087 図20は第1の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。この式は多数の変数とサフィックスを含む。変数V100はグループの残存寿命を表わす。サフィックスV101は計算ターゲットのRAIDグループのRAIDレベルを表わす。サフィックスV102は書き込みI/Oタイプ情報(シーケンシャル又はランダム)を表わす。変数V103はサフィックスV101とV102の条件でのグループの残存寿命を表わす。変数V104はディスクのIDを表わす。変数V105はグループ内のディスク数を表わす。変数V106はディスクの残存寿命を表わす。変数V107はグループへの書き込みI/Oの比率を表わす。
0088 式E100はシーケンシャルとランダム書き込みI/Oの混合した環境でのグループの寿命の計算式である。式E101はRAID10のグループでシーケンシャル又はランダムな書き込みI/O環境での寿命の計算式である。RAID10はデータを二重に書き込むので、式は「÷2」を含む。式E102はRAID5のグループでシーケンシャルな書き込みI/O環境でのグループ寿命の計算式である。RAID5はシーケンシャルな書き込み環境で(N−1)データと1パリティデータを書き込むので、この式は「−1」を含む。式E103はRAID5のグループでランダムな書き込みI/O環境での寿命の計算式である。RAID5はランダム書き込み環境で1データと1パリティデータを書き込むので、この式は「÷2」を含む。式E104はRAID6のグループでシーケンシャルな書き込みI/O環境での寿命の計算式である。RAID6はシーケンシャル書き込み環境で1データと2パリティデータを書き込むので、この式は「−2」を含む。式E105はRAID6グループでランダムな書き込みI/O環境での寿命の計算式である。RAID6はランダムな書き込み環境でデータと2パリティデータを書き込むので、この式は「÷3」を含む。
0089 出力ディスプレイ
0090 図21はディスプレイ419上の出力イメージの例を示す。管理者はストレージサブシステム100の信頼性をモニターする。軸419−10(x軸)は時間の経過を表わす。軸419−11(y軸)は残存寿命の%を表わす。ライン419−20はグループの残存寿命履歴を示す。破線419−21はグループの残存寿命予測を表わす。この破線は残存寿命履歴により計算される。イベント419−30は現在の日付と残存寿命を示す。イベント419−31は過去のディスク交換イベントを示す。
0091 システム管理シーケンス
0092 図22は第1の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。S2000でストレージ管理ターミナル400はストレージサブシステム100にグループの寿命情報を送信するように要求する。S2001でCPU111は或るグループ内の各ディスクから残存寿命を求め、その残存寿命を計算しストレージ管理ターミナル400に報告する。S2002でディスク121は自らの残存寿命情報をCPU111に送信する。S2010で管理者はディスプレイ419をチェックする。S2011でストレージ管理ターミナルはディスプレイ419に残存寿命情報を示す。S2020で管理者はストレージサブシステム100に新たなディスク121zをインストールするか又はこれに交換する。S2021でストレージサブシステム100は新たなディスク121zを格納する。
0093 第2の実施例
0094 第2の実施例と第1の実施例の相違点のみを記す。
0095 ハードウェア
0096 図23は本発明の第2の実施例によるディスク管理テーブル112−11−3’の例を示す。図5に比較するとテーブルに二つの値が追加されている。その第1はディスクへの書き込み回数又は書き込み動作数の限界値を表わす寿命限界情報112−11−3’−3である。この値はフラッシュメモリチップのタイプ(SLC/MLC)、ベンダ、ディスクモデル、容量(リザーブ容量)、及びウェア・レベリング・アルゴリズムに依存する。第2はディスクへの書き込み回数を表わす寿命カウンタ112−11−3’−4である。
0097 図24は第2の実施例によるデステージング制御112−22−2’のプロセスフローダイアグラムの例を示す。図12に比較すると表に1ステップが追加されている。ステップ112−22−2’−9でこのプロセスは寿命カウンタ112−11−3’−4をカウントアップする。
0098
0099 図25は第2の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。二つの変数が追加され一つの変数が置き換えられている。二つの追加した変数はディスクへの書き込み回数の限界を表わす変数V108’とディスクへの現在の書き込み回数を表わす変数V109’である。変数V107は変数V108’と変数V109’に関するパラメータを定義する変数V107’に置き換えられている。
0100 システム管理シーケンス
0101 図26は第2の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。図22に比較すると一つのステップが置き換えられている。S2001’(S2001を置き換え)でCPU111は寿命限界情報112−11−3’−3と寿命カウンタ112−11−3’−4からRAIDグループの残存寿命を計算し、ストレージ管理ターミナル400に報告する。
0102 第3の実施例
0103 第3の実施例と第1の実施例の相違点のみ記す。
0104 ハードウェア
0105 図27は本発明の第3の実施例によるストレージサブシステム内のメモリ112の例を示す。図2に比較して四つの要素が置き換えられ五つの要素が追加されている。置き換えられる要素はRAIDグループ管理テーブル112−11−1’、仮想ボリューム管理テーブル112−11−2’、及びデステージング制御112−22−2’である。追加される要素は仮想ボリュームページ管理テーブル112−15−1、容量プールチャンク管理テーブル112−15−2、容量プールページ管理テーブル112−15−3、ページ移行制御112−25−1、及び移行制御112−22−3である。ボリューム管理テーブル112−11に於いて、RAIDグループ管理テーブル112−11−1’はディスク121とこれらのグループの物理構造管理を提供する。仮想ボリューム管理テーブル112−11−2’はボリューム構成管理を提供する。追加されたシン・プロビジョニング管理テーブル112−15に於いて、仮想ボリュームページ管理テーブル112−15−1は仮想ボリュームのパーティションから容量プールのパーティションへの参照管理を提供し、容量プールチャンク管理テーブル112−15−2は容量プールのリソース管理と容量プールページから仮想ボリュームページへの参照管理を提供し、容量プールページ管理テーブル112−15−3は容量プールチャンクのリソース管理を提供する。物理ディスク制御112−22に於いて、デステージング制御112−22−2’はキャッシュデータ領域112−30からディスク121にデータを転送し、新たなページを割り当てる。又移行制御112−22−3がある。追加されたシン・プロビジョニング制御112−25に於いて、ページ移行制御112−25−1は一つの容量プールページを別の容量プールページに移行する。
0106 図28は第3の実施例によるRAIDグループ管理テーブル112−11−1’の例を示す。図3に比較して二つの値がテーブルに追加されている。フリー・チャンク・キュー・インデックス112−11−1−5’は未使用のシン・プロビジョニング・チャンクを管理する。使用済みチャンク・キュー・インデックス112−11−1−6’は使用済みシン・プロビジョニング・チャンクを管理する。
0107 図29は第3の実施例による仮想ボリューム管理テーブル112−11−2の例を示す。図4に比較して一つの値が削除され(図4のトップアドレス)、一つの値がテーブルに追加されている。追加された使用中チャンク番号112−11−2−5’は仮想ボリュームが現在使用するチャンクIDをリストアップする。使用中RAIDグループ番号112−11−2−3’(図4の112−11−2−3)は仮想ボリュームが現在使用するチャンクのRAIDグループIDをリストアップする。
0108 図30は仮想ボリュームページ管理テーブル112−15−1の例を示す。仮想ボリュームページインデックス112−15−1−1は仮想ボリュームページのトップアドレスをリストアップする。RAIDグループ番号112−15−1−2は仮想ボリュームのページが属するRAIDグループIDをリストアップし、「該当なし」は仮想ボリュームページに何も容量プールページが割り当てられていないことを意味する。容量プールページインデックス112−15−1−3は仮想ボリュームのページが参照する容量プールページのトップアドレスをリストアップする。
0109 図31は容量プールチャンク管理テーブル112−15−2の例を示す。容量プールチャンク番号112−15−2−1は容量プールチャンクのIDをリストアップする。仮想ボリューム番号112−15−2−2はそれにより容量プールチャンクを参照する仮想ボリュームIDをリストアップする。使用済み容量112−15−2−3は容量プールチャンクの使用済み容量をリストアップする。削除済み容量112−15−2−4はその領域が一度でも使用したことのある容量プールチャンクのうち削除された容量をリストアップする。前回のチャンク番号112−15−2−5はキュー管理のために前回のチャンクポインタをリストアップする。次回のチャンク番号112−15−2−6はキュー管理のために次回のチャンクポインタをリストアップする。「ヌル」はキューの終点を意味する。
0110 図32は容量プールページ管理テーブル112−15−3の例を示す。容量プールページインデックス112−15−1は容量プールページのIDリストをリストアップする。「該当なし」は容量プールページが未使用であることを意味する。仮想ボリュームページ番号112−15−2はそれにより容量プールページを参照する仮想ボリュームページのIDをリストアップする。
0111 図33は第3の実施例による仮想ボリュームとそのテーブル構造の例を示す。矢印付きラインには実線と破線がある。実線はポインタが参照するオブジェクトを指す。破線は計算によるオブジェクトを指す。仮想ボリューム141としては、仮想ボリューム141と仮想ボリューム管理テーブル112−11−2’は一対一の関係にあり、仮想ボリューム管理テーブル112−11−2’は現在使用中の容量プールページ121−1を参照する。仮想ボリュームページ141−2としては、仮想ボリュームページ141−2と仮想ボリュームページ管理テーブル112−15−1は一対一の関係にあり、仮想ボリュームページテーブル112−15−1は、ページが割り当てられているならば容量プールページ121−2のスライスを参照する。RAIDグループとしては、RAIDグループとRAIDグループ管理テーブル112−11−1’は一対一の関係にあり、RAIDグループ管理テーブル112−11−1’は使用済み及び未使用の容量プールチャンク112−1を参照する。
0112 図34は第3の実施例による容量プールに向かうテーブル参照構造の例を示す。矢印付きラインの実線はポインタによるオブジェクトを指し、破線は計算によるオブジェクトを指す。容量プールチャンク121−1としては、容量プールチャンク121−1と容量プールチャンク管理テーブル112−15−2は一対一の関係にあり、容量プールチャンク管理テーブル112−15−2は仮想ボリューム141を参照する。容量プールページ121−2に対しては、容量プールページ管理テーブル112−15−3は仮想ボリュームページ141−2を参照する。
0113 図35と36はステップ112−22−2’−1に始まる、第3の実施例によるデステージング制御112−22−2’のプロセスフローダイアグラムの例を示す。図24の第2の実施例に比較して新たなステップがデステージング制御112−22−2の前に追加される。ステップ112−22−2’−2で、プログラムは容量プールページが仮想ボリュームページに割り当てられているか否かをチェックする。もしYesならば、ステップ112−22−2’−3でプログラムは容量プールページが属するディスクが寿命限界に到達したか否かをチェックする。もしYesならば、ステップ112−22−2’−4でプログラムは寿命限界に到達していないRAIDグループから新たな容量プールページを割り当てて、使用中の容量プールページから新たに割り当てたページにコピーする。プロセスはステップ112−22−2’−6のデステージング制御に続く。もしステップ112−22−2’−3で結果がNoならば、プロセスはステップ112−22−2’−6に進む。もしステップ112−22−2’−2で結果がNoならば、ステップ112−22−2’−5でプログラムは寿命限界に到達しないRAIDグループから新たな容量プールページを割り当てる。次いでプロセスはステップ112−22−2’−6のデステージング制御に続く。
0114 図37はステップ112−25−1−1に始まる、ページ移行制御112−25−1のプロセスフローダイアグラムの例を示す。ステップ112−25−1−2でプログラムは新たな容量プールページを割り当てる。ステップ112−25−1−3でプログラムはディスクから指定された容量プールページデータを転送し、そのデータをキャッシュデータ領域112−30に保存する。ステップ112−25−1−4でプログラムは容量プールページデータを新たに割り当てた容量プールページにコピーする。ステップ112−25−1−5でプログラムはRAIDグループ番号112−15−1−2及び容量プールページインデックス112−15−1−3の参照を新たに追加したページに変更し、古い(移行済みの)容量ページを解放する。プロセスはステップ112−22−1−6にて終了する。
0115
0116 図38は第3の実施例による図15のステップ112−29−1−2の信頼性の計算式の例を示す。この式は図20の第1の実施例に基づく。変数V200はシン・プロビジョニング・プールの残存寿命を表わす。変数V201は書き込みI/Oのシーケンシャルとランダムの混合環境でのシン・プロビジョニング・プールのメンバーであるj番目のRAIDグループの残存寿命(即ち書き込みI/O耐久性)Eを表わす。j番目のRAIDグループの残存寿命Eは前述の式(図20と25)を使用して計算される。変数V202はRAIDグループのIDを表わす。変数V203はシン・プロビジョニング・プール内のRAIDグループの数を表わす。式E200は複数のRAIDグループを含むシン・プロビジョニング・プールの寿命を計算する。
0117 第4の実施例
0118 第4の実施例と第3の実施例の相違点のみを記す。
0119 図39は本発明の第4の実施例によるストレージサブシステム内のメモリ112の例を示す。図27に比較して三つの要素が置き換えられ、一つの要素(移行制御112−22−3)が削除されている。前の図から置き換わる三つの新たな要素は仮想ボリューム管理テーブル112−11−2”、ディスク管理テーブル112−11−3”、及び仮想ボリュームページ管理テーブル112−15−1”である。
0120 図40は第4の実施例によるディスク管理テーブル112−11−3”の例を示す。図5に比較して二つの値がテーブルに追加されている。その第1は未使用のシン・プロビジョニング・チャンクを管理するためのフリー・チャンク・キュー・インデックス112−11−3−5”である。その第2は使用済みのシン・プロビジョニング・チャンクを管理するための使用済みチャンク・キュー・インデックス112−11−3−6”である。
0121 図41は第4の実施例による仮想ボリューム管理テーブル112−11−2”の例を示す。図4に比較して、図41のディスク番号112−11−2−3”は仮想ボリュームが現在使用するディスク121のIDリストを提供し、チャンク番号112−11−2−5”は仮想ボリュームが現在使用する容量プールに属する容量プールチャンクのIDリストを提供する。
0122 図42は第4の実施例による仮想ボリュームページ管理テーブル112−15−1”の例を示す。図30に比較して、図42のディスク番号112−15−1−2”は仮想ボリュームページが参照する容量プールページに属するディスク121のIDリストを提供し、容量プールページ112−15−1−3”は仮想ボリュームページが参照する容量プールページに属するアドレスのIDリストを提供する。
0123 図43は第4の実施例による仮想ボリュームとそのテーブル構造の例を示す。矢印付き実線はポインタによるオブジェクトを指す。矢印付き破線は計算によるオブジェクトを指す。仮想ボリューム141としては、仮想ボリューム141と仮想ボリューム管理テーブル112−1−1−2’は一対一の関係にあり、仮想ボリューム管理テーブル112−1−1−2’は現在使用中の容量プールページ121−1を参照する。仮想ボリュームページ141−2としては、仮想ボリュームページ141−2と仮想ボリュームページ管理テーブル112−15−1は一対一の関係にあり、仮想ボリュームページテーブル112−15−1は、ページが割り当てられているならば、容量プールページ121−2の二つ(以上の)スライスを参照する。ディスク121とディスク管理テーブル112−11−3”は一対一の関係にある。ディスク管理テーブル112−11−3”は使用済み及び未使用の容量プールチャンク112−1を参照する。
0124 図44は第4の実施例による容量プールに向かうテーブル参照構造の例を示す。矢印付きラインの実線はポインタによるオブジェクトを指し、破線は計算によるオブジェクトを指す。容量プールチャンク121−1としては、容量プールチャンク121−1と容量プールチャンク管理テーブル112−15−2は一対一の関係にあり、容量プールチャンク管理テーブル112−15−2は仮想ボリューム141を参照する。容量プールページ121−2に対しては、容量プールページ管理テーブル112−15−3は仮想ボリュームページ141−2を参照する。
0125
0126 図45は第4の実施例によるステップ112−29−1−2の信頼性の計算式の例を示す。変数V212はディスクのIDを表わす。変数V213はシン・プロビジョニング・プール内のディスク数を表わす。式E210は複数のディスクを含むシン・プロビジョニング・プールの寿命を計算する。この場合、式はRAID10の寿命に対するものであるから、書き込みI/Oタイプのシーケンシャル対ランダムの比率には依存しない。
0127 当然、図1、2、27、39で図示したシステム構成は本発明が実装できる情報システムの全く典型的なものであり、本発明は特定のハードウェア構成に限定されない。本発明を実装するコンピュータとストレージシステムは前述の発明を実装するために使用されるモジュール、プログラム及びデータ構造を保存し読み出す、公知のI/Oデバイス(例えばCD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も持つことができる。これらのモジュール、プログラム及びデータ構造はそのようなコンピュータ読み取り可能媒体上にコード化することができる。例えば、本発明のデータ構造は本発明に使用されるプログラムが存在する一つ以上のコンピュータ読み取り可能媒体とは無関係にコンピュータ読み取り可能媒体上に保存することができる。システムのコンポーネントは、ディジタルデータ通信の任意の形態又は媒体、例えば通信ネットワークにより相互接続できる。通信ネットワークの例はローカルエリアネットワーク、インターネット等の広域ネットワーク、無線ネットワーク、ストレージエリアネットワーク等を含む。
0128 説明中で数多くの詳細が本発明の十分な理解を可能にするために説明の目的で述べられている。しかしながら、これら特定の詳細は必ずしもすべてが本発明を実施するために必要とされるわけでないことは当業者には明白であろう。更に本発明は通常フローチャート、フローダイアグラム、構造ダイアグラム、又はブロックダイアグラムとして描かれるプロセスとして記述できることはいうまでもない。フローチャートは動作をシーケンシャルなプロセスとして記述可能であるが、多くの動作は並行して又は同時に遂行される。更に、動作順序は再編成が可能である。
0129 この技術分野で公知のように、前述の動作はハードウェア、ソフトウェア、又はソフトウェアとハードウェアの或る組み合わせで遂行できる。本発明の実施例の種々の態様は回路や論理デバイス(ハードウェア)を使用して実装可能であるが、他の態様では、プロセッサにより実行されるとプロセッサに本発明の実施例を実行する方法を遂行させる計算機読み取り可能媒体(ソフトウェア)上に保存される命令を使用して実装可能である。更に本発明のいくつかの実施例は専らハードウェアで遂行できるが、これに対し他の実施例では、専らソフトウェアで遂行できる。更に記述された種々の機能は単一の装置内で遂行できるが、任意の数の方法で多数のコンポーネントに亘って拡張することもできる。ソフトウェアにより遂行される時、方法はコンピュータ読み取り可能媒体に保存された命令に基づいて汎用コンピュータのようなプロセッサにより実行することができる。もし必要であれば、命令は圧縮及び/又は暗号化形式で媒体に保存することができる。
0130 前述から、本発明はフラッシュメモリ媒体の可用性及び信頼性の管理のための方法、装置、及びコンピュータ読み取り可能媒体に保存されるプログラムを提供することは明らかであろう。更に、本明細書内で特定の実施例が図示され、記述されてきたが、本技術分野の当業者は、同じ目的を達成することが予測される任意の構成が、開示された特定の実施例に対して置換可能であることを十分理解する。ここでの開示は本発明の任意かつすべての翻案又は変形にも及ぶように企図されており、当然のことながら以下の特許請求範囲で使用される表現は発明をこの明細書の中で開示された特定の実施例に限定するように解釈すべきでない。もっと正確に言えば本発明の範囲は専ら以下の請求項によって決定されるべきであり、それらはそのような請求項が権利を有する均等な全範囲に沿って、請求項の解釈に於ける確立した理論に従って解釈されるべきである。

Claims (18)

  1. それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップと、
    各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率を取得するステップと、
    各フラッシュメモリ媒体グループ内の各ディスクに対する前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命を計算するステップと、
    を含むことを特徴とするフラッシュメモリ媒体の信頼性の評価方法。
  2. ディスクに対する前記フラッシュメモリ残存寿命を測定するステップは、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップ、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するステップの一方からなる
    ことを特徴とする請求項1に記載の方法。
  3. ディスクに対する前記フラッシュメモリ残存寿命を測定するステップは、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するステップからなり、
    前記計算するステップはディスクのRAIDグループの前記残存寿命Eを、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    λはディスクiの残存寿命である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    式から計算するステップを含む
    ことを特徴とする請求項1に記載の方法。
  4. 前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のRAIDグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    前記計算するステップは各シン・プロビジョニング・プールの前記残存寿命EThin Provを、


    ここで、
    jは前記シン・プロビジョニング・プール内のディスクのRAIDグループのIDである、
    はE=ρEp/Seq+(1−ρ)Ep/Rndを使用したRAIDグループjの残存寿命である、
    Mは前記シン・プロビジョニング・プール内のRAIDグループ数である、
    式から計算するステップを含む
    ことを特徴とする請求項3に記載の方法。
  5. ディスクに対する前記フラッシュメモリ残存寿命を前記測定するステップは、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップからなり、
    前記計算するステップはディスクのRAIDグループの前記残存寿命Eを、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    λはディスクiの残存寿命であり、λ≡L−Iである、
    はディスクiへの書き込み回数の理論限界である、
    はシーケンシャルな書き込みI/Oタイプの前記書き込みI/O耐久性を計算するステップで使用されるディスクiに対する前記シーケンシャル書き込み動作数、又はランダムな書き込みI/Oタイプの前記書き込みI/O耐久性を計算するステップで使用されるディスクiに対する前記ランダム書き込み動作数、の一方である、
    式から計算するステップを含む
    ことを特徴とする請求項1に記載の方法。
  6. 前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    前記計算するステップは前記シン・プロビジョニング・プールの前記残存寿命EThin Provを、


    ここで、
    iはディスクIDである、
    λはディスクiの残存寿命である、
    Pは前記シン・プロビジョニング・プール内のディスク数である、
    式から計算するステップを含む
    ことを特徴とする請求項1に記載の方法。
  7. それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクと、
    データと一つ以上のモジュールを保存するメモリと、
    一つ以上の前記モジュールを実行して、
    前記複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定し、
    各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率を取得し、
    各フラッシュメモリ媒体グループ内の各ディスクに対して前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命を計算する、
    プロセッサを備える、
    ことを特徴とするフラッシュメモリ媒体の信頼性評価システム。
  8. ディスクに対する前記フラッシュメモリ残存寿命は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるか、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するか、いずれか一方により測定される
    ことを特徴とする請求項7に記載のシステム。
  9. ディスクに対する前記フラッシュメモリ残存寿命は、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得することにより測定され、
    ディスクのRAIDグループの前記残存寿命Eは、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    λはディスクiの残存寿命である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    式から計算される、
    ことを特徴とする請求項7に記載のシステム。
  10. 前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のRAIDグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    各シン・プロビジョニング・プールの前記残存寿命EThin Provは、


    ここで、
    jは前記シン・プロビジョニング・プール内のディスクのRAIDグループのIDである、
    はE=ρEp/Seq+(1−ρ)Ep/Rndを使用したRAIDグループjの残存寿命である、
    Mは前記シン・プロビジョニング・プール内のRAIDグループ数である、
    式から計算される、
    ことを特徴とする請求項9に記載のシステム。
  11. ディスクに対する前記フラッシュメモリ残存寿命は、前記複数のフラッシュメモリ媒体ディスクの各ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えることで測定され、
    ディスクのRAIDグループの前記残存寿命Eは、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    λはディスクiの残存寿命であり、λ≡L−Iである、
    はディスクiへの書き込み回数の理論限界である、
    はシーケンシャルな書き込みI/Oタイプの前記書き込みI/O耐久性の計算で使用されるディスクiに対する前記シーケンシャル書き込み動作数か、又はランダムな書き込みI/Oタイプの前記書き込みI/O耐久性の計算で使用されるディスクiに対する前記ランダム書き込み動作数、の一方である、
    式から計算される、
    ことを特徴とする請求項7に記載のシステム。
  12. 前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    前記シン・プロビジョニング・プールの前記残存寿命EThin Provは、


    ここで、
    iはディスクIDである、
    λはディスクiの残存寿命である、
    Pは前記シン・プロビジョニング・プール内のディスク数である、
    式から計算される、
    ことを特徴とする請求項7に記載のシステム。
  13. それぞれがRAIDグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命をデータプロセッサに測定させる命令と、
    各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの比率をデータプロセッサに取得させる命令と、
    各フラッシュメモリ媒体グループ内の各ディスクに対する前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みI/Oタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命をデータプロセッサに計算させる命令、とからなる、
    ことを特徴とするデータプロセッサを制御するための複数の命令をフラッシュメモリ媒体の信頼性を評価するために保存するコンピュータ読み取り可能ストレージ媒体。
  14. ディスクに対する前記フラッシュメモリ残存寿命を前記データプロセッサに測定させる前記命令は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるか、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するか、いずれか一方を前記データプロセッサに遂行させる命令からなることを特徴とする請求項13に記載のコンピュータ読み取り可能ストレージ媒体。
  15. ディスクに対する前記フラッシュメモリ残存寿命は、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得することで測定され、
    前記データプロセッサに計算させる前記命令は、ディスクのRAIDグループの前記残存寿命Eを、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/OタイプでのRAIDレベルpの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    λはディスクiの残存寿命である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    式を前記データプロセッサに計算させる命令を含む、
    ことを特徴とする請求項13に記載のコンピュータ読み取り可能ストレージ媒体。
  16. 前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のRAIDグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    前記データプロセッサに計算させる前記命令は、各シン・プロビジョニング・プールの前記残存寿命EThin Provを、


    ここで、
    jは前記シン・プロビジョニング・プール内のディスクのRAIDグループのIDである、
    はE=ρEp/Seq+(1−ρ)Ep/Rndを使用したRAIDグループjの残存寿命である、
    Mは前記シン・プロビジョニング・プール内のRAIDグループ数である、
    式を前記データプロセッサに計算させる命令からなる、
    ことを特徴とする請求項15に記載のコンピュータ読み取り可能ストレージ媒体。
  17. ディスクに対する前記フラッシュメモリ残存寿命は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えることで測定され、
    前記データプロセッサに計算させる前記命令は、ディスクのRAIDグループの前記残存寿命Eを、
    E=ρEp/Seq+(1−ρ)Ep/Rnd
    ここで、
    RAID10/Seq=(N/2)min(λi=〔0,N−1〕)、
    RAID10/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID5/Seq=(N−1)min(λi=〔0,N−1〕)、
    RAID5/Rnd=(N/2)min(λi=〔0,N−1〕)、
    RAID6/Seq=(N−2)min(λi=〔0,N−1〕)、
    RAID6/Rnd=(N/3)min(λi=〔0,N−1〕)、
    pはディスクの前記RAIDグループのRAIDレベルである、
    Seqはシーケンシャルな書き込みI/Oタイプである、
    Rndはランダムな書き込みI/Oタイプである、
    p/Seqはシーケンシャルな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    p/Rndはランダムな書き込みI/Oタイプでの前記RAIDグループの書き込みI/O耐久性である、
    iはディスクIDであり、0≦i≦N−1の整数である、
    Nは前記RAIDグループ内のディスク数である、
    ρは書き込みI/Oタイプのシーケンシャル対ランダムの比率で、0≦ρ≦1である、
    λはディスクiの残存寿命であり、λ≡L−Iである、
    はディスクiへの書き込み回数の理論限界である、
    はシーケンシャルな書き込みI/Oタイプの前記書き込みI/O耐久性の計算で使用されるディスクiに対する前記シーケンシャル書き込み動作数か、又はランダムな書き込みI/Oタイプの前記書き込みI/O耐久性の計算で使用されるディスクiに対する前記ランダム書き込み動作数、の一方である、
    式を前記データプロセッサに計算させる命令からなる、
    ことを特徴とする請求項13に記載のコンピュータ読み取り可能ストレージ媒体。
  18. 前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
    前記データプロセッサに計算させる前記命令は、前記シン・プロビジョニング・プールの前記残存寿命EThin Provを、


    ここで、
    iはディスクIDである、
    λはディスクiの残存寿命である、
    Pは前記シン・プロビジョニング・プール内のディスク数である、
    式を前記データプロセッサに計算させる命令からなる、
    ことを特徴とする請求項13に記載のコンピュータ読み取り可能ストレージ媒体。
JP2010021966A 2009-04-02 2010-02-03 フラッシュメモリストレージの寿命の評価指標と管理 Active JP5520624B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/385,232 2009-04-02
US12/385,232 US8166232B2 (en) 2009-04-02 2009-04-02 Metrics and management for flash memory storage life

Publications (2)

Publication Number Publication Date
JP2010244521A true JP2010244521A (ja) 2010-10-28
JP5520624B2 JP5520624B2 (ja) 2014-06-11

Family

ID=42827104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010021966A Active JP5520624B2 (ja) 2009-04-02 2010-02-03 フラッシュメモリストレージの寿命の評価指標と管理

Country Status (2)

Country Link
US (2) US8166232B2 (ja)
JP (1) JP5520624B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097575A (ja) * 2011-10-31 2013-05-20 Oki Electric Ind Co Ltd 半導体ディスク寿命監視装置
JP2013222255A (ja) * 2012-04-13 2013-10-28 Fluiditech Ip Ltd フラッシュメモリの使用期間評価方法
KR101404260B1 (ko) * 2011-12-23 2014-06-05 한양대학교 산학협력단 플래시 메모리의 수명 인디케이터를 제공하는 장치 및 장치
JP2014167809A (ja) * 2014-04-21 2014-09-11 Toshiba Corp 情報処理装置
US9594611B2 (en) 2011-08-19 2017-03-14 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US9703496B2 (en) 2015-01-27 2017-07-11 Nec Corporation Information processing device, information processing method, and medium

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8719621B1 (en) * 2010-05-05 2014-05-06 Marvell International Ltd. Solid-state disk cache assisted redundant array of independent disks
US8397023B2 (en) * 2010-12-18 2013-03-12 Lsi Corporation System and method for handling IO to drives in a memory constrained environment
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8671240B2 (en) * 2011-07-18 2014-03-11 Memory Technologies Llc User selectable balance between density and reliability
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
WO2013076763A1 (en) * 2011-11-22 2013-05-30 Hitachi, Ltd. Storage system and control method of storage system
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
WO2013118170A1 (en) * 2012-02-08 2013-08-15 Hitachi, Ltd. Storage apparatus with a plurality of nonvolatile semiconductor storage units and control method thereof to place hot data in storage units with higher residual life and cold data in storage units with lower residual life
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9542306B2 (en) 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
GB2514354A (en) * 2013-05-20 2014-11-26 Ibm Managing storage devices having a lifetime of a finite number of operations
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9886324B2 (en) 2016-01-13 2018-02-06 International Business Machines Corporation Managing asset placement using a set of wear leveling data
US10078457B2 (en) 2016-01-13 2018-09-18 International Business Machines Corporation Managing a set of wear-leveling data using a set of bus traffic
US10095597B2 (en) 2016-01-13 2018-10-09 International Business Machines Corporation Managing a set of wear-leveling data using a set of thread events
US10747602B1 (en) * 2016-07-01 2020-08-18 EMC IP Holding Company LLC User data availability confirmation system and method
US10073639B1 (en) 2017-03-10 2018-09-11 International Business Machines Corporation Hardware storage device optimization
US10310738B2 (en) * 2017-07-17 2019-06-04 International Business Machines Corporation Avoid out of space outage in a thinly provisioned box
CN110413198B (zh) * 2018-04-28 2023-04-14 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
US10446254B1 (en) * 2018-05-03 2019-10-15 Western Digital Technologies, Inc. Method for maximizing power efficiency in memory interface block
US11580023B2 (en) * 2020-03-11 2023-02-14 Fujitsu Limited Information processing apparatus, computer-readable recording medium having stored therein memory control program, and computer-readable recording medium having stored therein information processing program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10199118A (ja) * 1997-01-10 1998-07-31 Sony Corp データ記録再生装置およびハードディスクドライブの寿命管理方法
JP2004246749A (ja) * 2003-02-17 2004-09-02 Hitachi Ltd 記憶装置システム
JP2008015623A (ja) * 2006-07-03 2008-01-24 Hitachi Ltd 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP2008040713A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd 記憶媒体グループの故障を抑えるストレージシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
JP2008276626A (ja) * 2007-05-02 2008-11-13 Hitachi Ltd 記憶制御装置及び記憶制御装置の制御方法
JP2009238114A (ja) * 2008-03-28 2009-10-15 Hitachi Ltd ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10199118A (ja) * 1997-01-10 1998-07-31 Sony Corp データ記録再生装置およびハードディスクドライブの寿命管理方法
JP2004246749A (ja) * 2003-02-17 2004-09-02 Hitachi Ltd 記憶装置システム
JP2008015623A (ja) * 2006-07-03 2008-01-24 Hitachi Ltd 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP2008040713A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd 記憶媒体グループの故障を抑えるストレージシステム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594611B2 (en) 2011-08-19 2017-03-14 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US10101923B2 (en) 2011-08-19 2018-10-16 Toshiba Memory Corporation Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US10452283B2 (en) 2011-08-19 2019-10-22 Toshiba Memory Corporation Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US11119661B2 (en) 2011-08-19 2021-09-14 Toshiba Memory Corporation Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US11726661B2 (en) 2011-08-19 2023-08-15 Kioxia Corporation Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
JP2013097575A (ja) * 2011-10-31 2013-05-20 Oki Electric Ind Co Ltd 半導体ディスク寿命監視装置
KR101404260B1 (ko) * 2011-12-23 2014-06-05 한양대학교 산학협력단 플래시 메모리의 수명 인디케이터를 제공하는 장치 및 장치
JP2013222255A (ja) * 2012-04-13 2013-10-28 Fluiditech Ip Ltd フラッシュメモリの使用期間評価方法
JP2014167809A (ja) * 2014-04-21 2014-09-11 Toshiba Corp 情報処理装置
US9703496B2 (en) 2015-01-27 2017-07-11 Nec Corporation Information processing device, information processing method, and medium

Also Published As

Publication number Publication date
US20120179864A1 (en) 2012-07-12
US20100257306A1 (en) 2010-10-07
JP5520624B2 (ja) 2014-06-11
US8166232B2 (en) 2012-04-24
US8407409B2 (en) 2013-03-26

Similar Documents

Publication Publication Date Title
JP5520624B2 (ja) フラッシュメモリストレージの寿命の評価指標と管理
US7702852B2 (en) Storage system for suppressing failures of storage media group
US8880801B1 (en) Techniques for reliability and availability assessment of data storage configurations
US10082965B1 (en) Intelligent sparing of flash drives in data storage systems
US8539150B2 (en) Storage system and management method of control information using a cache memory with multiple cache partitions
US10459639B2 (en) Storage unit and storage system that suppress performance degradation of the storage unit
US8069301B2 (en) Apparatus, storage system, and computer program product for prevention of data loss
US9519554B2 (en) Storage system with rebuild operations
US9063874B2 (en) Apparatus, system, and method for wear management
US9256381B1 (en) Managing degraded storage elements in data storage systems
US9513814B1 (en) Balancing I/O load on data storage systems
JP5537976B2 (ja) 大容量ディスクドライブの使用方法及び装置
JP2010102695A (ja) Hdd障害からの高速データ回復
JP5956675B2 (ja) 記憶装置および記憶装置制御方法
US20140325262A1 (en) Controlling data storage in an array of storage devices
JP6216897B2 (ja) ストレージシステム
KR20110086725A (ko) 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법
US20130275802A1 (en) Storage subsystem and data management method of storage subsystem
JP2008084270A (ja) データ比較機能を有するストレージシステム
US20130145223A1 (en) Storage subsystem and method for controlling the same
US10089227B1 (en) Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm
US20210382788A1 (en) Storage system and control method of the same
JP2013149209A (ja) ストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131011

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140407

R150 Certificate of patent or registration of utility model

Ref document number: 5520624

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150