(57)【特許請求の範囲】
【請求項１】
アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ＴＡＳＴＥ）であって、
利用可能な格納装置の集合に関する情報のためのストレージと、
アプリケーションから格納装置の要求事項を受信する受信ロジックと、
前記利用可能な格納装置の集合に関する情報を使用して、前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の部分集合を選択する選択ロジックと、
前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の前記選択された部分集合を使用して、前記アプリケーションに対して前記格納装置を割り当てるロジックと、を備え、
前記格納装置の要求事項は、所望の容量、所望の帯域幅、所望のレイテンシ、所望のクラスターサイズ、所望のページサイズ、所望の二重化（ｒｅｄｕｎｄａｎｃｙ）、所望の並列化（ｐａｒａｌｌｅｌｉｓｍ）、所望の持続性（ｐｅｒｓｉｓｔｅｎｃｙ）、及び所望の保安（ｓｅｃｕｒｉｔｙ）を含むセットから得られ、
前記利用可能な格納装置の集合は、少なくとも２つの物理格納装置を含み、
前記所望の容量は、前記アプリケーションによって要求される容量を含み、
前記所望の帯域幅は、前記アプリケーションによって要求される最小帯域幅を含み、
前記所望のレイテンシは、前記アプリケーションによって許容される最大レイテンシを含み、
前記所望のクラスターサイズは、前記アプリケーションに割り当てられる前記格納装置のクラスターの数を含み、
前記所望のページサイズは、前記アプリケーションに割り当てられる前記格納装置内の各ページに対するサイズを含み、
前記所望の二重化は、前記アプリケーションによって格納された各データのコピーが前記利用可能な格納装置の集合内にどれだけ多く格納されるべきかを示す二重化の数を含み、
前記所望の並列化は、前記アプリケーションに割り当てられた仮想格納装置にどれだけ多くの格納装置が結合されるかを示す並列化の数を含み、
前記所望の持続性は、前記アプリケーションに対するデータが、消去される前に前記アプリケーションに割り当てられた前記格納装置に格納される最小時間を含み、
前記所望の保安は、前記アプリケーションに対するデータが、第２のアプリケーションに対する第２のデータと共に共通の格納装置に格納されない前記第２のアプリケーションの識別子を含むことを特徴とするＴＡＳＴＥ。
【請求項２】
前記格納装置の要求事項は、前記アプリケーションに対する前記所望のクラスターサイズを含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合を選択するクラスター選択ロジックを含み、
前記利用可能な格納装置の集合の前記部分集合内の格納装置の数は、前記所望のクラスターサイズと同一であり、
前記所望のクラスターサイズは、少なくとも２であることを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項３】
前記利用可能な格納装置の集合の前記部分集合に対する変換階層を確立して、論理ブロックアドレスを前記利用可能な格納装置の集合の前記部分集合の物理ブロックアドレスにマッピングする変換階層ロジックを更に含むことを特徴とする請求項２に記載のＴＡＳＴＥ。
【請求項４】
前記格納装置の要求事項は、前記アプリケーションに対する前記所望のページサイズを含み、
前記選択ロジックは、前記所望のページサイズを使用して、前記利用可能な格納装置の集合の前記部分集合を構成する構成ロジックを含むことを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項５】
前記利用可能な格納装置の集合の前記部分集合に対する変換階層を確立して、前記所望のページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングする変換階層ロジックを更に含むことを特徴とする請求項４に記載のＴＡＳＴＥ。
【請求項６】
前記格納装置の要求事項は、前記アプリケーションに対する前記所望の二重化の複製因子を含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合の数に亘ってデータを複製する複製ロジックを含み、
前記部分集合の数は、前記所望の二重化の複製因子と同一であることを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項７】
前記利用可能な格納装置の集合の前記部分集合に対する変換階層を確立して、前記利用可能な格納装置の集合の前記部分集合内の第１格納装置を前記利用可能な格納装置の集合の前記部分集合内の第２格納装置のコピーとして管理する変換階層ロジックを更に含むことを特徴とする請求項６に記載のＴＡＳＴＥ。
【請求項８】
前記格納装置の要求事項は、前記アプリケーションに対する前記所望の持続性の要求事項を含み、
前記選択ロジックは、前記アプリケーションからのデータが前記利用可能な格納装置の集合の前記部分集合に亘って最小閾値時間の間持続することを保証する持続性ロジックを含むことを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項９】
前記利用可能な格納装置の集合の前記部分集合に対する変換階層を確立して、前記利用可能な格納装置の集合の前記部分集合上のデータが少なくとも前記最小閾値時間の間無効化されないようにする変換階層ロジックを更に含むことを特徴とする請求項８に記載のＴＡＳＴＥ。
【請求項１０】
前記格納装置の要求事項は、前記アプリケーションに対する第２の所望の持続性の要求事項を含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合が電力フェイルに対してデータを保護することを保証する持続性ロジックを含むことを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項１１】
前記格納装置の要求事項は、前記アプリケーションに対する前記所望の保安の分離要求事項を含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合が前記利用可能な格納装置の集合の第２部分集合にオーバーラップしないことを保証する分離ロジックを含み、
前記利用可能な格納装置の集合の第２部分集合は、前記第２のアプリケーションで使用されることを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項１２】
前記格納装置の要求事項は、前記アプリケーションに対する移行（ｍｉｇｒａｔｉｏｎ）コマンドを含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合内の第１格納装置から前記利用可能な格納装置の集合の前記部分集合内の第２格納装置にデータを移行させる移行ロジックを含むことを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項１３】
前記利用可能な格納装置の集合の前記部分集合内の複数の格納装置から仮想格納装置を生成する仮想格納装置ロジックを更に含むことを特徴とする請求項１に記載のＴＡＳＴＥ。
【請求項１４】
前記仮想格納装置に対する変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項１３に記載のＴＡＳＴＥ。
【請求項１５】
アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ＴＡＳＴＥ）の処理方法であって、
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階と、
利用可能な格納装置の集合を識別する段階と、
前記利用可能な格納装置の集合に関する情報を使用して、前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、
前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の前記選択された部分集合を使用して、前記アプリケーションに対して前記格納装置を割り当てる段階と、を有し、
前記格納装置の要求事項は、所望の容量、所望の帯域幅、所望のレイテンシ、所望のクラスターサイズ、所望のページサイズ、所望の二重化（ｒｅｄｕｎｄａｎｃｙ）、所望の並列化（ｐａｒａｌｌｅｌｉｓｍ）、所望の持続性（ｐｅｒｓｉｓｔｅｎｃｙ）、及び所望の保安（ｓｅｃｕｒｉｔｙ）を含むセットから得られ、
前記利用可能な格納装置の集合は、少なくとも２つの物理格納装置を含み、
前記所望の容量は、前記アプリケーションによって要求される容量を含み、
前記所望の帯域幅は、前記アプリケーションによって要求される最小帯域幅を含み、
前記所望のレイテンシは、前記アプリケーションによって許容される最大レイテンシを含み、
前記所望のクラスターサイズは、前記アプリケーションに割り当てられる前記格納装置のクラスターの数を含み、
前記所望のページサイズは、前記アプリケーションに割り当てられる前記格納装置内の各ページに対するサイズを含み、
前記所望の二重化は、前記アプリケーションによって格納された各データのコピーが前記利用可能な格納装置の集合内にどれだけ多く格納されるべきかを示す二重化の数を含み、
前記所望の並列化は、前記アプリケーションに割り当てられた仮想格納装置にどれだけ多くの格納装置が結合されるかを示す並列化の数を含み、
前記所望の持続性は、前記アプリケーションに対するデータが、消去される前に前記アプリケーションに割り当てられた前記格納装置に格納される最小時間を含み、
前記所望の保安は、前記アプリケーションに対するデータが、第２のアプリケーションに対する第２のデータと共に共通の格納装置に格納されない前記第２のアプリケーションの識別子を含むことを特徴とする方法。
【請求項１６】
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションに対する前記所望のクラスターサイズを受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、前記利用可能な格納装置の集合から格納装置を選択する段階を含み、
前記利用可能な格納装置の集合の前記部分集合内の格納装置の数は、前記アプリケーションに対する前記所望のクラスターサイズと同一であることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションに対する前記所望のページサイズを受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、
前記利用可能な格納装置の集合から格納装置を選択する段階と、
前記アプリケーションに対する前記所望のページサイズを使用して、前記選択された格納装置を構成する段階と、を含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションに対する前記所望の二重化の複製因子を受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように前記利用可能な格納装置の集合から格納装置を選択する段階を含み、
前記格納装置の数は、少なくとも前記アプリケーションに対する前記所望の二重化の複製因子と同じであることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションに対する前記所望の持続性の要求事項を受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、前記アプリケーションに対する前記所望の持続性の要求事項に沿った最小閾値時間の間に前記データが前記格納装置に格納されるように、前記利用可能な格納装置の集合から格納装置を構成する段階を含むことを特徴とする請求項１５に記載の方法。
【請求項２０】
前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションに対する前記所望の保安が第２のアプリケーションから分離されることを指定する分離要求事項を受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、前記利用可能な格納装置の集合の部分集合の格納装置に前記第２のアプリケーションに対する前記第２のデータが格納されないように、前記利用可能な格納装置の集合から格納装置を選択する段階を含むことを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ：ＳＳＤｓ）に関し、より詳細には、データセンターでアプリケーションの要求事項に応答してＳＳＤｓを管理する処理装置及びその方法に関する。
【背景技術】
【０００２】
格納装置、特にソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ：ＳＳＤｓ）は、時間の経過によって持続的に変わる特性を示す。ＳＳＤｓはＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）内部の基本ソフトウェア（ｕｎｄｅｒｌｙｉｎｇ  ｓｏｆｔｗａｒｅ、例、ファームウェア）及び／又はハードウェアで予測できないレイテンシ及び／又は帯域幅を有する。また、ウェアレベリングによる延長されたアクセスレイテンシ（読出し／書込み／消去）は、レイテンシ及び／又は帯域幅に影響を及ぼす。ＳＳＤリソースの仮想抽象化（ｖｉｒｔｕａｌ  ａｂｓｔｒａｃｔｉｏｎ）はＳＳＤの性能特性の予測を難しくする。即ち、仮想抽象化は、幾つかに言及すると、ポリモルフィック（ｐｏｌｙｍｏｒｐｈｉｃ）ＳＳＤｓ、オープンチャンネル（ｏｐｅｎ−ｃｈａｎｎｅｌ）ＳＳＤｓ、ｌｉｇｈｔＮＶＭ（オープンチャンネルＳＳＤｓを支援するサブシステム）のような多様なアプローチである。最後に、それぞれ異なるセル密度は、幾つかに言及すると、例えばＳＬＣ（ｓｉｎｇｌｅ  ｌｅｖｅｌ  ｃｅｌｌ）、ＭＬＣ（ｍｕｌｔｉ−ｌｅｖｅｌ  ｃｅｌｌ）、ＴＬＣ（ｔｈｒｅｅ  ｌｅｖｅｌ  ｃｅｌｌ）、及びＱＬＣ（ｑｕａｄｒｕｐｌｅ  ｌｅｖｅｌ  ｃｅｌｌ）は相当に異なる特性を引き起こす。
【０００３】
データセンターはアプリケーション及び格納装置をマッピングするメカニズム（方法）を必要とする。格納装置は、時間によって変化する多くの特性を有し、従ってモニターリングする必要がある。反面、アプリケーションは、更に、二重化（ｒｅｄｕｎｄａｎｃｙ）、並列化（ｐａｒａｌｌｅｌｉｓｍ）、持続性（ｐｅｒｓｉｓｔｅｎｃｙ）、保安（ｓｅｃｕｒｉｔｙ）、ＦＴＬ（ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）パラメーター（クラスターサイズ、ページサイズ等）の程度（ｄｅｇｒｅｅｓ）のようなそれぞれ異なる要求を有する。しかし、一般的な格納管理は、ＳＳＤｓのようなより新しい格納装置の性能特性又はアプリケーションの要求事項（例えば、ＨＤＦＳ（ｈａｄｏｏｐ  ｄｉｓｔｒｉｂｕｔｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）又はキーバリューストレージ（ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒａｇｅ））を認識しないボリューム管理（ｖｏｌｕｍｅ  ｍａｎａｇｅｍｅｎｔ）又はＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）向きのアプローチを使用する。アプリケーションの要求に応答してアプリケーションのためのデータを格納するように格納装置を選択する方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、データセンターでアプリケーションの要求事項に応答して必要なデータを格納する格納装置を管理するための処理装置及びその方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するためになされた本発明の一態様によるアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ｔｅｎａｎｔ−ａｗａｒｅｓｔｏｒａｇｅ−ｓｈａｒｉｎｇｅｎｇｉｎｅ：ＴＡＳＴＥ）は、利用可能な格納装置の集合に関する情報のためのストレージと、アプリケーションから格納装置の要求事項を受信する受信ロジックと、前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の部分集合（ｓｕｂｓｅｔ）を選択する選択ロジックと、を備える。
【０００６】
上記目的を達成するためになされた本発明の一態様によるアプリケーションに応じて格納装置を管理するためのテナントアウェアストレジ−シェアリングエンジン（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ：ＴＡＳＴＥ）の処理方法は、前記ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、を有する。
【０００７】
本発明の一実施形態によるコンピュータ読み取り可能な記録媒体は、非一時的なインストラクションを格納し、前記非一時的なインストラクションがマシンによって実行されることによって、アプリケーションに応じて格納装置を管理するためのＴＡＳＴＥ（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ）でアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、が実行される。
【発明の効果】
【０００８】
本発明のデータセンター内のテナントアウェアストレージシェアリングエンジン及びその処理方法によれば、アプリケーションから格納装置の要求事項を受信し、受信した格納装置の要求事項を満たす利用可能な格納装置の集合の部分集合（ｓｕｂｓｅｔ）を選択することによって、より効率的に格納装置を管理することができる。
【図面の簡単な説明】
【０００９】
【図１】クライアントマシンと通信する多様なホストマシンを有するデータセンターを示す図である。
【図２】本発明の一実施形態による図１のホストマシンの詳細図である。
【図３】図１のホストマシンの追加的な詳細図である。
【図４】アプリケーションの要求事項を受信して格納装置アレイを調節する図２のＴＡＳＴＥ（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ  ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ）を示す図である。
【図５】図２のＴＡＳＴＥの詳細図である。
【図６】図５の選択ロジックの詳細図である。
【図７】図４の格納装置アレイの一例を示す図である。
【図８】図７の格納装置アレイ内で確立される仮想格納装置を示す図である。
【図９】図７の格納装置アレイで多様な仮想アプリケーションの要求事項を満たすように割当られた多様なクラスター及び格納装置のページサイズを示す図である。
【図１０】図７の格納装置アレイ内の格納装置間の複製を示す図である。
【図１１】図７の格納装置アレイ内の格納装置間のデータ移行を示す図である。
【図１２】本発明の一実施形態による図４のアプリケーションの格納要求事項を受信して格納装置アレイを調節する図２のＴＡＳＴＥのための一例によるフローチャートである。
【図１３Ａ】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図４の格納装置アレイを具現する図２のＴＡＳＴＥのための一例によるフローチャートである。
【図１３Ｂ】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図４の格納装置アレイを具現する図２のＴＡＳＴＥのための一例によるフローチャートである。
【図１３Ｃ】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図４の格納装置アレイを具現する図２のＴＡＳＴＥのための一例によるフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。以下の詳細な説明で、多様な特定の実施形態を本発明の技術的思想の充分な理解を助けるために提供する。しかし、この分野で通常的な技術を有する者はこのような特定の実施形態無しでも本発明の技術的思想を具現することができる。他の例として、広く公知された方法、手続、構成要素、回路、及びネットワークは実施形態の側面を不必要に曖昧にしないために詳細に説明しない。
【００１１】
ここで、第１、第２等のような用語を多様な要素を説明するために使用するが、このような要素はこのような用語によって限定されない。このような用語を１つの要素と他の１つの要素とを区別するためにのみ使用する。例えば、本発明の技術的思想の範囲から逸脱せずに、第１モジュールを第２モジュールと称する。同様に、第２モジュールを第１モジュールとも称する。
【００１２】
本発明の技術的思想の説明で使用する用語は、特定の実施形態を説明するための目的にのみ使用され、本発明の技術的思想を限定しない。また、本発明の技術的思想の説明及び請求項で使用するように、文脈で明確に明示しなければ、単数表現は複数表現も含む。“及び／又は“の用語は１つ以上の関連する項目の任意且つ可能な全ての組合せを含むものとして参照する。“含む”及び／又は“含んでいる”の用語は、詳細な説明で使用する際に言及する特性、整数、段階、動作、要素、及び／又は構成要素の存在を明示し、１つ以上の他の特性、整数、段階、動作、要素、構成要素、及び／又はそれらのグループの存在若しくは追加を排除しない。図面の構成要素及び特性は実際の比率に必須的に比例しない。
【００１３】
大規模のデータセンターストレージインフラストラクチャーシステムは、格納装置の対（ｐａｉｒ）の間（又はホストと格納装置との間）で又は格納装置の任意のセット／クラスター（ｓｅｔ／ｃｌｕｓｔｅｒ）の中で、レイテンシ（ｌａｔｅｎｃｙ）又は帯域幅（ｂａｎｄｗｉｄｔｈ）を予測する能力に利益が得られる。格納装置の中で最大レイテンシ又は最小帯域幅はアプリケーションを支援するために１つ以上の仮想格納装置を選択又は確立するために重要になる。その上、大規模データセンターが並列化、複製、分離、その他のことを含む格納の多様なそれぞれ異なる側面を管理及び決定するように試図するため、より多くの性能情報に対する要求が増加している。このようなアプローチが拡張されないため、予測変数（ｐｒｅｄｉｃｔｏｒ）はオンデマンド（ｏｎ−ｄｅｍａｎｄ、注文形）又はパーペア（ｐｅｒ−ｐａｉｒ、ペア毎）測定に基づくべきである。
【００１４】
残念ながら、仕様（ｓｐｅｃｉｆｉｃａｔｉｏｎｓ）又はプロファイリング（ｐｒｏｆｉｌｉｎｇ）に基づく現存するストレージモデリング（ｓｔｏｒａｇｅ  ｍｏｄｅｌｉｎｇ）はこのような要求を満足しない。これは格納装置自体が同一の製造及び一様な物理世代にも拘らず、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）基盤ストレージがしばしばＦＴＬ（ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）のような劣化／磨耗度（ａｇｉｎｇ／ｗｅａｒｉｎｇ−ｏｕｔ）及び隠された特性によって異質的なレイテンシ／帯域幅及び時間−可変特性を示すためである。
【００１５】
ストレージ距離（ｓｔｏｒａｇｅ  ｄｉｓｔａｎｃｅ）、即ちデータセンター内の一対の格納装置間の距離に関連する性能特性を予測することを妨害するその他の要素は、ペアワイズ（ｐａｉｒ−ｗｉｓｅ）予測があまりにも多い測定を必要とすることである（オールトゥオールコネクション（ａｌｌ−ｔｏ−ａｌｌｃｏｎｎｅｃｔｉｏｎｓ）を考慮する）。
【００１６】
２０１６年７月２８日に提出された米国出願１５／２２２、９３８及び２０１６年８月１日に提出された米国出願１５／２２５、８１１は、参考文献として参照され、このような問題を解決する部分解決策を提供する。しかし、考慮するための他のアプローチが存在する。
【００１７】
フラッシュ基盤格納システムは非対称性能特性を有する。即ち、読出しに５〜２５μｓ、書込みに１００〜２００μｓ、フラッシュブロックの消去に数ｍｓが消費される。その上、一般的にフラッシュセルが耐えられるプログラム／消去サイクルの数は制限される。結論的に、ウェアレベリング（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）が活用される（及び性能特性として考慮される）。更に、ガベージコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）は、全ての入出力（Ｉ／Ｏ）動作を妨害する相当に多くのサイクルを消費する。
【００１８】
その上、内装されたＦＴＬ（ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）又はＦＴＬ−パーフィジカルディバイス（ｐｅｒ  ｐｈｙｓｉｃａｌ  ｄｅｖｉｃｅ）のような伝統的なアプローチは、アプリケーションの多様な要求及び特性を考慮すると、浪費的である。２つの代表的な例は、ＨＤＦＳ（ｈａｄｏｏｐ  ｄｉｓｔｒｉｂｕｔｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）及びキーバリューストア（ｋｅｙ−ｖａｌｕｅ（ＫＶ）ｓｔｏｒｅ）である。通常ＨＤＦＳは大きいブロックサイズ（多い場合で６４ＭＢ（ｍｅｇａｂｙｔｅｓ））を利用し、反面にＫＶ−ストアは小さいブロックサイズ（例、フェイスブックのワークロードのための１００Ｂ（ｂｙｔｅｓ））を利用する。この場合、ＫＶ−ストアのＦＴＬオーバーヘッド（データ構造メモリフットプリント（ｄａｔａ  ｓｔｒｕｃｔｕｒｅ  ｍｅｍｏｒｙ  ｆｏｏｔ  ｐｒｉｎｔ）及びＰＢＡマッピング）はＨＤＦＳのＦＴＬオーバーヘッドより６４０，０００倍更に大きい。言い換えると、メモリフットプリント観点から、同一のマッピング方法を仮定すると、ＫＶ−ストア格納装置のＦＴＬは６４０，０００個のＨＤＦＳ格納装置のＦＴＬを処理する。効率性を最適化させ、隠されたＦＴＬレイテンシを除去するそれぞれ異なる能力を有するＦＴＬｓにマッピングされる格納装置のクラスターを生成することが有用である。
【００１９】
ストレージ距離グラフ／ツリー（ｓｔｏｒａｇｅ  ｄｉｓｔａｎｃｅ  ｇｒａｐｈ／ｔｒｅｅ）はトポロジーグラフ／ツリー（ｔｏｐｏｌｏｇｙ  ｇｒａｐｈ／ｔｒｅｅ）をパーストレージ性能（ｐｅｒ−ｓｔｏｒａｇｅ  ｐｅｒｆｏｒｍａｎｃｅｓ）に結合させる。このようなアプローチは、ストレージ性能の変化／可変を比較すると、トポロジーが概ね変わらないという事実の利点を利用する。特に、ＦＴＬの予測できないレイテンシはＳＬＯｓ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ｏｂｊｅｃｔｉｖｅｓ）で回避する必要がある。
【００２０】
新しいＴＡＳＴＥ（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ、テナントアウェアストレージシェアリングエンジン）は複数の入力を扱う。ＴＡＳＴＥに対する１つの入力は、内装された情報（例えば、レイテンシ、帯域幅、位相、格納装置間の距離等）を有するストレージリソース情報（ｓｔｏｒａｇｅ  ｒｅｓｏｕｒｃｅ  ｉｎｆｏｒｍａｔｉｏｎ）からのものである。ＴＡＳＴＥに対する第２番目の入力は、アプリケーションの要求事項と共にテナント（ｔｅｎａｎｔｓ、又はアプリケーション）の仕様（ｓｐｅｃｉｆｉｃａｔｉｏｎ）である。ＴＡＳＴＥはアプリケーションの要求事項を満たすためにクラスター（ストレージの集合）を提供する。その上、ＴＡＳＴＥはＦＴＬページサイズ及び持続性（ｐｅｒｓｉｓｔｅｎｃｙ）と共にＦＴＬマッピングを有するサブクラスター（ｓｕｂ−ｃｌｕｓｔｅｒｓ）を提供する。更に、ＴＡＳＴＥは、所定のアプリケーションの部分的な要求事項、例えば二重化、並列化、及び保安も具現する。最後に、ＴＡＳＴＥはダイナミックプールコントロール（ｄｙｎａｍｉｃ  ｐｏｏｌ  ｃｏｎｔｒｏｌ）のために提供される。例えば、データ移行は、ロードバランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）、容量プロビジョニング（ｃａｐａｃｉｔｙ  ｐｒｏｖｉｓｉｏｎｉｎｇ）のために支援される。
【００２１】
≪ＦＴＬクラスターマッピング≫
【００２２】
ＴＡＳＴＥはストレージリソースプール（ｓｔｏｒａｇｅ  ｒｅｓｏｕｒｃｅ  ｐｏｏｌｓ）を認識する。例えば、ＴＡＳＴＥは、格納装置間の近接度（ローカル又はリモート、及び距離）のみならず、低性能格納装置から高性能格納装置を区別する。例えば、２つのテナント（アプリケーション）がＨＤＦＳ及びＫＶ−ストアの各々に対する格納を要求すると仮定する。
【００２３】
上述したように、ＨＤＦＳのＦＴＬはより大きいページ細分化（ｇｒａｎｕｌａｒｉｔｙ）によって相対的に小さいフットプリントマッピング（ｓｍａｌｌ−ｆｏｏｔｐｒｉｎｔ  ｍａｐｐｉｎｇ）である。従って、複数の格納装置（仮想又は物理）はＬＢＡ（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）インターフェイスを有する自体のＦＴＬに従う他の仮想格納装置を形成するためにクラスター化される。
【００２４】
ＨＤＦＳと異なり、ＫＶ−ストアサービスはより高性能のストレージを要求するだけでなく、ＦＴＬのフットプリントもＨＤＦＳのＦＴＬフットプリントよりはるかに大きい。従って、ＴＡＳＴＥは、ＫＶ−ストア使用のためのＦＴＬクラスターを形成するためにより小さいがより高性能の格納装置を割当てる。
【００２５】
≪ＦＴＬページサイズ≫
【００２６】
比較例として、ＨＤＦＳはそのクラスターに亘って６４ＭＢページを有する。しかし、ＫＶ−ストアはＫＶペア配置（ｐａｉｒ  ｐｌａｃｅｍｅｎｔｓ）によってそれぞれ異なるページサイズを有する。例えば、１００Ｂ、３２ＫＢ（ｋｉｌｏｂｙｔｅｓ）、２ＭＢである。
【００２７】
≪複製因子（ｒｅｐｌｉｃａｔｉｏｎ  ｆａｃｔｏｒ）≫
【００２８】
また、ＴＡＳＴＥはリソース管理の観点である程度の複製を提供する。例えば、クラスター内の各格納装置は他の格納装置によってミラーリングされる。ＦＴＬはデータ複製を制御する。
【００２９】
アプリケーションはインターノード（ｉｎｔｅｒ−ｎｏｄｅ）及びインターラック（ｉｎｔｅｒ−ｒａｃｋ）複製要求事項の両方を有する（即ち、データは、同一ノード若しくは同一ラックのノードフェイル（ｆａｉｌｕｒｅ）又は電力フェイルによるデータ損失を防止するために、それぞれ異なる格納装置及びそれぞれ異なるノードの格納装置にコピーされる必要がある）。また、このような状況（ｃｏｎｔｅｘｔ）はリソースマネージャに通知されなければならない。ＴＡＳＴＥは、ノード内の複製を提供するようにＴＡＳＴＥを活性化させながら、このような要求事項を交換するためにＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）を提供する。結論的に、例えば、ＨＤＦＳは、１つの複製因子を解放し、目標複製因子が３つである場合にのみインターラック複製に集中する必要がある。代替的に又は追加的に、ＴＡＳＴＥは、イントララック（ｉｎｔｒａ−ｒａｃｋ）複製のみならず、インターラック（ｉｎｔｅｒ−ｒａｃｋ）複製を管理する。
【００３０】
≪並列化（ｐａｒａｌｌｅｌｉｓｍ）≫
【００３１】
一部のテナント（ｔｅｎａｎｔｓ）はレイテンシ及び帯域幅に共に敏感であるが、個別的な利用可能な物理的な格納装置はそれらの要求事項を満たす充分な性能を提供しない。この場合、ＴＡＳＴＥはアプリケーションの要求事項を必要とする新たな仮想格納装置を生成する。新たな仮想格納装置は、キュー遅延（ｑｕｅｕｅ  ｄｅｌａｙｓ）を減らす大きなボリュームＩ／Ｏ内のレイテンシを減少させながら、より広い総帯域幅（ｈｉｇｈｅｒ  ａｇｇｒｅｇａｔｅ  ｂａｎｄｗｉｄｔｈ）を示す。
【００３２】
≪ダイナミックリソースプール制御（ｄｙｎａｍｉｃ  ｒｅｓｏｕｒｃｅ  ｐｏｏｌ  ｃｏｎｔｒｏｌ）≫
【００３３】
上述したように、ストレージプール（ｓｔｏｒａｇｅ  ｐｏｏｌｓ）は、時間、容量プロビジョニング、ロードバランシング等に対する性能特性変化により更新される必要がある。移行はダイナミックプール制御を取り扱う１つの方法である。ＴＡＳＴＥは、物理的、仮想的、ＦＴＬ−クラスターの部分、ＦＴＬ−クラスターの全体等のようなデータの格納に使用される格納装置の種類に関係なくデータを移行する。ＴＡＳＴＥがその基礎となる（ｕｎｄｅｒｌｙｉｎｇ）ストレージタイプ及びＦＴＬ実装を認識するため、このような移行が可能になる。
【００３４】
図１は、クライアントマシンと通信する多様なホストマシンを有するデータセンターを示す図である。図１を参照すると、データセンター１０５はホストマシン（１１０、１１５、１２０、１２５、及び１３０）を含む。以下の図２及び図３で、ホストマシン（１１０、１１５、１２０、１２５、及び１３０）について更に詳細に示す。データセンター１０５は、ホストマシン（１１０、１１５、１２０、１２５、及び１３０）が互いに通信し、クライアントマシン１４０と通信するように許容するネットワーク１３５を含む。ネットワーク１３５はＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）又はＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を有する多様な種類のネットワークである。ネットワーク１３５はイーサーネット（登録商標）のような有線技術、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ若しくは同等又は代替可能な技術のような無線技術、或いは無線及び有線の組合せを利用する。また、図１では、ホストマシン（１１０、１１５、１２０、１２５、及び１３０）が１つの地理的領域（ｓｉｎｇｌｅ  ｇｅｏｇｒａｐｈｉｃ  ａｒｅａ）内に位置するが、他の実施形態として、ホストマシン（１１０、１１５、１２０、１２５、及び１３０）はインターネット（例えば、ＶＰＮ（ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）のようなオーバーレイネットワーク（ｏｖｅｒｌａｙ  ｎｅｔｗｏｒｋ））のようなグローバルネットワーク（ｇｌｏｂａｌ  ｎｅｔｗｏｒｋ）を利用して地理的に分散されて互いに接続される。
【００３５】
ホストマシン１１０はアプリケーション１４５を支援する。アプリケーション１４５は、ＳＳＨ（ｓｅｃｕｒｅ  ｓｈｅｌｌ）、ウェブインターフェイス、又はＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）を通じてクライアントマシン１４０によって使用されるアプリケーションである。
【００３６】
一方、図１には、全てタワーコンピュータであり同一のホストマシン（１１０、１１５、１２０、１２５、及び１３０）を示したが、本実施形態は、全てそれぞれ異なるホストマシン（１１０、１１５、１２０、１２５、及び１３０）のための任意の所望するフォーマットを支援する。例えば、一部のホストマシン（１１０、１１５、１２０、１２５、及び１３０）は多様なモデル及び製造のタワーコンピュータであり、他のホストマシン（１１０、１１５、１２０、１２５、及び１３０）は多様なモデル及び製造のラックマウントサーバー（ｒａｃｋ−ｍｏｕｎｔｅｄ  ｓｅｒｖｅｒ）である。それぞれ異なるホストマシン（１１０、１１５、１１５、１２０、１２５、及び１３０）は、プロセッサの能力、利用可能なメモリ、及び利用可能なストレージ（これらの全ては多様なフォーマットである）の面でそれぞれ異なる能力を有する。例えば、一部のホストマシン（１１０、１１５、１２０、１２５及び１３０）はメンバー（ｍｅｍｂｅｒ）のためにＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を使用する。反面、他のホストマシンはＰＲＡＭ（ｐｅｒｓｉｓｔｅｎｔ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＦｅＲＡＭ（ｆｅｒｒｏｅｌｅｃｔｒｏｎｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、又はＭＲＡＭ（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）のようなＮＶＲＡＭ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を使用する。同様に、一部のホストマシン（１１０、１１５、１２０、１２５、及び１３０）は格納のための一般的なハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅｓ）を使用する。反面、他のホストマシンはフラッシュメモリ（多様なＮＶＲＡＭ）又はＭＲＡＭを使用する。また、ここに列挙するか否かに拘らず、他の可能性も本発明の概念の範囲内にある。
【００３７】
上述したように、ホストマシン（１１０、１１５、１２０、１２５、及び１３０）は全て本質的に同一であり相互交替可能である。従って、本明細書の残る部分でホストマシン１１０に対する任意の参照は、制限無しにホストマシン（１１０、１１５、１２０、１２５、及び１３０）の任意又は全てを含む。
【００３８】
一方、図１には、モニター、キーボード、及びマウスを有する一般的なミニタワーコンピュータシステムとしてクライアントマシン１４０を示したが、クライアントマシン１４０は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、及び他の所望の技術形態を有する任意の所望の形態を取る。また、図１には、１つのクライアントマシン１４０を示したが、本実施形態は同時に任意の数のクライアントマシン１４０を支援する。
【００３９】
図２は、本発明の一実施形態による図１のホストマシン１１０の詳細図である。図２を参照すると、ホストマシン１１０は、プロセッサ２０５（ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）とも称する）、メモリ２１０、ネットワークコネクター２１５、及び格納装置２２０を含む。プロセッサ２０５は、多様なプロセッサ、例えばプロセッサ２０５は、インテルジーオン（Ｉｎｔｅｌ  Ｘｅｏｎ（登録商標））、セレロン（Ｃｅｌｅｒｏｎ（登録商標））、アイテニアム（Ｉｔａｎｕｉｍ（登録商標））、又はアトムプロセッサ（Ａｔｏｍ（登録商標）  ｐｒｏｃｅｓｓｏｒ）、ＡＭＤオプテロンプロセッサ（Ｏｐｔｅｒｏｎ（登録商標）  ｐｒｏｃｅｓｓｏｒ）、アームプロセッサ（ＡＲＭ（登録商標）  ｐｒｏｃｅｓｓｏｒ）等である。上述したように、メモリ２１０は、フラッシュメモリ、ＳＲＡＭ、ＰＲＡＭ等のような多様なメモリであるが、一般的にはＤＲＡＭである。ネットワークコネクター２１５は図１のネットワーク１３５にホストマシン１１０を接続する多様なコネクターである。ネットワークコネクター２１５は、例えばイーサーネット（登録商標）インターフェイス又は無線インターフェイスである。格納装置２２０はデータセンターによって使用される多様な種類の格納装置である。ＳＳＤｓ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ）が格納装置２２０の中の１つとして可能であるが、格納装置２２０はハードディスクドライブ（ＨＤＤｓ）又は他のロングターム（ｌｏｎｇ−ｔｅｒｍ）格納装置のような他の格納形態（ｓｔｏｒａｇｅ  ｆｏｒｍｓ）を含む。
【００４０】
また、ホストマシン１１０は、テナントアウェアストレージシェアリングエンジン２２５（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ：ＴＡＳＴＥ）を含む。ＴＡＳＴＥ２２５は、テナント（ｔｅｎａｎｔｓ、即ちテナント１４５及び２３０のようなアプリケーション）の要求事項に対する情報を使用して格納装置アレイ（ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ  ａｒｒａｙ）の動作を管理する。図２には、ホストマシン１１０によってホストされた（ｈｏｓｔｅｄ）テナント１４５及び２３０を示したが、本実施形態はホストマシン１１０と異なるマシンによってホストされたテナントを支援する。即ち、ＴＡＳＴＥ２２５は、ローカルアプリケーション（ｌｏｃａｌ  ａｐｐｌｉｃａｔｉｏｎｓ）のみならず、遠隔アプリケーション（ｒｅｍｏｔｅ  ａｐｐｌｉｃａｔｉｏｎｓ）のための格納装置アレイを管理する。
【００４１】
図３は、図１のホストマシン１１０の追加的な詳細図である。図３を参照すると、一般的に、マシン又はホストマシン１１０は１つ以上のプロセッサ２０５を含む。１つ以上のプロセッサ２０５はメモリ制御器３０５及びクロック３１０を含む。メモリ制御器３０５及びクロック３１０はマシン又はホストマシン１１０の構成要素の動作を調整するために利用される。また、プロセッサ２０５はメモリ２１０に接続される。メモリ２１０は、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、又は他の状態維持媒体（ｓｔａｔｅ  ｐｒｅｓｅｒｖｉｎｇ  ｍｅｄｉａ）等のようなものを含む。また、プロセッサ２０５は、格納装置２２０に接続され、ネットワークコネクター２１５に接続される。ネットワークコネクター２１５は、例えばイーサーネット（登録商標）コネクター又は無線コネクターである。また、プロセッサ２０５は使用者インターフェイス３２５及び入力／出力インターフェイスポートに付着されるようにバス３２０に接続される。入力／出力インターフェイスポートは他の構成要素の中の入力／出力エンジン３３０を利用して管理される。
【００４２】
図４は、アプリケーションの要求事項を受信して格納装置アレイを調節する図２のＴＡＳＴＥ（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ  ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ）２２５を示す図である。図４を参照すると、ＴＡＳＴＥ２２５はストレージリソース情報４０５及びテナント要求事項４１５を受信する。ストレージリソース情報４０５は格納装置アレイ４１０内の格納装置に関する情報である。このような情報を利用して、ＴＡＳＴＥ２２５は図２のテナント１４５及び２３０が有する様々な要求事項を解決するように格納装置アレイ４１０を構成する。このような要求事項は（このような要求事項が図２のＴＡＳＴＥ２２５によってどのようにして満たされるか否かを示す後述の図面で提供する実施形態と共に）次のようなものを含む。
【００４３】
帯域幅４２０：図２のテナント１４５及び２３０によって要求される最小帯域幅。図２のテナント１４５及び２３０から最小帯域幅の要求事項が与えられると、ＴＡＳＴＥ２２５は要求された最小帯域幅４２０を提供する格納装置アレイ４１０から格納装置を選択する。
【００４４】
レイテンシ４２５：図２のテナント１４５及び２３０によって許容される最大レイテンシ。図２のテナント１４５及び２３０から最大レイテンシの要求事項が与えられると、ＴＡＳＴＥ２２５は要求された最大レイテンシ４２５を提供する格納装置アレイ４１０から格納装置を選択する。
【００４５】
クラスターサイズ４３０：図２のテナント１４５及び２３０を支援するために幾つの個別格納装置が割当られるべきかを示す。要求されたクラスターサイズが与えられると、ＴＡＳＴＥ２２５は要求されたクラスターサイズ４３０を提供する充分な格納装置を選択する。
【００４６】
ページサイズ４３５：図２のテナント１４５及び２３０を支援するために割当られた各格納装置のためのページサイズがどのぐらい大きくあるべきかを示す。要求されたページサイズ（或いは、テナント１４５又は２３０がクラスター内のそれぞれ異なる格納装置のためにそれぞれ異なるページサイズを要求するために要求されたページサイズ）が与えられると、ＴＡＳＴＥ２２５は要求されたページサイズ４３５を使用するクラスターで多様な格納装置を構成する。
【００４７】
二重化４４０（複製因子（ｒｅｐｌｉｃａｔｉｏｎ  ｆａｃｔｏｒ）とも称する）：図２のテナント１４５及び２３０のための格納装置アレイ４１０内に各データのコピーがどのぐらい多く格納されるべきかを示す。要求された二重化が与えられると、ＴＡＳＴＥ２２５は要求された二重化４４０を提供する充分な格納装置を選択する。
【００４８】
二重化４４０及びクラスターサイズ４３０は（関連する場合）互いに異なる概念である。図２のテナント１４５及び２３０が３つのクラスターサイズ４３０を指定する場合、それらは３つの格納装置がクラスター内に含まれることを単に要求する。図２のテナント１１４５及び２３０が３つの二重化４４０を指定する場合、それらは各データが３つの異なる格納装置に格納されることを要求する。従って、図２のテナント１４５及び２３０のためのクラスターサイズは少なくとも３つ必要である（各データの３つのコピーを格納する少なくとも３つの異なる格納装置が存在するべきであるため）が、クラスターの大きさは更に大きくなる可能性がある。クラスターサイズ４３０と二重化４４０との間の差異を理解する他の方法は、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）レベル０とレベル１との間の差異に対する比較である。ＲＡＩＤ０は、任意の個別ディスクのフェイルに対する二重化は無いが、より大きな全体格納容量（各ディスクの容量の合計と同一である）を提供する。反面、ＲＡＩＤ１は、ｎ個のディスクのアレイでｎ−１個のディスクまでのフェイル可能性に対して保護するが、個別格納ディスクの最小容量と同一の容量を提供する。
【００４９】
並列化４４５：図２のテナント１４５及び２３０のためのサービス目標値（ｄｅｓｉｒｅｄ  ｄｅｇｒｅｅ）を提供する格納装置を結合する。図２のテナント１４５及び２３０が格納装置アレイ４１０内の個別格納装置によって提供されることよりもより広い帯域幅及び／又はより小さなレイテンシを要求する可能性がある。このような状況で、要求された並列化が与えられると、ＴＡＳＴＥ２２５は要求された並列化４４５を提供する格納装置を選択する。そうすると、このような選択された格納装置は所望の帯域幅及び／又はレイテンシを提供する仮想格納装置に結合される。
【００５０】
並列化４４５は帯域幅４２０及びレイテンシ４２５と一部重なるが、それらは互いに差異がある。例えば、格納装置アレイ４１０内のいずれの個別格納装置も要求された帯域幅４２０及び／又はレイテンシ４２５を提供しないが、図２のテナント１４５及び２３０が帯域幅４２０及び／又はレイテンシ４２５の要求を指定する場合、ＴＡＳＴＥ２２５は並列化を呼出す試図をせずに、要求事項を満たさないフェイルを返す。そうすると、図２のテナント１４５及び２３０は、それらがより少ない要求事項で満たされるか否か、又はそれらが並列化４４５のような要求事項を確立することを望むか否かを決定する。（勿論、格納装置アレイ４１０内のいずれの個別格納装置も帯域幅４２０及び／又はレイテンシ４２５の要求事項を満たさない場合、必要であれば、ＴＡＳＴＥ２２５は自動的に並列化４４５の追加的な要求事項を適用する。）
【００５１】
持続性４５０：図２のテナント１４５及び２３０のためのデータが消去される前に格納装置にどれくらい長い間維持されるべきか、又はそのようなデータが電力フェイルに対して生存するか（又は、両方）を示す。図２のテナント１４５及び２３０は、それらのデータが劣化（ａｇｉｎｇ）によって消去されずに、所定の最小時間の間にそれらの格納装置に維持されることを望む（即ち、それらのデータは所定の最小時間の間格納された理由のみで消去されるべきではない）。ＴＡＳＴＥ２２５は特定の時間の間データを維持するために図２のテナント１４５及び２３０を支援する格納装置アレイ４１０内の格納装置を構成する。例えば、散発的にアクセスされるデータのためのキーバリューストアを利用するアプリケーションはあまりにも速やかにデータが無効化されないように保証することを望む。ＴＡＳＴＥ２２５は特定の時間の間データが無効化されない格納装置を選択し、後にそのデータは無効化／ガーベッジコレクション下に置かれる。
【００５２】
選択的に、図２のテナント１４５及び２３０は、データが電力フェイルに対して維持されることを保証することを望む。不揮発性ストレージ（電源が切れてもデータが維持されること）を利用することは解決策の中の１つである。しかし、持続性は、電力フェイルに拘らずにデータが格納装置に書き込まれたことが確実に確認されることを保証する能力も要求する。例えば、記憶装置は、ＤＲＡＭ内のバッファにデータを格納し、書き込まれるデータの所定の量がある場合にのみデータを記憶装置に書き込む。バッファーリングされたデータがロングタームストレージに書き込まれる前に電力フェイルが発生した場合、バッファのデータは損失する。このような問題を解決するために、持続性を要求するアプリケーションはアプリケーションを持続性−保証（ｐｅｒｓｉｓｔｅｎｃｙ−ｇｕａｒａｎｔｅｅｄ）ＦＴＬ及び物理装置（ｐｈｙｓｉｃａｌ  ｄｅｖｉｃｅ）にマッピングする。ここで、物理装置は急な電力損失でもデータ損失を防止する内装された高容量キャパシターを有するＳＳＤである。
【００５３】
保安４５５（分離（ｉｓｏｌａｔｉｏｎ）とも称する）：１つの特定のテナントのためのデータは１つ以上の他のテナントよりも格納装置アレイ４１０内の異なる格納装置に格納されなければならない。例えば、図２のテナント１４５は、そのデータが図２のテナント２３０のためのデータとして格納装置に格納すべきではないと指定する。ＴＡＳＴＥ２２５は、１つ以上の他のテナントから図２のテナント１４５のデータを分離する格納装置アレイ１４０内の格納装置を選択する。
【００５４】
移行４６０：テナントのためのデータは格納装置アレイ４１０内の１つの格納装置から他の格納装置に移行されなければならない。図２のテナント１４５及び２３０は格納装置アレイ４１０内の１つの格納装置から他の格納装置にデータを移行させることを要求する。或いは、ＴＡＳＴＥ２２５は、容量プロビジョニング（ｃａｐａｃｉｔｙ  ｐｒｏｖｉｓｉｏｎｉｎｇ）又はロードバランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）のような他の理由として、図２のテナント１４５及び２３０のためのデータを移行するように決定する。いずれにしても、ＴＡＳＴＥ２２５は格納装置アレイ４１０内の１つの格納装置から他の格納装置にデータを移行するように管理する。
【００５５】
また、図４に示したこと以上の他の要求事項４１５が存在する。例えば、図２のテナント１４５及び２３０はストレージの特定の容量（例えば、２ＧＢ（ｇｉｇａｂｙｔｅｓ））がそれらの各々に割当られることを指定する。本実施形態は、図４に明示的に示すか又は示さない任意の要求事項４１５を支援する。
【００５６】
図５は、図２のＴＡＳＴＥ２２５の詳細図である。図５で、ＴＡＳＴＥ２２５は、受信ロジック５０５、ストレージ５１０、選択ロジック５１５、仮想格納装置ロジック５２０、及び変換階層ロジック５２５を含む。受信ロジック５０５は、図２のテナント１４５及び２３０のような多様なリソースから図４のストレージリソース情報４０５及び／又は図４のテナント要求事項４１５のような情報を受信する。ストレージ５１０は図４の格納装置アレイ４１０内の格納装置に関する情報を格納する。格納装置に関する情報は、どの格納装置がどのノード内に存在するか、どの種類の格納装置が利用可能であるか、それらのサイズ、帯域幅、及びレイテンシ等を含む。どの格納装置が“利用可能である（ａｖａｉｌａｂｌｅ）”と看做されるかは、場合によって変わる。例えば、図２のテナント１４５が図２のテナント２３０からの分離を要求されたと仮定する。その後、図２のテナント２３０が格納装置のクラスターを要求する場合、図２のテナント１４５に割当られた任意の格納装置は図２のテナント２３０のためのクラスターを選択する目的のために利用可能であると看做すべきではない。
【００５７】
選択ロジック５１５はテナントのための図４の要求事項４１５を満たす図４の格納装置アレイ４１０から格納装置を選択する。仮想格納装置ロジック５２０は図４の格納装置アレイ４１０内の１つ以上の物理格納装置から仮想格納装置を“構成（ｃｏｎｓｔｒｕｃｔ）”する。例えば、図４のテナント要求事項４１５が図４の並列化４４５を指定すると、仮想格納装置ロジック５２０はそのような要求事項を満たす物理格納装置が無い場合に要求された帯域幅及び／又はレイテンシを提供する仮想格納装置を“構成（ｃｏｎｓｔｒｕｃｔ）”する。
【００５８】
変換階層ロジック５２５はテナント要求事項を満たすように使用される物理及び／又は仮想格納装置に用いられる変換階層を確立する。変換階層ロジック５２５が何をするかはテナント要求事項が何であるかによって変わる。本実施形態で、テナント要求事項がクラスターサイズを含む場合、変換階層ロジック５２５はクラスターサイズ内で格納装置に亘って論理アドレスを物理アドレスにマッピングする変換階層を確立する。代替的に、仮想格納装置がテナントによる使用のために生成される場合、変換階層ロジック５２５は、テナントにシングル格納装置として見えるように変換階層を確立するが、仮想格納装置から仮想格納装置を確立する多様な物理格納装置にアドレスをマッピングする。他の実施形態で、テナント要求事項が１つ以上のページサイズを含む場合、変換階層ロジック５２５は指定されたページサイズの中のいずれか１つに従って多様な格納装置をページに分割する変換階層を確立する。他の実施形態で、テナント要求事項が複製因子を含む場合、変換階層ロジック５２５は、物理格納装置に亘って複製を支援するために、シングル論理アドレスを多様な物理格納装置上の複数の物理アドレスにマッピングする変換階層を確立する。上述したように、物理格納装置はシングルノード内又は複数のノードに亘って存在する。他の実施形態で、テナント要求事項が持続性要求事項を含む場合、変換階層ロジック５２５は、物理格納装置上に格納された個別データがどれくらい長い間変わらないかを追跡する変換階層を確立し、そして閾値時間（ｔｈｒｅｓｈｏｌｄ  ａｍｏｕｎｔ  ｏｆ  ｔｉｍｅ）が経過した後にのみ無効化のためのデータをマーク（ｍａｒｋ）する。また、本実施形態は複数のこのようなテナント要求事項を支援する変換階層を確立する変換階層ロジック５２５を含む。
【００５９】
図６は、図５の選択ロジック５１５の詳細図である。図６を参照すると、選択ロジック５１５は、クラスター選択ロジック６０５、構成ロジック６１０、複製ロジック６１５、持続性ロジック６２０、分離ロジック６２５、及び移動ロジック６３０を含む。クラスター選択ロジック６０５は図４のクラスターサイズ４３０を満たす格納装置アレイ４１０から格納装置のクラスターを選択する。構成ロジック６１０は図４のページサイズ４３５を使用する格納装置アレイ４１０内の１つ以上の格納装置を構成する。複製ロジック６１５はデータセンター１０５のノード内の異なる格納装置に亘ってデータの複製を管理する。持続性ロジック６２０はデータがアクセスされなくても特定の最小区間の間データが持続されるように図４の格納装置アレイ４１０内の格納装置を構成する。或いは、持続性ロジック６２０は予期しない電力フェイルに対してデータが保持されるように保証する格納装置を選択ロジック５１５が選択するようにする。分離ロジック６２５は１つ以上の識別されたテナントと格納装置を共有しないように図４の格納装置アレイ４１０内の格納装置（又は格納装置のクラスター）を選択する。そして、移行ロジック６３０は、図２のテナント１４５及び／又は２３０の要求又は図４のＴＡＳＴＥ２２５自体によって、図４の格納装置アレイ４１０内の１つの格納装置から他の格納装置へのデータの移行を管理する。
【００６０】
図５〜図６で、多様な構成要素をロジックとして説明した。このようなロジックは、目標結果を達成する適切に設計された回路、又は適切に変形された汎用回路、例えばＰＲＯＭ（ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＰＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、又は任意の等価の設計である。また、このようなロジックは適合するプロセッサ上で実行されるソフトウェアを利用して具現される。
【００６１】
上述した論議は図２のＴＡＳＴＥ２２５がどのようにして動作するかに対する一部の説明を提供する。しかし、一部の例は図２のＴＡＳＴＥ２２５が何をするかを明確にする助けになる。開始するには、格納装置アレイ４１０の例が有用である。
【００６２】
図７は、図４の格納装置アレイ４１０の一例を示す図である。図７を参照すると、格納装置アレイ４１０は全体で２５個の格納装置を含む。このような格納装置は２つの格納装置のクラスに大略的に区分される。格納装置７０５は高性能格納装置であり、反面、格納装置７１０は低性能格納装置である。格納装置（７０５及び７１０）は、ノード（７１５、７２０、７２５、７３０、及び７３５）に亘って区分される。ここで、各ノードは図１のデータセンター１０５内のシングルマシン（ｓｉｎｇｌｅ  ｍａｃｈｉｎｅ）を示すか又はシングルラック（ｓｉｎｇｌｅ  ｒａｃｋ）を示す。
【００６３】
図７には格納装置アレイ４１０の一例を示したが、本実施形態は格納装置アレイ４１０のための任意の所望の構成を支援する。例えば、単に５個ではなく、任意の数のノードが存在する。また、各ノードは、単に５個ではなく、格納装置の任意の数を含む。各ノードは格納装置アレイ４１０内に他のノードと異なる数の格納装置を含む。また、各ノードはゼロ（ｚｅｒｏ）を含むそれぞれ異なる類型の異なる数の格納装置を含む。例えば、１つのノードは高性能格納装置７０５のみを含み、他のノードは低性能格納装置７１０のみを含む。格納装置の２つ以上のクラス（図７で、高性能格納装置７０５及び低性能格納装置７１０）が存在し、格納装置は１つ以上の基準に従って区分される。そして、図７の格納装置をリンクするように見える任意の他のスレッド（ｔｈｒｅａｄ）は他の実施形態でも可変される。
【００６４】
図８は、図７の格納装置アレイ４１０内で確立される仮想格納装置を示す図である。図８を参照すると、図２のテナント１４５は帯域幅４２０及び／又はレイテンシ４２５並びに並列化４４５を識別する図４の特定の要求事項４１５を有する。図４のこのような要求事項４１５は、図２のテナント１４５が特別な最小帯域幅及び／又は最大レイテンシを望むことを示し、このような要求事項を提供する利用可能なシングル格納装置が無い場合、図２のＴＡＳＴＥ２２５がこのような要求事項を満たす仮想格納装置を構成することを示す。また、格納装置アレイ４１０内のいずれのシングル格納装置もこのような要求事項を満たさないと仮定する。従って、図２のＴＡＳＴＥ２２５はノード７１５で２つの格納装置から仮想格納装置８０５を構成する。図８で、ＴＡＳＴＥ２２５は低性能格納装置７１０が図２のテナント１４５のために充分であることを知るために図２のテナント１４５に関する情報を利用するが、図２のテナント１４５が高性能格納装置７０５から支援を必要とする場合、図２のＴＡＳＴＥ２２５は高性能格納装置７０５から仮想格納装置８０５を構成する。
【００６５】
仮想格納装置８０５が新しいフラッシュ格納装置（例えばＳＳＤ）を示すため、仮想格納装置８０５は自体のフラッシュ変換階層（ＦＴＬ）８１０を含む。ＦＴＬ８１０は、図２のテナント１４５によって使用される論理ブロックアドレスと仮想格納装置８０５を構成する格納装置によって使用される物理ブロックアドレスとの間のマッピングを管理する。
【００６６】
図９は、図７の格納装置アレイ４１０で多様なアプリケーションの要求事項を満たすように割当られた多様なクラスター及び格納装置のページサイズを示す図である。図９を参照すると、図２のテナント１４５は４つの仮想格納装置のクラスターサイズ４３０を指定する。各仮想格納装置は２つの並列化４４５を含む。図２のテナント１４５は、例えばＨＤＦＳである。同様に、図２のテナント２３０は、ＫＶ−ストアであり、３つの仮想格納装置のクラスターサイズ４３０を指定する。各仮想格納装置は２つの並列化４４５を含む。このような結果を達成するために、図２のＴＡＳＴＥ２２５は各テナントに適合する仮想格納装置を構成する。ＨＤＦＳが高性能格納装置を要求しないため、ＴＡＳＴＥ２２５は低性能格納装置７１０を利用するＨＤＦＳのためのクラスターを構成する。従って、図２のＴＡＳＴＥ２２５はクラスター９２０に集合させる仮想格納装置（８０５、９０５、９１０、及び９１５）を構成する（簡易化のために図９にはこのような仮想格納装置のためのＦＴＬを図示しない）。同様に、ＫＶ−ストアは高性能格納装置で構成することが有利であるため、図２のＴＡＳＴＥ２２５は高性能格納装置７０５から仮想格納装置（９２５、９３０、及び９３５）を構成する。そうすると、仮想格納装置（９２５、９３０、及び９３５）はクラスター９４０に集合される。
【００６７】
また、図９には図４のページサイズ４３５の使用を示す。図９で、図２のテナント１４５は仮想格納装置（８０５、９０５、９１０、及び９１５）のために６４ＭＢ（ページサイズ９４５）の図４のページサイズ４３５を指定する。反面、ＫＶ−ストアは仮想格納装置（９２５、９３０、及び９３５）のために１００Ｂ、３２ＫＢ、及び２ＭＢ（ページサイズ９５０、９５５、及び９６０）の図４のページサイズ４３５をそれぞれ指定する。それぞれ異なるテナントは図４のそれぞれ異なるページサイズ４３５を指定し、シングルテナントは全ての格納装置（仮想又は物理）のために図４の同一のページサイズ４３５を必ずしも使用すべきではないことに留意しなければならない。
【００６８】
図１０は、図７の格納装置アレイ４１０内の格納装置間の複製を示す図である。図１０を参照すると、図９と同様に、図２のテナント１４５は４つの格納装置の図４のクラスターサイズ４３０を指定する。しかし、図４の並列化４４５を指定する代わりに、図２のテナント１４５は２つの二重化４４０を指定する。即ち、各データはノード内の２つの格納装置上に格納されなければならない。それにより、図２のテナント２２５は仮想格納装置（８０５、９０５、９１０、及び９１５）を構成する。しかし、２つの格納装置の両方が結合されたくらい大きく見える仮想格納装置を構成する個別格納装置を結合する代わりに、図２のＴＡＳＴＥ２２５は１つの格納装置から各仮想格納装置内の他の格納装置にデータをコピーするように格納装置を管理する。このようなコピー動作を動作１００５として図示する。
【００６９】
図１０は１つのノード内の格納装置間でコピーすることを示すことに留意しなければならない。また、図２のＴＡＳＴＥ２２５は、ノードを除去する電力損失に対する保護のために、異なるノード内の（即ち、異なるラック内の）格納装置間のデータのコピーを管理する。このような方式で、データ二重化は、格納装置のフェイルに対して保護するだけでなく、電力フェイルと共に発生する１つのノード内の全ての格納装置が同時に利用不可能になることに対して保護する。
【００７０】
図１１は、図７の格納装置アレイ４１０内の格納装置間のデータ移行を示す図である。図１１を参照すると、図２のテナント１４５又は図２のＴＡＳＴＥ２２５自体が、データが１つの格納装置から他の格納装置に移行されなければならないことを決定する。例えば、図２のテナント１４５は前の格納装置が支援すること以上のストレージの増加を要求する。そうすると、図２のＴＡＳＴＥ２２５は、動作１１０５に示したように、新たな格納装置にデータを移行する。或いは、ウェアレベリングの理由（又は他の理由）によって、図２のＴＡＳＴＥ２２５は、動作１１０５に示すように、前の格納装置から新たな格納装置にデータを移行する必要を判別する。
【００７１】
図１２は、本発明の一実施形態による図４のアプリケーションの格納要求事項４１５を受信して格納装置アレイ４１０を調節する図２のＴＡＳＴＥ２２５のための一例によるフローチャートである。図１２を参照すると、１２０５段階で、図２のＴＡＳＴＥ２２５はテナント（アプリケーション）のための図４の要求事項４１５を受信する。１２１０段階で、図２のＴＡＳＴＥ２２５は図１のデータセンター１０５で利用可能なリソースを識別する。即ち、利用可能なリソースは図４の格納装置アレイ４１０内の格納装置及びそれらの全ての特性である。このような情報は図５のストレージ５１０からアクセスされる。１２１５段階で、図５の選択ロジック５１５はテナントのための図４の要求事項４１５を満たす図４の格納装置アレイ４１０内の格納装置の部分集合（ｓｕｂｓｅｔ）を選択する。１２２０段階で、図５の仮想格納装置ロジック５２０は、必要であれば、少なくとも１つの物理格納装置から仮想格納装置を構成する。１２２５段階で、図５の仮想格納装置ロジック５２０はアプリケーションの要求事項を満たす変換階層を確立する。図５を参照して上述したように、図５の変換階層ロジック５２５はアプリケーションの要求事項の１つ以上の異なる目的を満たす変換階層を確立する。１２２５段階はこのような目的を達成する変換階層を具現する。
【００７２】
図１３Ａ〜図１３Ｃは、本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図４の格納装置アレイ４１０を具現する図２のＴＡＳＴＥ２２５のための一例によるフローチャートである。図１３Ａを参照すると、１３０３段階で、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４のクラスターサイズ４３０を受信する。１３０６段階で、図６のクラスター選択ロジック６０５は図４のクラスターサイズ４３０を満たす図４の格納装置アレイ４１０の部分集合を選択する。
【００７３】
代替的に、１３０９段階で、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４の持続性要求事項４５０を受信する。１３１２段階で、図６の持続性ロジック６２０は図４の持続性要求事項４５０を満たす図４の格納装置アレイ４１０内の格納装置を構成する。
【００７４】
代替的に、１３１５段階で、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４の分離要求事項４５５を受信する。１３１８段階で、図６の分離ロジック６２５は図４の分離要求事項４５５を満たす図４の格納装置アレイ４１０の部分集合を選択する。
【００７５】
代替的に、１３２１段階で（図１３Ｂ）、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４の複製因子４４０を受信する。１３２４段階で、図６のクラスター選択ロジック６０５は図４の複製因子４４０を満たす図４の格納装置アレイ４１０の部分集合を選択する。１３２７段階で、図２のＴＡＳＴＥ２２５はノード内の格納装置間のデータの複製を管理する。１３３０段階で、図２のＴＡＳＴＥ２２５は図１のデータセンター１０５でノード間のデータの複製を管理する。
【００７６】
代替的に、１３３３段階で、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４のページサイズ４３５を受信する。１３３６段階で、図６のクラスター選択ロジック６０５は図４の格納装置アレイ４１０の部分集合を選択する。１３３９段階で、図６の構成ロジック６１０は図４のページサイズ４３５を使用する図４の格納装置アレイ４１０内の格納装置を構成する。
【００７７】
代替的に、１３４２段階で（図１３Ｃ）、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４のレイテンシ４２５を受信する。１３４５段階で、図６のクラスター選択ロジック６０５は図４のレイテンシ４２５を満たす図４の格納装置アレイ４１０の部分集合を選択する。
【００７８】
代替的に、１３４８段階で、図５の受信ロジック５０５は図２のテナント１４５及び２３０から図４の帯域幅４２０を受信する。１３５１段階で、図６のクラスター選択ロジック６０５は図４の帯域幅４２０を満たす図４の格納装置アレイ４１０の部分集合を選択する。
【００７９】
代替的に、１３５４段階で、図５の受信ロジック５０５は図２のテナント（１４５及び２３０（又は図２のＴＡＳＴＥ２２５自体）から図４の移行４６０を受信する。１３５７段階で、図２のＴＡＳＴＥ２２５は移行されるデータが存在する格納装置を識別する。１３６０段階で、図２のＴＡＳＴＥ２２５はデータが移行されるべき第２格納装置を選択する。その後に１３６３段階で、図６の移動ロジック６３０は第１格納装置から第２格納装置にデータを移行する。
【００８０】
図１２及び図１３Ｃで、一部の実施形態を示した。しかし、当業者は段階（ｂｌｏｃｋ）の順序を変更するか、段階を省略するか、又は図面に示さないリンク（ｌｉｎｋｓ）を含むことによって、他の実施形態も可能であることを認識すべきである。フローチャートのこのような全ての変形は、明示的に記述したか、又は記述しなくても本発明の概念の実施形態であるものと看做される。
【００８１】
以下の説明は本発明の技術的思想の一部の側面が具現される適切なマシン又はマシンの簡単且つ一般的な説明を提供する。マシン又は複数のマシンは、少なくとも一部が他のマシンから受信される指示、仮想現実（ＶＲ）環境との相互作用、生体フィードバック、又は他の入力信号のみならず、キーボード、マウス等のような通常的な入力装置からの入力によって制御される。本明細書で使用するように、“マシン”の用語は、単一マシン、仮想マシン、又はマシン、仮想マシン若しくは共に動作する装置と通信するように結合されたシステムを広く含むものとして意図する。例示的なマシンは、例えば自動車、汽車、タクシー等のような個人用又は公共輸送のような輸送装置のみならず、個人用コンピュータ、ワークステーション、サーバー、ポータブルコンピュータ、ハンドヘルド装置、電話、タブレット等のようなコンピューティング装置を含む。
【００８２】
マシン又は複数のマシンは、プログラム可能な若しくはプログラム不可能な論理装置又はアレイ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、埋め込み型コンピュータ、スマトカード等のような埋め込み型コントローラを含む。マシン又は複数のマシンは、ネットワークインターフェイス、モデム、又は他の通信結合を通じて、１つ以上の遠隔マシンに対する１つ以上の連結を活用する。マシンは、イントラネット、インターネット、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）等のような物理的及び／又は論理的ネットワーク手段で互いに接続される。この分野で熟練された者は、ネットワーク通信が多様な有線及び／又は無線による近距離又は遠距離キャリヤー及び無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ８０２．１１、ブルートゥース（登録商標）、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用することを理解すべきである。
【００８３】
本発明の技術的思想の実施形態は、マシンによってアクセスされる時にマシンが作業を遂行するか、又は抽象的なデータタイプ又は低レベルハードウェアコンテキストを定義することを発生させる関数、手続、データ構造、応用プログラム等を含む関連するデータを参照して又は協力して説明される。関連するデータは、例えばＲＡＭ、ＲＯＭ等のような揮発性及び／又は不揮発性メモリ、他のストレージ装置、及びハードドライブ、フロッピー（登録商標）ディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む関連するストレージ媒体に格納される。関連するデータは、物理的及び／又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態で伝達され、圧縮された又は暗号化されたフォーマットで利用される。関連するデータは、分散環境で使用され、マシンアクセスに対して地域的及び／又は遠隔に格納される。
【００８４】
本発明の技術的思想の実施形態は、１つ以上のプロセッサによって実行可能であり、上述したように本発明の技術的思想の要素を遂行する命令を含むコンピュータ読み取り可能な記録媒体を含む。
【００８５】
図示した実施形態を参照して説明した本発明の技術的思想の原則を有することで、図示した実施形態がこのような原則から遠くならず、配列及び詳細で修正され、必要な任意の方法で組合されることが理解される。上述の説明が具体的な実施形態に集中したが、他の構成もまた考慮される。具体的に、“本発明の技術的思想の実施形態による”のような説明又はここに使用した類似なことに拘らず、このような文句は一般的に実施形態の可能性を参照し、本発明の技術的思想を具体的な実施形態の構成で限定することを意図しない。本明細書で使用したように、このような用語は他の実施形態で組合せ可能な同一又は異なる実施形態を参照する。
【００８６】
本発明の実施形態は制限無しで次のステートメントに拡張される。
【００８７】
ステートメント１．本発明の実施形態はアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ：ＴＡＳＴＥ）を含み、ＴＡＳＴＥは、利用可能な格納装置の集合に関する情報のためのストレージと、アプリケーションから格納装置の要求事項を受信する受信ロジックと、格納装置の要求事項を満たす利用可能な格納装置の集合の部分集合を選択する選択ロジックと、を備える。
【００８８】
ステートメント２．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのためのクラスターサイズを含み、選択ロジックは、利用可能な格納装置の集合の部分集合を選択するクラスター選択ロジックを含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【００８９】
ステートメント３．本発明の実施形態はステートメント２に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【００９０】
ステートメント４．本発明の実施形態はステートメント３に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、利用可能な格納装置の集合の部分集合内の複数の格納装置から仮想格納装置のための変換階層を確立する変換階層ロジックを更に含む。
【００９１】
ステートメント５．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのためのページサイズを含み、選択ロジックは、ページサイズを使用するために利用可能な格納装置の集合の部分集合を構成する構成ロジックを含む。
【００９２】
ステートメント６．本発明の実施形態はステートメント５に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【００９３】
ステートメント７．本発明の実施形態はステートメント５に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための複数のページサイズを含み、選択ロジックは、複数のページサイズを使用する利用可能な格納装置の集合の部分集合を構成する構成ロジックを含む。
【００９４】
ステートメント８．本発明の実施形態はステートメント７に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、第１ページサイズに従って第１論理ブロックアドレスを利用可能な格納装置の集合の第１部分集合上の第１物理ブロックアドレスにマッピングし、第２ページサイズに従って第２論理ブロックアドレスを利用可能な格納装置の集合の第２部分集合上の第２物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【００９５】
ステートメント９．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための複製因子を含み、選択ロジックは、利用可能な格納装置の集合の部分集合の数に亘ってデータを複製する複製ロジックを含み、部分集合の数は、複製因子と同一である。
【００９６】
ステートメント１０．本発明の実施形態はステートメント９に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、利用可能な格納装置の集合の部分集合内の第１格納装置を利用可能な格納装置の集合の部分集合内の第２格納装置のコピー（ｒｅｐｌｉｃａ）として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【００９７】
ステートメント１１．本発明の実施形態はステートメント９に従うＴＡＳＴＥを含み、複製ロジックは、１つのノード内の格納装置に亘ってデータを複製するように動作する。
【００９８】
ステートメント１２．本発明の実施形態はステートメント１１に従うＴＡＳＴＥを含み、アプリケーションは、ノードに亘ってデータを複製するように動作する。
【００９９】
ステートメント１３．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための持続性要求事項を含み、選択ロジックは、アプリケーションからのデータが利用可能な格納装置の集合の部分集合内の閾値時間の間持続することを保証する持続性ロジックを含む。
【０１００】
ステートメント１４．本発明の実施形態はステートメント１３に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【０１０１】
ステートメント１５．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための持続性要求事項を含み、選択ロジックは、利用可能な格納装置の集合の部分集合が電力フェイルに対してデータを保護することを保証する持続性ロジックを含む。
【０１０２】
ステートメント１６．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための分離要求事項を含み、選択ロジックは、利用可能な格納装置の集合の部分集合が利用可能な格納装置の集合の第２アプリケーションで用いられる第２部分集合にオーバーラップされないことを保証する分離ロジックを含む。
【０１０３】
ステートメント１７．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための移行コマンドを含み、選択ロジックは、利用可能な格納装置の集合の部分集合内の第１格納装置から利用可能な格納装置の集合の部分集合内の第２格納装置にデータを移行させる移行ロジックを含む。
【０１０４】
ステートメント１８．本発明の実施形態はステートメント１３に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、利用可能な格納装置の集合の部分集合内の複数の格納装置から仮想格納装置を生成する仮想格納装置ロジックを更に含む。
【０１０５】
ステートメント１９．本発明の実施形態はステートメント１８に従うＴＡＳＴＥを含み、ＴＡＳＴＥは、仮想格納装置のための変換階層を確立する変換階層ロジックを更に含む。
【０１０６】
ステートメント２０．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのための帯域幅要求事項を含み、選択ロジックは、組合せにより、帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合の部分集合を選択するように動作する。
【０１０７】
ステートメント２１．本発明の実施形態はステートメント１に従うＴＡＳＴＥを含み、格納装置の要求事項は、アプリケーションのためのレイテンシ要求事項を含み、選択ロジックは、組合せにより、レイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合の部分集合を選択するように動作する。
【０１０８】
ステートメント２２．本発明の実施形態はアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ：ＴＡＳＴＥ）の処理方法を含み、方法は、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階と、を有する。
【０１０９】
ステートメント２３．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのクラスターサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階を含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【０１１０】
ステートメント２４．本発明の実施形態はステートメント２３に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理アドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【０１１１】
ステートメント２５．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのページサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階と、アプリケーションのためのページサイズを使用するために選択された格納装置を構成する段階と、を含む。
【０１１２】
ステートメント２６．本発明の実施形態はステートメント２５に従う方法を含み、方法は、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【０１１３】
ステートメント２７．本発明の実施形態はステートメント２５に従う方法を含み、アプリケーションのためのページサイズを受信する段階は、アプリケーションのための複数のページサイズを受信する段階を含み、アプリケーションのためのページサイズを使用する選択された格納装置を構成する段階は、アプリケーションのための複数のページサイズを使用する選択された格納装置を構成する段階を含む。
【０１１４】
ステートメント２８．本発明の実施形態はステートメント２７に従う方法を含み、方法は、複数のページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【０１１５】
ステートメント２９．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための複製因子を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように利用可能な格納装置の集合から格納装置を選択する段階を含み、格納装置の数は、少なくともアプリケーションのための複製因子ほど大きい。
【０１１６】
ステートメント３０．本発明の実施形態はステートメント２９に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合内の第１格納装置を利用可能な格納装置の集合の部分集合内の第２格納装置のコピー（ｒｅｐｌｉｃａ）として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【０１１７】
ステートメント３１．本発明の実施形態はステートメント２９に従う方法を含み、方法は、１つのノード内の利用可能な格納装置の集合の部分集合内の格納装置間で複製を管理する段階を更に含む。
【０１１８】
ステートメント３２．本発明の実施形態はステートメント３１に従う方法を含み、方法は、アプリケーションによってノードに亘ってデータを複製する段階を更に含む。
【０１１９】
ステートメント３３．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データがアプリケーションのための持続性要求事項に従って閾値時間の間格納装置に格納されるように利用可能な格納装置の集合から格納装置を構成する段階を含む。
【０１２０】
ステートメント３４．本発明の実施形態はステートメント３３に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【０１２１】
ステートメント３５．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、電力フェイルに対してデータが保護されるように利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１２２】
ステートメント３６．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションが第２アプリケーションから分離されることを指定する分離要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合の部分集合内のいずれの格納装置も第２アプリケーションのためのデータを格納しないように、利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１２３】
ステートメント３７．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための移行コマンドを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データが移行される格納装置を識別する段階と、利用可能な格納装置の集合から第２格納装置を選択する段階と、識別された格納装置から第２格納装置にデータを移行する段階と、を含む。
【０１２４】
ステートメント３８．本発明の実施形態はステートメント２２に従う方法を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、少なくとも１つの格納装置から仮想格納装置を生成する段階を含む。
【０１２５】
ステートメント３９．本発明の実施形態はステートメント３８に従う方法を含み、方法は、仮想格納装置のための変換階層を確立する段階を更に含む。
【０１２６】
ステートメント４０．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための帯域幅要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのための帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１２７】
ステートメント４１．本発明の実施形態はステートメント２２に従う方法を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのレイテンシ要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのためのレイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１２８】
ステートメント４２．本発明の実施形態はコンピュータ読み取り可能な記録媒体を含み、記録媒体は、マシンによって実行される非一時的なインストラクションを格納し、インストラクションが実行されることによって、アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン（ｔｅｎａｎｔ−ａｗａｒｅ  ｓｔｏｒａｇｅ−ｓｈａｒｉｎｇ  ｅｎｇｉｎｅ：ＴＡＳＴＥ）でアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階と、が実行される。
【０１２９】
ステートメント４３．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのクラスターサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階を含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【０１３０】
ステートメント４４．本発明の実施形態はステートメント４３に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理アドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【０１３１】
ステートメント４５．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのページサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階と、アプリケーションのためのページサイズを使用するために選択された格納装置を構成する段階と、を含む。
【０１３２】
ステートメント４６．本発明の実施形態はステートメント４５に従う記録媒体を含み、記録媒体のインストラクションにより、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【０１３３】
ステートメント４７．本発明の実施形態はステートメント４５に従う記録媒体を含み、アプリケーションのためのページサイズを受信する段階は、アプリケーションのための複数のページサイズを受信する段階を含み、アプリケーションのためのページサイズを使用する選択された格納装置を構成する段階は、アプリケーションのための複数のページサイズを使用する選択された格納装置を構成する段階を含む。
【０１３４】
ステートメント４８．本発明の実施形態はステートメント４７に従う記録媒体を含み、記録媒体のインストラクションにより、複数のページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【０１３５】
ステートメント４９．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための複製因子を受信する段階を含み、アプリケーションから格納装置の要求事項の集合をたす利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように利用可能な格納装置の集合から格納装置を選択する段階を含み、格納装置の数は、少なくともアプリケーションのための複製因子ほど大きい。
【０１３６】
ステートメント５０．本発明の実施形態はステートメント４９に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合内の第１格納装置を利用可能な格納装置の集合の部分集合内の第２格納装置のコピー（ｒｅｐｌｉｃａ）として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【０１３７】
ステートメント５１．本発明の実施形態はステートメント４９に従う記録媒体を含み、記録媒体のインストラクションにより、１つのノード内の利用可能な格納装置の集合の部分集合内の格納装置間で複製を管理する段階が更に実行される。
【０１３８】
ステートメント５２．本発明の実施形態はステートメント５１に従う記録媒体を含み、記録媒体のインストラクションにより、アプリケーションによってノードに亘ってデータを複製する段階が更に実行される。
【０１３９】
ステートメント５３．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションからの格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データがアプリケーションのための持続性要求事項に従って閾値時間の間格納装置に格納されるように利用可能な格納装置の集合から格納装置を構成する段階を含む。
【０１４０】
ステートメント５４．本発明の実施形態はステートメント５３に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【０１４１】
ステートメント５５．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、電力フェイルに対してデータが保護されるように利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１４２】
ステートメント５６．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションが第２アプリケーションから分離されることを指定する分離要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合の部分集合内のいずれの格納装置も第２アプリケーションのためのデータを格納しないように、利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１４３】
ステートメント５７．本発明の実施形態はステートメント５２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための移行コマンドを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データが移行される格納装置を識別する段階と、利用可能な格納装置の集合から第２格納装置を選択する段階と、識別された格納装置から第２格納装置にデータを移行する段階と、を含む。
【０１４４】
ステートメント５８．本発明の実施形態はステートメント４２に従う記録媒体を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、少なくとも１つの格納装置から仮想格納装置を生成する段階を含む。
【０１４５】
ステートメント５９．本発明の実施形態はステートメント５８に従う記録媒体を含み、記録媒体のインストラクションにより、仮想格納装置のための変換階層を確立する段階が更に実行される。
【０１４６】
ステートメント６０．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための帯域幅要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのための帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１４７】
ステートメント６１．本発明の実施形態はステートメント４２に従う記録媒体を含み、ＴＡＳＴＥでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのレイテンシ要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのためのレイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【０１４８】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１４９】
１０５    データセンター
１１０、１１５、１２０、１２５、１３０    ホストマシン
１３５    ネットワーク
１４０    クライアントマシン
１４５、２３０    テナント（アプリケーション）
２０５    プロセッサ
２１０    メモリ
２１５    ネットワークコネクター
２２０、７０５、７１０    格納装置
２２５    ＴＡＳＴＥ（テナントアウェアストレージシェアリングエンジン）
３０５    メモリ制御器
３１０    クロック
３２０    バス
３２５    使用者インターフェイス
３３０    Ｉ／Ｏエンジン
４０５    ストレージリソース情報
４１０    格納装置アレイ
４１５    テナント要求事項
５０５    受信ロジック
５１０    ストレージ
５１５    選択ロジック
５２０    仮想格納装置ロジック
５２５    変換階層ロジック
６０５    クラスター選択ロジック
６１０    構成ロジック
６１５    複製ロジック
６２０    持続性ロジック
６２５    分離ロジック
６３０    移行ロジック
７１５、７２０、７２５、７３０、７３５    ノード１〜５
８０５、９０５、９１０、９１５、９２５、９３０、９３５    仮想格納装置
８１０    フラッシュ変換階層（ＦＴＬ）
９２０、９４０    クラスター
９４５、９５０、９５５、９６０    ページサイズ
【図１】
0006734807.tif 000002
【図２】
0006734807.tif 000003
【図３】
0006734807.tif 000004
【図４】
0006734807.tif 000005
【図５】
0006734807.tif 000006
【図６】
0006734807.tif 000007
【図７】
0006734807.tif 000008
【図８】
0006734807.tif 000009
【図９】
0006734807.tif 000010
【図１０】
0006734807.tif 000011
【図１１】
0006734807.tif 000012
【図１２】
0006734807.tif 000013
【図１３Ａ】
0006734807.tif 000014
【図１３Ｂ】
0006734807.tif 000015
【図１３Ｃ】
0006734807.tif 000016