JP2007226347A - 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法 - Google Patents

計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法 Download PDF

Info

Publication number
JP2007226347A
JP2007226347A JP2006044416A JP2006044416A JP2007226347A JP 2007226347 A JP2007226347 A JP 2007226347A JP 2006044416 A JP2006044416 A JP 2006044416A JP 2006044416 A JP2006044416 A JP 2006044416A JP 2007226347 A JP2007226347 A JP 2007226347A
Authority
JP
Japan
Prior art keywords
journal
data
volume
recovery
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006044416A
Other languages
English (en)
Inventor
Wataru Okada
渡 岡田
Masahide Sato
雅英 佐藤
Hironori Emaru
裕教 江丸
Kunihiro Maki
晋広 牧
Yuri Hiraiwa
友里 平岩
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 JP2006044416A priority Critical patent/JP2007226347A/ja
Priority to US11/401,259 priority patent/US20070198604A1/en
Publication of JP2007226347A publication Critical patent/JP2007226347A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ストレージ装置間でのデータボリューム移行後であっても、ジャーナリングを用いたリカバリをできるようにする。
【解決手段】ストレージ装置間でデータボリュームを移行させた後であっても、ジャーナルを用いて、任意の時点のデータにリカバリできる計算機システムを提供するものである。計算機システムは、データボリュームの移行の前後のジャーナルの連続性を保証する、ジャーナル連続データをデータリカバリ管理手段に作成させ、ジャーナル連続データに基づいて、データのリカバリを実行する。
【選択図】図16

Description

