JP5142629B2 - 仮想ボリュームのバックアップを行うストレージシステム及び方法 - Google Patents

仮想ボリュームのバックアップを行うストレージシステム及び方法 Download PDF

Info

Publication number
JP5142629B2
JP5142629B2 JP2007215447A JP2007215447A JP5142629B2 JP 5142629 B2 JP5142629 B2 JP 5142629B2 JP 2007215447 A JP2007215447 A JP 2007215447A JP 2007215447 A JP2007215447 A JP 2007215447A JP 5142629 B2 JP5142629 B2 JP 5142629B2
Authority
JP
Japan
Prior art keywords
virtual
volume
virtual volume
management information
copy
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.)
Expired - Fee Related
Application number
JP2007215447A
Other languages
English (en)
Other versions
JP2009048514A (ja
Inventor
晋広 牧
賢哲 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007215447A priority Critical patent/JP5142629B2/ja
Priority to US11/969,306 priority patent/US8010760B2/en
Priority to EP08250857A priority patent/EP2037363B1/en
Publication of JP2009048514A publication Critical patent/JP2009048514A/ja
Priority to US13/195,938 priority patent/US8612703B2/en
Application granted granted Critical
Publication of JP5142629B2 publication Critical patent/JP5142629B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/1469Backup restoration techniques
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Description

本発明は、論理ボリュームのバックアップに関する。
論理ボリュームの種類として、例えば、一以上の記憶装置が有する記憶空間を基に形成される実ボリューム(実体のある論理ボリューム)と、Thin Provisioning技術に従う仮想ボリューム(仮想的な論理ボリューム)とがある。仮想ボリュームにおける仮想的な記憶領域(以下、仮想領域)に、実ボリュームを構成する記憶領域(以下、実領域)が割り当てられ、その実領域にデータが書かれる(例えば特許文献1)。仮想ボリュームに割り当てられた実領域に記憶されているデータ要素を実ボリュームにコピーすることができる(例えば特許文献2)。
特開2006−338341号公報 特開2007−102455号公報
バックアップ時の仮想ボリュームを利用したいケースが生じ得る。そのためには、バックアップ時の仮想ボリュームをリストアできるようにする必要がある。
従って、本発明の目的は、バックアップ時の仮想ボリュームのリストアを可能にすることにある。
本発明の他の目的は、後の説明から明らかになるであろう。
仮想ボリュームにおける各仮想領域に割当てられている各ページに記憶されている各データ要素を論理ボリュームにコピーし、どの仮想領域にどの記憶領域が対応しているかを表す仮想ボリューム管理情報における、各仮想領域を表す情報に対応している各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、更新後の仮想ボリューム管理情報を、データ要素のコピー先である論理ボリュームにコピーする。
実施形態1では、ストレージシステムに、複数の仮想領域で構成された仮想ボリュームと、論理ボリュームと、仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、どの仮想領域にどの記憶領域が対応しているかを表す仮想ボリューム管理情報と、入出力処理部と、バックアップ処理部とが備えられる。入出力処理部は、計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、上記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける。バックアップ処理部は、仮想ボリュームにおいてページの割当てられていない仮想領域については論理ボリュームへのコピーを行わず、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を論理ボリュームにコピーし、仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、更新後の仮想ボリューム管理情報を、データ要素のコピー先である上記論理ボリュームにコピーする。仮想ボリューム管理情報は、例えば、ストレージシステム内の記憶資源(例えばメモリ)に記憶される。また、データ要素や更新後の仮想ボリューム管理情報のコピー先となる上記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームであっても良い。具体的には、例えば、その論理ボリュームは、仮想ボリュームにおけるどの仮想領域がアクセス先となるとどの実領域にアクセスされることになるかが一義的に定まるタイプの仮想ボリューム、より具体的には、例えば、外部のストレージシステムに備えられている記憶装置を基に形成された外部の論理ボリュームに対応した、ストレージ仮想化技術に従う仮想ボリュームとすることができる。
実施形態2では、実施形態1において、バックアップ処理部が、論理ボリュームに複数のデータ要素を連続的に配置する。
実施形態3では、実施形態1及び2のうちの少なくとも一つにおいて、バックアップ処理部が、複数のデータ要素が配置されている連続した複数の記憶領域の次の記憶領域から、更新後の仮想ボリューム管理情報を書き始める。
実施形態4では、実施形態1乃至3のうちの少なくとも一つにおいて、バックアップ処理部が、複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、更新後の仮想ボリューム管理情報とをコピーし、その後に、複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、更新後の仮想ボリューム管理情報とを追記する。
実施形態5では、実施形態4において、バックアップ処理部が、論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成情報を作成し、その構成情報を、前記論理ボリュームにコピーする。
実施形態6では、実施形態5において、リストア処理部が更に備えられる。リストア処理部は、構成情報を論理ボリュームから読出し、その構成情報から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、論理ボリュームにおけるその特定された場所から、上記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを計算機に提供する。
実施形態7では、実施形態1乃至7のうちの少なくとも一つにおいて、リストア処理部が更に備えられる。リストア処理部は、論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行することなく、計算機に提供する。リストアコピー処理とは、読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である。
実施形態8では、実施形態7において、入出力処理部が、リストア仮想ボリュームを指定したリード要求を前記計算機から受け付けるが、リストア仮想ボリュームを指定したライト要求を計算機から受け付けない。
実施形態9では、実施形態7において、入出力処理部が、リストア仮想ボリュームを指定したライト要求を計算機から受け付けた場合、仮想ボリューム管理情報において、そのライト要求で指定されている仮想領域を表す情報に対応した、論理ボリュームにおける記憶領域を表す情報を、その仮想領域に割当てたページを表す情報に更新する。
実施形態10では、実施形態1乃至9のうちの少なくとも一つにおいて、リストア処理部が更に備えられる。リストア処理部は、論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、前述したリストアコピー処理を実行した後に、計算機に提供する。
上述した実施形態1乃至10の少なくとも一つにおいて、仮想ボリュームと論理ボリュームとが別々のストレージシステムに存在しても良い。また、上述した実施形態1乃至11のうちの二以上の実施形態を組み合わせることができる。また、上述した各部(例えば、入出力処理部、バックアップ処理部、リストア処理部)は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
以下、幾つかの実施例を、図面を参照して説明する。
図1は、本発明の第一の実施例に係る計算機システムの構成に関するブロック図である。
計算機システムは、管理計算機100、ホスト計算機200、ストレージシステム300及び管理端末1600を備える。
管理計算機100及びホスト計算機200は、それぞれ一台ずつが図示されているが、何台備わっていてもよい。また、ストレージシステム300は、一台が図示されているが、何台備わっていてもよい。
管理計算機100、ホスト計算機200及びストレージシステム300が、第一の通信ネットワーク(例えばSAN(Storage Area Network))500を介して相互に接続される。また、管理計算機100は、ホスト計算機200及びストレージシステム300に、第二の通信ネットワーク(例えばLAN(Local Area Network)を介して接続される。図1の例では、管理端末1600が、ストレージシステム300に直接的に接続されているが、第一及び第二の通信ネットワーク500、550のうちの少なくとも一つを介してストレージシステム300に接続されても良い。
管理計算機100は、メモリ110、プロセッサ120及びIO処理部130を備える計算機である。メモリ110、プロセッサ120及びIO処理部130は、内部ネットワーク(図示省略)によって相互に接続される。
プロセッサ120は、メモリ110に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ120は、ストレージシステム300にIO要求を送信することによって、当該ストレージシステム300によって実行されるリモートコピーを制御する。なお、IO要求は、書込要求、読出要求又はリモートコピー制御要求等を含む。IO要求については、図11を参照して後に詳細に説明する。
メモリ110には、プロセッサ120によって実行されるプログラム及びプロセッサ120によって必要とされる情報等が記憶される。具体的には、メモリ110には、オフラインボリューム管理テーブル111、ストレージ管理プログラム112、コピー情報テーブル113及びストレージ情報テーブル114が記憶される。更に、メモリ110には、OS(Operating System)及びアプリケーションプログラム(AP)が記憶されてもよい。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサ(例えばCPU)によって処理が行われるものとする。
ストレージ管理プログラム112は、ストレージシステム300を管理する。
オフラインボリューム管理テーブル111は、後述するオフラインボリュームを管理するための情報である。なお、オフライン管理テーブル111については、図4を参照して後に詳細に説明する。
コピー情報テーブル113は、ローカルコピーおよびリモートコピーの構成及び状態を管理するための情報である。そのため、メモリ110は、管理計算機100によって管理されるローカルコピーの数と同数のコピー情報テーブル113を記憶する。なお、コピー情報テーブル113については、図5を参照して後に詳細に説明する。また、ローカルコピー及びリモートコピーについても後述する。
ストレージ情報テーブル114は、当該管理計算機100によって管理されるストレージシステム300に関する情報である。なお、ストレージ情報テーブル114については、図6で詳細に説明する。
IO処理部130は、データ通信線510を介してホスト計算機200及びストレージシステム300に接続されるインタフェースである。
ホスト計算機200は、メモリ210、プロセッサ220及びIO処理部230を備える計算機である。メモリ210、プロセッサ220及びIO処理部230は、内部ネットワーク(図示省略)によって相互に接続される。
プロセッサ220は、メモリ210に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ220は、ストレージシステム300にIO要求を送信することによって、そのストレージシステム300にある論理ボリュームのデータにアクセスする。
メモリ210には、プロセッサ220によって実行されるプログラム及びプロセッサ220によって必要とされる情報等が記憶される。具体的には、メモリ210には、アプリケーションプログラム(AP)211、OS212、エージェントプログラム213及びIO静止化プログラム214が記憶される。
AP211は、各種処理を実行する。例えば、AP211は、データベース機能又はWEBサーバ機能を提供する。OS212は、ホスト計算機200の処理の全体を制御する。エージェントプログラム213は、管理計算機100からの指示を受け付ける。IO静止化プログラムは、OSと連携し、IO要求を制御する。
IO処理部230は、管理計算機100及びストレージシステム300と通信するためのインタフェースである。具体的には、例えば、IO処理部230は、ストレージシステム300にIO要求を送信する。
ストレージシステム300は、記憶制御装置1000及び複数(又は一つ)のディスクドライブ1500を備える。
ディスクドライブ1500は、ディスク型の記憶メディアのドライブであり、ホスト計算機200から書き込み要求されたデータを記憶する。ディスクドライブ1500に代えて、他種の記憶デバイス(例えばフラッシュメモリドライブ)が採用されても良い。また、複数のディスクドライブ1500のうちの少なくとも一つが、リムーバブルの記憶装置であっても良い。そして、リムーバブルの記憶装置に、仮想ボリュームのバックアップ先とされる実ボリュームが設けられても良い。
記憶制御装置1000は、ストレージシステム300の動作を制御する。具体的には、例えば、記憶制御装置1000は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、記憶制御装置1000は、一以上の論理ボリュームをホスト計算機200に提供する。一以上の論理ボリュームには、一以上のディスクドライブ1500の記憶空間を基に形成された論理的な一以上の記憶領域である一つ以上の実ボリュームと、仮想ボリュームとのうちの少なくとも一つが含まれる。
記憶制御装置1000は、キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400を備える。キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400は、内部ネットワーク(図示省略)によって相互に接続される。
キャッシュメモリ1100は、ディスクドライブ1500へ書き込まれるデータ及びディスクドライブ1500から読み出されるデータを、一時的に記憶する。
ディスク制御部1400は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、ディスク制御部1400は、一以上のディスクドライブ1500の記憶空間を基に実ボリュームを生成する。
入出力制御部1300は、プロセッサ1310、IO送受信部1320及びメモリ1330を備える。プロセッサ1310、IO送受信部1320及びメモリ1330は、内部ネットワーク(図示省略)によって相互に接続される。
IO送受信部1320は、第一の通信ネットワーク500を介して通信する(例えば、管理計算機100、ホスト計算機200及び他のストレージシステム300の少なくとも一つと通信する)インタフェースである。具体的には、例えば、IO送受信部1320は、管理計算機100又はホスト計算機200からIO要求を受信する。また、IO送受信部1320は、ディスクドライブ1500から読み出されたデータを、管理計算機100又はホスト計算機200に送信する。
プロセッサ1310は、メモリ1330又は共有メモリ1200に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、例えば、プロセッサ1310は、IO送受信部1320によって受信されたIO要求を処理する。
メモリ1330には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶される。
共有メモリ1200には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶される。更に、共有メモリ1200には、ディスク制御部1400によって実行されるプログラム及びディスク制御部1400によって必要とされる情報等が記憶される。具体的には、例えば、共有メモリ1200には、コピーペア管理情報1210、仮想ボリューム処理プログラム1220、コピー処理プログラム1230、入出力処理プログラム1240、ボリューム管理情報1250、仮想ボリューム管理情報1270及びプール管理情報1290が記憶される。
コピーペア管理情報1210は、当該ストレージシステム300によって提供される論理ボリュームを含むコピーペアを管理するための情報である。コピーペアは、ローカルコピー、リモートコピーの対象となる二つの論理ボリュームからなるコピー構成である。また、コピーペア管理情報1210については、図7を参照して後に詳細に説明する。
仮想ボリューム処理プログラム1220は、仮想ボリュームに関わる処理を実施する。コピー処理プログラム1230は、ローカルコピーを行う。入出力処理プログラム1290は、IO送受信部1320によって受信されたIO要求を処理する。
ボリューム管理情報1250は、ストレージシステム300によって提供される論理ボリューム及び仮想ボリュームを管理するための情報である。なお、ボリューム管理情報1250については、図8を参照して詳細に説明する。
仮想ボリューム管理情報1270は、仮想ボリュームの仮想的な記憶領域と論理ボリュームの割り当て領域の対応情報である。なお、仮想ボリューム管理情報1270については、図9を参照して詳細に説明する。
プール管理情報1290は、仮想ボリュームに割り当て可能な論理ボリュームを管理するための情報である。なお、プール管理情報1290については、図10を参照して詳細に説明する。
入出力処理プログラムは、IO要求を処理するためのプログラムである。
管理端末1600は、ストレージシステム300に備わる記憶制御装置1000に接続される。管理端末1600は、プロセッサ、メモリ及びインタフェースを備える計算機である。管理端末1600は、システム使用者(ユーザ)から入力された情報を、ストレージシステム300の記憶制御装置1000に送信する。
次に、本発明の第一の実施例で行われる処理の概要を説明する。
図2は、ストレージシステム300における仮想ボリューム処理の説明図である。
ストレージシステム300は、仮想ボリュームをホスト計算機200に提供する。仮想ボリュームの提供先であるホスト計算機200には、特定容量の論理ボリュームがストレージシステム内に存在するものとして認識される(つまり実ボリュームと同様に認識される)。ストレージシステム300は、仮想ボリューム及びそれの仮想領域を指定したデータIO要求(ライト要求或いはリード要求)をホスト計算機200から受けた場合に、その仮想領域に実領域(後述するプールを構成する実ボリュームにおける実領域)を割り当てる。
図2では、例えば、ストレージシステム300は、ホスト計算機200に20GB(ギガバイト)の仮想ボリューム(Vol1)を提供している。ここで、例えば、ホスト計算機200からのデータIO要求で仮想ボリューム(Vol1)の仮想領域に、データ要素D3が記憶されるが、実際には、その仮想領域に割り当てられた実領域(P3)にデータ要素D3が記憶される。仮想ボリュームに対する割り当て単位としての実領域を、以後、「ページ」と呼び、ページに記憶されるデータ(言い換えれば、ページの割当て先の仮想領域に記憶されるデータ)を、「データ要素」と呼ぶ。ページP3は、実ボリューム(Vol3)から提供される。また、通常、ホスト計算機200からアクセスされる通常の実ボリュームと区別するために、ストレージシステム300では、ページ提供用途の実ボリュームが特別なボリュームグループ(以下、「プール」と呼ぶ)に属する論理ボリュームとして管理されている。
次に、図3を用いて、仮想ボリュームのバックアップ処理の概要を説明する。
図3は、仮想ボリュームのバックアップ処理の概要の説明図である。
仮想ボリュームを論理ボリュームにバックアップするために、ストレージシステム300が、仮想ボリュームに割り当てられているページに記憶されているデータ要素を、論理ボリューム(例えば実ボリューム)にコピーする。その際、ストレージシステム300は、論理ボリュームには、データ要素を連続的に配置する。
図3では、データ要素D1及びD2はコピー済みで、ストレージシステム300は、データ要素D3を論理ボリューム(Vol2)にコピーするが、その際、データ要素D3とデータ要素D2との間で空き領域を生じさせないよう、データ要素D2が記憶されている実領域と連続した次の実領域に、データ要素D3を書込む。
このように、ストレージシステム300は、仮想ボリューム(Vol1)に記憶されている各データ要素を論理ボリューム(Vol2)にバックアップする場合には、仮想ボリューム(Vol1)内で仮想的に散在している複数のデータ要素を、論理ボリューム(Vol2)の連続した複数の実領域にコピーする(言い換えれば、論理ボリューム(Vol2)にシーケンシャルに書込む)。これにより、論理ボリューム(Vol2)に無駄な空き領域が生じてしまうことを防ぐことができる。
なお、ストレージシステム300は、一つの論理ボリューム(Vol2)に、複数の仮想ボリュームに存在する複数のデータ要素をシーケンシャルにコピーすることもできる。また、論理ボリューム(Vol2)の記憶容量は、図示のように、仮想ボリューム(Vol1)と同じであっても良いし、仮想ボリューム(Vol1)より大きくても小さくても良い。
図4は、管理計算機100に記憶されるオフラインボリューム管理テーブル111の構成図である。
オフラインボリューム管理テーブル111を構成する各レコード(行)には、例えば、バックアップストレージID1111、バックアップボリュームID1112、保管ストレージID1113、保管ボリュームID1114、OS管理ボリューム情報1115、バックアップ時刻1116及びコメント1117が記録される。
バックアップストレージID1111は、バックアップ対象の仮想ボリュームを提供するストレージシステム300の一意な識別子である。
バックアップボリュームID1112は、バックアップ対象の仮想ボリュームの一意な識別子である。
保管ストレージID1113は、バックアップ先の論理ボリュームを提供するストレージシステム300の一意な識別子である。
保管ボリュームID1114は、バックアップ先の論理ボリュームの一意な識別子である。
OS管理ボリューム情報1115は、ホスト計算機200がバックアップ対象の仮想ボリュームに付与していた、OSのボリューム管理情報である。たとえば、ドライブ名やボリュームシリアル番号などが該当する。
バックアップ時刻1116は、管理計算機100がバックアップ処理の開始を指示した時刻である。
コメント1117は、バックアップ対象の仮想ボリュームに格納されるデータの内容を理解するために必要な付加的な情報である。
図5は、管理計算機100に記憶されるコピー情報テーブル113の構成図である。
コピー情報テーブル113には、コピー情報1131、グループID1132及びコピー構成情報が含まれる。
コピー情報1131は、コピー種別及びコピーオプション情報を含む。コピー種別は、このコピー情報テーブル113によって管理されるコピーがローカルコピー又はリモートコピーのいずれであるかを示す。ローカルコピーとは、同一のストレージシステム300内で行われるコピーであり、この場合、コピー元の論理ボリュームとコピー先の論理ボリュームとが同一のストレージシステム300に存在する。リモートコピーとは、異なるストレージシステム300間で行われるコピーであり、この場合、コピー元の論理ボリュームとコピー先の論理ボリュームとが別々のストレージシステム300に存在する。コピーオプション情報は、コピー種別毎に備わるオプションを表す情報である。例えば、オプション情報は、ローカルコピーの一時停止時に副ボリューム(コピー先の論理ボリューム)への書き込みが可能か否かを表す。ローカルコピーの一時停止とは、管理計算機100からの指示によるローカルコピーの一時停止である。
グループID1132は、複数のコピーペアを含むグループの一意な識別子である。グループを用いることで、管理計算機100は当該グループに含まれるコピーペアをまとめて制御することができる。
コピー構成情報は、正ストレージID1133、正ボリュームID1134、副ストレージID1135及び副ボリュームID1136、コピー状態情報1137を含む。
正ストレージID1133は、コピー元となった論理ボリューム(正ボリューム)を提供するストレージシステム(正ストレージシステム)300の一意な識別子である。正ボリュームID1134は、コピー元となった論理ボリューム(正ボリューム)の一意な識別子である。
副ストレージID1135は、コピー先となった論理ボリュームを提供するストレージシステム(副ストレージシステム)300の一意な識別子である。ローカルコピーの場合は、正ストレージシステムと同一のIDになる。副ボリューム1136は、コピー先となった論理ボリューム(副ボリューム)の一意な識別子である。
コピー状態情報1137は、このコピー情報テーブル113によって管理されるコピーの現在の状態を示す。具体的には、例えば、コピー状態情報1132は、このコピー情報テーブル113によって管理されるコピーの状態が、コピー中、一時停止中、ペア状態又は異常状態のいずれであるかを示す。
図6は、管理計算機100に記憶されるストレージ情報テーブル114の構成図である。
ストレージ情報テーブル114は、ストレージID1141及び論理ボリュームID1142を含む。
ストレージID1141は、管理計算機100によって管理されるストレージシステム300の一意な識別子である。論理ボリュームID1142は、ストレージID1141によって識別されるストレージシステム300によって提供される論理ボリュームの一意な識別子である。仮想フラグ1143は、論理ボリュームが仮想ボリュームであるか否かを示す。たとえば、仮想フラグが、“1”である場合、この仮想フラグに対応するボリュームIDから識別される論理ボリュームが仮想ボリュームであることを示す。
図7は、ストレージシステム300に記憶されるコピーペア管理情報1210の構成図である。
コピーペア管理情報1210は、論理ボリュームID12101、コピー状態情報12102、コピー対象ストレージID12103、コピー対象ボリュームID12104、コピーペアID12105、コピーグループID12106及びコピー種別12107を含む。
論理ボリュームID12101は、このコピーペア管理情報1210を記憶するストレージシステム300によって提供される論理ボリュームの一意な識別子である。
コピー状態情報12102は、論理ボリュームID12101によって識別される論理ボリュームに対するコピーの現在の状態を示す。具体的には、例えば、コピー状態情報12101は、論理ボリュームID12101によって識別される論理ボリュームが、正ボリューム、副ボリューム、コピー中、一時停止中又は異常のいずれであるかを示す。
コピー対象ボリュームID12104は、論理ボリュームID12101によって識別される論理ボリュームとコピーペアになる論理ボリュームの一意な識別子である。つまり、コピー対象ボリュームID12104は、論理ボリュームID12101によって識別される論理ボリュームに記憶されるデータのコピー先又はコピー元となる論理ボリュームの一意な識別子である。
コピー対象ストレージID12103は、論理ボリュームID12101によって識別される論理ボリュームとコピーペアになる論理ボリュームを提供するストレージシステム300の一意な識別子である。つまり、コピー対象ストレージID12103は、コピー対象ボリュームID12104によって識別される論理ボリュームを提供するストレージシステム300の一意な識別子である。
コピーペアID12105は、論理ボリュームID12101によって識別される論理ボリューム及びコピー対象ボリュームID12104によって識別される論理ボリュームを含むコピーペアの一意な識別子である。
コピーグループID12106は、コピーペアID12105によって識別されるコピーペアが属するコピーグループの一意な識別子である。ストレージシステム300は、一つ以上のコピーペアを含むコピーグループを管理する。そのため、管理計算機100は、コピーグループを指定して、ローカルコピーもしくはリモートコピーの運用の一時停止、再開又は解除をグループに含まれるコピーペアを一括して指示できる。
コピー種別12107は、コピーペアID12105によって識別されるコピーペアに実行されるコピーの種類である。具体的には、例えば、コピー種別12107は、ローカルコピー、リモートコピーのいずれかを表す。
図8は、ストレージシステム300に記憶されるボリューム管理情報1250の構成図である。
ボリューム管理情報1250は、論理ボリュームID12501、ボリューム状態情報12502、容量12503、コピーペアID12505、グループID12506及び仮想フラグ12506を含む。
論理ボリュームID12501は、このボリューム管理情報1250を記憶するストレージシステム300によって提供される論理ボリュームの一意な識別子である。
ボリューム状態情報12502は、論理ボリュームID12501によって識別される論理ボリュームの現在の状態を示す。具体的には、例えば、ボリューム状態情報12502は、正ボリューム、副ボリューム、正常、異常又は未実装のうち少なくとも一つを表す。より具体的には、例えば、論理ボリュームID12501によって識別される論理ボリュームが正ボリュームの場合、ボリューム状態情報12502は、「正ボリューム」を表す。また、論理ボリュームID12501によって識別される論理ボリュームが副ボリュームの場合、ボリューム状態情報12502は、「副ボリューム」を表す。また、論理ボリュームID12501によって識別される論理ボリュームにホスト計算機200が正常にアクセスできる場合、ボリューム状態情報12502は、「正常」を表す。また、論理ボリュームID12501によって識別される論理ボリュームにホスト計算機200が正常にアクセスできない場合、ボリューム状態情報12502は、「異常」を表す。例えば、ディスクドライブ1500の故障時、コピーの障害時に、ボリューム状態情報12502は、「異常」を表す。また、論理ボリュームID12501によって識別される論理ボリュームにデータが格納されていない場合、ボリューム状態情報12502は、「未実装」を表す。
容量12503は、論理ボリュームID12501によって識別される論理ボリュームの容量である。
コピーペアID12505は、論理ボリュームID12501によって識別される論理ボリュームを含むコピーペアの一意な識別子である。
グループID12505は、コピーペアID12505によって識別されるコピーペアが属するコピーグループの一意な識別子である。
仮想フラグ12506は、論理ボリュームID12501によって識別される論理ボリュームが仮想ボリュームであるか否かを示す。
図9は、ストレージシステム300に記憶される仮想ボリューム管理情報1270の構成図である。
仮想ボリューム管理情報1270は、仮想ボリュームに関する情報である。仮想ボリューム管理情報1270の数は、ストレージシステム300が保持する仮想ボリュームの個数と同数である。つまり、仮想ボリューム管理情報1270と仮想ボリュームは1対1で対応する。仮想ボリューム管理情報1270は、ボリュームID12701、直前参照アドレス12702、プールID12703及びアドレスマップを含む。以下、この仮想ボリューム情報1270を記憶するストレージシステム300を「当該ストレージシステム300」と呼び、この仮想ボリューム管理情報1270に対応する仮想ボリュームを「当該仮想ボリューム」と呼ぶ。
ボリュームID12701は、当該仮想ボリュームの一意な識別子である。
直前参照アドレス12702は、当該仮想ボリュームを構成する仮想領域のアドレスであって、直前回にアクセスされた仮想領域のアドレスである。ストレージシステム300がホスト計算機200から仮想ボリュームを指定したデータ更新もしくはデータ参照のIO要求を受信した場合に、直前参照アドレス12702が、そのIO要求で指定されているアクセス先アドレス(仮想領域のアドレス)に更新される。
プールID12703は、当該ストレージシステム300によって管理されるプールを一意に示す識別子である。プールID12703は、当該仮想ボリュームにページを提供する実ボリューム群を特定するために使用される。
アドレスマップは、仮想アドレス12704、論理ボリュームID12705、論理アドレスポインタ12705及び更新フラグ12706で構成される。
仮想アドレス12704は、仮想ボリュームにおける仮想領域を指すエクステントアドレスである。仮想領域のサイズはページのサイズと同一である。ホスト計算機200からのIO要求において仮想ボリュームが指定される場合、仮想ボリュームにおけるアクセス先の仮想領域を表す仮想アドレスも指定される。
論理アドレスポインタ12705は、プールID12703に属する実ボリュームの論理ボリュームIDと、その実ボリュームにおけるページのアドレスからなる。つまり、仮想領域にページが割り当てられている場合、論理アドレスポインタ12705は、そのページのアドレスと、そのページを有する実ボリュームの論理ボリュームIDとを含んだ情報である。なお、仮想領域にページが割り当てられていない場合、その仮想領域の仮想アドレス12704に対応した論理アドレスポインタ12705としては、「空き」を示す情報となる。
更新フラグ12706は、当該仮想ボリュームのコピー処理中に使用するフラグである。更新フラグの用法は後述する。
図10は、ストレージシステム300に記憶されるプール管理情報1290の構成図である。
プール管理情報1290は、プールを管理するための情報である。プール管理情報1290の数は、プールの数と同数である。つまり、プール管理情報1290とプールは1対1で対応する。プール管理情報1290は、プールID12901、前回割り当てボリュームID12906及び論理ボリューム記憶領域管理情報を含む。以下、このプール管理情報1290に対応するプールを「当該プール」と呼ぶ。
プールID12901は、当該プールを一意に示す識別子である。
前回割り当てボリュームID12906は、当該プールに属する実ボリュームを一意に示す識別子である。前回割り当てボリュームID12906は、当該プールに属する実ボリュームで、最後に割り当てられたページを有する実ボリュームのIDが格納される。
論理ボリューム記憶領域管理情報は、当該プールに属する実ボリュームを管理するための情報である。論理ボリューム記憶領域管理情報の数は、当該プールに属する実ボリュームの数と同数である。つまり、論理ボリューム記憶領域管理情報と当該プールに属する実ボリュームは1対1で対応する。論理ボリューム記憶領域管理情報は、論理ボリュームID12902、空きポインタ12903、アドレス12904及び割り当てフラグ12905を含む。以下、この論理ボリューム記憶領域管理情報に対応する実ボリュームを「当該実ボリューム」と呼ぶ。
論理ボリュームID12902は、当該実ボリュームの一意な識別子である。
空きポインタ12903は、当該実ボリュームにおける或る割当て可能なページ(例えば、仮想領域に割り当てられていないページ)のアドレス12904を指すポインタである(例えば、複数の割当て可能のページがあった場合には、それら複数の割当て可能なページのうちの先頭の割当て可能なページを指すポインタである)。
アドレス12904は、ページのアドレスを表す。
割り当てフラグ12905は、それに対応するページが割当て済みか未割当てか(つまり、割り当て不可能か割り当て可能か)を表す。
図11は、IO要求7300の説明図である。
IO要求7300は、管理計算機100又はホスト計算機200によって発行される。IO要求7300は、宛先73001、指示内容73002、通し番号73003、グループID73004及びオプション73005を含む。
宛先73001は、このIO要求7300についての宛先に関する情報である。宛先73001は、例えば、このIO要求7300の送信先となるストレージシステム300の識別子と、そのストレージシステム300における論理ボリューム(例えば仮想ボリューム或いは実ボリューム)の識別子と、その論理ボリュームにおける記憶領域(例えば仮想領域或いは実領域)のアドレス(ボリュームアドレス)とを含んだ情報である。
指示内容73002は、このIO要求7300によって指示される処理の内容である。例えば、指示内容73002は、ローカルコピー又はリモートコピーの制御指示か、或いは、データアクセスの指示等である。ローカルコピー又はリモートコピーの制御指示としては、例えば、指示内容73002は、ローカルコピー新規開始、ローカルコピー追加、ローカルコピークローズ、リモートコピー新規開始、リモートコピー追加、リモートコピークローズ、リストア準備、高速リストア、通常リストア(リストア準備、高速リストア、通常リストアはローカルコピーリモートコピー共通)、又は状態取得などである。データアクセスの指示としては、例えば、データ書き込み又はデータ参照である。
通し番号73003は、このIO要求7300が発行された順番を示す。そのため、通し番号73003は、このIO要求7300の発行元である管理計算機100又はホスト計算機200によって決められる。
グループ73004は、このIO要求7300による処理の対象となるコピーグループの一意な識別子である。
オプション73005は、コピー構成情報、このIO要求7300を補助するオプション情報及びこのIO要求7300によって書き込みが要求されるデータ等である。なお、コピー構成情報は、コピー種別、コピー先のストレージID、コピー元の論理ボリュームIDもしくは仮想ボリュームID、コピー先のストレージID及びコピー元の論理ボリュームIDもしくは仮想ボリュームID等を含む。
図12は、ストレージシステム300におけるデータアクセス処理のフローチャートである。
ストレージシステム300の入出力制御部1300は、ホスト計算機200からデータアクセス指示のIO要求7300を受信すると、そのIO要求7300の宛先73001が仮想ボリュームを現しているか否かを判定する(ステップ5000)。具体的には、例えば、入出力制御部1300は、IO要求7300のあて先73001を参照し、あて先73001に含まれているボリュームIDを取得する。次に、入出力制御部1300は、取得したボリュームIDに合致する論理ボリュームに関する情報を、ボリューム管理情報1250から取得する。そのボリューム管理情報1250の仮想フラグ12506が仮想ボリュームを表している場合(ステップ5000でYes)、入出力制御部1300は、ステップ5005以降を実行し、仮想ボリュームを表していない場合(ステップ5000でNo)、ステップ5090を実行する。以下、図12及び図13の説明において、上記取得したボリュームIDに対応する仮想ボリュームを「当該仮想ボリューム」と呼ぶ。
ステップ5005において、入出力制御部1300は、上記取得したボリュームIDに合致するボリュームID12701を有した仮想ボリューム管理情報1270を複数の仮想ボリューム管理情報1270の中から特定する(この特定された仮想ボリューム管理情報1270を、以下、図12及び図13の説明において、「当該仮想ボリューム管理情報1270」と呼ぶ)。次に、入出力制御部1300は、当該仮想ボリューム管理情報1270から、上記IO要求7300のあて先73001に含まれているボリュームアドレス(以下、図12及び図13の説明において「当該ボリュームアドレス」と言う)に合致する仮想アドレス12704を特定する。入出力制御部1300は、特定した仮想アドレス12704に対応した当該仮想アドレスエントリを参照する(なお、仮想アドレスエントリとは、論理アドレスポインタ12705及び更新フラグ12706で構成されたエントリである)。
入出力制御部1300は、上記IO要求7300の指示内容73002がデータ更新か否かを調べる(ステップ5010)。データ更新である場合(ステップ5010でYes)、入出力制御部1300は、さらに、当該仮想ボリュームでローカルコピー又はリモートコピーが処理中であるか否かを、コピーペア管理情報1210のコピー状態情報12102(上記取得したボリュームIDに合致する論理ボリュームID12101に対応したコピー状態情報12102)を参照することで判定する(ステップ5020)。
ステップ5020の判定の結果、ローカルコピーかリモートコピーの処理中(コピー状態情報12102がコピー中)である場合(ステップ5020でYes)、入出力制御部1300は、コピー処理中のデータアクセス処理(ステップ5030)を実施する。コピー処理中のデータアクセス処理については後述する。
ステップ5020の判定の結果、ローカルコピーもリモートコピーも処理中でない場合(ステップ5020でNo)、もしくは、上記のコピー処理中のデータアクセス処理(ステップ5030)の終了後、入出力制御部1300は、当該仮想アドレスエントリにおける論理アドレスポインタ12705を参照する(ステップ5060)。参照の結果、論理アドレスポインタ12705が「空き」を表している場合(ステップ5060でNo)、入出力制御部1300は、プールからページを割り当てる処理(ステップ5070)を実施する。ステップ5070の詳細については後述する。
プールからページを割り当てる処理(ステップ5070)の後、もしくは、上記ステップ5060の判定で論理アドレスポインタ12705が「空き」を表していない場合(ステップ5060でYes)、入出力制御部1300は、当該仮想ボリューム管理情報1270における直前参照アドレス12702を、IO要求7300の宛先73001に含まれているボリュームアドレス(仮想アドレス)に置き換える(ステップ5080)。
ここで、ステップ5010の判定で、上記IO要求7300における指示内容73002がデータ参照である場合(ステップ5010でNo)、入出力制御部1300は、当該仮想アドレスエントリの論理アドレスポインタ12705を参照する。参照の結果、論理アドレスポインタ12705が「空き」を表している場合(ステップ5040でNo)、入出力制御部1300は、上記IO要求7300でデータ参照の結果を“0”として(つまり、“0”を表すデータ要素が読み出されたとして)、ホスト計算機200にデータ要素“0”を返信し(5050)、データアクセス処理を終了する。
次に、ステップ5080の処理が終了した場合、もしくは、ステップ5040の判定で、論理アドレスポインタ12705が「空き」を表していない場合(ステップ5040でYes)、入出力制御部1300は、論理ボリューム(仮想ボリューム又は実ボリューム)へのデータアクセス処理(ステップ5090)を実施する。論理ボリュームへのデータアクセス処理で、IO要求7300のあて先73001が表す論理ボリュームが仮想ボリュームである場合、入出力制御部1300は、当該仮想アドレスエントリの論理アドレスポインタ12705から特定されるページにアクセスする。また、IO要求7300のあて先73001が表す論理ボリュームが実ボリュームである場合、入出力制御部1300は、その宛先73001におけるボリュームアドレスから特定される実領域にアクセスする。
以上が、データアクセス処理の流れの一例である。なお、図12の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行うことができる。そのプロセッサ1310は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム1220を実行することで行うことができる。
図13は、図12のステップ5070での処理(プールからページを割り当てる処理)の流れを表すフローチャートである。
ストレージシステム300の入出力制御部1300は、当該仮想ボリューム管理情報1270における直前参照アドレス12702から、当該仮想ボリュームについての直前回のアクセス先の仮想領域のアドレス(以下、「過去アドレス」と呼ぶ)を特定する(ステップ5100)。
次に、入出力制御部1300は、特定された過去アドレスと当該ボリュームアドレスとを比較し、両アドレスが近傍(例えば、当該ボリュームアドレスが過去アドレスの前後1ページ領域長以内に収まっている)か否かを判定する(ステップ5110)。
このステップ5110の判定は、以下の理由、すなわち、連続した二以上の仮想領域がアクセスされる場合は、プール内の同一実ボリュームにおける連続した(連続していなくてもページ間隔が所定のページ数以下である)ページを割り当てることで、その実ボリュームにおいてシーケンシャルなアクセスを可能にし、また、離散的な仮想領域がアクセスされる場合は、プール内の異なる実ボリュームからページが割り当てられることで、並行したデータアクセスを可能にする理由により、行われる。結果として、一度検出したデータは短時間に大量にアクセスが可能な論理ボリューム(厳密には論理ボリュームを構成するハードディスクドライブ)のデータアクセス特性を効率的に引き出すことができる。
ここで、ステップ5110の判定の結果、当該ボリュームアドレスと過去アドレスとが近傍である場合(ステップ5110でYes)、入出力制御部1300は、当該仮想ボリューム管理情報1270のプールID12701からプール管理情報1290を特定し、さらに、そのプール管理情報1290の前回割り当てボリュームID12906を参照する。次に、入出力制御部1300は、その前回割り当てボリュームIDと同じボリュームIDが格納された論理ボリューム記憶領域管理情報の空きポインタ12903を参照し、その空きポインタ12903が「空きなし」を表しているか否かを判定する(ステップ5120)。
一方、ステップ5110の判定の結果、当該ボリュームアドレスと過去アドレスが近傍ではない場合(ステップ5110でNo)、入出力制御部1300は、当該仮想ボリューム管理情報1270のプールID12701からプール管理情報1290を特定し、さらに、そのプール管理情報1290の前回割り当てボリュームID12906を参照する。次に、入出力制御部1300は、その前回割り当てボリュームIDとは異なるボリュームIDが格納された二以上の論理ボリューム記憶領域管理情報に、空きポインタ12903が「空きなし」を表す論理ボリューム記憶領域管理情報が存在するか否かを判定する(ステップ5180)。
ステップ5180の判定の結果、空きポインタ12903が「空きなし」でない論理ボリューム記憶領域管理情報がある場合(ステップ5180でYes)、入出力制御部1300は、そのような論理ボリューム記憶領域管理情報が複数個存在するならば、任意で一つの論理ボリューム記憶領域管理情報を選出する。また、ステップ5120の判定の結果、上記の前回割り当てボリュームIDと同じボリュームIDが格納された論理ボリューム記憶領域管理情報の空きポインタ12903が「空きなし」ではない場合(ステップ5120でYes)、入出力制御部1300は、その論理ボリューム記憶領域管理情報を選出する。
次に、入出力制御部1300は、ステップ5180でYesもしくはステップ5120でYesの場合に選出された論理ボリューム記憶領域管理情報における空きポインタ12903が示すアドレス12904に対応した割り当てフラグ12905を、「割り当てあり」をあらわす情報に更新する(ステップ5140)。
次に、入出力制御部1300は、上記選出された論理ボリューム記憶領域管理情報において、値のなるべく小さいアドレス12904に対応し「割当てなし」を表す割り当てフラグ12905を検索する(ステップ5150)。
ここで、ステップ5150の検索の結果、上記選出された論理ボリューム記憶領域管理情報から「割当てなし」を表す割り当てフラグ12905が見つかれば(ステップ5150Yes)、入出力制御部1300は、空きポインタ12903を、見つかった割り当てフラグ12905に対応したアドレス12904が表す情報に更新する(ステップ5160)。
一方、ステップ5150の判定の結果、上記選出された論理ボリューム記憶領域管理情報から「割当てなし」を表す割り当てフラグ12905が見つからなければ(ステップ5150でNo)、入出力制御部1300は、上記選出された記憶領域管理情報における空きポインタ12903を「空きなし」を表す情報に更新する。
ステップ5120及び5180のいずれかの判定でNoになった場合、入出力制御部1300は、空きポインタ12903が「空きなし」でない論理ボリューム記憶領域管理情報を検索する(ステップ5190)。
ステップ5190での検索の結果、空きポインタ12903が「空きなし」でない論理ボリューム記憶領域管理情報が見つかれば(ステップ5190でYes)、入出力制御部1300は、見つかった論理ボリューム記憶領域管理情報を選択し、上記のステップ5140以降のステップを実施する。
ステップ5190での検索の結果、空きポインタ12903が「空きなし」でない論理ボリューム記憶領域管理情報が見つからなければ(ステップ5190でNo)、入出力制御部1300は、ホスト計算機200にIO要求7300のエラーを報告し、IO要求7300のデータアクセス処理を終了する。
以上が、ページ割当て処理の流れの一例である。なお、図13の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行うことができる。そのプロセッサ1310は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム1220を実行することで行うことができる。
次に、仮想ボリュームのバックアップ処理を、図14を用いて説明する。
図14は、ストレージシステム300における仮想ボリュームのバックアップ処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求7300によるコピー制御指示(指示内容73002は「ローカルコピー新規開始」)を受信すると、仮想ボリュームのバックアップ処理を開始する。以下、図14の説明において、そのIO要求7300を「コピーIO要求7300」と言い、バックアップ対象の仮想ボリュームを、「当該仮想ボリューム」と言う。
入出力制御部1300は、当該仮想ボリュームの実容量(仮想ボリュームに割り当てられている一以上のページの総記憶容量)がコピー先の論理ボリュームの記憶容量よりも小さいか否かを判定する(ステップ5300)。具体的には、例えば、入出力制御部1300は、当該仮想ボリュームに対応した仮想ボリューム管理情報1270(以下、図14の説明において「当該仮想ボリューム管理情報1270」と言う)で、論理アドレスポインタ12705が「空き」ではない仮想アドレスエントリの個数を数える。次に、入出力制御部1300は、仮想アドレスエントリの個数にページ容量(ページの記憶容量)を積算することで、仮想ボリュームの実容量を算出する。さらに、入出力制御部1300は、コピー先の論理ボリュームの記憶容量(その論理ボリュームに対応した、ボリューム管理情報1250における容量12503から特定される記憶容量)と、仮想ボリュームの実容量とを比較する(ステップ5300)。
ステップ5300の判定の結果、仮想ボリュームの実容量がコピー先の論理ボリュームの記憶容量よりも小さい場合(ステップ5300でYes)、入出力制御部1300は、コピーが不可能であることを示すメッセージを管理計算機100に報告する。
また、ステップ5300の判定の結果、仮想ボリュームの実容量がコピー先の論理ボリュームの記憶容量以上の場合(ステップ5300でNo)、入出力制御部1300は、当該仮想ボリューム管理情報1270の複製を作成して、入出力制御部1300内のメモリ1330に格納する。さらに、入出力制御部1300は、Sポインタ1391、Tポインタ1392及び構成表1393を、入出力制御部1300のメモリ1330に格納する(ステップ5310)。
ここで、Sポインタ1391とは、当該仮想ボリューム管理情報1270におけるアドレスマップ内のいずれかの仮想アドレスエントリを指すポインタである(例えば、Sポインタ1391は、仮想アドレス12704を指すことで、その仮想アドレス12704に対応した仮想アドレスエントリを指す)。当該仮想ボリュームのコピーは、アドレスマップにおける先頭の仮想アドレスエントリに対応した仮想領域からSポインタ1391が表す仮想アドレスエントリに対応した仮想領域まで完了している。Sポインタ1391の初期値は、先頭の仮想アドレスエントリ(仮想アドレス12704)を指す。一方、Tポインタ1392とは、コピー先の論理ボリュームにおける直近のコピー先の実領域のアドレスを表すポインタである。Tポインタ1392の初期値は、コピー先の論理ボリュームの先頭実領域のアドレスを指す。図17及び図18に、それぞれ、Sポインタ1391及びTポインタ1392を示す。
また、構成表1393とは、コピー先論理ボリュームに保存されるデータ要素のコピー元である仮想ボリュームの一覧を管理する情報である。図19に構成表1393の構成例を示す。構成表1393は、仮想ボリュームの個数13936及びTポインタ13937を含む。また、コピー先論理ボリュームに保存されるデータ要素のコピー元である仮想ボリューム毎に、ボリュームID(仮想ボリュームの識別子)13931、OSアドレス(ホスト計算機200が仮想ボリュームに付与したボリューム識別子)13932、仮想ボリュームの容量13933、ユーザ情報(例えば、IO要求7300のオプション73005に含まれている、ユーザに関する情報)13934、及び、バックアップポインタ(コピー先論理ボリュームにおける、当該仮想ボリュームに対応した仮想ボリューム管理情報1270が記憶された実領域のアドレス)13935が含まれる。ステップ5310において、入出力制御部1300は、コピーペア管理情報1210に、エントリを追加する。そのエントリには、論理ボリュームID12101として、コピー元の当該仮想ボリュームを表す識別子が含まれ、コピー状態情報12102として、コピー中を表す情報が含まれ、コピー対象ストレージID12103として、コピー先論理ボリュームを有するストレージシステム300の識別子が含まれ、コピー対象ボリュームID12104として、コピー先論理ボリュームの識別子が含まれ、コピーペアID12105として、上記コピーIO要求7300に含まれているコピーペアIDが含まれ、コピー種別12107として、ローカルコピーを表す情報が含まれている。
次に、入出力制御1300は、Sポインタ1391が指す仮想アドレスエントリを参照する(ステップ5320)。
次に、入出力制御部1300は、参照した仮想アドレスエントリにおける論理アドレスポインタ12705が「空き」か否かを判定する(ステップ5330)。
ステップ5330の判定の結果、論理アドレスポインタ12705が「空き」の場合(ステップ5330でYes)、入出力制御部1300は、Sポインタ1391にページ領域長(ページのサイズ)を加算することで、Sポインタ1391が次の仮想アドレスエントリを指すよう変更し(5390)、再度、ステップ5320の処理を実施する。
一方、5330の判定の結果、論理アドレスポインタ12705が「空き」ではない場合(ステップ5330でNo)、入出力制御部1300は、Sポインタ1391が指す仮想アドレスエントリの更新フラグ12706を参照し、更新フラグ12706が立っているか否かを判定する(ステップ5340)。更新フラグ12706は、バックアップ処理中に、ローカルコピーで仮想ボリュームにおけるデータ要素のコピーが完了する前にそのデータ要素を更新するためアクセスがあった場合に、そのデータ要素(バックアップ対象のデータ要素)を一時退避するために、データ更新回避バッファ1110に更新前のデータ要素を保存する処理を実施したか否かを示す。データ更新回避バッファ1110にコピー前且つ更新前のデータ要素を退避することで、バックアップ開示直後(コピーIO要求7300の受信時)の仮想ボリュームに存在する全てのデータ要素をコピーすることが可能となる。
図20にデータ更新回避バッファの一例を示す。データ更新回避バッファ1110には、退避されるデータ要素毎に、データ要素の退避元のページに対応する仮想領域のアドレス1102と、その仮想領域を有する仮想ボリュームのID11101と、退避されたデータ要素11103とが格納される。
ステップ5340の判定の結果、上記の更新フラグ12706が立っている場合(ステップ5340でYes)、入出力制御部1300は、Sポインタ1391が指す仮想アドレスエントリに対応したデータ要素をデータ更新回避バッファ1110から読み出す。入出力制御部1300は、データ更新回避バッファ1110からデータ要素を読み出した後、更新フラグ12706をリセットする(つまり倒す)(ステップ5400)。
一方、ステップ5340の判定の結果、上記の更新フラグ12706が立っていない場合(ステップ5340でNo)、入出力制御部1300は、Sポインタ1391が指す仮想アドレスエントリから特定されるページからデータ要素を読み出す(ステップ5350)。
次に、入出力制御部1300は、Tポインタ1392が指す、コピー先論理ボリュームにおける実領域に、ステップ5340又は5350で読み出されたデータ要素を書込む(ステップ5360)。
次に、入出力制御部1300は、ステップ5310で作成した当該仮想ボリューム管理情報1270の複製において、Sポインタ1391が指す仮想アドレスエントリにおける論理アドレスポインタ12705を、Tポインタ1392が表す、実領域のアドレスに置換える(ステップ5370)。
次に、入出力制御部1300は、Sポインタ1391及びTポインタ1392に、それぞれ、1ページ領域長分の値(つまり、ページのサイズに相当するアドレス値)を加算することで、Sポインタ1391及びTポインタ1392を更新する(ステップ5380)。
次に、入出力制御部1300は、更新後のSポインタ1391が当該仮想ボリューム管理情報1270における最終の仮想アドレスエントリを表しているか否かを判定する(ステップ5420)。
ステップ5420の判定の結果、Sポインタ1391が最終の仮想アドレスエントリに到達していない場合(ステップ5420でNo)、入出力制御部1300は、ステップ5320の処理を実行する。
一方、ステップ5420の判定の結果、Sポインタ1391が最終の仮想アドレスエントリに到達している場合、入出力制御部1300は、上記の当該仮想ボリューム管理情報1270の複製を、コピー先論理ボリュームのTポインタ1392が指す実領域に書込む(ステップ5430)。
最後に、入出力制御部1300は、構成表1393の仮想ボリュームの個数13936に1を加算し、Tポインタ1392に、当該仮想ボリューム管理情報1270の複製の領域長分(つまりサイズ分)のアドレス値を加算し、更新後のTポインタ1392を構成表1393のTポインタ13937として格納し(ステップ5440)、コピーペア管理情報1210の上記コピー状態情報12102を一時停止中に変更して、処理を終了する。
以上が、仮想ボリュームのバックアップ処理の説明である。なお、図14の説明において、入出力制御部1300が行う処理を、例えば、コピー処理プログラム1230を実行するプロセッサ1310が行うことができる。そのプロセッサ1310は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム1220を実行することで行うことができる。
仮想ボリュームのバックアップ処理中に、その仮想ボリュームにおけるデータ要素の更新のためのアクセスが発生する場合、データ更新回避バッファ1110に、更新前のデータ要素が退避される。この処理は、図12で示したデータアクセス処理(ステップ5030)で必要になる。
ここで、図15を用いて、コピー処理中のデータアクセス処理について説明する。
図15は、コピー処理中のデータアクセス処理のフローチャートである。
入出力制御部1300は、Sポインタ1391が表す仮想アドレスと、IO要求7300のあて先73001に含まれるボリュームアドレスとを比較する(ステップ5500)。
ステップ5500の判定の結果、Sポインタ1391が表す仮想アドレスがIO要求7300中のボリュームアドレスより大きい場合(ステップ5500でNo)、入出力制御部1300は、当該データアクセス処理を終了する。なぜなら、ボリュームアドレスが表すアクセス先の仮想領域に割当てられているページ上のデータ要素は、コピー済みであるためである。
一方、ステップ5500の判定の結果、Sポインタ1391が表す仮想アドレスがIO要求7300中のボリュームアドレス以下の場合、入出力制御部1300は、ステップ5510を実行する。なぜなら、ボリュームアドレスが表すアクセス先の仮想領域に割当てられているページ上のデータ要素は、コピー先論理ボリュームに未だコピーされていないためである。
ステップ5510において、入出力制御部1300は、IO要求7300中のボリュームアドレスが表すアクセス先の仮想領域に割当てられているページを、当該仮想ボリューム管理情報1270を参照することで特定し、特定したページに記憶されているデータ要素を読み出し、その仮想領域に対応した仮想アドレスエントリにおける更新フラグ12706を立てる。更に、入出力制御部1300は、IO要求7300におけるボリュームID及びボリュームアドレスと読み出したデータ要素を、データ更新回避バッファ1110に書込む。
以上が、コピー処理中のデータアクセス処理についての説明である。なお、図15の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行うことができる。そのプロセッサ1310は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム1220を実行することで行うことができる。
ストレージシステム300は、仮想ボリュームの実容量分のページにあるデータ要素及びその仮想ボリュームに対応する仮想ボリューム管理情報1270の複製をコピー先論理ボリュームにコピーした後、そのコピー先論理ボリュームに、別の仮想ボリュームの実容量分のページにあるデータ要素及びその別の仮想ボリュームに対応する仮想ボリューム管理情報1270の複製をコピーすることが可能である。以下、その処理を、「追加バックアップ処理」と言う。図16を用いて、追加バックアップ処理を説明する。
図16は、追加バックアップ処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求によるコピー制御指示(指示内容73002は「ローカルコピー追加」)を受信すると、追加バックアップ処理を開始する。
追加バックアップ処理は、図14を参照して説明した仮想ボリュームのバックアップ処理との共通点が多く、そのバックアップ処理との異なるステップは、ステップ5300及び5310のみである。そのため、以下、相違点を主に説明し、共通点については説明を省略或いは簡略する(なお、図16における各ステップには、図14と実質的に同じ処理が行われるステップに付した番号と同じ番号が付されている)。
入出力制御部1300は、追加バックアップ処理でのバックアップ対象の仮想ボリューム(以下、「追加仮想ボリューム」と呼ぶ)の実容量がコピー先の論理ボリュームの空き容量よりも小さいか否かを判定する(ステップ5300)。論理ボリュームの空き容量は、コピー先論理ボリュームに対応した構成表1393におけるTポインタ13937と、コピー先論理ボリュームの記憶容量(コピー先論理ボリュームに対応した、ボリューム管理情報1250の容量12403が表す記憶容量)から計算する。次に、入出力制御部1300は、コピー先の論理ボリュームの空き容量と追加仮想ボリュームの実容量とを比較する(ステップ5600)。
ステップ5600の判定の結果、追加仮想ボリュームの実容量がコピー先論理ボリュームの空き容量以上の場合(ステップ5600でYes)、入出力制御部1300は、追加仮想ボリュームに対応する仮想ボリューム管理情報1270の複製を作成して、入出力制御部1300内のメモリ1330に格納する。さらに、入出力制御部1300は、Sポインタ1391をメモリ1330に格納する。さらに、入出力制御部1300は、入出力制御部1300のメモリ1330に記憶されている作成済みの構成表1393から、Tポインタを読み出す。次に、入出力制御部1300は、コピーペア管理情報1210に、エントリを追加する。追加したエントリに、追加仮想ボリュームのID12101と、コピー先論理ボリュームを有するストレージシステムのID12103と、コピー先論理ボリュームのID12014とを含める。さらに、入出力制御部1300は、IO要求中のコピーペアID12105と、ローカルコピーを表すコピー種別12107と、コピー中を表すコピー状態情報12102とも、上記追加したエントリに含める(ステップ5610)。
ステップ5610より後に行われる処理と、ステップ5600でYESの場合に行われる処理は、図14を参照して説明済みであるため、説明を諸略する。
この第一の実施例において、コピー先論理ボリュームに対して仮想ボリュームのバックアップを完全に終了する場合、そのコピー先論理ボリュームについてバックアップの終了手続きを実施する必要がある。以降、コピー先論理ボリュームについてのバックアップ終了手続きを、コピー先論理ボリュームのクローズ処理と呼ぶことにする。
図21は、コピー先論理ボリュームのクローズ処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求によるコピー制御指示(指示内容73002は「ローカルコピークローズ」)を受信すると、論理ボリュームのクローズ処理を開始する。IO要求では、クローズ処理の対象となるコピー先論理ボリューム(以下、「クローズ対象ボリューム」と言う)が指定されている。
入出力制御部1300は、メモリ1330に記憶されている構成表1393(クローズ対象ボリュームに対応した構成表1393)から、Tポインタ13937を取得する。次に、入出力制御部1300は、その構成表1393を、クローズ対象ボリュームにおける実領域であって、上記取得したTポインタが指すアドレスに対応した実領域に、書込む(ステップ5650)。
次に、入出力制御部1300は、クローズ対象ボリュームにおける、ストレージシステム300でのみ使用可能な領域であるヘッダ領域(言い換えれば、ホスト計算機200から指定されることの無い領域)に、上記取得したTポインタ(言い換えれば、構成表1393の書込み先アドレス)を書込む(ステップ5660)。次に、入出力制御部1300は、コピーペア管理情報1210におけるコピー状態情報12102から該当エントリ(クローズ対象ボリュームのIDを含んだエントリ)を削除し、処理を終了する。
このクローズ処理では、構成表1393の配置場所を表すアドレスが、クローズ対象ボリュームのヘッダ領域に書込まれるが、ヘッダ領域の使用が出来ない場合、ヘッダ領域を使用しない方法が採用される。たとえば、ステップ5650において、Tポインタの指すアドレスを利用せず、特定のアドレス(たとえば、クローズ対象ボリュームの先頭アドレス或いは最終アドレスなど)が使用されれば良い。
クローズ処理が終了した後のクローズ対象ボリュームにおけるデータ配置を図31に示す。図31から分かるように、クローズ対象ボリュームには、仮想ボリュームの実容量分の一以上のデータ要素がシーケンシャルに配置される。シーケンシャルに配置された終端のデータ要素が記憶されている実領域の隣にある記憶領域から、その仮想ボリュームに対応した仮想ボリューム管理情報1270の複製が配置される。そして、追加バックアップ処理が行われた場合には(言い換えれば、本クローズ対象ボリュームに複数の仮想ボリュームがバックアップされた場合には)、その仮想ボリューム管理情報1270の複製がある次の実領域から、別の仮想ボリュームの実容量分の一以上のデータ要素が、上記と同様にシーケンシャルに配置される。一以上の仮想ボリュームについてのデータ要素及び仮想ボリューム管理情報1270の複製の次の記憶領域から、構成表1393が書かれる。なお、構成表1393が占める複数の記憶領域のうちの終端の記憶領域と論理ボリュームにおける終端記憶領域との間に空きの記憶領域が生じても良い。
クローズ処理の終了した論理ボリュームから、任意の仮想ボリュームに記憶されていたデータ要素を取り出し、そのデータ要素をホスト計算機からアクセス可能にする処理がある。これをリストア処理とよぶ。リストア処理は、リストア準備処理とリストア本処理という2つの処理に区別することができる。リストア準備処理は、クローズ対象ボリュームから構成表1393を取り出す処理である。リストア本処理は、取り出された構成表1393を用いて、任意の仮想ボリュームに記憶されていたデータ要素をクローズ対象ボリュームから取り出してそのデータ要素をホスト計算機200からアクセス可能にする処理である。
はじめに、リストア準備処理について説明する。
図22は、ストレージシステム300におけるリストア準備処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求によるコピー制御指示(指示内容73002は「リストア準備」)を受信すると、仮想ボリュームのリストア準備処理を開始する。
入出力制御部1300は、リストア準備を指定したIO要求のオプション73005に格納されているコピー構成情報を基に、論理ボリュームの識別子を特定する(ステップ5700)。
入出力制御部1300は、特定された識別子に対応する論理ボリューム(以下、「リストア元論理ボリューム」のヘッダ領域に格納されたTポインタを取得する。次に、入出力制御部1300は、そのTポインタから特定される場所(リストア元論理ボリュームにおける記憶領域)から、構成表1393を取得する(ステップ5710)。
入出力制御部1300は、得られた構成表5710を、入出力制御部1300のメモリ1330に格納する(5720)。
以上のリストア準備処理により、ストレージシステム300は、リストア元論理ボリュームから構成表1393を取得できる。なお、図22の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行うことができる。
次に、リストア本処理について説明する。本実施例では、高速リストア本処理と通常リストア本処理という二種類のリストア本処理がある。高速リストア本処理とは、仮想ボリューム管理情報1270の複製のみをリストア元論理ボリュームから取り出す処理である。通常リストア本処理とは、仮想ボリューム管理情報1270の複製のみならずデータ要素もリストア元論理ボリュームから取り出す処理である。高速リストア本処理は、高速に処理が完了するが、リストア先となる仮想ボリュームへのデータ要素の更新が出来ない。一方、通常リストア本処理は、リストア先仮想ボリュームへのデータ要素の更新が可能であるが、高速リストア本処理よりも処理に長い時間が必要である。
図23は、ストレージシステム300における高速リストア本処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求によるコピー制御指示(指示内容73002は「高速リストア」)を受信すると、仮想ボリュームの高速リストア本処理を開始する。
入出力制御部1300は、IO要求のオプション73005に含まれる、リストア先仮想ボリュームの識別子を取得し、その識別子と合致するボリュームID13931(入出力制御部1300のメモリ1330に格納されている構成表1383におけるボリュームID13931)に対応したバックアップポインタ13935を取得する(ステップ5750)。
次に、入出力制御部1300は、取得したバックアップポインタ13935が指す記憶領域(リストア元論理ボリュームにおける記憶領域)に格納されている仮想ボリューム管理情報1270の複製をリストア元論理ボリュームから取得し、共有メモリ1200に、取得した仮想ボリューム管理情報1270の複製を格納する(ステップ5760)。
次に、入出力制御部1300は、その仮想ボリューム管理情報1270の複製を基に、リストア先仮想ボリュームを利用可能にする(ステップ5770)。具体的には、例えば、入出力制御部1300は、リストア先仮想ボリュームの識別子と合致するボリュームID12501(ボリューム管理情報1250における論理ボリュームID12501)に対応した仮想フラグ12506を有効にし、そのID12501に対応するボリューム状態12502を、「未実装」から「正常」に更新する。
次に、入出力制御部1300は、リストア先仮想ボリュームをオンラインにする(ステップ5780)。具体的には、例えば、入出力制御部1300は、ホスト計算機200とリストア先仮想ボリュームとを結ぶ論理的なパスを設定する。論理的なパスを設定すると、ホスト計算機200からリストア先仮想ボリュームへのアクセスが可能になる。たとえば、ホスト計算機からのSCSIの状態取得要求や、チャネルステータス要求などで、ストレージシステム300は、該当仮想ボリュームが存在すると応答を返す。結果として、ホスト計算機200は、そのストレージシステム300に論理ボリュームが存在すると認識し、データアクセス可能なボリューム一覧(例えばホスト計算機200のOSで管理されるボリューム一覧情報)に、その認識した論理ボリュームに関する情報(例えば識別子)を登録する。
以上が、高速リストア本処理の流れの一例である。なお、図23の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行うことができる。
入出力制御部1300は、高速リストア本処理によってアクセス可能になった仮想ボリューム(以下、高速リストア仮想ボリューム)について、ホスト計算機200からのリード要求を受け付けるが、ホスト計算機200からのライト要求を受け付けない。具体的には、例えば、入出力制御部1300は、高速リストア仮想ボリュームを指定したリード要求を受けた場合、そのリード要求で指定されている仮想領域に対応した記憶領域を、高速リストア仮想ボリュームに対応した仮想ボリューム管理情報1270の複製(共有メモリ1200に記憶されている情報)におけるアドレスマップから特定し、特定した記憶領域(リストア元論理ボリュームにおける記憶領域)からデータ要素を読み出してホスト計算機200に送信する。一方、例えば、入出力制御部1300は、高速リストア仮想ボリュームを指定したライト要求を受けた場合、エラーをホスト計算機200に返す。
図24は、ストレージシステム300における通常リストア本処理のフローチャートである。
ストレージシステム300は、管理計算機100からのIO要求によるコピー制御指示(指示内容73002は「通常リストア」)を受信すると、仮想ボリュームの通常リストア本処理を開始する。
入出力制御部1300は、IO要求のオプション73005に含まれる、リストア先仮想ボリュームの識別子を取得し、その識別子と合致するボリュームID13931(入出力制御部1300のメモリ1330に格納されている構成表1383におけるボリュームID13931)に対応したバックアップポインタ13935を取得する(ステップ5800)。
次に、入出力制御部1300は、取得したバックアップポインタ13935が指す記憶領域(リストア元論理ボリュームにおける記憶領域)に格納されている仮想ボリューム管理情報1270の複製をリストア元論理ボリュームから取得し、入出力制御部1300のメモリ1330に、取得した仮想ボリューム管理情報1270の複製を格納する(ステップ5810)。
次に、入出力制御部1300は、リストア先仮想ボリュームに対応したプールの残り空き容量(一以上の未割当てのページの総記憶容量)が、リストア先仮想ボリュームに求められる実容量よりも小さいか否かを判定する(ステップ5820)。具体的には、例えば、入出力制御部1300は、そのプールのプールIDを有するプール管理情報1290において、「空き」を表す割り当てフラグ12905の個数を数える。次に、入出力制御部1300は、その個数にページ容量(ページの記憶容量)を積算し、プールの空き容量を特定する。さらに、入出力制御部1300は、図14のフローで説明した仮想ボリュームの実用量の計算方法を用いて、リストア先仮想ボリュームに求められる実容量を特定し、空き容量と実容量とを比較する。
ステップ5820の判定の結果、プールの残り空き容量が仮想ボリュームの実容量よりも小さい場合(ステップ5820Yes)、入出力制御部1300は、コピーが不可能であることを示すメッセージを管理計算機100に報告する。
ステップ5820の判定の結果、プールの残り空き容量が仮想ボリュームの実容量以上の場合(ステップ5820でNo)、入出力制御部1300は、Sポインタ1391を、入出力制御部1300のメモリ1330に格納する(ステップ5310)。ここでのSポインタ1391は、リストア先仮想ボリュームに対応した仮想ボリューム管理情報1270の複製における先頭の仮想アドレスエントリを指している。入出力制御部1300は、コピーペア管理情報1210に、エントリを追加し、そのエントリに、リストア元の論理ボリュームのID12101と、リストア先仮想ボリュームを有するストレージシステムの識別子12103と、リストア先仮想ボリュームの識別子12014と、そのストレージシステムにおいて現時点使用中でない空きのコピーペアID12105と、ローカルコピーを表すコピー種別12107と、コピー中を表すコピー状態情報12102とを含める(ステップ5830)。
次に、入出力制御1300は、Sポインタ1391が指す仮想アドレスエントリ(メモリ1330に記憶されている仮想ボリューム管理情報1270の複製における仮想アドレスエントリ)を参照する(ステップ5840)。
次に、入出力制御部1300は、参照した仮想アドレスエントリの論理アドレスポインタ12705が「空き」か否かを判定する(ステップ5850)。
ステップ5850の判定の結果、論理アドレスポインタ12705が「空き」の場合(ステップ5850でYes)、入出力制御部1300は、Sポインタ1391にページ領域長を加算することで、Sポインタ1391を、次の仮想アドレスエントリを指すよう変更し(ステップ5890)、再度、ステップ5840の処理を実施する。
一方、ステップ5850の判定の結果、論理アドレスポインタ12705が「空き」ではない場合(ステップ5850でNo)、入出力制御部1300は、その論理アドレスポインタ12705が指す記憶領域(リストア元論理ボリュームにおける記憶領域)から、データ要素を読み出す(ステップ5860)。
次に、入出力制御部1300は、Sポインタ1391が指す仮想アドレスに対応した仮想領域にデータIO要求があったものとして、その仮想領域に、リストア先仮想ボリュームに対応したプールにある未割当てのページを割当て、読み出したデータ要素を、その割当てたページに書込む(ステップ5070)。なお、この処理の詳細は、図13を参照して説明した通りである。
次に、入出力制御部1300は、上記Sポインタ1391が指す仮想アドレスエントリにおける論理アドレスポインタ12705を、上記のステップ5070の処理で割り当てたページのアドレスを含んだ情報に置換える(ステップ5870)。
次に、入出力制御部1300は、Sポインタ1391に1ページ領域長分のアドレス値を加算することで、Sポインタ1391を更新する(ステップ5880)。
次に、入出力制御部1300は、更新後のSポインタ1391が、仮想ボリューム管理情報1270の複製における最終の仮想アドレスエントリを指しているか否かを判定する(ステップ5910)。
ステップ5910の判定の結果、Sポインタ1391が最終の仮想アドレスエントリに到達していない場合(ステップ5910でNo)、入出力制御部1300は、ステップ5840の処理を行う。
一方、ステップ5910の判定の結果、Sポインタ1391が最終の仮想アドレスエントリに到達している場合(ステップ5910でYes)、入出力制御部1300は、上記の仮想ボリューム管理情報1270の複製を、メモリ1330から共有メモリ1200に移す(ステップ5930)。
入出力制御部1300は、共有メモリ1200に格納した仮想ボリューム管理情報1270の複製を基に、リストア先仮想ボリュームを利用可能にする(ステップ5940)。
最後に、入出力制御部1300は、リストア先仮想ボリュームをオンラインにし(ステップ5950)、通常リストア本処理を終了する。
以上が、通常リストア本処理の流れの一例である。なお、図24の説明において、入出力制御部1300が行う処理を、例えば、コピー処理プログラム1230を実行するプロセッサ1310が行うことができる。そのプロセッサ1310は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム1220を実行することで行うことができる。
次に、管理計算機100が行うバックアップ指示手順及びリストア指示手順を説明する。
図25Aは、管理計算機100が行うバックアップ指示手順の流れを示す。
管理計算機100は、ストレージシステム300の情報を取得する(6000)。具体的には、例えば、管理計算機100のプロセッサ(以下、便宜上「管理プロセッサ」と呼ぶ)120が、ストレージ情報テーブル114を作成し、次に、管理プロセッサ120が認識している論理ボリュームを指定し且つ指示内容73002に状態取得を指定したIO要求7300を、ストレージシステム300に発行する。そのIO要求7300の結果には、ストレージシステムID、ボリュームID、仮想ボリューム有無が含まれる。管理プロセッサ120は、上記IO要求7300の結果を、ストレージ情報テーブル114に登録する。管理プロセッサ120は、上記のようなIO要求の発行を、管理プロセッサ120が認識している(もしくはユーザが指定した)全ての論理ボリュームについて実施し、各IO要求の結果を、ストレージ情報テーブル114に登録する。
次に、管理プロセッサ120は、バックアップ構成を定義するため、コピー情報テーブル113を作成する(ステップ6010)。管理プロセッサ120は、ステップ6000で得られたストレージ情報テーブル114を基に、コピー元及びコピー先のストレージシステムのそれぞれの識別子を、正ストレージID1133及び副ストレージID1135として登録する。ただし、第一の実施例では、ローカルコピーが行われるため、正ストレージID1133及び副ストレージID1135は同一のIDである。さらに、管理プロセッサ120は、コピー元及びコピー先のそれぞれのボリュームのIDを、正ボリュームID1134及び副ボリュームID1136として登録する。ここで、第一の実施例では、バックアップにおいては、コピー元は仮想ボリュームである必要があるため、正ボリュームID1134としては、ストレージ情報テーブル114において仮想フラグ1143が立っている(仮想ボリュームであることを示す)ボリュームID1142が登録される。一方、副ボリュームID1136としては、ストレージ情報テーブル114において仮想フラグ1143が立っていないボリュームID1142が登録される。さらに、管理プロセッサ120は、コピー情報テーブル1131に、ローカルコピーを表す情報を含んだコピー情報1131と、ストレージシステムで未使用のグループIDを表したグループID1132とを含める。
次に、バックアップを開始するため、管理プロセッサ120は、上記コピー情報テーブル113を基に、ストレージシステム300に、コピー制御指示を含んだIO要求7300を発行する(ステップ6020)。具体的には、管理プロセッサ120は、IO要求7300におけるあて先73001に、コピー情報テーブル113における正ストレージID1133と正ボリュームID1134とを含め、指示内容73002に、ローカルコピー新規開始、コピー元ボリュームID(正ボリュームID1134)、コピー先ボリュームID(副ボリュームID1136)を含める。また、グループID73004としては、コピー情報テーブル113におけるグループID1132が指定される。また、必要に応じ、コピー対象の仮想ボリュームの付加情報としてOSが管理するボリューム情報(たとえばドライブ名や、ボリュームシリアル番号など)および、バックアップ開始時刻などが、オプション73005に含まれる。次に、管理プロセッサ120は、ストレージシステム300に、作成したIO要求7300を発行する。
ここで、管理プロセッサ120は、ホスト計算機200で動作するAP211によっては、当該プログラムを一時停止する必要がある。その場合、管理プロセッサ120は、バックアップ開始のためのIO要求7300をストレージシステム300に発行する前に、ホスト計算機200上のIO静止化プログラム214に指示を出し、上記AP211を一時停止させる。管理プロセッサ120からホスト計算機200への指示は、エージェントプログラム213を介して行われる。ホスト計算機200上のエージェントプログラム213が、管理プロセッサ120からの指示に応答して、IO静止化プログラム214に対し、AP211の静止化のための指示を出す。また、管理プロセッサ120は、オフラインボリューム管理テーブル111に、上記の仮想ボリュームのバックアップの情報(バックアップした仮想ボリューム、バックアップ先ボリューム、バックアップ時刻、バックアップデータの説明情報など)を保存する。
ストレージシステム300では、上記IO要求を受信すると、仮想ボリュームのバックアップ処理が開始される。同一仮想ボリュームで別世代(異なる時点の仮想ボリュームにおけるデータ要素群)、もしくは異なる仮想ボリュームのバックアップが必要な場合は、管理プロセッサ120は、その都度、上述した手続きを実施する。ただし、或る仮想ボリュームのバックアップ先となっている論理ボリュームをバックアップ先とする場合には、管理プロセッサ1200は、コピー開始のためのIO要求7300に、ローカルコピー新規開始ではなく、ローカルコピー追加を指定する。
管理プロセッサ120は、バックアップが終了した後(バックアップが終了したかどうかの判定は、管理プロセッサ120がバックアップ元の仮想ボリューム及び状態取得を指定したIO要求を発行し、その結果が一時停止中であるかどうかにより行うことが可能)、ユーザからクローズ実行を受けた場合には、クローズ処理を実施する(ステップ6030)。管理プロセッサ120は、ストレージシステム300に、クローズを指定したIO要求を発行する。
図25Bは、管理計算機100が行うリストア指示手順の流れを示す。
管理プロセッサ120は、クローズ処理が済んでいる論理ボリュームから仮想ボリュームをリストアするために、リストア準備処理のための指示をストレージシステム300に送信する(ステップ6040)。具体的には、管理プロセッサ120は、ストレージシステム300に、リストア準備を指定したIO要求を発行する。そのIO要求では、正ボリュームIDとしてリストア元論理ボリュームのIDが指定され、副ボリュームIDは指定されない。リストア準備処理の結果、管理プロセッサ120は、例えばそのリストア準備処理で取得された構成表1393をストレージシステム300から取得することで、ストレージシステム300のリストア元論理ボリュームにバックアップされている仮想ボリュームに関する情報の一覧(以下、仮想ボリューム一覧)を作成することが可能になる。仮想ボリューム一覧は、状態取得を指定したIO要求を管理プロセッサ120がストレージシステム300に発行することで取得できる。仮想ボリューム一覧には、仮想ボリュームのIDの他、ステップ6020で作成されたIO要求のオプション73005におけるバックアップ対象仮想ボリュームのOS管理情報や、バックアップアップ時刻などが含まれてもよい。この仮想ボリューム一覧を利用することで、たとえオフラインボリューム管理テーブル111が消去されてしまったとしても、管理プロセッサ120は、バックアップしたボリュームのリストアが可能となる。
次に、管理プロセッサ120は、リストア準備処理の済んだリストア元論理ボリュームについてリストア本処理の指示をストレージシステム300に送信する(ステップ6050)。具体的には、管理プロセッサ120は、ストレージシステム300に、リストア本処理を指定したIO要求を発行する。このIO要求では、例えば、正ボリュームIDとしてリストア元論理ボリュームのIDが指定され、副ボリュームIDとして、リストア先の論理ボリューム(仮想ボリューム)のIDが指定される。本実施例において、バックアップした仮想ボリュームをリストアする場合、その時点では、リストア先の論理ボリューム(言い換えればリストア本処理における副ボリューム)として、ホスト計算機200が使用していない仮想ボリュームを指定する必要があり、故に、ストレージシステム300がホスト計算機200に公開していない論理ボリュームを指定する必要がある。また、リストア本処理を指定したIO要求では、例えばホスト計算機200に関する情報(例えば、用途、仕様或いは種類など)に応じて、高速リストア本処理と通常リストア本処理のいずれかが指定される。
以上が、第一の実施例についての説明である。この第一の実施例によれば、仮想ボリュームのバックアップにおいては、コピー先の論理ボリュームに、仮想ボリュームに割り当てられている一以上のページに記憶されている一以上のデータ要素がコピーされ、仮想ボリュームにおいてページの割り当てられていない仮想領域についてはコピーが発生しない。これにより、コピー先の論理ボリュームにおける記憶領域を無駄に消費してしまうことを防ぐことができる。
また、第一の実施例によれば、仮想ボリュームに記憶された一以上のデータ要素が、コピー先の論理ボリュームにおいてシーケンシャルに(言い換えれば詰めて)配置される。これにより、コピー先の論理ボリュームにおいて空きの記憶領域を散在させないようにすることができる。また、これにより、一つの論理ボリュームに複数の仮想ボリュームのバックアップを取得することが可能となる。なお、一つの論理ボリュームに複数の仮想ボリュームのバックアップを取得した場合、仮想ボリューム毎に仮想ボリューム管理情報1270の複製の存在場所を表す構成表1393もコピー先論理ボリュームに格納されるため、コピー先論理ボリュームから任意の仮想ボリュームのみをリストアすることが可能となる。
また、第一の実施例によれば、仮想領域とページとの対応関係を表す仮想ボリューム管理情報1270の複製もコピー先論理ボリュームに書き込まれ、バックアップの際、その仮想ボリューム管理情報1270の複製において、仮想領域に対応したページのアドレスが、そのページに記憶されているデータ要素のコピー先の記憶領域のアドレスに変更される。これにより、仮想ボリュームのリストアが可能である。具体的には、リストアの場合には、その仮想ボリューム管理情報1270の複製から、どのバックアップ元の仮想領域に記憶されていたデータ要素が、リストア元論理ボリューム(バックアップの際のコピー先論理ボリューム)におけるどの記憶領域に記憶されているかが特定され、特定された記憶領域に記憶されているデータ要素が、バックアップ元の仮想領域(具体的には、その仮想領域にリストアの際に割り当てられたページ)に書き込まれる。
なお、コピー先の論理ボリュームは、実ボリュームであっても良いし、仮想ボリュームであっても良い。仮想ボリュームとしては、Thin Provisioning技術に従う論理ボリュームでも良いが、記憶領域が無駄に消費されることを防ぐというメリットを享受するためには、仮想ボリュームにおけるどの仮想領域がアクセス先となるとどの実領域にアクセスされることになるかが一義的に定まるタイプの仮想ボリュームが採用されることが好ましい。そのタイプの仮想ボリュームとしては、例えば、ストレージ仮想化技術に従う仮想ボリューム、具体的には、例えば、図32Aに例示するように、外部のストレージシステムに存在する実ボリュームが対応付けられている仮想ボリュームとすることができる。その仮想ボリュームは、例えば、ストレージ仮想化装置(スイッチでもストレージシステムでも良い)が提供できる。また、コピー先の論理ボリュームとしては、図32Bに例示するように、上記のようなストレージ仮想化技術に従う仮想ボリュームの集合体が採用されても良い。この場合、仮想ボリュームの集合体(一論理ボリューム)を構成する各仮想ボリュームに対応した各外部ボリューム(実ボリューム)は、一又は複数の外部ストレージしシステムに存在する。
以下、本発明の第二の実施例について、第一の実施例との相違点を主に説明する(第一の実施例との共通点については、説明を省略或いは簡略する)。
第二の実施例に係る計算機システムでは、ストレージシステム内の仮想ボリュームに記憶されている一以上のデータ要素が、遠隔地にある別のストレージシステムにある論理ボリュームにコピーが実行される。その際、それら一以上のデータ要素は、第一の実施例と同様に、コピー先の論理ボリュームにおいて、シーケンシャルに配置される。
第二の計算機システムの構成を、図26に示す。第二の計算機システムでは、物理的に異なる拠点に配置された計算機システムが、ストレージシステムを介してデータ線512で接続される。一方は、主に業務を実行する計算機システム(現用の計算機システム)であり、他方は、待機系の計算機システムである。前者の一方の計算機システムを、正計算機システムと呼び、後者の他方の計算機システムを副計算機システムと呼ぶ。正計算機システムの構成要素には、参照番号の末尾に「A」という文字を付し(例えば、正管理計算機100A、正ホスト計算機200A、正ストレージシステム300A)、副計算機システムの構成要素には、参照番号の末尾に「B」という文字を付す(例えば、副管理計算機100B、副ホスト計算機200B、副ストレージシステム300B)。
第二の実施例で行われる処理は、仮想ボリュームのバックアップ処理を除き、第一の実施例と実質的に同じである。
ここで、第二の実施例における仮想ボリュームのバックアップ処理について、第一実施例での仮想ボリュームのバックアップ処理との差分を説明する。
図27は、正ストレージシステム300Aにおける仮想ボリュームのバックアップ処理のフローチャートである。
図14と図27との相違点は、図14のステップ5310、5360、5380及び5430が、図27では、ステップ8310、8360、8380及び8390にそれぞれ変更されている点と、図14のステップ5370及び5440に相当する処理が、図27には無い点である。
正ストレージシステム300A及び副ストレージシステム300Bの一方又は両方が、正管理計算機100A及び/又は副管理計算機100BからIO要求(コピー制御指示(指示内容73002は「リモートコピー新規開始」))を受信すると、仮想ボリュームのバックアップ処理を開始する。一方のストレージシステム300A又は300Bのみが上記IO要求を受けた場合、例えば、そのIO要求が他方のストレージシステム300B又は300Aに転送される。
ステップ8310では、正ストレージシステム300Aの入出力制御部1300Aが、仮想ボリューム管理情報1270Aを複製するだけでなく、副ストレージシステム300Bに、その仮想ボリューム管理情報1270Aの複製を転送する。また、Tポインタを作成する処理が存在しない。
ステップ8360では、入出力制御部1300Aが、読み出されたデータ要素を、副ストレージシステム300Bに転送する。
ステップ8390では、入出力制御部1300Aが、正ストレージシステム300Aでのバックアップ処理が完了したことを副ストレージシステム300Bに通知する。
図28は、副ストレージシステム300Bにおける仮想ボリュームのバックアップ処理のフローチャートである。
副ストレージシステム300Bの入出力制御部1300Bは、正ストレージシステム300Aから転送される仮想ボリューム管理情報1270の複製を受信すると、入出力制御部1300Bのメモリ1330Bに格納する。次に、入出力制御部1300Bは、Tポインタ1392及び構成表1393を作成しメモリ1330Bに格納する。また、入出力制御部1300Bは、コピーペア管理情報1210Bに、エントリを追加し、そのエントリに、コピー元の仮想ボリュームのID12101と、副ストレージシステム300BのID12103と、コピー先論理ボリュームのID12014と、上記IO要求に格納されるコピーペアID12105と、リモートコピーを表すコピー種別12107と、コピー中を表すコピー状態情報12102とを含める(ステップ8500)。
次に、入出力制御部1300Bは、正ストレージシステム300Aからのデータ要素の受付待ちを実施する(ステップ8510)。
入出力制御部1300Bは、データ要素を受信すると(ステップ8510でYes)、受信したデータ要素を、コピー先論理ボリュームにおける記憶領域(Tポインタ1392が指すアドレスに対応した記憶領域)に書き込む(ステップ8520)。
次に、入出力制御部1300Bは、受信した仮想ボリューム管理情報1270の複製における論理アドレスポインタ12705を、Tポインタ1392に置換える(ステップ5830)。
次に、入出力制御部1300Bは、Tポインタ1392に1ページ領域長分のアドレス値を加算する(ステップ5840)。
次に、入出力制御部1300Bは、正ストレージシステム300Aからバックアップ終了通知が到着しているかを判定する(ステップ5845)。
ステップ5845の判定で、入出力制御部1300Bが、バックアップ終了通知を受けている場合(ステップ5845でYes)、上記の仮想ボリューム管理情報1270の複製を、コピー先論理ボリュームにおける記憶領域(更新後のTポインタ1392が指すアドレスに対応した記憶領域)に書込む(ステップ5850)。
最後に、入出力制御部1300Bは、構成表1393における仮想ボリュームの個数13936に1を加算し、Tポインタ1392に仮想ボリューム管理情報1270の複製の領域長分のアドレス値を加算し、更新後のTポインタ1392を構成表1393のTポインタ13937として登録し(ステップ5860)、コピーペア管理情報1210の上記コピー状態情報12102を一時停止中に変更し、処理を終了する。
図29は、正ストレージシステム300Aにおける追加バックアップ処理のフローチャートである。
正ストレージシステム300Aにおける追加バックアップ処理も、図16に示した追加バックアップ処理と一部を除き同一である。図16と図29との相違点は、図16のステップ5610、5660、5680及び5630が、図29では、ステップ8310、8360、8380及び8390にそれぞれ変更されている点と、図16のステップ5670及び5640が図29には無い点である。
正ストレージシステム300A及び副ストレージシステム300Bの一方又は両方が、正管理計算機100A及び/又は副管理計算機100BからIO要求(コピー制御指示(指示内容73002は「リモートコピー追加」))を受信すると、仮想ボリュームのバックアップ処理を開始する。一方のストレージシステム300A又は300Bのみが上記IO要求を受けた場合、例えば、そのIO要求が他方のストレージシステム300B又は300Aに転送される。
図29のステップ8310、8360、8380及び8390は、図27で説明した同一番号のステップと同じであるため説明を省略する。
図30は、副ストレージシステム300Bにおける追加バックアップ処理のフローチャートである。
副ストレージシステム300Bにおける追加バックアップ処理は、図28の処理と一部を除き同一である。図30と図28の差異は、ステップ8500のみである。図28のステップ8500は、図30ではステップ8900が該当する。
ステップ8900で、入出力制御部1300Bは、正ストレージシステム300Aからデータ要素を受信すると、上記の仮想ボリューム管理情報1270の複製を、入出力制御部1300B内のメモリ1330Bに格納する。さらに、入出力制御部1300Bは、メモリ1330Bに記憶されている作成済みの構成表1393から、Tポインタを読み出す。次に、入出力制御部1300Bは、コピーペア管理情報1210に作成した追加のエントリに、コピー元の仮想ボリュームのID12101と、副ストレージシステム300BのID12103と、コピー先論理ボリュームのID12014と、上記IO要求に格納されているコピーペアID12105と、リモートコピーを表すコピー種別12107と、コピー中を表すコピー状態情報12102とを含める。
以上が、第二の実施例についての説明である。第二の実施例では、副ボリュームに、正ボリューム(仮想ボリューム)における一以上のデータ要素や、その仮想ボリュームに対応した仮想ボリューム管理情報1270の複製を、シーケンシャルに配置することができる。
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、プールを構成する論理ボリュームは、実ボリュームに代えて、ストレージ仮想化技術に従う仮想ボリュームであっても良い。また、例えば、プールを構成する論理ボリュームは、ストレージシステム300の外部のストレージシステム300に存在しても良い。
また、例えば、複数の正ストレージシステム300Aに存在する複数の仮想ボリュームが、副ストレージシステム300Bにおける一つの論理ボリュームにバックアップされても良い。
また、例えば、入出力制御部1300は、高速リストア仮想ボリュームについてリード要求のみならずライト要求を受け付けても良い。具体的には、例えば、図33に示すように、入出力制御部1300は、高速リストア仮想ボリュームにおける仮想領域Bを指定したライト要求を受けた場合、仮想領域BにページP1を割当て、ページP1に、ライト要求に従うデータ要素D2を書込むと共に、高速リストア仮想ボリュームに対応した仮想ボリューム管理情報1270の複製におけるアドレスマップにおいて、仮想領域B(仮想アドレス12704)に対応付けるアドレス(論理アドレスポインタ12705)を、記憶領域R1のアドレスから、ページP1のアドレスに変更する。その後、例えば、入出力制御部1300は、仮想領域Bを指定したリード要求をホスト計算機200から受けた場合、仮想領域Bに対応したページP1を、上記アドレスマップから特定し、特定したページP1からデータ要素D2を読み出してホスト計算機200に送信する。
本発明の第一の実施例に係る計算機システムの構成を表すブロック図である。 仮想ボリューム処理の説明図である。 仮想ボリュームのバックアップ処理の概要の説明図である。 管理計算機に記憶されるオフラインボリューム管理テーブルの構成図である。 管理計算機に記憶されるコピー情報テーブルの構成図である。 管理計算機に記憶されるストレージ情報テーブルの構成図である。 ストレージシステムに記憶されるコピーペア管理情報の構成図である。 ストレージシステムに記憶されるボリューム管理情報の構成図である。 ストレージシステムに記憶される仮想ボリューム管理情報の構成図である。 ストレージシステムに記憶されるプール管理情報の構成図である。 IO要求7300の説明図である。 ストレージシステムにおけるデータアクセス処理のフローチャートである。 図12のステップ5070で行われる処理のフローチャートである。 ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。 ストレージシステムにおけるコピー処理中のデータアクセス処理のフローチャートである。 ストレージシステムにおける追加バックアップ処理のフローチャートである。 Sポインタの構成図である。 Tポインタの構成図である。 ストレージシステムに記憶される構成表の構成図である。 ストレージシステムに記憶されるデータ更新回避バッファの構成図である。 ストレージシステムにおける論理ボリュームのクローズ処理のフローチャートである。 ストレージシステムにおけるリストア準備処理のフローチャートである。 ストレージシステムにおける高速リストア本処理のフローチャートである。 ストレージシステムにおける通常リストア本処理のフローチャートである。 図25Aは、管理計算機が行うバックアップ指示手順の流れを示す。図25Bは、管理計算機が行うリストア指示手順の流れを示す。 本発明の第二の実施例に係る計算機システムの構成を表すブロック図である。 正ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。 副ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。 正ストレージシステムにおける追加バックアップ処理のフローチャートである。 副ストレージシステムにおける追加バックアップ処理のフローチャートである。 本発明の第一の実施例においてクローズ処理が終了した時点でのコピー先論理ボリューム内のデータ構成例を示す。 図32Aは、仮想ボリュームのコピー先論理ボリュームとして採用される仮想ボリュームの一例である。図32Bは、仮想ボリュームのコピー先論理ボリュームとして採用される仮想ボリュームの別の一例である。 高速リストア仮想ボリュームを指定したライト要求の処理の概要図。
符号の説明
100…管理計算機 200…ホスト計算機 300…ストレージシステム

Claims (20)

  1. 複数の仮想領域で構成された仮想ボリュームと、
    前記仮想ボリュームをバックアップするための論理ボリュームと、
    仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、
    どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報と、
    計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、前記プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、前記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける入出力処理部と、
    前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を前記論理ボリュームにコピーし、前記仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記論理ボリュームにコピーするバックアップ処理部と、
    前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込むクローズ処理部と、
    前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、前記計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする高速リストア処理部と
    を備えるストレージシステム。
  2. 前記バックアップ処理部が、前記論理ボリュームに前記複数のデータ要素を連続的に配置する、
    請求項1記載のストレージシステム。
  3. 前記バックアップ処理部が、前記論理ボリュームに前記複数のデータ要素を連続的に配置し、前記複数のデータ要素が配置されている連続した複数の記憶領域の次の記憶領域から、前記更新後の仮想ボリューム管理情報を書き始める、
    請求項1記載のストレージシステム。
  4. 仮想ボリュームが複数個存在し、
    前記バックアップ処理部が、前記複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをコピーし、その後に、前記複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをシーケンシャルに配置する、
    請求項1記載のストレージシステム。
  5. 前記バックアップ処理部が、前記論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を、前記論理ボリュームにコピーする、
    請求項4記載のストレージシステム。
  6. 前記構成表を前記論理ボリュームから読出し、その構成表から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、前記論理ボリュームにおけるその特定された場所から、前記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを前記計算機に提供するリストア処理部、
    を更に備える請求項5記載のストレージシステム。
  7. 前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行することなく、前記計算機に提供するリストア処理部、を更に備え、
    前記リストアコピー処理とは、前記読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、前記論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である、
    を更に備える請求項1記載のストレージシステム。
  8. 前記入出力処理部が、前記リストア仮想ボリュームを指定したリード要求を前記計算機から受け付けるが、前記リストア仮想ボリュームを指定したライト要求を前記計算機から受け付けない、
    請求項7記載のストレージシステム。
  9. 前記入出力処理部が、前記リストア仮想ボリュームを指定したライト要求を前記計算機から受け付けた場合、前記仮想ボリューム管理情報において、そのライト要求で指定されている仮想領域を表す情報に対応した、前記論理ボリュームにおける記憶領域を表す情報を、その仮想領域に割当てたページを表す情報に更新する、
    請求項7記載のストレージシステム。
  10. 前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行した後に、前記計算機に提供するリストア処理部、を更に備え、
    前記リストアコピー処理とは、前記読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、前記論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である、
    請求項1記載のストレージシステム。
  11. 第一のストレージシステムと、
    第二のストレージシステムと
    を備え、
    前記第一のストレージシステムが、
    複数の仮想領域で構成された仮想ボリュームと、
    前記仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、
    どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報と、
    計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、前記プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、前記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける入出力処理部と、
    前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を、前記第二のストレージシステムに転送し、前記仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記第二のストレージシステムに転送する第一のバックアップ処理部と
    を備え、
    第二のストレージシステムが、
    前記仮想ボリュームをバックアップするための論理ボリュームと、
    前記第一のストレージシステムから前記複数のデータ要素を受信し、受信した複数のデータ要素を前記論理ボリュームに書込み、前記第一のストレージシステムから前記更新後の仮想ボリューム管理情報を受信し、受信した更新後の仮想ボリューム管理情報を前記論理ボリュームに書込む第二のバックアップ処理部と、
    前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込むクローズ処理部と、
    前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、前記計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする高速リストア処理部と
    を備える、
    リモートバックアップシステム。
  12. 仮想ボリュームにおける仮想領域に割当てられている記憶領域であるページを、どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報を基に特定し、
    前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を前記仮想ボリュームをバックアップするための論理ボリュームにコピーし、
    前記仮想ボリューム管理情報における、各仮想領域を表す情報に対応している各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記論理ボリュームにコピーし、
    前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込み、
    高速リストアの際、前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする、仮想ボリュームのバックアップ方法。
  13. 前記論理ボリュームに前記複数のデータ要素を連続的に配置する、
    請求項12記載のバックアップ方法。
  14. 複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをコピーし、その後に、前記複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをシーケンシャルに配置する、
    請求項12記載のバックアップ方法。
  15. 前記論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を、前記論理ボリュームにコピーする、
    請求項14記載のバックアップ方法。
  16. 前記構成表を前記論理ボリュームから読出し、その構成表から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、前記論理ボリュームにおけるその特定された場所から、前記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを前記計算機に提供する、
    請求項15記載のバックアップ方法。
  17. 前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、その仮想ボリューム管理情報から特定される複数のデータ要素を前記論理ボリュームから読出しその仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページにコピーすることなく、前記計算機に提供する、
    請求項13記載のバックアップ方法。
  18. 前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、その仮想ボリューム管理情報から特定される複数のデータ要素を前記論理ボリュームから読出しその仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページにコピーした後に、前記計算機に提供する、
    請求項13記載のバックアップ方法。
  19. 前記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームである、
    請求項1記載のストレージシステム。
  20. 前記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームである、
    請求項12記載のバックアップ方法。
JP2007215447A 2007-08-22 2007-08-22 仮想ボリュームのバックアップを行うストレージシステム及び方法 Expired - Fee Related JP5142629B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007215447A JP5142629B2 (ja) 2007-08-22 2007-08-22 仮想ボリュームのバックアップを行うストレージシステム及び方法
US11/969,306 US8010760B2 (en) 2007-08-22 2008-01-04 Storage system performing virtual volume backup and method thereof
EP08250857A EP2037363B1 (en) 2007-08-22 2008-03-13 Storage system performing virtual volume backup and method thereof
US13/195,938 US8612703B2 (en) 2007-08-22 2011-08-02 Storage system performing virtual volume backup and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007215447A JP5142629B2 (ja) 2007-08-22 2007-08-22 仮想ボリュームのバックアップを行うストレージシステム及び方法

Publications (2)

Publication Number Publication Date
JP2009048514A JP2009048514A (ja) 2009-03-05
JP5142629B2 true JP5142629B2 (ja) 2013-02-13

Family

ID=40289403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007215447A Expired - Fee Related JP5142629B2 (ja) 2007-08-22 2007-08-22 仮想ボリュームのバックアップを行うストレージシステム及び方法

Country Status (3)

Country Link
US (2) US8010760B2 (ja)
EP (1) EP2037363B1 (ja)
JP (1) JP5142629B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5176837B2 (ja) * 2008-09-30 2013-04-03 富士通株式会社 情報処理システム及びその管理方法、制御プログラム並びに記録媒体
CN102511030B (zh) * 2009-04-23 2015-05-20 株式会社日立制作所 计算机系统及其控制方法
US8516215B2 (en) 2009-04-23 2013-08-20 Hitachi, Ltd. Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same
JP4818395B2 (ja) * 2009-05-20 2011-11-16 富士通株式会社 ストレージ装置及びデータコピー方法
JP5508798B2 (ja) * 2009-09-29 2014-06-04 株式会社日立製作所 クラスタを考慮してレプリケーションを管理する管理方法及びシステム
JP5323982B2 (ja) * 2010-03-09 2013-10-23 株式会社日立製作所 ボリューム管理装置及びストレージシステム
US9176824B1 (en) 2010-03-12 2015-11-03 Carbonite, Inc. Methods, apparatus and systems for displaying retrieved files from storage on a remote user device
US8578121B2 (en) * 2010-04-30 2013-11-05 Hitachi, Ltd. Computer system and control method of the same
CN103392164B (zh) * 2011-05-31 2016-08-10 株式会社日立制作所 存储系统和存储控制方法
CN104508666A (zh) * 2012-10-31 2015-04-08 惠普发展公司,有限责任合伙企业 对备份数据进行编目
WO2015047310A1 (en) * 2013-09-27 2015-04-02 Hewlett-Packard Development Company, L.P. Excluding file system objects from raw image backups
JP6307996B2 (ja) * 2014-04-11 2018-04-11 富士通株式会社 ストレージ管理装置及びストレージ管理プログラム
WO2016199232A1 (ja) * 2015-06-10 2016-12-15 株式会社日立製作所 ストレージ管理計算機、及びストレージ装置の管理方法
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US9959063B1 (en) * 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US10013200B1 (en) 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
US10048874B1 (en) 2016-06-29 2018-08-14 EMC IP Holding Company LLC Flow control with a dynamic window in a storage system with latency guarantees
US9983937B1 (en) 2016-06-29 2018-05-29 EMC IP Holding Company LLC Smooth restart of storage clusters in a storage system
US10754556B2 (en) 2017-06-27 2020-08-25 International Business Machines Corporation Prioritization of virtual volumes to take offline in a thin provisioning system
KR20210030599A (ko) * 2019-09-10 2021-03-18 에스케이하이닉스 주식회사 데이터를 분산 리드할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2913840B2 (ja) * 1989-12-25 1999-06-28 株式会社日立製作所 集合ディスク装置
US5402428A (en) * 1989-12-25 1995-03-28 Hitachi, Ltd. Array disk subsystem
JP2002055783A (ja) * 2000-06-02 2002-02-20 Fujitsu Ltd ディスク間の複写処理装置、複写処理方法、およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3967080B2 (ja) * 2001-01-30 2007-08-29 富士通株式会社 仮想ディスク制御システムおよび仮想ディスク制御プログラム
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
JP2005018233A (ja) * 2003-06-24 2005-01-20 Fujitsu Ltd 仮想記憶媒体に記録されたデータをバックアップする方法及び、仮想記憶媒体に記録されたデータのバックアップ装置
JP2007502470A (ja) * 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
JP2005182588A (ja) * 2003-12-22 2005-07-07 Hitachi Ltd ストレージ装置のバックアップデータの管理
JP2005266933A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd ストレージ管理システム及びストレージ管理方法
US7058731B2 (en) * 2004-08-03 2006-06-06 Hitachi, Ltd. Failover and data migration using data replication
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP2006127028A (ja) 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
JP4699808B2 (ja) * 2005-06-02 2011-06-15 株式会社日立製作所 ストレージシステム及び構成変更方法
US7529816B2 (en) * 2005-06-03 2009-05-05 Hewlett-Packard Development Company, L.P. System for providing multi-path input/output in a clustered data storage network
JP2007066192A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd ストレージシステム及びその制御方法並びにコンピュータプログラム
JP4806556B2 (ja) * 2005-10-04 2011-11-02 株式会社日立製作所 ストレージシステム及び構成変更方法
JP2007199756A (ja) 2006-01-23 2007-08-09 Hitachi Ltd 計算機システム及びデータ複製方法
JP4927408B2 (ja) * 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
JP2007215447A (ja) 2006-02-15 2007-08-30 Sanyo Electric Co Ltd 冷菓製造装置
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法

Also Published As

Publication number Publication date
EP2037363B1 (en) 2011-10-12
US20090055613A1 (en) 2009-02-26
EP2037363A2 (en) 2009-03-18
JP2009048514A (ja) 2009-03-05
US20110289292A1 (en) 2011-11-24
US8612703B2 (en) 2013-12-17
EP2037363A3 (en) 2010-01-06
US8010760B2 (en) 2011-08-30

Similar Documents

Publication Publication Date Title
JP5142629B2 (ja) 仮想ボリュームのバックアップを行うストレージシステム及び方法
JP5124551B2 (ja) ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法
US7386755B2 (en) Backup copying and restoration processing in a storage subsystem
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
JP4703959B2 (ja) 記憶装置システムおよびそのレプリケーション作成方法
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US8396835B2 (en) Computer system and its data control method
US20060047926A1 (en) Managing multiple snapshot copies of data
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
US20080177809A1 (en) Storage control device to backup data stored in virtual volume
JP2004252686A (ja) 情報処理システム
JP5391277B2 (ja) ストレージシステム及びストレージシステムの処理効率向上方法
JP2004259079A (ja) データ処理システム
JP2005031716A (ja) データバックアップの方法及び装置
JP2006309638A (ja) 計算機システムおよびその計算機システムに用いられるホスト計算機およびストレージ装置、ならびに、計算機システムに用いられるボリューム切替方法
US20120260051A1 (en) Computer system, management system and data management method
JPWO2015162684A1 (ja) ストレージシステムのデータ移行方法
US7849264B2 (en) Storage area management method for a storage system
WO2018158808A1 (ja) 情報システム、管理プログラム及び情報システムのプログラム交換方法
JP6227771B2 (ja) 論理ボリュームを管理するためのシステム及び方法
JP2005215940A (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
JP5275691B2 (ja) ストレージシステム
US11308122B2 (en) Remote copy system
JP6000391B2 (ja) ストレージシステムのデータ移行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120620

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: 20121106

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: 20121120

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees