JP2006113927A - ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド - Google Patents

ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド Download PDF

Info

Publication number
JP2006113927A
JP2006113927A JP2004302430A JP2004302430A JP2006113927A JP 2006113927 A JP2006113927 A JP 2006113927A JP 2004302430 A JP2004302430 A JP 2004302430A JP 2004302430 A JP2004302430 A JP 2004302430A JP 2006113927 A JP2006113927 A JP 2006113927A
Authority
JP
Japan
Prior art keywords
data
storage device
storage
command
snapshot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004302430A
Other languages
English (en)
Inventor
Atsushi Sudo
敦之 須藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004302430A priority Critical patent/JP2006113927A/ja
Priority to US11/012,095 priority patent/US7398420B2/en
Publication of JP2006113927A publication Critical patent/JP2006113927A/ja
Pending legal-status Critical Current

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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ストレージのデータコピーの際に必要な、サーバ装置とストレージ装置間のデータ転送を削減し、運用中のストレージのデータアクセス性能の低下を抑えることができるスナップショット機能の実現技術を提供する。
【解決手段】 ストレージシステムにおいて、ストレージ装置111のCPU112が処理するコマンドには、あらかじめ定めた順序に従ってデータコピー処理とデータ格納処理とを行うCopy and Writeコマンドを含み、サーバ装置101は、このコマンドをストレージ装置111に発行し、ストレージ装置111は、このコマンドを受け取ると、まずディスクドライブ117からディスクドライブ118へのデータコピー処理を実行して、次にディスクドライブ117へのデータ格納処理を実行して、ディスクドライブ118に格納したデータのスナップショットを維持する。
【選択図】 図1

Description

