JP2004127294A - 仮想記憶システムおよびその動作方法 - Google Patents

仮想記憶システムおよびその動作方法 Download PDF

Info

Publication number
JP2004127294A
JP2004127294A JP2003340014A JP2003340014A JP2004127294A JP 2004127294 A JP2004127294 A JP 2004127294A JP 2003340014 A JP2003340014 A JP 2003340014A JP 2003340014 A JP2003340014 A JP 2003340014A JP 2004127294 A JP2004127294 A JP 2004127294A
Authority
JP
Japan
Prior art keywords
virtual storage
pointer
data
controller
physical storage
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.)
Withdrawn
Application number
JP2003340014A
Other languages
English (en)
Inventor
Lee L Nelson
リー・エル・ネルソン
Rodger Daniels
ロジャー・ダニエルズ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004127294A publication Critical patent/JP2004127294A/ja
Withdrawn 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
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 記憶システム内にデータを記憶する改良されたシステムを提供する。
【解決手段】 仮想記憶システムは、複数の仮想記憶位置を含む仮想記憶空間と、データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間と、前記複数の仮想記憶位置を前記複数の物理記憶位置に関連付ける複数のアクティブ化されたポインタを記憶するように構成されたメモリと、前記アクティブ化されたポインタの少なくとも一部を非アクティブ化し、前記非アクティブ化されたポインタの少なくとも1つに関連する選択データに関する要求にアクセスし、前記非アクティブ化されたポインタを前記メモリに提供して前記ポインタを再アクティブ化することを含め、前記非アクティブ化されたポインタをアクティブ化し、前記要求に応答して、前記再アクティブ化されたポインタの少なくとも1つを変更するように構成された、コントローラと、を備える。
  【選択図】図1

