(57)【要約】      （修正有）【課題】ソリッドステートストレージドライブ（ＳＳＤ）の実際のワークロードに基づく、最適なオーバープロビジョニングを提供する。【解決手段】複数のＳＳＤの各々から使用データを受け取ることと、少なくとも使用データに基づいて複数のＳＳＤの各々の予測される耐用年数の値を決定することと、予測される耐用年数の各々を、各ＳＳＤの予め決められた耐用年数の値と比較することと、比較するステップの結果に基づいて、複数のＳＳＤの少なくとも１つの利用できる論理記憶容量を動的に調整することとを含む。複数のＳＳＤの少なくとも１つの利用できる論理記憶容量を動的に調整することは、そのＳＳＤの予測される耐用年数の値が、そのＳＳＤの予め決められた耐用年数の値よりも大きいという結果に基づいて、そのＳＳＤの利用できる論理容量を増加させることを含む。【選択図】図４
2019169141.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドステートストレージドライブアレイ内のオーバープロビジョニングを管理するための方法であって、
複数のソリッドステートストレージドライブの各々から使用データを受け取ることと、
少なくとも前記使用データに基づいて、前記複数のソリッドステートストレージドライブの各々の予測される耐用年数の値を決定することと、
前記予測される耐用年数の値の各々を、各ソリッドステートストレージドライブの予め決められた耐用年数の値と比較することと、
前記比較するステップの結果に基づいて、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を動的に調整することとを含む方法。
【請求項２】
前記複数のソリッドステートストレージドライブの前記少なくとも１つの前記利用できる論理記憶容量を動的に調整することは、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値より大きいという結果に基づいて、そのソリッドステートストレージドライブの前記利用できる論理容量を増加させることを含む請求項１記載の方法。
【請求項３】
前記複数のソリッドステートストレージドライブの少なくとも１つの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの前記少なくとも１つに含まれる少なくとも１つのネームスペースを、前記複数のソリッドステートストレージドライブの間で再割り当てすることをさらに含む請求項１記載の方法。
【請求項４】
前記複数のソリッドステートストレージドライブの少なくとも１つの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの前記少なくとも１つの利用できる論理記憶容量を削減することをさらに含む請求項１記載の方法。
【請求項５】
前記使用データは、ホスト使用データとメディア使用データとを含む請求項１記載の方法。
【請求項６】
前記ホスト使用データはホストから書き込まれたデータのバイト数を含み、前記メディア使用データは物理メモリに書き込まれたデータのバイト数を含む請求項５記載の方法。
【請求項７】
前記複数のソリッドステートストレージドライブから疲弊データを受け取ることをさらに含み、前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数を決定することは、前記使用データと前記疲弊データとに基づく、請求項１記載の方法。
【請求項８】
前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数を決定することは、
一連の増加する時間インデックスの値の間における、そのソリッドステートストレージドライブの予測されるロービットエラー率分布を、前記予測されるロービットエラー率分布が、許容できない性能を示す閾値を超えるまで、決定することと、
前記予測されるロービットエラー率が前記閾値を超えるとき、そのソリッドステートストレージドライブの前記予測される耐用年数の値を、前記時間インデックスの現在の値を加えた、そのソリッドステートストレージドライブの現在の年数と定義することとを含む、請求項１記載の方法。
【請求項９】
前記予測されるロービットエラー率分布を決定することは、そのソリッドステートストレージドライブにおける、予め決められた将来の時間に発生すると予測されるプログラム／イレーズサイクル数と、現在のロービットエラー率分布とに基づく、請求項８記載の方法。
【請求項１０】
前記予め決められた将来の時間に発生すると予測される前記プログラム／イレーズサイクル数は、そのソリッドステートストレージドライブの予測されるライトアンプリフィケーションファクタに基づく、請求項９記載の方法。
【請求項１１】
前記予測されるライトアンプリフィケーションファクタは、そのソリッドステートストレージドライブの実効オーバープロビジョニングの値に基づく、請求項１０記載の方法。
【請求項１２】
ソリッドステートストレージドライブアレイ内のオーバープロビジョニングを管理するためのシステムであって、
各々のソリッドステートストレージドライブが使用データを記録するように構成される複数のソリッドステートストレージドライブと、
前記複数のソリッドステートストレージドライブの各々と通信で結合されたドライブ状態モニタであって、前記複数のソリッドステートストレージドライブの各々に使用データを要求するように構成されるドライブ状態モニタと、
前記ドライブ状態モニタから期間中に受け取られた前記使用データの一連の値を格納するように構成される遠隔測定データベースと、
前記遠隔測定データベースに通信で結合された解析エンジンであって、少なくとも前記使用データに基づいて前記複数のソリッドステートストレージドライブの各々の予測される耐用年数の値を決定するように構成される解析エンジンと、
前記解析エンジンに通信で結合された仮想化器であって、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値と、そのソリッドステートストレージドライブの予め決められた耐用年数の値との比較結果に基づいて、動的に調整するように構成される仮想化器と、を具備するシステム。
【請求項１３】
前記仮想化器は、前記複数のソリッドステートストレージドライブの前記少なくとも１つの前記利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値よりも大きいという結果に基づいて、増加させるように構成される、請求項１２記載のシステム。
【請求項１４】
前記仮想化器はさらに、前記複数のソリッドステートストレージドライブの前記少なくとも１つに含まれる少なくとも１つのネームスペースを、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの間で再割り当てするように構成される、請求項１２記載のシステム。
【請求項１５】
前記仮想化器はさらに、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、削減するように構成される、請求項１２記載のシステム。
【請求項１６】
前記使用データは、ホスト使用データとメディア使用データとを含む請求項１２記載のシステム。
【請求項１７】
前記ホスト使用データはホストから書き込まれたデータのバイト数を含み、前記メディア使用データは物理メモリに書き込まれたデータのバイト数を含む、請求項１６記載のシステム。
【請求項１８】
前記ドライブ状態モニタはさらに、前記複数のソリッドステートストレージドライブに疲弊データを要求するように構成され、前記解析エンジンは、前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数の値を、前記使用データと前記疲弊データとに基づいて決定するように構成される、請求項１２記載のシステム。
【請求項１９】
前記解析エンジンは、前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数の値を、
一連の増加する時間インデックスの値の間における、そのソリッドステートストレージドライブの予測されるロービットエラー率分布を、前記予測されるロービットエラー率分布が、許容できない性能を示す閾値を超えるまで、決定することと、
前記予測されるロービットエラー率分布が前記閾値を超えるとき、そのソリッドステートストレージドライブの前記予測される耐用年数の値を、前記時間インデックスの現在の値を加えた、そのソリッドステートストレージドライブの現在の年数と定義することと
によって決定するように構成される請求項１２記載のシステム。
【請求項２０】
前記解析エンジンは、前記予測されるロービットエラー率分布を、そのソリッドステートストレージドライブにおける、予め決められた将来の時間に発生すると予測されるプログラム／イレーズサイクル数と、現在のロービットエラー率分布とに基づいて、決定するように構成される請求項１９記載のシステム。
【請求項２１】
前記解析エンジンは、前記予め決められた将来の時間に発生すると予測される前記プログラム／イレーズサイクル数を、そのソリッドステートストレージドライブの予測されるライトアンプリフィケーションファクタに基づいて、決定するように構成される請求項２０記載のシステム。
【請求項２２】
前記解析エンジンは、前記予測されるライトアンプリフィケーションファクタを、そのソリッドステートストレージドライブの実効オーバープロビジョニングの値に基づいて、決定するように構成される請求項２１記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してソリッドステートストレージドライブに、より具体的にはソリッドステートストレージドライブアレイにおけるワークロード適応型オーバープロビジョニングに、関する。
【背景技術】
【０００２】
ソリッドステートストレージドライブ（ＳＳＤｓ）は一般に、利用できる物理記憶容量の合計よりも少ない論理アドレス空間を提供する。そのような記憶容量のオーバープロビジョニング（「ＯＰ」）は、主に２つの理由でなされる。第１に、ガベージコレクションによってまだ回収されていない無効データを格納するために、十分な物理メモリリソースが利用できることを保証する。第２に、物理フラッシュセルは有限のプログラム／イレーズサイクル数のみを許容できるので、追加の物理メディア上にプログラム（書き込み）を分配することは、そのドライブに対して指定された書き込みの耐久性（ｅｎｄｕｒａｎｃｅ）が、その基礎をなすメディアの耐久性を超えることを可能にする。これらの主要な機能に加えて、余剰の（ｏｖｅｒｐｒｏｖｉｓｉｏｎｅｄ）物理記憶容量は、メタデータおよびエラー訂正符号データを格納し、メモリ故障（バッドブロックおよび／またはダイ）の場合にドライブが全論理容量を維持することを可能にするために用いることができる。あるＳＳＤ内のオーバープロビジョニングの量は、消費者向けの用途のための１桁のパーセンテージ（例えば、１ＴＢのＳＳＤに対して６４ＧＢ）から、企業向けの用途のための、例えば２５％かそれ以上のかなり高いパーセンテージ（例えば、１ＴＢのＳＳＤに対して２２４ＧＢ）まで、そのＳＳＤの用途に応じて変わり得る。
【０００３】
ＳＳＤは、そのドライブの論理容量の特定の書き込み回数に関して評価される。この「書き込みエンデュランス」は、書き込み強度（ある期間中の書き込みデータ量）を掛けた耐用年数（時間）として多くの場合表現される。書き込み強度は典型的には「１日当たりのドライブ書き込み」（Ｎ−ＤＷＰＤ）という用語で特定され、これは、ＳＳＤの全体の論理容量をその使用できる寿命の１日毎に失敗なく何回上書きできるかである。特定の生産ライン内で利用できる書き込みエンデュランスの評価の数は限定され得る。例えば、ある生産ラインは、５年の耐用年数に対して、１−，３−，または５−ＤＷＰＤ、あるいは１−，３−，または１０−ＤＷＰＤと評価されるＳＳＤを提供し得る。
【０００４】
１つのＳＳＤ内のＯＰの量は、その評価された書き込みエンデュランスと指数関数的に関係し、したがって、１０−ＤＷＰＤと評価されたＳＳＤは、１−ＤＷＰＤと評価されたＳＳＤよりも、著しく高いパーセンテージのＯＰを有するであろう。さらに、ＳＳＤに実装されるＯＰのパーセンテージは、典型的には、その耐用年数の間における当該ドライブの最悪ケースの使用（最大の書き込み回数、最高の温度での動作、等）を想定する。
【０００５】
ホストからのデータ書き込み回数と、ライトアンプリフィケーションとは、ＳＳＤが経験する疲弊のレートに影響する。ライトアンプリフィケーションは、物理メディアに書き込まれなければならないデータの実際の量が、ホストから受け取った論理データの量を超える要因である。ＮＡＮＤフラッシュメモリセルは、上書きされないかもしれないが、新たなデータを受け入れる前にまず消去されなければならない。ライトアンプリフィケーションは、ＮＡＮＤフラッシュメモリにおいて、消去可能なデータの最小単位が書き込み可能な最小サイズよりもかなり大きいために発生する。したがって、ホストが特定の論理アドレスにデータを上書きするとき、ＳＳＤは新しい物理アドレスにその新たなデータを格納し、その論理アドレスにこれまで対応していたデータに、陳腐化（ｓｔａｌｅ）、すなわち「無効」の印を付ける。消去はブロックと称される単位で行われる。新たなデータを受け取る準備において、消去されるべきブロックを選択するとき、そのブロック内のいずれの無効データも無視され得る一方、有効データは統合され、他の場所に移動され得る。このデータ移動に伴う書き込みが、ライトアンプリフィケーションを引き起こす根本的なメカニズムである。ライトアンプリフィケーションは、典型的には、ＳＳＤの物理記憶領域に書き込まれたバイト数の、そのＳＳＤ内の論理記憶領域に書き込まれたバイト数（すなわち、ホスト書き込み数）に対する比率で表される。一般に、小さなデータブロックのランダムな書き込みは、大きなデータブロックのシーケンシャルな書き込みよりも、より大きなライトアンプリフィケーションを引き起こし、ＳＳＤの論理容量がより満杯であるほど、そのライトアンプリフィケーションはより高くなる。したがって、ライトアンプリフィケーションファクタはＳＳＤの将来の用途次第であるので、推定が非常に難しい。
【０００６】
ＳＳＤを購入しようとする顧客は、とりわけ、トラフィックパターンが予測できない多数の様々なエンドユーザアプリケーションに対してデータストレージを提供するデータセンター内で使用するためのＳＳＤおよびＳＳＤベースのネットワーク機器の購入者は、その書き込みトラフィックがどうなるかを推定しなければならないが、書き込みトラフィックを正確に推定することは多くの場合困難である。顧客は、典型的には保守的に選択し、したがって多くの場合、より高いＤＷＰＤ評価の、したがって実際に必要であるよりも多いＯＰの、ＳＳＤを購入し得る。したがって、ＳＳＤが経験する実際のワークロードに基づく、ＳＳＤの最適なオーバープロビジョニングが必要とされる。
【発明の概要】
【０００７】
一実施形態では、ソリッドステートストレージドライブアレイ内のオーバープロビジョニングを管理するための方法は、複数のソリッドステートストレージドライブの各々から使用データを受け取ることと、少なくとも前記使用データに基づいて、前記複数のソリッドステートストレージドライブの各々の予測される耐用年数の値を決定することと、前記予測される耐用年数の値の各々を、各ソリッドステートストレージドライブの予め決められた耐用年数の値と比較することと、前記比較するステップの結果に基づいて、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を動的に調整することとを含む。一実施形態では、前記複数のソリッドステートストレージドライブの前記少なくとも１つの前記利用できる論理記憶容量を動的に調整することは、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値より大きいという結果に基づいて、そのソリッドステートストレージドライブの前記利用できる論理容量を増加させることを含む。一実施形態では、前記方法は、前記複数のソリッドステートストレージドライブの少なくとも１つの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの前記少なくとも１つに含まれる少なくとも１つのネームスペースを、前記複数のソリッドステートストレージドライブの間で再割り当てすることをさらに含む。一実施形態では、前記方法は、前記複数のソリッドステートストレージドライブの少なくとも１つの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの前記少なくとも１つの利用できる論理記憶容量を削減することをさらに含む。
【０００８】
一実施形態では、前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数を決定するステップは、一連の増加する時間インデックスの値の間における、そのソリッドステートストレージドライブの予測されるロービットエラー率分布（ｒａｗ  ｂｉｔ  ｅｒｒｏｒ  ｒａｔｉｏ  ｄｉｓｔｒｉｂｕｔｉｏｎ）を、前記予測されるロービットエラー率分布が許容できない性能を示す閾値を超えるまで、決定することと、前記予測されるロービットエラー率が前記閾値を超えるとき、そのソリッドステートストレージドライブの前記予測される耐用年数の値を、前記時間インデックスの現在の値を加えた、前記ソリッドステートストレージドライブの現在の年数と定義することとを含む。一実施形態では、前記予測されるロービットエラー率分布を決定することは、現在のロービットエラー率分布と、そのソリッドステートストレージドライブにおいて予め決められた将来の時間に発生すると予測されるプログラム／イレーズサイクル数とに基づく。
【０００９】
一実施形態では、ソリッドステートドライブアレイにおいてオーバープロビジョニングを管理するためのシステムは、各々のソリッドステートストレージドライブが使用データを記録するように構成される複数のソリッドステートストレージドライブと、前記複数のソリッドステートストレージドライブの各々と通信で結合されたドライブ状態モニタであって、前記複数のソリッドステートストレージドライブの各々に使用データを要求するように構成されるドライブ状態モニタと、前記ドライブ状態モニタから期間中に受け取られた前記使用データの一連の値を格納するように構成される遠隔測定データベースと、前記遠隔測定データベースに通信で結合された解析エンジンであって、少なくとも前記使用データに基づいて前記複数のソリッドステートストレージドライブの各々の予測される耐用年数の値を決定するように構成される解析エンジンと、前記解析エンジンに通信で結合された仮想化器であって、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値と、そのソリッドステートストレージドライブの予め決められた耐用年数の値との比較結果に基づいて、動的に調整する仮想化器とを具備する。一実施形態では、前記仮想化器は、前記複数のソリッドステートストレージドライブの前記少なくとも１つの前記利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値よりも大きいという結果に基づいて、増加させるように構成される。一実施形態では、前記仮想化器はさらに、前記複数のソリッドステートストレージドライブの前記少なくとも１つに含まれる少なくとも１つのネームスペースを、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、前記複数のソリッドステートストレージドライブの間で再割り当てするように構成される。一実施形態では、前記仮想化器はさらに、前記複数のソリッドステートストレージドライブの少なくとも１つの利用できる論理記憶容量を、そのソリッドステートストレージドライブの前記予測される耐用年数の値が、そのソリッドステートストレージドライブの前記予め決められた耐用年数の値以下であるという前記結果に基づいて、削減するように構成される。
【００１０】
一実施形態では、前記解析エンジンは、前記複数のソリッドステートストレージドライブの各々の前記予測される耐用年数の値を、一連の増加する時間インデックスの値の間における、そのソリッドステートストレージドライブの予測されるロービットエラー率分布を、前記予測されるロービットエラー率分布が許容できない性能を示す閾値を超えるまで、決定することと、前記予測されるロービットエラー率分布が前記閾値を超えるとき、そのソリッドステートストレージドライブの前記予測される耐用年数の値を、前記時間インデックスの現在の値を加えた、そのソリッドステートストレージドライブの現在の年数と定義することとによって決定するように構成される。一実施形態では、前記解析エンジンは、前記予測されるロービットエラー率分布を、そのソリッドステートストレージドライブにおける、予め決められた将来の時間に発生すると予測されるプログラム／イレーズサイクル数と、現在のロービットエラー率分布とに基づいて、決定するように構成される。
【図面の簡単な説明】
【００１１】
【図１Ａ】図１Ａは、本発明に係る、ソリッドステートストレージドライブアレイを含むネットワーク機器の一実施形態の図である。
【００１２】
【図１Ｂ】図１Ｂは、本発明に係る、ソリッドステートストレージドライブアレイを含むネットワーク機器の一実施形態の図である。
【００１３】
【図２】図２は、本発明に係る、図１Ａのネットワーク機器のソリッドステートストレージドライブの一実施形態の図である。
【００１４】
【図３】図３は、本発明に係る、ソリッドステートストレージドライブアレイ遠隔測定データベースの一実施形態の図である。
【００１５】
【図４】図４は、本発明の一実施形態に係る、ソリッドステートストレージドライブアレイにおけるワークロード適応型オーバープロビジョニングのための方法ステップのフローチャートである。
【００１６】
【図５】図５は、本発明の一実施形態に係る、ソリッドステートストレージドライブの予測される耐用年数を決定するための方法ステップのフローチャートである。
【発明を実施するための形態】
【００１７】
図１Ａは、本発明に係る、ソリッドステートストレージドライブアレイを含むネットワーク機器１００の一実施形態の図である。ネットワーク機器１００は、これに限定されないが、複数のソリッドステートストレージドライブ（ＳＳＤｓ）１１０、マッピングレイヤ１１２、遠隔測定データベース１１６、解析エンジン１２０、および仮想化器１２２を含む。バス１１８は、複数のＳＳＤ１１０、マッピングレイヤ１１２、ＳＳＤ  Ｉ／Ｏモニタ１３４、およびＳＳＤ状態モニタ１３６の間の適切な通信パスを提供する。Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ（ＮＶＭｅ）は、バス１１８上の通信に適切なバスインタフェースプロトコルの一例である。図１Ａは４つのＳＳＤ１１０を図示するが、それで特定の数のＳＳＤに限定するものではない。ネットワーク機器１００は、本発明の範囲内の１つ以上のＳＳＤ１１０を含み得る。
【００１８】
マッピングレイヤ１１２は、１つ以上のホスト１１４とＳＳＤ１１０のアレイとの間のインタフェースを、ホスト１１４からのリードおよびライトコマンドを受け取り、応答することによって、提供する。Ｆａｂｒｉｃｓ上のＮＶＭｅ、ｉＳＣＳＩ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）上のＮＶＭｅ、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、およびＳｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）は、ネットワーク機器１００とホスト１１４との間の通信に適したバスインタフェースプロトコルである。マッピングレイヤ１１２は、各ホスト１１４に対して、そのホストのＩ／Ｏコマンドが、他の仮想アドレス空間から独立してアドレス指定され得る仮想アドレス空間（「ネームスペース」または「ボリューム」）を提示する。マッピングレイヤ１１２は、仮想アドレス空間内の複数のアドレスを、複数のＳＳＤ１１０の１つ以上によって提示される論理アドレス空間内の複数のアドレスにマッピングすること（変換すること）によって、その仮想アドレス空間を実現する。一実施形態では、マッピングレイヤ１１２は、ネットワーク機器１００のコントローラまたはプロセッサ（図示せず）によって実行されるファームウェア内のプログラムである。仮想化器１２２は、複数のネームスペースを作成および削除する、それらネームスペースをホスト１１４に公表する、等のために、プロビジョニング権限１２４（例えば、管理者またはユーザのインタフェース）からの要求に応じて、マッピングレイヤ１１２による複数の仮想アドレス空間のマッピングを管理する。１つのネームスペースは、１つのＳＳＤ１１０に含まれる複数の物理記憶領域に全体にマッピングされ得、あるいは複数のＳＳＤ１１０の２つ以上に含まれる複数の物理記憶領域にマッピングされ得る。マッピングレイヤ１１２と仮想化器１２２とは共に、ネームスペースがＳＳＤ１１０のアレイにどのようにマッピングされているかをホスト１１４が意識することがないように、ホスト１１４とＳＳＤ１１０のアレイとの間の抽象化レイヤを提供する。仮想化器１２２は、各ＳＳＤ１１０の論理容量の比率のいずれもホスト１１４に容量として公表されるように、マッピングされたネームスペースを管理することによって、ＳＳＤ１１０内のオーバープロビジョニングを制御する。一実施形態では、仮想化器１２２は、ネットワーク機器１００のコントローラまたはプロセッサによって実行されるファームウェア内のプログラムである。
【００１９】
解析エンジン１２０は、アレイ内の各ＳＳＤ１１０に関する遠隔測定データベース１１６内のデータを使用して、各ＳＳＤ１１０の残りの耐用年数の推定値を決定する。一実施形態では、解析エンジン１２０はネットワーク機器１００のコントローラまたはプロセッサによって実行されるプログラムである。解析エンジン１２０および仮想化器１２２の相関関係は、図４および５と共にさらに後述される。
【００２０】
ＳＳＤ状態モニタ１３６は、ホストおよびメディアのトラフィックの統計と、疲弊状態と、使用された物理容量の比率と、エラー訂正の統計とを含むが、これに限定されない、内部で記録された情報を検索するために、ＳＳＤ１１０の各々に対して周期的にポーリングする。ＳＳＤ状態モニタ１３６は、このＳＳＤ１１０の内部の状態情報を遠隔測定データベース１１６に提供する前に、内部の状態情報に対してフィルタリングや他の前処理を任意に行い得る。ＳＳＤ状態モニタ１３６は各ＳＳＤ１１０に識別子を関連付け、識別子とそれに関連付けられた内部の状態データとを遠隔測定データベース１１６へ、能動的に、あるいはポーリングされたことに応じて、取り次ぐ。ＳＳＤ状態モニタ１３６は、任意の適切な間隔で、例えば１時間に１回、または１日に１回、各ＳＳＤ１１０にポーリングし得る。ネットワーク機器１００のユーザまたは管理者は、どのくらいの頻度でＳＳＤ状態モニタ１３６がＳＳＤ１１０のアレイにポーリングするかを設定する。各ＳＳＤ１１０は、ポーリングに応じて、その現在のログデータをＳＳＤ状態モニタ１３６に通知する。
【００２１】
ホストＩ／Ｏモニタ１３２は、各ホストに割り当てられた各ネームスペースの容量と、各ネームスペースへの、および各ネームスペースからのＩ／Ｏトラフィックのレートと、使用された各ネームスペースの容量の比率とを含むが、これに限定されない、ホスト１１４とネットワーク機器１００との間のＩ／Ｏトラフィックの関連内容を記録する。ＳＳＤ  Ｉ／Ｏモニタ１３４は、Ｉ／Ｏトラフィックのレートと、使用された各ＳＳＤ１１０の論理容量の比率とを含むが、これに限定されない、マッピングレイヤ１１２とＳＳＤ１１０の各々との間のＩ／Ｏトラフィックの関連内容を記録する。ホストＩ／Ｏモニタ１３２とＳＳＤ  Ｉ／Ｏモニタ１３４の各々は、その収集したデータを遠隔測定データベース１１６に、適切な間隔で、例えば１時間に１回、または１日に１回、送る。
【００２２】
遠隔測定データベース１１６は、ホストＩ／Ｏモニタ１３２、ＳＳＤ  Ｉ／Ｏモニタ１３２、およびＳＳＤ状態モニタ１３６からのデータに対して、時系列の値（時間で索引付けされる情報）を格納する。さらに後述するように、このデータは、これに限定されないが、ホスト使用データ、メディア使用データ、および疲弊データを含み得る。例えば、遠隔計測データベース１１６は、ホスト使用データとして、ある一連の時間にホストＩ／Ｏモニタ１３２によって通知された、ネームスペースに書き込まれた一連のホストデータのバイト数を格納することができる。したがって遠隔測定データベース１１６は、ＳＳＤ１１０に関する様々な使用および疲弊データの履歴のレコードを格納する。遠隔測定データベース１１６に格納されたホスト使用データ、メディア使用データ、および疲弊データは、図３と共にさらに後述される。解析エンジン１２０は、各ＳＳＤ１１０の将来の疲弊と残りの耐用年数とを推定するために、遠隔測定データベース１１６に含まれる履歴の時系列のデータを解析する。推定された各ＳＳＤ１１０の残りの耐用年数に基づいて、仮想化器１２２はＳＳＤ１１０間でネームスペースを再マッピングし、ネットワーク機器１００の管理者に追加のＯＰが必要であることを通知するか、あるいはより多いまたはより少ない論理容量を公表することによって、ＳＳＤ１１０の１つ以上に含まれるＯＰの量を動的に調整し得る。
【００２３】
図１Ｂは、本発明に係る、ソリッドステートストレージドライブアレイを含むネットワーク機器の一実施形態の図である。図１Ｂの実施形態では、ネットワーク機器１０１は、これに限定されないが、複数のＳＳＤ１１０、マッピングレイヤ１１２、ホストＩ／Ｏモニタ１３２、ＳＳＤ  Ｉ／Ｏモニタ１３４、およびＳＳＤ状態モニタ１３６を含む。遠隔測定データベース１１６、解析エンジン１２０、および仮想化器１２２は、ネットワーク機器１００の外部に位置し、ネットワーク機器１０１とは別に、１つ以上のネットワーク機器内の複数のＳＳＤに関する遠隔測定データを格納し、処理し得る。
【００２４】
図２は、本発明に係る、図１Ａのネットワーク機器１００のソリッドステートストレージドライブ（ＳＳＤ）１１０の一実施形態の図である。ＳＳＤ１１０は、ＳＳＤ１１０が他のデバイスとの通信のためのバス１１８と通信で結合されることを可能にするバスインタフェース２１０を含む。ＳＳＤ１１０は、外部のＤＲＡＭ２１４、およびＮＡＮＤデバイス２１８のアレイと通信するコントローラ２１２を含む。コントローラ２１２は、ＮＡＮＤデバイス２１８上に格納されたデータの書き込み（プログラム）、読み出し、および消去を管理する。コントローラ２１２は、これに限定されないが、ホスト１１４からのデータの論理アドレスを、ＮＡＮＤデバイス２１８の物理ページおよびブロックにマッピングするための、ファームウェア内のフラッシュトランスレーションレイヤ（ＦＴＬ）２２０を含む。コントローラ２１２は監視機能２３０を実装する。コントローラ２１２は、ホストデータを一時的に格納する（キャッシュする）ための、およびアドレスマッピングメタデータを一時的に格納するための、バッファとして、また他の目的のために、ＤＲＡＭ２１４を使用し得る。
【００２５】
複数のＮＡＮＤデバイス２１８は、コントローラ２１２と通信する４つのチャネル２４２、２４４、２４６、２４８内に配置される。図２のＳＳＤ１１０では、４つのチャネルに配置された１６個のＮＡＮＤデバイス２１８が示されるが、特定の数のＮＡＮＤデバイスおよびチャネルに限定されるものではなく、本発明の範囲内で、ＳＳＤ１１０は１つ以上のチャネル内に配置された１つ以上のＮＡＮＤデバイス２１８を含み得る。一実施形態では、ＮＡＮＤデバイス２１８は、ＳＬＣ  ＮＡＮＤデバイス、ＭＬＣ  ＮＡＮＤデバイス、ＴＬＣ  ＮＡＮＤデバイス、ＱＬＣ  ＮＡＮＤデバイス、またはそれらの組み合わせであり得る。
【００２６】
モニタ２３０は、ＳＳＤ１１０のメディア疲弊情報と動作の統計とを記録する。記録されるログデータは、これに限定されないが、ホスト使用データ、メディア使用データ、および疲弊データを含み得る。ホスト使用データは、これに限定されないが、ホストからのデータ書き込みのバイト数を含む。メディア使用データは、これに限定されないが、ＮＡＮＤデバイス２１８に書き込まれたデータのバイト数（ガベージコレクションおよびリフレッシュ動作に関連する書き込みを含む、リフレッシュ動作は、ページからデータを読み出すことと、何らかのエラー訂正を行うことと、そのページのデータを新たなページ領域に書き込むこととを含むリフレッシュサイクルである）と、行われたプログラム／イレーズサイクルの数と、行われたリフレッシュサイクルの数とを含む。疲弊データは、これに限定されないが、ロービットエラー率（読み出されたビットの総数で除算された訂正前のビットエラーの数）と、使用不可の印が付けられたブロック（「バッドブロック」）の数とを含む。モニタ２３０は、コントローラ２１２内部のメモリ、ＤＲＡＭ２１４、またはＮＡＮＤデバイス２１８を含むがこれに限定されない、いずれか適切な記憶領域に、記録されたログデータを格納する。ＳＳＤ状態モニタ１３６からの要求に応じて、コントローラ２１２は現在のログデータをＳＳＤ状態モニタ１３６に通知する。
【００２７】
図３は、本発明に係る、ソリッドステートストレージドライブアレイ遠隔測定データベース１１６の一実施形態の図である。ホスト使用領域３１０は、１つ以上のＳＳＤ１１０にマッピングされた各ネームスペースのホスト使用データを格納する。ホスト使用データは、これに限定されないが、ホストからネームスペースに書き込まれたデータのバイト数と、ネームスペースの総論理容量と、プログラムされた（すなわち、ホストからのデータを含む）ネームスペースの容量の比率とを含み得る。メディア使用領域３１２は、複数のＳＳＤ１１０の各々のメディア使用データを格納する。メディア使用データは、これに限定されないが、ガベージコレクションおよびリフレッシュ動作に関連する書き込みを含む、各ＳＳＤ１１０に書き込まれた総バイト数と、プログラム／イレーズサイクル数と、実行されたリフレッシュサイクル数とを含み得る。疲弊データ領域３１４は、ロービットエラー率（ＲＢＥＲ）分布と、バッドブロック数と、実効（ｅｆｆｅｃｔｉｖｅ）ＯＰとを含み得るが、これに限定されない、疲弊関連データを格納する。ＲＢＥＲ分布は、パーセンテージで表現された、全体の読み出しビット数で除算された（エラー訂正前の）ビットエラーの数の、各ＳＳＤ１１０内の物理メディアにおける分布である。ＮＡＮＤメモリは疲弊が増すほど、ビットエラーの傾向がより高まるので、ＲＢＥＲ分布は物理メモリの疲弊状態の指標である。一実施形態では、ロービットエラー率分布は、１つのＳＳＤ１１０に含まれるフラッシュメモリの全ページ（またはブロックより小さな別の単位）のロービットエラー率のヒストグラムである。バッドブロックの数は、ＳＳＤのファームウェアによって「バッド」、すなわち使用不可の印が付けられたメモリブロックの数で表される。実効ＯＰは、ＳＳＤの論理容量の使用されていないバイト数を足した、「予備領域」である物理メモリのバイト数を、ＳＳＤの論理容量の総バイト数で除算したものである。この値は、そのＳＳＤが、ＯＰとして指定されたメモリに加えて、ホストデータに割り当てられていない「予備領域」である論理容量を使用できるので、実効ＯＰである。
【００２８】
遠隔測定データベース１１６内の各エントリは、そのデータを通知したＳＳＤ１１０またはネームスペースの識別子とタイムスタンプとに関連付けられる。一実施形態では、遠隔測定データベース１１６は、ＳＳＤ１１０の定格寿命の間、典型的には５年間、あるいは無期限に、時系列のデータを格納する。遠隔測定データベース１１６に格納される時系列のデータは、複数のＳＳＤ１１０の各々の実際のワークロードと、結果として生じるメディアの疲弊の進度との履歴のレコードを表す。解析エンジン１２０および仮想化器１２２は、この各ＳＳＤ１１０の実際のワークロードデータを使用して、ＳＳＤ１１０のアレイの中でのネームスペースのマッピングと、各ＳＳＤ１１０のオーバープロビジョニング量とを管理する。
【００２９】
図４は、本発明の一実施形態に係る、ソリッドステートストレージドライブアレイにおけるワークロード適応型オーバープロビジョニングのための方法ステップのフローチャートである。ステップ４１０において、解析エンジン１２０は、各データエントリのタイムスタンプと共に、各ネームスペースおよび各ＳＳＤ１１０の遠隔測定データを格納する遠隔測定データベース１１６から、現在のデータを検索する。ステップ４１２において、解析エンジン１２０は各ＳＳＤ１１０の耐用年数を、遠隔測定データベース１１６内の遠隔測定データによって示されるそのＳＳＤの実際のワークロードの履歴に基づいて予測する。１つのＳＳＤ１１０の予測される耐用年数を決定する方法の一実施形態は、図５と共に後述される。
【００３０】
ステップ４１４において、解析エンジン１２０は、ＳＳＤ１１０の予測される耐用年数を、そのＳＳＤの耐用年数の目標と、例えば５年の定格耐用年数と、比較する。予測されるＳＳＤの耐用年数が、予め決められた耐用年数の目標よりも大きい場合、ステップ４１８において、仮想化器１２２は公表されるＳＳＤの論理容量を増加させ、これはＯＰを減少させ、したがってＳＳＤのユーザまたは管理者はより高い価値を得られる。予測されるＳＳＤの耐用年数が耐用年数の目標以下である場合、ステップ４１６において、仮想化器１２２は、その特定のＳＳＤにマッピングされたネームスペースがより低い全体での使用および疲弊率を有するように、１つ以上のネームスペースをネットワーク機器１００内のＳＳＤ１１０間で再マッピングするか、あるいはネットワーク機器１００の管理者に対して、耐用年数の目標を満たすために追加のＯＰが必要であることを通知する。別の実施形態では、予測されるＳＳＤの耐用年数が耐用年数の目標以下である場合、仮想化器１２２は公表されるＳＳＤの論理容量を減少させ、これはＯＰを増加させる。
【００３１】
一実施形態では、遠隔測定データベース１１６は、およそ１時間に１回、あるいはおよそ１日に１回の頻度で更新され、解析エンジン１２０は、およそ１週間に１回、あるいはおよそ２週間毎の頻度で、ＳＳＤ１１０の予測される耐用年数を生成する。ＳＳＤ１１０内のネームスペースにマッピングされたメモリに対する実際のワークロードおよび疲弊を示す、遠隔測定データベース１１６内の遠隔測定データの履歴を用いることによって、解析エンジン１２０は、ＳＳＤの従来の疲弊の指標からの推定よりも、ドライブの耐用年数をより正確に表す、予測される耐用年数を生成できる。
【００３２】
図５は、本発明の一実施形態に係る、ソリッドステートストレージドライブの予測される耐用年数を決定するための方法ステップのフローチャートである。ステップ５１０において、解析エンジン１２０は０に等しい時間インデックス「ｔ」を設定する。時間インデックスは、多数の単位時間を表現する。一実施形態では、単位時間は１時間であり、したがって時間インデックスの値は多数の１時間を表現する。ステップ５１２において、解析エンジン１２０は、予測されるホスト書き込み強度の変数（ＷＩＨ）を更新する。予測されるホスト書き込み強度は、各ホストから、またはそれらのいくつかの集合からＳＳＤ１１０が受け取る書き込みの推定レートを表す値の変数であり、ある期間中のバイト数で表現される。解析エンジン１２０は、遠隔測定データベース１１６に格納されたホスト書き込みデータからホスト書き込みレートの履歴を解析することによって、予測されるホスト書き込み強度を算出する。この算出は、ネームスペース毎に、またはホスト毎に、あるいはネームスペースまたはホストのより粗い集合毎に、行われ得る。一実施形態では、解析エンジン１２０は、ある期間中のホスト書き込み作業における複数の極大を特定し、最大値が発生した時間がどれくらい以前であるかに基づいて、それら値に重み付けする。例えば、最大のホスト書き込みレートが過去（例えば、２年前）の有意な期間に発生した場合、その値は、最大のホスト書き込みレートが最近（例えば、６時間前に）発生した場合よりも、小さく重み付けされる。ステップ５１４において、解析エンジン１２０は、実効ＯＰ（ＯＰｅｆｆ）とライトアンプリフィケーションファクタ定数（ｋＷＡＦ）とに基づいて、ライトアンプリフィケーションファクタ（ＷＡＦ（ｔｎ））を決定する。一実施形態では、ライトアンプリフィケーションファクタは、与えられた実効ＯＰを用いて、ネームスペースに均一に分布したランダムな書き込みパターンから生じる、理論上の「最悪ケース」のライトアンプリフィケーションファクタに基づきモデル化され、ライトアンプリフィケーションファクタ定数で補正される。ライトアンプリフィケーションファクタ定数は、履歴のメディア書き込みとホスト書き込みとの比率に基づいて経験的に決定されるスカラー値である。一実施形態では、ライトアンプリフィケーションファクタ定数は０から１までの値を有する。
【００３３】
ステップ５１６において、解析エンジン１２０は、予測されるホスト書き込み強度とライトアンプリフィケーションファクタとに基づいて、予測されるプログラム／イレーズサイクル数（ｎＰＥ（ｔｎ＋１））を決定する。予測されるプログラム／イレーズサイクル数は、将来の予め決められた時間に、例えば現在の時間から１時間に、発生するであろうプログラム／イレーズサイクル数の予測を表す値である。一実施形態では、予測されるホスト書き込み強度とライトアンプリフィケーションファクタとの積は、ＳＳＤ１１０の予測される書き込みメディア強度である。解析エンジン１２０は、予測される書き込みメディア強度に、フラッシュメディアの物理特性に由来する定数を掛けて、予測されるプログラム／イレーズサイクル数を生成する。この定数の値は、バイト単位のフラッシュページのサイズと、ブロック内のページの数とによって決まり、プログラムされたすべてのｐａｇｅ＿ｂｙｔｅｓ＊ｐａｇｅｓ＿ｐｅｒ＿ｂｌｏｃｋ（ブロック毎のページ数が乗算された、１ページのバイト数）バイトについては、ブロックの消去が行われなければならない。ステップ５１８において、解析エンジン１２０は、予測されるプログラム／イレーズサイクル数と、現在のロービットエラー率分布と、プログラム／イレーズサイクル数の変化率で割った、観測されたロービットエラー率の変化率とに基づいて、ＳＳＤ１２０内のフラッシュメモリにおける、予測されるロービットエラー率分布を決定する。一実施形態では、ロービットエラー率分布は、ＳＳＤ１１０内のフラッシュメモリの全ページ（またはブロックよりも小さい別の単位）のロービットエラー率のヒストグラムである。この実施形態では、ロービットエラー率が訂正不能な値に達したフラッシュメモリの量をヒストグラムの「尾部」（ｔａｉｌ）が示すので、解析エンジン１２０は、ある期間中にこのヒストグラムの形状がどのように変化するかを予測する。ＳＳＤ１１０内の全てのフラッシュメモリについてロービットエラー率が定数であると仮定する代わりに、ＳＳＤ１１０のフラッシュメモリ全体にわたってロービットエラー率分布を追跡することによって、解析エンジン１２０は、従来のＳＳＤの疲弊指標からの推定よりも、より正確であるＳＳＤ１１０の予測される耐用年数を提供可能である。
【００３４】
ステップ５２０において、解析エンジン１２０は、予測されるプログラム／イレーズサイクル数と、予測されるロービットエラー率分布と、バッドブロックの経験的な定数（ｋＢＢ）とに基づいて、予測されるバッドブロックの数（ｎＢｂａｄ（ｔｎ＋１））を決定する。ステップ５２２において、解析エンジン１２０は、予測されるロービットエラー率分布と予測されるバッドブロックの数とに基づいて、予測される実効ＯＰを決定する。一実施形態では、解析エンジン１２０は、予測されるバッドブロックの数と、予測されるロービットエラー率分布に対処するために必要な追加のエラー訂正とによって消費される物理容量を決定し、その物理容量を現在の実効ＯＰから差し引く。ステップ５２４において、解析エンジン１２０は時間インデックスを１増加させる。例えば、時間インデックスが多数の１時間を表す場合、時間インデックスは１時間増加する。
【００３５】
ステップ５２６において、予測されるロービットエラー率分布に関連付けられた性能レベルを検索または算出し、ここでロービットエラー率は典型的には性能に反比例する。ロービットエラー率の増加は、ＳＳＤ内のエラー訂正作業の増加を引き起こし、これは、フラッシュメモリのリードリトライと、ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｏｄｅ）およびＱＳＢＣ（Ｑｕａｄｒｕｐｌｅ  Ｓｗｉｎｇ−Ｂｙ  Ｃｏｄｅ）のような、よりエラー訂正の計算強度がある符号化方式とを用いることを含む、より多くのエラー数に対処可能である強化されたエラー訂正方法の使用に導き得る。強化された方法は一般に、特に復号の間の、より大きなレイテンシを招き、そしてこれは結果として、増加したリードレイテンシとより低いデータスループットとをもたらす。与えられたロービットエラー率に対する性能レベルは、例えば（高温で使用するような促進された経年変化でシミュレーションされ得る）ＳＳＤの期待される寿命期間において様々なワークロードにさらされるＳＳＤ上の計測データを収集することによって、経験的に決定され得、あるいは使用中のエラー訂正方式の既知のレイテンシに基づいて算出され得る。一実施形態では、解析エンジン１２０はルックアップテーブルを使用して、予測されるロービットエラー率分布に関連付けられた性能レベルを特定する。ステップ５２８において、解析エンジン１２０は、予測されるロービットエラー率分布に関連付けられた性能レベルが許容できるか否かを決定する。一実施形態では、解析エンジン１２０は、その性能レベルが予め決められた閾値を超えるか否かを判定する。予測される性能レベルが許容できる場合、この方法はステップ５１２に戻る。予測される性能レベルが許容できない場合、すなわち、その性能レベルが、保障された性能をＳＳＤがもはや満たさないことを示す場合、ステップ５３０において、ＳＳＤの現在の年数が加算されたｔの値が、ＳＳＤの予測される耐用年数と定義される。
【００３６】
上述したように、図５の方法は、１時間のようなある時間間隔において、ＳＳＤが経験する実際の使用および疲弊に基づく、ＳＳＤの性能を表す複数の属性に関して、一連の予測される値を生成する。ＳＳＤの予測される性能レベルが許容できなくなるとき、その予測に関連付けられた時間が、予測されるＳＳＤの耐用年数を与える。予測される耐用年数は、１つのＳＳＤの購入によって実現される価値を次々に最大化するために、ある期間中に動的に調整されるＳＳＤのオーバープロビジョニング量を考慮する。
【００３７】
本発明の様々な態様に係る他のオブジェクト、利点、および実施形態は、本発明の当業者に明らかであり、本説明および付属する図面の範囲内である。例えば、限定しないが、本発明と矛盾することなく、構造的なまたは機能的な要素は再編成され得、あるいは方法ステップは並べ替えられる。同様に、マシンは、単一のインスタンスまたは複数のマシンを含み得、このような複数性は、示された機能を連携して提供する複数のタイプのマシンを包含する。様々な実施形態に記載されたマシンのタイプは、本発明の態様の実施形態で使用され得る可能性があるタイプのマシンを限定することが意味されるものではなく、同様のタスクを達成し得る他のマシンも同様に実装され得る。同様に、本発明に係る原理と、それを具体化する方法およびシステムとは、特にここに詳細に記載されていないとしても、それでもなお本発明の範囲内にあるであろう他の例に適用されることができる。
【図１Ａ】
2019169141.tif 000003
【図１Ｂ】
2019169141.tif 000004
【図２】
2019169141.tif 000005
【図３】
2019169141.tif 000006
【図４】
2019169141.tif 000007
【図５】
2019169141.tif 000008
【外国語明細書】
2019169141000001.pdf