JP2005532611A - 仮想記憶装置 - Google Patents

仮想記憶装置 Download PDF

Info

Publication number
JP2005532611A
JP2005532611A JP2003584918A JP2003584918A JP2005532611A JP 2005532611 A JP2005532611 A JP 2005532611A JP 2003584918 A JP2003584918 A JP 2003584918A JP 2003584918 A JP2003584918 A JP 2003584918A JP 2005532611 A JP2005532611 A JP 2005532611A
Authority
JP
Japan
Prior art keywords
storage area
data
area
track
virtual
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
JP2003584918A
Other languages
English (en)
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of JP2005532611A publication Critical patent/JP2005532611A/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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/99943Generating database or data structure, e.g. via user interface
    • 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
    • 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/99954Version management

Abstract

格納データへのアクセスは、少なくとも2つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、この仮想記憶エリアにはデータの区間を設けず、仮想記憶エリアのデータにアクセスする要求に応答して、別の記憶エリアのうちのデータを含む特定の1つのエリアを決定し、ポインタのテーブルを用いて、別の記憶エリアの特定の1つのエリアにあるデータにアクセスすることから成る。また、格納データへのアクセスは、別の記憶エリアのうちの第1のエリアを仮想記憶エリアと関連付けることを含んでもよく、仮想記憶エリアは別の記憶エリアのうちの第1エリアのデータのコピーを表す。また、格納されているデータへのアクセスは、仮想記憶エリアを別の記憶エリアのうちの第1エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第1エリアの区間を指し示すようにすることを含んでもよい。記憶エリアは記憶装置であってもよい。区間はトラックであってもよい。

Description