本発明は、ストレージ装置、およびこのストレージ装置を含むストレージシステムにおけるスナップショット機能の実現技術に関し、特に、スナップショットを作成し維持する方法に適用して有効な技術に関するものである。
本発明者が検討したところによれば、従来のストレージシステムにおけるスナップショット機能の実現技術に関しては、以下のような技術が考えられる。
例えば、情報システムの利用が拡大するにつれ、そのデータを保存するストレージの容量も拡大を続けている。また、ストレージに保存されたデータの価値も高まり、データへの不正アクセスや誤操作によるデータの破壊は、情報システムを運営する上で大きな損失となる。そのため、データの破壊を防止する目的で、またデータを破壊した場合の復旧を行えるようにする目的でデータ保護機能が重要になっている。
スナップショット機能は、ストレージのデータ保護機能の一つとして使用する。スナップショット機能を用いれば、運用中のストレージのデータをある時点で静止化したイメージであるスナップショットを作成し維持することができる。スナップショットは、運用中のストレージとは別の手段でアクセス可能であり、作成した時点のデータを参照することができる。そのため、運用中のストレージのデータを破壊してしまった場合、スナップショット作成時点のデータを復元することができる。
スナップショット機能を実現する方法として、データの処理や制御を行うサーバ装置の機能を利用する方法、データを保存するストレージ装置の機能を利用する方法の二つに区別できる。
サーバ装置の機能を利用する方法の場合、サーバ装置上で動作するソフトウェアを利用する。例えば、OSの機能を用いてスナップショットを作成する方法がある(例えば、非特許文献1参照)。運用中のストレージボリューム(運用ボリューム)と、それとは別のスナップショット作成用のストレージボリューム(差分ボリューム)を用意する。そして、OSに運用ボリュームのスナップショット作成を指示すると、その時点の運用ボリュームのイメージであるスナップショットが参照可能になる。スナップショット作成以後、運用ボリュームに更新が発生した場合、運用ボリュームの更新前のデータを差分ボリュームにコピーする。そして、スナップショットのあるデータアドレスを参照した場合、そのデータが差分ボリュームにコピーされていればそのデータを、コピーされていなければ運用ボリュームのデータを返す。このように、スナップショット作成時のデータを差分ボリュームに保存しておくことで、スナップショットのイメージを維持する。
また、ストレージ装置の機能を利用する方法もある(例えば、特許文献1参照)。この場合も、運用中のストレージと、それとは別のスナップショット作成用のストレージを用意する。そして、ストレージに接続するサーバ装置やストレージの制御コンソールなどから、運用中のストレージのスナップショット作成をストレージ装置に指示する。それ以後、運用中のストレージに更新が発生した場合、ストレージ装置が更新前の運用中のストレージにあるデータを、スナップショット作成用のストレージにコピーする。そして、ストレージ装置にスナップショットのあるデータのアドレス参照を行うと、スナップショット作成用のストレージにコピーされていればそのデータを、コピーされていなければ運用中のストレージからデータを返す。このように、ストレージ装置内でスナップショット作成時のデータをスナップショット作成用のストレージに保存しておくことで、スナップショット作成時の運用中のストレージのイメージを維持する。
特開2004−118413号公報 AJ Lewis著 「LVM HOWTO」 http://ibiblio.org/pub/Linux/docs/HOWTO/other−formats/pdf/LVM−HOWTO.pdf
ところで、前記のような従来のストレージシステムにおけるスナップショット機能の実現技術に関して、本発明者が検討した結果、以下のようなことが明らかとなった。
例えば、サーバ装置上で動作するソフトウェアを利用してスナップショットを作成する場合、データをコピーする際に運用中のストレージからサーバ装置に読み込み、さらにスナップショット作成用のストレージに書き込みを実行する。そのため、スナップショットを作成していない場合と比較して、サーバ装置とストレージ装置との間でコマンド発行やストレージデータの読み込みと書き込みのために多くのデータ転送が必要になり、運用中のストレージへのデータアクセス性能が低下するという課題がある。
また、ストレージ装置の機能を利用してスナップショットを作成する場合、運用中のストレージの使用状況やアクセス特性に関係なく、ストレージ装置内で更新前のデータを差分としてコピーする。そのため、スナップショット作成用のストレージを無駄に消費することがある。例えば、サーバ装置から見て、運用中のストレージのあるアドレスに存在するデータは使用していないのに、スナップショット作成用ストレージにデータをコピーしたとする。このとき、スナップショットを参照する際、それまで使用していなかったアドレスのデータにサーバ装置からアクセスしても、そのデータは意味が無い。
さらに、ストレージ装置の機能を利用してスナップショットを作成する場合、サーバ装置からのデータアクセス特性とは無関係に、ストレージ装置内で更新前のデータをコピーする。そのため、例えば、ディスクドライブのデータ管理単位でデータのコピーを行うことになる。サーバ装置からのデータアクセス特性がシーケンシャルアクセスの場合、一括してデータコピーをすればストレージ装置内でコピーコマンドを1回実行することで済むはずが、データ管理単位ごとに多数のコマンドを処理する必要が生じる。つまり、サーバ装置からのデータアクセス特性に応じた柔軟なデータコピーを実行できないという課題が発生する。
そこで、本発明は、ストレージのデータコピーの際に必要な、サーバ装置とストレージ装置間のデータ転送を削減し、運用中のストレージのデータアクセス性能の低下を抑えることができるスナップショット機能の実現技術を提供することを目的とするものである。
また、本発明の他の目的は、スナップショット作成用のストレージの無駄な消費を抑えることができ、さらに、データアクセス特性に応じたスナップショット維持処理を可能とすることができるスナップショット機能の実現技術を提供するものである。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
(1)本発明は、複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置に適用される。さらには、このストレージ装置と、ストレージ装置に接続されたサーバ装置とからなるストレージシステムに適用される。さらには、このストレージシステムのスナップショット維持方法に適用される。
ストレージ装置の制御部は、接続装置を通して受け取った複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有する。ストレージ装置の制御部が処理するコマンドには、あらかじめ定めた順序に従って第1の記憶装置から第2の記憶装置へのデータコピー処理と第1の記憶装置へのデータ格納処理とを行う第1のコマンドを含む。
サーバ装置は、第1のコマンドをストレージ装置に発行する機能を有する。ストレージ装置の制御部は、第1のコマンドを受け取ると、まず第1の記憶装置から第2の記憶装置へのデータコピー処理を実行して、次に第1の記憶装置へのデータ格納処理を実行する機能を有する。そして、第1の記憶装置に格納したデータと第2の記憶装置に格納したデータを用いて、第1の記憶装置に格納したデータのスナップショットを維持するものである。
第1のコマンドは、データコピー処理およびデータ格納処理の制御の種別を表す識別子と、データコピー元の第1の記憶装置を表す識別子と、データコピー元の第1の記憶装置のデータ位置と、データコピー先の第2の記憶装置を表す識別子と、データコピー先の第2の記憶装置のデータ位置と、データコピーの容量と、データ格納先の第1の記憶装置と、データ格納先の第1の記憶装置のデータ位置と、データ格納するサイズと、格納するデータの識別子とを情報として含む。さらに、これらの情報を一組として、複数からなるものである。
(2)本発明は、複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置に適用される。さらには、このストレージ装置と、ストレージ装置に接続されたサーバ装置とからなるストレージシステムに適用される。さらには、このストレージシステムのスナップショット維持方法に適用される。
ストレージ装置の制御部は、接続装置を通して受け取った複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有する。ストレージ装置の制御部が処理するコマンドには、第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行う第2のコマンドを含む。
サーバ装置は、第2のコマンドをストレージ装置に発行する機能を有する。ストレージ装置の制御部は、第2のコマンドを受け取ると、第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を実行する機能を有する。この第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理は、データの論理的な配置を交換することによって実現する。そして、第1の記憶装置に格納したデータと第2の記憶装置に格納したデータを用いて、第1の記憶装置に格納したデータのスナップショットを維持するものである。
第2のコマンドは、入れ換える処理の制御の種別を表す識別子と、データ入れ換えの第1の記憶装置を表す識別子と、データ入れ換えの第1の記憶装置のデータ位置と、データ入れ換えの第2の記憶装置を表す識別子と、データ入れ換えの第2の記憶装置のデータ位置と、データ入れ換えの容量とを情報として含む。さらに、これらの情報を一組として、複数からなるものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、ストレージのデータコピーの際に必要な、サーバ装置とストレージ装置間のデータ転送を削減し、運用中のストレージのデータアクセス性能の低下を抑えることが可能となる。
また、本発明によれば、サーバ装置が運用中のストレージの使用状況に応じてデータのコピーを指示するのを可能にすることで、スナップショット作成用のストレージの無駄な消費を抑えることが可能となる。
さらに、本発明によれば、サーバ装置がデータコピー実行を指示するのを可能にすることで、データアクセス特性に応じたスナップショット維持処理が可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明は、スナップショットの維持に必要な差分データを保存する処理による運用ボリュームのデータアクセスの性能低下を抑えることの目的を、サーバ装置からの指示をストレージ装置で実行することで実現可能とするものである。サーバ装置が、データのコピーとデータの更新を同時にストレージ装置に指示するコマンドインタフェースを用いて、スナップショットの維持を行うことを特徴とする。また、サーバ装置上で動作するソフトウェアがこのコマンドインタフェースを使用すること、および、ストレージ装置がコマンドインタフェースにより指示された処理を実行することを特徴とする。
本発明において、サーバ装置からストレージ装置への指示は、第1の記憶装置から第2の記憶装置へのデータコピー処理と第1の記憶装置へのデータ格納処理とを行う方法、すなわち運用ボリュームから差分ボリュームへのデータコピーと運用ボリュームへのデータ格納とによる、差分データのコピーとデータ更新を同時に発行する方法(実施の形態1)と、第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行う方法、すなわち運用ボリュームと差分ボリュームのデータを入れ換える方法(実施の形態2)とがあり、以下において具体的に説明する。
(実施の形態1)
本実施の形態は、サーバ装置からデータのコピーと書き込みを同時に指示するコマンド(ここでは、Copy and Writeコマンドと称する)をストレージ装置に発行し、そのコマンドをストレージ装置が実行することで、スナップショットを維持する例である。
図1は、本発明の実施の形態1におけるストレージシステムのシステム構成の一例を示す構成図である。
本実施の形態におけるストレージシステムは、サーバ装置101と、ストレージ装置111から構成される。
サーバ装置101は、処理を行う制御部としての機能を持つCPU102、サーバ装置101の処理に必要なデータおよびCPU102が実行するソフトウェアを保持するメモリ103、サーバ装置101とストレージ装置111を接続してそれぞれの間でデータ転送を行うための接続装置としての機能を持つインタフェース104を備える。
サーバ装置101で動作するソフトウェアとして、メモリ103上には、ファイルシステム処理プログラム105およびスナップショット管理プログラム106がある。ファイルシステム処理プログラム105は、サーバ装置101が提供するサービスで使用するデータ管理に使用する。例えば、サーバ装置101上でファイルサーバプログラムを実行している場合、そのファイルを管理する。あるいは、データベースを実行している場合、データベースマネージメントシステムプログラムが扱うデータをファイルとして扱う場合に用いる。ファイルシステム処理プログラム105は、運用ボリュームやスナップショットにアクセスする際に、スナップショット管理プログラム106に読み出しや書き込みの要求を発行してディスクドライブとの間でデータ転送を行う。スナップショット管理プログラム106は、運用ボリュームと差分ボリュームの組でスナップショットを作成して維持し、ボリュームへのアクセスを可能にする。
ストレージ装置111は、データを保持するための記憶装置としての機能を持つディスクドライブ117,118、ストレージ装置111内の処理を行う制御部としての機能を持つCPU112、ストレージ装置111の処理に必要なデータやCPU112が実行するソフトウェアを保持するメモリ113、ストレージ装置111とサーバ装置101を接続してそれぞれの間でデータ転送を行うための接続装置としての機能を持つインタフェース114、CPU112が実行する処理に伴うディスクドライブ117とディスクドライブ118との間でデータ転送を行うための接続装置としての機能を持つインタフェース116を備える。
それぞれのディスクドライブ117,118は、一定のサイズをデータの管理単位であるブロックとして、ブロック単位でアクセス可能である。つまり、データの読み出しや書き込み、さらに他のデータに関するアクセス時には、ブロック単位で指定をする必要がある。
ストレージ装置111で動作するソフトウェアとして、メモリ113上には、I/Oコマンド制御プログラム115がある。I/Oコマンド制御プログラム115は、インタフェース114を通じてサーバ装置101から要求されたI/Oコマンドを実行する。例えば、インタフェース114がSCSIインタフェースである場合には、SCSIコマンドをI/Oコマンドとして受け取り、ストレージ装置111がCPU112によってI/Oコマンド制御プログラム115を実行し、サーバ装置101の要求であるI/Oコマンドを処理する。
データを保存する媒体であるディスクドライブ117とディスクドライブ118は、それぞれ単体のディスクドライブ装置や、ディスクドライブ装置を複数のパーティションと呼ばれる領域に分割したものである。あるいは、複数のディスクドライブ装置を統合して管理するRAID(Redundant Arrays of Inexpensive Disks)を用いる方法もある。また、複数のディスクドライブ装置を論理的にディスクドライブとして用いる方法もある。
サーバ装置101は、ストレージ装置111内のディスクドライブ117を、ファイルシステムを作成してサーバ装置101で提供するサービスに使用するボリューム(運用ボリューム)として用いる。また、ディスクドライブ118はスナップショットを維持するためにスナップショットと運用ボリュームの差分であるデータを保存するボリューム(差分ボリューム)として使用する。そして、スナップショットは、ボリュームとして物理的なディスクドライブを用いるのではなく、運用ボリュームと差分ボリュームにあるデータを、サーバ装置101のスナップショット管理プログラム106によって組み合わせて形成する仮想ボリュームである。以下では、スナップショットへの書き込みはできず、読み出し専用ボリュームとして説明する。ただし、スナップショット管理プログラム106を変更することで、スナップショットへの書き込みを可能にすることもできる。
次に、サーバ装置101で動作するスナップショット管理プログラム106について、図2と図3および図4を用いて説明する。
図2は、スナップショット管理プログラム106の構成の一例を示す説明図である。スナップショット管理プログラム106は、サーバ装置101で動作するソフトウェアから、スナップショットおよび運用ボリュームへのアクセスを制御する。スナップショット管理プログラム106を構成するソフトウェアモジュールおよびデータを図2を用いて説明する。スナップショット管理プログラム106は、運用ボリュームやスナップショットのデータへのアクセスを制御する読み出し処理サブプログラム201や書き込み処理サブプログラム202および、スナップショットを用いた処理を行うためのスナップショット作成サブプログラム203およびスナップショット削除サブプログラム204、および、スナップショットを維持するのに必要なブロックコピー管理テーブル211および使用ブロック管理テーブル212からなる。
読み出し処理サブプログラム201は、運用ボリュームとスナップショットからのデータ読み出しを実行する。スナップショットからのデータ読み出しを実行する場合、運用ボリュームと差分ボリュームのいずれかからのデータを読み出して、スナップショット作成時のボリュームイメージを構成する必要がある。そのため、データの配置を記憶しておくテーブルが必要になる。このテーブルの構成については、図3と図4を用いて後に説明する。
書き込み処理サブプログラム202は、運用ボリュームへのデータ書き込みを実行する。運用ボリュームへの書き込みを実行する場合、スナップショットを構成するため、運用ボリューム上にあるデータを差分ボリュームに退避する処理を考慮する必要がある。また、本実施の形態では、スナップショットは保護されるべきデータであるとして、書き込みは行わないものとしている。スナップショットへの書き込みを許す場合、書き込み処理サブプログラム202を変更し、差分ボリューム上のブロックにデータを書き込むようにする必要がある。
スナップショット作成サブプログラム203は、スナップショットを作成するときに実行するプログラムである。スナップショットを構成して維持するために必要なテーブルの内容を初期化する処理を行う。
スナップショット削除サブプログラム204は、スナップショットを削除するときに実行するプログラムである。スナップショット作成サブプログラム203を実行後、スナップショットを構成して維持する上で使用していたテーブルの内容を破棄する処理を行う。
ブロックコピー管理テーブル211は、運用ボリュームと差分ボリュームのデータから、仮想ボリュームであるスナップショットを構成するための情報を保存するテーブルである。使用ブロック管理テーブル212は、スナップショットを維持するために差分ボリュームで使用しているブロックを管理するためのテーブルである。
図3は、ブロックコピー管理テーブル211の一例を示す説明図である。本実施の形態では、運用ボリュームがm個のブロックからなるものとし、ブロックアドレスが0である321行からm−1である324行までのm行を持つテーブルとなっている。このテーブルでは、スナップショットのブロックアドレス311とそのデータの配置を保存している。スナップショットのブロックアドレス311とそのデータの配置を知るためには、ブロックコピー管理テーブル211のコピー先アドレス312を参照すればよい。
例えば、スナップショットのブロックアドレス0のデータを読み込む場合、スナップショット管理プログラム106から、このテーブルを参照する。このとき、ブロックアドレス311の列と、スナップショットのブロックアドレス0に相当するのは、ブロックコピー管理テーブル211の321で示した行である。つまり、321行のコピー先アドレス312を参照すると、差分ボリュームアドレス100にデータが存在することが分かる。一方、ブロックコピーを実施していない場合は、スナップショットのブロックアドレス1を参照した場合になる。ブロックコピー管理テーブル211の322行は、スナップショットのブロックアドレス1を表しているが、そのコピー先アドレス312を参照するとその値が「なし」であることが分かる。つまり、スナップショットのためにデータをコピーしていないので運用ボリュームのブロックアドレス1からデータを読み出せば良いことが分かる。323行、324行も同様である。
図4は、使用ブロック管理テーブル212の一例を示す説明図である。本実施の形態では、差分ボリュームがn個のブロックからなるものとし、ブロックアドレスが0である421行からn−1である423行までのn行を持つテーブルとなっている。このテーブルでは、差分ボリュームのブロック使用状態を保存している。スナップショットのために差分データを管理するのが差分ボリュームであるが、運用ボリュームの異なるブロックのデータを、差分ボリュームの同一ブロックに保存しないように、一貫して管理するために必要になるのが、使用ブロック管理テーブル212である。
差分ボリュームのブロックアドレス411を使用中であるかを、状態フラグ412で表している。例えば、差分ボリュームのブロックアドレス0は、使用ブロック管理テーブル212でブロックアドレス411が0である421行を参照することで表現されている。421行の状態フラグ412を見ると、使用中となっているため、スナップショットのブロックアドレス0は、すでにスナップショットのためにデータを退避するブロックとして使用していることが分かる。一方、422行にあるブロックアドレスpは状態フラグ412を参照すると未使用であることが分かるので、スナップショット維持のために運用ボリュームからデータをコピーする先として使用することができることが分かる。423行も同様である。
図5〜図8は、スナップショット管理プログラム106の各サブプログラムがどのように動作するかを詳細化したものである。以降、それぞれについて説明する。
図5は、読み出し処理サブプログラム201の動作の一例を示すフロー図である。このサブプログラムは、ファイルシステム処理プログラム105から運用ボリュームやスナップショットの読み出しを行う場合に実行する。
読み出し処理サブプログラム201では、まず、読み出す対象のボリュームがスナップショットからの読み出しかを判定する(S501)。スナップショットからの読み出しでない場合(NO)は、運用ボリュームの指定されたブロックからデータ読み出しを行う(S503)。スナップショットからの読み出しの場合(YES)は、ブロックコピー管理テーブル211を参照して、読み出すブロックのコピー先アドレスの値は「なし」かを判定する(S502)。「なし」である場合(YES)、差分ボリュームにデータはコピーされていないため、運用ボリュームの指定されたブロックからデータを読み出して(S503)、処理を終了する。コピー先アドレスの値が「なし」でなく、数値だった場合(NO)は、スナップショットのデータは差分ボリュームにコピーされたものであるので、差分ボリュームのコピー先アドレスで指定されたブロックからデータを読み出して(S511)、処理を終了する。
図6は、書き込み処理サブプログラム202の動作の一例を示すフロー図である。このサブプログラムは、ファイルシステム処理プログラム105から運用ボリュームへのデータ書き込みを行う場合に実行する。
書き込み処理サブプログラム202は、まず、ブロックコピー管理テーブル211の書き込みを指定されたブロックの行を参照して、書き込むブロックのコピー先アドレスは「なし」であるかを判定する(S601)。もし「なし」でなければ(NO)、運用ボリュームへの書き込みを実行して(S611)、処理を終了する。もし「なし」であれば(YES)、運用ボリュームから差分ボリュームにデータをコピーしてから書き込みを行う必要がある。そこでまず、使用ブロック管理テーブル212を参照し、差分ボリュームの状態フラグが「未使用」のブロックを選択する(S602)。そして、運用ボリュームの書き込みを行うブロックから差分ボリュームの未使用ブロックへのデータコピーと、運用ボリュームへの書き込みを同時に行うように、コピーと書き込みを実行する(S603)。そして、差分ボリュームの使用状態に合わせるため、コピーを実行したブロックについて、使用ブロック管理テーブルの状態フラグを「使用中」に変更する(S604)。さらに、スナップショットのデータ整合性を保つため、ブロックコピー管理テーブルのコピー先アドレスを差分ボリュームのブロック番号に変更することで(S605)、処理を終了する。
図7は、スナップショット作成サブプログラム203の動作の一例を示すフロー図である。このサブプログラムは、スナップショットの運用を開始する際に実行する。そして、スナップショットを維持する上で必要なブロックコピー管理テーブル211と使用ブロック管理テーブル212とを初期化する処理を行う。まず、ブロックコピー管理テーブル211のコピー先アドレスを「なし」に設定する(S701)。そして、使用ブロック管理テーブル212の状態フラグを「未使用」に設定する(S702)。このとき、ブロックコピー管理テーブル211については、0からm−1行目までの全ての行を、また使用ブロック管理テーブル212については、0からn−1行目までの全ての行について設定を行う。
図8は、スナップショット削除サブプログラム204の動作の一例を示すフロー図である。このサブプログラムは、スナップショットの運用を終了する際に実行する。そして、ブロックコピー管理テーブル211と使用ブロック管理テーブル212の内容を破棄する処理を行う。まず、ブロックコピー管理テーブル211のコピー状態を「未」に設定する(S801)。そして、使用ブロック管理テーブル212の状態フラグを「未使用」に設定する(S802)。このとき、ブロックコピー管理テーブル211については、0からm−1行目までの全ての行を、また使用ブロック管理テーブル212については、0からn−1行目までの全ての行について設定を行う。
このように、サーバ装置101で動作するソフトウェアによってスナップショットを維持する。このソフトウェアの処理においてデータの読み出しや書き込み、そしてコピーと書き出しを実行する際に、ストレージ装置111にI/Oコマンドを発行する。これにより、サーバ装置101がディスクドライブ117とディスクドライブ118にあるデータにアクセスする。
次に、図9〜図13を用いて、ストレージ装置111で動作するI/Oコマンド制御プログラム115について説明する。サーバ装置101からのデータ読み出しにはReadコマンド、データ書き出しにはWriteコマンド、コピーと書き出し実行にはCopy and Writeコマンドを使用するものとする。また、ストレージ装置111で実行可能なコマンドには、他にもデバイスの接続状態を取得するコマンドやディスクドライブの容量情報を取得するコマンドなどもあるが、スナップショット維持に使用しないものの説明は省略している。
図9は、I/Oコマンド制御プログラム115の構成の一例を示す説明図である。I/Oコマンド制御プログラム115は、コマンド別のサブプログラムとコマンドの種別を判定するサブプログラムとで構成される。コマンド解析処理サブプログラム901は、サーバ装置101から発行されたコマンドを受け取り、その内容に応じてコマンド別の処理サブプログラムを呼び出す処理を行う。Read処理サブプログラム902は、Readコマンドの処理を行い、ディスクドライブからサーバ装置101へのデータ転送を行う。また、Write処理サブプログラム903は、Writeコマンドの処理を行い、サーバ装置101からディスクドライブ上へのデータ転送を実行する。Copy処理サブプログラム904は、ディスクドライブのあるブロックに格納されたデータを別のブロックに複製する処理を行う。複製先のブロックは、複製元のブロックがあるディスクドライブでも、それとは別のディスクドライブでもよい。
図10〜図13は、I/Oコマンド制御プログラム115を構成するサブプログラムの詳細な動作を示したものである。順に説明する。
図10は、コマンド解析処理サブプログラム901の動作の一例を示すフロー図である。サーバ装置101からインタフェース104とインタフェース114を通じて受け取ったI/Oコマンドは、まずコマンド解析処理サブプログラム901に渡る。そして、コマンドの種別を判定し、コマンドに対応するサブプログラムを呼び出す。
まず、コマンドはReadかを判定し(S1001)、そうであれば(YES)、Read処理サブプログラムを実行する(S1011)。そうでなければ(NO)、コマンドはWriteかを判定し(S1002)、Writeであれば(YES)、Write処理サブプログラムを実行する(S1012)。Writeでない場合(NO)には、コマンドはCopy and Writeかを判定し(S1003)、そうであれば(YES)、まずCopy処理サブプログラムを実行して(S1004)、Write処理サブプログラムを実行する(S1005)。
このように、コマンド解析処理サブプログラム901が各コマンドに応じたサブプログラムを実行してI/Oコマンドが処理される。また、Copy and Writeコマンドを処理する際には、まずCopyコマンドを実行してからWriteコマンドを実行する順序を守ることによって、スナップショットの整合性が維持可能となる。
図11は、Read処理サブプログラム902の動作の一例を示すフロー図である。コマンド解析処理サブプログラム901から呼び出されると、コマンドの内容で指定されたディスクドライブから指定されたデータを読み出す(S1101)。コマンドでは、ディスクドライブを識別する情報、ディスクドライブ上のブロックアドレス、読み出すデータ量、データを転送する先であるサーバ装置101のメモリ103のアドレスを指定する必要がある。
図12は、Write処理サブプログラム903の動作の一例を示すフロー図である。コマンド解析処理サブプログラム901から呼び出されると、コマンドの内容で指定されたディスクドライブに指定されたデータを書き込む(S1201)。そのため、コマンドにはディスクドライブを識別する情報、ディスクドライブ上のブロックアドレス、書き込むデータ量、書き込むデータを指定するためにサーバ装置101のメモリ103のアドレスを指定する必要がある。
図13は、Copy処理サブプログラム904の動作の一例を示すフロー図である。コマンドの内容から、コピー元で指定されたディスクドライブからメモリにデータを読み出す(S1301)。そして、メモリに読み出したデータをコピー先のディスクドライブに書き込むことで(S1302)、データをコピーする。そのため、コマンドにはコピー元とコピー先それぞれについて、ディスクドライブを識別する情報、ディスクドライブ上のブロックアドレスを指定する必要がある。さらに、コピーするデータ量を指定する必要がある。また、データをコピーするために、メモリ上にデータを一時保存する方法を記述しているが、ディスクドライブ同士の連携でデータコピーを実行することが可能であれば、その機能を使用する方法もある。
図14は、サーバ装置101からストレージ装置111にCopy and Writeコマンドを発行する際の、Copy and Writeコマンドのフォーマットの一例を示す説明図である。コマンドで指示すべき情報は、コマンドを区別するための情報であるCopy and Writeコマンド1401の識別子が必要である。また、データのコピーを実行するために、コピー元ディスクドライブ1402を表す識別子と、データの配置を表すコピー元ブロックアドレス1403と、コピーするデータ量を表すためにコピーするブロック数1404を含める。また、コピー先を指定する情報として、コピー先ディスクドライブ1405と、コピー先ブロックアドレス1406を指定する。また、書き込み処理を行うための情報として、書き込み先ディスクドライブ1407と、書き込み先ブロックアドレス1408と、書き込みするブロック数1409、そして書き込むデータはサーバ装置101で保持しているため、書き込みデータ保持メモリアドレス1410を指定する。これらのデータを指定してコマンドを発行することで、Copy and Writeコマンドが実行される。
図14の例では、Copy and Writeコマンドで、コピーするデータ量と書き込みデータ量をそれぞれ指定しているが、同一のデータ量でのみ実行することにすれば、どちらか一方を指定するだけでよい。さらに、ブロック単位でのみコピーと書き込みを許す場合には、データ量を指定しないコマンドフォーマットを用いる方法もある。
また、Copy and Writeコマンドにおいて、複数のデータコピーを同時に1個のコマンドに指定するフォーマットや、複数の書き込みを同時に1個のコマンドに指定するフォーマット、さらにこれらを組み合わせたフォーマットにも容易に拡張可能である。この場合、サーバ装置101とストレージ装置111の間のデータ転送を削減する効果は、より大きくなる。
また、図14の例では、Copy and Writeコマンドを1個の連続したコマンドとしているが、複数の領域を用いてコマンドとする方法もある。例えば、SCSIインタフェースを使用する場合には、コマンドとそれに伴うパラメータリストとして必要な情報を指定する方法がある。
このように、Copy and Writeコマンドを使用して、サーバ装置からストレージ装置に指示するインタフェースを利用してスナップショットを維持することができる。また、サーバ装置とストレージ装置間のデータ転送が削減可能なため、運用ボリュームへのデータアクセス性能の低下を抑えることができる。また、ストレージ装置でなく、サーバ装置から差分データの管理を行うインタフェースを設けている。
(実施の形態2)
本実施の形態は、サーバ装置が、ストレージ装置内のディスクドライブのブロック配置を入れ換えるコマンド(ここでは、Swapコマンドと称する)を発行し、そのコマンドをストレージ装置が実行することで、スナップショットを維持する例である。
本実施の形態では、ストレージ装置内のディスクドライブのブロックは、ストレージ装置内で論理的に構成されていることを前提とする。すなわち、物理的なディスクドライブ上のデータ配置に関わらず、サーバ装置からは論理的に1台のディスクドライブとしてアクセス可能とする。
本実施の形態におけるストレージシステムは、前記実施の形態1と同様の構成となっている。ただし、図2のスナップショット管理プログラム106の書き込み処理サブプログラム202の処理フローが異なる。また、I/Oコマンド制御プログラム115の構成が異なる。以下、これら実施の形態1と異なる処理について説明する。
図15は、スナップショット管理プログラム106の書き込み処理サブプログラム202の動作の一例を示すフロー図である。本実施の形態では、データのコピーをストレージ装置111内で実行するのではなく、運用ボリュームのブロックと差分ボリュームの未使用ブロックとの入れ換えを実行する(S1503)、点が異なる。また、前記実施の形態1においては、コピーと書き込みを同時に実行することでサーバ装置101の負荷を低減していたが、本実施の形態ではブロックの入れ換えと書き込みは別のコマンドとして実行している。それ以外の処理(S1501,S1502,S1504〜S1506)は、実施の形態1と同一である。
また、前記実施の形態1でコピーと書き込みを同時に実行したように、ブロックの入れ換えとデータの書き込みを同時に実行するコマンドとして実施することも可能である。いずれの方法を選んだとしても、運用ボリュームのデータを差分ボリュームにコピーするのと同様の効果をブロックを入れ換えることで実現できる。そのため、前記実施の形態1と同様に、ブロックコピー管理テーブル211と使用ブロック管理テーブル212を使ってスナップショットを構成することが可能である。
図16〜図19は、ストレージ装置111で動作するI/Oコマンド制御プログラム115の構成と処理および処理に必要なデータを説明した図である。これらを用いてストレージ装置111の動作を説明する。
図16は、I/Oコマンド制御プログラム115の構成の一例を示す説明図である。前記実施の形態1と異なる点は、Copy処理サブプログラムではなく、Swap処理プログラム1604とブロックマッピングテーブル1605を持つ点である。Swap処理サブプログラム1604は、サーバ装置101から要求されるSwapコマンドを処理する。ブロックマッピングテーブル1605は、サーバ装置101から参照されるディスクドライブは論理ディスクドライブとして管理し、物理ディスクドライブのデータとの対応関係を保持するためのテーブルである。それ以外の構成(1601〜1603)は、実施の形態1と同一である。
図17は、ブロックマッピングテーブル1605の一例を示す説明図である。図17に示したのは運用ボリュームについてのブロックマッピングテーブル1605であるが、差分ボリュームについても同様のテーブルを用意する必要がある。ブロックマッピングテーブル1605は、論理ブロックアドレス1701を表す列と、その論理ブロックアドレスのデータが存在する物理ディスク番号1702を表す列、およびその物理ディスク上でのデータの位置を表す物理ブロックアドレス1703を表す列から構成される。
ブロックマッピングテーブル1605は、まず物理ディスクドライブのデータ配置をそのまま表す状態で初期化する。図17の例では、ブロック数がm個の論理ディスクドライブを、物理ディスク番号0のディスクドライブのブロックアドレス0からブロックアドレスm−1までの領域を用いて初期化した状態である。ただし、論理ブロックアドレスqのデータは、Swapコマンドの実行により物理ディスク番号1のディスクドライブのブロックアドレス100のデータと入れ換えが行われた状態となっている。このとき、差分ボリュームのブロックマッピングテーブルでは、論理ブロックアドレス100のデータは、物理ディスク番号0のブロックアドレスqのデータを表す状態である。このように、論理ディスクドライブと物理ディスクドライブのデータの対応関係を管理し、サーバ装置101のスナップショット管理プログラムの動作を補助する。
図18は、コマンド解析処理サブプログラム1601の動作の一例を示すフロー図である。前記実施の形態1の動作と異なる点は、Copy and Writeコマンドの実行処理を省き、Swapコマンドの処理を行うために、コマンドはSwapかを判定し(S1803)、そうであれば(YES)、Swap処理サブプログラムを実行する(S1804)、制御が含まれる点である。それ以外の処理(S1801,S1802,S1811,S1812)は、実施の形態1のコマンド解析処理サブプログラムと同様である。
Read処理サブプログラム1602とWrite処理サブプログラム1603は、前記実施の形態1の処理と同様である。ただし、論理ディスクドライブを構成するブロックマッピングテーブル1605を使用しているため、要求されたディスクドライブとブロックアドレスを物理ディスク番号と物理ブロックアドレスに変換してから処理を行う必要がある。
図19は、Swap処理サブプログラム1604の動作の一例を示すフロー図である。Swap処理サブプログラムは、ブロックマッピングテーブルの値を操作することで、論理ディスクドライブのデータ配置を変換する処理を行う。コマンドの処理は、指定されたディスクドライブのブロックマッピングテーブルの値を入れ換えることで(S1901)、終了する。そのためコマンドには、入れ換える対象となるディスクドライブとそのブロックアドレスを2組指定する。また、連続した複数のブロックを入れ換えるために、入れ換えるブロック数を指定することもできる。
図20は、Swapコマンドのフォーマットの一例を示す説明図である。コマンドには、他のコマンドと区別するためにSwapコマンド2001を表す識別子と、入れ換えの対象である入れ換えディスクドライブ1(2002)と、入れ換えブロックアドレス1(2003)と、入れ換えるブロック数(2004)を指定する。さらにもう一方の、入れ換え対象である入れ換えディスクドライブ2(2005)と、入れ換えブロックアドレス2(2006)を指定する。入れ換えディスクドライブは、本実施の形態では論理ディスクドライブを区別するための識別子を表す。また、入れ換えブロックアドレスは論理ディスクドライブのブロックアドレスを表す。そして、コマンド実行時にはストレージ装置111で保持する、ディスクマッピングテーブルの値を入れ換えることで、マッピングを変更することができる。
また、データ入れ換えを行うコマンドフォーマットにおいては、一組のデータ入れ換えを指定するだけでなく、複数のデータ入れ換えを同時に記述するフォーマットも可能である。さらに、Copy and Writeコマンドと同様に、データの書き込みを同一コマンドフォーマットで記述するように拡張することもできる。これらの場合、Swapコマンドを使用するよりも、サーバ装置101とストレージ装置111の間のデータ転送が削減できるので、本発明の効果はより大きくなる。
このように、Swapコマンドを処理するストレージ装置と、サーバ装置101上のスナップショット管理プログラムがSwapコマンドを実行してスナップショットを維持する処理を行うことで、スナップショットを維持することができる。また、サーバ装置101とストレージ装置111との間のデータ転送を削減することで、運用ボリュームへのデータアクセス性能の低下を抑えることが可能である。
Swapコマンドを用いる場合、論理ディスクドライブのデータ配置が複数の物理ディスクドライブに分散するため、データアクセス性能が低下するおそれがある。例えば、論理ディスクドライブの各ディスクブロックが1ブロックアドレスずつ、2個の物理ディスクドライブに交互に配置されていたとする。この場合、連続したデータの読み出しをサーバ装置から行うと、1ブロックアドレスずつ異なる物理ディスクドライブからデータを転送する必要がある。これは、ディスクドライブのデータシークなどに時間がかかることなどから、読み出し性能が低下する。同様に、書き込みを行う場合にも書き込み性能が低下する。
この性能低下を、できる限り少なくするため、Swapしたディスクブロックを定期的に同一物理ディスクドライブの元のブロックアドレスに書き戻す方法がある。つまり、ブロックマッピングデータを入れ換えるだけでなく、データも入れ換える処理を行う。これにより、データの並びが整えられて性能低下が抑えられる。
図21は、性能低下を抑えるためのマッピングテーブルを整列するマッピング整列プログラムの動作の一例を示すフロー図である。このプログラムをストレージ装置111上で実行することで、データの配置を上で述べた望ましい状態に変更することができる。このプログラムは、サーバ装置101からストレージ装置111に開始を指示する方法や、ストレージ装置111内で定期的に実行する方法、ストレージ装置111の処理負荷が低いときに実行する方法などを用いて開始することができる。
マッピング整列プログラムは、整列を行う対象である論理ボリュームのマッピングテーブルを参照して、マッピングテーブルの初期化時の物理ブロックアドレスと異なる論理ブロックアドレスを選択する(S2101)。これは、マッピングテーブルに付随する情報として、初期化時の物理ディスク番号を保存しておいて、それと比較することで実行できる。次に、S2101で選択した論理ブロックアドレスが初期化時に保持していたはずの、初期化時の物理ブロックアドレスを持つ論理ブロックアドレスを選択する(S2102)。これは、ストレージ装置111内で保持しているブロックマッピングテーブルを順に検索することで実行できる。そして、S2101とS2102で選択した2個のブロックのデータを入れ換える(S2103)。これにより、S2101で選択した論理ディスクドライブのブロック1個分のデータを整列して配置したことになる。データの入れ換えは、各ブロックにあるデータを一時的にメモリに読み出して、書き込み先をそれぞれもう一方のブロックにすることで実行できる。最後に、ブロックマッピングテーブルの値を入れ換えることで(S2104)、論理ディスクドライブのデータ整列が終了する。
このマッピング整列プログラムを、運用ボリュームの論理ディスクドライブに対して繰り返し実行することで、物理ディスクドライブのデータ配置を整列することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明による、Copy and WriteコマンドとSwapコマンドは、ファイルシステムやボリュームのデータが連続しないで分散してしまうフラグメント状態を解消する処理であるデフラグメント処理に用いることができる。また、Swapコマンドはボリューム上でデータの配置入れ換えが高速に実行できるため、広く利用可能である。Swapコマンドにより、ストレージ装置のディスクドライブに格納された情報と外部に接続されたストレージ装置の情報と入れ換えることができるため、参照されることが少なくなったデータを外部に退避し、参照が頻繁に行われる情報を高速なストレージ装置に集めるなど、情報の適正な配置とデータアクセス性能の適正化を可能にする場合に利用可能である。
本発明の実施の形態1におけるストレージシステムのシステム構成の一例を示す構成図である。 本発明の実施の形態1において、スナップショット管理プログラムの構成の一例を示す説明図である。 本発明の実施の形態1において、ブロックコピー管理テーブルの一例を示す説明図である。 本発明の実施の形態1において、使用ブロック管理テーブルの一例を示す説明図である。 本発明の実施の形態1において、読み出し処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、書き込み処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、スナップショット作成サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、スナップショット削除サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、I/Oコマンド制御プログラムの構成の一例を示す説明図である。 本発明の実施の形態1において、コマンド解析処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、Read処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、Write処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、Copy処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、Copy and Writeコマンドのフォーマットの一例を示す説明図である。 本発明の実施の形態2において、書き込み処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態2において、I/Oコマンド制御プログラムの構成の一例を示す説明図である。 本発明の実施の形態2において、ブロックマッピングテーブルの一例を示す説明図である。 本発明の実施の形態2において、コマンド解析処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態2において、Swap処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態2において、Swapコマンドのフォーマットの一例を示す説明図である。 本発明の実施の形態2において、マッピング整列プログラムの動作の一例を示すフロー図である。
符号の説明
101…サーバ装置、102…CPU、103…メモリ、104…インタフェース、105…ファイルシステム処理プログラム、106…スナップショット管理プログラム、111…ストレージ装置、112…CPU、113…メモリ、114…インタフェース、115…I/Oコマンド制御プログラム、116…インタフェース、117,118…ディスクドライブ、201…読み出し処理サブプログラム、202…書き込み処理サブプログラム、203…スナップショット作成サブプログラム、204…スナップショット削除サブプログラム、211…ブロックコピー管理テーブル、212…使用ブロック管理テーブル、311…ブロックアドレス、312…コピー先アドレス、411…ブロックアドレス、412…状態フラグ、901,1601…コマンド解析処理サブプログラム、902,1602…Read処理サブプログラム、903,1603…Write処理サブプログラム、904…Copy処理サブプログラム、1401…Copy and Writeコマンド、1402…コピー元ディスクドライブ、1403…コピー元ブロックアドレス、1404…コピーするブロック数、1405…コピー先ディスクドライブ、1406…コピー先ブロックアドレス、1407…書き込み先ディスクドライブ、1408…書き込み先ブロックアドレス、1409…書き込みするブロック数、1410…書き込みデータ保持メモリアドレス、1604…Swap処理サブプログラム、1605…ブロックマッピングテーブル、1701…論理ブロックアドレス、1702…物理ディスク番号、1703…物理ブロックアドレス、2001…Swapコマンド、2002…入れ換えディスクドライブ1、2003…入れ換えブロックアドレス1、2004…入れ換えるブロック数、2005…入れ換えディスクドライブ2、2006…入れ換えブロックアドレス2。

