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

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

Info

Publication number
JP5712127B2
JP5712127B2 JP2011516712A JP2011516712A JP5712127B2 JP 5712127 B2 JP5712127 B2 JP 5712127B2 JP 2011516712 A JP2011516712 A JP 2011516712A JP 2011516712 A JP2011516712 A JP 2011516712A JP 5712127 B2 JP5712127 B2 JP 5712127B2
Authority
JP
Japan
Prior art keywords
section
storage
free
sections
subsections
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.)
Active
Application number
JP2011516712A
Other languages
English (en)
Other versions
JP2011527048A (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

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 (12)

  1. 異なる複数の物理記憶デバイス群に対応付けられ記憶空間を構成する連続的な複数の記憶ブロックの各々についてフリーか否かの状態指標を記憶ブロックの並び順に有するフリーブロックオブジェクトにおける2以上の状態指標をポインタから特定される状態指標から不連続的に参照することにより、異なる2以上の物理記憶デバイス群に分散されている必要数のフリー記憶ブロックを検索し、前記ポインタを次の検索で参照される状態指標が特定されるよう維持するステップと、
    前記検索によって得られた必要数のフリー記憶ブロックの各々をデータの書込み先として使用するステップと
    を包含する、方法。
  2. 前記フリーブロックオブジェクトは、連続した複数のセクションに論理的に分割されており、
    各セクションに、連続した2以上の記憶ブロックが対応しており、
    前記検索するステップでは、参照先セクションがセクションの並び順と異なる順序となるよう状態指標を参照する都度に参照先セクションを切り替えることで、前記必要数のフリー記憶ブロックを不連続的に検索する、
    請求項1に記載の方法。
  3. 前記複数のセクションは、複数の仮想記憶構成体と関連付けられる、
    請求項2に記載の方法。
  4. 前記複数の仮想記憶構成体の各々は、物理記憶デバイス群に基づくストライプセットであり、
    1つのストライプセットに2以上のセクションが関連付けられており、
    前記検索するステップでは、参照先セクションが属するストライプセットが切り替わるよう状態指標を参照する都度に参照先セクションを切り替えることで、前記必要数のフリー記憶ブロックを不連続的に検索する、
    請求項3に記載の方法。
  5. 各セクションをいくつかのサブセクションに論理的に分割するステップをさらに包含し、
    (1)前記検索するステップは、前記セクションの前記サブセクションを通して不連続的に検索するステップを包含し、かつ/または、
    (2)前記セクションは、前記サブセクションが異なるセクションにおいて異なるサイズになり得るように、等しい数のサブセクションに論理的に分割され、かつ/または、
    (3)前記セクションは、異なるセクションが異なる数のサブセクションを有することができるように、等しいサイズのサブセクションに論理的に分割され、かつ/または、
    (4)前記セクションの前記サブセクションを通して不連続的に検索するステップは、別のセクションに移る前に、特定のセクションの中の1つのサブセクションを通して検索するステップを包含する、
    請求項2乃至4のうちのいずれか1項に記載の方法。
  6. 前記記憶空間に2以上の記憶ブロックが追加されたことにより前記フリーブロックオブジェクトに新しいセクションが追加された後の前記検索するステップでは、所定の閾値または条件に到達するまで、前記追加されたセクションにおける2以上の状態指標を連続的に参照することにより前記必要数のフリー記憶ブロックのうちの少なくとも1つを検索する、
    請求項2乃至5のうちのいずれか1項に記載の方法。
  7. 異なる複数の物理記憶デバイス群に対応付けられ記憶空間を構成する連続的な複数の記憶ブロックの各々についてフリーか否かの状態指標を記憶ブロックの並び順に有するフリーブロックオブジェクトを記憶するメモリと、
    前記フリーブロックオブジェクトにおける2以上の状態指標をポインタから特定される状態指標から不連続的に参照することにより、異なる2以上の物理記憶デバイス群に分散されている必要数のフリー記憶ブロックを検索し、前記ポインタを次の検索で参照される状態指標が特定されるよう維持し、前記検索によって得られた必要数のフリー記憶ブロックの各々をデータの書込み先として使用するプロセッサと
    を備える計算機。
  8. 前記フリーブロックオブジェクトは、連続した複数の連続セクションに論理的に分割れており、
    各セクションに、連続した2以上の記憶ブロックが対応しており、
    前記プロセッサは、参照先セクションがセクションの並び順と異なる順序となるよう状態指標を参照する都度に参照先セクションを切り替えることで、前記必要数のフリー記憶ブロックを不連続的に検索する、
    請求項7に記載の計算機。
  9. 前記複数のセクションは、複数の仮想記憶構成体と関連付けられる、
    請求項8に記載の計算機。
  10. 前記複数の仮想記憶構成体の各々は、物理記憶デバイス群に基づくストライプセットであり、
    1つのストライプセットに2以上のセクションが関連付けられており、
    前記プロセッサは、参照先セクションが属するストライプセットが切り替わるよう状態指標を参照する都度に参照先セクションを切り替えることで、前記必要数のフリー記憶ブロックを不連続的に検索する、
    請求項9に記載の計算機。
  11. 前記プロセッサは、各セクションをいくつかのサブセクションに論理的に分割するようにさらに構成され、
    (1)前記プロセッサは、前記セクションの前記サブセクションを通して不連続的に検索するように構成され、かつ/または、
    (2)前記セクションは、前記サブセクションが異なるセクションにおいて異なるサイズになり得るように、等しい数のサブセクションに論理的に分割され、かつ/または、
    (3)前記セクションは、異なるセクションが異なる数のサブセクションを有することができるように、等しいサイズのサブセクションに論理的に分割され、かつ/または、
    (4)前記プロセッサは、別のセクションに移る前に、特定のセクションの中の1つのサブセクションを通して検索するように構成されている、
    請求項8乃至10のうちのいずれか1項に記載の計算機。
  12. 前記プロセッサは、前記記憶空間に2以上の記憶ブロックが追加されたことにより前記フリーブロックオブジェクトに新しいセクションが追加された後の検索では、所定の閾値または条件に到達するまで、前記追加されたセクションにおける2以上の状態指標を連続的に参照することにより前記必要数のフリー記憶ブロックのうちの少なくとも1つを検索する、
    請求項8乃至11のうちのいずれか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 2008-06-30
US12/164,745 US9778882B2 (en) 2008-06-30 2008-06-30 Dynamic write balancing in a data storage system
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 JP2011527048A (ja) 2011-10-20
JP5712127B2 true 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
CN104956318B (zh) * 2013-02-01 2018-05-18 日立数据系统工程英国有限公司 用于在数据存储系统中实现存储的细粒度、可伸缩分配的方法和装置
US9330055B2 (en) * 2013-06-04 2016-05-03 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications

Family Cites Families (23)

* 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
US5615352A (en) 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
JP3371044B2 (ja) 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
JPH08320821A (ja) 1995-05-25 1996-12-03 Matsushita Electric Ind Co Ltd ファイルシステムのファイル編集装置
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
US7899989B2 (en) 2005-11-04 2011-03-01 Oracle America, Inc. Method and system for using a block allocation policy
JP4890033B2 (ja) 2006-01-19 2012-03-07 株式会社日立製作所 記憶装置システム及び記憶制御方法
US7949847B2 (en) 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US7631155B1 (en) * 2007-06-30 2009-12-08 Emc Corporation Thin provisioning of a file system and an iSCSI LUN through a common mechanism

Also Published As

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

Similar Documents

Publication Publication Date Title
US9448886B2 (en) Flexible data storage system
JP6200886B2 (ja) フラッシュストレージアレイにおける論理セクタマッピング
JP6240071B2 (ja) ストレージシステムにおけるマッピングテーブルを効果的に管理するコンピューターシステムおよびその方法
JP6124902B2 (ja) ストレージシステムにおける可変長符号化
US10223375B2 (en) Handling data extent size asymmetry during logical replication in a storage system
US8347004B2 (en) Systems and methods for compression of data for block mode access storage
JP5068252B2 (ja) ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術
US7194579B2 (en) Sparse multi-component files
US20150227564A1 (en) Preserving past states of file system nodes
WO2012042792A1 (en) Storage system
US9021222B1 (en) Managing incremental cache backup and restore
US9075754B1 (en) Managing cache backup and restore
CN107615252A (zh) 横向扩展存储系统中的元数据管理
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
KR102460568B1 (ko) 대형 키 밸류 객체들을 저장하는 시스템 및 방법
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