IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

特開2025-10997データ転送処理のためのシステム、方法またはプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025010997
(43)【公開日】2025-01-23
(54)【発明の名称】データ転送処理のためのシステム、方法またはプログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20250116BHJP
   G06F 11/14 20060101ALI20250116BHJP
【FI】
G06F3/06 301Z
G06F3/06 301X
G06F3/06 304B
G06F3/06 304F
G06F11/14 648
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023113357
(22)【出願日】2023-07-10
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】新井 政弘
(72)【発明者】
【氏名】出口 彰
(72)【発明者】
【氏名】弘中 和衛
(57)【要約】
【課題】 データ転送処理を高速化することを本開示の目的のひとつとする。
【解決手段】 計算機資源起動部133は、1つのボリューム111と第2記憶部102の間でデータ転送処理を行う際に、当該データ転送処理を行う計算機資源131を1つ以上起動し、起動した計算機資源131のいずれに対しても、当該データ転送処理での転送元または転送先となる共通の1つのボリューム111をマウントする。領域割当部134は、記憶領域112毎に、データ転送処理の部分を計算機資源131に割り当てる。計算機資源131は、共通の1つのボリューム111内の当該計算機資源131に割り当てられた記憶領域112と、第2記憶部102の間で、前記データ転送処理の部分を行う。
【選択図】 図1
【特許請求の範囲】
【請求項1】
システムであって、
前記システムは、第1記憶部と第2記憶部とデータ転送部を備え、
前記第1記憶部は、データを格納するためのボリュームを備え、1つの前記ボリュームは1つ以上の記憶領域からなり、
前記データ転送部は計算機資源起動部と領域割当部を備え、
前記計算機資源起動部は、1つの前記ボリュームと前記第2記憶部の間でデータ転送処理を行う際に、当該データ転送処理を行う計算機資源を1つ以上起動し、起動した前記計算機資源のいずれに対しても、前記データ転送処理における転送元または転送先となる共通の1つの前記ボリュームをマウントし、
前記計算機資源に対して前記ボリュームをマウントすることは、当該計算機資源に当該ボリュームを認識させ、当該計算機資源を当該ボリュームのデータにアクセス可能とすることであり、
前記領域割当部は、前記記憶領域毎に前記データ転送処理を前記計算機資源に割り当て、
前記計算機資源は、前記共通の1つのボリューム内の当該計算機資源に割り当てられた前記記憶領域と、前記第2記憶部の間で、前記データ転送処理を行う、システム。
【請求項2】
請求項1に記載のシステムであって、
前記データ転送処理は、1つの前記ボリュームから前記第2記憶部へのバックアップ処理、または、前記第2記憶部から1つの前記ボリュームへのリストア処理であり、
前記記憶領域は管理領域であり、
前記第1記憶部は、存在する前記ボリュームについて、前記管理領域毎に、当該管理領域内のいずれの位置の前記データを前記バックアップ処理の対象とすべきであるかを示す第1管理情報を備え、
前記第2記憶部は、バックアップ処理された前記ボリュームについて、1つの世代分の前記バックアップ処理毎のバックアップデータを1つ以上の世代分格納し、
1つの世代分の前記バックアップデータは、前記管理領域毎に、前記ボリュームの当該管理領域からバックアップ処理された前記データからなるデータ群と、前記データ群に含まれる前記データに対応する前記ボリューム内の位置を示す第2管理情報を含む、システム。
【請求項3】
請求項2に記載のシステムであって、
前記データ転送部は、計算機資源数判定部を備え、
前記計算機資源は、一時計算機資源であり、
1つの前記ボリュームには、当該1つのボリュームをマウントすることが可能な前記一時計算機資源の数である接続可能ホスト数が対応付けられており、
前記計算機資源数判定部は、前記バックアップ処理での転送元または前記リストア処理での転送先となる1つの前記ボリュームについて、当該1つのボリュームに含まれる前記管理領域の数と、当該1つのボリュームに対応付けられている前記接続可能ホスト数のうちの多くないほうの数を、前記バックアップ処理または前記リストア処理を行う前記一時計算機資源の数とし、当該数を、起動すべき前記一時計算機資源の数として前記計算機資源起動部に伝達する、システム。
【請求項4】
請求項3に記載のシステムであって、
前記計算機資源数判定部は、1つの前記ボリュームに対応する前記第1管理情報の数、または、1つの前記ボリュームの1つの世代分の前記バックアップ処理に対応する前記第2管理情報の数により、当該1つのボリュームに含まれる前記管理領域の数を判断する、システム。
【請求項5】
請求項2に記載のシステムであって、
前記バックアップ処理は、前回のバックアップ処理の時点以降に、当該バックアップ処理での転送元となる前記ボリュームにライトされたデータのみを、前記第2記憶部に転送する差分バックアップ処理であり、
前記リストア処理は、当該リストア処理により復元する時点を示す世代以前の全ての世代のリストア処理を古い世代から順に実行する処理であり、
前記領域割当部は、前記リストア処理に際して、前記リストア処理の転送先となる1つの前記ボリュームにおける同じ前記管理領域に関する互いに異なる世代の前記リストア処理の割り当てを行う際には、これらの前記リストア処理を同じ前記計算機資源に割り当て、
前記計算機資源は、同じ前記管理領域に関する複数の世代の前記リストア処理を割り当てられた場合に、処理結果が正常となる順に前記リストア処理を実行する、システム。
【請求項6】
請求項5に記載のシステムであって、
前記領域割当部は、前記リストア処理に際して、前記リストア処理の対象となりうる世代と、前記リストア処理の対象となりうる前記管理領域の組み合わせのそれぞれについて、当該組み合わせに対応する前記第2管理情報により、前記管理領域内の少なくとも1つのデータが前記第2記憶部にバックアップされていることが示される場合に、当該組み合わせに関する前記リストア処理を、いずれかの前記計算機資源に割り当てる、システム。
【請求項7】
請求項1に記載のシステムであって、
前記データ転送部は、計算機資源数判定部を備え、
前記計算機資源数判定部は、1つの前記ボリュームと前記第2記憶部の間でデータ転送処理を行う際に、前記データ転送処理を行う前記計算機資源の数を判定し、当該数を、起動すべき前記計算機資源の数として前記計算機資源起動部に伝達する、システム。
【請求項8】
請求項1に記載のシステムであって、
前記データ転送処理は、当該データ転送処理での転送元または転送先となる前記記憶領域毎に、複数の世代のデータ転送処理からなり、
前記領域割当部は、前記データ転送処理に際して、同じ前記記憶領域に関する複数の世代の前記データ転送処理を、同じ前記計算機資源に割り当て、
前記計算機資源は、処理結果が正常となる順に、同じ前記記憶領域に関する複数の世代の前記データ転送処理を実行する、システム。
【請求項9】
請求項1に記載のシステムであって、
前記システムはクラウドシステムであり、
前記ボリュームまたは前記第2記憶部は、ネットワークを介して、他のシステムまたは装置が利用可能なものである、システム。
【請求項10】
請求項1に記載のシステムであって、
前記第2記憶部は、オブジェクトストレージ形式のバックアップデータストアである、システム。
【請求項11】
請求項1に記載のシステムであって、
前記計算機資源起動部は、起動される前記計算機資源から、当該計算機資源に対してマウントされる前記ボリュームへの接続パスを構築する、システム。
【請求項12】
請求項1に記載のシステムであって、
前記データ転送部は設定変更部を備え、
前記設定変更部は、複数の前記計算機資源に対して共通の1つの前記ボリュームをマウントする際には、当該1つのボリュームの設定をマルチアタッチ可能なディスク種別に変更し、前記データ転送処理が完了する際には、当該1つのボリュームの設定をマルチアタッチ不能なディスク種別に戻す、システム。
【請求項13】
請求項1に記載のシステムであって、前記データ転送部は計算機資源解放部を備え、
前記計算機資源は、一時計算機資源であり、
前記計算機資源解放部は、前記データ転送処理の全体が完了する前であっても、割り当てられていた前記データ転送処理を完了した前記一時計算機資源を解放する、システム。
【請求項14】
システムが実行する方法であって、
前記システムは第1記憶部と第2記憶部を備え、前記第1記憶部はデータを格納するためのボリュームを備え、1つの前記ボリュームは1つ以上の記憶領域からなり、
前記方法は、計算機資源起動ステップと領域割当ステップを備え、
前記計算機資源起動ステップは、1つの前記ボリュームと前記第2記憶部の間でデータ転送処理を行う際に、当該データ転送処理を行う計算機資源を1つ以上起動し、起動した前記計算機資源のいずれに対しても、前記データ転送処理における転送元または転送先となる共通の1つの前記ボリュームをマウントするステップであり、
前記計算機資源に対して前記ボリュームをマウントすることは、当該計算機資源に当該ボリュームを認識させ、当該計算機資源を当該ボリュームのデータにアクセス可能とすることであり、
前記領域割当ステップは、前記記憶領域毎に前記データ転送処理を前記計算機資源に割り当てるステップであり、
前記計算機資源は、前記共通の1つのボリューム内の当該計算機資源に割り当てられた前記記憶領域と、前記第2記憶部の間で、前記データ転送処理を行うものである、方法。
【請求項15】
システムにおいて実行されるプログラムであって、
前記システムは第1記憶部と第2記憶部を備え、前記第1記憶部はデータを格納するためのボリュームを備え、1つの前記ボリュームは1つ以上の記憶領域からなり、
前記プログラムは、前記システムに、計算機資源起動ステップと領域割当ステップを実行させるためのものであり、
前記計算機資源起動ステップは、1つの前記ボリュームと前記第2記憶部の間でデータ転送処理を行う際に、当該データ転送処理を行う計算機資源を1つ以上起動し、起動した前記計算機資源のいずれに対しても、前記データ転送処理における転送元または転送先となる共通の1つの前記ボリュームをマウントするステップであり、
前記計算機資源に対して前記ボリュームをマウントすることは、当該計算機資源に当該ボリュームを認識させ、当該計算機資源を当該ボリュームのデータにアクセス可能とすることであり、
前記領域割当ステップは、前記記憶領域毎に前記データ転送処理を前記計算機資源に割り当てるステップであり、
前記計算機資源は、前記共通の1つのボリューム内の当該計算機資源に割り当てられた前記記憶領域と、前記第2記憶部の間で、前記データ転送処理を行うものである、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ボリュームのデータに関してデータ転送処理を行う技術に関するものである。
【背景技術】
【0002】
近年、オンプレミスのIT資産とパブリッククラウドのサービスを、コストや用途に応じて組み合わせて利用するハイブリッドクラウドと呼ばれる運用形態が登場している。オンプレミスのIT資産に比べ、パブリッククラウドは必要な計算機資源を従量課金にて柔軟に活用が出来ることが特徴である。
代表的なパブリッククラウドサービスに、データをオブジェクトストレージ形式にて格納し、REST API(Representational State Transfer Application Interface)にてアクセスするオブジェクトストアがある。オブジェクトストアはほぼ無制限の容量を事前の容量設計なしに安価なビットコストで利用出来るため、データのバックアップやアーカイブに用いられることがある。
更にバックアップされたデータを、クラウドのコンピューティングサービスやストレージサービスを用いて構築された環境にリストアすることにより、ユーザのデータセンタに構築されたオンプレミスシステム上の業務の一部をオフロードする活用方法、あるいは、災害発生時の復旧先サイト(副サイト)として利用する活用方法が知られている。
上記のようなサービスやストレージを用いる際には、データ転送処理(例えばバックアップ処理またはリストア処理)が伴う。特許文献1には、バックアップ処理における処理高速化方法としてデータムーバを設けてホストを介さずにストレージ間でデータ転送を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第7496723号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般にデータの転送には時間がかかる。そのため、業務の一部をオフロードしたり、災害時の副サイトとして速やかに利用するためには、データ転送処理(例えばバックアップ処理またはリストア処理)をいかに短時間で出来るようにするかが重要になる。特に昨今ではデータ転送処理の対象となるデータ量が飛躍的に増大しているため、データ転送処理の高速化はますます重要な課題となっている。
一方で、データ転送処理での転送先または転送元(例えばバックアップ処理での転送先またはリストア処理での転送元)となるストレージとして、広帯域であるストレージが提供されるようになってきている。例えば、前述のオブジェクトストアが有する帯域は、1つの計算機資源では当該帯域を使い切ることが出来ないほどの広帯域である。
特許文献1は、ホストを介さずにデータムーバを用いてボリューム対ボリュームでデータを転送する方法を開示しているが、1つのボリュームに関するデータ転送処理を複数のデータムーバが分割して担当する方法は開示されていない。そのため、特許文献1の技術では、転送するデータ量、すなわちボリュームサイズに応じて時間がかかる。特許文献1には、データムーバの処理性能(データ転送性能)については明示されていないが、広帯域のストレージ(例えば、前述のオブジェクトストア)に対してデータムーバを適用する場合には、データムーバとして1つの計算機資源分の性能を有するだけでは、当該データムーバが提供するデータ転送速度は充分なものとはならない。
特許文献1は、転送するデータ量やデータ転送の必要速度に応じて、計算機資源の構成を一時的に増減させるための方法や制御についても開示していない。そのため特許文献1の技術ではボリュームサイズに応じてデータムーバの構成を変えることも困難である。
【0005】
以上を踏まえて、データ転送処理を高速化することを、本開示の目的のひとつとする。また、データ転送処理での転送先または転送元となるストレージが有する帯域を充分に活用して、データ転送処理を高速化することを、本開示の目的のひとつとする。さらに、データ転送処理において転送するデータ量やデータ転送処理の必要速度に応じて、データ転送処理を行うための計算機資源の構成を調整して、要求される転送能力に応じた計算機資源を構築することを、本開示の目的のひとつとする。
【課題を解決するための手段】
【0006】
上記目的のうちの少なくとも一つを達成するために、本開示が備えうる特徴は、例えば次のとおりである。
システムは第1記憶部と第2記憶部とデータ転送部を備える。第1記憶部はデータを格納するためのボリュームを備える。1つのボリュームは1つ以上の記憶領域からなる。データ転送部は計算機資源起動部と領域割当部を備える。計算機資源起動部は、1つのボリュームと第2記憶部の間でデータ転送処理を行う際に、当該データ転送処理を行う計算機資源を1つ以上起動し、起動した計算機資源のいずれに対しても、データ転送処理における転送元または転送先となる共通の1つのボリュームをマウントする。計算機資源に対してボリュームをマウントすることは、当該計算機資源に当該ボリュームを認識させ、当該計算機資源を当該ボリュームのデータにアクセス可能とすることである。領域割当部は、記憶領域毎にデータ転送処理を計算機資源に割り当てる。計算機資源は、共通の1つのボリューム内の当該計算機資源に割り当てられた記憶領域と、第2記憶部の間で、データ転送処理を行う。
【発明の効果】
【0007】
以上のように、本開示は、データ転送処理を行う1つ以上の計算機資源に対して、データ転送処理での転送元または転送先となる共通の1つのボリュームをマウントして、計算機資源のそれぞれにデータ転送処理を並行して行わせることが出来るため、データ転送処理を高速化することが出来る。また、以上のように、本開示は、データ転送処理での転送先または転送元となるストレージである第2記憶部が有する帯域が広いとしても、1つ以上の計算機資源が当該ストレージに並行的にアクセスすることにより、当該ストレージの有する帯域を充分活用することが出来る。さらに、以上のように、本開示は、データ転送処理での転送元または転送先となる共通の1つのボリューム内の記憶領域毎にデータ転送処理を計算機資源に割り当てるので、データ転送処理に要求される転送能力に応じた計算機資源を構築することが出来る。
【0008】
上記のシステムが実現する処理と同様のことを実現する方法やプログラムも、上記のシステムと同様の作用効果を得ることが出来る。さらに、プログラムの態様であれば、多くの場合で費用は削減される。プログラムでは、処理に関する設計変更も行われやすい。
上記以外の本開示が備えうる特徴、及び、当該特徴に対応する作用効果は、この明細書、特許請求の範囲または図面に開示される。
【図面の簡単な説明】
【0009】
図1】本開示の実施形態の機能構成を示す。
図2】本開示の実施形態を実現するコンピュータアーキテクチャを示す。
図3】本開示の第1の実施形態(リストア処理)のシステム構成を示す。
図4】オンプレミスのデータセンタを示す。
図5】ボリュームの管理領域と差分管理ビットマップ(第1管理情報)を示す。
図6】バックアップ設定画面を示す。
図7A】1回目のバックアップ処理の様子を示す。
図7B】2回目のバックアップ処理の様子を示す。
図7C】3回目のバックアップ処理の様子を示す。
図8】バックアップデータストア(第2記憶部)を示す。
図9A】1世代目のバックアップカタログを示す。
図9B】2世代目のバックアップカタログを示す。
図10】ストレージボリュームサービス(第1記憶部)を示す。
図11】リストア処理において構築される計算機資源を示す。
図12】リストア設定画面を示す。
図13】リストアシステムにリストアを指示するまでの処理を示す。
図14】リストア時にリストアシステムが行う処理を示す。
図15】リストアプランを構築するための処理を示す。
図16】リストア時の計算機資源への処理の割り当て(キューイング)を示す。
図17】リストア時に仮想計算機インスタンスが行う処理を示す。
図18】リストアにおいてキュー長がゼロの際になったときの処理を示す。
図19】本開示の第2の実施形態(バックアップ処理)のシステム構成を示す。
図20】バックアップ処理において構築される計算機資源を示す。
図21】バックアップ&リストアシステムにバックアップを指示するまでの処理を示す。
図22】バックアップ時にバックアップ&リストアシステムが行う処理を示す。
図23】バックアップ時に仮想計算機インスタンスが行う処理を示す。
図24】バックアップにおいてキュー長がゼロの際になったときの処理を示す。
【発明を実施するための形態】
【0010】
以下、図面を参照して本開示の実施形態を詳細に説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる開示を限定するものではなく、また実施形態の中で説明されている諸要素およびその組み合わせの全てが本開示の解決手段に必須であるとは限らない。以下の記載及び図面は、本開示を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本開示は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本開示は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
本開示のシステム、サービス、装置または部のそれぞれは、ハードウェア的に一つにまとまったものでもよいし、複数の部分に分かれていて当該部分どうしが連携して役割を果たすものでもよい。幾つかのシステム、サービス、装置または部がハードウェア的に統合されてもよい。システム、装置または部のそれぞれは、(図2のように)コンピュータにソフトウェア(プログラム)を実行させることにより実現されてよい。システム、サービス、装置または部の機能の一部は、ハードウェア(例えば、ハードワイヤードロジックやFPGA)で実現され、残りの機能は、ソフトウェア(プログラム)が実行されることにより実現されてもよい。システム、サービス、装置または部のそれぞれの機能の全てはハードウェア的に実現されてもよい。本開示にて説明されるフローチャート等で示される処理のステップの一部または全部は、ハードウェア的に実現されてもよい。
本開示のプログラムは、ソフトウェアとハードウェア資源とが協働することによって、使用目的に応じた特有の情報処理装置またはその動作方法が構築されるような、当該ソフトウェアに該当するもの一般を包含する概念に含まれるものであればよい。つまり、本開示のプログラムは、特定の種類や態様のプログラムに限定されない。また、プログラムは当初は圧縮形式で記録されるものでもよい。
複数の図面で同じ参照番号を用いているものは、同様のものであることを示す。以下で説明するフローチャートを示す図面において、長方形のボックスは処理のステップを示し、菱形のボックスは条件分岐のステップを示す。フローチャートを示す図面において、「ステップ」は「S」と略記される。また、以下で説明する図面において示される画面の態様は一例であり、これらに限定されない。
【0011】
以下では、本開示の実施形態として、第1の実施形態と第2の実施形態を説明する。そのうち、機能構成の説明は、「1.本開示の実施形態の機能構成」でまとめて行う。実施形態を実現するためのコンピュータアーキテクチャの説明は、「2.本開示の実施形態を実現するためのコンピュータアーキテクチャ」でまとめて行う。システム構成の説明と処理の説明は、実施形態毎に分けて行う。
【0012】
1.本開示の実施形態の機能構成
図1は、本開示の実施形態の機能構成を示す。なお、図1に示す全ての機能構成が必須というわけではない。
図1において、システム100は第1記憶部101と第2記憶部102とデータ転送部103を備える。データ転送部103は、第1記憶部101と第2記憶部102の間でのデータ転送処理(例えば、第1記憶部101から第2記憶部102へデータを転送するバックアップ処理、または、第2記憶部102から第1記憶部101へデータを転送するリストア処理)を行うためのものである。第1記憶部101はデータを格納するためのボリューム111を1つ以上備える。1つのボリューム111は1つ以上の記憶領域を備える。この記憶領域は、後述の第1管理情報や第2管理情報を伴う場合には、管理領域112とも称される。(図面では「記憶領域」または「管理領域」は「領域」と略記される。)データ転送部103は計算機資源数判定部132(「計算機資源数判定部」は、図面では「数判定部」と略記される。)を備えてよい。計算機資源数判定部132は、1つのボリューム111と第2記憶部102の間でデータ転送処理を行う際に、データ転送処理を行う計算機資源の数を判定し、当該数を後述の計算機資源起動部133に伝達する。データ転送部103は計算機資源起動部133(「計算機資源起動部」は、図面では「起動部」と略記される。)を備える。計算機資源起動部133は、計算機資源数判定部132が判定した数の計算機資源を起動する。図1の例では、計算機資源起動部133は3つの計算機資源131を構築(起動)している。計算機資源起動部133は、起動した計算機資源131のいずれに対しても、データ転送処理での転送元または転送先となる共通の1つのボリューム111をマウントする。ここで、計算機資源131に対してボリューム111をマウントすることは、当該計算機資源131に当該ボリューム111を認識させ、当該計算機資源131を当該ボリューム111のデータにアクセス可能とすることである。また、バックアップ処理が複数回(複数の世代分)行われる場合において、第2記憶部102は、世代と記憶領域(管理領域)の組み合わせ毎に、バックアップデータ121を格納してよい。データ転送部103は領域割当部134(「領域割当部」は、図面では「割当部」と略記される。)を備える。領域割当部134は、記憶領域または管理領域112毎に、データ転送処理を計算機資源131に割り当てる。図1の例は、計算機資源起動部133が3つの計算機資源131を構築(起動)し、領域割当部134が、構築(起動)された3つの計算機資源131に対して、記憶領域または管理領域112毎にデータ転送処理を割り当てるものを示す。計算機資源131は、共通の1つのボリューム111内の当該計算機資源131に割り当てられた記憶領域または管理領域112と、第2記憶部102の間で、データ転送処理を行う。データ転送部103は設定変更部135を備えてよい。設定変更部135は、複数の計算機資源131に対して共通の1つのボリューム111をマウントする際には、当該共通の1つのボリューム111の設定をマルチアタッチ可能なディスク種別に変更し、データ転送処理が完了する際には、当該共通の1つのボリューム111の設定をマルチアタッチ不能なディスク種別に戻す。データ転送部103は計算機資源解放部136(「計算機資源解放部」は、図面では「解放部」と略記される。)を備えてよい。ここで、計算機資源131は一時計算機資源であってよい。計算機資源解放部136は、データ転送処理の全体が完了する前であっても、割り当てられていたデータ転送処理を完了した一時計算機資源である計算機資源131を解放する。
また、データ転送処理が、当該データ転送処理での転送元または転送先となる記憶領域または管理領域112毎に、複数の世代のデータ転送処理からなる場合には、領域割当部134は、データ転送処理に際して、同じ記憶領域または管理領域112に関する複数の世代のデータ転送処理を、同じ計算機資源131に割り当ててよい。計算機資源131は、処理結果が正常となる順に、同じ記憶領域または管理領域112に関する複数の世代のデータ転送処理を実行してよい。
【0013】
本開示におけるシステム100は、上記のような機能構成を有するので、前述の[発明の効果]で示した効果を備えることが出来る。
本開示におけるシステム100は、必要な期間のみ、ボリュームの設定をマルチアタッチ可能な設定にすることが出来るので、ボリュームへのアクセスに関するセキュリティ強度を高めることが出来る。また、ボリュームの設定内容により課金の程度が定められている場合には、システム100は、必要な期間のみ、ボリュームの設定をマルチアタッチ可能な設定にすることにより、ボリュームを利用する際の費用を抑えることが出来る。
さらに、本開示におけるシステム100は、割り当てられたデータ転送処理を完了した計算機資源から順次解放することが出来るので、状況の変化に応じた計算機資源を提供することが出来る。
加えて、本開示におけるシステム100は、データ転送処理が、当該データ転送処理での転送元または転送先となる記憶領域または管理領域112毎に、複数の世代のデータ転送処理からなる場合に、処理結果が正常となるように、データ転送処理を実行出来る。
【0014】
2.本開示の実施形態を実現するためのコンピュータアーキテクチャ
図2は、本開示の実施形態を実現するためのコンピュータアーキテクチャを示す。
システム100を実現するために、情報処理装置(例えばCPU)201と、記憶装置(例えばメモリ)202と、不揮発性記録媒体(例えば、不揮発性メモリ、不揮発性ディスク装置)203と、外付け記録媒体用ドライブ(例えばディスクドライブ)204と、表示または出力装置(例えば、ディスプレイ、印刷機)206と、入力装置(例えば、マウス、キーボード、撮像装置、センサ)207と、通信装置(例えば、有線通信用通信装置、無線通信用通信装置。所定のプロトコルに従って他のシステム、サービス、装置またはサーバとの通信を制御するネットワークインターフェース装置(NIC)でよい。)208と、外部入出力用ポート209の一部または全部が、相互接続部(例えば、バス、クロスバスイッチ)210にて相互接続されていてよい。
不揮発性記録媒体203には、プログラム220a及び様々な情報が記録されてよい。様々な情報としては、不揮発性記録媒体203には、例えば、各種データベース(DB)221または各種情報222が記録されてよい。以上に代えて、上記したプログラムまたは様々な情報の一部または全部を、図2の外部から取得(アクセス)する態様でもよい。外付け記録媒体用ドライブ204は、外付け記録媒体(例えば、可搬性記録ディスク(DVD等)、ICカード、SDカード)205を接続することが出来る。なお、この外付け記録媒体205から、不揮発性記録媒体203や記憶装置202に、プログラム220aや上記した様々な情報を転送し記憶する態様でもよい。また、プログラム220aや上記した様々な情報が、通信装置208、外部入出力用ポート209または入力装置207経由でもたらされて、不揮発性記録媒体203や記憶装置202に記憶されてもよい。
図2のアーキテクチャが、システム100、システム100内のサービス、装置、各部(機能部)または各部の部分として機能する(一つまたは一連の処理(ステップ)を実行する)ために、プログラム220aは、(例えば不揮発性記録媒体203から)記憶装置202にローディングされてよい。ローディング後のプログラムは図2では220bで示される。そして情報処理装置201が、(必要に応じて不揮発性記録媒体203等に存在する様々な情報も用いて、)プログラム220bを実行してよい。プログラム220bの実行により、システム100、システム100内のサービス、装置、各部(機能部)または各部の部分の機能が実現される(一つまたは一連の処理(ステップ)が実行される)。この際に記憶装置202に一時的に形成される各種バッファ223も適宜用いてよい。
【0015】
3.本開示の第1の実施形態(リストア処理)
第1の実施形態は、バックアップされたデータをクラウド上の(ボリュームの一例である)論理ボリュームに短時間でリストアするための構成を有する。また、以下では、リストア処理を行う計算機資源として、一時計算機資源を用いる例を示している。
【0016】
3の1.本開示の第1の実施形態(リストア処理)のシステム構成
3の1の1.本開示のシステムを包含する計算機システムのシステム構成
図3は、本開示の第1の実施形態に係るシステム100を包含する計算機システム300のシステム構成を示す。図3に示す計算機システム300は、端末380にとってのオンプレミス側であり、主たる業務を行うデータセンタ301と、端末380にとってのクラウド側であり、バックアップ処理の転送先またはリストア処理の転送先となるデータセンタ302を含む。データセンタ301は例えばユーザがIT資産として所有するオンプレミスシステムであり、オンプレミスストレージ装置310とサーバ群311とを備える。データセンタ302は例えばパブリッククラウドサービスプロバイダが提供する仮想データセンタである。データセンタ302は、ストレージボリュームサービス320、ストレージ運用管理サービス330、バックアップデータストア340、クラウドリストアシステム350、これらを相互に接続する内部ネットワーク360、及び、一時的に構築され利用される関連リソース群390から構成される。関連リソース群390は処理のために一時的に構築され利用される計算機資源であり、例えば仮想計算機やコンテナなどの計算機インスタンス、キューサービスやイベント監視部などの周辺サービスが含まれる。データセンタ301、データセンタ302及び端末380は、適当なネットワーク370により相互に接続される。ネットワーク370は例えばインターネットやIP専用線などである。ユーザは、端末380を用いて、両データセンタの機器およびサービスに対してアクセスすることが出来る。端末380は例えばPCや携帯端末などである。なお図3に示されるネットワーク370による経由に代えて、または、ネットワーク370による経由とともに、各データセンタ301、302や端末380が、別の種類のネットワークを経由して相互接続してもよい。
なお図3におけるデータセンタ302、ストレージボリュームサービス320及びバックアップデータストア340のそれぞれは、図1におけるシステム100、第1記憶部101及び第2記憶部102のそれぞれに対応付けられる。また図3におけるクラウドリストアシステム350と、関連リソース群(計算機資源)390の一部または全部は、図1におけるデータ転送部103に対応付けられる。図3のストレージ運用管理サービス330の一部も、図1におけるデータ転送部103に含まれるとしてよい。
このように、本開示は、クラウドサービスにおいて有効に活用することが出来る。
【0017】
3の1の2.オンプレミスストレージ装置の装置内構成
図4はオンプレミスストレージ装置310の装置内構成を示す。オンプレミスストレージ装置310は、冗長化された複数のI/O制御サブシステム450(450a、450b)と、装置管理サブシステム460、複数のホストインターフェース(I/F)430(430a、430b)と、複数のドライブ440(440-0~440-n)、管理ネットワークインターフェース(I/F)480と、複数のバックアップ/リストア用インターフェース(I/F)410(410a、410b)を備える。ホストインターフェース430はストレージネットワーク400を介してサーバ群311と通信するためのものである。サーバ群311はホストインターフェース430を通じて、論理ボリューム470に読み書きI/Oを行う。ドライブ440は、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの物理記憶デバイスである。管理ネットワークインターフェース480は、ネットワーク370を介して端末380と通信するほか、ストレージ運用管理サービス330と通信する。I/O制御サブシステム450は、接続されたドライブ440の記憶領域に基づいて論理ボリューム470(470-0、470-1)を構成し、サーバ群311に提供する。また、サーバ群311から発行された論理ボリューム470への読み書きI/Oに基づいて、I/O制御サブシステム450はドライブ440への読み書きI/Oを発行しI/O処理を実施する。このほか、I/O制御サブシステム450は、論理ボリューム470を所定の論理ブロックサイズ(例えば8キロバイト)単位で管理し、どこにデータが書き込まれたかを記録する。I/O制御サブシステム450はプロセッサ(CPU)451とメモリ452を有する。プロセッサ451は、メモリ452に格納されているプログラムに従って上述したような各種処理を実行する。メモリ452は例えばRAM(Random Access Memory)であり、プロセッサ451で実行されるプログラムや、必要な情報を記憶する。装置管理サブシステム460は、オンプレミスストレージ装置310の各種設定や監視を行う処理を実行する。装置管理サブシステム460は、ネットワーク370と管理ネットワークインターフェース480を介して、端末380からユーザの操作指示を受け付ける。装置管理サブシステム460は、内部のプロセッサ(CPU)461がメモリ462に記憶されるプログラムを実行することにより、各種処理を行う。なお、図4の例では、装置管理サブシステム460は、オンプレミスストレージ装置310の内部に設けられているが、装置管理サブシステム460は、オンプレミスストレージ装置310の外部に設けられてもよい。また、装置管理サブシステム460が提供する機能の一部をストレージ運用管理サービス330が実現してもよい。バックアップ/リストア用インターフェース410は、ネットワーク370を介して、バックアップデータストア340と接続され、論理ボリューム470のバックアップ処理を行う。バックアップ/リストア用インターフェース410は、バックアップデータストア340とデータを送受信するためのデータ変換転送制御部420(図4では「変換転送制御420」と略記される。)を備えており、データ形式の変換や圧縮、データ構成の解釈、格納に必要な付加情報の生成を行う。またバックアップ/リストア用インターフェース410はバックアップ処理が完了した際に、ストレージ運用管理サービス330に完了通知とバックアップ内容に関するサマリ情報を送信する。当該サマリ情報は、例えば、バックアップ処理に対応する(後述の)バックアップカタログを指し示すポインタとなりうるもの(例えば、(後述の)オブジェクト名やオブジェクトキー)を含んでよい。
【0018】
3の1の3.ボリュームの管理領域と差分管理ビットマップ(第1管理情報)
図1の1つのボリューム111や図4の1つの論理ボリューム470(さらには、後述のクラウド側のデータセンタ302で管理される1つの論理ボリューム1070及び2070)のそれぞれが有するデータ群は、複数の管理領域112に分けて管理されてよい。また管理領域112のそれぞれは、当該管理領域112内のいずれの位置のデータをバックアップ処理の対象とすべきであるかを示す第1管理情報を伴ってよい。以下では、ボリュームの例を論理ボリューム470とし、第1管理情報の例を差分管理ビットマップ500としたものが主に説明される。以下の説明は、後述の論理ボリューム1070及び2070にも適用出来る。また、以下の説明は、論理ボリュームではない物理的なボリュームにも適用出来る。つまり、本開示は、論理ボリュームには限定されない。
図5はオンプレミスストレージ装置310内部における論理ボリューム470の管理状況を模式的に表した図である。論理ボリューム470(図1のボリューム111に対応付けられる。)は、一定のブロックサイズごとにLBA(Logical Block Address)を割り当て、サーバ群311からライトされた(ライト)データ(ブロックデータ)510の格納場所を管理している。論理ボリューム470は一般には大容量であるので、オンプレミスストレージ装置310は、内部的に(例えば32ギガバイト毎に)複数の管理領域571A、571B、571C(それぞれ、図1の管理領域112A、112B、112Cに対応付けられる。)に分けて、管理領域毎に第1管理情報を伴わせる。オンプレミスストレージ装置310は、(ライト)データ(ブロックデータ)510の格納の有無を、(第1管理情報の実施形態のひとつである)差分管理ビットマップ500(500A、500B、500C)により管理する。差分管理ビットマップ500は、論理ボリューム470の管理領域571A、571B、571Cに対応して設けられる。論理ボリューム470に新たな(ライト)データが書き込まれると、差分管理ビットマップ500では、(ライト)データの格納先LBAに該当するビットがON(図5では黒四角で表現される。)に変更され、(ライト)データの書き込みがあったことが当該差分管理ビットマップ500に記録される。差分管理ビットマップ500は、バックアップが取得される度に新たなビットマップに交換される。つまり、バックアップ処理の各世代においてバックアップすべき差分データ(ライトデータ)とその所在を判別することが出来る。
なお、ストレージ装置によってはボリュームのスナップショット取得機能(例えば、ボリュームに含まれる全てのLBAのブロックデータのスナップショットを取得する機能)を有するものがある。この場合は、ストレージ装置は、2つの世代のスナップショットを比較することによって、差分管理ビットマップ500の作成を代替してもかまわない。あるいは、差分管理ビットマップが提供する機能と同様の効果を有する管理情報がスナップショット取得機能に伴うのであれば、ストレージ装置は当該管理情報を利用してもよい。
また、ストレージ装置は、ビットマップに代わり、(ライト)データによる更新箇所の開始LBAと(ライト)データのサイズ(例えば、ブロック数)をリストとして記録するなど、更新情報を維持可能な別の手段によって管理してもよい。
このように、本開示は、ボリューム内の管理領域毎に第1管理情報(例えば、差分管理ビットマップ500)を備えるので、バックアップ処理の対象となるデータ(ブロックデータ)を特定出来て、バックアップ処理を効率よく行うことが出来る。
また、本開示は、ロジカルブロックアドレッシング空間(LBA空間)におけるブロック単位の空間管理を活用出来る。(なお、変形例においては、ブロック単位でないアドレスがボリュームに設定されてもよい。そのようなボリュームには、そのアドレス管理に適した第1管理情報が設けられればよい。)
【0019】
3の1の4.バックアップ設定画面
バックアップ処理の設定は、端末380上に表示されるバックアップ設定画面をユーザ等が操作することにより行うことが出来る。以下では、バックアップ処理の転送元がオンプレミスストレージ装置310である例で説明する。以下の説明は、バックアップ処理の転送元が、後述のリモート側のデータセンタ302にある論理ボリューム1070または2070であるケースにも適用出来る。
図6は、オンプレミスストレージ装置310がバックアップ/リストア用インターフェース410を通じてバックアップ処理を行うための、端末380上に表示されるバックアップ設定画面600を示した図である。バックアップ設定画面600は端末380を通じて操作される。なお、バックアップ設定画面600に表示するための情報を、端末380が主体的に準備してもよいし、端末380以外の装置(例えば、データセンタ301や、データセンタ302内のストレージ運用管理サービス330)が主体的に準備してもよいし、複数の装置が連携して準備してもよい。
バックアップ設定画面600は、論理ボリューム選択領域601と、バックアップデータストア選択領域602と、バックアップスケジュール設定領域603を含む。論理ボリューム選択領域601は、バックアップ対象とする論理ボリューム470を選択する領域である。図6の例では、論理ボリューム番号7Fで示されるVolume B(16テラバイト)の論理ボリューム470が選択されている。バックアップデータストア選択領域602は、例えばドロップダウンボックス(プルダウンメニュー)で構成され、論理ボリューム470のバックアップ処理の転送先とするバックアップデータストア340を選択する領域である。バックアップデータストア選択領域602には、別のバックアップストア登録画面(図示せず)を用いて既に登録されているバックアップデータストア340が選択可能に表示される。図6の例では、「ABC Cloud (Account 1940032)」で示されるバックアップデータストア340(アカウント名付き)が選択されている。(なお、アカウントは、例えば、ユーザ等に対して付与されるものであってよい。)バックアップスケジュール設定領域603は、バックアップスケジュールを設定するための領域である。バックアップスケジュール設定領域603には、例えば1回限りのバックアップ処理の実行を設定するためのOne shot指定ボタン631と、定期的なバックアップ処理の実行を設定するためのPeriodically指定ボタン632が表示される。なお、ユーザ等がOne shot指定ボタン631を選択した場合には、ユーザ等はさらに、今すぐ実行すること(Now)か、実行開始時刻を指定することができる。また、ユーザ等がPeriodically指定ボタン632を選択した場合には、ユーザ等は、繰り返しの単位となる期間(例えば、日次(Daily)、週次(Weekly)、月次(Monthly))を指定出来る。ユーザ等が日時(Daily)を指定した場合は、ユーザ等は、実行開始時刻、実行間隔時間、最大の実行回数等を指定することが出来る。例えば、実行間隔時間と最大の実行回数については、いずれか一方のみをユーザ等が指定出来るようにしてよい。最大の実行回数が指定された場合には、オンプレミスストレージ装置310は、当該最大の実行回数のバックアップ処理を、指定された1つの単位となる期間(日次(Daily)、週次(Weekly)、月次(Monthly))内で等間隔に近い状態で実行するように、バックアップ処理の実行間隔時間を定めてよい。また、図6の例では、日時(Daily)が指定された例を示しているが、週次(Weekly)または月次(Monthly)が指定された場合には、バックアップ設定画面600には、週次または月次のバックアップ処理の設定に適した設定画面が表示されてよい。図6の例では、バックアップ処理のスケジュールとして、定期的な実行が選択されており、日次での実施、毎日0時00分から30分間隔でバックアップ処理を行うことが指定されている。OKボタン605は、バックアップ設定画面600で設定されたバックアップ処理のスケジュールを登録する指示を受け付けるボタンである。OKボタン605が押下されると、設定されたバックアップ処理のスケジュールが装置管理サブシステム460のスケジューラに登録されると共に、ストレージ運用管理サービス330にもスケジュールに関する情報が送信される。(なお、スケジューラは、例えば、装置管理サブシステム460がスケジューラプログラムを実行することにより構築されるものであってよい。)バックアップ処理での転送元がオンプレミスストレージ装置310内の論理ボリューム470である場合は、バックアップ処理の処理主体は、装置管理サブシステム460、I/O制御サブシステム450またはバックアップ/リストア用インターフェース410のいずれでもありうる。バックアップ処理での転送元がストレージボリュームサービス320内の論理ボリューム1070または2070である場合は、バックアップ処理の処理主体は、ストレージ運用管理サービス330であってよい。
【0020】
3の1の5.世代毎のバックアップ処理
1つのボリューム(論理ボリューム)がバックアップ処理される際に、1つのボリュームの全てのデータのスナップショットが取得される手法以外の手法を用いる場合には、バックアップ処理とリストア処理において、世代管理がされることになる。具体的には、バックアップ処理は、前回のバックアップ処理の時点以降に、当該バックアップ処理での転送元となるボリュームにライトされたデータのみを、第2記憶部102であるバックアップデータストア340に転送する差分バックアップ処理となる。また、リストア処理は、当該リストア処理により復元する時点を示す世代以前の全ての世代のリストア処理を古い世代から順に実行する処理となる。
図7A図7B及び図7Cは、バックアップ処理が行われる際、バックアップ処理されるブロックデータ群721、722及び723が差分として抽出される様子を模式的に示す。図7A図7B及び図7Cの例では説明上、記号「A」「B」「C」が用いられるが、実際にはこれらのデータの更新の有無は先述した差分管理ビットマップ500を用いて管理される。図7A図7B及び図7Cでは、差分管理ビットマップ500の記載は省略される代わりに、ONに対応するブロックは便宜的に黒反転で示される。図7Aは初回のバックアップ処理の様子を示している。初期の論理ボリューム内の格納データの状態710と、今回(1世代目の)バックアップ処理する時点での論理ボリューム内の格納データの状態711とを比較すると、新たに「A」「B」「C」で示されるブロックの書き込みがされていることが分かる。そのため、ブロックデータ群721として「A」「B」「C」が抽出される。図7Bは2回目の(2世代目の)バックアップ処理の様子を示している。前回(1世代目の)バックアップ時の論理ボリューム内の格納データの状態711に対し、今回(2世代目の)バックアップ時点での論理ボリューム内の格納データ712を比較すると、「A’」で示されるブロックが更新されていることが分かる。そのため、ブロックデータ群722としてブロック「A’」が抽出される。図7Cは3回目の(3世代目の)バックアップ処理の様子を示している。前回(2世代目の)バックアップ時の論理ボリューム内の格納データ712に対し、今回(3世代目の)バックアップ時点での論理ボリューム内の格納データ713を比較すると、「B’」「C’」で示されるブロックが更新されていることが分かる。そのため、ブロックデータ群723としてブロック「B’」「C’」が抽出される。
なお、上述より明らかなように、各世代は更新差分のみバックアップ処理されるため、リストアする際には前の世代(親世代)のバックアップデータと重ね合わせが必要になる。例えば論理ボリュームが図7Bの712の状態にリストアされるためには、1世代目のブロックデータ群721を用いて「ABC」が復元され、その後2世代目のブロックデータ群722を用いて「A’」が復元される(「A」が「A’」で上書きされる)必要がある。このため後述するリストア処理では複数世代のバックアップデータを取り扱うことがある点に注意が必要である。リストア処理の効率化のため、ブロックデータ群721から「BC」のみが復元され、ブロックデータ群722から「A’」が復元されてもよい。
【0021】
3の1の6.バックアップデータストア(第2記憶部)の内部構成
第2記憶部102に対応付けられるバックアップデータストア340は、オブジェクトストレージ形式のものとしてよい。オブジェクトストレージ形式のバックアップデータストアは、バックアップ処理での転送先やリストア処理での転送元として、広帯域を提供出来る。以下では、バックアップデータストア340の内部構成を説明する。
図8はバックアップデータストア340にバックアップデータ121が格納されている様子を示す。本実施形態におけるバックアップデータストア340は、例えばパブリッククラウド側にあるオブジェクトストレージ形式のストアである。バックアップデータストア340については、アクセス要求元と(バックアップデータストア340内の)アクセス先(例えばバケット)の組み合わせ毎に、アクセス権の有無は設定され得る。
図8の例では、バックアップデータストア340は、オブジェクトストレージ形式におけるバケット801、バケット802、バケット803が含まれてよい。バケットのそれぞれはバックアップ処理の世代のそれぞれに対応する。また、図示は省略するが別の論理ボリュームのバックアップ処理による別のバケットも、バックアップデータストア340に含まれてよい。バケット801は論理ボリューム番号7Fで示される論理ボリュームの1世代目のバックアップデータ(Vol#7F Gen1)を格納しており、バケット名vsp56342-7f-001で識別される。バケット802は論理ボリューム番号7Fで示される論理ボリュームの2世代目のバックアップデータ(Vol#7F Gen2)を格納しており、バケット名vsp56342-7f-002で識別される。バケット803は論理ボリューム番号7Fで示される論理ボリュームの3世代目のバックアップデータ(Vol#7F Gen3)を格納しており、バケット名vsp56342-7f-003で識別される。バケット801は、差分管理ビットマップ(第2管理情報)811、ブロックデータ群812、バックアップカタログ810を、それぞれオブジェクトファイルとして格納している。ここで、差分管理ビットマップ(第2管理情報)811、ブロックデータ群812は、1つの論理ボリュームに含まれる管理領域571または112(A、B、C…)毎に分かれている。各オブジェクトファイルには、種別ごとに連番でのオブジェクト名が付けられ、関連性が判別可能なように格納される。例えば、差分管理ビットマップ811A、811B、811Cには、順に「bitmap-7f-001.000」「bitmap-7f-001.001」「bitmap-7f-001.002」、ブロックデータ群812A、812B、813Cには、順に「block-7f-001.000」「block-7f-001.001」「block-7f-001.002」のように付される。差分管理ビットマップ(第2管理情報)811A、811B、811Cは、図5で示した差分管理ビットマップ(第1管理情報)500に対応するものであり、論理ボリュームにおける差分データ(ライトデータ、ブロックデータ)の格納位置を示す情報である。ブロックデータ群812A、812B、812Cは、図7Aで示したブロックデータ群721に対応するものであり、差分管理ビットマップ811A、811B、811C(500A、500B、500C)に基づいて抽出された複数のブロックデータをまとめたものである。図8の例では、ブロックデータ群812A、812B、813Cのそれぞれは単一のファイルとして図示しているが、サイズに応じて、複数のオブジェクトファイルに分割されることもある。バックアップカタログ810はバックアップ処理のサマリ情報を記載したものであり、詳細については図9にて後述する。同様にして、バケット802は、差分管理ビットマップ821A、821B、821C、ブロックデータ群822A、822B、822C、バックアップカタログ820を、それぞれオブジェクトファイルとして格納している。バケット803も同様であるため説明は割愛する。
なお本実施形態では、バックアップ処理の情報は、世代ごとに異なるバケットに格納されるものとしたが、複数の世代分のバックアップ処理の情報が1つのバケットに格納されてもよい。バケットに格納するオブジェクトファイルのオブジェクト名は、世代に関する情報を含むものである。そのため1つのバケットに複数の世代分のバックアップ処理の情報を含めても支障は生じない。バックアップデータストア340の各オブジェクトファイルへのアクセスは、オブジェクト名、バケット名、およびアカウント名やバックアップデータストアのURLアドレス等から構成されるオブジェクトキーを用いてアクセスする。
図9A図9Bはバックアップデータストア340のバケットのそれぞれに格納されるバックアップカタログが持つ情報について説明したものである。図9A図8のバケット801に含まれる1世代目のバックアップカタログ810の内部構成を示している。バックアップカタログ810は、オブジェクト名が「catalog-7f-001-0.dat」であり、バックアップ元の装置製品番号910、バックアップ処理での転送元のボリューム番号911、ボリュームサイズ912、ボリューム名称(ニックネーム)913、バックアップ世代番号914、バックアップ取得時刻915、親世代のカタログ名916、差分管理ビットマップのファイル数917(図面では「差分管理ビットマップのファイル数」は「差分管理ビットマップ数」または「ビットマップ数」と略記される。)を情報として持つ。図9Aの例では、装置製品番号は「VSP56432」、バックアップ処理での転送元ボリューム番号は「0x7F」、ボリュームサイズは「16.0TB」(16.0テラバイト)、ボリュームの名称(ニックネーム)は「Volume B」であり、バックアップ世代番号は「01」(1世代目)、バックアップ取得時刻は「2021-04-28 0:00」である。また、1世代目であるゆえ親世代は存在しない。そのため、親カタログのカタログ名は空欄「-」である。差分管理ビットマップのファイル数は「512」である。つまり、1つの論理ボリュームは512個の管理領域から構成されており、差分管理ビットマップのオブジェクトファイルが、オブジェクト名が「bitmap-7f-001.000」から「bitmap-7f-001.511」として、512個存在していることを意味する。
図9B図7のバケット802に含まれる2世代目のバックアップカタログ820の構成を示している。バックアップカタログ820もバックアップカタログ810と同様の構成である。バックアップカタログ820は、オブジェクト名が「catalog-7f-002-0.dat」である。図9Bの例では、装置製品番号は「VSP56432」、バックアップ処理での転送元のボリューム番号は「0x7F」、ボリュームサイズは「16.0TB」、ボリュームの名称(ニックネーム)は「Volume B」であり、バックアップ世代番号は「02」(2世代目)、バックアップ取得時刻は「2021-04-28 3:00」になっている。親世代のカタログ名は、バケット名「vsp56342-7f-001」の下のオブジェクト名「catalog-7f-001-0.dat」である。これはバックアップカタログ810(図9A)を指している。つまり、この世代のリストア処理を行う際には、バックアップカタログ810が示す1世代目のバックアップデータのリストア処理が先に必要である。差分管理ビットマップのファイル数は「512」である。図9Aと同様に、論理ボリュームは512個の管理領域から構成されており、差分管理ビットマップのオブジェクトファイルが、オブジェクト名が「bitmap-7f-002.000」から「bitmap-7f-002.511」として、512個存在していることを意味する。
このように、本開示は、バックアップされたボリューム内の管理領域毎に第2管理情報(例えば、差分管理ビットマップ)を備えるので、リストア処理の対象となるデータを、リストア処理での転送先のボリュームにおける適切な位置に配置することが出来る。
また、本開示は、上記したようなオブジェクトストレージ形式のオブジェクトストアが有する広帯域を充分活かすことが出来る。
【0022】
3の1の7.ストレージボリュームサービス(第1記憶部)の論理構成
図10は実施形態1における第1記憶部101に対応付けられるストレージボリュームサービス320の論理構成を示す。クラウド側にあるデータセンタ302に備えられたハードウェア資源(例えば、図2に示されるアーキテクチャに含まれるハードウェア資源。そのなかには、仮想化ドライブを構築するための記憶装置または記録媒体である物理的ドライブも含んでよい。)とソフトウェア資源により、図10に示される論理構成が構築される。ストレージボリュームサービス320は、複数のストレージコントローラ仮想計算機1011、1012…101n(以下、「仮想計算機」は「VM」と略記される。図面の多くの箇所でも同様である。)、複数の仮想化ドライブ1021、1022…102n、1031、1032…103n(図10では「仮想化ドライブ」は「ドライブ」と略記される。)、アクセスコントロール層1040、論理ボリューム1070(1070-1、1070-2、1070-3…)、アクセスエンドポイント1050から構成される。複数のストレージコントローラVM1011、1012…101nは、複数の仮想化ドライブ1021、1022…102n、1031、1032…103nを用いて、互いに連携することで耐障害性を確保する(例えば、RAIDを構成する)よう動作し、論理ボリューム1070(1070-1、1070-2、1070-3…)を提供する。また、オンプレミスストレージ装置310と同様に、ストレージボリュームサービス320(例えば、ストレージコントローラVM)は、データがどのLBAにライトされたか管理する機能を有しており、例えば図5に示すようにLBA領域(管理領域571または112)毎の差分管理ビットマップ500を有する。論理ボリューム1070(1070-1、1070-2、1070-3…)の群は、ストレージボリュームサービス320が提供するストレージボリューム群である。図3に示したストレージ運用管理サービス330は、任意のボリュームサイズにて、論理ボリューム1070を作成する。図10の例では論理ボリューム1070(1070-1、1070-2、1070-3…)はIPネットワーク経由でアクセス可能なiSCSIブロックボリュームである。アクセスコントロール層1040は、論理ボリューム1070へのアクセス権を管理しており、ホストグループ、(アクセス要求元が有する)IPアドレス、ポート、プロトコル等を組み合わせて用いることにより、許可された計算機資源へのアクセスのみを通すよう動作する。アクセスエンドポイント1050は、ストレージボリュームサービス320によって提供される論理ボリューム1070に対して、他の計算機資源がアクセスするための終端点(エンドポイント)である。図10の例は、論理ボリューム1070-1のエンドポイント情報を示している。図10の例では、論理ボリューム1070-1にアクセスするためには、他の計算機資源は、(アクセス先としての)IPアドレスとして「10.0.2.1」、iSCSIノード名として「iqn.yyyy-mm.com.example」、iSCSIターゲット名として「logical-volume-230a」を用いてアクセスすることになる。
なお上記では、論理ボリューム1070は、複数のストレージコントローラVMによって提供されるiSCSIボリュームであるとしたが、クラウドサービスベンダが用意する標準的なストレージボリュームサービスであってもよい。
【0023】
3の1の8.リストア処理のために構築される計算機資源
本開示の第1の実施形態のクラウドリストアシステム350は、関連リソース群として計算機資源390を構築(起動)する。当該計算機資源390がリストア処理を行う。
図11は第1の実施形態におけるクラウドリストアシステム350と、クラウドリストアシステム350が処理時に構築(起動、生成)する計算機資源390、ストレージボリュームサービス320(第1記憶部101)、バックアップデータストア340(第2記憶部102)の関係を示した図である。なお、図3で示したように、これらは互いに内部ネットワーク360で接続され通信できるよう構成されている(図示省略)。なお、計算機資源390を実現するための1つのハードウェア資源に、図11の計算機資源390内に示される複数の計算機資源が対応付けられることがありうる。
クラウドリストアシステム350は、図2で示したような情報処理装置201を備えるとともに、記憶装置202または不揮発性記録媒体203を備える。記憶装置202または不揮発性記録媒体203は、リストア操作制御プログラム1151(図面では「プログラム」は「PG」と略記される。)、リストアプラン生成プログラム1152、ボリュームサービス設定プログラム1153、仮想計算機(VM)OSイメージ1154(図面では「イメージ」は「IM」と略記される。)、インスタンス管理プログラム1155、キュー管理プログラム1156を記憶する。情報処理装置201がこれらのプログラムまたはイメージを実行することにより、クラウドリストアシステム350が行う処理が実現される。リストア操作制御プログラム1151は、端末380からリストア指示を受けた際、リストア処理の完了までの全体処理を指示するためのメインプログラムである。リストアプラン生成プログラム1152は、対象となる世代を復元(リストア)する際に、他の世代(親世代)の復元(リストア)が必要か否かを判断し、実行手順を構築するためのプログラムである。ボリュームサービス設定プログラム1153は、ストレージボリュームサービス320に含まれる論理ボリューム1070やアクセスコントロール層1040の情報を取得し、VMインスタンス1191が論理ボリューム1070にアクセスできるように設定するためのプログラムである。VMインスタンス1191については後述する。VMOSイメージ1154は、VMインスタンス1191を動作させるためのOS、及び、その上で動作するプログラムを格納したファイルである。インスタンス管理プログラム1155は、VMインスタンス1191の開始及び終了を制御するためのプログラムである。キュー管理プログラム1156はキューサービス1194およびイベント監視部1195の設定を制御するためのプログラムである。関連リソース群である計算機資源390は、クラウドリストアシステム350の各プログラムまたはイメージが実行されることによって動的に作成される、キューサービス1194(1194A、1194B、1194C)とVMインスタンス1191(1191A、1191B、1191C)とイベント監視部1195を含みうる。キューサービス1194(1194A、1194B、1194C)は、クラウドリストアシステム350からVMインスタンス1191への指示をキューイングするために用いられる計算機資源である。各キューサービス1194は、他の計算機資源から操作を受けるための識別情報を持つ。VMインスタンス1191は、VMOSイメージ1154を用いて実行されるサーバ計算機資源である。各VMインスタンス1191は、起動時に担当するキューサービス1194の識別情報を引数として渡される。VMのOS起動後に、VMインスタンス1191はVMOSイメージ1154に含まれるプログラムを実行することにより、データ転送プロセス1193(1193A、1193B、1193C)を構築(起動)する。データ転送プロセス1193は、引数として渡された識別情報に基づいて、担当するキューサービス1194において、例えばリストア処理の要求の有無を監視する。イベント監視部1195は、例えばキューサービス1194に蓄積されるリストア処理の要求によるキュー長を監視し、キュー長が指定された閾値を超えた/下回った場合にクラウドリストアシステム350に通知する。なお、本実施形態ではクラウドリストアシステム350は独立して図示しているが、ストレージ運用管理サービス330の一部として構成されていてもよい。
【0024】
3の1の9.リストア設定画面
リストア処理の設定は、端末380上に表示されるリストア設定画面をユーザ等が操作することにより行うことが出来る。以下では、リストア処理の転送先がストレージボリュームサービス320(第1記憶部101)内の論理ボリューム1070である例で説明する。なお、後述のリストア設定画面から明らかなように、リストア処理の転送先をオンプレミスストレージ装置310内の論理ボリューム470にすることも可能である。
図12はリストア設定画面1200を示す。リストア設定画面1200は端末380を通じて操作される。その結果、ストレージ運用管理サービス330は、クラウドリストアシステム350(またはオンプレミスストレージ装置310)にリストア処理を指示する。 なお、リストア設定画面1200に表示するための情報を、端末380が主体的に準備してもよいし、端末380以外の装置(例えば、データセンタ301や、データセンタ302内のストレージ運用管理サービス330)が主体的に準備してもよいし、複数の装置が連携して準備してもよい。
リストア設定画面1200は、バックアップデータストア選択領域1201、ボリューム選択領域1202、バックアップ世代選択領域1203、リストア先選択領域1204、およびリストア実行ボタン1205、キャンセルボタン1206から構成される。バックアップデータストア選択領域1201は、例えばドロップダウンボックス(プルダウンメニュー)で構成され、リストア処理での転送元となるバックアップデータストア340を選択するためのものである。図12の例では(アカウント名と併せて)「ABC Cloud(Account 1940032)」が選択されている。ボリューム選択領域1202は、リストア処理の転送対象となるバックアップデータがバックアップ処理前に対応付けられていた論理ボリュームを選択するためのものである。図12の例では装置番号が「VSP56342」である装置に含まれる、論理ボリューム番号「7F」、論理ボリュームの名称(ニックネーム)が「Volume B」(16テラバイト(16TB))で示される論理ボリューム(バックアップ処理が為された論理ボリューム)が対象として選択されている。バックアップ世代選択領域1203は、ボリューム選択領域1202で選択された論理ボリュームについて、どの世代のバックアップ取得時刻における当該論理ボリュームの状態を復元(リストア)するか(どの範囲の世代群のバックアップデータをリストアするか)を選択するためのものである。図12の例では、「2021年4月28日3:00」に取得された「Backup02」(2世代目)が選択されている。この選択の場合は、リストア処理により、1世代目と2世代目のバックアップデータが論理ボリュームにリストアされることになる。リストア先選択領域1204は、リストア処理での転送先を選択するためのものである。リストア先選択領域1204には、ボリューム選択領域1202で選択された元の論理ボリューム(Original Volume)をリストア処理での転送先とする選択肢である元の論理ボリューム選択1241と、新規の論理ボリューム(New Volume)をリストア処理での転送先として選択する選択肢である新規の論理ボリューム選択1242が示される。ユーザ等が新規の論理ボリューム選択1242を選択した際には、どのストレージシステムを用いて論理ボリュームを作成するかを選択するための、ボリューム選択領域1243が用いられる。図12の例では、新規の論理ボリュームをリストア処理での転送先とすることが選択されており、リストア処理による転送データを格納する新規の論理ボリュームを、クラウドボリュームサービス(Cloud Volume Service)に作成させること(例えば、データセンタ302内のストレージボリュームサービス320に新規の論理ボリューム1070を作成し、リストア処理での転送先とすること)が選択されている。リストア実行ボタン1205は、リストア設定画面1200において設定した内容に基づき実行する際に選択されるボタンである。リストア実行ボタン1205が選択されると、設定内容がストレージ運用管理サービス330(またはオンプレミスストレージ装置310)に送られ、リストア処理が開始される。キャンセルボタン1206は、リストア設定画面1200において設定した内容を棄却し、取り止める際に選択されるボタンである。なお、リストア処理での転送先がオンプレミスストレージ装置310である場合、リストア処理の処理主体は、装置管理サブシステム460、I/O制御サブシステム450またはバックアップ/リストア用インターフェース410のいずれでもありうる。
【0025】
3の2.本開示の第1の実施形態(リストア処理)の処理
以上で説明した第1の実施形態のシステム構成を踏まえて、以下では、第2記憶部102に対応付けられるバックアップデータストア340から、第1記憶部101に対応付けられるストレージボリュームサービス320内の論理ボリューム1070へのリストア処理のために行われる一連の処理を説明する。
【0026】
3の2の1.クラウドリストアシステムへリストア処理の実行を指示するまで
以下ではまず、ユーザ等からリストア設定画面1200を用いて入力されたリストア処理の設定内容を受理したストレージ運用管理サービス330が、クラウドリストアシステム350にリストア処理の実行を指示するまでを説明する。
図13は、図12のリストア設定画面1200を用いてリストア処理での転送先にクラウド側であるストレージボリュームサービス320が選択された際に、ストレージ運用管理サービス330がクラウドリストアシステム350にリストア処理を指示するまでの処理を示したフローチャートを示す。
ステップ1301にてストレージ運用管理サービス330は、リストア設定画面1200で指定された情報を受理すると、バックアップ処理の完了時に受信したサマリ情報を探索し、リストアするバックアップデータに対応したバックアップカタログのオブジェクトキーを取得する。次に、ステップ1302にてストレージ運用管理サービス330は、ストレージボリュームサービス320にアクセスし、リストア処理での転送先となる論理ボリューム1070を作成する。そして、ステップ1303にてストレージ運用管理サービス330は、当該論理ボリューム1070にアクセスするのに必要なアクセスエンドポイント1050の情報を取得する。その後、ステップ1304にてストレージ運用管理サービス330は、クラウドリストアシステム350に、リストア処理での転送元となるバックアップデータストア340(図12の例では「ABC Cloud(Account 1940032)」で示されるもの)へのアクセス権を付与する。最後に、ステップ1305にてストレージ運用管理サービス330は、先に取得したバックアップカタログのオブジェクトキーと、論理ボリューム1070のアクセスエンドポイント1050の情報を用いて、クラウドリストアシステム350に、リストア処理の実行を指示する。
【0027】
3の2の2.リストア処理の実行を指示されたクラウドリストアシステムの処理
ストレージ運用管理サービス330からリストア処理の実行を指示されたクラウドリストアシステム350は、当該リストア処理のために構築(起動)する一時計算機資源(例えば、VMインスタンス1191)の数を判定して、判定した数の一時計算機資源(VMインスタンス1191)を構築(起動)する。また、クラウドリストアシステム350は、起動した一時計算機資源(VMインスタンス1191)のそれぞれに対して、リストア処理での転送先となる共通1つの論理ボリューム1070をマウントする。また、クラウドリストアシステム350は、起動した一時計算機資源(VMインスタンス1191)のそれぞれに、リストア処理の対象となるバックアップデータに関して、世代と管理領域の組み合わせごとのバックアップデータを割り当てる。上記の処理を順を追って、以下では説明する。
図14は、ストレージ運用管理サービス330からリストア処理の実行の指示を受けた際の、クラウドリストアシステム350が行う処理のフローチャートを示す。
はじめに、ステップ1401にて、クラウドリストアシステム350は指示の際に受領したオブジェクトキーを用いて、バックアップデータストア340からバックアップカタログを取得する。そして、ステップ1402にてクラウドリストアシステム350は、リストアプラン生成プログラム1152を実行して、バックアップデータの親子関係を調べ、リストア処理を行うべきバックアップデータのリスト(リストアプラン)を作成する。
【0028】
3の2の2の1.リストアプランの作成
図15はクラウドリストアシステム350がリストアプラン生成プログラム1152を実行することにより、リストアプラン(リストア処理を行う対象のバックアップカタログ群の順序リスト)を構築する様子を示す。
ステップ1501にてリストアプラン生成プログラム1152を実行するクラウドリストアシステム350は、リストア処理を行う対象のバックアップデータのバックアップカタログを取得すると、当該バックアップカタログを一時リストの先頭に追加する。そして、ステップ1502にてリストアプラン生成プログラム1152を実行するクラウドリストアシステム350は、当該バックアップカタログを解析し、親世代のバックアップカタログが存在するか否かを確認する。親世代のバックアップカタログが存在した場合(ステップ1502でYes)、すなわちリストア処理に必要な前世代の差分のバックアップデータが存在した場合、ステップ1503にてリストアプラン生成プログラム1152を実行するクラウドリストアシステム350は、バックアップデータストア340から親世代のバックアップカタログを取得する。再びのステップ1501にて親世代のバックアップカタログは一時リストに順に追加される。以降同様にして再帰的に処理を繰り返す。一方、取得したバックアップカタログにこれ以上の親世代のバックアップカタログが存在しなかった場合(ステップ1502でNo)、ステップ1504にてリストアプラン生成プログラム1152を実行するクラウドリストアシステム350は、一時リストに格納されたバックアップカタログを、一時リストの最後尾から逆順に(LIFO的に)リストアプランのリストへ追加する。つまりリストアプランは、リストア処理を行うべき一番古い世代から順に並ぶよう構成される。例えば、2世代目のバックアップ処理の時点の状態となるようにリストア処理が行われる場合には、リストアプランは、1世代目のバックアップカタログ810と2代目のバックアップカタログ820を、この順に含む。そして、ステップ1505にてリストアプラン生成プログラム1152を実行するクラウドリストアシステム350は、クラウドリストアシステム350内で、リストアプランの通知を行う。
図15の説明はここで終わり、図14の説明に戻る。
【0029】
3の2の2の2.リストア処理のために構築(起動)する計算機資源の数の判定
図14のステップ1402の後で、ステップ1404にてクラウドリストアシステム350により構築される設定変更部135は、リストア処理での転送先となる論理ボリューム1070が、マルチアタッチ可能か確認する。マルチアタッチ可能である場合(ステップ1404でYes)は、ステップ1405にて設定変更部135は、リストア処理での転送先となる論理ボリューム1070についてマルチアタッチを有効化する。マルチアタッチ有効化の設定は、例えば、マルチアタッチの許可をイネーブルにすることや、マルチアタッチ可能なディスク種別に変更することで行われてよい。なお、論理ボリューム1070がマルチアタッチ可能とは出来ない場合(ステップ1404でNo)として、仕様上の制約またはユーザ等が有する契約上の制約により、論理ボリューム1070をマルチアタッチに変更することが出来ないことがありうる。
その後、ステップ1406にてクラウドリストアシステム350により構築される計算機資源数判定部132は、リストア処理での転送先となる1つの論理ボリューム1070をマウントすることが可能な計算機資源(例えば、一時計算機資源、VMインスタンス)の数である接続可能ホスト数を確認する。なお接続可能ホスト数を定める要因は様々なことが想定されうる。接続可能ホスト数は、例えば、ストレージボリュームサービス320の設計上の仕様、データセンタ302全体の設計上の仕様、あるいは、データセンタ302が提供するサービスを利用するユーザ等の契約上の制約のいずれかに基づいてよい。
次に、ステップ1407にて計算機資源数判定部132は、ステップ1406で確認された接続可能ホスト数と、リストア処理の対象のバックアップカタログに記載されている差分管理ビットマップのファイル数を比較する。ここで、差分管理ビットマップのファイル数とは、リストア処理の対象となるバックアップデータのうち、1つの世代分のバックアップデータに対応する差分管理ビットマップの数である。つまりは、差分管理ビットマップのファイル数は、リストア処理の対象のバックアップデータについて過去にバックアップ処理を行った際における、当該バックアップ処理での転送元の1つの論理ボリュームに含まれる管理領域571(112)の数である。
差分管理ビットマップのファイル数が接続可能ホスト数よりも多かった場合(ステップ1407でYes)、ステップ1409にて計算機資源数判定部132は、以降のリストア処理のために構築(起動)する計算機資源の数を、ステップ1406で確認された接続可能ホスト数と同数に設定する。一方、差分管理ビットマップのファイル数が接続可能ホスト数以下であった場合(ステップ1407でNo)、計算機資源数判定部132は、リストア処理のために構築(起動)する計算機資源の数を差分管理ビットマップのファイル数と同数に設定する。また、リストア処理の転送先となる論理ボリューム1070がマルチアタッチ不可であった場合には(ステップ1404でNo)、ステップ1408にて計算機資源数判定部132は、リストア処理のために構築(起動)する計算機資源の数を1に設定する。なお、図示は省略するが、クラウドシステム上の仕様(例えば、ストレージボリュームサービス320の設計上の仕様、データセンタ302全体の設計上の仕様、あるいは、データセンタ302が提供するサービスを利用するユーザ等の契約上の制約など)に、上記で示した態様によりステップ1409とステップ1410のいずれかで設定しようとする計算機資源の数が抵触する場合は、抵触しない範囲内で、計算機資源数判定部132は、計算機資源の数を改めて定める。ステップ1406、1407、1408、1409、1410の一部または全部により、計算機資源数判定ステップが構成されるとしてもよい。
このように、本開示は、構築(起動)する計算機資源の数を、ボリュームに関する最大ホスト数と、ボリュームに含まれる管理領域の数の両方を考慮して、適切に定めることが出来る。ここで、本開示は、ボリュームに含まれる管理領域の数を、管理領域に対応付けられる第2管理情報(例えば、差分管理ビットマップ)の数により判断するので、ボリュームに含まれる管理領域の数を適切に判断することが出来る。
【0030】
3の2の2の3.計算機資源の構築(起動)とマウント(マルチアタッチ)設定
リストア処理のために構築(起動)する計算機資源の数を定めてから、ステップ1411にて、クラウドリストアシステム350により構築される計算機資源起動部133は、構築(起動)される計算機資源の数に応じた数のキューサービス1194を作成する。ステップ1412にて計算機資源起動部133は、各キューサービス1194の識別情報とVMOSイメージ1154を用いて、上記の計算機資源の数に応じたVMインスタンス1191を構築(起動)し、VMインスタンス1191とキューサービス1194の紐付けを行う。その後、ステップ1413にて計算機資源起動部133は、ボリュームサービス設定プログラム1153を実行することにより、各VMインスタンス1191がリストア処理での転送先となる共通の1つの論理ボリューム1070にアクセス出来るよう、アクセスコントロール層1040におけるアクセス権の設定を行う。また、計算機資源起動部133は、VMインスタンス1191にバックアップデータストア340へのアクセス権を付与するための処理を行う。そして、ステップ1414にて計算機資源起動部133は、インスタンス管理プログラム1155を実行することにより、リストア処理での転送先となる論理ボリューム1070に対応するアクセスエンドポイント1050への接続パス1192を設定し(接続パス1192の設定により、VMインスタンス1191から論理ボリューム1070へのアクセスが可能となる。)、各VMインスタンス1191に対して、リストア処理での転送先となる共通の1つの論理ボリューム1070をマウントする。その後、ステップ1415にて計算機資源起動部133は、キュー長を監視するイベント監視部1195の設定を行う。ステップ1411、1412、1413、1414、1415の一部または全部により、計算機資源起動ステップが構築されるとしてもよい。
【0031】
3の2の2の4.計算機資源のそれぞれへの処理の割り当て
クラウドリストアシステム350が計算機資源390の構築(起動)を行った後、ステップ1416にてクラウドリストアシステム350により構築される領域割当部134は、ステップ1402及び図15の処理により作成されたリストアプランを参照して、最初に処理すべきバックアップカタログを取得する。そして、ステップ1417にて領域割当部134は、当該バックアップカタログから、差分管理ビットマップのファイル数の情報(図9A図9Bの917)を取得し、差分管理ビットマップのオブジェクトファイル(図8の811、821、831のいずれか)のオブジェクト名と、ブロックデータ群(図8の812、822、832のいずれか)のオブジェクト名を生成する。例えば過去のバックアップ処理での転送元となった論理ボリュームのボリューム番号が7f、当該バックアップ処理の世代が1世代目、差分管理ビットマップのファイル数が512の場合、領域割当部134は、管理領域毎の差分管理ビットマップのオブジェクト名である「bitmap-7f-001.000」~「bitmap-7f-001.511」、及び、管理領域毎のブロックデータ群のオブジェクト名である「block-7f-001.000」~「block-7f-001.511」を生成する。ここで「001」の部分はバックアップ世代番号914に対応し、「000」から「511」の部分は管理領域571(112)の番号に対応する。そして、領域割当部134は、前記オブジェクト名と格納先バケット名、アカウント名、アクセス先バックアップデータストアのURLアドレス等からオブジェクトキーを構成する。ステップ1418にて領域割当部134は、差分管理ビットマップのオブジェクトキーと、対応するブロックデータ群のオブジェクトキーをペアにして、処理対象として、キューサービス1194(1194A、1194B、1194C…)へ順にキューイングする。キューサービス1194の全てに一つずつオブジェクトキーのペアがキューイングされても、残っている全てのオブジェクトキーのペアがキューイングされなかった場合(ステップ1419でNo)(例えばキューサービス1194の数が3であるのに対し、オブジェクトキーのペアが512ある(1つの論理ボリュームに512の管理領域がある)ような場合)は、ステップ1418に戻り、領域割当部134は、残りのオブジェクトキーのペアのキューイングするよう処理を繰り返す。キューサービス1194の全てに一つずつオブジェクトキーのペアがキューイングされることにより、残っていた全てのオブジェクトキーのペアがキューイングされた場合(ステップ1419でYes)、ステップ1420にて、領域割当部134はリストアプランを参照し、次に処理すべきバックアップカタログがあるかを確認する。次に処理すべきバックアップカタログが存在した場合(ステップ1420でYes)、ステップ1421にて領域割当部134は、オブジェクトキーのペアをキューイングする先が最初のキューサービス1194Aになるよう開始点をリセットする。そして、ステップ1416に戻って、領域割当部134は、次に処理すべきバックアップカタログを取得して、処理を繰り返す。なお、ステップ1421にて開始点をリセットするのは、同じLBA管理領域に関する互いに異なった世代のリストア処理を同じVMインスタンス1191が処理するようにすることで、同じ管理領域に関する互いに異なった世代のリストア処理の正しい順序を保障し、リストア処理の世代の入れ違いを生じさせないためである。リストアプランに含まれる全てのバックアップカタログに対応するキューイング処理を終えた場合(ステップ1420でNo)、領域割当部134は、リストア処理のためのオブジェクトキーのペアのキューイング処理を完了する。ステップ1416、1417、1418、1419、1420、1421の一部または全部により、領域割当ステップが構築されるとしてもよい。
【0032】
3の2の2の5.複数の世代を含むリストア処理における計算機資源への処理の割り当て
図16は、図14のステップ1421を詳細に説明するためのものであり、複数の世代を含むリストア処理における計算機資源(VMインスタンス1191)への処理の割り当ての例を示す。図16の例は、バックアップデータストア340からストレージボリュームサービス320の1つの論理ボリューム1070へリストア処理を行うものである。リストア処理の転送先の論理ボリューム1070(ボリューム111)は512個の管理領域571(112)を含む。図16では、512個の管理領域571(112)は、「領域1」~「領域512」と表記される。図16の例は、2世代目のバックアップ処理の時点の状態を復元(リストア)することを意図している。世代毎に差分バックアップ処理が行われていた場合、リストア処理では、それぞれの管理領域571(112)毎に、(1世代目のバックアップデータが存在するならば)1世代目のバックアップデータを論理ボリューム1070に反映してから、(2世代目のバックアップデータが存在するならば)2世代目のバックアップデータを論理ボリューム1070に反映する必要がある。図16の例では、リストア処理を行うために3つのVMインスタンス1191が構築(起動)されている。つまり、図14のステップ1407にて、差分管理ビットマップの数である512のほうが、接続可能ホスト数である3よりも大きいと判断されたために、ステップ1409にて、構築(起動)される計算機資源(VMインスタンス1191)の数が接続可能ホスト数である3と判断されたケースを、図16は示している。図16の例では、例えば「世代1領域1」と記載されているボックスは、1世代目かつ第1管理領域571A(112A)に対応するオブジェクトキーのペア(差分管理ビットマップ811Aのオブジェクトキーと、ブロックデータ群812Aのオブジェクトキーのペア)を示す。このオブジェクトキーのペアを受理したVMインスタンス1191は、当該オブジェクトキーのペアに対応する世代と管理領域の組み合わせに対応する、リストア処理の部分を割り当てられる。
図16の例では、「世代1領域1」のオブジェクトキーのペアは、キューサービス1194Aにキューイングされ、VMインスタンス1191Aに割り当てられる。そして、1世代目の管理領域のそれぞれに対応するオブジェクトキーのペアは、3つのVMインスタンス1191に順次割り当てられる。図16の例のように巡回的な割り当てが行われてもよい。巡回的な割り当てが行われる場合、「世代1領域512」のオブジェクトキーのペアはVMインスタンス1191Bに割り当てられる。領域割当部134は、次に「世代2領域1」のオブジェクトキーのペアを割り当てるが、その際には、巡回的な割り当てにおける次の位置であるVMインスタンス1191Cではなくて、「世代1領域1」のオブジェクトキーのペアが割り当てられたVMインスタンス1191Aに「世代2領域1」のオブジェクトキーのペアを割り当てる。つまり、領域割当部134は、巡回的な割り当てを行う場合であっても、割当処理を行う対象の世代の切り替わりにおいては、オブジェクトキーのペアの割当先(キューサービス1194におけるキューイング先)を示すポインタを一旦リセットする。このようにすれば、同じ管理領域571(112)の異なる世代のオブジェクトキーのペアは、同じVMインスタンス1191に割り当てられるようになる。なお、巡回的割り当てに限定されず、同じ管理領域571(112)の異なる世代のバックアップデータについて、正しい順序でリストア処理が行われるものであればよい。VMインスタンス1191は、同じ管理領域571(112)に関する複数の世代のリストア処理の部分を割り当てられた場合に、処理結果が正常となる順にリストア処理の各部分を実行する。
このように、本開示は、複数の世代分のバックアップデータを順次リストア処理の対象とすべき場合において、リストア処理を正常に行うことが出来る。
なお、領域割当部134は、世代と管理領域571(112)の組み合わせに対応する差分管理ビットマップ811・821・831(第2管理情報)により、当該管理領域571(112)内の少なくとも1つのデータがバックアップデータストア340(第2記憶部102)にバックアップされていることが示される場合のみ、当該組み合わせに関するオブジェクトキーのペアをキューサービス1194にキューイングしてよい。領域割当部134がこのようにキューイングを制御することにより、リストアすべきデータが存在する世代と管理領域571(112)の組み合わせについてのみ、当該組み合わせに関するリストア処理をVMインスタンス1191(計算機資源131)に割り当てることが出来て、リストア処理の効率化を行うことが出来る。
【0033】
3の2の2の6.リストア処理におけるVMインスタンスが行う処理
VMインスタンス1191は、対応するキューサービス1194から受け取ったオブジェクトキーのペアに対応する世代と管理領域571(112)の組み合わせに対応するリストア処理の部分を実行する。
図17はリストア処理時のVMインスタンス1191の処理のフローチャートを示す。
ステップ1701にてVMインスタンス1191は、VMOSイメージ1154を読み込んで起動することにより、VMOSイメージ1154に含まれるプログラムに対応するデータ転送プロセス1193を起動する。なお、図14のステップ1413とステップ1414により、VMインスタンス1191はバックアップデータストア340と論理ボリューム1070にアクセス可能に設定される。ステップ1702にてVMインスタンス1191で動作するデータ転送プロセス1193は、起動時に引数として渡されたキューサービス識別情報に対応するキューサービス1194を定期的にチェックする。キューサービス1194にオブジェクトキーのペア(処理対象)が存在した場合(ステップ1703でYes)、ステップ1704にてデータ転送プロセス1193は、キューサービス1194からオブジェクトキーのペアを取得する。そして、ステップ1705にてデータ転送プロセス1193は、取得したオブジェクトキーのペアに基づいて、バックアップデータストア340から、差分管理ビットマップと対応するブロックデータ群のオブジェクトファイルを取得する。次に、ステップ1706にてデータ転送プロセス1193は、論理ボリューム1070のどのLBAへ書き込みが必要か判断するため、差分管理ビットマップのビットを順に走査する。当該ビットがONであった場合(ステップ1707でYes)、当該ビットに対応するLBAへリストアすべきデータが存在することを意味するので、ステップ1708にてデータ転送プロセス1193は、ブロックデータ群から1つ目のブロックデータを取得し論理ボリューム1070に書き込む。そして、ステップ1709にてデータ転送プロセス1193は、次のブロックデータへ参照先を移動する。次に、ステップ1710にてデータ転送プロセス1193は、論理ボリューム1070の参照先LBAの値と差分管理ビットマップの参照先ビットの位置を1つ進める。一方、ステップ1706にて取得(走査)された差分管理ビットマップのビットがOFFであった場合(ステップ1707でNo)、当該ビットに対応するLBAへリストアすべきデータは存在しないことを意味するので、ステップ1710にてデータ転送プロセス1193は、何もせずに論理ボリューム1070の参照先LBAの値と差分管理ビットマップの参照先ビットの位置を1つ進める。そして、ステップ1711にてデータ転送プロセス1193は、差分管理ビットマップの全てのビットを参照(取得、走査)したか否かを判断する。もしまだ残っているビットがある場合(ステップ1711でNo)、データ転送プロセス1193は、ステップ1706からステップ1710の処理を繰り返す。一方、全てのビットを参照(取得、走査)し終えた場合(ステップ1711でYes)、ステップ1704から1711の一連のステップで対象とされたオブジェクトキーのペア(処理対象)に対応する処理を終えているので、ステップ1713にてデータ転送プロセス1193は、キューサービス1194から、当該オブジェクトキーのペア(処理対象)を取り除く(デキューする)。ステップ1713の後は、データ転送プロセス1193は、ステップ1702に制御を戻すことにより、キューサービス1194における未処理のオブジェクトキーのペアの有無を定期的にチェックする処理に戻る。
【0034】
3の2の2の7.リストア処理におけるVMインスタンスの資源解放
リストア処理を行うために構築(起動)されたVMインスタンス1191が複数存在する場合には、リストア処理全体の完了を待つことなく、クラウドリストアシステム350及び計算機資源390は、割り当てられた処理が完了したVMインスタンス1191から、順次解放することが出来る。
図18は、イベント監視部1195よりキューサービス1194に積まれたキュー長(オブジェクトキーのペアの数)がゼロになったことを通知された際の、クラウドリストアシステム350の処理のフローチャートを示す。
ステップ1801にて、クラウドリストアシステム350は、イベント監視部1195よりキュー長がゼロになった旨の通知を受けると、対象となったキューサービス1194の識別情報を取得する。ステップ1802にて、クラウドリストアシステム350は、識別情報に対応するキューサービス1194にデッドキューがあるか確認する。デッドキューが存在した場合(ステップ1802でYes)、それは処理失敗が起きていることを意味するので、ステップ1803にて、クラウドリストアシステム350は適切な障害処理を実施する。ステップ1803の後で、再びステップ1802にて、クラウドリストアシステム350はデッドキューを確認する。ステップ1803で行われる障害処理は、例えば当該デッドキューに格納されたオブジェクトキーのペアに対応するLBA管理領域571に対してのみステップ1402、及び、ステップ1416~ステップ1420の処理を再実施する、などである。デッドキューが存在しない場合(ステップ1802でNo)、ステップ1804にて、クラウドリストアシステム350により構築される計算機資源解放部136は、キュー長がゼロとなった当該キューサービス1194を終了する(資源を解放する)。また、ステップ1805にて、計算機資源解放部136は、当該キューサービス1194に紐付くVMインスタンス1191を終了する(資源を解放する)。なお、資源の解放の過程において、図14のステップ1414で構成された接続パス1192も共に解放される。全てのVMインスタンス1191(及びキューサービス1194)が終了した場合(ステップ1806でYes)、リストア処理が終了(完了)したことを意味する。そこで、ステップ1807にて、計算機資源解放部136は、計算機資源390に残っているイベント監視部1195を削除する(資源を解放する)。また、ステップ1808にて、計算機資源解放部136は、リストア処理での転送先となった論理ボリューム1070に関するアクセス権の設定内容をアクセスコントロール層1040から削除する。さらに、ステップ1809にて、クラウドリストアシステム350により構築される設定変更部135は、論理ボリューム1070のマルチアタッチ設定を必要に応じ無効化する。その後で、ステップ1811にて、クラウドリストアシステム350は、ストレージ運用管理サービス330にリストア処理の完了を通知する。リストア処理の完了の通知を受領すると、ストレージ運用管理サービス330は、クラウドリストアシステム350に付与したバックアップデータストア340へのアクセス権を削除し、リストア処理が完了したことを、端末380などを通じてユーザ等に通知する(図示せず)。
【0035】
この第1の実施形態によれば、一時的な計算機資源であるVMインスタンス1191を用いて、論理ボリューム1070を複数のLBA管理領域571に分割して並列処理できるので、リストア時間を短縮することが出来る。
また、差分バックアップ処理に対応するリストア処理には、複数世代の重ね合わせが必要となるが、同一LBA管理領域571かつ異なる世代のリストア処理は、同じVMインスタンスが処理するので、正しい世代順序でデータを書き込むことが出来る。
また、リストア処理時に計算機資源を一時的に増加させて対応するため、通常稼働時の計算機資源を適切な性能にすることができ、計算機資源やその消費電力を低減することが出来る。
【0036】
4.本開示の第2の実施形態(バックアップ処理)
第2の実施形態は、クラウド上の(ボリュームの一例である)論理ボリュームをバックアップデータストアに短時間でバックアップするための構成を有する。また、以下では、バックアップ処理を行う計算機資源として、一時計算機資源を用いる例を示している。
【0037】
4の1.本開示の第2の実施形態(バックアップ処理)のシステム構成
4の1の1.本開示のシステムを包含する計算機システムのシステム構成
図19は、本開示の第2の実施形態に係るシステム100を包含する計算機システム1900のシステム構成を示す。計算機システム1900は、ネットワーク370で相互通信可能とされた、データセンタ302(システム100)と端末380を備えるが、第1の実施形態にあったオンプレミス側のデータセンタは含まれていない(存在してはいけないわけではない)。第1の実施形態と同様に、第2の実施形態におけるデータセンタ302は、例えばパブリッククラウドサービスプロバイダが提供する仮想データセンタである。第1の実施形態と異なる点は、データセンタ302に、クラウドリストアシステム350に代わり、クラウドバックアップ&リストアシステム1951が備えられる点である。
【0038】
4の1の2.バックアップ処理のために構築される計算機資源
本開示の第2の実施形態のクラウドバックアップ&リストアシステム1951が、関連リソース群として計算機資源390を構築(起動)し、当該計算機資源390がバックアップ処理を行う。
図20は第2の実施形態におけるクラウドバックアップ&リストアシステム1951、クラウドバックアップ&リストアシステム1951が処理時に構築(起動、生成)する計算機資源390、ストレージボリュームサービス320(第1記憶部101)、バックアップデータストア340(第2記憶部102)の関係を示した図である。なお、図19で示したように、これらは互いに内部ネットワーク360で接続され通信できるよう構成されている(図示省略)。以下では、第1の実施形態と同一または同様の要素については説明を割愛し、異なる要素についてのみ説明する。
第2の実施形態において、ストレージボリュームサービス320が提供する論理ボリューム2070はバックアップ処理での転送元となる論理ボリュームである。論理ボリューム2070は、第1の実施形態と同様に、アクセスエンドポイント1050を通じてアクセス可能なように提供される。クラウドバックアップ&リストアシステム1951は、第1の実施形態のクラウドリストアシステム350において機能を拡張したものであり、ストレージボリュームサービス320からバックアップデータストア340へバックアップするための機能を追加で有する。クラウドバックアップ&リストアシステム1951は、図2で示したような情報処理装置201を備えるとともに、記憶装置202または不揮発性記録媒体203を備える。記憶装置202または不揮発性記録媒体203は、リストア操作制御プログラム1151、リストアプラン生成プログラム1152、ボリュームサービス設定プログラム1153、仮想計算機(VM)OSイメージ1154、インスタンス管理プログラム1155、キュー管理プログラム1156を記憶する。また、記憶装置202または不揮発性記録媒体203は、バックアップ操作制御プログラム2057、VMOSイメージ(2)2059を追加で記憶する。情報処理装置201がこれらのプログラムまたはイメージを実行することにより、クラウドバックアップ&リストアシステム1951が行う処理が実現される。バックアップ操作制御プログラム2057は、端末380からバックアップ処理の指示を受けた際、バックアップ処理の完了までの全体処理を指示するためのメインプログラムである。VMOSイメージ(2)2059は、VMインスタンス2098を動作させるためのOS、及び、その上で動作するプログラムを格納したファイルである。なお動作プログラムの共通化により、VMOSイメージ(2)2059とVMOSイメージ1154が一つにまとめられてもよい。計算機資源390は、第1の実施形態と同様であり、クラウドバックアップ&リストアシステム1951が各プログラムまたはイメージを実行することによって動的に構築(作成)される、キューサービス1194と仮想計算機(VM)インスタンス2098とイベント監視部1195から構成される。VMインスタンス2098は、VMOSイメージ(2)2059を用いて構築されるサーバ計算資源である。各VMインスタンス2098は、OS起動後に、VMOSイメージ(2)2059に含まれるプログラムを実行することにより、データ転送プロセス2099(2099A、2099B、2099C)を構築(起動)する。データ転送プロセス2099は、引数として渡された識別情報に基づいて、担当するキューサービス1194における処理要求の有無を監視する。
【0039】
4の2.本開示の第2の実施形態(バックアップ処理)の処理
以上で説明した第2の実施形態のシステム構成(及び第1の実施形態のシステム構成)を踏まえて、以下では、第1記憶部101に対応付けられるストレージボリュームサービス320内の論理ボリューム2070から、第2記憶部102に対応付けられるバックアップデータストア340へのバックアップ処理のために行われる一連の処理を説明する。
【0040】
4の2の1.バックアップ&リストアシステムへバックアップ処理の実行を指示するまで
以下ではまず、ユーザ等からバックアップ設定画面600を用いて入力されたバックアップ処理の設定内容を受理したストレージ運用管理サービス330が、クラウドバックアップ&リストアシステム1951にバックアップ処理の実行を指示するまでを説明する。
図21は、第2の実施形態において、ストレージ運用管理サービス330がクラウドバックアップ&リストアシステム1951にバックアップ処理を指示するまでの処理のフローチャートを示す。図21の処理は、図6のバックアップ設定画面600を用いてユーザ等がストレージ運用管理サービス330に設定したスケジュールに基づき実行される。
ステップ2101にて、ストレージ運用管理サービス330は、バックアップ処理での転送元となる論理ボリューム2070の静止イメージを取得するために、ストレージボリュームサービス320に論理ボリューム2070のスナップショットを取得するように指示する。続いて、ステップ2102にて、ストレージ運用管理サービス330は、当該スナップショットを用いてバックアップできるように、ストレージボリュームサービス320にスナップショットに対するアクセスエンドポイント1050の作成を指示して、アクセスエンドポイント1050の情報を取得する。(なお、ステップ2102において、ストレージ運用管理サービス330が自ら、スナップショットに対するアクセスエンドポイント1050を作成してもよい。)次に、ステップ2103にて、ストレージ運用管理サービス330は、バックアップデータストア340において、バックアップ格納先となるバケットを作成する。ステップ2104にて、ストレージ運用管理サービス330は、当該バケットへのアクセス権をクラウドバックアップ&リストアシステム1951に付与する。そして、ステップ2105にて、ストレージ運用管理サービス330は、論理ボリューム2070(のスナップショット)のアクセスエンドポイント1050の情報とバックアップデータストア340のバックアップ格納先情報を用いて、クラウドバックアップ&リストアシステム1951にバックアップ処理を指示する。
【0041】
4の2の2.バックアップ処理実行を指示されたバックアップ&リストアシステムの処理
ストレージ運用管理サービス330からバックアップ処理の実行を指示されたクラウドバックアップ&リストアシステム1951は、当該バックアップ処理のために構築(起動)する一時計算機資源(例えばVMインスタンス2098)の数を判定して、判定した数の一時計算機資源(VMインスタンス2098)を構築(起動)する。またクラウドバックアップ&リストアシステム1951は、起動した一時計算機資源(VMインスタンス2098)のそれぞれに対して、バックアップ処理での転送元となる共通1つの論理ボリューム2070(のスナップショット)をマウントする。またクラウドバックアップ&リストアシステム1951は、起動した一時計算機資源(VMインスタンス2098)のそれぞれに、バックアップ処理の対象となるデータに関して、管理領域毎の(ライト)データ群(ブロックデータ群)を割り当てる。上記の処理を順を追って、以下では説明する。
図22は、第2の実施形態において、クラウドバックアップ&リストアシステム1951がストレージ運用管理サービス330からバックアップ実行の指示を受けた際の処理のフローチャートを示す。
【0042】
4の2の2の1.バックアップ処理のために構築(起動)する計算機資源の数の判定
図22のステップ2201にてクラウドバックアップ&リストアシステム1951は、指示の際に受領したアクセスエンドポイント1050の情報を用いて、バックアップ処理での転送元となる論理ボリューム2070(のスナップショット)の容量の情報を取得する。また、ステップ2202にてクラウドバックアップ&リストアシステム1951は、最初の差分管理ビットマップ500の取得を行う。そして、ステップ2203にてクラウドバックアップ&リストアシステム1951は、差分管理ビットマップ500の構成情報を取得し、当該構成情報に基づき、論理ボリューム2070(のスナップショット)がいくつの管理領域571(112)に分割して管理されているか、すなわち、いくつの差分管理ビットマップ500を含むかを算出する。次に、ステップ2204にてクラウドバックアップ&リストアシステム1951により構築される設定変更部135は、論理ボリューム2070(のスナップショット)がマルチアタッチ可能か否かを確認する。マルチアタッチ可能である場合は(ステップ2204でYes)、ステップ2205にて設定変更部135は、論理ボリューム2070(のスナップショット)のマルチアタッチを有効化する。有効化の設定の手法は、例えば、論理ボリューム2070(のスナップショット)のマルチアタッチの許可をイネーブルにすること、または、論理ボリューム2070(のスナップショット)をマルチアタッチ可能なディスク種別に変更することであってよい。その後、ステップ2206にてクラウドバックアップ&リストアシステム1951により構築される計算機資源数判定部132は、バックアップ処理の対象となる論理ボリューム2070(のスナップショット)の接続可能ホスト数を確認する。ステップ2207にて計算機資源数判定部132は、論理ボリューム2070に対応する差分管理ビットマップ500の数と論理ボリューム2070(のスナップショット)の接続可能ホスト数を比較する。差分管理ビットマップ500の数が接続可能ホスト数よりも多かった場合(ステップ2207でYes)、ステップ2209にて計算機資源数判定部132は、以降のバックアップ処理で起動する計算機資源の数を、接続可能ホスト数と同数に設定する。一方、差分管理ビットマップ500の数が接続可能ホスト数以下であった場合(ステップ2207でNo)、ステップ2210にて計算機資源数判定部132は、リストア処理を行うための計算機資源の数を差分管理ビットマップ500の数と同数に設定する。また、論理ボリューム2070(のスナップショット)がマルチアタッチ不可であった場合には(ステップ2204でNo)、ステップ2208にて計算機資源数判定部132は、バックアップ処理を行うための計算機資源の数を1に設定する。なお、図示は省略するが、ステップ2209またはステップ2210についての上記の説明において定められるバックアップ処理を行う計算機資源の数がクラウドシステムの仕様(例えば、ストレージボリュームサービス320の設計上の仕様、データセンタ302全体の設計上の仕様、あるいは、データセンタ302が提供するサービスを利用するユーザ等の契約上の制約など)に抵触する場合は、当該仕様に抵触しない範囲内で、計算機資源数判定部132は、計算機資源の数を改めて定めてよい。以上のステップ2206、2207、2208、2209、2210の一部または全部により、計算機資源数判定ステップが構成されるとしてもよい。
このように、本開示は、構築(起動)する計算機資源の数を、ボリュームに関する最大ホスト数と、ボリュームに含まれる管理領域の数の両方を考慮して、適切に定めることが出来る。ここで、本開示は、ボリュームに含まれる管理領域の数を、管理領域に対応付けられる第1管理情報(例えば、差分管理ビットマップ)の数により判断するので、ボリュームに含まれる管理領域の数を適切に判断することが出来る。
【0043】
4の2の2の2.計算機資源の構築(起動)とマウント(マルチアタッチ)設定
計算機資源数判定部132がバックアップ処理を行う計算機資源の数を判定した後で、ステップ2211~2215にて、クラウドバックアップ&リストアシステム1951は、判定された計算機資源の数に基づいて、キューサービス1194やVMインスタンス2098を構築(起動)し、アクセス権の設定を行い、論理ボリューム2070(のスナップショット)のマウント設定を行い、接続パス1192の設定を行う。また、クラウドバックアップ&リストアシステム1951は、イベント監視部1195の設定を行う。ステップ2211~2215における処理の内容は、第1の実施形態における図14のステップ1411~1415と基本的に同じであるため、詳細な説明を割愛する。
【0044】
4の2の2の3.計算機資源のそれぞれへの処理の割り当て
計算機資源であるVMインスタンス2090の構築(起動)等を済ませた後で、ステップ2216にてクラウドバックアップ&リストアシステム1951により構築される領域割当部134は、差分管理ビットマップ500を順次取得する。ステップ2218にて領域割当部134は、当該差分管理ビットマップ500の情報、当該差分管理ビットマップ500に対応する管理領域571(112)の開始LBAの情報、バックアップデータストア340の格納先バケットに関する情報、オブジェクト名のシードの情報からなる4つの情報を用いて処理要求を作成し、当該処理要求をキューサービス1194へ順次キューイングする。ここでオブジェクト名のシードとは、差分管理ビットマップ(bitmap-)やブロックデータ群(block-)を格納する際につけるオブジェクト名のもとになる情報であり、例えばボリューム番号(例えば、7F)や世代(例えば、001)、差分管理ビットマップ番号(例えば、000)から成る「7f-001.000」である。なお、キューイングされる処理要求は、差分管理ビットマップ500そのものを含んでもよいし、差分管理ビットマップ500の所在を特定する情報を含んでもよい。ステップ2219にて領域割当部134は、ステップ2203で求められた差分管理ビットマップ500の数に基づき、バックアップ処理での転送元となる論理ボリューム2070に含まれる全ての差分管理ビットマップ500を取得したか否かを判断する。まだ残りの差分管理ビットマップ500がある場合は(ステップ2219でNo)、領域割当部134は、ステップ2216とステップ2218の処理を繰り返す。一方、論理ボリューム2070に対応する全ての差分管理ビットマップ500についてキューイング処理を終えた場合(ステップ2219でYes)、クラウドバックアップ&リストアシステム1951は、本バックアップ処理に関するバックアップカタログを作成する。ステップ2216、2218、2219の一部または全部により、領域割当ステップが構築されるとしてもよい。
【0045】
4の2の2の4.バックアップ処理におけるVMインスタンスが行う処理
VMインスタンス2098は、対応するキューサービス1194から受け取った処理要求に対応する管理領域に対応するバックアップ処理の部分を実行する。
図23はバックアップ処理時のVMインスタンス2098の処理のフローチャートを示す。
ステップ2301にてVMインスタンス2098は、VMOSイメージ(2)2059に含まれるプログラムを実行することにより、データ転送プロセス2099を起動する。なお、図22の動作フローにより、VMインスタンス2098はバックアップデータストア340とバックアップ処理での転送元となる論理ボリューム2070(のスナップショット)にアクセス可能に設定される。ステップ2302にてVMインスタンス2098で動作するデータ転送プロセス2099は、起動時に引数として渡されたキューサービスの識別情報に対応するキューサービス1194に処理要求があるか否かを定期的にチェックする。キューサービス1194に処理要求が存在した場合(ステップ2303でYes)、ステップ2304にて、データ転送プロセス2099は、キューサービス1194にある処理要求を参照し、差分管理ビットマップ500の情報、当該差分管理ビットマップ500に対応する管理領域571(112)の開始LBAの情報、バックアップデータストア340の格納先バケットに関する情報、オブジェクト名のシードの情報など、各種情報を取得する。そして、ステップ2305にてデータ転送プロセス2099は、取得した開始LBA位置をバックアップ処理に関する参照先LBAとする(開始LBAへ移動する)。ステップ2306にてデータ転送プロセス2099は、差分管理ビットマップ500のビットを順に取得(走査)する。もし当該ビットがONであった場合(ステップ2307でYes)、当該ビットに対応するLBAにバックアップ処理を行うデータが存在することを意味するので、ステップ2308にてデータ転送プロセス2099は、論理ボリューム2070(のスナップショット)の当該LBAからブロックデータをリードする。そして、ステップ2309にてデータ転送プロセス2099は、バックアップ処理を行うブロックデータ群を格納する一時ファイルに、ステップ2308でリードしたブロックデータを追記する。そして、ステップ2310にてデータ転送プロセス2099は、論理ボリューム2070(のスナップショット)の参照先LBAと差分管理ビットマップ500の参照先ビットを1つ進める。一方、当該ビットがOFFであった場合(ステップ2307にてNo)、当該ビットに対応するLBAにバックアップ処理を行うデータは存在しないことを意味するので、ステップ2310にてデータ転送プロセス2099は、何もせずに論理ボリューム2070(のスナップショット)の参照先LBAと差分管理ビットマップ500の参照先ビットを1つ進める。ステップ2311にて、データ転送プロセス2099は、差分管理ビットマップ500の全てのビットを参照したか否かを判断する。もしまだ参照していないビットがある場合(ステップ2311でNo)、データ転送プロセス2099は、ステップ2306からステップ2310の処理を繰り返す。一方、全てのビットを参照し終えた場合(ステップ2311でYes)、ステップ2304で扱った処理要求に関する処理のうち、論理ボリューム2070(のスナップショット)から一時ファイルにブロックデータ群を読み出す処理を終えているので、ステップ2312にてデータ転送プロセス2099は、差分管理ビットマップ500と、一時ファイルに格納されたブロックデータ群を、バックアップデータストア340の格納先バケットにオブジェクトファイルとして格納する。その際、データ転送プロセス2099は、オブジェクト名のシードを用いてオブジェクト名を決定する。例えばオブジェクト名のシードが「7f-001.000」であった場合、データ転送プロセス2099は、差分管理ビットマップ500のオブジェクトファイルには「bitmap-7f-001.000」、ブロックデータ群のオブジェクトファイルには「block-7f-001.000」と名づける。バックアップデータストア340への格納後、ステップ2313にてデータ転送プロセス2099は、キューサービス1194から、ステップ2304で扱った処理要求を取り除き(デキューし)、ステップ2302に制御を戻し、キューサービス1194に未処理の処理要求があるか否かのチェックを再び定期的に行う。
なお図23の動作フローでは、ブロックデータ群は一時ファイルに追記され、最後に一括してバックアップデータストア340に格納されている。ここで、あるサイズごとに、ブロックデータ群はバックアップデータストア340に転送されてもよいし、ブロックデータは都度バックアップデータストア340に転送されてもよい。この際に、ブロックデータ(群)は、より小さいサイズのオブジェクトファイルに分割された態様でバックアップデータストア340に格納されてもよいし、後から格納するブロックデータ(群)が、先に格納されていたブロックデータ(群)のオブジェクトファイルに追記されてもよい。
【0046】
4の2の2の5.バックアップ処理におけるVMインスタンスの資源解放
バックアップ処理を行うために構築(起動)されたVMインスタンス2098が複数存在する場合には、バックアップ処理全体の完了を待つことなく、クラウドバックアップ&リストアシステム1951及び計算機資源390は、割り当てられた処理が完了したVMインスタンス2098から、順次解放することが出来る。
図24は、第2の実施形態において、イベント監視部1195よりキューサービス1194に積まれた処理要求の数(キュー長)がゼロになったことを通知された際のクラウドバックアップ&リストアシステム1951の動作を示すフローチャートである。
ステップ2401にてクラウドバックアップ&リストアシステム1951は、イベント監視部1195よりキュー長がゼロである旨の通知を受けると、キュー長がゼロであるキューサービス1194の識別情報を取得する。ステップ2402にてクラウドバックアップ&リストアシステム1951は、当該識別情報に対応するキューサービス1194にデッドキューがあるか確認する。デッドキューが存在した場合(ステップ2402でYes)、処理失敗が起きていることを意味するので、ステップ2403にてクラウドバックアップ&リストアシステム1951は適切な障害処理を実施する。その後、ステップ2402にて、クラウドバックアップ&リストアシステム1951はデッドキューを再度確認する。障害処理は、例えば、領域割当部134が、当該デッドキューに格納されたLBA管理領域に対してのみステップ2216とステップ2218の処理を再実施することであってもよい。デッドキューが存在しない場合(ステップ2402でNo)、ステップ2404にてクラウドバックアップ&リストアシステム1951により構築される計算機資源解放部136は、キュー長がゼロである当該キューサービス1194を終了する。それとともに、ステップ2405にて計算機資源解放部136は、キュー長がゼロであるキューサービス1194に紐付くVMインスタンス2098を終了する(資源を解放する)。なお、解放の過程において、図22のステップ2214で構成した接続パス1192も共に解放される。全てのVMインスタンス2098(及びキューサービス1194)が終了した場合(ステップ2406でYes)、バックアップ処理が終了したことを意味する。そこで、ステップ2407にて計算機資源解放部136は、計算機資源390に残っているイベント監視部1195を削除する。ステップ2408にて計算機資源解放部136は、バックアップ処理の転送元となる論理ボリューム2070(のスナップショット)のアクセス権の設定をアクセスコントロール層から削除する。ステップ2409にてクラウドバックアップ&リストアシステム1951により構築される設定変更部135は、バックアップ処理の転送元となる論理ボリューム2070(のスナップショット)のマルチアタッチ設定を必要に応じ無効化する。その後、ステップ2410にてクラウドバックアップ&リストアシステム1951は、先にステップ2220で作成していたバックアップカタログをバックアップデータストア340に格納する。そして、ステップ2411にてクラウドバックアップ&リストアシステム1951は、当該バックアップカタログを用いて、ストレージ運用管理サービス330にバックアップ処理の完了を通知する。
第2の実施形態によれば、一時的な計算機資源であるVMインスタンス2098を用いて、論理ボリュームのバックアップを複数のLBA管理領域571に分割して並列処理できるので、バックアップ時間を短縮することができる。
【0047】
5.その他(変形例)
本開示は、上記の実施形態に限定されるものではなく様々な変形例を含む。実施形態の構成や処理の一部は、他に想定しうる実施形態の構成や処理に置換されてもよい。実施形態の構成や処理に、他に想定しうる実施形態の構成や処理が加えられてもよい。
【0048】
なお、上記の実施形態では、データ転送処理(例えばバックアップ処理またはリストア処理)を行う計算機資源として、一時計算機資源である仮想計算機(VM)インスタンスが取り上げられているが、他の種類の一時計算機資源(例えば、コンテナ)であってもよい。また、一時計算機資源ではない計算機資源がデータ転送処理を行う計算機資源となってもよい。例えば、ハードウェア的な計算機資源が、直接的に、データ転送処理に割り当てられてもよい。このように、本開示は、データ転送処理を実現するための計算機資源の構成を、幅広い選択肢から適宜選ぶことが出来る。
【0049】
上記で示した、本開示の実施形態や、実施形態の変形例のそれぞれに示される技術的事項は、技術的な矛盾が生じない限り、適宜組み合わせることが出来る。
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9A
図9B
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24