JP2011527048A - データ記憶システムにおける動的な書き込み平衡化 - Google Patents

データ記憶システムにおける動的な書き込み平衡化 Download PDF

Info

Publication number
JP2011527048A
JP2011527048A JP2011516712A JP2011516712A JP2011527048A JP 2011527048 A JP2011527048 A JP 2011527048A JP 2011516712 A JP2011516712 A JP 2011516712A JP 2011516712 A JP2011516712 A JP 2011516712A JP 2011527048 A JP2011527048 A JP 2011527048A
Authority
JP
Japan
Prior art keywords
storage
section
subsections
sections
discontinuously
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
JP2011516712A
Other languages
English (en)
Other versions
JP5712127B2 (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.)
Hitachi Data Systems Engineering UK Ltd
Original Assignee
Hitachi Data Systems Engineering UK Ltd
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 Hitachi Data Systems Engineering UK Ltd filed Critical Hitachi Data Systems Engineering UK Ltd
Publication of JP2011527048A publication Critical patent/JP2011527048A/ja
Application granted granted Critical
Publication of JP5712127B2 publication Critical patent/JP5712127B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0608Saving storage space on storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

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

(関連出願の相互参照)
このPCT出願は、2008年6月30日出願の米国特許出願第12/164,745号からの優先権を主張し、当該特許出願の全体が本明細書において参照により援用される。
本発明は、以下の米国特許出願のうちの1つ以上に関連し得、これら特許出願のそれぞれ全体が本明細書において参照により援用される。これら特許出願は、
「MULTI−WAY CHECKPOINTS IN A DATA STORAGE SYSTEM」と題された、本願と同日出願の米国特許出願(代理人整理番号2337/110)、
「Apparatus and Method for Hardware Implementation or Acceleration of Operating System Functions」と題された、2001年6月12日出願の米国特許出願第09/879,798号、現在は米国特許第6,826,615号(代理人整理番号2337/103)、
「Apparatus and Method for Hardware Implementation or Acceleration of Operating System Functions」と題された、2004年7月12日出願の米国特許出願第10/889,158号(代理人整理番号2337/108)、
「Apparatus and Method for Hardware−Based File System」と題された、Geoffrey S.Barrallらの名前の下2002年11月1日出願の米国特許出願第10/286,015号(代理人整理番号2337/104)、および、
「Apparatus and Method for Hardware−Based File System」と題された、Geoffrey S.Barrallらの名前の下2007年8月20日出願の米国特許出願第11/841,353号(代理人整理番号2337/117)である。
(発明の分野)
本発明は、データ記憶システムに関し、より具体的には、データ記憶システムにおける動的な書き込み平衡化に関する。
(背景)
今日の情報時代において、データ記憶システムはしばしば、膨大な量の記憶空間を含むファイルシステムを管理する。ファイルシステムが、複数の記憶デバイスに広がる、多数テラバイトの記憶空間を含むことは一般的である。
動的ファイルシステム環境では、記憶空間のブロックはしばしば、ファイルが作り出され、修正され、削除される間に、使用され、解放され、再使用される。かかるファイルシステムは、ファイルシステムによってもはや使用されていないブロックを、特定し、解放し、再使用するためのメカニズムを含むことが一般的である。再使用のためのフリーブロックを設置するために、ファイルシステム記憶空間を通して連続的に検索する、従来のブロック再使用方式は、後にファイルシステムの性能に影響を与え得る、不均衡な書き込み操作をもたらし得る。
本発明の一側面に従い、複数の連続記憶場所を有するデータ記憶システムにおいて、書き込み操作を分配する方法が提供される。この方法は、複数の連続記憶場所のそれぞれの可用性を示すフリーブロックオブジェクトを維持するステップと、データを記憶域に書き込むための利用可能な記憶場所を識別するために、フリーブロックオブジェクトを通して不連続的に検索するステップとを含む。
本発明の別の側面に従い、複数の連続記憶場所を有するデータ記憶システムにおいて、書き込み操作を分配するための装置が提供される。この装置は、メモリと、複数の連続記憶場所のそれぞれの可用性を示すフリーブロックオブジェクトをメモリ内に維持し、かつ、データを記憶域に書き込むための利用可能な記憶場所を識別するために、フリーブロックオブジェクトを通して不連続的に検索するように構成される、記憶プロセッサとを含む。
種々の代替的実施形態では、フリーブロックオブジェクトを通して不連続的に検索するステップは、フリーブロックオブジェクトを複数の連続セクションに論理的に分割するステップと、セクションを通して不連続的に検索するステップとを含み得る。セクションのぞれぞれは、個別の仮想記憶構成体と関連付けられてもよく(例えば、レンジ、ストライプセット(stripeset)、スパン、システムドライブ、または他の仮想記憶構成体)、その場合、セクションを通して不連続的に検索するステップは、仮想記憶構成体を通して不連続的に検索するステップをもたらしてもよい。
さらなる代替的実施形態において、各セクションは、いくつかのサブセクションに論理的に分割されてもよく、その場合、セクションを通して不連続的に検索するステップは、セクションのサブセクションを通して不連続的に検索するステップを含み得る。セクションは、サブセクションが、異なるセクション内で異なるサイズになり得るように、等しい数のサブセクションに論理的に分割されてもよく、または、異なるセクションが異なる数のサブセクションを有することができるように、等しいサイズのサブセクションに論理的に分割されてもよい。
またさらなる代替的実施形態では、いくつかの追加される記憶場所の可用性を示すためのフリーブロックオブジェクトに新しいセクションを追加すると、方法は、所定の閾値または条件に到達するまで、追加されたセクションを通して検索するように進行するステップを含み得、その後、上記の不連続検索が開始または再開されてもよい。
例示的実施形態では、フリーブロックオブジェクトは、記憶場所ごとに少なくとも1つの状態指標ビットを有する、ビットマップの形態であるが、フリーブロック一覧は、例えば、リンクされた一覧、表、または他のデータ構造といった他の形態で維持されてもよい。
上記の実施形態では、データ記憶システムは、複数の記憶デバイス(例えば、ハードディスク、固体記憶域)を含んでもよく、かかる不連続検索は、記憶デバイスの利用の平衡を保つのに役立つ場合がある。
本発明の上述の特性は、添付図面を参照の上、以下の詳細な説明を参照することで、より容易に理解されるであろう。
図1は、本発明の例示的実施形態に従う、ファイル記憶システムの概略ブロック図である。 図2は、本発明の例示的実施形態に従う、ファイルシステムの一般フォーマットを示す概略ブロック図である。 図3は、本発明の例示的実施形態において、ファイルシステム記憶ブロックとストライプセットとの間の関係を示す概略図である。 図4は、本発明の例示的実施形態に従う、フリーブロックビットマップの該略図である。 図5は、本発明の例示的実施形態に従う、動的な書き込み平衡化のための不連続検索を描写する概略図である。 図6は、本発明の第1の代替的実施形態に従う、ストライプセットから独立している不連続検索を描写する概略図である。 図7は、本発明の第2の代替的実施形態に従う、ストライプセットから独立している不連続検索を描写する概略図である。
(特定の実施形態の詳細な説明)
定義。本説明および添付の特許請求の範囲で使用される通り、以下の用語は、文脈上異なる解釈を要する場合を除き、指示される意味を有するものとする。
「記憶デバイス」は、データを記憶するために使用される、デバイスまたはシステムである。記憶デバイスは、1つ以上の磁気または光磁気、あるいは、光ディスクドライブ、固体記憶デバイス、もしくは磁気テープを含んでもよい。便宜上、記憶デバイスは時に、「ディスク」または「ハードディスク」と呼ばれる。データ記憶システムは、同じまたは異なる記憶容量を有する、同じまたは異なるタイプの記憶デバイスを含んでもよい。
「RAIDコントローラ」は、いくつかの記憶デバイスの記憶容量を組み合わせて、「システムドライブ」(「SD」)、「論理ユニット」(「LU」または「LUN」)、または「ボリューム」と代替として呼ばれる場合がある1つの仮想記憶空間を作る、デバイスまたはシステムである。通常、SDは、いくつかの記憶デバイスから空間を引き出して、単一記憶デバイスよりも大きく、データ損失なしに一定数のディスクの不具合に耐えることができるように、冗長な情報を含む。例示的実施形態では、各SDは、以下「論理ユニット識別子」または「LUID」と呼ばれる一意の識別子と関連付けられ、かつ各SDは、例えば、2TB〜64TB以上等の所定の最大サイズほどには大きくはないであろう。コマンドがSDに送信されると、RAIDコントローラは、通常、同時にSDの全記憶デバイスにコマンドを転送する。RAIDコントローラは、典型的な記憶デバイスの主要制限のうちの3つ、すなわち、記憶デバイスが通常、記憶システムの最も遅い構成要素であること、通常壊滅的な不具合を最も被りがちであること、および通常比較的小さい記憶容量を有することを克服するのに役立つ。
「RAIDシステム」は、1つ以上のRAIDコントローラ、およびいくつかの記憶デバイスを含む、デバイスまたはシステムである。通常、RAIDシステムは、2つのRAIDコントローラ(1つに不具合が起きた場合、他方は作動し続けることができるように、また、両方が正常である間は、負荷を共有するため)、および数十の記憶デバイスを内包するであろう。例示的実施形態では、RAIDシステムは、通常、2個から32個の間のSDで構成される。ファイルサーバは、データを記憶するか、または読み出す必要がある時、RAIDシステムのRAIDコントローラにコマンドを送信し、次いでRAIDコントローラが、個々の記憶デバイスへのコマンドの経路を選択すること、および必要に応じてデータの記憶または読み出しに対して責任を有する。一部のRAIDシステムでは、1つのSD(「1次SD」と呼ばれる)に書き込まれるデータが、冗長性の目的で、RAIDシステムによって別のSD(本明細書では「2次SD」または「ミラーSD」と呼ばれる)に自動的に書き込まれるように、SD間にミラー関係を確立することができる。2次SDは、1次SDと同じRAIDシステムによって、あるいは異なる局所または遠隔のRAIDシステムによって、管理されてもよい。SDをミラーリングすることで、SDまたは場合により一部の状況では複数のSDまでもの、損失もしくは破損からの回復を提供するために、複数のSDにわたるRAID1+0機能性を効果的に提供する。
「ファイルシステム」は、ファイル記憶システムに記憶される、ファイルおよびディレクトリ(フォルダ)の構造である。ファイル記憶システム内で、ファイルシステムは通常、いくつかの仮想記憶構成体を使用して管理され、例示的実施形態では、ファイルシステムは、レンジ、ストライプセット、およびスパンと呼ばれる仮想記憶構成体の階層を使用して管理される。「レンジ」は、それ自体上にある1次SD、または、同一データを内包し、それゆえ単一SDと同じ記憶容量を提供することが想定される1次/2次SDペアのいずれかから成る。「ストライプセット」は、1つ以上のレンジから成る。「スパン」は、1つ以上のストライプセットから成る。したがって、スパンは、最終的には1つ以上のSD(通常、4個から50個のSD)から成る。スパンは、1つ以上のファイルシステムに分割されることができ、各ファイルシステムは、個別の名前および識別子、ならびに潜在的に異なる特徴(例えば、1つのファイルシステムは32KBのクラスタで、別のファイルシステムは4KBのクラスタでフォーマットされてもよく、1つのファイルシステムはWormで、別のファイルシステムはそうではなくてもよい、など)を有する。スパン上の各ファイルシステムは、個別にフォーマットされ、マウントされ、アンマウントされる。ファイルシステムは、いずれの順番でも、かつ、いつでも、作り出され、削除されてもよい。ファイルシステムは、自動的に拡張する(あるいは代替として、自動拡張を防止または制限する)ように構成することができ、または手動で拡張することができる。
図1は、本発明の例示的実施形態に従う、ファイル記憶システムの概略ブロック図である。とりわけ、ファイル記憶システムは、インターネットプロトコルネットワーク(例えば、インターネット)等の通信ネットワーク9004を介して種々のクライアントデバイス9006−9006と通信し、また、FibreChannelネットワーク等の記憶ネットワーク9010を介して種々のRAIDシステム9008−9008とも通信する、いくつかのファイルサーバ(単一ファイルサーバ9002が、簡略化のため便宜上示されている)を含む。クライアントデバイス9006−9006およびファイルサーバ9002は、CIFSおよび/またはNFS等の1つ以上のネットワークファイルプロトコルを使用して通信する。ファイルサーバ9002およびRAIDシステム9008−9008は、SCSI等の記憶プロトコルを使用して通信する。ファイル記憶システムは、冗長で切り替えられるFibreChannelネットワークを介していずれのファイルサーバがいずれのRAIDシステムとも通信することができるフルメッシュ構成を含む、種々の構成において、相互接続される複数のファイルサーバおよび複数のRAIDシステムを含み得ることに留意すべきである。
ファイルサーバ9002は、1つ以上のファイルシステムを管理する。ファイルサーバ9002は、指定される名前の下でのツリーまたはサブツリー等の、ファイルシステムの部分へのクライアントアクセスを可能にするように構成することができる。CIFS用語では、かかるアクセスは「共有」と呼ばれ得る一方、NFS用語では、かかるアクセスは「エクスポート」と呼ばれ得る。ファイルサーバ9002は内部に、例えば、米国特許出願第09/879,798号および第10/889,158号(これら出願は参照により援用される)に記載されるような、種々のハードウェア実装型サブシステムおよび/またはハードウェア促進型サブシステムを含んでもよく、かつ、ファイルサーバ9002は、例えば、米国特許出願第10/286,015号および第11/841,353号(これら出願は参照により援用される)に記載されるような、複数のリンクされたサブモジュールを含む、ハードウェアベースのファイルシステムを含んでもよい。
各RAIDシステム9008は、通常、少なくとも1つのRAIDコントローラ(および大抵、冗長性のために2つのRAIDコントローラ)だけでなく、RAIDコントローラ(単数または複数)によって管理される、いくつかの物理的記憶デバイス(例えば、ディスク)も含む。RAIDシステム9008は、その記憶資源をいくつかのSDに統合する。例えば、各RAIDシステム9008は、2個から32個の間のSDで構成されてもよい。各SDは、所定の最大サイズ(例えば、2TB〜64TB以上)に限定されてもよい。いくつかの記憶デバイスを組み合わせて1つのSDにすることで、増加した速度(個々の記憶デバイスは比較的遅いが、データは、ボトルネックを解消するために、いくつかの記憶デバイスに渡ってストライプ化され得る)、増加した容量(個々の記憶デバイスは比較的小さいが、より多くの使用可能な空間を提供するために、いくつかの記憶デバイスを組み合わせることができる)、抽象化(使用される空間の量は、単一記憶デバイスのサイズより大きいか、または小さいかのいずれかであり得る)、および復元力(パリティまたは冗長性情報は、SDが記憶デバイスの損失に耐えることができるように、各記憶デバイス上に記憶することができる)を含む、いくつかの恩恵を提供することができる。
ファイルサーバ9002は、1つ以上のSDを使用するように構成され、単一RAIDシステムから、または複数のRAIDシステムから成ることができる。ファイルサーバ9002は、通常、各SDが1次または2次であるかを調べるために、RAIDシステムに問い合わせることができる。どのSDがファイルサーバ9002によって使用されるかを制御する方法は、本明細書では「ライセンス供与」と呼ばれる。すなわち、実際は、ファイルサーバ9002は通常、一部のSDにライセンスを供与し、他には供与しないであろう。
ファイルサーバ9002は内部で、いくつかのSDを組み合わせて、本明細書では「スパン」と呼ばれる、より大きな記憶プールにすることができる。基本的にスパンは、いくつかのSDのRAID0アレイである。いくつかのSDを組み合わせてスパンにすることで、増加した速度(複数のRAIDシステム上の複数のSD間にI/Oを分散することで、記憶ボトルネックをさらに解消し得る)、増加した記憶容量(スパンは、単一SDよりも大きくなることが可能であり、2テラバイトに限定される場合がある)、および、より柔軟な記憶空間割り当てを可能にするさらなる抽象化を含む、複数の物理ディスクを組み合わせてSDにすることによって得られる恩恵と類似のいくつかの恩恵を提供することができる。
図2は、本発明の例示的実施形態に従う、スパンの概略ブロック図である。示す通り、スパン9011は、論理的に連続記憶空間を提供する、9012−9012と番号付けされたいくつかのストライプセットから成る。次に、各ストライプセット9012は、1つ以上のレンジ、すなわち1つ以上のSDから成る。本実施例では、ストライプセット9012は、9013−9013と番号付けされたレンジを含む。
大量のデータがストライプセットに書き込まれる時、ファイルサーバ9002は概して、データの全てを単一レンジ/SDに書き込むよりむしろ、ストライプセットの中の複数のレンジ/SDに渡って、データを「ストライプ化する」。例えば、大量のデータが書き込まれる時、ファイルサーバ9002は、第1の4MBのデータをレンジ/SD9013に書き込み、次の4MBのデータをレンジ/SD9013に書き込む等してもよく、データをレンジ/SD9013へ書き込んだ後、レンジ/SD9013に戻り再循環する。とりわけ、かかる「ストライプ化」は、ファイルサーバ9002がいくつかのSD(したがって、いくつかの記憶デバイス)を使用している機会を増加させ、いくつかのRAIDシステムによって管理され得る。
例示的実施形態では、スパンが作り出される時、スパン9011は最初、単一ストライプセットを内包するが、さらなるストライプセットが時間とともにスパンに追加されてもよく、異なるストライプセットが異なる数のレンジ/SDを有してもよいことに留意すべきである。例示的実施形態では、各ストライプセットは、その容量にかかわらず、最大32個のSDを内包することができる。各SDはミラーリングされてもよいが、かかるミラーリングは、ファイルサーバ9002によってよりもむしろ、RAIDシステムによって行われ、それゆえ、ミラーリングされたSDに対して、ファイルサーバ9002は1次SDにのみコマンドを送信し、1次SDのみが、ストライプセット当たり32個のSDという制限に向かって加算される。また、例示的実施形態では、ストライプセットが作り出されると、それ以上のSDはそのストライプセットには追加されない。したがって、SDをスパンに追加するために、新しいストライプセットがさらなるSDに対して形成され、新しいストライプセットは基本的に、スパンの中の既存のストライプセット(単数または複数)に連結される。
それゆえ、例えば、スパンは最初、0〜3と番号付けされた4つのSDを有する単一のストライプセットを含んでもよい。5〜7と番号付けされた3つの新しいSDをスパンに追加するために、SD5〜7を含む第2のストライプセットが作り出され、第2のストライプセットは、第1のストライプセットに連結される。既存のデータは、スパンの中の7つのSD全てに渡って「再ストライプ化」はされない。
本質的に、ファイルシステムは、N個の連続的な記憶のブロックを有する連続記憶空間として見なすことができる。本考察のために、ブロックには論理的に、連続的に0からN−1までの番号を付けることができる。実際は、ファイルシステム記憶空間は、スパン内では物理的に非連続であってよく、複数のストライプセットからの記憶域を含んでもよい。一般的に言えば、ファイルサーバ9002は、スパン内において、ファイルシステム記憶ブロックを物理的記憶場所にマッピングする。したがって、ファイルシステムが複数のストライプセットからの記憶域を含む例示的実施形態では、ファイルシステム記憶ブロックの第1の組は、第1のストライプセットにマッピングされ、ファイルシステム記憶ブロックの第2の組は、第2のストライプセットにマッピングされる等である。
図3は、本発明の例示的実施形態における、ファイルシステム記憶ブロックとストライプセットと間の関係を示す概略図である。本実施例では、N個のファイルシステム記憶ブロックおよび2つのストライプセットがあり、第1のM個のブロック(0からM−1の番号が付けられる)は、ストライプセット1にマッピングされ、残りのN−M個のブロック(MからN−1の番号が付けられる)は、ストライプセット2にマッピングされる。各ストライプセットと関連付けられる何百万ものブロックが存在してもよく、ブロックの数は各ストライプセットで異なってもよいことが留意されるべきである。
データをファイルシステム用の記憶域の中へ書き込むために、ファイルサーバ9002は、そのデータ用に、ファイルシステム記憶空間内に、フリー記憶ブロックを設置する必要がある。そのため、ファイルサーバ9002は通常、各ブロックに対して、ブロックがフリーか使用されているかを示す、フリーブロックオブジェクトを維持する(例えば、メモリの中および/またはディスク上に)。例示的実施形態では、フリーブロックオブジェクトは、ブロックがフリーか使用されているかを示すように、ブロック当たり2ビットの状態指標を有する、連続的に配列されたフリーブロックビットマップの形態である(2ビットは、ブロック当たり4つの状態の表示を可能にし、状態のうちの1つは「フリー」を表す)。本考察のため、フリーブロックビットマップにおける状態指標は、論理的にゼロからN−1までの番号を付けることができ、各状態指標は対応して番号を付けられたブロックと関連付けられる。しかしながら、フリーブロックオブジェクトは、例えば、リンクされた一覧、表、または他のデータ構造といった、他の形態であり得ることに留意すべきである。
図4は、本発明の例示的実施形態に従う、フリーブロックビットマップの概略図である。本実施例では、「X」状態指標は使用中であるブロックを表し、「O」状態指標はフリーであるブロックを表す。行番号0は、0〜7の番号を付けられたブロックに対する状態指標を含み、行番号1は、8〜15の番号を付けられたブロックに対する状態指標を含む等である。それゆえ、本実施例では、ブロック番号2、4、6、8、9、10、11、15、16、21、および23はフリーである。
フリー記憶ブロックは通常、フリーブロックオブジェクトを通して、連続的にフリーブロックを順次探すことによって設置され、フリーブロックオブジェクト全体が検索された後、フリーブロックオブジェクトの先頭に戻って循環する。例示的実施形態では、例えば、ファイルサーバ9002は、「フリー」と印が付いた(対応するファイルシステム記憶ブロックがフリーであること示す)状態指標を、フリーブロックビットマップを通して順次探してもよい。ファイルサーバ9002は通常、フリーブロックビットマップの中のその位置を追跡するために、書き込みポインタを維持する。
ここで、かかる連続的な検索を、再び図4を参照した例示により説明することにする。書き込みポインタがビットマップの先頭にあり(すなわち、行0の状態指標0)、ファイルサーバ9002は5つのフリーブロックが必要であると想定すると、ファイルサーバ9002は、5つの「フリー」状態指標を設置するまで、行0の状態指標0から開始して、ビットマップを通して連続的に順次進行する。それゆえ、本実施例において、ファイルサーバ9002は、3、4、6、8、および9の番号を付けられたフリーブロックを選択する。書き込みポインタは、後続の検索動作のために、行1の状態指標2に残される。
ファイルシステムが、例えば図3に示す通り、複数のストライプセットからの記憶域を含む場合、ファイルサーバ9002は、別のストライプセットと関連付けられるフリーブロックを探す前に、ある1つのストライプセットと関連付けられるファイルシステム記憶ブロックの全てを検索するであろうから、上記の連続的な検索は、複数のストライプセットにわたる不均衡な書き込みパターンをもたらし得る。ビットマップの先頭から開始すると、例えば、ファイルサーバ9002は、ストライプセット2と関連付けられる、残りのブロックと関連付けられる状態指標を通して順次進行する前に、ストライプセット1と関連付けられる、第1のM個のブロックと関連付けられる状態指標を通して順次進行するであろう。典型的な記憶システムの中の膨大な量の記憶空間(すなわち、多数テラバイト)に起因して、ファイルサーバ9002が、特定のストライプセットと関連付けられるブロックを通して順次進行するには、非常に長い時間がかかる場合がある(例えば、おそらく数日のオーダー)。この連続的な検索を使用して、大量のデータ(おそらく多数ギガバイト)は、概して、データが、別のストライプセットと関連付けられるブロックに書き込まれる前に、ある1つのストライプセットと関連付けられるブロックに書き込まれるであろう。特定のストライプセットが遅い場合(例えば、それが少なすぎるSDしか内包しないため、またはそのストライプセットによって使用されるRAIDコントローラがオーバーロードであるため)、ファイルシステム全体に対する書き込み性能は、書き込みポインタが異なるストライプセットに移るまで、ファイルサーバ9002がそのストライプセットと関連付けられるフリーブロックを使用している期間中、遅い場合がある。
そのため、本発明の例示的実施形態では、ファイルサーバ9002は、記憶空間に渡って書き込み操作を分配するために(例えば、ディスク利用の平衡を保つのに役立つために)、不連続的な態様において、フリーブロックオブジェクトを通して検索する。例えば、ファイルサーバ9002は、フリーブロックオブジェクトをいくつかのセクションに論理的に分割し、それらセクションを通して不連続的に順次進行してもよく、次のセクションに移る前にセクション全体を通して検索する。フリーブロックオブジェクトの異なる部分が異なるストライプセットに対応する、複数のストライプセットまたは類似の構成体を有する実施形態では、ファイルサーバ9002は、種々のストライプセット間をジャンプしてもよく、種々のストライプセット間で書き込み操作を分散するために、別のストライプセットに対応するフリーブロックオブジェクトのセクションに移る前に、ある1つのストライプセットに対応するフリーブロックオブジェクトのセクションを検索する(例えば、ファイルサーバ9002は、1つのストライプセットと関連付けられるセクション、次いで次のストライプセットと関連付けられるセクションを通して等、順次進行してもよい)。
図5は、本発明の例示的実施形態に従う、動的な書き込み平衡化のためのかかる不連続的な検索を描写する概略図である。本実施例では、ストライプセット1と関連付けられるブロックは、5つのセクション(ここでは便宜上、1〜5の番号を付ける)に論理的に分割される一方、ストライプセット2と関連付けられるブロックは、4つのセクション(ここでは便宜上、1〜4の番号を付ける)に論理的に分割される。例えば、セクションが種々のストライプセットに渡って固定サイズであり、ストライプセット2がたまたまストライプセット1の4/5のサイズであるので、または、2つのストライプセットが同じサイズであるが、それらを異なる数のセクションに論理的に分割する他の理由があるので、ストライプセットは、異なる数のセクションを有してもよい。
セクションの中に示す数は、本実施例において、セクションがファイルサーバ9002によって検索される順序を示す。具体的には、ビットマップの先頭から開始して、ファイルサーバ9002は最初に、ストライプセット1のセクション1を通して検索し(ステップ1)、次いで、ストライプセット2のセクション1を通して検索し(ステップ2)、その後、ストライプセット1のセクション2を通して検索する(ステップ3)等である。本実施例では、ファイルサーバ9002がストライプセットの最後のセクションを通して検索した後、ファイルサーバ9002は、そのストライプセット内の検索を継続するために、ストライプセットの最初のセクションに戻り循環する。このパターンは図5に見ることができ、例えば、ここで、ステップ8におけるストライプセット2のセクション4を通して検索した後、次にファイルサーバ9002が、ステップ10におけるストライプセット2のセクション1内で検索する(すなわち、ステップ9におけるストライプセット1のセクション5を通して検索した後)。種々の代替的実施形態では、ストライプセットは、異なる手段で論理的に分割することができ、異なるパターンで検索され得ることに留意されるべきである。例えば、ストライプセット(したがって、およびセクション)が異なるストライプセットにおいて異なるサイズである場合でさえ、ストライプセットは、等しい数のセクションに論理的に分割され得る。
動的な書き込み平衡化のための不連続的な検索を補助するために、例えば、まさに記載する通り、ファイルサーバ9002は通常、例えば、各ストライプセットのサイズ、ファイルシステム空間内の各ストライプセットの開始オフセット、および、次のストライプセットに移る前にストライプセットの中で検索されるべき空間の量を含む、種々のタイプの情報を維持する。ファイルサーバ9002はまた通常、例えば、各ストライプセット内での検索場所を維持するための、各ストライプセット用の書き込みポインタ、および現在の検索場所/ストライプセットを維持するための、グローバル書き込みポインタを含む、種々のポインタも維持する。
上記実施形態の種々の側面が、種々の代替的実施形態においてより一般的に使用されてもよいことに留意されるべきである。例えば、ファイルシステム記憶空間が、ストライプセットまたは他の類似する記憶構成体にマッピングされる必要性はない。ある実施形態では、他の理由で、ファイルシステム記憶空間を通した不連続的な検索を使用するのが望ましい場合もある。
図6は、本発明の第1の代替的実施形態に従う、ストライプセットから独立している不連続的な検索を描写する概略図である。本実施例では、ファイルシステム記憶空間は、8つのセクション(便宜上、1〜8の番号を付ける)に局所的に分割される。本実施例において、セクションの中に示す数字は、セクションがファイルサーバ9002によって検索される順序を示す。具体的には、ファイルシステム記憶空間の先頭から開始して、ファイルサーバ9002は先ず、セクション1を通して検索し(ステップ1)、次いでセクション3を通して検索し(ステップ2)、その後セクション5を通して検索する(ステップ3)等である。
図7は、本発明の第2の代替的実施形態に従う、ストライプセットから独立している不連続的な検索を描写する概略図である。本実施例では、ファイルシステム記憶空間は、8つのセクション(便宜上、1〜8の番号を付ける)に局所的に分割される。本実施例において、セクションの中に示す数字は、セクションがファイルサーバ9002によって検索される順序を示す。具体的には、ファイルシステム記憶空間の先頭から開始して、ファイルサーバ9002は先ず、セクション1を通して検索し(ステップ1)、次いでセクション5を通して検索し(ステップ2)、その後セクション2を通して検索する(ステップ3)等である。
上記の通り、ファイルシステム記憶空間は、1つ以上の新しいストライプセットを追加することによって、時間とともに拡張されてもよい。新しいストライプセットが追加されると、フリーブロックオブジェクトは、ストライプセットによって提供される新しい記憶空間を含むように、効果的に拡張される(フリーブロックオブジェクトは、ストライプセットが追加される時に、物理的に拡張してもよいか、または拡張しなくてもよい)。上記の通り、フリーブロックオブジェクトを通して不連続的に検索するのに加えて、またはかかる不連続的な検索の代替として、ファイルサーバ9002は、新しいストライプセットが追加される時、新しく追加されたストライプセットからフリーブロックを使用し始めるように構成されてもよい。新しく追加されたストライプセットからフリーブロックを使用する1つの理由は、新しく追加されたストライプセットは通常、最初は非常に効率的であるからである。それゆえ、新しいストライプセットが追加されると、ファイルサーバ9002は、フリーブロックを最初に新しく追加されたストライプセットから取るように、新しく追加されたストライプセットを参照するように、グローバル書き込みポインタを更新してもよい。ファイルサーバ9002は、ある所定の閾値または条件に達成するまで、新しく追加されたストライプセットからフリーブロックを取るように構成されてもよく、達成した時点で、ファイルサーバ9002は、フリーブロックオブジェクトの不連続的な検索を開始または再開してもよい。
それゆえ、例示的実施形態では、記憶サーバは、メモリと、記憶プロセッサであって、複数の連続記憶場所のうちのそれぞれの可用性を示すフリーブロックオブジェクトをメモリの中に維持し、データを記憶域に書き込むための利用可能な記憶場所を識別するために、フリーブロックオブジェクトを通して不連続的に検索するように構成される記憶プロセッサとを含んでもよい。
例示的実施形態では、ファイルサーバは、他のシステムオブジェクトと並行してディスク上にフリーブロックオブジェクトを維持するが、必要な時にはフリーブロックオブジェクトを作業メモリの中に複製し(すなわち、メモリの中にキャッシュされる)、フリーブロックオブジェクトのキャッシュされた複製を使用してフリーブロックを検索することに留意すべきである。
用語「サーバ」は、通信システムにおいて使用され得るデバイスを記載するために本明細書で使用され、本発明をいずれかの特定のタイプのデバイスに限定するように解釈されるべきではないことに留意すべきである。それゆえ、本発明の実施形態は、クライアント、サーバ、コンピュータ、スイッチ、または他のタイプの通信デバイスに実装されてもよい。
本発明は、プロセッサと共に使用するためのコンピュータプログラム論理(例えば、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、または汎用コンピュータ)、プログラマブル論理デバイスと共に使用するためのプログラマブル論理(例えば、フィールドプログラマブルゲートアレイ(FPGA)または他のPLD)、個別部品、集積回路(例えば、特定用途向け集積回路(ASIC))、またはそれらのいずれの組み合わせを含むいずれの他の手段を含むがそれらに決して限定されない、多くの異なる形態において実現されてもよい。
本明細書において前述した機能性の全てまたは一部を実装するコンピュータプログラム論理は、ソースコード形態、コンピュータで実行可能な形態、および様々な中間形態(例えば、アセンブラ、コンパイラ、リンカ、またはロケータによって生成される形態)を含むがそれらに決して限定されない、種々の形態において実現されてもよい。ソースコードは、種々のオペレーティングシステムまたはオペレーティング環境と共に使用するための、適切なプログラミング言語(例えば、オブジェクトコード、アセンブリ言語、あるいは、Fortran、C、C++、JAVA(登録商標)、またはHTML等の高水準言語)に実装される、一連のコンピュータプログラム命令を含んでもよい。ソースコードは、種々のデータ構造および通信メッセージを定義および使用してもよい。ソースコードは、コンピュータで実行可能な形態(例えば、インタプリタを介して)であってもよく、またはソースコードは、コンピュータで実行可能な形態に変換されてもよい(例えば、トランスレータ、アセンブラ、またはコンパイラを介して)。
コンピュータプログラムは、半導体メモリデバイス(例えば、RAM、ROM、PROM、EEPROM、またはFlashプログラマブルRAM)、磁気メモリデバイス(例えば、ディスケットまたは固定ディスク)、光学メモリデバイス(例えば、CD−ROM)、PCカード(例えば、PCMCIAカード)、または他のメモリデバイス等、有形の記憶媒体の中に、永久的または一時的のいずれかで、いずれの形態(例えば、ソースコード形態、コンピュータで実行可能な形態、または中間形態)に固定されてもよい。コンピュータプログラムは、アナログ技術、デジタル技術、光学技術、無線技術(例えば、Bluetooth)、ネットワーク技術、およびネットワーク間通信技術を含むがそれらに決して限定されない、種々の通信技術のうちのいずれかを使用して、コンピュータに伝送可能である信号の中にいずれの形態で固定されてもよい。コンピュータプログラムは、印刷または電子書類(例えば、パッケージソフトウェア)が付随するリムーバブルな記憶媒体としていずれの形態で配布されるか、コンピュータシステムにあらかじめ搭載されるか(例えば、システムROMまたは固定ディスク上に)、あるいは通信システム(例えば、インターネットまたはWorld Wide Web)を介してサーバまたは電子掲示板から配布されてもよい。
本明細書において前述した機能性の全てまたは一部を実装する、ハードウェア論理(プログラマブル論理デバイスと共に使用するためのプログラマブル論理を含む)は、従来の手動方法を使用して設計されてもよく、あるいは、コンピュータ支援設計(CAD)、ハードウェア記述言語(例えば、VHDLまたはAHDL)、またはPLDプログラミング言語(例えば、PALASM、ABEL、またはCUPL)等の種々のツールを使用して、電子的に設計されるか、キャプチャされるか、シミュレーションされるか、または文書化されてもよい。
プログラマブル論理は、半導体メモリデバイス(例えば、RAM、ROM、PROM、EEPROM、またはFlashプログラマブルRAM)、磁気メモリデバイス(例えば、ディスケットまたは固定ディスク)、光学メモリデバイス(例えば、CD−ROM)、または他のメモリデバイス等、有形の記憶媒体の中に、永久的または一時的のいずれかで固定されてもよい。プログラマブル論理は、アナログ技術、デジタル技術、光学技術、無線技術(例えば、Bluetooth)、ネットワーク技術、およびネットワーク間通信技術を含むがそれらに決して限定されない、種々の通信技術のうちのいずれかを使用して、コンピュータに伝送可能である信号の中に固定されてもよい。プログラマブル論理は、印刷または電子書類(例えば、パッケージソフトウェア)が付随するリムーバブルな記憶媒体として配布されるか、コンピュータシステムにあらかじめ搭載されるか(例えば、システムROMまたは固定ディスク上に)、あるいは通信システム(例えば、インターネットまたはWorld Wide Web)を介してサーバまたは電子掲示板から配布されてもよい。
本発明は、本発明の真の範囲から逸脱することなく、他の特定の形態において実現されてもよい。記載した実施形態は、全ての点において例示的であるようにのみ考慮されるべきであり、限定的ではない。