本発明は、コンピュータ記憶装置に関し、更に特定すれば、コンピュータ記憶装置上に格納されたデータの一部のコピーを供給する分野に関する。
ホスト・プロセッサ・システムは、複数のホスト・インターフェース・ユニット(ホスト・アダプタ)、ディスク・ドライブ、およびディスク・インターフェース・ユニット(ディスク・アダプタ)を内蔵した記憶装置を用いて、データの格納や検索が可能である。かかる記憶装置は、例えば、マサチューセッツ州Hopkintonのイーエムシー・コーポレーション(EMC Corporation)が供給しており、かかる記憶装置は、例えば、マサチューセッツ州Hopkintonのイーエムシー・コーポレーション(EMC Corporation)が供給しており、ヤナイその他(Yanai et al.)の米国特許第5,206,939号、ガルツアーその他(Galtzuer et al.)の米国特許第5,778,394号、ビシュリスキーその他(Vishlizky et al.)の米国特許第5,845,147号、およびオフェック(Ofeck)の米国特許第5,857,208号に開示されている。ホスト・システムは、記憶装置に設けられている複数のチャネルを通じて記憶装置にアクセスする。ホスト・システムは、記憶装置のチャネルを通じてデータやアクセス制御情報を供給し、記憶装置もチャネルを通じてデータをホスト・システムに供給する。ホスト・システムは、記憶装置のディスク・ドライブに直接アドレスするのではなく、ホスト・システムにとっては複数の論理ボリュームのように見えるものにアクセスする。論理ボリュームは、実際のディスク・ドライブに対応する場合も、しない場合もある。
場合によっては、論理ボリュームのコピーを備え、このコピーに他のプロセスがアクセスすることが望ましいこともある。例えば、実際に格納されているデータに対して新たなソフトウエアを検査するには、このデータを含む論理ボリュームのコピーを作成し、元のデータではなく、このコピーを用いて新たなソフトウエアの検査が行われ得る。一旦検査が完了した場合、コピーは廃棄され得る。このようにすれば、実際のデータに影響を及ぼすことなく、実際のデータで新たなソフトウエアが検査できる。これによって、新たなソフトウエアの検査および/または機能が実際のデータにエラーが生じる可能性が減少する。
かかるコピー作成に伴う問題の1つに、データを得る元になる論理ボリュームと同じだけの記憶空間が必要となることがあげられる。何故なら、コピー・プロセスは、単に元のボリュームのデータ全てを含む新たなボリュームを作成するに過ぎないからである。加えて、場合によっては、元のボリュームとコピーとの間の差が極めて少ないこともある。つまり、かかる論理ボリュームのコピーに必要とされる余分な記憶空間はどちらかと言えば非効率的に用いられている。何故なら、これは既に存在するデータを単に複製するに過ぎないからである。したがって、記憶空間を効率的に用いる方法でデータをコピーする機構を提供することが望ましい。
本発明によれば、格納データへのアクセスは、少なくとも2つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、この仮想記憶エリアにはデータの区間を設けず、仮想記憶エリアのデータにアクセスする要求に応答して、別の記憶エリアのうちのデータを含む特定の1つのエリアを決定し、ポインタのテーブルを用いて、別の記憶エリアの特定の1つのエリアにあるデータにアクセスすることを含む。また、格納データへのアクセスは、別の記憶エリアのうちの第1のエリアを仮想記憶エリアと関連付けることを含んでもよく、仮想記憶エリアは別の記憶エリアのうちの第1エリアのデータのコピーを表す。また、格納されているデータへのアクセスは、仮想記憶エリアを別の記憶エリアのうちの第1エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第1エリアの区間を指し示すようにすることを含んでもよい。また、格納データへのアクセスは、別の記憶エリアの第1エリア上の第1区間への書き込みに応答して、第1区間のデータを別の記憶エリアの第2エリア上にある第2区間にコピーし、テーブルのポインタの対応する1つに第2区間を指し示させることを含んでもよい。第1区間から第2区間にデータをコピーする前に、第2区間を、データを含まない空き区間として保持してもよい。また、格納データへのアクセスは、別の記憶エリアの第2エリアの空き区間全ての二重リンク・リストを保持することを含んでもよい。また、格納データへのアクセスは、データ・インディケータを別の記憶エリアの第1エリアの区間と関連付けることを含んでもよく、特定の区間に対するデータ・インディケータは、別の記憶エリアの第1エリアを仮想記憶エリアと関連付けた後に、この特定の区間に対して書き込み動作が実行されたか否かを指示する。また、格納データへのアクセスは、別の記憶エリアの第1エリア上の第1区間への書き込みと、別の記憶エリアの第1エリアを仮想記憶エリアと関連付けた後に第1区間に対して書き込み動作が行われていないことを示すインディケータとに応答して、第1区間のデータを別の記憶エリアの第2エリア上にある第2区間にコピーすることと、テーブルのポインタの対応する1つに第2区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第1区間から第2区間にデータをコピーした後に、書き込み動作を実行させた装置にステータス情報を送信することを含んでもよい。データの区間の各々は、データのトラックであってもよい。記憶エリアの各々は記憶装置であってもよい。
更に本発明によれば、格納データへのアクセスは、少なくとも2つの別の記憶エリアの区間を指し示すポインタの第1テーブルを有する第1仮想記憶エリアであって、データの区間を含んでいない第1仮想記憶エリアを設け、別の記憶エリアの第1エリアを第1時点における別の記憶エリアの第1エリアのデータのコピーを表す第1仮想記憶エリアと関連付け、少なくとも2つの別の記憶エリアの区間を指し示すポインタの第2テーブルを有する第2仮想記憶エリアであって、データの区間を含んでいない第2仮想記憶エリアを設け、別の記憶エリアの第1エリアを第2時点における別の記憶エリアの第1エリアのデータのコピーを表す第2仮想記憶エリアと関連付け、仮想記憶エリアの1つのデータにアクセスする要求に応答して、別の記憶エリアのうちの特定の1つがデータを収容しているか判定を行い、ポインタのテーブルの1つを用いて、別の記憶エリアの特定の1つのデータにアクセスすることを含む。また、格納データへのアクセスは、第1仮想記憶エリアを別の記憶エリアの第1エリアに最初に関連付けるときに、第1テーブルのポインタ全てに別の記憶エリアの第1エリアの区間を最初に指し示させ、第2仮想記憶エリアを別の記憶エリアの第1エリアに最初に関連付けるときに、第2テーブルのポインタ全てに別の記憶エリアの第1エリアの区間を最初に指し示させることを含んでもよい。更に、格納データへのアクセスは、第1データ・インディケータを別の記憶エリアの第1エリアの区間と関連付け、第2データ・インディケータを別の記憶エリアの第1エリアの区間と関連付けることを含む。ここで、記憶エリアの第1の別のエリアの特定の区間に対する第1データ・インディケータは、別の記憶エリアの第1エリアを第1仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作が実行されたか否かを示す。又、記憶エリアの第1の別のエリアの特定の区間に対する第2データ・インディケータは、別の記憶エリアの第2エリアを第2仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作を実行したか否かを示す。また、格納データへのアクセスは、別の記憶エリアの第1エリア上にある第1区間への書き込みと、別の記憶エリアの第1エリアを第1仮想記憶エリアと関連付けた後に、第1区間に対して書き込み動作を実行していないことを示すデータ・インディケータとに応答して、別の記憶エリアの第2エリア上にある第2区間に第1区間のデータをコピーし、第1テーブルのポインタの対応する1つに第2区間を指し示させることを含んでもよい。また、格納データへのアクセスは、別の記憶エリアの第1エリア上にある第1区間への書き込みと、別の記憶エリアの第1エリアを第1および第2仮想記憶エリアと関連付けた後に、第1区間に対して書き込み動作を実行していないことを示すデータ・インディケータとに応答して、第1区間のデータを別の記憶エリアの第2エリア上にある第2区間にコピーし、第1テーブルのポインタの対応する1つと第2テーブルのポインタの対応する1つとに第2区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第2区間に対応する第1仮想記憶エリアに対する書き込みに応答して、第2区間から第3区間にデータをコピーすることを含んでもよい。また、格納データへのアクセスは、第1テーブルのポインタの対応する1つに第3区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第2テーブルのポインタの対応する1つに第3区間を指し示させることを含んでもよい。第1時点は、第2時点と同一であってもよい。第1時点は、第2時点と異なっていてもよい。データの区間の各々は、データのトラックであってもよい。記憶エリアの各々は記憶装置であってもよい。
更に、本発明によれば、コンピュータ・プログラム生産物が、少なくとも2つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアであって、データの区間を含まない仮想記憶エリアを提供する実行可能コードと、仮想記憶エリアのデータにアクセスする要求に応答して別の記憶エリアのどの特定の1つがデータを収容しているかを判定する実行可能コードと、ポインタのテーブルを用いて、別の記憶エリアの特定の1つのデータにアクセスする実行可能コードとを含む。また、コンピュータ・プログラム生産物は、別の記憶エリアの第1エリアを別の記憶エリアの第1エリアのデータのコピーを表す仮想記憶エリアと関連付ける実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、仮想記憶エリアを別の記憶エリアの第1エリアに最初に関連付けるときに、テーブルのポインタ全てに別の記憶エリアの第1エリアの区間を最初に指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、別の記憶エリアの第1エリア上の第1区間に対する書き込みに応答して、別の記憶エリアの第2エリア上にある第2区間に第1区間のデータをコピーし、テーブルのポインタの対応する1つに第2区間を指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、データ・インディケータを別の記憶エリアの第1エリアの区間と関連付ける実行可能コードを含んでもよい。特定の区間に対するデータ・インディケータは、別の記憶エリアの第1エリアを仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作が実行されたか否かを示す。また、コンピュータ・プログラム生産物は、別の記憶エリアの第1エリア上の第1区間に対する書き込みと、別の記憶エリアの第1エリアを仮想記憶エリアと関連付けた後に第1区間に書き込み動作が実行されていないことを示すデータ・インディケータとに応答して、第1区間のデータを、別の記憶エリアの第2エリア上にある第2区間にコピーし、テーブルのポインタの対応する1つに第2区間を指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、第1区間から第2区間へのデータ・コピーに続いて、書き込み動作を実行させた装置にステータス情報を送信する実行可能コードを含んでもよい。データの区間の各々は、データのトラックとすることができる。記憶エリアの各々は記憶装置としてもよい。
更に、本発明によれば、仮想記憶装置は、仮想記憶装置を仮想記憶装置のデータの区間の記憶領域である標準記憶装置と関連付け、区間の記憶領域の第1の部分が標準記憶装置のデータの区間である少なくとも1つのテーブルと、少なくとも1つのテーブルを備えた第1の複数のポインタとを含み、ポインタのうちの少なくとも一部が、第1の部分に対応する標準記憶装置の区間を指し示す。また、仮想記憶装置は、記憶領域の第2の部分であって、当該第2の部分にマップする標準記憶装置の対応する区間上のデータとは異なるデータを収容する区間の記憶領域の第2の部分と、少なくとも1つのテーブルを備えた第2の複数のポインタとを含んでもよく、第2の複数のポインタが、標準記憶装置とは異なる装置の区間を指し示す。第2の部分の各区間は、標準記憶装置の対応する区間上のデータの以前のバージョンを収容することができる。データの区間の各々は、データのトラックとすることができる。
図1を参照すると、記憶装置30は、複数のホスト・アダプタ(HA)32〜34、複数のディスク・アダプタ(DA)36〜38、および複数のディスク・ドライブ42〜44を含む。ディスク・ドライブ42〜44の各々は、DA36〜38のうちの対応する1つに接続されている。また、記憶装置30は、HA32〜34およびDA36〜38がアクセス可能なグローバル・メモリ46も含む。また、記憶装置30は、グローバル・メモリ46にアクセス可能なRDFアダプタ(RA)48も含む。RA48は、データ・リンク52を通じて、1つ以上の追加の遠隔記憶装置(図示せず)および/または1つ以上の他の遠隔装置(図示せず)と通信することができる。HA32〜34、DA36〜38、グローバル・メモリ46およびRA48は、バス54に接続されている、バス54は、これらの間の通信をしやすくするために設けられている。
HA32〜34の各々は、記憶装置30にアクセスする1つ以上のホスト・コンピュータ(図示せず)に接続することができる。ホスト・コンピュータ(ホスト)は、ディスク・ドライブ42〜44上に格納されているデータを読み取り、ディスク・ドライブ42〜44にデータを書き込む。グローバル・メモリ46は、ディスク・ドライブ42〜44からのデータ・トラックを保持するキャッシュ・メモリ、およびHA32〜34、DA36〜38、およびRA48がアクセス可能なテーブル用の記憶領域を含む。尚、ここでの記載では、データ・ブロックのことをトラック又はデータ・トラックと記述することを注記しておく。しかしながら、ここに記載するシステムは、適当なデータ増分量またはデータ区間のいずれとでも動作し、可変データ増分量および/または固定データ増分量も含み得ることを、当業者には理解し得る。
図2を参照すると、記憶装置30が、複数の標準論理装置61〜68を含むものとして示されている。標準論理装置61〜68の各々は、記憶装置30に接続されている1つ以上のホストにアクセス可能なボリュームに対応している。標準論理装置61〜68の各々は、ディスク・ドライブ42〜44の1つに対応しても、しなくてもよい。したがって、例えば、標準論理装置61はディスク・ドライブ42に対応することができ、ディスク・ドライブ42の一部に対応することができ、またディスク・ドライブ42の一部およびディスク・ドライブ43の一部に対応することもできる。標準論理装置61〜68の各々は、ホストにはディスクの記憶領域の連続ブロックのように見えるが、標準論理装置61〜68の各々は、ディスク・ドライブ42〜44の実際の連続物理記憶領域に対応しても、しなくてもよい。
また、記憶装置30は、複数の仮想装置71〜74も含むことができる。仮想装置71〜74は、記憶装置30に接続されているホストには、データ記憶領域の連続ブロックを含むボリュームのように見える。仮想装置71〜74の各々は、標準論理装置61〜68のうちの1つの全体、標準論理装置61〜68のうちの1つの一部、または標準論理装置61〜68のうちのいくつかの一部または全体の組み合わせのポイント・イン・タイム・コピー(point in time copy)を表すことができる。しかしながら、この明細書でいずれ更に詳しく述べるが、仮想装置71〜74は標準論理装置61〜68からのトラック・データを含まない。代わりに、仮想装置71〜74の各々は、トラック・データの一部または全部を格納するログ装置76またはログ装置78に接続されている。これについてはこの明細書中でいずれ更に詳しく説明する。仮想装置71〜74は、標準論理装置61〜68またはログ装置76、78のいずれかのデータのトラックを指し示すテーブルを含む。
仮想装置71は、標準論理装置61のポイント・イン・タイム・コピーを表すことができる。この明細書中でいずれ更に詳しく説明するが、仮想装置71は、ホストに対して仮想装置71が標準論理装置61のポイント・イン・タイム・コピーであるかのように見えることを容易にするトラック・データを含むログ装置76に接続されている。1つよりも多い仮想装置に対して単一のログ装置を用いることが可能である。したがって、仮想装置72〜74は、ログ装置78に接続されるものとして示されている。同様に、1つよりも多い仮想装置が単一の標準論理装置のポイント・イン・タイム・コピーを表すことも可能である。したがって、仮想装置72、73は、標準論理装置64のポイント・イン・タイム・コピーとして示されている。仮想装置72、73は、標準論理装置64の同じポイント・イン・タイム・コピーを表すことができ、あるいは異なる時刻に取得した標準論理装置64のポイント・イン・タイム・コピーを表すことができる。尚、標準論理装置61〜68の一部のみが、仮想装置71〜74の対応する一つのものと関連付けて示されており、その他の標準論理装置61〜68はそのようにされていないことを注記しておく。
実施形態によっては、記憶装置の代わりに、記憶エリアを用いて、本明細書に記載するシステムを実施することも可能である。したがって、例えば、仮想装置71〜74を仮想記憶エリアとし、標準論理装置61〜68を標準論理エリアとし、ログ装置76、78をログ・エリアとしてもよい。場合によっては、かかる実施態様は混成論理/仮想装置も考慮することができ、この場合、単一の論理装置は、標準論理装置として振る舞う部分、仮想装置として振る舞う部分、および/またはログ装置として振る舞う部分を有する。したがって、適当な場合には、この明細書中の説明における装置に対する言及を、記憶装置と直接対応する、または対応しない記憶エリアにも適用可能であることは言うまでもない。
図3を参照すると、図は、標準論理装置82、仮想装置84、およびログ装置86を示す。先に説明したように、仮想装置84は標準論理装置82の全部または一部のポイント・イン・タイム・コピーを表す。仮想装置84にアクセスする記憶装置に接続されているホストは、当該ホストが標準論理装置82にアクセスするのと同様に、仮想装置84にアクセスすることができる。しかしながら、仮想装置84は、標準論理装置82からのトラック・データを全く含んでいない。代わりに、仮想装置84は、標準論理装置82またはログ装置86のいずれかのトラックを指し示す複数のテーブル・エントリを含む。
仮想装置84を設置するとき(例えば、標準論理装置82のポイント・イン・タイム・コピーを作成するとき)、仮想装置84が作成され、設置の時点で標準論理装置82のトラックを指し示す適切なテーブル・エントリが設けられる。仮想装置84にアクセスしてトラックを読み取るホストは、標準論理装置82のトラックを指し示す仮想装置84のテーブル・エントリに基づいて、標準論理装置82から適切なトラックを読み取る。
仮想装置84が設置された後、ホストは標準論理装置82にデータを書き込むことが可能となる。この場合、標準論理装置82上に格納されていた以前のデータは、ログ装置86にコピーされ、標準論理装置82のトラックを以前に指し示していた仮想装置84のテーブル・エントリは、データがコピーされたログ装置86の新たなトラックを指し示すように変更される。このようにして、仮想装置84にアクセスするホストは、仮想装置84が設置されて以来変化していない標準論理装置82からのトラックを読み取るか、あるいは仮想装置84が設置された後に標準論理装置82からコピーされたデータを含むログ装置86から対応するトラックを読み取る。標準論理装置82および仮想装置84に対する読み出しおよび書き込みに伴うデータおよびポインタの調節については、この明細書中でいずれ更に詳しく説明する。
ここに記載する実施形態では、ホストは、ログ装置86には直接アクセスすることができない。即ち、ログ装置86は、仮想装置84(およびこの明細書中でいずれ更に詳しく説明するような他の仮想装置も可能である)と共に用いられることに限られる。加えて、ここに記載する実施形態では、標準論理装置82、仮想装置84、およびログ装置86を単一の記憶装置30上に設けることができる。しかしながら、異なる論理装置およびログ装置を別個の記憶装置上に設け、例えば、RDFプロトコルまたはその他の遠隔通信プロトコルを用いて相互接続することも可能である。加えて、標準論理装置82、仮想装置84、および/またはログ装置86の1つ以上の一部を、別個の記憶装置上に設け、適宜相互接続することも可能である。
図4を参照すると、仮想装置の別の使用例では、標準論理装置92、複数の仮想装置94〜97、およびログ装置98が示されている。図4の例では、仮想装置94は、午前10時に作成した標準論理装置92のポイント・イン・タイム・コピーを表す。同様に、仮想装置95は、正午に作成した標準論理装置92のコピーを表し、仮想装置97は、午後4時に作成した標準論理装置92のコピーを表す。尚、仮想装置94〜97の全てがログ装置98を共有してもよいことを注記しておく。加えて、仮想装置84〜97のうちの2台以上のテーブル・エントリ、または仮想装置94〜97のテーブル・エントリのサブセットが、ログ装置98の同じトラックを指し示すことも可能である。図4では例えば、仮想装置95および仮想装置96は、ログ装置98の同じトラックを指し示すテーブル・エントリを有するものとして示されている。
ここで説明する実施形態では、ログ装置98および他のログ装置は、記憶装置30が管理するログ装置の集合体によって設けられる。その場合、仮想装置はログ装置の追加のトラックを必要とするので、仮想装置のために、ログ装置集合体機構を用いて、余分なログ装置記憶領域が作成される(既存のログ装置または新たなログ装置のための追加トラックという形態)。このような記憶装置集合体資源は、当技術分野では公知である。集合体を用いない他の技法を用いても、ログ装置記憶領域を設けることは可能である。
図5を参照すると、図100は、装置情報を追跡するために用いられるテーブルを示す。第1テーブル102は、記憶装置またはHAおよび/またはDAのような記憶装置の要素によって用いられる装置全てに対応する。テーブル102は、記憶装置(または記憶装置の一部)によって用いられる論理装置全てに対応する、複数の論理装置エントリ106〜108を含む。テーブル102内のエントリは、標準論理装置、仮想装置、ログ装置、およびその他の種類の論理装置についての記述を含む。
テーブル102のエントリ106〜108の各々は、各論理装置毎の情報を収容する別のテーブルに対応する。例えば、エントリ107はテーブル112に対応することができる。テーブル112は、オーバーヘッド情報を収容するヘッダを含む。また、テーブル112は、論理装置の各シリンダに対するエントリ116〜118を含む。ここに開示する実施形態では、論理装置をどのように初期化するかに応じて、論理装置はいずれの数のシリンダでも収容することができる。しかしながら、他の実施形態では、論理装置は固定数のシリンダを収容するようにしてもよい。
テーブル112は、余剰トラック・バイト119のための区間を含むものとして示されている。余剰トラック・バイト119は、この明細書中でいずれ説明する方法で、ログ装置と共に用いられる。ここに開示する実施形態では、ログ装置のトラック毎に8つの余剰トラック・バイトがある。論理装置ではない装置には、余剰トラック・バイト119を用いることはできない。
シリンダ・エントリ116〜118の各々は、トラック・テーブルに対応する。例えば、エントリ117は、オーバーヘッド情報を有するヘッダ124を含むトラック・テーブル122に対応することができる。また、トラック・テーブル122は、各トラックに対するエントリ126〜128も含む。ここに開示する実施形態では、全シリンダに対して15個のトラックがある。しかしながら、別の実施形態では、シリンダ毎に異なる数のトラックを有することや、シリンダ毎に可変数のトラックを有することさえも可能な場合もある。標準論理装置およびログ装置では、エントリ126〜128の各々の情報は、記憶装置30(または、システムの構成によっては、遠隔記憶装置)のディスク・ドライブ42〜44の1つの物理アドレスへの(直接的または間接的な)ポインタを含む。したがって、トラック・テーブル122を用いると、テーブル102、112、122に対応する論理装置の論理アドレスを、記憶装置30のディスク・ドライブ42〜44上の物理アドレスにマップすることができる。仮想装置では、テーブル122のエントリ126〜128の各々は、対応する標準論理装置または対応するログ装置のトラックを指し示す。しかしながら、他の実施形態では、異なる機構を用いることも可能な場合もあり、その際、テーブル102、112、122は、データのトラックを収容する標準論理装置のみに用いられ、一方、単純なトラックのアレイのような、他の形式のテーブルが仮想装置によって用いられ、仮想装置のトラックが対応する標準論理装置またはログ装置のトラックにマップされる。
ログ装置の各トラックは、仮想装置によって用いられていないことを意味する空き状態か、あるいは当該トラックが1つ以上の仮想装置においてテーブル・エントリによって指し示されていることを意味する割当済み状態のいずれかにある。ここに開示する実施形態では、ログ装置のトラックを管理するには、最初に、ログ装置の空きトラック全ての二重リンク・リストを作成する。二重リンク・リストに対するポインタは、テーブル112の余剰トラック・バイト119によって与えられ、その結果ログ装置の余剰トラック・バイト119は、ログ装置のあらゆるトラックに対する8バイトを含む。ログ装置の各空きトラックについて、余剰8バイトは、ログ装置の次の空きトラックを指し示す順方向ポインタと、ログ装置の直前の空きトラックを指し示す逆方向ポインタとを含む。このように二重リンク・リストを用いることによって、ログ装置の空きトラックへのアクセスが容易となる。
加えて、ログ装置のトラックが割り当てられた場合(即ち、1つ以上の仮想装置によって用いられる場合)、当該トラックに対応する余剰トラック・バイト119を用いて、標準論理装置の対応するトラックを逆に指し示すことができる。したがって、仮想装置を設置した後に標準論理装置に書き込みを行う場合、標準論理装置からのデータをログ装置の新たなトラックにコピーし、論理装置の新たなトラックに対応する余剰トラック・バイトが、データの発信元である標準論理装置のトラックを逆に指し示すようにする。ログ装置の各トラックに、標準論理装置の対応するトラックを逆に指し示すようにさせることは、例えば、データ復元の状況では有用である。
加えて、ここに開示する実施形態では、割り当てられたトラックに対するトラック毎の余剰の8バイトに対するポインタも、データと共に格納される。即ち、ログ装置の特定のトラックが割り当てられると、標準論理装置の対応するトラックへ戻るポインタが、余剰トラック・バイト119と共に格納され、加えて、ログ装置のトラック上に、トラック・データ自体と共にポインタが格納される。CKDフォーマット・トラックでは、余剰の8バイトはブロック0に格納することができる。FBAフォーマット・トラックでは、余剰の8バイトは、トラック終端に添付される追加ブロック内に格納することができる。ここに開示する実施形態では、1ブロックは512バイトであり、FBAトラックは40ブロックを含み、追加のブロックが添付されると、41に増加する。例えば、ヤナイ他(Yanai et al.)の米国特許第5,206,939号に、異なるトラック・フォーマットが開示されている。その内容はこの言及により本願にも含まれるものとする。
図5のテーブル102、112、122は、記憶装置30のグローバル・メモリ46に格納することもできる。加えて、特定のホストによってアクセスされる装置に対応するテーブルも、HA32〜36のうちの対応する1つの内部メモリ内に格納することができる。加えて、RA48および/またはDA36〜38も、テーブル102、112、122の一部を用いてそれらデーブルを内部に格納することができる。
図6を参照すると、フロー・チャート140は、ホストが、仮想装置を介してアクセス可能なトラックに対応する装置テーブルからデータを読み出す際に実行するステップを示す。即ち、フロー・チャート140は、仮想装置に対してテーブル・エントリによって指し示されたトラックに関する情報を取得することを示す。
処理は、検査ステップ142から開始し、ここで、対象のトラック(即ち、読み出すテーブル・エントリに対応するトラック)が標準論理装置またはログ装置のどちらにあるか判断を下す。この決定を行うには、仮想装置の装置テーブル・エントリにアクセスし、対象のトラックのテーブル・エントリが、標準論理装置またはログ装置のいずれかを指し示しているか否かの判定を行う。検査ステップ142において、仮想装置のテーブル内のポインタが標準論理装置を指し示していると判断した場合、制御はステップ142からステップ148に移り、対象のテーブル・エントリを読み出す。ステップ148の後、処理は完了する。
検査ステップ142において、対象のトラックに対する仮想装置の装置テーブル内のポインタがログ装置を指し示していると判断した場合、制御はステップ142からステップ158に移行し、対象のログ・テーブル・エントリを読み出す。ステップ158の後、処理は完了する。
尚、場合によっては、データへのアクセスは、フラグまたはロックによって制御され、多数のプロセスが同時にデータにアクセスすることを禁止するようにしてもよいことを注記しておく。これは、特に、装置テーブルを読み出したり、変更している場合には有用である。ここに開示するシステムは、多数のプロセスによるデータへのアクセスを制御するための様々な機構のいずれをも想定しており、「フラグ」または「セマファー(semaphores)」としても知られている、ソフトウエアおよび/またはハードウエア・ロックの従来の組み合わせを含む。場合によっては、データにアクセスするプロセスは、別のプロセスがデータを解放するまで、待たなければならない場合もあり得る。一実施形態では、ハードウエア・ロックがソフトウエア・ロック(フラグ)へのアクセスを制御し、プロセスが最初にハードウエア・ロックの制御を取得し、ソフトウエア・ロックを検査し、次いでソフトウエア・ロックが解除されている場合、プロセスはソフトウエア・ロックを設定し、次いでハードウエア・ロックを解除する。プロセスがハードウエア・ロックを得て、ソフトウエア・ロックが解除されていないと判断すると、プロセスはハードウエア・ロックを解除し、ソフトウエア・ロックを設定した別のプロセスが、後の時点でソフトウエア・ロックを解除できるようにする。更に、場合によっては、最初に特定のトラックに対応するテーブル・エントリを読み出し、このトラックをキャッシュ・スロットに読み込み(トラックが未だキャッシュにない場合)、キャッシュ・スロットをロックし、次いで対応するテーブル・エントリを再度読み出すことも有用であることを注記しておく。
図7を参照すると、フロー・チャート170は、標準論理装置またはログ装置に対応する仮想装置に対する装置テーブルへの情報の書き込みに伴って実行されるステップを示す。処理は、第1ステップ172において開始し、書き込まれる装置テーブルのエントリに対応する特定のトラックは、標準論理装置またはログ装置のどちらにあるのか判断する。対象である特定のトラックが標準論理装置上にある場合、制御はステップ172からステップ178に移り、書き込まれる装置テーブルのエントリに対応するトラックをロックする。ステップ178においてトラックをロックすることによって、現プロセスが、トラックに対応する装置テーブルのエントリを修正している間他のプロセスがこのトラックにアクセスすることを防止し、かつ対応するテーブル・エントリを変更することを防止する。ステップ178に続いて、ステップ182において書き込み処理を実行する。ステップ182に続いて、ステップ184においてトラックのロックを解除する。ステップ184の後、処理は完了する。
検査ステップ172において、変更している仮想装置のテーブル・エントリに対応するトラックがログ装置を指し示す場合、制御はステップ172からステップ194に移り、書き込まれる装置テーブルのエントリに対応するログ装置のトラックをロックする。ステップ194に続くステップ196において、書き込み処理が実行される。ステップ196に続いて、ステップ198において、トラックのロックを解除する。ステップ194の後、処理は完了する。
図8を参照すると、フロー・チャート210は、仮想装置に対応する装置テーブルの変更に伴って実行するステップを示す。これは、仮想装置の装置テーブルのトラックのエントリが指し示す標準論理装置またはログ装置の装置テーブルの変更を示す図7のフロー・チャート170と対比するとよい。フロー・チャート210では、標準論理装置の装置テーブルやログ装置の装置テーブルではなく、仮想装置の装置テーブルが変更される。
処理は、第1ステップ212にて開始し、テーブルに対する変更が仮想装置の設置に関係するか否か判定を行う。この明細書中でいずれ説明するが、仮想装置の設置には、仮想装置を作成した後に、仮想装置へのホストによるアクセスを可能にすることが含まれる。仮想装置を設置することによって、仮想装置を標準論理装置と関連付けることになる(したがって、設置の時点における標準論理装置のポイント・イン・タイム・コピーを表す)。標準論理装置と関連付ける前では、仮想装置は設置されておらず、ホストによるアクセスも不可能である。設置後、仮想装置はホストによるアクセスが可能になる。
ステップ212において、テーブルに対する変更が仮想装置の設置に関係すると判定した場合、制御はステップ212からステップ214に移り、仮想装置に対する装置ロックを設定し、他のプロセスによるテーブルへのアクセスを禁止する。装置ロックは、この明細書中でいずれ説明するキャッシュ・スロット・ロックに匹敵する。
ステップ214に続いて、ステップ216において、仮想装置テーブルのポインタが、標準論理装置のトラックを指し示すようにし、更に設置した仮想装置に対応する標準論理装置のトラックの各々に対して保護ビットを設定する。ここに開示する実施形態では、標準論理装置のトラックは、各々、保護ビットとして設定可能な16ビットを有し、標準論理装置に対して設置された各論理装置毎に1ビットずつである。実施形態の中には、仮想装置には無関係に保護ビットを用いる場合もある。新たに設置される仮想装置には、16ビット・フィールド内に新たなビット位置が割り当てられるが、標準論理装置のトラック毎のビットを設定することができる。この明細書中でいずれ更に詳しく説明するが、保護ビットの設定、およびこれに続く標準論理装置に対する書き込みは、設置した仮想装置を標準論理装置に対応させるには特殊な処理を行う必要があることを示す。この特殊な処理については、この明細書中でいずれ更に詳しく説明する。ステップ216において、仮想装置の装置テーブルのトラック・エントリを全て、標準論理装置の対応するトラックを指し示すように変更する。したがって、仮想装置が最初に設置されるときには、仮想装置の装置テーブルのポインタは全て、標準論理装置のトラックを指し示すことになる。
ステップ216に続いて、ステップ217において、仮想装置をレディ状態(ready state)に設定し、仮想装置をホストに対してアクセス可能にする。ステップ217に続いて、ステップ218において仮想装置のロックを解除し、他の装置によるアクセスを可能にする。ステップ218の後、処理は完了する。
検査ステップ212において、仮想装置を設置していない(即ち、何らかの別の処理が実行されている)と判定した場合、制御は検査ステップ212からステップ222に移り、変更されている仮想装置の装置テーブルのエントリに対応するトラックをロックする。尚、ステップ222においてロックされるトラックは、標準論理装置上のトラック(仮想装置の装置テーブルにおける対象のエントリが標準論理装置を指し示す場合)、またはログ装置のトラック(対象のエントリがログ装置を指し示す場合)のいずれかとすることができる。ステップ222に続いて、ステップ224において、仮想装置の装置テーブルの変更を行う。ステップ224に続いて、ステップ226において、トラックのロックを解除する。ステップ226の後、処理は完了する。
図9を参照すると、フロー・チャート230は、ログ装置のトラック操作に伴って実行されるステップを示す。先に説明したように、ログ装置のトラックを維持するには、空いているログ装置のトラック(即ち、新たなデータを受け入れるために使用可能なトラック)の二重リンク・リストを作成する。したがって、1つ以上のトラックが、対応する仮想装置と共に使用するために必要な場合、二重リンク・リストから空きトラックを取得する。二重リンク・リストは、仮想装置の使用のために提供したトラックがもはや空きでないことを示すように、従来通りに変更される。逆に、1つ以上の仮想装置によって使用された1つ以上のトラックがもはや必要でなくなった場合、従来通りに、トラックを二重リンク・リストに戻し、トラックが空きであることを示す。図9のフロー・チャート230は、トラックを操作する多数のプロセスによるトラック(およびトラック・ポインタ)へのアクセスの制御に伴って実行されるステップを示す。
処理は、ステップ232において開始し、実行中の処理が、空きリスト上にあるトラックのみを変更するのか否か判定を行う。尚、例えば、空きトラックをリストのある部分から別の部分に、またはある空きリストから別の空きリストに(多数の空きリストの場合)移転させることにより空きリスト上のみでトラックを変更しても、いずれのデータに対応するトラックの変更も伴わないことを注記しておく。検査ステップ232において、実行中の変更が、空きリスト上のトラックのみに関与するのではないと判定した場合、制御はステップ232からステップ234に移行し、トラックをロックして、他のプロセスによるアクセスを防止する。
ステップ234に続いて、またはステップ234に到達しない場合はステップ232に続いて、検査ステップ236において、操作が割当済みのトラックのみに関与するのか否か判定を行う。割当済みトラックのみに関与するいずれの処理も、空きトラックのログ装置リストをロックする必要はない。ステップ236において、実行中の動作が割当済みトラックのみを操作しているのではないと判定した場合、制御はステップ236からステップ238に移行し、空きトラックのログ装置リストをロックし、他のプロセスによるアクセスを防止する。ステップ238の後、またはステップ238を実行しない場合はステップ236の後、ステップ242において、変更を実行する。
ステップ242の後、検査ステップ244において、操作が割当済みトラックのみに関与するのか否か判定を行う。ステップ244において、実行中の変更が割当済みトラックのみに関与するのではないと判定した場合、制御はステップ244からステップ246に移行し、ログ装置の空きリストのロックを解除する。ステップ246に続いて、またはステップ246に到達しない場合にはステップ244に続いて、検査ステップ248において、実行中の動作が空きリスト上にあるトラックのみを変更しているのか否かについて判定を行う。ステップ248において、実行中の動作が、空きリスト上にあるトラックのみを変更していると判定した場合、制御はステップ248からステップ252に移行し、ステップ234においてロックしたトラックのロックを解除する。ステップ252の後、またはステップ248の後ステップ252を実行しない場合、処理は完了する。
図10を参照すると、フロー・チャート280は、仮想装置からのデータ読み出しに伴って実行されるステップを示す。処理は、検査ステップ282にて開始し、仮想装置の対象トラックに対する装置テーブル・エントリが標準論理装置を指し示しているのか、またはログ装置を指し示しているのか判定を行う。ステップ282において、テーブルが標準論理装置を指し示していると判定した場合、制御はステップ282からステップ284に移り、標準論理装置からトラックを読み出す。ステップ284の後、処理は完了する。一方、ステップ282において、仮想装置の装置テーブルがログ装置を指し示していると判定した場合、制御はステップ282からステップ286に移り、対象のトラックをログ装置から読み出す。ステップ286の後、処理は完了する。
尚、場合によっては、検査ステップ282に先だって、読み取りの対象であるトラックが既にキャッシュ・メモリ(グローバル・メモリ)内にあるか否か判定を行うことも可能なこともある。その場合、ステップ282、284、286のいずれも実行することなく、キャッシュ・メモリからトラックを取得することができる。
図11を参照すると、フロー・チャート300は、仮想装置を既に設置してある標準論理装置のトラックへの書き込みに伴ってDAが実行するステップを示す。処理は、ステップ302にて開始し、標準論理装置上で書き込もうとしているトラックの保護ビットが設定されているか否か判定を行う。検査ステップ302において、保護ビットが設定されていないと判定した場合、制御はステップ302からステップ304に移行し、通常の書き込み動作を実行する。即ち、ステップ304において、標準論理装置に対して既に設置されている仮想装置の存在には係わらず、従来通りに標準論理装置にデータを書き込む。ステップ304の後、処理は完了する。
ステップ302において、書き込まれている標準論理装置のトラック上に1つ以上の保護ビットが設定されていると判定した場合、制御はステップ302からステップ306に移り、ログ装置の空きトラックを取得する。ログ装置の空きトラックは、標準論理装置のトラックからデータをコピーするために必要となる。また、この明細書中でいずれ更に詳しく説明するが、ログ装置の空きトラックは、空きトラックの二重リンク・リストを用いて管理することができる。したがって、ステップ306において、ログ装置の空きトラックのリストを照査し、ポインタを適宜変更して使用するための空きトラックの1つを取り出して、空きトラックを取得することも可能である。
ステップ306に続いて、ステップ308において、ステップ302で設定されていると判定された保護ビットに対応する仮想装置毎に、初期状態において標準論理装置上で書き込まれているトラックを指し示していた仮想装置のポインタを、ステップ306において取得したログ装置の空きトラックを指し示すようにステップ308において変更する。先の説明したように、1つの標準論理装置に対して1つよりも多い仮想装置を設置させることが可能である。特定の標準論理装置に対して設置した仮想装置毎に、特定の保護ビットが標準論理装置のトラックの各々に対して設定される。したがって、ステップ308において、ステップ302で設定されていることが検出された保護ビットに対応する仮想装置全てについて、トラック・ポインタを変更する。このように仮想装置の装置テーブルにおけるトラック・ポインタが変更され、ステップ306において取得した新たなトラックを指し示すようにする。
ステップ308に続いて、ステップ312において、標準論理装置からステップ306において取得したログ装置上の新たなトラックにデータをコピーさせる。ここに開示する実施形態では、データのコピーは、ディスクの記憶領域から記憶装置のグローバル・メモリに(例えば、キャッシュ・スロットに)データを移動させ、ステップ306において取得したログ装置のトラックにデータをコピーさせるように書き込み保留インディケータ(write pending indicator)を設定することによって、行うことができる。ステップ312は、書き込みが行われている標準論理装置のトラックから、ステップ306において取得したログ装置の新たなトラックにデータをコピーすることを表す。ステップ308において全てのポインタを変更するので、トラックに書き込む前に標準論理装置に対して設置されていたいずれの仮想装置も、今では古いデータ(即ち、仮想装置が設置されたときに標準論理装置のトラック上に存在していたデータ)を指し示すことになる。尚、トラックのコピーに関連して、標準論理装置のトラックの保護ビットを、ログ装置上のトラックに対する仮想装置マップ・ビットにコピーすることも注記しておく。これについては、この明細書中でいずれ更に詳しく説明する。
ステップ312に続いて、ステップ314において、ステップ306で取得したログ装置のトラックを変更し、テーブル(この明細書中の別のところで説明した)内の余剰ビットに、書き込みが行われている標準論理装置のトラックを逆に指し示させる。ログ装置のトラックに、データを供給した標準論理装置の対応するトラックを指し示させることは、多くの場合に有用である。例えば、データ復元に関して有用な場合がある。ステップ314に続いて、ステップ316において、書き込みが行われる標準論理装置のトラックの保護ビットをクリアする。ステップ316に続いて、ステップ318においてHAにステータスを送信する。ステップ318の後、処理は完了する。
尚、一旦HAがステータスを受信すると、HAは通常の書き込み動作を実行することができ、その場合、検査ステップ302において、保護ビットを設定しないことを注記しておく。何故なら、これらのビットはステップ316においてクリアされているからである。書き込み動作を実行しているHAは、ステップ302において設定された保護ビットを見て、該当するDAに保護要求を送信する。次いで、HAはDAから切断し、通常の書き込みを実行してもよいことを示すステータスがDAから到達するのを待つ。HAが切断され、DAからのステータスを待っている間、DAはフロー・チャート300に開示したステップを実行することができる。これについて、以下で更に詳しく説明する。
図12を参照すると、フロー・チャート320は、1つ以上の仮想装置が設置されている標準論理装置への書き込みに伴ってHAが実行するステップを示す。処理は、第1検査ステップ322において開始し、書き込みが行われている標準論理装置のトラックに対して、いずれかの保護ビットが設定されているか否か判定を行う。検査ステップ322において、設定されている保護ビットがないと判定した場合、制御はステップ322からステップ324に移り、通常の書き込みを実行する。ステップ324の後、処理は完了する。
検査ステップ322において、書き込みが行われている標準論理装置のトラックに対して1つ以上の保護ビットが設定されていると判定した場合、制御はステップ322からステップ326に移り、HAは要求をDAに送信し、当該トラックに保護ビットが設定されていることを示す。DAが、ステップ326において送信された要求を受信すると、DAは、先に説明した図11のフロー・チャート300において明記した動作を実行する。ステップ326に続いて、ステップ328において、HAはDAから切断し、他のプロセスおよび/または他のHAによってDAと共に(恐らく無関係な)動作を実行することができるようにする。
ステップ328に続いて、ステップ332において、HAは、DAが図11のフロー・チャート300に明記した動作を実行し、HAに設定されている保護ビットを処理するための適切なステップが実行されたことを示すステータスを送信する。ステップ332に続いて、処理はステップ322に戻り、標準論理装置のトラックの保護ビットを再度検査する。尚、2回目の繰り返しでは、DAはフロー・チャート300のステップを実行するのに伴って保護ビットをクリアしたので、書き込みが行われている標準論理装置のトラックの保護ビットはステップ322においてクリアされていると予想されることに注意されたい。勿論、DAが保護ビットをクリアし、ステップ322を再度実行する間に、標準論理装置に対して新たな仮想装置が設置されることは常に可能である。しかしながら、通常、標準論理装置の特定のトラックに対するステップ322の2回目の繰り返しでは、全ての保護ビットがクリアされていると判定することが予想され、制御はステップ322からステップ324に移行し、通常の書き込みを実行する。
図13を参照すると、フロー・チャート340は、仮想装置への書き込みに伴って実行されるステップを示す。フロー・チャート340は、HAおよびDA双方によって実行されるステップを表し、したがって、図11のフロー・チャート300および図12のフロー・チャート320と同様の、2つのフロー・チャートとして提示することも可能である。しかしながら、フロー・チャート340は、フロー・チャート300、320において明記し、かつ本明細書の本文の対応する部分に記載されたステップと同様のステップの一部を表すことは、当業者には理解されよう。
処理は、第1ステップ342において開始し、仮想装置が標準論理装置を指し示しているか否か判定を行う。指し示している場合、制御は検査ステップ342からステップ344に移行し、ログ装置の空きトラックを取得する。ステップ344に続いて、ステップ346において、書き込みが行われているトラックに対応する標準論理装置からのデータを、標準論理装置から、ステップ344において取得したログ装置のトラックにコピーする。ステップ346に続いて、ステップ348において、仮想装置のトラックに対するポインタを調節し、ステップ344において取得したトラックを指し示すようにする。ステップ348に続いて、ステップ352において、仮想装置に対応する保護ビットを、標準論理装置のトラック・データにおいてクリアし、標準論理装置のトラックに書き込みを行うときに、仮想装置のために特殊な処理が必要ないことを示す。ステップ352に続いて、ステップ354において、書き込みを実行する。ステップ354において、書き込むデータは、ステップ344において取得したトラックに書き込まれるトラックまたはトラックの一部である場合もある。ステップ354の後、処理は完了する。データがトラック全体に対応する場合、標準論理装置のトラックからログ装置の新たなトラックにデータをコピーするステップ346を省略することも可能である。何故なら、ステップ354においてトラック全体分のデータを書き込むと、ステップ346においてコピーしたデータ全てを上書きしてしまうからである。
ステップ342において、書き込みが行われている仮想装置のトラックのポインタが標準論理装置を指し示していないと判定した場合、制御はステップ342から検査ステップ356に移行し、標準論理装置に対して1つよりも多い仮想装置が設置されているか否か判定を行う。されていない場合、制御はステップ356からステップ358に移行し、ログ装置のトラックに通常の書き込み動作を実行する。検査ステップ356において、1つよりも多い仮想装置が標準論理装置に対して設置されていると判定された場合、制御はステップ356からステップ362に移行し、ログ装置から空きトラックを取得する。
ステップ362に続いて、ステップ364において、書き込みが行われる仮想装置に対応するトラックのデータを、ステップ362において取得したトラックにコピーする。ステップ364に続いて、ステップ366において、仮想装置のポインタを調節し、新たなトラックを指し示すようにする。一実施形態では、書き込みが行われている仮想装置のポインタに、新たなトラックを指し示させる。あるいは、書き込みが行われている仮想装置のポインタを変化させず、代わりに、ステップ366においてトラックを指し示す他の仮想装置全てのポインタ全てを調節することも可能である。
ステップ366に続いて、ステップ368において、ログ装置のトラックに対する仮想装置マップ・ビットを変更する。ログ装置のトラックでは、仮想装置マップ・ビットを用いて、どの仮想装置が各トラックを指し示すかを示すことができ、その場合、一実施形態では、16の仮想装置マップ・ビットがあり、各ビットが個々の仮想装置に対応する。つまり、ステップ356における検査は、トラックに対する仮想装置マップ・ビットを調べてもよい。
ステップ368に続いて、ステップ369において書き込みを実行する。尚、書き込みを実行するのは、ステップ362において取得したトラックに対してなのか、または書き込みが行われる仮想装置によって初期に指し示されたトラックに対してなのかは、ステップ366においてどのようにポインタを調節するかによって左右される。しかしながら、いずれにしろ、データが書き込まれている仮想装置によって指し示されているトラックにデータは書き込まれる。ステップ369の後、処理は完了する。
図14を参照すると、フロー・チャート370は、仮想装置の除去(即ち、削除)に伴って実行されるステップを示す。一旦仮想装置が設置され、その意図する目的で用いられた後、この仮想装置を除去することが望ましい場合もある。処理は、第1ステップ372において開始し、仮想装置の最初のトラックを指し示すように、ポインタを設定する。仮想装置を除去する際、この仮想装置に対応する各トラックを試験する。
ステップ372に続いて、ステップ374において、試験されている仮想装置のトラックが、標準論理装置を指し示すか否か判定を行う。指し示す場合、制御はステップ374からステップ376に移行し、除去する仮想装置に対応する標準論理装置のトラックの保護ビットをクリアする。ステップ376に続いて、ステップ378において、ポインタが仮想装置の次のトラックを指し示し、次のトラックを試験することによって、処理を継続する。ステップ378に続いて、ステップ382において、処理が完了したか否か(即ち、仮想装置の全トラックを処理したか否か)判定を行う。完了していない場合、制御はステップ382から、先に説明したステップ374に戻る。
検査ステップ374において、試験される仮想装置のトラックが標準論理装置を指し示していないと判定した場合、制御はステップ374からステップ384に移行し、除去する仮想装置に対応する論理装置のトラックに対する仮想装置マップ・ビットをクリアする。ログ装置の各トラックは、1組の仮想装置マップ・ビットを有し、どの仮想装置がログ装置のトラックを用いるかを示すことができる。したがって、ステップ384において、除去する仮想装置に対応する仮想装置マップ・ビットをクリアする。
ステップ384に続いて、検査ステップ386において、ステップ384でクリアしたビットが、トラックに対して設定した最後の仮想装置マップ・ビットであったか否か判定を行う。言い換えると、ステップ386では、ログ装置上のトラックを用いている仮想装置が他にもあるか否かについて判定を行う。ステップ386において、最後の仮想装置マップ・ビットがステップ384においてクリアされた(したがって、他にトラックを使用している仮想装置がない)と判定した場合、制御はステップ386からステップ388に移行し、ログ装置のトラックを、この明細書中の別のところで説明した、ログ装置のトラックの空きリストに戻す。ステップ388に続いて、またはステップ384においてクリアされたビットがログ装置のトラックの最後の仮想装置マップ・ビットではないと判定した場合にはステップ386に続いて、先に説明したステップ378において、仮想装置の次のトラックを後続の試験のために指し示させる。一旦仮想装置に対応するトラック全てを処理したなら、仮想装置に関連するテーブルやその他のデータ構造も除去することができるが、実施形態によっては、仮想装置を消滅させた後(deestablished)、仮想装置をホストによって使用できるようにしないまでは、仮想装置からのテーブルやその他のデータ構造を保持していてもよい。
以上、種々の実施形態に関連付けて本発明を開示したが、それらに対する変更は、当業者には容易に明白となろう。したがって、本発明の精神および範囲は、特許請求の範囲に明記したものとする。
ここに記載されたシステムと共に用いられる記憶装置の図。 ここに記載されたシステムと共に用いられる種々の論理ボリュームを示す記憶領域の図。 ここに記載されたシステムによる仮想装置の使用状態を示す図。 ここに記載されたシステムによる複数の仮想装置の使用状態を示す図。 ここに記載されたシステムと共に用いる装置テーブルを示す図。 ここに記載されたシステムにて仮想装置と共に用いられるテーブルの読み出しを示すフロー・チャート。 ここに記載されたシステムにて仮想装置と共に用いられるテーブルの書き込みを示すフロー・チャート。 仮想装置テーブルの変更、およびここに記載されたシステムによる仮想装置の設置を示すフロー・チャート。 ここに記載されたシステムにてログ装置のトラックを処理するために用いられるデータ構造の変更を示すフロー・チャート。 ここに記載されたシステムにて仮想装置の読み取りに伴って実行されるステップを示すフロー・チャート。 ここに記載されたシステムにて仮想装置を設置した標準論理装置に対する書き込みに伴って、ディスク・アダプタが実行するステップを示すフロー・チャート。 ここに記載されたシステムにて仮想記憶装置を設置した標準論理装置に対する書き込みに伴って、ホスト・アダプタが実行するステップを示すフロー・チャート。 ここに記載されたシステムにて仮想装置への書き込みに伴って実行されるステップを示すフロー・チャート。 仮想装置の除去に伴って実行されるステップを示すフロー・チャート。

