説明

ストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラム

【課題】バックアップボリュームが存在するストレージ装置にデータ更新領域管理機能がなくても、バックアップボリュームへのスナップショットのバックアップを実現する。
【解決手段】ホスト10は、ディスクアレイ装置10-1上の第1のスナップショットに対応する仮想スナップボリューム100からディスクアレイ装置10-2上のバックアップボリューム110-1〜110-3のうちの対応する世代のバックアップボリュームへのデータのバックアップに際し、第1のスナップショットより前の第2のスナップショットの採取時点から第1のスナップショットの採取時点までの間にデータ更新が発生した領域を、対応する単一または複数の差分ビットマップテーブルに基づいて特定する。ホスト10は、特定された領域の差分データを仮想スナップボリューム100から取得して、上記対応する世代のバックアップボリュームにコピーする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1及び第2のストレージ装置とこれら第1及び第2のストレージ装置と接続されたホスト(ホスト装置)とから構成されるストレージシステムに係り、特に、第1のストレージ装置に存在する論理ボリュームのスナップショットデータを第2のストレージ装置に存在するバックアップボリュームにバックアップするのに好適な、ストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラムに関する。
【背景技術】
【0002】
一般にストレージシステムは1つ以上のストレージ装置と、当該1つ以上のストレージ装置と例えばネットワークにより接続された1つ以上のホスト(ホスト装置)とから構成される。ここでは、第1及び第2のストレージ装置とホストとから構成されるストレージシステムを想定する。第1のストレージ装置には、第1及び第2の論理ボリュームが存在するものとする。
【0003】
例えば特許文献1は、このようなストレージシステムにおいて、第1の論理ボリュームに対するデータの書き込み(更新)が発生すると、それ以前に第1の論理ボリューム内の対応する領域に格納されていたデータ(更新前データ)を、第1のストレージ装置が有するスナップショット機能により差分データ(スナップショットデータ)として第2の論理ボリュームに保存(退避)することを開示している。第1の論理ボリュームは、正ボリューム、或いはマスターボリュームと呼ばれ、第2の論理ボリュームは、プールボリューム、差分ボリューム、或いはスナップデータ管理ボリュームと呼ばれる。第2の論理ボリュームは、複数世代のスナップショットデータ(過去データ)を保存する。
【0004】
特許文献1は、第2の論理ボリュームに保存されているスナップショットデータと元の第1の論理ボリュームとの関連をビットマップ(差分ビットマップテーブル)により管理することを開示している。特許文献1は更に、差分ビットマップテーブルを含むスナップショット管理テーブルに基づき、特定世代の仮想論理ボリューム(仮想スナップボリューム)を生成する技術と、仮想論理ボリュームのデータを第2のストレージ装置に存在するバックアップボリュームにバックアップする技術(バックアップ技術)とを開示している。
【0005】
特許文献1に記載のバックアップ技術(以下、従来技術と称する)では、第2の論理ボリュームに採取(取得)されたスナップショットを仮想論理ボリュームとして実現する時点で、前回バックアップボリュームにコピーされたスナップショットデータ(差分データ)から今回バックアップされるべきスナップショットデータ(差分データ)までのデータ更新発生領域(差分データの領域)を示すビットマップテーブル(差分ビットマップテーブル)が、スナップショット管理テーブルの情報に基づいて作成される。この作成された差分ビットマップテーブルに従って、データ更新発生領域のスナップショットデータのみが第2のストレージ装置のバックアップボリュームにコピーされる。
【0006】
バックアップボリュームへのデータコピーは、第1のストレージ装置(つまりスナップショットの仮想論理ボリュームが存在するストレージ装置)及び第2のストレージ装置(つまりバックアップボリュームが存在するストレージ装置)同士(より詳細には、第1のストレージ装置及び第2のストレージ装置上の制御プログラム同士)で連携して動作することによって行われる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005-267569号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したように従来技術では、仮想論理ボリューム(仮想スナップボリューム)からバックアップボリュームへのスナップショットのコピー(バックアップ)を実現するために、仮想論理ボリューム(仮想スナップボリューム)が存在するストレージ装置及びバックアップボリュームが存在するストレージ装置(上の制御プログラム)同士で連携して動作する必要がある。具体的には、仮想論理ボリューム(仮想スナップボリューム)が存在するストレージ装置(上の制御プログラム)だけでなく、バックアップボリュームが存在するストレージ装置(上の制御プログラム)も、スナップショットの機能やデータ更新発生領域(データ更新領域)の管理機能を必要とする。
【0009】
本発明は上記事情を考慮してなされたものでその目的は、バックアップボリュームが存在するストレージ装置に、スナップショット機能やデータ更新領域管理機能がなくても、仮想スナップボリュームからバックアップボリュームへのスナップショットのバックアップを実現できるストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明の1つの観点によれば、ホスト装置と、前記ホスト装置とネットワークを介して接続される第1の汎用ホストインタフェースを備えた第1のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第1のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第1のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第2の汎用ホストインタフェースを備えた第2のストレージ装置とを具備するストレージシステムが提供される。このストレージシステムにおいて、前記第2のストレージ装置は、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための複数のバックアップボリュームを備え、前記ホスト装置は、前記第1のスナップショットに対応する仮想スナップボリュームから前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、バックアップのためにスナップショットデータをコピーする差分バックアップ手段であって、前記第1のスナップショットより前の第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定し、当該特定された領域の差分データを前記第1のスナップショットに対応する仮想スナップボリュームから前記第1の汎用インタフェースを介して取得して、前記対応する世代のバックアップボリュームに前記第2の汎用インタフェースを介してコピーする差分バックアップ手段を備えている。
【発明の効果】
【0011】
本発明によれば、バックアップボリュームが存在する第2のストレージ装置に、スナップショット機能やデータ更新領域管理機能がなく、したがって第2のストレージ装置と仮想スナップボリュームが存在する第1のストレージ装置とが連携できなくても、ホスト装置が複数世代のスナップショット期間のデータ更新範囲を把握することによって、第1のスナップショットに対応する、第1のストレージ装置に存在する仮想スナップボリュームに格納されているデータのうち、第2のスナップショットの採取時点(例えば前回のバックアップコピー対象のスナップショット時点)から第1のスナップショットの採取時点までの間にデータ更新が発生した領域のデータ(差分データ)を、当該仮想スナップボリュームから第2のストレージ装置に存在するバックアップボリュームに短時間でバックアップすることができる。しかも、第2のストレージ装置は、スナップショット機能や、複数世代のスナップショット期間のデータ更新範囲を把握する機能(データ更新領域管理機能)を必要としない。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施形態に係るストレージシステムの構成を示すブロック図。
【図2】図1に示されるディスクアレイ装置内のディスクアレイをホストからアクセス可能とさせる際に論理的に実現される論理ボリュームの一例を示す図。
【図3】同実施形態において、ホストからディスクアレイ装置に対してスナップショット命令が発行された後に、マスターボリュームに対するデータ更新が発生したときの、ディスクアレイ装置の動作を説明するための図。
【図4】同実施形態における差分ビットマップテーブルの更新方法を説明するための図。
【図5】同実施形態におけるスナップデータ管理テーブルの一例を示す図。
【図6】図3に示されるスナップデータ管理ボリュームに複数世代の退避データを格納した状態の一例を示す図。
【図7】同実施形態において、3つのスナップショットが既に採取されている状態での、当該3つのスナップショットのためのスナップデータ管理テーブルの例を示す図。
【図8】同実施形態におけるスナップデータ再現テーブルの一例を示す図。
【図9】同実施形態において、ホストからデータ読み出しが要求された場合のディスクアレイ制御装置の処理手順を示すフローチャート。
【図10】図1のストレージシステムが有する差分バックアップ機能の概略を説明するためのブロック図。
【図11】同実施形態における、差分バックアップ管理テーブルの初期状態の内容例を示す図。
【図12】同実施形態において、ユーザからバックアップ実行の要求があった場合の差分バックアップ管理テーブルの内容例を示す図。
【図13】同実施形態において、3つのバックアップボリュームに対してそれぞれ1回目の仮想スナップボリュームのコピーが完了した時点の差分バックアップ管理テーブルの初期状態の内容例を示す図。
【図14】図13に示す状態からバックアップボリュームに対してスナップショットのデータをコピーする際の、差分バックアップ管理テーブルの内容例を示す図。
【図15】同実施形態において、ホストにより実行される差分バックアップコピーの手順を示すフローチャートの第1の部分を示す図。
【図16】同実施形態において、ホストにより実行される差分バックアップコピーの手順を示すフローチャートの第2の部分を示す図。
【図17】同実施形態におけるコピー領域管理用差分ビットマップテーブルの作成方法を説明するための図。
【図18】同実施形態の第1の変形例における差分バックアップコピーの手順を示すフローチャートの第1の部分を示す図。
【図19】同実施形態の第1の変形例における差分バックアップコピーの手順を示すフローチャートの第2の部分を示す図。
【図20】同第1の変形例における仮想スナップボリューム管理情報の例を示す図。
【図21】同第1の変形例において、ディスクアレイ装置のディスクアレイ制御装置にホストによってアクセスモードとして差分モードが設定された状態で、ホストからディスクアレイ装置にデータ読み出し要求が発行された場合の、ホストへの応答を含むディスクアレイ制御装置の処理手順を示すフローチャート。
【図22】上記実施形態の第2の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第1の部分を示す図。
【図23】同第2の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第2の部分を示す図。
【図24】同第2の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第3の部分を示す図。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るストレージシステムの構成を示すブロック図である。図1に示すストレージシステムは、ストレージ装置としてのディスクアレイ装置10-1及び10-2と、ホスト(ホスト装置)10とから構成される。
【0014】
ディスクアレイ装置10-1は、複数の物理ディスク(ディスクドライブ)、例えば4つの物理ディスク120-0〜120-3と、ディスクアレイ制御装置20-1とを備えている。物理ディスク120-0〜120-3の群は、ディスクアレイ制御装置20-1によってRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)技術によりディスクアレイ12-1として管理される。
【0015】
ディスクアレイ制御装置20-1は、ホストインタフェース(ホストI/F)201を備えている。ディスクアレイ制御装置20-1はホストインタフェース201により、ネットワーク11を介してホスト10と接続されている。ホスト10は、ディスクアレイ装置10-1を外部記憶装置として利用する。ネットワーク11の種類は、例えば、SAN(Storage Area Network)、或いはEthernet(登録商標)から構成されるインターネット/イントラネットである。ホストインタフェース201のインタフェース種別は、例えば、FC(Fibre Channel)、或いはiSCSI(internet SCSI)などである。つまりホストインタフェース201は汎用インタフェースである。
【0016】
また、ディスクアレイ制御装置20-1は、ディスクインタフェース(ディスクI/F)202を備えている。ディスクアレイ制御装置20-1はディスクインタフェース202により、ディスクインタフェースバス13を介して物理ディスク120-0〜120-3と接続されている。ディスクインタフェースバス13のインタフェース種別は、例えば、SCSI、FC、SAS(Serial Attached SCSI)、或いはSATA(Serial AT Attachment)などである。つまりディスクインタフェースバス13は汎用インタフェースバスである。
【0017】
ディスクアレイ12-1は、物理ディスク120-0〜120-3の群を使用し、RAID技術を使用して論理的に生成された1つのディスクとして、ディスクアレイ制御プログラムによって扱われる。
【0018】
ディスク制御装置20-1は、上述のホストインタフェース201及びディスクインタフェース202に加えて、キャッシュメモリ203と、キャッシュコントローラ204と、FROM(フラッシュROM)205と、ローカルメモリ206と、CPU207と、チップセット208と、内部バス209とを備えている。
【0019】
ホストインタフェース201は、ホスト10とディスク制御装置20-1との間のデータ転送(データ転送プロトコル)を制御する。ホストインタフェース201は、ディスクアレイ12-1に対するデータ書き込み要求をホスト10から受信した場合、当該要求を、内部バス209、チップセット208を経由して、CPU207上で動作するディスクアレイ制御プログラムに伝達し、ディスクアレイ制御プログラムによって生成された応答情報をホスト10に返答する。またホストインタフェース201は、ディスクアレイ12-1からデータ読み出し要求をホスト10から受信した場合、当該要求を、内部バス209、チップセット208を経由して、CPU207に伝達し、CPU207からの応答情報をホスト10に返答する。
【0020】
ディスクインタフェース202は、内部バス209及びチップセット208を経由して伝達されるホスト10からの要求に従ってCPU207上で動作するディスクアレイ制御プログラムによってディスクアレイ12-1へのデータ読み出し/書き込みの要求が生成された場合、当該要求に従い、ディスクアレイ12-1内の物理ディスク120-0〜120-3の各々へのデータ読み出し/書き込みのためのデータ転送を制御する。
【0021】
キャッシュメモリ203は、ホスト10からのディスクアレイ12-1への書き込み/読み出し(入出力)要求で指定されるデータの書き込み/読み出し処理を実施した後の、ホスト10への完了応答レスポンスの高速化のためのバッファとして用いられる。例えば、書き込み要求に対しては、当該要求で指定されたデータがキャッシュメモリ203に書き込まれ、その段階で要求元(ホスト10)に書き込み処理完了が通知される。その後、キャッシュメモリ203に書き込まれたデータがディスクアレイ12-1に書き込まれる(ライトバックされる)。一方、読み出し要求に対しては、当該要求で指定されたデータがキャッシュメモリ203に格納されている場合は、そのデータがホスト10に転送される。指定されたデータがキャッシュメモリ203に格納されていない場合は、当該指定されたデータがディスクアレイ12から読み出され、この読み出されたデータがホスト10に転送される。
キャッシュコントローラ204は、CPU207上で動作するディスクアレイ制御プログラムからの命令に従いキャッシュメモリ203を制御する。
【0022】
FROM205は、CPU207により実行されるディスクアレイ制御プログラムを格納するための書き換えが可能な不揮発性メモリである。このFROM205に格納されているディスクアレイ制御プログラムは、ディスクアレイ制御装置20-1が起動されたときの最初の処理でローカルメモリ206にコピーされる。なお、FROM205に代えて読み出し専用の不揮発性メモリ、例えばROMを用いることも可能である。
【0023】
ローカルメモリ206は、FROM205からコピーされたディスクアレイ制御プログラムを記憶するのに用いられる。また、ローカルメモリ206の一部の領域は、CPU207が動作する上で必要なワーク領域として用いられる。
【0024】
CPU207は、チップセット208を介してローカルメモリ206にアクセスすることにより、当該ローカルメモリ206に格納(コピー)されているディスクアレイ制御プログラムのプログラムコードに従い、ディスクアレイ制御装置20-1内の各部を制御する。
【0025】
チップセット208は、CPU207及びその周辺回路を内部バス209に結合するブリッジ回路である。
内部バス209は汎用バスであり、例えばPCIexpressバスである。ホストインタフェース201、ディスクインタフェース202、キャッシュコントローラ204及びチップセット209は、内部バス210により相互接続されている。また、FROM205、ローカルメモリ206及びCPU207は、チップセット208を介して内部バス209に接続されている。
【0026】
ディスクアレイ装置10-2は、ディスクアレイ装置10-1と同様に、ホストインタフェース211によりネットワーク11を介してホスト10と接続されている。ディスクアレイ装置10-2は、詳細なハードウェア仕様を除き、基本的な構造がディスクアレイ装置10-1と同一の構成を備えている。つまりディスクアレイ装置10-2は、ディスクアレイ装置10-1内のディスクアレイ制御装置20-1及びディスクアレイ12-1にそれぞれ相当する、ディスクアレイ制御装置20-2及びディスクアレイ12-2を備えている。ディスクアレイ装置10-1のディスクアレイ制御装置20-1とディスクアレイ装置10-2のディスクアレイ制御装置20-2とは、ネットワーク11を介して、通信を行うことが可能である。
【0027】
図2は、ディスクアレイ装置10-1内のディスクアレイ12-1、及び、ディスクアレイ装置10-2内のディスクアレイ12-2を、ホスト10からアクセス可能とさせる際に、ディスクアレイ制御プログラム(より詳細にはディスクアレイ制御装置20-1によるディスクアレイ制御プログラムの実行)によって論理的に実現される論理ボリュームの一例を示した図である。
【0028】
図2の例において、論理ボリューム13-1,13-2及び13-3は、ディスクアレイ制御プログラムによって、ディスクアレイ12-1の一部の領域(記憶領域)を切り出すことにより生成されるボリュームである。図2の例では、ディスクアレイはディスクアレイ12-1のみが存在するが、ホスト10からはボリュームが3つ認識されることとなる。なお、論理ボリュームの実現方法については、ディスクアレイの領域を細かいブロック領域に分割して管理し、ホスト10から要求されるデータ書き込み量に応じて不規則に切り出して実現する方法や、切り出しの対象となるディスクアレイを複数個としたグループをプールと名づけ定義して、そのグループ内から切り出して実現する方法が知られている。
【0029】
本実施形態では、上述の論理ボリュームを使用して、特定ボリュームの複数世代のバックアップデータを仮想的に取得することができるスナップショット機能を適用する。
スナップショット機能の実現例としては以下の方式が知られている。ホスト10上でサービスを運用するために必要な最新データを格納する1つの論理ボリュームをマスターボリュームとして、もう1つの論理ボリュームをマスタボリュームの過去の更新データの履歴を格納するためのスナップデータ管理ボリュームとして、それぞれディスクアレイ装置10-1のディスクアレイ制御装置20-1(より詳細には、ディスクアレイ制御装置20-1によって実行されるディスクアレイ制御プログラム)上に定義する。次にマスターボリュームにおける、データのバックアップを取得したいサービス運用上のデータ確定時に、ホスト10からディスクアレイ装置10-1のディスクアレイ制御装置20-1(によって実行されるディスクアレイ制御プログラム)に対してスナップショット命令(過去データ確定命令)を発行する。すると、それ以降ディスクアレイ制御装置20-1はスナップショット手段として機能し、ホスト10からマスタボリュームに対してデータ更新の要求があった場合、当該マスターボリューム内の更新データが格納されるべき領域(つまりデータ更新が発生した領域)に既に格納されていた更新前のデータをスナップデータ管理ボリュームにまず退避してから、マスタボリュームのデータ更新を行う。この方式は、Copy on Write(CoW)方式と呼ばれる。
【0030】
このディスクアレイ制御装置20-1(スナップショット手段)の制御により、マスターボリュームには、ホスト10上で運用されているサービスにおける最新データが格納され、スナップデータ管理ボリュームには、スナップショット命令を受信した以降にマスタボリュームに対してデータ更新が発生した領域における、スナップショット命令を受信した時点の格納データ(過去データ)が格納される。
【0031】
ユーザがホスト10の入出力装置を操作することで、マスターボリュームとは別の仮想的に実現するスナップショットボリューム(以下、仮想スナップボリュームと称する)の生成が例えば当該ホスト10上で動作するアプリケーションプログラムから要求された場合、ホスト10からディスクアレイ装置10-1のディスクアレイ制御装置20-1に対し、仮想スナップボリュームの生成を指示する生成命令(仮想スナップボリューム生成命令)が発行される。以下の説明では、上述のようなユーザの操作に基づく(例えばアプリケーションプログラムからの)要求を、説明の簡略化のためにユーザからの要求と称する。
【0032】
仮想スナップボリュームは、ホスト10がディスクアレイ装置10-1のディスクアレイ制御装置20-1に対してスナップショット命令を発行した時点のマスターボリュームのデータを仮想的に格納するものである。
【0033】
ホスト10からディスクアレイ装置10-1のディスクアレイ制御装置20-1に対して仮想スナップボリューム生成命令が発行された場合にも、当該ディスクアレイ制御装置20-1はスナップショット手段として機能する。これによりディスクアレイ制御装置20-1は、スナップショット命令が発行された以降、マスターボリュームにおいてデータ更新が発生していない領域については当該マスタボリュームから、データ更新が発生した領域についてはスナップデータ管理ボリュームから、それぞれデータを参照するための差分ビットマップテーブルを生成する。以後、ホスト10からディスクアレイ制御装置20-1(より詳細には、ディスクアレイ制御装置20-1によって実行されるディスクアレイ制御プログラム)に対し仮想スナップボリュームからのデータ読み出し要求があった場合には、差分ビットマップテーブルに従い、マスターボリュームとスナップデータ管理ボリュームからデータの読み出しを行って、ホスト10に対して読み出し対象データを返信する動作が行われる。
【0034】
図3に、ホスト10からディスクアレイ装置10-1のディスクアレイ制御装置20-1に対してスナップショット命令が発行された後に、マスターボリューム31に対するデータ更新が発生したときの、当該ディスクアレイ制御装置20-1(スナップショット手段)の動作について示す。
【0035】
ディスクアレイ制御装置20-1は、スナップショット命令実行後の最初のデータ更新要求1を受信した場合、その要求に対応するマスターボリューム31上のデータ領域のデータ(更新前データ)をスナップデータ管理ボリューム32に退避してから(ステップ301)、マスターボリュームにデータ更新要求1のデータを書き込む(ステップ302)。マスターボリューム31からスナップデータ管理ボリューム32に退避されるデータを退避データと称し、当該退避データが格納されたスナップデータ管理ボリューム32内の領域を退避データ格納領域と称する。
【0036】
その後、データ更新要求1とは異なる領域に対するデータ更新要求2が発生した場合も、ディスクアレイ制御装置20-1は、データ更新要求1と同様の処理を行う(ステップ303,304)。ここで、スナップデータ管理ボリューム32への新たな退避データの格納には、当該スナップデータ管理ボリューム32内で最も最近に退避データが退避された退避データ格納領域に後続する領域が用いられる。
【0037】
その後、データ更新要求1が発生した領域に対するデータ更新要求3が発生したものとする。この場合、スナップショット命令実行時のデータは、スナップデータ管理ボリューム32に既に退避済みであるため、直接マスターボリューム31に更新データが書き込まれる(ステップ305)。
【0038】
スナップショット命令実行後に、スナップデータ管理ボリューム32にデータ退避が行われたマスターボリューム31内の領域の管理には、差分ビットマップテーブル40(図4参照)が使用される。差分ビットマップテーブル40は、図4を参照して後述するように、マスターボリューム31の領域全体を一定サイズのブロック単位に分割して、1ブロック単位でデータ退避未(データ退避未実施)(0)、データ退避済み(1)を管理するためのビットの集合である。
【0039】
図4に差分ビットマップテーブル40の更新方法を示す。
マスターボリューム31にデータ更新が発生した場合、差分ビットマップテーブル40上のそのデータ更新が発生した領域の範囲に該当するビットに1がセットされる。マスターボリューム31の総容量が例えば10000MB(10GB)であり、差分ビットマップテーブル40の分解能(総ビット数)が例えば1000分割(1000)であるとする。この場合、差分ビットマップテーブル40の各1ビットが示す、マスターボリューム31内の分割領域(ブロック)のサイズは10MBとなる。マスターボリューム31内のn番目の分割領域(またはブロック)をn×10MB領域(ブロックn)と称する。このため、例えば、マスターボリューム31内の13番目の分割領域(またはブロック)は130MB領域(またはブロック13)であり、差分ビットマップテーブル40内の13銀目のビット、つまりビット13に対応する。
【0040】
ここで、図4に示されるマスターボリューム31内でデータ更新が発生した領域(データ更新領域)401の範囲が130MB領域の先頭から5MBサイズであるものとする。この場合、ディスクアレイ制御装置20-1は、マスターボリューム31内のデータ更新領域401のデータ(更新前データ)をスナップデータ管理ボリューム32(図3参照)に退避した上で、差分ビットマップテーブル40のビット13に1(データ退避済み)をセットする。より詳細には、マスターボリューム31からスナップデータ管理ボリューム32に退避されるデータの当該マスターボリューム31内の領域(データ退避領域)は、データ更新領域401ではなくて、ビット13に対応する130MB領域の先頭から10MB分の領域、つまりデータ更新領域401を含む130MB領域となる。但し、図4では便宜的に、データ更新領域401をデータ退避領域として示してある。
【0041】
マスターボリューム31にデータ更新(データ更新要求)が発生した場合の動作について更に詳細に説明する。この場合、まずディスクアレイ制御装置20-1(スナップショット手段)は差分ビットマップテーブル40を参照して、上述のデータ更新領域に相当するデータ更新されるべき領域(データ更新対象領域)に対応するビットに1がセットされているかをチェックする。もし、データ更新対象領域に対応する全てのビットに1がセットされていた場合、ディスクアレイ制御装置20-1は、更新データを、マスターボリューム31に直接書き込むことが可能と判断する。これに対し、一部のビットが0となっていた場合、ディスクアレイ制御装置20-1は、その0となっているビットに対応するマスターボリューム31内の領域(ブロック)のデータをスナップデータ管理ボリューム32に退避してから、スナップデータ管理ボリューム32に更新データを書き込む。
【0042】
差分ビットマップテーブル上の1(データ退避済み)がセットされたビットに対応するマスターボリューム31内の領域のうち、スナップショット命令が実行された時点のデータが格納されている領域の管理には、スナップデータ管理テーブルが使用される。
【0043】
図5にスナップデータ管理テーブル50の一例を示す。
図5に示すスナップデータ管理テーブル50は、スナップショット番号及びスナップ日付の各フィールドを有している。スナップショット番号とは、スナップショットを複数採取可能とする場合のスナップショット採取順番号であり、数値が小さいほど古いマスターボリュームのスナップショットの管理情報であることを示している。スナップ日付は、そのスナップデータ管理テーブル50が管理対象とするスナップショットが採取(取得)された日付を示している。
【0044】
図5に示すスナップデータ管理テーブル50は、退避番号、マスタービット番号及びスナップビット番号の各フィールドから構成されるエントリの群を有している。退避番号は、マスターボリューム31からデータを退避した順番号を示している。マスタービット番号は、退避番号nに対応するマスターボリューム31上のデータ退避領域(データ退避元)を、差分ビットマップテーブル上のビット番号で示している。スナップビット番号は、退避番号nに対応するマスターボリューム31のデータのデータ退避を実施した場合において、当該スナップビット番号が設定されている差分ビットマップテーブル内のエントリにおけるマスタービット番号(つまり当該スナップビット番号と組をなすマスタービット番号)の示す領域のデータのスナップデータ管理ボリューム32内の退避先となる退避データ格納領域(データ退避先)を、差分ビットマップテーブル上のビット番号で示している。
【0045】
なお、スナップデータ管理ボリューム32の退避データ格納領域は、マスターボリューム31と同様に、差分ビットマップテーブルの分解能と同じ分割単位で管理される。但し本実施形態では、スナップデータ管理ボリューム32用の差分ビットマップテーブルが存在するわけではなく、当該スナップデータ管理ボリューム32用の差分ビットマップテーブルに代えて、スナップデータ管理テーブル50が用いられる。その理由は、マスターボリューム31のデータ退避領域と、当該データ退避領域のデータが退避されるスナップデータ管理ボリューム32の退避データ格納領域との対応関係が管理しやすいようにするためである。
【0046】
ここで、スナップショットを複数採取可能とし、複数世代のマスターボリュームのスナップショット(過去データ)を復元する場合を想定する。このような場合、単一のスナップショットに対応するスナップデータ管理テーブルに登録されるマスターボリュームのデータ(マスターデータ)の退避位置に関する情報は、当該スナップショットを採取してから、次のスナップショットを採取するまでの間のデータ退避分に限定される。単一のスナップショットの採取時のデータを管理するための情報は、スナップデータ管理テーブル1つと、当該スナップショットを採取してから、次のスナップショットを採取するまでの間のデータ退避分のデータ更新領域(退避データ領域)が登録された差分ビットマップテーブルである。
【0047】
図3に示されるスナップデータ管理ボリューム32に複数世代の退避データを格納した状態を、図6に示す。
ディスクアレイ装置10-1はディスクアレイ制御プログラムに従い、差分ビットマップテーブルとスナップデータ管理テーブルの2つのテーブルをペアで管理し、ローカルメモリ206、FROM205、または物理ディスク120-0〜120-3の一部の専用領域を確保して保存する。
【0048】
本実施形態において、スナップデータ管理ボリューム32に複数世代のスナップショットを採取している状態で、ある世代のスナップショット時のマスターボリュームを仮想的に再現する場合、つまり仮想スナップボリュームを再現する場合、次のようなスナップデータ再現テーブルが用いられる。スナップデータ再現テーブルは、対象となるスナップショット及びそれ以前に採取されたスナップショットの各々に対応する、スナップデータ管理テーブルと差分ビットマップテーブルとに基づいて生成される、スナップデータ管理テーブルと同様の構造のマスターボリューム再現用のテーブルである。
【0049】
図7に、スナップショット番号1,2,3のスナップショットが既に採取されている状態での、当該スナップショット番号1,2,3のスナップショットのためのスナップデータ管理テーブル50-1,50-2,50-3の例を示す。
図7において、スナップデータ管理テーブル50-1のスナップショット番号1は最初に採取されたスナップショットのスナップショット番号を示し、スナップデータ管理テーブル50-3のスナップショット番号3は最新のスナップショットのスナップショット番号を示す。マスターボリューム31(図3参照)には現在の最新のデータが格納されており、この状態で、スナップショット番号1のボリュームを再現する場合のスナップデータ再現テーブルを生成するとする。
【0050】
スナップショット番号1のスナップデータ管理テーブル50-1には、スナップショット番号1のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。そのため、この登録情報がそのままスナップデータ再現テーブルに登録される。
【0051】
スナップショット番号2のスナップデータ管理テーブル50-2には、スナップショット番号2のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。この領域は、スナップショット番号1のスナップショットを採取した時点から退避したデータの領域と等価である。そのため、この登録情報もそのままスナップデータ再現テーブルに登録される。
【0052】
スナップショット番号3のスナップデータ管理テーブル50-3には、スナップショット番号3のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。この領域は、スナップショット番号1のスナップショットを採取した時点から退避したデータの領域と等価である。そのため、この登録情報もスナップデータ再現テーブルに登録される。但し、退避番号0及び1のエントリにそれぞれ登録されているビット13及び812に対応する領域(ブロック)は、既にスナップショット番号1のスナップデータ管理テーブル50-1に登録されていた領域である。このため、スナップショット番号3のスナップショットを採取後にデータ退避が行われたビット13及び812にそれぞれ対応するマスターボリューム31内の領域のデータを格納した、ビット7及び8に対応するスナップデータ管理ボリューム32内の領域には、スナップショット番号1のスナップショットを再生するためのデータは存在しない。そこで、ビット13及び812に対応する領域に関する情報はスナップデータ再現テーブルへの登録の対象から除外される。
図8に、上記処理により生成されたスナップデータ再現テーブル80の一例を示す。
【0053】
ディスクアレイ制御装置20-1は、図8に示すスナップデータ再現テーブル80と、スナップショット番号1,2,3の各スナップショットの差分ビットマップテーブルとを使用して、例えば、スナップショット番号1のスナップショットの採取(確定)時点のボリュームを再現する。ホスト10からデータ読み出しが要求された場合、ディスクアレイ制御装置20-1は、ディスクアレイ制御プログラムに従う以下の制御により、マスターボリュームとスナップデータ管理ボリュームのいずれかからデータを読み出して、ホスト10に伝達する。
【0054】
以下、ホスト10からデータ読み出しが要求された場合のディスクアレイ装置10-1内のディスクアレイ制御装置20-1の処理手順について、図9のフローチャートを参照して説明する。
まず、ディスクアレイ制御装置20-1が、ホスト10から再現スナップショット(本実施形態では仮想スナップボリューム)を対象とするデータの読み出し要求(データ読み出し要求)を受信したものとする(ステップ901)。
【0055】
するとディスクアレイ制御装置20-1は、スナップショット番号1の差分ビットマップテーブル(より詳細には、スナップショット番号1のスナップショットの差分ビットマップテーブル)内の、上記データ読み出し要求で指定された領域(読み出し指定領域)に対応するビットを参照する(ステップ902)。そしてディスクアレイ制御装置20-1は、参照したビットに1がセットされているかを判定する(ステップ903)。
【0056】
もし、参照したビットに1がセットされていないならば(ステップ903のNo)、ディスクアレイ制御装置20-1は、スナップショット番号2の差分ビットマップテーブル内の、読み出し指定領域に対応するビットを参照する(ステップ904)。そしてディスクアレイ制御装置20-1は、ステップ904で参照したビットに1がセットされているかを判定する(ステップ905)。
【0057】
もし、ステップ904で参照したビットに1がセットされていないならば(ステップ905のNo)、ディスクアレイ制御装置20-1は、スナップショット番号3の差分ビットマップテーブル内の、読み出し指定領域に対応するビットを参照する(ステップ906)。そしてディスクアレイ制御装置20-1は、ステップ906で参照したビットに1がセットされているかを判定する(ステップ907)。
【0058】
もし、ステップ902,904または906で参照したビットに1がセットされているならば(ステップ903,905または907のYes)、ディスクアレイ制御装置20-1はステップ908に進む。このステップ908においてディスクアレイ制御装置20-1は、スナップデータ再現テーブル80(図8参照)を参照することにより、読み出し指定領域に対応するマスターボリューム31内の領域(データ退避元)からデータが退避されたスナップデータ管理ボリューム32内の領域(データ退避先)に対応する、差分ビットマップテーブル上のビットの位置(スナップビット番号)を検出する。
【0059】
次にディスクアレイ制御装置20-1は、検出された位置のビットに対応する、スナップデータ管理ボリューム32の領域から、その領域に格納(退避)されているデータを読み出す(ステップ909)。
【0060】
一方、ステップ906で参照したビットに1がセットされていないならば(ステップ907のNo)、つまりステップ902,904及び906でそれぞれ参照したビットにいずれも1がセットされていないならば(ステップ903,905及び907のNo)、ディスクアレイ制御装置20-1はステップ910に進む。このステップ910においてディスクアレイ制御装置20-1は、マスターボリューム31内の読み出し指定領域からデータを読み出す。
【0061】
ディスクアレイ制御装置20-1は、ステップ909または910のいずれかを実行すると、ホスト10に読み出しデータを返信する(ステップ911)
以上、ディスクアレイ制御装置20-1が有するスナップショット手段の機能(つまりスナップショット機能)について説明した。
【0062】
次に、本実施形態で適用されるスナップショットデータのバックアップに関する機能(バックアップ機能)について説明する。
上述したスナップショット機能によって実現される仮想スナップボリュームは、仮想的に実現されたものである。このため、例えば、万が一、ディスクアレイ制御プログラムの誤動作によりスナップショットの管理情報を消失してしまうと、マスターボリュームのバックアップを一瞬にして全て消失してしまう。そこで、このようなデータ消失を回避するため、ホスト10及びディスクアレイ装置10-1の各々とネットワーク11を介して通信可能なディスクアレイ装置10-2に、仮想的ではなく論理的に生成されたバックアップボリュームが用意される。そして、このディスクアレイ装置10-2内のバックアップボリュームに、仮想スナップボリュームのデータがコピーされる。多重バックアップ用途では、このバックアップボリュームのデータが、磁気テープなどのリムーバブルメディアに更にバックアップされる。
【0063】
ここで、ディスクアレイ装置10-1及び10-2の各々のディスクアレイ制御プログラムが同一であり、且つディスクアレイ装置間でバックアップを作成することができる装置間レプリケーション機能を有しているものとする。この場合、ディスクアレイ装置10-1内の仮想スナップボリュームのデータをディスクアレイ装置10-2内のバックアップボリュームにコピーするのに、前回のバックアップ時から次のバックアップ時までの間のデータ更新分を差分として、その差分のみをバックアップデータとしてコピーすることができる。これにより、一旦全面コピーを行った後の、バックアップのためのコピー時間を短縮することが可能となる。
【0064】
しかし、ディスクアレイ装置10-1及び10-2の各々のディスクアレイ制御プログラムが、例えば製造ベンダーが違うことにより全く異なる場合には、たとえ各々が装置間レプリケーション機能を有していても制御方法も異なるため、装置間レプリケーション機能を使用することができない可能性がある。このような場合、ディスクアレイ装置10-1内の仮想スナップボリュームのバックアップデータ(バックアップコピー)を、ディスクアレイ装置10-2内のバックアップボリュームに作成するためには、例えば、ホスト10を使用した毎回の全面コピーを実行しなければならない。
【0065】
そこで本実施形態では、ディスクアレイ装置10-1及び10-2が上述のような理由によりディスクアレイ装置の装置間レプリケーション機能が使えなくても、前回のバックアップ時から次のバックアップ時までの間のデータ更新分を差分として、その差分のみをバックアップコピーすることを、以下に述べる特別のバックアップ機能(差分バックアップ機能)により可能としている。
【0066】
図10は、図1のストレージシステムが有する差分バックアップ機能の概略を説明するためのブロック図である。
図10に示すディスクアレイ装置10-1には、図3に示したようなマスターボリューム31及びスナップデータ管理ボリューム32が存在する。マスターボリューム31及びスナップデータ管理ボリューム32は、ディスクアレイ12-1の一部の領域を切り出すことにより生成される。ディスクアレイ装置10-1にはまた、マスターボリューム31及びスナップデータ管理ボリューム32を使用する前述したようなスナップショット機能が設定されている。
【0067】
ディスクアレイ装置10-1には更に、スナップショット機能によって実現される、あるスナップショットの採取時点のマスターボリューム31のイメージを仮想的に再現する仮想スナップボリューム100が存在する。仮想スナップボリューム100は、前述したように、差分ビットマップテーブルを使用して(より詳細には、差分ビットマップテーブルとスナップデータ再現テーブルとを使用して)、マスターボリューム31及びスナップデータ管理ボリューム32から再現される。
【0068】
一方、ディスクアレイ装置10-2には、複数世代のスナップショットの採取時点にそれぞれ対応するディスクアレイ装置10-1上の仮想スナップボリュームのデータのコピー(バックアップコピー)を格納するための複数のバックアップボリューム、例えば3つのバックアップボリューム110-1,110-2及び110-3が用意されている。バックアップボリューム110-1,110-2及び110-3は、ディスクアレイ装置10-2のディスクアレイ12-2の一部の領域を切り出すことにより生成される。
【0069】
ホスト10は、バックアップソフトウェア(データバックアッププログラム)101を格納した記憶装置102を備えている。バックアップソフトウェア101は、ホスト10によって実行されることにより、ディスクアレイ装置10-1に対して、スナップショット生成(登録)命令と、仮想スナップボリューム生成命令とを発行する機能を実現するのに用いられる。バックアップソフトウェア101は、同様に、仮想スナップボリューム100からデータを読み出す機能と、読み出されたデータをディスクアレイ装置10-2上のバックアップボリューム110-1〜110-3の中から選択されたバックアップボリュームにコピーする機能とを実現するのにも用いられる。
【0070】
バックアップソフトウェア101は、データのコピーする領域を仮想スナップボリューム100の全面ではなく前回のバックアップからの更新領域のみとするための、後述する差分バックアップ管理テーブル111(図11参照)を保持する。
【0071】
図11に、差分バックアップ管理テーブル111の初期状態の内容例を示す。
図11に示す差分バックアップ管理テーブル111は、バックアップ装置ID、バックアップボリュームLU番号、コピー済みスナップショット番号、コピー中スナップショット番号及び仮想スナップボリューム使用有無(を示すフラグ)の各フィールドを有している。
【0072】
バックアップ装置IDは、バックアップボリュームが用意されているディスクアレイ装置のID(図4の例では12-1)を示す。
バックアップボリュームLU番号は、仮想スナップボリューム100のバックアップを格納するための、ディスクアレイ装置10-2内に用意された論理ボリューム(つまりバックアップボリューム)に割り当てられたLU(ANSI−SCSI規格における論理ユニット)番号である。本実施形態では、図10に示されるバックアップボリューム110-1110-2及び110-3のバックアップボリュームLU番号は、それぞれ1,2及び3である。
【0073】
コピー済みスナップショット番号は、仮想スナップボリューム100から対応するバックアップボリューム(つまり、当該コピー済みスナップショット番号と組をなすバックアップボリュームLU番号の示すバックアップボリューム)へのデータのコピーが完了したスナップショットの番号を示す。コピー済みスナップショット番号の初期値は「なし」となっている。
【0074】
コピー中スナップショット番号は、仮想スナップボリューム100から対応するバックアップボリューム(つまり、当該コピー中スナップショット番号と組をなすバックアップボリュームLU番号の示すバックアップボリューム)にデータをコピー中である場合の、当該仮想スナップボリューム上のコピー対象となるスナップショットを示す。コピー中スナップショット番号の初期値は「なし」となっている。
【0075】
仮想スナップボリューム使用有無は、現在、仮想スナップボリューム100から対応するバックアップボリューム(つまり、当該仮想スナップボリューム使用有無と組をなすバックアップボリュームLU番号の示すバックアップボリューム)にデータのコピーを行っている場合に、「あり」に設定される。仮想スナップボリューム使用有無の初期値は「なし」となっている。
【0076】
バックアップソフトウェア101に対して、ユーザからバックアップ実行の要求があった場合の差分バックアップ管理テーブル111の内容例を図12に示す。
図12に示す差分バックアップ管理テーブル111の状態は、現在、スナップショット番号1のスナップショットが採取(登録)されたときのマスターデータが、仮想スナップボリューム100に再現されている状態であることを前提に、バックアップボリュームLU番号1のバックアップボリューム110-1に対してバックアップコピー(差分バックアップコピー)が行われていることを示している。この状態では、仮想スナップボリューム100はスナップショット番号1のスナップショットに対応する。
【0077】
3つのバックアップボリューム110-1,110-2及び110-3に対してそれぞれ1回目の仮想スナップボリューム100のコピーが完了した時点の差分バックアップ管理テーブル111の内容例を図13に示す。前述のように、仮想スナップボリューム100は、あるスナップショット時の(つまり、ある世代の)マスターボリューム31を仮想的に再現したものである。図13の例では、バックアップボリューム110-1,110-2及び110-3へのコピーに用いられる仮想スナップボリューム100は、それぞれスナップショット番号1,2及び3のスナップショット時のマスターボリュームのデータを仮想的に格納した仮想スナップボリュームである。つまりバックアップボリューム110-1,110-2及び110-3へのコピーに用いられる仮想スナップボリューム100は、それぞれスナップショット番号1,2及び3のスナップショットに対応する。
【0078】
バックアップボリューム110-1,110-2及び110-3の各々に1回目の仮想スナップボリューム100のコピーを開始する時点では、当該バックアップボリューム110-1,110-2及び110-3にデータが無い状態である。このため、1回目のコピーの開始時に、全面コピー(つまりマスターボリューム31からバックアップボリューム110-1,110-2及び110-3への全面コピー)が実行される。
【0079】
図13に示す状態から、バックアップボリュームLU番号1のバックアップボリューム110-1に対して、スナップショット番号4のスナップショットのデータをコピーする際の、差分バックアップ管理テーブル111の内容例を図14に示す。
【0080】
本実施形態において、スナップショット番号4のスナップショット時のマスターボリューム31に対応する仮想スナップボリューム100からバックアップボリュームLU番号1のバックアップボリューム110-1へのデータのコピーは、差分バックアップ管理テーブル111が図14に示す状態に更新された時点で、バックアップソフトウェア101に従ってホスト10によって開始される。このホスト10によるデータコピー(バックアップコピー)のためには、ホスト10がバックアップソフトウェア101に従って差分バックアップ手段として機能して、ディスクアレイ装置12-1のディスクアレイ制御装置20-1(によって実行されるディスクアレイ制御プログラム)から、各スナップショット番号単位の差分ビットマップテーブル、及び差分ビットマップテーブルの1ビットが示す領域サイズの情報を、ホストインタフェース201を介して取得可能とする必要がある。そのためには、取得方法として、ANSI−SCSI規格における「READ BUFFER」のような情報参照コマンド(つまり汎用の情報参照コマンド)を使用すると良い。
【0081】
次に、バックアップソフトウェア101に従ってホスト10により実行される差分バックアップコピーの手順について、図15及び図16のフローチャートを参照して説明する。
まず、ホスト10がユーザからのバックアップコピー要求コマンドを受信したものとする(ステップ1501)。このバックアップコピー要求コマンドは、バックアップコピー先となるバックアップボリュームのバックアップボリュームLU番号xと、バックアップの対象となるスナップショット(目的のスナップショット)の番号(スナップショット番号)yとを含む。なお、バックアップコピー要求コマンドが、例えばホスト10上で動作するアプリケーションプログラムからユーザの入力操作によらずに発行されたものであっても構わない。
【0082】
ホスト10はバックアップコピー要求コマンドを受信すると、差分バックアップ手段として機能して以下の処理を行う。差分バックアップ手段は、後述する、差分ビットマップテーブル取得手段、テーブル生成手段、サイズ情報取得手段、読み出し手段及び書き込み手段を含む。
【0083】
まずホスト10は、バックアップコピー要求コマンドの要求内容(x,y)、つまりバックアップボリュームLU番号xとスナップショット番号yとを確認する(ステップ1502)。ここでは、バックアップボリュームLU番号x=1、スナップショット番号y=4であるものとする。つまり、受信バックアップコピー要求コマンドは、「バックアップボリュームLU番号1」のバックアップボリューム(バックアップボリューム110-1)に「スナップショット番号4」のスナップショットのバックアップコピーを要求しているものとする。
【0084】
次にホスト10は、差分バックアップ管理テーブル111上の、バックアップボリュームLU番号x(=1)が設定されているエントリにおけるコピー中スナップショット番号を「y(=4)」に更新する(ステップ1503)。
【0085】
次にホスト10はテーブル生成手段として機能して、コピー領域管理用差分ビットマップテーブル170(図17参照)を例えば記憶装置102内に用意する(ステップ1504)。このコピー領域管理用差分ビットマップテーブル170の全ビットはデータ退避領域なし状態を示すようにゼロクリアされる。テーブル生成手段は、コピー領域管理用差分ビットマップテーブル170の更新も行う。
【0086】
次にホスト10は差分ビットマップテーブル取得手段として機能して、スナップショット番号z〜y−1の差分ビットマップテーブルの参照を情報参照コマンドを用いてディスクアレイ装置10-1に対して指定することにより、当該ディスクアレイ装置10-1から当該差分ビットマップテーブルを取得する(ステップ1505)。本実施形態では、スナップショット番号zには、バックアップコピー要求コマンドで指定されたスナップショット番号y(=4)の示すスナップショット(第1のスナップショット)よりも前のスナップショット、例えばバックアップコピー要求コマンドで指定されたバックアップボリュームLU番号x(=1)の示すバックアップボリュームへの前回のバックアップで用いられた仮想スナップボリュームと対応するスナップショット(第2のスナップショット)のスナップショット番号1が適用される。この場合、スナップショット番号1(z=1)〜y−1(=3)の差分ビットマップテーブル、即ち差分ビットマップテーブル171-1〜171-3(図17参照)が取得される。
【0087】
するとホスト10は、再びテーブル生成手段として機能して、差分ビットマップテーブル171-1〜171-3のそれぞれ対応するビット毎の論理和演算を行って、その論理和演算結果を、コピー領域管理用差分ビットマップテーブル170の対応するビットに格納(設定)する(ステップ1506)。
【0088】
コピー領域管理用差分ビットマップテーブル170の作成方法を図17に示す。
スナップショット番号1の差分ビットマップテーブル171-1は、スナップショット番号1のスナップショットの採取(登録)時から、スナップショット番号2のスナップショットの採取(登録)時までの間にデータ更新が発生した領域(データ更新領域)を示す。スナップショット番号2の差分ビットマップテーブル171-2は、スナップショット番号2のスナップショットの採取時から、スナップショット番号3のスナップショットの採取時までの間のデータ更新領域を示す。スナップショット番号3の差分ビットマップテーブル171-3は、スナップショット番号3のスナップショットの採取時から、スナップショット番号4のスナップショットの採取時までの間のデータ更新領域を示す。
【0089】
コピー領域管理用差分ビットマップテーブル170には、スナップショット番号1の差分ビットマップテーブル171-1と、スナップショット番号2の差分ビットマップテーブル171-2と、スナップショット番号3の差分ビットマップテーブル171-3との、それぞれ対応するビット毎の論理和演算の結果が反映される。
【0090】
再び図15及び図16を参照する。ホスト10はステップ1506を実行し終えるとサイズ情報取得手段として機能して、差分ビットマップテーブル171-1〜171-3の各1ビットが示す領域(ブロック)のサイズ情報を、ディスクアレイ装置10-1から情報参照コマンドを用いて取得する(ステップ1507)。
【0091】
次にホスト10は、バックアップボリュームLU番号x(=1)のバックアップボリュームへのアクセスを占有化するために、当該バックアップボリュームLU番号x(=1)を指定する予約コマンドをディスクアレイ装置10-2に対して発行する(ステップ1508)。予約コマンドとは、特定のLUへのアクセス権を特定のホストに限定することを要求するためのコマンドである。例として、ANSI−SCSI規格に準拠した制御コマンドが使用可能であれば、RESERVE UNITコマンドまたはPERSISTENT RESERVE IN/OUTコマンドが該当する。バックアップコピー中にバックアップボリュームLU番号x(=1)のバックアップボリュームに対してホスト10以外のホストからの書き込みを容認すると、コピーデータの不整合を招くことから、予約コマンドが使用される。
【0092】
次にホスト10は、スナップショット番号y(=4)のスナップショット採取時のマスターボリューム31を、仮想スナップボリューム100から参照可能とする命令を、ディスクアレイ装置10-1に対して発行する(ステップ1509)。
【0093】
次にホスト10は、差分バックアップ管理テーブル111内のバックアップボリュームLU番号x(=1)のエントリにおける仮想スナップボリューム使用有無を「使用中(スナップショット番号y)」に更新する(ステップ1510)。
【0094】
次にホスト10は、ディスクアレイ装置10-1に対して、仮想スナップボリューム100(ここでは、スナップショット番号y(=4)のスナップショット採取時のマスターボリューム31に対応する仮想スナップボリューム100)のLU番号の設定を要求する(ステップ1511)。
【0095】
そしてホスト10は、仮想スナップボリューム100からバックアップボリュームLU番号x(=1)のバックアップボリューム(ここではバックアップボリューム110-1)へのデータ(差分データ)のコピー(つまり差分コピー)を開始する(ステップ1512)。この差分コピーは次のように行われる。
【0096】
まずホスト10は読み出し手段として機能して、コピー領域管理用差分ビットマップテーブル170を参照することにより(ステップ1601)、当該テーブル170に1がセットされているビットがあるかを判定する(ステップ1602)。もし、1がセットされているビットがあるならば(ステップ1602のYes)、ホスト10は、そのビットに対応する領域(ブロック)は、前回バックアップされたスナップショット番号1のスナップショットの採取時からスナップショット番号y(=4)のスナップショット(つまり目的のスナップショット)採取時までの間にデータが更新された領域であると判断する。
【0097】
そこでホスト10は、この領域のデータを仮想スナップボリューム100から読み出すためのデータ読み出し要求をディスクアレイ装置10-1に発行することにより、当該領域のデータを読み出す(ステップ1603)。ディスクアレイ装置10-1では、このホスト10からのデータ読み出し要求に応じて、図9に示したフローチャートに従う処理が行われ、要求された読み出しデータがホスト10に返される。なお、1がセットされているビットに対応する領域は、当該ビットのビット番号に、1ビットの示す領域のサイズ(つまり、ステップ1507で取得されたサイズ情報の示すサイズ)を乗算した結果を先頭とする、当該サイズ分の領域である。
【0098】
ホスト10はステップ1603でデータを読み出すと書き込み手段として機能して、当該読み出されたデータを、バックアップボリュームLU番号x(=1)のバックアップボリューム内の、読み出し元に対応する領域に書き込む(ステップ1604)。
つまりホスト10(の差分バックアップ手段)は、コピー領域用差分ビットマップテーブル上で1がセットされているビットに対応する仮想スナップボリューム100内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピーを行う。
【0099】
次にホスト10は、コピー領域管理用差分ビットマップテーブル170上の、コピー完了領域に対応するビットに0をセットする(ステップ1605)。そしてホスト10はステップ1601に戻る。
【0100】
以下、ステップ1601〜1605が繰り返されることにより、コピー領域管理用差分ビットマップテーブル170上の1がセットされている全てのビットについて、そのビットに対応する仮想スナップボリューム100内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピー(差分コピー)が行われる。
【0101】
このような差分コピーの結果、コピー領域管理用差分ビットマップテーブル170上で1がセットされているビットがなくなったものとする(ステップ1602のNo)。
するとホスト10は、仮想スナップボリューム100からマスターボリューム31を参照可能とする状態を解除するための仮想スナップボリューム参照解除命令を、ディスクアレイ装置10-1に対して発行する(ステップ1606)。
【0102】
次にホスト10は、差分バックアップ管理テーブル111内の、バックアップボリュームLU番号x(=1)が設定されているエントリにおける仮想スナップボリューム使用有無を、「なし」に更新する(ステップ1607)。
【0103】
次にホスト10は、バックアップボリュームLU番号x(=1)のバックアップボリュームの予約を解除する(ステップ1608)。つまりホスト10は、バックアップボリュームLU番号x(=1)を指定する予約コマンドを解除する。
【0104】
次にホスト10は、差分バックアップ管理テーブル111内の、バックアップボリュームLU番号x(=1)が設定されているエントリにおける、コピー済みスナップショット番号を「y(=4)」に、コピー中スナップショット番号を「なし」に、それぞれ更新する(ステップ1609)。更新後のコピー済みスナップショット番号y(=4)は、バックアップボリュームLU番号x(=1)のバックアップボリューム(つまりバックアップボリューム110-1)に前回バックアップされたスナップショットを示す。ホスト10はステップ1609を実行し終えると、差分バックアップコピーを終了する。
【0105】
[第1の変形例]
次に上記実施形態の第1の変形例について説明する。
上記実施形態では、差分コピーに際して、ディスクアレイ装置10-1から情報参照コマンドを用いて取得されたスナップショット番号1〜3の差分ビットマップテーブル171-1〜171-3に基づいてコピー領域管理用差分ビットマップテーブル170が生成され、当該テーブル170に基づいて差分コピーが行われる。これに対して上記実施形態の第1の変形例では、ディスクアレイ装置10-1から取得された差分ビットマップテーブル171-1〜171-3をそのまま使用して差分コピーが行われる。つまり第1の変形例が上記実施形態と相違する点は、ホスト10が、コピー領域管理用差分ビットマップテーブル170を保持しない代わりに、ディスクアレイ装置10-1から取得された差分ビットマップテーブル171-1〜171-3を保持することにある。
【0106】
以下、第1の変形例においてホスト10により実行される差分バックアップコピーの手順について、図18及び図19のフローチャートを参照して説明する。
まず、ホスト10が上記実施形態と同様に、ユーザからのバックアップコピー要求コマンドを受信して、当該バックアップコピー要求コマンドの要求内容(x,y)である、バックアップボリュームLU番号xとスナップショット番号yとを確認したものとする(ステップ1801,1802)。
【0107】
するとホスト10は、上記実施形態と同様に、差分バックアップ管理テーブル111上の、バックアップボリュームLU番号x(=1)が設定されているエントリにおけるコピー中スナップショット番号を「y(=4)」に更新する(ステップ1803)。
【0108】
次にホスト10は、スナップショット番号1〜3の差分ビットマップテーブル170-1〜170-3(図17参照)を保持するための領域(差分ビットマップテーブル領域)を例えば記憶装置102内に用意する(ステップ1804)。
【0109】
次にホスト10は差分バックアップ手段の差分ビットマップテーブル取得手段として機能して、スナップショット番号z〜y−1、例えばスナップショット番号1〜3の差分ビットマップテーブル171-1〜171-3を、ディスクアレイ装置10-1から情報参照コマンドを用いて取得し(ステップ1805)。取得した差分ビットマップテーブル171-1〜171-3を上記差分ビットマップテーブル領域に格納する(ステップ1806)
そしてホスト10は、上記実施形態におけるステップ1507〜1511と同様のステップ1807〜1811を実行し、しかる後に仮想スナップボリューム100(ここでは、スナップショット番号y(=4)のスナップショット採取時のマスターボリューム31に対応する仮想スナップボリューム100)からバックアップボリュームLU番号x(=1)のバックアップボリューム(ここではバックアップボリューム110-1)への差分データのコピー(差分コピー)を開始する(ステップ1812)。この差分コピーは次のように行われる。
【0110】
まずホスト10は差分バックアップ手段の読み出し手段として機能して、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル171-1〜171-3を参照することにより(ステップ1901)、当該テーブル171-1〜171-3のいずれかに1がセットされているビットがあるかを判定する(ステップ1902)。もし、1がセットされているビットがあるならば(ステップ1902のYes)、ホスト10は、上記実施形態と同様に、そのビットに対応する領域のデータを仮想スナップボリューム100から読み出す(ステップ1903)。
【0111】
次にホスト10は差分バックアップ手段の書き込み手段として機能して、上記実施形態と同様に、仮想スナップボリューム100から読み出されたデータを、バックアップボリュームLU番号x(=1)のバックアップボリューム内の、読み出し元に対応する領域に書き込むための差分コピーを行う(ステップ1904)。次にホスト10は、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル171-1〜17-3上のビットのうち、コピー完了領域に対応するビットに0をセットして(ステップ1905)、ステップ1901に戻る。ここで、差分ビットマップテーブル171-1〜17-3上の2つ以上のテーブル上の対応するビットがコピー完了領域に対応している場合、当該対応するビットが全て0にセットされる。
【0112】
以下、ステップ1901〜1905が繰り返されることにより、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル171-1〜17-3上の1がセットされている全てのビットについて、そのビットに対応する仮想スナップボリューム100内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピー(差分コピー)が行われる。
【0113】
このような差分コピーの結果、差分ビットマップテーブル171-1〜17-3上で1がセットされているビットがなくなった場合(ステップ1902のNo)、ホスト10は、上記実施形態におけるステップ1606〜1609と同様のステップ1906〜1909を実行して、差分バックアップコピーを終了する。
【0114】
[第2の変形例]
次に上記実施形態の第2の変形例について説明する。
上記実施形態では、差分コピーが必要な領域は、ディスクアレイ装置10-1から取得されたスナップショット番号1〜3の差分ビットマップテーブル171-1〜171-3に基づいてホスト10にて生成されたコピー領域管理用差分ビットマップテーブル170を用いて判断されている。しかし、例えばホスト10の記憶装置102の空き領域が少ない等の理由により、ホスト10側でコピー領域管理用差分ビットマップテーブル170を管理できない場合がある。これに対して上記実施形態の第2の変形例では、ホスト10側でコピー領域管理用差分ビットマップテーブル170を生成・保持することなく、差分コピーを実行可能する。
【0115】
そのため第2の変形例において、ディスクアレイ装置10-1のディスクアレイ制御装置20-1は、差分コピーの必要/不要を、ホスト10からディスクアレイ装置10-1に発行される仮想スナップボリュームを対象とするデータの読み出し要求(仮想スナップボリューム読み出し要求)に対する、ホスト10への応答の内容によって示す機能が必要となる。
【0116】
第2の変形例では、このディスクアレイ制御装置20-1からホスト10への応答については、仮想スナップボリューム読み出し要求に対する応答内容を、ホスト10によってディスクアレイ制御装置20-1(より詳細には、ディスクアレイ制御装置20-1によって実行されるディスクアレイ制御プログラム)に設定されるアクセスモードにより切り替えることを可能としている。第2の変形例において、ホスト10によって設定されるアクセスモードは、全て正常応答(仮想スナップボリューム全体へのアクセスを許可)とするモード(通常モード)と、対象スナップショット番号の範囲で変更されていない領域への読み出し要求があった場合のみ、当該領域が予約中と応答するモード(差分モード)である。
【0117】
差分モードにおける予約中の応答は、上記実施形態における予約コマンドの実行中に当該予約コマンドを実行中のホスト以外からのアクセスに対する応答と同じである。差分モードの場合、上記実施形態において、ホスト10が差分バックアップ管理テーブル111によって管理していた、コピー済みスナップショット番号及びコピー中スナップショット番号に相当する情報について、ディスクアレイ装置12-1側での保持・管理が必要となる。このディスクアレイ装置12-1側で保持・管理されるべき、コピー済みスナップショット番号及びコピー中スナップショット番号に相当する情報を仮想スナップボリューム管理情報と称する。本実施形態において、仮想スナップボリューム管理情報は、バックアップコピーを開始する際に、ディスクアレイ装置10-1のディスクアレイ制御装置20-1(より詳細には、ディスクアレイ制御装置20-1によって実行されるディスクアレイ制御プログラム)に、ホスト10(の差分バックアップ手段が有するアクセスモード設定手段)によって設定される。
【0118】
図20に仮想スナップボリューム管理情報の例を示す。
仮想スナップボリューム管理情報は、アクセスモード、差分開始スナップショット番号及び差分終了スナップショット番号の各フィールドを備えている。図20(a)はアクセスモードが通常モードの場合の仮想スナップボリューム管理情報の一例を示し、図20(b)はアクセスモードが差分モードの場合の仮想スナップボリューム管理情報の一例を示す。
【0119】
アクセスモードが通常モードの場合、仮想スナップボリュームの全領域がアクセスされる。この場合、差分開始スナップショット番号及び差分終了スナップショット番号は制御上の意味をなさない。このためアクセスモードが通常モードの場合、仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号のフィールドには、図20(a)に示すように「なし」が設定される。
【0120】
一方、アクセスモードが差分モードの場合には、仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号のフィールドには、図20(b)に示すように、それぞれ有効な差分開始スナップショット番号(ここでは1)及び差分終了スナップショット番号(ここでは4)が設定される。差分開始スナップショット番号の示すスナップショットは、上記実施形態における、前回バックアップされたスナップショットに相当し、差分終了スナップショット番号は、上記実施形態における、バックアップコピー要求コマンドによって指定されるスナップショット番号yに相当する。つまり差分終了スナップショット番号の示すスナップショットは、上記実施形態における、スナップショット番号yの示すスナップショットに相当する。
【0121】
図20(b)に示す仮想スナップボリューム管理情報は、仮想スナップボリューム(差分終了スナップショット番号のスナップショットの採取時のマスターボリュームに対応する仮想スナップボリューム)において、差分開始スナップショット番号で示されるスナップショットの採取時から、差分終了スナップショット番号のスナップショットの採取時までの間にデータ更新が発生した領域(データ更新領域)のみアクセス可能とすることを意味している。アクセス不可能な領域に対してアクセスがあった場合は、ディスクアレイ装置10-1のディスクアレイ制御装置20-1は予約中と応答する。
【0122】
アクセスモードが差分モードの場合における仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号は、それぞれ、上記実施形態におけるコピー済みスナップショット番号及びコピー中スナップショット番号に相当する。なお、仮想スナップボリュームのアクセス不可能な領域に対して、ホスト10からディスクアレイ装置10-1にアクセスがあった場合の、ディスクアレイ装置10-1のディスクアレイ制御装置20-1からの応答内容は、例えば、アクセスエラー応答や専用のステータス応答でも、正常応答と区別可能なものであれば使用可能である。
【0123】
ディスクアレイ装置10-1のディスクアレイ制御装置20-1にホスト10によってアクセスモードとして差分モードが設定された状態で、ホスト10からディスクアレイ装置10-1にデータ読み出し要求が発行された場合の、ホスト10への応答(アクセス応答)を含むディスクアレイ制御装置20-1の処理手順について、図21のフローチャートを参照して説明する。
【0124】
ディスクアレイ制御装置20-1は、ホスト10からディスクアレイ装置10-1に対して発行されたデータ読み出し要求を受信すると、応答手段として機能して以下の処理を行う。まずディスクアレイ制御装置20-1は、当該読み出し要求が仮想スナップボリューム100へのアクセスを要求する仮想スナップボリューム読み出し要求であるかを判定する(ステップ2101)。もし仮想スナップボリューム読み出し要求であるならば(ステップ2101のYes)、ディスクアレイ制御装置20-1は、アクセスモードとして差分モードが設定されているかを判定する(ステップ2102)。
【0125】
もし、差分モードが設定されているならば(ステップ2102のYes)、ディスクアレイ制御装置20-1は、仮想スナップボリューム読み出し要求で指定される仮想スナップボリューム上のアクセス領域(読み出し指定領域)が、差分ビットマップテーブル上のいずれのビット番号のビットに対応する領域であるかを特定する(ステップ2103)。
【0126】
次にディスクアレイ制御装置20-1は、アクセスモードが差分モードの場合の仮想スナップボリューム管理情報に基づいて、差分開始スナップショット番号から差分終了スナップショット番号の直前(差分終了スナップショット番号−1)までの各差分スナップショット番号A(差分開始スナップショット番号≦A<差分終了スナップショット番号)について、以下のループ処理(ステップ2104)を実行する。
【0127】
まずディスクアレイ制御装置20-1は、スナップショット番号Aの差分ビットマップテーブル上のアクセス領域に該当するビットを参照することにより(ステップ2105)、当該ビットに1がセットされているかを判定する(ステップ2106)。
【0128】
もし、1がセットされていないならば(ステップ2106のNo)、ディスクアレイ制御装置20-1は差分スナップショット番号Aを1インクリメントし(A++)、そのインクリメント後の差分スナップショット番号Aが差分終了スナップショット番号に達していないならば(ステップ2107)、インクリメント後の差分スナップショット番号Aに基づき、上記ステップ2105,2106を再び実行する(ステップ2104)。
【0129】
もし、インクリメント後の差分スナップショット番号Aが差分終了スナップショット番号に達しているならば、ディスクアレイ制御装置20-1はループ処理(ステップ2104)を終了して、ホスト10に対して予約中で応答する(ステップ2108)。つまり、仮想スナップボリューム読み出し要求で指定される仮想スナップボリューム100上のアクセス領域が、差分開始スナップショット番号のスナップショットの採取時から差分終了スナップショット番号のスナップショットの採取時までの間にデータの更新がなされていない領域である場合、当該読み出し要求で指定されるデータ読み出しを行うことなく、当該読み出し要求で指定される読み出しの結果として、ディスクアレイ制御装置20-1からホスト10に対し予約中が応答される。
【0130】
一方、1がセットされているならば(ステップ2106のYes)、ディスクアレイ制御装置20-1は仮想スナップボリューム100(ここでは、差分終了スナップショット番号のスナップショット採取時のマスターボリューム31に対応する仮想スナップボリューム100)からアクセス領域のデータを読み出し、ホスト10に対して、仮想スナップボリューム読み出し要求で指定される読み出しの結果として、当該読み出したデータを含む正常応答を返す(ステップ2109)。つまり、上記アクセス領域が、差分開始スナップショット番号のスナップショットの採取時から差分終了スナップショット番号のスナップショットの採取時までの間にデータの更新がなされた領域である場合、ディスクアレイ制御装置20-1からホスト10に対し正常応答が返される。
【0131】
ディスクアレイ制御装置20-1がディスクアレイ制御プログラムに従って、図21に示す手順の応答処理を行うと、ホスト10はバックアップソフトウェア101に従う仮想スナップボリューム100の全領域からのデータ読み出し時に、ディスクアレイ制御装置20-1からの応答内容によって、その領域(アクセス領域)が更新された領域であるかを判定することができる。つまりホスト10は、仮想スナップボリューム読み出し要求に対して正常応答が返された場合は、アクセス領域は差分(更新された)領域であり、予約応答の場合には、アクセス領域は、更新されていない(コピーする必要がない)領域であると判定できる。
【0132】
なお、受信された読み出し要求が仮想スナップボリューム読み出し要求でないならば(ステップ2101のNo)、ディスクアレイ制御装置20-1は、例えば図9に示されるフローチャートに従う処理によってアクセス領域のデータを読み出し、ホスト10に対して当該読み出したデータを含む正常応答を返す(ステップ2109)。また、受信された読み出し要求が仮想スナップボリューム読み出し要求であるものの(ステップ2101のYes)、アクセスモードが差分モードでない(つまり通常モードである)ならば(ステップ2102のNo)、ディスクアレイ制御装置20-1は、仮想スナップボリューム100からアクセス領域のデータを読み出し、ホスト10に対して、当該読み出したデータを含む正常応答を返す(ステップ2109)。
【0133】
次に、上記実施形態の第2の変形例においてホスト10により実行される差分バックアップコピーの手順について、図22乃至図24のフローチャートを参照して説明する。この図22乃至図24のフローチャートは、上記実施形態で適用される図15及び図16のフローチャートに対応する。
【0134】
まず、ホスト10が上記実施形態と同様に、ユーザからのバックアップコピー要求コマンドを受信した結果、差分バックアップ手段として機能して、当該バックアップコピー要求コマンドの要求内容(x,y)である、バックアップボリュームLU番号xとスナップショット番号yとを確認したものとする(ステップ2201,2202)。
【0135】
するとホスト10は、上記実施形態と同様に、差分バックアップ管理テーブル111上の、バックアップボリュームLU番号x(=1)が設定されているエントリにおけるコピー中スナップショット番号を「y(=4)」に更新する(ステップ2203)。
【0136】
次にホスト10は、上記実施形態におけるステップ1504〜1506に相当する処理を行うことなく、上記実施形態におけるステップ1507〜1509と同様のステップ2204〜2206を実行する。次にホスト10は、差分バックアップ手段のアクセスモード設定手段として機能して、ディスクアレイ装置10-1のディスクアレイ制御装置20-1(によって実行されるディスクアレイ制御プログラム)に対して、仮想スナップボリューム管理情報として、仮想スナップボリュームのアクセスモード=差分モード、差分開始スナップショット番号=z(=1)、差分終了スナップショット番号=y(=4)を設定する(ステップ2207)。差分開始スナップショット番号=zは、バックアップコピー要求コマンドで指定されたバックアップボリュームLU番号xのバックアップボリュームに前回バックアップされたスナップショット(第2のスナップショット)のスナップショット番号に一致し、差分終了スナップショット番号=yは、バックアップコピー要求コマンドで指定されたスナップショット(第1のスナップショット)のスナップショット番号yに一致する。
【0137】
次にホスト10は、上記実施形態におけるステップ1510,1511と同様のステップ2208,2209を実行した後、仮想スナップボリューム100(ここでは、差分終了スナップショット番号y(=4)のスナップショット採取時のマスターボリューム31に対応する仮想スナップボリューム100)からバックアップボリュームLU番号x(=1)のバックアップボリューム(ここではバックアップボリューム110-1)への、領域サイズ情報の示すサイズの領域(ブロック)単位での全面コピーを、アドレス0の領域(ブロック)から開始する(ステップ2210)。この全面コピーは次のように行われる。
【0138】
まずホスト10は差分バックアップ手段の読み出し手段として機能して、ディスクアレイ装置10-1に対して仮想スナップボリューム読み出し要求を発行することにより、当該読み出し要求で指定される仮想スナップボリューム100内のアクセス領域からのデータ読み出しを実行する(ステップ2301)。仮想スナップボリューム読み出し要求は、領域サイズ情報の示すサイズのアクセス領域を指定する情報を含む。
【0139】
ディスクアレイ装置10-1のディスクアレイ制御装置20-1は、ホスト10からの仮想スナップボリューム読み出し要求に対して、読み出し結果として前述したように正常応答または予約中応答を返す。ホスト10は、このディスクアレイ制御装置20-1からの応答を受信すると、差分バックアップ手段の応答判定手段として機能して、その応答が正常応答であるかを判定する(ステップ2302)。
【0140】
もし正常応答でないならば(ステップ2302のNo)、ホスト10はディスクアレイ制御装置20-1からの応答が予約中応答であるかを判定する(ステップ2303)。
【0141】
これに対して正常応答であるならば(ステップ2302のYes)、ホスト10は差分バックアップ手段の書き込み手段として機能して、当該正常応答に含まれている読み出しデータ、つまり仮想スナップボリューム100から読み出したデータを、上記実施形態におけるステップ1604と同様に、バックアップボリュームLU番号x(=1)のバックアップボリューム内の、読み出し元(アクセス領域)に対応する領域に書き込む(ステップ2304)。
【0142】
ホスト10は、ステップS2304を実行するとステップ2305に進む。ホスト10はまた、ディスクアレイ制御装置20-1からの応答が、正常応答でも予約中応答でもない場合にも(ステップ2303のNo)、ステップ2305に進む。ステップ2305においてホスト10は読み出し手段として機能して、仮想スナップボリューム100の全領域からの読み出しは完了したかを判定する。
【0143】
もし、仮想スナップボリューム100の全領域からの読み出しが完了していないならば(ステップ2305のNo)、つまり読み出し未完了の領域が残っているならば、ホスト10は次のアクセス領域を設定(決定)する(ステップ2306)。次のアクセス領域は、現在のアクセス領域を示すアドレスを、領域サイズ情報の示す領域サイズ分だけ増加することにより決定される。そしてホスト10はステップ2301に戻る。
【0144】
これに対し、仮想スナップボリューム100の全領域からの読み出しが完了しているならば(ステップ2304のYes)、ホスト10は上記実施形態におけるステップ1606〜1609と同様のステップ2307〜2310を実行して、差分バックアップコピーを終了する。
【0145】
一方、ディスクアレイ制御装置20-1からの応答が予約中応答であるならば(ステップ2303のYes)、ホスト10はバックアップボリュームLU番号x(=1)のバックアップボリュームへのデータ書き込み(コピー)を行わずに、上記実施形態におけるステップ1606〜1608と同様のステップ2401〜2403を実行する。そしてホスト10は、差分バックアップ管理テーブル111内の、バックアップボリュームLU番号x(=1)が設定されているエントリにおける、コピー済みスナップショット番号を「1(エラー)」に、コピー中スナップショット番号を「なし」に、それぞれ更新する(ステップ2404)。このように、コピー済みスナップショット番号が“エラー”として設定される場合、コピー処理が中断したため、バックアップボリュームLU番号x(=1)のバックアップボリュームの内容は不完全データであることを示している。完全なデータとするには、同様のバックアップコピー要求コマンドを再度実行すればよい。
【0146】
ホスト10は、ステップ2404を実行すると、差分バックアップコピーを終了する。
【0147】
なお、上記実施形態及びその変形例では、ストレージシステムを構成するストレージ装置がディスクアレイ装置である場合を想定しているが、当該ストレージ装置が必ずしもディスクアレイ装置である必要はない。また、ネットワーク11に複数のホスト装置が接続されていてもよく、ネットワーク11に3台以上のディスクアレイ装置(ストレージ装置)が接続されていてもよい。
【0148】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0149】
10…ホスト(ホスト装置)、10-1,10-2…ディスクアレイ装置(ストレージ装置)、11…ネットワーク、12-1,12-2…ディスクアレイ、20-1,20-2…ディスクアレイ制御装置、31…マスターボリューム、32…スナップデータ管理ボリューム、40,171-1〜171-3…差分ビットマップテーブル、50,50-1〜50-3…スナップデータ管理テーブル、80…スナップデータ再現テーブル、100…仮想スナップボリューム、101…バックアップソフトウェア、102…記憶装置、110-1〜110-3…バックアップボリューム、111…差分バックアップ管理テーブル、120-0〜120-3…物理ディスク、170…コピー領域管理用差分ビットマップテーブル。