Description

 本発明は、仮想記憶システムおよび仮想記憶システムの動作方法に関する。
 近年、ハードウェア、ソフトウェア、ファームウェア等を含むコンピュータシステムは、爆発的に成長・高度化し続けてきた。コンピュータシステムとインタフェースするように構成された周辺機器および他のコンポーネントもまた爆発的に成長し、向上してきた。
 さらに、コンピュータシステムは一般に、特に、遠方にあるコンピュータ間での通信を可能にするネットワーキングソリューションの発展に伴い、ますます多くのアプリケーションに使用されるようになっている。例えば、コンピュータシステムは、クライアントアプリケーション、サーバアプリケーション、ならびにスタンドアロン型パーソナルコンピューティングアプリケーションに利用される場合がある。
 コンピュータシステムの処理速度の向上および新しく多種多様なアプリケーションでのコンピュータシステムの使用が増えるに伴い、コンピュータシステムにより処理・使用されるデータの記憶および高速アクセスを援助する装置が望まれている。コンピュータシステムが利用する大量のデジタルデータを取り扱うために、大容量記憶装置が開発された。コンピュータシステムのコンポーネントまたは周辺機器に故障または他の障害がある間、継続して正常に動作するために、冗長記憶システムが開発された。より具体的には、大容量記憶装置を開発する際には、コスト(データ記憶装置ユニットあたりのコストが低いこと)、高入出力性能、および可用性(いくつかのコンポーネントが故障した場合でもデータが復元され、継続した動作を保証する能力)を含む3つの主な設計基準が通常考慮される。比較的大量のデータを冗長的に記憶するには、独立ディスク冗長アレイ(RAID)システムが利用されている。
 以下に述べるように、本発明の各種態様は、記憶システム内にデータを記憶する改良されたシステムおよび方法を提供する。
 以下の同じ譲受人に譲渡された出願に注目する。
 発明者David Umberger、Guillermo NavarroおよびRodger Danielsにより2002年10月3日に出願された「A system for Managing a Data Storage Array, a Method of Managing a Data Storage System, and a RAID Controller」と題する米国特許出願第10/264,915号、発明者David UmbergerおよびGuillermo Navarroにより2002年10月3日に出願された「Method of Managing a Data Storage Array, and a Computer System Including a RAID Controller」と題する米国特許出願第10/264,573号、発明者Michael B. JacobsonおよびLee L. Nelsonにより2002年10月3日に出願された「Computer Systems, Virtual Storage Systems and Virtual Storage System Operational Methods」と題する米国特許出願第10/264,957号、発明者Michael B. JacobsonおよびLee L. Nelsonにより2002年10月3日に出願された「Virtual Storage Systems, Virtual Storage Methods and Methods of Over Committing a Virtual RAID Storage System」と題する米国特許出願第10/264,659号、ならびに発明者Lee L. NelsonおよびRodger Danielsにより2002年10月3日に出願された「Virtual Storage Systems and Virtual Storage System Operational Methods」と題する米国特許出願第10/264,525号。
 一態様によれば、仮想記憶システムは、複数の仮想記憶位置を含む仮想記憶空間と、データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間と、複数の仮想記憶位置を複数の物理記憶位置に関連付ける複数のアクティブ化されたポインタを記憶するように構成されたメモリと、コントローラと、を備え、コントローラは、メモリから非アクティブ化されたポインタを抽出することを含め、アクティブ化されたポインタの少なくともいくつかを非アクティブ化することと、非アクティブ化されたポインタの少なくとも1つに関連する選択データに関する要求にアクセスすることと、非アクティブ化ポインタをメモリに提供してポインタを再アクティブ化することを含め、非アクティブ化ポインタをアクティブ化することと、要求に応答して、再アクティブ化されたポインタの少なくとも1つを変更することと、を実行するように構成されている。
 別の態様によれば、仮想記憶システムは、複数の物理記憶位置にデータを記憶するように構成された物理記憶手段と、複数の仮想記憶位置を用いて物理記憶手段の表現をホストに提供するように適合された仮想記憶手段と、複数の仮想記憶位置を複数の物理記憶位置に関連付けるように構成されたマッピング手段と、マッピング手段を利用して物理記憶位置にアクセスし、最初の時点においてマッピング手段の一部を非アクティブ化し、次の時点においてマッピング手段の上記一部をアクティブ化するように構成されたコントローラ手段と、を備え、マッピング手段の非アクティブ化された部分は物理記憶位置へのアクセスに利用されず、コントローラ手段は、マッピング手段の上記部分に対応する選択データに関する要求にアクセスし、要求に関連する識別子の記憶を制御し、記憶した後に識別子を使用してマッピング手段の上記部分を更新し、更新後に、マッピング手段の上記部分を利用して物理記憶位置にアクセスするようにさらに構成されている。
 さらに別の態様によれば、仮想記憶システムの動作方法は、複数の仮想記憶位置を含む仮想記憶空間を設けることと、データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間を設けることと、仮想記憶位置のそれぞれを物理記憶位置のそれぞれに関連付けるマッピングシステムを含むメモリを設けることと、マッピングシステムの少なくとも一部をメモリから抽出することと、マッピングシステムの抽出部分に対応する選択データに影響を及ぼす要求を提供することと、要求に関連する識別子を記憶することと、記憶された識別子を使用して選択データを識別するように、マッピングシステムの抽出部分の一部を更新することと、を含む。
 図1を参照して、データ記憶システムの例示的な構成を参照番号10で示す。本発明の態様によれば、記憶システム10は仮想記憶システムとして具現される。一構成では、記憶システム10は、さらに詳細に後述するように、仮想記憶空間と物理記憶空間との間に抽象的なアドレス指定またはマッピングを有する仮想アレイ(RAID)記憶システムである。仮想記憶システム構成は、数学的関数を利用し、物理記憶空間のブロックに固定されたリニアアドレス指定(リニアアドレッシング)を提供して所与のアドレスが既知の物理ブロックに対応する従来のディスクアレイ構造とは異なる。仮想記憶システムは、適応型の動的で任意のアドレス指定を実施し、従来の構成と比較して柔軟性を高めることができる。例えば、仮想記憶空間の複数の仮想記憶アドレスを利用して、物理記憶空間の単一の物理記憶位置をアドレス指定することができる。このような仮想記憶システム構成では、スナップショットボリュームデータとも呼ばれる、データのある時点でのコピー(ポイントインタイムコピー、point in time copies)を作成することができ、データの分岐(divergence)が行われると、仮想記憶システムの過大割り当てを行うことができる。仮想記憶システム構成では、従来の構造と比較して見掛けの容量および柔軟性が増大する。
 仮想記憶として構成された記憶システム10は、例示的な一構成では、SCSI(Small Computer System Interface)コマンドセットに従うリニアアドレス指定空間を利用する。ホスト20への記憶システム10の提示は、時点が違っても一貫していることが可能であるが、仮想記憶システム構成のマッピングシステムは、記憶システムの要求または要件に適合するように変更可能である。仮想記憶システムについての例示的な詳細は、Jacobson他への米国特許第5,392,244号に記載されている。仮想アレイ技術のさらなる詳細および態様については、HP Virtual Array Technology, 2001およびExecutive Summary: Virtualization、Simplification and Storage, November 2001に述べられており、これらは両方ともwww. hp. comから入手することができる。
 引き続き図1を参照すると、例示的に述べられる構成での記憶システム10は、コントローラ12およびデータを記憶するように構成された記憶空間14を含む。図示のアプリケーションにおける記憶システム10は、ホスト20とインタフェースするように構成されている。記憶システム10は、ホスト20から受け取ったデータを記憶するとともに、要求されたデータをホスト20に提供するように構成されている。ホスト20は、ワークステーション、パーソナルコンピュータ、サーバ、コンピュータ装置のネットワーク、または別個のデータ記憶システムを利用する他の適切なコンピュータ構造として実施することができる。
 図示の構成では、コントローラ12は、入出力(I/O)要求の取り扱いを含め、ホスト20に関するインタフェース動作を実施するように構成されている。さらに、コントローラ12は、記憶空間14のアドレス指定および記憶空間14でのデータの記憶の実施を含め、記憶空間14の管理を行う。例示的な一構成において以下に述べるように、コントローラ12は、物理記憶空間の仮想記憶空間表現およびマッピングシステムを作成し、また物理記憶空間と仮想記憶空間との間のアドレス指定を提供するように構成されている。
 図示の例示的な構成では、コントローラ12は中央処理装置(CPU)16およびメモリ18を備える。例示的な中央処理装置は、Motorola, Inc.から市販されているPowerPC(登録商標)440または8240である。
 記憶システム10のコントローラ12は、上に述べた‘244号特許に記載のAutoRAID動作を実施するように構成することができる。AutoRAID動作を実施するコントローラ12は、システム10内に記憶されているデータの使用を監視し、そのデータに最適のRAIDレベルを決定することができる。例えば、書き込みがあまり頻繁に行われないデータはRAID 5DPに記憶されて、それによって記憶効率が提供され、書き込みが頻繁に行われるデータはRAID1+0に記憶することができ、それによって最適なパフォーマンスが提供される。データは、データの年齢、そのデータにアクセスする頻度、物理ディスクの破損、および他の要因に応じてRAIDレベル間を移動することができる。例えば、コントローラ12は、RAID1にバックアップされているデータをRAID6領域に移動することによってより多くの記憶空間を作り出すことができる。ディスクが誤作動または消失した場合、可能な限り大きな冗長性でもって復元するために、コントローラ12はデータを新しい位置に移動することができる。古いデータをRAID1領域からRAID6領域に移動することもできる。さらに、他の理由によりデータを移動してもよい。
 メモリ18は、さらに後述する、記憶空間14をアドレス指定する際に使用するマップの記憶、コントローラ12が使用可能な実行可能コードの記憶、およびデータを一時的に記憶するキャッシュの提供に利用することができる。メモリ18は、ランダムアクセスメモリ(RAM)として実施することができ、一実施形態では、実行可能コード、マップ、およびキャッシュを記憶する複数の別個のメモリエリアを含むことができる。
 図2を参照して、システム10の記憶空間14の説明図を示す。記憶空間14は、上記システム10の例示的な仮想記憶アーキテクチャに従って仮想記憶空間22および物理記憶空間24を含む。仮想記憶空間22は複数の仮想記憶ボリューム26を含み、物理記憶空間24は複数の物理記憶ボリューム28を含む。図示しているボリューム26、28の数は例示的なものであり、図示する数よりも多くの、または少ないボリューム26またはボリューム28を所与のアプリケーションに利用することができる。
 仮想記憶ボリューム26は、論理装置番号(LUN)、論理ボリューム、または論理ドライブと呼ばれることもある。仮想記憶ボリューム26を含む仮想記憶空間22は、ホスト20に都合のよい記憶容量表現を提供する。ホスト20は、SCSIコマンドセットを利用して、仮想記憶ボリューム26を含む記憶空間14のアドレス指定を実施することができる。ホスト20は、HP−UX(登録商標)オペレーティングシステムに使用され、ヒューレット・パッカード社から市販されているLVMソフトウェア等の論理ボリュームマネージャを実施して、記憶システム10の集中管理を提供することができる。例えば、論理ボリュームマネージャは、記憶システム10をホストアプリケーションとインタフェースする際に使用される、ホスト20内の記憶システム10のデータ記憶の仮想化を提供することができる。システム10の管理機構は、複数のソフトウェア管理インタフェース:SCSIコマンドセット、仮想フロントパネル(VFP)、グラフィカルユーザインタフェース(GUI)、コマンドラインユーザインタフェース(CLUI)、アプリケーションプログラミングインタフェース(API)等に見られ、各種ソリューション統合に使用することができる。
 物理記憶ボリューム28は、実際の記憶デジタルデータを提供するように個々に構成されたディスクアレイを含むことができる(すなわち、上記の構成では仮想記憶空間を使用してデータは記憶されない)。一態様では、コントローラ12は、ボリューム28を使用してのデータの記憶を、所望のRAIDレベルに従って制御する。ボリューム28の数は、システム10の特定の実施態様に合わせて可変である。
 仮想記憶空間22は、物理記憶空間24の抽象表現をホスト20に提供する。仮想記憶空間22は、コントローラ12またはホスト20により所望のように変更することが可能である。例えば、仮想記憶空間22は、ホスト20が都合よくアクセスすることができるフォーマットで物理記憶空間24を表すように適合可能である。そして、ホスト20の論理ボリュームマネージャは、ホストアプリケーションが都合よく利用することができるフォーマットで、仮想記憶空間22(図示せず)のさらに別の仮想抽象を提供することができる。
 システム10の仮想記憶空間22は、複数のアドレスまたは記憶位置30を含む。図示の例示的な物理記憶空間24は、複数のアドレスまたは記憶位置36を含む。仮想記憶空間22のアドレス30は、データが記憶されている物理記憶空間24のアドレス36のアドレス指定を提供するために利用される。
 例えば、一実施形態では、コントローラ12は、物理記憶位置36にアクセスするために複数のポインタ34を含むマッピングシステム32を作成し実施するように動作する。マッピングシステム32のポインタ34は、メモリ18内に記憶され、仮想記憶空間22の複数のアドレス30それぞれを物理記憶空間24の各アドレス36に関連付けることができる。
 ホスト20は、要求を提出することによって、システム10に対してデータの読み出しまたは書き込みを行うことができる。このような要求は、仮想記憶ボリューム26の記憶位置30をアドレス指定することができる。ホスト20から受け取った、仮想記憶位置30を特定する要求は関連するポインタ34を有し、このポインタ34は、仮想記憶位置30を特定する要求に示されるように、ホスト20が読み出すべき、またはホスト20が書き込みを行うべき実際のデータを含む各物理記憶位置36を特定する。
 個々の仮想記憶位置30は、上記の実施態様の物理記憶位置36において予め定義された共通のデータ量を表すことができる。例えば、仮想記憶位置30は、例示的な一構成では、512バイトのデータを個々に含む512個のブロックを含むクラスタを指すことができる。従って、仮想記憶位置30は、一実施形態では物理記憶アドレスまたは位置36につき、512バイトのデータを個々に含む512個のブロックを含み、総計で256Kバイトのデータを提供する各物理記憶位置36のデータのクラスタサイズを指す。
 仮想記憶アーキテクチャに従って構成された記憶システム10は、従来のRAIDシステムでは不可能な動作を実施することができる。例えば、コントローラ12は、データ自体を複製するのではなく、コピー中の元のボリューム26のポインタを複製することによって記憶ボリューム26の仮想コピーを作成することができる。ポインタのこのような複製は、仮想記憶ボリューム26のある時点でのコピーすなわちスナップショットを提供するものと呼ぶことができる。
 図3を参照して、例示的なある時点でのコピーすなわちスナップショット動作についてさらに詳細に述べる。複数の仮想記憶ボリューム26および物理記憶ボリューム28が図3に示されている。第1の仮想記憶ボリューム40は親または元のボリュームと呼ぶことができ、第2の仮想記憶ボリューム42はスナップショットボリューム42と呼ぶことができる。スナップショット動作を行って、新しいスナップショットボリュームを作成するか、または既存のスナップショットボリュームをリフレッシュして元のボリュームのスナップショットを提供することができる。
 図示の例では、元のボリューム40は、仮想記憶位置30を物理記憶位置36にマッピングする、所与の時点における複数のポインタ34それぞれを含む。スナップショット動作中、コントローラ12は、元のボリューム40のもう一つの仮想記憶ボリューム42を作成する(スナップショットボリュームとも呼ばれる)。一実施形態では、コントローラ12は、ボリューム40の関連ポインタ34をコピーし、ボリューム40をスナップした時点で元のボリューム40と同じ物理記憶位置36を指す、同じポインタ34を含むボリューム42を作成する。以下に述べる別の構成では、スナップショットボリューム42は、ボリューム40のポインタ34に対応するが、物理記憶空間24のダミーアドレスを有し、ボリューム40のポインタ34からのアドレス36に頼ってデータのアドレス指定をする、ポインタ34を含むことができる。
 スナップショットボリューム42は、最初に作成されたときには、関連する物理記憶空間28のすべてを元のボリューム40と共有している。その後、スナップショットボリューム42あるいは元のボリューム40のいずれかのデータが、ホスト20からの動作またはコントローラ12の内部動作に応答して更新されることができる。更新が行われると、新しい/修正されたデータを保持するために、新しい物理記憶空間が割り当てられる。スナップショットボリューム42あるいは元のボリューム40のいずれか(すなわち、新しい/変更されたデータを受け取ったボリューム)の新しい/変更されたデータに対応するポインタ34が、新しいデータを記憶している新しいまたは変更された物理記憶アドレス36を指すように変更される一方で、変更されていないデータに対応する各ポインタ34は、同じまたは元のアドレス36を指し、スナップされたデータを保存する。新しい/変更されたデータプロセスに新しいポインタを提供することは、分岐(divergence)と呼ばれている。分岐した空間は、スナップショットボリューム42と元のボリューム40との間でもはや共有されない。
 例えば、図3に示すように、仮想記憶位置44は最初、物理記憶位置46をアドレス指定している。従って、元のボリューム40のスナップショット動作47の後、スナップショットボリューム42の各仮想記憶位置48も、物理記憶位置46をアドレス指定している。その後、第1の書き込み動作48が仮想記憶位置44に行われたものと仮定する。データが物理記憶位置46から検索され、第1の書き込み動作によって変更され、分岐データとして新しい物理記憶位置50に記憶される。仮想記憶位置44に関連するポインタ34は、第1の書き込み動作49の後に物理記憶位置50をアドレス指定する分岐ポインタになる。しかし、スナップショットボリューム42の仮想記憶位置48のポインタ34は依然として物理記憶位置46をアドレス指定し、スナップされた未変更の元データへのアクセスを提供する。
 スナップショットボリューム42のデータの更新も、スナップショットボリューム42の仮想記憶位置54に対する例示的な第2の書き込み動作52によって示すように生じる場合がある。それまでは仮想記憶位置54および対応する物理記憶位置55に関連していたポインタ34は、ここで、第2の書き込み動作後の、物理記憶位置55としてそれまでは記憶されていた変更データを含む、新しい物理記憶位置56を参照するように変更される。元のボリューム40の仮想記憶位置58に関連するポインタ34は、第2の書き込み動作後でも依然として物理記憶位置55をアドレス指定している。
 スナップショットボリュームは、親ボリュームがスナップされた時点でさらに物理記憶空間を消費することはないため、記憶システム10の利用可能な物理記憶空間が、分岐発生時に枯渇するようにスナップショットボリュームが構成される可能性がある。システム10がデータ変更の結果生じるスナップショットボリュームの分岐への適合に十分な物理記憶空間を有していない場合であっても、システム10ではスナップショット動作が可能である。記憶システム10のこの状態は、過大割り当てと呼ぶことができる。システム10の1つまたは複数のスナップショットボリュームが、それぞれの使用サイクルにおいて完全な分岐が行われない場合があるため、記憶システム10が過大割り当て状態になることが可能であることが有利である。このような場合において、過大割り当て状態の場合、記憶システム10は、利用可能な物理記憶空間よりも多くの記憶空間(仮想記憶空間で表される)を有しているように見える可能性がある。
 図4を参照して、記憶システム10の例示的な動作についてさらに説明する。特に、図4は、物理記憶空間24内でデータを操作する例示的なデータ移行動作を示している。データ移行とは、物理記憶空間24に記憶されているデータをある物理記憶位置36から別の物理記憶位置36に移動することである。上に述べたように、例示的な構成では、データ移行を利用して、データの年齢、データのアクセス頻度、物理ディスクの破損、または他の理由に応じて異なるRAIDレベル間でデータを移動することができる。
 図4は、仮想記憶ボリューム40および複数の時点における仮想記憶ボリューム40のスナップショットボリューム42を示す。例えば、仮想記憶位置60、62に関連するポインタ34は、物理記憶位置64に最初は関連付けられている。次の時点において、コントローラ12は、例えばデータ移行動作中、データを物理記憶位置64から別の物理記憶位置68に移動した。位置64から位置68への図示するデータの移動は、考えられるデータ移行動作を示した例示的なものである。他のデータ移行動作では、データを同じ物理記憶ボリューム28上の他の位置36に、または複数のボリューム28に移動することができる。
 移動したデータに関連するポインタ34は、新しい物理記憶位置68におけるデータの正しいアドレス指定を実施するように更新される。例えば、例示的な構成では、位置64に関連するポインタ34は、最初は位置64内のデータをアドレス指定するために利用される。その後、ポインタ34は、位置64から位置68にデータを移動した後に、位置68に関連するように変更され、位置68内のデータをアドレス指定するようになる。
 同時係属中の特許出願第10/264,525号に述べたように、追加のポインタ34の収容、追加のキャッシュ空間の提供、他の記憶空間の提供、または他の理由のために、メモリ18の一部(マッピング空間とも呼ばれる場合がある、ポインタ34の記憶専用のメモリ18の部分)を解放することが望ましい場合がある。