Claims (14)

  1. 複数の連続記憶場所を有するデータ記憶システムにおける書き込み操作を分配する方法であって、前記方法は、
    前記複数の連続記憶場所のそれぞれに対する可用性を示すフリーブロックオブジェクトを維持するステップと、
    データを記憶域に書き込むために利用可能な記憶場所を識別するために、前記フリーブロックオブジェクトを通して不連続的に検索するステップと
    を包含する、方法。
  2. 前記フリーブロックオブジェクトを通して不連続的に検索するステップは、
    前記フリーブロックオブジェクトを複数の連続セクションに論理的に分割するステップと、
    前記セクションを通して不連続的に検索するステップと
    を包含する、請求項1に記載の方法。
  3. 前記セクションのそれぞれは、個別の仮想記憶構成体と関連付けられ、前記セクションを通して不連続的に検索するステップは、前記仮想記憶構成体を通して不連続的に検索するステップをもたらす、請求項2に記載の方法。
  4. 前記仮想記憶構成体は、
    レンジと、
    ストライプセットと、
    スパンと、
    システムドライブと
    のうちの少なくとも1つを含む、請求項3に記載の方法。
  5. 各セクションをいくつかのサブセクションに論理的に分割するステップをさらに包含し、
    (1)前記セクションを通して不連続的に検索するステップは、前記セクションの前記サブセクションを通して不連続的に検索するステップを包含し、かつ/または、
    (2)前記セクションは、前記サブセクションが異なるセクションにおいて異なるサイズになり得るように、等しい数のサブセクションに論理的に分割され、かつ/または、
    (3)前記セクションは、異なるセクションが異なる数のサブセクションを有することができるように、等しいサイズのサブセクションに論理的に分割され、かつ/または、
    (4)前記セクションの前記サブセクションを通して不連続的に検索するステップは、別のセクションに移る前に、特定のセクションの中の1つのサブセクションを通して検索するステップを包含する、
    請求項2に記載の方法。
  6. いくつかの追加される記憶場所の可用性を示すための前記フリーブロックオブジェクトに新しいセクションを追加すると、所定の閾値または条件に到達するまで、前記追加されたセクションを通して検索するように進行する、ステップをさらに包含する、請求項2に記載の方法。
  7. 前記フリーブロックオブジェクトは、記憶場所ごとに少なくとも1つの状態指標ビットを有するビットマップであり、かつ/または、
    前記データ記憶システムは、複数の記憶デバイスを含み、かかる不連続的な検索は、前記記憶デバイスの利用の平衡を保つのに役立つ、請求項1〜請求項6のいずれか1項に記載の方法。
  8. 複数の連続記憶場所を有するデータ記憶システムにおける書き込み操作を分配するための装置であって、前記装置は、
    メモリと、
    記憶プロセッサであって、前記複数の連続記憶場所のそれぞれに対する可用性を示すフリーブロックオブジェクトを前記メモリ内に維持し、データを記憶域に書き込むために利用可能な記憶場所を識別するために、前記フリーブロックオブジェクトを通して不連続的に検索するように構成されている、記憶プロセッサと
    を備えている、装置。
  9. 前記記憶プロセッサは、前記フリーブロックオブジェクトを複数の連続セクションに論理的に分割し、かつ、前記セクションを通して不連続的に検索するように構成されている、請求項8に記載の装置。
  10. 前記セクションのそれぞれは、個別の仮想記憶構成体と関連付けられ、前記セクションを通してのかかる不連続的な検索は、前記仮想記憶構成体を通しての不連続的な検索をもたらす、請求項9に記載の装置。
  11. 前記仮想記憶構成体は、
    レンジと、
    ストライプセットと、
    スパンと、
    システムドライブと
    のうちの少なくとも1つを含む、請求項10に記載の装置。
  12. 前記記憶プロセッサは、各セクションをいくつかのサブセクションに論理的に分割するようにさらに構成され、
    (1)前記記憶プロセッサは、前記セクションの前記サブセクションを通して不連続的に検索するように構成され、かつ/または、
    (2)前記セクションは、前記サブセクションが異なるセクションにおいて異なるサイズになり得るように、等しい数のサブセクションに論理的に分割され、かつ/または、
    (3)前記セクションは、異なるセクションが異なる数のサブセクションを有することができるように、等しいサイズのサブセクションに論理的に分割され、かつ/または、
    (4)前記記憶プロセッサは、別のセクションに移る前に、特定のセクションの中の1つのサブセクションを通して検索するように構成されている、
    請求項9に記載の装置。
  13. 前記記憶プロセッサは、いくつかの追加される記憶場所の可用性を示すための前記フリーブロックオブジェクトに新しいセクションを追加し、所定の閾値または条件に到達するまで、前記追加されたセクションを通して検索するようにさらに構成されている、請求項9に記載の装置。
  14. 前記フリーブロックオブジェクトは、記憶場所ごとに少なくとも1つの状態指標ビットを有するビットマップであり、かつ/または、
    前記データ記憶システムは、複数の記憶デバイスを含み、かかる不連続的な検索は、前記記憶デバイスの利用の平衡を保つのに役立つ、請求項8〜請求項13のいずれか1項に記載の装置。