本発明は、ホスト計算機がストレージ装置に接続し、さらにストレージ装置を管理する管理装置を備える計算機システム、さらに当該計算機システムの管理装置、及び前記計算機システムにおけるデータのリカバリー管理方法に関する。
一般に、ストレージ装置を備える情報システムでは、定期的にデータボリュームのバックアップを取得することで、ストレージ装置の障害、コンピュータウィルスによるデータ破壊、ユーザによる誤操作などによってデータが喪失した場合でも、喪失したデータをリカバリできるようにしている。
このバックアップ及びリカバリ技術の一つとして、ジャーナリングを用いたバックアップ及びリカバリ技術が提案されている(例えば、特許文献1を参照)。この特許文献1には、一つ以上のデータボリュームで構成される論理的なグループ(以降、「ジャーナルグループ」と呼ぶ)の特定時点のスナップショット(フルバックアップ、差分バックアップなどの論理的なイメージ)を取得し、それ以降の前記データボリュームへの書き込みデータをジャーナル(「Afterジャーナル」と呼ばれる)として保持することと、取得したスナップショットに対して書き込まれた順序どおりに一連のAfterジャーナルを適用することで、特定の時点のデータをリカバリすることと、が開示されている。これは一般に「Continuous Data Protection」又は「CDP」と呼ばれる技術の一例である。
また、特許文献1には、上記Afterジャーナル適用によってリカバリしたデータが既に破壊されている場合に、Afterジャーナル適用を取り消す方法も提案されている。この特許文献1には、Afterジャーナル適用によって上書きされる箇所のデータを退避させておき、Afterジャーナル適用を取り消す場合、Afterジャーナル適用後のスナップショットに前記退避させたデータを元の箇所へ適用する(退避したデータを書き戻す)ことで、短時間でAfterジャーナル適用以前のスナップショットへリカバリすることが開示されている。この退避させたデータを「Beforeジャーナル」と呼ぶ。
特許文献2では、ホスト計算機からの書き込み時にAfterジャーナルとBeforeジャーナルを同時に取得する技術も開示されている。これにより、運用ボリュームにBeforeジャーナルを適用することで、過去のデータをリカバリすることができる。なお、以後の説明において、Afterジャーナル、Beforeジャーナル及び当該ジャーナルの管理用のメタデータを纏めて、単に「ジャーナル」と呼ぶこととする。また、リカバリ時にジャーナルの適用対象となるスナップショットを「基底スナップショット」と呼ぶこととする。
また、複数のストレージ装置を含む計算機システムにおいて、ストレージ装置間の負荷分散を行うためにストレージ装置間でデータボリュームを移行させる技術が提案されている(例えば、特許文献3を参照)。
またさらに、複数のストレージ装置を統合したシステムを構築するための外部接続技術が提案されている(たとえば、特許文献4を参照)。この特許文献4には、第1ストレージ装置を第2ストレージ装置へ接続し、第1ストレージ装置がホスト等上位に提供するボリュームを、第2ストレージ装置を介して第2ストレージ装置のボリュームとして仮想的にホストへ提供することが開示されている。
米国特許公開明細書2005/0015416 特開2004−252686号公報 特開2003−345522号公報 特開2005-011277号公報
特許文献1及び2によれば、スナップショットはデータボリュームが属するストレージ装置内で生成される。ジャーナルはホストからの書き込み要求を受け取ったストレージ装置内で、つまり、データボリュームが属するストレージ装置内で生成される。このような状況下で、特許文献3で開示されている技術を利用して、データボリュームをストレージ装置間で移行させると、スナップショット及びジャーナルが、データボリュームの移行の前後で異なるストレージ装置に分散して、格納されることになる。この状態でデータボリュームのリカバリを行うと、リカバリを実行するストレージ装置(以降、「リカバリ実行主体ストレージ装置」と呼ぶ)がリカバリに必要なスナップショットやジャーナルにアクセスできず、任意の時点でのデータイメージにリカバリできないおそれがある。
本発明は、この課題を解決するために、ストレージ装置間でデータボリュームを移行させた後であっても、ジャーナルを用いて、任意の時点のデータにリカバリできる計算機システムを提供するものである。
本発明はデータボリュームの移行の前後のジャーナルの連続性を保証する、ジャーナル連続データをデータリカバリ管理手段に作成させ、ジャーナル連続データに基づいて、計算機システムにおけるデータのバックアップ・リカバリを実行することを特徴としている。
さらに詳しくは、本発明は、ホスト計算機が利用するデータが格納されるデータボリュームと、前記データボリュームへの書込み情報をジャーナルとして保持するジャーナルボリュームと、前記データボリュームのリカバリ時にリカバリポイントの近傍の時点で取得された、前記データボリュームのデータイメージを基底にして、当該データイメージに前記ジャーナルを適用することでリカバリを行うリカバリ制御部と、それぞれ前記データボリュームを備える複数のストレージ装置を備え、これら複数のストレー装置の前記データボリューム間での前記データの移行を制御する、データ移行制御部と、前記複数のストレージ装置のうち、一方のストレージ装置から他方のストレージ装置のボリュームへI/O要求を発行する接続制御部と、前記第1及び第2のストレージ装置を管理情報に基づいて制御する管理計算機と、を備え、 前記管理計算機は、前記複数のストレージ装置のデータボリューム同士の間で前記データ移行を行う際、前記データ移行元のストレージ装置の前記データボリュームに関して取得されるジャーナルと、データ移行先のストレージ装置の前記データボリュームに関して取得されるジャーナルと、を連続させた連続管理情報を作成する、ことを特徴とする計算機システムである。
本発明によれば、ストレージ装置間でデータボリュームを移行させた後であっても、ジャーナルを用いて、任意の時点のデータにリカバリできる計算機システム、この計算機システムに用いられる管理計算機、及びデータのリカバリ方法を提供することができる。
以下、本発明の実施形態について、図面を参照しながら説明する。なお、この実施形態によって本発明が限定されるものではない。以後の説明において、リカバリ実行主体ストレージ装置以外のストレージ装置のことを外部ストレージ装置、外部ストレージ装置に格納されたジャーナルのことを外部ジャーナル、外部ストレージ装置に格納されたスナップショットのことを外部スナップショット、外部ジャーナルを格納するボリュームを外部ジャーナルボリューム、外部スナップショットを格納するボリュームを外部スナップショットボリュームと呼ぶ。
さらに、特定時点のデータをリカバリする際に管理者が指定する時点のことを「リカバリポイント」と呼ぶ。また、スナップショットに一連のジャーナルを適用して、指定されたリカバリポイントのデータをリカバリするときに、最後に適用するジャーナルと前記指定されたリカバリポイントの関係を、「(前記)ジャーナルが(前記)リカバリポイントを持つ」と言う。スナップショットにジャーナルを適用せずにリカバリできる場合は、前記スナップショットと指定されたリカバリポイントの関係を、「(前記)スナップショットが(前記)リカバリポイントを持つ」という。
実施形態1
(1)システム構成
図1は、計算機システムの構成を示すブロック図である。ストレージ装置1000とホスト計算機1100はデータネットワーク1300を介して互いに接続されている。データネットワーク1300はストレージエリアネットワークであるがIPネットワークであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。
ストレージ装置1000とホスト計算機1100と管理計算機1200は管理ネットワーク1400を介して互いに接続される。管理ネットワーク1400はIPネットワークであるが、ストレージエリアネットワークであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。データネットワーク1300と管理ネットワーク1400が同一ネットワークであってもよいし、ホスト計算機1100と管理計算機1200が同一の計算機であってもかまわない。図1のシステムは、ストレージ装置1000を2台、ホスト計算機1100を1台、管理計算機1200を1台備えているが、台数は限定されない。
ストレージ装置1000は、データを格納するディスク装置1010、ストレージ装置の制御を実行する、ディスクコントローラ1020を備えている。ディスク装置1010は、ジャーナルグループ1014、スナップショットボリューム(SSVOL)のグループ1015、ジャーナルボリューム1013とを備えている。
ジャーナルグループ1014は一つ以上のデータボリューム1011により構成される。データボリューム1011は、ホスト計算機1100が利用するデータを格納する論理ボリュームである。ジャーナルグループ1014には一つ以上のジャーナルボリューム1013及び一つ以上のSSVOLグループ1015が関連付けられる。ジャーナルボリュームは、ジャーナルを格納する論理ボリュームである。SSVOLグループ1015については後述する。
データボリューム1011へのホスト計算機1100からの書き込み要求は、後述するストレージマイクロプログラム1028に従って動作するCPU1023により処理され、前記データボリューム1011に反映される。このとき、CPU1023は、書き込むデータをAfterジャーナル、上書きされる箇所のデータをBeforeジャーナルとし、送信されてきた順序に従って順序番号を割り振るなど、適切な管理用メタデータを付与してジャーナルを作成する。そして、CPU1023は当該ジャーナルを、データボリューム1011が属するジャーナルグループ1014に関連付けられたジャーナルボリューム1013に格納する。前記メタデータや順序番号については、後にジャーナルの構成と併せて説明する。なお、新規ジャーナルの格納領域が不足した場合、前記CPU1023は最古のジャーナルをジャーナルボリューム1013から削除して空き領域を作成した後に、ジャーナルを格納する。また、別の実施形態として、ホスト計算機1100からの書き込み要求の処理の際は、CPU1023はAfterジャーナルとBeforeジャーナルのどちらか一方のみを持つジャーナルを作成する構成にしてもよい。
SSVOLグループ1015は一つ以上のスナップショットボリューム1012で構成される。スナップショットボリューム1012は、ある時点におけるデータボリューム1011の複製イメージ(スナップショット)を格納する論理ボリュームである。なお、スナップショットボリューム1012に格納されるスナップショットは、システムに対する要求や実装等に応じて、データボリューム1011のフルバックアップであっても、差分バックアップのような論理的なイメージであっても良い。
なお、説明の都合上、図1では、ジャーナルグループ1014を一つとしたが、これ以上設置してもかまわない。
ディスクコントローラ1020は、管理I/F1021、データI/F1022、ディスクI/F1025、メインメモリ1026、CPU1023、タイマ1024を備えている。
メインメモリ1026には、管理テーブル1029、ストレージマイクロプログラム1028が記憶されている。CPU1023はメインメモリ1026に記憶されたプログラムを実行する。
ストレージマイクロプログラム1028は、スナップショットの取得、ジャーナルの生成、ジャーナルを用いたリカバリ、ジャーナルの開放など従来技術で述べたジャーナリングを用いたバックアップ及びリカバリの各種機能をCPU1023に実行させるものである。なお、ジャーナルを用いたリカバリの際、ストレージマイクロプログラム1028に従って動作するCPU1023は、必要に応じて外部ストレージ装置のボリュームからジャーナルやスナップショットを読み込み、リカバリを行う。
さらに、ストレージマイクロプログラム1028は、他ストレージ装置へデータをコピーする機能、外部接続を行う機能、管理計算機1200やホスト計算機1100からの要求に応じディスク装置1010に対するデータの入出力を処理する機能、ストレージ装置内の制御情報の設定や提供などを行う機能をCPU1023に制御させる。前記CPU1023は、ストレージマイクロプログラム1028に従い、管理テーブル1029の情報を参照または更新しながらこれらの機能を制御する。管理テーブル1029の構成については後述する。
タイマ1024は、現在時刻を提供する機能を持つ一般的なタイマである。ジャーナル作成時やスナップショット取得時に、ストレージマイクロプログラム1028に従い動作するCPU1023によって参照される。
データI/F1022は、データネットワーク1300に対するインタフェースであって、一つ以上の通信用ポートを持つ。ディスクコントローラ1020はこのポートを介してホスト計算機1100、他のストレージ装置1000とデータや制御命令の送受信を行う。管理I/F1021は、管理ネットワーク1400とのインタフェースであって、ホスト計算機1100、管理計算機1200とデータや制御命令の送受信を行う。ディスクI/F1025は、ディスク装置1010に対するインタフェースであってデータや制御命令の送受信を行う。
ホスト計算機1100は、キーボードやマウスなどの入力装置1140、CPU1130、CRTなどの表示装置1120、メモリ1160、データI/F1110、管理I/F1150からなる。
データI/F1110はデータネットワーク1300に対するインタフェースであって、一つ以上の通信ポートを持つ。このポートを介してホスト計算機1100は、ストレージ装置1000とデータや制御命令の送受信を行う。管理I/F1150は管理ネットワーク1400に対するインタフェースであって、システム管理のために計算機1200及びストレージ装置1000とデータや制御命令の送受信を行う。メモリ1160には、アプリケーション1165、リカバリマネージャ1164、パス管理プログラム1162が記憶されている。
パス管理プログラム1162に従って動作するCPU1130は、ホスト計算機1100からデータボリューム1011へアクセスするためのパス(たとえば、WWNなどのストレージ装置のデータI/F1022のポートの識別子、SCSI(Small Computer System Interface)のターゲットID及びLUN(Logical Unit Number))を管理し、管理者や他のプログラムの要求に応じて当該パスを切り替える。アプリケーション1165は、データボリューム1011を利用するDBMSやファイルシステムといったアプリケーションである。
リカバリマネージャ1164に従って動作するCPU1130は、ストレージ装置1000に対するスナップショット取得の要求や特定時点のデータのリカバリ要求、アプリケーション1165の静止化を行う。リカバリマネージャ1164は、管理者や他のプログラムがこれらの機能を実行できるように、インタフェースとしてコマンドラインインタフェース(以降、「CLI」と呼ぶ)などを提供する。なお、説明の都合上、図1では、アプリケーション1163を一つとしたが、二つ以上でも良い。
管理計算機1200は、キーボードやマウスなどの入力装置1240、CPU1230、CRTなどの表示装置1220、メモリ1250、管理I/F1210、タイマ1260からなる。管理I/F1210は、システム管理のためにホスト計算機1200及びストレージ装置1000とデータや制御命令を送受信する。
メモリ1250には、設定プログラム1254、CDP管理情報1253、CDP管理プログラム1252、ボリューム移行管理プログラム1251、ジャーナル連結情報管理プログラム1255が記憶されている。CPU1230はメモリ1250に記憶された各種プログラムを実行することで各機能を実現する。
設定プログラム1254はCPU1230に、CDP管理情報1253もしくは管理テーブル1029の値を設定させるためのプログラムである。なお、管理テーブル1029の値を設定する場合、CPU1230はストレージマイクロプログラム1029に従って動作するCPU1023と通信を行い、設定を要求する。CDP管理情報1253については後述する。
ボリューム移行管理プログラム1251はCPU1230に、データボリュームの移行を管理させるためのプログラムである。データボリューム移行の際、前記CPU1230は、ボリューム移行管理プログラム1251に従い、移行元ストレージ装置から移行元データボリュームに関する最新ジャーナル(以降、「連結元ジャーナル」と呼ぶ)の情報、移行先ストレージ装置から移行先データボリュームに関する最新ジャーナル(以降、「連結先ジャーナル」と呼ぶ)の情報を収集させ、ストレージ装置間でジャーナルの連続性を保証する情報(以降、「ジャーナル連結情報」と呼ぶ)を作成する。例えば、CPU1230はストレージ装置1000のデータボリューム1011を、デーアネットワーク1300を介して、移行させる。
ジャーナル連結情報管理プログラム1255は、CPU1230にジャーナル連結情報を管理させるためのプログラムである。前記CPU1230は、ジャーナル連結情報管理プログラム1255に従い、各ストレージ装置が格納するジャーナルの情報を定期的に収集し、各ジャーナル連結情報に関して、連結元ジャーナルもしくは連結先ジャーナルがストレージ装置から削除されていた場合、当該ジャーナル連結情報をCDP管理情報1253から削除する。
CDP管理プログラム1252はCPU1230に、ジャーナルを用いたリカバリを制御させるためのプログラムである。前記CPU1230は、CDP管理プログラム1252に従い、ジャーナル連結情報を用いてリカバリに必要なスナップショット及びジャーナルの格納論理ボリュームを特定し、必要であれば外部ジャーナルボリュームもしくは外部スナップショットボリュームを外部接続するように、リカバリ実行主体ストレージ装置に要求する。その後、CPU1230は、前記リカバリ実行主体ストレージ装置に、リカバリに必要なジャーナル及びスナップショットに関する情報を送信し、リカバリを要求する。なお、上記4つのプログラムは、管理者や他のプログラムがこのプログラムを実行できるように、インタフェースとしてCLIなどを提供する。タイマ1260は、現在時刻を提供する機能を持つ一般的なタイマである。ジャーナル連結情報作成時に、ボリューム移行管理プログラム1251に従い動作するCPU1230によって参照される。
図2から図9は管理テーブル1029を構成するテーブル群である。図2は、管理テーブル1029を構成する論理ボリューム管理テーブル2000の一例である。当該テーブルは、論理ボリュームの管理情報を格納する。論理ボリュームID2001は、管理対象となる論理ボリュームの識別子を格納する。たとえば、ボリュームのデバイス番号などである。対応ボリュームID2002は、管理対象論理ボリュームがマッピングされている物理ボリュームもしくは仮想ボリュームの識別子を格納する。
上記2つの値を設定するために、設定プログラム1254はCLIを提供する。たとえば、このCLIを用いて管理者は「createVol-stid RAID600_503-pe_volid P_VOL_01」といったコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「物理ボリュームP_VOL_01から論理ボリュームを生成せよ」という命令になる。このP_VOL_01が対応ボリュームID2002に格納される。論理ボリュームID2001には、CPU1023が、ストレージマイクロプログラム1028に従い、ストレージ装置内で一意に識別可能な識別子を割り振る。仮想ボリュームから論理ボリュームを作成する場合は、P_VOL_01を仮想ボリュームの識別子に置き換えて命令を発行すればよい。
なお、この設定を行うために、設定プログラム1254に従い動作するCPU1230は、ストレージマイクロプログラム1028に従い動作するCPU1023と通信を行う。この通信は、前記CPU1230が後述するストレージテーブル12000からRAID600_503で識別されるストレージ装置の管理I/F1021のIPアドレスを取得し、そのIPアドレスに対して接続要求を行うことで確立される。以下、前記CPU1230が各種プログラムを実行する上で、ストレージマイクロプログラム1028に従い動作するCPU1023と通信を行う場合は、上記と同様に通信を確立してから行うものとし、説明を省略する。
図3は、管理テーブル1029を構成するパス管理テーブル3000の一例である。当該テーブルは、論理ボリュームへアクセスするためのパス情報を管理する。論理ボリュームID3001は、論理ボリュームの識別子である論理ボリュームID2001の値を格納する。パス3002は、論理ボリュームにアクセスするためのパス情報を格納する。これらの値を設定するために、設定プログラム1254はCLIを提供する。例えば、管理者は「addPath -stid RAID600_503 -volid VOL_01 -path P1_T1_L1」のようなコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「論理ボリュームVOL_01に対し、ポートIDが1、ターゲットIDが1、LUNが1というパスを設定せよ」という命令となる。このVOL_01が論理ボリュームID3001に格納され、P1_T1_L1がパス3002に格納される。「P1_T1_L1」は、ホスト計算機から論理ボリュームへの論理的なアクセスルートを定める、パス情報である。P1は、ポートを識別するための情報(ポート番号)である。ポート番号は、論理ボリュームに対応付けられたLUに対して、ホスト計算機がストレージ装置にある複数のポートのうちどのポートからアクセス可能かを示す情報である。ファイルチャネルスイッチのポート番号も併せて管理テーブルに設定されても良い。T1はターゲットIDであり、L1は論理ボリュームの識別子である、LUN(ロジカル ユニット ナンバー)である。ターゲットはストレージ装置であり、T1によってストレージ装置が識別される。ストレージ装置に複数のLUが括りつけられており、L1はこのLUに対する識別子である。このパス情報によって一意に識別される論理ボリュームに対してホスト計算機やストレージがI/Oアクセスをする。
図4は、管理テーブル1029を構成する仮想ボリューム管理テーブル4000の一例である。当該テーブルは、外部接続機能の管理情報を格納する。仮想ボリュームID4001は、管理対象となる仮想ボリュームの識別子を格納する。イニシエータポート4002は、他ストレージ装置の論理ボリューム(以降、「外部ボリューム」と呼ぶ)へアクセスするために経由する自ストレージ装置のデータI/F1022のポート識別子を格納する。外部ストレージ装置ID4003は、外部ボリュームを格納するストレージ装置の識別子を格納する。たとえば、ストレージ装置のモデル名とシリアル番号の組み合わせなどであり、後述するストレージテーブル12000のストレージID12001の値が格納される。外部ボリュームパス4004は、外部ボリュームへアクセスするためのパス情報となるパス3002の値を格納する。論理ボリュームID4005は、外部ストレージ装置において当該外部ボリュームの識別子となる論理ボリュームID2001の値を格納する。これらの情報を設定するために、設定プログラム1254はCLIを提供する。
例えば、管理者は「addVVol -stid RAID600_503 -estid RAID600_504 -path P1_T1_L1 -vol_id VOL_01」というコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「ストレージ装置RAID600_504の論理ボリュームVOL_01をポートIDが1、ターゲットIDが1、LUNが1というパスで外部接続せよ」という命令となる。このRAID600_504が外部ストレージ装置ID4003に格納され、P1_T1_L1が外部ボリュームパス4004に格納され、VOL_01が論理ボリュームID4005に格納される。また、仮想ボリュームID4001には、CPU1023が、ストレージマイクロプログラム1028に従い、当該仮想ボリュームを一意に識別可能な識別子を割り振る。
さらに、イニシエータポート4002には、上記パスで外部ボリュームにアクセス可能なポートを前記CPU1023が自動検索し、その識別子を設定する。ストレージ装置に外部接続された外部ストレージ装置は、外部ストレージ装置の仮想ボリュームを介して、この仮想ボリュームにマッピングされた、接続先のストレージ装置のボリュームにアクセスすることができる。即ち、外部ストレージ装置は、接続対象のストレージ装置のスナップショットボリューム、データボリューム、及びジャーナルボリュームにアクセスし、ジャーナル連結情報と外部ストレージ装置のスナップショットに基づいて外部ストレージのデータボリュームを任意の時点、即ち接続対象のストレージ装置から外部ストレージ装置へのデータボリュームのマイグレーション以前のデータボリュームの状態にリカバリすることができる。
図5は、管理テーブル1029を構成するジャーナルグループテーブル5000の一例である。当該テーブルは、ジャーナルグループの管理情報を格納する。JNLグループID5001は、管理対象となるジャーナルグループの識別子を格納する。この値を設定するために、設定プログラム1254はCLIを提供する。例えば、管理者は「CreateJG -stid RAID600_503 -jgid JNLG_01」のようなコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「ジャーナルグループJNLG_01を作成せよ」という命令になる。このJNLG_01という値がJNLグループID5001に格納される。
順序カウンタ5003は、ジャーナル作成及びスナップショット取得の順序を管理するための番号を格納する。本値は、ホスト計算機1100からの書込み要求に対してジャーナルを生成するたびに、ストレージマイクロプログラム1028に従って動作するCPU1023によって1だけ加算され、加算後の値が後述するジャーナルの順序番号10005にコピーされる。また、当該番号は、スナップショットを取得するたびに、前記CPU1023によって、後述するスナップショットグループテーブル8000の順序番号8003にコピーされる。
この処理により、各ジャーナル作成タイミングとスナップショット取得タイミングの順序関係が記録される。リカバリの際は、ストレージマイクロプログラム1028に従って動作するCPU1023は、この順序関係を用いて基底スナップショットに適用すべきジャーナルとその適用順序を特定する。具体的には、特定のスナップショットにAfterジャーナルを適用してリカバリを行う場合、前記CPU1023は、当該スナップショットより大きく且つ指定されたリカバリポイントを持つジャーナル以下の順序番号を持つジャーナルを、順序番号に従って適用する。逆に、特定のスナップショットにBeforeジャーナルを適用する場合、前記CPU1023は、当該スナップショット以下且つ指定されたリカバリポイントを持つジャーナルより大きな順序番号を持つジャーナルを、順序番号の大きい順に適用する。
最新ジャーナル格納VOLID5004は、最新ジャーナルが格納されているジャーナルボリューム1013の識別子である論理ボリュームID2001の値を格納する。最新ジャーナル格納アドレス5005は、当該ジャーナルボリューム内で当該最新ジャーナルが格納されたアドレスを格納する。
最古ジャーナル格納VOLID5006は、当該最古ジャーナルが格納されているジャーナルボリューム1013の識別子である論理ボリュームID2001の値を格納する。最古ジャーナル格納アドレス5007は、当該ジャーナルボリューム内で当該最古ジャーナルが格納されたアドレスを格納する。
最新ジャーナル格納VOLID5004、最新ジャーナル格納アドレス5005、最古JNL格納VOLID5006、最古JNL格納アドレス5007は、新規ジャーナルの格納先ボリューム及びアドレスの特定、削除するジャーナルの特定のために、ストレージマイクロプログラム1028に従って動作するCPU1023によって参照及び更新される。
管理筺体ID5008は、管理対象ジャーナルグループが所属するストレージ装置の識別子となるストレージID12001の値を格納する。ただし、通常運用時には、この値には「Null」が設定されている。CPU1230が、CDP管理プログラム1252に従い、リカバリのために当該テーブルの情報を取得したときに、取得元のストレージ装置の識別子を本値に設定する。
図6は、管理テーブル1029を構成するデータボリュームテーブル6000の一例である。当該テーブルは、ジャーナルグループの構成情報を管理する。JNLグループID6001は、管理対象ジャーナルグループの識別子であるJNLグループID5001の値を格納する。データボリュームID6002は、当該ジャーナルグループに属するデータボリュームの識別子である論理ボリュームID2001の値を格納する。
これらの値を設定するために、設定プログラム1254はCLIを提供する。例えば、管理者は「addDataVOL -stid RAID600_503 -jgid JNLG_1 -datavolid VOL_01」というコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「ジャーナルグループJNLG_1にデータボリュームVOL_01を追加せよ」という命令になる。このJNLG_1がJNLグループID6001に格納され、VOL_01がデータボリュームID6002に格納される。なお、単一のジャーナルグループに複数のデータボリュームを設定する場合は、上記のコマンドを複数回実行する。管理筺体ID6004に関しては、管理筺体ID5008と同様である。
図7は、管理テーブル1029を構成するスナップショットボリュームテーブル7000の一例である。当該テーブルは、SSVOLグループの構成を管理する。SSVOLグループID7001は、管理対象SSVOLグループの識別子を格納する。スナップショットボリュームID7002は、管理対象SSVOLグループに属するスナップショットボリューム1012の識別子となる論理ボリュームID2001の値を格納する。対応データボリュームID7003は、スナップショット取得対象のデータボリュームの識別子となるデータボリュームID6002の値を格納する。
これらの値を設定するために、設定プログラム1254はCLIを提供する。例えば、管理者は「addSSVOL -stid RAID600_503 -ssvolgid SS_01 -volid SVOL_01 -target VOL_01」というコマンドを発行する。これは、ストレージ装置RAID600_503に対する「SSVOLグループSS_01に、データボリュームVOL_01のスナップショットを格納するためのスナップショットボリュームSVOL_01を追加せよ」という命令になる。このSS_01がSVOLグループID7001に格納され、SVOL_01がスナップショットボリュームID7002に格納され、VOL_01が対応データボリュームID7003に格納される。管理筺体ID7004に関しては、管理筺体ID5008と同様である。
図8は、管理テーブル1029を構成するスナップショットグループテーブル8000の一例である。当該テーブルはジャーナルグループとそのスナップショットグループを格納するSSVOLグループの関係を管理する。JNLグループID8001は、管理対象ジャーナルグループの識別子となるJNLグループID5001の値を格納する。SSVOLグループID8002は、管理対象SSVOLグループの識別子となるSSVOLグループID7001の値を格納する。これらの値を設定するために設定プログラム1254はCLIを提供する。例えば、管理者は「addSSVOLG -stid RAID600_503 -jgid JNLG_01 -ssvolgid SS_01」のようなコマンドを発行する。これは、ストレージ装置RAID600_503に対する「ジャーナルグループJNLG_01のスナップショットグループをSSVOLグループSS_01に格納せよ」という命令になる。このJNLG_01がJNLグループID8001に格納され、SS_01の値がSSVOLグループID8002に格納される。なお、複数世代のスナップショットグループを保持するために、複数のSSVOLグループを関連付ける場合は、上記コマンドを複数回実行する。
順序番号8003は、管理対象SSVOLグループに格納されたスナップショットグループ取得タイミングとジャーナル作成タイミングとの順序関係を示す番号を格納する。ストレージマイクロプログラム1028に従って動作するCPU1023が、スナップショットグループを取得するたびに、順序カウンタ5003の値を順序番号8003に設定する。
取得時刻8004は、スナップショット取得要求がストレージ装置1000に到着した時刻を保持する。ストレージマイクロプログラム1028に従って動作するCPU1023が、ディスクコントローラ1020のタイマ1024から現在時刻を取得し、取得時刻8004に設定する。なお、別の実施形態として、生成時刻8004には、スナップショット取得要求内に含まれる書込み発行時刻としても良い。たとえば、メインフレーム環境では、複数のメインフレームホストがタイマを共有しており、書き込み要求を発行する時刻を提供することができるため、これを利用することも可能である。管理筺体ID8005に関しては、管理筺体ID5008と同様である。
基底SSフラグ8006は、リカバリ時に基底スナップショットとなるか否かを示す情報を格納する。具体的には、基底スナップショットとなる場合は「TRUE」が設定され、それ以外の場合は「FALSE」が設定される。本値は、通常運用時は「FALSE」が設定されている。CPU1230が、CDP管理プログラム1252に従い、リカバリのために基底スナップショットを特定した際に、そのスナップショットが属するSSVOLグループに関して本値に「TRUE」を設定する。
図9は、管理テーブル1029を構成するジャーナルボリュームテーブル9000の一例である。当該テーブルは、ジャーナルグループで利用されるジャーナルボリュームを管理する。JNLグループID9001は、ジャーナルグループの識別子となるJNLグループID5001の値を格納する。JNLボリュームID9002は、JNLグループによって利用されるジャーナルボリュームの識別子となる論理ボリュームID2001の値を格納する。
これらの値を設定するために設定プログラム1254はCLIを提供する。例えば、管理者は「addJVOL -stid RAID600_503 -jgid JNLG_01 -jvolid J-VOL_01」のようなコマンドを発行できる。これは、ストレージ装置RAID600_503に対する「ジャーナルグループJNLG_01にジャーナルボリュームJ-VOL_01を利用させる」という命令になる。このJNLG_01がJNLグループID9001に格納され、J-VOL_01がJNLボリュームID9002に格納される。複数のジャーナルボリュームを単一のジャーナルグループに関連付ける場合は、上記のコマンドを複数回実行する。管理筺体ID9005に関しては、管理筺体ID5008と同様である。
図10は、本実施の形態におけるジャーナルの構成の一例を示した図である。データボリュームID10001はジャーナル適用先となるデータボリューム1011の識別子となる論理ボリュームID2001の値を格納する。適用先アドレス10002は当該適用先データボリューム1011内での適用先アドレスを格納する。データ長10003は適用するデータの長さ、すなわちAfterジャーナル10006及びBeforeジャーナル10007の長さを保持する。これらの値は、ストレージマイクロプログラム1028に従って動作するCPU1023がジャーナルを作成する際に、ホスト計算機1100の書込み要求に応じて設定する値である。
生成時刻10004は、ホスト計算機1100の書き込み要求がストレージ装置1000に到着した時刻を保持する。生成時刻10004の値は、ストレージマイクロプログラム1028に従って動作するCPU1023が、ディスクコントローラ1020のタイマ1024から取得し、設定するものである。なお、別の実施形態として、生成時刻10004は書込み要求内に含まれる書込み発行時刻としても良い。
順序番号10005は、前述した順序番号8003と同等の値を格納する。ストレージマイクロプログラム1028に従って動作するCPU1023が、ジャーナルを作成する時に、順序カウンタ5003の値に1だけ加算した値を本値に設定する。Afterジャーナル10006はAfterジャーナルのデータを格納する。Beforeジャーナル10007はBeforeジャーナルのデータを格納する。
次ジャーナルボリュームID10008と次ジャーナルアドレス10009には、当該ジャーナルの次に作成されるジャーナル(以降、「次ジャーナル」と呼ぶ)の格納場所を識別する情報が格納されている。次ジャーナルボリュームID10008は、次ジャーナルを格納するジャーナルボリューム1013の識別子となる論理ボリュームID2001の値を格納する。次ジャーナルアドレス10009は、当該論理ボリューム内における次ジャーナルが格納されているアドレスを保持する。この値は、ストレージマイクロプログラム1028に従い動作するCPU1023が次ジャーナルの格納場所をジャーナルボリューム内の適切な空き領域から決定し、設定する。
前ジャーナルボリュームID10010と前ジャーナルアドレス10011には、当該ジャーナルの一つ前に作成されたジャーナル(以降、「前ジャーナル」と呼ぶ)の格納場所を識別する情報が格納される。前ジャーナルボリュームID10010は、前ジャーナルを格納するジャーナルボリューム1013の識別子となる論理ボリュームID2001の値を格納する。前ジャーナルアドレス10011は、当該論理ボリューム内における前ジャーナルが格納されているアドレスを格納する。ストレージマイクロプログラム1028に従い動作するCPU1023が、ジャーナルを作成する際に、最新ジャーナル格納VOLID5004と最新ジャーナル格納アドレス5005の値を、前ジャーナルボリュームID10010と前ジャーナルアドレス10011の値にコピーする。その後、前記CPU1023は最新ジャーナル格納VOLID5004、最新ジャーナル格納アドレス5005に、当該作成したジャーナルの格納場所を設定する。
図11から図12はCDP管理情報1253を構成するテーブル群である。図11はCDP管理情報1253を構成するストレージテーブル12000の一例である。当該テーブルは、ストレージ装置の情報を管理する。ストレージID12001はストレージ装置の識別子を格納する。具体的には、ストレージ装置のモデル名とシリアル番号などである。IPアドレス12002には、当該ストレージ装置の管理I/F1012のIPアドレスなどのネットワークのアドレスが格納される。これらの値は、設定プログラム1254が提供するCLIを用いて、管理者が設定する。例えば、管理者は「addStorage -stid RAID600_503 -ip 192.168.1.1」のようなコマンドを発行する。これは「IPアドレスが192.168.1.1であるストレージ装置RAID600_503を管理せよ」という命令になる。このRAID600_503がストレージID12001に格納され、192,168.1.1がIPアドレス12002に格納される。
図12はCDP管理情報1253を構成するジャーナル連結情報テーブル13000の一例である。当該テーブルは、複数のストレージ装置に分散して格納されている、特定のデータボリュームに関するジャーナルの連続性を保証するジャーナル連結情報を管理する。本テーブルの情報は、データボリューム移行時に、ボリューム移行管理プログラム1251に従って動作するCPU1230により設定される。ID13012はジャーナル連結情報の識別子を格納する。
移行元筺体13001は、移行元ストレージ装置の識別子となるストレージID12001の値を格納する。移行元JNLG13007は、移行元ジャーナルグループの識別子となるJNLグループID5001の値を格納する。移行元VOLID13002は、移行元データボリュームの識別子となるデータボリュームID6002の値を格納する。以上3つの値は、本実施形態内で一意の論理ボリュームを特定することができる。これを移行元論理ボリューム情報13010と呼ぶ。移行元最終順序番号13003は、移行元ジャーナルグループにおける移行元データボリュームに関する最も新しいジャーナルの順序番号10005の値を格納する。
移行先筺体13004は、移行先ストレージ装置の識別子となるストレージID12001の値を格納する。移行先JNLG13008は、移行先ジャーナルグループの識別子となるJNLグループID5001の値を格納する。移行先VOLID13005は、移行先データボリュームの識別子となるデータボリュームID6002の値を格納する。以上3つの値は、本実施形態内で一意の論理ボリュームを特定することができる。これを移行先情報13011と呼ぶ。移行先開始順序番号13006は、移行先ジャーナルグループにおける移行先論理ボリュームに関する最も新しいジャーナルの順序番号10005を格納する。
時刻13009は、ボリューム移行管理プログラム1251に従って動作するCPU1230が本ジャーナル連結情報を作成した時刻をタイマ1260から取得し、設定する。
前連結情報ID13013は、本レコードのジャーナル連結情報より一つ前のジャーナル連結情報のID13012を格納する。つまり、本レコードのジャーナル連結情報により連続性を保証されたジャーナル群において、その中の最古のジャーナルと他のジャーナルとの連続性を保障するジャーナル連結情報のID13012の値を格納する。
(2)実施形態1の動作
次に、本実施形態の動作の説明を行う。まず、データボリューム移行の際の動作を説明する。ボリューム移行管理プログラム1251はデータボリュームを移行させるためのCLIを提供する。例えば、管理者は「migrateVol -from RAID600_503 -source VOL_01 -to RAID600_504 -target VOL_02」といったコマンドを発行できる。これは、「ストレージ装置RAID600_503データボリュームVOL_01を、ストレージ装置RAID600_504のデータボリュームVOL_2へ移行せよ」という命令になる。図13は、このコマンドを受け付けたボリューム移行管理プログラム1251によるCPU1230の動作である。
まず、CPU1230は、移行元データボリュームのパス情報を移行元ストレージ装置から、移行先データボリュームのパス情報を移行先のストレージ装置から、それぞれ取得する(ステップ14010)。次に、CPU1230は移行元ストレージ装置及び移行先ストレージ装置に、移行元データボリュームのデータを移行先データボリュームへコピーするように要求をする(ステップ14020)。この際、ストレージ装置間でコピーが行えるように、CPU1230は移行元ストレージ装置に移行先データボリュームのパス情報を送信する。また、同様にCPU1230は移行先ストレージ装置に移行元データボリュームのパス情報を送信する。
その後、CPU1230はコピー完了まで待機する(ステップ14030)。このコピー完了の確認方法として、CPU1230が定期的にストレージ装置1000に問い合わせても良いし、ストレージマイクロプログラム1028に従って動作するCPU1023が、前記CPU1230にコピー完了通知を行ってもよい。
コピー完了を確認した後、CPU1230はパス管理プログラム1162に移行元データボリュームへのI/O要求の保留を要求する(ステップ14040)。この保留とは、アプリケーション1165からのI/O要求をバッファに溜め込み、一時的に移行元データボリュームへの送信を停止することである。
その後、CPU1230は、ステップ14040のI/O要求保留以前に転送した全てのI/O要求が完了するまで待機する(ステップ14050)。この完了確認は、CPU1230が定期的にホスト計算機1100に確認しても良いし、パス管理プログラム1162に従い動作するCPU1130が前記CPU1230に完了通知を行ってもよい。
転送済み全I/O要求の完了を確認した後に、CPU1230は移行元データボリュームに関する最新ジャーナルの情報を移行元ストレージ装置から取得する(ステップ14060)。具体的には、順序番号や移行元データボリュームが属するジャーナルグループの識別子などである。
次に、CPU1230は、移行先データボリュームに関する新規ジャーナルの作成を移行先ストレージ装置に要求する(ステップ14070)。このとき作成するジャーナルは、リカバリ処理に影響を与えないように、データ長を0のものにする。
その後、CPU1230は、当該移行先データボリュームに関する最新ジャーナルの情報を移行先ストレージ装置から取得する(ステップ14080)。具体的には、順序番号や移行先データボリュームが属するジャーナルグループの識別子などである。
次に、CPU1230は、パス管理プログラム1162に従い動作するCPU1130にパスの切り替えを要求し(ステップ14090)、その後、パス管理プログラム1162に従い動作するCPU1130にI/O要求保留の解除を要求する(ステップ14100)。ステップ14090の切り替えにより、保留されていたI/O要求は移行先論理ボリュームへ転送される。
次に、CPU1230は、移行元データボリュームに関するジャーナル連結情報を検索する(ステップ14110)。この検索処理は具体的に次のように行う。まず、CPU1230は、移行元情報13010もしくは移行先情報13011が移行元データボリュームを指すジャーナル連結情報を列挙する。次に、CPU1230は、列挙した中で最新のジャーナル連結情報の移行先情報13011が移行元データボリュームを指すかを判定する。移行元データボリュームを指す場合、CPU1230は、当該ジャーナル連結情報が移行元データボリュームに関するものとする。そうでなければ、CPU1230は、移行元データボリュームに関するジャーナル連結情報は存在しないと判断する。
次に、CPU1230は、ジャーナル連結情報を作成する(ステップ14120)。まず、CPU1230は、移行元筺体13001、移行元VOLID13002、移行先筺体13004、移行先VOLID13005に、コマンドで指定された値を設定する。また、CPU1230は、移行元JNLG13007、移行元最終順序番号13003、移行先JNLG13008、移行先開始順序番号13006に、ステップ14060及びステップ14080にて取得したジャーナル情報を設定する。また、CPU1230は、現在時刻をタイマ1260から取得し、時刻13009に設定する。さらに、CPU1230は、当該ジャーナル連結情報のID13012に識別子を割り振り、ステップ14110において検索したジャーナル連結情報のID13012を、前連結情報ID13013に設定する。なお、ステップ14110にてジャーナル連結情報を検索できなかった場合は、CPU1230は、前連結情報ID13013に「Null」を設定する。以上のように、ジャーナル連結情報を作成した後、CPU1230は処理を終了する。
なお、本処理の流れでは、移行先データボリュームが既にジャーナルグループに属していることを想定しているが、別の実施形態として、移行先データボリュームを新規にジャーナルグループに追加してからデータボリューム移行を行っても良い。この場合は、ステップ14010の前に、前記データボリュームテーブル設定のCLIを発行するステップを追加すればよい。また同様に、ステップ14110の後に移行元のデータボリュームを移行元ジャーナルグループから削除する処理を追加しても良い。この削除処理については後述する。
さらに、本処理の流れでは、移行先データボリュームがホスト計算機に認識されていることが前提となっているが、別の実施形態として、ステップ14090のパスの切り替えの前に、移行先データボリュームをホスト計算機に認識させることも可能である。たとえば、ヒューレットパッカード社のUNIX(登録商標)オペレーティングシステムでは、「IOSCAN」コマンドを実行させることにより認識が可能である。
次に、ジャーナル連結情報を更新する際の動作を説明する。ジャーナル連結情報管理プログラム1255はジャーナル連結情報の更新のためのCLIを提供する。例えば、管理者は「invokeJNLMonitor -interval 300」といったコマンドを発行する。これは、「300秒周期でジャーナルの連結情報を更新する処理を行え」という命令になる。図14は、このコマンドを受け付けて起動したジャーナル連結情報管理プログラム1255によるCPU1230の動作の流れである。
まず、CPU1230は、指定されたジャーナル連結情報更新の周期に従い、更新時刻になるまで待機する(ステップ17010)。更新時刻になると、CPU1230は、ジャーナル連結情報テーブル13000に登録されたジャーナル連結情報の数だけステップ17030〜ステップ17090を繰り返す(ステップ17020)。
まず、CPU1230は、移行元ジャーナルグループの最古のジャーナルの順序番号を移行元ストレージ装置から取得する(ステップ17030)。CPU1230は、取得した順序番号と移行元最終順序番号13003を比較する(ステップ17040)。この結果、取得した順序番号が移行元最終順序番号13003よりも大きい場合、連結元ジャーナルが存在しないことを意味するため、CPU1230は当該ジャーナル情報を削除し(ステップ17050)、ステップ17090に進む。一方、当該順序番号が移行元最終順序番号以下の場合、CPU1230はステップ17050をスキップしてステップ17060へ進む。
同様に、CPU1230は、移行先ジャーナルグループの最古のジャーナルの順序番号を移行先ストレージ装置から取得し(ステップ17060)、取得した順序番号と移行先開始順序番号13006とを比較する(ステップ17070)。この結果、取得した順序番号が移行先開始順序番号よりも大きい場合、連結先ジャーナルが存在しないことを意味するため、CPU1230は当該ジャーナル情報を削除する(ステップ17080)。一方、当該順序番号が移行元最終順序番号以下の場合、CPU1230はステップ17080をスキップしてステップ17090へ進む。
まだ、更新処理を行っていないジャーナル連結情報が存在する場合、CPU1230はステップ17020へ戻り、処理を継続する。すべてのジャーナル連結情報の更新処理が終了している場合は、CPU1230はステップ17010へ進み、次の更新周期まで待機する(ステップ17090)。以上が、ジャーナル連結情報の更新処理の説明である。
次に、データボリュームをジャーナルグループから削除する際の動作を説明する。設定プログラム1254はジャーナルグループからデータボリュームを削除するためのCLIを提供する。例えば、管理者は「deleteVol -stid RAID600_504 -jngid JNLG_04 -volid VOL_31」といったコマンドを発行する。これはストレージ装置RAID600_504に対する「論理ボリュームVOL_31をジャーナルグループJNLG_04から削除しろ」という命令になる。図15は、この命令を受け付けたジャーナル連結情報管理プログラム1255によるCPU1230の動作の流れである。
まず、CPU1230は、削除対象データボリュームに関するジャーナル連結情報を検索する(ステップ18010)。この検索処理は、前記ステップ14110と同様に行う。削除対象データボリュームに関するジャーナル連結情報が存在する場合、CPU1230は削除対象ボリュームに関する最新のジャーナル情報を取得する(ステップ18020)。
次に、CPU1230は、取得したジャーナル情報を元に移行先無しのジャーナル連結情報を作成する(ステップ18030)。この作成処理では、CPU1230は、移行先ストレージ装置13004、移行先JNLG13008、移行先VOLID13005、移行先開始順序番号13006にNullを設定する。これら以外の値には、CPU1230は、前記ステップ14120と同様のものを設定し、ジャーナル連結情報を作成する。
最後に、CPU1230は、指定されたジャーナルグループから削除対象データボリュームを削除するように、ストレージ装置に要求し(ステップ18040)、処理を終了する。もし、ステップ18010において、削除対象データボリュームに関するジャーナル連結情報は存在しないと判定された場合、ステップ1820及びステップ18030をスキップし、上記ステップ18040を処理した後に、処理を終了する。
次に、リカバリを行う際の動作を説明する。CDP管理プログラム1252はリカバリのためのCLIを提供する。例えば、管理者は「restoreVol -stid RAID600_504 -volid VOL_31 -rp 200511181200 -target VOL_32」といったコマンドを発行できる。これは「ストレージ装置RAID600_504のデータボリュームVOL_31の2005年11月18日12時00分時点のデータを論理ボリュームVOL_32にリカバリしろ」という命令になる。なお、以降、リカバリの対象となるデータボリューム(上記コマンド例ではVOL_31)をリカバリ対象データボリュームと呼び、リカバリされたデータを格納する論理ボリューム(上記コマンド例ではVOL_32)をリカバリ先論理ボリュームと呼ぶ。
図16は、この命令を受け付けたCDP管理プログラム1252によるCPU1230の処理の流れである。まず、CPU1230はリカバリ対象データボリュームに関するジャーナル連結情報を検索する(ステップ19010)。この検索は、前記ステップ14110と同様に行う。この検索の結果、リカバリ対象データボリュームに関するジャーナル連結情報が存在しない場合は、リカバリ実行主体ストレージ装置に通常のリカバリ要求を行い(ステップ19020)、処理を終了する。
一方、前記ジャーナル連結情報が存在する場合、CPU1230は、リカバリ対象データボリュームに関するジャーナル連結情報のリストを作成する (ステップ19030)。ここでは、CPU1230は連結情報ID13013を用いてリストを作成する。連結情報ID13013に「Null」か、存在しないジャーナル連結情報の識別子が設定されているジャーナル連結情報まで遡ると、CPU1230は本リストの作成を終了する。
次に、CPU1230は、前記リストに含まれる各ストレージ装置からリカバリ対象データボリュームに関するCDP関連情報を取得する(ステップ19040)。CDP関連情報とは、ジャーナルグループテーブル5000、データボリュームテーブル6000、スナップショットボリュームテーブル7000、スナップショットグループテーブル8000、ジャーナルボリュームテーブル9000である。このとき、CPU1230は、管理筺体ID5008、管理筺体ID6004、管理筺体ID7004、管理筺体ID8005、管理筺体ID9005に取得元ストレージ装置の識別子を設定する。
次に、CPU1230は、基底スナップショットを決定する(ステップ19045)。この処理では、まずCPU1230は、指定されたリカバリ時刻に近い時刻に取得したスナップショットグループを特定する。次に、CPU1230は、そのスナップショットグループ取得時刻におけるリカバリ対象データボリュームの移行元データボリュームを、前記ジャーナル連結情報のリストから特定する。次に、CPU1230は、前記スナップショットグループを格納するSSVOLグループのなかで、前記移行元データボリュームのスナップショットを格納するスナップショットボリュームを特定する。このスナップショットボリュームに格納されているスナップショットが基底ボリュームとなる。最後にCPU1230は、基底SSフラグ8006に「TRUE」を設定する。
次に、CPU1230は、基底スナップショットの格納場所を判定する(ステップ19050)。前記特定した基底スナップショットを格納するスナップショットボリュームの管理筺体ID7005がリカバリ実行主体ストレージ装置を示すものであれば、ステップ19060をスキップする。一方、外部ストレージ装置を示すものであれば、ステップ19060に進む。
基底スナップショットが外部ストレージ装置に格納されている場合、CPU1230は、外部スナップショットボリュームを外部接続する(ステップ19060)。ここでは、まず、CPU1230は外部スナップショットボリュームに関するパス情報を外部ストレージ装置から取得する。その後、CPU1230は、そのパス情報と外部ストレージの識別子、外部スナップショットボリュームの識別子を元に外部接続を行うようにリカバリ実行主体ストレージ装置に要求する。
次に、CPU1230は、外部ストレージ装置に格納されたジャーナルがリカバリに必要であるかを判定する(ステップ19070)。この処理では、CPU1230は、前記ジャーナル連結情報のリストを用い、基底スナップショットの取得時刻と指定されたリカバリ時刻の間に作成されたジャーナルを格納しているストレージ装置を特定することで、上記判定を行う。
外部ストレージ装置に格納されたジャーナルが必要な場合、CPU1230は外部ジャーナルボリュームを外部接続する(ステップ19080)。ここでは、CPU1230は、前記ジャーナル連結情報のリストを用い、当該ジャーナルを格納するストレージ装置と当該ジャーナルの適用先データボリュームが属するジャーナルグループを特定する。次に、CPU1230は、特定したジャーナルグループに関連付けられたジャーナルボリュームを特定する。その後、CPU1230は、前記特定したジャーナルボリュームのパス情報をストレージ装置から取得し、この情報を元に外部接続を行うようにリカバリ実行主体ストレージ装置に要求する。
次に、CPU1230は、CLIで入力されたリカバリ要求内容、CDP関連情報、ステップ19030にて作成したジャーナル連結情報リストをリカバリ実行主体ストレージ装置に送信し、リカバリ実行主体ストレージ装置にリカバリを要求する(ステップ19090)。この要求を受け付けたストレージマイクロプログラム1028によるCPU1028の動作は後述する。
リカバリが完了したら、CPU1230は、本処理において外部接続した外部ジャーナルボリューム、外部スナップショットボリュームの外部接続の解除をリカバリ実行主体ストレージ装置に要求し(ステップ19100)、処理を終了する。以上がリカバリ命令を受け付けたCDP管理プログラム1252の動作である。
なお、本実施形態では、ジャーナルの生成時刻やスナップショットの生成時刻を、ストレージ装置のタイマ1024から取得しているため、ストレージ装置間でタイマ1024が正確に一致している必要がある。これが保証できない場合は、ホスト計算機1100からのI/O要求やスナップショット取得要求に含まれている時刻を用いて、ジャーナルの生成時刻やスナップショットの取得時刻を設定することもできる。また、別の実施形態として、運用中にアプリケーション1165を静止化させてから、リカバリポイントとして指定する点、すなわち、関連する全ストレージ装置に対しマーカを発行し、静止化を解除することが考えられる。このマーカをリカバリポイントとすることより、ストレージ装置間のリカバリポイントを、タイマ1024に依存せず、一致させることができる。この技術は、特開2005-190456号公報に記載されている。
図17は、上記ステップ19090にて、リカバリ命令を受け付けたストレージマイクロプログラム1028によるCPU1023の処理の流れである。まず、CPU1023は、ステップ19090にて受け付けたCDP関連情報から、基底SSフラグ8006が「TRUE」となっているSSVOLグループを検索し、その格納ストレージ装置を特定する(ステップ20020)。
基底スナップショット格納ストレージ装置がリカバリ実行主体ストレージ装置である場合、CPU1023は、ステップ19045と同様の方法で基底スナップショット格納ボリュームを特定し、リカバリ先論理ボリュームに基底スナップショットをコピーする(ステップ20030)。
一方、基底スナップショット格納ストレージ装置が外部ストレージ装置である場合、仮想ボリュームからリカバリ先論理ボリュームへ基底スナップショットをコピーする(ステップ20040)。ここではまず、CPU1023は、ステップ19045と同様の方法でスナップショット格納ボリュームを特定する。次に、CPU1023は、当該スナップショット格納ボリュームの識別子と外部ストレージ装置の識別子を用い、対応する仮想ボリューム管理テーブルから仮想ボリュームを特定し、上記基底スナップショットのコピーを行う。
次に、CPU1023は、指定された時刻のデータのリカバリが完了したか否かを判定する(ステップ20050)。リカバリが完了している場合は、ステップ20010にてマージしたCDP管理情報を削除し(ステップ20060)、処理を終了する。
一方、リカバリされていない場合、CPU1023は、次に読み込むジャーナルとその格納ストレージ装置を特定する(ステップ20070)。この特定処理の流れは、当該リカバリ処理におけるジャーナル読み出しの有無により異なる。当該処理に関しては後述する。
次に、CPU1023は、次に読み込むジャーナルの格納ストレージ装置により処理を分岐させる(ステップ20080)。次に読み込むジャーナルが外部ストレージ装置に格納されている場合、CPU1023は、仮想ボリュームからジャーナルを読み込む(ステップ20100)。ここでは、まず、CPU1023は、前記ジャーナル連結情報のリストから、次に読み込むジャーナル作成時点のデータボリュームが属していたジャーナルグループを特定する。
次に、CPU1023は、当該ジャーナルグループに関連付けられたジャーナルボリュームを特定する。次に、CPU1023は、当該ジャーナルボリュームの識別子と外部ストレージ装置の識別子を用い、仮想ボリュームテーブル4000から対応する仮想ボリュームを特定する。次に、CPU1023は、当該仮想ボリュームから次に読み込むジャーナルを検索して、読み出す。なお、本ステップでは、前記特許文献4の外部接続技術の利用を前提に「仮想ボリュームからジャーナルを読み出す」と単純に記述しているが、本ジャーナルの取得方法はこれに限定されるものではない。たとえば、次のような方法でもジャーナルを取得可能である。まず、CPU1023は、外部ジャーナルボリュームが属する外部ストレージ装置を仮想ボリューム管理テーブルから特定する。
次に、CPU1023は、外部ジャーナルボリュームの識別子とジャーナルの格納アドレスをキーとして、管理ネットワークあるいはデータネットワークを介して、当該外部ストレージ装置へジャーナルを問い合わせる。このようにジャーナルを取得することも可能である。
このジャーナルの作成時刻におけるリカバリ対象データボリュームの移行元データボリュームが、読み出したジャーナルの適用先データボリュームと一致するか判定する(ステップ20110)。一致する場合、本ジャーナルを適用し(ステップ20120)、ステップ20050へ進む。一致しない場合は、ステップ20120をスキップする。
リカバリ実行主体ストレージ装置内のジャーナルを用いる場合は、CPU1023はジャーナルボリュームからジャーナルを読み込む(ステップ20090)。その後上記ステップ20110に進む。
図18のうち、(18A)及び(18B)は、CPU1023の前記ステップ20070における処理の流れを示したものである。まず、18Aについて説明する。本処理は、Afterジャーナルを利用してリカバリする際のCPU1023による、次に読み込むジャーナルを格納するストレージ装置に対する特定処理である。
まず、CPU1023は、本リカバリ処理においてジャーナルを一度でも読み込んだことがあるかを判定し(ステップ21010)、読み込んでいない場合はコピーしたスナップショットがジャーナル連結情報の連結元になっているかを判定する(ステップ21020)。連結元となっていない場合、コピーしたスナップショットと同一のストレージ装置に格納された、次の順序番号を持つジャーナルを次に読み込むものと特定する(ステップ21030)。連結元となっている場合、当該ジャーナル連結情報の移行先ストレージ装置に格納された連結先ジャーナルを次に読み込むものと特定する(ステップ21040)。
一方、ステップ21010の判定において、読み込み後と判定した場合、直前に読み込んだジャーナルがジャーナル連結情報の連結元になっているかを判定する(ステップ21050)。連結元となっていない場合、直前に読み込んだジャーナルと同一のストレージ装置に格納された、次の順序番号を持つジャーナルを次に読み込むものと特定する(ステップ21060)。連結元となっている場合、当該ジャーナル連結情報の移行先ストレージ装置に格納された連結先ジャーナルを次に読み込むものと特定する(ステップ21040)。
次に、18Bについて説明する。本処理は、Beforeジャーナルを利用してリカバリする際のCPU1023による次に読み込むジャーナルとその格納ストレージ装置に対する特定処理である。
まず、CPU1023は、本リカバリ処理においてジャーナルを一度でも読み込んだことがあるかを判定し(ステップ21110)、読み込んでいない場合はコピーしたスナップショットと同一のストレージ装置に格納された、スナップショットと同一順序番号を持つジャーナルを次に読み込むものと特定する(ステップ21120)。
一方、ステップ21110の判定において、読み込み後と判定した場合、直前に読み込んだジャーナルがジャーナル連結情報の連結先になっているかを判定する(ステップ21130)。連結先となっていない場合、直前に読み込んだジャーナルと同一のストレージ装置に格納された、一つ前の順序番号を持つジャーナルを次に読み込むものと特定する(ステップ21150)。連結先となっている場合、当該ジャーナル連結情報の移行先ストレージ装置に格納された連結先ジャーナルを次に読み込むものと特定する(ステップ21140)。以上が、リカバリ処理の流れである。
以上が実施形態1の説明である。この実施形態によれば、ストレージ装置間でのデータボリューム移行後であっても、ジャーナルを用いたリカバリを行うことができる。また、ジャーナリングを用いたバックアップ及びリストアでは、スナップショット及びジャーナルは時間の経過とともに古いものから削除されるため、スナップショット及びジャーナルは一定時間経過の後に移行先に集約される。よって、明示的にスナップショット及びジャーナルを移行させる必要が無く、ストレージ装置のCPU負荷や転送路の負荷などのコストを省くことができる。
実施形態2
次に第2の実施形態について説明する。本実施形態では、第1のストレージ装置が外部接続機能を用いて外部ストレージ装置のボリュームを仮想化し、当該仮想ボリュームを、ジャーナルグループを構成するデータボリューム(以降、「仮想データボリューム」と呼ぶ)として第1のストレージ装置内で用いている。この構成において、前記外部ストレージ装置の同一ボリュームを第2のストレージ装置にも外部接続し、仮想データボリュームを作成することにより、仮想データボリュームをストレージ装置間で移行させることができる。しかし、この場合にも、当該仮想データボリュームに関連するジャーナルとスナップショットがストレージ装置間に分散し、ジャーナリングを用いたリカバリができなくなるという問題がある。本発明は、このような構成に適用できるものであることを、本実施形態を用いて説明する。
(1)実施形態2のシステム構成
図19は、本実施形態のストレージ装置の構成を示すブロック図である。この構成は、実施形態1の構成とほぼ同等であるため、以降は相違点のみを説明することとする。
図19のシステムには、新たにニアラインストレージ装置1500が追加されている。ニアラインストレージ装置1500は、データネットワーク1300を介して、ストレージ装置1000、ホスト計算機1100と接続されている。また、ニアラインストレージ装置1500は、管理ネットワーク1400を介してストレージ装置1000、ホスト計算機1100、管理計算機1200と接続されている。本実施形態では、説明の簡単化のためニアラインストレージ装置1500を1台しか示されていないが、1台以上でもかまわない。ニアラインストレージ装置1500は、ディスクコントローラ1520及びディスク装置1510を備えている。
ディスク装置1510の基本的な機能はディスク装置1010と同等である。ディスク装置1510は、論理ボリューム1516を格納する。論理ボリューム1516は、他のストレージ装置の外部接続機能により外部ボリュームとして利用される。
このディスクコントローラ1520の構成はディスクコントローラ1020と同等である。ただし、メモリ内部のストレージマイクロプログラム1028の機能は、ジャーナリングを用いたバックアップ及びリカバリの各種機能、他ストレージ装置へのデータをコピーする機能、外部接続機能などは必須ではない。
また、ストレージ装置1000のジャーナルグループ1014がデータボリューム1011ではなく、仮想データボリューム1016で構成されている。この仮想データボリューム1016は、ニアラインストレージ1500の論理ボリューム1516を外部接続機能により仮想化したボリュームである。このため、ジャーナルグループ1014は、ディスク装置1010上に存在するわけではなく、ディスクコントローラ1020のメモリ上に仮想的に構成される。
ホスト計算機1100から送信されてきた仮想データボリューム1016への書き込み要求は、ストレージマイクロプログラム1028により処理され、前記仮想データボリューム1016に対応する論理ボリューム1516に反映される。この際、ストレージマイクロプログラム1028は、書き込むデータをAfterジャーナル、上書きされる箇所のデータをBeforeジャーナルとし、送信されてきた順序に従って順序番号を割り振るなどの適切なメタデータを付与し、ジャーナルグループ1014に関連付けられたジャーナルボリューム1013に格納する。
図20は、論理ボリューム管理テーブルの一例を示したものである。当該テーブルは、実施形態1とは異なり、データコピー中フラグ2003及びコピー進捗ポインタを必須としていない。そして、新たにキャッシュスルーフラグ22001が追加される。当該キャッシュスルーフラグは、管理対象論理ボリュームに対する書き込み要求のバッファリングを有効にするか否かを示す値を格納する。具体的には、「off」が設定されている場合はバッファリングが有効となっていることを示す。「on」が設定されている場合はバッファリングを行わず、書き込み要求は直ちに論理ボリュームに反映される。
(2)実施形態2の動作
動作の大部分は実施形態1の動作と同じであるため、以降は相違点のみを説明する。図21は、管理者が、仮想データボリュームの移行を要求したときのボリューム移行管理プログラム1251によるCPU1230の処理の流れである。
まず、CPU1230は、ボリューム移行管理プログラム1251は移行元ストレージ装置から、移行元仮想データボリュームに関する情報を取得する(ステップ23010)。具体的には、論理ボリューム管理テーブル及び仮想ボリュームテーブルである。
次に、CPU1230は、取得した情報から指定された移動元仮想データボリュームに対応する外部ボリュームの情報を特定する(ステップ23020)。ここでは、コマンドで指定された移行元仮想データボリュームに対応する仮想ボリュームを論理ボリューム管理テーブル2000から検索する。その後、仮想ボリューム管理テーブル4000から、当該仮想ボリュームの外部ストレージ装置ID4003、外部ボリュームパス4004、論理ボリュームID4005を特定する。
次に、CPU1230は、特定した外部ボリュームの情報を用い、移行先ストレージ装置に外部ボリュームを外部接続し、論理ボリュームとして認識するように要求する(ステップ23030)。次に、CPU1230は、作成した論理ボリュームに対してパスを設定する。(ステップ23040)。次に、CPU1230は、作成した論理ボリュームを移行先ジャーナルグループへ追加する(ステップ23050)。
次に、CPU1230は、作成した仮想データボリュームをホストに認識させる。(ステップ23060)。ここでは、CPU120は、ヒューレットパッカード社のUNIX(登録商標)オペレーティングシステムの「IOSCAN」等を実行する。
次に、CPU1230は、移行元ストレージ装置に対して、移行元仮想データボリュームへの書き込み要求をキャッシュスルーするように要求する(ステップ23070)。この要求を受け付けたストレージマイクロプログラム1028に従って動作するCPU1023は論理ボリューム管理テーブル2000のキャッシュスルーフラグを「on」にする。
その後、CPU1230は、移行元仮想データボリュームのキャッシュが全てデステージされるまで待機する(ステップ23080)。このデステージ完了確認は、CPU1230が定期的に移行元ストレージ装置に確認しても良いし、ストレージマイクロプログラム1028によるCPU1023が完了をボリューム移行管理プログラム1251に通知しても良い。
ステップ14060〜14120は実施形態1と同等なので説明を省略する。ステップ14120で、ジャーナル連結情報を作成した後に、CPU1230は移行元ストレージ装置に移行元仮想データボリュームをジャーナルグループから削除し、外部接続を解除する(ステップ23090)。以上が、本実施形態における仮想データボリュームの移行処理の流れである。
図22は、移行中の仮想データボリュームへのI/O要求を受け取ったストレージマイクロプログラム1028によるCPU1023の処理の流れである。まず、CPU1023は、キャッシュスルー属性が「on」となっている仮想データボリュームへのI/Oを受け取る(ステップ24010)。これは、論理ボリューム管理テーブルのキャッシュスルーフラグ22001を参照すれば判断可能である。
次に、CPU1023は本I/O要求がライト要求であるかを判定する(ステップ24020)。リード要求である場合は、CPU1023は通常のI/O処理を行い(ステップ24080)、I/O要求完了応答を返す(ステップ24070)。
一方、I/O要求がライト要求であった場合は、まず、CPU1023はジャーナルを作成する(ステップ24030)。その後、CPU1023はライトデータをキャッシュに格納する(ステップ24040)。このキャッシュとはデータ読み込みを高速化するためのキャッシュである。その後、CPU1023は外部ボリュームに当該ライト要求を外部ボリュームへ反映させる(24050)。その後、CPU1023は前記キャッシュに格納したライトデータの管理情報に外部ボリュームへ反映済みであることを設定する(ステップ24060)。最後にCPU1023はI/O要求完了の応答をして(ステップ24070)処理を終了する。
以上が実施形態2の説明である。この実施形態によれば、ストレージ装置間での仮想データボリューム移行後であっても、ジャーナルを用いたリカバリを行うことができる。
また、ジャーナリングを用いたバックアップ及びリストアでは、スナップショット及びジャーナルは時間の経過とともに古いものから削除されるため、スナップショット及びジャーナルは一定時間経過の後に移行先に集約される。よって、明示的にスナップショット及びジャーナルを移行させる必要が無く、ストレージ装置のCPU負荷や転送路の負荷などのコストを省くことができる。
実施形態3
次に第3の実施形態について説明する。この実施形態は、ジャーナルグループを構成するデータボリュームが仮想ボリューム(仮想データボリューム)であることに加え、SSVOLグループを構成するスナップショットボリューム及びジャーナルボリュームも仮想ボリュームである構成を採用している。以後、前記スナップショットボリュームとしての仮想ボリュームを仮想スナップショットボリューム、前記ジャーナルボリュームとしての仮想ボリュームを仮想ジャーナルボリュームと呼ぶ。
(1)実施形態3のシステム構成
図23は、ストレージ装置の構成を示すブロック図である。本構成の大部分は実施形態2の構成と同等であるため、以降は相違点のみを説明する。ストレージ装置1000のSSVOLグループ1015を、スナップショットボリューム1012ではなく、仮想スナップショットボリューム1017から構成している。この仮想スナップショットボリューム1016は、ニアラインストレージ1500の論理ボリューム1516を外部接続により仮想化したボリュームである。このため、SSVOLグループ1014は、ディスク装置1010上に存在するわけではなく、メモリ上に仮想的に構成される。
また、ストレージ装置1000には、ジャーナルボリューム1013ではなく、仮想ジャーナルボリューム1018が備わっている。この仮想ジャーナルボリューム1018は、ニアラインストレージ1500の論理ボリューム1516を外部接続により仮想化したボリュームである。このため、仮想ジャーナルボリューム1018は、ディスク装置1010上に存在するわけではなく、ディスクコントローラ1020のメモリ上に仮想的に構成される。
図24は、本実施形態における論理ボリューム管理テーブルの一例を示したものである。当該テーブルは、実施形態2とは異なり、新たに管理筺体ID24001が追加される。本値に関しては、管理筺体ID5008と同様である。
図25は、本実施形態における仮想ボリューム管理テーブルの一例を示したものである。当該テーブルは、実施形態2とは異なり、新たに管理筺体ID25001が追加される。本値に関しては、管理筺体ID5008と同様である。
(2)実施形態3の動作
本実施形態の動作の大部分は実施形態2の動作と同じであるため、以降は相違点のみを説明する。図24は、CDP管理プログラム1252に従って動作するCPU1230の、リカバリのコマンドを受け付けた時の処理の流れである。
まず、CPU1230は、ステップ19010〜ステップ19030まで実施形態2と同様の動作を行う。その後、CPU1230は、関連ストレージ装置からCDP関連情報を取得する(ステップ26040)。このCDP関連情報は、実施形態2で取得する情報に加え、論理ボリューム管理テーブルと仮想ボリューム管理テーブルも含む。このとき、CPU1230は、管理筺体ID24001、管理筺体ID25001に取得元ストレージ装置の識別子を設定する。
次に、基底スナップショットが格納されているスナップショットボリュームが、リカバリ実行主体ストレージ装置の仮想ボリュームであるか、外部ストレージ装置の仮想ボリュームであるかを判断する(ステップ26050)。
外部ストレージ装置の仮想ボリュームである場合は、当該仮想ボリュームに対応する外部ボリュームの情報を用い、リカバリ実行主体ストレージ装置に外部接続をするように要求する(ステップ26060)。次に、外部ストレージ装置に定義された仮想ボリュームに格納されたジャーナルが必要であるかを判断する(ステップ26070)。
外部ストレージ装置の仮想ボリュームに格納されたジャーナルが必要な場合は、当該仮想ボリュームに対応する外部ボリュームの情報を用い、リカバリ実行主体ストレージ装置に外部接続をするように要求する(ステップ26080)。以後は、実施形態2と同様の動作を行う。
次に、上記ステップ19090にて、リカバリ命令を受け付けたストレージマイクロプログラム1028によるCPU1023の処理の流れを説明する。本処理は実施形態2とほぼ同等なので、図17を用いて相違点のみ説明する。
ステップ20040では、CPU1023は基底スナップショットを格納する仮想ボリュームからスナップショットをコピーする。このとき、CPU1023は、ステップ19045と同様の方法で、仮想スナップショットボリュームを特定し、その識別子と格納ストレージ装置の識別子を用いて、論理ボリューム管理テーブル2000及び仮想ボリューム管理テーブル4000から、ニアラインストレージ1500の識別子及びスナップショットを格納するボリュームの識別子を取得する。CPU1023は、これらの値を元に対応する仮想ボリュームを特定し、コピーを行う。
なお、本ステップでは、前記特許文献4の外部接続技術の利用を前提に「仮想ボリュームからリカバリ先論理ボリュームへの基底スナップショットをコピーする」と単純に記述しているが、本コピー方法はこれに限定されるものではない。たとえば、次のような方法でもコピーは可能である。まず、CPU1023は、基底スナップショットを格納する外部スナップショットボリュームが属する外部ストレージ装置を、仮想ボリューム管理テーブルから特定する。次にCPU1023は、当該外部スナップショットボリュームの識別子をキーとして、管理ネットワークあるいはデータネットワークを介して、当該外部ストレージ装置から基底スナップショットのデータを取得し、そのデータをリカバリ先論理ボリュームへコピーすることも可能である。
また、ステップ20100では、CPU1023は、外部ストレージ装置の識別子とジャーナルボリュームの識別子から、仮想ジャーナルボリュームを特定する。当該ボリュームの識別子と外部ストレージ装置の識別子を用い、論理ボリューム管理テーブル2000及び仮想ボリューム管理テーブル4000から、対応する外部ボリュームの情報、つまり、ニアラインストレージ1500の識別子及び当該ニアラインストレージ1500におけるジャーナルボリュームの識別子を取得する。CPU1023は、これらの値を元にジャーナルを格納する仮想ボリュームを特定し、コピーを行う。
以上が実施形態3の説明である。当該実施形態3によれば、仮想ボリュームにジャーナル及びスナップショットを格納するように構成されたジャーナリングを用いたバックアップ及びリカバリシステムにおいて、ストレージ装置間での仮想データボリューム移行後であっても、ジャーナルを用いたリカバリを行うことができる。
また、ジャーナリングを用いたバックアップ及びリストアでは、スナップショット及びジャーナルは時間の経過とともに古いものから削除されるため、スナップショット及びジャーナルは一定時間経過の後に移行先に集約される。よって、明示的にスナップショット及びジャーナルを移行させる必要が無く、ストレージ装置のCPU負荷や転送路の負荷などのコストを省くことができる。
実施形態1におけるシステム構成を示す図である。 実施形態1における論理ボリューム管理テーブルの一例を示す図である。 実施形態1におけるパス管理テーブルの一例を示す図である。 実施形態1における仮想ボリューム管理テーブルの一例を示す図である。 実施形態1におけるジャーナルグループテーブルの一例を示す図である。 実施形態1におけるデータボリュームテーブルの一例を示す図である。 実施形態1におけるスナップショットボリュームテーブルの一例を示す図である。 実施形態1におけるスナップショットグループテーブルの一例を示す図である。 実施形態1におけるジャーナルボリュームテーブルの一例を示す図である。 実施形態1におけるジャーナルの構成の一例を示す図である。 実施形態1におけるストレージテーブルの一例を示す図である。 実施形態1におけるジャーナル連結情報テーブルの一例を示す図である。 実施形態1におけるボリューム移行管理プログラム1251のデータボリューム移行処理動作の一例を示す図である。 実施形態1におけるボリューム移行管理プログラム1251のジャーナル連結情報の更新処理動作の一例を示す図である。 実施形態1におけるボリューム移行管理プログラム1251のデータボリューム削除処理動作の一例を示す図である。 実施形態1におけるCDP管理プログラム1252のリカバリ実行処理動作の一例を示す図である。 実施形態1におけるストレージマイクロプログラム1028のリカバリ実行処理動作の一例を示す図である。 実施形態1におけるストレージマイクロプログラム1028の、Afterジャーナルを用いたリカバリにおける次に読み込むジャーナルの特定処理の一例を示す図である。 実施形態1におけるストレージマイクロプログラム1028の、Beforeジャーナルを用いたリカバリにおける次に読み込むジャーナルの特定処理の一例を示す図である。 実施形態2におけるシステム構成を示す図である。 実施形態2における論理ボリューム管理テーブルの一例を示す図である。 実施形態2におけるボリューム移行管理プログラム1251のデータボリューム移行処理動作の一例を示す図である。 実施形態2におけるストレージマイクロプログラム1028のデータボリューム移行に伴うデータコピー処理中に受け付けたI/O要求処理動作の一例を示す図である。 実施形態3におけるシステム構成を示す図である。 実施形態3における論理ボリューム管理テーブルの一例を示す図である。 実施形態3における仮想ボリューム管理テーブルの一例を示す図である。 実施形態3におけるCDP管理プログラム1252のリカバリ実行処理動作の一例を示す図である。
符号の説明
1000,1000A:ストレージ装置、1011:データボリューム、1012:スナップショットボリューム、1100:ホスト計算機、1200:管理計算機



Claims (17)

  1. 一つ又は複数のホスト計算機が利用するデータを格納するデータボリュームと、当該データボリュームへの前記ホスト計算機からの書き込み情報をジャーナルとして保持するジャーナルボリュームと、を備える記憶デバイスと、
    前記記憶デバイスを制御するコントローラと、を備え、
    前記コントローラは、前記データボリュームのリカバリ時にリカバリポイントで取得された、前記データボリュームのデータイメージを基底にして、前記データイメージに前記ジャーナルを適用することでリカバリを行う、計算機システムにおいて、
    前記コントローラは、前記データボリュームのうち、あるデータボリュームのデータを他のデータボリュームに移行させ、移行先のデータボリュームのリカバリを行なう場合、移行元のデータボリュームに割り当てられた前記ジャーナルボリュームの前記ジャーナルにアクセスして、前記移行先のデータボリュームのリカバリを行う、計算機システム。
  2. 前記データイメージが、前記リカバリポイントの近傍の時点で取得された、前記データボリュームのスナップショットである、請求項1記載の計算機システム。
  3. 第1のストレージ装置と、当該第1のストレージ装置に接続する第2のストレージ装置とを備え、前記第1及び第2のストレージ装置は、それぞれ前記記憶デバイスと、前記コントローラを備え、
    前記移行元データボリュームは前記第1のストレージ内に構成され、前記移行先データボリュームは前記第2のストレージ装置に構成され、
    前記第2のストレージ装置の前記コントローラが前記移行元データボリュームに割り当てられた前記ジャーナルボリュームにアクセスする、
    請求項1記載の計算機システム。
  4. 前記第2のストレージ装置は仮想ボリュームを備え、当該仮想ボリュームと前記第1のストレージ装置の前記移行元ボリュームに対して割り当てられたジャーナルボリュームとの間に形成されたパスを介して、前記第2のストレージ装置のコントローラは、前記仮想ボリュームにアクセスすることにより、前記第1のストレージ装置の前記ジャーナルボリュームのジャーナルデータを取得する請求項3記載の計算機システム。
  5. 前記第2のストレージ装置のコントローラは、前記移行先データボリュームのデータイメージと、前記第1のストレージ装置の前記データ移行前のジャーナルとに基づいて、リカバリを実行する、請求項1記載の計算機システム。
  6. ホスト計算機が利用するデータが格納されるデータボリュームと、
    前記データボリュームへの前記ホスト計算機からの書込み情報をジャーナルとして保持するジャーナルボリュームと、
    前記データボリュームのリカバリ時にリカバリポイントにおいて取得された、前記データボリュームのデータイメージを基底にして、当該データイメージに前記ジャーナルを適用して前記リカバリを行うリカバリ制御部と、
    それぞれ前記データボリュームを備える複数のストレージ装置を備え、これら複数のストレー装置の前記データボリューム間での前記データの移行を制御する、データ移行制御部と、
    前記複数のストレージ装置のうち、一方のストレージ装置から他方のストレージ装置のボリュームへI/O要求を発行する接続制御部と、
    前記複数のストレージ装置を管理情報に基づいて制御する管理計算機と、を備え、
    前記管理計算機は、前記複数のストレージ装置のデータボリューム同士の間で前記データ移行を行う際、前記データ移行元のストレージ装置の前記データボリュームに関して取得されるジャーナルと、データ移行先のストレージ装置の前記データボリュームに関して取得されるジャーナルとを連続させた連続管理情報を作成する、計算機システム。
  7. 前記データイメージがスナップショットである、請求項6記載の計算機システム。
  8. 前記管理計算機は、前記リカバリを実行するストレージ装置を決定し、このストレージ装置が当該リカバリに必要な前記スナップショット及び/又は前記ジャーナルを有していない場合には、前記連続管理情報に基づいて、前記スナップショット及び/又は前記ジャーナルを備えている前記ストレージ装置を特定し、当該ストレージ装置にアクセスして、前記スナップショット及び/又は前記ジャーナルを取得するよう、前記リカバリを実行するストレージ装置の前記接続制御部に要求する、請求項7記載の計算機システム。
  9. 前記管理計算機は、前記リカバリに必要な前記スナップショット及び/又はジャーナルを格納するストレージ装置が、リカバリを行うストレージ装置でない場合、前記リカバリを実行するストレージ装置に、前記前記スナップショット及び/又はジャーナル取得するために、他のストレージ装置にアクセスするパスを設定する、請求項8記載の計算機システム。
  10. 前記管理計算機は、前記ストレージ装置の前記ジャーナルボリュームから定期的に前記ジャーナル情報を収集し、前記連続管理情報を構成する前記ジャーナルが削除されていた場合、当該連続管理情報をメモリから削除する、請求項6記載の計算機システム。
  11. 前記管理計算機は、前記データ移行先のデータボリュームを有するストレージ装置が前記リカバリを実行するように要求し、さらに当該ストレージ装置に前記データの移行元のデータボリュームに対する前記ジャーナルを取得するように、このジャーナルを有する他のストレージ装置にアクセスするよう要求し、前記リカバリを実行するストレージ装置は、前記データ移行先のデータボリュームのスナップショットと、前記他のストレージ装置の前記ジャーナルに基づいて、前記データの移行以前のリカバリポイントでリカバリを実行する、請求項8記載の計算機システム。
  12. ホスト計算機が利用するデータが格納されるデータボリュームと、
    前記データボリュームへの前記ホスト計算機からの書込み情報をジャーナルとして保持するジャーナルボリュームと、
    前記データボリュームのリカバリ時にリカバリポイントにおいて取得された、前記データボリュームのデータイメージを基底にして、当該データイメージに前記ジャーナルを適用して前記リカバリを行うリカバリ制御部と、
    それぞれ前記データボリュームを備える複数のストレージ装置を備え、これら複数のストレー装置の前記データボリューム間での前記データの移行を制御する、データ移行制御部と、
    前記複数のストレージ装置のうち、一方のストレージ装置から他方のストレージ装置のボリュームへI/O要求を発行する接続制御部と、
    を備える計算システムに接続され、前記第1及び第2のストレージ装置を管理情報に基づいて制御する管理計算機であって、
    前記複数のストレージ装置のデータボリューム同士の間で前記データ移行を行う際、前記データ移行元のストレージ装置の前記データボリュームに関して取得されるジャーナルと、データ移行先のストレージ装置の前記データボリュームに関して取得されるジャーナルとを連続させた連続管理情報を作成する、よう構成された管理計算機。
  13. 前記データイメージがスナップショットである、請求項12記載の管理計算機。
  14. 前記リカバリを実行するストレージ装置を決定し、このストレージ装置が当該リカバリに必要な前記スナップショット及び/又は前記ジャーナルを有していない場合には、前記連続管理情報に基づいて、前記スナップショット及び/又は前記ジャーナルを備えている、前記ストレージ装置を特定し、当該ストレージ装置にアクセスして、前記スナップショット及び/又は前記ジャーナルを取得するよう、前記リカバリを実行するストレージ装置の前記接続制御部に要求する、請求項13記載の管理計算機。
  15. ホスト計算機が利用するデータが格納されるデータボリュームと、
    前記データボリュームへの前記ホスト計算機からの書込み情報をジャーナルとして保持するジャーナルボリュームと、
    前記データボリュームのリカバリ時にリカバリポイントにおいて取得された、前記データボリュームのデータイメージを基底にして、当該データイメージに前記ジャーナルを適用して前記リカバリを行うリカバリ制御部と、
    それぞれ前記データボリュームを備える複数のストレージ装置を備え、これら複数のストレー装置の前記データボリューム間での前記データの移行を制御する、データ移行制御部と、
    前記複数のストレージ装置のうち、一方のストレージ装置から他方のストレージ装置のボリュームへI/O要求を発行する接続制御部と、
    を備える計算システムを、管理装置が管理情報を用いて制御する、データのリカバリ管理方法であって、
    前記管理装置は、前記複数のストレージ装置のデータボリューム同士の間で前記データの移行を行う際、前記データの移行元のストレージ装置の前記データボリュームに関して取得されるジャーナルと、データの移行先のストレージ装置の前記データボリュームに関して取得されるジャーナルとを連続させた連続管理情報を作成し、前記連結管理情報に基づいて前記リカバリ制御に前記リカバリを実行することを要求する、データのリカバリ管理方法。
  16. 前記データイメージがスナップショットである、請求項15記載の方法。
  17. 前記リカバリを実行するストレージ装置を決定し、このストレージ装置が当該リカバリに必要な前記スナップショット及び/又は前記ジャーナルを有していない場合には、前記連続管理情報に基づいて、前記スナップショット及び/又は前記ジャーナルを備えている、前記ストレージ装置を特定し、当該ストレージ装置にアクセスして、前記スナップショット及び/又は前記ジャーナルを取得するよう、前記リカバリを実行するストレージ装置の前記接続制御部に要求する、請求項16記載の方法。

