(57)【要約】      （修正有）【課題】フラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムを提供する。【解決手段】フラッシュメモリ媒体の信頼性の評価方法は、それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップ、各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率を取得するステップ、及び各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算するステップからなる。【選択図】図３６
2010244521.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップと、
各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率を取得するステップと、
各フラッシュメモリ媒体グループ内の各ディスクに対する前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命を計算するステップと、
を含むことを特徴とするフラッシュメモリ媒体の信頼性の評価方法。
【請求項２】
ディスクに対する前記フラッシュメモリ残存寿命を測定するステップは、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップ、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するステップの一方からなる
ことを特徴とする請求項１に記載の方法。
【請求項３】
ディスクに対する前記フラッシュメモリ残存寿命を測定するステップは、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するステップからなり、
前記計算するステップはディスクのＲＡＩＤグループの前記残存寿命Ｅを、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
λｉはディスクｉの残存寿命である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
式から計算するステップを含む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のＲＡＩＤグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
前記計算するステップは各シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖを、
2010244521.tif 000005
ここで、
ｊは前記シン・プロビジョニング・プール内のディスクのＲＡＩＤグループのＩＤである、
ＥｊはＥ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄを使用したＲＡＩＤグループｊの残存寿命である、
Ｍは前記シン・プロビジョニング・プール内のＲＡＩＤグループ数である、
式から計算するステップを含む
ことを特徴とする請求項３に記載の方法。
【請求項５】
ディスクに対する前記フラッシュメモリ残存寿命を前記測定するステップは、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップからなり、
前記計算するステップはディスクのＲＡＩＤグループの前記残存寿命Ｅを、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
λｉはディスクｉの残存寿命であり、λｉ≡Ｌｉ−Ｉｉである、
Ｌｉはディスクｉへの書き込み回数の理論限界である、
Ｉｉはシーケンシャルな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性を計算するステップで使用されるディスクｉに対する前記シーケンシャル書き込み動作数、又はランダムな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性を計算するステップで使用されるディスクｉに対する前記ランダム書き込み動作数、の一方である、
式から計算するステップを含む
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
前記計算するステップは前記シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖを、
2010244521.tif 000006
ここで、
ｉはディスクＩＤである、
λｉはディスクｉの残存寿命である、
Ｐは前記シン・プロビジョニング・プール内のディスク数である、
式から計算するステップを含む
ことを特徴とする請求項１に記載の方法。
【請求項７】
それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクと、
データと一つ以上のモジュールを保存するメモリと、
一つ以上の前記モジュールを実行して、
前記複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定し、
各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率を取得し、
各フラッシュメモリ媒体グループ内の各ディスクに対して前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命を計算する、
プロセッサを備える、
ことを特徴とするフラッシュメモリ媒体の信頼性評価システム。
【請求項８】
ディスクに対する前記フラッシュメモリ残存寿命は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるか、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するか、いずれか一方により測定される
ことを特徴とする請求項７に記載のシステム。
【請求項９】
ディスクに対する前記フラッシュメモリ残存寿命は、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得することにより測定され、
ディスクのＲＡＩＤグループの前記残存寿命Ｅは、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
λｉはディスクｉの残存寿命である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
式から計算される、
ことを特徴とする請求項７に記載のシステム。
【請求項１０】
前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のＲＡＩＤグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
各シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖは、
2010244521.tif 000007
ここで、
ｊは前記シン・プロビジョニング・プール内のディスクのＲＡＩＤグループのＩＤである、
ＥｊはＥ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄを使用したＲＡＩＤグループｊの残存寿命である、
Ｍは前記シン・プロビジョニング・プール内のＲＡＩＤグループ数である、
式から計算される、
ことを特徴とする請求項９に記載のシステム。
【請求項１１】
ディスクに対する前記フラッシュメモリ残存寿命は、前記複数のフラッシュメモリ媒体ディスクの各ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えることで測定され、
ディスクのＲＡＩＤグループの前記残存寿命Ｅは、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
λｉはディスクｉの残存寿命であり、λｉ≡Ｌｉ−Ｉｉである、
Ｌｉはディスクｉへの書き込み回数の理論限界である、
Ｉｉはシーケンシャルな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性の計算で使用されるディスクｉに対する前記シーケンシャル書き込み動作数か、又はランダムな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性の計算で使用されるディスクｉに対する前記ランダム書き込み動作数、の一方である、
式から計算される、
ことを特徴とする請求項７に記載のシステム。
【請求項１２】
前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
前記シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖは、
2010244521.tif 000008
ここで、
ｉはディスクＩＤである、
λｉはディスクｉの残存寿命である、
Ｐは前記シン・プロビジョニング・プール内のディスク数である、
式から計算される、
ことを特徴とする請求項７に記載のシステム。
【請求項１３】
それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命をデータプロセッサに測定させる命令と、
各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率をデータプロセッサに取得させる命令と、
各フラッシュメモリ媒体グループ内の各ディスクに対する前記測定したフラッシュメモリ残存寿命、該各フラッシュメモリ媒体グループの前記構成、及び該各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの前記比率に基づいて該各フラッシュメモリ媒体グループの残存寿命をデータプロセッサに計算させる命令、とからなる、
ことを特徴とするデータプロセッサを制御するための複数の命令をフラッシュメモリ媒体の信頼性を評価するために保存するコンピュータ読み取り可能ストレージ媒体。
【請求項１４】
ディスクに対する前記フラッシュメモリ残存寿命を前記データプロセッサに測定させる前記命令は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるか、又は該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得するか、いずれか一方を前記データプロセッサに遂行させる命令からなることを特徴とする請求項１３に記載のコンピュータ読み取り可能ストレージ媒体。
【請求項１５】
ディスクに対する前記フラッシュメモリ残存寿命は、該ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタから前記フラッシュメモリ残存寿命を取得することで測定され、
前記データプロセッサに計算させる前記命令は、ディスクのＲＡＩＤグループの前記残存寿命Ｅを、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
λｉはディスクｉの残存寿命である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
式を前記データプロセッサに計算させる命令を含む、
ことを特徴とする請求項１３に記載のコンピュータ読み取り可能ストレージ媒体。
【請求項１６】
前記複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のＲＡＩＤグループを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
前記データプロセッサに計算させる前記命令は、各シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖを、
2010244521.tif 000009
ここで、
ｊは前記シン・プロビジョニング・プール内のディスクのＲＡＩＤグループのＩＤである、
ＥｊはＥ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄを使用したＲＡＩＤグループｊの残存寿命である、
Ｍは前記シン・プロビジョニング・プール内のＲＡＩＤグループ数である、
式を前記データプロセッサに計算させる命令からなる、
ことを特徴とする請求項１５に記載のコンピュータ読み取り可能ストレージ媒体。
【請求項１７】
ディスクに対する前記フラッシュメモリ残存寿命は、該ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えることで測定され、
前記データプロセッサに計算させる前記命令は、ディスクのＲＡＩＤグループの前記残存寿命Ｅを、
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクの前記ＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／Ｏタイプでの前記ＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
Ｎは前記ＲＡＩＤグループ内のディスク数である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
λｉはディスクｉの残存寿命であり、λｉ≡Ｌｉ−Ｉｉである、
Ｌｉはディスクｉへの書き込み回数の理論限界である、
Ｉｉはシーケンシャルな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性の計算で使用されるディスクｉに対する前記シーケンシャル書き込み動作数か、又はランダムな書き込みＩ／Ｏタイプの前記書き込みＩ／Ｏ耐久性の計算で使用されるディスクｉに対する前記ランダム書き込み動作数、の一方である、
式を前記データプロセッサに計算させる命令からなる、
ことを特徴とする請求項１３に記載のコンピュータ読み取り可能ストレージ媒体。
【請求項１８】
前記複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供され、
前記データプロセッサに計算させる前記命令は、前記シン・プロビジョニング・プールの前記残存寿命ＥＴｈｉｎ  Ｐｒｏｖを、
2010244521.tif 000010
ここで、
ｉはディスクＩＤである、
λｉはディスクｉの残存寿命である、
Ｐは前記シン・プロビジョニング・プール内のディスク数である、
式を前記データプロセッサに計算させる命令からなる、
ことを特徴とする請求項１３に記載のコンピュータ読み取り可能ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は一般的にフラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムに関連する。
【背景技術】
【０００２】
０００２    フラッシュメモリ媒体について、寿命の評価指標の例には、ＭＴＢＦ（平均故障間隔時間）、ＭＴＴＦ（平均故障時間）、及びＬＤＥ（長期データ耐久性）が含まれる。ＭＴＢＦはＨＤＤの可用性／信頼性の一般的な評価指標であり、統計的ＨＤＤ寿命を表わす。ＭＴＴＦはＲＡＩＤグループの可用性の一般的な評価指標であり、統計的ＲＡＩＤグループ寿命を表わす。ＬＤＥは媒体が許容される書き込み動作の量を表わす評価指標である。高可用性／信頼性へのストレージ制御の例としてＲＡＩＤ（独立したディスク群の冗長アレイ）がある。ＲＡＩＤ１０は４つ以上のディスクを持ち、二重にデータを保存する。ＲＡＩＤ５は３つ以上のディスクを持ち、データとパリティデータを保存する。パリティデータはデータから生成される。この制御の最適化方法は米国特許Ｎｏ．５，６８２，３９６号に記載されている。ＲＡＩＤ６は４つ以上のディスクを持ち、データとダブルパリティデータを保存する。ダブルパリティデータはデータから生成される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許５，６８２，３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
０００３    ＨＤＤ（ハードディスクドライブ）媒体は機械ユニット（ヘッド、円板、モーター）を持つので、一般にＨＤＤの寿命はその走行時間によって支配される。しかしながら、フラッシュメモリ媒体は消去動作が起こるとデータをリセットするために高電圧を印加するので、フラッシュメモリ媒体の寿命は書き込み回数（消去動作回数）によって支配される。この消去動作は損傷を引き起こす可能性がある。その一方で、特に企業環境に於いて、その高いトランザクションやスループット性能のためにストレージシステム用フラッシュメモリ媒体の使用が求められている。これらの環境ではフラッシュメモリ媒体の使用が故障により停止されないことが重要である。
【０００５】
０００４    本発明の典型的な実施例はフラッシュメモリ媒体の可用性と信頼性の管理のための方法とシステムを提供し、より具体的には、消去動作により引き起こされるフラッシュメモリ故障を予測し、このような故障に対して保護する方法を提供する。
【課題を解決するための手段】
【０００６】
一つの実施例では、ストレージシステムはフラッシュメモリ媒体グループの構成（ＲＡＩＤグループ又はシン・プロビジョニング・プール）を管理し、消去（書き込み）動作回数を数え又はフラッシュメモリ媒体から情報を取得することでフラッシュメモリ媒体の各ディスクの残存寿命を測定し、それぞれの書き込みＩ／Ｏタイプ（シーケンシャル／ランダム）の比率を測定し、フラッシュメモリ媒体の残存寿命、フラッシュメモリ媒体グループの構成（冗長特性）、及び書き込みＩ／Ｏタイプの比率を使用してフラッシュメモリ媒体グループそれぞれの残存寿命を計算し、計算したフラッシュメモリ媒体グループの残存寿命を報告する。フラッシュメモリ媒体装置を便宜上ディスクと呼ぶ。「ディスク」という語はフラッシュメモリ媒体装置の物理構造を限定するようには意図しておらず、任意のフラッシュメモリ構成を包含する。
【０００７】
０００５    本発明の一つの態様によれば、フラッシュメモリ媒体の信頼性評価方法は、それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定するステップと、各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率を取得するステップと、各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算するステップからなる。
【０００８】
０００６    いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップ、又はディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタからフラッシュメモリ残存寿命を取得するステップ、の一方からなる。
【０００９】
０００７    いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスク内のシーケンシャル書き込みカウンタとランダム書き込みカウンタからフラッシュメモリ残存寿命を取得するステップからなる。計算するステップは以下によりディスクのＲＡＩＤグループの残存寿命Ｅを計算するステップからなる。
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクのＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐのＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／ＯタイプでのＲＡＩＤレベルｐのＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
ＮはＲＡＩＤグループ内のディスク数である、
λｉはディスクｉの残存寿命である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である。
【００１０】
０００８    特定の実施例では、複数のフラッシュメモリ媒体ディスクは、それぞれがディスクの複数のＲＡＩＤグループを持つ一つ以上のシン・プロビジョニング・プール内に提供される。計算するステップは以下のようにして各シン・プロビジョニング・プールの残存寿命ＥＴｈｉｎ  Ｐｒｏｖを計算するステップからなる。
2010244521.tif 000003
ここで、
ｊはシン・プロビジョニング・プール内のディスクのＲＡＩＤグループのＩＤである、
ＥｊはＥ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄを使用したＲＡＩＤグループｊの残存寿命である、
Ｍはシン・プロビジョニング・プール内のＲＡＩＤグループ数である。
【００１１】
０００９    いくつかの実施例では、ディスクに対するフラッシュメモリ残存寿命を測定するステップは、ディスクへのシーケンシャル書き込み動作数とランダム書き込み動作数を数えるステップからなる。計算は以下のようにしてディスクのＲＡＩＤグループの残存寿命Ｅを計算するステップからなる。
Ｅ＝ρＥｐ／Ｓｅｑ＋（１−ρ）Ｅｐ／Ｒｎｄ
ここで、
ＥＲＡＩＤ１０／Ｓｅｑ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ１０／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｓｅｑ＝（Ｎ−１）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ５／Ｒｎｄ＝（Ｎ／２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｓｅｑ＝（Ｎ−２）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ＥＲＡＩＤ６／Ｒｎｄ＝（Ｎ／３）ｍｉｎ（λｉ＝〔０，Ｎ−１〕）、
ｐはディスクのＲＡＩＤグループのＲＡＩＤレベルである、
Ｓｅｑはシーケンシャルな書き込みＩ／Ｏタイプである、
Ｒｎｄはランダムな書き込みＩ／Ｏタイプである、
Ｅｐ／Ｓｅｑはシーケンシャルな書き込みＩ／ＯタイプでのＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
Ｅｐ／Ｒｎｄはランダムな書き込みＩ／ＯタイプでのＲＡＩＤグループの書き込みＩ／Ｏ耐久性である、
ｉはディスクＩＤであり、０≦ｉ≦Ｎ−１の整数である、
ＮはＲＡＩＤグループ内のディスク数である、
ρは書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率で、０≦ρ≦１である、
λｉはディスクｉの残存寿命であり、λｉ≡Ｌｉ−Ｉｉである、
Ｌｉはディスクｉへの書き込み回数の理論限界である、
Ｉｉはシーケンシャルな書き込みＩ／Ｏタイプの書き込みＩ／Ｏ耐久性を計算するステップで使用されるディスクｉに対するシーケンシャル書き込み動作数、又はランダムな書き込みＩ／Ｏタイプの書き込みＩ／Ｏ耐久性を計算するステップで使用されるディスクｉに対するランダム書き込み動作数、の一方である。
【００１２】
００１０    いくつかの実施例では、複数のフラッシュメモリ媒体ディスクは、それぞれが複数のディスクを持つ一つ以上のシン・プロビジョニング・プール内に提供される。計算するステップは以下のようにしてシン・プロビジョニング・プールの残存寿命ＥＴｈｉｎ  Ｐｒｏｖを計算するステップからなる。
2010244521.tif 000004
ここで、
ｉはディスクＩＤである、
λｉはディスクｉの残存寿命である、
Ｐはシン・プロビジョニング・プール内のディスク数である。
【００１３】
００１１    本発明の別な態様によれば、フラッシュメモリ媒体の信頼性評価システムは、それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスク、データと一つ以上のモジュールを保存するメモリ、複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命を測定し、各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率を取得し、各フラッシュメモリ媒体グループ内の各ディスクに対して測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命を計算する、ために一つ以上のモジュールを実行するプロセッサを備える。
【００１４】
００１２    本発明の別な態様は、フラッシュメモリ媒体の信頼性を評価するためにデータプロセッサを制御する複数の命令を保存するコンピュータ読み取り可能ストレージ媒体に向けられる。複数の命令は、それぞれがＲＡＩＤグループ又はシン・プロビジョニング・プールの一方である構成を持つ一つ以上のフラッシュメモリ媒体グループ内に提供される複数のフラッシュメモリ媒体ディスクの各ディスクに対するフラッシュメモリ残存寿命をデータプロセッサに測定させる命令と、各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率をデータプロセッサに取得させる命令と、各フラッシュメモリ媒体グループ内の各ディスクに対する測定したフラッシュメモリ残存寿命、各フラッシュメモリ媒体グループの構成、及び各フラッシュメモリ媒体グループに対する書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率に基づいて各フラッシュメモリ媒体グループの残存寿命をデータプロセッサに計算させる命令、とからなる。
【００１５】
００１３    本発明のこれら及びその他の特徴と利点は、以下の特定な実施例の詳細な説明に照らすことにより、この技術分野に於ける通常の知識を有する者（当業者）には明白になるであろう。
【図面の簡単な説明】
【００１６】
【図１】００１４    図１は本発明の方法と装置が適用可能なコンピュータシステムのハードウェア構成の例を示す。
【図２】００１５    図２は本発明の第１の実施例によるストレージサブシステム内のメモリの例を示す。
【図３】００１６    図３は第１の実施例によるＲＡＩＤグループ管理テーブルの例を示す。
【図４】００１７    図４は第１の実施例による仮想ボリューム管理テーブルの例を示す。
【図５】００１８    図５は第１の実施例によるディスク管理テーブルの例を示す。
【図６】００１９    図６はキャッシュ管理テーブルの例を示す。
【図７】００２０    図７は仮想ボリュームとディスクの関係を図示して典型的な論理構造を示す。
【図８】００２１    図８はキャッシュ管理テーブルに対するテーブル参照構造の例を示す。
【図９】００２２    図９は書き込みＩ／Ｏ制御のプロセスフローダイアグラムの例を示す。
【図１０】００２３    図１０は読み出しＩ／Ｏ制御のプロセスフローダイアグラムの例を示す。
【図１１】００２４    図１１はステージング制御のプロセスフローダイアグラムの例である。
【図１２】００２５    図１２は第１の実施例によるデステージング制御のプロセスフローダイアグラムの例である。
【図１３】００２６    図１３はフラッシュ制御のプロセスフローダイアグラムの例である。
【図１４】００２７    図１４はキャッシュ制御のプロセスフローダイアグラムの例である。
【図１５】００２８    図１５は信頼性管理制御のプロセスフローダイアグラムの例である。
【図１６】００２９    図１６はＲＡＩＤ１又は１０のボリュームへのシーケンシャル又はランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。
【図１７】００３０    図１７はＲＡＩＤ５のボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。
【図１８】００３１    図１８はＲＡＩＤ６のボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。
【図１９】００３２    図１９はＲＡＩＤ６のボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。
【図２０】００３３    図２０は第１の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。
【図２１】００３４    図２１はディスプレイ上の出力イメージの例を示す。
【図２２】００３５    図２２は第１の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。
【図２３】００３６    図２３は本発明の第２の実施例によるディスク管理テーブルの例を示す。
【図２４】００３７    図２４は第２の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。
【図２５】００３８    図２５は第２の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。
【図２６】００３９    図２６は第２の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。
【図２７】００４０    図２７は本発明の第３の実施例によるストレージサブシステム内のメモリの例を示す。
【図２８】００４１    図２８は第３の実施例によるＲＡＩＤグループ管理テーブルの例を示す。
【図２９】００４２    図２９は第３の実施例による仮想ボリューム管理テーブルの例を示す。
【図３０】００４３    図３０は仮想ボリュームページ管理テーブルの例を示す。
【図３１】００４４    図３１は容量プールチャンク管理テーブルの例を示す。
【図３２】００４５    図３２は容量プールページ管理テーブルの例を示す。
【図３３】００４６    図３３は第３の実施例による仮想ボリュームとそのテーブル構造の例を示す。
【図３４】００４７    図３４は第３の実施例による容量プールに向かうテーブル参照構造の例を示す。
【図３５】００４８    図３５は第３の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。
【図３６】図３６は第３の実施例によるデステージング制御のプロセスフローダイアグラムの例を示す。
【図３７】００４９    図３７はページ移行制御のプロセスフローダイアグラムの例を示す。
【図３８】００５０    図３８は第３の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。
【図３９】図３９は本発明の第４の実施例によるストレージサブシステム内のメモリの例を示す。
【図４０】００５２    図４０は第４の実施例によるディスク管理テーブルの例を示す。
【図４１】００５３    図４１は第４の実施例による仮想ボリューム管理テーブルの例を示す。
【図４２】００５４    図４２は第４の実施例による仮想ボリュームページ管理テーブルの例を示す。
【図４３】００５５    図４３は第４の実施例による仮想ボリュームとそのテーブル構造の例を示す。
【図４４】００５６    図４４は第４の実施例による容量プールに向かうテーブル参照構造の例を示す。
【図４５】００５７    図４５は第４の実施例によるステップの信頼性の計算式の例を示す。
【発明を実施するための形態】
【００１７】
００５８    以下の本発明の詳細な説明に於いて、付随する図面が参照され、この図面は開示内容の一部を構成し、図中では本発明が実施できる典型的な実施例が、限定するためでなく説明の目的で示されている。図中では、複数の図を通して類似の番号は実質的に同様なコンポーネントを表わしている。更に、詳細な説明は、以下に記述され、図で説明されるように多様な典型的な実施例を提供するが、本発明はここに記述され図示される実施例に限定されるものでなく、当業者には知られているか、又は知得されるであろう他の実施例に拡張可能であることはいうまでもない。明細書中での「一つの実施例」、「本実施例」、又は「これらの実施例」という言及は、その実施例に関連して記述される特定の特徴、構造、又は特性が本発明の少なくとも一つの実施例に含まれることを意味し、これらの語句が明細書中の種々の箇所に出現したとしても必ずしもすべてが同じ実施例を参照しているわけではない。更に、以下の詳細な説明に於いて、数多くの特定な詳細が、本発明の十分な理解を可能にするために記述される。しかしながら本発明を実施するのにこれら特定の詳細すべてが必要とされるわけでないことは、当業者には明白であろう。他の状況では、本発明を不必要に分かりにくくしないように、公知の構造、材料、回路、プロセス及びインタフェースは詳細には記述されておらず、及び／又はブロックダイアグラムの形で説明されることもあり得る。
【００１８】
００５９    更に、以下の詳細な説明のいくつかの部分はコンピュータ内の動作のアルゴリズムと記号表現の用語で示される。これらのアルゴリズムの記述と記号表現はデータ処理技術分野の当業者が他の当業者に革新的技術の本質を最も効果的に伝えるために使用する手段である。アルゴリズムは望ましい最終状態或いは結果に導く一連の定義されたステップである。本発明では、実行されるステップは具体的な結果を達成するための具体的な量の物理的な操作を必要とする。通常、必ずしもそうとは限らないが、これらの量は保存され、転送され、組み合わされ、比較され、及びそれ以外の方法で操作されることができる、電気的又は磁気的信号或いは命令の形態をとる。主として一般的に使用されるという理由で、これらの信号をビット、値、要素、記号、文字、項、数値、命令、等で呼ぶのが折に触れて便利なことが分かっている。しかしながら、これら及び同様な用語はすべて適切な物理量と関連付けられるべきであり、これらの量に適用される単に便宜的なラベルである。後続する議論から明白なように、別な方法で特別に述べられない限り、説明を通じて「処理する」、「コンピュータで計算する」、「計算する」、「決定する」、「表示する」、等のような用語を使用した議論は、コンピュータシステムのレジスタやメモリ内の物理量（電子的な量）として表わされるデータを操作して他の同様にコンピュータシステムのメモリ又はレジスタ或いは他の情報ストレージ、転送又はディスプレイデバイス内の物理量として表わされるデータに変換する、コンピュータシステム又は他の情報処理デバイスの動作やプロセスを含むことができるのは当然である。
【００１９】
００６０    本発明は更に、ここで述べた動作を遂行する装置にも関連する。この装置は要求される目的のために特別に構築されても良いし、或いは一つ以上のコンピュータプログラムにより選択的に起動され或いは再構成される一つ以上の汎用コンピュータを含んでいても良い。そのようなコンピュータプログラムは光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、半導体デバイスとドライブ、或いは電子的情報を保存するのに適した任意のその他のタイプの媒体のような、ただしこれらに限定されない、コンピュータ読み取り可能ストレージ媒体に保存できる。ここで提供されるアルゴリズムとディスプレイはいかなる特定のコンピュータ又はその他の装置にも本質的に関係するわけでない。種々の汎用システムが、ここで述べた技術に従ってプログラムやモジュールと共に使用でき、或いは望まれる方法ステップを遂行するためにより専用の装置を構築するのが便利なことが分かることもあり得る。更に、本発明はいかなる特定のプログラム言語にも言及しては記述されていない。当然のことながら、多様なプログラミング言語がここで記述される本発明の教示内容を実施するために使用できる。プログラミング言語の命令は一つ以上の処理デバイス、例えばＣＰＵ（中央処理装置）、プロセッサ、又はコントローラ、により実行できる。
【００２０】
００６１    本発明の典型的な実施例は、以下により詳細に記述されるように、消去動作によって引き起こされるフラッシュメモリ故障を予測し、そのような故障に対して保護するための装置、方法及びコンピュータプログラムを提供する。
【００２１】
００６２    第１の実施例
【００２２】
００６３    図１は本発明の方法と装置が適用可能なコンピュータシステムのハードウェア構成の例を示す。ストレージサブシステム１００は、ＣＰＵ１１１、メモリ１１２、ストレージインタフェース１１３、ローカルネットワークインタフェース１１４、及びディスクインタフェース１１５ａ−１１５ｄを含むストレージコントローラ１１０を持つ。ＣＰＵ１１１はストレージサブシステム１００を制御し、メモリ１１２からプログラムとテーブルを読み出す。メモリ１１２はプログラムとテーブルを保存する。ストレージインタフェース１１３はストレージネットワーク２００を介してホストコンピュータ３００と接続する。ローカルネットワークインタフェース１１４はストレージ管理ターミナル４００と接続する。ディスクインタフェース１１５ａ−１１５ｄはディスク装置１２０内に格納される複数のディスク１２１ａ−１２１ｄと接続する。ディスク１２１はデータを保存するフラッシュメモリを含む。ストレージネットワーク２００はストレージシステム１００とホストコンピュータ３００を接続する。ホストコンピュータ３００はストレージネットワーク２００を介してストレージサブシステム１００にＩ／Ｏ要求を送信し、ストレージネットワーク２００を介してストレージシステム１００との間でデータを送受信する。ストレージ管理ターミナル４００はストレージサブシステム１００の可用性／信頼性情報を示す。ターミナル４００はメモリ４１２内に保存されるプログラムとテーブルを読み出すＣＰＵ４１１を含む。ローカルネットワークインタフェース４１４はストレージサブシステム１００と接続する。ディスプレイ４１９はストレージサブシステム１００の可用性／信頼性情報を表示する。
【００２３】
００６４    ハードウェア
【００２４】
００６５    図２は本発明の第１の実施例によるストレージサブシステム１００内のメモリ１１２の例を示す。メモリ１１２はディスク１２１とそれらのグループの物理構造管理のためのＲＡＩＤグループ管理テーブル１１２−１１−１、ボリューム構成管理のための仮想ボリューム管理テーブル１１２−１１−２、及びディスク管理テーブル１１２−１１−３を持つボリューム管理テーブル１１２−１１を含む。メモリ１１２は更に、キャッシュデータ領域１１２−３０の管理とＬＲＵ／ＭＲＵ（最長時間未使用／最も最近使用）管理のためのキャッシュ管理テーブル１１２−１４を含む。ボリュームＩ／Ｏ制御１１２−２１は、書き込みＩ／Ｏ要求によって走行し、書き込みデータを受信し、それをチャネルインタフェース１１３を介してキャッシュデータ領域１１２−３０に保存する書き込みＩ／Ｏ制御１１２−２１−１、及び読み出しＩ／Ｏ要求によって走行し、チャネルインタフェース１１３を介してキャッシュデータ領域１１２−３０から読み出したデータを送信する読み出しＩ／Ｏ制御１１２−２１−２を含む。物理ディスク制御１１２−２２はディスク１２１からキャッシュデータ領域にデータを転送するステージング制御１１２−２２−１、及びキャッシュデータ領域１１２−３０からディスク１２１にデータを転送するデステージング制御１１２−２２−２を含む。フラッシュ制御１１２−２３はキャッシュデータ領域１１２−３０内のダーティーデータをディスク１２１に定期的にフラッシュする。キャッシュ制御１１２−２４はキャッシュデータ領域１１２−３０内でキャッシュされたデータを検出し、キャッシュデータ領域１１２−３０内の新たなキャッシュ領域に割り当てる。信頼性管理制御１１２−２９はＲＡＩＤグループ又はシン・プロビジョニング・プールのそれぞれに関しその構成とディスク情報により信頼性を計算し、ストレージ管理ターミナル４００に信頼性情報を報告する。カーネル１１２−４０は走行プログラムのスケジュールを制御する。キャッシュデータ領域１１２−３０は読み出し及び書き込みキャッシュデータを保存し、複数のキャッシュスロットに分離されている。
【００２５】
００６６    図３は第１の実施例によるＲＡＩＤグループ管理テーブル１１２−１１−１の例を示す。このテーブルはＲＡＩＤグループのＩＤを表わすＲＡＩＤグループ番号１１２−１１−１−１、及びＲＡＩＤグループの構造を表わすＲＡＩＤレベル１１２−１１−１−２をリストアップする。「Ｎ（＝１０、５、６等）」は「ＲＡＩＤレベルがＮ」であることを意味する。「該当なし」はＲＡＩＤグループが存在しないことを意味する。テーブルは更にＲＡＩＤグループに属するディスク１２１のＩＤリストを表わすディスク番号１１２−１１−１−３、及び冗長領域を除くＲＡＩＤグループの全容量を表わすＲＡＩＤグループ容量１１２−１１−１−４をリストアップする。
【００２６】
００６７    図４は第１の実施例による仮想ボリューム管理テーブル１１２−１１−２の例を示す。このテーブルはボリュームＩＤを表わすボリューム番号１１２−１１−２−１、及びボリュームの容量を表わすボリューム容量１１２−１１−２−２をリストアップする。「該当なし」はボリュームが存在しないことを意味する。このテーブルは更にボリュームが現在使用するＲＡＩＤグループＩＤを表わす使用中ＲＡＩＤグループ番号１１２−１１−２−３、ボリュームがＲＡＩＤグループ内で使用するトップアドレスを表わすトップアドレス番号１１２−１１−２−４、ボリュームへのシーケンシャルな書き込みＩ／Ｏのカウンタを表わすシーケンシャル書き込みカウンタ１１２−１１−２−６、及びボリュームへのランダムな書き込みＩ／Ｏのカウンタを表わすランダム書き込みカウンタ１１２−１１−２−７をリストアップする。
【００２７】
００６８    図５は第１の実施例によるディスク管理テーブル１１２−１１−３の例を示す。このテーブルはディスクのＩＤを表わすディスク番号１１２−１１−３−１、及びディスクの容量を表わすディスク容量１１２−１１−３−２をリストアップする。
【００２８】
００６９    図６はキャッシュ管理テーブル１１２−１４の例を示す。このテーブルはキャッシュデータ領域１１２−３０内のキャッシュスロットのＩＤを表わすキャッシュスロット番号（インデックス）１１２−１４−１、キャッシュスロットが属する仮想ボリューム１４１のＩＤを表わすボリューム番号１１２−１４−２、キャッシュスロットに関する仮想ボリュームアドレス（ＬＢＡ、論理ブロックアドレス）１１２−１４−３、及びキューを管理するための次のキャッシュスロット番号を表わす次のスロットポインタ１１２−１４−４をリストアップする。「ヌル」はキューの終わりを意味する。テーブルは更にキャッシュスロットのキューの種類を現すキューの種類情報１１２−１４−５をリストアップする。「フリー」は未使用のキャッシュスロットを持つキューを意味する。「クリーン」はディスクスロットと同じデータを保存するキャッシュスロットを持つキューを意味する。「ダーティー」はディスクスロットと異なるデータを保存するキャッシュスロットを持つキューを意味し、それ故ストレージコントローラ１１０は将来ディスクスロットにキャッシュスロットデータをフラッシュする必要がある。このテーブル内のキューインデックスポインタ１１２−１４−６はキャッシュスロットキューのインデックスを表わす。
【００２９】
００７０    論理構造
【００３０】
００７１    図７は仮想ボリューム１４１とディスク１２１の関係を図示して典型的な論理構造を示す。矢印付きの実線はそれぞれ計算によるオブジェクトを指す。仮想ボリュームのスロット１４１−３に関し、仮想ボリューム１４１は複数の仮想ボリュームスロット１４１−３に分割され、各仮想ボリュームスロット１４１−３はディスクスロット１２１−３に関連する。ディスクスロット１２１−３に関し、各ディスク１２１は複数のディスクスロット１２１−３に分割され、各ディスクスロット１２１−３はパリティデータ領域を除いて仮想ボリュームスロット１４１−３に関連する。
【００３１】
００７２    図８はキャッシュ管理テーブル１１２−１４に対するテーブル参照構造の例を示す。矢印付きのラインには実線と破線がある。破線はポインタによるオブジェクトを指す。実線は計算によるオブジェクトを指す。キャッシュデータ領域１１２−３０は複数のキャッシュスロット１１２−３０−１に分割される。キャッシュスロット１１２−３０−１のサイズは容量プールストライプ１２１−３のサイズ及び仮想ボリュームのスロット１４１−３のサイズに等しい。キャッシュ管理テーブル１１２−１８とキャッシュスロット１１２−３０−１は一対一の関係にある。キャッシュ管理テーブル１１２−１８は、仮想ボリュームのスロット１４１−３を参照する時に、ＲＡＩＤグループ管理テーブル１１２−１１−１を参照することにより容量プールストライプ１２１−３を決定することができる。
【００３２】
００７３    プログラムフロー
【００３３】
００７４    図９はステップ１１２−２１−１−１に始まる、書き込みＩ／Ｏ制御１１２−２１−１のプロセスフローダイアグラムの例を示す。ステップ１１２−２１−１−２で、プログラムはキャッシュスロット１１２−３０−１を探すためにキャッシュ制御１１２−２４をコールする。ステップ１１２−２１−１−３で、プログラムはホストコンピュータ３００から書き込みＩ／Ｏデータを受信し前述のキャッシュスロット１１２−３０−１にデータを保存する。ステップ１１２−２１−１−４で、プログラムはその前の書き込みＩ／Ｏアドレスによって書き込みＩ／Ｏタイプ（シーケンシャルかランダムか）をチェックする。もし書き込みＩ／Ｏがシーケンシャルならば、プログラムはシーケンシャル書き込みカウンタ１１２−１１−２−６をカウントアップする。もし書き込みＩ／Ｏがランダムならば、プログラムはランダム書き込みカウンタ１１２−１１−２−７をカウントアップする。プロセスはステップ１１２−２１−１−５で終了する。
【００３４】
００７５    図１０はステップ１１２−２１−２−１に始まる、読み出しＩ／Ｏ制御１１２−２１−２のプロセスフローダイアグラムの例を示す。ステップ１１２−２１−２−２で、プログラムはキャッシュスロット１１２−３０−１を探すためにキャッシュ制御１１２−２４をコールする。ステップ１１２−２１−２−３で、プログラムは、データが既にそこに保存し終わったか否かに関して前述のキャッシュスロット１１２−３０−１の状態をチェックする。もしＮｏならば、ステップ１１２−２１−２−４でプログラムはステージング制御１１２−２２−１をコールする。もしＹｅｓならば、ステップ１１２−２１−２−５でプログラムはホストコンピュータ３００にキャッシュスロット１１２−３０−１のデータを転送する。プロセスはステップ１１２−２１−２−６で終了する。
【００３５】
００７６    図１１はステップ１１２−２２−１−１に始まる、ステージング制御１１２−２２−１のプロセスフローダイアグラムの例である。ステップ１１２−２２−１−３でプログラムはディスク１２１のスロットからデータを読み出し、そのデータをキャッシュデータ領域１１２−３０に保存する。ステップ１１２−２２−１−４でプログラムはデータ転送が終わるのを待つ。プロセスはステップ１１２−２２−１−５で終了する。
【００３６】
００７７    図１２はステップ１１２−２２−２−１に始まる、第１の実施例によるデステージング制御１１２−２２−２のプロセスフローダイアグラムの例である。ステップ１１２−２２−２−３でプログラムはキャッシュデータ領域１１２−３０からデータを読み出し、そのデータをディスク１２１のスロットに保存する。ステップ１１２−２２−２−４でプログラムはスロットが属するＲＡＩＤレベルをチェックする。もしＲＡＩＤレベルが０、１、又は１０ならば、プログラムはステップ１１２−２２−２−８にスキップする。もしＲＡＩＤレベルが５又は６ならば、ステップ１１２−２２−２−５でプログラムは、キャッシュデータ領域１１２−３０の同じパリティの行に属する他のスロットのデータが存在するかチェックし、パリティスロットに対してリード・モディファイ・ライトを遂行する必要があるか判定する。もしＹｅｓならば、ステップ１１２−２２−２−６で（キャッシュミスの場合も含む）プログラムはディスク１２１からパリティスロットデータをステージする。もしＮｏならば、プログラムはステップ１１２−２２−２−６をスキップする。ステップ１１２−２２−２−７でプログラムは新たなパリティデータを生成する。もしリード・モディファイ・ライトを行う必要がないならば（ステップ１１２−２２−２−５でＮｏの場合）、プログラムはキャッシュデータ領域１１２−３０内に保存された書き込み済みデータに基づいて新たなパリティデータを計算する。もしリード・モディファイ・ライトを行う必要があるならば（ステップ１１２−２−２−５でＹｅｓの場合）、プログラムはキャッシュデータ領域１１２−３０内に保存された書き込み済みデータとステップ１１２−２２−２−６で保存された現在のパリティデータに基づいて新たなパリティデータを計算する。ステップ１１２−２２−２−８でプログラムはデータ転送が終わるのを待つ。
【００３７】
００７８    図１３はステップ１１２−２３−１に始まる、フラッシュ制御１１２−２３のプロセスフローダイアグラムの例である。ステップ１１２−２３−２でプログラムはキャッシュ管理テーブル１１２−１４の「ダーティーキュー」を読み出す。もしダーティーキャッシュ領域が存在すれば、ステップ１１２−２３−３でプログラムは検出したダーティーキャッシュスロット１１２−３０−１のためにデステージング制御１１２−２２−２をコールする。もしＮｏならばプログラムはステップ１１２−２３−４で終了する。
【００３８】
００７９    図１４はステップ１１２−２８−１に始まる、キャッシュ制御１１２−２８のプロセスフローダイアグラムの例である。ステップ１１２−２８−２でプログラムはキャッシュ管理テーブル１１２−１４を読み出し、仮想ボリュームスロット１４１−１又は容量プールストライプ１２１−１の特定されたアドレスを検索する。Ｉ／Ｏアドレスに対して何らキャッシュ領域が存在しないならば、ステップ１１２−２８−３でプログラムは「フリー」又は「クリーン」キューから特定されるアドレスに対して新たなキャッシュスロット１１２−３０−１を取得する。もしＩ／Ｏアドレスに対してキャッシュ領域が存在するならばプログラムはステップ１１２−２８−４で終了する。
【００３９】
００８０    図１５はステップ１１２−２９−１−１に始まる、信頼性管理制御１１２−２９−１のプロセスフローダイアグラムの例である。ステップ１１２−２９−１−２でプロセスは（シーケンシャル書き込みカウンタ１１２−１１−２−６及びランダム書き込みカウンタ１１２−１１−２−７を使用することにより）Ｉ／Ｏタイプの比率、各ディスク１２１の残存寿命情報、及び（ＲＡＩＤグループ管理テーブル１１２−１１−１を使用することにより）グループの構造からグループ（ＲＡＩＤグループ、シン・プロビジョニンググループ）の残存寿命を計算する。ステップ１１２−２９−１−３でプログラムはストレージ管理ターミナル４００に計算結果を送信する。プログラムはステップ１１２−２９−１−４で終了する。
【００４０】
００８１    データフローのシーケンス
【００４１】
００８２    図１６はＲＡＩＤ１又は１０のボリュームへのシーケンシャル又はランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。Ｓ１０００でホストコンピュータ３００はストレージサブシステム１００に書き込みＩ／Ｏを要求しデータを送信する。Ｓ１００１でストレージサブシステム１００はホストコンピュータ３００からデータを受信する。ＣＰＵ１１１は書き込みＩ／Ｏ制御１１２−２１−１を実行しキャッシュデータ領域１１２−３０にデータを保存する。Ｓ１００２でキャッシュデータ領域１１２−３０はデータを保存する。Ｓ１０２０でＣＰＵ１１１はフラッシュ制御１１２−２３を実行し、書き込みＩ／Ｏデータを検出し、キャッシュデータ領域１１２−３０からディスク１２１（ディスクａとディスクｂ）にデータを転送するように命令する。Ｓ１０２１でキャッシュデータ領域１１２−３０はディスク１２１（ディスクａとディスクｂ）にデータを二重に転送する。Ｓ１０２２でディスク１２１はデータを受信し保存する。
【００４２】
００８３    図１７はＲＡＩＤ５ボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。図１６と比較した相違点のみを記す。Ｓ１０１０でＣＰＵ１１１はディスク１２１（ディスクｄ）からキャッシュデータ領域１１２−３０にパリティデータを転送するように命令し、キャッシュデータ領域１１２−３０上の書き込み済みデータとステージ済みパリティデータから新たなパリティデータを生成する。Ｓ１０１１でディスク１２１（ディスクｄ）はキャッシュデータ領域１１２−３０にデータを転送する。Ｓ１０１２でキャッシュデータ領域１１２−３０はディスク１２１からデータを受信する。Ｓ１０２１’でキャッシュデータ領域１１２−３０はデータをディスク１２１（ディスクａとディスクｄ）に転送する。
【００４３】
００８４    図１８はＲＡＩＤ６ボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。図１７と比較した相違点のみを記す。Ｓ１０１０’でＣＰＵ１１１はディスク１２１（ディスクｃとディスクｄ）からキャッシュデータ領域１１２−３０にパリティデータを転送するように命令し、キャッシュデータ領域１１２−３０上の書き込み済みデータとステージ済みパリティデータから新たなパリティデータを生成する。
【００４４】
００８５    図１９はＲＡＩＤ６ボリュームへのランダム書き込みＩ／Ｏのシーケンスチャートの例を示す。図１７と比較した相違点のみを記す。Ｓ１０１０”でＣＰＵ１１１はキャッシュデータ領域１１２−３０上の書き込み済みデータから新たなパリティデータを生成し、そのデータをキャッシュデータ領域１１２−３０に保存する。Ｓ１０１１’でキャッシュデータ領域１１２−３０は生成済みのパリティデータを保存する。
【００４５】
００８６    式
【００４６】
００８７    図２０は第１の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。この式は多数の変数とサフィックスを含む。変数Ｖ１００はグループの残存寿命を表わす。サフィックスＶ１０１は計算ターゲットのＲＡＩＤグループのＲＡＩＤレベルを表わす。サフィックスＶ１０２は書き込みＩ／Ｏタイプ情報（シーケンシャル又はランダム）を表わす。変数Ｖ１０３はサフィックスＶ１０１とＶ１０２の条件でのグループの残存寿命を表わす。変数Ｖ１０４はディスクのＩＤを表わす。変数Ｖ１０５はグループ内のディスク数を表わす。変数Ｖ１０６はディスクの残存寿命を表わす。変数Ｖ１０７はグループへの書き込みＩ／Ｏの比率を表わす。
【００４７】
００８８    式Ｅ１００はシーケンシャルとランダム書き込みＩ／Ｏの混合した環境でのグループの寿命の計算式である。式Ｅ１０１はＲＡＩＤ１０のグループでシーケンシャル又はランダムな書き込みＩ／Ｏ環境での寿命の計算式である。ＲＡＩＤ１０はデータを二重に書き込むので、式は「÷２」を含む。式Ｅ１０２はＲＡＩＤ５のグループでシーケンシャルな書き込みＩ／Ｏ環境でのグループ寿命の計算式である。ＲＡＩＤ５はシーケンシャルな書き込み環境で（Ｎ−１）データと１パリティデータを書き込むので、この式は「−１」を含む。式Ｅ１０３はＲＡＩＤ５のグループでランダムな書き込みＩ／Ｏ環境での寿命の計算式である。ＲＡＩＤ５はランダム書き込み環境で１データと１パリティデータを書き込むので、この式は「÷２」を含む。式Ｅ１０４はＲＡＩＤ６のグループでシーケンシャルな書き込みＩ／Ｏ環境での寿命の計算式である。ＲＡＩＤ６はシーケンシャル書き込み環境で１データと２パリティデータを書き込むので、この式は「−２」を含む。式Ｅ１０５はＲＡＩＤ６グループでランダムな書き込みＩ／Ｏ環境での寿命の計算式である。ＲＡＩＤ６はランダムな書き込み環境でデータと２パリティデータを書き込むので、この式は「÷３」を含む。
【００４８】
００８９    出力ディスプレイ
【００４９】
００９０    図２１はディスプレイ４１９上の出力イメージの例を示す。管理者はストレージサブシステム１００の信頼性をモニターする。軸４１９−１０（ｘ軸）は時間の経過を表わす。軸４１９−１１（ｙ軸）は残存寿命の％を表わす。ライン４１９−２０はグループの残存寿命履歴を示す。破線４１９−２１はグループの残存寿命予測を表わす。この破線は残存寿命履歴により計算される。イベント４１９−３０は現在の日付と残存寿命を示す。イベント４１９−３１は過去のディスク交換イベントを示す。
【００５０】
００９１    システム管理シーケンス
【００５１】
００９２    図２２は第１の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。Ｓ２０００でストレージ管理ターミナル４００はストレージサブシステム１００にグループの寿命情報を送信するように要求する。Ｓ２００１でＣＰＵ１１１は或るグループ内の各ディスクから残存寿命を求め、その残存寿命を計算しストレージ管理ターミナル４００に報告する。Ｓ２００２でディスク１２１は自らの残存寿命情報をＣＰＵ１１１に送信する。Ｓ２０１０で管理者はディスプレイ４１９をチェックする。Ｓ２０１１でストレージ管理ターミナルはディスプレイ４１９に残存寿命情報を示す。Ｓ２０２０で管理者はストレージサブシステム１００に新たなディスク１２１ｚをインストールするか又はこれに交換する。Ｓ２０２１でストレージサブシステム１００は新たなディスク１２１ｚを格納する。
【００５２】
００９３    第２の実施例
【００５３】
００９４    第２の実施例と第１の実施例の相違点のみを記す。
【００５４】
００９５    ハードウェア
【００５５】
００９６    図２３は本発明の第２の実施例によるディスク管理テーブル１１２−１１−３’の例を示す。図５に比較するとテーブルに二つの値が追加されている。その第１はディスクへの書き込み回数又は書き込み動作数の限界値を表わす寿命限界情報１１２−１１−３’−３である。この値はフラッシュメモリチップのタイプ（ＳＬＣ／ＭＬＣ）、ベンダ、ディスクモデル、容量（リザーブ容量）、及びウェア・レベリング・アルゴリズムに依存する。第２はディスクへの書き込み回数を表わす寿命カウンタ１１２−１１−３’−４である。
【００５６】
００９７    図２４は第２の実施例によるデステージング制御１１２−２２−２’のプロセスフローダイアグラムの例を示す。図１２に比較すると表に１ステップが追加されている。ステップ１１２−２２−２’−９でこのプロセスは寿命カウンタ１１２−１１−３’−４をカウントアップする。
【００５７】
００９８    式
【００５８】
００９９    図２５は第２の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。二つの変数が追加され一つの変数が置き換えられている。二つの追加した変数はディスクへの書き込み回数の限界を表わす変数Ｖ１０８’とディスクへの現在の書き込み回数を表わす変数Ｖ１０９’である。変数Ｖ１０７は変数Ｖ１０８’と変数Ｖ１０９’に関するパラメータを定義する変数Ｖ１０７’に置き換えられている。
【００５９】
０１００    システム管理シーケンス
【００６０】
０１０１    図２６は第２の実施例による信頼性をチェックし、ディスクを交換するシーケンスチャートの例を示す。図２２に比較すると一つのステップが置き換えられている。Ｓ２００１’（Ｓ２００１を置き換え）でＣＰＵ１１１は寿命限界情報１１２−１１−３’−３と寿命カウンタ１１２−１１−３’−４からＲＡＩＤグループの残存寿命を計算し、ストレージ管理ターミナル４００に報告する。
【００６１】
０１０２    第３の実施例
【００６２】
０１０３    第３の実施例と第１の実施例の相違点のみ記す。
【００６３】
０１０４    ハードウェア
【００６４】
０１０５    図２７は本発明の第３の実施例によるストレージサブシステム内のメモリ１１２の例を示す。図２に比較して四つの要素が置き換えられ五つの要素が追加されている。置き換えられる要素はＲＡＩＤグループ管理テーブル１１２−１１−１’、仮想ボリューム管理テーブル１１２−１１−２’、及びデステージング制御１１２−２２−２’である。追加される要素は仮想ボリュームページ管理テーブル１１２−１５−１、容量プールチャンク管理テーブル１１２−１５−２、容量プールページ管理テーブル１１２−１５−３、ページ移行制御１１２−２５−１、及び移行制御１１２−２２−３である。ボリューム管理テーブル１１２−１１に於いて、ＲＡＩＤグループ管理テーブル１１２−１１−１’はディスク１２１とこれらのグループの物理構造管理を提供する。仮想ボリューム管理テーブル１１２−１１−２’はボリューム構成管理を提供する。追加されたシン・プロビジョニング管理テーブル１１２−１５に於いて、仮想ボリュームページ管理テーブル１１２−１５−１は仮想ボリュームのパーティションから容量プールのパーティションへの参照管理を提供し、容量プールチャンク管理テーブル１１２−１５−２は容量プールのリソース管理と容量プールページから仮想ボリュームページへの参照管理を提供し、容量プールページ管理テーブル１１２−１５−３は容量プールチャンクのリソース管理を提供する。物理ディスク制御１１２−２２に於いて、デステージング制御１１２−２２−２’はキャッシュデータ領域１１２−３０からディスク１２１にデータを転送し、新たなページを割り当てる。又移行制御１１２−２２−３がある。追加されたシン・プロビジョニング制御１１２−２５に於いて、ページ移行制御１１２−２５−１は一つの容量プールページを別の容量プールページに移行する。
【００６５】
０１０６    図２８は第３の実施例によるＲＡＩＤグループ管理テーブル１１２−１１−１’の例を示す。図３に比較して二つの値がテーブルに追加されている。フリー・チャンク・キュー・インデックス１１２−１１−１−５’は未使用のシン・プロビジョニング・チャンクを管理する。使用済みチャンク・キュー・インデックス１１２−１１−１−６’は使用済みシン・プロビジョニング・チャンクを管理する。
【００６６】
０１０７    図２９は第３の実施例による仮想ボリューム管理テーブル１１２−１１−２の例を示す。図４に比較して一つの値が削除され（図４のトップアドレス）、一つの値がテーブルに追加されている。追加された使用中チャンク番号１１２−１１−２−５’は仮想ボリュームが現在使用するチャンクＩＤをリストアップする。使用中ＲＡＩＤグループ番号１１２−１１−２−３’（図４の１１２−１１−２−３）は仮想ボリュームが現在使用するチャンクのＲＡＩＤグループＩＤをリストアップする。
【００６７】
０１０８    図３０は仮想ボリュームページ管理テーブル１１２−１５−１の例を示す。仮想ボリュームページインデックス１１２−１５−１−１は仮想ボリュームページのトップアドレスをリストアップする。ＲＡＩＤグループ番号１１２−１５−１−２は仮想ボリュームのページが属するＲＡＩＤグループＩＤをリストアップし、「該当なし」は仮想ボリュームページに何も容量プールページが割り当てられていないことを意味する。容量プールページインデックス１１２−１５−１−３は仮想ボリュームのページが参照する容量プールページのトップアドレスをリストアップする。
【００６８】
０１０９    図３１は容量プールチャンク管理テーブル１１２−１５−２の例を示す。容量プールチャンク番号１１２−１５−２−１は容量プールチャンクのＩＤをリストアップする。仮想ボリューム番号１１２−１５−２−２はそれにより容量プールチャンクを参照する仮想ボリュームＩＤをリストアップする。使用済み容量１１２−１５−２−３は容量プールチャンクの使用済み容量をリストアップする。削除済み容量１１２−１５−２−４はその領域が一度でも使用したことのある容量プールチャンクのうち削除された容量をリストアップする。前回のチャンク番号１１２−１５−２−５はキュー管理のために前回のチャンクポインタをリストアップする。次回のチャンク番号１１２−１５−２−６はキュー管理のために次回のチャンクポインタをリストアップする。「ヌル」はキューの終点を意味する。
【００６９】
０１１０    図３２は容量プールページ管理テーブル１１２−１５−３の例を示す。容量プールページインデックス１１２−１５−１は容量プールページのＩＤリストをリストアップする。「該当なし」は容量プールページが未使用であることを意味する。仮想ボリュームページ番号１１２−１５−２はそれにより容量プールページを参照する仮想ボリュームページのＩＤをリストアップする。
【００７０】
０１１１    図３３は第３の実施例による仮想ボリュームとそのテーブル構造の例を示す。矢印付きラインには実線と破線がある。実線はポインタが参照するオブジェクトを指す。破線は計算によるオブジェクトを指す。仮想ボリューム１４１としては、仮想ボリューム１４１と仮想ボリューム管理テーブル１１２−１１−２’は一対一の関係にあり、仮想ボリューム管理テーブル１１２−１１−２’は現在使用中の容量プールページ１２１−１を参照する。仮想ボリュームページ１４１−２としては、仮想ボリュームページ１４１−２と仮想ボリュームページ管理テーブル１１２−１５−１は一対一の関係にあり、仮想ボリュームページテーブル１１２−１５−１は、ページが割り当てられているならば容量プールページ１２１−２のスライスを参照する。ＲＡＩＤグループとしては、ＲＡＩＤグループとＲＡＩＤグループ管理テーブル１１２−１１−１’は一対一の関係にあり、ＲＡＩＤグループ管理テーブル１１２−１１−１’は使用済み及び未使用の容量プールチャンク１１２−１を参照する。
【００７１】
０１１２    図３４は第３の実施例による容量プールに向かうテーブル参照構造の例を示す。矢印付きラインの実線はポインタによるオブジェクトを指し、破線は計算によるオブジェクトを指す。容量プールチャンク１２１−１としては、容量プールチャンク１２１−１と容量プールチャンク管理テーブル１１２−１５−２は一対一の関係にあり、容量プールチャンク管理テーブル１１２−１５−２は仮想ボリューム１４１を参照する。容量プールページ１２１−２に対しては、容量プールページ管理テーブル１１２−１５−３は仮想ボリュームページ１４１−２を参照する。
【００７２】
０１１３    図３５と３６はステップ１１２−２２−２’−１に始まる、第３の実施例によるデステージング制御１１２−２２−２’のプロセスフローダイアグラムの例を示す。図２４の第２の実施例に比較して新たなステップがデステージング制御１１２−２２−２の前に追加される。ステップ１１２−２２−２’−２で、プログラムは容量プールページが仮想ボリュームページに割り当てられているか否かをチェックする。もしＹｅｓならば、ステップ１１２−２２−２’−３でプログラムは容量プールページが属するディスクが寿命限界に到達したか否かをチェックする。もしＹｅｓならば、ステップ１１２−２２−２’−４でプログラムは寿命限界に到達していないＲＡＩＤグループから新たな容量プールページを割り当てて、使用中の容量プールページから新たに割り当てたページにコピーする。プロセスはステップ１１２−２２−２’−６のデステージング制御に続く。もしステップ１１２−２２−２’−３で結果がＮｏならば、プロセスはステップ１１２−２２−２’−６に進む。もしステップ１１２−２２−２’−２で結果がＮｏならば、ステップ１１２−２２−２’−５でプログラムは寿命限界に到達しないＲＡＩＤグループから新たな容量プールページを割り当てる。次いでプロセスはステップ１１２−２２−２’−６のデステージング制御に続く。
【００７３】
０１１４    図３７はステップ１１２−２５−１−１に始まる、ページ移行制御１１２−２５−１のプロセスフローダイアグラムの例を示す。ステップ１１２−２５−１−２でプログラムは新たな容量プールページを割り当てる。ステップ１１２−２５−１−３でプログラムはディスクから指定された容量プールページデータを転送し、そのデータをキャッシュデータ領域１１２−３０に保存する。ステップ１１２−２５−１−４でプログラムは容量プールページデータを新たに割り当てた容量プールページにコピーする。ステップ１１２−２５−１−５でプログラムはＲＡＩＤグループ番号１１２−１５−１−２及び容量プールページインデックス１１２−１５−１−３の参照を新たに追加したページに変更し、古い（移行済みの）容量ページを解放する。プロセスはステップ１１２−２２−１−６にて終了する。
【００７４】
０１１５    式
【００７５】
０１１６    図３８は第３の実施例による図１５のステップ１１２−２９−１−２の信頼性の計算式の例を示す。この式は図２０の第１の実施例に基づく。変数Ｖ２００はシン・プロビジョニング・プールの残存寿命を表わす。変数Ｖ２０１は書き込みＩ／Ｏのシーケンシャルとランダムの混合環境でのシン・プロビジョニング・プールのメンバーであるｊ番目のＲＡＩＤグループの残存寿命（即ち書き込みＩ／Ｏ耐久性）Ｅｊを表わす。ｊ番目のＲＡＩＤグループの残存寿命Ｅｊは前述の式（図２０と２５）を使用して計算される。変数Ｖ２０２はＲＡＩＤグループのＩＤを表わす。変数Ｖ２０３はシン・プロビジョニング・プール内のＲＡＩＤグループの数を表わす。式Ｅ２００は複数のＲＡＩＤグループを含むシン・プロビジョニング・プールの寿命を計算する。
【００７６】
０１１７    第４の実施例
【００７７】
０１１８    第４の実施例と第３の実施例の相違点のみを記す。
【００７８】
０１１９    図３９は本発明の第４の実施例によるストレージサブシステム内のメモリ１１２の例を示す。図２７に比較して三つの要素が置き換えられ、一つの要素（移行制御１１２−２２−３）が削除されている。前の図から置き換わる三つの新たな要素は仮想ボリューム管理テーブル１１２−１１−２”、ディスク管理テーブル１１２−１１−３”、及び仮想ボリュームページ管理テーブル１１２−１５−１”である。
【００７９】
０１２０    図４０は第４の実施例によるディスク管理テーブル１１２−１１−３”の例を示す。図５に比較して二つの値がテーブルに追加されている。その第１は未使用のシン・プロビジョニング・チャンクを管理するためのフリー・チャンク・キュー・インデックス１１２−１１−３−５”である。その第２は使用済みのシン・プロビジョニング・チャンクを管理するための使用済みチャンク・キュー・インデックス１１２−１１−３−６”である。
【００８０】
０１２１    図４１は第４の実施例による仮想ボリューム管理テーブル１１２−１１−２”の例を示す。図４に比較して、図４１のディスク番号１１２−１１−２−３”は仮想ボリュームが現在使用するディスク１２１のＩＤリストを提供し、チャンク番号１１２−１１−２−５”は仮想ボリュームが現在使用する容量プールに属する容量プールチャンクのＩＤリストを提供する。
【００８１】
０１２２    図４２は第４の実施例による仮想ボリュームページ管理テーブル１１２−１５−１”の例を示す。図３０に比較して、図４２のディスク番号１１２−１５−１−２”は仮想ボリュームページが参照する容量プールページに属するディスク１２１のＩＤリストを提供し、容量プールページ１１２−１５−１−３”は仮想ボリュームページが参照する容量プールページに属するアドレスのＩＤリストを提供する。
【００８２】
０１２３    図４３は第４の実施例による仮想ボリュームとそのテーブル構造の例を示す。矢印付き実線はポインタによるオブジェクトを指す。矢印付き破線は計算によるオブジェクトを指す。仮想ボリューム１４１としては、仮想ボリューム１４１と仮想ボリューム管理テーブル１１２−１−１−２’は一対一の関係にあり、仮想ボリューム管理テーブル１１２−１−１−２’は現在使用中の容量プールページ１２１−１を参照する。仮想ボリュームページ１４１−２としては、仮想ボリュームページ１４１−２と仮想ボリュームページ管理テーブル１１２−１５−１は一対一の関係にあり、仮想ボリュームページテーブル１１２−１５−１は、ページが割り当てられているならば、容量プールページ１２１−２の二つ（以上の）スライスを参照する。ディスク１２１とディスク管理テーブル１１２−１１−３”は一対一の関係にある。ディスク管理テーブル１１２−１１−３”は使用済み及び未使用の容量プールチャンク１１２−１を参照する。
【００８３】
０１２４    図４４は第４の実施例による容量プールに向かうテーブル参照構造の例を示す。矢印付きラインの実線はポインタによるオブジェクトを指し、破線は計算によるオブジェクトを指す。容量プールチャンク１２１−１としては、容量プールチャンク１２１−１と容量プールチャンク管理テーブル１１２−１５−２は一対一の関係にあり、容量プールチャンク管理テーブル１１２−１５−２は仮想ボリューム１４１を参照する。容量プールページ１２１−２に対しては、容量プールページ管理テーブル１１２−１５−３は仮想ボリュームページ１４１−２を参照する。
【００８４】
０１２５    式
【００８５】
０１２６    図４５は第４の実施例によるステップ１１２−２９−１−２の信頼性の計算式の例を示す。変数Ｖ２１２はディスクのＩＤを表わす。変数Ｖ２１３はシン・プロビジョニング・プール内のディスク数を表わす。式Ｅ２１０は複数のディスクを含むシン・プロビジョニング・プールの寿命を計算する。この場合、式はＲＡＩＤ１０の寿命に対するものであるから、書き込みＩ／Ｏタイプのシーケンシャル対ランダムの比率には依存しない。
【００８６】
０１２７    当然、図１、２、２７、３９で図示したシステム構成は本発明が実装できる情報システムの全く典型的なものであり、本発明は特定のハードウェア構成に限定されない。本発明を実装するコンピュータとストレージシステムは前述の発明を実装するために使用されるモジュール、プログラム及びデータ構造を保存し読み出す、公知のＩ／Ｏデバイス（例えばＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も持つことができる。これらのモジュール、プログラム及びデータ構造はそのようなコンピュータ読み取り可能媒体上にコード化することができる。例えば、本発明のデータ構造は本発明に使用されるプログラムが存在する一つ以上のコンピュータ読み取り可能媒体とは無関係にコンピュータ読み取り可能媒体上に保存することができる。システムのコンポーネントは、ディジタルデータ通信の任意の形態又は媒体、例えば通信ネットワークにより相互接続できる。通信ネットワークの例はローカルエリアネットワーク、インターネット等の広域ネットワーク、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００８７】
０１２８    説明中で数多くの詳細が本発明の十分な理解を可能にするために説明の目的で述べられている。しかしながら、これら特定の詳細は必ずしもすべてが本発明を実施するために必要とされるわけでないことは当業者には明白であろう。更に本発明は通常フローチャート、フローダイアグラム、構造ダイアグラム、又はブロックダイアグラムとして描かれるプロセスとして記述できることはいうまでもない。フローチャートは動作をシーケンシャルなプロセスとして記述可能であるが、多くの動作は並行して又は同時に遂行される。更に、動作順序は再編成が可能である。
【００８８】
０１２９    この技術分野で公知のように、前述の動作はハードウェア、ソフトウェア、又はソフトウェアとハードウェアの或る組み合わせで遂行できる。本発明の実施例の種々の態様は回路や論理デバイス（ハードウェア）を使用して実装可能であるが、他の態様では、プロセッサにより実行されるとプロセッサに本発明の実施例を実行する方法を遂行させる計算機読み取り可能媒体（ソフトウェア）上に保存される命令を使用して実装可能である。更に本発明のいくつかの実施例は専らハードウェアで遂行できるが、これに対し他の実施例では、専らソフトウェアで遂行できる。更に記述された種々の機能は単一の装置内で遂行できるが、任意の数の方法で多数のコンポーネントに亘って拡張することもできる。ソフトウェアにより遂行される時、方法はコンピュータ読み取り可能媒体に保存された命令に基づいて汎用コンピュータのようなプロセッサにより実行することができる。もし必要であれば、命令は圧縮及び／又は暗号化形式で媒体に保存することができる。
【００８９】
０１３０    前述から、本発明はフラッシュメモリ媒体の可用性及び信頼性の管理のための方法、装置、及びコンピュータ読み取り可能媒体に保存されるプログラムを提供することは明らかであろう。更に、本明細書内で特定の実施例が図示され、記述されてきたが、本技術分野の当業者は、同じ目的を達成することが予測される任意の構成が、開示された特定の実施例に対して置換可能であることを十分理解する。ここでの開示は本発明の任意かつすべての翻案又は変形にも及ぶように企図されており、当然のことながら以下の特許請求範囲で使用される表現は発明をこの明細書の中で開示された特定の実施例に限定するように解釈すべきでない。もっと正確に言えば本発明の範囲は専ら以下の請求項によって決定されるべきであり、それらはそのような請求項が権利を有する均等な全範囲に沿って、請求項の解釈に於ける確立した理論に従って解釈されるべきである。
【図１】
2010244521.tif 000011
【図２】
2010244521.tif 000012
【図３】
2010244521.tif 000013
【図４】
2010244521.tif 000014
【図５】
2010244521.tif 000015
【図６】
2010244521.tif 000016
【図７】
2010244521.tif 000017
【図８】
2010244521.tif 000018
【図９】
2010244521.tif 000019
【図１０】
2010244521.tif 000020
【図１１】
2010244521.tif 000021
【図１２】
2010244521.tif 000022
【図１３】
2010244521.tif 000023
【図１４】
2010244521.tif 000024
【図１５】
2010244521.tif 000025
【図１６】
2010244521.tif 000026
【図１７】
2010244521.tif 000027
【図１８】
2010244521.tif 000028
【図１９】
2010244521.tif 000029
【図２０】
2010244521.tif 000030
【図２１】
2010244521.tif 000031
【図２２】
2010244521.tif 000032
【図２３】
2010244521.tif 000033
【図２４】
2010244521.tif 000034
【図２５】
2010244521.tif 000035
【図２６】
2010244521.tif 000036
【図２７】
2010244521.tif 000037
【図２８】
2010244521.tif 000038
【図２９】
2010244521.tif 000039
【図３０】
2010244521.tif 000040
【図３１】
2010244521.tif 000041
【図３２】
2010244521.tif 000042
【図３３】
2010244521.tif 000043
【図３４】
2010244521.tif 000044
【図３５】
2010244521.tif 000045
【図３６】
2010244521.tif 000046
【図３７】
2010244521.tif 000047
【図３８】
2010244521.tif 000048
【図３９】
2010244521.tif 000049
【図４０】
2010244521.tif 000050
【図４１】
2010244521.tif 000051
【図４２】
2010244521.tif 000052
【図４３】
2010244521.tif 000053
【図４４】
2010244521.tif 000054
【図４５】
2010244521.tif 000055
【外国語明細書】
2010244521000001.pdf