JP2013143124A - メタデータの永続化のための方法 - Google Patents

メタデータの永続化のための方法 Download PDF

Info

Publication number
JP2013143124A
JP2013143124A JP2012089827A JP2012089827A JP2013143124A JP 2013143124 A JP2013143124 A JP 2013143124A JP 2012089827 A JP2012089827 A JP 2012089827A JP 2012089827 A JP2012089827 A JP 2012089827A JP 2013143124 A JP2013143124 A JP 2013143124A
Authority
JP
Japan
Prior art keywords
metadata
extent
data
information
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012089827A
Other languages
English (en)
Inventor
Bhatta Vigneshwara
ブハッタ ヴィグネシュワラ
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.)
LSI Corp
Original Assignee
LSI 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 LSI Corp filed Critical LSI Corp
Publication of JP2013143124A publication Critical patent/JP2013143124A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】トランザクション用にメタデータ・ディスク構成内のマップ・エクステントおよびアンマップ・エクステントの自動更新を提供する。
【解決手段】トランザクションは、マップ・エクステントの変更およびアンマップ・エクステントの変更を含む。マップ・エクステントの変更は、10MBのメタデータ・データディスク領域のどこでも起こり得るし、アンマップ・エクステントの変更も同様である。ライト・ジャーナルは、すべての移行に追加される。移行ごとにトランザクションが作成され、トランザクションはマップ変更およびアンマップ変更を含む。リブート後、ライト・ジャーナルが適用される。より優れたデータの整合性を提供するために、ブロック・レベルのシーケンス番号、ブロック番号およびCRCが2次コピーおよび1次コピー用に維持される。
【選択図】図1

Description