JP2006044416A 2006-02-21 2006-02-21 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法 Pending JP2007226347A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006044416A JP2007226347A (ja) 2006-02-21 2006-02-21 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
US11/401,259 US20070198604A1 (en) 2006-02-21 2006-04-11 Computer system, computer system management console, and data recovery management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006044416A JP2007226347A (ja) 2006-02-21 2006-02-21 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法

Publications (1)

Publication Number Publication Date
JP2007226347A true JP2007226347A (ja) 2007-09-06

Family

ID=38429641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006044416A Pending JP2007226347A (ja) 2006-02-21 2006-02-21 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法

Country Status (2)

Country Link
US (1) US20070198604A1 (ja)
JP (1) JP2007226347A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055314A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd 計算機システム及びそのバックアップ方法
JP2010079526A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ジャーナルの階層を管理する計算機システム及び方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536529B1 (en) 2005-06-10 2009-05-19 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for provisioning space in a data storage system
JP4704893B2 (ja) * 2005-11-15 2011-06-22 株式会社日立製作所 計算機システム及び管理計算機とストレージシステム並びにバックアップ管理方法
US7769723B2 (en) * 2006-04-28 2010-08-03 Netapp, Inc. System and method for providing continuous data protection
US7689597B1 (en) * 2006-05-02 2010-03-30 Emc Corporation Mirrored storage architecture using continuous data protection techniques
US7603395B1 (en) * 2006-05-02 2009-10-13 Emc Corporation Using pseudosnapshots for continuous data protection systems to surface a copy of data
US7971091B1 (en) 2006-05-02 2011-06-28 Emc Corporation Network configuration backup and restore operations using continuous data protection
US7765190B1 (en) * 2006-05-02 2010-07-27 Emc Corporation Pseudosnapshot creation and implementation using continuous data protection
US7509358B1 (en) * 2006-05-02 2009-03-24 Emc Corporation Performing replication operations on continuous data protection systems using pseudosnapshots
JP2008027163A (ja) * 2006-07-20 2008-02-07 Fujitsu Ltd データ記録装置、データ記録プログラムおよびデータ記録方法
JP4236677B2 (ja) * 2006-09-20 2009-03-11 株式会社日立製作所 Cdpを用いたリカバリ方法
US8006061B1 (en) 2007-04-13 2011-08-23 American Megatrends, Inc. Data migration between multiple tiers in a storage system using pivot tables
US8370597B1 (en) 2007-04-13 2013-02-05 American Megatrends, Inc. Data migration between multiple tiers in a storage system using age and frequency statistics
US9495370B1 (en) * 2007-07-19 2016-11-15 American Megatrends, Inc. Data recovery point review in a continuous data protection system
US7921286B2 (en) * 2007-11-14 2011-04-05 Microsoft Corporation Computer initialization for secure kernel
US8706694B2 (en) * 2008-07-15 2014-04-22 American Megatrends, Inc. Continuous data protection of files stored on a remote storage device
US8250031B2 (en) 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
JP5309259B2 (ja) * 2010-03-25 2013-10-09 株式会社日立製作所 ストレージ装置及びその制御方法
EP2633385A1 (en) * 2011-03-02 2013-09-04 Hitachi, Ltd. Computer system and data migration method
US8788459B2 (en) 2012-05-15 2014-07-22 Splunk Inc. Clustering for high availability and disaster recovery
US11003687B2 (en) 2012-05-15 2021-05-11 Splunk, Inc. Executing data searches using generation identifiers
US9130971B2 (en) 2012-05-15 2015-09-08 Splunk, Inc. Site-based search affinity
US10387448B2 (en) 2012-05-15 2019-08-20 Splunk Inc. Replication of summary data in a clustered computing environment
US9037679B2 (en) * 2012-12-31 2015-05-19 Futurewei Technologies, Inc. Efficient high availability storage systems
US10339101B1 (en) * 2015-09-11 2019-07-02 Cohesity, Inc. Distributed write journals that support fast snapshotting for a distributed file system
US11418594B1 (en) * 2021-10-20 2022-08-16 Dell Products L.P. Multi-path layer configured to provide link availability information to storage system for load rebalancing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006011A (ja) * 2001-06-22 2003-01-10 Hitachi Ltd ジャーナルマージ引継ぎ方法
JP2005018738A (ja) * 2003-06-26 2005-01-20 Hitachi Ltd ストレージベースのジャーナリングを用いてバックアップ及びリカバリを行う方法と装置
JP2005038176A (ja) * 2003-07-15 2005-02-10 Nec Corp コンピュータシステムおよびファイル管理方法
JP2005182222A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd リモートコピーシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5403639A (en) * 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
JP3193880B2 (ja) * 1996-12-11 2001-07-30 株式会社日立製作所 データ移行方法
JP3410010B2 (ja) * 1997-12-24 2003-05-26 株式会社日立製作所 サブシステムの移行方法および情報処理システム
JP4183443B2 (ja) * 2002-05-27 2008-11-19 株式会社日立製作所 データ再配置方法及び装置
US7752361B2 (en) * 2002-06-28 2010-07-06 Brocade Communications Systems, Inc. Apparatus and method for data migration in a storage processing device
US6857057B2 (en) * 2002-10-03 2005-02-15 Hewlett-Packard Development Company, L.P. Virtual storage systems and virtual storage system operational methods
US7104139B2 (en) * 2003-06-10 2006-09-12 University Of Massachusetts System and method for load sensing using piezoelectric effect
US7443836B2 (en) * 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US20050015416A1 (en) * 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006011A (ja) * 2001-06-22 2003-01-10 Hitachi Ltd ジャーナルマージ引継ぎ方法
JP2005018738A (ja) * 2003-06-26 2005-01-20 Hitachi Ltd ストレージベースのジャーナリングを用いてバックアップ及びリカバリを行う方法と装置
JP2005038176A (ja) * 2003-07-15 2005-02-10 Nec Corp コンピュータシステムおよびファイル管理方法
JP2005182222A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd リモートコピーシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055314A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd 計算機システム及びそのバックアップ方法
JP2010079526A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ジャーナルの階層を管理する計算機システム及び方法