本発明の態様は、後述するように、追加のポインタを収容するためまたは他の理由のために、メモリ18または他のマッピング空間の記憶能力を向上させる、構造的態様および方法を提供する。
 一動作態様によれば、コントローラ12は、マッピングシステム32の一部およびそのポインタ34を、マッピング空間(例えばメモリ18)から抽出し、新しいポインタ34または他の目的のために記憶容量を提供するように構成される。その後、マッピングシステム32の抽出部分およびポインタ34を再びメモリ18に提供して、仮想記憶空間22と物理記憶空間24との間のアドレス指定を実施する際に使用することができる。
 一実施形態では、マッピングシステム32中の適切なポインタ34を含む部分が識別され、これをメモリ18から抽出することができ、マッピングシステム32の一部の抽出によりシステム10のパフォーマンスに対する悪影響は最小限に抑えられる。例えば、一態様では、システム10の動作中およびホスト20からのI/O要求処理中の遅延が最小になるマッピングシステム32の部分を抽出することが望ましい。
 例示的な動作では、動作の復元またはデータのテープ記憶媒体へのストリーミングに、上に述べたスナップショットボリュームが一般に利用される。あるいは、スナップショットボリュームのデータに対して、比較的長い時間期間、アクセス、変更、または利用が行われない場合もある。しかし、スナップショットボリュームの生成は、スナップショットボリュームのポインタ34の記憶にメモリ18の資源を消費する。従って、スナップショットボリュームが物理記憶空間をさらに消費し得ない場合であっても、一実施形態では、メモリ18は、スナップショットボリュームのポインタ34を記憶するために利用される。
 本発明の態様によれば、コントローラ12は、例えば、仮想記憶ボリューム26のタイプを含む基準を利用して、非アクティブ化する候補としてマッピングシステム32の一部を識別することができる。コントローラ12は、例えば、スナップショットボリュームである、または通常のボリュームではないボリュームの識別を含むマッピング空間32の部分を非アクティブ化する部分として識別する基準を利用することができる。例示的な一構成によれば、コントローラ12は、マッピングシステム32中のスナップショットまたは他のボリュームのポインタ34を含む部分をメモリ18から抽出するように構成される。仮想記憶ボリュームのマッピングシステム32の各部分の抽出は、仮想記憶ボリュームの非アクティブ化と呼ぶことができる。例示的な本態様によれば、コントローラ12は、非アクティブ化する候補として1つまたは複数の仮想記憶ボリュームを識別し、その後、識別されたボリューム26に対応するマッピングシステム32およびポインタ34をそれぞれメモリ18から抽出する。
 本発明の他の態様によれば、コントローラ12は、非アクティブ化に適切な仮想記憶ボリューム26またはマッピングシステム32の部分を識別する追加または他の基準を利用することができる。例えば、コントローラ12は、所与の仮想記憶ボリューム26の、所定の時間期間、ボリューム26に関してホスト20からの入出力要求がない不活動状態期間について監視することができる。コントローラ12は、このような基準または他の基準を使用して仮想記憶ボリューム26の非アクティブ化を指定することができる。
 一実施形態では、コントローラ12は、識別されたスナップショットボリュームまたは他の仮想記憶ボリューム26に対応するマッピングシステム32のポインタ34をメモリ18から抽出して、追加のポインタ34の記憶を含む他のことに使用可能なメモリ18の量を増大する。コントローラ12は、ポインタ34またはマッピングシステム34の部分をコピーまたは除去して、上に述べた抽出を実行することができる。マッピングシステム32の抽出された部分は、マッピングシステム32の非アクティブ化部分と呼ぶことができる。本発明の態様によれば、マッピングシステム32の非アクティブ化部分および非アクティブ化仮想記憶ボリューム26は、非アクティブ化状態にある間は物理記憶位置のアクセスに利用されない。仮想記憶空間22と物理記憶空間24の間のアドレス指定は、マッピングシステム32のアクティブ化部分を利用して実施される。
 例示的な1つの抽出動作では、コントローラ12は、非アクティブ化すると識別されたスナップショットまたは他のボリュームに対応する記憶オブジェクトを識別するテーブルにアクセスする。個々の記憶オブジェクトは、識別されたボリュームの複数のポインタ34のページを識別する。個々のページはセグメントとも呼ばれ、64KBのサイズを有し、16384個のポインタ34を含む。個々のポインタ34は、上に述べたように、各物理記憶位置36に256KBサイズの物理記憶空間を有するクラスタを指す。従って、例示的な本実施形態では、個々のページまたはセグメントは、物理記憶空間24内の4GBのデータをアドレス指定する。ポインタ34は、適切なボリュームならびに各記憶オブジェクト、ページ、およびポインタ34の識別後、メモリ18からページアウト、または抽出される。従って、一実施形態では、ポインタ34は、非アクティブ化すると識別されたボリュームの1つまたは複数のページに従って抽出することができる。
 例示的な本実施態様によれば、抽出されたポインタ34は、最初の記憶位置(例えば、メモリ18)とは異なる他の記憶位置内にコピーまたは提供される。例えば、抽出されたポインタ34は、物理記憶空間24の物理記憶ボリューム28にコピーされる。抽出後、抽出されたポインタ34を記憶していたメモリ18の部分が別のポインタ34(例えば、新しい、または既存の別の仮想記憶ボリューム26)の記憶に利用可能になる。従って、識別されたポインタ34をメモリ18から抽出すると、メモリ18のマッピング空間の、新しいポインタ34の記憶に適合するのに利用可能な容量が増大する。このような実施形態では、コントローラ12は、所望であれば、新しいポインタ34をポインタ34が抽出されたメモリ18中の位置に書き込むように構成される。
 非アクティブ化した後の時点で、コントローラ12は、非アクティブ化ポインタ34またはマッピングシステム32の非アクティブ化部分(例えば、非アクティブ化仮想記憶ボリューム26に対応する)を再アクティブ化して、再アクティブ化したポインタ32を使用して物理記憶位置36のアドレス指定を再び提供することができる。例えば、コントローラ12は、非アクティブ化仮想記憶ボリューム26のポインタ34を物理記憶空間24から抽出し、このポインタ34をメモリ18に提供して、仮想記憶ボリューム26および各ポインタ34を再アクティブ化することができる。
 コントローラ12は、異なる構成で複数の基準に応答して再アクティブ化手順を開始することが可能である。例示的な基準としては、非アクティブ化された仮想記憶ボリューム26のデータの復元動作要求、ボリューム26のデータをテープに書き込む要求、または他の理由が挙げられる。所与の仮想記憶ボリューム26の再アクティブ化に適合するとともに、メモリ18内に適切なマッピング空間を提供するために、別の仮想記憶ボリューム26を非アクティブ化することができる。
 本発明の態様は、マッピングシステム32およびマッピングポインタ34の改良された非アクティブ化動作を提供するシステムおよび方法を含む。以下に述べるように、本発明は、例示的な構成でジャーナルを利用して、対応するポインタ34が非アクティブ化されている選択データに提供された要求(トランザクションとも呼ばれる)に適応する。例えば、図3に関して説明した分岐(divergence)動作の要求および図4に関して上に述べたデータ移行動作の要求をマッピングシステム32に収容して適用させて、非アクティブ化されている対応するポインタ34を有する物理記憶空間24内での選択されたデータへのアクセス可能性を確保する。
 本発明の例示的な動作について、関連するポインタ34が前もって非アクティブ化されている選択されたデータの分岐を参照して以下に述べる。別の手順を利用して、例えば、図3を参照して述べた例示的なスナップショット動作47を使用して、スナップショットボリューム42を作成してもよい。考えられる1つのスナップショット動作47では、スナップショットボリューム42の作成時に、元のボリューム40のポインタ34がスナップショットボリューム42にコピーされ、スナップショットボリューム42内で利用される。
 考えられる別のスナップショット動作47では、スナップショットボリューム42に関連するポインタ34が元のボリューム40のポインタ34に対応して作成されるが、スナップショットボリューム42のポインタ34には、最初は適切な元の物理記憶位置36をアドレス指定しないダミー(例えば、ヌル)アドレス値が、作成時に割り当てられる。
