WO2015107666A1 - ストレージ装置及びストレージ装置のキャッシュ制御方法 - Google Patents

ストレージ装置及びストレージ装置のキャッシュ制御方法 Download PDF

Info

Publication number
WO2015107666A1
WO2015107666A1 PCT/JP2014/050733 JP2014050733W WO2015107666A1 WO 2015107666 A1 WO2015107666 A1 WO 2015107666A1 JP 2014050733 W JP2014050733 W JP 2014050733W WO 2015107666 A1 WO2015107666 A1 WO 2015107666A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data block
memory area
update
storage device
Prior art date
Application number
PCT/JP2014/050733
Other languages
English (en)
French (fr)
Inventor
光雄 早坂
仁志 亀井
和正 松原
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/050733 priority Critical patent/WO2015107666A1/ja
Priority to US14/423,885 priority patent/US9436559B2/en
Publication of WO2015107666A1 publication Critical patent/WO2015107666A1/ja

Links

Images

Classifications

    • 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/1446Point-in-time backing up or restoration of persistent data
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Definitions

  • LFS is a system that automatically and continuously generates snapshots of a file system.
  • the update data is written to another block on the storage device without overwriting the block data on the storage device corresponding to the update location of the file.
  • data at an arbitrary time in the past can be restored.
  • the data of the block corresponding to the update location of the file is overwritten on the memory.
  • FIG. 9 is a flowchart showing the processing procedure of the content reading process in S304 of FIG.
  • the copy processing program 122 determines a block (offset) for storing a data block to be read from the copy handling content (S500).
  • the cache control program 120 determines whether the determined data block is in the quiesce point list 310, that is, whether there is a determined data block in the save memory area 106 (S502). If there is (S502 is YES), the data in the save memory area 106 is read (S508). If there is not (S502 is NO), it is determined whether the data block is in the latest quiesce point cur list 300, that is, on the cache memory area 107 (S504).
  • FIG. 12 shows an offset reference memory destination table 220 of the second embodiment.
  • the offset reference memory destination table 220 is stored for each content in the main memory area 103, and manages where the offset exists in the memory.
  • FIG. 12A shows the offset reference memory destination table 220 before being saved, that is, any data block constituting the content managed by the offset reference memory destination table 220 (assuming content A is temporarily saved).
  • Reference numeral 106 denotes a state where it has not been evacuated.
  • the offset 221 stores an offset divided by the memory management unit of the content A.
  • the memory address 222 indicates a storage location on the memory 103 of the data indicated by the offset. In the offset reference memory destination table 220 before being saved, an address on the cache memory area 107 is stored in the memory address 222.

Landscapes

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

Abstract

 ストレージ装置は、ホスト装置とセカンダリストレージ装置とに接続されており、メモリと記憶装置、プロセッサとを有する。メモリは、退避メモリ領域と、ホスト装置から受信したデータを一時的に格納するキャッシュメモリ領域とを有する。記憶装置は、ホスト装置から受信したデータを記憶する。 プロセッサは、複製開始時点における指定されたデータの他のストレージ装置への複製処理を制御し、複製開始後、キャッシュメモリ領域上の第1データブロックに対する更新要求を受信すると、第1データブロックを退避メモリ領域に退避し、キャッシュメモリ領域上の第1データブロックを更新データブロックに更新する。

Description

ストレージ装置及びストレージ装置のキャッシュ制御方法
 本発明は、ストレージ装置のキャッシュ制御方法に関する。
 災害やストレージ装置の障害により、ストレージ装置に格納されたデータは損失し、サービスが停止する。こうしたデータ損失が起きてもデータを回復するためには、他のストレージ装置へリモートコピーによりデータを複製するバックアップが必要となる。
 こうしたデータ複製を行うには、障害時のデータ損失を最小限に抑えるために、できる限り高速な処理が求められる。また、バックアップなどのデータ複製要求と、ホスト装置からストレージ装置への入出力要求とで競合が起こり、ホストI/O性能およびバックアップ性能の両方が劣化する。
 特許文献1には、ホストI/Oとバックアップとの入出力性能の競合を回避する方法が開示されている。ホスト装置からのデータ更新要求に合わせてログを作成する方式において、ディスク上に通常のログを作成するのに加え、通常のログとは異なるディスク上に追加ログも作成する。そして、通常ログでログの作成は継続しつつ、バックアップ取得時に追加ログを切り離し、その切り離した追加ログを読取り専用として、追加ログからバックアップデータを読み出すことにより、バックアップが通常ログに対するホストI/Oと競合せず、バックアップ処理が実行できることが記載されている。
米国特許第7,694,086号
 特許文献1では、ディスク上に通常ログと追加ログの2種類を作成しており、ログの作成にかかる負荷が大きい。更に、ログはディスクに記録されているため、キャッシュメモリ上にデータがあればキャッシュメモリからデータを読み出すが、キャッシュメモリにデータがない場合は、ディスク上からデータを読み出すこととなる。バックアップなどのデータ複製技術では、一貫性の取れた静止点のデータを複製する必要がある。データ複製中に起きたホストからの更新要求によりキャッシュメモリ上で上書きが起こると、複製対象静止点のデータをディスク上の追加ログから読み取る必要がある。すなわち、バックアップ処理に伴いディスクアクセスが多発し、CPU等のストレージ装置全体の負荷は増大し、ホストI/O性能が劣化する。しかし、ディスクアクセスを低減するため、追加ログをキャッシュメモリ上に作成することは、膨大なメモリの容量を必要とし、現実的でない。
 したがって、本発明の目的は、ホストI/O性能の劣化を低減する複製処理を行うストレージ装置及びその方法を提案することである。
 ストレージ装置は、ホスト装置とセカンダリストレージ装置とに接続されており、メモリと記憶装置、プロセッサとを有する。メモリは、退避メモリ領域と、ホスト装置から受信したデータを一時的に格納するキャッシュメモリ領域とを有する。記憶装置は、ホスト装置から受信したデータを記憶する。
 プロセッサは、複製開始時点における指定されたデータの他のストレージ装置への複製処理を制御し、複製開始後、キャッシュメモリ領域上の第1データブロックに対する更新要求を受信すると、第1データブロックを退避メモリ領域に退避し、キャッシュメモリ領域上の第1データブロックを更新データブロックに更新する。
 本発明によれば、バックアップ時の性能劣化とメモリ利用効率の悪化を防ぐことが可能になる。
