JP4776342B2 - ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法 - Google Patents

ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法 Download PDF

Info

Publication number
JP4776342B2
JP4776342B2 JP2005320312A JP2005320312A JP4776342B2 JP 4776342 B2 JP4776342 B2 JP 4776342B2 JP 2005320312 A JP2005320312 A JP 2005320312A JP 2005320312 A JP2005320312 A JP 2005320312A JP 4776342 B2 JP4776342 B2 JP 4776342B2
Authority
JP
Japan
Prior art keywords
data
original
mirror
based storage
snapshot
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.)
Expired - Fee Related
Application number
JP2005320312A
Other languages
English (en)
Other versions
JP2006146904A (ja
JP2006146904A5 (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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Publication of JP2006146904A publication Critical patent/JP2006146904A/ja
Publication of JP2006146904A5 publication Critical patent/JP2006146904A5/ja
Application granted granted Critical
Publication of JP4776342B2 publication Critical patent/JP4776342B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はストレージシステムに、より詳細には、ストレージシステムでオブジェクトレベルのスナップショットを生成することに関連する。
ストレージデバイス(例:磁気ディスク)は典型的にはデータをブロックベースで保存する。しかしながら、オブジェクトベース・ストレージデバイス(OSD)は、データをオブジェクトとして保存する。OSDでは、各オブジェクトはデータと属性部分で成る。属性部分は、例えば、データのサイズ、ユーザID情報等に関する情報より成る。属性としてオブジェクト中にデータのサイズを保持するので、オブジェクトサイズは可変にできる。現行のハードディスクドライブ(HDD)の如きストレージデバイスでは、これに反して、保存情報のサイズは通常固定である。
現行のスナップショット機構はストレージシステムのブロックレベルアドレス方式に基づいている。ホストコンピュータのファイルシステムが、ファイル名を相当するブロックアドレスに変換する。しかしながら、オブジェクトベース・ストレージデバイスでのオブジェクトはそのオブジェクトID(OID)で識別されるので、本システムでのスナップショットコピーは、ホストコンピュータがファイル名とスナップショットオブジェクトOID間の関係を管理する必要がある。更に、現行のOSDはコピー操作のインターフェースを持ち合わせていない。
従って、スナップショットコピーをオブジェクトベース・ストレージシステムで可能にするには、新コマンド又はスナップショット生成操作を処理する何らかのモジュールがストレージシステムの中に必要になる。
従って、オブジェクトベース・ストレージシステムにスナップショットコピーを実装する必要がある。
ホストデバイスとオブジェクトベース・ストレージシステムより成るシステムに於いて、オブジェクトレベルのスナップショットを生成するシステムと方法である。ホストデバイスは、第一のオブジェクト管理テーブル(OMT)とファイルシステムより成る。オブジェクトベース・ストレージシステムはホストデバイスに結合し、コントローラと一台以上のオブジェクトベース・ストレージデバイス(OSD)より成る。コントローラはスナップショットモジュールと第二のOMT、及びサービス発信サブシステムより成る。スナップショットモジュールは、ファイルシステム又はサービスプロッセサからのOSDコマンド、スプリットコマンド、及び専用コマンドを受信して処理する機能があり、OSD内にオリジナルとミラーオブジェクトを生成し、OSD内でスナップショット操作を開始する。第一のOMTは又メタデータサーバに実装しても良い。スナップショット操作はミラー操作か又は書き込み操作でのコピーである。第一と第二のOMTはファイル識別子(FID)、パーティションID(PID)、オブジェクトID(OID)、及びオブジェクト状態(ミラー又はスプリットの何れか)とスナップショットの世代番号の情報へのマッピングを維持する。本発明は、又、プライマリと差分ボリュームにも適用可能である。
ホストデバイスとオブジェクトベース・ストレージシステムより成るシステムに於いて、オブジェクトレベルのスナップショットを生成するシステムと方法である。
本発明は、又、プライマリと差分ボリュームにも適用可能である。
本発明は、本発明の非制限的事例の注釈つきの複数の図面を参照して更に詳細に説明され、以下の図面では、複数の見方の図面を通して、同じ部分には同じ参照番号を使用している。
ここに示す事項は、本発明の実施例を例示により図示する目的のものである。図面と共になされる説明で、本分野に造詣ある人にとっては、本発明が実際に如何に実施されるかが明確になる。
更に、本発明を明確に説明する為にブロック図形式で説明するが、本ブロック図の個別の実装は、本発明が実装されるプラットフォームに深く依存する。各具体例は、本分野に造詣ある人にとっては十分に想定される範囲内である。具体的詳細(例えば回路やフローチャート)を本発明の実施例を説明する為に使用するが、本分野に造詣ある人にとっては、このような具体的詳細とは離れて、本発明が実施できることは明らかである。最後に、本発明を実施するには、ハード配線回路やソフトウエア命令の如何なる組み合わせも使用可能であり、本発明はハード回路やソフトウエア命令の如何なる組み合わせにも制限されないことも明らかである。
本発明の実施例については、例示ホストユニット環境での例示システムブロック図を用いて説明するが、本発明の実施はこれに限定されない。即ち、本発明は他のタイプのシステム及び他のタイプの環境に於いても実施可能である。
本明細書で「一実施例」と呼ぶときには、その一実施例に関連して説明された特定の機能、構成、特性が本発明の少なくとも一つの実施例に含まれることを意味する。本明細書の各所で、「一実施例に於いて」なる用語が現れるが、これらは全てが同じ実施例を示すとは限らない。
本発明の実施例は、ストレージシステムでオブジェクトのスナップショットコピーを生成するシステムと方法に関連する。ユーザの指示に従ってストレージシステムは、本システム内の指定オブジェクトの一時点のイメージ(スナップショットオブジェクト)を生成する。本スナップショットオブジェクトは、ストレージコントローラが生成する、指定オブジェクトの物理的コピー又は仮想オブジェクトである。ストレージシステムは、スナップショットオブジェクトに固有のオブジェクトIDをアサインする為、ユーザはスナップショットオブジェクトから指定オブジェクトを区別することができる。本発明の以降の説明では、オブジェクトベース・ストレージシステムを用いて説明するが、本発明はオブジェクトベース・ストレージデバイスを備える如何なるストレージシステムにも適用可能である。更に、OBSDとOSDは共にオブジェクトベース・ストレージデバイスを示す。
図1は、本発明の一実施例による、オブジェクトベース・ストレージシステムに於いてスナップショットコピーを提供するシステムを図示する。本システムには、ホストコンピュータ1000を含み、本コンピュータは自らのホストバスアダプタ(HBA)1003とストレージシステム2000のホストインターフェース2004を通して、ストレージシステム2000に結合して稼動する。ホストコンピュータ1000にはCPU1001、メモリ1002、及びホストバスアダプタ(HBA)1003が存在する。ストレージシステム2000にはCPU2001、メモリ2002、キャッシュメモリ2003、ホストインターフェース2004、ディスクインターフェース2005、及びサービスプロッセサ(SVP)2006より成るディスクコントローラ2100と一台以上のストレージデバイス2200が存在する。本ストレージデバイス2200にはオブジェクトベース・ストレージデバイスが存在できる。ディスクコントローラ2100内の全てのデバイスは内部バスを通して互いに結合される。ディスクコントローラ2100はホストコンピュータ1000からの入出力要求を処理する。本入出力要求はオブジェクトベース・ストレージデバイスのコマンドに基づく。
ホストコンピュータ1000とストレージシステム2000のインターフェースはファイバチャネル(FC)、イーサネット(登録商標)等である。ディスクインターフェース2005は、ストレージデバイス2200とディスクコントローラ2100を結合する為に使用される。サービスプロッセサ2006は、ストレージシステム2000に結合して稼動し、ストレージシステム2000の構成を設定/変更する為に使用される。各ストレージデバイス2200は、オブジェクトベース・ストレージデバイスのコマンドに従い入出力要求を処理する。
メモリ2002は、入出力要求その他の操作を処理するプログラムを格納する為に使用される。CPU2001がメモリ2002に格納されたプログラムを実行する。キャッシュメモリ2003は、ホストコンピュータ1000からの書き込みデータをストレージデバイス2200に保存する前に一時的に保持し、又ホストコンピュータ1000から要求された読み出しデータを保持する。キャッシュメモリ2003はバッテリバックアップされた不揮発メモリでも良い。更に又、メモリ2002とキャッシュメモリ2003は同一メモリ内に共存してもよく、これも本発明の範囲内である。
図2は、本発明の一実施例に基づくシステムでのソフトウエア構成を図示する。ホスト1000はクライアント・サーバ システムのサーバコンピュータ、メインフレームコンピュータ又はストレージシステム2000に入出力要求を生成する他の如何なるタイプのコンピュータでも構わない。ホスト1000はファイルシステム1100とオブジェクト管理テーブル1200より成る。ファイルシステム1100はアプリケーション(図示していない)からファイル入出力要求を受け、ファイル属性とオブジェクト属性を管理し、オブジェクトベース・ストレージシステム2000にOSDコマンドを発行する。オブジェクト管理テーブル1200はオブジェクトの状態(例:ミラ−又はスプリット)及びスナップショットの世代番号に加えて、ファイル名等のファイル識別子(FID)、パーティションID(PID)、及びオブジェクトID(OID)等のマッピング情報を維持する。
ストレージシステム2000は、ディスクコントローラ2100と多数のOSD論理ユニット(OSD LU)より成る。ディスクコントローラ2100は、ホスト1000からのOSDコマンドを受信し処理する、例えば、スナップショットモジュールの如きソフトウエアを有する。スナップショットモジュール2110は、ディスクコントローラで稼動しオブジェクトのスナップショット(ある一時点のコピー)を生成するソフトウエアモジュールである。ディスクコントローラ2100は、更に、ホストデバイス1000のオブジェクト管理テーブル1200と同様なオブジェクト管理テーブル2400を有する。オブジェクト管理テーブル2400は、オブジェクトのPIDとOIDを管理する。本発明の一実施例では、ミラースナップショット機能が使用できる。
しかしながら、本発明の実施例では更に、コピーオンライトスナップショット方式も実装できる。ホスト1000又はSVP2300は、スナップショットモジュール2110にコマンドを発行して、スナップショット機構又はプロセスを起動できる。SVP2300は、ストレージシステム2000の構成を設定/変更する為に管理者によって使用されるコンピュータである。OSD LU2200はサービス発信サブシステム2120と一台以上のハードディスクドライブ2210より成る。更に、ストレージシステム2000には一式以上のOSD LUが存在できる。
サービス発信サブシステム2120は、OSDコマンドをハードディスクドライブ2210に発信するソフトウエアプログラムである。サービス発信サブシステム2120はディスクコントローラ2100に存在する。OIDをディスクの物理ブロック番号に変換する変換機構2130がディスクコントローラに存在すれば、オブジェクトを保存するデバイスはデータをブロックで保存する通常のハードディスクドライブでよい(図3の左側の図を参照)。
しかしながら、変換機構がHDDに存在すれば、本HDDはオブジェクトベース・ストレージデバイス(OSD)と呼ぶことができ、OSDコマンドを直接受信することができる(図3の右側の図を参照)。HDD又はOSDに存在するオブジェクトについては、以降により詳細に説明する。更に本発明の実施例に拠れば、以降に更に詳細に説明するように、オブジェクトはファイル、ボリューム、テーブル、又は他のコンポーネントに関係する。
図3は、本発明の一実施例に従うHDD及びOSDの一例を図示する。HDD又はOSDには一つ以上のパーティション2212が存在する。更に、これらデバイスは一パーティション2212の中に一式以上のオブジェクト2211を保存することができる。パーティションの中ではオブジェクトは属性を共有することができる。既に述べたように、OSDとHDDの相違の一つは、アドレス変換機構2130が当該デバイス中に存在するか否かである。以下に続く実施例に於いて、HDDは、本発明を説明するのに最も多く使用されるストレージデバイスであるが、OSDもこれら実施例の各々にストレージデバイスとして使用することが出来る。
図4は、本発明の一実施例に従うオブジェクトの構成図である。既に述べたように、ストレージシステム2000は、オブジェクトベース・ストレージデバイスのコマンド(OSDコマンド)に従って、ホストコンピュータ1000からの入出力要求を処理する。OSDコマンドシステムでは、ホストコンピュータ1000は、ストレージシステム2000との間でデータをオブジェクトとして読み書きする。オブジェクトは「データ」2214と「属性」(又はメタデータ)2213より成る。「属性」2213は、例えばファイルID(FID)等の、オブジェクトの識別情報を有する。オブジェクトのサイズは可変の為、各オブジェクトは各属性中にオブジェクトのサイズ情報を有する。
ストレージシステム2000は、例えば、
・パーティションID(PID)、
・各オブジェクトの識別番号たるオブジェクトID(OID)、
・本オブジェクトの使用者を識別するユーザ名、
・本オブジェクトのサイズ(属性分を含む)を示す使用容量、
・本オブジェクトが生成された生成時刻、
・最近に本属性がアクセスされた属性アクセス時刻、
・最近に本属性が更新された属性更新時刻、
・最近に本データがアクセスされたデータアクセス時刻、及び、
・最近に本データが更新されたデータ更新時刻、
等の各タイプの属性情報を維持する。
ユーザオブジェクトIDはオブジェクトID(OID)とも呼ばれる。幾つかの属性情報は標準化機構で定義済だが、ベンダは自分のOSDに属性情報を追加して定義しても良い。加えて、既存のOSDコマンドが存在するが、ベンダはこの既存のOSDコマンドに対して固有のパラメータを定義してもよく、あるいは又、個別のOSD実装の中に専用のOSDコマンドを定義しても良い。
図5は、本発明の一実施例に従う幾つかのOSD操作/コマンドをリストする。これらOSD操作/コマンドには、例えば、CREATE(「生成」)、WRITE(「書き込み」)、READ(「読み出し」)、SET ATTRIBUTE(「属性設定」)、GET ATTRIBUTE(「属性取得」)、及びCREATE AND WRITE(「生成と書き込み」)が存在する。「生成」コマンドはOSD中に一式以上のオブジェクトを割り付ける。「書き込み」コマンドはオブジェクトID、開始バイトアドレス、及び長さに関連するパラメータを有する。本コマンドは、指定開始バイトアドレスからの所定長のデータとオブジェクトIDで指定されたオブジェクトの書き込みに使用される。更に、本属性はコマンドを呼び出すのと同時に変更できる。「読み出し」コマンドはオブジェクトID、開始バイトアドレス、及び長さに関するパラメータを有する。
本コマンドは、指定開始バイトアドレスからの所定長のデータとオブジェクトIDで指定されたオブジェクトの読み出しに使用される。更に、本オブジェクトはコマンドを呼び出すのと同時に変更できる。「属性設定」コマンドはパラメータで指定されたオブジェクトの属性を更新する為に使用される。「属性取得」コマンドはパラメータで指定されたオブジェクトの属性をオブジェクトベース・ストレージデバイスから取得する為に使用される。「生成と書き込み」コマンドは、生成操作と書き込み操作の組み合わせコマンドで、一コマンドで生成と書き込みを実行する為に使用される。
図6は、本発明の一実施例に従うペア生成手続を図示する。ミラーを使用したスナップショット操作に先立って、PAIR CREATE(「ペア生成」)操作がホストデバイス又はホストのクライアント機のアプリケーションから発行される。「ペア生成」操作は又SVP2300からも開始できる。「ペア生成」操作では、最初にソースボリュームからデスティネーションボリュームにコピー(初期コピー)してミラーを開始する。現状のアプリケーション環境では、OSDコマンドセットにはコピーコマンドは存在しないので、本初期コピーは図15で記されたプロセスで実行される。
図6に示す通り、本発明に従う「ペア生成」に於いては、管理者がSVP2300を通してソースボリュームを指定して「ペア生成」コマンドを発行する(1)。この時、デスティネーションボリュームを指定することも同様に可能である。デスティネーションボリュームが指定されなければ、スナップショットモジュールがデスティネーションボリュームを決定する。ディスクコントローラ2100のスナップショットモジュール2110は「ペア生成」コマンドを受信して、ソースボリューム2220からデスティネーションボリューム2230への初期コピーを開始する(2)。
本プロセスでは、ソースボリュームのオブジェクトはデスティネーションボリュームの他のオブジェクトに一つずつコピーされる。初期コピープロセスを通して、デスティネーションボリュームにコピーオブジェクトが誕生する。コピーオブジェクトが完成したら、新PIDとOIDが本コピーオブジェクトにアサインされる(3)。本コピーオブジェクトのPIDとOIDは、ソースオブジェクトと同じFIDにてオブジェクト管理テーブル2400に保存される。オリジナル(ソース)とデスティネーション(コピー)のオブジェクトの状態欄は共に「ミラー」になる。
世代番号はスナップショットモジュールで管理され、デスティネーションオブジェクトにアサインされる。ソースオブジェクトに対しては本番号は、例えば、0でスナップショットオブジェクトではないことを意味する。一実施例でのミラーオブジェクトの世代番号は、スナップショットモジュールがオブジェクト管理テーブル2400を精査して、本ファイルの最大の世代番号を検出したときに決定される。既に述べた通り、「ペア生成」コマンドはSVPに代わってホスト側から来ることもできる。ミラーボリュームに対するファイル生成とファイル書き込み操作については、以降に説明する。本ミラーはこれ迄はファイルであったものが、ここで、ボリューム全体に代わって、一つのオブジェクトの単位となる。
図7は、本発明の一実施例に従う、オブジェクトベース・ストレージシステムでの、ミラーボリュームに対するオブジェクト生成を説明するシステム図を示す。ホスト1000又はホストのクライアントコンピュータのアプリケーションは、ファイルシステムのAPIを通して、ファイル名等のファイル識別子を指定してファイルを生成する(1)。ファイルシステム1100は、OSDオブジェクト2211に存在しない属性を生成して、「生成と書き込み」コマンドを使用して、本属性を一式のオブジェクトとしてホスト1000又はストレージシステム2000のストレージデバイスに保存する。
ファイルシステムはパーティションの生成を管理しているので、ファイルシステムは本ファイルに対する新オブジェクトが生成されるべきパーティションを知っており、「生成と書き込み」コマンドの中にパーティションID(PID)をセットして、新オブジェクトのパーティションを指定する。次いで、ファイルシステムは本ファイルに対するオブジェクトを生成する為に、「生成と書き込み」コマンドを発行する(2)。ファイルシステムが「生成と書き込み」コマンドを発行する時には、ファイルに対してPIDと共にOIDをアサインする事も出来る。ファイルシステムが「生成と書き込み」コマンドのOIDフィールドに、例えば0をセットしたら、OSDがOID番号をアサインする。
ディスクコントローラ2100のスナップショットモジュール2110は、「生成と書き込み」コマンドを受信して、アプリケーションが生成要求したオブジェクト(オリジナルオブジェクト)と本オブジェクトのコピー(ミラー)オブジェクトの双方を、「生成と書き込み」コマンドを処理して生成する(3)。サービス発信サブシステム2120は、「生成と書き込み」コマンドを受信し実行する。オリジナルオブジェクト2211は、ソースボリューム2220の何所か不使用領域に、指定されたPIDとOIDにて生成される。指定されたOIDが0なら、OSD LU2200がOIDをセットする。オリジナルオブジェクト2211のミラーオブジェクト2212は、デスティネーションボリューム2230の何所か不使用領域に生成される。ミラー化プロセスはファイルシステムには意識されず、ファイルシステムはオリジナルオブジェクトがミラー化されていることは知る事ができない。
スナップショットモジュール2110は、ミラーオブジェクト2212にPIDとOIDをアサインする。スナップショットモジュール2110は、ファイルシステム1100にオリジナルオブジェクト2211のOIDを返送する(4)。ファイルシステム1100は既にオリジナルオブジェクトのPIDを知っているので、オリジナルオブジェクトのOIDのみを送付すれば良い。ファイルシステム1100はFID、オリジナルPID、とオリジナルOIDを本オリジナルオブジェクトの世代番号(例えば、0)と共に、オブジェクト管理テーブル1200に登録する(5)。オブジェクト管理テーブル1200は、ホストのストレージデバイスに一オブジェクトとして保存される。ファイルシステム1100はファイル生成操作の結果をアプリケーションに返送する(6)。
図8は、本発明の図7の実施例に基づくオブジェクト生成のシーケンス図である。本プロセスは図7の議論中に説明済である。本シーケンス図は、各デバイス/実体で実行されている活動と共に、オブジェクト生成プロセス内でのデバイス/実体間を行きかうパラメータに焦点を当てる。
図9は、本発明の一実施例に従うデータ書き込み操作のシーケンス図である。クライアントコンピュータ又はホストでのアプリケーション1500、ファイルシステム1100、スナップショットモジュール2110、オブジェクトベース・ストレージデバイス2200、及びオブジェクト管理テーブル1200間を行きかうパラメータが示されている。ここではパラメータは説明の為に示されており、本発明はこれらパラメータに限定されること無く、他のパラメータが存在可能で本発明の範囲に含まれる。
オブジェクトは、スプリット要求が来る迄はミラー状態を維持する。データ書き込みプロセスは、既に述べたファイル生成プロセスと類似している。ホスト1000又はホストのクライアントコンピュータ上のアプリケーション1500はファイル名、データ長、及びデータ等のファイル識別子を指定して、ファイルシステムのAPIを通してファイルにデータ書き込みを行う(1)。ファイルシステム1100は、属性(例:UNIX(登録商標)システムのi−nodeテーブル)を検索して当該ファイルのFIDを検出する。ファイルシステムは、オブジェクト管理テーブル1200内でオリジナルファイルのPIDとOIDを検索する。アプリケーション1500から得られるファイル識別子が、オブジェクト管理テーブル1200から得られるFIDと正確に同じなら、属性(例:i−nodeテーブル内)検索は不要である。
ファイルシステムは、ファイルに対するオブジェクトへデータを書き込む為にオリジナルPID、オリジナルOID、データ長、及びデータをパラメータにして、「書き込み」コマンドを発行する(2)。ディスクコントローラ2100のスナップショットモジュール2110が本書き込みコマンドを受信する。スナップショットモジュール2110は次いで、ストレージシステムのオブジェクト管理テーブル2400(本図には示されていない)にて、指定されたオリジナルPIDとOIDを用いて、本オブジェクトのFIDを検索する。オブジェクトがミラーされていたら、オリジナルオブジェクトと同じFIDを持ち、オブジェクト管理テーブル2400内で最大の世代番号を持つオブジェクトが検索される。スナップショットモジュールは「書き込み」コマンドを使用して、データをオリジナル及びミラーオブジェクトの双方に書き込む(3)。
スナップショットモジュール2110は、動作の結果即ち成功か失敗かをファイルシステム1100に返送する(4)。ファイル生成プロセスとは異なって、オブジェクト管理テーブル1200に情報を登録する必要は無い。ファイルシステム1100は、アプリケーションにファイル書込み操作の結果を返送する(5)。オブジェクト管理テーブル2400のファイルの状態がSPLIT(「スプリット」)なら、データはオリジナルオブジェクトのみに書き込まれる。
図10は、本発明の一実施例に従うオブジェクトベース・ストレージシステムに於けるスナップショット生成操作を図示する。ユーザ又は管理者からのスプリット操作が、スナップショット生成を開始させる。ホスト1000又はホストのクライアントコンピュータ上のアプリケーションは、ファイル識別子又はソースボリューム名を指定してスプリットコマンドを発行して、スナップショット生成を要求する(1)。スプリットコマンドは、オブジェクト単位又はボリューム単位に適用される。
ファイルシステム1100は属性(例:UNIXシステムのi−node)を検索して、本ファイルのFIDを検出する。ファイルシステムは、本FIDを用いてオリジナルファイルのPIDとOIDをオブジェクト管理テーブル1200内で検索する(2)。アプリケーションが発行するファイル識別子がオブジェクト管理テーブルのFIDと正確に同じなら、本検索は不要である。更に、ボリューム名が指定されていたら、ボリューム名のみがスナップショットモジュールに送信される。本ボリューム名はオブジェクト管理テーブル2400に載っている。
ファイルシステム1100は、「スプリット」の如き新OSDコマンド又はベンダ属性の何か他の既存のOSDコマンド用いて、スナップショットモジュール2110を起動する。加えて、ファイルシステム1100とスナップショットモジュール2110間の専用コマンドを使用することも出来る。ファイルシステム1100は、ディスクコントローラ2100内のスナップショットモジュール2110をオリジナルPID、オリジナルOID、又はボリューム名を指定して起動する(3)。スプリット要求を受信後、スナップショットモジュール2110は、この構成を変更してミラーを停止する(4)。オブジェクト管理テーブル2400のオリジナルオブジェクト及びミラーオブジェクトの双方の状態は、「スプリット」に変更される。
スプリットコマンドがボリューム全体に適用されたら、本ボリュームの全てのオブジェクトの状態が「スプリット」に変更される。同一ボリュームのオブジェクトは、ディスクコントローラが管理できる。スナップショットモジュールはファイルシステム1100に、オリジナルOIDとPID及びミラーOIDとPID及び世代番号をオブジェクト毎に送信する(5)。ファイルシステムはPID、OID、及びミラーオブジェクトの世代番号を登録し、オブジェクト管理テーブル1200でのオリジナル及びミラーオブジェクト双方の状態を「スプリット」に変更する(6)。ファイルシステム1100はアプリケーションに、スナップショット操作の結果を返送する(7)。
図11は、本発明の一実施例に基づくスプリット後のミラープロセスを図示する。これまでは、オリジナルファイルのミラーはスプリットコマンド後は終了すると仮定してきた。しかしながら、スプリットコマンド後もミラーを維持することが可能である。この場合は、スナップショットモジュール2110は、オリジナルオブジェクト2211のコピー2213(初期コピー)を図6のプロセス(2)と(3)を通して他のボリューム2240上に生成する。新しいデスティネーションボリュームは、スナップショットモジュール2110がアサインする。
スナップショットモジュール2110はオブジェクト管理テーブル2400を更新する。この後は、オリジナルボリュームへの書き込みはこの新しいデスティネーションボリューム2240にミラーされる。ユーザ又は管理者がミラー停止コマンドを発行すれば、もはや新デスティネーションボリュームは生成されない。加えて、本発明によれば、ミラーを維持するもう一つの方法が存在する。「ペア生成」コマンドの起動によって、2230や2240のような多重ミラーボリュームの生成が可能になる。スプリットコマンドが発行される毎に、2230のようなミラーボリュームの一台がスプリットされる。
図12は、本発明の一実施例に従うスナップショット生成操作のシーケンス図である。クライアントコンピュータ又はホスト上のアプリケーション、ファイルシステム、スナップショットモジュール、オブジェクトベース・ストレージデバイス、及びオブジェクト管理テーブル間を飛び交うパラメータが示されている。本発明は、本図に示されるパラメータのみに限定されるものではなく、各交信により多くのパラメータが存在してもよい。括弧内の番号は図10の同じ番号の活動に相当する。
図13は、本発明の一実施例に従う、SVPを通したスナップショット操作の起動を図示する。ストレージシステム2000の管理者は、SVP2300を通してペア生成又はスプリット操作を要求することができる。本実施例の操作では、ファイル識別子に代わって、オリジナルオブジェクトのPIDとOID又はソースボリューム名が指定される。ミラーオブジェクトのPIDとOIDも管理者がSVP2300により指定可能である(1)。
SVP2300は、オリジナルオブジェクトのPIDとOID又はソースボリューム名を指定して、スナップショットモジュール2110を起動する。SVP2300は更に、「スプリット」の如き新OSDコマンド又はベンダ属性の何か既存のOSDコマンドを使用して、スナップショットモジュール2110を起動できる。加えて、SVP2300とスナップショットモジュール2110間の専用コマンドを用いることもできる。方法の如何を問わず、SVP2300は、オリジナルPIDとオリジナルOIDのパラメータを指定して、ディスクコントローラ2100内のスナップショットモジュール2110を起動する。
スナップショットモジュール2110がスプリット要求を受信し、ミラーオブジェクトのPIDとOIDが指定されていない場合は、スナップショットモジュールは、オリジナルPIDとOIDを用いて、オブジェクト管理テーブル2400内のミラーオブジェクトのPIDとOIDを検索する(2)。スナップショットモジュール2110は、構成を変更してミラーを停止させ、オリジナルオブジェクト2211とミラーオブジェクト2212に対するオブジェクト管理テーブル2400での状態を「スプリット」に変更する。スプリットコマンドがボリューム全体に適用された場合には、本ボリューム中の全てのオブジェクトが「スプリット」状態に変更される。
同一ボリューム内のオブジェクトは、ディスクコントローラ2100が管理できる。スナップショットモジュール2110は、オリジナルPIDとOID及びミラーPID、OID及び世代番号をファイルシステム1100に返送する(3)。スナップショットモジュール2110は、ファイルシステム1100にPIDとOID及びミラーオブジェクトの世代番号を登録し、オブジェクト管理テーブル1200でのオリジナルオブジェクト2211とミラーオブジェクト2212の状態を「スプリット」に変更することを依頼する(4)。スナップショットモジュール2110は、スプリット操作の結果をSVP2300に返送する(5)。
図14は、本発明の一実施例に従うSVPを通したスナップショット生成操作のシーケンス図を示す。本図はSVP2300、ホスト内のオブジェクト管理テーブル1200、ファイルシステム1100、及びストレージシステム内のオブジェクト管理テーブル2400、スナップショットモジュール2110、及びオブジェクトベース・ストレージデバイス2200間を行きかうパラメータを図示する。本図には、説明の為幾つかのパラメータが示されているが、本発明はこれらパラメータに限定されること無くより以上の他のパラメータが存在可能で、これらも本発明の範囲内である。括弧内の番号で表示される活動は、以前の図13で示された同じ番号の活動に相当する。
SVP2300は、オリジナルPIDとオリジナルOID/ボリューム名より成るスプリットコマンドをスナップショットモジュール2110に送信する(1)。スナップショットモジュール2110は、ストレージシステムのオブジェクト管理テーブル2400をオリジナルPIDとオリジナルOIDを用いて検索する(2)。スナップショットモジュール2110は、ストレージシステムのオブジェクト管理テーブル2400より、ミラーPIDとミラーOIDを取得する。
スナップショットモジュール2110は次いで、オブジェクトベース・ストレージデバイス2200にスプリットコマンドを送信する。スナップショットモジュール2110とオブジェクトベース・ストレージデバイス2200は、次いで、スプリットコマンドを処理しストレージシステムのオブジェクト管理テーブル2400を更新する(3)。スナップショットモジュール2110はオリジナルPID、OID、ミラーPID、OID及び世代番号より成る登録コマンドを、ホストデバイスのオブジェクト管理テーブル1200へ送信する(4)。スナップショットモジュール2110は、更にSVP2300に成功/不成功状態を送信する(5)。
図15は、本発明の一実施例に従うコピー操作のフローチャートを示す。本図は、スナップショットモジュールが、ホストコンピュータ1000から又はSVPから起動されて、生成/書き込み要求を受信した時に、本モジュールが如何にソースボリュームからデスティネーションボリュームにオブジェクトのコピーを生成するかを図示する。本プロセスはコントローラ2100のCPU2001にて実行される。本プロセスが起動された時点では、スナップショットモジュールはオリジナルオブジェクトのPIDとOIDを知っている。
スナップショットモジュールは「読み出し」コマンドを起動し、コピー指定されたオリジナルオブジェクトのデータを読み出す(ステップ5001)。スナップショットモジュールは「属性取得」コマンドを起動してオリジナルオブジェクトの属性を取得する(ステップ5002)。スナップショットモジュールは、ステップ5001と5002で得られたデータと属性、及び、ファイルシステム又はスナップショットモジュール自身が指定したPIDとOIDを用いて、「生成と書き込み」コマンドを起動する(ステップ5003)。これでプロセスは終了する(ステップ5004)。
図16は、本発明の一実施例に従う、メタデータサーバを持つオブジェクトベース・ストレージシステムに於けるオブジェクト生成操作を図示する。本発明に拠れば、オブジェクト管理テーブル3100は、ホストデバイス1000に結合して稼動するメタデータサーバ3000によって維持される。本図は、ファイルシステム1100が生成されたオブジェクトのPIDとOIDをメタデータサーバ3000に乗るオブジェクト管理テーブル3100に登録することを除いて、図7と同じである。オブジェクト生成プロセスは、図7に関連して以前に説明したのと同じでよい。
図17は、本発明の一実施例に従う、メタデータサーバを持つオブジェクトベース・ストレージシステムに於けるスナップショット生成操作を図示する。本図は、ファイルシステム1100が生成されたオブジェクトのPIDとOIDをメタデータサーバ3000に乗るオブジェクト管理テーブル3100に登録して、スナップショットオブジェクトの生成を扱うことを除いて、図10と同じである。図13と同様に、スナップショット要求はSVP2300より来ることができる。スナップショット生成プロセスは、図10に関連して以前に説明したのと同じでよい。
これまでの実施例では、一つのファイルは一つのオブジェクトに関係すると仮定した。しかしながら本発明では、複数のファイルが一つのオブジェクトに関係し、一つのファイルが複数のオブジェクトに関係しても良い。この上、データベースの観点からは、テーブルが一つのオブジェクトに関係し、或いは一行又は一列が一つのオブジェクトに関係しても良い。これまで議論してきた実施例では、ストレージシステムでのスナップショット機構はミラーとスプリットをベースにしてきた。しかしながら、本発明に拠れば、コピーオンライトをベースにする、ストレージシステムでのもう一つのスナップショット機構が存在する。
ホスト又はクライアント機のアプリケーション又はSVP経由での管理者から、あるボリューム(例:プライマリボリューム)に、スナップショット生成コマンドが発行された後には、本プライマリボリュームへの書き込み操作が来る毎に、被更新データ領域は他のボリューム、例えば差分ボリュームにログとして記録される。新しいデータがプライマリボリュームに書き込まれる。ミラー操作法と比較すると、初期コピーの必要は無くログデータが差分ボリュームに記録される。
図18は、本発明の一実施例に従う、プライマリと差分ボリュームを用いる、オブジェクト生成とファイル書き込みプロセスを図示する。本実施例にはメタデータサーバは存在しないが、オブジェクト管理テーブルを有するメタデータサーバを用いることは可能である。オブジェクト生成プロセスを説明し、その後にファイル書き込みプロセスが継続する。オブジェクト生成プロセスは、ホスト1000又はホストのクライアントコンピュータのアプリケーションがファイルシステムのAPIを通して、ファイル名等の識別子を指定してファイル生成を行うことにより開始する(1)。
ファイルシステム1100は、OSDオブジェクト2211に存在しない属性を生成し、ホスト1000又はストレージシステム2000内のストレージデバイスに「生成と書き込み」コマンドを用いて一オブジェクトとして保存する(2)。ファイルシステム1100はパーティションの生成を管理しているので、ファイルに対する新オブジェクトを格納すべきパーティションを知っており、「生成と書き込み」コマンドの中にパーティションID(PID)を埋め込み新オブジェクトのパーティションを指定する。ファイルシステム1100は、次いで、本ファイルに対するオブジェクトを生成する為に、「生成と書き込み」コマンドを発行する。
ファイルシステムが「生成と書き込み」コマンドを発行する時には、PIDと共にOIDをファイルに対応してアサインする事もできる。ファイルシステムが「生成と書き込み」コマンドのOID欄に、例えば番号0をセットした場合には、OSDが本番号をアサインする。ディスクコントローラ2100のスナップショットモジュール2110は、「生成と書き込み」コマンドを受信し、アプリケーションが生成要求するオブジェクトを、「生成と書き込み」コマンドの処理により生成する。サービス発信サブシステム2120が、「生成と書き込み」コマンドを受信し実行する(3)。
プライマリオブジェクト2211は、指定されたPIDとOIDを用いて、プライマリボリューム2220の何処か不使用領域に生成される。指定されたOIDが、例えば0ならOSD LUがOIDをセットする。スナップショットモジュール2110は、次いで、ファイルシステムにプライマリオブジェクト2211のOIDを返送する(4)。ファイルシステム1100は、オブジェクト管理テーブル1200の中にプライマリオブジェクト2211のFID、PID、及びOIDを登録する。オブジェクト管理テーブルの状態欄はこの時点では必要ない。プライマリオブジェクトの世代番号は、例えば0でも、又は他の任意の特定の番号でよい。ファイルシステム1100はアプリケーションにファイル生成操作の結果を返送する。ファイル生成操作に関しては、スナップショットモジュールの特別な操作は必要としない。
スナップショット要求を受ける迄は、被更新データ2212は差分ボリューム2230に被更新ログとして記録される。以下のプロセスでファイル書込みプロセスを説明する。ホスト1000又はホストのクライアントコンピュータ上のアプリケーションは、ファイル名等のファイル識別子、データ長、及びデータを指定して、ファイルシステムのAPIを通してファイルに対してデータを書き込む(1)。ファイルシステムは属性(例:UNIXシステムのi−node)を検索してファイルに対するFIDを見つける。ファイルシステム1100は、次いで、オブジェクト管理テーブル1200の中で本ファイルに対するPIDとOIDを検索する。
アプリケーションから得られるファイル識別子がオブジェクト管理テーブル1200のFIDと正確に等しければ、この検索(例:i−nodeテーブル)は不要である。ファイルシステム1100はプライマリPIDとOID、データ長、及びデータと共に、本ファイルに対するオブジェクトにデータを書き込む為に、「書き込み」コマンンドを発行する(2)。ディスクコントローラ2100のスナップショットモジュール2110は本「書き込み」コマンンドを受信する。
スナップショットモジュールは、次いで、このプライマリPIDとOIDを用いて、ストレージシステムのオブジェクト管理テーブル2400内の差分オブジェクトのPIDとOIDを検索する。プライマリオブジェクトのFIDはプライマリオブジェクト2211のPIDとOIDを用いて検索される。差分データのPIDとOIDは、同じFIDの最大世代番号を用いて検索される。差分オブジェクト2212が既に生成済なら、差分オブジェクトのPIDとOIDは検出される。スナップショットモジュール2110は、被更新データ領域2211を差分オブジェクト2212にログとして移動する(3)(3−1)。
差分オブジェクトが生成されていない場合には、スナップショットモジュール2110が差分オブジェクト2212に対するPIDとOIDを生成し、プライマリオブジェクト2211の更新前データを差分オブジェクト2212にログとして記録する。スナップショットモジュール2110は、プライマリオブジェクトに指定されたデータを書き込む(3−2)。スナップショットモジュール2110は、操作の結果(成功/不成功)をファイルシステム1100に返送する(4)。ファイル生成プロセスとは異なって、オブジェクト管理テーブル1200に登録する情報は存在しない。ファイルシステム1100はファイル書込み操作の結果をアプリケーションに返送する(5)。
図19は、本発明の一実施例に従う、差分データの次の世代を新差分ボリュームに書き込む様子を図示する。ユーザ又は管理者からスナップショットコマンドを受信後、差分データのデスティネーションは変更される。即ち、差分データの以前の世代が確定され一時点のデータのスナップショットが採取される。ホスト1000又はホストのクライアントコンピュータ上のアプリケーションは、ファイル識別子又はボリューム名を用いてスナップショット生成を要求する(1)。ファイルシステム1100は、属性(例:UNIXシステムのi−node等)を検索し、ファイルに対するFID又はボリューム名を検出する。
ファイルシステムは、本FIDを用いてオブジェクト管理テーブル1200内のオリジナルファイルに対するPIDとOIDを検索する(2)。アプリケーションから与えられたファイル識別子がオブジェクト管理テーブル1200内のFIDと正確に同じなら、属性(例:i−nodeテーブル)検索は不要である。ファイルシステム1100はSNAPSHOT(「スナップショット」)コマンドなどの新しいOSDコマンド又はベンダ属性の任意の既存OSDコマンドを起動することができる。更に、ファイルシステム1100とスナップショットモジュール2110との間の専用コマンドも用いることができる。
ファイルシステムはオリジナルPID、OID、又はボリューム名をパラメータとして、ディスクコントローラ2100のスナップショットモジュール2110を起動する(3)。ファイルシステムからの要求を受信して、スナップショットモジュール2110はその構成を変更する(4)。既に述べたように、被更新データのデスティネーションは変更され、この結果、前世代の差分データは確定され、この時点の本データのスナップショット2212が採取される。次の「書き込み」コマンド受領以降は、被更新データの次の世代は、新差分ボリューム2240に記録される(4−1)。スナップショットコマンド(すなわちスプリット)がボリューム全体に適用された場合には、当該ボリュームの全オブジェクトは同様に処理される。
スナップショットモジュール2110はオリジナルOIDとPID、スナップショットOIDとPID、及び世代番号をファイルシステム1100に返送する(5)。世代番号は、スナップショットモジュール2110が管理し、次のスナップショットコマンドが来ると世代番号は一つ加算される。ファイルシステム1100は、PIDとOID及びスナップショットオブジェクトの世代番号をオブジェクト管理テーブル1200に保存する(6)。ファイルシステム1100は、アプリケーションにスナップショット生成結果を返送する(7)。
図20は、本発明の一実施例に従う、現在の静止データと差分データの系列により、オブジェクトを構築する様子を図示する。これまでの所、スナップショットを停止する方法は述べていなかった。この為には、スナップショット停止コマンドが用いられる。スナップショット停止コマンドがユーザ又は管理者から発行されると、ログデータの記録作業は停止し、データのプライマリボリュームへの書き込は一時的に抑止される。ユーザ又は管理者がスナップショットの何かの世代を読みたければ、該当オブジェクトは、現在の静止データと指定世代以降の差分データのシーケンスで組み立てできる。
現データを読み出すには、データはプライマリボリューム2220から読み出せる。第二世代を読み出すには、現データをプライマリボリューム2220から読み出し、第二世代の差分データを第二世代ボリューム2240から読み出す。第二世代ボリューム2240に差分データが存在すれば、プライマリデータが第二世代の被更新ログの新しいものから順に上書きされる。全てのオブジェクトに同じことを実施することにより、第二世代のボリューム2240が読み出せる。第一世代ボリューム2230を読み出すには、上記のプロセスにて第二世代を確定し、次いで第一世代のデータで上書きして、第一世代ボリューム2230が確定する。現状のプライマリボリューム2220と第一世代のデータを読み出して、第一世代データを生成することは不可能である。第二世代ボリューム2240の中で更新されているデータが有る限り、第二世代のデータを最初に使用しなければならない。
これまでの事例は偏に説明の為であって、本発明をこれに制限する為のものではないことに注意願いたい。本発明は好適な実施例により説明してきたが、ここで使用された表現はこれに制限する為ではなく説明の為であることに理解願いたい。既に説明し補足した如く、本発明の精神と範囲を逸脱することなく、添付請求項の範囲内で変更は可能である。
本発明は具体的な方法、材料、実施例を参照して述べてきたが、本発明は、ここで開示した事項に限定することなく、本発明は機能的に等価な構成、方法、及び添付の請求項の範囲内の使用法に及ぶ。
図1は、本発明の一実施例に従うオブジェクトベース・ストレージシステムでスナップショットコピーを実現するシステムを図示する。 図2は、本発明の一実施例に従うシステムでのソフトウェア構成を図示する。 図3は、本発明の一実施例に従うHDD及びOSDの一例を図示する。 図4は、本発明の一実施例に従うオブジェクトを図示する。 図5は、本発明の一実施例に従う幾つかのOSD操作/コマンドのリストである。 図6は、本発明の一実施例に従うペア生成手続を図示する。 図7は、本発明の一実施例に従う、オブジェクトベース・ストレージシステムでのミラーボリュームに対するオブジェクト生成を説明するシステム図である。 図8は、本発明の図7の実施例に従うオブジェクト生成のシーケンス図である。オブジェクトはスプリット要求が来る迄ミラー状態を保持する。 図9は、本発明の一実施例に従うデータ書き込み操作のシーケンス図である。 図10は、本発明の一実施例に従う、オブジェクトベース・ストレージシステムでのスナップショット生成操作を図示する。 図11は、本発明の一実施例に従うスプリット後のミラープロセスを図示する。 図12は、本発明の一実施例に従う、スナップショット生成操作のシーケンス図である。 図13は、本発明の一実施例に従う、SVP経由でのスナップショット操作の起動を図示する。 図14は、本発明の一実施例に従う、SVP経由でのスナップショット生成のシーケンス図である。 図15は、本発明の一実施例に従うコピー操作のフローチャートである。 図16は、本発明の一実施例に従う、メタデータサーバ付のオブジェクトベース・ストレージシステムでのオブジェクト生成操作を図示する。 図17は、本発明の一実施例に従う、メタデータサーバ付のオブジェクトベース・ストレージシステムでのスナップショット生成プロセスを図示する。 図18は、本発明の一実施例に従う、プライマリと差分ボリュームを使用するオブジェクト生成とファイル書き込みプロセスを図示する。 図19は、本発明の一実施例に従う、次世代差分データが新差分ボリュームに書き込まれる状態を図示する。 図20は、本発明の一実施例に従う、現状の静止データと差分データのシーケンスにより、オブジェクトを構築する状態を図示する。
符号の説明
1000 ホスト
1001、2001 CPU
1002、2002 メモリ
1003 HBA
2000 ストレージシステム
2100 コントローラ
2003 キャッシュ
2004、2005 I/F(インターフェース)
2006 SVP
2200 ストレージ

Claims (14)

  1. オブジェクトベース・ストレージシステムにオブジェクトレベルのスナップショットを生成するシステムであって、
    ホストデバイスと、
    前記ホストデバイスに結合して稼動するオブジェクトベース・ストレージシステムと
    を備え、
    前記ホストデバイスは、
    第一のオブジェクト管理テーブル(OMT)と、
    ファイルシステムと
    を有し、
    前記オブジェクトベース・ストレージシステムは、
    コントローラと、
    データをオブジェクトとして記憶する少なくとも一台のオブジェクトベース・ストレージデバイス(OSD)と
    を有し、
    前記オブジェクトは、データと、前記データの属性データとを有し、
    前記コントローラは、スナップショットモジュールと、第二のOMTとを有し、
    前記オブジェクトベース・ストレージシステムは、前記ホストデバイスからI/O要求を受け、前記I/O要求をOSDコマンドとして処理し、
    前記スナップショットモジュールは、少なくとも一台のOSD内のオリジナルオブジェクトのミラーオブジェクトを、下記(1−1)乃至(1−5)を行うことにより生成し、
    (1−1)前記オリジナルオブジェクト内のデータであるオリジナルデータを読み出す;
    (1−2)前記オリジナルオブジェクト内の属性データであるオリジナル属性データを取得する;
    (1−3)前記オリジナルデータと前記オリジナル属性データを用いて前記ミラーオブジェクトを生成する;
    (1−4)前記オリジナルオブジェクトと分けられたボリュームに前記ミラーオブジェクトを格納する;
    (1−5)前記オリジナルオブジェクトの更新を前記ミラーオブジェクトに反映するミラー操作を行う;
    前記スナップショットモジュールは、前記オリジナルオブジェクトのスナップショットを生成する特定の時点で前記ミラーオブジェクトへの前記ミラー操作を停止することにより、少なくとも一台のOSDにおけるスナップショット操作を開始する、
    システム。
  2. 前記スナップショット操作は、前記更新のミラー操作を停止することに先駆けて、前記オリジナルオブジェクト第二のミラー操作を生成することを含む、
    請求項1記載のシステム。
  3. 更に、前記スナップショット操作を開始するために、前記スナップショットジュールに対する前記OSDコマンドと、SPLIT又はSNAPSHOTコマンドを開始することができるサービスプロセッサとを有する、
    請求項1記載のシステム。
  4. 前記第一のOMTと前記第二のOMTは、ファイル識別子(FID)、パーティションID(PID)、オブジェクトID(OID)、およびオブジェクト状態とスナップショットの世代番号に対するマッピング情報を維持する、
    請求項1記載のシステム。
  5. 前記オブジェクト状態はミラー又はスプリットの何れかの状態から成る、
    請求項4記載のシステム。
  6. 前記ディスクコントローラは、更に、OIDを前記少なくとも一台のOSDの物理ブロック番号に変換する変換機構を含む、
    請求項1記載のシステム。
  7. 前記少なくとも一台のOSDは、更に、OIDを前記少なくとも一台のOSDの物理ブロック番号に変換する変換機構を含む、
    請求項1記載のシステム。
  8. 前記オリジナルオブジェクトと前記ミラーオブジェクトは、一式のファイル、複数のファイル、一つのテーブル、テーブルの一行、テーブルの一列、一台のボリュームの一つに関係する、
    請求項1記載のシステム。
  9. 更に、前記第一のOMTを実装し前記ホストデバイスに結合して稼動するメタデータサーバが備えられる、
    請求項1記載のシステム。
  10. オブジェクトベース・ストレージシステムでのペア生成方法であって、
    (10−1)前記オブジェクトベース・ストレージシステムにおいてオブジェクトベース・ストレージデバイス(OSD)へデータを記憶し、それにより、前記オブジェクトベース・ストレージシステムはコンテントデータと属性データを含むオブジェクトとしてデータを記憶するステップと、
    (10−2)ソースボリュームにおける一以上のオリジナルオブジェクトからミラーペアの作成を指示する前記オブジェクトベース・ストレージシステムにおいて、ペア生成コマンドを受信するステップと、
    (10−3)前記ペア生成コマンドの受信に応答して、前記ソースボリュームにおける一以上のオリジナルオブジェクトの各々をデスティネーションボリュームにコピーするステップと
    を有し、
    前記(10−3)のステップは、
    (10−3−1)各コピーオブジェクトに対し、新しいパーティションID(PID)と新しいオブジェクトID(OID)を決定するステップと、
    (10−3−2) 前記オリジナルオブジェクト内のデータであるオリジナルデータを読み込むステップと、
    (10−3−3) 前記オリジナルオブジェクト内の属性データである前記オリジナル属性データを検索するステップと、
    (10−3−4) 前記検索されたオリジナルコンテントデータとオリジナル属性データで前記コピーオブジェクトを生成し、前記新しいPIDとOIDを前記コピーオブジェクトの前記属性データに挿入するステップと、
    (10−3−5) 前記デスティネーションボリュームにおいて各コピーオブジェクトを記憶するステップ
    を有する、
    方法。
  11. オブジェクトベース・ストレージシステムでのオブジェクト生成方法であって、
    前記オブジェクトベース・ストレージシステムにおいてオブジェクトベース・ストレージデバイス(OSD)へデータを記憶し、それにより、前記オブジェクトベース・ストレージシステムはコンテントデータと属性データを含むオブジェクトとしてデータを記憶するステップと、
    ホストデバイスでのファイルシステムのアプリケーションから、ファイル識別子(FID)とデータを受信するステップと、
    前記ファイル識別子に関係するファイルに対する属性データを生成するステップと、
    前記ファイルの前記ファイルコンテントデータと前記属性データで前記ファイルのオリジナルオブジェクトを生成し、前記オリジナルオブジェクトは関係するオリジナルパーティションID(PID)とオリジナルオブジェクトID (OID)を持つステップと、
    前記コピーオブジェクトに対する前記OSDにおいて第二のPIDと第二のOIDを決定するステップと、
    前記オリジナルオブジェクトのコピーオブジェクトを生成し、前記コピーオブジェクトは前記オリジナルオブジェクトの前記ファイルコンテントデータと前記属性データを含み、前記第二のPIDと前記第二のOIDは前記コピーされたオブジェクトにアサインされているステップと、
    前記FIDと、オリジナルオブジェクトPIDとオリジナルオブジェクトOIDを、オブジェクト管理テーブル(OMT)において登録するステップと
    を有する方法。
  12. オブジェクトベース・ストレージシステムでのオブジェクトへのデータ書き込み方法であって、
    前記オブジェクトベース・ストレージシステムにおいてオブジェクトベース・ストレージデバイス(OSD)へデータを記憶し、それにより、前記オブジェクトベース・ストレージシステムはコンテントデータと属性データを含むオブジェクトとしてデータを記憶するステップと、
    ホストデバイスで、ファイルID(FID)と書き込みデータを含む書き込み操作を受信するステップと、
    前記FIDと関係するオブジェクトのパーティションID(PID)とオブジェクトID(OID)に対し、前記ホストデバイスのオブジェクト管理テーブルを検索するステップと、
    前記FIDと関係する前記オブジェクトの前記書き込みデータ、前記PIDと前記OIDを含む書き込みコマンドを、前記オブジェクトベース・ストレージシステムにおいて、スナップショットモジュールに対して送信するステップと、
    前記FIDに関係する前記オブジェクトの前記PIDと前記OIDを用いて、前記ストレージシステムのオブジェクト管理テーブルを検索して、前記オブジェクトがミラー又はスプリットの状態にあることを判定するステップと、
    前記状態がスプリットであれば、前記オブジェクトに前記書き込みデータを書き込むステップと、
    前記状態がミラーであれば、前記ストレージシステムの前記オブジェクト管理テーブルから、前記FIDを使用して、ミラーオブジェクトと関係する第二のPIDと第二のOIDを検索するステップと、
    前記状態がミラーであれば、前記オブジェクトと前記ミラーオブジェクトに対し前記書き込みデータを書き込むステップと
    を有する方法。
  13. オブジェクトベース・ストレージシステムでのスナップショット生成方法であって、
    前記オブジェクトベース・ストレージシステムにおいてオブジェクトベース・ストレージデバイス(OSD)へデータを記憶し、それにより、前記オブジェクトベース・ストレージシステムはコンテントデータと属性データを含むオブジェクトとしてデータを記憶するステップと、
    ホストデバイスから、前期オブジェクトベース・ストレージシステムにおいて、I/O要求を受信し、OSDコマンドとして前記I/O要求を処理するステップと、
    オリジナルオブジェクトのミラーオブジェクトを、下記(13−1)乃至(13−5)を行うことにより作成するステップと、
    (13−1)前記オリジナルオブジェクト内のデータであるオリジナルデータを読み込む;
    (13−2)前記オリジナルオブジェクト内の属性データであるオリジナル属性データを取得する;
    (13−3)前記オリジナルオブジェクトの前記オリジナルコンテントデータと前記オリジナル属性データを用いて前記ミラーオブジェクトを生成する;
    (13−4)前記オリジナルオブジェクトから分かれたボリュームにおいてミラーオブジェクトを記憶する;
    (13−5)前記オリジナルオブジェクトの更新を前記ミラーオブジェクトに反映するミラー操作を行う;
    ホストデバイスにおいて、識別子でスナップショット要求を受信するステップと、
    前記ファイルに対し、ファイルID(FID)を識別するために識別子を用いて、ホストデバイスのファイル属性を検索するステップと、
    前記FIDを使用して、ホストデバイスのオブジェクト管理テーブルを検索して、前記FIDと関係するオブジェクトのパーティションID(PID)とオブジェクトID(OID)を識別し、前記FIDと関係する前記オブジェクトは前記オリジナルオブジェクトであるステップと、
    前記ホストデバイスにおいて、ファイルシステムから、前記オブジェクトベース・ストレージシステムにおけるスナップショットモジュールでのSNAPSHOTコマンドを受信するステップと、
    前記FIDに関係した前記オブジェクトとミラーペアを形成する前記ミラーオブジェクトに対する、前記FIDに関係する前記オブジェクトのミラー操作を停止する前記スナップショットモジュールの構成を変更し、それにより、前記ミラーオブジェクトが前記スナップショットになるステップと、
    前記構成が変更された前記ミラーオブジェクトに対し、ミラーからスプリットへ、前記オブジェクトベース・ストレージシステムのオブジェクト管理テーブルにおける状態を変更するステップと
    を有する方法。
  14. オブジェクトベース・ストレージシステムにおいて、差分ボリュームにおけるスナップショットを生成する方法であって、
    前記オブジェクトベース・ストレージシステムにおいてオブジェクトベース・ストレージデバイス(OSD)へデータを記憶し、それにより、前記オブジェクトベース・ストレージシステムはコンテントデータと属性データを含むオブジェクトとしてデータを記憶するステップと、
    識別子を用いたスナップショット要求をホストデバイスで受信するステップと、
    前記識別子と関係するファイルに対し、ファイルID(FID)を識別するための識別子を用いてファイル属性を検索するステップと、
    前記FIDを用い、前記ホストデバイスのオブジェクト管理テーブルを検索して、前記FIDと関係するプライマリオブジェクトに対し、パーティションID(PID)とオブジェクトID(OID)を識別するステップと、
    前記ホストデバイスのファイルシステムから、前記オブジェクトベース・ストレージシステムのスナップショットモジュールでの前記PIDと前記OIDを含むSNAPSHOTコマンドを受信するステップと、
    関係するPIDとOIDを持つ第一の差分オブジェクトから第二の差分オブジェクトへ、プライマリオブジェクトに対する差分データのデスティネーションを変更するためのスナップショットモジュールにおける構成を変更するステップと、
    前記第一の差分オブジェクトにおいて、データを安定させることにより、前記プライマリオブジェクトと関係する前記第一の差分オブジェクトの一時点のスナップショットをとるステップと、
    前記オブジェクトベース・ストレージシステムにおいて維持される第二のオブジェクト管理テーブルにおいて、前記プライマリオブジェクトの世代番号を1加算するステップと、
    前記ファイルシステムに、前記プライマリオブジェクトPID、OID、前記第一の差分オブジェクトPID、OID、前記世代番号を送信するステップと、
    を有する方法。
JP2005320312A 2004-11-17 2005-11-04 ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法 Expired - Fee Related JP4776342B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/989392 2004-11-17
US10/989,392 US7228320B2 (en) 2004-11-17 2004-11-17 System and method for creating an object-level snapshot in a storage system

Publications (3)

Publication Number Publication Date
JP2006146904A JP2006146904A (ja) 2006-06-08
JP2006146904A5 JP2006146904A5 (ja) 2008-11-27
JP4776342B2 true JP4776342B2 (ja) 2011-09-21

Family

ID=36387714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005320312A Expired - Fee Related JP4776342B2 (ja) 2004-11-17 2005-11-04 ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法

Country Status (2)

Country Link
US (2) US7228320B2 (ja)
JP (1) JP4776342B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators
US8346950B1 (en) * 2005-05-19 2013-01-01 Glam Media, Inc. Hosted application server
KR100825720B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
TWI307026B (en) * 2005-12-30 2009-03-01 Ind Tech Res Inst System and method for storage management
US7562078B1 (en) * 2006-04-01 2009-07-14 Network Appliance, Inc. Retention of active data stored in memory
US7707183B2 (en) * 2006-07-21 2010-04-27 Netiq Corporation Methods, systems and computer program products for monitoring changes to objects on a computer system using information models and baselines
KR100912126B1 (ko) 2006-12-04 2009-08-13 한국전자통신연구원 객체 기반 파일 시스템의 파일셋의 스냅샷 제공 방법
US20100023420A1 (en) 2006-12-05 2010-01-28 Alex Nerst Transferring entitlements in communication networks
US7882202B2 (en) * 2008-04-01 2011-02-01 International Business Machines Corporation System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism
US8645460B2 (en) * 2008-10-07 2014-02-04 Huazhong University Of Science And Technology Method for managing object-based storage system
JP2010134788A (ja) * 2008-12-05 2010-06-17 Hitachi Ltd クラスタ・ストレージ装置、及びそれを制御する方法
US20100217977A1 (en) * 2009-02-23 2010-08-26 William Preston Goodwill Systems and methods of security for an object based storage device
WO2011113504A1 (en) * 2010-03-16 2011-09-22 Amplidata Nv Device driver for use in a data storage system
US8306950B2 (en) * 2010-08-26 2012-11-06 International Business Machines Corporation Managing data access requests after persistent snapshots
KR101702366B1 (ko) 2010-12-22 2017-02-03 삼성전자주식회사 동적으로 확장 가능한 기능을 제공하는 스토리지 장치 및 그것의 동작 방법
JP5541149B2 (ja) 2010-12-27 2014-07-09 富士通株式会社 スナップショット採取プログラム、サーバおよびスナップショット採取方法
US8433849B2 (en) 2010-12-27 2013-04-30 Amplidata Nv Hierarchical, distributed object storage system
EP2469411B1 (en) 2010-12-27 2013-05-29 Amplidata NV A distributed object storage system
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
CN102890646B (zh) * 2011-07-18 2016-03-30 华为软件技术有限公司 数据快照方法、快照还原方法、相关装置和系统
US9158828B1 (en) * 2011-12-19 2015-10-13 Emc Corporation Techniques using associated object properties
WO2013095520A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Object-aware storage
CN103246716B (zh) * 2013-04-26 2016-02-24 中国传媒大学 基于对象集群文件系统的对象副本高效管理方法及系统
CN103559224A (zh) * 2013-10-18 2014-02-05 华为技术有限公司 一种对元数据对象进行散列的方法及装置
US10261960B2 (en) 2014-09-12 2019-04-16 Scality, S.A. Snapshots and forks of storage systems using distributed consistent databases implemented within an object store
US10366070B2 (en) 2015-02-20 2019-07-30 Scality S.A. Locking and I/O improvements of systems built with distributed consistent database implementations within an object store
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
JP6327028B2 (ja) * 2014-07-14 2018-05-23 日本電気株式会社 オブジェクトストレージシステムおよびその制御方法およびその制御プログラム
BR112017011412B1 (pt) * 2014-12-27 2023-02-14 Huawei Technologies Co., Ltd. Método e aparelho de armazenamento de dados
US10592128B1 (en) * 2015-12-30 2020-03-17 EMC IP Holding Company LLC Abstraction layer
US10534796B1 (en) * 2016-06-30 2020-01-14 EMC IP Holding Company LLC Maintaining an active-active cloud across different types of cloud storage services
US10055166B1 (en) * 2016-06-30 2018-08-21 EMC IP Holding Company LLC Method, data storage system and computer program product for managing data copying
WO2018009170A1 (en) * 2016-07-02 2018-01-11 Fencel Richard Stanley Projection of software and integrated circuit diagrams into actual 3d space
CN106202367B (zh) 2016-07-07 2019-03-05 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置
EP3474146B1 (en) * 2017-04-14 2022-02-23 Huawei Technologies Co., Ltd. Data processing method, storage system and exchange device
US11550820B2 (en) * 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
US11163730B2 (en) * 2019-05-13 2021-11-02 Microsoft Technology Licensing, Llc Hard link operations for files in a file system
CN111240894B (zh) * 2019-12-31 2023-11-14 中国建设银行股份有限公司 用于对基于Ceph的对象存储系统进行故障分析的系统和介质
CN113254823A (zh) * 2021-05-13 2021-08-13 浙江网商银行股份有限公司 网页数据处理方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1341310C (en) * 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US6101497A (en) 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5761678A (en) 1996-06-26 1998-06-02 International Business Machines Corporation Creation of clone storage area with identification of base storage area and deferred cloning of metadata
US6298401B1 (en) 1997-08-11 2001-10-02 Seagate Technology Llc Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media
CN1281560A (zh) * 1997-10-08 2001-01-24 西加特技术有限责任公司 混合数据存储和重建系统以及用于数据存储装置的方法
CA2394683A1 (en) * 1999-12-13 2001-06-14 Connected Corporation Multiple copy capability for network backup systems
US6804690B1 (en) 2000-12-27 2004-10-12 Emc Corporation Method for physical backup in data logical order
US7293030B2 (en) * 2001-11-29 2007-11-06 Symantec Operating Corporation Methods, functional data, and systems to represent a storage environment
US6775672B2 (en) * 2001-12-19 2004-08-10 Hewlett-Packard Development Company, L.P. Updating references to a migrated object in a partition-based distributed file system
US6850969B2 (en) * 2002-03-27 2005-02-01 International Business Machined Corporation Lock-free file system
US7827077B2 (en) * 2003-05-02 2010-11-02 Visa U.S.A. Inc. Method and apparatus for management of electronic receipts on portable devices
US7627617B2 (en) * 2004-02-11 2009-12-01 Storage Technology Corporation Clustered hierarchical file services
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
US7382758B2 (en) * 2004-11-30 2008-06-03 Motorola, Inc. Medium access control for simultaneous channel communications
US7580958B2 (en) * 2005-06-17 2009-08-25 International Business Machines Corporation Supporting multiple versions of a routine
KR100825720B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
US9002795B2 (en) * 2006-01-26 2015-04-07 Seagate Technology Llc Object-based data storage device

Also Published As

Publication number Publication date
US20060106878A1 (en) 2006-05-18
US20070255768A1 (en) 2007-11-01
JP2006146904A (ja) 2006-06-08
US7664787B2 (en) 2010-02-16
US7228320B2 (en) 2007-06-05

Similar Documents

Publication Publication Date Title
JP4776342B2 (ja) ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
US20200278792A1 (en) Systems and methods for performing storage operations using network attached storage
US10430286B2 (en) Storage control device and storage system
JP4456909B2 (ja) バックアップ方法、ストレージシステム及びそのプログラム
US7716183B2 (en) Snapshot preserved data cloning
US8204858B2 (en) Snapshot reset method and apparatus
US6061770A (en) System and method for real-time data backup using snapshot copying with selective compaction of backup data
US7783850B2 (en) Method and apparatus for master volume access during volume copy
US7831565B2 (en) Deletion of rollback snapshot partition
US20070239803A1 (en) Remote mirroring method between tiered storage systems
JP2005031716A (ja) データバックアップの方法及び装置
JP2006146904A5 (ja)
JP2007272874A (ja) クラスタ化ファイルシステムにおいてデータのバックアップを取る方法
JP4278452B2 (ja) 計算機システム
JP2004295465A (ja) 計算機システム
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US20070124366A1 (en) Storage control method for managing access environment enabling host to access data

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081015

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081015

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110617

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees