(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-30
(45)【発行日】2024-11-08
(54)【発明の名称】データ取得装置、データ取得方法、及びデータ取得プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20241031BHJP
G06F 11/14 20060101ALI20241031BHJP
【FI】
G06F3/06 301Z
G06F3/06 304B
G06F3/06 304F
G06F11/14 669
(21)【出願番号】P 2022124119
(22)【出願日】2022-08-03
【審査請求日】2023-06-06
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】原 彬大
(72)【発明者】
【氏名】山本 貴大
(72)【発明者】
【氏名】斎藤 秀雄
(72)【発明者】
【氏名】鈴木 貴敦
(72)【発明者】
【氏名】出口 彰
【審査官】田中 啓介
(56)【参考文献】
【文献】国際公開第2019/026222(WO,A1)
【文献】特開2010-026939(JP,A)
【文献】特開2010-160711(JP,A)
【文献】特開2015-114784(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/06-3/08
G06F11/14-11/20
G06F12/00-12/06
G06F13/00-13/18
G06F16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して外部ストレージシステムからデータを取得するデータ取得装置であって、
前記外部ストレージシステムには、所定のボリュームについてのスナップショットが管理されており、
前記データ取得装置は、プロセッサを有し、
前記プロセッサは、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付け、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得し、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分の有無を前記外部ストレージシステムに問い合せ、
問い合せ結果に基づいて、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得し、
前記データ取得装置に取得している前記第2スナップショットの所定の領域ごとのデータに対する
リードが有ったか否かを示すリード有無を管理し、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付けた場合に、前記第2スナップショットのリード有の領域を優先して前記第1スナップショットのデータとの差分の有無を前記外部ストレージシステムに問い合せ、
前記第2スナップショットのリード有の領域に対応する差分データを優先して前記外部ストレージシステムから取得す
る
データ取得装置。
【請求項2】
前記プロセッサは、
前記第2スナップショットのリード有の全ての領域における前記第1スナップショットとの差分データを前記外部ストレージシステムから取得した場合に、前記第1スナップショットのデータの取得指示の要求元に対して、応答する
請求項
1に記載のデータ取得装置。
【請求項3】
前記プロセッサは、
前記第2スナップショットのリード有のすべての領域における差分データを取得した後に、前記第2スナップショットのリード無の領域について前記第1スナップショットのデータとの差分の有無を前記外部ストレージシステムに問い合せ、
前記第2スナップショットのリード無の領域に対応する差分データを前記外部ストレージシステムから取得する
請求項
1に記載のデータ取得装置。
【請求項4】
前記プロセッサは、
前記第2スナップショットのリード無の領域に対応する差分データを前記外部ストレージシステムから取得しない
請求項
1に記載のデータ取得装置。
【請求項5】
前記プロセッサは、
前記第1スナップショットのデータに対するリード要求を受け付けた場合に、前記リード要求の対象領域のデータがすでに取得済みである場合には、取得しているデータをリード要求元に返す一方、前記リード要求の対象領域のデータが取得済みでない場合には、前記外部ストレージシステムから前記第1スナップショットの前記リード要求の対象領域のデータを取得し、リード要求元に返す
請求項1に記載のデータ取得装置。
【請求項6】
前記プロセッサは、
取得した前記差分のデータを、前記第2スナップショットの作成元のデータを格納するボリュームに反映させ、
前記ボリュームのスナップショットを作成する
請求項1に記載のデータ取得装置。
【請求項7】
前記ネットワークは、ワイドエリアネットワークである
請求項1に記載のデータ取得装置。
【請求項8】
ネットワークを介して外部ストレージシステムからデータを取得するデータ取得装置によるデータ取得方法であって、
前記外部ストレージシステムには、所定のボリュームについてのスナップショットが管理されており、
前記データ取得装置は、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付け、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得
し、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分の有無を前記外部ストレージシステムに問い合せ、
問い合せ結果に基づいて、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得し、
前記データ取得装置に取得している前記第2スナップショットの所定の領域ごとのデータに対するリードが有ったか否かを示すリード有無を管理し、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付けた場合に、前記第2スナップショットのリード有の領域を優先して前記第1スナップショットのデータとの差分の有無を前記外部ストレージシステムに問い合せ、
前記第2スナップショットのリード有の領域に対応する差分データを優先して前記外部ストレージシステムから取得する
データ取得方法。
【請求項9】
ネットワークを介して外部ストレージシステムからデータを取得するデータ取得装置を構成するコンピュータに実行させるためのデータ取得プログラムであって、
前記外部ストレージシステムには、所定のボリュームについてのスナップショットが管理されており、
前記コンピュータに、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付けさせ、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得させ
、
前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと前記第2スナップショットとの差分の有無を前記外部ストレージシステムに問い合わさせ、
問い合せ結果に基づいて、前記第1スナップショットと前記第2スナップショットとの差分のデータの少なくとも一部を前記外部ストレージシステムから取得させ、
前記データ取得装置に取得している前記第2スナップショットの所定の領域ごとのデータに対するリードが有ったか否かを示すリード有無を管理させ、
前記所定のボリュームの第1スナップショットのデータの取得指示を受け付けた場合に、前記第2スナップショットのリード有の領域を優先して前記第1スナップショットのデータとの差分の有無を前記外部ストレージシステムに問い合わさせ、
前記第2スナップショットのリード有の領域に対応する差分データを優先して前記外部ストレージシステムから取得させる
データ取得プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して接続された外部ストレージシステムから必要なデータを取得する技術に関する。
【背景技術】
【0002】
例えば、オンプレミスで運用されている基幹業務のデータを2次利用するユースケースが拡大し、クラウドからオンプレミスのデータに即時アクセス可能にするインスタンスアクセス機能が検討されている。
【0003】
データを2次利用するユースケースとしては、例えば、時間経過による変化を継続的に分析するケースがあり、このようなケースは、同様な分析処理を異なる時点のスナップショットに対して実行する場合がある。クラウド側からオンプレミスのデータを読み出すと、レイテンシが大きいので、分析処理を高速化するには、クラウド上にデータ全域をコピーして格納しておく必要がある。
【0004】
例えば、クラウドバースティングに関する技術として、ボリュームへのアクセス頻度等からクラウドにコピーするデータを絞り込むことで、格納コストを抑えつつクラウド上のI/O性能を向上する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、クラウド上で時間経過による変化を継続的に分析する場合において、異なる時点のスナップショットに対して分析処理を行うこととなるが、各時点のスナップショットのデータに対して分析処理を行う場合には、処理対象とするスナップショットを切り替えるたびに、スナップショットの全てのデータをオンプレミスからクラウド側にコピーする必要があり、データのコピーに長時間を要し、分析処理に長時間を要してしまう。
【0007】
本発明は、上記事情に鑑みなされたものであり、その目的は、必要なデータを迅速に取得することのできる技術を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一観点に係るデータ取得装置は、ネットワークを介して外部ストレージシステムからデータを取得するデータ取得装置であって、前記外部ストレージシステムには、所定のボリュームについてのスナップショットが管理されており、前記データ取得装置は、プロセッサを有し、前記プロセッサは、前記所定のボリュームの第1スナップショットのデータの取得指示を受け付け、前記所定のボリュームの第2スナップショットのデータをすでに取得している場合に、前記第1スナップショットと、前記第2スナップショットとの少なくとも一部の差分のデータを前記外部ストレージシステムから取得する。
【発明の効果】
【0009】
本発明によれば、必要なデータを迅速に取得することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、第1実施形態に係る計算機システムの全体概要図である。
【
図2】
図2は、第1実施形態に係る計算機システムのハードウェア構成図である。
【
図3】
図3は、第1実施形態に係るクラウド側のストレージシステムのメモリの構成図である。
【
図4】
図4は、第1実施形態に係る業務のデータを管理するストレージシステムのメモリの構成図である。
【
図5】
図5は、第1実施形態に係る仮想ボリュームアドレス管理テーブルの初回コピー完了時における状態を説明する図である。
【
図6】
図6は、第1実施形態に係る仮想ボリュームアドレス管理テーブルの接続先スナップショット切替時における状態を説明する図である。
【
図7】
図7は、第1実施形態に係る読み出し有無管理テーブルの初回コピー完了時における状態を説明する図である。
【
図8】
図8は、第1実施形態に係る読み出し有無管理テーブルの接続先スナップショット切替時における状態を説明する図である。
【
図9】
図9は、第1実施形態に係る接続先スナップショット履歴管理テーブルの構成図である。
【
図10】
図10は、第1実施形態に係る格納データ管理テーブルの構成図である。
【
図11】
図11は、第1実施形態に係るスナップショット管理テーブルの構成図である。
【
図12】
図12は、第1実施形態に係る計算機システムの利用におけるユーザの操作手順のフローチャートである。
【
図13】
図13は、第1実施形態に係る仮想ボリューム管理処理のフローチャートである。
【
図14】
図14は、第1実施形態に係る差分反映処理のフローチャートである。
【
図15】
図15は、第1実施形態に係る差分コピー処理のフローチャートである。
【
図16】
図16は、第1実施形態に係る差分有無確認処理のフローチャートである。
【
図17】
図17は、第1実施形態に係るホストリード処理のフローチャートである。
【
図18】
図18は、第2実施形態に係る計算機システムの全体概要図である。
【
図19】
図19は、第2実施形態に係るクラウド側のストレージシステムのメモリの構成図である。
【
図20】
図20は、第2実施形態に係るボリュームアドレス管理テーブルの2番目のスナップショットのデータの取得後における状態を説明する図である。
【
図21】
図21は、第2実施形態に係る接続先スナップショット履歴管理テーブルの構成図である。
【
図22】
図22は、第2実施形態に係る計算機システムの利用におけるユーザの操作手順のフローチャートである。
【
図23】
図23は、第2実施形態に係る仮想ボリューム管理処理のフローチャートである。
【
図24】
図24は、第3実施形態に係る差分反映処理のフローチャートである。
【発明を実施するための形態】
【0011】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
なお、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばNIC(Network Interface Card))を用いながら行うため、処理の主体がプログラムとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機が行う処理としてもよい。
【0013】
また、以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
【0014】
図1は、第1実施形態に係る計算機システムの全体概要図である。
【0015】
計算機システム10は、データ取得装置の一例としてのストレージシステム101と、外部ストレージシステムの一例としてのストレージシステム102と、ホスト計算機103と、ホスト計算機104と、管理用端末105と、スイッチ(SW)120と、ゲートウェイ(GW)121と、ネットワーク122と、ゲートウェイ123と、スイッチ124とを備える。
【0016】
ストレージシステム101と、ホスト計算機103と、スイッチ120と、ゲートウェイ121とは、クラウド100に設けられている。ストレージシステム102と、ホスト計算機104と、管理用端末105と、ゲートウェイ123と、スイッチ124とは、例えば、業務を実行する会社のデータセンタ(オンプレミス)に設けられてもよく、一部がクラウド100とは違う別のクラウドに設けられていてもよい。
【0017】
スイッチ120は、クラウド100の各装置、ゲートウェイ121よりネットワーク122側の装置における装置間の通信を仲介する。ゲートウェイ121は、スイッチ120とネットワーク122とに接続され、スイッチ120側とネットワーク122側との間の通信を仲介する。
【0018】
ホスト計算機103は、ストレージシステム101のボリューム(仮想ボリュームも含む)のデータを利用して、各種処理(例えば、分析処理等)を実行する。
【0019】
ストレージシステム101は、仮想ボリューム109と、1以上のストレージデバイス110とを含む。仮想ボリューム109は、ホスト計算機103の処理に利用されるデータを格納する。仮想ボリューム109の記憶領域は、ストレージシステム101のストレージデバイス110の記憶領域や、他(外部)のストレージシステム(ストレージシステム102)の記憶領域に基づいている。
【0020】
ネットワーク122は、例えば、WAN(ワイドエリアネットワーク)などである。
【0021】
ゲートウェイ123は、ネットワーク122とスイッチ124とに接続され、ネットワーク122側とスイッチ124側との間の通信を仲介する。スイッチ120は、ホスト計算機104、管理用端末105、ストレージシステム102、及びクラウド100の各装置における装置間の通信を仲介する。
【0022】
ホスト計算機104は、ストレージシステム102から提供されるボリュームを利用して業務に関わる処理(業務処理)を実行する。管理用端末105は、ストレージシステム101,102を管理する管理者により使用される計算機であり、ストレージシステム101,102に対して各種指示を行う。
【0023】
ストレージシステム102は、業務に関わるデータを管理するストレージシステムであって、ボリューム107と、ストレージデバイス111とを含む。ボリューム107は、ホスト計算機104による業務処理で利用するデータや、業務処理で生成されたデータを格納する。ボリューム107の記憶領域は、ストレージデバイス111の記憶領域に基づいている。本実施形態では、ストレージシステム102は、ボリューム107の所定の時点の状態を示すスナップショット(Snapshot)108を格納している。
【0024】
計算機システム10では、ホスト計算機103がストレージシステム102に格納されている所定の時点の業務処理のデータを利用して処理を行う場合には、基本的には、処理対象の所定の時点の業務処理のデータを示すスナップショットのデータをストレージシステム101にコピーして利用する。
【0025】
図2は、第1実施形態に係る計算機システムのハードウェア構成図である。
【0026】
計算機システム10は、ストレージシステム101と、ストレージシステム102と、1以上のホスト計算機103と、ホスト計算機104と、管理用端末105と、スイッチ120と、ゲートウェイ121と、ゲートウェイ123と、スイッチ124と、スイッチ125とを含む。ストレージシステム102と、ホスト計算機104とはスイッチ125を介して接続されている。
【0027】
ストレージシステム101は、1以上のストレージノード210を含む。ストレージノード210は、コンピュータの一例であり、プロセッサの一例としてのCPU211と、メモリ212と、LANポート213と、ストレージデバイス110とを含む。
【0028】
CPU211は、メモリ212及び/又はストレージデバイス110に格納されているプログラムに従って各種処理を実行する。
【0029】
メモリ212は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU211で実行されるプログラムや、必要な情報を記憶する。
【0030】
ストレージデバイス110は、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、NVMe(Non-Volatile Memory Express)ストレージなどであり、CPU211で実行されるプログラムや、CPU211に利用されるデータを記憶する。ストレージデバイス110は、クラウドがAWS(Amazon Web Services:Amazonは登録商標)であれば、EBS(Amazon Elastic BlockStore)であってもよい。
【0031】
LANポート213は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、他の装置(例えば、ホスト計算機103,ストレージシステム102等)と通信する。
【0032】
ホスト計算機103は、CPU231と、メモリ232と、LANポート233と、ストレージデバイス234とを含む。
【0033】
ストレージシステム102は、1以上のストレージノード220を含む。ストレージノード220は、プロセッサの一例としてのCPU221と、メモリ222と、LANポート223と、FCポート224と、ストレージデバイス111とを含む。なお、ストレージノード210と同一の名称の構成は、同様な機能を有する。
【0034】
FCポート224は、他の装置(ホスト計算機104)とファイバチャネル(FC)で接続するためのインターフェースである。
【0035】
ホスト計算機104(管理用端末105)は、CPU241と、メモリ242と、LANポート243と、ストレージデバイス244と、FCポート245とを含む。
【0036】
なお、ストレージシステム101,102は、ストレージアレイで構成しても、SDS(Software Defined Storage)で構成してもよい。また、ストレージシステム102とホスト計算機104とをFCで接続するようにしているが、FCで接続しないようにしてもよい。
【0037】
図3は、第1実施形態に係るクラウド側のストレージシステムのメモリの構成図である。
【0038】
クラウド100側のストレージシステム101のメモリ212は、I/Oパス接続プログラム301と、ホストI/O処理プログラム302と、仮想ボリューム管理プログラム303と、仮想ボリュームアドレス管理テーブル304と、読み出し有無管理テーブル305と、操作受付プログラム306と、データコピープログラム307と、接続先スナップショット履歴管理テーブル308とを格納する。
【0039】
I/Oパス接続プログラム301は、CPU211に実行されることにより、外部ストレージ(ストレージシステム102)のスナップショットへのパスを接続し、スナップショットに対するI/Oを可能とする。ホストI/O処理プログラム302は、CPU211に実行されることにより、ホスト計算機103からの仮想ボリュームに対するI/Oを処理する。仮想ボリューム管理プログラム303は、CPU211に実行されることにより、仮想ボリュームを管理する処理(仮想ボリューム管理処理)等を行う。
【0040】
操作受付プログラム306は、CPU211に実行されることにより、ユーザから(例えば、管理用端末105から)の操作指示を受け付けて、指示に対応する処理の実行等を制御する。データコピープログラム307は、CPU211に実行されることにより、SCSI(Small Computer System Interface)コマンドを用いてストレージシステム102の指定されたボリュームの論理ブロックアドレス(LBA)のデータを読み出し、当該データをストレージシステム101の指定されたボリュームのLBAに書き込むコピー処理を行う。
【0041】
図4は、第1実施形態に係る業務のデータを管理するストレージシステムのメモリの構成図である。
【0042】
ストレージシステム102のメモリ222は、差分有無管理プログラム401と、ボリューム管理プログラム402と、スナップショット管理プログラム403と、操作受付プログラム404と、格納データ管理テーブル405と、スナップショット管理テーブル406とを格納する。
【0043】
差分有無管理プログラム401は、CPU221に実行されることにより、対象とする2つのスナップショットの所定の領域間について差分があるか否かを確認する差分有無管理処理を行う。ボリューム管理プログラム402は、CPU221に実行されることにより、格納データ管理テーブル405の管理と、ボリュームに対するI/O処理を実行する。スナップショット管理プログラム403は、CPU221に実行されることにより、ボリュームにおけるスナップショットの作成と、スナップショット管理テーブル406の管理を行う。操作受付プログラム404は、CPU221に実行されることにより、ユーザからの操作指示を受け付けて、指示に対応する処理の実行等を制御する。
【0044】
次に、仮想ボリュームアドレス管理テーブル304について説明する。
【0045】
図5は、第1実施形態に係る仮想ボリュームアドレス管理テーブルの初回コピー完了時における状態を説明する図であり、
図6は、第1実施形態に係る仮想ボリュームアドレス管理テーブルの接続先スナップショット切替時における状態を説明する図である。
【0046】
仮想ボリュームアドレス管理テーブル304は、仮想ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域のそれぞれについてのデータの格納先を管理するテーブルであり、仮想ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域ごとのエントリを格納する。仮想ボリュームアドレス管理テーブル304のエントリは、仮想ボリュームID501と、LBA502と、ステータス503と、格納先種別504と、格納先ID505と、格納先ボリューム506と、格納先LBA507とのフィールドを含む。
【0047】
仮想ボリュームID501には、エントリに対応する仮想ボリュームのID(仮想ボリュームID)が格納される。LBA502には、エントリに対応する記憶領域の論理ブロックアドレス(LBA)の範囲が格納される。
【0048】
ステータス503には、エントリに対応する記憶領域のステータスが格納される。ここで、ステータスとしては、エントリに対応する記憶領域のデータがストレージシステム101のストレージデバイス110に反映済み(取得済み)であることを示す反映済み、エントリに対応する記憶領域のデータをストレージシステム101のストレージデバイス110に反映させる必要があることを示す反映要等がある。
【0049】
格納先種別504には、エントリに対応する記憶領域のデータが実際に格納されている格納先の種別(格納先種別)が格納される。格納先種別としては、格納先がクラウド100のストレージシステム101のストレージデバイス110である場合のストレージデバイスと、格納先がストレージシステム102のスナップショットである場合の接続先スナップショットとがある。格納先ID505には、エントリに対応する記憶領域のデータが格納されている格納先のID(格納先ID)が格納される。格納先IDとしては、ストレージシステム102である場合に、ストレージシステム102のIDが格納される。
【0050】
格納先ボリューム506には、エントリに対応する記憶領域のデータが実際に格納されているボリュームのボリューム名が格納される。格納先LBA507には、エントリに対応する領域のデータが格納されているボリュームにおける論理ブロックアドレスの範囲が格納される。
【0051】
例えば、初回コピー完了時、すなわち、ボリュームに対するスナップショットのデータを最初にストレージシステム101にコピーした場合には、仮想ボリュームアドレス管理テーブル304は、
図5に示す状態となる。例えば、1行目のエントリによると、仮想ボリュームIDが1の仮想ボリュームの0~255の論理ブロックアドレスの範囲のデータは、ストレージシステム101のストレージデバイス110に反映済みであり、格納先種別がストレージデバイス、すなわち、ストレージシステム101のストレージデバイスであり、格納先ボリュームがストレージデバイス1であり、格納先の論理ブロックアドレスの範囲が0~255であることを示している。
【0052】
また、仮想ボリュームの接続先を別のスナップショットに切り替えた直後においては、仮想ボリュームアドレス管理テーブル304は、
図6に示す状態となる。例えば、1行目のエントリによると、仮想ボリュームIDが1の仮想ボリュームの0~255の論理ブロックアドレスの範囲のデータは、ストレージシステム101のストレージデバイス110への反映が必要であり、格納先種別が接続先スナップショット、すなわち、ストレージシステム102のスナップショットであり、格納先が外部ストレージ1、すなわち、ストレージシステム102であり、格納先ボリュームが切替先のSnapshot2であり、格納先の論理ブロックアドレスの範囲が0~255であることを示している。なお、仮想ボリュームを最初にスナップショットに接続した場合においては、
図6に示す状態において格納先ID506に最初のスナップショットのID(例えば、Snapshot1)が格納された状態となっている。
【0053】
次に、読み出し有無管理テーブル305について説明する。
【0054】
図7は、第1実施形態に係る読み出し有無管理テーブルの初回コピー完了時における状態を説明する図であり、
図8は、第1実施形態に係る読み出し有無管理テーブルの接続先スナップショット切替時における状態を説明する図である。
【0055】
読み出し有無管理テーブル305は、仮想ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域ごとの読み出しの有無を管理するテーブルであり、仮想ボリュームの所定のサイズの記憶領域ごとのエントリを格納する。読み出し有無管理テーブル305のエントリは、仮想ボリュームID601と、LBA602と、読み出し有無603とのフィールドを含む。
【0056】
仮想ボリュームID601には、エントリに対応する仮想ボリュームの仮想ボリュームIDが格納される。LBA602には、エントリに対応する記憶領域の論理ブロックアドレスの範囲が格納される。読み出し有無603には、エントリに対応する記憶領域のデータに対するホスト計算機103による読み出しの有無(リード有無)が格納される。
【0057】
例えば、初回コピー完了時、すなわち、ボリュームに対するスナップショットのデータを最初にストレージシステム101にコピーした場合には、読み出し有無管理テーブル305は、
図7に示す状態となる。すなわち、各エントリの読み出し有無603は、読み出しが無いことを示す無(リード無)に設定されている。
【0058】
また、仮想ボリュームの接続先を別のスナップショットに切り替えた直後においては、読み出し有無管理テーブル305は、
図8に示すように切り替え前のスナップショットに対する読み出し有無の状態が維持された状態となっている。例えば、1行目のエントリによると、仮想ボリュームIDが1の仮想ボリュームの0~255の論理ブロックアドレスの範囲のデータに対しては、読み出しが有ったことを示す有(リード有)が設定されている。
【0059】
次に、接続先スナップショット履歴管理テーブル308について説明する。
【0060】
図9は、第1実施形態に係る接続先スナップショット履歴管理テーブルの構成図である。
【0061】
接続先スナップショット履歴管理テーブル308は、仮想ボリュームの接続先のスナップショット(スナップショットボリューム)を管理するテーブルであり、仮想ボリューム毎のエントリを格納する。接続先スナップショット履歴管理テーブル308のエントリは、仮想ボリュームID901と、接続先ストレージ902と、接続先スナップショットID903とのフィールドを含む。
【0062】
仮想ボリュームID901には、エントリに対応する仮想ボリュームのIDが格納される。接続先ストレージ902には、エントリに対応する仮想ボリュームの接続先のストレージのIDが格納される。接続先スナップショットID903には、エントリに対応する仮想ボリュームの接続先のスナップショットのIDが格納される。
【0063】
次に、格納データ管理テーブル405について説明する。
【0064】
図10は、第1実施形態に係る格納データ管理テーブルの構成図である。
【0065】
格納データ管理テーブル405は、ストレージシステム102におけるスナップショットのボリュームの格納先を管理するテーブルであり、ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域毎のエントリを格納する。
【0066】
格納データ管理テーブル405のエントリは、SnapshotID701と、LBA702と、格納先ストレージデバイスID703と、格納先LBA704とのフィールドを含む。
【0067】
SnapshotID701には、エントリに対応するスナップショットのID(SnapshotID)が格納される。LBA702には、エントリに対応する記憶領域の論理ブロックアドレスの範囲が格納される。格納先ストレージデバイスID703には、エントリに対応する記憶領域のデータが格納されているストレージデバイスのIDが格納される。格納先LBA704には、エントリに対応する記憶領域のデータが格納されているストレージデバイスの論理ブロックアドレスの範囲が格納される。なお、格納先のLBAとしては、Thin provisioningに基づく仮想化された領域のLBAであってもよく、RAID(Redundant Array of Independent (or Inexpensive) Disks)や、Eradure Codingによる冗長化がされた領域のLBAであってもよい。
【0068】
次に、スナップショット管理テーブル406について説明する。
【0069】
図11は、第1実施形態に係るスナップショット管理テーブルの構成図である。
【0070】
スナップショット管理テーブル406は、ボリュームに対するスナップショットを管理するテーブルであり、各ボリュームのスナップショットごとのエントリを格納する。スナップショット管理テーブル406のエントリは、作成元ボリュームID801と、SnapshotID802と、作成日時803とのフィールドを含む。
【0071】
作成元ボリュームID801には、エントリに対応するスナップショットの作成元のボリュームのIDが格納される。SnapshotID802には、エントリに対応するスナップショットのIDが格納される。作成日時803には、エントリに対応するスナップショットを作成した日時が格納される。
【0072】
次に、計算機システム10を利用する際におけるユーザの操作手順について説明する。
【0073】
図12は、第1実施形態に係る計算機システムの利用におけるユーザの操作手順のフローチャートである。
図12は、計算機システム10において、ストレージシステム101にホスト計算機103の分析処理に使用するスナップショット(第2スナップショットの一例)のデータをコピーするための仮想ボリュームを作成し、仮想ボリュームにスナップショットのデータをコピーし、この仮想ボリュームを使用して分析処理を行い、次の分析処理に使用する別のスナップショット(第1スナップショットの一例)のデータをコピーし、分析処理を行う際の手順である。
【0074】
まず、ユーザは、管理用端末105に対して、仮想ボリュームと、仮想ボリュームに接続する接続先のスナップショット(第2スナップショット)を指定し、このスナップショットのコピー指示する(S1100)。これに対して、管理用端末105は、仮想ボリュームと、接続先のスナップショットとを含むコピー指示(取得指示)をストレージシステム101に送信する。
【0075】
ユーザは、ストレージシステム101から管理用端末105へのコピー完了の応答を待機する(S1101)。
【0076】
次いで、コピー完了の応答が返ってきた時には、管理用端末105により、分析処理に用いるホスト計算機103から仮想ボリュームに接続させ、ホスト計算機103に仮想ボリュームからデータの読み出しを開始させて分析処理を実行させる(S1102)。
【0077】
ユーザは、ホスト計算機103から管理用端末105への分析完了の応答を待機する(S1103)。
【0078】
その後、ユーザは、次の処理対象となるスナップショットがストレージシステム102で作成され、そのスナップショットを用いての分析処理を実行するまで待機する(S1104)。
【0079】
次に、ユーザは、管理用端末105に対して、仮想ボリュームと、新たに仮想ボリュームに接続する接続先の新規のスナップショット(第1スナップショット)を指定し、このスナップショットのコピーを指示する(S1105)。これに対して、管理用端末105は、仮想ボリュームと、接続先のスナップショットとを含むコピー指示をストレージシステム101に送信する。
【0080】
ユーザは、ストレージシステム101から管理用端末105へのコピー完了の応答を待機する(S1106)。
【0081】
次いで、コピー完了の応答が返ってきた時には、管理用端末105により、分析処理に用いるホスト計算機103に仮想ボリュームからデータの読み出しを開始させて分析処理を実行させる(S1107)。
【0082】
ユーザは、ホスト計算機103から管理用端末105への分析完了の応答を待機する(S1108)。
【0083】
その後、ユーザは、以降に次の分析処理の対象となるスナップショットをストレージシステム102で作成する場合(S1109:YES)には、処理をステップS1104に進める一方、以降に次の分析処理の対象となるスナップショットをストレージシステム102で作成しない場合(S1109:NO)には、処理を終了する。
【0084】
次に、仮想ボリューム管理処理について説明する。
【0085】
仮想ボリューム管理処理は、ストレージシステム101の操作受付プログラム306が管理用端末105から、仮想ボリュームと接続先のスナップショットとの指定を含むコピー指示を受け付けた場合に実行される。
【0086】
図13は、第1実施形態に係る仮想ボリューム管理処理のフローチャートである。
【0087】
ストレージシステム101の仮想ボリューム管理プログラム303(厳密には、仮想ボリューム管理プログラム303を実行するCPU211)は、指定された仮想ボリュームが存在するか否かを判定する(S1200)。
【0088】
この結果、指定された仮想ボリュームが存在する場合(S1200:YES)には、仮想ボリューム管理プログラム303は、指定されたスナップショットを接続するようにI/Oパス接続プログラム301の実行を指示する(S1201)。これにより、I/Oパス接続プログラム301は、仮想ボリュームを指定されたスナップショットに接続する処理を実行することとなる。
【0089】
次いで、仮想ボリューム管理プログラム303は、指定されたスナップショットIDを指定して、差分反映処理(
図14参照)を実行させ(S1202)、処理を終了する。
【0090】
一方、指定された仮想ボリュームが存在しない場合(S1200:NO)には、仮想ボリューム管理プログラム303は、指定されたスナップショットを接続するようにI/Oパス接続プログラム301の実行を指示する(S1203)。これにより、I/Oパス接続プログラム301は、仮想ボリュームを指定されたスナップショットに接続する処理を実行することとなる。
【0091】
次いで、仮想ボリューム管理プログラム303は、I/Oパス接続プログラム301による処理の完了まで待機し(S1204)、その後、仮想ボリュームアドレス管理テーブル304に指定された仮想ボリュームの情報を作成する(S1205)。
【0092】
次いで、仮想ボリューム管理プログラム303は、データコピープログラム307に、指定されたスナップショットの全データをストレージシステム101のストレージデバイス110にコピーさせる指示を行い(S1206)、全データコピー完了するまで待機し(S1207)、全データコピーが完了すると、仮想ボリュームアドレス管理テーブル304のフィールドを更新し(S1208)、終了する。具体的には、ステップS1208では、仮想ボリューム管理プログラム303は、指定された仮想ボリュームのエントリのステータス503を反映済みに変更し、格納先種別504をストレージデバイスに変更し、格納先ボリューム506をストレージシステム101のストレージデバイス110に更新する。
【0093】
次に、ステップS1202の差分反映処理について説明する。
【0094】
図14は、第1実施形態に係る差分反映処理のフローチャートである。
【0095】
仮想ボリューム管理プログラム303は、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームのエントリのフィールドを
図6に示すように更新する(S1300)。具体的には、仮想ボリューム管理プログラム303は、エントリのステータス503を反映要に更新し、格納先種別504を接続先Snapshotに更新し、格納先IDを、ストレージシステム102を示す外部ストレージに変更し、格納先ボリューム506を切り替え後のスナップショットに変更する。
【0096】
仮想ボリューム管理プログラム303は、読み出し有無管理テーブル305を参照し、読み出し有(リード有)となっているLBAを確認し(S1301)、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームの読み出し有となっているLBAに対応するエントリにおいて、ステータス503を優先反映要に更新する(S1302)。
【0097】
次いで、仮想ボリューム管理プログラム303は、読み出し有無管理テーブル305の指定された仮想ボリュームに対応するすべてのエントリの読み出し有無603をクリアする、すなわち、無に設定する(S1303)。
【0098】
次いで、仮想ボリューム管理プログラム303は、接続先スナップショット履歴管理テーブル308を参照し、指定された仮想ボリュームに対して、前回接続された、すなわち、切り替え前のスナップショットのIDを特定する(S1304)。
【0099】
次いで、仮想ボリューム管理プログラム303は、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームのエントリの中に、ステータス503が優先反映要に設定されているLBAのエントリがあるか否かを判定する(S1305)。
【0100】
この結果、ステータス503が優先反映要に設定されているLBAのエントリがある場合(S1305:YES)には、仮想ボリューム管理プログラム303は、優先反映要に設定されているLBAの中の最も若い番号(最若番)を、切り替え前のスナップショットの同じLBAのデータとの差分を確認する対象(差分確認対象)として設定する(S1306)。
【0101】
次いで、仮想ボリューム管理プログラム303は、差分確認対象のスナップショットのスナップショットID及び切り替え前のスナップショットのスナップショットIDと、差分確認対象のLBAとを指定し、差分コピー処理(
図15参照)の実行を指示する(S1307)。次いで、仮想ボリューム管理プログラム303は、差分コピー処理の終了後に、仮想ボリュームアドレス管理テーブル304の差分確認対象のLBAのエントリの項目を更新し、具体的には、ステータス503を反映済みに変更し、格納先種別504をストレージデバイスに変更し、格納先ボリューム506をストレージシステム101のストレージデバイス110に更新し(S1308)、処理をステップS1305に進める。
【0102】
一方、ステータス503が優先反映要に設定されているLBAのエントリがない場合(S1305:NO)には、切り替え前のスナップショットに対して読み出しがあった全てのLBAに対応するデータの差分を反映させたことを意味しており、他のLBAのデータの差分を反映していなくても、分析処理への遅延の影響が弱いと考えられるので、仮想ボリューム管理プログラム303は、ユーザの管理用端末105(要求元)へコピー完了の応答を返す(S1309)。これにより、ユーザは、切り替え後のスナップショットのデータを用いた分析処理を開始することができるようになる。
【0103】
次いで、仮想ボリューム管理プログラム303は、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームのエントリの中に、ステータス503が反映要に設定されているLBAのエントリがあるか否かを判定する(S1310)。
【0104】
この結果、ステータス503が反映要に設定されているLBAのエントリがある場合(S1310:YES)には、仮想ボリューム管理プログラム303は、反映要に設定されているLBAの中の最も若い番号(最若番)を、切り替え前のスナップショットの同じLBAのデータとの差分を確認する対象(差分確認対象)として設定する(S1311)。
【0105】
次いで、仮想ボリューム管理プログラム303は、差分確認対象のスナップショットのスナップショットID及び切り替え前のスナップショットのスナップショットIDと、差分確認対象のLBAとを指定し、差分コピー処理(
図15参照)の実行を指示する(S1312)。次いで、仮想ボリューム管理プログラム303は、差分コピー処理の終了後に、仮想ボリュームアドレス管理テーブル304の差分確認対象のLBAのエントリの項目を更新し、具体的には、ステータス503を反映済みに変更し、格納先種別504をストレージデバイスに変更し、格納先ボリューム506をストレージシステム101のストレージデバイス110に更新し(S1313)、処理をステップS1310に進める。
【0106】
一方、ステータス503が反映要に設定されているLBAのエントリがない場合(S1310:NO)には、切り替え後のスナップショットの全てのLBAに対応するデータの差分を反映させたことを意味しているので、仮想ボリューム管理プログラム303は、接続先スナップショット履歴管理テーブル308の指定された仮想ボリュームに対応するエントリの接続先スナップショットID903を今回接続した、すなわち、切り替え後のスナップショットのIDに更新し(S1314)、差分反映処理を終了する。
【0107】
次に、ステップS1307,S1312の差分コピー処理について説明する。
【0108】
図15は、第1実施形態に係る差分コピー処理のフローチャートである。
【0109】
仮想ボリューム管理プログラム303は、ストレージシステム102に対して、差分確認対象のスナップショットのスナップショットID及び切り替え前のスナップショットのスナップショットIDと、差分確認対象のLBAとを指定して差分有無管理処理の実行を指示する(S1400)。ここで、ストレージシステム102への差分有無管理処理の実行指示は、ストレージシステム102のAPI(Application Programmable Interface)を用いてもよい。
【0110】
この結果、ストレージシステム102では、操作受付プログラム404が差分有無管理処理の実行指示を受領し(S1401)、差分有無管理プログラム401に、指定されたスナップショットIDの指定されたLBAを対象として、切り替え前のスナップショットとの差分を確認する差分有無確認処理(
図16参照)を実行させる(S1402)。
【0111】
次いで、差分有無管理プログラム410は、差分有無確認処理の処理結果である、データ差分有無を応答する(S1403)。
【0112】
仮想ボリューム管理プログラム303は、ストレージシステム102からのデータ差分有無を受領し(S1404)、差分確認対象のスナップショットのLBAにデータ差分があるか否かを判定する(S1405)。
【0113】
この結果、差分確認対象のスナップショットのLBAにデータ差分がある場合(S1405:YES)には、仮想ボリューム管理プログラム303は、データコピープログラム307に、コピー元となる差分確認対象のスナップショットとデータ差分があるLBAとコピー先となる仮想ボリューム109とLBAを指定して、指定したLBAのデータ(差分データ)をストレージシステム101にコピーさせる指示を行い(S1406)、全データコピー完了するまで待機し(S1407)、データコピーが完了すると、処理を終了する。
【0114】
一方、差分確認対象のスナップショットのLBAにデータ差分がない場合(S1405:NO)には、仮想ボリューム管理プログラム303は、処理を終了する。
【0115】
次に、ステップS1402の差分有無確認処理について説明する。
【0116】
図16は、第1実施形態に係る差分有無確認処理のフローチャートである。
【0117】
差分有無管理プログラム401は、指定されたスナップショットIDのLBAを対象として、格納データ管理テーブル405を参照し(S1500)、対象のLBA(対象LBA)の格納先ストレージデバイスID703と格納先LBA704の値が切り替え前後のスナップショット間で異なるか否かを判定する(S1501)。
【0118】
この結果、対象LBAの格納先が切り替え前後のスナップショット間で異なると判定した場合(S1501:YES)には、差分有無管理プログラム401は、データ差分有として応答を返し(S1502)、処理を終了する一方、対象LBAの格納先が切り替え前後のスナップショット間で異ならないと判定した場合(S1501:NO)には、差分有無管理プログラム401は、データ差分無として応答を返し(S1503)、処理を終了する。
【0119】
次に、ストレージシステム101においてホスト計算機103からリード要求(読み出し要求)を受信した場合のホストリード処理について説明する。
【0120】
図17は、第1実施形態に係るホストリード処理のフローチャートである。
【0121】
ホストI/O処理プログラム302は、ホスト計算機103からリード要求を受け付けると、仮想ボリュームアドレス管理テーブル304を参照し、リード要求に含まれる仮想ボリュームのLBA(対象LBA)のステータスを確認し(S1600)、ステータスが反映済みであるか否かを判定する(S1601)。
【0122】
この結果、ステータスが反映済みである場合(S1601:YES)には、ホストI/O処理プログラム302は、クラウド100のストレージシステム101のストレージデバイス110の対象LBAからデータを読み出して、リード要求元のホスト計算機103に応答し(S1602)、読み出し有無管理テーブル305の対象LBAの読み出し有無を有に更新し(S1603)、処理を終了する。
【0123】
一方、ステータスが反映済みでない場合(S1601:NO)には、ホストI/O処理プログラム302は、ストレージシステム102のスナップショットの対象LBAからデータを読み出し(S1604)、読み出したデータをリード要求元のホスト計算機103に応答し(S1605)、読み出し有無管理テーブル305の対象LBAの読み出し有無を有に更新し(S1606)、処理を終了する。
【0124】
以上説明したように、第1実施形態に係る計算機システム10によると、或るボリュームの或るスナップショットのデータをストレージシステム101に読み出した後に、同じボリュームの別のスナップショットのデータを分析等の処理に利用する場合において、スナップショット間の差分のデータのみをストレージシステム102からストレージシステム101に読み出すようにしているので、処理に必要なスナップショットのデータを迅速にストレージシステム101で取得でき、処理の完了までの時間を短縮することができる。
【0125】
次に、第2実施形態に係る計算機システム10Aについて説明する。なお、第2実施形態の説明において、第1実施形態に係る計算機システム10と同様な機能や処理については同一の符号を付すこととする。
【0126】
図18は、第2実施形態に係る計算機システムの全体概要図である。
【0127】
計算機システム10Aは、クラウド100Aにおいて、ストレージシステム101に代えて、ストレージシステム101Aを備える。
【0128】
ストレージシステム101Aは、仮想ボリューム109と、1以上のストレージデバイス110とを含む。仮想ボリューム109は、ホスト計算機103の処理に利用されるデータを格納する。仮想ボリューム109の記憶領域は、ストレージシステム101のストレージデバイス110の記憶領域や、他のストレージシステム(ストレージシステム102)の記憶領域に基づいている。本実施形態では、ストレージシステム101Aは、仮想ボリューム109の所定の状態を示す、1以上のスナップショット(スナップショットボリューム)1700を管理する。
【0129】
次に、クラウド側のストレージシステム101Aのメモリの構成について説明する。
【0130】
図19は、第2実施形態に係るクラウド側のストレージシステムのメモリの構成図である。
【0131】
クラウド100A側のストレージシステム101Aのメモリ212は、スナップショット管理プログラム1901と、スナップショット管理テーブル1904と、I/Oパス接続プログラム301と、ホストI/O処理プログラム302と、仮想ボリューム管理プログラム1902と、ボリュームアドレス管理テーブル1903と、読み出し有無管理テーブル305と、操作受付プログラム306と、データコピープログラム307と、接続先スナップショット履歴管理テーブル1905と、を格納する。
【0132】
スナップショット管理プログラム1901は、CPU211に実行されることにより、仮想ボリューム109におけるスナップショットの作成と、スナップショット管理テーブル1904の管理を行う。
【0133】
スナップショット管理テーブル1904は、仮想ボリュームに対するスナップショットを管理するテーブルであり、各仮想ボリュームのスナップショットごとのエントリを格納する。スナップショット管理テーブル1904のエントリの構成は、スナップショット管理テーブル406と同様である。
【0134】
仮想ボリューム管理プログラム1902は、CPU211に実行されることにより、仮想ボリュームを管理する処理(仮想ボリューム管理処理)等を行う。なお、第1実施形態に係る仮想ボリューム管理プログラム303とは、一部の処理が異なっている。
【0135】
次に、ボリュームアドレス管理テーブル1903について説明する。
【0136】
図20は、第2実施形態に係るボリュームアドレス管理テーブルの2番目のスナップショットのデータの取得後における状態を説明する図である。
【0137】
ボリュームアドレス管理テーブル1903は、ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域のデータの格納先を管理するテーブルであり、ボリュームの所定のサイズ(例えば、256個の論理ブロック分)の記憶領域ごとのエントリを格納する。ボリュームアドレス管理テーブル1903のエントリは、仮想ボリュームアドレス管理テーブル304のエントリと、一部のフィールドが異なっている。なお、同様なフィールドについては、同一の符号を付すこととする。
【0138】
ボリュームアドレス管理テーブル1903のエントリは、ボリューム種別2000と、ID2001と、LBA502と、ステータス503と、格納先種別504と、格納先ID505と、格納先LBA507とのフィールドを含む。
【0139】
ボリューム種別2000には、エントリに対応するボリュームの種別が格納される。ボリュームの種別としては、仮想ボリュームや、スナップショットボリュームを示すSnapshotとがある。ID2001には、エントリに対応するボリュームのID(ボリュームID)が格納される。
【0140】
例えば、ボリュームに対する2番目のスナップショットのデータがストレージシステム101に取得された場合には、ボリュームアドレス管理テーブル1903は、
図20に示す状態となる。例えば、1行目のエントリによると、ボリューム種別がSnapshotであり、ボリュームIDが2のボリューム(スナップショットボリューム)の0~255のLBAの範囲のデータは、ストレージシステム101のストレージデバイス110に反映済みであり、格納先種別がストレージデバイス、すなわち、ストレージシステム101のストレージデバイスであり、格納先IDが1であり、格納先の論理ブロックアドレスが0~255であることを示している。
【0141】
次に、接続先スナップショット履歴管理テーブル1905について説明する。
【0142】
図21は、第2実施形態に係る接続先スナップショット履歴管理テーブルの構成図である。
【0143】
接続先スナップショット履歴管理テーブル1905は、ストレージシステム101Aのスナップショットの接続先であるストレージシステム102のスナップショットを管理するテーブルであり、スナップショット毎のエントリを格納する。接続先スナップショット履歴管理テーブル1905のエントリは、スナップショットID2101と、接続先ストレージ902と、接続先スナップショットID903とのフィールドを含む。
【0144】
スナップショットID2101には、エントリに対応するスナップショットのIDが格納される。
【0145】
次に、計算機システム10Aを利用する際におけるユーザの操作手順について説明する。
【0146】
図22は、第2実施形態に係る計算機システムの利用におけるユーザの操作手順のフローチャートである。なお、
図12に示す第1実施形態に係る計算機システムの利用におけるユーザの操作手順のフローチャートと同様な処理については同一の符号を付すこととする。
【0147】
まず、ユーザは、管理用端末105に対して、ストレージシステム102の接続先のスナップショットを指定し、クラウド100A上へのスナップショットの作成を指示する(S1801)。これに対して、管理用端末105は、接続先のスナップショットの指定を含むスナップショット作成指示(取得指示)をストレージシステム101Aに送信する。
【0148】
ユーザは、ストレージシステム101Aから管理用端末105への作成完了の応答を待機する(S1802)。
【0149】
次いで、作成完了の応答が返ってきた時には、管理用端末105により、分析処理に用いるホスト計算機103からストレージシステム101Aに作成したスナップショットに接続させ、ホスト計算機103にストレージシステム101Aのスナップショットからデータの読み出しを開始させて分析処理を実行させる(S1803)。
【0150】
ステップS1804では、ユーザは、管理用端末105に対して、ストレージシステム102の分析対象となるスナップショット(接続先スナップショット)のID(スナップショットID)と、ストレージシステム101Aで前回作成した対応するスナップショットのID(スナップショットID)と指定し、クラウド100A上への新規のスナップショットの作成を指示する(S1804)。これに対して、管理用端末105は、接続先のスナップショットのスナップショットIDと、前回作成したスナップショットのスナップショットIDとの指定を含むスナップショット作成指示をストレージシステム101Aに送信する。
【0151】
ユーザは、ストレージシステム101Aから管理用端末105への作成完了の応答を待機する(S1805)。
【0152】
次いで、作成完了の応答が返ってきた時には、管理用端末105により、分析処理に用いるホスト計算機103からストレージシステム101Aに作成したスナップショットに接続させ、ホスト計算機103にスナップショットからデータの読み出しを開始させて分析処理を実行させる(S1806)。
【0153】
次に、仮想ボリューム管理処理について説明する。仮想ボリューム管理処理は、ストレージシステム101Aの操作受付プログラム306が管理用端末105から、スナップショット作成指示を受け付けた場合に実行される。
【0154】
図23は、第2実施形態に係る仮想ボリューム管理処理のフローチャートである。なお、
図13に示す第1実施形態に係る仮想ボリューム管理処理と同様なステップには、同一符号を付している。
【0155】
ストレージシステム101Aの仮想ボリューム管理プログラム1902(厳密には、仮想ボリューム管理プログラム1902を実行するCPU211)は、接続先スナップショット履歴管理テーブル1905に指定された前回作成したスナップショットのスナップショットIDが存在するか否かを判定する(S2100)。
【0156】
この結果、前回作成したスナップショットのスナップショットIDが存在する場合(S2100:YES)には、仮想ボリューム管理プログラム1902は、処理をステップS1201に進める一方、前回作成したスナップショットのスナップショットIDが存在しない場合(S2100:NO)には、処理をステップS1203に進める。
【0157】
ステップS1201の後に、仮想ボリューム管理プログラム1902は、接続先スナップショット履歴管理テーブル1905を参照して前回作成したスナップショットのスナップショットIDに対応するエントリを特定し、このエントリから、前回(切り替え前)の接続先のスナップショットのスナップショットIDを特定し、切り替え前後のスナップショットのスナップショットIDを指定して、差分反映処理(
図14参照)を実行させる(S2101)。
【0158】
差分反映処理が終わると、仮想ボリューム管理プログラム1902は、差分を反映させた仮想ボリュームのスナップショットを作成し、スナップショット管理テーブル1904を更新し(S2102)、処理を終了する。ステップS2102では、具体的には、仮想ボリューム管理プログラム1902は、スナップショット管理テーブル1904に作成したスナップショットのエントリを作成し、このエントリに、スナップショットの作成元の仮想ボリュームのIDと、スナップショットのIDと、作成日時とを登録する。
【0159】
ステップS2103では、仮想ボリューム管理プログラム1902は、ボリュームアドレス管理テーブル1903に、スナップショットのデータを格納する仮想ボリュームの情報を作成する。
【0160】
ステップS2104では、全データコピーが完了すると、仮想ボリューム管理プログラム1902は、ボリュームアドレス管理テーブル1903のフィールドを更新する。具体的には、仮想ボリューム管理プログラム1902は、仮想ボリュームのエントリのステータス503を反映済みに変更し、格納先種別504をストレージデバイスに変更し、格納先ボリューム506をストレージシステム101Aのストレージデバイス110に更新する。
【0161】
次いで、仮想ボリューム管理プログラム1902は、指定されたスナップショットのデータが格納された仮想ボリュームのスナップショットを作成し、作成したスナップショットの情報をスナップショット管理テーブル1904に登録し(S2105)、処理を終了する。具体的には、ステップS2105では、仮想ボリューム管理プログラム1902は、スナップショット管理テーブル1904に、作成したスナップショットのエントリを作成し、このエントリに、スナップショットの作成元の仮想ボリュームのIDと、スナップショットのIDと、作成日時とを登録する。
【0162】
上記した実施形態によると、ストレージシステム102からストレージシステム101に読み出されたスナップショットのデータを、それぞれスナップショットとしてストレージシステム101で保持することができる。このため、後に同じスナップショットを利用する場合において、ストレージシステム101から再度読み出す必要がなく、迅速に処理に利用することができるようになる。
【0163】
次に、第3実施形態に係る計算機システムについて説明する。なお、第3実施形態に係る計算機システムは、第1実施形態に係る計算機システム10とは、差分反映処理が異なっている。なお、第3実施形態に係る計算機システムの各機能部については、便宜的に、第1実施形態に係る計算機システム10の同一又は対応する構成の符号と同一の符号を用いて説明する。
【0164】
第3実施形態に係る差分反映処理について説明する。
【0165】
図24は、第3実施形態に係る差分反映処理のフローチャートである。なお、
図14に示す差分反映処理と同様なステップには同一の符号を付している。
【0166】
仮想ボリューム管理プログラム303は、読み出し有無管理テーブル305を参照し、読み出し有となっているLBAを確認し(S1301)、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームの読み出し有となっているLBAに対応するエントリにおいて、ステータス503を反映要に更新する(S2200)。
【0167】
ステップS1304の後、仮想ボリューム管理プログラム303は、仮想ボリュームアドレス管理テーブル304の指定された仮想ボリュームのエントリの中に、ステータス503が反映要に設定されているLBAのエントリがあるか否かを判定する(S2201)。
【0168】
この結果、ステータス503が反映要に設定されているLBAのエントリがある場合(S2201:YES)には、仮想ボリューム管理プログラム303は、反映要に設定されているLBAの中の最も若い番号(最若番)を、切り替え前のスナップショットの同じLBAのデータとの差分を確認する対象(差分確認対象)として設定する(S2202)。
【0169】
一方、ステータス503が反映要に設定されているLBAのエントリがない場合(S2201:NO)には、切り替え前のスナップショットに対して読み出しがあった全てのLBAに対応するデータの差分を反映させたことを意味しており、仮想ボリューム管理プログラム303は、ユーザの管理用端末105へコピー完了の応答を返し(S1309)、処理を終了する。これにより、ユーザは、切り替え後のスナップショットのデータを用いた分析処理を開始することができるようになる。
【0170】
ここで、同一のボリュームに対するそれぞれのスナップショットに対する分析処理を行う場合においては、同じ領域のデータを用いて処理されるケースが多い場合がある。すなわち、分析処理では、或るスナップショットで読み出しがあった範囲と同一の範囲が、他のスナップショットで読み出しがある範囲となる場合がある。このような場合においては、上記実施形態によると、読み出しがあった範囲のみについての差分をストレージシステム101に転送するようにしているので、読み出されない範囲のデータについて、データを転送する処理等を行わずにすみ、処理資源や、通信資源の無駄を低減することができる。
【0171】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0172】
例えば、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記録メディア(例えば可搬型の記録メディア)であってもよい。
【符号の説明】
【0173】
10,10A…計算機システム、100,100A…クラウド、101,101A,102…ストレージシステム、103,104…ホスト計算機、105…管理用端末、107…ボリューム、108…スナップショット、109…仮想ボリューム、110,111…ストレージデバイス、211,221…CPU