JP2014526729A - プールされたパーティション・レイアウトおよび表現 - Google Patents

プールされたパーティション・レイアウトおよび表現 Download PDF

Info

Publication number
JP2014526729A
JP2014526729A JP2014529675A JP2014529675A JP2014526729A JP 2014526729 A JP2014526729 A JP 2014526729A JP 2014529675 A JP2014529675 A JP 2014529675A JP 2014529675 A JP2014529675 A JP 2014529675A JP 2014526729 A JP2014526729 A JP 2014526729A
Authority
JP
Japan
Prior art keywords
space
partition
storage
storage device
pooled
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.)
Granted
Application number
JP2014529675A
Other languages
English (en)
Other versions
JP2014526729A5 (ja
JP5932041B2 (ja
Inventor
メーラ,カラン
パレオログ,エマニュエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014526729A publication Critical patent/JP2014526729A/ja
Publication of JP2014526729A5 publication Critical patent/JP2014526729A5/ja
Application granted granted Critical
Publication of JP5932041B2 publication Critical patent/JP5932041B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一組の記憶装置が、安価なディスクの冗長アレイ(RAID)方式のように記憶スペースのプールを共有するよう協働しうる。しかしながら、プールの表現およびプールへの容量の割り当ての詳細は、利点を可能にすることおよび/または記憶セットに対する制限を課すことがありうる。本稿に呈示されるのは、一つまたは複数の記憶装置上のプールされたパーティションの表現を生成するための技法であって、プールを、該プールによって表明される一組のスペース;プールを共有する一組の記憶装置および前記記憶装置の物理的な領域を前記スペースの論理的な領域にマップする一組の広がりとして表現するプール構成設定を特徴とする。これらのプール技法の柔軟性により、柔軟な容量割り当て、遅らされたバインド、シン・プロビジョニングおよび異なる組の記憶装置と共有される二つ以上の相異なるプールへの記憶装置の参加といった機能が可能になりうる。

Description

本願はプールされたパーティション・レイアウトおよび表現に関する。
コンピューティングの分野において、多くのシナリオは、さまざまな仕方で割り当てされうる、一つまたは複数の記憶装置(たとえば円盤ベースの磁気および/または光ハードディスク・ドライブ、半導体記憶デバイスおよび不揮発性メモリ回路)のセットに関わる。第一の例として、記憶装置によって提供される記憶スペースは一つまたは複数のパーティションにグループ化されてもよく、各パーティションは動作環境において反映される一つまたは複数の論理ドライブに関連付けられたデータを記憶してもよい。第二の例として、二つ以上の記憶装置の容量が多くの仕方で組み合わされて、追加的な記憶機能、たとえば改善されたスループット、自動ミラーリングおよび自動パリティ計算といった特徴を提供するさまざまな安価なディスクの冗長アレイ(RAID: Redundant Array of Inexpensive Disks)方式を提供してもよい。第三の例として、記憶スペースは一つまたは複数のコンピュータにとってアクセス可能でありうる(たとえばネットワーク上のいくつかのコンピュータにとって並行してアクセス可能なネットワークアタッチトストレージ装置)。そのような装置によって、ジャーナリングされた(journaled)スペースおよびシン・プロビジョニング(thin provisioning)といった、より複雑な技法が提供されてもよい。
そのようなシナリオに関わる設計上の選択は、記憶セット(storage set)の記憶装置によって提供される数、型、容量、割り当ておよび機能ならびに一つまたは複数の記憶装置のプーリング構成を示すメタデータを与える。このメタデータは多くの仕方で、たとえば記憶コントローラ(たとえば記憶装置に適用されるRAID方式についての情報を記憶するよう構成されたRAIDコントローラ)のメモリ中に、あるいは記憶セットの一つまたは複数の記憶ディスク上の標準化された位置に、記憶されうる。たとえば、記憶装置は、記憶スペースの先頭に、当該記憶装置上に記憶されるパーティションの数、位置、サイズおよび型をリストするマスター・ブート・レコード(MBR: master boot record)を、記憶スペースの末尾に、パーティションによって表出される論理ドライブを示す論理ディスク・モデル(LDM: logical disk model)データベースを有していてもよい。
この概要は、詳細な説明においてさらに後述される概念のセレクションを簡略化された形で紹介するために設けられている。この概要は、特許請求される主題の鍵となる因子または本質的な特徴を特定することは意図されていないし、特許請求される主題の範囲を限定するために使われることも意図されていない。
記憶セットを記述する持続するメタデータの態様はさまざまな利点および/または欠点を呈示しうる。第一の例として、記憶コントローラのメモリに記憶されるメタデータは迅速にアクセス可能でありうるが、記憶装置の異なる記憶コントローラまたはコンピュータへの移行を複雑にすることがある(たとえば、記憶装置が異なる機械またはアレイに再配置される場合、その記憶装置上のデータは、パーティション情報が同じ記憶装置上に記憶されていなければアクセス不能になってしまうことがある)。第二の例として、アレイについてのメタデータを一つの記憶装置上にのみ記憶していてその記憶装置がその後障害を起こすと、記憶セットの記憶装置のいくつかまたは全部の上のデータが失われることがありうる。第三の例として、記憶装置を二つ以上のコンピュータで並行して共有し、各コンピュータがメタデータを更新しうると、競合状況(race conditions)および/または当該メタデータのミラーリングされたバージョン間でのバージョニング衝突が生じることがある。第四の例では、新たな態様で記憶装置上にメタデータを記憶すると、その記憶装置の他の記憶装置および/またはコンピュータとの互換性および/またはアクセシビリティーが低下することがありうる(たとえば、メタデータがしかるべく構成設定されていない装置によって読み出し可能および/または使用可能でなくなることがありうる)。第五の例として、いくつかの表現は、記憶装置が、記憶装置の種々のセットを横断して分散されている複数の記憶プール(たとえば、第一のセットの記憶装置で共有されている第一のプールされたパーティションおよび第二の異なるセットの記憶装置で共有されている第二のプールされたパーティション)に参加することや、あるいは同じ記憶プールに種々の役割において参加すること(たとえば、単一の記憶装置が、ユーザー・データのための第一のパーティションおよび該ユーザー・データについてのパリティ・データのための同じ記憶装置上に割り当てられた第二のパーティションを含むプールされたパーティションを備えること)を許容しないことがありうる。
本稿では、記憶セット中の諸記憶装置の、記憶装置および記憶スペースならびにプロビジョンおよびプーリング構成を同定するメタデータを記憶するための技法が呈示される。これらの技法によれば、一つまたは複数の記憶装置が、プール構成設定(pool configuration)および一組の広がり(extent)を有するプールされたパーティションを共有しうる。プール構成設定は、プールされたパーティションを、(プールを同定する)プール・レコード;プールされたパーティションによって表明される(manifested)さまざまなスペース(たとえば、ユーザー・データのためのボリューム、メンテナンス・スペースおよび該ユーザー・データについてのジャーナルを記憶するジャーナル・スペース)を表わす一組のスペース・レコード;プールに参加している記憶装置を表わす一組の記憶装置レコード;および記憶装置上のプールされたパーティション内の物理的な位置の割り当てを、プールされたパーティションのスペース内の論理的な位置にマッピングする一組の広がりレコードとして、表現してもよい。どの記憶装置上でもプールされたパーティションの一貫したメタデータ表現へのアクセスを提供するよう、プール構成設定は、各記憶装置のプールされたパーティションのいちばん上に、ミラーされた仕方で記憶されてもよい。プールされたパーティション内のスペースを表明する(manifest)要求は、そのスペースを表わす、可能性としてはそのスペースのプロビジョンされた容量を含むスペース・レコードを生成することによって満たされてもよい。そのスペースに物理的な容量を割り当てるため、広がりも、そのスペースに割り当てられ、そのスペースにバインドされてもよい。このバインドは、そのスペースの生成時に即座に実行されてもよく、あるいはそのスペースの容量が利用されるまで遅延されてもよい。追加的に、プールされたパーティションにアクセスする諸コンピュータの間で、プール構成設定を更新することを排他的に許容されるプール構成設定所有者が同定されてもよく、プール構成設定を変更する(たとえばスペースを追加するまたはスペースに広がりを割り当てる)いかなる要求もそのプール構成設定所有者に転送されてもよい。
プールされたパーティションのこの表現は、プールされたパーティションの他の表現に対していくつかの利点を可能にしうる。第一の例として、記憶装置のプールされたパーティション内のデータは、記憶装置が(たとえば異なる機械または異なる記憶アレイに)再配置される場合に、あるいはプールされたパーティションを共有している別の記憶装置がクラッシュするまたは利用不能になる場合に、アクセス可能のままでありうる。プール構成設定がプールされたパーティションを共有する各記憶装置上にミラーされているからである。第二の例として、この表現は、スペースのプロビジョニングを広がりの割り当てから区別する。この後者は遅延された仕方で、たとえばジャストインタイム式に実行されてもよい。この区別は、記憶セットのさまざまな型の柔軟性、たとえばスペースをサイズ変更するために広がりを割り当て直す簡単な仕方、記憶装置上の容量の割り当てを含まない迅速なプロビジョニング技法およびシン・プロビジョニング(thin provisioning)機能(諸記憶装置の利用可能な物理的容量を超える容量をもつスペースをプロビジョニングしておいて、そのスペースの容量が尽きる際に追加的な記憶装置の形で物理的な記憶容量を追加することによってプロビジョニングされた容量を充足するオプションがある)を可能にしうる。第三の例として、このようにして表現されるプールされたパーティションは同じ記憶装置上で二つ以上のパーティションにまたがることがありうる。第四の例として、第一のプールされたパーティションがプールされていない諸パーティション(これはプールされたパーティションを認識しない記憶システム上でアクセス可能であってもよい)と共存しうる。第五の例として、記憶装置は、それぞれ異なるセットの他の記憶装置と共有される二つ以上のプールされたパーティションを記憶しうる。第六の例として、記憶装置にアクセスしうるコンピュータまたは装置の間でのプール構成設定所有者の選択は、二つ以上の装置がプール構成設定を並行して更新する場合に普通なら起こりうるプール構成設定の非同期につながりうる競合状態を軽減しうる。これらおよび他の利点は、本稿に呈示される技法に基づくプールされるパーティションの表現を通じて達成可能であってもよい。
上記および関係する目的の達成に向け、以下の記述および付属の図面はある種の例示的な側面および実装を記述する。これらは、一つまたは複数の側面が用いられうるさまざまな仕方のほんのいくつかを示す。本開示の他の側面、利点および新規な特徴は、付属の図面との関連で考慮されるとき、以下の詳細な記述から明白となるであろう。
記憶装置の容量の一組のパーティションへの割り当ておよび該記憶装置上のそれらのパーティションの構成設定の表現を表わす例示的なシナリオの図解である。 安価なディスクの冗長アレイ(RAID)レベル5記憶方式に従っていくつかの記憶装置にまたがるボリュームへの記憶セットの容量の割り当てを表わす例示的なシナリオの図解である。 二つの記憶装置の容量の、それらの記憶装置にまたがる動的パーティションへの割り当ておよびそれらの記憶装置上の該動的ボリュームの表現を表わす例示的なシナリオの図解である。 本稿に提示される技法に基づく、プールされたパーティションへの割り当てであって、前記プールされたパーティションを共有する諸記憶装置上に割り当てられる一組の広がりにバインドされた一組のスペースを含む割り当てと、それらの記憶装置上の前記プールされたパーティションの表現とを表わす例示的なシナリオの図解である。 本稿に提示される技法に基づく、それぞれ異なる他の記憶装置と共有される二つのプールを有する記憶装置と、それらの記憶装置上の前記プールされたパーティションの表現とを表わす例示的なシナリオの図解である。 本稿に提示される技法に基づく、少なくとも二つの記憶装置を含む記憶セットを配分する(apportioning)例示的な方法を示すフローチャートの図解である。 本稿に記載される仕組みの一つまたは複数を具現するよう構成されたプロセッサ実行可能命令を有する例示的なコンピュータ可読媒体の図解である。 記憶装置のプールされたパーティション内のスペースをプロビジョニングし、該スペースに広がりを割り当てるための第一の例示的な技法の図解である。 記憶装置のプールされたパーティション内のスペースをプロビジョニングし、該スペースに広がりを割り当てるための第二の例示的な技法の図解である。 記憶装置のプールされたパーティション内のスペースをプロビジョニングし、該スペースに広がりを割り当てるための第三の例示的な技法の図解である。 本稿に記載される仕組みの一つまたは複数が実装されうる例示的なコンピューティング環境を示す図である。
特許請求される主題についてここで図面を参照して述べる。図面を通じて、同様の要素を指すために同様の参照符号が使われる。以下の記述では、説明の目的で、特許請求される主題の十全な理解を与えるために、数多くの個別的詳細が記述される。しかしながら、特許請求される主題がそうした個別的詳細なしでも実施されうることは明白であろう。他の場合には、特許請求される主題の記述を容易にするために、構造および装置がブロック図の形で示される。
〈A.序〉
コンピューティングの分野において、多くのシナリオは、一つまたは複数のコンピュータまたは他の装置に代わってデータを記憶するよう構成された記憶装置(たとえばハードディスク・ドライブ、半導体記憶デバイスまたは揮発性もしくは不揮発性メモリ回路)に関わる。記憶されるデータは多くの型のオブジェクト(たとえば、ファイル、メディア・オブジェクト、メディア・オブジェクト、データ・セットまたはデータベース・レコード)を含んでいてもよく、さまざまな仕方で(たとえば名前を付けられたオブジェクトの集合として、階層構造として、またはリレーショナルな仕方で)編成されてもよい。しかしながら、より低いレベルでは、記憶装置はしばしば該装置によって使用可能なあるレイアウトに従って構成設定される。たとえば、記憶されるべきデータの型および編成には関わりなく、記憶装置はしばしば、コンピュータおよび他の装置が読むことができる特定の仕方で編成される(たとえばオーガナイズされる)。一つのそのような例として、記憶装置の利用可能な容量はしばしば一組のパーティションとして編成され、記憶装置の先頭において生成されるパーティション・テーブルがそれらのパーティションの位置、サイズおよび型を示す。記憶装置の容量を諸ボリュームに分離することは、さまざまな利点を提供しうる(たとえば、異なるパーティションが異なるグループのデータを隔離しうる;異なるボリュームを表明するために使用されうる;あるいは異なる型のデータを記憶するようおよび/または異なる型のパーティションを利用する異なるコンピュータまたは装置上でのアクセスのためにデータを記憶するよう異なる編成にされうる)。
図1は、一連のパーティション104として編成されたデータ記憶容量をもつ記憶装置102を表わす例示的なシナリオ100の図解である。この例示的なシナリオ100では、それぞれのパーティション104は、さまざまな型のユーザー・データ114を記憶するよう構成されており、コンピュータまたは装置上で表明されうる一つまたは複数の論理ボリューム106を含んでおり、ファイル・システムをもってさらにフォーマットされ、一組のファイルを記憶するために使われる。たとえば、記憶装置102は、基本的な仕方で編成され、一つの論理ボリューム106を記憶することができる第一のパーティション104を有していてもよく、該論理ボリュームは、該論理ボリューム106のユーザー・データ112を含むファイルのカタログを表わすマスター・ファイル・テーブル108を有する。記憶装置102はまた、拡張された仕方で編成され、よって二つ以上の論理ボリューム106を記憶することができる第二のパーティション106を有していてもよい。たとえば、第二のパーティション106は、それぞれが(拡張された第二のパーティション106内の)第三のパーティション106に含まれる二つの論理ボリューム106を含んでいてもよい。第三のパーティションは論理ボリューム106を含む。トップ・レベルのパーティション104についての情報は、記憶装置102の利用可能な容量の先頭に記憶されており、各パーティション104についてのメタデータを含むパーティション・テーブル110に含まれていてもよい。該メタデータは、パーティション104が始まる物理位置、パーティション104がコンピュータがオペレーティング環境にブートすることができるようにする情報を含んでいるか否かおよび/またはパーティション104の型を識別するパーティション型指標(たとえば、第一のパーティション104については基本パーティション型、第二のパーティション104については拡張パーティション型)を含んでいる。拡張された第二のパーティション104は、各含まれているパーティション108に、該含まれているパーティション108についてのメタデータを含むマスター・ファイル・テーブル(MFT: master file table)を先行させていてもよい。このようにして、記憶装置102の容量は、それぞれ一つまたは複数の論理ボリューム106を含む一組のパーティション104として編成されることができ、よって記憶装置102の記憶容量をいくつかの論理ボリューム106に区画化して表出することができる。
図1の例示的なシナリオ100におけるパーティション104の例示的なフォーマットはいくつかのシナリオを満足させうるが、いくつかの追加的な特徴を可能にするような仕方でフォーマットを設計することが望ましいことがありうる。第一の例として、二つ以上のパーティション104の間の、ミラーされた関係(各パーティション104に同一のデータ・セットが記憶され、一つのパーティション104内のデータへの変更が自動的に他のパーティション104に伝搬させられる)のような関係を確立することが望ましいことがありうる。そのようなミラーリングは、データ破損の場合のデータ・セットの耐久性を増進しうる。たとえば、パーティション104の破損またはパーティション104を含む記憶装置102の障害の場合、データ・セットは、(可能性としては異なる記憶装置102上の)第二のパーティション104にミラーされていれば、無傷かつアクセス可能なままでありうる。ミラーリングは、パフォーマンスをも改善しうる。たとえば、第一の記憶装置102は一組のパフォーマンス特性に限定されてもよく(たとえば、アクセス要求を開始する際に関わる最小のレイテンシーまたはデータにアクセスする際の最大の持続可能なスループット)、二つ以上の記憶装置102に横断してデータ・セットをミラーすることにより、すべての記憶装置102の総和を表わすパフォーマンス特性を可能にしうる。記憶装置102のいくつかのフォーマットによって可能にされうる第二の特徴は、データ・セットを二つ以上の記憶装置102のパーティション104にわたって横断的にまたがらせることである。たとえば、図1の例示的なシナリオ100では、論理ボリューム106のサイズは論理パーティション106を有するパーティション104のサイズに限定され、該パーティション104のサイズは記憶装置102の利用可能な容量に限定される。しかしながら、他のフォーマットは二つ以上の記憶装置102の二つ以上のパーティションをプールし、それによりいずれか一つのパーティション104または記憶装置102のサイズ制限を超えることを可能にすることがある。記憶装置102のフォーマット形式は、誤り検出および誤り訂正(たとえば、それぞれのデータ・セットについて、記憶装置102は自動的にチェックサムのような検証子のセットを生成し、記憶しうる。これが、可能性としては誤って書き込まれたデータを検出するためにデータ・セットの内容と比較されてもよい)およびデータ・セットへの共有されるアクセス(たとえば、記憶セット102は、データ・セットを、データ・セットへの一貫しないまたは確定しない更新につながりうる書き込みベースの競合条件にさらすことなく複数のコンピュータまたは他の装置を可能にしてもよい)を増進するために工夫されてもよい。
よって、図1の例示的なシナリオ100において示される基本フォーマットは、ミラーリング、並行アクセス、障害耐性および誤り検出および訂正といった機能を可能にするために拡張されてもよい。たとえば、一組の記憶装置102が、安価なディスクの冗長アレイ(RAID)方式に従って編成されてもよい。RIAD方式はそのような機能を実装するためにハードウェアおよび/またはソフトウェアで実装されてもよい。第一の例として、RAID 0方式では、いくつかの記憶装置102のいくつかのパーティション104に記憶されているデータが単一の論理ボリューム104として呈示される。第二の例として、RAID 1方式では、記憶されるデータは一つまたは複数の記憶装置102上のいくつかのパーティション104を横断して自動的にミラーリングされ、それによりデータ・セットへのより高速のアクセスおよび/または記憶装置102またはパーティション104が信頼できなくなったまたはアクセスできなくなった場合の障害耐性を可能にする。第三の例として、RAID 4方式では、データ・セットのそれぞれの部分についてチェックサムが計算され、該チェックサムがデータ・セットの完全性(たとえば、データ・セットに書き込まれたデータが該データ・セットから整合する形で読まれ、記憶の間に意図しない変更を受けていないこと)を検証するために、および/またはパーティション104および/または記憶装置102の障害から回復するために(たとえば、記憶装置102のパーティション104が破損した場合、あるいは記憶装置102が除去された場合、パーティション104内に含まれるデータが、欠けているデータのチェックサムおよびチェックサムによって表わされるデータ・セットの他の部分を使って回復可能でありうる)、使用されてもよい。それにより、RAID方式や他のフォーマット仕様は、記憶装置102上での特定の編成およびデータ・アクセスを通じてこれらおよびその他の機能を可能にする。
図2は、特定の記憶機能を有する容量のプール202を確立するためにRAID 4方式に従って四つの記憶装置102のセットをフォーマットすることを表わす例示的なシナリオ200の図解である。この例示的なシナリオ200では、それぞれの記憶装置102は、ユーザー・データ114をいくつかのパーティション104を横断して延在する論理ボリューム106内に記憶し、ユーザー・データ114の完全性を検証し、記憶装置102の障害の場合にデータ・セットを復元するためにパリティ・データ204を自動的に生成し、記憶するよう構成される。よって、各記憶装置102は、該記憶装置102の先頭に、該記憶装置102のパーティション104を記述するメタデータを含むパーティション・テーブル110を記憶していてもよい。各記憶装置102はまた、パーティション104を記憶する。最初の三つの記憶装置102のパーティション104は、単一の論理ボリューム106を呈するプール202として構成設定される(たとえば、マスター・ファイル・テーブル112およびユーザー・データ114)。さらに、第四の記憶装置102の容量はプール202に含まれるが、パリティ・データ204のためにリザーブされている。パリティ・データは、最初の三つの記憶装置102に記憶される対応するデータ・セットについて自動的に計算される。たとえば、最初の三つの記憶装置102のパーティション104内のある特定の物理アドレスに記憶されるデータの語について、語長のチェックサムが計算され、第四の記憶装置102のパーティション104内の同じ物理アドレスに記憶されてもよい。したがって、記憶装置のこのフォーマット形式RAID 4レイアウトは、記憶装置102の容量を総合して、論理ボリューム106および記憶セット102の障害耐性を改善しうる検証子データを呈するプール202を生成することを可能にする。
しかしながら、図2の例示的なシナリオ200におけるレイアウトはいくつかの制限を呈しうる。第一の例として、RAID 4方式は、マッチする特性をもつ記憶装置102をプールすることができるだけであることがある。たとえば、この方式を、さまざまな容量の記憶装置102(たとえば、1テラバイト記憶装置102と2テラバイト記憶装置)で適用することは可能でないことがある。この制限は、最初の三つの記憶装置102上のデータ・セットの対応する物理アドレスについての、第四の記憶装置102上でのチェックサムの計算から生じることがありうる。たとえば、アルゴリズムは、これらの計算を、(パフォーマンスの低減なしには)互いに異なるサイズの記憶装置102に適応させることができないことがありうる。第二の例として、RAID 4方式は、互いに異なるパフォーマンス特性をもつ記憶装置102を含む記憶セットについては、低減した一貫性、信頼性および/またはパフォーマンスを示すことがある(たとえば、たとえ記憶装置102が同一のサイズであっても、異なる構成および/またはモデルの記憶装置102のレイテンシーおよびスループット特性は、問題、あるいは記憶セットの低減したパフォーマンスにつながることがありうる)。第三の例として、諸記憶装置102の相互依存性が、いずれか一つの記憶装置102のポータビリティーを低減させることがありうる。たとえば、異なるアレイに移したら、記憶装置102の内容にアクセスすることが可能でなくなることがある。記憶装置102の内容を記述するメタデータが、他の記憶装置102および/またはそのコントローラと相互に関係していることがありうるからである(たとえば、プール202を記述するメタデータは、RAIDコントローラの別個のメモリ・コンポーネント上に記憶されていてもよく、一つまたは複数の記憶装置102を異なるRAIDコントローラに移すことは、メタデータを移し損なうことがあり、その結果、データ・セットにアクセスできなくなる)。第四の例として、これらの記憶装置102のフォーマット形式は、RAID 4方式をサポートするよう構成されているシステム(たとえば記憶コントローラおよびソフトウェア)によってのみ使用可能であることがある。第五の例として、この方式は、記憶装置102すべての容量全部を利用することがある。したがって、プール202の外で、たとえばプール202の外の第二のパーティション104として、あるいは同じまたは他の記憶装置102と一緒に別のプール202に参加するパーティション104として、使うために、これらの記憶装置102上の何らかの容量を割り当てることが可能でないことがある。さらに、記憶装置102のセット上で異なる複数のRAID方式を実装することが難しい。たとえば、RAIDコントローラは、それが使える記憶装置102すべての容量全体に対して一つのRAID方式を適用するよう構成されていることがある。
図3は、図2の例示的なシナリオ200の制限のいくつかを克服しうる、論理ディスク・マネージャ(LDM: Logical Disk Manager)に基づく記憶装置102の例示的なフォーマット形式を表わす例示的なシナリオ300の図解である。この例示的なシナリオ300では、二つの記憶装置102は、パーティション・テーブル110で始まり、連続的な物理アドレスの大きな割り当てられたブロックを表わす一組のサブディスク304を含む動的パーティション302が続くよう編成される。該連続的な物理アドレスは表明される論理ボリューム106に総合され、表明される論理ボリューム106は、両方の記憶装置102にまたがり、第一の記憶装置102の動的パーティション302および第二の記憶装置102の動的パーティション302の容量のプール202を表わす。動的パーティションは、第一の記憶装置102の動的パーティション302に記憶される第一のサブディスク304および第二の記憶装置102の動的パーティション302に記憶される第二のサブディスク304から総合される論理アドレスのシーケンスとして、論理的に表現されうる。異なる記憶装置102上の物理アドレスの別個のブロックを含んでいるが、これらのサブディスク304は、論理アドレスの連続的なブロックとして総合され、表明される。さらに、プール202についてのメタデータは、各記憶装置102の末尾に位置され、記憶装置102のサブディスク304の割り当てを論理ボリューム106として表現する論理ディスク・マネージャ(LDM)データベース306に記憶される。たとえば、この例示的なシナリオ300では、論理ディスク・マネージャ・データベース306は、第一の記憶装置102が二つのサブディスク304を有し、第二の記憶装置102が一つのサブディスク304を有するが、第一の記憶装置102の第一のサブディスク304は第一の論理ボリューム106として表明される一方、第一の記憶装置102の第二のサブディスク304および第二の記憶装置102の唯一のサブディスク304が一緒に第二の論理ボリューム106として表明される。さらに、論理ディスク・マネージャ・データベース306は、両方の記憶装置102上でミラーされ、よって各記憶装置102と一緒にポータブルであり、それに含まれる動的パーティション302の論理的な表明を指示する。
論理ディスク・マネージャ・データベース306をもつ記憶装置102のフォーマット付けは、いくつかの利点を呈しうる。第一の例として、図1に示した例示的なシナリオ100に比べ、論理ディスク・マネージャ・データベース306は、複数の記憶装置102上のサブディスク304からなるプール202の表現を可能にする。また、図2の例示的なシナリオ200に比べ、図3の例示的なシナリオ300に示したフォーマット付けは、異なるサイズおよび/または異なるパフォーマンス特性の記憶装置102上で実装されてもよい(たとえば、図3における第一および第二の記憶装置102は、異なる記憶コントローラをもつ、異なる製造業者によって生成された、異なる総容量を有していてもよい)。さらに、図2に示した例示的なシナリオ200とさらに比べ、論理ディスク・マネージャ・データベース306は、プール202の、該プール202に含まれない、論理ディスク・マネージャ・データベース306を使う機能のないシステム(たとえば、記憶コントローラおよびソフトウェア)にとってアクセス可能かつ使用可能でありうる他のパーティション104(たとえば、第一の記憶装置102上の第一のパーティション104)との共存を可能にしうる。
しかしながら、サブディスク304のプール202を表わすために論理ディスク・マネージャ・データベース306を使うことも、いくつかの制限を呈することがある。第一の例として、多くの論理ディスク・マネージャ・データベース306は一つのプール202を表わすことができるのみであり、論理ディスク・マネージャ・データベース306をサブディスク304の複数のプール202を表わすよう拡張することは難しいことがある。第二の例として、記憶装置104の末尾にある論理ディスク・マネージャ・データベース306の位置は、論理ディスク・マネージャ・データベース306のサイズを制限することがあり、論理ディスク・マネージャ・データベース306を拡大することは論理ディスク・マネージャ・データベース306全体を各記憶装置102上の異なる位置に再書き込みすることに関わることがある。第三の例として、パーティション104の一部のみを含む論理ボリューム106の表明を表現することが難しいことがある。たとえば、図1の例示的なシナリオ100において同様に示されているように、各パーティション104は完全に一つの論理ボリューム106に割り当てられる。この対応のため、パーティション104を柔軟な仕方で割り当てる(たとえば、パーティション104の容量を二つ以上の論理ボリューム106を横断して分散させる)ことが難しいことがあり、論理ボリューム106(それに含まれるサブディスク304を含む)のサイズ変更は、記憶装置102の諸パーティション104のかなりの変更を伴うことがある(たとえば、論理ボリューム106のサイズ変更は、パーティション104の再割り当てを伴うことがあり、可能性としてはパーティション104に記憶されるデータの完全な再書き込みを伴うことがある)。
〈B.呈示される技法〉
本願で呈示されるのは、図3の例示的なシナリオにおける論理ディスク・マネージャ(LDM)・データベース306が示すものも含め他のフォーマット付け技法の制限のいくつかに対処しうる、記憶装置102をフォーマットする技法である。これらの技法によれば、記憶装置102の利用可能な容量を、さまざまな記憶機能(たとえば、複数の記憶装置102によって共有される記憶容量の一つまたは複数のプール202の生成;RAID 1アレイにおけるミラーリングまたはRAID 4アレイにおけるチェックサム利用といった、さまざまな協調された記憶機能の規定および自動化された適用;複数のコンピュータまたは装置による並行アクセス)の実装を容易にする仕方で編成するフォーマットが工夫されてもよい。そのような技法は、記憶装置102上に記憶される記憶セットの堅牢さ(たとえば、異なる記憶コントローラに再配置された場合の、記憶装置102についてのメタデータの保存);編成の柔軟さ(たとえば、パーティション104のサイズ変更を容易にする、記憶装置102の利用可能な容量の割り当ておよび再割り当てならびに当該編成の他の編成技法との両立性(たとえば、記憶装置が、他の記憶装置102と同期した記憶のプール202のようなより複雑な編成構造および基本パーティション104のような標準化された構造の両方を含むことができるようにする)を増進してもよい。
したがって、これらおよびその他の考察に基づき、本願で呈示される技法は、それぞれが他の記憶装置102と共有されてもよく、さまざまな記憶機能(たとえば種々のRAID方式または他の機能)を実装しうる一つまたは複数のプールされたパーティションを含むよう、記憶装置102を編成することに関わる。記憶装置102をおおまかに見ると、プールされるパーティションは、他のパーティション104と同様の仕方で、たとえばパーティション・テーブル110内でインデックス付けされた、取っておかれた利用可能な容量のブロックとして、割り当てられる。このように、プールされるパーティションは、異なる型の他のパーティション104と共存しうる。しかしながら、プールされるパーティションの容量は異なる仕方で利用される。第一の例として、プールされるパーティションを記述するメタデータは別個の構造(たとえば論理ディスク・マネージャ・データベース306)内ではなく、プールされるパーティション内に記憶される。それにより、同じ記憶装置102上に、任意の異なる型の(たとえば他の記憶装置102の異なるセットと共有される、および/または異なるRAID方式または他の記憶機能を実装する)複数のプールされるパーティションが記憶されることができる。第二の例として、プールされるパーティションは、異なる構造体を表わしうるスペースのセットを定義しうる(たとえば、ユーザー・データを記憶する論理ボリューム106;再同期を提案する陳腐性(staleness)または記憶装置102の交換を提案する障害など、それらのスペースについてのメンテナンス・メタデータ;または記憶セットへの書き込みの一時的ストアとして構成されたジャーナル)。さらに、パーティション102の容量を完全に一つの論理ボリューム106に割り当てたり、あるいは少数の大きな連続ブロックの形で少数の論理ボリューム106に割り当てたりするのではなく、プールされるパーティションの容量は、それぞれのスペースにマッピングされうる小さなブロック(本稿では「広がり(extent)」と称する)において割り当てられてもよい。これらの関連付けは、プールされるパーティションの構成設定において記憶されてもよい。さらに、前記関連付けは、(たとえば広がりを割り当てたり、あるいは割り当て解除したりすることによる)スペースのサイズ変更や、プロビジョニングの遅延および/またはそれらのスペースについての広がりのバインドといった他の機能を容易にしてもよく、それによりシン・プロビジョニングのような機能を可能にしてもよい。これらおよびその他の特徴が、本願で呈示される技法に基づく記憶装置102のフォーマット付けおよび編成を通じて達成可能でありうる。
図4は、これらおよびその他の機能を可能にしうる記憶装置102の例示的な表現を表わす例示的なシナリオ400の図解である。対照のため、図3の例示的なシナリオ300では、論理ディスク・マネージャ・データベース306は記憶装置102を、一組の論理ボリューム106および一組の記憶装置102としてプロビジョニングすることを表わしており、一組の記憶装置102はそれぞれの動的パーティション302に記憶される一組のサブディスク304によって関連付けられる。この例示的なシナリオ400では、プロビジョニングはプール404として(たとえば、プール404の名前のようなプール404についてのメタデータを記憶し、プール404の所有者を同定するプール・レコードによって表現される)、およびプール404から表明されるスペース406のセットとして(たとえば、スペース406の名前、スペース406の型、スペース406のプロビジョンされた容量およびRAID方式のようなスペース406によって実装される記憶機能のようなそれぞれのスペース406についてのメタデータを記憶するスペース・レコードによって表現される)表わされる。多くの型のスペース406がプール404によって表明されてもよく、ユーザー・データのための容量を提供する論理ボリューム106;それぞれのスペース406の健全性(たとえば陳腐性、障害または非可用性)を表わす健全性指標412のような、プール404の他のスペース406についてのメタデータを記憶するメンテナンス・スペース410;RAID 4方式でのような他のスペース406についてのチェックサムを記憶するチェックサム・スペース;および(たとえばバッチ書き込みを増進するおよび/またはRAID書き込みホールを軽減するために)別のスペース406に書き込まれるべきデータ・セットが一時的に記憶されうるジャーナルに構成設定されたジャーナル・スペースを含む。物理的には、プロビジョニングは一組の記憶装置102として(たとえば、名前および総容量を含め、記憶装置102についてのメタデータを記憶する記憶装置レコードによって表わされる)、およびそれぞれのスペース406に関連付けられた記憶装置102の割り当てられた部分を表わす一組の広がり408として(たとえば、記憶装置102のある範囲の物理アドレスをスペース406のある範囲の論理アドレスにマッピングする広がりレコードによって表わされる)、表現される。このように、プール構成設定402は、プール404内で表明されるスペース406に割り当てられる広がり408の関連付けを通じて、記憶装置102の物理的な容量のプール404へのプロビジョニングを表わす。
図5は、図4の例示的なシナリオ400において示されている表現を使って記憶装置102の編成を示す例示的なシナリオ500の図解である。この例示的なシナリオ500では、第一の記憶装置102は二つのプール404を記憶するよう構成されていてもよい。第一のプール404は第二の記憶装置102と共有され、第二のプール404は第三の記憶装置102と共有される。第一の記憶装置102はパーティション・テーブル110で始まり、第一のプールされるパーティション404が続く。第一のプールされるパーティション404は、第二の記憶装置102上に記憶される第二のプールされるパーティション404との協働において表明されるスペースを含む。両方のプールされるパーティション404は、図4に示した表現の編成に従って記憶装置のプロビジョニングを記述するレコードを含むプール構成設定402で始まる。プール構成設定402は、プール104から表明される一組のスペース406を同定し、それぞれスペース406の一組の論理アドレスにマッピングされる第一および第二の記憶装置102のプールされるパーティション404内に割り当てられる広がり408(たとえば、物理的な割り当て)を指示する。たとえば、第一の記憶装置102の第一のプールされるパーティション404は、メンテナンス・スペース(たとえば図4に示される例示的なメンテナンス・スペース410)としてそれぞれ利用される四つの広がり408と;ユーザー・データを記憶する二つの広がり408と;プールされるパーティション404の一つまたは複数の他の広がり408および/またはスペース406についてのジャーナルを表わす広がり408とを記憶する。割り当ては、スペースの論理的な容量についての物理的な記憶スペース(たとえば広がり408)のプロビジョニングにおけるいくらかの柔軟性を提供しうる(たとえば、第二のスペース406は第一の記憶装置102の第二の広がり408で始まり、第一の記憶装置102の第三の広がり406を通じて続き、論理的に第二の記憶装置102上の第二の広がり408がそれに続く)。プール構成設定402は、スペース408の間のさまざまな型の関係、たとえば第一の記憶装置102のメンテナンス・スペースおよび第二の記憶装置102の第一のプールされるパーティション404内の対応するメンテナンス・スペースのミラーリング504をも表わしうる。さらに、第二の記憶装置102と共有される第一の記憶装置102上の第一のプールされるパーティション404は、第一の記憶装置102上に記憶され、第三の記憶装置102と共有される第二のプールされるパーティション404および基本的なパーティション104と共存してもよい。
本願で呈示される技法に基づく図4〜図5の例示的なシナリオ400、500における記憶装置102の編成は、他の編成(図1〜図3で呈示したものを含む)に対していくつかの利点を可能にしうる。第一の例として、プール構成設定402は、異なる型のスペース406(たとえば、メンテナンス・スペース、ユーザー・データ・スペースおよびジャーナル・スペース)の指定ならびに各スペース406に適用される記憶機能の指定(これは、異なるスペース406について異なるRAID方式など異なる記憶機能を使うことを可能にする)を可能にする。第二の例として、プール構成設定402は、プール404によって表明される一組のスペース406を定義しうるが、プール404のスペース406に、記憶装置102の物理的な容量を含む広がり408を割り当てることにおいて、いくらかの柔軟性を呈しうる。たとえば、サブディスク304のような大きなブロックではなく一連の小さな広がり408を割り当てることによって、この編成は、広がり408の再割り当てを通じて、スペース406の粒度の細かいサイズ変更を可能にする。さらに、スペース406は特定のサイズをもってプロビジョニングされることがあるが、ある実施形態は、広がり408を割り当て、該広がり408の物理アドレスを、それらのスペース406の論理アドレスにあとで、たとえばまだ広がり404にバインドされていないスペース406内の位置への書き込みが受領されるときに、バインドしてもよい。遅延された割り当ておよび遅延されたバインドというこれらの概念は、記憶装置102のフォーマット付けの迅速な完了(たとえば、スペース406を生成する要求の受領時に広がり408すべてを割り当てて初期化する必要がない)およびオーバープロビジョニング(たとえば、記憶装置102の利用可能な容量508を超える定義される容量をもつスペース406を生成し、スペース406の使用される容量が利用可能な容量508を使い尽くすときに、記憶セットに容量を追加するようユーザーに促す)を可能にしうる。これらおよびその他の特徴は、図4〜図5の例示的なシナリオ400、500において示される記憶装置102の編成を通じて、本願で呈示される技法を通じて達成可能であってもよい。
〈C.例示的な実施形態〉
図6は、これらの技法のある例示的な実施形態の図解であり、少なくとも二つの記憶装置102を含む記憶セットを編成する例示的な方法600として示されている。例示的な方法600は、たとえば、装置のメモリ・コンポーネント(たとえば、メモリ回路、ハードディスク・ドライブの円盤、半導体メモリ・コンポーネントまたは磁気もしくは光学式ディスク)に記憶される、装置のプロセッサによって実行されたときに該装置に本願で呈示される技法を実行させる命令の組として実装されてもよい。例示的な方法600は、602で始まり、プロセッサ上で命令を実行604することに関わる。具体的には、前記命令は、少なくとも二つのプールされた記憶装置102の記憶領域内で、プール構成設定402を含むプールされたパーティション502を生成606するよう構成されている。プール構成設定402は、プールされたパーティション402を記憶するプールされた記憶装置102と、プールされたパーティション402内で表現される少なくとも一つのスペース406を指定608、610する。前記命令はまた、スペース406について広がり408を割り当てる要求を受領612したときに、プールされたパーティション402内に該スペース406についての広がり408を割り当て614、該広がり408をプール構成設定402においてスペース406と関連付けるようにも構成されている。このようにして、前記命令は、本稿に呈示される技法に基づく記憶装置102の編成を達成し、例示的な方法600は618で終了する。
もう一つの実施形態は、本稿に提示される技法を適用するよう構成されたプロセッサ実行可能命令を有する例示的なコンピュータ可読媒体に関わる。そのようなコンピュータ可読媒体はたとえば、メモリ半導体(たとえば、静的ランダム・アクセス・メモリ(SRAM)、動的ランダム・アクセス・メモリ(DRAM)および/または同期動的ランダム・アクセス・メモリ(SDRAM)技術を利用した半導体)、ハードディスク・ドライブの円盤、フラッシュメモリ・デバイスまたは磁気もしくは光ディスク(たとえばCD-R、DVD-Rまたはフロッピー(登録商標)ディスク)のような有体なデバイスに関わるコンピュータ可読記憶媒体を含んでいてもよく、装置のプロセッサによって実行されたときに該装置に本稿に提示される技法を実装させるコンピュータ可読命令のセットをエンコードしていてもよい。そのようなコンピュータ可読媒体は、さまざまな物理現象を通じて伝搬させられうる信号(たとえば電磁信号、音波信号または光信号)のようなさまざまな型の通信媒体をも(コンピュータ可読記憶媒体とは異なる技術のクラスとして)含みうる。そのような伝搬は、さまざまな有線シナリオ(たとえばイーサネット(登録商標)または光ファイバーケーブルを介する)および/または無線シナリオ(たとえばWiFiのような無線ローカル・エリア・ネットワーク(WLAN)、ブルートゥースのようなパーソナル・エリア・ネットワーク(PAN)またはセルラーもしくは電波ネットワーク)においてでありうる。そのような媒体は、装置のプロセッサによって実行されたときに該装置に本稿に提示される技法を実装させるコンピュータ可読命令のセットをエンコードしていてもよい。
これらの仕方で工夫されうる例示的なコンピュータ可読媒体が図7に示されている。図7では、実装700は、コンピュータ可読データ704がエンコードされているコンピュータ可読媒体702(たとえば、CD-R、DVD-Rまたはハードディスク・ドライブの円盤)を有する。このコンピュータ可読データ704は、本稿に記載される原理に基づいて動作するよう構成されるコンピュータ命令706の組を有する。あるそのような実施形態では、プロセッサ実行可能命令706は、装置710のプロセッサ712によって実行されたときに、該装置710に、図6の例示的な方法600のような記憶装置102の容量を編成する方法を実行させてもよい。このコンピュータ可読媒体のいくつかの実施形態は、このように構成されたプロセッサ実行可能命令を記憶するよう構成された非一時的なコンピュータ可読記憶媒体(たとえば、ハードディスク・ドライブ、光ディスクまたはフラッシュメモリ・デバイス)を含んでいてもよい。本稿に呈示される技法に従って機能するよう構成されている多くのそのようなコンピュータ可読媒体が当業者によって考案されうる。
〈D.変形〉
本稿で論じられる技法は、多くの側面における変形をもって考案されてもよい。いくつかの変形は、追加的な利点を提示し、および/またはこれらおよび他の技法の他の変形に関する不都合な点を軽減しうる。さらに、いくつかの変形は、組み合わせて実装されてもよく、いくつかの組み合わせは、相乗作用を通じて追加的な利点および/または軽減された不都合な点を特徴としうる。そうした変形は、さまざまな実施形態に組み込まれて、そのような実施形態に対して個別的および/または相乗的な利点を付与しうる。
〈D1.シナリオ〉
これらの技法の実施形態の間で変わりうる第一の側面は、そうした技法が利用されうるシナリオに関する。この第一の側面の第一の変形として、これらの技法は、ハードディスク・ドライブ、半導体記憶デバイス、不揮発性メモリ回路、テープ・ベースの記憶デバイスおよび磁気および光ディスクを含む多くの型の記憶装置102とともに使用されうる。そのような記憶装置102は、これらの技法を実装する装置710(コンピュータなど)に直接接続されてもよいし;有線または無線のローカル・エリア・ネットワーク(たとえば、802.11WiFiネットワークまたはアドホック接続または赤外線接続)を通じてアクセス可能であってもよいし;および/または有線または無線の広域ネットワーク(たとえばセルラー・ネットワークまたはインターネット)を通じてアクセス可能であってもよい。さらに、これらの技法が使われる二つ以上の記憶装置102は、独立して動作するのでも(たとえば、ソフトウェア・プロセスを通じて独立してアクセスされる記憶装置106);ゆるやかな協働をもって動作するのでも(たとえば、独立して動作するが記憶セットを共有する他の記憶装置102のことを知らされており、該他の記憶装置と通信してもよい記憶装置102);あるいは緊密な協同をもって動作するのでも(たとえば、安価なディスクの冗長アレイ(RAID)コントローラがいくつかの記憶装置106を記憶システムの構成要素として管理する)よい。この第一の側面の第二の変形として、これらの技法は、さまざまな型のデータ・セットを含む多くの型の記憶セットとの関連で使用されてもよい。それには、さまざまな型のバイナリー・オブジェクトを記憶するバイナリー記憶システム;ファイルを記憶するファイル・システム;メディア・オブジェクトを記憶するメディア・ライブラリ;多くの型のオブジェクトを記憶するオブジェクト・システム;レコードを記憶するデータベース;電子メール・メッセージを記憶する電子メール・システムが含まれる。この第一の側面の第三の変形として、これらの技法の一部または全部がコンピューティング環境内の一つまたは複数のコンポーネント内で、記憶装置102へのアクセスをもつコンピュータまたは装置の揮発性または不揮発性に記憶されているソフトウェア命令のセット(たとえば、オペレーティング・システム・プロセスまたはハードウェア・ドライバ)のように;記憶装置102とインターフェースをもつよう構成された記憶システム(たとえばRAIDコントローラ)によって;あるいは記憶セットのそれぞれの記憶装置102において、実装されてもよい。
この第一の側面の第四の変形として、記憶装置104の容量を編成するこれらの技法は、他の技法(図1〜図3に示したようなもの)では達成するのが難しいことがあるいくつかの結果を達成しうる。第一の例として、これらの技法は、第一の記憶装置102上の少なくとも二つのパーティション104にまたがり、それらのパーティションを総合するプールされたパーティション502の生成を可能にしうる。第二の例として、これらの技法は、第一の記憶装置102上のプールされたパーティション502に記憶された少なくとも二つの広がり408ならびに第二の記憶装置102上のプールされたパーティション502に記憶された少なくとも一つの広がり408を含むスペース406の生成を可能にしうる。第三の例として、三つの記憶装置102のセットの間で、これらの技法は、第一の記憶装置102が、第一のプール404を第二の記憶装置102とは共有するが第三の記憶装置102とは共有せず、第二の記憶プール404を第三の記憶装置102とは共有するが第二の記憶装置102とは共有しないことを可能にしうる。この型の共有は、論理ディスク・マネージャ・データベース306のような他の技法の使用を通じては達成可能でないことがあり、特に、第一のプール404を共有する諸記憶装置102が、記憶装置102の異なるセットと共有される第二のプール404のプール構成設定402を更新することからは隔離された仕方でプール構成設定402を更新することを可能にしなかったことがありうる。そのような多くの記憶シナリオが、本稿に呈示される技法に基づく記憶装置102の編成を通じて達成されうる。
〈D2.プール構成設定〉
本技法の実施形態の間で変わりうる第二の側面は、記憶装置102によって共有されるプール404を表わすプール構成設定(pool configuration)402の性質および使用に関する。この第二の側面の第一の変形として、プール構成設定402は一つの記憶装置102上に記憶されてもよく、あるいはプール404を記憶する諸記憶装置102上でミラーされていてもよい。この第二の側面の第二の変形として、プールされたパーティション502は多くの仕方で記憶装置102上で同定されうる。たとえば、記憶装置102は、それぞれのパーティション104の位置、サイズおよびパーティション型識別子を指定するパーティション・テーブル110を有していてもよく、プールされたパーティション502は、プールされたパーティション型識別子をもってパーティション・テーブル中で同定されうる。該識別子は、プールされたパーティション502を利用するよう構成された装置710によって理解可能であり、使用可能であってもよく、他の型の装置710によって無視されてもよい(よって誤使用されない)。
この第二の側面の第三の変形として、プール構成設定402は、プールされるパーティション502の多くの領域に記憶されうる。それには、プールされる領域502の先頭、プールされる領域502の末尾、あるいはプールされる領域502内の定義されたまたは識別可能な位置が含まれる。簡単なアクセスのためおよび/またはプール構成設定402の増大を可能にするため、プール構成設定402をプールされる領域502の先頭に位置させることが有利であることがある(対照的に、プール構成設定402をプールされる領域502の末尾に位置させる場合には、上記増大は、プール構成設定402をプールされる領域502内の異なる位置に再書き込みすることなくしては達成が難しいことがある)。この第二の側面の第四の変形として、プール構成設定502は、リレーショナル・データベース、階層構造にされた文書(たとえば拡張可能マークアップ言語(XML)文書)またはテーブルなど、多くの仕方で構成されていてもよい。この第二の側面の第五の変形として、プール構成設定502は、名前、製造業者、モデル、容量、パフォーマンス特性および使用を含む、それぞれのエンティティ(たとえば、プール402、スペース406、広がり408および記憶装置102)を記述するさまざまな型のメタデータを含んでいてもよい。特に、プール構成設定502は、ユーザー・データを記憶するスペース406のためのユーザー・スペース型識別子;他のスペース406のチェックサム(または他の型の検証子)を記憶するスペース406のためのチェックサム・スペース識別子;および他のスペース406に適用される書き込みを記憶するためのジャーナルとして使われるスペース406のためのジャーナル・スペース型識別子のような、それぞれのスペース406の型を同定するスペース型識別子を指定してもよい。さらに、スペース406は、シーケンシャルなまたはネストする関係を同定するよう親スペース406を同定してもよい(たとえば、第一のユーザー・データ・スペース406と連続している第二のユーザー・データ・スペース406、あるいはジャーナル・スペースが親スペースを同定し、該親スペースについて、当該ジャーナル・スペースが該親スペースに適用されるべきジャーナル更新を記憶する)。
この第二の側面の第六の変形として、広がり408は、記憶装置102上の固定した物理位置(たとえばトラックおよびセクタ)、記憶装置102上の物理アドレスのシーケンス内のある物理アドレス(たとえば、ある物理アドレス範囲)またはプールされるパーティション502内のオフセット(たとえばプールされるパーティション502の開始物理アドレスからのオフセット)を使って、プールされたパーティション502内の物理アドレスのブロックとして指定されてもよく、そのアドレス範囲を、スペース406内の論理アドレス範囲と関連付けてもよい(たとえば、開始論理アドレスおよび長さもしくは終了論理アドレスを指定)。
この第二の側面の第七の変形として、スペース406への広がり408の割り当ておよびバインドはさまざまな仕方で達成されうる。図8〜図10は、このバインドを達成するためのいくつかの代替的なシナリオを呈示している。(これらの各図は、それぞれ図の左部分および右部分として示される、二つの時点における記憶装置102の状態を呈示する。)図8の例示的なシナリオ800では、第一の時点802において、記憶装置102は、プール404のためのプール構成設定402およびプール404を記憶する記憶装置102のレコードを記憶しているプールされたパーティション502を、大量の利用可能な容量508のほかに含む。第二の時点804では、ユーザー・データを記憶するスペース406を生成するスペース割り当て要求806が受容されるとき、プール構成設定402は、スペース406についての、その型およびプロビジョンされた容量を含むレコードを追加するよう更新されてもよい。さらに、この第二の時点804において、二つの広がり408が、プールされたパーティション502の利用可能な容量508から生成されてもよく、プール構成設定402は、該広がり408を、スペース406の論理位置にバインドする、該広がり408についてのレコードを追加するよう更新されてもよい。このようにして、スペース406についての広がり408はすぐに割り当てられ、使用のために利用可能となりうる。
あるいはまた、スペース406についての広がり408のバインドは遅延されてもよく、ジャストインタイム式に実行されてもよい。たとえば、図9の例示的なシナリオ900に示されるように、第一の時点902において、スペース406を生成するようスペース割り当て要求が受領されてもよく、スペース406についてのレコードがプール構成設定402内に生成されてもよい。しかしながら、スペース406の容量は第一の時点902ではフルには割り当てられなくてもよい。たとえば、第一の時点902では、一つの広がり408だけが割り当てられて、スペース406の他の部分(たとえば他のアドレス・ブロック)は割り当てられなくてもよい。しかしながら、第二の時点904において、広がり408がまだ割り当てられていないスペース406の特定のアドレスに書き込みするよう要求が受領されるとき、プールされたパーティション502の利用可能な容量508から第二の広がり408が割り当てられて、プール構成設定404内の広がりレコード408においてスペース406にバインドされてもよい。この遅延された割り当ては、スペース406の生成要求をより素早く充足することを可能にすることができ(第一の時点902で割り当てる必要があるのが全部より少ない広がり408なので)、および/またはシン・プロビジョニングを可能にすることができる。シン・プロビジョニングでは、スペース406は、スペース406にバインドされている広がり408の広がりサイズと、プール404を共有する記憶装置102の利用可能な容量508の和より大きいプロビジョニング・サイズをもってプロビジョンされてもよい。
図10は、スペース406の割り当てにおけるさらなる変形を含む例示的なシナリオ1000の図解である。ここでは、スペース406についての広がり408の割り当ては、スペース406の特定の論理位置への広がり408のバインドからは分離されてもよい。この例示的なシナリオ1000では、第一の時点1002において、記憶装置102は、二つの広がり408が割り当てられているスペース406を有するプールされたパーティション502を有している。しかしながら、広がり408は、スペース406内の特定の論理位置にはマッピングされておらず、単にスペース406のための利用可能な容量として予約されている。この予約は、たとえばスペース406を生成する要求を受領した際に、実行されてもよく、それにより、スペース406のプロビジョニングされた容量の全部より少ない部分が予約され、スペース406にデータが書き込まれるべきアドレスがまだわからないとはいえ、何らかの容量が予約され、使用のために入手可能となる。よって、第二の時点1004において、まだ広がり408がバインドされていないスペース406内の論理アドレスに書き込みをする書き込み要求が受領されるとき、バインドされていない広がり408の一つが選択され、書き込み要求において指定されている論理アドレスを含むスペース406の位置にバインドされうる。このようにして、スペース406の広がり408へのバインドは、スペース406のための容量の利用可能性を損なうことなく、スペース406の広がり408へのバインドを遅らせることができる。これらおよびその他の仕方において、改善されたパフォーマンスおよびシン・プロビジョニングのようなさまざまな特徴を可能にするよう広がり408がスペース406に割り当てられることができる。当業者は、本稿に呈示される技法を実装する際にプール構成設定408の使用における多くの変形を工夫しうる。
〈D3.プール構成設定所有者〉
本技法の実施形態の間で変わりうる第三の側面は、プール404のプール所有者の同定に関する。たとえば、プールをなす記憶装置102へのアクセスを有するコンピュータまたは他の装置710の間で、プール構成設定402に対する、コンピュータの間での書き込みアクセスを排他的に有するプール構成設定所有者が選定されてもよい。プール構成設定402を更新する要求(たとえば、スペース406を生成するまたは広がり408をスペース406にバインドする要求)を受領したとき、コンピュータは、自分がプール構成設定所有者であるかどうかを判定してもよく、そうでなければ、その要求をプール構成設定所有者に転送してもよい。さらに、プール構成設定所有者が反応しなくなるまたは利用不能になる場合、他のコンピュータは、プール構成設定所有者の障害の検出に際して、それらのコンピュータの間で代替プール構成設定所有者を特定してもよい(たとえば、新たなプール構成設定所有者を選定する)。この選出は、プール構成設定402への更新が、競合状態から生じる衝突する更新を回避する仕方で実行されることを可能にしうる。衝突する更新は、プール構成設定402を整合しない状態にすることがありうる。当業者は、プール構成設定402およびプール404の完全性をそのような状況から保護するようプール構成設定402を更新する仕方において多くの変形を構想し、利用しうる。
〈E.コンピューティング環境〉
図11は、本稿に提示される技法が実装されうるコンピューティング装置1102内の例示的なコンピューティング環境の図解を示している。例示的なコンピューティング装置は、これに限られないが、パーソナル・コンピュータ、サーバー・コンピュータ、ハンドヘルドもしくはラップトップ装置、モバイル装置(携帯電話、携帯情報端末(PDA)、メディア・プレーヤーなど)、マルチプロセッサ・システム、消費者電子装置、ミニコンピュータ、メインフレーム・コンピュータおよび上記のシステムもしくは装置のいずれかを含む分散式のコンピューティング環境を含む。
図11は、本稿に提示される一つまたは複数の実施形態を実装するよう構成されているコンピューティング装置1102を有するシステム1100の例を示している。ある構成では、コンピューティング装置1102は少なくとも一つのプロセッサ1106および少なくとも一つのメモリ・コンポーネント1108を含む。コンピューティング装置の厳密な構成および型に依存して、メモリ・コンポーネント1108は揮発性(たとえばRAM)、不揮発性(たとえばROM、フラッシュメモリなど)または中間的もしくはハイブリッド型のメモリ・コンポーネントでありうる。この構成は、図11では破線1104によって示されている。
いくつかの実施形態では、装置1102は追加的な特徴/機能を含んでいてもよい。たとえば、装置1102は、これに限られないがハードディスク・ドライブ、半導体記憶デバイスおよび/または他のリムーバブルもしくは非リムーバブルな磁気もしくは光学式媒体を含む一つまたは複数の追加的な記憶コンポーネント1110を含んでいてもよい。ある実施形態では、本稿で与えられる一つまたは複数の実施形態を実装するコンピュータ可読かつプロセッサ実行可能な命令が記憶コンポーネント1110に記憶される。記憶コンポーネント1110は、オペレーティング・システムのコンポーネント、一つまたは複数のアプリケーションをなす実行可能なバイナリー、プログラミング・ライブラリ(たとえば、アプリケーション・プログラミング・インターフェース(API))、メディア・オブジェクトおよび文書類のような他のデータ・オブジェクトをも記憶していてもよい。コンピュータ可読命令は、プロセッサ1106による実行のためにメモリ・コンポーネント1108にロードされてもよい。
コンピューティング装置1102はまた、コンピューティング装置1102に他の装置と通信することを許容する一つまたは複数の通信コンポーネント1116をも含んでいてもよい。一つまたは複数の通信コンポーネント1116は(たとえば)モデム、ネットワーク・インターフェース・カード(NIC)、電波周波数送信機/受信機、赤外線ポートおよびユニバーサル・シリアル・バス(USB)USB接続を有していてもよい。そのような通信コンポーネント1116は有線接続(物理的なコード、ケーブルまたはワイヤを通じてネットワークに接続する)または無線接続(可視光、赤外線または一つもしくは複数の電波周波数などを通じてネットワーキング装置と無線で通信する)を有していてもよい。
コンピューティング装置1102は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、赤外線カメラまたはビデオ入力装置のような一つまたは複数の入力コンポーネント1114および/または一つまたは複数のディスプレイ、スピーカーおよびプリンターのような一つまたは複数の出力コンポーネント1112を含んでいてもよい。入力コンポーネント1114および/または出力コンポーネント1112は有線接続、無線接続またはそれらの任意の組み合わせを介してコンピューティング装置1102に接続されてもよい。ある実施形態では、別のコンピューティング装置からの入力コンポーネント1114または出力コンポーネント1112がコンピューティング装置1102のための入力コンポーネント1114および/または出力コンポーネント1112として使用されてもよい。
コンピューティング装置1102のコンポーネントは、バスのようなさまざまな相互接続によって接続されてもよい。そのような相互接続は、PCIエクスプレスのような周辺コンポーネント相互接続(PCI)、ユニバーサル・シリアル・バス(USB)、ファイアワイヤ(IEEE1394)、光学式バス構造などを含みうる。別の実施形態では、コンピューティング装置1102のコンポーネントはネットワークによって相互接続されてもよい。たとえば、メモリ・コンポーネント1108は、ネットワークによって相互接続された種々の物理的位置に位置されている複数の物理的メモリ・ユニットから構成されてもよい。
当業者は、コンピュータ可読命令を記憶するために利用される記憶装置がネットワークを横断して分散されてもよいことを認識するであろう。たとえば、ネットワーク1118を介してアクセス可能なコンピューティング装置1120が本稿で与えられる一つまたは複数の実施形態を実装するためのコンピュータ可読命令を記憶してもよい。コンピューティング装置1102はコンピューティング装置1120にアクセスし、コンピュータ可読命令の一部または全部を実行のためにダウンロードしてもよい。あるいはまた、コンピューティング装置1102は必要に応じてコンピュータ可読命令の諸片をダウンロードしてもよく、あるいはいくつかの命令はコンピューティング装置1102において実行され、いくつかはコンピューティング装置1120において実行されてもよい。
〈F.用語の用法〉
本願での用法では、用語「コンポーネント」、「モジュール」、「システム」、「インターフェース」などは、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェアまたは実行中のソフトウェアのいずれであれコンピュータ関係のエンティティを指すことが一般に意図されている。たとえば、コンポーネントは、これに限られないが、プロセッサ上で走っているプロセス、プロセッサ、オブジェクト、実行可能物、実行のスレッド、プログラムおよび/またはコンピュータであってもよい。例として、コントローラ上で走るアプリケーションおよび前記コントローラの両方がコンポーネントであることができる。一つまたは複数のコンポーネントがプロセスおよび/または実行のスレッド内に存在することができ、コンポーネントは一つのコンピュータ上に局在することもできるし、および/または二つ以上のコンピュータの間で分散させられることもできる。
さらに、特許請求される主題は、開示される主題を実装するようコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組み合わせを製造するための標準的なプログラミングおよび/またはエンジニアリング技法を使って、方法、装置または製造物として実装されてもよい。本稿で用いるところの用語「製造物」は、任意のコンピュータ可読デバイス、担体または媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。むろん、当業者は、特許請求される主題の範囲および精神から外れることなく、この構成に多くの修正がなしうることを認識するであろう。
本稿では諸実施形態のさまざまな動作が与えられている。ある実施形態では、記載される動作の一つまたは複数は、一つまたは複数のコンピュータ可読媒体上に記憶されているコンピュータ可読命令であって、コンピューティング装置によって実行されたら、記載される動作を該コンピューティング装置に実行させるものをなしてもよい。動作の一部または全部が記載される順序は、それらの動作が必ず順序依存であることを含意するものと解釈すべきではない。代替的な順序付けが、本稿の恩恵を受ける当業者によって理解されるであろう。さらに、すべての動作が本稿で与えられる各実施形態において必ず存在するわけではないことは理解されるであろう。
さらに、「例示的」という語は、本稿では、例、事例または例解のはたらきをすることを意味するために使われる。本稿に「例示的」として記載される任意の側面または設計は、必ずしも、他の側面または設計に対して有利であると解釈されるものではない。むしろ、例示的という語の使用は、概念を具体的な仕方で提示することを意図したものである。本願での用法では、用語「または」は排他的な「または」ではなく包含的な「または」を意味することが意図されている。すなわち、特に断わりのない限りまたは文脈から明らかではない限り、「XはAまたはBを用いる」は自然な包含的な置換の任意のものを意味することが意図されている。すなわち、XがAを用いる;XがBを用いる;またはXがAおよびBの両方を用いるのであれば、「XはAまたはBを用いる」は上記の事例のいずれのもとでも満たされる。さらに、本願および付属の請求項で使われるところの冠詞「a」および「an」は、そうでないことが記載されているまたは単数形に向けられていることが文脈から明らかなのでない限り、「一つまたは複数」を意味する。
また、本開示は、一つまたは複数の実装に関して図示され記述されたが、本明細書および付属の図面を読み、理解することに基づいて、他の当業者にも等価な変更および修正が思いつくであろう。本開示はそのようなすべての修正および変更を含み、付属の請求項の範囲によってのみ限定される。特に上記のコンポーネント(たとえば要素、資源など)によって実行されるさまざまな機能に関し、そのようなコンポーネントを記述するために使われる用語は、そうでないことが示されていない限り、本開示の本稿で例解された例示的な実装における当該機能を実行する開示された構造と構造的に等価でないとしても、記述されるコンポーネントの指定される機能を実行する(たとえば、機能的に等価な)任意のコンポーネントに対応することが意図されている。さらに、本開示の特定の特徴はいくつかの実装の一つのみに関して開示されたことがありうるが、そのような特徴は、任意の所与のまたは特定の応用のために所望されるまたは有利でありうるように、他の実装の一つまたは複数の他の特徴と組み合わされてもよい。さらに、用語「含む」「有する」「もつ」またはそれらの変形が詳細な説明または請求項において使用される限りにおいて、そのような用語は用語「comprising」と同様の仕方で包含的であることが意図されている。

Claims (10)

  1. 少なくとも一つの記憶装置を含む記憶セットを配分するよう構成されたシステムであって、当該システムは:
    少なくとも一つのプールされた記憶装置の諸パーティションの間で記憶されるプールされたパーティションを有しており、前記プールされたパーティションは:
    該プールされたパーティション内に割り当てられた広がりと;
    該プールされたパーティションを記憶する前記プールされた記憶装置;および
    前記プールされたパーティション内に表現され、少なくとも一つの広がりと関連付けられた少なくとも一つのスペース
    を同定するプール構成設定とを有する、
    システム。
  2. プロセッサを有するコンピュータ上でアクセス可能な少なくとも二つの記憶装置を含む記憶セットを編成する方法であって、当該方法は:
    前記プロセッサ上で命令を実行することを含み、前記命令は:
    少なくとも二つのプールされた記憶装置の記憶領域内で、プール構成設定を有するプールされたパーティションを生成する段階であって、前記プール構成設定は:
    該プールされたパーティションを記憶する前記プールされた記憶装置;および
    前記プールされたパーティション内に表現された少なくとも一つのスペース
    を同定する、段階と;
    スペースについて広がりを割り当てる要求を受領したときに:
    前記プールされたパーティション内に該スペースについての広がりを割り当て、
    該広がりを前記プール構成設定において前記スペースと関連付ける段階とを実行するよう構成されている、
    方法。
  3. それぞれの記憶装置がパーティション・テーブルを記憶しており、前記パーティション・テーブルは、その記憶装置の記憶領域内のそれぞれのパーティションについて、そのパーティションのパーティション型識別子を指定し;
    前記プールされたパーティションは、前記パーティション・テーブル内で、プールされたパーティション型識別子として指定される、
    請求項2記載の方法。
  4. 前記プール構成設定が、広がりを、スペースの論理的領域および記憶装置の物理的領域として指定するよう構成されている、請求項2記載の方法。
  5. 請求項4記載の方法であって、前記命令は、前記プール内のスペースに容量を割り当てる要求を受領したときに:
    前記プールされたパーティション内に広がりを割り当てる段階と;
    前記スペースに前記広がりをバインドする段階と;
    前記広がりおよび前記スペースを特定するよう前記プール構成設定を更新する段階とを実行するよう構成されている、
    方法。
  6. 請求項2記載の方法であって、
    前記プール構成設定は、それぞれのスペースについて、スペース型識別子を指定し;
    少なくとも一つのスペースがジャーナルを含み、前記プール構成設定においてジャーナル・スペース型識別子として指定される、
    方法。
  7. 請求項2記載の方法であって、前記スペースが、前記プールされたパーティションのそれぞれのスペースについて、そのスペースの状態記述子を特定するメンテナンス・スペースを有する、方法。
  8. 請求項7記載の方法であって、
    前記プール構成設定は、それぞれのスペースについて、スペース型識別子を指定し;
    前記メンテナンス・スペースが、前記プール構成設定においてメンテナンス・スペース型識別子として指定される、
    方法。
  9. 請求項2記載の方法であって、
    前記記憶セットの少なくとも一つの記憶装置が少なくとも二つのコンピュータによってアクセス可能であり、
    前記命令は、前記コンピュータの間で前記プール構成設定への排他的な書き込みアクセスを有するプール構成設定所有者を、前記コンピュータの間で特定するよう構成されている、
    方法。
  10. 前記命令が、前記プール構成設定を更新する要求を受領したとき:
    前記コンピュータが前記プール構成設定所有者であるかどうかを判定し;
    前記コンピュータが前記プール構成設定所有者でないと判定したとき、前記要求を前記プール構成設定所有者に転送するよう構成されている、
    請求項9記載の方法。
JP2014529675A 2011-09-11 2011-10-10 プールされたパーティション・レイアウトおよび表現 Active JP5932041B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/229,734 US9069468B2 (en) 2011-09-11 2011-09-11 Pooled partition layout and representation
US13/229,734 2011-09-11
PCT/US2011/055581 WO2013036254A1 (en) 2011-09-11 2011-10-10 Pooled partition layout and representation

Publications (3)

Publication Number Publication Date
JP2014526729A true JP2014526729A (ja) 2014-10-06
JP2014526729A5 JP2014526729A5 (ja) 2014-11-13
JP5932041B2 JP5932041B2 (ja) 2016-06-08

Family

ID=47728160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014529675A Active JP5932041B2 (ja) 2011-09-11 2011-10-10 プールされたパーティション・レイアウトおよび表現

Country Status (6)

Country Link
US (1) US9069468B2 (ja)
EP (1) EP2754052A4 (ja)
JP (1) JP5932041B2 (ja)
KR (1) KR101915830B1 (ja)
CN (1) CN102945212B (ja)
WO (1) WO2013036254A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069468B2 (en) 2011-09-11 2015-06-30 Microsoft Technology Licensing, Llc Pooled partition layout and representation
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9146856B2 (en) * 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US9870232B2 (en) * 2012-05-29 2018-01-16 Fujitsu Limited Extensible method and system for storage metadata
US9244868B2 (en) * 2012-09-21 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Leased lock in active-active high availability DAS systems
US9495287B2 (en) * 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
US8914578B2 (en) * 2012-09-27 2014-12-16 Hewlett-Packard Development Company, L.P. Capacity-expansion of a logical volume
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US8943107B2 (en) * 2012-12-04 2015-01-27 At&T Intellectual Property I, L.P. Generating and using temporal metadata partitions
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9213611B2 (en) 2013-07-24 2015-12-15 Western Digital Technologies, Inc. Automatic raid mirroring when adding a second boot drive
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
US9471259B2 (en) * 2014-01-28 2016-10-18 Netapp, Inc. Shared storage architecture
US9779015B1 (en) * 2014-03-31 2017-10-03 Amazon Technologies, Inc. Oversubscribed storage extents with on-demand page allocation
US10048865B2 (en) 2014-10-24 2018-08-14 Microsoft Technology Licensing, Llc Disk partition stitching and rebalancing using a partition table
US11892913B2 (en) * 2015-01-05 2024-02-06 Rubrik, Inc. Data lineage based multi-data store recovery
CN107943412B (zh) * 2016-10-12 2021-10-22 阿里巴巴集团控股有限公司 一种分区分裂、删除分区中数据文件的方法、装置及系统
FR3065301B1 (fr) * 2017-04-18 2020-05-22 Thales Procede et dispositif electronique de verification d'une configuration de partitionnement, programme d'ordinateur associe
US10229022B1 (en) * 2017-04-27 2019-03-12 EMC IP Holding Company LLC Providing Raid-10 with a configurable Raid width using a mapped raid group
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
CN108595122B (zh) * 2018-04-25 2020-12-22 江苏人加信息科技有限公司 一种基于局域网的计算机安全管理系统
JP7246869B2 (ja) * 2018-06-28 2023-03-28 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びプログラム
US10725930B2 (en) * 2018-08-27 2020-07-28 Micron Technology, Inc. Logical to physical memory address mapping tree
US11132138B2 (en) 2019-09-06 2021-09-28 International Business Machines Corporation Converting large extent storage pools into small extent storage pools in place
US10901645B1 (en) 2019-09-06 2021-01-26 International Business Machines Corporation Converting small extent storage pools into large extent storage pools in place
CN112558867B (zh) * 2020-12-10 2024-04-09 中国航空工业集团公司沈阳飞机设计研究所 一种对记录器存储空间高效使用的方法
US11748016B2 (en) * 2021-05-06 2023-09-05 EMC IP Holding Company LLC Method for adding disks in a raid system having a protection pool of storage units
CN113779952B (zh) * 2021-09-28 2024-03-01 北京字跳网络技术有限公司 文本处理方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153606A1 (en) * 2003-01-21 2004-08-05 Equallogic Inc. Storage systems having differentiated storage pools
US20050235337A1 (en) * 2004-04-15 2005-10-20 Chris Wilson Method and system of data storage capacity allocation and management using one or more data storage drives
US20080229048A1 (en) * 2007-03-14 2008-09-18 Atsushi Murase Method and apparatus for chunk allocation in a thin provisioning storage system
WO2011108027A1 (ja) * 2010-03-04 2011-09-09 株式会社日立製作所 計算機システム及びその制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721858A (en) 1995-12-12 1998-02-24 International Business Machines Corporation Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system
US6370619B1 (en) 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
KR20010098429A (ko) 2000-04-27 2001-11-08 포만 제프리 엘 다층 논리 볼륨 생성 및 관리를 위한 시스템 및 방법
US7349908B2 (en) 2002-02-21 2008-03-25 International Business Machines Corporation Method for specifying a dynamic construct in a storage management system
JP2004265110A (ja) 2003-02-28 2004-09-24 Hitachi Ltd メタデータ配置方法、プログラムおよびディスク装置
US7885921B2 (en) 2004-11-18 2011-02-08 International Business Machines Corporation Managing atomic updates on metadata tracks in a storage system
US7260681B2 (en) 2005-06-02 2007-08-21 Seagate Technology Llc Stripe buffer list
CN102405460B (zh) * 2009-02-11 2016-05-04 艾梵尼达有限公司 虚拟存储系统及其运行方法
WO2010138628A1 (en) * 2009-05-28 2010-12-02 Marvell World Trade Ltd. Metadata management for virtual volumes
DE102009031923A1 (de) * 2009-07-07 2011-01-13 Sones Gmbh Verfahren zum Verwalten von Datenobjekten
US8578087B2 (en) 2010-02-02 2013-11-05 International Business Machines Corporation On demand conversion of standard logical volumes to thin-provisioned logical volumes
CN101893999A (zh) 2010-06-08 2010-11-24 孟智平 一种将存储设备虚拟划分为多个设备的系统
CN101976174B (zh) 2010-08-19 2012-01-25 北京同有飞骥科技股份有限公司 一种垂直排布分布校验的节能型磁盘阵列的构建方法
CN101916173B (zh) 2010-08-27 2013-08-28 杭州华三通信技术有限公司 一种基于raid的数据读写方法及其系统
US9069468B2 (en) 2011-09-11 2015-06-30 Microsoft Technology Licensing, Llc Pooled partition layout and representation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153606A1 (en) * 2003-01-21 2004-08-05 Equallogic Inc. Storage systems having differentiated storage pools
US20050235337A1 (en) * 2004-04-15 2005-10-20 Chris Wilson Method and system of data storage capacity allocation and management using one or more data storage drives
US20080229048A1 (en) * 2007-03-14 2008-09-18 Atsushi Murase Method and apparatus for chunk allocation in a thin provisioning storage system
WO2011108027A1 (ja) * 2010-03-04 2011-09-09 株式会社日立製作所 計算機システム及びその制御方法

Also Published As

Publication number Publication date
WO2013036254A1 (en) 2013-03-14
CN102945212A (zh) 2013-02-27
KR20140061441A (ko) 2014-05-21
CN102945212B (zh) 2016-04-27
EP2754052A1 (en) 2014-07-16
US20130067191A1 (en) 2013-03-14
US9069468B2 (en) 2015-06-30
KR101915830B1 (ko) 2018-11-06
EP2754052A4 (en) 2015-05-20
JP5932041B2 (ja) 2016-06-08

Similar Documents

Publication Publication Date Title
JP5932041B2 (ja) プールされたパーティション・レイアウトおよび表現
US9229826B2 (en) Volatile memory representation of nonvolatile storage device set
KR101971307B1 (ko) 사용 비트맵을 갖는 저장 장치에 대한 효율적 액세스 기법
JP2014513338A5 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
US10922276B2 (en) Online file system check
CN109804359A (zh) 用于将数据回写到存储设备的系统和方法
CN109902034B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
US8868793B2 (en) SAS expander system and method for dynamically allocating SAS addresses to SAS expander devices
US20070094395A1 (en) Computer system, storage area allocation method, and management computer
CN111414228A (zh) 基于Kubernetes的管理存储空间的方法和相关装置
US10452494B1 (en) Performing storage object recovery
TW201504937A (zh) 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US11467777B1 (en) Method and system for storing data in portable storage devices
CN109284270B (zh) 一种分布式文件系统存储模块的部署优化方法及装置
WO2016103356A1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
US11966637B1 (en) Method and system for storing data in portable storage devices
CN112286869A (zh) 一种快照创建方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140910

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140910

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5932041

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250