Claims (10)

  1. 格納データへアクセスする方法であって、
    少なくとも2つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、前記仮想記憶エリアにはデータの区間を設けず、
    前記仮想記憶エリアのデータにアクセスする要求に応答して、前記別の記憶エリアのうちのデータを含む特定の1つのエリアを決定し、
    ポインタの前記テーブルを用いて、前記別の記憶エリアの前記特定の1つのエリアにあるデータにアクセスすることを備える、方法。
  2. 請求項1記載の方法において、
    前記別の記憶エリアのうちの第1のエリアを仮想記憶エリアと関連付け、前記仮想記憶エリアは別の記憶エリアのうちの前記第1エリアのデータのコピーを表すことを更に備える、方法。
  3. 請求項2記載の方法において、
    前記仮想記憶エリアを別の記憶エリアのうちの前記第1エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第1エリアの区間を指し示すようにすることを更に備える、方法。
  4. 請求項3記載の方法において、
    前記別の記憶エリアの前記第1エリア上の第1区間への書き込みに応答して、前記第1区間のデータを前記別の記憶エリアの第2エリア上にある第2区間にコピーし、テーブルのポインタの対応する1つに前記第2区間を指し示させることを更に備える、方法。
  5. 請求項4記載の方法において、前記第1区間から前記第2区間にデータをコピーする前に、前記第2区間を、データを含まない空き区間として保持することを更に備える、方法。
  6. 請求項3記載の方法において、
    データ・インディケータを前記別の記憶エリアの前記第1エリアの区間と関連付け、特定の区間に対するデータ・インディケータは、前記別の記憶エリアの前記第1エリアを前記仮想記憶エリアと関連付けた後に、前記特定の区間に対して書き込み動作が実行されたか否かを指示することを更に備える、方法。
  7. 請求項1記載の方法において、データの区間の各々は、データのトラックである、方法。
  8. 請求項1記載の方法において、前記記憶エリアの各々は記憶装置である、方法。
  9. 格納データへアクセスする方法であって、
    少なくとも2つの別の記憶エリアの区間を指し示すポインタの第1テーブルを有する第1仮想記憶エリアであって、データの区間を含んでいない第1仮想記憶エリアを設け、
    前記別の記憶エリアの第1エリアを第1時点における別の記憶エリアの第1エリアのデータのコピーを表す第1仮想記憶エリアと関連付け、
    少なくとも2つの別の記憶エリアの区間を指し示すポインタの第2テーブルを有する第2仮想記憶エリアであって、データの区間を含んでいない第2仮想記憶エリアを設け、
    前記別の記憶エリアの前記第1エリアを第2時点における前記別の記憶エリアの前記第1エリアのデータのコピーを表す第2仮想記憶エリアと関連付け、
    前記仮想記憶エリアの1つのデータにアクセスする要求に応答して、前記別の記憶エリアのうちの特定の1つがデータを収容しているか判定を行い、
    ポインタの前記テーブルの1つを用いて、前記別の記憶エリアの特定の1つのデータにアクセスすることを備える、方法。
  10. 請求項9記載の方法において、
    前記第1仮想記憶エリアを前記別の記憶エリアの前記第1エリアに最初に関連付けるときに、前記第1テーブルのポインタ全てに前記別の記憶エリアの前記第1エリアの区間を最初に指し示させ、
    前記第2仮想記憶エリアを前記別の記憶エリアの前記第1エリアに最初に関連付けるときに、前記第2テーブルのポインタ全てに前記別の記憶エリアの前記第1エリアの区間を最初に指し示させることを更に備える、方法。