階層的記憶管理(HSM)は、高コスト記憶媒体と低コスト記憶媒体−ホット層とコールド層の間で、データを自動的に移動させるデータ記憶技法である。HSMシステムは、ハードディスク・ドライブ・アレイなどの高速記憶装置が、光ディスクおよび磁気テープ・ドライブなどの低速装置よりも、(格納バイト当たりで)高価であるために存在する。HSMシステムは、大容量の企業データを低速装置に格納し、次いで必要なときにデータを高速ディスク・ドライブにコピーする。事実上、HSMは、高速ディスク・ドライブを低速大容量記憶装置用のキャッシュに変えてしまう。HSMシステムは、データの使われ方を監視し、どのデータが安全に低速装置へ移動できるか、および、どのデータが高速装置に留まるべきかに関して最良の推測を行う。通常のHSMのシナリオでは、頻繁に使用されるデータファイルはディスク・ドライブに格納されるが、一定時間、通常数ヶ月使用されないと、最終的にテープに移行される。ユーザがテープ上にあるファイルを再び使用するときは、そのファイルは自動的にディスク記憶装置に戻される。HSMの利点は、格納データの総量が、利用可能なディスク記憶装置の容量よりもはるかに大きくなり得ることであるが、ほとんど使用されないファイルだけがテープ上にあるため、ほとんどのユーザは通常いかなる減速にも気付くことはない。HSMは階層型記憶装置と呼ばれることもある。HSM(最初はDFHSM、現在はDFSMShsm)は、データ記憶装置のコストを削減し、低速媒体からのデータの検索を単純化するために、IBMにより彼らのメインフレーム・コンピュータに初めて実装された。ユーザは、データがどこに格納されたか、およびそれをどのように取り戻すかを知る必要がなく、コンピュータが自動的にデータを検索する。ユーザにとっての唯一の相違は、データが戻される速度であった。後に、IBMは、HSMを彼らのAIXオペレーティング・システムに移植し、次いでSolaris、HP−UXおよびLinuxなどの、他のUnixライクなオペレーティング・システムに移植した。また、HSMは、DECのVAX/VMSシステムおよびAlpha/VMSシステムに実装された。最初の実装日時は、VMSシステム実装マニュアルまたはVMS製品記述パンフレットから容易に特定されるべきである。最近、シリアルATA(SATA)ディスクの開発が、3段式HSM(データが高性能なファイバチャネル・ストレージ・エリア・ネットワーク・デバイスから、若干低速だがかなり安価な、合計数テラバイト以上のSATAディスク・アレイに移行され、次いで最終的にSATAディスクからテープに移行される)の大きな市場を創出した。HSMにおける最新の開発は、ハードディスク・ドライブおよびフラッシュメモリを用いるものであり、フラッシュメモリはディスクより30倍を超えて高速であるが、ディスクはフラッシュメモリよりかなり安価である。
したがって、本発明の実施形態は、階層ドライブ・システムのためのスワッピング処理において、メタデータを永続化する方法を含むことができる。この方法は、カレント・トランザクション・エントリを作成することと、トランザクション・エントリへのメタデータの変更、すなわちマップ情報およびアンマップ情報を含むエクステント情報を追加することと、ライト・ジャーナルがカレント・トランザクション・エントリをライト・ジャーナル内の次の空きエントリ位置へ書き込むことにより、トランザクション・エントリをメタデータのディスク領域にフラッシュすることと、影響を受けたブロック用のカレント・トランザクションのメタデータ情報に基づいて、メタデータ・モジュールがメタデータ領域を更新することを含むことができる。
さらに、本発明の実施形態は、階層ドライブ・システムの階層間でデータを移動させるときにメタデータを永続化するためのシステムを含むことができる。このシステムは、ホスト・コンピュータと、メタデータ・モジュール、すなわち複数のエクステントの情報を含むモジュールと、ライト・ジャーナルとを含むことができる。カレント・トランザクション・エントリがホスト・コンピュータによって作成され、エクステント情報がトランザクション・エントリに追加される。トランザクション・エントリがメタデータ・モジュール内のメタデータにフラッシュされる。トランザクションがライト・ジャーナル内の待ち行列に入れられ、ライト・ジャーナルがカレント・トランザクション・エントリを次の空きエントリ位置に書き込む。メタデータ・モジュールがカレント・トランザクションのメタデータ情報に基づいてメタデータを更新し、影響を受けたあらゆるデータのブロックをフラッシュする。
階層ドライブの構成を示す図である。 仮想のマップ・エクステントおよびアンマップ・エクステントを示す図である。 マップ・エクステント・テーブルおよびアンマップ・エクステント・テーブルを示す図である。 TD構成の例を示す図である。 図4aの初期マップ・エクステント・メタデータの詳細を示す図である。 図4aの初期アンマップ・エクステント・メタデータの詳細を示す図である。 図4bおよび図4cにおいてTDエクステント0をアンマップ・エクステントにホット・スワップするメタデータ・エントリの変更を示す図である。 TDエクステント2をアンマップ・エクステントにホット・スワップするメタデータ・エントリの変更を示す図である。 TDエクステント17をコールド・スワップするメタデータ・エントリの変更を示す図である。 TDエクステント0をコールド・スワップするメタデータ・エントリの変更を示す図である。 TDエクステント2をコールド・スワップするメタデータ・エントリの変更を示す図である。 メタデータ設計のデータ構造を示す図である。 ディスク上のメタデータのデータ・フォーマットを示す図である。 ディスク上のメタデータの構成を示す図である。 メタデータ・モジュールと他のモジュールとのインタフェースを示す図である。 スワップ処理用のトランザクション・エントリの状態図である。
概念的に、HSMはほとんどのコンピュータのCPUにおいて見られるキャッシュと似ており、ほとんどのコンピュータのCPUでは、非常な高速で動作する少量の高価なSRAMメモリが、頻繁に使用されるデータを格納するために使用されるが、新しいデータをロードしなければならないとき、最も長い間使われていないデータが、低速だが非常に大きなメインDRAMメモリへと移される(evict)。
データは多くの理由で移行される。いくつかの理由は情報の価値の変化に関係しており、他の理由はさまざまな基本原理に関係している。
1TBのホット層サイズ用のメタデータ(マップ・エクステントおよびアンマップ・エクステント)を保持するために、メタデータは、一般に、一定の大きさをもつホット層の仮想ドライブ(VD)の内部に保持される。メタデータ(マップおよびアンマップ)は、スワッピング処理中、ホット層VDの領域内部のどこでも変更することができる。リブート後のデータの整合性を維持するために−スワップ処理では−、マップ再配置情報およびアンマップ情報は、原子的な方式でディスク領域の内部に維持(永続化)されるべきである。このことは、マップ情報が更新されアンマップ情報が更新されないと、または一部のマップ情報が更新されると、データ破壊が起きることを意味する。256Kのブロックがメタデータをディスクに書き込むために利用されると、データ破壊が続いて起こり得る。スワップ処理ごとにマップ・データおよびアンマップ・データをディスクに書き込むことは、全領域を更新する必要があるので、領域の無駄な使用を伴う。ホット層のライフサイクルは、全領域への継続的な書き込みが原因で減少する。
したがって、本発明の実施形態は、階層化のためのシステムおよび方法、たとえばLSI製MegaRAIDカード内部のLSI製Cachecadeのシステムおよび製品を介した階層化のためのシステムおよび方法を含むことができる。この実施形態は、PCIベースのRAIDアダプタ内部の階層化を含む。階層ドライブ(TD)を作成することができ、これはホストからは仮想ドライブ(VD)のように見える。TDの内部で、データは、SAS、SATAハードディスク(コールド層)などの低速ドライブか、SAS、SATA SSDドライブ(ホット層)のような比較的高速なドライブのどちらかにコピーされる。TD上のIOは、そのアクセスがホストの読み書き性能の加速を必要とするなら、ホット層のドライブに移動する。SSDドライブを性能向上に利用することが可能な場合、DRAMへのデータ・キャッシングなどのさまざまな方法があり得るが、高速記憶媒体の容量は、ユーザには利用可能でない可能性がある。SSDの容量はTDに含まれ、階層化はホストのIO性能を加速させる。CachecadeおよびLSI製MegaRAIDカードは例示目的で使用されるので、これらより性能の高いものにも適用可能であることを当業者は理解するであろう。
本発明の実施形態において、データは、エクステントと呼ばれるデータ・ユニットを単位として、階層間を移動する。エクステントは、階層化処理で使用される連続ブロックのデータを含むデータ・セットである。コールド層データは、より少ない頻度でアクセスされ、そのため当分の間比較的重要ではないデータであると考えられ得るデータである。ホット層データは、より高い頻度でアクセスされ、そのため当分の間比較的重要なデータであると考えられ得るデータである。階層化モジュールは、階層ドライブの相異なる階層間でデータをスワップする。1MBのエクステント・サイズは、移動のデータ・ユニットとして使うことができ、TDのエクステントの再配置された位置(マップ・データおよびアンマップ・データ)を保持するためにメタデータ・インタフェースを使用する。階層化機能は、2つの基本的なスワップ処理−コールド・スワップおよびホット・スワップ−を有する。スワップ処理は、アンマップ領域−ホット層上またはコールド層上であり得る−からアンマップ・エクステントを取り出し、ホット層またはコールド層の元の位置からデータを移動し、マップされた新しい位置を更新し、元のエクステントをアンマップされたとして更新する。コールド・スワップ処理は、ホット・エクステントからコールド・エクステントへデータを移動し、このデータ移動に関連したマップ・メタデータ・セクションおよびアンマップ・メタデータ・セクションを更新する。コールド・スワップでは、コールド層のアンマップ領域が使用される。ホット・スワップ処理は、コールド・エクステントからホット・エクステントへデータを移動し、このデータ移動に関連したマップ・メタデータ・セクションおよびアンマップ・メタデータ・セクションを更新する。ホット・スワップでは、ホット層のアンマップ領域が使用される。
本発明の実施形態において、3つのタイプのエクステントが存在する。仮想エクステントは、コールド層エクステントのトラッキング情報を記録するために利用される。マップ・エクステントは、ホット層のマップ情報を保持するために利用され、アンマップ・エクステントは、TDのアンマップ・エクステント情報を保持するために利用される。TDホット層サイズの5%が、TDの作成中、アンマップ・エクステント用に確保される。この5%はユーザが利用することはできない。移行後、このアンマップ領域は、コールド層領域またはホット層領域の中に存在することができる。このように、全体としてTDサイズの5%がアンマップ・エクステント用に確保される。スワップされるエクステントは、反対の層の上のアンマップ・エクステントにコピーされる(たとえばホット・エクステントがアンマップ・コールド・エクステントに移動する)。このことは、スワップ処理の回数を削減し、データ破壊を回避する。たとえ停電がスワップ処理の後に発生しても、メタデータがマップ位置およびアンマップ位置に更新されるまで、データはその元の位置に置かれる。アンマップ・エクステント用に確保される空き領域の割合は、性能要求に応じて変化することができる。
本発明の実施形態において、1TBホット層サイズ用のメタデータ(マップ・エクステントおよびアンマップ・エクステント)を保持するために、約10MBが必要になる。そのメタデータは、ホット層VDの内部に保持される。メタデータのディスク構成は、ヘッダ、ジャーナル領域、マップ領域およびアンマップ領域を有する。メタデータ(マップおよびアンマップ)の変更は、スワップ処理に基づいて、ホット層VDの10MB領域内部のどこでも起こり得る。スワップ処理では、リブート後のデータの整合性を保証するために、マップ再配置情報およびアンマップ情報は、原子的な方式でディスクの内部に永続化されるべきである。このことは、マップ・データが更新されアンマップ・データが更新されないと、またはマップ・データが部分的に更新されると、データ破壊が起きるであろうことを意味する。本発明の実施形態においては、スワップ処理ごとにトランザクションが作成される。このトランザクションは、マップ・エクステントおよびアンマップ・エクステントを更新する前に、ジャーナル領域に書き込まれる。
図1は、階層ドライブの構成図である。階層ドライブ100は、複数のドライブ・レベル110を示す。TDはVD上に作成され、新しい論理ドライブとしてホストに紹介される。VDの作成は当技術分野では既知である。TDの最上層は、コールド層またはコールドVDを表す。本発明の実施形態においては、複数のコールドVD120が存在する。TDの最下層は、ホット層またはホットVDを表す。本発明の実施形態においては、複数のホットVD130が存在する。コールドVD120とホットVDの間には、ポリシーの基本設定に応じて重要度にコールドからホットまでの幅がある、複数の中間VD140が存在する。
データの移行ごとにトランザクションが作成される。本記述で説明したように、このトランザクションは、マップ変更およびアンマップ変更を含むことができる。新しいトランザクションは、スワップ処理ごとに作成され得る。トランザクションは、マップ・エクステント変更およびアンマップ・エクステント変更を含む。ライト・ジャーナルがすべての移行に追加され得る。リブート後、ライト・ジャーナルは、メモリ内のメタデータ領域およびメタデータのディスク領域に適用される。データの整合性を向上させるために、ブロック・レベルのシーケンス番号およびCRCを、2次コピーおよび1次コピー用に維持することができる。
メタデータ・マネージャは、メタデータを1つずつまたはサイズ256Kの連続ブロックで、ディスク上に書き込む。ブロックのサイズは、ホット層の仕様に応じた性能要求のために、増加または減少させることができる。トランザクションが複数のブロックにわたって広がると、停電が発生した場合メタデータは整合性のない状態になり、データ破壊をまねく可能性がある。メタデータ・ジャーナルを実装することにより、トランザクション・レコードは、永続的な記憶領域、たとえばメタデータ領域内に確保された空き領域に記録され、ブートアップ中にジャーナル・エントリを適用することができ、それによってメタデータ更新の自動性を実現することができる。本発明の実施形態においては、ジャーナルのコピーが1つだけ維持される。ジャーナル・エントリが利用できない、またはその他の方法で読むことができないと、TD全体がオンラインにならない。
図2は、仮想のマップ・エクステントおよびアンマップ・エクステントを示す図である。コールドVD120は、少なくとも1つであって、複数の可能性もある仮想エクステント122を含む。これらの仮想エクステント122は、1MBのエクステント・サイズになることができ、ホット・スワップ用に記録することができる。ホットVD130は、少なくとも1つであって、複数の可能性もあるマップ・エクステント132を含む。これらのマップ・エクステント132は、1MBのエクステント・サイズとすることができる。マップ・エクステント132は、移行後コールドVDエクステント用にマップされるか、または初期ボリューム作成中にホットVDエクステント用にマップされる。コールドVD120とホットVD130はそれぞれ、少なくとも1つであって、複数の可能性もあるアンマップ・エクステント124と134を含む。アンマップ・エクステント124と134は、1MBのエクステント・サイズとすることができる。アンマップ・エクステント124と134は、スワップ(ホットまたはコールド)処理用に使用することができる。TDホット層サイズの5%がアンマップ・エクステント用に確保される。
図3は、マップ・エクステント・テーブルおよびアンマップ・エクステント・テーブルを示す図300である。マップ・エクステント・テーブル310は、ホットTDエクステント・インデックス番号312、ソースTD整列エクステント314およびリンクTD整列エクステント番号316を含む。アンマップ・エクステント・テーブル320は、ホットTDエクステント・インデックス番号322、LD番号324およびLDエクステント番号326を含む。
初期構成が作成されるとき、ソースTD整列エクステント314はTD整列エクステント番号312を含むことができ、リンクTD整列エクステント番号316は無効になる。アンマップ・エクステント・テーブル320は、ホスト・データを何も有していないTDエクステントを含む。TDホット層サイズの5%がアンマップ・エクステント用に確保され、この5%はTDの作成中ユーザが利用することはできない。移行後、アンマップ領域はコールド層またはホット層に位置することができる。アンマップ・エクステント・テーブルのサイズは、LDターゲット番号およびLDエクステント番号の代わりに、TD整列エクステントを保持することによって削減することができると理解される。
コールド・スワップ処理およびホット・スワップ処理は、バックグラウンド処理である。コールド・スワップは、ホットVDエクステント領域からアンマップ・コールド・エクステント領域へのデータの移行であり、それに応じてマップ・エクステントおよびアンマップ・エクステント用のメタデータを更新する。同様に、ホット・スワップは、コールド層からホット層へのデータの移行であり、メタデータ情報を更新する。現在ホット層にあるコールド層の線形マップ・エクステント・データを、システムがコールド層に戻したい場合、コールド層の元の線形マップ位置に戻される。たとえば、15MBのコールド層および17MBのホット層を有するTDを考察されたい。構成を理解するために、2つのアンマップ・エクステントを、1つの別のアンマップ・エクステントになるように結合する。1TBのホット層サイズには、18MBのメタデータが必要とされる(マップ・エクステント用に8MB、アンマップ・エクステント用、1次データおよび2次データそれぞれのヘッダ用に410KB)。図4aはTD構成の例である。TD構成400は、TD整列エクステント番号410、エクステント情報420およびLD情報430の列から構成される。TDのサイズは、VD(仮想エクステント440、マップ・エクステント450、アンマップ・エクステント460およびメタデータ470)のサイズの合計からアンマップ・エクステント460のサイズおよびメタデータのサイズを引いたものである。30MBである図4aのTDの場合、TDサイズは33MB−2MB−1MB=30MBである。
図4bは、図4aの初期マップ・エクステント・メタデータの詳細を示す。ソースTD整列番号410が図4aのソースTD整列番号(16〜29)に対応する。マップ・インデックス412は、0から15までである。図4cは、図4aの初期アンマップ・エクステント・メタデータの詳細を示す。アンマップ・インデックス412は、0から1までである。
図4dは、図4bおよび図4cのTDエクステント0をアンマップ・エクステントにホット・スワップする、エントリ変更を示す。412のインデックス14は、図4bのインデックス14と関連しており、412のインデックス0は、図4cのインデックス0と関連している。
図4eは、アンマップ・エクステントへのTDエクステント2のホット・スワップを示す。マップ・エントリの変更は、412のインデックス15に示される。アンマップ・エントリの変更は、412のインデックス1に示される。
図4fは、TDエクステント17のコールド・スワップを示す。マップ・エントリの変更は、412のインデックス1および14に示される。アンマップ・エントリの変更は、412のインデックス0に示される。
図4gは、TDエクステント0のコールド・スワップを示す。マップ・エントリの変更は、412のインデックス14および15に示される。アンマップ・エントリの変更は、412のインデックス1に示される。この例には、2つの移行処理が存在する。第1の処理は、既存のコールド・データを次の使われていないコールド空き領域へ移動させるというものである。第2の処理は、TDエクステント0のホット領域をコールド領域へ移動させるというものである。
図4hは、TDエクステント2のコールド・スワップを示す。示されている例では、TDエクステント2は現在ホットに存在する。マップ・エントリの変更は、412のインデックス1および15に示される。アンマップ・エントリの変更は、412のインデックス0に示される。この例には、2つの移行処理が存在する。第1の処理は、リンク・エクステントをその次のアンマップ・コールド位置へ移動させるというものである。コールドにはアンマップ位置がないため、リンク・エクステントは、他のどこかへ移動する代わりにその元の位置へ行く。TDエクステント17がホット・エクステント14へ移動し、コールド・エクステント2のその元の位置へのスワップが回避されると、空きホット・エクステントの数が失われる可能性がある。本発明の目的は、コールド・エクステント2の移動によっては満足されない。エクステント17をその元の位置へ移動させる代わりに、TDエクステント17はホット14へ移動するので、処理を複雑にする。本発明の本実施形態においては、エクステントがそのマップ位置からその元の(ホットまたはコールド)位置へ移動するとき、処理は単純に保たれる。第2の処理は、TDエクステント2をその元のコールド位置へ移動させるというものである。
本発明の実施形態において、仮想エクステントは、ホット領域への移動用のアクセス・カウントに基づいて記録される。使用されるアクセス・カウントは、トラッキング情報または他の情報になることができる。同様に、マップ・エクステント(ホット領域)は、コールド領域への移動用のアクセス・カウントに基づいて記録される。仮想エクステントの用意ができると、すなわちエクステントがホット領域へ移動するために十分な数のアクセス・カウントを取得すると、マップ・エクステントの割り当て後ヒート・インデックス・バケットへ入る資格が与えられる。最長時間未アクセス・リストがエクステントのアクセスを記録する。
図5は、メタデータ設計のデータ構造を示す。メタデータ設計500は、マップ構造510、アンマップ構造520および移行モデル530を含む。510の構造体tm_metadata_mapped_extent_data_tは、移行コンポーネントからメタデータ・モジュールへデータを渡すために使用される。また、それはマップ・エクステント情報用のディスク・データ・フォーマット上にある。520の構造体tm_metadata_unmapped_extent_data_tは、移行コンポーネントからメタデータ・モジュールへデータを渡すために使用され、また、アンマップ・エクステント情報用のディスク・データ・フォーマット上にある。
構造体tm_metadata_extent_info_tは、「プット」および「ゲット」の処理用に、移行マネージャから渡される。前に述べたように、metadata_table_indexフィールドは、マップ配列またはアンマップ配列へのインデックスを有する。フィールドis_mapped_extentは、移行モジュールがマップ・エクステント情報を要求すると、「真」を含む。mapped_dataはマップ・エクステント情報を有し、unmapped_extentはアンマップ・エクステント情報を含む。移行モジュールは、migration_tagを渡す。その後、移行モジュールは、メタデータの更新をキャンセルするために、migration_tagを使用することができる。これはロールバック・セマンティクスを可能にする。
図6は、ディスク上のメタデータのデータ・フォーマットを示す。オンディスク・データ構造600は、マップ構造610、マップ・ブロック用およびアンマップ・ブロック用のブロック・ヘッダ構造620、メタデータ・ヘッダ構造630、ジャーナル構造640、ジャーナル・ブロック・ヘッダ構造650ならびにアンマップ構造660を含む。
図7は、ディスク上のメタデータの構成を示す。構成700は、メタデータ・ヘッダ・ブロック710、ライト・ジャーナル領域720、マップ・エクステント領域730およびアンマップ・エクステント領域740を含む。TD永続データ(DDFデータ)は、VD内部のメタデータ領域へのポインタを有する。このポインタは、図7ではXと呼ばれる。710のtm_metadata_hdr_tは、メタデータ構成の開始時に確保される。次の256Kブロックがライト・ジャーナル720用に確保され、tm_metadata_journal_block_hdr_tは、図7に示すようにX+256Kに書かれる。その後、tm_metadata_journal_extent_info_tのメタデータ配列は永続化される。メタデータ・マップ・セクションは、X+256K+256Kから始まり、すべての256Kブロックは、tm_metadata_block_hdr_tから始まる。tm_metadata_block_hdr_tは、そのブロックに関連するCRCおよびシーケンス番号を有する。アンマップ・セクションの残りの部分は、tm_metadata_unmapped_extent_data_tの配列としてマップされる。ブロック・サイズである256Kは一例として使用されている。これは、SSDドライブの場合、性能が向上しているからである。しかしながら、より良い性能、書き込み耐久性および寿命のために選ばれた、さまざまなVDサイズに最適化するために、異なるブロック・サイズが選択可能であることが理解される。すべてのブロックのシーケンス番号、CRC、マジック、ブロック番号は、リブート中、ブロック・エントリを検証するために利用される。1次記憶装置または2次記憶装置から正しいブロックが選択される。
メタデータ・ヘッダも、1次記憶装置または2次記憶装置を区別するため、かつメタデータ・ブロックを識別するために、マジック、番号のフィールドを有する。ヘッダは、マップ・エントリの数、アンマップ・エントリの数およびジャーナル開始アドレスを保持するためのフィールドを含む。フィールドtd_extent_sizeは、外部インポート用に使用される。
本発明の実施形態において、以下が図8のメタデータの処理である。
tm_metadata_init
本発明の実施形態において、これは、モジュール・レベルでのメモリおよび他の資源の初期化のために、システム・ブート中に呼び出される。
Tm_metadata_fini
本発明の実施形態において、これは、モジュール・レベルでのメモリおよび他の資源のクリーンアップのために、システム・シャットダウン中に呼び出される。
Tm_metadata_td_init
本発明の実施形態において、これは、TD内のホット層の一部であるVDを識別する。図7で言及したように、ホット層を形成するVDの内部に、メタデータの格納用空き領域を切り出す。作成時のTDサイズにかかわらず、TDごとに1TBまでのホット層2次記憶装置をサポートするために、ホット層上に十分な空き領域を事前に割り当てる。メタデータ・ヘッダは、コア・メモリで更新されるが、次のフラッシュが、ヘッダ、ジャーナル初期エントリおよびマップ/アンマップ初期エントリを一度フラッシュする。また、メモリのマップ、アンマップおよびジャーナル・バッファを割り当てることができる。
Tm_metadata_td_load
本発明の実施形態において、これは、TDがオンラインになったとき、またはリブート中に起動される。このアプリケーション・プログラミング・インタフェース(API)は、ヘッダ、ジャーナル・エントリ、マップ・エントリおよびアンマップ・エントリを含むオンディスク・メタデータ構成をメモリの中に読み込む。また、これは、ブロック・レベルのシーケンス番号を使用して、メタデータの最新コピーを選択する。さらに、メモリ内の正しいデータを得るために、開始インデックスから始まり終了インデックスまでのジャーナル・エントリを再適用する。1次コピーおよび2次コピーを、検証されたコア内コピーで更新する。最後に、メタデータ更新の完了を示すために、呼び出し元から渡されたコールバック・プロシージャを起動する。コールバックは、他のコードへの引数として渡される、実行可能コードへの参照、または1本の実行可能コードである。これによって、低レベルのソフトウェア層が、高レベル層で定義されたサブルーチン(または関数)を呼ぶことが可能になる。
Tm_metadata_td_get
本発明の実施形態において、これは、ロードが起動された後のエクステント情報を、呼び出し元に渡す。
Tm_metadata_td_put
本発明の実施形態において、ホット/コールド・スワップ処理の後、移行モジュールは、このAPIを使用して、メタデータのコア内領域のメタデータ変更を更新する。このモジュールは、カレント・トランザクションにエントリを追加する。
Tm_metadata_td_flush
本発明の実施形態において、さまざまなエクステントに対するプット処理を完了させた後、移行モジュールは、これを使用して、Tm_metadata_td_putを使用して渡されたメタデータを永続化するために、トランザクションを完了させる。移行モジュールは、カレント・トランザクションをライト・ジャーナル待ち行列に追加する。ディスク上のライト・ジャーナルの永続化が現在進行中でなければ、ライト・ジャーナルを開始する。おそらく、ライト・ジャーナルは、256Kのブロックを迅速に完了させる。ライト・ジャーナル・ブロックの完了後、トランザクションは、256Kブロック・サイズのメタデータ書き込みに移動する。変更されたブロックだけが、このトランザクションに書き込まれる。影響を受けたメタデータの更新を完了させた後、ライト・ジャーナルに保留中のトランザクションがあると、そのトランザクション用のジャーナル・エントリを開始する。特定のトランザクション用のすべての影響を受けたブロックを完了させた後、フラッシュ処理に渡されるコールバックを起動する。
Tm_metadata_td_quiesce
本発明の実施形態において、このAPIは、所与のTD上のすべてのメタデータ・マネージャの処理が完了し、かつ新しいメタデータの処理が開始されるようにスケジュールされていないことを、保証するために呼ばれる。また、このAPIは、バックエンドVDへのあらゆる未処理のIOが消去または終了されたことを保証するために、TDの削除時に起動され得る。すべての保留中の処理が完了した後、コールバックはコールバック引数付きで呼び出される。
Tm_metadata_td_delete
本発明の実施形態において、これは、マップ・エントリ、アンマップ・エントリおよびジャーナル・エントリ用の初期化中に割り当てられたメタデータ・バッファを解放する。
Tm_metadata_td_rollback
本発明の実施形態において、これは、移行モジュールに呼び出されて、migration_tagを渡したメタデータを削除する。
図9は、スワップ処理用のトランザクション・エントリの状態図である。スワップ処理900は、トランザクション用にメタデータを更新するステップを示す。トランザクションは、変更されるマップ・エントリおよびアンマップ・エントリを含むスワップ処理について作成される。第1のステップ910において、カレント・トランザクション・エントリがない場合、tm_metadata_put(プット)がトランザクションを作成する。次のステップ920において、プットがカレント・トランザクションに、エクステント情報エントリを追加する。次のステップ930において、フラッシュがトランザクションをジャーナル待ち行列に入れる。次のステップ940において、tm_metadata_flush(フラッシュ処理)がジャーナル・ライトを開始する。ステップ940のジャーナル・ライトは、ジャーナル・エントリおよびジャーナル・ブロック・エントリ945として図9に示される。次いで、この処理は、950でトランザクションをメタデータ・フラッシュ待ち行列に入れる。メタデータ・フラッシュ待ち行列の移動後、メタデータ・モジュールはトランザクションを取り出し、トランザクションのメタデータ情報に基づいてメタデータ領域(マップおよびアンマップ)のブロックを更新し、影響を受けたブロック960、965、970、975だけフラッシュする。CRCおよびシーケンス番号がすべてのブロックについて計算される。メタデータの1次領域および2次領域が更新される。メタデータのフラッシュが完了した後、980でスワップ処理が完了する。
リブート後、マップとアンマップ両方のメタデータ領域がディスクから読み込まれる。ジャーナル・トランザクション・エントリは、最古のジャーナル・エントリから順に適用される。すべてのブロック用のCRCが計算され、すべてのメタデータ・ブロック用のシーケンス番号が更新される。次いで、ジャーナル・メタデータ領域が、次の更新用に消去される。更新されたメタデータ・ブロックは、メタデータ領域で永続化される。
カレント・トランザクションをメタデータ・フラッシュ待ち行列に移動するステップ950の後、メタデータの更新中に停電が発生した場合、マッピング情報はライト・ジャーナル・エントリによって復旧される。930でカレント・トランザクションをメタデータにフラッシュするステップの後、ステップ940のジャーナル・ライトの前に停電が発生すると、メタデータ・エントリは存在しない。この場合、元のエクステントがデータを有する。
メモリ内の位置にデータを書き込むことは、潜在的に他の位置を整合性のないデータに預ける可能性がある。この問題は、異なるアドレス空間用の非並行メモリ構成を使用することによって解決することができ、そうでなければ、メモリ(またはその一部)は、マッピング変更時にフラッシュされなければならない。また、CRCは巡回冗長検査である。これは、生データへの偶発的な変更を検出するために、デジタル・ネットワークおよび記憶装置で一般に使用されるエラー検出コードである。これらのシステムに入力されるデータのブロックは、その中身を多項式除算した結果の余りに基づいて、短いチェック値コンポーネントを付加される。検索に際し、計算が繰り返され、チェック値が一致しないと、想定されるデータ破壊に対して修正処置を取ることができる。通常、「チェック」値は、データに何の情報も追加しないような冗長量であり、アルゴリズムの実装は比較的単純である。フラッシングおよびCRCの実装は、データの整合性を維持するために利用できる方法の例であることが、当業者によって理解される。更新シーケンス番号はデータの最新コピーを決定し、ブロック番号は追加データの整合性チェックを与え、1次および2次はブロック・レベルの障害から復旧するのを助ける。
本発明の前述した説明を、例示および説明を目的として提示してきた。前述の説明は、本発明のすべてを説明することや、本発明を開示した形そのものに限定することを意図したものではなく、他の修正形態および変形形態が上記教示に照らして実現可能であり得る。本実施形態は、本発明の原理およびその実際の応用を最適に説明するために選択かつ記載されており、したがって、考えられる特定の用途に適合されるさまざまな実施形態およびさまざまな修正形態において、当業者が本発明を最適に利用することが可能になる。従来技術によって制限される場合を除き、添付の特許請求の範囲が本発明の他の代替実施形態を含むと解釈されることが意図される。