Claims (13)

  1. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置であって、
    前記複数の記憶装置は、前記接続装置を通して外部の機器から受け取ったデータを格納する機能を有し、
    前記制御部は、前記接続装置を通して受け取った前記複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有し、
    前記制御部が処理するコマンドには、あらかじめ定めた順序に従って第1の記憶装置から第2の記憶装置へのデータコピー処理と前記第1の記憶装置へのデータ格納処理とを行う第1のコマンドを含むことを特徴とするストレージ装置。
  2. 請求項1記載のストレージ装置において、
    前記制御部は、前記第1のコマンドを受け取ると、まず前記第1の記憶装置から前記第2の記憶装置へのデータコピー処理を実行して、次に前記第1の記憶装置へのデータ格納処理を実行する機能を有することを特徴とするストレージ装置。
  3. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置と、
    前記ストレージ装置に接続されたサーバ装置とからなるストレージシステムであって、
    前記ストレージ装置の前記複数の記憶装置は、前記接続装置を通して前記サーバ装置から受け取ったデータを格納する機能を有し、
    前記ストレージ装置の前記制御部は、前記接続装置を通して受け取った前記複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有し、
    前記ストレージ装置の前記制御部が処理するコマンドには、あらかじめ定めた順序に従って第1の記憶装置から第2の記憶装置へのデータコピー処理と前記第1の記憶装置へのデータ格納処理とを行う第1のコマンドを含み、
    前記サーバ装置は、前記第1のコマンドを前記ストレージ装置に発行する機能を有し、
    前記ストレージ装置の前記制御部は、前記第1のコマンドを受け取ると、まず前記第1の記憶装置から前記第2の記憶装置へのデータコピー処理を実行して、次に前記第1の記憶装置へのデータ格納処理を実行する機能を有することを特徴とするストレージシステム。
  4. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置と、
    前記ストレージ装置に接続されたサーバ装置とからなるストレージシステムのスナップショット維持方法であって、
    前記サーバ装置は、第1の記憶装置上で運用しているデータについて書き込みが生じた場合に、該書き込み対象のアドレスを指定してあらかじめ定めた順序に従って前記第1の記憶装置から第2の記憶装置へのコピー処理と前記第1の記憶装置へのデータ格納処理とを行わせる第1のコマンドを前記ストレージ装置に発行し、
    前記ストレージ装置の前記制御部は、前記第1のコマンドを受け取ると、まず前記第1の記憶装置の前記書き込み対象のアドレスのデータを前記第2の記憶装置へコピーし、次に前記第1の記憶装置の前記書き込み対象のアドレスへ書き込みデータを格納する処理を実行し、もって前記第1の記憶装置上で運用しているデータとスナップショット作成時点のデータとの差分を前記第2の記憶装置に格納して前記第1の記憶装置上で運用しているデータのスナップショットを維持することを特徴とするスナップショット維持方法。
  5. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置であって、
    前記複数の記憶装置は、前記接続装置を通して外部の機器から受け取ったデータを格納する機能を有し、
    前記制御部は、前記接続装置を通して受け取った前記複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有し、
    前記制御部が処理するコマンドには、第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行う第2のコマンドを含むことを特徴とするストレージ装置。
  6. 請求項5記載のストレージ装置において、
    前記第1の記憶装置のデータと前記第2の記憶装置のデータとの配置を入れ換える処理は、データの論理的な配置を交換することによって実現することを特徴とするストレージ装置。
  7. 請求項6記載のストレージ装置において、
    前記第1の記憶装置のデータと前記第2の記憶装置のデータで論理的な配置を交換したデータを、第1の記憶装置のデータと第2の記憶装置のデータを再び物理的なデータの配置に変換する機能を有することを特徴とするストレージ装置。
  8. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置と、
    前記ストレージ装置に接続されたサーバ装置とからなるストレージシステムであって、
    前記ストレージ装置の前記複数の記憶装置は、前記接続装置を通して前記サーバ装置から受け取ったデータを格納する機能を有し、
    前記ストレージ装置の前記制御部は、前記接続装置を通して受け取った前記複数の記憶装置に格納したデータにアクセスするコマンドを処理する機能を有し、
    前記ストレージ装置の前記制御部が処理するコマンドには、第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行う第2のコマンドを含み、
    前記サーバ装置は、前記第2のコマンドを前記ストレージ装置に発行する機能を有し、
    前記ストレージ装置の前記制御部は、前記第2のコマンドを受け取ると、前記第1の記憶装置のデータと前記第2の記憶装置のデータとの配置を入れ換える処理を実行する機能を有することを特徴とするストレージシステム。
  9. 複数の記憶装置と、外部の機器と接続するための接続装置と、制御部とを含むストレージ装置と、
    前記ストレージ装置に接続されたサーバ装置とからなるストレージシステムのスナップショット維持方法であって、
    前記サーバ装置は、第1の記憶装置上で運用しているデータについて書き込みが生じた場合に、該書き込み対象のアドレスを指定して第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行わせる第1のコマンドを前記ストレージ装置に発行し、次に前記書き込み対象のアドレスを指定して書き込みデータを格納させる第2のコマンドを前記ストレージ装置に発行し、
    前記ストレージ装置の前記制御部は、前記第1のコマンドを受け取ると、前記第1の記憶装置の前記書き込み対象のアドレスのデータと前記第2の記憶装置のデータとの配置を入れ換える処理を実行し、前記第2のコマンドを受け取ると前記書き込みデータを前記第1の記憶装置の前記書き込み対象アドレスに格納し、もって前記第1の記憶装置上で運用しているデータとスナップショット作成時点のデータとの差分を前記第2の記憶装置に格納して前記第1の記憶装置上で運用しているデータのスナップショットを維持することを特徴とするスナップショット維持方法。
  10. あらかじめ定めた順序に従って第1の記憶装置から第2の記憶装置へのデータコピー処理と前記第1の記憶装置へのデータ格納処理とを行うコマンドであって、
    前記データコピー処理および前記データ格納処理の制御の種別を表す識別子と、データコピー元の前記第1の記憶装置を表す識別子と、データコピー元の前記第1の記憶装置のデータ位置と、データコピー先の前記第2の記憶装置を表す識別子と、データコピー先の前記第2の記憶装置のデータ位置と、データコピーの容量と、データ格納先の前記第1の記憶装置と、データ格納先の前記第1の記憶装置のデータ位置と、データ格納するサイズと、格納するデータの識別子とを情報として含むことを特徴とするコマンド。
  11. 請求項10記載のコマンドにおいて、
    前記情報を一組として、複数からなることを特徴とするコマンド。
  12. 第1の記憶装置のデータと第2の記憶装置のデータとの配置を入れ換える処理を行うコマンドであって、
    前記入れ換える処理の制御の種別を表す識別子と、データ入れ換えの前記第1の記憶装置を表す識別子と、データ入れ換えの前記第1の記憶装置のデータ位置と、データ入れ換えの前記第2の記憶装置を表す識別子と、データ入れ換えの前記第2の記憶装置のデータ位置と、データ入れ換えの容量とを情報として含むことを特徴とするコマンド。
  13. 請求項12記載のコマンドにおいて、
    前記情報を一組として、複数からなることを特徴とするコマンド。