Also Published As

Publication number Publication date
US20070198604A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
JP2007226347A (ja) 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
US10776315B2 (en) Efficient and flexible organization and management of file metadata
US9727430B2 (en) Failure recovery method in information processing system and information processing system
US8627012B1 (en) System and method for improving cache performance
US8600943B1 (en) Porting replication relationships
US9558205B2 (en) Method for creating clone file, and file system adopting the same
US8930947B1 (en) System and method for live migration of a virtual machine with dedicated cache
US9235524B1 (en) System and method for improving cache performance
US7587564B2 (en) System, method and computer program product for managing data versions
KR101137299B1 (ko) 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리
US11199973B2 (en) Storage system, computer system, and control method for storage system
US8538924B2 (en) Computer system and data access control method for recalling the stubbed file on snapshot
US20050216788A1 (en) Fast backup storage and fast recovery of data (FBSRD)
US20090216973A1 (en) Computer system, storage subsystem, and data management method
US8060711B2 (en) Storage system
JP2004252686A (ja) 情報処理システム
JP2008033912A (ja) Nas向けのcdpの方法および装置
JP4398464B2 (ja) 1つのターゲット・ボリュームと1つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するためのシステム、方法、及びプログラム
JPWO2015162684A1 (ja) ストレージシステムのデータ移行方法
US11579983B2 (en) Snapshot performance optimizations
JP2003330782A (ja) 計算機システム
US9063892B1 (en) Managing restore operations using data less writes
US10936243B2 (en) Storage system and data transfer control method
US9053033B1 (en) System and method for cache content sharing
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080812

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111122