Claims (5)

  1. 階層ドライブ・システムのためのスワップ処理においてメタデータを永続化する方法であって、
    カレント・トランザクション・エントリを作成し、
    前記トランザクション・エントリに、マップ情報およびアンマップ情報を含むエクステント情報と言われる、メタデータの変更を追加し、
    ライト・ジャーナルが前記カレント・トランザクション・エントリを前記ライト・ジャーナル内の次の空きエントリ位置へ書き込むことにより、前記トランザクション・エントリを前記メタデータのディスク領域にフラッシュし、
    影響を受けたブロック用の前記カレント・トランザクションのメタデータ情報に基づいて、前記メタデータ・モジュールが前記メタデータ領域を更新する、ことを含む方法。
  2. すべてのメタデータ・ブロック用のCRC、シーケンス番号およびブロック番号を計算すること、ならびに1次コピーおよび2次コピーを保持することをさらに含む、請求項1に記載の方法。
  3. 前記階層ドライブ・システムがRAIDシステムである、請求項1に記載の方法。
  4. トランザクション・エントリをフラッシュした後で階層ドライブへの停電が起きたときには、ライト・ジャーナルを介して前記マップ情報およびアンマップ情報を復旧することをさらに含む、請求項1に記載の方法。
  5. 階層ドライブ・システムの階層間でデータを移動するときにメタデータを永続化するシステムであって、
    ホスト・コンピュータと、
    複数のエクステントの情報を含むメタデータ・モジュールと、
    ライト・ジャーナルと、を含み、
    カレント・トランザクション・エントリが前記ホスト・コンピュータによって作成され、エクステント情報が前記トランザクション・エントリに追加され、前記トランザクション・エントリが前記メタデータ・モジュール内のメタデータにフラッシュされ、前記トランザクションが前記ライト・ジャーナル内の待ち行列に入れられ、前記ライト・ジャーナルが前記カレント・トランザクション・エントリを次の空きエントリ位置に書き込み、前記メタデータ・モジュールが、前記カレント・トランザクションのメタデータ情報に基づいて前記メタデータを更新し、影響を受けたあらゆるデータのブロックをフラッシュする、システム。
JP2012089827A 2012-01-12 2012-04-11 メタデータの永続化のための方法 Pending JP2013143124A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/348,799 US20130185503A1 (en) 2012-01-12 2012-01-12 Method for metadata persistence
US13/348,799 2012-01-12

Publications (1)

Publication Number Publication Date
JP2013143124A true JP2013143124A (ja) 2013-07-22

Family

ID=47044863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012089827A Pending JP2013143124A (ja) 2012-01-12 2012-04-11 メタデータの永続化のための方法

Country Status (6)

Country Link
US (1) US20130185503A1 (ja)
EP (1) EP2639710A2 (ja)
JP (1) JP2013143124A (ja)
KR (1) KR20130083356A (ja)
CN (1) CN103207883A (ja)
TW (1) TW201329714A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190049266A (ko) * 2017-11-01 2019-05-09 한국전자통신연구원 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244897A1 (en) * 2013-02-26 2014-08-28 Seagate Technology Llc Metadata Update Management In a Multi-Tiered Memory
CN103516549B (zh) * 2013-09-27 2018-03-27 浪潮电子信息产业股份有限公司 一种基于共享对象存储的文件系统元数据日志机制
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
US20160019224A1 (en) * 2014-07-18 2016-01-21 Commvault Systems, Inc. File system content archiving based on third-party application archiving rules and metadata
US10824362B2 (en) 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
CN107209720B (zh) 2015-04-02 2020-10-13 慧与发展有限责任合伙企业 用于页面高速缓存的系统及方法以及存储介质
US10459947B2 (en) * 2016-02-05 2019-10-29 International Business Machines Corporation Frequency dependent partial index
US10365891B2 (en) 2016-04-06 2019-07-30 International Business Machines Corporation Object storage support for tiered storage archive with removable media
CN106020726B (zh) * 2016-05-23 2019-11-26 联想(北京)有限公司 写入元数据的方法、设备、以及存储装置
RU2017104408A (ru) * 2017-02-10 2018-08-14 СИГЕЙТ ТЕКНОЛОДЖИ ЭлЭлСи Составные топологии хранения данных для объектов данных
US11029862B2 (en) * 2017-04-25 2021-06-08 Netapp, Inc. Systems and methods for reducing write tax, memory usage, and trapped capacity in metadata storage
US11113312B2 (en) * 2017-06-29 2021-09-07 Microsoft Technology Licensing, Llc Reliable hierarchical storage management with data synchronization
CN109726033B (zh) * 2017-10-31 2022-05-06 伊姆西Ip控股有限责任公司 提供raid数据保护的方法、数据存储系统和计算机可读介质
US11106378B2 (en) 2018-11-21 2021-08-31 At&T Intellectual Property I, L.P. Record information management based on self describing attributes
CN111435331B (zh) * 2019-01-14 2022-08-26 杭州宏杉科技股份有限公司 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN111461160B (zh) * 2019-11-11 2023-07-14 天津津航技术物理研究所 抗云雾、烟雾干扰红外成像导引头目标跟踪方法
US11579771B2 (en) 2020-05-12 2023-02-14 Seagate Technology Llc Data storage layouts
US11418247B2 (en) 2020-06-30 2022-08-16 Hewlett Packard Enterprise Development Lp High spatial reuse for mmWave Wi-Fi

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6606629B1 (en) * 2000-05-17 2003-08-12 Lsi Logic Corporation Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique
US6665814B2 (en) * 2000-11-29 2003-12-16 International Business Machines Corporation Method and apparatus for providing serialization support for a computer system
US20020165942A1 (en) * 2001-01-29 2002-11-07 Ulrich Thomas R. Data path accelerator with variable parity, variable length, and variable extent parity groups
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US6990667B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6862609B2 (en) * 2001-03-07 2005-03-01 Canopy Group, Inc. Redundant storage for multiple processors in a ring network
US8005792B2 (en) * 2004-05-14 2011-08-23 Oracle International Corporation System and method for managing versions of metadata
US20060259527A1 (en) * 2005-05-13 2006-11-16 Devarakonda Murthy V Changed files list with time buckets for efficient storage management
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20120010995A1 (en) * 2008-10-23 2012-01-12 Savnor Technologies Web content capturing, packaging, distribution
US8365082B2 (en) * 2008-10-23 2013-01-29 Savnor Technologies Llc Universal content referencing, packaging, distribution system, and a tool for customizing web content
US8788941B2 (en) * 2010-03-30 2014-07-22 Itxc Ip Holdings S.A.R.L. Navigable content source identification for multimedia editing systems and methods therefor
US9170892B2 (en) * 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190049266A (ko) * 2017-11-01 2019-05-09 한국전자통신연구원 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
KR102441997B1 (ko) 2017-11-01 2022-09-08 한국전자통신연구원 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법

