特開2017-211983(P2017-211983A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特開2017-211983テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法
<>
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000003
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000004
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000005
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000006
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000007
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000008
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000009
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000010
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000011
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000012
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000013
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000014
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000015
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000016
  • 特開2017211983-テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2017-211983(P2017-211983A)
(43)【公開日】2017年11月30日
(54)【発明の名称】テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20171102BHJP
   G06F 13/10 20060101ALI20171102BHJP
   G06F 3/08 20060101ALI20171102BHJP
   G06F 3/06 20060101ALI20171102BHJP
【FI】
   G06F12/00 545A
   G06F12/00 514E
   G06F13/10 340A
   G06F3/08 H
   G06F3/06 301Z
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】31
(21)【出願番号】特願2017-76598(P2017-76598)
(22)【出願日】2017年4月7日
(31)【優先権主張番号】62/341,063
(32)【優先日】2016年5月24日
(33)【優先権主張国】US
(31)【優先権主張番号】15/227,955
(32)【優先日】2016年8月3日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】チェ, インソク ステファン
(72)【発明者】
【氏名】奇 亮 ソク
(72)【発明者】
【氏名】安 秉 英
(57)【要約】
【課題】データセンターでアプリケーションの要求事項に応答して必要なデータを格納する格納装置を管理するための処理装置及びその方法を提供する。
【解決手段】本発明のアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(tenant−aware storage−sharing engine:TASTE)は、データセンターで利用可可能な格納装置の集合に関する情報のためのストレージと、アプリケーションから格納装置の要求事項を受信する受信ロジックと、格納装置の要求事項を満たす利用可能な格納装置の集合の部分集合を選択する選択ロジックと、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(TASTE)であって、
利用可能な格納装置の集合に関する情報のためのストレージと、
アプリケーションから格納装置の要求事項を受信する受信ロジックと、
前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の部分集合を選択する選択ロジックと、を備えることを特徴とするTASTE。
【請求項2】
前記格納装置の要求事項は、前記アプリケーションのためのクラスターサイズを含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合を選択するクラスター選択ロジックを含み、
前記利用可能な格納装置の集合の前記部分集合内の格納装置の数は、前記アプリケーションのためのクラスターサイズと同一であることを特徴とする請求項1に記載のTASTE。
【請求項3】
前記利用可能な格納装置の集合の前記部分集合上で論理ブロックアドレスを物理ブロックアドレスにマッピングするために、前記利用可能な格納装置の集合の前記部分集合のための変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項2に記載のTASTE。
【請求項4】
前記格納装置の要求事項は、前記アプリケーションのためのページサイズを含み、
前記選択ロジックは、前記ページサイズを使用するために、前記利用可能な格納装置の集合の前記部分集合を構成する構成ロジックを含むことを特徴とする請求項1に記載のTASTE。
【請求項5】
前記ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、前記利用可能な格納装置の集合の前記部分集合のための変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項4に記載のTASTE。
【請求項6】
前記格納装置の要求事項は、前記アプリケーションのための複製因子を含み、
前記選択ロジックは、前記利用可用な格納装置の集合の前記部分集合の数に亘ってデータを複製する複製ロジックを含み、
前記部分集合の数は、前記複製因子と同一であることを特徴とする請求項1に記載のTASTE。
【請求項7】
前記利用可能な格納装置の集合の前記部分集合内の第1格納装置を前記利用可能な格納装置の集合の前記部分集合内の第2格納装置のコピーとして管理するために、前記利用可可能な格納装置の集合の前記部分集合のための変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項6に記載のTASTE。
【請求項8】
前記格納装置の要求事項は、前記アプリケーションのための持続性要求事項を含み、
前記選択ロジックは、前記アプリケーションからのデータが前記利用可能な格納装置の集合の前記部分集合内の閾値時間の間持続することを保証する持続性ロジックを含むことを特徴とする請求項1に記載のTASTE。
【請求項9】
前記利用可能な格納装置の集合の前記部分集合上のデータが少なくとも前記閾値時間の間無効化されないようにするために、前記利用可能な格納装置の集合の前記部分集合のための変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項8に記載のTASTE。
【請求項10】
前記格納装置の要求事項は、前記アプリケーションのための持続性要求事項を含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合が電力フェイルに対してデータを保護することを保証する持続性ロジックを含むことを特徴とする請求項1に記載のTASTE。
【請求項11】
前記格納装置の要求事項は、前記アプリケーションのための分離要求事項を含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合が前記利用可能な格納装置の集合の第2アプリケーションで用いられる第2部分集合にオーバーラップされないことを保証する分離ロジックを含むことを特徴とする請求項1に記載のTASTE。
【請求項12】
前記格納装置の要求事項は、前記アプリケーションのための移行コマンドを含み、
前記選択ロジックは、前記利用可能な格納装置の集合の前記部分集合内の第1格納装置から前記利用可能な格納装置の集合の前記部分集合内の第2格納装置にデータを移行させる移行ロジックを含むことを特徴とする請求項1に記載のTASTE。
【請求項13】
前記利用可能な格納装置の集合の前記部分集合内の複数の格納装置から仮想格納装置を生成する仮想格納装置ロジックを更に含むことを特徴とする請求項1に記載のTASTE。
【請求項14】
前記仮想格納装置のための変換階層を確立する変換階層ロジックを更に含むことを特徴とする請求項13に記載のTASTE。
【請求項15】
アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(TASTE)の処理方法であって、
前記TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階と、
利用可能な格納装置の集合を識別する段階と、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、を有することを特徴とする方法。
【請求項16】
前記TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションのためのクラスターサイズを受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、前記利用可能な格納装置の集合から格納装置を選択する段階を含み、
前記利用可能な格納装置の集合の前記部分集合内の格納装置の数は、前記アプリケーションのための前記クラスターサイズと同一であることを特徴とする請求項15に記載の方法。
【請求項17】
前記利用可能な格納装置の集合の前記部分集合上で論理ブロックアドレスを物理ブロックアドレスにマッピングするために、前記利用可能な格納装置の集合の前記部分集合のための変換階層を確立する段階を更に含むことを特徴とする請求項16に記載の方法。
【請求項18】
前記TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションのためのページサイズを受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、
前記利用可能な格納装置の集合から格納装置を選択する段階と、
前記アプリケーションのための前記ページサイズを使用するために前記選択された格納装置を構成する段階と、を含むことを特徴とする請求項15に記載の方法。
【請求項19】
前記ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、前記利用可能な格納装置の集合の前記部分集合のための変換階層を確立する段階を更に含むことを特徴とする請求項18に記載の方法。
【請求項20】
前記TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、前記アプリケーションのための複製因子を受信する段階を含み、
前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように前記利用可能な格納装置の集合から格納装置を選択する段階を含み、
前記格納装置の数は、少なくとも前記アプリケーションのための前記複製因子ほど大きいことを特徴とする請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソリッドステートドライブ(solid state drives:SSDs)に関し、より詳細には、データセンターでアプリケーションの要求事項に応答してSSDsを管理する処理装置及びその方法に関する。
【背景技術】
【0002】
格納装置、特にソリッドステートドライブ(solid state drives:SSDs)は、時間の経過によって持続的に変わる特性を示す。SSDsはSSD(solid state drive)内部の基本ソフトウェア(underlying software、例、ファームウェア)及び/又はハードウェアで予測できないレイテンシ及び/又は帯域幅を有する。また、ウェアレベリングによる延長されたアクセスレイテンシ(読出し/書込み/消去)は、レイテンシ及び/又は帯域幅に影響を及ぼす。SSDリソースの仮想抽象化(virtual abstraction)はSSDの性能特性の予測を難しくする。即ち、仮想抽象化は、幾つかに言及すると、ポリモルフィック(polymorphic)SSDs、オープンチャンネル(open−channel)SSDs、lightNVM(オープンチャンネルSSDsを支援するサブシステム)のような多様なアプローチである。最後に、それぞれ異なるセル密度は、幾つかに言及すると、例えばSLC(single level cell)、MLC(multi−level cell)、TLC(three level cell)、及びQLC(quadruple level cell)は相当に異なる特性を引き起こす。
【0003】
データセンターはアプリケーション及び格納装置をマッピングするメカニズム(方法)を必要とする。格納装置は、時間によって変化する多くの特性を有し、従ってモニターリングする必要がある。反面、アプリケーションは、更に、二重化(redundancy)、並列化(parallelism)、持続性(persistency)、保安(security)、FTL(flash translation layer)パラメーター(クラスターサイズ、ページサイズ等)の程度(degrees)のようなそれぞれ異なる要求を有する。しかし、一般的な格納管理は、SSDsのようなより新しい格納装置の性能特性又はアプリケーションの要求事項(例えば、HDFS(hadoop distributed file system)又はキーバリューストレージ(key−value storage))を認識しないボリューム管理(volume management)又はRAID(redundant array of independent disks)向きのアプローチを使用する。アプリケーションの要求に応答してアプリケーションのためのデータを格納するように格納装置を選択する方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、データセンターでアプリケーションの要求事項に応答して必要なデータを格納する格納装置を管理するための処理装置及びその方法を提供することにある。
【課題を解決するための手段】
【0005】
上記目的を達成するためになされた本発明の一態様によるアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(tenant−awarestorage−sharingengine:TASTE)は、利用可能な格納装置の集合に関する情報のためのストレージと、アプリケーションから格納装置の要求事項を受信する受信ロジックと、前記格納装置の要求事項を満たす前記利用可能な格納装置の集合の部分集合(subset)を選択する選択ロジックと、を備える。
【0006】
上記目的を達成するためになされた本発明の一態様によるアプリケーションに応じて格納装置を管理するためのテナントアウェアストレジ−シェアリングエンジン(tenant−aware storage−sharing engine:TASTE)の処理方法は、前記TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、を有する。
【0007】
本発明の一実施形態によるコンピュータ読み取り可能な記録媒体は、非一時的なインストラクションを格納し、前記非一時的なインストラクションがマシンによって実行されることによって、アプリケーションに応じて格納装置を管理するためのTASTE(tenant−aware storage−sharing engine)でアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、前記アプリケーションから前記格納装置の要求事項の集合を満たす前記利用可能な格納装置の集合の部分集合を選択する段階と、が実行される。
【発明の効果】
【0008】
本発明のデータセンター内のテナントアウェアストレージシェアリングエンジン及びその処理方法によれば、アプリケーションから格納装置の要求事項を受信し、受信した格納装置の要求事項を満たす利用可能な格納装置の集合の部分集合(subset)を選択することによって、より効率的に格納装置を管理することができる。
【図面の簡単な説明】
【0009】
図1】クライアントマシンと通信する多様なホストマシンを有するデータセンターを示す図である。
図2】本発明の一実施形態による図1のホストマシンの詳細図である。
図3図1のホストマシンの追加的な詳細図である。
図4】アプリケーションの要求事項を受信して格納装置アレイを調節する図2のTASTE(tenant−aware storage sharing engine)を示す図である。
図5図2のTASTEの詳細図である。
図6図5の選択ロジックの詳細図である。
図7図4の格納装置アレイの一例を示す図である。
図8図7の格納装置アレイ内で確立される仮想格納装置を示す図である。
図9図7の格納装置アレイで多様な仮想アプリケーションの要求事項を満たすように割当られた多様なクラスター及び格納装置のページサイズを示す図である。
図10図7の格納装置アレイ内の格納装置間の複製を示す図である。
図11図7の格納装置アレイ内の格納装置間のデータ移行を示す図である。
図12】本発明の一実施形態による図4のアプリケーションの格納要求事項を受信して格納装置アレイを調節する図2のTASTEのための一例によるフローチャートである。
図13A】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図4の格納装置アレイを具現する図2のTASTEのための一例によるフローチャートである。
図13B】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図4の格納装置アレイを具現する図2のTASTEのための一例によるフローチャートである。
図13C】本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図4の格納装置アレイを具現する図2のTASTEのための一例によるフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。以下の詳細な説明で、多様な特定の実施形態を本発明の技術的思想の充分な理解を助けるために提供する。しかし、この分野で通常的な技術を有する者はこのような特定の実施形態無しでも本発明の技術的思想を具現することができる。他の例として、広く公知された方法、手続、構成要素、回路、及びネットワークは実施形態の側面を不必要に曖昧にしないために詳細に説明しない。
【0011】
ここで、第1、第2等のような用語を多様な要素を説明するために使用するが、このような要素はこのような用語によって限定されない。このような用語を1つの要素と他の1つの要素とを区別するためにのみ使用する。例えば、本発明の技術的思想の範囲から逸脱せずに、第1モジュールを第2モジュールと称する。同様に、第2モジュールを第1モジュールとも称する。
【0012】
本発明の技術的思想の説明で使用する用語は、特定の実施形態を説明するための目的にのみ使用され、本発明の技術的思想を限定しない。また、本発明の技術的思想の説明及び請求項で使用するように、文脈で明確に明示しなければ、単数表現は複数表現も含む。“及び/又は“の用語は1つ以上の関連する項目の任意且つ可能な全ての組合せを含むものとして参照する。“含む”及び/又は“含んでいる”の用語は、詳細な説明で使用する際に言及する特性、整数、段階、動作、要素、及び/又は構成要素の存在を明示し、1つ以上の他の特性、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在若しくは追加を排除しない。図面の構成要素及び特性は実際の比率に必須的に比例しない。
【0013】
大規模のデータセンターストレージインフラストラクチャーシステムは、格納装置の対(pair)の間(又はホストと格納装置との間)で又は格納装置の任意のセット/クラスター(set/cluster)の中で、レイテンシ(latency)又は帯域幅(bandwidth)を予測する能力に利益が得られる。格納装置の中で最大レイテンシ又は最小帯域幅はアプリケーションを支援するために1つ以上の仮想格納装置を選択又は確立するために重要になる。その上、大規模データセンターが並列化、複製、分離、その他のことを含む格納の多様なそれぞれ異なる側面を管理及び決定するように試図するため、より多くの性能情報に対する要求が増加している。このようなアプローチが拡張されないため、予測変数(predictor)はオンデマンド(on−demand、注文形)又はパーペア(per−pair、ペア毎)測定に基づくべきである。
【0014】
残念ながら、仕様(specifications)又はプロファイリング(profiling)に基づく現存するストレージモデリング(storage modeling)はこのような要求を満足しない。これは格納装置自体が同一の製造及び一様な物理世代にも拘らず、SSD(solid state drive)基盤ストレージがしばしばFTL(flash translation layer)のような劣化/磨耗度(aging/wearing−out)及び隠された特性によって異質的なレイテンシ/帯域幅及び時間−可変特性を示すためである。
【0015】
ストレージ距離(storage distance)、即ちデータセンター内の一対の格納装置間の距離に関連する性能特性を予測することを妨害するその他の要素は、ペアワイズ(pair−wise)予測があまりにも多い測定を必要とすることである(オールトゥオールコネクション(all−to−allconnections)を考慮する)。
【0016】
2016年7月28日に提出された米国出願15/222、938及び2016年8月1日に提出された米国出願15/225、811は、参考文献として参照され、このような問題を解決する部分解決策を提供する。しかし、考慮するための他のアプローチが存在する。
【0017】
フラッシュ基盤格納システムは非対称性能特性を有する。即ち、読出しに5〜25μs、書込みに100〜200μs、フラッシュブロックの消去に数msが消費される。その上、一般的にフラッシュセルが耐えられるプログラム/消去サイクルの数は制限される。結論的に、ウェアレベリング(wear leveling)が活用される(及び性能特性として考慮される)。更に、ガベージコレクション(garbage collection)は、全ての入出力(I/O)動作を妨害する相当に多くのサイクルを消費する。
【0018】
その上、内装されたFTL(flash translation layer)又はFTL−パーフィジカルディバイス(per physical device)のような伝統的なアプローチは、アプリケーションの多様な要求及び特性を考慮すると、浪費的である。2つの代表的な例は、HDFS(hadoop distributed file system)及びキーバリューストア(key−value(KV)store)である。通常HDFSは大きいブロックサイズ(多い場合で64MB(megabytes))を利用し、反面にKV−ストアは小さいブロックサイズ(例、フェイスブックのワークロードのための100B(bytes))を利用する。この場合、KV−ストアのFTLオーバーヘッド(データ構造メモリフットプリント(data structure memory foot print)及びPBAマッピング)はHDFSのFTLオーバーヘッドより640,000倍更に大きい。言い換えると、メモリフットプリント観点から、同一のマッピング方法を仮定すると、KV−ストア格納装置のFTLは640,000個のHDFS格納装置のFTLを処理する。効率性を最適化させ、隠されたFTLレイテンシを除去するそれぞれ異なる能力を有するFTLsにマッピングされる格納装置のクラスターを生成することが有用である。
【0019】
ストレージ距離グラフ/ツリー(storage distance graph/tree)はトポロジーグラフ/ツリー(topology graph/tree)をパーストレージ性能(per−storage performances)に結合させる。このようなアプローチは、ストレージ性能の変化/可変を比較すると、トポロジーが概ね変わらないという事実の利点を利用する。特に、FTLの予測できないレイテンシはSLOs(service level objectives)で回避する必要がある。
【0020】
新しいTASTE(tenant−aware storage−sharing engine、テナントアウェアストレージシェアリングエンジン)は複数の入力を扱う。TASTEに対する1つの入力は、内装された情報(例えば、レイテンシ、帯域幅、位相、格納装置間の距離等)を有するストレージリソース情報(storage resource information)からのものである。TASTEに対する第2番目の入力は、アプリケーションの要求事項と共にテナント(tenants、又はアプリケーション)の仕様(specification)である。TASTEはアプリケーションの要求事項を満たすためにクラスター(ストレージの集合)を提供する。その上、TASTEはFTLページサイズ及び持続性(persistency)と共にFTLマッピングを有するサブクラスター(sub−clusters)を提供する。更に、TASTEは、所定のアプリケーションの部分的な要求事項、例えば二重化、並列化、及び保安も具現する。最後に、TASTEはダイナミックプールコントロール(dynamic pool control)のために提供される。例えば、データ移行は、ロードバランシング(load balancing)、容量プロビジョニング(capacity provisioning)のために支援される。
【0021】
≪FTLクラスターマッピング≫
【0022】
TASTEはストレージリソースプール(storage resource pools)を認識する。例えば、TASTEは、格納装置間の近接度(ローカル又はリモート、及び距離)のみならず、低性能格納装置から高性能格納装置を区別する。例えば、2つのテナント(アプリケーション)がHDFS及びKV−ストアの各々に対する格納を要求すると仮定する。
【0023】
上述したように、HDFSのFTLはより大きいページ細分化(granularity)によって相対的に小さいフットプリントマッピング(small−footprint mapping)である。従って、複数の格納装置(仮想又は物理)はLBA(logical block address)インターフェイスを有する自体のFTLに従う他の仮想格納装置を形成するためにクラスター化される。
【0024】
HDFSと異なり、KV−ストアサービスはより高性能のストレージを要求するだけでなく、FTLのフットプリントもHDFSのFTLフットプリントよりはるかに大きい。従って、TASTEは、KV−ストア使用のためのFTLクラスターを形成するためにより小さいがより高性能の格納装置を割当てる。
【0025】
≪FTLページサイズ≫
【0026】
比較例として、HDFSはそのクラスターに亘って64MBページを有する。しかし、KV−ストアはKVペア配置(pair placements)によってそれぞれ異なるページサイズを有する。例えば、100B、32KB(kilobytes)、2MBである。
【0027】
≪複製因子(replication factor)≫
【0028】
また、TASTEはリソース管理の観点である程度の複製を提供する。例えば、クラスター内の各格納装置は他の格納装置によってミラーリングされる。FTLはデータ複製を制御する。
【0029】
アプリケーションはインターノード(inter−node)及びインターラック(inter−rack)複製要求事項の両方を有する(即ち、データは、同一ノード若しくは同一ラックのノードフェイル(failure)又は電力フェイルによるデータ損失を防止するために、それぞれ異なる格納装置及びそれぞれ異なるノードの格納装置にコピーされる必要がある)。また、このような状況(context)はリソースマネージャに通知されなければならない。TASTEは、ノード内の複製を提供するようにTASTEを活性化させながら、このような要求事項を交換するためにAPI(application program interface)を提供する。結論的に、例えば、HDFSは、1つの複製因子を解放し、目標複製因子が3つである場合にのみインターラック複製に集中する必要がある。代替的に又は追加的に、TASTEは、イントララック(intra−rack)複製のみならず、インターラック(inter−rack)複製を管理する。
【0030】
≪並列化(parallelism)≫
【0031】
一部のテナント(tenants)はレイテンシ及び帯域幅に共に敏感であるが、個別的な利用可能な物理的な格納装置はそれらの要求事項を満たす充分な性能を提供しない。この場合、TASTEはアプリケーションの要求事項を必要とする新たな仮想格納装置を生成する。新たな仮想格納装置は、キュー遅延(queue delays)を減らす大きなボリュームI/O内のレイテンシを減少させながら、より広い総帯域幅(higher aggregate bandwidth)を示す。
【0032】
≪ダイナミックリソースプール制御(dynamic resource pool control)≫
【0033】
上述したように、ストレージプール(storage pools)は、時間、容量プロビジョニング、ロードバランシング等に対する性能特性変化により更新される必要がある。移行はダイナミックプール制御を取り扱う1つの方法である。TASTEは、物理的、仮想的、FTL−クラスターの部分、FTL−クラスターの全体等のようなデータの格納に使用される格納装置の種類に関係なくデータを移行する。TASTEがその基礎となる(underlying)ストレージタイプ及びFTL実装を認識するため、このような移行が可能になる。
【0034】
図1は、クライアントマシンと通信する多様なホストマシンを有するデータセンターを示す図である。図1を参照すると、データセンター105はホストマシン(110、115、120、125、及び130)を含む。以下の図2及び図3で、ホストマシン(110、115、120、125、及び130)について更に詳細に示す。データセンター105は、ホストマシン(110、115、120、125、及び130)が互いに通信し、クライアントマシン140と通信するように許容するネットワーク135を含む。ネットワーク135はLAN(local area network)又はWAN(wide area network)を有する多様な種類のネットワークである。ネットワーク135はイーサーネット(登録商標)のような有線技術、IEEE802.11a/b/g/n/ac若しくは同等又は代替可能な技術のような無線技術、或いは無線及び有線の組合せを利用する。また、図1では、ホストマシン(110、115、120、125、及び130)が1つの地理的領域(single geographic area)内に位置するが、他の実施形態として、ホストマシン(110、115、120、125、及び130)はインターネット(例えば、VPN(virtual private network)のようなオーバーレイネットワーク(overlay network))のようなグローバルネットワーク(global network)を利用して地理的に分散されて互いに接続される。
【0035】
ホストマシン110はアプリケーション145を支援する。アプリケーション145は、SSH(secure shell)、ウェブインターフェイス、又はAPI(application program interface)を通じてクライアントマシン140によって使用されるアプリケーションである。
【0036】
一方、図1には、全てタワーコンピュータであり同一のホストマシン(110、115、120、125、及び130)を示したが、本実施形態は、全てそれぞれ異なるホストマシン(110、115、120、125、及び130)のための任意の所望するフォーマットを支援する。例えば、一部のホストマシン(110、115、120、125、及び130)は多様なモデル及び製造のタワーコンピュータであり、他のホストマシン(110、115、120、125、及び130)は多様なモデル及び製造のラックマウントサーバー(rack−mounted server)である。それぞれ異なるホストマシン(110、115、115、120、125、及び130)は、プロセッサの能力、利用可能なメモリ、及び利用可能なストレージ(これらの全ては多様なフォーマットである)の面でそれぞれ異なる能力を有する。例えば、一部のホストマシン(110、115、120、125及び130)はメンバー(member)のためにDRAM(dynamic random access memory)を使用する。反面、他のホストマシンはPRAM(persistent random access memory)、SRAM(static random access memory)、FeRAM(ferroelectronic random access memory)、又はMRAM(magnetoresistive random access memory)のようなNVRAM(non−volatile random access memory)を使用する。同様に、一部のホストマシン(110、115、120、125、及び130)は格納のための一般的なハードディスクドライブ(hard disk drives)を使用する。反面、他のホストマシンはフラッシュメモリ(多様なNVRAM)又はMRAMを使用する。また、ここに列挙するか否かに拘らず、他の可能性も本発明の概念の範囲内にある。
【0037】
上述したように、ホストマシン(110、115、120、125、及び130)は全て本質的に同一であり相互交替可能である。従って、本明細書の残る部分でホストマシン110に対する任意の参照は、制限無しにホストマシン(110、115、120、125、及び130)の任意又は全てを含む。
【0038】
一方、図1には、モニター、キーボード、及びマウスを有する一般的なミニタワーコンピュータシステムとしてクライアントマシン140を示したが、クライアントマシン140は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、及び他の所望の技術形態を有する任意の所望の形態を取る。また、図1には、1つのクライアントマシン140を示したが、本実施形態は同時に任意の数のクライアントマシン140を支援する。
【0039】
図2は、本発明の一実施形態による図1のホストマシン110の詳細図である。図2を参照すると、ホストマシン110は、プロセッサ205(CPU(central processing unit)とも称する)、メモリ210、ネットワークコネクター215、及び格納装置220を含む。プロセッサ205は、多様なプロセッサ、例えばプロセッサ205は、インテルジーオン(Intel Xeon(登録商標))、セレロン(Celeron(登録商標))、アイテニアム(Itanuim(登録商標))、又はアトムプロセッサ(Atom(登録商標) processor)、AMDオプテロンプロセッサ(Opteron(登録商標) processor)、アームプロセッサ(ARM(登録商標) processor)等である。上述したように、メモリ210は、フラッシュメモリ、SRAM、PRAM等のような多様なメモリであるが、一般的にはDRAMである。ネットワークコネクター215は図1のネットワーク135にホストマシン110を接続する多様なコネクターである。ネットワークコネクター215は、例えばイーサーネット(登録商標)インターフェイス又は無線インターフェイスである。格納装置220はデータセンターによって使用される多様な種類の格納装置である。SSDs(solid state drives)が格納装置220の中の1つとして可能であるが、格納装置220はハードディスクドライブ(HDDs)又は他のロングターム(long−term)格納装置のような他の格納形態(storage forms)を含む。
【0040】
また、ホストマシン110は、テナントアウェアストレージシェアリングエンジン225(tenant−aware storage−sharing engine:TASTE)を含む。TASTE225は、テナント(tenants、即ちテナント145及び230のようなアプリケーション)の要求事項に対する情報を使用して格納装置アレイ(storage device array)の動作を管理する。図2には、ホストマシン110によってホストされた(hosted)テナント145及び230を示したが、本実施形態はホストマシン110と異なるマシンによってホストされたテナントを支援する。即ち、TASTE225は、ローカルアプリケーション(local applications)のみならず、遠隔アプリケーション(remote applications)のための格納装置アレイを管理する。
【0041】
図3は、図1のホストマシン110の追加的な詳細図である。図3を参照すると、一般的に、マシン又はホストマシン110は1つ以上のプロセッサ205を含む。1つ以上のプロセッサ205はメモリ制御器305及びクロック310を含む。メモリ制御器305及びクロック310はマシン又はホストマシン110の構成要素の動作を調整するために利用される。また、プロセッサ205はメモリ210に接続される。メモリ210は、RAM(random access memory)、ROM(read−only memory)、又は他の状態維持媒体(state preserving media)等のようなものを含む。また、プロセッサ205は、格納装置220に接続され、ネットワークコネクター215に接続される。ネットワークコネクター215は、例えばイーサーネット(登録商標)コネクター又は無線コネクターである。また、プロセッサ205は使用者インターフェイス325及び入力/出力インターフェイスポートに付着されるようにバス320に接続される。入力/出力インターフェイスポートは他の構成要素の中の入力/出力エンジン330を利用して管理される。
【0042】
図4は、アプリケーションの要求事項を受信して格納装置アレイを調節する図2のTASTE(tenant−aware storage sharing engine)225を示す図である。図4を参照すると、TASTE225はストレージリソース情報405及びテナント要求事項415を受信する。ストレージリソース情報405は格納装置アレイ410内の格納装置に関する情報である。このような情報を利用して、TASTE225は図2のテナント145及び230が有する様々な要求事項を解決するように格納装置アレイ410を構成する。このような要求事項は(このような要求事項が図2のTASTE225によってどのようにして満たされるか否かを示す後述の図面で提供する実施形態と共に)次のようなものを含む。
【0043】
帯域幅420:図2のテナント145及び230によって要求される最小帯域幅。図2のテナント145及び230から最小帯域幅の要求事項が与えられると、TASTE225は要求された最小帯域幅420を提供する格納装置アレイ410から格納装置を選択する。
【0044】
レイテンシ425:図2のテナント145及び230によって許容される最大レイテンシ。図2のテナント145及び230から最大レイテンシの要求事項が与えられると、TASTE225は要求された最大レイテンシ425を提供する格納装置アレイ410から格納装置を選択する。
【0045】
クラスターサイズ430:図2のテナント145及び230を支援するために幾つの個別格納装置が割当られるべきかを示す。要求されたクラスターサイズが与えられると、TASTE225は要求されたクラスターサイズ430を提供する充分な格納装置を選択する。
【0046】
ページサイズ435:図2のテナント145及び230を支援するために割当られた各格納装置のためのページサイズがどのぐらい大きくあるべきかを示す。要求されたページサイズ(或いは、テナント145又は230がクラスター内のそれぞれ異なる格納装置のためにそれぞれ異なるページサイズを要求するために要求されたページサイズ)が与えられると、TASTE225は要求されたページサイズ435を使用するクラスターで多様な格納装置を構成する。
【0047】
二重化440(複製因子(replication factor)とも称する):図2のテナント145及び230のための格納装置アレイ410内に各データのコピーがどのぐらい多く格納されるべきかを示す。要求された二重化が与えられると、TASTE225は要求された二重化440を提供する充分な格納装置を選択する。
【0048】
二重化440及びクラスターサイズ430は(関連する場合)互いに異なる概念である。図2のテナント145及び230が3つのクラスターサイズ430を指定する場合、それらは3つの格納装置がクラスター内に含まれることを単に要求する。図2のテナント1145及び230が3つの二重化440を指定する場合、それらは各データが3つの異なる格納装置に格納されることを要求する。従って、図2のテナント145及び230のためのクラスターサイズは少なくとも3つ必要である(各データの3つのコピーを格納する少なくとも3つの異なる格納装置が存在するべきであるため)が、クラスターの大きさは更に大きくなる可能性がある。クラスターサイズ430と二重化440との間の差異を理解する他の方法は、RAID(redundant array of independent disks)レベル0とレベル1との間の差異に対する比較である。RAID0は、任意の個別ディスクのフェイルに対する二重化は無いが、より大きな全体格納容量(各ディスクの容量の合計と同一である)を提供する。反面、RAID1は、n個のディスクのアレイでn−1個のディスクまでのフェイル可能性に対して保護するが、個別格納ディスクの最小容量と同一の容量を提供する。
【0049】
並列化445:図2のテナント145及び230のためのサービス目標値(desired degree)を提供する格納装置を結合する。図2のテナント145及び230が格納装置アレイ410内の個別格納装置によって提供されることよりもより広い帯域幅及び/又はより小さなレイテンシを要求する可能性がある。このような状況で、要求された並列化が与えられると、TASTE225は要求された並列化445を提供する格納装置を選択する。そうすると、このような選択された格納装置は所望の帯域幅及び/又はレイテンシを提供する仮想格納装置に結合される。
【0050】
並列化445は帯域幅420及びレイテンシ425と一部重なるが、それらは互いに差異がある。例えば、格納装置アレイ410内のいずれの個別格納装置も要求された帯域幅420及び/又はレイテンシ425を提供しないが、図2のテナント145及び230が帯域幅420及び/又はレイテンシ425の要求を指定する場合、TASTE225は並列化を呼出す試図をせずに、要求事項を満たさないフェイルを返す。そうすると、図2のテナント145及び230は、それらがより少ない要求事項で満たされるか否か、又はそれらが並列化445のような要求事項を確立することを望むか否かを決定する。(勿論、格納装置アレイ410内のいずれの個別格納装置も帯域幅420及び/又はレイテンシ425の要求事項を満たさない場合、必要であれば、TASTE225は自動的に並列化445の追加的な要求事項を適用する。)
【0051】
持続性450:図2のテナント145及び230のためのデータが消去される前に格納装置にどれくらい長い間維持されるべきか、又はそのようなデータが電力フェイルに対して生存するか(又は、両方)を示す。図2のテナント145及び230は、それらのデータが劣化(aging)によって消去されずに、所定の最小時間の間にそれらの格納装置に維持されることを望む(即ち、それらのデータは所定の最小時間の間格納された理由のみで消去されるべきではない)。TASTE225は特定の時間の間データを維持するために図2のテナント145及び230を支援する格納装置アレイ410内の格納装置を構成する。例えば、散発的にアクセスされるデータのためのキーバリューストアを利用するアプリケーションはあまりにも速やかにデータが無効化されないように保証することを望む。TASTE225は特定の時間の間データが無効化されない格納装置を選択し、後にそのデータは無効化/ガーベッジコレクション下に置かれる。
【0052】
選択的に、図2のテナント145及び230は、データが電力フェイルに対して維持されることを保証することを望む。不揮発性ストレージ(電源が切れてもデータが維持されること)を利用することは解決策の中の1つである。しかし、持続性は、電力フェイルに拘らずにデータが格納装置に書き込まれたことが確実に確認されることを保証する能力も要求する。例えば、記憶装置は、DRAM内のバッファにデータを格納し、書き込まれるデータの所定の量がある場合にのみデータを記憶装置に書き込む。バッファーリングされたデータがロングタームストレージに書き込まれる前に電力フェイルが発生した場合、バッファのデータは損失する。このような問題を解決するために、持続性を要求するアプリケーションはアプリケーションを持続性−保証(persistency−guaranteed)FTL及び物理装置(physical device)にマッピングする。ここで、物理装置は急な電力損失でもデータ損失を防止する内装された高容量キャパシターを有するSSDである。
【0053】
保安455(分離(isolation)とも称する):1つの特定のテナントのためのデータは1つ以上の他のテナントよりも格納装置アレイ410内の異なる格納装置に格納されなければならない。例えば、図2のテナント145は、そのデータが図2のテナント230のためのデータとして格納装置に格納すべきではないと指定する。TASTE225は、1つ以上の他のテナントから図2のテナント145のデータを分離する格納装置アレイ140内の格納装置を選択する。
【0054】
移行460:テナントのためのデータは格納装置アレイ410内の1つの格納装置から他の格納装置に移行されなければならない。図2のテナント145及び230は格納装置アレイ410内の1つの格納装置から他の格納装置にデータを移行させることを要求する。或いは、TASTE225は、容量プロビジョニング(capacity provisioning)又はロードバランシング(load balancing)のような他の理由として、図2のテナント145及び230のためのデータを移行するように決定する。いずれにしても、TASTE225は格納装置アレイ410内の1つの格納装置から他の格納装置にデータを移行するように管理する。
【0055】
また、図4に示したこと以上の他の要求事項415が存在する。例えば、図2のテナント145及び230はストレージの特定の容量(例えば、2GB(gigabytes))がそれらの各々に割当られることを指定する。本実施形態は、図4に明示的に示すか又は示さない任意の要求事項415を支援する。
【0056】
図5は、図2のTASTE225の詳細図である。図5で、TASTE225は、受信ロジック505、ストレージ510、選択ロジック515、仮想格納装置ロジック520、及び変換階層ロジック525を含む。受信ロジック505は、図2のテナント145及び230のような多様なリソースから図4のストレージリソース情報405及び/又は図4のテナント要求事項415のような情報を受信する。ストレージ510は図4の格納装置アレイ410内の格納装置に関する情報を格納する。格納装置に関する情報は、どの格納装置がどのノード内に存在するか、どの種類の格納装置が利用可能であるか、それらのサイズ、帯域幅、及びレイテンシ等を含む。どの格納装置が“利用可能である(available)”と看做されるかは、場合によって変わる。例えば、図2のテナント145が図2のテナント230からの分離を要求されたと仮定する。その後、図2のテナント230が格納装置のクラスターを要求する場合、図2のテナント145に割当られた任意の格納装置は図2のテナント230のためのクラスターを選択する目的のために利用可能であると看做すべきではない。
【0057】
選択ロジック515はテナントのための図4の要求事項415を満たす図4の格納装置アレイ410から格納装置を選択する。仮想格納装置ロジック520は図4の格納装置アレイ410内の1つ以上の物理格納装置から仮想格納装置を“構成(construct)”する。例えば、図4のテナント要求事項415が図4の並列化445を指定すると、仮想格納装置ロジック520はそのような要求事項を満たす物理格納装置が無い場合に要求された帯域幅及び/又はレイテンシを提供する仮想格納装置を“構成(construct)”する。
【0058】
変換階層ロジック525はテナント要求事項を満たすように使用される物理及び/又は仮想格納装置に用いられる変換階層を確立する。変換階層ロジック525が何をするかはテナント要求事項が何であるかによって変わる。本実施形態で、テナント要求事項がクラスターサイズを含む場合、変換階層ロジック525はクラスターサイズ内で格納装置に亘って論理アドレスを物理アドレスにマッピングする変換階層を確立する。代替的に、仮想格納装置がテナントによる使用のために生成される場合、変換階層ロジック525は、テナントにシングル格納装置として見えるように変換階層を確立するが、仮想格納装置から仮想格納装置を確立する多様な物理格納装置にアドレスをマッピングする。他の実施形態で、テナント要求事項が1つ以上のページサイズを含む場合、変換階層ロジック525は指定されたページサイズの中のいずれか1つに従って多様な格納装置をページに分割する変換階層を確立する。他の実施形態で、テナント要求事項が複製因子を含む場合、変換階層ロジック525は、物理格納装置に亘って複製を支援するために、シングル論理アドレスを多様な物理格納装置上の複数の物理アドレスにマッピングする変換階層を確立する。上述したように、物理格納装置はシングルノード内又は複数のノードに亘って存在する。他の実施形態で、テナント要求事項が持続性要求事項を含む場合、変換階層ロジック525は、物理格納装置上に格納された個別データがどれくらい長い間変わらないかを追跡する変換階層を確立し、そして閾値時間(threshold amount of time)が経過した後にのみ無効化のためのデータをマーク(mark)する。また、本実施形態は複数のこのようなテナント要求事項を支援する変換階層を確立する変換階層ロジック525を含む。
【0059】
図6は、図5の選択ロジック515の詳細図である。図6を参照すると、選択ロジック515は、クラスター選択ロジック605、構成ロジック610、複製ロジック615、持続性ロジック620、分離ロジック625、及び移動ロジック630を含む。クラスター選択ロジック605は図4のクラスターサイズ430を満たす格納装置アレイ410から格納装置のクラスターを選択する。構成ロジック610は図4のページサイズ435を使用する格納装置アレイ410内の1つ以上の格納装置を構成する。複製ロジック615はデータセンター105のノード内の異なる格納装置に亘ってデータの複製を管理する。持続性ロジック620はデータがアクセスされなくても特定の最小区間の間データが持続されるように図4の格納装置アレイ410内の格納装置を構成する。或いは、持続性ロジック620は予期しない電力フェイルに対してデータが保持されるように保証する格納装置を選択ロジック515が選択するようにする。分離ロジック625は1つ以上の識別されたテナントと格納装置を共有しないように図4の格納装置アレイ410内の格納装置(又は格納装置のクラスター)を選択する。そして、移行ロジック630は、図2のテナント145及び/又は230の要求又は図4のTASTE225自体によって、図4の格納装置アレイ410内の1つの格納装置から他の格納装置へのデータの移行を管理する。
【0060】
図5図6で、多様な構成要素をロジックとして説明した。このようなロジックは、目標結果を達成する適切に設計された回路、又は適切に変形された汎用回路、例えばPROM(programmable read−only memory)、EPPROM(erasable programmable read−only memory)、EEPROM(electrically erasable programmable read−only memory)、又は任意の等価の設計である。また、このようなロジックは適合するプロセッサ上で実行されるソフトウェアを利用して具現される。
【0061】
上述した論議は図2のTASTE225がどのようにして動作するかに対する一部の説明を提供する。しかし、一部の例は図2のTASTE225が何をするかを明確にする助けになる。開始するには、格納装置アレイ410の例が有用である。
【0062】
図7は、図4の格納装置アレイ410の一例を示す図である。図7を参照すると、格納装置アレイ410は全体で25個の格納装置を含む。このような格納装置は2つの格納装置のクラスに大略的に区分される。格納装置705は高性能格納装置であり、反面、格納装置710は低性能格納装置である。格納装置(705及び710)は、ノード(715、720、725、730、及び735)に亘って区分される。ここで、各ノードは図1のデータセンター105内のシングルマシン(single machine)を示すか又はシングルラック(single rack)を示す。
【0063】
図7には格納装置アレイ410の一例を示したが、本実施形態は格納装置アレイ410のための任意の所望の構成を支援する。例えば、単に5個ではなく、任意の数のノードが存在する。また、各ノードは、単に5個ではなく、格納装置の任意の数を含む。各ノードは格納装置アレイ410内に他のノードと異なる数の格納装置を含む。また、各ノードはゼロ(zero)を含むそれぞれ異なる類型の異なる数の格納装置を含む。例えば、1つのノードは高性能格納装置705のみを含み、他のノードは低性能格納装置710のみを含む。格納装置の2つ以上のクラス(図7で、高性能格納装置705及び低性能格納装置710)が存在し、格納装置は1つ以上の基準に従って区分される。そして、図7の格納装置をリンクするように見える任意の他のスレッド(thread)は他の実施形態でも可変される。
【0064】
図8は、図7の格納装置アレイ410内で確立される仮想格納装置を示す図である。図8を参照すると、図2のテナント145は帯域幅420及び/又はレイテンシ425並びに並列化445を識別する図4の特定の要求事項415を有する。図4のこのような要求事項415は、図2のテナント145が特別な最小帯域幅及び/又は最大レイテンシを望むことを示し、このような要求事項を提供する利用可能なシングル格納装置が無い場合、図2のTASTE225がこのような要求事項を満たす仮想格納装置を構成することを示す。また、格納装置アレイ410内のいずれのシングル格納装置もこのような要求事項を満たさないと仮定する。従って、図2のTASTE225はノード715で2つの格納装置から仮想格納装置805を構成する。図8で、TASTE225は低性能格納装置710が図2のテナント145のために充分であることを知るために図2のテナント145に関する情報を利用するが、図2のテナント145が高性能格納装置705から支援を必要とする場合、図2のTASTE225は高性能格納装置705から仮想格納装置805を構成する。
【0065】
仮想格納装置805が新しいフラッシュ格納装置(例えばSSD)を示すため、仮想格納装置805は自体のフラッシュ変換階層(FTL)810を含む。FTL810は、図2のテナント145によって使用される論理ブロックアドレスと仮想格納装置805を構成する格納装置によって使用される物理ブロックアドレスとの間のマッピングを管理する。
【0066】
図9は、図7の格納装置アレイ410で多様なアプリケーションの要求事項を満たすように割当られた多様なクラスター及び格納装置のページサイズを示す図である。図9を参照すると、図2のテナント145は4つの仮想格納装置のクラスターサイズ430を指定する。各仮想格納装置は2つの並列化445を含む。図2のテナント145は、例えばHDFSである。同様に、図2のテナント230は、KV−ストアであり、3つの仮想格納装置のクラスターサイズ430を指定する。各仮想格納装置は2つの並列化445を含む。このような結果を達成するために、図2のTASTE225は各テナントに適合する仮想格納装置を構成する。HDFSが高性能格納装置を要求しないため、TASTE225は低性能格納装置710を利用するHDFSのためのクラスターを構成する。従って、図2のTASTE225はクラスター920に集合させる仮想格納装置(805、905、910、及び915)を構成する(簡易化のために図9にはこのような仮想格納装置のためのFTLを図示しない)。同様に、KV−ストアは高性能格納装置で構成することが有利であるため、図2のTASTE225は高性能格納装置705から仮想格納装置(925、930、及び935)を構成する。そうすると、仮想格納装置(925、930、及び935)はクラスター940に集合される。
【0067】
また、図9には図4のページサイズ435の使用を示す。図9で、図2のテナント145は仮想格納装置(805、905、910、及び915)のために64MB(ページサイズ945)の図4のページサイズ435を指定する。反面、KV−ストアは仮想格納装置(925、930、及び935)のために100B、32KB、及び2MB(ページサイズ950、955、及び960)の図4のページサイズ435をそれぞれ指定する。それぞれ異なるテナントは図4のそれぞれ異なるページサイズ435を指定し、シングルテナントは全ての格納装置(仮想又は物理)のために図4の同一のページサイズ435を必ずしも使用すべきではないことに留意しなければならない。
【0068】
図10は、図7の格納装置アレイ410内の格納装置間の複製を示す図である。図10を参照すると、図9と同様に、図2のテナント145は4つの格納装置の図4のクラスターサイズ430を指定する。しかし、図4の並列化445を指定する代わりに、図2のテナント145は2つの二重化440を指定する。即ち、各データはノード内の2つの格納装置上に格納されなければならない。それにより、図2のテナント225は仮想格納装置(805、905、910、及び915)を構成する。しかし、2つの格納装置の両方が結合されたくらい大きく見える仮想格納装置を構成する個別格納装置を結合する代わりに、図2のTASTE225は1つの格納装置から各仮想格納装置内の他の格納装置にデータをコピーするように格納装置を管理する。このようなコピー動作を動作1005として図示する。
【0069】
図10は1つのノード内の格納装置間でコピーすることを示すことに留意しなければならない。また、図2のTASTE225は、ノードを除去する電力損失に対する保護のために、異なるノード内の(即ち、異なるラック内の)格納装置間のデータのコピーを管理する。このような方式で、データ二重化は、格納装置のフェイルに対して保護するだけでなく、電力フェイルと共に発生する1つのノード内の全ての格納装置が同時に利用不可能になることに対して保護する。
【0070】
図11は、図7の格納装置アレイ410内の格納装置間のデータ移行を示す図である。図11を参照すると、図2のテナント145又は図2のTASTE225自体が、データが1つの格納装置から他の格納装置に移行されなければならないことを決定する。例えば、図2のテナント145は前の格納装置が支援すること以上のストレージの増加を要求する。そうすると、図2のTASTE225は、動作1105に示したように、新たな格納装置にデータを移行する。或いは、ウェアレベリングの理由(又は他の理由)によって、図2のTASTE225は、動作1105に示すように、前の格納装置から新たな格納装置にデータを移行する必要を判別する。
【0071】
図12は、本発明の一実施形態による図4のアプリケーションの格納要求事項415を受信して格納装置アレイ410を調節する図2のTASTE225のための一例によるフローチャートである。図12を参照すると、1205段階で、図2のTASTE225はテナント(アプリケーション)のための図4の要求事項415を受信する。1210段階で、図2のTASTE225は図1のデータセンター105で利用可能なリソースを識別する。即ち、利用可能なリソースは図4の格納装置アレイ410内の格納装置及びそれらの全ての特性である。このような情報は図5のストレージ510からアクセスされる。1215段階で、図5の選択ロジック515はテナントのための図4の要求事項415を満たす図4の格納装置アレイ410内の格納装置の部分集合(subset)を選択する。1220段階で、図5の仮想格納装置ロジック520は、必要であれば、少なくとも1つの物理格納装置から仮想格納装置を構成する。1225段階で、図5の仮想格納装置ロジック520はアプリケーションの要求事項を満たす変換階層を確立する。図5を参照して上述したように、図5の変換階層ロジック525はアプリケーションの要求事項の1つ以上の異なる目的を満たす変換階層を確立する。1225段階はこのような目的を達成する変換階層を具現する。
【0072】
図13A図13Cは、本発明の一実施形態による受信されたアプリケーションの要求事項に応答して図4の格納装置アレイ410を具現する図2のTASTE225のための一例によるフローチャートである。図13Aを参照すると、1303段階で、図5の受信ロジック505は図2のテナント145及び230から図4のクラスターサイズ430を受信する。1306段階で、図6のクラスター選択ロジック605は図4のクラスターサイズ430を満たす図4の格納装置アレイ410の部分集合を選択する。
【0073】
代替的に、1309段階で、図5の受信ロジック505は図2のテナント145及び230から図4の持続性要求事項450を受信する。1312段階で、図6の持続性ロジック620は図4の持続性要求事項450を満たす図4の格納装置アレイ410内の格納装置を構成する。
【0074】
代替的に、1315段階で、図5の受信ロジック505は図2のテナント145及び230から図4の分離要求事項455を受信する。1318段階で、図6の分離ロジック625は図4の分離要求事項455を満たす図4の格納装置アレイ410の部分集合を選択する。
【0075】
代替的に、1321段階で(図13B)、図5の受信ロジック505は図2のテナント145及び230から図4の複製因子440を受信する。1324段階で、図6のクラスター選択ロジック605は図4の複製因子440を満たす図4の格納装置アレイ410の部分集合を選択する。1327段階で、図2のTASTE225はノード内の格納装置間のデータの複製を管理する。1330段階で、図2のTASTE225は図1のデータセンター105でノード間のデータの複製を管理する。
【0076】
代替的に、1333段階で、図5の受信ロジック505は図2のテナント145及び230から図4のページサイズ435を受信する。1336段階で、図6のクラスター選択ロジック605は図4の格納装置アレイ410の部分集合を選択する。1339段階で、図6の構成ロジック610は図4のページサイズ435を使用する図4の格納装置アレイ410内の格納装置を構成する。
【0077】
代替的に、1342段階で(図13C)、図5の受信ロジック505は図2のテナント145及び230から図4のレイテンシ425を受信する。1345段階で、図6のクラスター選択ロジック605は図4のレイテンシ425を満たす図4の格納装置アレイ410の部分集合を選択する。
【0078】
代替的に、1348段階で、図5の受信ロジック505は図2のテナント145及び230から図4の帯域幅420を受信する。1351段階で、図6のクラスター選択ロジック605は図4の帯域幅420を満たす図4の格納装置アレイ410の部分集合を選択する。
【0079】
代替的に、1354段階で、図5の受信ロジック505は図2のテナント(145及び230(又は図2のTASTE225自体)から図4の移行460を受信する。1357段階で、図2のTASTE225は移行されるデータが存在する格納装置を識別する。1360段階で、図2のTASTE225はデータが移行されるべき第2格納装置を選択する。その後に1363段階で、図6の移動ロジック630は第1格納装置から第2格納装置にデータを移行する。
【0080】
図12及び図13Cで、一部の実施形態を示した。しかし、当業者は段階(block)の順序を変更するか、段階を省略するか、又は図面に示さないリンク(links)を含むことによって、他の実施形態も可能であることを認識すべきである。フローチャートのこのような全ての変形は、明示的に記述したか、又は記述しなくても本発明の概念の実施形態であるものと看做される。
【0081】
以下の説明は本発明の技術的思想の一部の側面が具現される適切なマシン又はマシンの簡単且つ一般的な説明を提供する。マシン又は複数のマシンは、少なくとも一部が他のマシンから受信される指示、仮想現実(VR)環境との相互作用、生体フィードバック、又は他の入力信号のみならず、キーボード、マウス等のような通常的な入力装置からの入力によって制御される。本明細書で使用するように、“マシン”の用語は、単一マシン、仮想マシン、又はマシン、仮想マシン若しくは共に動作する装置と通信するように結合されたシステムを広く含むものとして意図する。例示的なマシンは、例えば自動車、汽車、タクシー等のような個人用又は公共輸送のような輸送装置のみならず、個人用コンピュータ、ワークステーション、サーバー、ポータブルコンピュータ、ハンドヘルド装置、電話、タブレット等のようなコンピューティング装置を含む。
【0082】
マシン又は複数のマシンは、プログラム可能な若しくはプログラム不可能な論理装置又はアレイ、ASIC(Application Specific Integrated Circuit)、埋め込み型コンピュータ、スマトカード等のような埋め込み型コントローラを含む。マシン又は複数のマシンは、ネットワークインターフェイス、モデム、又は他の通信結合を通じて、1つ以上の遠隔マシンに対する1つ以上の連結を活用する。マシンは、イントラネット、インターネット、LAN(local area networks)、WAN(wide area networks)等のような物理的及び/又は論理的ネットワーク手段で互いに接続される。この分野で熟練された者は、ネットワーク通信が多様な有線及び/又は無線による近距離又は遠距離キャリヤー及び無線周波数(RF)、衛星、マイクロ波、IEEE802.11、ブルートゥース(登録商標)、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用することを理解すべきである。
【0083】
本発明の技術的思想の実施形態は、マシンによってアクセスされる時にマシンが作業を遂行するか、又は抽象的なデータタイプ又は低レベルハードウェアコンテキストを定義することを発生させる関数、手続、データ構造、応用プログラム等を含む関連するデータを参照して又は協力して説明される。関連するデータは、例えばRAM、ROM等のような揮発性及び/又は不揮発性メモリ、他のストレージ装置、及びハードドライブ、フロッピー(登録商標)ディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む関連するストレージ媒体に格納される。関連するデータは、物理的及び/又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態で伝達され、圧縮された又は暗号化されたフォーマットで利用される。関連するデータは、分散環境で使用され、マシンアクセスに対して地域的及び/又は遠隔に格納される。
【0084】
本発明の技術的思想の実施形態は、1つ以上のプロセッサによって実行可能であり、上述したように本発明の技術的思想の要素を遂行する命令を含むコンピュータ読み取り可能な記録媒体を含む。
【0085】
図示した実施形態を参照して説明した本発明の技術的思想の原則を有することで、図示した実施形態がこのような原則から遠くならず、配列及び詳細で修正され、必要な任意の方法で組合されることが理解される。上述の説明が具体的な実施形態に集中したが、他の構成もまた考慮される。具体的に、“本発明の技術的思想の実施形態による”のような説明又はここに使用した類似なことに拘らず、このような文句は一般的に実施形態の可能性を参照し、本発明の技術的思想を具体的な実施形態の構成で限定することを意図しない。本明細書で使用したように、このような用語は他の実施形態で組合せ可能な同一又は異なる実施形態を参照する。
【0086】
本発明の実施形態は制限無しで次のステートメントに拡張される。
【0087】
ステートメント1.本発明の実施形態はアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(tenant−aware storage−sharing engine:TASTE)を含み、TASTEは、利用可能な格納装置の集合に関する情報のためのストレージと、アプリケーションから格納装置の要求事項を受信する受信ロジックと、格納装置の要求事項を満たす利用可能な格納装置の集合の部分集合を選択する選択ロジックと、を備える。
【0088】
ステートメント2.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのためのクラスターサイズを含み、選択ロジックは、利用可能な格納装置の集合の部分集合を選択するクラスター選択ロジックを含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【0089】
ステートメント3.本発明の実施形態はステートメント2に従うTASTEを含み、TASTEは、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【0090】
ステートメント4.本発明の実施形態はステートメント3に従うTASTEを含み、TASTEは、利用可能な格納装置の集合の部分集合内の複数の格納装置から仮想格納装置のための変換階層を確立する変換階層ロジックを更に含む。
【0091】
ステートメント5.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのためのページサイズを含み、選択ロジックは、ページサイズを使用するために利用可能な格納装置の集合の部分集合を構成する構成ロジックを含む。
【0092】
ステートメント6.本発明の実施形態はステートメント5に従うTASTEを含み、TASTEは、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【0093】
ステートメント7.本発明の実施形態はステートメント5に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための複数のページサイズを含み、選択ロジックは、複数のページサイズを使用する利用可能な格納装置の集合の部分集合を構成する構成ロジックを含む。
【0094】
ステートメント8.本発明の実施形態はステートメント7に従うTASTEを含み、TASTEは、第1ページサイズに従って第1論理ブロックアドレスを利用可能な格納装置の集合の第1部分集合上の第1物理ブロックアドレスにマッピングし、第2ページサイズに従って第2論理ブロックアドレスを利用可能な格納装置の集合の第2部分集合上の第2物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【0095】
ステートメント9.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための複製因子を含み、選択ロジックは、利用可能な格納装置の集合の部分集合の数に亘ってデータを複製する複製ロジックを含み、部分集合の数は、複製因子と同一である。
【0096】
ステートメント10.本発明の実施形態はステートメント9に従うTASTEを含み、TASTEは、利用可能な格納装置の集合の部分集合内の第1格納装置を利用可能な格納装置の集合の部分集合内の第2格納装置のコピー(replica)として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【0097】
ステートメント11.本発明の実施形態はステートメント9に従うTASTEを含み、複製ロジックは、1つのノード内の格納装置に亘ってデータを複製するように動作する。
【0098】
ステートメント12.本発明の実施形態はステートメント11に従うTASTEを含み、アプリケーションは、ノードに亘ってデータを複製するように動作する。
【0099】
ステートメント13.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための持続性要求事項を含み、選択ロジックは、アプリケーションからのデータが利用可能な格納装置の集合の部分集合内の閾値時間の間持続することを保証する持続性ロジックを含む。
【0100】
ステートメント14.本発明の実施形態はステートメント13に従うTASTEを含み、TASTEは、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する変換階層ロジックを更に含む。
【0101】
ステートメント15.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための持続性要求事項を含み、選択ロジックは、利用可能な格納装置の集合の部分集合が電力フェイルに対してデータを保護することを保証する持続性ロジックを含む。
【0102】
ステートメント16.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための分離要求事項を含み、選択ロジックは、利用可能な格納装置の集合の部分集合が利用可能な格納装置の集合の第2アプリケーションで用いられる第2部分集合にオーバーラップされないことを保証する分離ロジックを含む。
【0103】
ステートメント17.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための移行コマンドを含み、選択ロジックは、利用可能な格納装置の集合の部分集合内の第1格納装置から利用可能な格納装置の集合の部分集合内の第2格納装置にデータを移行させる移行ロジックを含む。
【0104】
ステートメント18.本発明の実施形態はステートメント13に従うTASTEを含み、TASTEは、利用可能な格納装置の集合の部分集合内の複数の格納装置から仮想格納装置を生成する仮想格納装置ロジックを更に含む。
【0105】
ステートメント19.本発明の実施形態はステートメント18に従うTASTEを含み、TASTEは、仮想格納装置のための変換階層を確立する変換階層ロジックを更に含む。
【0106】
ステートメント20.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのための帯域幅要求事項を含み、選択ロジックは、組合せにより、帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合の部分集合を選択するように動作する。
【0107】
ステートメント21.本発明の実施形態はステートメント1に従うTASTEを含み、格納装置の要求事項は、アプリケーションのためのレイテンシ要求事項を含み、選択ロジックは、組合せにより、レイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合の部分集合を選択するように動作する。
【0108】
ステートメント22.本発明の実施形態はアプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(tenant−aware storage−sharing engine:TASTE)の処理方法を含み、方法は、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階と、を有する。
【0109】
ステートメント23.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのクラスターサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階を含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【0110】
ステートメント24.本発明の実施形態はステートメント23に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理アドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【0111】
ステートメント25.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのページサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階と、アプリケーションのためのページサイズを使用するために選択された格納装置を構成する段階と、を含む。
【0112】
ステートメント26.本発明の実施形態はステートメント25に従う方法を含み、方法は、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【0113】
ステートメント27.本発明の実施形態はステートメント25に従う方法を含み、アプリケーションのためのページサイズを受信する段階は、アプリケーションのための複数のページサイズを受信する段階を含み、アプリケーションのためのページサイズを使用する選択された格納装置を構成する段階は、アプリケーションのための複数のページサイズを使用する選択された格納装置を構成する段階を含む。
【0114】
ステートメント28.本発明の実施形態はステートメント27に従う方法を含み、方法は、複数のページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【0115】
ステートメント29.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための複製因子を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように利用可能な格納装置の集合から格納装置を選択する段階を含み、格納装置の数は、少なくともアプリケーションのための複製因子ほど大きい。
【0116】
ステートメント30.本発明の実施形態はステートメント29に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合内の第1格納装置を利用可能な格納装置の集合の部分集合内の第2格納装置のコピー(replica)として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【0117】
ステートメント31.本発明の実施形態はステートメント29に従う方法を含み、方法は、1つのノード内の利用可能な格納装置の集合の部分集合内の格納装置間で複製を管理する段階を更に含む。
【0118】
ステートメント32.本発明の実施形態はステートメント31に従う方法を含み、方法は、アプリケーションによってノードに亘ってデータを複製する段階を更に含む。
【0119】
ステートメント33.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データがアプリケーションのための持続性要求事項に従って閾値時間の間格納装置に格納されるように利用可能な格納装置の集合から格納装置を構成する段階を含む。
【0120】
ステートメント34.本発明の実施形態はステートメント33に従う方法を含み、方法は、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階を更に含む。
【0121】
ステートメント35.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、電力フェイルに対してデータが保護されるように利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0122】
ステートメント36.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションが第2アプリケーションから分離されることを指定する分離要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合の部分集合内のいずれの格納装置も第2アプリケーションのためのデータを格納しないように、利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0123】
ステートメント37.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための移行コマンドを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データが移行される格納装置を識別する段階と、利用可能な格納装置の集合から第2格納装置を選択する段階と、識別された格納装置から第2格納装置にデータを移行する段階と、を含む。
【0124】
ステートメント38.本発明の実施形態はステートメント22に従う方法を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、少なくとも1つの格納装置から仮想格納装置を生成する段階を含む。
【0125】
ステートメント39.本発明の実施形態はステートメント38に従う方法を含み、方法は、仮想格納装置のための変換階層を確立する段階を更に含む。
【0126】
ステートメント40.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための帯域幅要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのための帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0127】
ステートメント41.本発明の実施形態はステートメント22に従う方法を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのレイテンシ要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのためのレイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0128】
ステートメント42.本発明の実施形態はコンピュータ読み取り可能な記録媒体を含み、記録媒体は、マシンによって実行される非一時的なインストラクションを格納し、インストラクションが実行されることによって、アプリケーションに応じて格納装置を管理するためのテナントアウェアストレージシェアリングエンジン(tenant−aware storage−sharing engine:TASTE)でアプリケーションから格納装置の要求事項の集合を受信する段階と、利用可能な格納装置の集合を識別する段階と、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階と、が実行される。
【0129】
ステートメント43.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのクラスターサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階を含み、利用可能な格納装置の集合の部分集合内の格納装置の数は、アプリケーションのためのクラスターサイズと同一である。
【0130】
ステートメント44.本発明の実施形態はステートメント43に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合上で論理ブロックアドレスを物理アドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【0131】
ステートメント45.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのページサイズを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合から格納装置を選択する段階と、アプリケーションのためのページサイズを使用するために選択された格納装置を構成する段階と、を含む。
【0132】
ステートメント46.本発明の実施形態はステートメント45に従う記録媒体を含み、記録媒体のインストラクションにより、ページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【0133】
ステートメント47.本発明の実施形態はステートメント45に従う記録媒体を含み、アプリケーションのためのページサイズを受信する段階は、アプリケーションのための複数のページサイズを受信する段階を含み、アプリケーションのためのページサイズを使用する選択された格納装置を構成する段階は、アプリケーションのための複数のページサイズを使用する選択された格納装置を構成する段階を含む。
【0134】
ステートメント48.本発明の実施形態はステートメント47に従う記録媒体を含み、記録媒体のインストラクションにより、複数のページサイズに従って論理ブロックアドレスを物理ブロックアドレスにマッピングするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【0135】
ステートメント49.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための複製因子を受信する段階を含み、アプリケーションから格納装置の要求事項の集合をたす利用可能な格納装置の集合の部分集合を選択する段階は、各データが格納装置の数毎に格納されるように利用可能な格納装置の集合から格納装置を選択する段階を含み、格納装置の数は、少なくともアプリケーションのための複製因子ほど大きい。
【0136】
ステートメント50.本発明の実施形態はステートメント49に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合内の第1格納装置を利用可能な格納装置の集合の部分集合内の第2格納装置のコピー(replica)として管理するために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【0137】
ステートメント51.本発明の実施形態はステートメント49に従う記録媒体を含み、記録媒体のインストラクションにより、1つのノード内の利用可能な格納装置の集合の部分集合内の格納装置間で複製を管理する段階が更に実行される。
【0138】
ステートメント52.本発明の実施形態はステートメント51に従う記録媒体を含み、記録媒体のインストラクションにより、アプリケーションによってノードに亘ってデータを複製する段階が更に実行される。
【0139】
ステートメント53.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションからの格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データがアプリケーションのための持続性要求事項に従って閾値時間の間格納装置に格納されるように利用可能な格納装置の集合から格納装置を構成する段階を含む。
【0140】
ステートメント54.本発明の実施形態はステートメント53に従う記録媒体を含み、記録媒体のインストラクションにより、利用可能な格納装置の集合の部分集合上のデータが少なくとも閾値時間の間無効化されないようにするために、利用可能な格納装置の集合の部分集合のための変換階層を確立する段階が更に実行される。
【0141】
ステートメント55.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための持続性要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、電力フェイルに対してデータが保護されるように利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0142】
ステートメント56.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションが第2アプリケーションから分離されることを指定する分離要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、利用可能な格納装置の集合の部分集合内のいずれの格納装置も第2アプリケーションのためのデータを格納しないように、利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0143】
ステートメント57.本発明の実施形態はステートメント52に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための移行コマンドを受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、データが移行される格納装置を識別する段階と、利用可能な格納装置の集合から第2格納装置を選択する段階と、識別された格納装置から第2格納装置にデータを移行する段階と、を含む。
【0144】
ステートメント58.本発明の実施形態はステートメント42に従う記録媒体を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、少なくとも1つの格納装置から仮想格納装置を生成する段階を含む。
【0145】
ステートメント59.本発明の実施形態はステートメント58に従う記録媒体を含み、記録媒体のインストラクションにより、仮想格納装置のための変換階層を確立する段階が更に実行される。
【0146】
ステートメント60.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのための帯域幅要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのための帯域幅要求事項よりも狭くない全体帯域幅を提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0147】
ステートメント61.本発明の実施形態はステートメント42に従う記録媒体を含み、TASTEでアプリケーションから格納装置の要求事項の集合を受信する段階は、アプリケーションのためのレイテンシ要求事項を受信する段階を含み、アプリケーションから格納装置の要求事項の集合を満たす利用可能な格納装置の集合の部分集合を選択する段階は、組合せにより、アプリケーションのためのレイテンシ要求事項よりも長くない平均レイテンシを提供する利用可能な格納装置の集合から格納装置を選択する段階を含む。
【0148】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【0149】
105 データセンター
110、115、120、125、130 ホストマシン
135 ネットワーク
140 クライアントマシン
145、230 テナント(アプリケーション)
205 プロセッサ
210 メモリ
215 ネットワークコネクター
220、705、710 格納装置
225 TASTE(テナントアウェアストレージシェアリングエンジン)
305 メモリ制御器
310 クロック
320 バス
325 使用者インターフェイス
330 I/Oエンジン
405 ストレージリソース情報
410 格納装置アレイ
415 テナント要求事項
505 受信ロジック
510 ストレージ
515 選択ロジック
520 仮想格納装置ロジック
525 変換階層ロジック
605 クラスター選択ロジック
610 構成ロジック
615 複製ロジック
620 持続性ロジック
625 分離ロジック
630 移行ロジック
715、720、725、730、735 ノード1〜5
805、905、910、915、925、930、935 仮想格納装置
810 フラッシュ変換階層(FTL)
920、940 クラスター
945、950、955、960 ページサイズ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図13C