(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信されるデータを格納するボリュームを有し、前記ボリュームに格納されたデータを、ネットワークを介して副ストレージ装置に転送するストレージ装置であって、
ある時刻と別のある時刻の間に前記ボリュームに発生した変更データを保持するスナップショット及び前記副ストレージ装置との間の前記ネットワークの転送可能量を管理者が指定する転送帯域幅と転送可能時間とから取得する、または転送帯域幅と転送可能時間との関係をあらかじめ格納しているスナップショトプログラムが取得する取得部と、
あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、超えた部分のデータをストレージ装置中の前記ボリュームの一部で次回のスナップショットの記憶領域に格納するように制御する制御部と
を備えることを特徴とするストレージ装置。
【請求項２】
前記取得部は、
前記スナップショットの作成時刻を取得し、
前記制御部は、
あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、次にスナップショットを作成するときに、そのスナップショットの大きさが前記転送可能量を超えないように次回のスナップショット作成時刻を変更する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
ホスト装置から送信されるデータを格納するボリュームを有し、前記ボリュームに格納されたデータをネットワークを介して副ストレージ装置に転送するストレージ装置であって、
ある時刻と別のある時刻の間に前記ボリュームに発生した変更データを保持する複数の時刻に作成した各時刻に対応する複数のスナップショット、前記副ストレージ装置との間において転送が完了しているスナップショット及び前記副ストレージ装置との間の前記ネットワークの転送可能量を管理者が指定する転送帯域幅と転送可能時間とから取得する、または転送帯域幅と転送可能時間との関係をあらかじめ格納しているスナップショトプログラムが取得する取得部と、
複数のスナップショットを前記副ストレージ装置に転送するときに、当該転送するスナップショットとすでに転送が完了しているスナップショットとの差分が前記転送可能量を超えないように、当該転送するスナップショットとして前記複数のスナップショットから最新のスナップショットを選択するように制御する制御部と
を備えることを特徴とするストレージ装置。
【請求項４】
ホスト装置から送信されるデータを格納するボリュームを有し、前記ボリュームに格納されたデータをネットワークを介して副ストレージ装置に転送するストレージ装置の制御方法であって、
取得部が、ある時刻と別のある時刻の間に前記ボリュームに発生した変更データを保持するスナップショット及び前記副ストレージ装置との間の前記ネットワークの転送可能量を、管理者が指定する転送帯域幅と転送可能時間とから取得する、または転送帯域幅と転送可能時間との関係をあらかじめ格納しているスナップショトプログラムが取得する第１のステップと、
制御部が、あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、超えた部分のデータをストレージ装置中の前記ボリュームの一部で次回のスナップショットの記憶領域に格納するように制御する第２のステップと
を備えることを特徴とするストレージ装置の制御方法。
【請求項５】
前記第１のステップでは、
前記スナップショットの作成時刻を取得し、
前記第２のステップでは、
あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、次にスナップショットを作成するときに、そのスナップショットの大きさが前記転送可能量を超えないように次回のスナップショット作成時刻を変更する
ことを特徴とする請求項４に記載のストレージ装置の制御方法。
【請求項６】
前記第１のステップでは、
前記副ストレージ装置との間において転送が完了しているスナップショットを取得し、
前記第２のステップでは、
複数のスナップショットを前記副ストレージ装置に転送するときに、当該転送するスナップショットとすでに転送が完了しているスナップショットとの差分が前記転送可能量を超えないように、当該転送するスナップショットとして前記複数のスナップショットから最新のスナップショットを選択する
ことを特徴とする請求項４に記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、特に、２つ以上の計算機間でデータをコピーする機能を持つ計算機システムに関する。
【背景技術】
【０００２】
近年、サーバ毎に格納されていたデータを一つのストレージ装置に集約するストレージコンソリデーションが普及している。ストレージ装置の特徴的な機能の一つにスナップショット機能がある。スナップショット機能は、ある時点にストレージシステムに存在していたデータのイメージ、すなわちスナップショットをストレージ内に保存する一方、スナップショットを保存した後は通常通りデータの読み書きを可能とする機能である。さらに、スナップショットを作成したあとに利用者がデータを更新したとしても、利用者は、ある時点にさかのぼってスナップショットにアクセスすることができるため、例えば利用者がデータを誤って破損した場合のデータ復旧手段として特に有益である。
【０００３】
特許文献１には、主たるストレージ装置で作成したスナップショットを予備のストレージ装置へ転送する技術が公開されている。
【０００４】
さらに、主たるストレージ装置が災害等で使用不能になっても業務を継続できるようにするために、予備のストレージ装置を遠隔地に構築して、それらのストレージ装置の間を回線で接続してデータを転送・復旧する形態も普及している。
【０００５】
特許文献２には、前回転送したスナップショットとこれから転送するスナップショットを比較して、両者の差分のみを転送する方法が記載されている。一般に、データを全て送るよりも前回との差分のみを転送したほうが転送量を少なくすることができる。
【特許文献１】特開２００７−２８６８６０
【特許文献２】米国特許第６９０１４１４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、災害等に備えて主たるストレージ装置から別のストレージ装置へデータを複製している最中は回線負荷が高まることから、回線を利用する通常業務に影響を与えることがある。この影響を防ぐために、管理者は、あらかじめ深夜などに時間を制限して上記の複製処理を実施することが通例である。
【０００７】
しかしながら、ストレージ装置間の回線の帯域幅には上限があるので、上記の制限時間のうちに転送できるデータの量には上限がある。一方、業務によって発生するデータの量は業務内容によって異なるので、場合によっては転送できるデータの量を超えるデータが発生することがある。そうすると、複製処理があらかじめ制限した時間に終わることができなくなるので、通常業務に影響を与える問題が発生する。
【０００８】
また、新規に作成されたファイルは今まで転送されたことがないため、特許文献２の方式のように差分のみを転送するとしても、結局ファイル全体を転送する必要がある。もしそのファイルのサイズが転送できるデータの量を超えていると、特許文献１の方式では上記問題を依然として解決できない、すなわち、ストレージ装置間でデータをコピーする場合に、転送すべきデータの量が転送可能な量を超えると、データを保護することができないという問題がある。
【０００９】
本発明は以上の点を考慮してなされたもので、信頼性の高いストレージ装置及びその制御方法を提案するものである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明においては、ホスト装置から送信されるデータを格納するボリュームを有し、前記ボリュームに格納されたデータをネットワークを介して副ストレージ装置に転送するストレージ装置であって、ある時刻と別のある時刻の間に前記ボリュームに発生した変更データを保持するスナップショット及び前記副ストレージ装置との間の前記ネットワークの転送可能量を管理者が指定する転送帯域幅と転送可能時間とから取得する、または転送帯域幅と転送可能時間との関係をあらかじめ格納しているスナップショトプログラムが取得する取得部と、あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、超えた部分のデータをストレージ装置中の前記ボリュームの一部で次回のスナップショットの記憶領域に格納するように制御する制御部とを備えることを特徴とする。
【００１１】
また、本発明においては、ホスト装置から送信されるデータを格納するボリュームを有し、前記ボリュームに格納されたデータを、ネットワークを介して副ストレージ装置に転送するストレージ装置の制御方法であって、取得部が、ある時刻と別のある時刻の間に前記ボリュームに発生した変更データを保持するスナップショット及び前記副ストレージ装置との間の前記ネットワークの転送可能量を、管理者が指定する転送帯域幅と転送可能時間とから取得する、または転送帯域幅と転送可能時間との関係をあらかじめ格納しているスナップショトプログラムが取得する第１のステップと、制御部が、あるスナップショットを作成するときに、当該スナップショットの大きさが前記転送可能量を超えた場合、超えた部分のデータをストレージ装置中の前記ボリュームの一部で次回のスナップショットの記憶領域に格納するように制御する第２のステップとを備えることを特徴とする。
【００１２】
従って、本発明では、ストレージ装置間でデータを転送する場合に、転送すべきデータの量が転送可能な量を超えたとしても、データを保護することができる。
【発明の効果】
【００１３】
本発明によれば、信頼性の高いストレージ装置及びその制御方法を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、各図を参照して、本発明の実施形態について説明する。
【００１５】
図１は、本発明の計算機システム１の概要を示している。計算機システム１は、クライアント計算機（ホスト装置）２と、主計算機（主ストレージ装置）３と、副計算機（副ストレージ装置）４ａ〜４ｎと、管理計算機５とを備えて構成される。
【００１６】
クライアント計算機２は、ＣＰＵ（Central Processing Unit）、メモリ等の情報処理資源（図示せず）を備えたコンピュータ装置であり、例えば、パーソナルコンピュータや、ワークステーション、メインフレーム等から構成される。また、クライアント計算機２は、データネットワーク６と接続するためのホストバスアダプタ（FC HBA）（図示せず）を備えて構成される。さらに、クライアント計算機２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えて構成される。
【００１７】
主計算機３は、主ボリューム１１Ａと、差分格納ボリューム１２Ａと、管理用インタフェース１３Ａ（以下、管理用Ｉ／Ｆ１３Ａと呼ぶ）と、データ用インタフェース１４Ａ（以下、データ用Ｉ／Ｆ１４Ａと呼ぶ）と、ＣＰＵ１５Ａと、メモリ１６Ａとを備えて構成される。
【００１８】
差分格納ボリューム１２Ａには、コピーオンライト（Copy On Write）テーブル２１Ａ（以下、ＣＯＷテーブル２１Ａと呼ぶ）と、差分領域２２Ａとが配置されている。主ボリューム１１Ａの用途としては、ファイルシステムやデータベースが好適である。メモリ１６Ａには、スナップショットプログラム２３Ａと、リモートコピープログラム２４Ａと、リモートコピー管理テーブル２５Ａとが配置されており、主計算機３は、ＣＰＵ１５Ａを使用してスナップショットプログラム２３Ａとリモートコピープログラム２４Ａとを実行する。
【００１９】
主計算機３と副計算機４ａ〜４ｎ（以下、副計算機４と呼ぶ）は、データネットワーク６を介して接続されている。副計算機４の構成は、管理用Ｉ／Ｆ１３Ａを有していない点を除いて主計算機３の構成と同様である。図１では、副計算機４の各構成要素について、主計算機３の構成要素と同一部分の同一符号に、添え字「Ａ」に代えて添え字「Ｂ」を付している。
【００２０】
また、データネットワーク６には、クライアント計算機２も接続されている。主計算機３は、クライアント計算機２からの要求を受信し、処理結果を送信することができる。データネットワーク６の例としては、イーサネット（登録商標）（Ethernet（登録商標））や、ファイバチャネル（Fibre Channel）が好適である。
【００２１】
主計算機３と管理計算機５は、管理ネットワーク７を介して接続されている。主計算機３は、管理計算機５からの指示を受信し、処理結果を送信することができる。管理ネットワーク６の例としては、イーサネット（登録商標）（Ethernet（登録商標））や、ファイバチャネル（Fibre Channel）が好適である。また、ネットワーク構成を単純にしたい場合には、データネットワーク６と管理ネットワーク７とを兼用してもよい。
【００２２】
図２は、管理計算機５の構成を示している。管理計算機５は、ＣＰＵ３１と、メモリ３２と、インタフェース３３（以下、Ｉ／Ｆ３３と呼ぶ）と、画面３４とを備えて構成される。また、メモリ３２には、管理プログラム３５が配置されている。
【００２３】
管理計算機５は、メモリ３２上の管理プログラム３５を、ＣＰＵ３１を用いて実行して、Ｉ／Ｆ３３を介して管理用ネットワーク６で接続された主計算機３を管理する。また、管理計算機５は、管理者が管理プログラム３５を利用するためのインタフェースとして、画面３４を提供することもできる。
【００２４】
図３は、ＣＯＷテーブル２１Ａの一例である。ＣＯＷテーブル２１Ａは、少なくとも、スナップショットの世代をあらわす軸２１ＡＡと、主ボリューム１１Ａのブロック番号をあらわす軸２１ＡＢとを有する。主ボリューム１１Ａのそれぞれのブロックに、世代ごとに異なるデータを書き込めるようにするために、データは、差分領域２２Ａ内のブロックに保存して、両軸の交点にそのブロックの差分ブロック番号２１ＡＣを保存する。
【００２５】
主計算機３は、ある世代の主ボリューム１１Ａを取得したい場合、ＣＯＷテーブル２１Ａを参照すると、主ボリューム１１Ａの各ブロック番号に対応する差分領域２２Ａ内の差分ブロック番号２１ＡＣが取得できるので、差分ブロック番号２１ＡＣに書かれたデータを取得することで、当初の目的を達成することができる。
【００２６】
図４は、リモートコピー管理テーブル２５Ａの一例である。リモートコピー管理テーブル２５Ａは、少なくとも、スナップショットの作成対象となる主ボリューム名２５ＡＡと、スナップショットを転送する先である副計算機名２５ＡＢと、副計算機との間の転送帯域幅２５ＡＣと、副計算機４へ転送できる時間を示す転送可能時間２５ＡＤと、スナップショットを転送するときに基準となる世代を示す基準世代２５ＡＥとを有する。副計算機名２５ＡＢは、副計算機４が特定できる識別子であればよく、例として副計算機４のホスト名やＩＰアドレスが好適である。
【００２７】
図５は、管理者が管理プログラム３５を使用して、ある主ボリューム１１Ａ上に新規のスナップショットを作成しようとしたときに、管理プログラム３５によりＣＰＵ３１が画面３４に表示する画面構成３６（ＧＵＩ（Graphical User Interface））の一例である。画面構成３６は、少なくとも現在作成済みのスナップショットとその属性を列挙するテーブル３６Ａと、新規に作成するスナップショットの名前を入力させる領域３６Ｂと、スナップショットの作成をスナップショットプログラム２３Ａに指示するための作成ボタン３６Ｉとを有し、さらにスナップショットを自動的に分割するか選択させる選択ボタン３６Ｃと、副計算機４へ転送する場合の転送帯域幅を入力させる領域３６Ｄと、転送可能時間を入力させる領域３６Ｅと、転送できるサイズの閾値を入力させる領域３６Ｆと、スナップショット作成後に自動的に転送するか選択させる転送ボタン３６Ｇと、転送する場合に転送先の副計算機名を入力させる領域３６Ｈとを有する。また、領域３６Ｄと領域３６Ｅの値を乗算して、領域３６Ｆへ自動的に乗算結果を表示する機能を有していてもよい。
【００２８】
（１）実施例１
本実施例では、スナップショットを作成するときに、前世代のスナップショットとの差分量が、転送帯域幅と転送可能時間から算出される転送可能量を超えないように作成する方法を例示する。
【００２９】
図６は、本実施例で説明する処理手順を示したフローチャートである。以下、このフローチャートに従って本実施例の処理を説明する。なお、以下においては、各プログラムに基づく主計算機３のＣＰＵ１５Ａや、副計算機４のＣＰＵ１５Ｂ、管理計算機５のＣＰＵ３１の処理内容を明確化するため、各種処理の処理主体をプログラムとして説明するが、実際上は、そのプログラムに基づいて対応するＣＰＵ１５Ａ、１５Ｂ、３１がその処理を行うことは言うまでもない。
【００３０】
はじめに、管理計算機の管理プログラム３５は、管理者からスナップショットを新規に作成したい主ボリューム１１Ａの主ボリューム名２５ＡＡと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとが指定され、作成ボタン３６Ｉが押下されると、本実施例におけるフローチャートを開始して、主ボリューム１１Ａの主ボリューム名１５ＡＡと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとを指定してスナップショットの新規作成を主計算機３に指示する（Ｓ１）。
【００３１】
この場合、管理プログラム３５は、主ボリューム１１Ａの主ボリューム名２５ＡＡに対する転送帯域幅２５ＡＣと転送可能時間２５ＡＤの関係をあらかじめリモートコピー管理テーブル２５Ａに格納しておき、管理者が主ボリューム１１Ａの主ボリューム名２５ＡＡのみを指定すればスナップショットプログラム２３Ａがリモートコピー管理テーブル２５Ａを参照して転送帯域幅２５ＡＣと転送可能時間２５ＡＤを取得してもよい。なお、ステップＳ１の処理は、例えば、ｃｒｏｎなどを使用してＯＳ（Operating System）が定期的に処理してもよい。
【００３２】
なお、転送帯域幅２５ＡＣ及び転送可能時間２５ＡＤの値の指定方法は、管理者が画面３４に表示する画面構成３６を使用して、主ボリューム１１Ａの主ボリューム名２５ＡＡをテーブル３６Ａで選択し、転送帯域幅２５ＡＣを領域３６Ｄに入力し、転送可能時間２５ＡＤを領域３６Ｅに入力する方法が典型である。また、転送帯域幅２５ＡＣ及び転送可能時間２５ＡＤとの値の指定方法は、所定のプログラムに基づいて自動的に行うようにしても良い。
【００３３】
次に、主計算機３のスナップショットプログラム２３Ａは、ＣＯＷテーブル２１Ａを参照して、すでに作成済みのスナップショットの次の世代を新規に作成するスナップショットの世代として採用する（Ｓ２）。
【００３４】
次に、スナップショットプログラム２３Ａは、転送量を「０」で初期化し、さらに主ボリューム１１Ａのすべてのブロック番号に対してステップＳ４〜ステップＳ８の処理を実施する（Ｓ３）。
【００３５】
まず、スナップショットプログラム２３Ａは、ステップＳ３のブロック番号と作成世代との交点にある差分ブロック番号２１ＡＣと、ステップＳ３のブロック番号と１つ前の世代との交点にある差分ブロック番号２１ＡＣとを取得し、両者が同じであるか否か検査する（Ｓ４）。そして、スナップショットプログラム２３Ａは、両者が同じである場合（Ｓ４：Ｙｅｓ）、このブロックが前世代と同じであるので転送量に加算せずに、次のブロック番号を検査するためにブロック番号を１つ加算してステップＳ３に戻る（Ｓ９）。これに対して、スナップショットプログラム２３Ａは、両者が異なる場合（Ｓ４：Ｎｏ）、このブロックが転送する必要があることを意味するので、転送量にこのブロックのブロックサイズを加算する（Ｓ５）。
【００３６】
次に、スナップショットプログラム２３Ａは、上述において管理者が指定した転送帯域幅と転送可能時間を乗算して転送可能量を算出し、転送量と転送可能量とを比較する（Ｓ６）。そして、スナップショットプログラム２３Ａは、転送量が転送可能量を超えていない場合（Ｓ６：Ｎｏ）、次のブロック番号を検査するためにブロック番号を１つ加算してステップＳ３に戻る（Ｓ９）。これに対して、スナップショットプログラム２３Ａは、転送量が転送可能量を超えている場合（Ｓ６：Ｙｅｓ）、ステップＳ３のブロック番号と作成世代の次の世代との交点にある差分ブロック番号２１ＡＣに、このステップＳ３のブロック番号と作成世代との交点にある差分ブロック番号２１ＡＣをコピーする（Ｓ７）。
【００３７】
次に、スナップショットプログラム２３Ａは、ステップＳ３のブロック番号と作成世代の交点にある差分ブロック番号２１ＡＣを、ステップＳ３のブロック番号と作成世代の前の世代との交点にある差分ブロック番号２１ＡＣに変更する（Ｓ８）。ここで、ステップＳ３のブロック番号と作成世代の前の世代との交点にある差分ブロック番号２１ＡＣは、ブロックに変更がないことを示す値の例示なので、同様の目的を達成できれば他の値でも良い。
【００３８】
その後、スナップショットプログラム２３Ａは、次のブロック番号を検査するためにブロック番号を１つ加算してステップＳ３に戻る（Ｓ９）。やがて、スナップショットプログラム２３Ａは、すべての主ボリューム１１Ａのブロックに対してステップＳ４〜ステップＳ８の処理が終了した場合（Ｓ３：Ｙｅｓ）、管理プログラム３５に終了の旨を通知する。そして、管理プログラム３５は、管理者に終了の旨を通知し、この後、本実施例におけるフローチャートを終了する。また、スナップショットプログラム２３Ａは、ステップＳ７及びステップＳ８によってコピーされたブロック数が多い場合、次の世代のスナップショットを作成するときに本実施例で示した処理が再度発生する可能性があるので、ステップＳ７及びステップＳ８によってコピーされたブロック数がある閾値を越えた場合、管理プログラム３５を介して管理者に警告しても良い。
【００３９】
本実施例によれば、主計算機３は、スナップショットを作成するときに、前世代のスナップショットとの差分量が、転送帯域幅２５ＡＣと転送可能時間２５ＡＤから算出される転送可能量を超えないように作成する。従って、本実施例において作成したスナップショットを転送した場合、転送量が転送可能量を超えることがないので、計画した転送時間を超過して業務に影響を与えることや転送の失敗を未然かつ有効に防止することができる。
【００４０】
（２）実施例２
実施例１によると、作成世代とその１つ前の世代との間の転送量が転送可能量を超えないことが保証される。しかし、転送済みの世代と転送したい世代の間に複数の世代があると、それらの世代間の差分の合計が転送可能量を超えることが考えられる。そこで本実施例では、複数のスナップショットを転送するときに、転送帯域幅と転送可能時間から算出される転送可能量を超えない最新の世代のスナップショットまでを転送する方法を例示する。
【００４１】
図７及び図８は本実施例で説明する処理手順を示したフローチャートである。以下、これらのフローチャートに従って本実施例の処理を説明する。
【００４２】
はじめに、管理計算機の管理プログラム３５は、管理者から転送したい主ボリューム１１Ａの主ボリューム名２５ＡＡと、転送すべきスナップショットの世代と、副計算機名２５ＡＢと、転送帯域幅２５ＡＣと、転送可能時間２５ＡＤとが指定され、作成ボタン３６Ｉが押下されると、本実施例におけるフローチャートを開始して、主ボリューム１１Ａの主ボリューム名２５ＡＡと副計算機名２５ＡＢと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとを指定してスナップショットの転送を主計算機３に指示する（Ｓ１１）。
【００４３】
この場合、管理プログラム３５は、主ボリューム１１Ａの主ボリューム名２５ＡＡに対する副計算機名２５ＡＢと転送帯域幅２５ＡＣと転送可能時間２５ＡＤの関係をあらかじめリモートコピー管理テーブル２５Ａに格納しておき、管理者が主ボリューム１１Ａの主ボリューム名２５ＡＡのみを指定すればリモートコピープログラム２４Ａがリモートコピー管理テーブル２５Ａを参照して副計算機名２５ＡＢと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとを取得してもよい。
【００４４】
次に、主計算機３のリモートコピープログラム２４Ａは、上述において管理者により選択されたスナップショットの世代を転送予定の世代（以下、転送世代と呼ぶ）として選択する（Ｓ１２）。
【００４５】
次に、リモートコピープログラム２４Ａは、リモートコピー管理テーブル２５Ａを参照してスナップショットの基準世代２５ＡＥを取得する（Ｓ１３）。なお、スナップショットの基準世代２５ＡＥは、最初、世代１に設定されている。
【００４６】
次に、リモートコピープログラム２４Ａは、ＣＯＷテーブル２１Ａを参照して基準世代と転送世代との差分を取得して転送量を計算する（Ｓ１４）。ステップＳ１４における転送量の計算は、実施例１のステップＳ３〜ステップＳ５を繰り返すことで実現できる。
【００４７】
次に、リモートコピープログラム２４Ａは、上述において管理者が指定した転送帯域幅２５ＡＣと転送可能時間２５ＡＤを乗算して転送可能量を算出し、転送量と転送可能量とを比較する（Ｓ１５）。そして、スナップショットプログラム２３Ａは、転送量が転送可能量を超えた場合（Ｓ１５：Ｙｅｓ）、現在の転送世代より１つ古い世代を転送世代に設定する（Ｓ１６）。
【００４８】
次に、リモートコピープログラム２４Ａは、この転送世代が基準世代と同じであるか否かを検査する（Ｓ１７）。そして、転送世代が基準世代と同じだった場合（Ｓ１７：Ｙｅｓ）、転送可能量に対して転送を行うべき転送量が大きすぎるため転送できないことを意味するので、管理プログラム３５にその旨を通知する。そして、管理プログラム３５は、管理者にその旨を警告し（Ｓ１８）、し、この後、本実施例におけるフローチャートを終了する。これに対して、リモートコピープログラム２４Ａは、転送量が転送可能量を超えていない場合（Ｓ１５：Ｎｏ）、転送処理を開始する。
【００４９】
図８は、本実施例のうち転送処理の手順を示したフローチャートである。はじめに、リモートコピープログラム２４Ａは、これから転送するブロック番号に「１」を指定する（Ｓ１９）。
【００５０】
次に、リモートコピープログラム２４Ａは、主ボリューム１１Ａのすべてのブロック番号に対してステップＳ２１〜ステップＳ２６の処理を実施する（Ｓ２０）。  
【００５１】
まず、リモートコピープログラム２４Ａは、ＣＯＷテーブル２１Ａを参照して、ステップＳ３のブロック番号と転送世代との交点にある差分ブロック番号２１ＡＣと、ステップＳ３のブロック番号と基準世代との交点にある差分ブロック番号とを取得し、両者が同じか検査する（Ｓ２１）。そして、リモートコピープログラム２４Ａは、両者が同じである場合（Ｓ２１：Ｙｅｓ）、このブロックが基準世代と同じであるため転送する必要がないと判断し、次のブロック番号を検査するためにブロック番号を１つ増加してステップＳ２０に戻る（Ｓ２６）。これに対して、リモートコピープログラム２４Ａは、両者が異なる場合（Ｓ２１：Ｎｏ）、ＣＯＷテーブル２１Ａを参照して、転送世代の差分ブロック番号２１ＡＣを取得して、差分領域２２Ａ内の当該差分ブロック番号２１ＡＣに格納されたデータを取得する（Ｓ２２）。
【００５２】
次に、リモートコピープログラム２４Ａは、当該データを副計算機４に送信する（Ｓ２３）。
【００５３】
次に、副計算機４のリモートコピープログラム２４Ｂは、当該データを受信して主ボリューム１１Ｂの当該ブロック番号のブロックに書き込むように副計算機４のスナップショットプログラム２３Ｂに指示する（Ｓ２４）。
【００５４】
次に、副計算機４のスナップショットプログラム２３Ｂは、当該ブロック番号のブロックを差分領域２２Ｂにコピーし、副計算機４のＣＯＷテーブル２１Ｂの転送世代と当該ブロック番号との交点にコピーした差分領域２２Ｂの差分ブロック番号２１ＢＣを入力する（Ｓ２５）。
【００５５】
やがて、リモートコピープログラム２４Ａは、以上で副計算機４の転送処理が完了するので、ブロック番号を１つ加算してステップＳ２０に戻る（Ｓ２６）。  
【００５６】
そして、リモートコピープログラム２４Ａは、すべてのブロック番号に対してステップＳ２１〜ステップＳ２６の処理が終了した場合（Ｓ２０：Ｙｅｓ）、リモートコピー管理テーブル２５Ａの当該主ボリューム１１Ａの主ボリューム名２５ＡＡの基準世代２５ＡＥを転送世代に更新し（Ｓ２７）、管理プログラム３５に終了の旨を通知する。そして、管理プログラム３５は、管理者に終了の旨を通知し、この後、本実施例におけるフローチャートを終了する。
【００５７】
本実施例によれば、主計算機３は、複数のスナップショットを転送するときに、転送帯域幅２５ＡＣと転送可能時間２５ＡＤから算出される転送可能量を超えない最新の世代のスナップショットまでを転送する。従って、本実施例においてスナップショットを転送した場合、転送量が転送可能量を超えることがないので、計画した転送時間を超過して業務に影響を与えることや転送の失敗を未然かつ有効に防止することができる。
【００５８】
（３）実施例３
実施例１によると、作成世代とその１つ前の世代との間の転送量が転送可能量を超えないことが保証される。しかし、実施例１にしたがってスナップショットを作成したときよりも転送帯域幅が小さくなった場合、スナップショットを転送しようとすると、転送量が転送可能量を超えることが考えられる。本実施例では、転送量が転送可能量を超えた場合に、当該スナップショットを使用不可にする方法を例示する。
【００５９】
図９は、本実施例で使用する差分格納ボリューム１２Ａを示している。差分格納ボリューム１２Ａには、ＣＯＷテーブル２１Ａと差分領域２２Ａに加えて使用可否テーブル４１Ａが配置され、各スナップショットが使えるか使えないか示すフラグを格納する。それ以外の構成については、実施例１における主計算機３の構成と同様である。
【００６０】
なお、副計算機４についても、主計算機３と同様に、差分格納ボリューム１２Ｂに使用可否テーブル４１Ｂが配置される。主計算機３と副計算機４のいずれの計算機にも使用可否テーブル４１Ａ、４１Ｂが配置されると、例えば、主計算機３に障害が発生して副計算機４からデータを復旧する場合に、データだけでなく副計算機４が持つ使用可否テーブル４１Ｂの内容も主計算機３の使用可否テーブル４１Ａに復旧することで、主計算機３が誤って使用不可のスナップショットにアクセスすることを未然かつ有効に防止することができる。
【００６１】
図１０は、使用可否テーブル４１Ａの一例である。使用可否テーブル４１Ａは、少なくとも、スナップショットの作成対象となる主ボリューム名４１ＡＡと、使用可否を判定するスナップショットの世代となる世代４１ＡＢとを有する。この例では、使用可否テーブル４１Ａは、該当する主ボリューム名４１ＡＡの世代４１ＡＢを使用することができる場合に「０」、使用することができない場合に「最後に転送したブロック番号」を格納することでフラグとして機能する例を示している。
【００６２】
図１１は、本実施例で説明する処理手順を示したフローチャートである。以下、これらのフローチャートに従って本実施例の処理を説明する。
【００６３】
はじめに、管理計算機の管理プログラム３５は、管理者から転送すべき主ボリューム１１Ａの主ボリューム名２５ＡＡと転送すべきスナップショットの世代（以下、転送世代とよぶ）と転送帯域幅２５ＡＣと転送可能時間２５ＡＤとが指定され、作成ボタン３６Ｉが押下されると、本実施例におけるフローチャートを開始して、主ボリューム１１Ａの主ボリューム名１５ＡＡと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとを指定してスナップショットの転送を主計算機３に指示する（Ｓ３１）。
【００６４】
この場合、管理プログラム３５は、主ボリューム１１Ａの主ボリューム名２５ＡＡに対する副計算機名２５ＡＢと転送帯域幅２５ＡＣと転送可能時間２５ＡＤの関係をあらかじめリモートコピー管理テーブル２５Ａに格納しておき、管理者が主ボリューム１１Ａの主ボリューム名２５ＡＡのみを指定すればリモートコピープログラム２４Ａがリモートコピー管理テーブル２５Ａを参照して副計算機名２５ＡＢと転送帯域幅２５ＡＣと転送可能時間２５ＡＤとを取得してもよい。
【００６５】
次に、主計算機３のリモートコピープログラム２４Ａは、これから転送するブロック番号に「１」を指定し、総転送量を「０」に初期化する（Ｓ３２）。次に、リモートコピープログラム２４Ａは、主ボリューム１１のすべてのブロック番号に対してステップＳ３４、ステップＳ３５及びステップＳ２１〜ステップＳ２６の処理を実施する（Ｓ３３）。リモートコピープログラム２４Ａは、全てのブロック番号に対してこれら処理を実施していない場合（Ｓ３３：Ｎｏ）、総転送量が転送可能量を超えているか検査する（Ｓ３４）。そして、リモートコピープログラム２４Ａは、総転送量が転送可能量を超えていない場合（Ｓ３４：Ｎｏ）、ステップＳ２１〜ステップＳ２６の処理を実施する。ステップＳ２１〜ステップＳ２６の処理の詳細は、実施例２に記述したとおりである。次に、リモートコピープログラム２４Ａは、総転送量にステップＳ２３で転送したブロックのサイズを加算する（Ｓ３５）。
【００６６】
これに対して、リモートコピープログラム２４Ａは、ステップＳ３４において総転送量が転送可能量を超えていた場合（Ｓ３４：Ｙｅｓ）、該当する主ボリューム１１のスナップショットの世代の使用不可フラグを副計算機４のリモートコピープログラム２４Ｂに送信する（Ｓ３７）。本実施例では、リモートコピープログラム２４Ａは、現在処理中のブロック番号を送信する。
【００６７】
次に、副計算機４のリモートコピープログラム２４Ｂは、受信した使用不可フラグを使用可否テーブル２３の該当する転送世代（世代４１ＡＢ）のカラムに格納して（Ｓ３８）、管理プログラム３５に終了の旨を通知する。そして、管理プログラム３５は、管理者に終了の旨を通知し、この後、本実施例におけるフローチャートを終了する。
【００６８】
やがて、リモートコピープログラム２４Ａは、ステップＳ３３において全てのブロック番号に対してステップＳ３４、ステップＳ３５及びステップＳ２１〜ステップＳ２６の処理を実施し終えた場合（Ｓ３３：Ｙｅｓ）、管理プログラム３５に終了の旨を通知する。そして、管理プログラム３５は、管理者に終了の旨を通知し、この後、本実施例におけるフローチャートを終了する。
【００６９】
本実施例によれば、主計算機３は、転送量が転送可能量を超えた場合に、当該スナップショットを使用不可にする。従って、本実施例において、転送可能量を超えたスナップショットをリモートコピーした場合、転送が完了していないスナップショットを管理者が誤って操作することを未然かつ有効に防止することができる。また、次に当該スナップショットを転送する場合に、前回転送したブロック番号の次のブロック番号から再開することができるので、転送時間を短縮することができる。
【００７０】
（４）実施例４
実施例１によると、作成世代とその１つ前の世代との間の転送量が転送可能量を超えないことが保証される。しかし、管理者がスナップショットを作成する時刻と転送する時刻をあらかじめ定期的に設定していた場合、当初想定していた転送間隔では転送できない量のスナップショットが発生することがある。本実施例では、転送量が転送可能量を超えた場合に、次回のスナップショットの作成時刻を変更することによって、次にスナップショットを作成するときは転送量が転送可能量を超えないようにする方法を例示する。
【００７１】
図１２は、本実施例で使用するメモリ１６Ａを示している。メモリ１６Ａには、スナップショットプログラム２３Ａと、リモートコピープログラム２４Ａと、リモートコピー管理テーブル２５Ａとに加えて、スナップショットスケジュールテーブル４２Ａが格納されている。なお、副計算機４についても、主計算機３と同様に、メモリ１６Ｂにスナップショットスケジュールテーブル４２Ｂが配置される。
【００７２】
図１３は、スナップショットスケジュールテーブル４２Ａの一例である。スナップショットスケジュールテーブル４２Ａは、少なくとも、主ボリューム名４２ＡＡと、スナップショットを取得する時刻４２ＡＢ（以下、取得時刻４２ＡＢ）とが含まれる。
【００７３】
図１４は、本実施例で説明する処理手順を示したフローチャートである。以下、これらのフローチャートに従って本実施例の処理を説明する。
【００７４】
はじめに、主計算機３のスナップショットプログラム２３Ａは、取得時間になるとＯＳによりスナップショットを作成する主ボリューム名２５ＡＡを指定して起動されると、本実施例におけるフローチャートを開始して、リモートコピー管理テーブル２５Ａを参照し、主ボリューム１１の主ボリューム名２５ＡＡの転送帯域幅２５ＡＣと転送可能時間２５ＡＤと基準世代２５ＡＥを取得する（Ｓ４１）。
【００７５】
なお、スナップショットプログラム２３Ａの起動については、ＯＳの代わりに、例えば、ｃｒｏｎといったスケジュール管理プログラムが起動するようにしてもよい。
【００７６】
次に、スナップショットプログラム２３Ａは、実施例１で説明したステップＳ２〜ステップＳ９の処理を実施する。スナップショットプログラム２３Ａは、ステップＳ２〜ステップＳ９の処理の中で、転送量が転送可能量を超えていなかった場合（Ｓ４３：Ｎｏ）、この後、本実施例におけるフローチャートを終了する。これに対して、スナップショットプログラム２３Ａは、転送量が転送可能量を超えていた場合（Ｓ４３：Ｙｅｓ）、転送量を転送帯域で除算して転送に必要な時間を取得し、次回のスナップショットを作成する時間を当該必要時間後に変更して（Ｓ４４）、この後、本実施例におけるフローチャートを終了する。
【００７７】
本実施例によれば、主計算機３は、転送量が転送可能量を超えた場合に、次回のスナップショットの作成時刻を変更することによって、次にスナップショットを作成するときは転送量が転送可能量を超えないようにすることができるので、計画した転送時間を超過して業務に影響を与えることや転送の未然かつ有効に防止することができる。
【産業上の利用可能性】
【００７８】
本発明は、２つ以上の計算機間でデータをコピーする機能を持つ計算機システムに広く適用することができる。
【図面の簡単な説明】
【００７９】
【図１】各実施形態における計算機システムの概要図である。
【図２】各実施形態における管理計算機の構成図である。
【図３】ＣＯＷテーブルの構成図である。
【図４】リモートコピー管理テーブルの構成図である。
【図５】管理者に提供する管理画面の構成図である。
【図６】実施例１の処理手順を示すフローチャートである。
【図７】実施例２の処理手順を示すフローチャートの前半部分である。
【図８】実施例２の処理手順を示すフローチャートの後半部分である。
【図９】実施例３における差分格納ボリュームの構成図である。
【図１０】実施例３における使用可否テーブルの構成図である。
【図１１】実施例３の処理手順を示すフローチャートである。
【図１２】実施例４におけるメモリの構成図である。
【図１３】実施例４におけるスナップショットスケジュールテーブルの構成図である。
【図１４】実施例４の処理手順を示すフローチャートである。
【符号の説明】
【００８０】
１……計算機システム、２……クライアント計算機、３……主計算機、４……副計算機、５……管理計算機、６……データネットワーク、７……管理ネットワーク、１１Ａ、１１Ｂ……主ボリューム、１２Ａ、１２Ｂ……差分格納ボリューム、１３Ａ……管理用インタフェース、１４Ａ、１４Ｂ……データ用インタフェース、１５Ａ、１５Ｂ……ＣＰＵ、１６Ａ、１６Ｂ……メモリ、２３Ａ、２３Ｂ……スナップショットプログラム、２４Ａ、２４Ｂ……リモートコピープログラム、２５Ａ、２５Ｂ……リモートコピー管理プログラム、４１Ａ、４１Ｂ……使用可否テーブル、４２Ａ、４２Ｂ……スナップショットスケジュールテーブル
【図１】
0005244430.tif 000002
【図２】
0005244430.tif 000003
【図３】
0005244430.tif 000004
【図４】
0005244430.tif 000005
【図５】
0005244430.tif 000006
【図６】
0005244430.tif 000007
【図７】
0005244430.tif 000008
【図８】
0005244430.tif 000009
【図９】
0005244430.tif 000010
【図１０】
0005244430.tif 000011
【図１１】
0005244430.tif 000012
【図１２】
0005244430.tif 000013
【図１３】
0005244430.tif 000014
【図１４】
0005244430.tif 000015