JP2003584918A 2002-04-10 2003-04-10 仮想記憶装置 Pending JP2005532611A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/120,016 US7340489B2 (en) 2002-04-10 2002-04-10 Virtual storage devices
PCT/US2003/011272 WO2003088045A2 (en) 2002-04-10 2003-04-10 Copy-on-write snapshot for virtual storage devices

Publications (1)

Publication Number Publication Date
JP2005532611A true JP2005532611A (ja) 2005-10-27

Family

ID=28790016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003584918A Pending JP2005532611A (ja) 2002-04-10 2003-04-10 仮想記憶装置

Country Status (5)

Country Link
US (7) US7340489B2 (ja)
EP (1) EP1565809A2 (ja)
JP (1) JP2005532611A (ja)
CN (2) CN100354813C (ja)
WO (1) WO2003088045A2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008529187A (ja) * 2005-02-03 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 新規のポイント・イン・タイム・コピー動作
JP2014238864A (ja) * 2009-10-21 2014-12-18 デルフィクス コーポレーション 仮想データベースシステム
US9389962B1 (en) 2010-11-30 2016-07-12 Delphix Corporation Interfacing with a virtual database system
US9396074B2 (en) 2013-07-09 2016-07-19 Delphix Corp. Virtual database rewind
US9436556B2 (en) 2013-07-09 2016-09-06 Delphix Corp. Customizable storage system for virtual databases
US9514140B2 (en) 2010-07-15 2016-12-06 Delphix Corporation De-duplication based backup of file systems
US9600193B2 (en) 2015-02-04 2017-03-21 Delphix Corporation Replicating snapshots from a source storage system to a target storage system
US9639429B2 (en) 2012-10-04 2017-05-02 Delphix Corporation Creating validated database snapshots for provisioning virtual databases
US9904684B2 (en) 2009-10-21 2018-02-27 Delphix Corporation Datacenter workflow automation scenarios using virtual databases
US9990366B2 (en) 2015-03-13 2018-06-05 Delphix Corporation Virtual partitions in virtual databases
US10037204B2 (en) 2014-04-22 2018-07-31 Delphix Corp. Version control of applications
US10067952B2 (en) 2012-10-11 2018-09-04 Delphix Corporation Retrieving point-in-time copies of a source database for creating virtual databases
US10108685B2 (en) 2013-07-09 2018-10-23 Delphix Corp. Remote provisioning of virtual databases
US10333863B2 (en) 2009-12-24 2019-06-25 Delphix Corp. Adaptive resource allocation based upon observed historical usage

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
US20030225928A1 (en) * 2002-05-28 2003-12-04 Sun Microsystems, Inc. Method, system, and program for managing access to a device by device specific components and operating system specific components
DE10253174A1 (de) * 2002-11-14 2004-06-03 Siemens Ag Vorrichtung zur Entwicklung und/oder Konfiguration eines Automatisierungssystems
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US7577675B2 (en) * 2003-04-30 2009-08-18 Oracle International Corporation Determining a mapping of an object to storage layer components
US7552309B2 (en) 2005-05-06 2009-06-23 International Business Machines Corporation Data storage methods for hierarchical copies
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
JP2005190106A (ja) * 2003-12-25 2005-07-14 Hitachi Ltd 論理ボリュームを管理する記憶制御サブシステム
US7484210B2 (en) * 2004-02-17 2009-01-27 Intel Corporation Apparatus and method for a generic, extensible and efficient data manager for virtual peripheral component interconnect devices (VPCIDs)
US8959299B2 (en) * 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7987158B2 (en) * 2005-02-09 2011-07-26 International Business Machines Corporation Method, system and article of manufacture for metadata replication and restoration
US7694088B1 (en) * 2005-03-31 2010-04-06 Symantec Operating Corporation System and method for efficient creation of aggregate backup images
WO2006116203A1 (en) 2005-04-25 2006-11-02 Network Appliance, Inc. System and method for caching network file systems
US7689609B2 (en) * 2005-04-25 2010-03-30 Netapp, Inc. Architecture for supporting sparse volumes
US7490213B2 (en) * 2005-05-06 2009-02-10 Xiv Ltd. Dynamic allocation of storage for hierarchical copies
US7549029B2 (en) 2005-05-06 2009-06-16 International Business Machines Corporation Methods for creating hierarchical copies
US7836266B2 (en) * 2005-09-19 2010-11-16 International Business Machines Corporation Managing snapshot history in a data storage system
US7620938B2 (en) * 2005-10-31 2009-11-17 Microsoft Corporation Compressed program recording
US20100153671A1 (en) * 2005-12-01 2010-06-17 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US7664924B2 (en) * 2005-12-01 2010-02-16 Drive Sentry, Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US10503418B2 (en) 2005-12-01 2019-12-10 Drive Sentry Limited System and method to secure a computer system by selective control of write access to a data storage medium
US7805565B1 (en) 2005-12-23 2010-09-28 Oracle America, Inc. Virtualization metadata promotion
US8677087B2 (en) * 2006-01-03 2014-03-18 Emc Corporation Continuous backup of a storage device
US20070156982A1 (en) * 2006-01-03 2007-07-05 David Meiri Continuous backup using a mirror device
US7415489B2 (en) * 2006-01-10 2008-08-19 International Business Machines Corporation Managing an archived file system
US8762418B1 (en) 2006-05-31 2014-06-24 Oracle America, Inc. Metadata that allows refiltering and data reclassification without accessing the data
JP4963892B2 (ja) * 2006-08-02 2012-06-27 株式会社日立製作所 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
WO2008036833A2 (en) * 2006-09-20 2008-03-27 Drive Sentry, Inc. Selective control of write access to a data storage medium
US7617372B1 (en) 2006-09-28 2009-11-10 Emc Corporation Avoiding copy on first write
US7321962B1 (en) * 2007-02-07 2008-01-22 Network Appliance, Inc. Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream
US9152349B2 (en) 2007-03-23 2015-10-06 Emc Corporation Automated information life-cycle management with thin provisioning
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
WO2008129792A1 (ja) * 2007-04-18 2008-10-30 Sony Computer Entertainment Inc. ゲームシステムおよびゲーム機
US8775368B1 (en) 2007-06-27 2014-07-08 Emc Corporation Fine grained tiered storage with thin provisioning
US7949637B1 (en) 2007-06-27 2011-05-24 Emc Corporation Storage management for fine grained tiered storage with thin provisioning
US7822939B1 (en) 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US9817832B1 (en) 2007-10-31 2017-11-14 EMC IP Holding Company LLC Unified framework for policy-based metadata-driven storage services
US8352431B1 (en) 2007-10-31 2013-01-08 Emc Corporation Fine-grain policy-based snapshots
US10089308B1 (en) 2008-09-30 2018-10-02 EMC IP Holding Company LLC Method for using redundant data elimination to accelerate storage system scanning
US8151069B1 (en) 2008-10-29 2012-04-03 Emc Corporation Multiprotection for snapsnots
JP5074351B2 (ja) * 2008-10-30 2012-11-14 株式会社日立製作所 システム構築方法及び管理サーバ
US8566549B1 (en) 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
US8478937B2 (en) * 2009-09-30 2013-07-02 Cleversafe, Inc. Method and apparatus for dispersed storage memory device utilization
US20110113134A1 (en) 2009-11-09 2011-05-12 International Business Machines Corporation Server Access Processing System
US8433867B2 (en) * 2010-01-09 2013-04-30 International Business Machines Corporation Using the change-recording feature for point-in-time-copy technology to perform more effective backups
GB2483081A (en) * 2010-08-25 2012-02-29 Sony Corp America Tamper resistance in media processing using an obfuscated buffer handle
US8707003B1 (en) 2010-09-29 2014-04-22 Emc Corporation Rate control for asynchronous data replication
US8468169B2 (en) * 2010-12-01 2013-06-18 Microsoft Corporation Hierarchical software locking
US8600943B1 (en) 2010-12-31 2013-12-03 Emc Corporation Porting replication relationships
US9110693B1 (en) 2011-02-17 2015-08-18 Emc Corporation VM mobility over distance
US8843714B1 (en) 2011-03-30 2014-09-23 Emc Corporation Write pacing simulation tool
US8751739B1 (en) 2011-03-31 2014-06-10 Emc Corporation Data device spares
JP5765123B2 (ja) * 2011-08-01 2015-08-19 富士通株式会社 通信装置、通信方法、通信プログラム及び通信システム
US9229758B2 (en) 2011-10-28 2016-01-05 International Business Machines Corporation Passive monitoring of virtual systems using extensible indexing
US9128901B1 (en) 2011-12-30 2015-09-08 Emc Corporation Continuous protection of data and storage management configuration
GB2514042A (en) * 2012-03-01 2014-11-12 Siemens Ag RFID Transponder having a plurality of memory areas
JP5938968B2 (ja) * 2012-03-19 2016-06-22 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
CN103064761B (zh) * 2012-12-24 2016-12-28 华为技术有限公司 一种数据同步方法、设备和系统
US9015121B1 (en) 2013-01-15 2015-04-21 Emc Corporation Unified virtual machine and data storage snapshots
US9973215B1 (en) 2013-01-28 2018-05-15 EMC IP Holding Company LLC Controlled multipath data packet delivery with forward error correction
US9002798B1 (en) * 2013-02-11 2015-04-07 Symantec Corporation Systems and methods for remedying corrupt backup images of host devices
US8996460B1 (en) * 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9424544B2 (en) * 2013-06-05 2016-08-23 International Business Machines Corporation Archival management of business processes in a cloud environment
US9304885B2 (en) * 2013-06-18 2016-04-05 International Business Machines Corporation Passive monitoring of virtual systems using agent-less, near-real-time indexing
US9218139B2 (en) 2013-08-16 2015-12-22 International Business Machines Corporation Minimally disruptive virtual machine snapshots
US10013701B2 (en) 2013-10-09 2018-07-03 Selligent, Inc. System and method for managing message campaign data
US9665307B1 (en) * 2013-12-19 2017-05-30 EMC IP Holding Company LLC Incremental continuous data protection
US9645766B1 (en) 2014-03-28 2017-05-09 EMC IP Holding Company LLC Tape emulation alternate data path
US10530837B2 (en) 2014-04-10 2020-01-07 International Business Machines Corporation Always-on monitoring in the cloud
US10437783B1 (en) * 2014-09-25 2019-10-08 EMC IP Holding Company LLC Recover storage array using remote deduplication device
US9823973B1 (en) 2014-12-22 2017-11-21 EMC IP Holding Company LLC Creating consistent snapshots in a virtualized environment
US10083196B2 (en) 2015-02-04 2018-09-25 Delphix Corporation Creating secure virtual databases storing masked data
CN105207811B (zh) * 2015-08-28 2021-08-13 青岛海尔智能家电科技有限公司 一种替换非AllJoyn设备的方法及装置
US9927980B1 (en) 2016-03-31 2018-03-27 EMC IP Holding Company LLC Accessing point in time versions of a logical device in connection with I/O operations
US10635542B1 (en) 2017-04-25 2020-04-28 EMC IP Holding Company LLC Support for prompt creation of target-less snapshots on a target logical device that has been linked to a target-less snapshot of a source logical device
US10579481B1 (en) 2018-01-31 2020-03-03 EMC IP Holding Company LLC Restoring data from a storage device to a cloud
US10853389B2 (en) 2018-05-02 2020-12-01 EMC IP Holding Company LLC Efficient snapshot activation
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
US10853208B2 (en) 2018-12-11 2020-12-01 EMC IP Holding Company LLC Transferring a writable data set to a cloud service that is separate from the writable data set and terminate a snapshot after transfer
US11379289B2 (en) 2019-10-08 2022-07-05 EMC IP Holding Company LLC Encryption detection
US11265374B2 (en) 2019-10-15 2022-03-01 EMC IP Holding Company LLC Cloud disaster recovery
US11347641B2 (en) 2019-11-01 2022-05-31 EMC IP Holding Company LLC Efficient memory usage for snapshots based on past memory usage
US11100008B2 (en) 2019-11-01 2021-08-24 EMC IP Holding Company LLC Efficient memory usage for snapshots
US11188425B1 (en) 2020-05-28 2021-11-30 EMC IP Holding Company LLC Snapshot metadata deduplication
US11340795B2 (en) 2020-05-28 2022-05-24 EMC IP Holding Company LLC Snapshot metadata management
US11481138B2 (en) 2020-09-30 2022-10-25 EMC IP Holding Company LLC Creating indentical snapshots
US11748327B2 (en) * 2021-01-29 2023-09-05 Snowflake Inc. Streams using persistent tables
US11513900B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Remote replication of snapshots taken while replication was inactive
US11893260B2 (en) 2021-04-22 2024-02-06 EMC IP Holding Company LLC Snapshot-based remote replication
US11755230B2 (en) 2021-04-22 2023-09-12 EMC IP Holding Company LLC Asynchronous remote replication of snapshots
US11709614B2 (en) 2021-07-23 2023-07-25 EMC IP Holding Company LLC Reducing write delays while taking snapshots
US20230098735A1 (en) * 2021-09-24 2023-03-30 Lemon Inc. Collaborative advertising mechanism

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6467680A (en) * 1987-09-09 1989-03-14 Hitachi Ltd Vector processor
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5206939A (en) 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP2601586B2 (ja) * 1991-10-15 1997-04-16 富士通株式会社 配置要素の配置配線方法
EP0556551B1 (de) * 1992-02-21 1996-10-23 J.M. Voith GmbH Auftragwerk zum Auftragen von Streichfarbe auf eine Papierbahn
US5241670A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated backup copy ordering in a time zero backup copy session
US5381539A (en) 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
EP1003103B1 (en) * 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5689706A (en) * 1993-06-18 1997-11-18 Lucent Technologies Inc. Distributed systems with replicated files
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
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US5845147A (en) 1996-03-19 1998-12-01 Emc Corporation Single lock command for an I/O storage system that performs both locking and I/O data operation
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5857208A (en) * 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5881311A (en) * 1996-06-05 1999-03-09 Fastor Technologies, Inc. Data storage subsystem with block based data management
US5778394A (en) 1996-12-23 1998-07-07 Emc Corporation Space reclamation system and method for use in connection with tape logging system
US5915264A (en) 1997-04-18 1999-06-22 Storage Technology Corporation System for providing write notification during data set copy
JPH117505A (ja) * 1997-06-17 1999-01-12 Fujitsu Ltd カード型記憶媒体
US6038639A (en) * 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
JP4128641B2 (ja) 1997-10-13 2008-07-30 株式会社東芝 データ退避方法
US6076148A (en) 1997-12-26 2000-06-13 Emc Corporation Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem
US6192444B1 (en) 1998-01-05 2001-02-20 International Business Machines Corporation Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US6212531B1 (en) * 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6408369B1 (en) * 1998-03-12 2002-06-18 Emc Corporation Internal copy for a storage controller
US6631477B1 (en) * 1998-03-13 2003-10-07 Emc Corporation Host system for mass storage business continuance volumes
US6105039A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Generation and validation of reference handles
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
US6226759B1 (en) * 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6529944B1 (en) * 1999-01-06 2003-03-04 Emc Corporation Host system for remote control of mass storage volumes using cascading commands
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6363385B1 (en) 1999-06-29 2002-03-26 Emc Corporation Method and apparatus for making independent data copies in a data processing system
US6574709B1 (en) * 1999-09-30 2003-06-03 International Business Machine Corporation System, apparatus, and method providing cache data mirroring to a data storage system
US6772302B1 (en) * 1999-11-12 2004-08-03 International Business Machines Corporation Virtual copy method for data spanning storage boundaries
US6549992B1 (en) * 1999-12-02 2003-04-15 Emc Corporation Computer data storage backup with tape overflow control of disk caching of backup data stream
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6460054B1 (en) * 1999-12-16 2002-10-01 Adaptec, Inc. System and method for data storage archive bit update after snapshot backup
US6446176B1 (en) * 2000-03-09 2002-09-03 Storage Technology Corporation Method and system for transferring data between primary storage and secondary storage using a bridge volume and an internal snapshot copy of the data being transferred
US6779094B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
US6441767B1 (en) * 2000-11-29 2002-08-27 Raytheon Company Method and system for adjusting a threshold control in an analog-to-digital converter
US20020165942A1 (en) * 2001-01-29 2002-11-07 Ulrich Thomas R. Data path accelerator with variable parity, variable length, and variable extent parity groups
US7058788B2 (en) * 2001-02-23 2006-06-06 Falconstor Software, Inc. Dynamic allocation of computer memory
US6715050B2 (en) * 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US7107430B2 (en) * 2001-06-19 2006-09-12 Massachusetts Institute Of Technology Mechanism to reduce the cost of forwarding pointer aliasing
US6877109B2 (en) * 2001-11-19 2005-04-05 Lsi Logic Corporation Method for the acceleration and simplification of file system logging techniques using storage device snapshots
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
US7085785B2 (en) * 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
US7010553B2 (en) * 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
US7113945B1 (en) * 2002-04-10 2006-09-26 Emc Corporation Virtual storage device that uses volatile memory
US6857057B2 (en) * 2002-10-03 2005-02-15 Hewlett-Packard Development Company, L.P. Virtual storage systems and virtual storage system operational methods
US6898685B2 (en) * 2003-03-25 2005-05-24 Emc Corporation Ordering data writes from a local storage device to a remote storage device
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008529187A (ja) * 2005-02-03 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 新規のポイント・イン・タイム・コピー動作
US9817836B2 (en) 2009-10-21 2017-11-14 Delphix, Inc. Virtual database system
JP2014238864A (ja) * 2009-10-21 2014-12-18 デルフィクス コーポレーション 仮想データベースシステム
US10762042B2 (en) 2009-10-21 2020-09-01 Delphix Corp. Virtual database system
US9904684B2 (en) 2009-10-21 2018-02-27 Delphix Corporation Datacenter workflow automation scenarios using virtual databases
US10333863B2 (en) 2009-12-24 2019-06-25 Delphix Corp. Adaptive resource allocation based upon observed historical usage
US9514140B2 (en) 2010-07-15 2016-12-06 Delphix Corporation De-duplication based backup of file systems
US9778992B1 (en) 2010-11-30 2017-10-03 Delphix Corporation Interfacing with a virtual database system
US10678649B2 (en) 2010-11-30 2020-06-09 Delphix Corporation Interfacing with a virtual database system
US9389962B1 (en) 2010-11-30 2016-07-12 Delphix Corporation Interfacing with a virtual database system
US9639429B2 (en) 2012-10-04 2017-05-02 Delphix Corporation Creating validated database snapshots for provisioning virtual databases
US10346369B2 (en) 2012-10-11 2019-07-09 Delphix Corp. Retrieving point-in-time copies of a source database for creating virtual databases
US10067952B2 (en) 2012-10-11 2018-09-04 Delphix Corporation Retrieving point-in-time copies of a source database for creating virtual databases
US9436556B2 (en) 2013-07-09 2016-09-06 Delphix Corp. Customizable storage system for virtual databases
US10108685B2 (en) 2013-07-09 2018-10-23 Delphix Corp. Remote provisioning of virtual databases
JP2016526743A (ja) * 2013-07-09 2016-09-05 デルフィクス コーポレーション 仮想データベースの巻き戻し
US9396074B2 (en) 2013-07-09 2016-07-19 Delphix Corp. Virtual database rewind
US10037204B2 (en) 2014-04-22 2018-07-31 Delphix Corp. Version control of applications
US10540173B2 (en) 2014-04-22 2020-01-21 Delphix Corporation Version control of applications
US9600193B2 (en) 2015-02-04 2017-03-21 Delphix Corporation Replicating snapshots from a source storage system to a target storage system
US9990366B2 (en) 2015-03-13 2018-06-05 Delphix Corporation Virtual partitions in virtual databases
US10831707B2 (en) 2015-03-13 2020-11-10 Delphix Corp. Virtual partitions in virtual databases

Also Published As

Publication number Publication date
US20030195864A1 (en) 2003-10-16
US20030208462A1 (en) 2003-11-06
US20030196056A1 (en) 2003-10-16
US7266572B2 (en) 2007-09-04
US20030195887A1 (en) 2003-10-16
US20030208463A1 (en) 2003-11-06
US7340489B2 (en) 2008-03-04
US20080109632A1 (en) 2008-05-08
EP1565809A2 (en) 2005-08-24
WO2003088045A3 (en) 2005-06-30
WO2003088045A2 (en) 2003-10-23
US20030195886A1 (en) 2003-10-16
CN100380304C (zh) 2008-04-09
CN100354813C (zh) 2007-12-12
CN1820243A (zh) 2006-08-16
US8032492B2 (en) 2011-10-04
US7340461B2 (en) 2008-03-04
US7249130B2 (en) 2007-07-24
CN1788249A (zh) 2006-06-14

Similar Documents

Publication Publication Date Title
JP2005532611A (ja) 仮想記憶装置
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
US9037816B1 (en) Reversing a communication path between storage devices
US7024525B2 (en) Distributed background track processing
US6460054B1 (en) System and method for data storage archive bit update after snapshot backup
US9405680B2 (en) Communication-link-attached persistent memory system
US7409470B2 (en) Determining configuration data in connection with dynamic RDF
JP5133260B2 (ja) 連続バックアップ方法
US7412578B2 (en) Snapshot creating method and apparatus
US7113945B1 (en) Virtual storage device that uses volatile memory
US7783850B2 (en) Method and apparatus for master volume access during volume copy
JP6588080B2 (ja) 分散型共有メモリアプリケーションのメモリ破損の検出サポート
US20080320258A1 (en) Snapshot reset method and apparatus
JP2565658B2 (ja) リソースの制御方法及び装置
EP1840723A2 (en) Remote mirroring method between tiered storage systems
JP2008515112A (ja) 仮想順序付け書き込み
US7353240B1 (en) Method and storage system that enable sharing files among multiple servers
JP2007249573A (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP2007058286A (ja) 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法
US6810447B2 (en) Hierarchical approach to identifying changing device characteristics
US6732194B1 (en) Method and apparatus for multi-sequential data operations
US7925827B2 (en) Method and system for dirty time logging
US7257653B1 (en) Switching between copy mode and synchronous RDF mode
US6317857B1 (en) System and method for utilizing checksums to recover data
EP1507207B1 (en) Hierarchical approach to identifying changing device characteristics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081008

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602