JP2008257576A - 仮想計算機実行装置及びバックアッププログラム - Google Patents
仮想計算機実行装置及びバックアッププログラム Download PDFInfo
- Publication number
- JP2008257576A JP2008257576A JP2007100641A JP2007100641A JP2008257576A JP 2008257576 A JP2008257576 A JP 2008257576A JP 2007100641 A JP2007100641 A JP 2007100641A JP 2007100641 A JP2007100641 A JP 2007100641A JP 2008257576 A JP2008257576 A JP 2008257576A
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- virtual
- unit data
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】仮想ディスクのデータのバックアップ時におけるネットワーク負荷を減らし、また、計算機仮想化処理のディスク領域の圧迫を抑止することを目的とする。
【解決手段】仮想側データバックアップ処理部121は、計算機仮想化処理部120がデータを仮想側データファイル131に書き込むときにデータのブロック位置を計算機仮想化処理部120から取得、記録して更新位置情報122を生成するとともに、バックアップ指示信号を入力すると、更新位置情報122を検索し仮想側データファイル131に書き込まれたブロック単位のデータが存在するかを探索し、存在すると、存在するデータに対応するブロック位置の記録を更新位置情報122からクリアし、クリアしたブロック位置のデータをブロック位置に基づき仮想側データファイル131から読み出し、データとそのデータのブロック位置とをバックアップ用サーバ200に送信する。
【選択図】図3
【解決手段】仮想側データバックアップ処理部121は、計算機仮想化処理部120がデータを仮想側データファイル131に書き込むときにデータのブロック位置を計算機仮想化処理部120から取得、記録して更新位置情報122を生成するとともに、バックアップ指示信号を入力すると、更新位置情報122を検索し仮想側データファイル131に書き込まれたブロック単位のデータが存在するかを探索し、存在すると、存在するデータに対応するブロック位置の記録を更新位置情報122からクリアし、クリアしたブロック位置のデータをブロック位置に基づき仮想側データファイル131から読み出し、データとそのデータのブロック位置とをバックアップ用サーバ200に送信する。
【選択図】図3
Description
この発明は、仮想計算機の処理したデータのバックアップ処理を行う仮想計算機実行装置に関する。
従来の計算機仮想化処理は、仮想ディスク装置と物理ディスク装置の対応付けを行い、仮想ディスク装置のイメージファイルを物理ディスク装置の上に作成している(例えば特許文献1)。また、データのバックアップでは、更新したデータのデータの位置とデータの内容を記録しておくことにより、データの復元時にはそれを用いて行う方法がある(例えば特許文献2)。
特開平6−208512号公報
特開2001−125815号公報
従来の計算機仮想化処理で仮想ディスクのバックアップを行う場合、仮想ディスク全体をバックアップする必要があり、仮想ディスクサイズが大きくなるとバックアップに時間がかかり、またバックアップサーバとの間のネットワークに大きな負荷かがかかるという課題がある。また、更新位置と更新したデータの内容を用いてバックアップを行う場合は更新データを記録する領域が必要で、更新データ量が増大すると仮想計算機を処理する計算機が持つ物理ディスク領域を圧迫するという課題がある。
この発明は上記の課題を解決するためになされたもので、仮想ディスク内の更新したブロックの位置を記録しておき、バックアップを行う場合は、更新したブロック位置とデータをバックアップサーバに送り、バックアップ時のネットワーク負荷を減らし、また、計算機仮想化処理のディスク領域の圧迫を抑止することを目的とする。
この発明の仮想計算機実行装置は、
論理的に設定された仮想的な記憶部である仮想記憶部を有するとともに、自己の処理したデータをブロック単位であるブロック単位データとして、かつ、他のブロック単位データに対するそのブロック単位データの位置を示すブロック位置情報に従って、前記仮想記憶部に書き込む仮想計算機と、
ハードウェアとしての記憶装置である物理記憶部と、
前記仮想計算機がブロック単位データを前記仮想記憶部に書き込むことと連動して、前記仮想記憶部に書き込まれるブロック単位データとそのブロック単位データのブロック位置とを前記仮想計算機から取得し、取得したブロック単位データをそのブロック単位データのブロック位置に従って前記物理記憶部に書き込む計算機仮想化処理部と、
前記計算機仮想化処理部がブロック単位データを前記物理記憶部に書き込むときにブロック単位データのブロック位置を前記計算機仮想化処理部から取得し、取得したブロック位置を記録することにより前記物理記憶部に書き込まれるブロック単位データのブロック位置を示す書込済みデータ位置情報を生成するとともに、ブロック単位データのバックアップを指示するバックアップ指示信号を所定のタイミングで出力する所定の出力先からバックアップ指示信号を入力すると、前記書込済みデータ位置情報を検索することにより前記物理記憶部に書き込まれているブロック単位データが存在するかどうかを探索し、探索の結果存在する場合には、その存在するブロック単位データに対応するブロック位置の記録を前記書込済みデータ位置情報からクリアするとともに、クリアしたブロック位置に対応するブロック単位データをブロック位置に基づき前記物理記憶部から読み出し、読み出したブロック単位データとそのブロック単位データのブロック位置とを、ブロック単位データのブロック位置に従ってそのブロック単位データを格納するバックアップ用サーバに送信する仮想側データバックアップ処理部と
を備えたことを特徴とする。
論理的に設定された仮想的な記憶部である仮想記憶部を有するとともに、自己の処理したデータをブロック単位であるブロック単位データとして、かつ、他のブロック単位データに対するそのブロック単位データの位置を示すブロック位置情報に従って、前記仮想記憶部に書き込む仮想計算機と、
ハードウェアとしての記憶装置である物理記憶部と、
前記仮想計算機がブロック単位データを前記仮想記憶部に書き込むことと連動して、前記仮想記憶部に書き込まれるブロック単位データとそのブロック単位データのブロック位置とを前記仮想計算機から取得し、取得したブロック単位データをそのブロック単位データのブロック位置に従って前記物理記憶部に書き込む計算機仮想化処理部と、
前記計算機仮想化処理部がブロック単位データを前記物理記憶部に書き込むときにブロック単位データのブロック位置を前記計算機仮想化処理部から取得し、取得したブロック位置を記録することにより前記物理記憶部に書き込まれるブロック単位データのブロック位置を示す書込済みデータ位置情報を生成するとともに、ブロック単位データのバックアップを指示するバックアップ指示信号を所定のタイミングで出力する所定の出力先からバックアップ指示信号を入力すると、前記書込済みデータ位置情報を検索することにより前記物理記憶部に書き込まれているブロック単位データが存在するかどうかを探索し、探索の結果存在する場合には、その存在するブロック単位データに対応するブロック位置の記録を前記書込済みデータ位置情報からクリアするとともに、クリアしたブロック位置に対応するブロック単位データをブロック位置に基づき前記物理記憶部から読み出し、読み出したブロック単位データとそのブロック単位データのブロック位置とを、ブロック単位データのブロック位置に従ってそのブロック単位データを格納するバックアップ用サーバに送信する仮想側データバックアップ処理部と
を備えたことを特徴とする。
この発明により、仮想ディスクのデータのバックアップ時におけるネットワーク負荷を減らし、また、計算機仮想化処理のディスク領域の圧迫を抑止することができる。
実施の形態1.
図1は、コンピュータである仮想計算機実行装置100の概観の一例を示す図である。図1において、仮想計算機実行装置100は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、FDD817(Flexible・Disk・ Drive)、コンパクトディスク装置818(CDD:Compact Disk Drive)、プリンタ装置819などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
図1は、コンピュータである仮想計算機実行装置100の概観の一例を示す図である。図1において、仮想計算機実行装置100は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、FDD817(Flexible・Disk・ Drive)、コンパクトディスク装置818(CDD:Compact Disk Drive)、プリンタ装置819などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット830は、コンピュータであり、また、ネットワークに接続されている。ネットワークには、バックアップ用サーバ200が接続されている。仮想計算機実行装置100は、ネットワークを介してバックアップ用サーバ200と通信可能である。仮想計算機実行装置100はバックアップ用サーバ200にバックアップ用のデータを送信する。
図2は、実施の形態1における仮想計算機実行装置100のハードウェア資源の一例を示す図である。図2において、仮想計算機実行装置100は、プログラムを実行するCPU810(中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、FDD817、CDD818、プリンタ装置819、磁気ディスク装置820(物理記憶装置)と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの物理記憶装置でもよい。
RAM812は、揮発性メモリの一例である。ROM811、FDD817、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、物理記憶部の一例である。
通信ボード816、キーボード814、FDD817などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813、プリンタ装置819などは、出力部、出力装置の一例である。
通信ボード816は、ネットワーク(LAN等)に接続されている。通信ボード816は、LANに限らず、インターネット、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、以下に述べる実施の形態の説明において「〜部」、「仮想計算機」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
ファイル群824には、「〜の判定結果」、「〜の算出結果」、「〜の検索結果」、「〜の生成結果」、「〜の処理結果」としての情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明においては、データや信号値は、RAM812のメモリ、FDD817のフレキシブルディスク、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM811に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、仮想計算機110の処理したデータをバックアップするバックアップシステム1000を示す図である。バックアップシステム1000は、仮想計算機を実行する仮想計算機実行装置100と、仮想計算機の処理したデータをバックアップするバックアップ用サーバ200とを備える。
仮想計算機実行装置100は、仮想計算機110、計算機仮想化処理部120、仮想側物理ディスク130(物理記憶部)、CPU140を備える。仮想計算機110は、アプリケーション111、OS112、ディスクドライバ113、仮想ディスク114(仮想記憶部)を備える。計算機仮想化処理部120は、仮想側データバックアップ処理部121を備える。仮想側データバックアップ処理部121は、更新位置情報122(書込済みデータ位置情報)を有する。
仮想計算機実行装置100は、計算機仮想化処理部120及び計算機仮想化処理部120上で動作する仮想計算機110を実行する。
(仮想計算機110)
仮想計算機110は、アプリケーション111、OS112を実行する。仮想計算機110は仮想ディスク114を備え、OS112の中のディスクドライバ113は、アプリケーション111からの要求によりデータを仮想ディスク114に書き込む。
仮想計算機110は、アプリケーション111、OS112を実行する。仮想計算機110は仮想ディスク114を備え、OS112の中のディスクドライバ113は、アプリケーション111からの要求によりデータを仮想ディスク114に書き込む。
(計算機仮想化処理部120)
計算機仮想化処理部120は、仮想計算機110に対してCPU140の割付と、仮想ディスク114への書き込みを仮想側物理ディスク130への書き込みに置き換える制御とを実行する。計算機仮想化処理部120は、仮想側データバックアップ処理部121を備えている。仮想側データバックアップ処理部121は、更新位置情報122を持つ。
計算機仮想化処理部120は、仮想計算機110に対してCPU140の割付と、仮想ディスク114への書き込みを仮想側物理ディスク130への書き込みに置き換える制御とを実行する。計算機仮想化処理部120は、仮想側データバックアップ処理部121を備えている。仮想側データバックアップ処理部121は、更新位置情報122を持つ。
(仮想側物理ディスク130)
仮想側物理ディスク130は、仮想ディスク114の内容を保持する仮想側データファイル131と、仮想計算機実行装置100の電源を切ったときに更新位置情報122を保持するための更新位置情報ファイル132を保持する。
仮想側物理ディスク130は、仮想ディスク114の内容を保持する仮想側データファイル131と、仮想計算機実行装置100の電源を切ったときに更新位置情報122を保持するための更新位置情報ファイル132を保持する。
(バックアップ用サーバ200)
バックアップ用サーバ200は、サーバ側データバックアップ処理部210、サーバ側物理ディスク220、サーバ側テープ装置230を備える。サーバ側物理ディスク220は、サーバ側ファイル221を備える。
バックアップ用サーバ200は、サーバ側データバックアップ処理部210、サーバ側物理ディスク220、サーバ側テープ装置230を備える。サーバ側物理ディスク220は、サーバ側ファイル221を備える。
図4は、計算機仮想化処理部120の「ディスク書き込み処理」において、計算機仮想化処理部120が仮想側データバックアップ処理部121を呼び出す処理のフローチャートである。
図5は、計算機仮想化処理部120が「ディスク更新時」に呼び出す仮想側データバックアップ処理部121の処理のフローチャートである。
図6は、仮想側データバックアップ処理部121が「データのバックアップ」を行う処理のフローチャートである。
図7は、サーバ側データバックアップ処理部210が「データのバックアップ」を行う処理のフローチャートである。
次に動作について説明する。
まず、図3を参照して仮想計算機110の仮想ディスク114にデータを書き込む場合の処理を説明する。
(1)アプリケーション111が、OS112に対して、「書き込みブロック位置(ブロック位置情報)とデータ(ブロック単位データ)」とを含む仮想ディスク114への「書き込み要求」を出す。
(2)「書き込み要求」を受信すると、OS112は、ディスクドライバ113を呼び出し、ディスクドライバ113に、「書き込みブロック位置とデータ」を渡す。
(3)ディスクドライバ113は、「書き込みブロック位置とデータ」を元に、仮想ディスク114にデータを書き込む。
(4)ディスクドライバ113が仮想ディスク114に書き込みを行うと、計算機仮想化処理部120は、仮想側物理ディスク130上の仮想側データファイル131の該当するブロック位置に、渡されたデータ(仮想ディスク114に書き込まれたデータ)の書き込みを行う。
(1)アプリケーション111が、OS112に対して、「書き込みブロック位置(ブロック位置情報)とデータ(ブロック単位データ)」とを含む仮想ディスク114への「書き込み要求」を出す。
(2)「書き込み要求」を受信すると、OS112は、ディスクドライバ113を呼び出し、ディスクドライバ113に、「書き込みブロック位置とデータ」を渡す。
(3)ディスクドライバ113は、「書き込みブロック位置とデータ」を元に、仮想ディスク114にデータを書き込む。
(4)ディスクドライバ113が仮想ディスク114に書き込みを行うと、計算機仮想化処理部120は、仮想側物理ディスク130上の仮想側データファイル131の該当するブロック位置に、渡されたデータ(仮想ディスク114に書き込まれたデータ)の書き込みを行う。
本実施の形態1では、図4のフローチャートにおいて、計算機仮想化処理部120がS202で従来の技術により仮想側データファイル131に書き込みを行う前に、S201において、仮想側データバックアップ処理部121の書き込み時の処理(図5)を呼び出す。
計算機仮想化処理部120に呼び出された仮想側データバックアップ処理部121は、更新するブロック位置を元に、更新位置情報122を更新する(S301)。更新の内容は次の様である。
(更新位置情報122)
図3には、更新位置情報122の一例を示している。図3に示す更新位置情報122は、例えば、仮想ディスク114の各ブロックに対応して、1または0の値を持つビットマップにより、データが更新されている場合に1、更新されていない場合に0の値を持つものとする。仮想側データバックアップ処理部121は、仮想計算機実行装置100が停止される際は、更新位置情報122の内容を更新位置情報ファイル132に書き込む。また、仮想側データバックアップ処理部121は、仮想計算機実行装置100が起動された際は、更新位置情報ファイル132からデータを更新位置情報122に読み出す。
図3には、更新位置情報122の一例を示している。図3に示す更新位置情報122は、例えば、仮想ディスク114の各ブロックに対応して、1または0の値を持つビットマップにより、データが更新されている場合に1、更新されていない場合に0の値を持つものとする。仮想側データバックアップ処理部121は、仮想計算機実行装置100が停止される際は、更新位置情報122の内容を更新位置情報ファイル132に書き込む。また、仮想側データバックアップ処理部121は、仮想計算機実行装置100が起動された際は、更新位置情報ファイル132からデータを更新位置情報122に読み出す。
なお、本実施の形態1において、「データの更新」は「データの書き込み」と同じ意味である。これは、データはブロック単位で書き込まれるため、あるブロックが更新されるということは、そのブロックのデータが新たに書き込まれることを意味するからである。すなわち、ブロックの一部にのみ変更がある場合であっても、変更のない他の部分も含めてブロック全体が新たに書き込まれ、更新される。このため「データの更新」は「データの書き込み」と同じ意味である。
(データのバックアップの動作)
次に、図6を参照して、データのバックアップを行う処理を説明する。
(1)例えば専用OS(所定の出力先の一例)からのデータのバックアップ開始の指示(バックアップ指示信号)により、仮想側データバックアップ処理部121は、更新位置情報122により、データが更新されたブロックを求める(S401)。なお、データのバックアップ開始の指示については次の様である。通常、仮想計算機では、仮想計算機の起動・停止するコマンドやプログラムI/F(Inter Face)があるが、バックアップ開始制御もそれらと同じインターフェースを使用する。こうしたコマンドやプログラムI/Fは、これらを実行するために仮想計算機上で例えば専用OSを動かし、この上で実行する。この専用OSから計算機仮想化処理部120を制御するためには、CPUの専用の命令を実行したり、あるいは仮想的なH/Wを計算機仮想化処理部120が専用OSに見せてそれをアクセスすることにより実現する。
(2)仮想側データバックアップ処理部121は、更新位置情報122を元にして、更新されたブロックが存在するかどうかをチェックする(S402)、更新されたブロックが存在しなければ、仮想側データバックアップ処理部121は、サーバ側データバックアップ処理部210に、バックアップ完了を通知する(S407)。
(3)更新されたブロックが存在する場合は、仮想側データバックアップ処理部121は、更新されたブロックの中の1つに対しブロックの位置を求める(S403)。
(4)そして、更新位置情報122の該当するブロックの更新情報をクリアする(S404)。例えば、図3に示すように、第1ブロック位置を示す「1」がクリアされ「0」となる。
(5)そして、仮想側データバックアップ処理部121は、該当するブロックのデータを仮想側データファイル131から読み出し(405)、ブロック位置とそのブロックのデータをサーバ側データバックアップ処理部210に送る(S406)。
(6)仮想側データバックアップ処理部121は、再びS402で更新されたブロックを求め、更新されたブロックが存在する間これらの処理を繰り返す。
(7)仮想計算機110が停止している状態でバックアップする場合は、バックアップ中に仮想ディスク114の内容が更新されないので、バックアップ中も更新位置情報122も変わらない。しかし、仮想計算機110が動作している状態でバックアップを行う場合は、バックアップしている間もディスクドライバ113から仮想ディスク114への書き込みが行われるため、バックアップデータを既に送ったブロックが後から更新されていることもある。
(8)この場合は、S403でブロックを1つ選ぶ際、前回選んだブロックよりも後ろのブロックから選択する。これは更新頻度の低いブロックを先にバックアップするためである。
もし前回選んだブロックよりも後ろのブロックで更新されたものがない場合は、先頭に近いブロックから更新されたブロックを選択する。これらの処理を行うのは、頻繁に更新されるものは後回しにして、ビットマップの更新位置情報122では、できるだけ「0」(更新の無い場合を0とした)を多くするためである。
(9)書き込み要求はいずれ途絶えるので、S402で更新ブロックが存在しないケースが発生し、S407の完了処理が行われる。なお、書き込み要求はいずれ途絶えるというのは、実際のアプリケーションの処理では、常に新しいブロックに書き込むということはあまり無く、書き込みが行われるブロックは、ある程度限られているということを意味する。
次に、図6を参照して、データのバックアップを行う処理を説明する。
(1)例えば専用OS(所定の出力先の一例)からのデータのバックアップ開始の指示(バックアップ指示信号)により、仮想側データバックアップ処理部121は、更新位置情報122により、データが更新されたブロックを求める(S401)。なお、データのバックアップ開始の指示については次の様である。通常、仮想計算機では、仮想計算機の起動・停止するコマンドやプログラムI/F(Inter Face)があるが、バックアップ開始制御もそれらと同じインターフェースを使用する。こうしたコマンドやプログラムI/Fは、これらを実行するために仮想計算機上で例えば専用OSを動かし、この上で実行する。この専用OSから計算機仮想化処理部120を制御するためには、CPUの専用の命令を実行したり、あるいは仮想的なH/Wを計算機仮想化処理部120が専用OSに見せてそれをアクセスすることにより実現する。
(2)仮想側データバックアップ処理部121は、更新位置情報122を元にして、更新されたブロックが存在するかどうかをチェックする(S402)、更新されたブロックが存在しなければ、仮想側データバックアップ処理部121は、サーバ側データバックアップ処理部210に、バックアップ完了を通知する(S407)。
(3)更新されたブロックが存在する場合は、仮想側データバックアップ処理部121は、更新されたブロックの中の1つに対しブロックの位置を求める(S403)。
(4)そして、更新位置情報122の該当するブロックの更新情報をクリアする(S404)。例えば、図3に示すように、第1ブロック位置を示す「1」がクリアされ「0」となる。
(5)そして、仮想側データバックアップ処理部121は、該当するブロックのデータを仮想側データファイル131から読み出し(405)、ブロック位置とそのブロックのデータをサーバ側データバックアップ処理部210に送る(S406)。
(6)仮想側データバックアップ処理部121は、再びS402で更新されたブロックを求め、更新されたブロックが存在する間これらの処理を繰り返す。
(7)仮想計算機110が停止している状態でバックアップする場合は、バックアップ中に仮想ディスク114の内容が更新されないので、バックアップ中も更新位置情報122も変わらない。しかし、仮想計算機110が動作している状態でバックアップを行う場合は、バックアップしている間もディスクドライバ113から仮想ディスク114への書き込みが行われるため、バックアップデータを既に送ったブロックが後から更新されていることもある。
(8)この場合は、S403でブロックを1つ選ぶ際、前回選んだブロックよりも後ろのブロックから選択する。これは更新頻度の低いブロックを先にバックアップするためである。
もし前回選んだブロックよりも後ろのブロックで更新されたものがない場合は、先頭に近いブロックから更新されたブロックを選択する。これらの処理を行うのは、頻繁に更新されるものは後回しにして、ビットマップの更新位置情報122では、できるだけ「0」(更新の無い場合を0とした)を多くするためである。
(9)書き込み要求はいずれ途絶えるので、S402で更新ブロックが存在しないケースが発生し、S407の完了処理が行われる。なお、書き込み要求はいずれ途絶えるというのは、実際のアプリケーションの処理では、常に新しいブロックに書き込むということはあまり無く、書き込みが行われるブロックは、ある程度限られているということを意味する。
図7はサーバ側データバックアップ処理部210の動作を示すフローチャートである。図7を参照してサーバ側データバックアップ処理部210の動作を説明する。
(1)サーバ側データバックアップ処理部210は、仮想側データバックアップ処理部121から送られてくるブロック位置とデータを受け取る(S501)。
(2)サーバ側データバックアップ処理部210は、バックアップ終了通知であれば終了する(S502)。バックアップ終了通知ではない場合、サーバ側データバックアップ処理部210は、受信した更新ブロック位置とデータとを元に、サーバ側物理ディスク220上のサーバ側ファイル221の該当位置に、データを書き込む(サーバ側ファイル221は仮想側データファイル131と同じ内容を保持するファイルである)。そして、仮想側データバックアップ処理部121から次に送られてくるデータを受け取り(S504)、再びS502の処理を行う。
(2)サーバ側データバックアップ処理部210は、バックアップ終了通知であれば終了する(S502)。バックアップ終了通知ではない場合、サーバ側データバックアップ処理部210は、受信した更新ブロック位置とデータとを元に、サーバ側物理ディスク220上のサーバ側ファイル221の該当位置に、データを書き込む(サーバ側ファイル221は仮想側データファイル131と同じ内容を保持するファイルである)。そして、仮想側データバックアップ処理部121から次に送られてくるデータを受け取り(S504)、再びS502の処理を行う。
図7の処理が完了したならば、サーバ側ファイル221をサーバ側テープ装置230のテープにコピーして保管する。
以上の実施の形態1では装置としての仮想計算機実行装置100を説明したが、仮想計算機実行装置100の仮想側データバックアップ処理部121等の各構成要素の動作を処理ととらえることにより、仮想計算機実行装置100の動作をコンピュータに実行させるバックアッププログラムとして把握することも可能である。
以上のように、仮想側データバックアップ処理部121を計算機仮想化処理部120に設け、更新位置情報122を保持することにより、仮想ディスク114の更新部分のみの差分バックアップを行うことが可能となり、短時間のバックアップと、バックアップ用サーバ200との間のデータ通信路に対する負荷の軽減が可能になる。また、Redoログのように更新前後のデータを持たないので、仮想側物理ディスク130の容量を圧迫しないという利点がある。また、OSレベルで更新されたブロックをバックアップする方式では、OSごとに対応した処理プログラムを開発する必要があるが、この方式では計算機仮想化処理部120に変更を加えるだけですむ。
実施の形態2.
以上の実施の形態1では、サーバ側ファイル221に差分のデータが書き込まれたが、バックアップ内容をサーバ側ファイル221に蓄積しておくことで、実施の形態1の差分バックアップが完了した状態でサーバ側ファイル221にはフルバックアップと同じディスクの内容にすることも可能である。
以上の実施の形態1では、サーバ側ファイル221に差分のデータが書き込まれたが、バックアップ内容をサーバ側ファイル221に蓄積しておくことで、実施の形態1の差分バックアップが完了した状態でサーバ側ファイル221にはフルバックアップと同じディスクの内容にすることも可能である。
実施の形態3.
以上の実施の形態では、仮想側データバックアップ処理部121とサーバ側データバックアップ処理部210の間の通信ではデータをそのまま送っていたが、仮想側データバックアップ処理部121がデータを圧縮してサーバ側データバックアップ処理部210に送ることにより、通信路に対する負荷をさらに軽減することも可能である。
以上の実施の形態では、仮想側データバックアップ処理部121とサーバ側データバックアップ処理部210の間の通信ではデータをそのまま送っていたが、仮想側データバックアップ処理部121がデータを圧縮してサーバ側データバックアップ処理部210に送ることにより、通信路に対する負荷をさらに軽減することも可能である。
実施の形態4.
以上の実施の形態2のサーバ側ファイル221をそのまま計算機仮想化処理部120に渡すことも可能である。例えば災害対策用に遠隔地においた計算機で上記の仮想計算機110を動作させる場合、その計算機の中にサーバ側データバックアップ処理部210を設け、そこに作られるサーバ側ファイル221をそのまま仮想計算機110のデータファイルとして用いることが可能である。
以上の実施の形態2のサーバ側ファイル221をそのまま計算機仮想化処理部120に渡すことも可能である。例えば災害対策用に遠隔地においた計算機で上記の仮想計算機110を動作させる場合、その計算機の中にサーバ側データバックアップ処理部210を設け、そこに作られるサーバ側ファイル221をそのまま仮想計算機110のデータファイルとして用いることが可能である。
100 仮想計算機実行装置、110 仮想計算機、111 アプリケーション、112 OS、113 ディスクドライバ、114 仮想ディスク、120 計算機仮想化処理部、121 仮想側データバックアップ処理部、122 更新位置情報、130 仮想側物理ディスク、131 仮想側データファイル、132 更新位置情報ファイル、200 バックアップ用サーバ、210 サーバ側データバックアップ処理部、220 サーバ側物理ディスク、221 サーバ側ファイル、230 サーバ側テープ装置、1000 バックアップシステム。
Claims (4)
- 論理的に設定された仮想的な記憶部である仮想記憶部を有するとともに、自己の処理したデータをブロック単位であるブロック単位データとして、かつ、他のブロック単位データに対するそのブロック単位データの位置を示すブロック位置情報に従って、前記仮想記憶部に書き込む仮想計算機と、
ハードウェアとしての記憶装置である物理記憶部と、
前記仮想計算機がブロック単位データを前記仮想記憶部に書き込むことと連動して、前記仮想記憶部に書き込まれるブロック単位データとそのブロック単位データのブロック位置とを前記仮想計算機から取得し、取得したブロック単位データをそのブロック単位データのブロック位置に従って前記物理記憶部に書き込む計算機仮想化処理部と、
前記計算機仮想化処理部がブロック単位データを前記物理記憶部に書き込むときにブロック単位データのブロック位置を前記計算機仮想化処理部から取得し、取得したブロック位置を記録することにより前記物理記憶部に書き込まれるブロック単位データのブロック位置を示す書込済みデータ位置情報を生成するとともに、ブロック単位データのバックアップを指示するバックアップ指示信号を所定のタイミングで出力する所定の出力先からバックアップ指示信号を入力すると、前記書込済みデータ位置情報を検索することにより前記物理記憶部に書き込まれているブロック単位データが存在するかどうかを探索し、探索の結果存在する場合には、その存在するブロック単位データに対応するブロック位置の記録を前記書込済みデータ位置情報からクリアするとともに、クリアしたブロック位置に対応するブロック単位データをブロック位置に基づき前記物理記憶部から読み出し、読み出したブロック単位データとそのブロック単位データのブロック位置とを、ブロック単位データのブロック位置に従ってそのブロック単位データを格納するバックアップ用サーバに送信する仮想側データバックアップ処理部と
を備えたことを特徴とする仮想計算機実行装置。 - 前記仮想側データバックアップ処理部は、
前記書込済みデータ位置情報として、ビットマップであってビットに予めブロック位置が対応付けられているビットマップを使用することを特徴とする請求項1記載の仮想計算機実行装置。 - 前記仮想側データバックアップ処理部は、
前記バックアップ用サーバにブロック単位データとそのブロック単位データのブロック位置とを送信する際に、データ圧縮をして送信することを特徴とする請求項1または2記載の仮想計算機実行装置。 - 論理的に設定された仮想的な記憶部である仮想記憶部を有するとともに自己の処理したデータをブロック単位であるブロック単位データとして、かつ、他のブロック単位データに対するそのブロック単位データの位置を示すブロック位置情報に従って前記仮想記憶部に書き込む仮想計算機を実現するとともに、ハードウェアとしての記憶装置である物理記憶部を備えたコンピュータに以下の処理を実行させることを特徴とするバックアッププログラム
(1)前記仮想計算機がブロック単位データを前記仮想記憶部に書き込むことと連動して、前記仮想記憶部に書き込まれるブロック単位データとそのブロック単位データのブロック位置とを前記仮想計算機から取得し、取得したブロック単位データをそのブロック単位データのブロック位置に従って前記物理記憶部に書き込む処理
(2)ブロック単位データを前記物理記憶部に書き込むときにブロック単位データのブロック位置を取得し、取得したブロック位置を記録することにより前記物理記憶部に書き込まれているブロック単位データのブロック位置を示す書込済みデータ位置情報を生成するとともに、ブロック単位データのバックアップを指示するバックアップ指示信号を所定のタイミングで出力する所定の出力先からバックアップ指示信号を入力すると、前記書込済みデータ位置情報を検索することにより前記物理記憶部に書き込まれるブロック単位データが存在するかどうかを探索し、探索の結果存在する場合には、その存在するブロック単位データに対応するブロック位置の記録を前記書込済みデータ位置情報からクリアするとともに、クリアしたブロック位置に対応するブロック単位データをブロック位置に基づき前記物理記憶部から読み出し、読み出したブロック単位データとそのブロック単位データのブロック位置とを、ブロック単位データのブロック位置に従ってそのブロック単位データを格納するバックアップ用サーバに送信する処理
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007100641A JP2008257576A (ja) | 2007-04-06 | 2007-04-06 | 仮想計算機実行装置及びバックアッププログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007100641A JP2008257576A (ja) | 2007-04-06 | 2007-04-06 | 仮想計算機実行装置及びバックアッププログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008257576A true JP2008257576A (ja) | 2008-10-23 |
Family
ID=39981068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007100641A Pending JP2008257576A (ja) | 2007-04-06 | 2007-04-06 | 仮想計算機実行装置及びバックアッププログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008257576A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013061883A (ja) * | 2011-09-14 | 2013-04-04 | Fujitsu Ltd | リストア処理プログラム、リストア方法、及び情報処理装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09101912A (ja) * | 1995-10-06 | 1997-04-15 | Mitsubishi Electric Corp | 差分バックアップ方式 |
JP2002149499A (ja) * | 2000-08-29 | 2002-05-24 | Hitachi Ltd | データの完全性を備えるリモートコピーシステム |
JP2002182988A (ja) * | 2001-10-05 | 2002-06-28 | Fujitsu Ltd | データ処理システムのバックアップ制御装置及び方法 |
JP2002312250A (ja) * | 2001-04-10 | 2002-10-25 | Mitsubishi Electric Corp | 伝送方式及び伝送装置及び伝送方法 |
JP2003202964A (ja) * | 2002-01-09 | 2003-07-18 | Hitachi Ltd | 計算機システムの制御方法、計算機システム、記憶装置の制御方法及び記憶装置 |
-
2007
- 2007-04-06 JP JP2007100641A patent/JP2008257576A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09101912A (ja) * | 1995-10-06 | 1997-04-15 | Mitsubishi Electric Corp | 差分バックアップ方式 |
JP2002149499A (ja) * | 2000-08-29 | 2002-05-24 | Hitachi Ltd | データの完全性を備えるリモートコピーシステム |
JP2002312250A (ja) * | 2001-04-10 | 2002-10-25 | Mitsubishi Electric Corp | 伝送方式及び伝送装置及び伝送方法 |
JP2002182988A (ja) * | 2001-10-05 | 2002-06-28 | Fujitsu Ltd | データ処理システムのバックアップ制御装置及び方法 |
JP2003202964A (ja) * | 2002-01-09 | 2003-07-18 | Hitachi Ltd | 計算機システムの制御方法、計算機システム、記憶装置の制御方法及び記憶装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013061883A (ja) * | 2011-09-14 | 2013-04-04 | Fujitsu Ltd | リストア処理プログラム、リストア方法、及び情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8321482B2 (en) | Selectively modifying files of a container file | |
US7330947B2 (en) | Method and apparatus for backing up data in virtual storage medium | |
JP5768277B2 (ja) | 記憶ボリュームのディスマウント | |
JP2013520744A (ja) | 最小ブートイメージの生成方法及びその装置 | |
KR20200070085A (ko) | 정보를 처리하기 위한 방법 및 장치 | |
US8555012B2 (en) | Data storage apparatus | |
JP2006268139A (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US8090907B2 (en) | Method for migration of synchronous remote copy service to a virtualization appliance | |
US20070074065A1 (en) | Computer, method of controlling memory dump, mechanism of controlling dump, and memory dump program | |
JP2015087906A (ja) | テープ装置、記憶制御装置および記憶制御方法 | |
US11144409B2 (en) | Recovering from a mistaken point-in-time copy restore | |
JP5037117B2 (ja) | プログラム及び表示制御方法 | |
WO2024113543A1 (zh) | 数据处理方法、系统、装置、非易失性可读存储介质及电子设备 | |
US8334875B2 (en) | Operation displaying device and image forming device | |
US20120144136A1 (en) | Restoration of data from a backup storage volume | |
JP2014038551A (ja) | データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム | |
JP2008257576A (ja) | 仮想計算機実行装置及びバックアッププログラム | |
US9235349B2 (en) | Data duplication system, data duplication method, and program thereof | |
KR20100050098A (ko) | 영상처리장치 및 그 제어 방법 | |
CN115033425A (zh) | 一种提高数据备份成功率的方法 | |
JP6160688B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JPH0744440A (ja) | データ退避装置 | |
US8392759B2 (en) | Test method, test program, test apparatus, and test system | |
JP6788188B2 (ja) | 制御装置および制御プログラム | |
JP2008217202A (ja) | ディスクアレイ装置及びファームウェア更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120605 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130108 |