実施例1の概要を説明する図である。 キャッシュ世代管理処理の処理シーケンスの説明に供する概念図である。 プライマリストレージ装置の構成図、およびプライマリストレージ装置と複製サーバが分離した時の構成図を説明する図である。 実施例で使用されるテーブルを説明する図である。 実施例の全体の処理フローチャートである。 キャッシュ世代管理開始処理のフローチャートである。 キャッシュ世代管理処理のフローチャートである。 複製処理のフローチャートである。 コンテンツの読み出し処理のフローチャートである。 メモリ解放処理のフローチャートである。 キャッシュ世代管理終了処理のフローチャートである。 実施例2のオフセット参照メモリ先表を説明する図である。 実施例2のキャッシュ世代管理処理のフローチャートである。 実施例2のコンテンツの読み出し処理のフローチャートである。 実施例2のメモリ解放処理のフローチャートである。
 幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 なお、以下の説明では、「XXテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「XXテーブル」を「XX情報」と呼ぶことができる。
 また、以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムをハードウェアの自体、またはハードウェアが有するプロセッサ(例えば、MP(Micro Processor))によって実行することで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばポート)を用いながら行うため、処理の主語がハードウェアとされても良い。また、プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
 また、本実施例では、Log-Structured Filesystem(LFS)を採用するファイルシステムを搭載したストレージ装置を例にとって説明するが、LFSに限定されることなく、LFSを採用しないファイルシステムを搭載したストレージ装置、ブロックストレージ装置にも適用することができる。
 まず、本実施例で採用するLFSについて説明する。LFSは、ファイルシステムのスナップショットを自動かつ連続的に生成するシステムである。LFSでは、ファイルを更新する際、ファイルの更新箇所に対応する記憶装置上のブロックのデータを上書きせずに、更新データを記憶装置上の別のブロックに書き込む。これにより、過去の任意の時点のデータを復元することができる。また、このときメモリ上では、ファイルの更新箇所に対応するブロックのデータは上書きされていく。
 このデータ更新に伴うメモリ上のブロックのデータの上書きは、複製処理中にも行われるため、複製処理開始時点ではメモリ上にあった複製対象のデータブロックが更新され、複製処理中にメモリ上から消去されてしまうことがある。従来のLFSでは、このような場合、消去された更新対象のブロックのデータは、記憶装置にアクセスし、記憶装置から読み出していた。この記憶装置からのデータの読出しは、メモリからのデータの読出しと比較して、時間がかかる上に、読出しにかかる負荷も大きく、ホストI/Oに影響を与える恐れがあった。しかし、LFS同様にメモリ上でも更新を行わず、更新データを新規メモリ領域に追記していくことは、使用するメモリ容量を増大させ、メモリの利用効率が低下してしまい、ホストI/Oに影響を与えてしまう。
 このような課題を鑑み、本実施例では、複製処理中にデータの更新があると、複製対象である更新前のキャッシュメモリ領域上のデータのみを退避メモリ領域に退避させる。このことにより、複製対象のデータをメモリから取得することができ、高速な複製処理が行える。また、複製処理に係る負荷も低減され、ホストI/Oへの影響も低減することができる。
 続いて、本実施例の概要について説明する。図1は本実施例の概略を示す図である。プライマリストレージ装置10は、主メモリ領域103と記憶装置104とを有し、プライマリストレージ装置10のデータの複製を保存するセカンダリストレージ装置12とI/O要求を送信するホスト装置14とに接続されている。主メモリ領域103には、キャッシュ世代管理テーブル200と、静止点curリスト300と、静止点nリスト310と、が管理されている。キャッシュ世代管理テーブル200は、世代管理を行うか否かと世代管理対象の静止点とを管理する。静止点curリスト300は、最新のキャッシュメモリ領域107上のデータを管理し、静止点nリスト310は、キャッシュ世代管理テーブル200に登録された静止点番号に関するメモリ上のデータ、すなわち退避メモリ領域106に退避されたデータを管理する。ここで静止点とは、キャッシュメモリ領域107上の更新データが記憶装置104に反映された時点であり、キャッシュメモリ領域107上の更新データが記憶装置104に反映されるたびに1つインクリメントされる番号である静止点番号で管理される。各メタデータ及び実データは、更新があるとその更新データが記憶装置104に反映された場合に付与される静止点番号が、その更新があったブロックデータごとに管理されている。付与された静止点の番号を参照することにより、そのブロックデータがどの静止点で更新されたものであるか、すなわちそのブロックデータの世代がわかる。
 主メモリ領域103は、キャッシュ制御プログラム120、複製プログラム122等のプログラムや、メタデータm*r、mr、mr、ma、m*a、mb、m*b、実データa0、a1、a0*、a1*、b0*等のキャッシュデータも格納している。ここでメタデータとは、ファイルやディレクトリなどのコンテンツごとの管理情報であり、当該コンテンツのサイズの情報や当該コンテンツを構成する実データの記憶装置104上の格納場所を指し示す情報等を含んでいる。
 図1において、a0、a0*、a1、a1*は、コンテンツaの実データを構成するブロックデータを示している。「a」はコンテンツaのブロックデータであることを、「0」「1」の数字はコンテンツを構成するブロックデータを区別する数字であり、「*」は更新後のデータであることを示している。すなわち、a0とa1は、コンテンツaの実データのそれぞれ別の部分を構成しており、a0とa0*は、コンテンツaの実データの同じ部分のそれぞれ更新前と更新後のデータを示している。次に、maとma*はコンテンツaのメタデータ、mbとmb*はコンテンツbのメタデータである。メタデータは、データブロックの更新に伴い更新され、データブロックa0、a1の退避と共に退避される。maは、更新前のデータブロックa0とa1とを管理し、ma*は更新後のデータブロックa0*とa1*とを管理している。また、mr、m*rは、ファイルシステムのルートメタデータであり、当該ファイルシステムに含まれる複数のコンテンツのメタデータを指し示している。
 メタデータm*r、mr、mr、ma、m*a、mb、m*bには、そのメタデータが指し示す先の実データの静止点番号が格納されている。また、主メモリ領域10は、最新のデータを格納するキャッシュ領域と、更新前のデータを退避して格納する退避メモリ領域106とを有する。記憶装置104には、メモリ上でデータ更新が起き上書きされたデータも記憶装置上では常に新規領域を割り当てて格納することにより、記憶装置上で上書きさせずに全静止点のデータを格納する。そのため、通常、メモリ上ではデータの上書きが発生する。
 複製プログラム122が静止点nのデータの複製を開始すると、キャッシュ世代管理テーブル200のフラグをオンにし、複製を行う静止点番号nを登録する。キャッシュ制御プログラム120は、フラグがオンになると静止点nにおける複製対象コンテンツの主メモリ領域10上のメタデータ及び実データを構成するデータブロックリストである静止点リスト310を作成する。静止点nに登録されるデータは、キャッシュ世代管理テーブル200内のフラグがオン時に、静止点curリスト300上のデータが更新され上書きされる場合に、上書き前のデータの静止点番号をメタデータから取得する。もしキャッシュ世代管理テーブルに登録されている静止点番号212よりも以前の静止点番号の場合には、上書き前のデータを退避して静止点nリスト310に登録する。データの上書きによって変更が入るメタデータも同様に退避される。退避処理では、メモリ上の更新前のデータを退避メモリ領域106へコピーしても良い。また、(1)メモリ上の更新前データを静止点curリスト300から外して代わりにキャッシュメモリ上で新規メモリ領域を確保してつなぎ、(2) 前記更新前データを静止点nリスト310へつなぎ替えるという処理でもよい。この処理を行うことにより、静止点nのデータがメモリ上に保持されることになる。
 複製プログラム122は、静止点nリスト310に退避されているデータと静止点curリスト300に登録されているデータを読み取ることで、静止点nのデータの複製を行う。また、複製処理が終わったデータを適時解放することで、静止点nリスト310に退避されているデータを解放し、メモリ使用効率を改善する。
 本実施例により、複製プログラム122による静止点nの一貫性の取れたデータの複製処理と、ホスト装置からのI/O要求が重なった場合に、前記2つの処理を高速に実施することが可能になる。更に、静止点nリスト310に登録されたデータのメモリ解放処理を行うインタフェースを用意することにより、メモリ上のデータ滞留を回避する。
 特に、クラウドサービスやオンプレミス上のサービス提供においてストレージに格納されたデータの複製処理によるデータ保護は必須である。本実施例により、複製処理をホスト装置からのI/O要求を妨げずに、高速に実施することができる。
 図2は、プライマリストレージ装置10において実行されるキャッシュ世代管理処理の処理シーケンスを示す。時刻t0は、キャッシュ世代管理テーブル200のフラグがオフ、すなわち、世代管理をしていないときに、ホスト装置14からキャッシュメモリ領域107上のデータb0のb0*への更新要求をプライマリストレージ装置10が処理した時の状態を示す。キャッシュ領域上のデータb0が更新されb0*となり、それに関連するメタデータmbおよび各メタデータを管理するメタデータmrも更新される。フラグはオフであるため、キャッシュメモリ領域107上でのデータの上書きが発生しても、上書き前のデータb0は退避メモリ領域106に退避されない。
 時刻t1は、複製処理が開始し、複製プログラム122によってキャッシュ世代管理テーブル200のフラグ210がオンになり、静止点番号212にnが登録された時である。キャッシュ制御プログラム120はメモリ上のディスク未反映データを記憶装置104に書き出す。また、静止点nリスト310を作成する。未反映データを記憶装置104に反映することにより、次のデータ更新があると静止点番号がインクリメントされるため、複製処理開始時点での最新データを静止点nのデータとして確定させることができる。
 時刻t2は、世代管理を実行中にメモリ上のa0のa0*への更新要求を前記プライマリストレージ装置10が処理した時の状態を示す。時刻t1でディスク未反映データの書き出しが行われたため静止点はn+1となる。静止点nのデータであるm*r、 ma、 a0を退避メモリ領域106に退避し、静止点nリスト310に登録する。キャッシュメモリ領域107上では、データa0が更新されa0*となり、それに関連するメタデータmaおよび各メタデータを管理するメタデータm*rもそれぞれm*aとm**rに更新される。これにより、静止点nが退避メモリ領域106上に保持され、複製処理のための読み出しを記憶装置104から行わずに、負荷が少なく高速な主メモリ領域103から行える。
 時刻t3は、キャッシュメモリ領域107上のa1のa1*への更新要求を前記プライマリストレージ装置10が処理した時の状態を示す。静止点nのデータであるa1を退避メモリ領域106に退避し、静止点nリスト310に登録する。キャッシュメモリ領域107上では、データa1が更新されa1*となり、それに関連するメタデータm*aのa1*に関する部分が上書きされ更新される。
 時刻t4では、メモリ上のディスク未反映データが記憶装置へ書き出される。
 時刻t5は、メモリ上のa0*のa0**への更新要求を前記プライマリストレージ装置10が処理した時の状態を示す。静止点はn+2となる。この時、静止点nのデータa0は既に退避済であるため、a0*は退避メモリ領域106に退避されず、キャッシュメモリ領域107上のデータa0*が更新されa0**となり、それに関連するメタデータm*aのa0**に関する部分が上書きされ更新される。静止点n以降の更新データを退避メモリ領域106に退避しないことにより、メモリ103の消費を抑えることができる。
 時刻t6は、複製プログラム122がa0の複製処理が完了した時の状況を示す。複製プログラム122がメモリ解放処理を行うことにより、退避メモリ領域の静止点nリスト310につながっているデータブロックa0は解放される。すなわち、データブロックa0を格納していた退避メモリ領域106のブロックに、別のデータブロックを格納することができるようになる。よって、複製処理の全体の完了を待たず、複製処理が完了したデータブロックを格納した退避メモリ領域106のブロックから順番に解放していくことで、退避メモリ領域106の容量が圧迫されることを防ぐことができる。
 時刻t7は、複製プログラム122がa1の複製処理が完了した時の状況を示す。コンテンツaのデータブロックのうち、退避メモリ領域106に退避していたデータブロックの複製は完了したため、複製プログラム122がメモリ解放処理を行うことにより、キャッシュ制御プログラム120が、退避メモリ領域の静止点nリスト310につながっているデータa1に加え、そのメタデータmaも解放される。
 時刻t8は、その他のデータb0*等も含めて静止点nの複製処理が完了した時の状況を示す。キャッシュ世代管理テーブル200のフラグ210はオフとなり登録済みの静止点番号212は削除される。更に退避メモリ上の全てのデータが削除され、静止点nリスト310も削除される。
 時刻t9は、複製処理完了後に、メモリ上の更新データを書き出す時の状況を示す。
 このような処理が繰り返されることにより、定期的または不定期的に実施される複製処理の際に、複製処理とホスト装置からのI/O要求を高速に処理し、メモリの使用効率劣化を抑制することができる。
 図3-(a)は、本実施形態にかかるプライマリストレージ装置10のシステム構成を示す。プライマリストレージ装置10は、主に、プロセッサ102、メモリ103、ディスク104及びネットワークインタフェース105で構成される。そして、これらはシステムバス108を介して接続される。ネットワーク4は、例えばWAN(Wide Area Network)、LAN(Local Area Network)、インターネット、公衆回線または専用回線などであってもよい。
 プロセッサ102は、演算処理装置として機能し、メモリ103に記憶されているプログラムや演算パラメータ等に従って、キャッシュ制御プログラム120や複製処理プログラム122の動作を制御する。
 メモリ103には、図1における主メモリ領域103に相当し、キャッシュ制御プログラム120、複製処理プログラム122が格納されている。また、メモリ103は、ディスク104から読みだされた各種情報を記憶するために用いられるほか、ホスト装置14から受信したデータを一時的に格納するキャッシュメモリとして用いられたり、プロセッサ102のワークメモリとして用いられる。メモリ103には、DRAM等の揮発性メモリまたはFlash Memory等の不揮発性メモリが使用され、104からよりも高速にデータの読み書きができる。
 キャッシュ制御プログラム120は、退避すべきデータの決定や、データの退避処理および解放処理を行う。複製処理プログラム122は、キャッシュ制御プログラム120と連携して、ある静止点のデータをネットワークインタフェース105を介して、セカンダリストレージ装置12へ送信する。また、送信済みデータの解放処理を行う。
 ここで、図1で説明したように、メモリ103には、ホスト装置14から受信したデータを一時的に格納するキャッシュメモリ領域107と、キャッシュメモリ領域107から退避したデータを格納する退避メモリ領域106とを有する。このキャッシュメモリ領域107と退避メモリ領域106とは、物理的に分かれていてもよく、キャッシュの各ブロック毎にどちらの領域なのか属性を管理してもよい。また、キャッシュメモリ領107から退避メモリ領域106へのデータの退避は、キャッシュメモリ領域107から退避メモリ領域106にデータをコピーするほかに、退避する対象データが格納されているブロックの属性をキャッシュメモリ領域107から退避メモリ領域106に変更することで、退避をおこなってもよい。
 ディスク104は、図1における記憶装置104に相当し、各種ソフトウェアや管理情報、メタデータや実データを含むデータなどが格納されている。
 図3-(b)は、複製処理プログラム122が他のサーバ12で稼働した場合の構成例を示したものである。複製処理プログラム122がネットワークインタフェース115を介して、プライマリストレージ装置10にアクセスし、プライマリストレージ装置10のある静止点のデータをセカンダリストレージ装置12へ複製すること以外は、図3-(a)と同様である。
 図4は、本実施例で使用するキャッシュ世代管理テーブル200のテーブル構造、メタデータに付加されるデータ600のデータ構造およびメモリ解放インタフェース620、630を示す。
 キャッシュ世代管理テーブル200は、キャッシュ世代管理を行うかを判定するフラグ210とキャッシュ世代管理対象の静止点番号を登録する静止点番号212から構成される。フラグ210は、複製処理開始を契機として「オン」となり、複製処理開始のタイミングにおける静止点の静止点番号が静止点番号212に記録される。フラグ210が「オン」のとき、キャッシュメモリ領域107上にあり、静止点n以下の番号が付与されているメタデータまたは実データのブロックデータに更新要求があると、更新前のメタデータまたは実データのブロックデータは、退避メモリ領域104に退避される。また、フラグ210が「オフ」のときに、キャッシュメモリ領域107上にあるメタデータまたは実データのブロックデータに更新要求があると、退避メモリ領域104には退避されずにキャッシュメモリ領域107上のデータは上書きされる。
 付加データ600は、各コンテンツの管理情報であるメタデータに付加される情報である。ここで、メタデータ自体は、ファイルシステムにおいて従来から使用されているものであるため、省略し、本実施例においてメタデータに付加する情報のみ記載する。付加データ600には、各ブロックデータがディスク104へ反映された時点の静止点番号610とそのブロックデータが格納されているアドレス612から構成される。このアドレスは例えばディスク104上のデータ配置アドレスでもよいし、メモリ103上のデータ配置アドレスでもよい。このアドレスを参照することで、ディスク104上又はメモリ103上のデータへアクセスすることが可能となる。
 メモリ解放インタフェース1 620は、複製処理が終了したデータが格納されている退避メモリ領域106中の領域を解放するためのインタフェースである。どのコンテンツかを示すコンテンツ識別子622と、そのコンテンツ内のオフセット624、そのオフセットからのデータ長である長さ626から構成される。これにより、コンテンツ内のオフセットと長さに対応する退避メモリ領域106上のデータの解放処理を指示することが可能になる。
 また、メモリ解放インタフェース2 630は、メモリ解放インタフェース1 620の変形例であり、複製処理が終了したデータが格納されている退避メモリ領域106中の領域を解放するためのインタフェースである。メモリ解放インタフェース1 620と異なり、直接、退避メモリ領域上のアドレスを指定する。解放処理を行う領域の開始アドレス632と開始アドレスからのデータ長を示す長さ634から構成される。同様に、メモリ解放インタフェース2 630により、指定された退避メモリ領域上のデータの解放処理を指示することが出来る。
 静止点curリスト300は、最新のデータを管理するリストであり、静止点nリスト310は、世代管理のために退避されたデータを管理するリストである。これらの静止点リストは、例えば、片方向リストや双方向リスト、radix-treeや2色木、B木、B+木などで構成され、検索キーにはLBAやセクタ番号、ファイルとオフセットの組み合わせ、およびそれらから導き出されるインデックス値、ハッシュ値などから構成される。
 図5は、本実施例の複製処理全体の処理手順を示したフローチャートである。複製処理プログラム122が、複製処理の開始指示をユーザから受信したり、自動複製処理開始時刻を迎えると、複製処理プログラム122は、キャッシュ世代管理開始処理を実行すると共に、キャッシュ世代管理プログラム120にキャッシュ世代管理開始処理の指示を行い、キャッシュ世代管理プログラム120はキャッシュ世代管理開始処理を実行する(S10)。つづいて、キャッシュ制御プログラム120がキャッシュ世代管理処理を行い(S20)、複製処理プログラム122がキャッシュ制御プログラム120と連携して複製処理(S30)を行う。ここで、キャッシュ世代管理処理(S20)と複製処理(S30)とは、それぞれ並行して実行される。その後、複製処理が終了すると複製プログラム122がキャッシュ世代管理プログラム120にキャッシュ世代管理終了処理を指示し、キャッシュ世代管理プログラム120がキャッシュ世代管理終了処理を実行(S40)することにより、複製処理の全体処理を完了する。各手順の詳細は後述する。
 図6は、図5のS10のキャッシュ世代管理開始処理の処理手順を示したフローチャートである。キャッシュ世代管理開始処理を開始すると、複製処理プログラム122は、最新の静止点を、世代管理を行う静止点として指定してマウントを行うことにより、キャッシュ世代管理テーブル200上のフラグ210をオンにし、世代管理を行う静止点番号を静止点番号212へ登録する(S100)。キャッシュ制御プログラム120は、データ退避を行うための静止点管理リスト310を作成する(S102)。S104において、キャッシュメモリ領域107上にディスク104に未反映のデータが存在するか判定し、未反映のデータが存在する場合(S104がYES)は、S106を実行する。S106では、ディスク未反映状態のブロックデータ及びメタデータをディスク104上の新規領域に書き込む。キャッシュメモリ上では、そのブロックデータ及びメタデータのディスク未反映状態の管理から外し、ディスク104への反映を契機として新規静止点を作成し、完了する。ディスク104への反映処理(S106)のあと、または、未反映のデータが存在しない場合(S104がNO)には、キャッシュ世代管理開始処理を完了する。このキャッシュ世代管理開始処理により、複製処理の開始時点である静止点を確定し、以後の更新に対して、静止点におけるデータをメモリ103上の退避メモリ領域106に退避させることができる。
 図7は、図5のS20のキャッシュ世代管理処理の処理手順を示したフローチャートである。このキャッシュ世代管理処理は、複製処理中でない場合(キャッシュ世代管理テーブル200のフラグ210が「オフ」の場合)にも実行される。キャッシュ世代管理処理を開始すると、キャッシュ制御プログラム120は、ホスト装置14からデータ更新要求があるか監視し(S200)、ない場合(S200がNO)には、キャッシュ世代管理処理を完了する。ある場合(S200がYES)にはS202を実行する。キャッシュ制御プログラム120は、キャッシュ世代管理テーブル200上のフラグ210がオンかオフかを判定する(S202)。オフの場合(S202がOFF)はS208を実行し、オンの場合(S202がON)は、更新要求にかかるコンテンツのメタデータの付加情報600を参照し、更新対象のデータブロックに付加された静止点番号610を参照し、参照した静止点番号610がキャッシュ世代管理テーブル200の静止点番号212に登録されている番号以下かどうか判定する(S204)。
 静止点番号212に登録されている番号以下の場合(S204がNO)、すなわち、静止点番号212に登録されている番号がnだとすると、上書き先のデータブロックの静止点番号610がn+1以上の場合には、S208、すなわち、上書き先のデータブロックの退避を行わずにS208で上書き処理を実行する。また、静止点番号212に登録されている番号以下の場合(S204がYES)、すなわち、静止点番号212に登録されている番号がnだとすると、上書き先のデータブロックの静止点番号610がn以下の場合には、退避メモリ領域106に領域を確保し、更新前のデータブロック及びメタデータをコピーして静止点nリスト310へつなぎ、キャッシュ世代管理テーブル200で登録された静止点のデータを退避メモリ領域106上で退避する(S206)。S206では、更新前データを静止点curリスト300から外し、静止点nリストへつなぎ変えるだけでもよい。以上の処理から、ある静止点のあるデータに関してS206を実行するのは1回だけとなる。言い換えると、静止点nにおける複製対象のコンテンツのデータブロック(メタデータ)とは、複製開始時にキャッシュメモリ領域107上にありデータブロックにはn以下の静止点番号が付与されている。そのデータブロックのみが退避メモリ領域106に退避され、静止点n以降に更新されたデータブロックは退避メモリ領域106に退避されない。
 S208では、キャッシュ制御プログラム120がキャッシュメモリ領域107のデータブロックを上書きし、メタデータを更新する。そのキャッシュメモリ領域107上のデータは、ディスク未反映状態となる。S210で、メモリ上のディスク未反映状態データを、ディスク104上の新規領域に書き込み、該当キャッシュメモリ領域107上のディスク未反映状態の管理を外し、新規静止点を作成、すなわち静止点番号を1つインクリメントして完了する。以上の処理により、複製処理が完了していない複製対象のデータブロックをメモリ103上から落とさずに、メモリ103上に保持できる。よって、複製処理における読み出しを高速に行うことができる。また、複製対象のデータブロックに限り退避を行っているため、メモリ103の容量の圧迫を抑えることができる。
 図8は、図5のS30の複製処理の処理手順を示したフローチャートである。複製処理プログラム122は、複製対象コンテンツのリストアップを行う(S300)。リストアップしたコンテンツの中から複製対象コンテンツの確定を行い(S302)、確定したコンテンツを読み出す(S304)。複製処理プログラムは、セカンダリストレージ装置12へ読み出したコンテンツを送信するデータ複製処理を行い(S306)、複製完了したデータについてメモリ解放処理を行う(S308)。複製対象として確定したコンテンツの複製が終わるまでS304~S308を繰り返す(S310)。続いて、リストアップされた全複製対象コンテンツの複製が終了したか判定し(S312)、全コンテンツの複製が完了していない場合(S312がNO)、S302に戻り、全コンテンツの複製が終わるまで、S302~S310を繰り返す。全コンテンツの複製が終わると(S312がYES)、複製処理を完了する。S304とS308のキャッシュ制御プログラム120の処理手順について、図9および図10に示す。
 図9は、図8のS304のコンテンツの読み出し処理の処理手順を示したフローチャートである。複製処理プログラム122は、複製対処コンテンツの読み出すデータブロックを格納するブロック(オフセット)を決定(S500)する。キャッシュ制御プログラム120は、決定したデータブロックが静止点リスト310にあるか、すなわち退避メモリ領域106に決定したデータブロックがあるか判定する(S502)。ある場合(S502がYES)には、退避メモリ領域106上のデータを読み出す(S508)。ない場合(S502がNO)には、そのデータブロックが最新の静止点curリスト300にあるか、すなわちキャッシュメモリ領域107上にあるか判定する(S504)。ある場合(S504がYES)には、そのキャッシュメモリ領域107上からデータブロックを読み出す(S508)。ない場合(S504がNO)には、退避メモリ領域106とキャッシュメモリ領域107いずれにもデータブロックがないため、ディスク104上からデータブロックを読み出す。続いて、複製対象コンテンツの全データブロックを読み出したか判定し(S510)、読出しが終了していない場合(S500がNO)、S500に戻り、読出しが終了している場合(S500がYES)の場合、処理を完了する。以上のように、静止点リスト310を用いて退避メモリ領域106に読み出し対象のデータブロックがあるかを判定し、退避メモリ領域106読出し対象のデータブロックがない場合にキャッシュメモリ領域107から対象のデータブロックを読み出すことで、キャッシュメモリ領域107と退避メモリ領域106のどちらに静止点nでコンテンツを構成していたデータブロック格納されているかを判定でき、対象のデータブロックをメモリ103上から読み出すことができる。
 図10は、図8のS308のメモリ解放処理の処理手順を示したフローチャートである。複製処理プログラム122は、セカンダリストレージ装置12にデータブロックを送信し、複製処理が終わったデータについて、メモリ解放インタフェース1 620またはメモリ解放インタフェース2 630で複製済みデータを指定し、キャッシュ制御プログラム120は、複製済みデータを格納するブロック(オフセット)を決定する(S600)。キャッシュ制御プログラム120は、データが静止点リスト310に指定されたデータブロックあるかどうかを判定し(S602)、ある場合(S602がYES)場合、すなわち、指定されたデータブロックが退避メモリ領域106ある場合には、その指定されたデータブロックの退避メモリ領域106上のメモリ解放処理を行う(S604)。無い場合(S602がNO)には、処理を完了する。以上の処理により、複製が完了した退避メモリ領域106上のメモリ領域を、複製が完了した順に解放していくことができ、メモリ103の容量の圧迫を抑えることができる。
 図11は、図8のS40のキャッシュ世代管理終了処理の処理手順を示したフローチャートである。複製処理プログラム122は、複製処理が完了すると、例えば、アンマウント処理を行うことにより、キャッシュ世代管理終了処理を行う。その時、キャッシュ世代管理テーブル200のフラグ210をオフにし、登録済みの静止点番号212を削除する(S400)。また、キャッシュ制御プログラム120は、静止点リスト310を削除し(S402)、処理を完了する。以上の処理により、静止点におけるデータブロックを退避メモリ領域106に退避する処理を終了する。
 通常、ファイルシステムはコンテンツ毎に、そのオフセットがどのメモリに存在するかを管理するオフセット参照メモリ先表220を管理している。本実施例では、前記表のメモリ参照先を修正することにより、退避データ参照を効率的に行う方法について述べる。本方法では、前記表を退避メモリ側に複製して持つことにより、キャッシュメモリ上のデータと退避メモリ上のデータの参照を、前記表の修正済みメモリ参照先を参照することで実現する。
 本実施例の構成や処理手順の多くは実施例1と同じであるため、実施例1と異なるキャッシュ世代管理処理手順・コンテンツの読み出し手順・メモリ解放処理手順を中心に説明する。
 図12は、実施例2のオフセット参照メモリ先表220を示す。オフセット参照メモリ先表220は、主メモリ領域103にコンテンツごとに記憶され、そのオフセットがメモリ上のどこに存在するかを管理する。図12(a)は、退避される前のオフセット参照メモリ先表220、すなわち、そのオフセット参照メモリ先表220で管理するコンテンツ(仮にコンテンツAとする)を構成するいずれのデータブロックも退避メモリ領域106に退避されていない状態を示す。オフセット221は、コンテンツAのメモリ管理単位で分割されたオフセットが格納される。メモリアドレス222は、オフセットで示されるデータのメモリ103上における格納場所を示す。退避される前のオフセット参照メモリ先表220では、メモリアドレス222には、キャッシュメモリ領域107上のアドレスが格納されている。また、オフセットで示されるデータがメモリ103上に存在しない場合は、「NULL」が格納され、データは、メモリ103に新規領域を割り当て後、ディスク104から読み出される。 図12(b)は、退避された後のオフセット参照メモリ先表220*を示す。オフセット参照メモリ先表220は、コンテンツを構成するデータブロックが最初に退避されたタイミングで退避メモリ領域106に退避される。図12(b)では、コンテンツAのオフセット「00010」に対応するデータブロックが更新され、新規メモリ領域「dddd」を割り当て、そこに更新データが格納された後の状態を示す。この時、メモリ上に存在する更新前データ「bbbb」は、退避されたオフセット参照メモリ先表220からしか参照されないデータとなる。データが更新されていないオフセット「00000」、「00100」のメモリアドレス222*は、参照先メモリに変更はない。退避後のデータは、前記退避済参照メモリ先表220を参照することにより、静止点nにおけるコンテンツAのデータを容易に読み出すことができる。
 図13は、実施例2のキャッシュ世代管理処理手順を示したものであり、実施例1と異なるのはS220~S224のステップである。S206で更新前データを静止点nリスト310へ退避した後、対象コンテンツのオフセット参照メモリ先表が退避済みかどうかを判定する(S220)。退避されていない場合には、前記表の複製を退避メモリ領域上に作成する(S222)。これは、コンテンツの静止点nのオフセット参照メモリ先表を表すことになる。そして、退避されている場合およびS222の処理後に、コピー元の前記表のオフセットに対する参照メモリ先を新規メモリ領域とすることで、参照メモリ先を修正する(S224)。この時、コピー先の退避した前記表のメモリ参照先を修正する必要はない。また、参照先が退避したデータである場合には、本表にフラグを追加してオンならば退避済データ、オフならば未退避データであることを示してもよい。
 図14は、実施例2のコンテンツ読み出し処理手順を示したものであり、S502*が実施例1と異なる。コンテンツの読み出しオフセットを決定した後(S500)、そのオフセットに対する静止点nのコンテンツのオフセット参照メモリ先表の参照先がデータ保持したメモリが存在するか判定し(S502*)、存在する場合にはメモリからデータを読み出し(S508)、存在しない場合にはディスクからデータを読み出す(S506)。
 図15は、実施例2のメモリ解放処理手順を示したものである。実施例1と異なるのはS602*である。読み出し済データのオフセット決定後(S600)、そのオフセットに対する静止点nのコンテンツのオフセット参照メモリ先表の参照先が退避データかどうか判定し(S602*)、退避データの場合にはメモリ解放処理(S604)を行う。S602*の判定には、その参照先データが静止点nリスト310に存在するかどうかの判定や、S224において退避データであるフラグを使用している場合には、そのフラグの元に判定してもよい。
 以上、ホスト装置からのI/O性能と複製処理性能の向上を図る本発明について、実施例に即して説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
 10:プライマリストレージ装置、12:セカンダリストレージ装置、14:ホスト装置、120:キャッシュ制御プログラム、122:複製プログラム、200:キャッシュ世代管理テーブル、18:複製サーバ。