分岐が生じると、影響を受けたポインタ34が、適切な元の物理記憶アドレス36それぞれを用いて更新され、後に分岐した元のスナップデータへのアクセスを提供することができる。
 本発明の態様は、各ポインタ34が非アクティブ化されている選択データに関するホスト要求、内部生成要求、または他の要求に適応するシステムおよび方法を含む。非アクティブ化の後、非アクティブ化されたポインタ34はもはやメモリ18内にはなく、一実施形態では、物理記憶ボリューム28内に提供される。受け取った要求に応答して物理記憶ボリューム28においてリアルタイムで非アクティブ化されたポインタ34を更新すると、要求に応答してリアルタイムで更新を実施するために、物理記憶ボリューム28を探索する必要があり、この探索が比較的低速であるため、性能および速度の劣化に繋がる場合がある。
本発明の態様は、システム10の性能を実質的に維持しながら、要求提供/受け取り時にポインタ34が非アクティブ化されている選択データにアドレス指定を提供するという要求に応える。
 すぐ後に述べる本発明の態様は、複数の物理記憶アドレス36を含むマッピングシステム32のポインタ34が、スナップショットボリューム42の作成時にコピーされる構成に関してのものである。1つまたは複数の非アクティブ化ポインタ34に関連するデータに影響を及ぼす、非アクティブ化されているスナップショットボリューム42の各元ボリューム40への要求を受け取ることができる。
 例示的な1つの要求は、各非アクティブ化スナップショットボリューム42の非アクティブ化ポインタ34によってもアドレス指定される物理記憶位置36の選択データへの書き込みであってよい。受け取った書き込み要求により、データの分岐が生じる。スナップショットボリューム42のポインタ34は選択データの物理記憶位置36のアドレスを含むため、スナップされた元データのアドレス指定を提供するために、各ポインタ34に対して変更を行う必要はない。
 別の例示的な要求は、非アクティブ化されたスナップショットボリューム42の非アクティブ化ポインタ34によってアドレス指定される選択データのデータ移行の要求であることができる。このような場合、第1のすなわち元の物理記憶位置36のストレージから、第2のすなわち次の物理記憶位置36のストレージに選択データが変更されることになるであろう。本発明の態様によれば、データ移行要求を記憶しておき、後の時点で(例えば、再アクティブ化するときに)、この要求を適切な非アクティブ化ポインタ34に適用することができる。
 例えば、一実施形態では、コントローラ12はデータ移行要求を生成するか、または要求が別のエンティティ(例えば、ホスト20)から受け取られることができる。コントローラ12は、データ移行要求が非アクティブ化ポインタ34の1つまたは複数に関連する選択データに関わるものか否かを判断する。本発明の態様によれば、コントローラ12は、後述するように選択データが1つまたは複数の非アクティブ化ポインタ34に関連する場合、移行要求を記憶しておくことができる。
 一構成では、コントローラ12は、データ移行要求に関連し、かつ/または対応する識別子をメモリ18内に記憶することができる。例示的な識別子は、後の時点で変更すべき特定のポインタ34を識別し、指示されたデータ移行後に各選択データを見つけることができる新しい物理記憶アドレス36(変更済アドレスとも呼ばれる)も含む。その後(例えば、関連する非アクティブ化仮想記憶ボリューム26をアクティブ化するとき)、コントローラ12は、