JP2004302430A 2004-10-18 2004-10-18 ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド Pending JP2006113927A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004302430A JP2006113927A (ja) 2004-10-18 2004-10-18 ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
US11/012,095 US7398420B2 (en) 2004-10-18 2004-12-16 Method for keeping snapshot image in a storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004302430A JP2006113927A (ja) 2004-10-18 2004-10-18 ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド

Publications (1)

Publication Number Publication Date
JP2006113927A true JP2006113927A (ja) 2006-04-27

Family

ID=36182199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004302430A Pending JP2006113927A (ja) 2004-10-18 2004-10-18 ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド

Country Status (2)

Country Link
US (1) US7398420B2 (ja)
JP (1) JP2006113927A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310788A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd ストレージ装置のデータ管理方法、ストレージ装置、および、計算機システム
US7890716B2 (en) 2007-03-01 2011-02-15 Hitachi, Ltd. Method of managing time-based differential snapshot
JP2012522305A (ja) * 2009-03-31 2012-09-20 イーエムシー コーポレイション データ複製システムにおけるデータの再分配
EP2562634A2 (en) 2011-08-23 2013-02-27 Fujitsu Limited Data copy processing system, storage device, and data copy processing method
JP2014123183A (ja) * 2012-12-20 2014-07-03 Fujitsu Ltd ストレージ装置、領域解放プログラム、および領域解放方法
JP2015046164A (ja) * 2013-08-28 2015-03-12 バイオセンス・ウエブスター・(イスラエル)・リミテッドBiosense Webster (Israel), Ltd. リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1690163A4 (en) * 2003-11-17 2011-07-13 Virginia Tech Intell Prop TRANSPARENT CREATION OF CONTROL POINTS AND MIGRATION OF PROCESSES IN A DISTRIBUTED SYSTEM
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP4884041B2 (ja) 2006-03-15 2012-02-22 株式会社日立製作所 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
JP5194962B2 (ja) 2008-04-03 2013-05-08 富士通株式会社 データ処理方法、ストレージ装置およびストレージシステム
US7984254B2 (en) 2008-04-04 2011-07-19 Vmware, Inc. Method and system for generating consistent snapshots for a group of data objects
JP4792490B2 (ja) * 2008-09-08 2011-10-12 株式会社日立製作所 記憶制御装置及びraidグループの拡張方法
US8549242B2 (en) 2010-04-21 2013-10-01 International Business Machines Corporation Volume swapping of point-in-time read-only target volumes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US6473775B1 (en) * 2000-02-16 2002-10-29 Microsoft Corporation System and method for growing differential file on a base volume of a snapshot
US6618794B1 (en) * 2000-10-31 2003-09-09 Hewlett-Packard Development Company, L.P. System for generating a point-in-time copy of data in a data storage system
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
JP2004118413A (ja) 2002-09-25 2004-04-15 Hitachi Ltd ストレージシステム、記憶装置、ホスト計算機、および、スナップショット作成方法。

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310788A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd ストレージ装置のデータ管理方法、ストレージ装置、および、計算機システム
US7890716B2 (en) 2007-03-01 2011-02-15 Hitachi, Ltd. Method of managing time-based differential snapshot
JP2012522305A (ja) * 2009-03-31 2012-09-20 イーエムシー コーポレイション データ複製システムにおけるデータの再分配
US8837480B2 (en) 2009-03-31 2014-09-16 Emc Corporation Data redistribution in data replication systems
EP2562634A2 (en) 2011-08-23 2013-02-27 Fujitsu Limited Data copy processing system, storage device, and data copy processing method
JP2014123183A (ja) * 2012-12-20 2014-07-03 Fujitsu Ltd ストレージ装置、領域解放プログラム、および領域解放方法
US9471247B2 (en) 2012-12-20 2016-10-18 Fujitsu Limited Storage apparatus and area releasing method
JP2015046164A (ja) * 2013-08-28 2015-03-12 バイオセンス・ウエブスター・(イスラエル)・リミテッドBiosense Webster (Israel), Ltd. リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング
US10684986B2 (en) 2013-08-28 2020-06-16 Biosense Webster (Israel) Ltd. Double buffering with atomic transactions for the persistent storage of real-time data flows