Claims (15)

  1.  ホスト装置と他のストレージ装置とに接続され、
     退避メモリ領域と、前記ホスト装置から受信したデータを一時的に格納するキャッシュメモリ領域とを有するメモリと、
     前記データを記憶する記憶装置と、
     複製開始時点における指定されたデータの前記他のストレージ装置への複製処理を制御し、前記複製開始後、前記キャッシュメモリ領域上の第1データブロックに対する更新要求を受信すると、前記第1データブロックを前記退避メモリ領域に退避し、前記キャッシュメモリ領域上の前記第1データブロックを更新データブロックに更新し、前記退避メモリ領域から前記第1データブロックを読出して、前記他のストレージ装置に送信するプロセッサと、
     を有することを特徴とするストレージ装置。
  2.  前記プロセッサは、
     前記複製開始時点での前記指定されたデータのうち読出し対象データブロックが前記複製処理開始後に更新されたか判定し、
     前記読出し対象データブロックが更新されている場合、当該読出し対象データブロックを前記退避メモリ領域から読出し、前記読出し対象データブロックが更新されていない場合、当該読出し対象データブロックを前記キャッシュメモリ領域から読出し、
     前記他のストレージ装置に送信することを特徴とする請求項1に記載のストレージ装置。
  3.  前記プロセッサは、
     前記退避メモリ領域に格納された前記更新前データブロックの前記他のストレージ装置への複製が完了すると、当該更新前データブロックが格納されていた前記退避メモリ領域のブロックを解放することを特徴とする請求項2に記載のストレージ装置。
  4.  前記プロセッサは、
     前記キャッシュメモリ領域上の前記複製開始時点のデータを構成する第1データブロックの第1更新データへの第1更新要求を受信すると、前記第1データブロックのデータを前記退避メモリ領域にコピーし、前記第1データブロックを前記第1更新データに更新し、
     前記第1更新データの第2更新データへの第2更新要求を受信すると、前記第1更新データを前記退避メモリ領域にコピーせず、前記第1更新データを第2更新データに更新することを特徴とする請求項1に記載のストレージ装置。
  5.  前記プロセッサは、
     前記メモリから前記記憶装置への反映を契機としてインクリメントされる静止点番号で、データの更新を世代管理し、
     前記データブロックに前記データブロックが前記記憶装置へ反映される際の静止点番号を付与し、
     前記更新開始時の静止点番号と、前記データブロックに付与された静止点番号とを比較することにより、前記更新要求を受信した際に、前記データブロックを前記退避メモリ領域にコピーするか否か決定することを特徴とする請求項1に記載のストレージ装置。
  6.  前記プロセッサは、
     コンテンツ単位で前記複製処理を行い、
     前記データブロックに加え、当該データブロックの管理情報を有するメタデータも前記退避メモリ領域に退避することを特徴とする請求項1に記載のストレージ装置。
  7.  前記メモリは、前記退避メモリ領域に退避されたデータブロックを管理する静止点nリストを記憶し、
     前記プロセッサは、前記静止点nリストを参照し、前記静止点nリストで管理されるデータブロックは前記退避メモリ領域から読出し、前記静止点nリストで管理されていないデータブロックは前記キャッシュメモリ領域または前記記憶装置から読出し、前記他のストレージ装置に送信することを特徴とする請求項1に記載のストレージ装置。
  8.  前記メモリは、データブロックの前記記憶装置上の格納場所と、前記メモリ上での格納場所との対応関係を管理するオフセット参照メモリ先表を記憶し、
     前記プロセッサは、
     前記第1データブロックに対する更新要求を受信すると、前記オフセット参照メモリ先表を前記退避メモリ領域に退避し、
     当該退避したオフセット参照メモリ先表の前記第1データブロックの前記メモリ上での格納場所を前記退避メモリ領域上の退避した領域に更新することを特徴とする請求項1に記載のストレージ装置。
  9.  ホスト装置と他のストレージ装置とに接続され、
     退避メモリ領域と、前記ホスト装置から受信したデータを一時的に格納するキャッシュメモリ領域とを有するメモリと、
     前記データを記憶する記憶装置と、
     複製開始時点における指定されたデータの前記他のストレージ装置への複製処理を制御するプロセッサと、
    を有するストレージ装置の制御方法であって、
     前記複製開始後、前記キャッシュメモリ領域上の第1データブロックに対する更新要求を受信すると、前記第1データブロックを前記退避メモリ領域に退避し、
     前記キャッシュメモリ領域上の前記第1データブロックを更新データブロックに更新し、
     前記退避メモリ領域から前記第1データブロックを読出して、前記他のストレージ装置に送信する
    ことを特徴とするストレージ装置の制御方法。
  10.  前記複製開始時点での前記指定されたデータのうち読出し対象データブロックが前記複製処理開始後に更新されたか判定し、
     前記読出し対象データブロックが更新されている場合、当該読出し対象データブロックを前記退避メモリ領域から読出し、前記読出し対象データブロックが更新されていない場合、当該読出し対象データブロックを前記キャッシュメモリ領域から読出し、
     前記他のストレージ装置に送信することを特徴とする請求項9に記載のストレージ装置の制御方法
  11.  前記退避メモリ領域に格納された前記更新前データブロックの前記他のストレージ装置への複製が完了すると、当該更新前データブロックが格納されていた前記退避メモリ領域のブロックを解放することを特徴とする請求項10に記載のストレージ装置の制御方法。
  12.  前記キャッシュメモリ領域上の前記複製開始時点のデータを構成する第1データブロックの第1更新データへの第1更新要求を受信すると、前記第1データブロックのデータを前記退避メモリ領域にコピーし、前記第1データブロックを前記第1更新データに更新し、
     前記第1更新データの第2更新データへの第2更新要求を受信すると、前記第1更新データを前記退避メモリ領域にコピーせず、前記第1更新データを第2更新データに更新することを特徴とする請求項9に記載のストレージ装置の制御方法。
  13.  前記メモリから前記記憶装置への反映を契機としてインクリメントされる静止点番号で、データの更新を世代管理し、
     前記データブロックに前記データブロックが前記記憶装置へ反映される際の静止点番号を付与し、
     前記更新開始時の静止点番号と、前記データブロックに付与された静止点番号とを比較することにより、前記更新要求を受信した際に、前記データブロックを前記退避メモリ領域にコピーするか否か決定することを特徴とする請求項9に記載のストレージ装置の制御方法。
  14.  前記メモリは、前記退避メモリ領域に退避されたデータブロックを管理する静止点nリストを記憶し、
     前記プロセッサは、前記静止点nリストを参照し、前記静止点nリストで管理されるデータブロックは前記退避メモリ領域から読出し、前記静止点nリストで管理されていないデータブロックは前記キャッシュメモリ領域または前記記憶装置から読出し、前記他のストレージ装置に送信することを特徴とする請求項9に記載のストレージ装置の制御方法。
  15.  データブロックの前記記憶装置上の格納場所と、前記メモリ上での格納場所との対応関係を管理するオフセット参照メモリ先表を記憶し、
     前記第1データブロックに対する更新要求を受信すると、前記オフセット参照メモリ先表を前記退避メモリ領域に退避し、
     当該退避したオフセット参照メモリ先表の前記第1データブロックの前記メモリ上での格納場所を前記退避メモリ領域上の退避した領域に更新することを特徴とする請求項9に記載のストレージ装置の制御方法。