識別子の新しい物理記憶アドレス36を使用して、識別された各ポインタ34を変更して、
各ポインタ34が変更後アドレス36において移行されたデータを新しくアドレス指定するようにして、再アクティブ化されたポインタ34を介して、選択データにアクセスできるようにする。
 すぐ後に述べる本発明の態様は、システム10のスナップショット構成に関してのものである。この構成では、物理記憶アドレス36を含むマッピングシステム32のポインタ34がスナップショットボリューム42の作成時にコピーされず、必要に応じて元のボリューム40からポインタ34にアクセスされる。上に述べたように、1つまたは複数の非アクティブ化ポインタ34に関連するデータに影響を及ぼす、非アクティブ化されているスナップショットボリューム42の元のボリューム40それぞれへの要求を受け取る場合がある。
 例えば、要求に関連する選択データの分岐につながる書き込み要求または他の要求が提供される場合、スナップショットボリューム42の各非アクティブ化ポインタ34が、後の時点で、変更前の選択データ(例えば、元データ)の元アドレス36を含むように変更される。このような状況では、コントローラ12は、スナップデータの元の物理記憶アドレス36を含む、要求の識別子を提供して記憶し、スナップショットボリューム42のスナップデータへのアクセスを保持する。コントローラ12は、分岐前にスナップショットボリューム42の作成に利用された元ボリューム40の元のポインタ34からの元アドレス36にアクセスすることができる。
 その後、非アクティブ化スナップショットボリュームを再アクティブ化することができ、