【特許請求の範囲】
【請求項1】
ホスト装置と、
前記ホスト装置とネットワークを介して接続される第1の汎用ホストインタフェースを備えた第1のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第1のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第1のストレージ装置と、
前記ホスト装置と前記ネットワークを介して接続される第2の汎用ホストインタフェースを備えた第2のストレージ装置とを具備するストレージシステムにおいて、
前記第2のストレージ装置は、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための複数のバックアップボリュームを備え、
前記ホスト装置は、前記第1のスナップショットに対応する仮想スナップボリュームから前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、バックアップのためにスナップショットデータをコピーする差分バックアップ手段であって、前記第1のスナップショットより前の第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定し、当該特定された領域の差分データを前記第1のスナップショットに対応する仮想スナップボリュームから前記第1の汎用インタフェースを介して取得して、前記対応する世代のバックアップボリュームに前記第2の汎用インタフェースを介してコピーする差分バックアップ手段を備えている
ことを特徴とするストレージシステム。
【請求項2】
前記第2のスナップショットは、前記対応する世代のバックアップボリュームへの前回のバックアップで用いられた仮想スナップボリュームと対応しており、
前記ホスト装置は、前記第2のスナップショットを示す情報をコピー済みスナップショット情報として保持する保持手段を更に備えており、
前記差分バックアップ手段は、前記保持手段に保持されているコピー済みスナップショット情報に基づいて前記第2のスナップショットを特定する
ことを特徴とする請求項1記載のストレージシステム。
【請求項3】
前記差分バックアップ手段は、
前記単一または複数の差分ビットマップテーブルを前記第1のストレージ装置から前記第1のインタフェースを介して取得する差分ビットマップテーブル取得手段と、
前記差分ビットマップテーブル取得手段によって前記複数の差分ビットマップテーブルが取得された場合、当該複数の差分ビットマップテーブルの対応するビット毎に論理和演算を行い、その論理和演算結果が保持されたコピー領域用差分ビットマップテーブルを生成するテーブル生成手段と、
前記コピー領域用差分ビットマップテーブルを格納する記憶手段と、
前記コピー領域用差分ビットマップテーブルに基づいて、前記第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を特定し、前記第1のスナップショットに対応する仮想スナップボリュームから当該特定された領域の差分データを前記第1の汎用インタフェースを介して読み出す読み出し手段と
を備えていることを特徴とする請求項2記載のストレージシステム。
【請求項4】
前記差分バックアップ手段は、前記差分ビットマップテーブルの各ビットに対応する領域のサイズを示すサイズ情報を、前記第1のストレージ装置から前記第1のインタフェースを介して取得するサイズ情報取得手段を更に備え、
前記読み出し手段は、前記コピー領域用差分ビットマップテーブル及び前記取得されたサイズ情報に基づいて、前記データ更新が発生した領域を特定する
ことを特徴とする請求項3記載のストレージシステム。
【請求項5】
前記差分バックアップ手段は、
前記単一または複数の差分ビットマップテーブルを前記第1のストレージ装置から前記第1のインタフェースを介して取得する差分ビットマップテーブル取得手段と、
前記取得された単一または複数の差分ビットマップテーブルを格納する記憶手段と、
前記記憶手段に格納されている前記単一または複数の差分ビットマップテーブルに基づいて、前記第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を特定し、前記第1のスナップショットに対応する仮想スナップボリュームから当該特定された領域の差分データを前記第1の汎用インタフェースを介して読み出す読み出し手段と
を備えていることを特徴とする請求項2記載のストレージシステム。
【請求項6】
前記差分バックアップ手段は、前記差分ビットマップテーブルの各ビットに対応する領域のサイズを示すサイズ情報を、前記第1のストレージ装置から前記第1のインタフェースを介して取得するサイズ情報取得手段を更に備え、
前記読み出し手段は、前記記憶手段に格納されている前記単一または複数の差分ビットマップテーブル及び前記取得されたサイズ情報に基づいて、前記データ更新が発生した領域を特定する
ことを特徴とする請求項5記載のストレージシステム。
【請求項7】
前記差分バックアップ手段は、
前記第1のスナップショットに対応する仮想スナップボリュームの特定のアクセスモード並びに前記第1のスナップショット及び前記第2のスナップショットを指定する仮想スナップボリューム管理情報を前記第1の汎用インタフェースを介して前記第1のストレージ装置に設定するアクセスモード設定手段と、
前記第1のストレージ装置に対して前記一定サイズの領域単位に前記第1のスナップショットに対応する仮想スナップボリュームからデータを読み出すための読み出し要求を前記第1の汎用インタフェースを介して発行することにより、前記読み出し要求に対する読み出し結果を示す応答を前記第1のストレージ装置から取得する読み出し手段と、
前記応答が正常応答である場合、当該応答に含まれている読み出しデータを、前記バックアップボリュームの対応する領域に書き込む書き込み手段とを備え、
前記第1のストレージ装置は、
前記設定された仮想スナップボリューム管理情報によって前記特定のアクセスモードが指定されている状態で、前記第1のスナップショットに対応する仮想スナップボリュームにアクセスするための読み出し要求が前記ホスト装置から前記第1の汎用インタフェースを介して発行された場合、前記設定された仮想スナップボリューム管理情報によって指定される前記第1のスナップショットの採取時点から前記第2のスナップショットの採取時点までの間にデータ更新が発生した領域からのデータの読み出しが指定されているかを、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて調べ、データ更新が発生した領域からのデータの読み出しが指定されている場合に、前記第1のスナップショットに対応する仮想スナップボリュームの前記読み出し要求で指定された領域からデータを読み出して、当該読み出したデータを含む正常応答を前記第1の汎用インタフェースを介して前記ホスト装置に返す応答手段を備えている
ことを特徴とする請求項1記載のストレージシステム。
【請求項8】
前記応答手段は、データ更新が発生した領域以外からのデータの読み出しが指定されている場合、前記指定された領域からのデータ読み出しを行わずに、前記指定された領域の予約中を示す予約応答を前記ホスト装置に返し、
前記書き込み手段は、前記応答が前記予約応答の場合、前記バックアップボリュームの対応する領域へのデータ書き込みを控える
ことを特徴とする請求項7記載のストレージシステム。
【請求項9】
ホスト装置と、前記ホスト装置とネットワークを介して接続される第1の汎用ホストインタフェースを備えた第1のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第1のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第1のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第2の汎用ホストインタフェースを備えた第2のストレージ装置とを具備するストレージシステムにおいて、前記第1のスナップショットに対応する仮想スナップボリュームのデータを、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための前記第2のストレージ装置に用意された複数のバックアップボリュームのうちの対応するバックアップボリュームにコピーするデータバックアップ方法であって、
前記第1のスナップショットより前の第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて前記ホスト装置が特定するステップと、
前記特定された領域の差分データを、前記ホスト装置が前記第1のスナップショットに対応する仮想スナップボリュームから前記第1の汎用インタフェースを介して取得するステップと、
前記第1のスナップショットに対応する仮想スナップボリュームから取得されたデータを、前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、前記ホスト装置が前記第2の汎用インタフェースを介して書き込むステップと
を具備することを特徴とするデータバックアップ方法。
【請求項10】
ホスト装置と、前記ホスト装置とネットワークを介して接続される第1の汎用ホストインタフェースを備えた第1のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第1のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第1のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第2の汎用ホストインタフェースを備えた第2のストレージ装置とを具備するストレージシステムにおける前記ホスト装置が、前記第1のスナップショットに対応する仮想スナップボリュームのデータを、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための前記第2のストレージ装置に用意された複数のバックアップボリュームのうちの対応するバックアップボリュームにコピーするのに用いられるデータバックアッププログラムであって、
前記ホスト装置に、
前記第1のスナップショットより前の第2のスナップショットの採取時点から前記第1のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定するステップと、
前記特定された領域の差分データを、前記第1のスナップショットに対応する仮想スナップボリュームから前記第1の汎用インタフェースを介して取得するステップと、
前記第1のスナップショットに対応する仮想スナップボリュームから取得されたデータを、前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、前記第2の汎用インタフェースを介して書き込むステップと
を実行させるためのデータバックアッププログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−14286(P2012−14286A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−148232(P2010−148232)
【出願日】平成22年6月29日(2010.6.29)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】