PCT/JP2014/050733 2014-01-17 2014-01-17 ストレージ装置及びストレージ装置のキャッシュ制御方法 WO2015107666A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2014/050733 WO2015107666A1 (ja) 2014-01-17 2014-01-17 ストレージ装置及びストレージ装置のキャッシュ制御方法
US14/423,885 US9436559B2 (en) 2014-01-17 2014-01-17 Storage apparatus and method for controlling cache of storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/050733 WO2015107666A1 (ja) 2014-01-17 2014-01-17 ストレージ装置及びストレージ装置のキャッシュ制御方法

Publications (1)

Publication Number Publication Date
WO2015107666A1 true WO2015107666A1 (ja) 2015-07-23

Family

ID=53542585

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/050733 WO2015107666A1 (ja) 2014-01-17 2014-01-17 ストレージ装置及びストレージ装置のキャッシュ制御方法

Country Status (2)

Country Link
US (1) US9436559B2 (ja)
WO (1) WO2015107666A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030654A (ja) * 2018-08-23 2020-02-27 富士通株式会社 制御装置及び制御プログラム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9268653B2 (en) * 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10025710B2 (en) * 2014-04-30 2018-07-17 Walmart Apollo, Llc Pattern for integrating primary and secondary data stores in a sharded data domain
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
CN106557264B (zh) 2015-09-25 2019-11-08 伊姆西公司 针对固态硬盘的存储方法及设备
WO2017105529A1 (en) * 2015-12-16 2017-06-22 Ab Initio Technology Llc High throughput, high reliability data processing system
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10990297B1 (en) * 2017-07-21 2021-04-27 EMC IP Holding Company LLC Checkpointing of user data and metadata in a non-atomic persistent storage environment
US11797531B2 (en) * 2020-08-04 2023-10-24 Micron Technology, Inc. Acceleration of data queries in memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006277208A (ja) * 2005-03-29 2006-10-12 Hitachi Ltd バックアップシステム、プログラム及びバックアップ方法
WO2012164618A1 (en) * 2011-05-31 2012-12-06 Hitachi, Ltd. Storage system and storage control method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734591B1 (en) * 1999-08-16 2010-06-08 Netapp, Inc. Coherent device to device data replication
US7694086B1 (en) 2003-06-30 2010-04-06 Symantec Operating Corporation Method and system for incremental backup of data volumes
US20060143412A1 (en) * 2004-12-28 2006-06-29 Philippe Armangau Snapshot copy facility maintaining read performance and write performance
US7975115B2 (en) * 2007-04-11 2011-07-05 Dot Hill Systems Corporation Method and apparatus for separating snapshot preserved and write data
JP2010198329A (ja) * 2009-02-25 2010-09-09 Nec Corp ストレージ装置、ストレージ管理方法及びストレージ管理プログラム
US8572337B1 (en) * 2009-12-14 2013-10-29 Symantec Corporation Systems and methods for performing live backups
US8874524B1 (en) * 2012-06-22 2014-10-28 Emc Corporation Handling copy on first write data for snapshot purposes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006277208A (ja) * 2005-03-29 2006-10-12 Hitachi Ltd バックアップシステム、プログラム及びバックアップ方法
WO2012164618A1 (en) * 2011-05-31 2012-12-06 Hitachi, Ltd. Storage system and storage control method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020030654A (ja) * 2018-08-23 2020-02-27 富士通株式会社 制御装置及び制御プログラム
JP7147367B2 (ja) 2018-08-23 2022-10-05 富士通株式会社 制御装置及び制御プログラム