コントローラ12により、記憶されている識別子および元のボリューム40からの元アドレス36を使用して、スナップショットボリュームが作成された時点での選択データにアクセスするために、適切なポインタ34を変更することができる。
一例では、再アクティブ化されたポインタ34のダミー値を識別子の選択データの元アドレス36で置き換えるか、または、選択データの元アドレス34を収容するように変更して、
データ変更要求およびデータ変更後に、元のポインタ34の元のスナップデータになおアクセス可能となるようにすることができる。
 複数の物理記憶アドレス36を含むマッピングシステム32のポインタ34が、スナップショットボリューム42の作成時にコピーされない構成に関してのデータ移行要求の場合、非アクティブ化ポインタ34の変更は、分岐が発生しない場合には必要ないはずである。これは、分岐が発生するまで、上に述べた例示的な一構成においては収容することのできる、移動されたデータの元アドレス36をスナップショットボリューム42の必要なポインタ34として、更新に利用可能なためである。
 本発明のさらなる態様によれば、コントローラ12は、1つまたは複数の識別子をメモリ18内に記憶することができる。所与のスナップショットボリューム42の場合、コントローラ12は、後の時点(例えば、アクティブ化するとき)に変更または更新すべきすべての非アクティブ化ポインタ34を識別するジャーナルを作成することができる。適当な時間に、コントローラ12はメモリ18からジャーナルにアクセスし、1つまたは複数の変更を各ポインタ34に適用して、要求によって影響を受ける選択データへのアクセスを保証することができる。
 本発明の他の態様によれば、コントローラ12は、追加または他の記憶位置に識別子を記憶することができる。例えば、コントローラ12は、識別子をメモリ18内にまず記憶し、その後、その識別子を物理記憶空間24内に記憶することができる。代替的に、コントローラ12は、メモリ18内に記憶することなく、物理記憶空間24または他の適切な位置内に識別子を直接記憶するよう進んでもよい。
 識別子がメモリ18内に記憶される構成の場合、後の時点で識別子を物理記憶空間24にコピーまたは移動することが望ましいことがある。例えば、所定数の識別子がメモリ18内に記憶されているものとして検出された場合、コントローラ12は、識別子を物理記憶空間24に移動して、メモリ18の資源を解放することができる。その後は、識別子は物理記憶空間24からアクセスされ、適切なポインタ34の更新に利用することができる。
 本発明のさらなる態様によれば、非アクティブ化ポインタへの更新または変更は、上に述べたように再アクティブ化されるときに、または他の都合のよい時点で行うことが可能である。例えば、コントローラ12は、ある状態を検出し、その検出に応答してポインタ34をアクティブ化し、検出に応答して変更を行うように構成されることができる。代替的に、コントローラ12は、なお非アクティブ化状態にあるポインタ34に更新を行ってもよい。監視可能な考えられる状態としては、システム10が比較的休止している期間(例えば、所定の期間、ホスト20からの命令がない)が挙げられる。考えられる別の状態としては、スナップショットボリューム42の選択データに関して所定数の要求および/または識別子の記憶の発生の監視が挙げられる。説明したこのような態様では、システム10の需要を低減することができる期間の変更および更新を調整することが可能である。
 図5は、コントローラ12により実行可能な、本発明の例示的な態様を実施する例示的な動作方法を示す。本方法は、メモリ18内の実行可能コードとして具現され、コントローラ12によって実行することができる。より多くの、またはより少ないステップ、または代替のステップを含む他の方法も可能である。
 まず、ステップS10において、コントローラがマッピングシステムのポインタを識別し、非アクティブ化する。
 ステップS12において、コントローラは、ステップS10において非アクティブ化したポインタに対応する選択データに影響を及ぼす要求の存在について監視する。ステップS12の条件が否定される場合、コントローラはステップS16に進む。
 ステップS12の条件が肯定される場合、コントローラはステップS14に進み、要求の識別子を生成してジャーナル内に記憶する。
 ステップS16において、非アクティブ化されているポインタを再アクティブ化すべきか否かが判断される。ステップS16の条件が否定される場合、コントローラはステップS12に戻る。
 ステップS16の条件が肯定される場合、コントローラはステップS18に進み、非アクティブ化されているポインタをメモリにコピーしてそのポインタを再アクティブ化する。
 ステップS20で、コントローラは、記憶されている1つまたは複数の識別子を含むジャーナルにアクセスし、記憶されている1つまたは複数の識別子に応答して1つまたは複数のアクティブ化されているポインタを変更する。
 本明細書に述べたスナップショットボリュームには、元のボリュームのバックアップの提供を含む多くの用法がある。元のボリュームの多くのスナップショットボリュームが仮想記憶システム10内に同時に存在することが可能である。スナップショットボリュームは、ある時間期間にわたる規定の間隔に従って作成することができ、個々のスナップショットボリュームが、異なる時点または瞬間時点における元のボリュームのバックアップを表すことができる。
 スナップショットボリュームは、スナップショットボリュームからの元ボリュームの復元が通常、テープバックアップからの復元よりもはるかに高速であり、中断の度合いが低いため、従来のテープバックアップに改良を提供する。さらに、スナップショットボリュームの作成は、元のボリュームをテープにコピーする場合と比較して高速であり、中断の度合いが低い。
 本発明の態様では、大量のマッピングメモリが利用される(すなわち、個々のスナップショットボリュームが元のボリュームと同量のマッピングメモリを含み得るため)という、複数のスナップショットボリューム(例えば、元ボリュームのスナップショットボリューム)の作成に伴う問題が軽減される。本明細書に述べたように、本発明の態様では、スナップショットボリュームを収容するマッピングメモリの消費が低減するとともに、スナップショットボリュームの作成における制限要因としてのマッピングメモリの影響が少なくなる。
 本発明の態様では、スナップショットまたは他のボリューム内のデータが破損する機会がなくなるか、または低減される。例えば、本発明の態様によっては、ジャーナルを利用してトランザクションまたは変更とも呼ばれる要求を記憶する。例示的な動作によれば、スナップショットボリュームが再アクティブ化されメモリに提供された後に、ジャーナルエントリをスナップショットボリュームに適用することができる。
 本発明はは、例としてのみ与えられた開示の実施形態に限定されず、特許請求の範囲によってのみ限定される。