Also Published As

Publication number Publication date
US7398420B2 (en) 2008-07-08
US20060085663A1 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
US7783850B2 (en) Method and apparatus for master volume access during volume copy
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
JP4949088B2 (ja) 階層型ストレージシステム間でのリモートミラー方式
JP5608251B2 (ja) データ・ストレージ・サブシステムにおける明示的な空きデータ・ストレージ空間を決定する方法
US8204858B2 (en) Snapshot reset method and apparatus
JP4559046B2 (ja) 仮想テープライブラリ装置
JP4704161B2 (ja) ファイルシステムの構築方法
US8099569B2 (en) Storage system and data migration method
CN102598020B (zh) 用于改进的数据去重的装置、系统及方法
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US20060174075A1 (en) Method for creating and preserving snapshots in a storage system
US20080034176A1 (en) Computer system and snapshot creation method thereof
US20080256311A1 (en) Snapshot preserved data cloning
JP5238407B2 (ja) 省電力バックアップ管理方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2006113927A (ja) ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
JP2010020431A (ja) 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法
US7987328B2 (en) Data archive system
WO2015015611A1 (ja) ストレージシステム及びデータライト方法
JP2010079526A (ja) ジャーナルの階層を管理する計算機システム及び方法
JP2008269374A (ja) ストレージシステムおよびその制御方法
JP2007310618A (ja) 階層型ストレージ装置及びその記録媒体管理方法
JP6561765B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090902

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091208