Also Published As

Publication number Publication date
US9436559B2 (en) 2016-09-06
US20160034358A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
WO2015107666A1 (ja) ストレージ装置及びストレージ装置のキャッシュ制御方法
US11593319B2 (en) Virtualized data storage system architecture
US10185629B2 (en) Optimized remote cloning
JP6309103B2 (ja) スナップショットおよびクローンの複製
US8209498B2 (en) Method and system for transferring duplicate files in hierarchical storage management system
US8060703B1 (en) Techniques for allocating/reducing storage required for one or more virtual machines
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US7861049B2 (en) Methods and apparatus for archiving digital data
WO2019061352A1 (zh) 数据加载方法及装置
WO2013042218A1 (ja) 計算機システム、ファイル管理方法及びメタデータサーバ
JP2007226347A (ja) 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
JP2007207063A (ja) データベースを有するストレージシステムの記憶制御方法
US10599359B2 (en) Data migration system and method thereof
US9015526B2 (en) Restoring method and computer system
US20140122661A1 (en) Computer system and file server migration method
US20150302021A1 (en) Storage system
US11256434B2 (en) Data de-duplication
US11194501B2 (en) Standby copies withstand cascading fails
JP5170169B2 (ja) ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US20170039110A1 (en) Computer
TWI740429B (zh) 管理資料備份的方法及系統
US11269735B2 (en) Methods and systems for performing data backups
US10936558B2 (en) Content-based data migration
JP2018169842A (ja) 階層化ストレージ管理装置、階層化ストレージシステム、データ管理方法及びプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14423885

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14878432

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14878432

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP