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

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

Info

Publication number
JP2004127295A
JP2004127295A JP2003340093A JP2003340093A JP2004127295A JP 2004127295 A JP2004127295 A JP 2004127295A JP 2003340093 A JP2003340093 A JP 2003340093A JP 2003340093 A JP2003340093 A JP 2003340093A JP 2004127295 A JP2004127295 A JP 2004127295A
Authority
JP
Japan
Prior art keywords
virtual storage
memory
storage space
pointer
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.)
Granted
Application number
JP2003340093A
Other languages
English (en)
Other versions
JP4222917B2 (ja
Inventor
Rodger Daniels
ロジャー・ダニエルズ
Lee L Nelson
リー・エル・ネルソン
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 JP2004127295A publication Critical patent/JP2004127295A/ja
Application granted granted Critical
Publication of JP4222917B2 publication Critical patent/JP4222917B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/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

Abstract

【課題】 記憶システム内にデータを記憶する改良されたシステムを提供する。
【解決手段】 仮想記憶システム10は、データを記憶するように構成された物理記憶空間24と、物理記憶空間24内に記憶されたデータの表現をホスト20に提供するように適合された仮想記憶空間22と、物理記憶空間24と仮想記憶空間22の間のアドレス指定を実装するために利用される複数のポインタ34を記憶するように構成されたメモリ18と、メモリ18から前記ポインタ34のうち選択されたものを抽出し、第1の時点において前記選択されたポインタをメモリ18とは異なる別の記憶位置に提供し、前記別の記憶位置から前記選択されたポインタ34を抽出し、前記第1の時点後の第2の時点において前記選択されたポインタ34を前記メモリ18に提供するように構成されたコントローラと、を備える。
  【選択図】図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,661号。
 一態様によれば、仮想記憶システムは、データを記憶するように構成された物理記憶空間と、物理記憶空間内に記憶されているデータ表現をホストに提供するように適合された仮想記憶空間と、物理記憶空間と仮想記憶空間との間のアドレス指定の実施に利用される複数のポインタを記憶するように構成されたメモリと、メモリから選択されたポインタを抽出し、第1の時点において、選択されたポインタをメモリとは異なる別の記憶位置に提供し、別の記憶位置から選択されたポインタを抽出し、第1の時点後の第2の時点において、選択されたポインタを前記メモリに提供するように構成されたコントローラと、を備える。
 別の態様によれば、仮想記憶システムは、複数の物理記憶位置にデータを記憶するように構成された物理記憶手段と、複数の仮想記憶位置を用いて物理記憶手段の表現をホストに提供するように適合された仮想記憶手段と、複数の仮想記憶位置を複数の物理記憶位置に関連付けるように構成されたマッピング手段と、マッピング手段を利用して物理記憶位置にアクセスし、最初の時点においてマッピング手段の一部を非アクティブ化し、次の時点においてマッピング手段の上記一部をアクティブ化するように構成されたコントローラ手段と、を備え、マッピング手段の非アクティブ化された部分は物理記憶位置へのアクセスに利用されず、マッピング手段のアクティブ化された部分は物理記憶位置へのアクセスに利用される。
 さらに別の態様によれば、仮想記憶システムの動作方法は、複数の仮想記憶位置を含む仮想記憶空間を設けることと、データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間を設けることと、仮想記憶位置のそれぞれを物理記憶位置のそれぞれに関連付けるマッピングシステムを含むメモリを設けることと、第1の時点において、メモリからマッピングシステムの少なくとも一部を抽出することと、第1の時点後の第2の時点において、マッピングシステムの抽出された部分をメモリに提供することと、を含む。
 図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レベル間を移動することができる。
 メモリ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は、最初に作成されたときには、関連する物理記憶空間28のすべてを元のボリューム40と共有している。その後、スナップショットボリューム42あるいは元のボリューム40のいずれかのデータが、ホスト20からの動作またはコントローラ12の内部動作に応答して更新されることができる。更新が行われると、新しい/修正されたデータを保持するために、新しい物理記憶空間が割り当てられる。スナップショットボリューム42あるいは元のボリューム40のいずれか(すなわち、新しい/変更されたデータを受け取ったボリューム)の新しい/変更されたデータに対応するポインタ34が、新しいデータを記憶している新しい物理記憶アドレス36を指すようにセットされる一方で、変更されていないデータに対応する各ポインタ34は、同じまたは元のアドレス36を指し、スナップされたデータを保存する。新しい/変更されたデータプロセスに新しいポインタを提供することは、分岐(divergence)と呼ばれている。分岐した空間は、スナップショットボリューム42と元のボリューム40との間でもはや共有されない。
 例えば、図3に示すように、仮想記憶位置44は最初、物理記憶位置46をアドレス指定している。従って、元のボリューム40のスナップショット動作47の後、スナップショットボリューム42の各仮想記憶位置48も、物理記憶位置46をアドレス指定している。その後、第1の書き込み動作49が仮想記憶位置44に行われたものと仮定する。データが物理記憶位置46から検索され、第1の書き込み動作によって修正され、分岐データとして新しい物理記憶位置50に記憶される。仮想記憶位置44に関連するポインタ34は、第1の書き込み動作48の後に物理記憶位置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のこの状態は、過大割り当て(over committed)と呼ぶことができる。システム10の1つまたは複数のスナップショットボリュームが、それぞれの使用サイクルにおいて完全な分岐が行われない場合があるため、記憶システム10が過大割り当て状態になることが可能であることが有利である。このような場合において、過大割り当て状態の場合、記憶システム10は、利用可能な物理記憶空間よりも多くの記憶空間(仮想記憶空間で表される)を有しているように見える可能性がある。
 上に述べたように、複数のポインタ34を含むマッピングシステム32はメモリ18内に記憶することができる。追加のポインタ34の収容、追加のキャッシュ空間の提供、他の記憶空間の提供、または他の理由によりメモリ18の一部(マッピング空間とも呼ばれる場合がある、ポインタ34の記憶専用のメモリ18の部分)を解放することが望ましい場合がある。本発明の態様は、メモリ18または他のマッピング空間を使用して、ポインタ追加または他の理由によりマッピングシステム32の記憶能力を向上する構造的実施形態および方法を提供する。
 一動作態様によれば、コントローラ12は、マッピングシステム32の一部およびそのポインタ34を抽出し、新しいポインタ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は、スナップショットまたは他のボリュームについてのポインタ34を含む、マッピングシステム32の部分をメモリ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またはマッピングシステム32の部分をコピーまたは除去して、上に述べた抽出を実行することができる。マッピングシステム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に書き込むように構成される。
 非アクティブ化した後の時点で、非アクティブ化ポインタ34またはマッピングシステム32の非アクティブ化部分(例えば、非アクティブ化された仮想記憶ボリューム26に対応する)は、コントローラ12により再アクティブ化されて、再アクティブ化されたポインタ32を使用して物理記憶位置36のアドレス指定を再び提供することができる。例えば、コントローラ12は、非アクティブ化された仮想記憶ボリューム26のポインタ34を物理記憶空間24から抽出し、このポインタ34をメモリ18に提供して、仮想記憶ボリューム26および各ポインタ34を再アクティブ化することができる。
 コントローラ12は、異なる構成で複数の基準に応答して再アクティブ化手順を開始することが可能である。例示的な基準としては、非アクティブ化された仮想記憶ボリューム26のデータの復元動作要求、ボリューム26のデータをテープに書き込む要求、または他の理由が挙げられる。米国特許出願10/264,661号に述べられているように、非アクティブ化中に生じた更新をジャーナル内に記憶し、再アクティブ化された仮想記憶ボリューム26に適用することができる。所与の仮想記憶ボリューム26の再アクティブ化に適合するとともに、メモリ18内に適切なマッピング空間を提供するために、別の仮想記憶ボリューム26を非アクティブ化することができる。
 図4は、コントローラ12により実行可能な、本発明の例示的な態様を実施する例示的な動作方法を示す。本方法は、メモリ18内の実行可能コードとして実現され、コントローラ12によって実行することができる。より多くの、またはより少ないステップ、または代替のステップを含む他の方法も可能である。
 まず、ステップS10において、スナップショットボリューム等、仮想記憶ボリュームをさらに作成することが望ましいか否かを判断する。望ましくない場合、図示の方法はステップS14に進む。
 ステップS10の条件が肯定される場合、コントローラはステップS12に進み、作成されたボリュームのポインタをメモリに記憶する。
 ステップS14において、メモリ容量の追加が望ましいが否かを判断する。ステップS14の条件が否定される場合、図示の方法はステップS20に進むことができる。
 ステップS14の条件が肯定される場合、コントローラはステップS16に進み、非アクティブ化する1つまたは複数の仮想記憶ボリュームを識別することができる。
 ステップS18において、コントローラは、識別された1つまたは複数の仮想記憶ボリュームのポインタを最初の記憶位置(例えば、メモリ)から抽出し、そのポインタを、物理記憶空間等、適切な宛先記憶位置に提供する。
 ステップS20において、1つまたは複数の仮想記憶ボリュームの再アクティブ化が望ましいか否かを判断する。ステップS20の条件が否定される場合、コントローラはステップS10に戻ることができる。
 ステップS20の条件が肯定される場合、コントローラはステップS22に進み、非アクティブ化された仮想記憶ボリュームの非アクティブ化ポインタを、物理記憶空間等の各記憶位置から抽出し、このポインタをメモリに提供することができる。
 本明細書に述べたように、本発明の態様は、スナップショット動作を実行する動作を含む仮想記憶システム10の動作に対する、メモリ18等の限られた資源の影響を低減するシステムおよび方法を提供する。
本発明の態様を用いずボリュームのすべてのポインタがメモリ18内に存在するシステムで提供されるよりも、本発明の態様では多くの仮想記憶ボリューム26を収容することが可能である。本発明の態様はまた、マップが、最低使用頻度アルゴリズムに従ってメモリにページイン/アウトするいくつかのシステムに対する改良を提供する。
 本発明のいくつかの構成によれば、スナップショットボリューム等の仮想記憶ボリュームの非アクティブ化は、メモリ18等の固定資源によって課される制限を軽減する。上に述べたように、非アクティブ化するために、特定の仮想記憶ボリュームを識別し選択して、システム10のパフォーマンスおよび速度を維持することができる。
例えば、ボリュームは通常、速度があまり重要ではない旧データの復元またはデータのテープへのストリーミングが所望されるまで積極的に使用されないため、スナップショットボリュームの非アクティブ化により、システム10の性能および速度が大きく低下するとは考えられない。
復元またはデータのテープへのストリーミングの後に、仮想記憶ボリュームを再び非アクティブ化することが望ましい場合がある。従って、システム10の最適な性能を保証するために、厳しい性能要件を有するポインタ34の提供は、メモリ18においてアクティブ状態に維持しながら、他のポインタ34を識別し非アクティブ化することができる。
 本発明の態様では、速度または性能についての要件がまったくないか、最小の要件を有する仮想記憶ボリュームに利用されるメモリ18の資源を最小化しながら、システム10を過大割り当てすることが可能である。本発明の構造および方法では、従来の記憶構成と比較してスナップショットボリューム等の追加の仮想記憶ボリュームをサポートすることが可能である。
 本発明は、例としてのみ与えられた開示の実施形態に限定されず、特許請求の範囲によってのみ限定される。
例示的な記憶システムの機能ブロック図である。 例示的な仮想記憶システムとして実施される図1の記憶システムの説明図である。 例示的な仮想記憶システムのスナップショット動作の説明図である。 仮想記憶システムのマッピングシステムの例示的な管理方法を示すフローチャートである。

Claims (10)

  1.  データを記憶するように構成された物理記憶空間と、
     該物理記憶空間内に記憶されている前記データ表現をホストに提供するように適合された仮想記憶空間と、
     前記物理記憶空間と前記仮想記憶空間との間のアドレス指定の実施に利用される複数のポインタを記憶するように構成されたメモリと、
     該メモリから前記ポインタのうち選択されたものを抽出し、第1の時点において、前記選択されたポインタを前記メモリとは異なる別の記憶位置に提供し、前記別の記憶位置から前記選択されたポインタを抽出し、前記第1の時点後の第2の時点において、前記選択されたポインタを前記メモリに提供するように構成されたコントローラと、
     を備える仮想記憶システム。
  2.  前記コントローラは、前記抽出の前に、基準を用いて前記選択されたポインタを識別するように構成された請求項1に記載の仮想記憶システム。
  3.  前記コントローラは、所定の時間期間中に前記選択されたポインタに関する入出力要求を受け取らないことを含む前記基準に応答して識別するように構成された請求項2に記載の仮想記憶システム。
  4.  前記コントローラは、前記選択されたポインタが前記仮想記憶空間のスナップショットボリュームに関連することを含む前記基準に応じて識別するように構成された請求項2に記載の仮想記憶システム。
  5.  前記コントローラは、前記選択されたポインタが前記仮想記憶空間の通常のボリュームに関連しないことを含む前記基準に応じて識別するように構成された請求項2に記載の仮想記憶システム。
  6.  仮想記憶システムの動作方法であって、
     複数の仮想記憶位置を含む仮想記憶空間を設けることと、
     データを記憶するように構成された複数の物理記憶位置を含む物理記憶空間を設けることと、
     前記仮想記憶位置のそれぞれを前記物理記憶位置のそれぞれに関連付けるマッピングシステムを含むメモリを設けることと、
     第1の時点において、前記メモリから前記マッピングシステムの少なくとも一部を抽出することと、
     前記第1の時点後の第2の時点において、前記マッピングシステムの前記抽出された部分を前記メモリに提供することと、
     を含む仮想記憶システムの動作方法。
  7.  前記物理記憶空間を設けることは、複数の物理記憶ボリュームを設けることを含み、
     前記抽出された部分を提供することは、前記マッピングシステムの前記抽出された部分を前記物理記憶ボリュームの少なくとも1つに提供することを含む、請求項6に記載の仮想記憶システムの動作方法。
  8.  前記メモリを設けることは複数のポインタを含む前記マッピングシステムを備えた前記メモリを設けることを含み、
     前記抽出することは、前記ポインタのいくつかを抽出することを含む、請求項6または7に記載の仮想記憶システムの動作方法。
  9.  前記抽出後に、前記抽出されたポインタの位置で前記メモリに新しいポインタを書き込むことをさらに含む、請求項6乃至8のいずれか一項に記載の仮想記憶システムの動作方法。
  10.  前記仮想記憶空間を設けることは、複数の仮想記憶ボリュームを設けることを含み、
     前記方法は、前記仮想記憶ボリュームの1つを識別することをさらに含み、
     前記抽出することは、少なくとも、前記仮想記憶ボリュームのうち前記識別されたものに対応する前記マッピングシステムの部分を抽出することを含む、請求項6乃至9のいずれか一項に記載の仮想記憶システムの動作方法。
JP2003340093A 2002-10-03 2003-09-30 仮想記憶システムおよびその動作方法 Expired - Lifetime JP4222917B2 (ja)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2004127295A true JP2004127295A (ja) 2004-04-22
JP4222917B2 JP4222917B2 (ja) 2009-02-12

Family

ID=32042247

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US6996582B2 (ja)
JP (1) JP4222917B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2007502470A (ja) 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
JP4325524B2 (ja) * 2004-09-29 2009-09-02 日本電気株式会社 スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
US20070022117A1 (en) * 2005-07-21 2007-01-25 Keohane Susann M Accessing file system snapshots directly within a file system directory
CN102880424B (zh) * 2006-05-24 2015-10-28 克姆佩棱特科技公司 用于raid管理、重新分配以及重新分段的系统和方法
CN101467122B (zh) * 2006-05-24 2012-07-04 克姆佩棱特科技公司 数据分级磁盘位置优化系统和方法
US7921077B2 (en) * 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
CN100530069C (zh) * 2006-10-13 2009-08-19 中国科学院计算技术研究所 一种非同质存储设备的虚拟化系统及方法
US8028062B1 (en) * 2007-12-26 2011-09-27 Emc Corporation Non-disruptive data mobility using virtual storage area networks with split-path virtualization
KR101478619B1 (ko) * 2008-02-27 2015-01-06 삼성전자주식회사 가상화 기술을 이용한 데이터 입출력 방법 및 장치
TWI385667B (zh) * 2008-06-26 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料管理方法、儲存系統與控制器
JP5026375B2 (ja) * 2008-09-09 2012-09-12 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
EP2396717A1 (en) 2009-02-11 2011-12-21 Infinidat Ltd Virtualized storage system and method of operating it
SE534142C2 (sv) * 2009-06-16 2011-05-10 Ikonoskop Ab Förfarande och system för lagring av data
US8468292B2 (en) * 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US8918619B2 (en) * 2009-10-04 2014-12-23 Infinidat Ltd. Virtualized storage system and method of operating thereof
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
CN102866963B (zh) * 2012-09-18 2015-07-22 广西柳工机械股份有限公司 控制器数据存储与读取方法
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US10853307B2 (en) * 2017-07-28 2020-12-01 Dell Products, L.P. System and method for a host application to access and verify contents within non-volatile storage of an information handling system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0417293B1 (en) * 1988-12-14 1998-08-12 Sony Corporation Data management system
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5613113A (en) * 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
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
US6658548B1 (en) * 2000-01-10 2003-12-02 International Business Machines Corporation System and method in a data processing system for extracting data from a protected region of memory
US6532527B2 (en) * 2000-06-19 2003-03-11 Storage Technology Corporation Using current recovery mechanisms to implement dynamic mapping operations
US6742101B2 (en) * 2001-06-29 2004-05-25 Fujitsu Limited Scalable and flexible method for address space decoding in a multiple node computer system

Also Published As

Publication number Publication date
US6996582B2 (en) 2006-02-07
US20040068522A1 (en) 2004-04-08
JP4222917B2 (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
US6857057B2 (en) Virtual storage systems and virtual storage system operational methods
JP4222917B2 (ja) 仮想記憶システムおよびその動作方法
US7089395B2 (en) Computer systems, virtual storage systems and virtual storage system operational methods
JP4292882B2 (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
EP2502148B1 (en) Selective file system caching based upon a configurable cache map
US6341341B1 (en) System and method for disk control with snapshot feature including read-write snapshot half
JP3697149B2 (ja) キャッシュ・メモリを管理する方法
US9778860B2 (en) Re-TRIM of free space within VHDX
US6041366A (en) System and method for dynamic specification of input/output attributes
US20050203961A1 (en) Transaction processing systems and methods utilizing non-disk persistent memory
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
JP2005276208A (ja) 通信リンク接続の永久メモリシステム
KR20120050891A (ko) 스토리지 시스템에서 요청에 대한 응답과 연관된 지연의 감소
US20080082745A1 (en) Storage system for virtualizing control memory
CN112463753B (zh) 一种区块链数据存储方法、系统、设备及可读存储介质
KR20000022716A (ko) 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치
WO2004059488A2 (en) Instant refresh of a data volume copy
US20040148479A1 (en) Method, system, and program for transferring data
US7165160B2 (en) Computing system with memory mirroring and snapshot reliability
US20100094811A1 (en) Apparatus, System, and Method for Virtual Storage Access Method Volume Data Set Recovery
US7640410B2 (en) Instant copy of data through pointers interchanging
US7558929B2 (en) Instant copy of data in a cache memory via an atomic command
US7035978B2 (en) Method, system, and program for policies for improving throughput in remote mirroring systems
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080311

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080604

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081118

R150 Certificate of patent or registration of utility model

Ref document number: 4222917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term