例示的な記憶システムの機能ブロック図である。 例示的な仮想記憶システムとして実施される図1の記憶システムの説明図である。 例示的な仮想記憶システムのスナップショット動作の説明図である。 例示的な仮想記憶システムのデータ移行についての説明図である。 仮想記憶システムのマッピングシステムの例示的な管理方法を示すフローチャートである。

Claims (10)

  1.  複数の仮想記憶位置を含む仮想記憶空間と、
     データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間と、
     前記複数の仮想記憶位置を前記複数の物理記憶位置に関連付ける複数のアクティブ化されたポインタを記憶するように構成されたメモリと、
     前記メモリから前記非アクティブ化されたポインタを抽出することを含め、前記アクティブ化されたポインタの少なくとも一部を非アクティブ化し、前記非アクティブ化されたポインタの少なくとも1つに関連する選択データに関する要求にアクセスし、前記非アクティブ化されたポインタを前記メモリに提供して前記ポインタを再アクティブ化することを含め、前記非アクティブ化されたポインタをアクティブ化し、前記要求に応答して、前記再アクティブ化されたポインタの少なくとも1つを変更するように構成された、コントローラと、
     を備える仮想記憶システム。
  2.  前記コントローラは、前記要求に関連する識別子を記憶し、前記識別子を使用して前記少なくとも1つの再アクティブ化されたポインタを変更するように構成された、請求項1に記載の仮想記憶システム。
  3.  前記コントローラは、前記選択データの元のアドレスを含む前記識別子を記憶し、前記元のアドレスを使用して前記少なくとも1つの再アクティブ化されたポインタを変更するように構成された、請求項2に記載の仮想記憶システム。
  4.  前記コントローラは、前記選択データの変更後アドレスを含む前記識別子を記憶し、前記変更後アドレスを使用して前記少なくとも1つの再アクティブ化されたポインタを変更するように構成された、請求項2に記載の仮想記憶システム。
  5.  前記コントローラは、前記メモリ内に前記識別子を記憶するように構成された、請求項1乃至4のいずれか一項に記載の仮想記憶システム。
  6.  複数の仮想記憶位置を含む仮想記憶空間を設けることと、
     データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間を設けることと、
     前記仮想記憶位置のそれぞれを前記物理記憶位置のそれぞれに関連付けるマッピングシステムを含むメモリを設けることと、
     前記マッピングシステムの少なくとも一部を前記メモリから抽出することと、
     前記マッピングシステムの前記抽出部分に対応する選択データに影響を及ぼす要求を提供することと、
     前記要求に関連する識別子を記憶することと、
     前記マッピングシステムの前記抽出部分の一部を更新して、前記記憶された識別子を使用して前記選択データを識別することと、
     を含む仮想記憶システムの動作方法。
  7.  前記要求を提供することに応答して、前記更新前に、前記選択データをある物理記憶位置から別の物理記憶位置に移動することをさらに含み、
     前記更新することは、前記抽出部分の前記部分のポインタを変更して前記別の物理記憶位置を指すようにすることを含む、請求項6に記載の仮想記憶システムの動作方法。
  8.  状態を検出することをさらに含み、前記更新することは前記検出に応答して行われる、請求項6または7に記載の仮想記憶システムの動作方法。
  9.  前記検出することは、所定の期間ホストからの命令がないことを検出することを含む、請求項8に記載の仮想記憶システムの動作方法。
  10.  前記要求を提供することは、複数の要求を提供することを含み、
     前記記憶することは、前記要求に関連する複数の識別子を記憶することを含み、
     前記検出することは、所定数の識別子が記憶されていることを検出することを含む、請求項8に記載の仮想記憶システムの動作方法。