Also Published As

Publication number Publication date
EP2639710A2 (en) 2013-09-18
CN103207883A (zh) 2013-07-17
US20130185503A1 (en) 2013-07-18
TW201329714A (zh) 2013-07-16
KR20130083356A (ko) 2013-07-22

Similar Documents

Publication Publication Date Title
JP2013143124A (ja) メタデータの永続化のための方法
US10521131B2 (en) Storage apparatus and storage control apparatus
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US8914597B2 (en) Data archiving using data compression of a flash copy
US9342256B2 (en) Epoch based storage management for a storage device
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US9990150B2 (en) Method to provide transactional semantics for updates to data structures stored in a non-volatile memory
US9471252B2 (en) Use of flash cache to improve tiered migration performance
US10078467B2 (en) Storage device, computer readable recording medium, and storage device control method
US11010091B2 (en) Multi-tier storage
US11520510B1 (en) Extending the lifespan of a flash-based storage device
US20230177069A1 (en) Efficient journal log record for copy-on-write b+ tree operation
US11868256B2 (en) Techniques for metadata updating and retrieval
US11880584B2 (en) Reverse range lookup on a unified logical map data structure of snapshots
US20210390048A1 (en) Method and system for facilitating log-structure data organization
US20240078179A1 (en) Efficient write-back for journal truncation
US11954352B2 (en) Techniques for lock contention reduction in a log structured system
US20230195576A1 (en) Resumable copy-on-write (cow) b+tree pages deletion
US20240078010A1 (en) Efficient incremental journal truncation policy
Khil et al. Hot and Cold Data Replacement Method for Hybrid Storage System