JP2011516712A 2008-06-30 2009-06-26 データ記憶システムにおける動的な書き込み平衡化 Active JP5712127B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/164,745 US9778882B2 (en) 2008-06-30 2008-06-30 Dynamic write balancing in a data storage system
US12/164,745 2008-06-30
PCT/US2009/048843 WO2010002732A1 (en) 2008-06-30 2009-06-26 Dynamic write balancing in a data storage system

Publications (2)

Publication Number Publication Date
JP2011527048A true JP2011527048A (ja) 2011-10-20
JP5712127B2 JP5712127B2 (ja) 2015-05-07

Family

ID=40996692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516712A Active JP5712127B2 (ja) 2008-06-30 2009-06-26 データ記憶システムにおける動的な書き込み平衡化

Country Status (4)

Country Link
US (1) US9778882B2 (ja)
EP (1) EP2318913B1 (ja)
JP (1) JP5712127B2 (ja)
WO (1) WO2010002732A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996534B2 (en) * 2008-10-09 2011-08-09 Axiometric, Llc File distribution in wireless networks
US8838527B2 (en) * 2008-11-06 2014-09-16 Yahoo! Inc. Virtual environment spanning desktop and cloud
US8843459B1 (en) * 2010-03-09 2014-09-23 Hitachi Data Systems Engineering UK Limited Multi-tiered filesystem
US9122614B1 (en) 2011-12-22 2015-09-01 Netapp, Inc. Modular block-allocator for data storage systems
EP2951674B1 (en) * 2013-02-01 2019-08-14 Hitachi Vantara Corporation Method and apparatus to enable finer-grained, scalable allocation of storage in a data storage system
US9330055B2 (en) 2013-06-04 2016-05-03 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115173A (ja) * 1994-10-05 1996-05-07 Hewlett Packard Co <Hp> データ記憶装置の記憶容量を拡大する方法
JPH08185275A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
JPH08320821A (ja) * 1995-05-25 1996-12-03 Matsushita Electric Ind Co Ltd ファイルシステムのファイル編集装置
US20070106865A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for using a block allocation policy
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
US20080126734A1 (en) * 2006-11-29 2008-05-29 Atsushi Murase Storage extent allocation method for thin provisioning storage

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992935A (en) * 1988-07-12 1991-02-12 International Business Machines Corporation Bit map search by competitive processors
US5870764A (en) * 1993-05-12 1999-02-09 Apple Computer, Inc. Method of managing a data structure for concurrent serial and parallel revision of a work
US5784699A (en) * 1996-05-24 1998-07-21 Oracle Corporation Dynamic memory allocation in a computer using a bit map index
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume
US6697846B1 (en) * 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6366289B1 (en) * 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6643754B1 (en) * 2000-02-15 2003-11-04 International Business Machines Corporation System and method for dynamically allocating computer memory
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6687687B1 (en) * 2000-07-26 2004-02-03 Zix Scm, Inc. Dynamic indexing information retrieval or filtering system
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US7076629B2 (en) * 2001-12-26 2006-07-11 Bonola Thomas J Method for providing concurrent non-blocking heap memory management for fixed sized blocks
US6907508B2 (en) * 2003-02-26 2005-06-14 Emulex Design & Manufacturing Corporation Structure and method for managing available memory resources
CA2426619A1 (en) * 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7330955B2 (en) * 2004-10-18 2008-02-12 Seagate Technology Llc Recovery record for updating a system configuration
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US20070083482A1 (en) * 2005-10-08 2007-04-12 Unmesh Rathi Multiple quality of service file system
US7631155B1 (en) * 2007-06-30 2009-12-08 Emc Corporation Thin provisioning of a file system and an iSCSI LUN through a common mechanism

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115173A (ja) * 1994-10-05 1996-05-07 Hewlett Packard Co <Hp> データ記憶装置の記憶容量を拡大する方法
JPH08185275A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
JPH08320821A (ja) * 1995-05-25 1996-12-03 Matsushita Electric Ind Co Ltd ファイルシステムのファイル編集装置
US20070106865A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for using a block allocation policy
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
US20080126734A1 (en) * 2006-11-29 2008-05-29 Atsushi Murase Storage extent allocation method for thin provisioning storage

