JP2016512906A - データを柔軟に配置するための多層記憶管理 - Google Patents
データを柔軟に配置するための多層記憶管理 Download PDFInfo
- Publication number
- JP2016512906A JP2016512906A JP2016501732A JP2016501732A JP2016512906A JP 2016512906 A JP2016512906 A JP 2016512906A JP 2016501732 A JP2016501732 A JP 2016501732A JP 2016501732 A JP2016501732 A JP 2016501732A JP 2016512906 A JP2016512906 A JP 2016512906A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- storage
- virtual
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 claims abstract description 78
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000013500 data storage Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 67
- 230000008569 process Effects 0.000 claims description 17
- 230000001131 transforming effect Effects 0.000 claims 14
- 238000012544 monitoring process Methods 0.000 claims 6
- 238000012986 modification Methods 0.000 claims 3
- 230000004048 modification Effects 0.000 claims 3
- 238000004891 communication Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 229910052737 gold Inorganic materials 0.000 description 4
- 239000010931 gold Substances 0.000 description 4
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910052697 platinum Inorganic materials 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
記憶アドミニストレータは、ロケーション情報を別個のレイヤに保持し得る。データ記憶システムは、データが属する論理エクステント等のデータの仮想ロケーションを識別することによって特定のデータのロケーションを識別し得る。オブジェクトストアは、仮想記憶オブジェクトへのエクステント識別子のマッピング及び記憶ユニットロケーションへの仮想記憶オブジェクトのマッピング等の物理ロケーションへの仮想ロケーションのマッピングを保持し得る。特定のデータが新しいロケーションに配置換えされる場合、記憶アドミニストレータは、エクステント−オブジェクトマッピング又はオブジェクト−記憶ユニットマッピング等の仮想ロケーションの物理ロケーションへの変換に使用されるマッピングを更新し得る。論理エクステント識別子への参照等の仮想ロケーションへの参照は、データの配置換えに応答して更新されなくてもよい。
Description
本願は、米国特許法第119条の下で2013年3月15日に出願された仮特許出願第61/799,550号の利益を主張するものであり、この仮特許出願をあらゆる目的において、あたかも本明細書に全て記載されているかのように参照により本明細書に援用する。本願は、2013年3月15日に出願された米国特許出願第13/837,375号及び2013年3月15日に出願された米国特許出願第13/837,456号に関連し、これらをあらゆる目的において、あたかも本明細書に全て記載されているかのように参照により本明細書に援用する。
本開示は、概して、異なる記憶ユニットの部分を構成する仮想記憶オブジェクトに記憶されるデータを管理する技法に関する。
このセクションに記載される手法は、追求された可能性があるが、必ずしも従来から考え出されたか、又は追求されてきた手法ではない。したがって、本明細書に別段のことが示される場合を除き、このセクションに記載される手法は、本願での特許請求の範囲に対する従来技術ではなく、このセクションに含まれることにより従来技術であることを認めるものではない。
データ処理では、データ記憶システムは、データ記憶装置にデータブロックとして記憶されるユーザ又はアプリケーションデータへのアクセスを管理し得る。データ記憶システムは、ユーザ又はアプリケーションデータの検索、記憶、又は更新、他の非ロケーションメタデータのユーザ又はアプリケーションデータへの適宜関連付け、ユーザ又はアプリケーションデータのクローン化、及び特定の時間でのユーザ又はアプリケーションデータの状態を捕捉するシステムスナップショットの一部としてなどの様々な目的で、ユーザ又はアプリケーションデータのロケーションを識別するロケーションメタデータを保持する。従来のデータ記憶システムは、ユーザ若しくはアプリケーションデータ又は他の非ロケーションメタデータの物理的ブロックアドレスへのポインタを記憶することにより、ユーザ若しくはアプリケーションデータのロケーション又は他の非ロケーションメタデータを識別し得る。
幾つかのデータ記憶システムでは、データ又はメタデータは頻繁に、異なる記憶ユニット等の新しいロケーションに配置換えされ得る。例えば、仮想データセンタでのユーザ又はアプリケーションデータの記憶を管理する記憶アドミニストレータは、性能のサービスレベル管理、データ可用性、システムメンテナンス、エラーリカバリ、故障リカバリ、コスト最適化、負荷平衡、及び容量管理に関連するが、これらに限定されない多くの可能な理由により、1つの記憶ユニットに記憶される特定のデータ又はメタデータを、仮想データセンタの異なる記憶ユニットに配置換えする必要があり得る。さらに、クラウド計算及び仮想データセンタ環境に記憶されるデータ及びメタデータを管理する記憶コントローラが、更なる記憶ユニットを容易に取得することが可能であり得、したがって、そのような環境で更に頻繁にデータ及びメタデータを移動し得る。それらの機能を適宜提供するために、データ記憶システムレコードは、データの最新ロケーションを反映する必要がある。正確なデータロケーションレコードの保持は、データロケーションが頻繁に変わるシステムでは面倒な作業であり得る。データ記憶システムでのデータロケーション変更の負担を軽減する新しい技法が必要とされている。
添付の特許請求の範囲は、本発明の概要としての役割を果たし得る。
データの柔軟な配置のための多層記憶管理について記載する。以下の説明では、説明のために、多くの特定の詳細が、本発明の完全な理解を提供するために記される。しかし、これらの特定の詳細なしで本発明が実施可能なことが当業者には明らかであろう。他の場合、周知の構造及び装置は、本発明を不必要に曖昧にしないように、ブロック図の形態で示されている。
実施形態は、以下の概要に従って本明細書に記載される。
1.0 概説
2.0 構造及び機能の概説
2.1 クライアントデータの検索中のエクステント−オブジェクトマッピング及びオブジェクト部分ディレクトリの利用
2.2 クライアントデータの配置換えの際のエクステント−オブジェクトマッピング又はオブジェクト部分ディレクトリの更新
3.0 実施のメカニズム − ハードウェア概説
4.0 拡張及び代替
2.0 構造及び機能の概説
2.1 クライアントデータの検索中のエクステント−オブジェクトマッピング及びオブジェクト部分ディレクトリの利用
2.2 クライアントデータの配置換えの際のエクステント−オブジェクトマッピング又はオブジェクト部分ディレクトリの更新
3.0 実施のメカニズム − ハードウェア概説
4.0 拡張及び代替
1.0 概説
実施形態は、一般に、データが記憶される物理的ロケーションを識別せずに、データが記憶される仮想ロケーションに基づいて記憶データへの参照を記憶し管理することが可能な仮想データ記憶システムに適用可能な革新的なデータ記憶プロセスを提供する。
実施形態は、一般に、データが記憶される物理的ロケーションを識別せずに、データが記憶される仮想ロケーションに基づいて記憶データへの参照を記憶し管理することが可能な仮想データ記憶システムに適用可能な革新的なデータ記憶プロセスを提供する。
一態様では、一実施形態は、コンピュータを使用して、データを記憶する要求を受信する工程、仮想化コンピュータシステムのデータ記憶システムにデータを記憶させる工程、データが記憶される任意の物理的ロケーションを識別せずに、データが記憶される1つ又は複数の仮想ロケーションを識別するデータロケーションレコードを記憶する工程を含む方法を提供する。一特徴では、方法は、オブジェクトアドミニストレータに、データを記憶する命令を送信する工程、命令の送信に応答して、データが記憶される任意の物理的ロケーションを識別せずに、データが記憶される仮想ロケーションを識別する1つ又は複数の仮想ロケーション識別子を受信する工程を含む。
別の実施形態では、方法は、データ記憶システムにおいて、データに対する要求を受信する工程、データが記憶される仮想ロケーションを識別する工程、データが記憶される仮想ロケーションと、オブジェクトアドミニストレータへの仮想ロケーションの1つ又は複数のマッピングとに基づいて、データの物理的記憶に関連付けられたオブジェクトアドミニストレータを特定する工程、オブジェクトアドミニストレータにおいて、1つ又は複数のマッピングに基づいて、仮想ロケーションに対応する仮想化コンピュータシステムのデータ記憶システムでの1つ又は複数の物理的ロケーションを特定する工程、仮想化コンピュータシステムのデータ記憶システムの1つ又は複数の物理的ロケーションからデータを検索する工程を含む。一特徴において、方法は、オブジェクトアドミニストレータにおいて、データが記憶される少なくとも1つの論理エクステントを識別するデータに対する要求を受信する工程、要求において識別された論理エクステントに属する1つ又は複数のオブジェクトを特定する工程、1つ又は複数のオブジェクトの各オブジェクトについて、オブジェクトに属する1つ又は複数の記憶ユニット部分を特定する工程、1つ又は複数のオブジェクトの各オブジェクトに対応する1つ又は複数の記憶ユニット部分からデータを検索する工程を含む。
別の実施形態では、方法は、記憶アドミニストレータにおいて、仮想化コンピュータシステムのデータ記憶システム内の1つ又は複数の新しい物理的ロケーションに特定のデータの変換又は移動を必要とする条件が生じたと判断することであって、特定のデータは特定の仮想ロケーションに記憶される、工程、判断に応答して、特定のデータに対応するデータを1つ又は複数の新しい物理的ロケーションに記憶する工程、特定の仮想ロケーションに対応するマッピングを、特定の仮想ロケーションへのいずれの参照も更新せずに、特定の仮想ロケーションが1つ又は複数の前の物理的ロケーションの代わりに1つ又は複数の新しい物理的ロケーションに対応することを示すように、更新する工程を含む。
データ記憶システムでは、システムコントローラは、複数の記憶ユニットに記憶されるユーザ又はアプリケーションデータへのアクセスを管理し得る。データ記憶システムは、別のコンピュータシステム(ローカルファイルシステム等)、単一のコンピュータシステムで実施される独立型記憶システム、又はコンピュータシステムのネットワークで実施される分散記憶システムの部分であり得る。データ記憶システムアドミニストレータは、ユーザ又はアプリケーションデータロケーションを識別するデータロケーションレコードを記憶し得る。データロケーションレコードは、データが記憶される物理的ブロックアドレスを識別せずに、対応するデータが属する論理エクステントを識別することにより、ロケーションを識別し得る。オブジェクトアドミニストレータは、仮想記憶オブジェクトへのエクステントのマッピングと、各仮想オブジェクトについて、仮想記憶オブジェクトを集合的に構成する特定の記憶ユニット部分のディレクトリとを別個に保持し得る。そのようなシステムでは、データ記憶システムレコードを更新する負担は、ユーザ又はアプリケーションデータが異なる仮想記憶オブジェクトに移動する場合であっても、又はユーザ若しくはアプリケーションデータを含む仮想記憶オブジェクトに属する1つ又は複数の記憶ユニットが置換、削除、又は追加される場合でも最小であり得る。データ記憶システムアドミニストレータは、移動されたデータを含むエクステントが変更されないため、いかなるレコードも更新する必要がなくてよい。オブジェクトアドミニストレータは単純に、エクステントが異なる仮想記憶オブジェクトに移動する場合、仮想記憶オブジェクトへのエクステントのマッピングを更新し得る。仮想記憶オブジェクトに属する特定の記憶ユニット部分が、削除、置換、又は追加される場合、オブジェクトストアは、特定の記憶ユニット部分が削除、置換、又は追加されたことを示すように、仮想記憶オブジェクトディレクトリを更新し得る。
幾つかの実施形態では、データが変形される場合、記憶ユニットアドミニストレータは、変形データを記憶するために、新しい仮想記憶オブジェクト及び/又は記憶ユニット部分をインスタント化する。例えば、記憶データは、暗号又は圧縮アルゴリズムの変更に従って変更する必要があり得る。そのような場合、オブジェクトアドミニストレータは、変形データを新しい仮想オブジェクトに書き込み、新しい仮想記憶オブジェクトが特定の論理エクステントに属することを示すように、仮想記憶オブジェクトへのエクステントのマッピングを更新し得る。別の実施形態では、オブジェクトアドミニストレータは、変形データを新しい記憶ユニット部分に書き込み得、新しい記憶ユニット部分が特定の仮想記憶オブジェクトに属することを示すように、記憶ユニット部分への仮想記憶オブジェクトのマッピングを更新し得る。
変形は、同じ論理エクステントの異なる仮想記憶オブジェクト又は同じ仮想記憶オブジェクトの異なる記憶ユニット部分に同時に適用し得る。幾つかの実施形態では、変形は、単一のI/O(入力/出力)動作で、同じ仮想記憶オブジェクトの同じ論理エクステント又は異なる記憶ユニット部分の異なる仮想記憶オブジェクトに同時に適用し得る。さらに、異なるタイプの変形を異なる仮想記憶オブジェクト又は異なる記憶ユニット部分に適用し得る。すなわち、同じI/O動作で、第1の記憶ユニット内のデータを圧縮し得、第2の記憶ユニット内のデータを暗号化し得る。別の実施形態では、同じデータに対して、同じI/O動作で圧縮及び暗号化の両方を行い得る。
一実施形態では、データ記憶システムスナップショット及び特定のロケーションとのメタデータの関連付けを含み得る、データ記憶システムによって保持されるデータは、ロケーションが、データが異なるオブジェクトストア又は記憶ユニットに配置換えされる際であっても変更されないエクステント識別子を使用して識別されるため、変更する必要がない。したがって、ユーザ又はアプリケーションデータロケーション情報への更新は、関連するマッピングへの比較的単純な更新を必要とし得、オブジェクトアドミニストレータによって処理し得、それにより、データ記憶システムを頻繁で負担が掛かる更新から解放し得る。
仮想ロケーションアドミニストレータ及びオブジェクトアドミニストレータは、記憶ユニットアドミニストレータの構成要素であり得、記憶ユニットアドミニストレータは、クライアント装置の代理として複数の異なる記憶ユニットを管理する。あたかも本明細書に全て記載されているかのように参照により本明細書に援用される米国特許出願第13/837,375号明細書及び同第13/837,456号明細書に更に詳細に記載されるように、記憶ユニットアドミニストレータは、1つ又は複数の記憶ユニットの性能が不適切であるとの判断への応答又は幾つか若しくは全てのクライアントデータに対するより高い性能へのクライアントからの要求の受信への応答を含む複数の理由により、データを移動し得る。
一実施形態では、記憶ユニットアドミニストレータは、特定のデータを新しいロケーションに移すことを要求する条件が発生したと判断し、特定のデータが特定の仮想記憶オブジェクトに記憶される特定の論理エクステントに属する。判断に応答して、記憶ユニットアドミニストレータは、特定のデータを新しいロケーションに記憶させる。さらに、判断に応答して、記憶ユニットアドミニストレータは、更新前は特定の仮想記憶オブジェクトが特定の論理エクステントに属する情報を記憶することを示していた1つ又は複数のエクステント−オブジェクトマッピングを、異なる仮想記憶オブジェクトが特定の論理エクステント又はオブジェクト−記憶ユニットマッピングに属する情報を記憶するように更新し、更新前は特定の組の記憶ユニット部分が特定の仮想記憶オブジェクトに属することを示していた特定の論理エクステント又はオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が特定の仮想記憶オブジェクトに属することを代わりに示すように更新する。
記憶ユニットアドミニストレータは、特定のデータの仮想ロケーションを識別する、ファイルシステムアドミニストレータレイヤに記憶されるデータロケーション参照を変更せずに、特定のデータの物理的ロケーションに変更させる。
2.0 構造及び機能の概説
図1は、一実施形態を実施するために使用し得るネットワーク化されたコンピュータシステム構成の一例を示す。明確な例を示すために、図1、図2、図3、図4は、一実施形態で使用し得る様々な機能要素のうちの代表的な幾つかを示すが、他の実施形態は、そのような機能要素のうちの任意の数の機能要素を使用し得、したがって、図1、図2、図3、図4は、単に可能な実装形態例として意図される。
図1は、一実施形態を実施するために使用し得るネットワーク化されたコンピュータシステム構成の一例を示す。明確な例を示すために、図1、図2、図3、図4は、一実施形態で使用し得る様々な機能要素のうちの代表的な幾つかを示すが、他の実施形態は、そのような機能要素のうちの任意の数の機能要素を使用し得、したがって、図1、図2、図3、図4は、単に可能な実装形態例として意図される。
クライアントマシン100は、クライアントマシンからリモートの記憶ユニットから検索されたデータを処理し得るデータ処理ユニット102と、クライアントマシンからリモートの記憶ユニットに送信されるデータを生成し得るデータ生成ユニット104とを備える。
クライアントマシン100は、記憶ユニットアドミニストレータ106と通信可能に結合し得る。記憶ユニットアドミニストレータ106は、1つ又は複数の記憶ユニットマネージャと通信可能に結合し得、記憶ユニットマネージャはそれぞれ、1つ又は複数の記憶ユニットに通信可能に結合し得る。そのようなシステムは、クライアントマシン100が、仮想データセンタにおける記憶ユニットにデータを記憶するか、又はデータを検索する要求等の記憶ユニット利用要求を送信する場合に利用し得る。
記憶ユニットアドミニストレータ106は、記憶ユニット124、128、136、140への要求を管理するように構成される1つ又は複数のコンピュータ、プログラム、プロセス、又は他の論理要素を表す。記憶ユニット124、128、136、140は、1つ又は複数のクラウドサービスプロバイダ、データベース記憶ユニット、CSP(クラウドサービスプロバイダ)によって提供される計算記憶ユニット、又は他の記憶ユニットによってホストされる仮想記憶ユニットであり得る。記憶ユニット124、128、136、140はそれぞれ、異なる物理的ホストマシンに配置し得る。記憶ユニット124、128、136、140は、オブジェクト、ブロック、又はエクステントを含む任意の様々な異なる記憶ユニットであり得る。
記憶ユニットアドミニストレータ106は、記憶ユニット利用ポリシーマッピング108と、記憶ユニット利用ポリシー調整命令110と、記憶ユニット性能モニタ112と、記憶ポリシーマネージャ118と、記憶ユニット利用要求アドミニストレータ114と、記憶ユニット利用ポリシー更新器116とを備える。記憶ユニット利用ポリシーマッピング108は、記憶ユニット利用ポリシーとサービスレベルとの関連付けを識別し得る。
記憶ユニット利用ポリシー調整命令110は、記憶ユニット利用ポリシーマッピング108を変更する命令を含み得る。記憶ユニット利用要求アドミニストレータ114は、入力データ動作要求を適切な記憶ユニットマネージャ又は記憶ユニットに向け得る。記憶ユニット性能モニタ112は、1つ又は複数の記憶ユニットの性能を監視し得る。記憶ユニット利用ポリシー更新器116は、記憶ユニット利用ポリシー調整命令110に従い、記憶ユニット性能の分析に基づいて、記憶ユニット利用ポリシーマッピング108を更新し得る。記憶ポリシーマネージャ118は、特定された性能情報に基づいて、新しい記憶ポリシーに従ってクライアントマシン100のデータを記憶させ得る。
記憶ユニットアドミニストレータ106は、記憶ユニットマネージャ120及び132等の1つ又は記憶ユニットマネージャに通信可能に結合し得る。各記憶ユニットマネージャ120、132は、記憶ユニット124、128、136、140等の1つ又は複数の記憶ユニットに通信可能に結合し得る。一実施形態では、記憶ユニットアドミニストレータ106は、記憶ユニットマネージャを通して通信するのではなく、記憶ユニット124、128、136、140と直接通信する。
幾つかの実施形態では、記憶ユニットマネージャ120及び132は、記憶ユニットアクセスユニットを備える。記憶ユニットアクセスユニット122は、記憶ユニット124、128に情報を送信するか、又は記憶ユニット124、128から情報を受信し得、記憶ユニット124、128は両方とも、記憶ユニットマネージャ120に通信可能に結合される。同様に、記憶ユニットアクセスユニット134は、記憶ユニット136、140に情報を送信するか、又は記憶ユニット136、140から情報を受信し得、記憶ユニット136、140は両方とも、記憶ユニットマネージャ132に通信可能に結合される。
記憶ユニット124、128、136、140は、クライアントデータ126、130、138、142等のクライアントマシン100に関連付けられたデータを含み得る。クライアントマシン100は、記憶ユニットアドミニストレータ106に読み出し又は書き込み要求を送信することにより、記憶ユニット124、128、136、140からデータを読み取るか、又は記憶ユニット124、128、136、140にデータを書き込み得る。データ記憶ユニット124、128、136、140は、様々な実施形態により、ブロック記憶ユニット、ファイル記憶ユニット、オブジェクト記憶ユニット、データベース記憶ユニット、又は他の記憶ユニットであり得る。
図2は、図1のシステムの状況例を示す。クライアントマシン100は、クライアント210及び記憶ユニットアドミニストレータ106のロジックによって制御され得、記憶ユニットマネージャ120及び132はマネージャ220によって制御され得る。
マネージャ220は、記憶ユニット124、128、136、140に記憶されるデータ又は記憶ユニット124、128、136、140で計算されるデータを利用し得る記憶ユニット124、128、136、140をホストするクラウドサービスプロバイダ及びクライアント210とは異なり得る。マネージャ220は、本明細書に記載される方法に従って、クライアント210の代理として、記憶ユニット124、128、136、140を制御し管理し得る。
記憶ユニットアドミニストレータ106は、仮想マシン222内で動作し得、記憶ユニットマネージャ120は別個の仮想マシン224内で動作し得、記憶ユニットマネージャ132は、別個の仮想マシン226内で動作し得る。一実施形態では、仮想マシン222、224、及び226は、記憶ユニット124、128、136、140のうちの1つ又は複数をホストする同じクラウドサービスプロバイダによってホストされる。マネージャ220は、記憶ユニットアドミニストレータ106のロジック、記憶ユニットマネージャ120、及び記憶ユニットマネージャ132等の仮想マシン222、224、226内のプロセスの実行を制御し得る。
幾つかの実施形態では、記憶ユニットアドミニストレータ106は、記憶ユニットマネージャ120又は132に記憶ユニット124、128、136、140にアクセスするように要求せずに、記憶ユニット124、128、136、140に直接アクセスする。しかし、幾つかの実施形態では、1つ又は複数のクラウドサービスプロバイダは、記憶ユニット124、128、136、140をホストし、単一の仮想マシンに接続し得る記憶ユニットの数を特定数未満に制限する。例えば、いくつかのクラウドサービスプロバイダは、特定の仮想マシンによってアクセスし得る仮想ディスク数を制限する。そのような一実施形態では、図1及び図2に示されるシステムは、記憶ユニットアドミニストレータ106が、記憶ユニットアドミニストレータによって制御することができる記憶ユニット数を最大化できるようにし得る。記憶ユニットアドミニストレータ106は、仮想マシン224及び226における記憶ユニットマネージャ120及び132等の複数の異なる仮想マシンのモジュールに、様々な記憶ユニット利用動作を実行するか、又は必要な性能情報を提供するように要求することにより、記憶ユニット124、128、136、140を管理し得る。そのような手法により、記憶ユニットアドミニストレータ106は、単一の仮想マシンによって利用されることが許可される記憶ユニットの最大数よりも大きい数の記憶ユニットを管理することができる。
サービスレベル合意230は、クライアント210に提供する特定の記憶サービスレベルを示す、クライアント210とマネージャ220との合意であり得る。サービスレベル合意は、記憶ユニット利用要求を実行するための実行の許容可能レベルを示す閾値又は値の範囲を示し得る。記憶ユニット利用要求は、記憶ユニット124、128、136、140からのデータにアクセスする要求又は記憶ユニット124、128、136、140にデータを保存する要求を含み得る。例えば、サービスレベル合意は、記憶ユニットアドミニストレータ106におけるクライアントマシン100から受信されるデータ動作要求が、個々のデータ動作で100データ動作/秒のメジアン速度で、且つ100データ動作/50ミリ秒以上のメジアン速度で完了すべきであることを示し得る。サービスレベル合意230は、クライアント210とマネージャ220との間でのみであり得、いかなるクラウドサービスプロバイダも含まなくてもよい。
図3は、ファイルシステム等のデータ記憶システム内の仮想記憶オブジェクト及び記憶ユニット部分でのユーザ又はアプリケーションデータの分布例を示す。代替の実施形態では、データ記憶システムは、ファイルではなく論理ボリューム又はオブジェクトの記憶に使用し得、したがって、論理ボリュームマネージャ、ブロック記憶システム、オブジェクトストア、又は任意の他の論理データ管理サービスとして識別し得る。他の実施形態では、データ記憶システムは、ユーザ又はアプリケーションデータをデータベースに記憶するために使用される。
連続データ302は、ファイル、論理ボリューム、又はオブジェクト等の連続データセットであり得、データの連続部分であり得る論理エクステントに分割し得る。例えば、連続データ302は、エクステント304、306、及び308に分割し得、連続データ328は、エクステント330、332、及び334に分割し得る。幾つかの実施形態では、エクステントはそれぞれ固定サイズを有する。記憶ユニットアドミニストレータ106は、各エクステントを異なる仮想記憶オブジェクトに記憶し得る。例えば、エクステント304、306、308はそれぞれ、仮想記憶オブジェクト310、312(図示せず)、314(図示せず)に記憶し得る。
異なる連続データのエクステントを集計して、単一のオブジェクトを形成し得る。例えば、連続データ302のエクステント304及び連続データ328のエクステント332を集計して、仮想オブジェクト310を形成し得る。一実施形態では、連続データ302及び328は異なるファイルである。
この状況では、仮想記憶オブジェクトは、記憶ユニット部分の集まりであり、記憶ユニット部分の幾つか又は全ては、異なる記憶ユニットの部分であり得る。例えば、仮想記憶オブジェクト310は集合的に、仮想オブジェクト部分316、318、320を表し得、各オブジェクト部分は別個の記憶ユニットの部分であり得る。仮想オブジェクト部分316は記憶ユニット330の部分であり得、仮想オブジェクト部分318は記憶ユニット332の部分であり得、仮想オブジェクト部分320は記憶ユニット334の部分であり得る。幾つかの実施形態では、各仮想オブジェクト部分は固定サイズのものである。
記憶ユニットアドミニストレータ106は、特定の記憶ポリシーに従って記憶ユニットにわたってユーザ又はアプリケーションデータを分割し得る。記憶ポリシーは、データ冗長性、ミラーリング、若しくは複製のレベル、データ記憶ストライピングポリシー(ビットレベル、バイトレベル、及びブロックラベル)、特定のRAIDレベル、特定の消失訂正符号(イレージャーコーディング)方式等のRAIDへの代替、又は記憶ユニットの信頼性、可用性、性能、若しくは容量に関連する任意の他のパラメータを示し得る。データが分散される記憶ユニットの数、冗長データを保持すべき各記憶ユニットに記憶されるデータ量、冗長データが様々な記憶ユニットにわたっていかに分散されるべきか、及び他のそのようなパラメータは、記憶ユニットアドミニストレータ106によって選択される記憶ポリシーに依存し得る。
図4は、ネットワーク化されたコンピュータシステムの一例での記憶ユニットアドミニストレータの一例の構成要素を示す。記憶ユニットアドミニストレータ106は、記憶ユニットマネージャ420、426、432、438を介して記憶ユニット422、424、428、430、434、436、440、442に記憶されるクライアントデータへのアクセスを管理し、促進し得る。記憶ユニットアドミニストレータ106は仮想ロケーションアドミニストレータ402を備え得、仮想ロケーションアドミニストレータ402は、ユーザ又はアプリケーションメタデータの保持及びクライアントデータを検索するか、又はクライアントデータを記憶ユニットに記憶する要求の処理等のタスクを実行する。
データI/Oハンドラ406は、クライアントマシン100からデータを読み出す要求を受信し、要求されたデータをクライアントマシン100に提供する。論理エクステントロケーション情報408は、各論理エクステントのロケーション情報を識別する。ロケーション情報は、データが記憶される任意の物理的ロケーションを識別せずに、論理エクステントのデータが記憶される1つ又は複数の仮想ロケーションを識別し得る。例えば、ロケーション情報は、データの仮想ロケーションを示すエクステント識別子を含み得る。論理エクステントを構成する特定の物理的ロケーションは、論理エクステントロケーション情報408への更新を何ら行わずに、経時変化し得る。他の実施形態では、データが記憶される仮想ロケーションは、論理ブロック識別子、論理オブジェクト識別子を使用して、且つ/又は仮想ディスク、ファイル、又はオブジェクト内のバイトオフセットとして識別し得る。
一実施形態では、論理エクステントロケーション情報408は、各ファイル、論理ボリューム、又はオブジェクトの論理エクステントツリーを備え、ツリー内の各エントリは、特定のデータに対応し、対応するエクステントを識別するエクステントIDと、エクステントの開始からデータが開始されるまでの距離を示すオフセット量と、オフセットから開始されるエクステント内に含まれるデータ量を示す長さ量とを含む。論理エクステント情報408を使用して、仮想ロケーションアドミニストレータ402は、クライアントによって要求し得る任意のデータのエクステントIDを識別し得る。幾つかの実施形態では、論理エクステントツリーは、B+ツリーの構造を有する。
記憶ユニットアドミニストレータ106はオブジェクトアドミニストレータ410を備え、オブジェクトアドミニストレータ410は、対応する記憶ユニット内の要求データの物理的ロケーションを特定し得る。オブジェクトアドミニストレータ410はエクステント−オブジェクトマッピング412を保持し得、このマッピングは、論理エクステント情報408において識別される各エクステントの対応する仮想記憶オブジェクトを識別し得る。他の実施形態では、エクステント−オブジェクトマッピング412は、仮想ロケーションアドミニストレータ402に記憶し得る。記憶ユニットアドミニストレータ106は、特定のエクステント内に含まれるデータが異なるオブジェクトに配置換えされる場合、エクステント−オブジェクトマッピング412を更新し得る。幾つかの実施形態では、エクステントIDは、エクステント−オブジェクトマッピング412内の1つ又は複数のロケーションへの参照であり、このマッピングは、対応するエクステントについてのマッピング情報を含む。マッピング情報は、エクステントIDによって識別されるエクステントを構成する1つ又は複数のオブジェクトを識別し得る。
オブジェクトアドミニストレータ410はオブジェクトインスタンシエータ414を備え得、オブジェクトインスタンシエータ414は、必要な場合、新しい仮想記憶オブジェクトをインスタンス化し得る。例えば、データが新しい仮想記憶オブジェクト又は新しい記憶オブジェクト部分に移動する場合、オブジェクトインスタンシエータ414は、1つ又は複数の新しい記憶ユニットを仮想データセンタに要求し得る。オブジェクトインスタンシエータ414は、異なる連続データからのエクステントを集計してより大きなオブジェクトにし得る。例えば、オブジェクトインスタンシエータは、連続データ302からのエクステント304と、連続データ328からのエクステント332とを集計して、仮想オブジェクト310を形成し得る。
オブジェクトアドミニストレータ410は、関連付けられた記憶ユニット内のデータの検索及び記憶を促進するオブジェクトストアを備え得る。例えば、ブロックオブジェクトストア418は、記憶ユニット422、424、428、430等のクラウドサービスプロバイダ(CSP)によって提供されるCSPブロック記憶ユニットの部分を含む仮想記憶オブジェクトと通信することが可能であり得る。特定の実施形態に応じて、ブロックオブジェクトストア418は、記憶ユニットマネージャ420及び426を介して、又は記憶ユニットマネージャから独立して記憶ユニットと通信し得る。他の実施形態では、単一のオブジェクトストアを使用して、異なる装置タイプの記憶ユニットと通信し得る。
ブロックオブジェクトストア418はそれぞれ、オブジェクト部分ディレクトリ416を保持し得る。ブロックオブジェクトストア418は、1つ又は複数の回転式ハードディスクドライブ(HDD)、フラッシュベースのソリッドステートドライブ(SSD)、揮発性若しくは不揮発性ランダムアクセスメモリ(RAM又はNVRAM)、又は何らかの他のタイプの媒体を含み得る。オブジェクトストアによって管理される各仮想記憶オブジェクトについて、オブジェクト部分ディレクトリは、仮想記憶オブジェクトに含まれる特定の記憶ユニット部分と、特定の記憶ユニット部分のロケーションとを識別し得る。例えば、オブジェクト部分ディレクトリ416は、仮想記憶オブジェクト310が、記憶ユニット322のロケーションXで始まる仮想オブジェクト部分316と、記憶ユニット324のロケーションYで始まる仮想オブジェクト部分318と、記憶ユニット326のロケーションZで始まる仮想オブジェクト部分320とを含むことを示し得る。オブジェクト部分ディレクトリは、記憶ユニット部分の順序も示し得る。例えば、オブジェクト部分ディレクトリ416は、仮想オブジェクト部分316の後に仮想オブジェクト部分318が続き、仮想オブジェクト部分318の後に仮想オブジェクト部分320が続くことを示し得る。オブジェクトアドミニストレータ410は、オブジェクトアドミニストレータ410に記憶される物理的ロケーションへの仮想ロケーションのマッピングと併せて、仮想ロケーションアドミニストレータ402から受信される仮想ロケーション情報に基づいて、要求されたデータの記憶ユニットアドレスを特定し得る。例えば、オブジェクトアドミニストレータ410は、エクステント識別子、オフセット量、及び長さ量を受信し得、要求されたデータの記憶ユニットアドレスは、エクステント−オブジェクトマッピング412を使用して識別されたエクステントに属するオブジェクトを見つけるとともに、オブジェクト部分ディレクトリ416を使用して識別されたオブジェクトに属する記憶ユニット部分を見つけることにより、特定し得る。記憶ユニットアドレスは、対応する記憶ユニット内のデータのロケーションを識別する。
仮想ロケーションアドミニストレータ402は、仮想ロケーション識別子を使用してデータロケーションのみを記憶し得る。仮想ロケーション識別子は、論理エクステント識別子、論理ブロック識別子、論理オブジェクト識別子のうちの1つ又は複数を含み得る。別の実施形態では、仮想ロケーションは、仮想ディスク、ファイル、又はオブジェクト内のバイトオフセットとして識別され得る。オブジェクトアドミニストレータ410は、エクステント−オブジェクトマッピング412及び/又はオブジェクト部分ディレクトリ416に基づいて、仮想ロケーション識別子を物理ロケーションに変換し得る。
2.1 クライアントデータの検索中のエクステント−オブジェクトマッピング及びオブジェクト部分ディレクトリの利用
図5は、クライアントデータの検索中、エクステント−オブジェクトマッピング及びオブジェクト部分ディレクトリを利用するプロセスの一例を示す。
図5は、クライアントデータの検索中、エクステント−オブジェクトマッピング及びオブジェクト部分ディレクトリを利用するプロセスの一例を示す。
図5のプロセスは、記憶ユニットアドミニストレータ106において実行し得る。ブロック502において、仮想ロケーションアドミニストレータ402は、クライアントマシン100から、特定のデータにアクセスする要求を受信する。ブロック504において、仮想ロケーションアドミニストレータ402は、論理エクステントロケーション情報308を使用して、特定のデータが属するエクステントのエクステントIDを特定する。他の実施形態では、仮想ロケーションアドミニストレータは、特定のデータが属するブロック又はオブジェクトを特定し得る。論理エクステントロケーション情報308は、データオフセット及び長さによってインデクス付けられるデータエクステントマッピングツリーであり得る。仮想ロケーションアドミニストレータ402は、クライアント要求において提供されるデータオフセット及び長さを使用して、特定のエクステントID、データのオフセット、及び長さを特定し得る。クライアント要求は、データオフセットをファイルオフセットとして識別し得る。
ブロック506において、仮想ロケーションアドミニストレータ402は、特定のデータに対する要求をオブジェクトアドミニストレータ410に送信する。要求は、データが属するエクステントと、エクステントの開始からデータが開始されるまでの距離を示すオフセット量と、オフセットから開始されるエクステントに含まれるデータ量を示す長さ量とを識別し得る。ブロック508において、オブジェクトアドミニストレータ410は、要求されたデータを含む仮想記憶オブジェクトを識別する。オブジェクトアドミニストレータ410は、エクステント−オブジェクトマッピング412に基づいて、要求されたデータを含むオブジェクトを識別し得る。他の実施形態では、エクステント−オブジェクトマッピング412は、仮想ロケーションアドミニストレータ402に記憶し得、仮想ロケーションアドミニストレータ402は、どのオブジェクトが要求されたデータを含むかを特定し得る。異なるオブジェクトストアには異なるオブジェクトを関連付け得る。仮想ロケーションアドミニストレータ402は、どのオブジェクトが要求されたデータを含むかを特定し、選択されたオブジェクトに対応するオブジェクトストアを選択することにより、1組のオブジェクトストアの中から対応するオブジェクトストアを選択し得る。
ブロック510において、オブジェクトアドミニストレータ410は、特定のデータを検索する対応するオブジェクトストアを要求する。オブジェクトストアは、記憶されるオブジェクト部分ディレクトリ及び受信したエクステントID、並びに幾つかの実施形態では、長さ及びオフセット情報に基づいて、データの記憶ユニットアドレスを特定し得る。幾つかの実施形態では、オブジェクト部分ディレクトリは、各仮想記憶オブジェクトについて、部分が仮想記憶オブジェクトを構成する記憶ユニットと、仮想記憶オブジェクトを構成する記憶ユニット部分の記憶ユニット内のロケーションと、仮想記憶オブジェクトに対応する記憶ポリシーとを示す。例えば、オブジェクト部分ディレクトリは、仮想記憶オブジェクト310が仮想オブジェクト部分316、318、及び320を含み、仮想オブジェクト部分316が記憶ユニット322のロケーションXで開始され、仮想オブジェクト部分318が記憶ユニット324のロケーションYで開始され、仮想オブジェクト部分320が記憶ユニット326のロケーションZで開始されることを示し得る。オブジェクト部分ディレクトリは、仮想記憶オブジェクト310が、RAID5等の特定の記憶冗長符号化に従って分散することも示し得る。幾つかの実施形態は、消失訂正符号等の代替の記憶冗長符号化を使用して、米国特許出願第13/837,456号明細書に記載のように、異なる目的を達成し得る。各仮想オブジェクト部分は、固定サイズであってもよく、又はオブジェクト部分ディレクトリは、各仮想オブジェクト部分に記憶されるデータ量を示すこともできる。
ブロック512において、対応するオブジェクトストアは、要求されたデータを対応する記憶ユニットロケーションから検索する。ブロック514において、オブジェクトアドミニストレータ410は、検索されたデータを仮想ロケーションアドミニストレータ402に提供する。要求されたデータと共に、オブジェクトアドミニストレータ410は、仮想ロケーションアドミニストレータ402に、検索されたデータに関連付けられた仮想ロケーションを繰り返し表明する。
明確な例を示すために、仮想ロケーションアドミニストレータ402は、エクステント識別子を使用して、データの仮想ロケーションを識別するものとして上述されており、仮想ロケーションはオブジェクト識別子に変換され、最後に、オブジェクトアドミニストレータ410によって記憶ユニット部分アドレスに変換される。しかし、他の実施形態では、データは他のフォーマットで記憶し得る。例えば、他の実施形態では、仮想ロケーションアドミニストレータ402は、論理エクステント識別子の代わりに論理ブロック識別子への参照を保持し得、論理ブロック識別子は最終的に、オブジェクトアドミニストレータ410によって記憶ユニット部分アドレスに変換し得る。
2.2 クライアントデータの配置換えの際のエクステント−オブジェクトマッピング又はオブジェクト部分ディレクトリの更新
図6は、特定のデータを配置換えする際にロケーション情報を更新するプロセスの一例を示す。図6のプロセスは、記憶ユニットアドミニストレータ106において実行し得る。ブロック602において、記憶ユニットアドミニストレータ106は、特定のデータを新しいロケーションに移動することを要求する条件が発生したと判断し、特定のデータは、特定の仮想記憶オブジェクトに記憶される特定の論理エクステントの部分である。
図6は、特定のデータを配置換えする際にロケーション情報を更新するプロセスの一例を示す。図6のプロセスは、記憶ユニットアドミニストレータ106において実行し得る。ブロック602において、記憶ユニットアドミニストレータ106は、特定のデータを新しいロケーションに移動することを要求する条件が発生したと判断し、特定のデータは、特定の仮想記憶オブジェクトに記憶される特定の論理エクステントの部分である。
ブロック604において、オブジェクトアドミニストレータ410は、特定のデータを新しいロケーションに記憶させる。特定のデータの配置換えは、記憶ユニットアドミニストレータ106がデータを全体的に異なる仮想記憶オブジェクト又は異なる記憶ユニット部分に配置換えすることを含み得、これは、配置換え前に、配置換えされたデータを含んでいた特定の仮想記憶オブジェクトと同じ特定の仮想記憶オブジェクトに追加される。特定のデータが新しいロケーションに記憶されることに応答して、記憶ユニットアドミニストレータ106は、特定のデータが異なる仮想記憶オブジェクトに配置換えされたか、それとも単に異なる記憶ユニット部分に配置換えされたかに応じて、ブロック606又はブロック608のステップの何れかを実行する。
ブロック606において、記憶ユニットアドミニストレータ106は、特定のデータを異なる仮想記憶オブジェクトに配置換えし、記憶ユニットアドミニストレータ106は、更新前は、特定の仮想記憶オブジェクトが特定の論理エクステントに属する情報を記憶することを示していたエクステント−オブジェクトマッピングを、異なる仮想記憶オブジェクトが特定の論理エクステントに属する情報を記憶することを示すように更新する。
ブロック608において、記憶ユニットアドミニストレータ106は、データを、異なる仮想記憶オブジェクトではなく、異なる記憶ユニット部分に配置換えする。記憶ユニットアドミニストレータ106は、更新前、特定の組の記憶ユニット部分が特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が特定の仮想記憶オブジェクトに属することを代わりに示すように更新する。
別の実施形態では、記憶ユニットアドミニストレータ106は、オブジェクトに属する1組の記憶ユニットを変更する代わりに、オブジェクト−記憶ユニットマッピング内のオフセット情報を更新する。例えば、オブジェクト部分ディレクトリ416は、仮想記憶オブジェクト部分が、記憶ユニット322のロケーションXの代わりに、記憶ユニット322のロケーションX+1024で開始されることを示すように、オブジェクト部分ディレクトリ416を更新し得る。
データは、既に仮想記憶オブジェクトに属する記憶ユニット部分に配置替えし得る。例えば、記憶ユニットアドミニストレータ106は、仮想記憶オブジェクトが広がる1組の記憶ユニットを統合し得る。そのような一実施形態では、オブジェクト−記憶ユニット部分マッピングは、配置換えされたデータを含む仮想記憶オブジェクトがもはや、データが前に配置されていた記憶ユニット部分を含まないことを示すように、変更し得る。
データは、仮想記憶オブジェクトに属さない記憶ユニット部分に配置替えすることも可能である。そのような一実施形態では、オブジェクト−記憶ユニット部分マッピングは、配置換えされたデータを含む仮想記憶オブジェクトが、データの配置換え先の記憶ユニット部分も含むことを示すように、変更し得る。データが、配置換えされたデータを前に含んでいた記憶ユニット部分に残っていない場合、マッピングは、配置換えされたデータを前に含んでいた記憶ユニット部分が仮想記憶オブジェクトから除去されることを示すように、更新することもできる。
米国特許出願第13/837,375号明細書に更に詳細に記載されるように、記憶ユニットアドミニストレータ106は、特定の記憶ユニットの性能が不適切であるとの判断に応答して、特定の記憶ユニットの使用をディセーブルし得る。記憶ユニットアドミニストレータ106は、同様に実行中の2つの記憶ユニットのパターンを検出することに応答して、少なくとも1つの特定の目的で、第1又は第2の記憶ユニットの使用をディセーブルすることもできる。そのようなパターンの検出は、2つの記憶ユニットが同じ物理的装置によってホストされることを示し得る。特定の記憶ユニットの使用をディセーブルするとの判断に応答して、記憶ユニットアドミニストレータ106は、特定の記憶ユニットに記憶される全てのデータを異なる記憶ユニットに移動し得る。
幾つかの実施形態では、ディセーブルに選択される記憶ユニットの部分を含む各仮想記憶オブジェクトは、代わりに、異なる記憶ユニットの部分を含むように変更される。異なる記憶ユニット部分を含むように仮想記憶オブジェクトを変更することは、仮想記憶オブジェクトが、配置換えされた記憶ユニット部分の代わりに新しい記憶ユニット部分を含むことを示すように、対応するオブジェクトストアのオブジェクト部分ディレクトリを更新することを含み得る。例えば、仮想記憶オブジェクト100が記憶ユニット102のロケーションXを含むことを示すオブジェクト部分ディレクトリエントリは、仮想記憶オブジェクト100が記憶ユニット104のロケーションYを含むことを示すように変更し得る。
米国特許出願第13/837,456号明細書に更に詳細に記載されるように、記憶ユニットアドミニストレータ106は、ある記憶ポリシーに従って記憶されるデータを、異なる記憶ポリシーに従って記憶させ得る。特定のデータに適用可能な記憶ポリシーを変更することは、データミラーリング又は冗長性のために使用される記憶ユニット部分の量、データがストライピングされる記憶ユニット部分数、各記憶ユニット部分のサイズ、使用される特定の消去若しくは冗長性符号化、又は記憶ユニットの信頼性、可用性、性能、及び容量に関連する他のパラメータを変更することを含み得る。
一実施形態では、記憶ユニットアドミニストレータ106は、1組の記憶ユニットの性能の分析に基づいて、特定のサービスレベルに関連付けられた前の記憶ポリシーがもはや、特定のサービスレベルに関連付けられた性能期待に合わないと判断し得る。そのような判断は、ある物理的ロケーションから別の物理的ロケーションへのデータの移動を要求する条件の一例である。判断に応答して、記憶ユニットアドミニストレータ106は、特定のサービスレベルに関連付けられた記憶ポリシーを変更し得る。例えば、「ゴールド」サービスレベルに対応する記憶ポリシーは、特定量のデータを4つの異なる記憶ユニットの4つの記憶ユニット部分にわたってストライピングすることを要求し得る。データが、期待される時間量以内で検索されていないとの判断に応答して、記憶ユニットアドミニストレータ106は、記憶ポリシーにより、「ゴールド」サービスレベルに関連付けられた特定のサービスレベル目的を満たすために調整が要求されると判断し得る。したがって、記憶ユニットアドミニストレータ106は、4つの異なる装置の代わりに、5つの異なる装置の5つの記憶ユニット部分にデータをストライピングすることを要求する「ゴールド」サービスレベルに対応する記憶ポリシーを変更し得る。
その結果、「ゴールド」サービスレベルに従って記憶されるデータを含む仮想記憶オブジェクトはそれぞれ、仮想記憶ユニットをまだ含んでいない記憶ユニットの記憶ユニット部分を含むように変更し得る。記憶ユニットアドミニストレータ106は、幾つかのデータを仮想記憶オブジェクトに属する他の記憶ユニット部分から新たに追加された記憶ユニと部分に移動し得る。様々な実施形態によれば、特定の仮想記憶オブジェクトに属する1組の記憶ユニット部分を変更することは、記憶ユニット部分を追加すること、削除することは、又は置換することを含み得る。
記憶ユニットアドミニストレータ106は、記憶ユニットアドミニストレータ106が特定のデータに異なるサービスレベルを関連付ける場合、ある記憶ポリシーに従って記憶されるデータを異なる記憶ポリシーに従って記憶させることもできる。記憶ユニットアドミニストレータ106は、特定のデータに異なるサービスレベルを関連付けるクライアントマシン100からの要求に応答して、それを行い得る。例えば、クライアントは、特に重要なものとして特定のサブセットのデータを示し得る。クライアントからの指示の受信に応答して、記憶ユニットアドミニストレータ106は、データに「プラチナセキュリティ」サービスレベルを関連付け得る。「プラチナセキュリティ」サービスレベルに関連付けられた記憶ポリシーは、単一のパリティドライブとして機能する単一の記憶ユニット部分のみを含み得る他の記憶ポリシーの代わりに、2つの記憶ユニット部分が2つの別個のパリティドライブとして機能することを要求し得る。そのような一実施形態では、記憶ユニットアドミニストレータ106は、データが記憶される仮想記憶オブジェクトに属する記憶ユニット部分を追加又は削除する代わりに、データを全体的に新しい仮想記憶オブジェクトに移動し得る。データを新しい仮想記憶オブジェクトに移動した結果、記憶ユニットアドミニストレータ106は、エクステント−オブジェクトマッピング412を更新し得る。例えば、記憶ユニットアドミニストレータ106は、データエクステント102が、仮想記憶オブジェクト4の代わりに仮想記憶オブジェクト6に記憶されることを示す特定のマッピングを変更し得る。
一実施形態では、サービスレベルに関連付けられた記憶ポリシーが変更される場合、仮想記憶オブジェクトに属する1組の記憶ユニット部分は変更され、特定のデータに関連付けられたサービスレベルが変更される場合、データは、全体的に新しい仮想記憶オブジェクトに移動する。
新しいロケーションへの特定のデータの移動を要求する条件が発生したと判断する工程は、特定の記憶ユニットの性能が不適切であると判断する工程、2つの記憶ユニットが同じ物理的装置によってホストされることを示すパターンの発生を検出する工程、前の記憶ポリシーがもはや、特定のサービスレベルに関連付けられた性能期待に合わないと判断すること、又は特定のデータに異なるサービスレベルを関連付けるクライアントからの要求を受信する工程を含み得る。そのような条件は単なる例であり、記憶ユニットアドミニストレータ106は、異なる記憶ユニットにわたる全般的な負荷平衡の必要性の判断等の特定のデータを新しいロケーションに移動することを必要とする他の条件の発生の判断に応答して、図6のプロセスを実行することもできる。
図6のプロセスは、データ又はメタデータが暗号化又は圧縮のために変形される場合など、データ又はメタデータを書き換える必要がある場合に実行することもできる。例えば、特定のデータを書き換えることは、特定のデータを新しい記憶ユニット部分に書き換える工程と、特定のデータが、前に記憶される記憶ユニット部分の代わりに新しい記憶ユニット部分に記憶されることを示すように、オブジェクト−記憶ユニットマッピングを更新する工程と、単一の動作又は複合トランザクション内で全てのデータ又はメタデータ変形を実行する工程とを含み得る。そのような手法は、必要とされる変形毎に複数の個々の動作としてよりコストが掛かるように実行される、特定のデータがまず、特定のロケーションから削除され、それから、同じ特定のロケーションに書き換えられる従来の手法よりも効率的であり得る。
明確な例を示すために、オブジェクトアドミニストレータ410は、オブジェクトに属するデータが第1の記憶ユニット部分から別の記憶ユニット部分に移動される場合、記憶ユニット部分へのオブジェクトのマッピングを更新するものとして上述されている。他の実施形態では、データは他のフォーマットで記憶し得る。例えば、他の実施形態では、オブジェクトアドミニストレータ410は、記憶ユニット部分への論理ブロックのマッピングを含み得、データを第1の記憶ユニット部分から第2の記憶ユニット部分に移動することに応答して、オブジェクトアドミニストレータ410は、特定のブロックが、第1の記憶ユニット部分ではなく第2の記憶ユニット部分を含むことを示すように、記憶ユニット部分へのブロックのマッピングを更新し得る。
3.0 実施のメカニズム − ハードウェア概説
図7は、本発明の一実施形態を実施し得るコンピュータシステム700を示すブロック図である。コンピュータシステム700は、情報を通信するバス702又は他の通信機構と、バス702に結合され、情報を処理するプロセッサ704とを含む。コンピュータシステム700は、バス702に結合され、プロセッサ704によって実行される情報及び命令を記憶する、ランダムアクセスメモリ(RAM)又は他のダイナミック記憶装置等のメインメモリ706も含む。メインメモリ706は、命令の実行中、プロセッサ704によって実行される一時変数又は他の中間情報の記憶にも使用し得る。コンピュータシステム700は、バス702に結合され、プロセッサ704の静的情報及び命令を記憶する、読み取り専用メモリ(ROM)708又は他のスタティック記憶装置を更に含む。磁気ディスク又は光ディスク等の記憶装置710が提供され、バス702に結合されて、情報及び命令を記憶する。
図7は、本発明の一実施形態を実施し得るコンピュータシステム700を示すブロック図である。コンピュータシステム700は、情報を通信するバス702又は他の通信機構と、バス702に結合され、情報を処理するプロセッサ704とを含む。コンピュータシステム700は、バス702に結合され、プロセッサ704によって実行される情報及び命令を記憶する、ランダムアクセスメモリ(RAM)又は他のダイナミック記憶装置等のメインメモリ706も含む。メインメモリ706は、命令の実行中、プロセッサ704によって実行される一時変数又は他の中間情報の記憶にも使用し得る。コンピュータシステム700は、バス702に結合され、プロセッサ704の静的情報及び命令を記憶する、読み取り専用メモリ(ROM)708又は他のスタティック記憶装置を更に含む。磁気ディスク又は光ディスク等の記憶装置710が提供され、バス702に結合されて、情報及び命令を記憶する。
コンピュータシステム700は、バス702を介して、陰極線管(CRT)等のディスプレイ712に結合されて、情報をコンピュータユーザに表示し得る。英数字及び他のキーを含む入力装置714は、バス702に結合され、情報及びコマンド選択をプロセッサ704に通信する。別のタイプのユーザ入力装置は、方向情報及びコマンド選択をプロセッサ704に通信するとともに、ディスプレイ712上のカーソルの移動を制御する、マウス、トラックボール、又はカーソル方向キー等のカーソル制御装置716である。この入力装置は通常、装置が平面において位置を指定できるようにする、第1の軸(例えば、x)及び第2の軸(例えば、y)の2つの軸において2つの自由度を有する。
本発明は、本明細書に記載される技法を実施するコンピュータシステム700の使用に関連する。本発明の一実施形態によれば、それらの技法は、プロセッサ704がメインメモリ706に含まれる1つ又は複数の命令の1つ又は複数のシーケンスを実行することに応答して、コンピュータシステム700によって実行される。そのような命令は、記憶装置710等の別のマシン可読媒体からメインメモリ706に読み込み得る。メインメモリ706に含まれる命令シーケンスの実行は、プロセッサ704に本明細書に記載されるプロセスステップを実行させる。代替の実施形態では、ハードワイヤード回路を、本発明を実施するソフトウェア命令の代替として、又は代わりとして使用し得る。したがって、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組合せに限定されない。
「マシン可読媒体」という用語は、本明細書で使用される場合、マシンを特定の様式で動作させるデータを提供することに参加する任意の媒体を指す。コンピュータシステム700を使用して実施される一実施形態では、様々なマシン可読媒体が、例えば、実行のために命令をプロセッサ704に提供することに関わる。そのような媒体は、記憶媒体及び伝送媒体を含むが、これらに限定されない多くの形態を取り得る。記憶媒体は、不揮発性媒体及び揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶装置710等の光ディスク又は磁気ディスクを含む。揮発性媒体は、メインメモリ706等のダイナミックメモリを含む。伝送媒体は、バス702を構成するワイヤを含め、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体は、無線波及び赤外線データ通信中に生成されるなどの音響波又は光波の形態をとることもできる。全てのそのような媒体は、媒体によって搬送される命令が、命令をマシンに読み込む物理的機構によって検出できるようにするように有形でなければならない。
マシン可読媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、若しくは任意の他の磁気媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、パターンになった穴を有する任意の他の物理的媒体、RAM、PROM、及びEPROM、フラッシュ−EPROM、任意の他のメモリチップ若しくはカートリッジ、後述する搬送波、又はコンピュータが読み取ることができる任意の他の媒体を含む。
様々な形態のマシン可読媒体が、実行のために、1つ又は複数の命令の1つ又は複数のシーケンスをプロセッサ704に搬送することに関わり得る。例えば、命令はまず、リモートコンピュータの磁気ディスクで搬送し得る。リモートコンピュータは、命令をダイナミックメモリにロードし、モデムを使用して電話回線を介して命令を送信することができる。コンピュータシステム700にローカルなモデムは、電話回線上でデータを受信し、赤外線送信器を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で搬送されるデータを受信することができ、適切な回路が、データをバス702上に配置することができる。バス702は、データをメインメモリ706に搬送し、メインメモリ706から、プロセッサ704は命令を検索して実行する。メインメモリ706によって受信される命令は、任意選択的に、プロセッサ704による実行前又は実行後に記憶装置710に記憶し得る。
コンピュータシステム700は、バス702に結合される通信インタフェース718も含む。通信インタフェース718は、ローカルネットワーク722に接続されるネットワークリンク720への双方向データ通信結合を提供する。例えば、通信インタフェース718は、データ通信接続を対応するタイプの電話回線に提供する総合デジタル通信網(ISDN)カード又はモデムであり得る。別の例として、通信インタフェース718は、データ通信接続を互換性のあるLANに提供するローカルエリアネットワーク(LAN)カードであり得る。無線リンクを実施することも可能である。任意のそのような実装形態では、通信インタフェース718は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を送受信する。
ネットワークリンク720は通常、1つ又は複数のネットワークを通して他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク720は、ローカルネットワーク722を通したホストコンピュータ724又はインターネットサービスプロバイダ(ISP)726によって操作されるデータ機器への接続を提供し得る。そして、ISP726は、現在では一般に「インターネット」728と呼ばれる世界規模パケットデータ通信ネットワークを通してデータ通信サービスを提供する。ローカルネットワーク722及びインターネット728は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を使用する。デジタルデータをコンピュータシステム700に搬送するとともに、デジタルデータをコンピュータシステム700から搬送する、様々なネットワークを通しての信号及び通信インタフェース718を通してのネットワークリンク720上の信号は、情報を輸送する搬送波の例示的な形態である。
コンピュータシステム700は、ネットワーク、ネットワークリンク720、及び通信インタフェース718を通して、プログラムコードを含め、メッセージを送信し、データを受信することができる。インターネットの例では、サーバ530が、インターネット728、ISP726、ローカルネットワーク722、及び通信インタフェース718を通してアプリケーションプログラムの要求コードを送信し得る。
受信されたコードは、受信時にプロセッサ704によって実行し得、且つ/又は後に実行するために記憶装置710又は他の不揮発性記憶装置に記憶し得る。このようにして、コンピュータシステム700は、搬送波の形態でアプリケーションコードを取得し得る。
4.0 拡張及び代替
上記明細書において、実装形態毎に異なり得る多くの特定の詳細を参照して、本発明の実施形態について説明した。したがって、本発明がどのようなものであり、及び本発明として本出願人らによってどのようなものが意図されるかの唯一且つ排他的な指標は、後続するいかなる補正も含め、請求項が発行される特定の形態で、本願から発行される1組のそのような請求項である。そのような特許請求の範囲に含まれる用語について本明細書で明示的に記載されるいかなる定義も、特許請求の範囲で使用されるそのような用語の意味を支配するものとする。したがって、請求項において明示的な記載されない限定、要素、特性、特徴、利点、又は属性は、そのような請求項の範囲を決して限定しないものとする。したがって、本明細書及び図面は、限定の意味ではなく例示の意味で見なされるべきである。
上記明細書において、実装形態毎に異なり得る多くの特定の詳細を参照して、本発明の実施形態について説明した。したがって、本発明がどのようなものであり、及び本発明として本出願人らによってどのようなものが意図されるかの唯一且つ排他的な指標は、後続するいかなる補正も含め、請求項が発行される特定の形態で、本願から発行される1組のそのような請求項である。そのような特許請求の範囲に含まれる用語について本明細書で明示的に記載されるいかなる定義も、特許請求の範囲で使用されるそのような用語の意味を支配するものとする。したがって、請求項において明示的な記載されない限定、要素、特性、特徴、利点、又は属性は、そのような請求項の範囲を決して限定しないものとする。したがって、本明細書及び図面は、限定の意味ではなく例示の意味で見なされるべきである。
Claims (71)
- コンピュータを使用して、データを記憶する要求を受信する工程、
仮想化コンピュータシステムのデータ記憶システムに前記データを記憶させる工程、
前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される1つ又は複数の仮想ロケーションを識別するデータロケーションレコードを記憶する工程を含み、
1つ又は複数の計算装置を使用して実行されることを特徴とする方法。 - オブジェクトアドミニストレータに、前記データを記憶する命令を送信する工程、
前記命令の送信に応答して、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される仮想ロケーションを識別する1つ又は複数の仮想ロケーション識別子を受信する工程、
を含むことを特徴とする請求項1に記載の方法。 - 前記命令の送信に応答して、前記データが記憶される論理エクステントを識別する1つ又は複数の論理エクステント識別子を受信する工程を含み、前記論理エクステント識別子は、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理エクステントを識別することを特徴とする請求項2に記載の方法。
- 前記命令の送信に応答して、前記データが記憶される論理ブロックを識別する1つ又は複数の論理ブロック識別子を受信する工程を含み、前記論理ブロック識別子は、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理ブロックを識別することを特徴とする請求項2に記載の方法。
- 前記命令の送信に応答して、前記データが記憶される論理オブジェクトを識別する1つ又は複数の論理オブジェクト識別子を受信する工程を含み、
前記論理オブジェクト識別子は、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理オブジェクトを識別することを特徴とする請求項2に記載の方法。 - 前記1つ又は複数の論理オブジェクト識別子の受信に応答して、特定のエクステントが前記1つ又は複数の論理オブジェクト識別子を含むことを示すように、エクステント−オブジェクトマッピングを更新する工程を含むことを特徴とする請求項4に記載の方法。
- 仮想化コンピュータシステムのデータ記憶システムにおいて、データに対する要求を受信する工程、
前記データが記憶される仮想ロケーションを特定する工程、
前記データが記憶される前記仮想ロケーションと、オブジェクトアドミニストレータへの仮想ロケーションの1つ又は複数のマッピングとに基づいて、前記データの物理的記憶に関連付けられたオブジェクトアドミニストレータを識別する工程、
前記オブジェクトアドミニストレータにおいて、1つ又は複数のマッピングに基づいて、前記仮想ロケーションに対応する前記データ記憶システム内の1つ又は複数の物理的ロケーションを特定する工程、
前記仮想化コンピュータシステムの前記データ記憶システムの前記1つ又は複数の物理的ロケーションからデータを検索する工程を含み、
1つ又は複数の計算装置を使用して実行されることを特徴とする方法。 - オブジェクトアドミニストレータにおいて、前記データが記憶される少なくとも論理エクステントを識別するデータに対する要求を受信する工程、
前記要求において識別される前記論理エクステントに属する1つ又は複数のオブジェクトを特定する工程、
前記1つ又は複数のオブジェクトの各オブジェクトについて、前記オブジェクトに属する1つ又は複数の記憶ユニット部分を特定する工程、
前記1つ又は複数のオブジェクトの各オブジェクトに対応する前記1つ又は複数の記憶ユニット部分から前記データを検索する工程、
を含むことを特徴とする請求項7に記載の方法。 - 前記仮想ロケーションは論理オブジェクト識別子によって識別されることを特徴とする請求項7に記載の方法。
- 前記仮想ロケーションは、仮想ディスク、ファイル、又はオブジェクト内の論理ブロック番号によって識別されることを特徴とする請求項7に記載の方法。
- 前記仮想ロケーションは、仮想ディスク、ファイル、又はオブジェクト内のバイトオフセットによって識別されることを特徴とする請求項7に記載の方法。
- 記憶アドミニストレータにおいて、特定のデータの変形を要求するか、又は仮想化コンピュータシステムのデータ記憶システム内の1つ又は複数の新しい物理的ロケーションへの特定のデータの移動を要求する条件が生じたことを判断する工程を含み、
前記特定のデータは特定の仮想ロケーションに記憶され、
前記判断に応答して、
前記特定のデータに対応するデータを前記1つ又は複数の新しい物理的ロケーションに記憶する工程と、前記特定の仮想ロケーションが、前記特定の仮想ロケーションへの任意の参照を更新せずに、1つ又は複数の前の物理的ロケーションの代わりに、前記1つ又は複数の新しい物理的ロケーションに対応することを示すように、前記特定の仮想ロケーションに対応するマッピングを更新する工程と、
を含み、
1つ又は複数の計算装置を使用して実行されることを特徴とする方法。 - 仮想データセンタ内の複数の異なる記憶ユニットの性能を監視する工程、
前記監視に基づいて、前記条件が発生したと判断する工程、
を含むことを特徴とする請求項12に記載の方法。 - 前記特定のデータは第1の記憶装置に記憶され、
前記データを前記1つ又は複数の新しい物理的ロケーションに記憶する工程は、前記第1の記憶装置とは異なる第2の記憶装置に前記特定のデータを移動する工程を含むことを特徴とする請求項12に記載の方法。 - 前記条件が発生したと判断する工程は、クライアントコンピュータから異なるサービスレベルに対する要求を受信する工程を含むことを特徴とする請求項12に記載の方法。
- 前記特定のデータは特定の論理エクステントに記憶され、
前記方法は、前記判断に応答して、
更新前は、特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していたエクステント−オブジェクトマッピングを、異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示すように更新する工程、又は
更新前は、特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程
のうちの1つ又は複数を実行する工程を含み、
1つ又は複数の計算装置を使用して実行されることを特徴とする請求項12に記載の方法。 - 前記条件が発生したと判断する工程は、少なくとも特定の記憶ユニットが適宜実行してないと判断する工程を含み、前記特定の記憶ユニットは、前記特定の組の記憶ユニット部分に含まれ、且つ前記異なる組の記憶ユニット部分に含まれないことを特徴とする請求項16に記載の方法。
- 前記判断に応答して、更新前は、前記特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、前記異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程を含み、
前記判断に応答して、前記特定のデータの1つ又は複数の仮想ロケーションを識別する論理エクステントロケーション情報に更新は行われないことを特徴とする請求項16に記載の方法。 - 前記条件が発生したと判断する工程は、前記特定のデータに対応するサービスレベルが変更されたと判断する工程を含み、
前記方法は、
更新前は、前記特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していた前記エクステント−オブジェクトマッピングを、前記異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを代わりに示すように更新する工程を含むことを特徴とする請求項16に記載の方法。 - 前記異なる組の記憶ユニット部分の少なくとも2つの記憶ユニット部分は、2つの異なる記憶ユニット装置の部分であることを特徴とする請求項16に記載の方法。
- 前記特定の組の記憶ユニット部分は、前記異なる組の記憶ユニット部分に含まれない特定の記憶ユニット部分を含むことを特徴とする請求項16に記載の方法。
- 前記異なる組の記憶ユニット部分は、1つ又は複数の追加の記憶ユニット部分に加えて、前記特定の組の記憶ユニット部分内の各記憶ユニット部分を含むことを特徴とする請求項16に記載の方法。
- 2つの異なるタイプの変形を1つ又は複数のデータ部分に同時に適用する工程を含むことを特徴とする請求項16に記載の方法。
- 前記特定のデータは、論理エクステントに属する第1のオブジェクトに記憶される第1のデータ部分と、同じ論理エクステントに属する第2のオブジェクトに記憶される第2のデータ部分とを含み、
前記方法は、
単一の入力又は出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を含み、
前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1のオブジェクトとは異なる第1の新しいオブジェクトに記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2のオブジェクトとは異なる第2の新しいオブジェクトに記憶する工程、前記第1の新しいオブジェクト及び第2の新しいオブジェクトが前記論理エクステントに属することを示すように、前記論理エクステントに対応するマッピングを更新する工程を、含むことを特徴とする請求項16に記載の方法。 - 前記特定のデータは、仮想記憶オブジェクトに属する第1の記憶ユニット部分に記憶される第1のデータ部分と、同じ仮想記憶オブジェクトに属する第2の記憶ユニット部分に記憶される第2のデータ部分とを含み、
前記方法は、
単一の入力/出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を含み、
前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1の記憶ユニット部分とは異なる第1の新しい記憶ユニット部分に記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2の記憶ユニット部分とは異なる第2の新しい記憶ユニット部分に記憶する工程、前記第1の新しい記憶ユニット部分及び第2の新しい記憶ユニット部分が前記仮想記憶オブジェクトに属することを示すように、前記仮想記憶オブジェクトに対応するマッピングを更新する工程を、含むことを特徴とする請求項16に記載の方法。 - 1つ又は複数の命令シーケンスを含む非一時的コンピュータ可読記憶媒体において、前記命令シーケンスは、1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
コンピュータを使用して、データを記憶する要求を受信する工程、
仮想化コンピュータシステムのデータ記憶システムに前記データを記憶させる工程、
前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される1つ又は複数の仮想ロケーションを識別するデータロケーションレコードを記憶する工程、
を実行させることを特徴とする非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
オブジェクトアドミニストレータに、前記データを記憶する命令を送信する工程、
前記命令の送信に応答して、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される仮想ロケーションを識別する1つ又は複数の仮想ロケーション識別子を受信する工程、
を更に実行させることを特徴とする請求項26に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記命令の送信に応答して、前記データが記憶される論理エクステントを識別する1つ又は複数の論理エクステント識別子を受信する工程を更に実行させ、
前記論理エクステント識別子は、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理エクステントを識別することを特徴とする請求項27に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記命令の送信に応答して、前記データが記憶される論理ブロックを識別する1つ又は複数の論理ブロック識別子を受信する工程を更に実行させ、
前記論理ブロックは、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理ブロックを識別することを特徴とする請求項27に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記命令の送信に応答して、前記データが記憶される論理オブジェクトを識別する1つ又は複数の論理オブジェクト識別子を受信する工程を更に実行させ、
前記論理オブジェクトは、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される前記1つ又は複数の論理オブジェクトを識別することを特徴とする請求項27に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記1つ又は複数の論理オブジェクト識別子の受信に応答して、特定のエクステントが前記1つ又は複数の論理オブジェクト識別子を含むことを示すように、エクステント−オブジェクトマッピングを更新する工程を更に実行させることを特徴とする請求項29に記載の非一時的コンピュータ可読記憶媒体。 - 1つ又は複数の命令シーケンスを含む非一時的コンピュータ可読記憶媒体において、前記命令シーケンスは、1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
仮想化コンピュータシステムのデータ記憶システムにおいて、データに対する要求を受信する工程、
前記データが記憶される仮想ロケーションを特定する工程、
前記データが記憶される前記仮想ロケーションと、オブジェクトアドミニストレータへの仮想ロケーションの1つ又は複数のマッピングとに基づいて、前記データの物理的記憶に関連付けられたオブジェクトアドミニストレータを識別する工程、
前記オブジェクトアドミニストレータにおいて、1つ又は複数のマッピングに基づいて、前記仮想ロケーションに対応する前記データ記憶システム内の1つ又は複数の物理的ロケーションを特定する工程、
前記仮想化コンピュータシステムの前記データ記憶システムの前記1つ又は複数の物理的ロケーションからデータを検索する工程
を実行させることを特徴とする非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
オブジェクトアドミニストレータにおいて、前記データが記憶される少なくとも論理エクステントを識別するデータに対する要求を受信する工程、
前記要求において識別される前記論理エクステントに属する1つ又は複数のオブジェクトを特定する工程、
前記1つ又は複数のオブジェクトの各オブジェクトについて、前記オブジェクトに属する1つ又は複数の記憶ユニット部分を特定する工程、
前記1つ又は複数のオブジェクトの各オブジェクトに対応する前記1つ又は複数の記憶ユニット部分から前記データを検索する工程、
を更に実行させることを特徴とする請求項32に記載の非一時的コンピュータ可読記憶媒体。 - 前記仮想ロケーションは、論理オブジェクト識別子によって識別されることを特徴とする請求項32に記載の非一時的コンピュータ可読記憶媒体。
- 前記仮想ロケーションは、仮想ディスク、ファイル、又はオブジェクト内の論理ブロック番号によって識別されることを特徴とする請求項32に記載の非一時的コンピュータ可読記憶媒体。
- 前記仮想ロケーションは、仮想ディスク、ファイル、又はオブジェクト内のバイトオフセットによって識別されることを特徴とする請求項32に記載の非一時的コンピュータ可読記憶媒体。
- 1つ又は複数の命令シーケンスを含む非一時的コンピュータ可読記憶媒体において、前記命令シーケンスは、1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
記憶アドミニストレータにおいて、特定のデータの変形を要求するか、又は仮想化コンピュータシステムのデータ記憶システム内の1つ又は複数の新しい物理的ロケーションへの特定のデータの移動を要求する条件が生じたと判断する工程を実行させ、
前記特定のデータは特定の仮想ロケーションに記憶され、
前記判断に応答して、
前記特定のデータに対応するデータを前記1つ又は複数の新しい物理的ロケーションに記憶する工程と、前記特定の仮想ロケーションが、前記特定の仮想ロケーションへの任意の参照を更新せずに、1つ又は複数の前の物理的ロケーションの代わりに、前記1つ又は複数の新しい物理的ロケーションに対応することを示すように、前記特定の仮想ロケーションに対応するマッピングを更新する工程とを、実行させることを特徴とする非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
仮想データセンタ内の複数の異なる記憶ユニットの性能を監視する工程、
前記監視に基づいて、前記条件が発生したと判断する工程
を更に実行させることを特徴とする請求項37に記載の非一時的コンピュータ可読記憶媒体。 - 前記特定のデータは第1の記憶装置に記憶され、
前記データを前記1つ又は複数の新しい物理的ロケーションに記憶する工程は、前記第1の記憶装置とは異なる第2の記憶装置に前記特定のデータを移動する工程を含むことを特徴とする請求項37に記載の非一時的コンピュータ可読記憶媒体。 - 前記条件が発生したと判断する工程は、クライアントコンピュータから異なるサービスレベルに対する要求を受信する工程を含むことを特徴とする請求項37に記載の非一時的コンピュータ可読記憶媒体。
- 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記特定のデータは特定の論理エクステントに記憶され、
前記判断に応答して、
更新前は、特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していたエクステント−オブジェクトマッピングを、異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示すように更新する工程、又は
更新前は、特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程
のうちの1つ又は複数を更に実行させることを特徴とする請求項37に記載の非一時的コンピュータ可読記憶媒体。 - 前記条件が発生したと判断する工程は、少なくとも特定の記憶ユニットが適宜実行してないと判断する工程を含み、
前記特定の記憶ユニットは、前記特定の組の記憶ユニット部分に含まれ、且つ前記異なる組の記憶ユニット部分に含まれないことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記判断に応答して、更新前は、前記特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程を更に実行させ、
前記判断に応答して、前記特定のデータの1つ又は複数の仮想ロケーションを識別する論理エクステントロケーション情報に更新は行われないことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記条件が発生したと判断する工程は、前記特定のデータに対応するサービスレベルが変更されたと判断する工程を実行させ、
更新前は、前記特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していた前記エクステント−オブジェクトマッピングを、前記異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを代わりに示すように更新する工程を更に実行させることを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 前記異なる組の記憶ユニット部分の少なくとも2つの記憶ユニット部分は、2つの異なる記憶ユニット装置の部分であることを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。
- 前記特定の組の記憶ユニット部分は、前記異なる組の記憶ユニット部分に含まれない特定の記憶ユニット部分を含むことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。
- 前記異なる組の記憶ユニット部分は、1つ又は複数の追加の記憶ユニット部分に加えて、前記特定の組の記憶ユニット部分内の各記憶ユニット部分を含むことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。
- 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
2つの異なるタイプの変形を1つ又は複数のデータ部分に同時に適用する工程を更に実行させることを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記特定のデータは、論理エクステントに属する第1のオブジェクトに記憶される第1のデータ部分と、同じ論理エクステントに属する第2のオブジェクトに記憶される第2のデータ部分とを含み、
単一の入力又は出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を更に実行させ、
前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1のオブジェクトとは異なる第1の新しいオブジェクトに記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2のオブジェクトとは異なる第2の新しいオブジェクトに記憶する工程、前記第1の新しいオブジェクト及び第2の新しいオブジェクトが前記論理エクステントに属することを示すように、前記論理エクステントに対応するマッピングを更新する工程を、含むことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 前記命令シーケンスが、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記特定のデータは、仮想記憶オブジェクトに属する第1の記憶ユニット部分に記憶される第1のデータ部分と、同じ仮想記憶オブジェクトに属する第2の記憶ユニット部分に記憶される第2のデータ部分とを含み、
単一の入力/出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を更に実行させ、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を更に実行させ、
該工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1の記憶ユニット部分とは異なる第1の新しい記憶ユニット部分に記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2の記憶ユニット部分とは異なる第2の新しい記憶ユニット部分に記憶する工程、前記第1の新しい記憶ユニット部分及び第2の新しい記憶ユニット部分が前記仮想記憶オブジェクトに属することを示すように、前記仮想記憶オブジェクトに対応するマッピングを更新する工程
を、含むことを特徴とする請求項41に記載の非一時的コンピュータ可読記憶媒体。 - 1つ又は複数のプロセッサ、
前記1つ又は複数のプロセッサに結合され、かつ、データを記憶する要求又はデータを検索する要求を受信するように構成されるデータ要求ハンドラ、
前記1つ又は複数のプロセッサに結合され、かつ、複数のデータ項目の各データ項目について、前記データが記憶される任意の物理的ロケーションを識別せずに、前記データが記憶される1つ又は複数の仮想ロケーションを識別するデータロケーション情報を記憶するメモリ、
を備えることを特徴とする記憶アドミニストレータ装置。 - 前記データロケーション情報は、前記データが記憶される1つ又は複数の論理エクステントを識別することを特徴とする請求項51に記載の記憶アドミニストレータ装置。
- 前記データロケーション情報は、前記データが記憶される1つ又は複数の論理ブロックを識別することを特徴とする請求項51に記載の記憶アドミニストレータ装置。
- 前記データロケーション情報は、前記データが記憶される1つ又は複数の論理オブジェクトを識別することを特徴とする請求項51に記載の記憶アドミニストレータ装置。
- 1つ又は複数のプロセッサ、
前記1つ又は複数のプロセッサに結合され、及び仮想化コンピュータシステムの記憶システムの1つ又は複数の新しい記憶ユニットをインスタンス化するように構成されるインスタンシエータ、
複数の仮想ロケーションの各仮想ロケーションについて、前記仮想ロケーションに対応する1つ又は複数の物理的ロケーションを示すロケーション情報、
前記1つ又は複数のプロセッサに結合され、及び1つ又は複数の命令シーケンスを記憶するコンピュータメモリ、
を備え、
前記命令シーケンスは、前記1つ又は複数のプロセッサによって実行されると、
特定のデータの変形を要求するか、又は前記1つ又は複数の新しい物理的ロケーションへの特定のデータの移動を要求する条件が発生したと判断する工程を実行し、
前記特定のデータは特定の仮想ロケーションに記憶され、
前記判断に応答して、
前記特定のデータに対応するデータを前記1つ又は複数の新しい物理的ロケーションに記憶する工程と、前記特定の仮想ロケーションが、前記特定の仮想ロケーションへの任意の参照を更新せずに、前の物理的ロケーションの代わりに、前記1つ又は複数の新しい物理的ロケーションに対応することを示すように、前記特定の仮想ロケーションに対応するマッピングを更新する工程とを、実行させることを特徴とする記憶アドミニストレータ装置。 - 前記命令シーケンスが、実行されると、
仮想データセンタ内の複数の異なる記憶ユニットの性能を監視する工程、
前記監視に基づいて、前記条件が発生したと判断する工程
を更に実行させることを特徴とする請求項55に記載の記憶アドミニストレータ装置。 - 前記特定のデータは第1の記憶装置に記憶され、
前記データを前記1つ又は複数の新しい物理的ロケーションに記憶する工程は、前記第1の記憶装置とは異なる第2の記憶装置に前記特定のデータを移動する工程を含むことを特徴とする請求項55に記載の記憶アドミニストレータ装置。 - 前記条件が発生したと判断する工程は、クライアントコンピュータから異なるサービスレベルに対する要求を受信する工程を含むことを特徴とする請求項55に記載の記憶アドミニストレータ装置。
- 前記命令シーケンスが、実行されると、
前記特定のデータは特定の論理エクステントに記憶され、
前記判断に応答して、
更新前は、特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していたエクステント−オブジェクトマッピングを、異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示すように更新する工程、又は
更新前は、特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程
のうちの1つ又は複数を更に実行させることを特徴とする請求項55に記載の記憶アドミニストレータ装置。 - 前記条件が発生したと判断する工程は、少なくとも特定の記憶ユニットが適宜実行してないと判断する工程を含み、
前記特定の記憶ユニットは、前記特定の組の記憶ユニット部分に含まれ、かつ、前記異なる組の記憶ユニット部分に含まれないことを特徴とする請求項59に記載の記憶アドミニストレータ装置。 - 前記命令シーケンスが、実行されると、
前記判断に応答して、更新前は、前記特定の組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを示していたオブジェクト−記憶ユニットマッピングを、前記異なる組の記憶ユニット部分が前記特定の仮想記憶オブジェクトに属することを代わりに示すように更新する工程を更に実行させ、
前記判断に応答して、前記特定のデータの1つ又は複数の仮想ロケーションを識別する論理エクステントロケーション情報に更新は行われないことを特徴とする請求項59に記載の記憶アドミニストレータ装置。 - 前記命令シーケンスが、実行されると、
前記条件が発生したと判断する工程は、前記特定のデータに対応するサービスレベルが変更されたと判断する工程を含み、
更新前は、前記特定の仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを示していた前記エクステント−オブジェクトマッピングを、前記異なる仮想記憶オブジェクトが前記特定の論理エクステントに属する情報を記憶することを代わりに示すように更新する工程を更に実行させることを特徴とする請求項59に記載の記憶アドミニストレータ装置。 - 前記異なる組の記憶ユニット部分の少なくとも2つの記憶ユニット部分は、2つの異なる記憶ユニット装置の部分であることを特徴とする請求項59に記載の記憶アドミニストレータ装置。
- 前記特定の組の記憶ユニット部分は、前記異なる組の記憶ユニット部分に含まれない特定の記憶ユニット部分を含むことを特徴とする請求項59に記載の記憶アドミニストレータ装置。
- 前記異なる組の記憶ユニット部分は、1つ又は複数の追加の記憶ユニット部分に加えて、前記特定の組の記憶ユニット部分内の各記憶ユニット部分を含むことを特徴とする請求項59に記載の記憶アドミニストレータ装置。
- 2つの異なるタイプの変形を1つ又は複数のデータ部分に同時に適用する工程を特徴とする請求項59に記載の記憶アドミニストレータ装置。
- 前記特定のデータは、論理エクステントに属する第1のオブジェクトに記憶される第1のデータ部分と、同じ論理エクステントに属する第2のオブジェクトに記憶される第2のデータ部分とを含み、
前記命令シーケンスが、実行されると、
単一の入力又は出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を更に実行させ、
前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1のオブジェクトとは異なる第1の新しいオブジェクトに記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2のオブジェクトとは異なる第2の新しいオブジェクトに記憶する工程、前記第1の新しいオブジェクト及び第2の新しいオブジェクトが前記論理エクステントに属することを示すように、前記論理エクステントに対応するマッピングを更新する工程を、含むことを特徴とする請求項59に記載の記憶アドミニストレータ装置。 - 前記特定のデータは、仮想記憶オブジェクトに属する第1の記憶ユニット部分に記憶される第1のデータ部分と、同じ仮想記憶オブジェクトに属する第2の記憶ユニット部分に記憶される第2のデータ部分とを含み、
前記命令シーケンスが、実行されると、
単一の入力/出力動作において、前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程を更に実行させ、
前記第1のデータ部分及び前記第2のデータ部分の両方を同時に変形する工程は、
第1のタイプの変形を前記第1のデータ部分に適用する工程、前記第1のデータ部分の変形されたものを、前記第1の記憶ユニット部分とは異なる第1の新しい記憶ユニット部分に記憶する工程、前記第1のタイプの変形とは異なる第2のタイプの変形を前記第2のデータ部分に適用する工程、前記第2のデータ部分の変形されたものを、前記第2の記憶ユニット部分とは異なる第2の新しい記憶ユニット部分に記憶する工程、前記第1の新しい記憶ユニット部分及び第2の新しい記憶ユニット部分が前記仮想記憶オブジェクトに属することを示すように、前記仮想記憶オブジェクトに対応するマッピングを更新する工程を、含むことを特徴とする請求項59に記載の記憶アドミニストレータ装置。 - 1つ又は複数のプロセッサ、
前記1つ又は複数のプロセッサに結合され、及び新しい記憶ユニット部分をインスタンス化するように構成される記憶ユニット部分インスタンシエータ、
前記1つ又は複数のプロセッサに結合され、及び複数の仮想記憶オブジェクトの各仮想記憶オブジェクトについて、第1の記憶ユニット部分が特定の仮想記憶オブジェクトに属することの指示を含む前記仮想記憶オブジェクトに属する1つ又は複数の記憶ユニット部分を示すデータロケーションレコードを記憶するコンピュータメモリ
を備え、
前記コンピュータメモリは1つ又は複数の命令シーケンスを含み、前記命令シーケンスは、前記1つ又は複数のプロセッサによって実行されると、
新しい記憶ユニット部分を要求する工程、
前記第1の記憶ユニット部分に記憶されるデータを前記新しい記憶ユニット部分に転送する工程、
前記特定の仮想記憶オブジェクトへの任意の仮想ロケーション参照を変更せずに、前記特定の仮想記憶オブジェクトが、前記第1の記憶ユニット部分の代わりに、前記新しい記憶ユニット部分を含むことを示すように、前記データロケーションレコードを更新する工程
を実行させることを特徴とする記憶アドミニストレータ装置。 - 前記命令シーケンスが、実行されると、
1つ又は複数の記憶ユニット部分は前記仮想記憶オブジェクトに属し、
前記1つ又は複数の記憶ユニット部分にわたる前記特定の仮想記憶オブジェクトの現在の分散が、可用性又は性能目的に合わないと判断する工程、
前記判断に応答して、前記新しい記憶ユニット部分を要求し、及び前記データを転送する工程を、更に実行させることを特徴とする請求項69に記載の記憶アドミニストレータ装置。 - 前記命令シーケンスが、実行されると、
前記第1の記憶ユニット部分及び第2の記憶ユニット部分が両方とも同じ記憶ユニットの部分であると判断する工程を実行させ、
前記第1の記憶ユニット部分及び前記第2のユニット部分は両方とも、前記特定の仮想記憶オブジェクトに属し、
前記判断に応答して、前記新しい記憶ユニット部分を要求し、及び前記データを転送する工程を、更に実行させることを特徴とする請求項69に記載の記憶アドミニストレータ装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361799550P | 2013-03-15 | 2013-03-15 | |
US61/799,550 | 2013-03-15 | ||
US14/206,123 | 2014-03-12 | ||
US14/206,123 US9733867B2 (en) | 2013-03-15 | 2014-03-12 | Multi-layered storage administration for flexible placement of data |
PCT/US2014/025046 WO2014151126A1 (en) | 2013-03-15 | 2014-03-12 | Multi-layered storage administration for flexible placement of data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016512906A true JP2016512906A (ja) | 2016-05-09 |
JP2016512906A5 JP2016512906A5 (ja) | 2017-06-29 |
Family
ID=51533961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016501732A Pending JP2016512906A (ja) | 2013-03-15 | 2014-03-12 | データを柔軟に配置するための多層記憶管理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9733867B2 (ja) |
EP (1) | EP2984553B1 (ja) |
JP (1) | JP2016512906A (ja) |
KR (1) | KR20150131359A (ja) |
AU (1) | AU2014235300B2 (ja) |
BR (1) | BR112015023565A2 (ja) |
CA (1) | CA2906534A1 (ja) |
TW (1) | TW201502776A (ja) |
WO (1) | WO2014151126A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9733867B2 (en) | 2013-03-15 | 2017-08-15 | Bracket Computing, Inc. | Multi-layered storage administration for flexible placement of data |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444889B1 (en) | 2013-02-08 | 2016-09-13 | Quantcast Corporation | Managing distributed system performance using accelerated data retrieval operations |
US9335932B2 (en) | 2013-03-15 | 2016-05-10 | Bracket Computing, Inc. | Storage unit selection for virtualized storage units |
US9306978B2 (en) | 2013-03-15 | 2016-04-05 | Bracket Computing, Inc. | Automatic tuning of virtual data center resource utilization policies |
US20150286701A1 (en) * | 2014-04-04 | 2015-10-08 | Quantum Corporation | Data Classification Aware Object Storage |
WO2016181521A1 (ja) * | 2015-05-13 | 2016-11-17 | 株式会社日立製作所 | 計算機及び最適化方法 |
US9632709B1 (en) | 2015-11-16 | 2017-04-25 | International Business Machines Corporation | Collocation of object storage data with removable media |
JP6542148B2 (ja) * | 2016-03-18 | 2019-07-10 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
JP6253752B1 (ja) * | 2016-11-29 | 2017-12-27 | 株式会社東芝 | 階層化ストレージシステム |
US10191762B2 (en) | 2017-01-31 | 2019-01-29 | Vmware, Inc. | Transparent deployment of intermediary manager into guest operating system network traffic |
CN108733311B (zh) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
US10356128B1 (en) | 2017-07-27 | 2019-07-16 | Vmware, Inc. | Tag-based policy architecture |
US11157299B2 (en) * | 2017-08-15 | 2021-10-26 | Citrix Systems, Inc. | Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support |
US10652281B1 (en) | 2017-08-31 | 2020-05-12 | Vmware, Inc. | Network policy implementation in a tag-based policy architecture |
US10509914B1 (en) | 2017-10-27 | 2019-12-17 | Vmware, Inc. | Data policy implementation in a tag-based policy architecture |
CN110737400B (zh) * | 2018-07-20 | 2023-10-10 | 伊姆西Ip控股有限责任公司 | 用于双处理器存储系统的方法、电子设备和计算机程序产品 |
CN111966304B (zh) * | 2020-09-15 | 2023-09-05 | 山东钢铁集团日照有限公司 | 一种基于egd方式的数据读取方法 |
US12086464B2 (en) * | 2022-06-27 | 2024-09-10 | Microsoft Technology Licensing, Llc | Storage policy change usage estimation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US20130054932A1 (en) * | 2011-08-26 | 2013-02-28 | Vmware, Inc. | Object storage system |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980081499A (ko) | 1997-04-17 | 1998-11-25 | 모리시다요이치 | 메모리 내장 데이터 처리장치 및 처리시스템 |
US20030023958A1 (en) | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US7603440B1 (en) | 2001-11-09 | 2009-10-13 | Persystent Technology Corporation | System and method for management of end user computing devices |
US20040243699A1 (en) | 2003-05-29 | 2004-12-02 | Mike Koclanes | Policy based management of storage resources |
US7373363B2 (en) | 2003-07-03 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Method of managing modification of configuration states of resources in a dynamic data center |
US7984108B2 (en) | 2003-10-08 | 2011-07-19 | Unisys Corporation | Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system |
TWI273397B (en) | 2004-07-01 | 2007-02-11 | Winity Technology Inc | Virtual memory device including a bridge circuit |
US20090228669A1 (en) | 2008-03-10 | 2009-09-10 | Microsoft Corporation | Storage Device Optimization Using File Characteristics |
US8443370B2 (en) | 2008-08-26 | 2013-05-14 | Microsoft Corporation | Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources |
US20110126197A1 (en) | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8443153B1 (en) | 2010-01-06 | 2013-05-14 | Netapp, Inc. | Dynamic balancing of performance with block sharing in a storage system |
US8732310B2 (en) | 2010-04-22 | 2014-05-20 | International Business Machines Corporation | Policy-driven capacity management in resource provisioning environments |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US8255634B2 (en) | 2010-08-11 | 2012-08-28 | Lsi Corporation | Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller |
US8327373B2 (en) | 2010-08-24 | 2012-12-04 | Novell, Inc. | System and method for structuring self-provisioning workloads deployed in virtualized data centers |
US8447851B1 (en) | 2011-11-10 | 2013-05-21 | CopperEgg Corporation | System for monitoring elastic cloud-based computing systems as a service |
US20140068703A1 (en) | 2012-08-28 | 2014-03-06 | Florin S. Balus | System and method providing policy based data center network automation |
EP2901308B1 (en) | 2012-09-25 | 2021-11-03 | A10 Networks, Inc. | Load distribution in data networks |
US10554505B2 (en) | 2012-09-28 | 2020-02-04 | Intel Corporation | Managing data center resources to achieve a quality of service |
JP5965541B2 (ja) | 2012-10-31 | 2016-08-10 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
US9335932B2 (en) | 2013-03-15 | 2016-05-10 | Bracket Computing, Inc. | Storage unit selection for virtualized storage units |
US9306978B2 (en) | 2013-03-15 | 2016-04-05 | Bracket Computing, Inc. | Automatic tuning of virtual data center resource utilization policies |
JP2016512906A (ja) | 2013-03-15 | 2016-05-09 | ブラケット コンピューティング インコーポレイテッドBracket Computing, Inc. | データを柔軟に配置するための多層記憶管理 |
-
2014
- 2014-03-12 JP JP2016501732A patent/JP2016512906A/ja active Pending
- 2014-03-12 AU AU2014235300A patent/AU2014235300B2/en active Active
- 2014-03-12 US US14/206,123 patent/US9733867B2/en active Active
- 2014-03-12 WO PCT/US2014/025046 patent/WO2014151126A1/en active Application Filing
- 2014-03-12 BR BR112015023565A patent/BR112015023565A2/pt not_active Application Discontinuation
- 2014-03-12 CA CA2906534A patent/CA2906534A1/en not_active Abandoned
- 2014-03-12 KR KR1020157029884A patent/KR20150131359A/ko not_active Application Discontinuation
- 2014-03-12 EP EP14725261.3A patent/EP2984553B1/en active Active
- 2014-03-14 TW TW103109709A patent/TW201502776A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US20130054932A1 (en) * | 2011-08-26 | 2013-02-28 | Vmware, Inc. | Object storage system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9733867B2 (en) | 2013-03-15 | 2017-08-15 | Bracket Computing, Inc. | Multi-layered storage administration for flexible placement of data |
Also Published As
Publication number | Publication date |
---|---|
US20140281350A1 (en) | 2014-09-18 |
AU2014235300B2 (en) | 2018-04-12 |
EP2984553B1 (en) | 2020-04-22 |
AU2014235300A1 (en) | 2015-11-05 |
WO2014151126A1 (en) | 2014-09-25 |
KR20150131359A (ko) | 2015-11-24 |
EP2984553A1 (en) | 2016-02-17 |
US9733867B2 (en) | 2017-08-15 |
CA2906534A1 (en) | 2014-09-25 |
BR112015023565A2 (pt) | 2017-07-18 |
TW201502776A (zh) | 2015-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2984553B1 (en) | Multi-layered storage administration for flexible placement of data | |
JP2016512906A5 (ja) | ||
US11755590B2 (en) | Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis | |
US12169483B2 (en) | On-demand parallel processing of objects using data connector components | |
CN108021336B (zh) | 用于无缝数据迁移的数据布局方法、系统和存储介质 | |
CN110168492B (zh) | 利用云对象存储的一致文件系统语义 | |
US12174789B2 (en) | Sibling object generation for storing results of operations performed upon base objects | |
US20220138152A1 (en) | Full and incremental scanning of objects | |
US12182067B2 (en) | Containerization and serverless thread implementation for processing objects | |
US9348842B2 (en) | Virtualized data storage system optimizations | |
US20100199065A1 (en) | Methods and apparatus for performing efficient data deduplication by metadata grouping | |
CN111356996B (zh) | 用于版本验证的系统和计算机实现的方法 | |
US20190317918A1 (en) | Stale data detection | |
US10956051B2 (en) | Data-packed storage containers for streamlined access and migration | |
US20240411583A1 (en) | Policy Enforcement And Performance Monitoring At Sub-Lun Granularity | |
EP3998533B1 (en) | On-demand parallel processing of objects using data connector components | |
US10976959B2 (en) | Method and system for accessing virtual machine state while virtual machine restoration is underway | |
US12229148B2 (en) | Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170313 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180320 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181219 |