JP2003340014A 2002-10-03 2003-09-30 仮想記憶システムおよびその動作方法 Withdrawn JP2004127294A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/264,661 US6857057B2 (en) 2002-10-03 2002-10-03 Virtual storage systems and virtual storage system operational methods

Publications (1)

Publication Number Publication Date
JP2004127294A true JP2004127294A (ja) 2004-04-22

Family

ID=32042291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003340014A Withdrawn JP2004127294A (ja) 2002-10-03 2003-09-30 仮想記憶システムおよびその動作方法

Country Status (2)

Country Link
US (1) US6857057B2 (ja)
JP (1) JP2004127294A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689796B2 (en) 2006-09-05 2010-03-30 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data

Families Citing this family (54)

* 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
JP2004110367A (ja) * 2002-09-18 2004-04-08 Hitachi Ltd 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム
US7263593B2 (en) 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
JP2004220450A (ja) * 2003-01-16 2004-08-05 Hitachi Ltd ストレージ装置、その導入方法、及びその導入プログラム
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US20040254964A1 (en) * 2003-06-12 2004-12-16 Shoji Kodama Data replication with rollback
JP4433372B2 (ja) * 2003-06-18 2010-03-17 株式会社日立製作所 データアクセスシステム及び方法
JP2005018193A (ja) * 2003-06-24 2005-01-20 Hitachi Ltd ディスク装置のインタフェースコマンド制御方法ならびに計算機システム
EP1668486A2 (en) * 2003-08-14 2006-06-14 Compellent Technologies Virtual disk drive system and method
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
JP4307202B2 (ja) 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
JP2005190036A (ja) * 2003-12-25 2005-07-14 Hitachi Ltd 記憶制御装置及び記憶制御装置の制御方法
US7529897B1 (en) * 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
JP4168277B2 (ja) * 2004-01-22 2008-10-22 日本電気株式会社 論理ユニット数拡張装置
US8601035B2 (en) * 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
JP4646574B2 (ja) 2004-08-30 2011-03-09 株式会社日立製作所 データ処理システム
US7395396B2 (en) 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
JP2006127028A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
US7606934B1 (en) * 2005-03-10 2009-10-20 Sun Microsystems, Inc. Dynamic routing of I/O requests in a multi-tier storage environment
US20060235905A1 (en) * 2005-04-14 2006-10-19 Rajesh Kapur Method and system for preserving real-time access to a system in case of a disaster
US8868628B2 (en) * 2005-12-19 2014-10-21 International Business Machines Corporation Sharing computer data among computers
JP2007226347A (ja) * 2006-02-21 2007-09-06 Hitachi Ltd 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
CN100423491C (zh) * 2006-03-08 2008-10-01 杭州华三通信技术有限公司 虚拟化网络存储系统及其网络存储设备
EP2357552A1 (en) 2006-05-24 2011-08-17 Compellent Technologies System and method for RAID management, reallocation and restriping
JP2009538493A (ja) * 2006-05-24 2009-11-05 コンペレント・テクノロジーズ データ・プログレッション・ディスク局所性最適化のシステムおよび方法
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US20080005727A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity
US20080127220A1 (en) * 2006-06-30 2008-05-29 Robert Paul Morris Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080005528A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
US20080005728A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US9102962B2 (en) * 2007-10-16 2015-08-11 Shiu Nan Chen Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof
US8464270B2 (en) 2007-11-29 2013-06-11 Red Hat, Inc. Dependency management with atomic decay
US8832255B2 (en) 2007-11-30 2014-09-09 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
JP5159353B2 (ja) 2008-02-08 2013-03-06 株式会社日立製作所 記憶システム、解除方法及び副側のストレージ装置
US8645837B2 (en) * 2008-11-26 2014-02-04 Red Hat, Inc. Graphical user interface for managing services in a distributed computing system
US8701120B2 (en) 2009-02-27 2014-04-15 International Business Machines Corporation Virtualization of storage buffers used by asynchronous processes
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US8683145B2 (en) * 2009-11-09 2014-03-25 Microsoft Corporation Packed storage commands and storage command streams
US20120005557A1 (en) * 2010-06-30 2012-01-05 Eitan Mardiks Virtual copy and virtual write of data in a storage device
US8566541B2 (en) * 2010-09-14 2013-10-22 Hitachi, Ltd. Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
KR101618999B1 (ko) * 2012-07-09 2016-05-18 가부시키가이샤 씨오-콘브 네트워크 부트 시스템
CN108845863B (zh) * 2018-06-12 2022-08-26 北京百度网讯科技有限公司 用于虚拟机与宿主机的通信方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392244A (en) 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689796B2 (en) 2006-09-05 2010-03-30 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data
US7958328B2 (en) 2006-09-05 2011-06-07 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data
US8161259B2 (en) 2006-09-05 2012-04-17 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data
US8751765B2 (en) 2006-09-05 2014-06-10 Hitachi, Ltd. Computer system, storage system and method for saving storage area by integrating same data

Also Published As

Publication number Publication date
US20040068637A1 (en) 2004-04-08
US6857057B2 (en) 2005-02-15

Similar Documents

Publication Publication Date Title
US6857057B2 (en) Virtual storage systems and virtual storage system operational methods
JP3478746B2 (ja) ディスク上の追加のアドレス空間を設ける方法
JP4222917B2 (ja) 仮想記憶システムおよびその動作方法
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US7089395B2 (en) Computer systems, virtual storage systems and virtual storage system operational methods
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
JP4398463B2 (ja) インクリメンタル仮想コピーのための方法、システム、及びプログラム
US7398363B2 (en) Storage system and power source control method thereof, storage apparatus and data processing method
US6041366A (en) System and method for dynamic specification of input/output attributes
US7146474B2 (en) System, method and computer program product to automatically select target volumes for a fast copy to optimize performance and availability
US7024530B2 (en) Method, system, and program for establishing and using a point-in-time copy relationship
JP2005276208A (ja) 通信リンク接続の永久メモリシステム
JP4681247B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
JP2001520778A (ja) データセットコピー中の書き込み通知を提供するためのシステム
US7921262B1 (en) System and method for dynamic storage device expansion support in a storage virtualization environment
EP1636690B1 (en) Managing a relationship between one target volume and one source volume
JP2008269374A (ja) ストレージシステムおよびその制御方法
US7165160B2 (en) Computing system with memory mirroring and snapshot reliability
US8566541B2 (en) Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
US7676644B2 (en) Data processing system, storage apparatus and management console
US7082445B2 (en) Fast data copy using a data copy track table
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US8006049B2 (en) Export of logical volumes by pools
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061205