Also Published As

Publication number Publication date
JP5712127B2 (ja) 2015-05-07
EP2318913A1 (en) 2011-05-11
US9778882B2 (en) 2017-10-03
WO2010002732A9 (en) 2010-08-26
US20090327368A1 (en) 2009-12-31
WO2010002732A1 (en) 2010-01-07
EP2318913B1 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
US9448886B2 (en) Flexible data storage system
JP6200886B2 (ja) フラッシュストレージアレイにおける論理セクタマッピング
JP6240071B2 (ja) ストレージシステムにおけるマッピングテーブルを効果的に管理するコンピューターシステムおよびその方法
JP5068252B2 (ja) ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術
US8204858B2 (en) Snapshot reset method and apparatus
US7584229B2 (en) Method and system for priority-based allocation in a storage pool
US9075754B1 (en) Managing cache backup and restore
US9021222B1 (en) Managing incremental cache backup and restore
US9460177B1 (en) Managing updating of metadata of file systems
US20110010496A1 (en) Method for management of data objects
JP2014532227A (ja) ストレージシステムにおける可変長符号化
WO2013162954A1 (en) Efficient data object storage and retrieval
JP5712127B2 (ja) データ記憶システムにおける動的な書き込み平衡化
AU2005304759A2 (en) Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US20060190643A1 (en) Method and system for compression of data for block mode access storage
US20110246731A1 (en) Backup system and backup method
US8935304B2 (en) Efficient garbage collection in a compressed journal file
US10852975B2 (en) Efficient data deduplication caching
JP6067888B2 (ja) データ記憶システムにおけるストレージをよりきめ細かく、拡張可能に割り当てること可能とする方法及び装置
WO2015161140A1 (en) System and method for fault-tolerant block data storage

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120106

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131004

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140828

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141218

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: 20150303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150309

R150 Certificate of patent or registration of utility model

Ref document number: 5712127

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250