JP2017084332A - 仮想マシンシステムディスクのスナップショットの作成方法および装置 - Google Patents

仮想マシンシステムディスクのスナップショットの作成方法および装置 Download PDF

Info

Publication number
JP2017084332A
JP2017084332A JP2016159971A JP2016159971A JP2017084332A JP 2017084332 A JP2017084332 A JP 2017084332A JP 2016159971 A JP2016159971 A JP 2016159971A JP 2016159971 A JP2016159971 A JP 2016159971A JP 2017084332 A JP2017084332 A JP 2017084332A
Authority
JP
Japan
Prior art keywords
file
snapshot
virtual machine
dependency
creation
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.)
Granted
Application number
JP2016159971A
Other languages
English (en)
Other versions
JP6345211B2 (ja
Inventor
ジャン,ユー
Yu Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2017084332A publication Critical patent/JP2017084332A/ja
Application granted granted Critical
Publication of JP6345211B2 publication Critical patent/JP6345211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • G06F16/166File name conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】改良された仮想マシンシステムディスクのスナップショットの作成方法および装置を提供する。
【解決手段】仮想マシンスナップショットの作成コマンドを受信するステップ201と、仮想マシンがオン状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルにおけるトップファイルをリネームするステップ203と、トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開くステップ204と、前回のスナップショット作成が成功した場合に、リネームされたトップファイルを第1スナップショットファイルとするステップ206と、第1スナップショットファイルをファイル管理サーバーにアップロードするステップ207と、を含む。
【選択図】図2

Description

本願はコンピュータの技術分野に関し、具体的には仮想マシンの技術分野に関し、特に仮想マシンシステムディスクのスナップショットの作成方法および装置に関する。
従来の仮想マシンスナップショットの作成方法として、通常、内蔵ディスクスナップショット(Internal disk snapshot)技術を利用してスナップショットを作成し、スナップショットポイントのディスク状態を取得する。
この仮想マシンスナップショットの作成方法は、仮想マシンのオフ状態でもオン状態でも作成でき、例えば、ハードウェア仮想化技術のqemu−kvmタイプの仮想マシンにおいて‘qemu−img’コマンドを利用してオフ状態のディスクスナップショット(Cold−Snapshot)を作成し、‘savevm’コマンドを利用してオン状態のディスクスナップショット(Live−Snapshot)を作成する。
しかしながら、上記仮想マシンシステムディスクのスナップショットの作成方法は、スナップショットを作成するとともにメモリ状態をコピーし、データとスナップショットがいずれも単一のqcow2フォーマットのファイルに保存されるため、仮想マシンをオフしてスナップショットを作成する場合に、仮想マシンの動作効率に影響を与え、仮想マシンをオンしてスナップショットを作成する場合に、作成されたスナップショットのファイルサイズが仮想マシンのディスクのファイルサイズと同じであり、バックアップを必要とするデータ量が大きく、使用される記憶容量が大きく、またアップロード時に使用されるネットワーク帯域幅が大きいという問題がある。
本願は、上記背景技術で言及された技術的課題を解決するために、改良された仮想マシンシステムディスクのスナップショットの作成方法および装置を提供することを目的とする。
第1態様によれば、本願は仮想マシンシステムディスクのスナップショットの作成方法を提供し、この方法は、仮想マシンスナップショットの作成コマンドを受信するステップと、仮想マシンがオン状態であるか否かを判定するステップと、前記仮想マシンがオン状態である場合に、前記作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルにおけるトップファイルをリネームするステップと、前記トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開くステップと、前回のスナップショット作成が成功したか否かを判定するステップと、前回のスナップショット作成が成功した場合に、前記リネームされたトップファイルを第1スナップショットファイルとするステップと、前記第1スナップショットファイルをファイル管理サーバーにアップロードするステップと、を含む。
いくつかの実施形態では、前記方法は、アップロードが成功したことに応答して、前記リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定するステップと、前記リネームされたトップファイルの依存ファイルが履歴スナップショットファイルである場合に、前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するステップと、前記新規作成されたトップファイルの依存を前記新たな履歴スナップショットファイルに変更し、新規作成されたトップファイルを改めて開くステップと、をさらに含む。
いくつかの実施形態では、前記の前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するステップにおいては、前記リネームされたトップファイルおよび前記履歴スナップショットファイルをソースファイルとしてバックアップするステップと、バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認するステップと、バックアップファイルの依存関係とソースファイルの依存関係が異なる場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更するステップと、バックアップファイルの依存関係がソースファイルの依存関係と同じである場合に、前記バックアップファイルを合併して前記新たな履歴スナップショットファイルを取得するステップと、前記ソースファイルを削除するステップと、を含む。
いくつかの実施形態では、前記の前回のスナップショット作成が成功したか否かを判定するステップにおいては、すべての依存されるファイルの一意識別子を抽出するステップと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定するステップと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定するステップと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定するステップと、を含む。
いくつかの実施形態では、前記方法は、前回のスナップショット作成が失敗した場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併するステップと、前記第2スナップショットファイルをファイル管理サーバーにアップロードするステップと、をさらに含む。
いくつかの実施形態では、前記方法は、前記仮想マシンがオフ状態である場合に、前記作成コマンドが受信されたことに応答して、前記仮想マシンのシステムディスクファイルのトップファイルをコピーし、第3スナップショットファイルを取得するステップと、前記第3スナップショットファイルをファイル管理サーバーにアップロードするステップと、をさらに含む。
いくつかの実施形態では、前記方法は、スナップショットロールバックコマンドを受信するステップと、前記スナップショットロールバックコマンドが受信されたことに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするステップと、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併するステップと、をさらに含む。
いくつかの実施形態では、前記のスナップショットロールバックコマンドを受信するステップにおいては、ロールバックコマンドを選択するインターフェースを表示するステップと、前記ロールバックコマンドに対する第1選択操作を受信するステップと、前記第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示するステップと、前記ロールバック時点に対する第2選択操作を受信するステップと、を含み、前記の前記スナップショットロールバックコマンドが受信されたことに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするステップにおいては、前記第2選択操作が受信されたことに応答して、前記ファイル管理サーバーから前記第2選択操作に適合するスナップショットファイルをダウンロードするステップを含む。
いくつかの実施形態では、前記仮想マシンはオープンソースのクラウドコンピューティング管理プラットフォームアーキテクチャOpenStackによりハードウェア仮想化技術qemu−kvmに基づき作成される仮想マシンであり、前記仮想マシンのシステムディスクファイルのフォーマットはqcow2フォーマットのリンク構造である。
いくつかの実施形態では、前記システムディスクファイルのリンクの長さは4以下である。
第2態様によれば、本願は仮想マシンシステムディスクのスナップショットの作成装置を提供し、この装置は、仮想マシンスナップショットの作成コマンドを受信する第1受信ユニットと、仮想マシンがオン状態であるか否かを判定する第1判定ユニットと、前記仮想マシンがオン状態である場合に、前記作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルにおけるトップファイルをリネームする命名ユニットと、前記トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開く新規作成ユニットと、前回のスナップショット作成が成功したか否かを判定する第2判定ユニットと、前回のスナップショット作成が成功した場合に、前記リネームされたトップファイルを第1スナップショットファイルとする決定ユニットと、前記第1スナップショットファイルをファイル管理サーバーにアップロードする第1アップロードユニットと、を備える。
いくつかの実施形態では、前記装置は、アップロードが成功したことに応答して、前記リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する第3判定ユニットと、前記リネームされたトップファイルの依存ファイルが履歴スナップショットファイルである場合に、前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併する第1合併ユニットと、前記新規作成されたトップファイルの依存を前記新たな履歴スナップショットファイルに修正し、新規作成されたトップファイルを改めて開く変更ユニットと、をさらに備える。
いくつかの実施形態では、前記第1合併ユニットは、前記リネームされたトップファイルおよび前記履歴スナップショットファイルをソースファイルとしてバックアップするバックアップサブユニットと、バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認する確認サブユニットと、バックアップファイルの依存関係とソースファイルの依存関係が異なることが確認された場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更する変更サブユニットと、バックアップファイルの依存関係がソースファイルの依存関係と同じであると確認された場合に、前記バックアップファイルを合併して前記新たな履歴スナップショットファイルを取得する合併サブユニットと、前記ソースファイルを削除する削除サブユニットと、を備える。
いくつかの実施形態では、前記第2判定ユニットは、すべての依存される一意識別子を抽出する抽出サブユニットと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定する判定サブユニットと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定する第1判定サブユニットと、前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定する第2判定サブユニットと、を備える。
いくつかの実施形態では、前記装置は、前回のスナップショット作成が失敗したと判定された場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併する第2合併ユニットと、前記第2スナップショットファイルをファイル管理サーバーにアップロードする第2アップロードユニットと、をさらに備える。
いくつかの実施形態では、前記装置は、前記仮想マシンがオフ状態である場合に、前記作成コマンドが受信されたことに応答して、前記仮想マシンのシステムディスクファイルのトップファイルをコピーし、第3スナップショットファイルを取得するコピーユニットと、前記第3スナップショットファイルをファイル管理サーバーにアップロードする第3アップロードユニットと、をさらに備える。
いくつかの実施形態では、前記装置は、スナップショットロールバックコマンドを受信する第2受信ユニットと、前記スナップショットロールバックコマンドが受信されたことに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするダウンロードユニットと、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する第3合併ユニットと、をさらに備える。
いくつかの実施形態では、前記第2受信ユニットは、ロールバックコマンドを選択するインターフェースを表示する第1表示サブユニットと、前記ロールバックコマンドに対する第1選択操作を受信する第1受信サブユニットと、前記第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示する第2表示サブユニットと、前記ロールバック時点に対する第2選択操作を受信する第2受信サブユニットと、を備え、前記ダウンロードユニットは、前記第2選択操作が受信されたことに応答して、前記ファイル管理サーバーから前記第2選択操作に適合するスナップショットファイルをダウンロードするダウンロードサブユニットを備える。
いくつかの実施形態では、前記装置における前記仮想マシンはオープンソースのクラウドコンピューティング管理プラットフォームアーキテクチャOpenStackによりハードウェア仮想化技術qemu−kvmに基づき作成される仮想マシンであり、前記装置における前記仮想マシンのシステムディスクファイルフォーマットはqcow2フォーマットのリンク構造である。
いくつかの実施形態では、前記装置における前記システムディスクファイルのリンクの長さは4以下である。
本願に係る仮想マシンシステムディスクのスナップショットの作成方法および装置によれば、まず仮想マシンスナップショットの作成コマンドを受信し、次に仮想マシンがオン状態であるか否かを判定し、前記仮想マシンがオン状態である場合に、前記作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルのトップファイルをリネームし、その後、前記トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開き、その後、前回のスナップショット作成が成功したか否かを判定し、前回のスナップショット作成が成功した場合に、リネームされたトップファイルを第1スナップショットファイルとし、最後に、第1スナップショットファイルをファイル管理サーバーにアップロードする。当該方法および装置によれば、仮想マシンのオン状態で仮想マシンシステムディスクのスナップショットを作成する際に、仮想マシンの動作を停止せずにスナップショットを作成でき、仮想マシンのスナップショット作成にバックアップを必要とするデータ量および使用される記憶容量を減少させ、スナップショットのアップロード時に使用されるネットワーク帯域幅を減少させることができる。
以下、図面を参照しながら非限定的な実施例を詳細に説明することにより、本発明の他の特徴、目的、および利点は、より明らかになる
本願が適用された例示的なシステムアーキテクチャ図である。 本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法を示す模式的なフローチャートである。 本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法の応用場面を示す模式的なフローチャートである。 本願の実施例に係るシステムディスクファイルの合併方法を示す模式的なフローチャートである。 本願の実施例に係るリネームされたトップファイルと履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併する方法の応用場面を示す模式的なフローチャートである。 本願の実施例に係るスナップショットロールバック時にダウンロードされたスナップショットファイルを合併する方法を示す模式的なフローチャートである。 本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成装置を示す例示的な構成図である。 本願の実施例を実現するための端末装置またはサーバに適用されるコンピュータシステムを示す構造模式図である。
以下、図面および実施例を参照しながら、本発明をさらに詳しく説明する。ただし、ここで説明されている具体的な実施例は、係る発明を解釈するためのものに過ぎず、本発明の範囲を制限するものではないと理解されるべきである。また、説明の便宜上、図面に本発明と関連する部分のみが示されている。
ただし、衝突がない限り、本願における実施例、および実施例における特徴は、互いに組み合せてもよい。以下、図面を参照しながら実施例に基づいて本発明を詳細に説明する。
図1は本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法および装置を適用できる例示的なシステムアーキテクチャ100を示す。
図1に示すように、システムアーキテクチャ100は、端末装置101、102と、サーバー103、104、105から構成されるクラウドコンピューティングプラットフォームと、ネットワーク106と、を備えるが、それらに限定されない。ネットワーク106は端末装置101、102とクラウドコンピューティングプラットフォームとの間またはクラウドコンピューティングプラットフォーム内部のサーバー103、104、105の間で通信リンクを提供する。ネットワーク106は様々な接続タイプ、例えば有線、無線通信リンクや光ファイバーケーブルなどを含んでもよい。
ユーザーは端末装置101、102によりクラウドコンピューティングプラットフォームに実行される仮想マシンを管理でき、例えば、仮想マシンスナップショットの作成要求を提出することなどが挙げられる。仮想マシンは、クラウドコンピューティングプラットフォームのいずれかのサーバーまたはそれらの組合せ、例えば、サーバー103、104または105に設置されてもよい。仮想マシンは、様々なアプリケーション、例えば、ウェブブラウザアプリケーション、ショッピングアプリケーション、検索アプリケーション、インスタントメッセージツール、電子メールクライアント、ソーシャルプラットフォームソフトウェアなどがインストールされてもよい。
クラウドコンピューティングプラットフォームを構成するサーバー103、104、105は様々なコンピューティングサービスを提供する装置であってもよく、例えば、ユーザーが端末装置により送信する要求を受信し、要求を分析処理し、処理結果を端末装置によりユーザーにフィードバックする。
なお、本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法は、一般的には、上記クラウドコンピューティングプラットフォームアーキテクチャに配置される仮想マシン管理モジュールにより実行される。当該管理モジュールは、クラウドコンピューティングプラットフォームのいずれかのサーバーまたはサーバーの組合せに配置されてもよく、例えば、当該管理モジュールはクラウドコンピューティング管理プラットフォームアーキテクチャOpenStackにおけるコンピューティングコンポーネントNova−computeであり、いずれかのサーバー103、104、105またはサーバー103、104、105の任意の組合せに配置されされてもよい。それに対応して、仮想マシンシステムディスクのスナップショットの作成装置もクラウドコンピューティングプラットフォームのいずれかのサーバーまたはそれらの組合せに配置される。
図1における端末装置、ネットワークおよびサーバーの数が例示的なものであることを当業者は理解すべきである。必要に応じて、端末装置、ネットワークおよびサーバーの数が任意である。
次に、本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法を示す模式的なフローチャートである図2を参照する。図2に示すように、仮想マシンシステムディスクのスナップショットの作成方法200は、以下のステップを含む。
ステップ201では、仮想マシンスナップショットの作成コマンドを受信する。
本実施形態では、仮想マシンシステムディスクのスナップショットの作成方法を実行する仮想マシン管理モジュール(例えば、図1に示すサーバーに配置されている仮想マシン管理モジュール)は、通常、有線接続方式または無線接続方式により、ユーザーが仮想マシンスナップショットを作成するための端末から、仮想マシンスナップショットの作成コマンドを受信し、ここで、仮想マシンスナップショットの作成コマンドは、クラウドコンピューティングプラットフォームに実行されるどの仮想マシンに対して仮想マシンスナップショットを作成するかを指示するための仮想マシンの汎用一意識別子(Universally Unique Identifier、UUIDと略称する)を含む。
通常、ユーザーは端末にインストールされたウェブブラウザまたはクライアントアプリケーションを用いて上記仮想マシン管理モジュールに仮想マシンスナップショットの作成コマンドを送信する際に、コマンドを直接に入力してもよく、あるいは、ウェブブラウザまたはクライアントアプリケーションに表示さていれるリンクをクリックすることにより、上記仮想マシン管理モジュールに仮想マシンスナップショットの作成コマンドを送信してもよい。
ここで、仮想マシンは上記クラウドコンピューティングプラットフォームの物理マシンに実行され仮想化技術で生成される仮想マシン、例えばqume−kvmタイプの仮想マシンであってもよく、ソフトウェアによりシミュレーションされる完全なハードウェアシステムの機能を有し、完全に隔離された環境に実行される完全なコンピュータシステムである。
仮想マシンの記憶方式として、ハイブリッド記憶方式が挙げられ、例えば、仮想マシンにおける、仮想マシンに実行されるオペレーティングシステムに関連するデータ(システムディスクデータとも呼ばれる)を物理マシンに記憶し、仮想マシンの実行時にアクセスするデータ(データディスクデータとも呼ばれる)を共有記憶装置に記憶する。
いくつかの仮想マシンアーキテクチャでは、データディスク自体はスナップショットを生成できるので、本実施形態では、仮想マシンシステムディスクのスナップショットの作成方法のみを説明する。
ステップ202では、仮想マシンがオン状態であるか否かを判定する。
本実施形態では、仮想マシンシステムディスクのスナップショットの作成方法を実行する仮想マシン管理モジュールは作成コマンドが受信されたことに応答して、仮想マシンがオン状態であるか否かを判定する。例えば、クラウドコンピューティング管理プラットフォームアーキテクチャOpenStackにおけるコンピューティングコンポーネントNova−computeは制御ノードで実行され、端末の送信するアプリケーションプログラミングインターフェースAPIの仮想マシンスナップショット作成要求を処理し、当該要求は作成されるスナップショットがオフスナップショットであるかオンスナップショットであるかを区分せず、Nova−computeが実例Instance(つまり仮想マシン)の状態に応じて、当該スナップショットがオフスナップショットであるかオンスナップショットであるかを判定し、ナップショットがオフスナップショットである場合に、オフスナップショットインターフェースを呼び出してコールドスナップショット(cold−snapshot)を行い、ナップショットがオンスナップショットである場合に、仮想マシンインターフェースを呼び出してライブスナップショット(live−snapshot)を行う。
ステップ203では、仮想マシンがオン状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルのトップファイルをリネームする。
本実施形態では、仮想マシンのシステムディスクファイルはリンク構造であり、一般的には、少なくともベース(Base)ファイルおよびトップ(Top)ファイルを含み、BaseファイルとTopファイルとの間に、履歴スナップショットファイルが存在する可能性がある。ここで、Baseファイルは、仮想マシンのオリジナルのシステムインストールファイルまたはオリジナルのシステムインストールファイルにシステムパッチが追加された増分ファイル、つまり仮想マシンイメージファイルである。
仮想マシンがオン状態であり且つ仮想マシンスナップショットの作成コマンドを受信した場合に、入出力ポートは連続的に書き込んでいる可能性があり、上記仮想マシン管理モジュールにより仮想マシンのシステムディスクファイルのトップファイルをリネームすることができ、例えば、qemu−kvmタイプの仮想マシンプロセスは常に実行中であり、開かれたdeviceファイルが依然としてスナップショットプロセス前のqcow2ファイルであり、新たな増分差分ファイルに切り替える必要がある場合に、nova−computeプロセスにより、開かれたファイル記述子を変更し、ファイル名がdiskであるトップファイルをリネームすることができる。
ステップ204では、トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開く。
本実施形態では、トップファイルのリネームが完了したことに応答して、上記仮想マシン管理モジュールは仮想マシンの仮想化技術のインターフェースを呼び出して新たなトップファイルを生成し、次に仮想マシンの仮想化技術のインターフェースを呼び出して、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトするように変更し、その後、仮想マシンの仮想化技術のインターフェースを呼び出して、新規作成されたトップファイルを開くことができる。例えば、上記Nova−computeのプロセスはlibvirtのAPIを呼び出してトップファイルを新規作成し、次にlibvirtのAPIを呼び出して、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、その後、libvirtのAPIを呼び出してreopenコマンドを実行し、新規作成されたdiskファイルを開くことができる。ここで、libvirtはLinuxでの主流の仮想化ツールをサポートするフリー、オープンソースのC関数ライブラリである。
本実施形態では、上記新規作成されたトップファイルとリネームされたトップファイルとの依存関係は、新規作成されたトップファイルとリネームされたトップファイルとのセマンティック接続関係であり、即ち、リネームされたトップファイルが新規作成したトップファイルから独立するが、新規作成されたトップファイルがリネームされたトップファイルに依存するため、リネームされたトップファイルが変化すると、それに依存する新規作成されたトップファイルに影響を与える。
ステップ205では、前回のスナップショット作成が成功したか否かを判定する。
本実施形態では、仮想マシンのスナップショット作成が成功した後に、リネームされたトップファイルとリネームされたトップファイルに依存するファイルがアップロード済みのスナップショットファイルであるか否かに基づき、前回のスナップショット作成が成功したか否かを判定することができる。
本実施例のいくつかの代替実施形態では、前回のスナップショット作成が成功したか否かを判定するステップにおいては、すべての依存される一意識別子を抽出するステップと、一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定するステップと、一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定するステップと、一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定するステップと、を含むが、それらに限定されない。
ステップ206では、前回のスナップショットファイルの作成が成功した場合に、リネームされたトップファイルを第1スナップショットファイルとする。
本実施形態では、上記仮想マシン管理モジュールは、仮想マシンプロセスを呼び出して新規作成されたトップファイルを開いた後に、リネームされたトップファイルが読取専用ファイルであるので、仮想マシン管理モジュールが当該読取専用ファイルを開いてアップロードすることは、仮想マシンの正常動作に影響を与えない。
ステップ207では、第1スナップショットファイルをファイル管理サーバーにアップロードする。
本実施形態では、上記仮想マシン管理モジュールは第1スナップショットファイルをファイル管理サーバーにアップロードする。ここで、ファイル管理サーバーはクラウドコンピューティングプラットフォームを構成するサーバーの一つであってもよく、生成されたスナップショットファイルを記憶して管理することに用いられる。
本実施例のいくつかの代替実施形態では、上記仮想マシンシステムディスクのスナップショットの作成方法はさらに以下のステップを含むが、それらに限定されない。
ステップ208では、前回のスナップショット作成が失敗した場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併する。
ステップ209では、第2スナップショットファイルをファイル管理サーバーにアップロードする。
例えば、仮想マシンの初回スナップショット(アップロードが成功したかどうかにかかわらず)が作成された後に、qcow2フォーマットの仮想マシンのシステムディスクファイルのリンクの長さが3に増加し、上記Nova−computeのプロセスでlibvirtのAPIを呼び出し、qemu−kvm仮想マシンのプロセスにより新たなqcow2フォーマットのトップファイルを改めて開いた後に、Nova−computeのプロセスが前回の仮想マシンスナップショットの作成が失敗したと判定した場合に、libvirtのAPIを呼び出してスナップショット合併のqemu−img commit操作を実行し、前回のスナップショット作成で生成された、リネームされたトップファイルDisk.snp1.deltaと現在のスナップショット作成で生成された、リネームされたトップファイルDisk.snap2とを第2スナップショットファイルsnap2に合併し、さらにsnap2をファイル管理サーバーにアップロードし、snap2を記述するメタデータをOpenStackアーキテクチャにおけるGlanceコンポーネントにアップロードする。
上記仮想マシンスナップショットの作成が失敗した原因は主に以下のとおりである。
1)バックアップ過程でディスク容量の不足によってバックアップが失敗する。
2)合併過程で失敗が発生し、エラーをフィードバックする。
3)スナップショットファイルのアップロード過程で失敗が発生する。
前回の仮想マシンスナップショットの作成が失敗した後に、仮想マシンがトップファイルを改めて開く過程が完了したので、仮想マシンが実行中であり、ユーザに感じさせないように、リンク構造を維持してバックオフしない。前回の仮想マシンスナップショットを作成するデータの漏れを回避するために、上記仮想マシン管理モジュールは現在仮想マシンスナップショットの作成コマンドが受信されたことに応答して、以下のステップにより、前回の仮想マシンスナップショットの作成が失敗したか否かを検査できる。即ち、すべての依存ファイル名におけるUUIDを抽出し、データベースのスナップショットリストに当該UUIDが存在するか否かを問い合わせ、データベースのスナップショットリストに当該UUIDが存在する場合に、前回のライブスナップショット過程が成功し、データベースのスナップショットリストに当該UUIDが存在しない場合に、前回のライブスナップショットが失敗した。前回のライブスナップショットが失敗したと検出された場合に、前回の失敗したスナップショットファイルと現在作成された仮想マシンスナップショットファイルとを合併し、合併された第2スナップショットファイルをアップロード対象のスナップショットデータとする。
上記代替実施形態に係る仮想マシンシステムディスクのスナップショットの作成方法は、仮想マシンシステムディスクファイルのリンクの長さが長すぎて読み書き性能を損なうとともに使用される物理マシンディスク容量が大きすぎることを防止するために、前回の仮想マシンスナップショットの作成が失敗したスナップショットファイルと現在生成されたスナップショットファイルとを合併してファイル構造のリンクの長さを所定の範囲内に確保し、且つ合併されたスナップショットファイルをアップロードすることにより、前回の仮想マシンスナップショットを作成するデータの漏れを回避し、スナップショットデータの完全性を確保する。
本実施例のいくつかの代替実施形態では、上記仮想マシンシステムディスクのスナップショットの作成方法は以下のステップを含むが、それらに限定されない。
ステップ210では、仮想マシンがオフ状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルのトップファイルをコピーし、第3スナップショットファイルを取得する。
ステップ211では、第3スナップショットファイルをファイル管理サーバーにアップロードする。
例えば、上記Nova−computeのプロセスはlibvirtのAPIを呼び出してcopyコマンドをコピーすることにより仮想マシンが所属する物理マシンのディスクファイル(qcow2フォーマットのディスクファイル)を直接にバックアップまたは操作する。それにより仮想マシンのオフ状態で仮想マシンシステムディスクのスナップショットを作成することができる。
本願の上記実施例において、第1スナップショットファイル、第2スナップショットファイルおよび第3スナップショットファイルが3種の異なる場合に生成されるスナップショットファイルのみを表すことを当業者は理解すべきである。第1スナップショットファイルは前回のスナップショットファイルの作成が成功した後に現在のナップショット作成過程でリネームされたトップファイルであり、第2スナップショットファイルは前回のスナップショット作成が失敗した後に前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを合併して取得されたスナップショットファイルであり、第3スナップショットファイルは仮想マシンのオフ状態で仮想マシンシステムディスクファイルのトップファイルをコピーして取得されたスナップショットファイルであり、第1、第2または第3はスナップショットファイルを限定するものではない。
本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成方法の応用場面を示す模式的なフローチャートである図3を参照する。図3に示すプロセス300は、以下のステップを含む。
ステップ301では、OpenStack技術アーキテクチャにおけるコンピューティングコンポーネントNovaのフロントエンドAPIがユーザーからの仮想マシンスナップショットの作成要求を受信し、その後、ステップ302を実行する。
ステップ302では、APIが上記要求をメッセージキューに転送し、その後、ステップ303を実行する。
ステップ303では、Nova−Computeがメッセージキューから当該要求を受信し、その後、ステップ304を実行する。
ステップ304では、Nova−Computeが仮想マシンの状態を取得し、その後、ステップ305を実行する。
ステップ305では、Nova−Computeは仮想マシンがオン状態であるか否かを判定し、仮想マシンがオン状態でない場合に、ステップ307を実行し、仮想マシンがオン状態である場合に、ステップ306を実行する。
ステップ306では、Nova−Computeが仮想マシンのコールドスナップショット(cold−snapshot)を作成し、その後、ステップ308を実行する。
ステップ307では、Nova−Computeが仮想マシンのライブスナップショット(live−snapshot)を作成し、その後、ステップ308を実行する。
ステップ308では、Nova−Computeは作成されたスナップショットをファイル管理サーバーにアップロードし、その後、ステップ309を実行する。
ステップ309では、Nova−Computeがデータベースを更新し、例えば、スナップショットの依存関係またはスナップショットの時点を更新する。
本願の上記実施例に係る仮想マシンシステムディスクのスナップショットの作成方によれば、第1面では、仮想マシンのオン状態で仮想マシンシステムディスクのスナップショットを作成する際に、仮想マシンの動作を停止せずにスナップショットを作成でき、スナップショットの作成にバックアップを必要とするデータ量および使用する記憶容量を減少させ、且つスナップショットのアップロード時に使用するネットワーク帯域幅を減少させることができる。第2面では、前回の仮想マシンスナップショットの作成が失敗した後に、前回リネームされたトップファイルと今回のリネームされたトップファイルとを合併し、合併されたファイルをファイル管理サーバーにアップロードし、スナップショットデータの漏れを回避することができる。第3面では、仮想マシンのオフ状態でも仮想マシンスナップショットを作成でき、仮想マシンスナップショットの作成効率を向上させることができる。
さらに、本願の実施例に係るシステムディスクファイルの合併方法を示す模式的なフローチャートである図4を参照する。図4に示すように、当該システムディスクファイルの合併方法のフロー400は、上記仮想マシンシステムディスクのスナップショットの作成方法に加えて、さらに以下のステップを含む。
ステップ401では、アップロードが成功したことに応答して、リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する。
本実施形態では、仮想マシンシステムディスクのスナップショットの作成方法を実行する仮想マシン管理モジュールは仮想マシンの仮想化技術のインターフェースを呼び出し、上記第1スナップショットファイル、または第2スナップショットファイルのアップロードが成功したことに応答して、リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する。
リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する際に、リネームされたトップファイルの依存ファイルの一意識別子を抽出し、当該一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定し、当該一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、履歴スナップショットファイルであると判定するようにしてもよい。
ステップ402では、リネームされたトップファイルの依存ファイルが履歴スナップショットファイルである場合に、リネームされたトップファイルと履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併する。
本実施形態では、上記仮想マシン管理モジュールは、リンクの長さが長すぎて読み書き性能を損なうとともに使用される物理マシンのディスク容量が大きすぎることを防止するために、既存のシステムディスクファイルを合併してリンクの長さを所定範囲に確保する必要がある。したがって、上記仮想マシン管理モジュールがシステムディスクファイルのリンクの長さを取得し、且つリンクの長さが3を超えると判定した場合に、つまりシステムディスクファイルがBaseファイル、リネームされたTopファイルおよび新規作成されたTopファイル以外、履歴スナップショットファイルを更に含む場合に、リネームされたトップファイルと履歴スナップショットファイルとを合併し、新たな履歴スナップショットファイルを取得することができる。
本実施例のいくつかの代替実施形態では、リネームされたトップファイルと履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するステップにおいては、リネームされたトップファイルおよび履歴スナップショットファイルをソースファイルとしてバックアップするステップと、バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認するステップと、バックアップファイルの依存関係とソースファイルの依存関係が異なる場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更するステップと、バックアップファイルの依存関係とソースファイルの依存関係が同じである場合に、バックアップファイルを合併し、新たな履歴スナップショットファイルを取得するステップと、ソースファイルを削除し、つまり元のリネームされたトップファイルおよび元の履歴スナップショットファイルを削除するステップと、を含むが、それらに限定されない。
ステップ403では、新規作成されたトップファイルの依存を新たな履歴スナップショットファイルに変更し、新規作成されたトップファイルを改めて開く。
本実施形態では、上記仮想マシン管理モジュールは新たな履歴スナップショットファイルを取得した後に、新規作成されたTopファイルの依存を新たな履歴スナップショットファイルに変更し、仮想化技術をサポートする関数ライブラリのアプリケーションプログラミングインターフェースを呼び出すことにより仮想マシンのプロセスを呼び出し、新規作成されたトップファイルを改めて開く。
本実施形態では、システムディスクファイルのリンクの長さを4以下に制御でき、リンクの長さが長すぎることに起因する性能損失を回避する。
本願の実施例に係るリネームされたトップファイルと履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併する方法の応用場面を示す模式的なフローチャート500である図5を参照する。
図5に示すように、システムディスクファイルの第1種のリンク構造510において、履歴スナップショットファイルは履歴スナップショットファイル502の形式でリンク構造に存在し、リネームされたトップファイルは増分スナップショットファイル503の形式でリンク構造に存在し、新規作成されたトップファイルはトップファイル504の形式でリンク構造に存在し、且つベースイメージファイル501、履歴スナップショットファイル502、増分スナップショットファイル503およびトップファイル504の4つのファイルについては、後ろのファイルが前のファイルに依存する。上記仮想マシン管理モジュールは、増分スナップショットファイル503のファイル管理サーバーへのアップロードが成功した後に、増分スナップショットファイル503が依存するファイルを判定し、履歴スナップショットファイル502が存在すると判定し、履歴スナップショットファイル502と増分スナップショットファイル503とを合併し、合併過程で、まず履歴スナップショットファイルバックアップ505および増分スナップショットファイルバックアップ506の2つのバックアップファイルを生成し、第2種のリンク構造520を取得し、その後、履歴スナップショットファイルバックアップ505および増分スナップショットファイルバックアップ506とベースイメージファイル502との依存関係が元のリンク構造の依存関係と同じであるか否かをチャックし、履歴スナップショットファイルバックアップ505および増分スナップショットファイルバックアップ506とベースイメージファイル502との依存関係が元のリンク構造の依存関係と同じである場合に、履歴スナップショットファイルバックアップ505と増分スナップショットファイルバックアップ506とを合併し、新たな履歴スナップショットファイル507を生成し、第3種のリンク構造530を取得し、その後、トップファイル504の依存を新たな履歴スナップショットファイル507にダイレクトするように変更し、且つトップファイル504を改めて開き、第4種のリンク構造540を取得し、それにより上記仮想マシン管理モジュールはシステムディスクファイル構造のリンクの長さを制御する。
図4に戻り、図4からわかるように、図2に対応する実施例に比べて、本実施例に係る仮想マシンシステムディスクのスナップショットの作成方法のフロー400はシステムディスクファイルのリンクの長さへの制御を強調する。それにより、本実施例に係る解決手段はスナップショットファイルの合併を導入でき、これにより、システムディスクファイルのリンクの長さを減少させ、仮想マシンの読み書き性能を向上させ、使用される物理マシンのディスク容量を減少させることができる。
さらに、本願の実施例に係るスナップショットロールバック時にダウンロードしたスナップショットファイルを合併する方法を示す模式的なフローチャートである図6を参照する。当該仮想マシンシステムディスクのスナップショットの作成方法のフロー600は、上記仮想マシンシステムディスクのスナップショットの作成方法に加えて、さらに以下のステップを含む。
ステップ601では、スナップショットロールバックコマンドを受信する。
本実施形態では、上記仮想マシン管理モジュールはユーザーから入力されるスナップショットロールバックコマンドを直接的および/または間接的に受信でき、当該コマンドはロールバック用のスナップショットの汎用一意識別子を含み、当該汎用一意識別子に基づきロールバックに必要なスナップショットファイルを一意的に決定でき、当該一意的に決定されたスナップショットファイルに基づき、ロールバックの時点情報を決定する。
本実施例のいくつかの代替実施形態では、スナップショットロールバックコマンドを間接的に受信することは、ロールバックコマンドを選択するインターフェースを表示するステップと、ロールバックコマンドに対する第1選択操作を受信するステップと、第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示するステップと、ロールバック時点に対する第2選択操作を受信するステップと、により実現してもよい。ロールバック時点とスナップショットファイルが一対一対応するため、ロールバック時点情報に基づきスナップショットファイルおよびスナップショットファイルの汎用一意識別子を一意的に決定できる。
本実施形態では、第1選択操作と第2選択操作は2つの異なる操作対象に対する操作のみを表す。第1選択操作はロールバックコマンドに対する操作であり、第2選択操作はロールバック時点に対する操作であり、それぞれ適切な操作方式で行われてもよく、選択される操作方式が同一であってもよく、異なってもよい。第1または第2が選択操作を限定するものではないことを当業者は理解すべきである。
ステップ602では、スナップショットロールバックコマンドが受信されたことに応答して、ファイル管理サーバーからスナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードする。
本実施形態では、上記仮想マシン管理モジュールはスナップショットの汎用一意識別子に基づき、ファイル管理サーバーからダウンロードするスナップショットファイルを決定することができる。
本実施例のいくつかの代替実施形態では、スナップショットロールバックコマンドが受信されたことに応答して、ファイル管理サーバーからスナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするステップにおいては、第2選択操作が受信されたことに応答して、ファイル管理サーバーから第2選択操作に適合するスナップショットファイルをダウンロードすることを含む。
ステップ603では、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する。
本実施形態では、上記仮想マシン管理モジュールはシステムディスクファイルの構造のリンクの長さを適切な範囲内に確保するために、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する。
本願の上記実施例によれば、使用される物理マシンのディスク容量を減少させ、仮想マシンの読み書き性能を向上させることができる。
さらに、上記の図に示す方法の実現形態として、本願の実施例に係る仮想マシンシステムディスクのスナップショットの作成装置を示す例示的な構成図である図7を参照する。当該装置の実施例は図2に示す方法の実施例に対応し、当該装置は、具体的には上記クラウドコンピューティングプラットフォームアーキテクチャにおける仮想マシン管理モジュール(例えば、図1に示すサーバーに配置される仮想マシン管理モジュール)に適用できる。
図7に示すように、本実施例に係る仮想マシンシステムディスクのスナップショットの作成装置700は、第1受信ユニット701、第1判定ユニット702、命名ユニット703、新規作成ユニット704、第2判定ユニット705、決定ユニット706およびアップロードユニット707を備えるが、それらに限定されない。
第1受信ユニット701は、仮想マシンスナップショットの作成コマンドを受信するように配置される。
本実施形態では、上記仮想マシン管理モジュール内で動作する第1受信ユニット701は、通常、有線接続方式または無線接続方式により、ユーザーが仮想マシンスナップショットを作成するための端末から、仮想マシンスナップショットの作成コマンドを受信し、ここで、仮想マシンスナップショットの作成コマンドは、クラウドコンピューティングプラットフォームに実行されるどの仮想マシンに対して仮想マシンスナップショットを作成するかを指示するための仮想マシンの汎用一意識別子(Universally Unique Identifier、UUIDと略称する)を含む。
通常、ユーザーは端末にインストールされたウェブブラウザまたはクライアントアプリケーションを用いて上記第1受信ユニット701に仮想マシンスナップショットの作成コマンドを送信する際に、コマンドを直接に入力してもよく、あるいは、ウェブブラウザまたはクライアントアプリケーションに表示されるリンクをクリックすることにより、上記仮想マシン管理モジュールに仮想マシンスナップショットの作成コマンドを送信してもよい。
第1判定ユニット702は、仮想マシンがオン状態であるか否かを判定するように配置される。
本実施形態では、上記仮想マシン管理モジュール内で動作する第1判定ユニット702は、作成コマンドが受信されたことに応答して、仮想マシンがオン状態であるか否かを判定する。例えば、クラウドコンピューティング管理プラットフォームアーキテクチャOpenStackにおけるコンピューティングコンポーネントNova−compute内で動作する第1判定ユニットは、端末から送信されるアプリケーションプログラミングインターフェースAPIの要求を処理し、当該要求は作成されるスナップショットがオフスナップショットであるかオンスナップショットであるかを区分せず、第1判定ユニットが実例Instance(つまり仮想マシン)の状態に応じて、当該スナップショットがオフスナップショットであるかオンスナップショットであるかを判定し、オフスナップショットである場合に、オフスナップショットインターフェースを呼び出してコールドスナップショット(cold−snapshot)を行い、オンスナップショットである場合に、仮想マシンインターフェースを呼び出してライブスナップショット(live−snapshot)を行う。
命名ユニット703は、仮想マシンがオン状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルのトップファイルをリネームするように配置される。
本実施形態では、仮想マシンのシステムディスクファイルはリンク構造であり、一般的には、少なくともベース(Base)ファイルおよびトップ(Top)ファイルを含み、BaseファイルとTopファイルとの間に、履歴スナップショットファイルが存在する可能性がある。Baseファイルは、仮想マシンのオリジナルのシステムインストールファイルまたはオリジナルのシステムインストールファイルにシステムパッチを追加された増分ファイル、つまり仮想マシンイメージファイルである。
命名ユニット703は、第1判定ユニット702の判定結果(即ち、仮想マシンがオン状態である)を取得し且つ仮想マシンスナップショットの作成コマンドを受信した場合に、入出力ポートは連続的に書き込んでいる可能性があり、上記仮想マシン管理モジュール内で動作する命名ユニット703により仮想マシンのシステムディスクファイルのトップファイルをリネームすることができ、例えば、qemu−kvmタイプの仮想マシンプロセスは常に実行中であり、開かれたdeviceファイルが依然としてスナップショットプロセス前のqcow2ファイルであり、新たな増分差分ファイルに切り替える必要がある場合に、nova−computeにおける命名ユニットにより、開かれたファイル記述子を変更し、ファイル名がdiskであるトップファイルをリネームすることができる。
新規作成ユニット704は、トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、且つ新規作成されたトップファイルを開く。
本実施形態では、トップファイルのリネームが完了したことに応答して、上記仮想マシン管理モジュール内で動作する新規作成ユニット704は、仮想マシンの仮想化技術のインターフェースを呼び出して新たなトップファイルを生成し、次に仮想マシンの仮想化技術のインターフェースを呼び出して、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトするように変更し、その後、仮想マシンの仮想化技術のインターフェースを呼び出して、新規作成されたトップファイルを開くことができる。例えば、上記Nova−compute内で動作する新規作成ユニットはlibvirtのAPIを呼び出してトップファイルを新規作成し、次にlibvirtのAPIを呼び出して、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、その後、libvirtのAPIを呼び出してreopenコマンドを実行し、新規作成されたdiskファイルを開くことができる。libvirtはLinuxでの主流の仮想化ツールをサポートするフリー、オープンソースのC関数ライブラリである。
第2判定ユニット705は、前回のスナップショット作成が成功したか否かを判定するように配置される。
本実施形態では、上記仮想マシン管理モジュール内で動作する第2判定ユニット705は、第1スナップショットファイルをファイル管理サーバーにアップロードできる。ファイル管理サーバーはクラウドコンピューティングプラットフォームを構成するサーバーの一つであってもよく、生成されたスナップショットファイルを記憶して管理することに用いられる。
本実施例のいくつかの代替実施形態では、上記第2判定ユニット705は抽出サブユニット、判定サブユニット、第1決定サブユニットおよび第2決定サブユニットを備えるが、それら(図示せず)に限定されない。
抽出サブユニットは、すべてのリンクされるファイルの一意識別子を抽出するように配置される。
判定サブユニットは、一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定するように配置される。
第1決定サブユニットは、一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定するように配置される。
第2決定サブユニットは、一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定するように配置される。
決定ユニット706は、前回のスナップショット作成が成功した場合に、リネームされたトップファイルを第1スナップショットファイルとする。
第1アップロードユニット707は、第1スナップショットファイルをファイル管理サーバーにアップロードするように配置される。
上記仮想マシンシステムディスクのスナップショットの作成装置700は、第2合併ユニット708および第2アップロードユニット709をさらに備えるが、それらに限定されない。
第2合併ユニット708は、前回のスナップショット作成が失敗したと判定された場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併するように配置される。
前回の仮想マシンスナップショットの作成が失敗した後に、仮想マシンがトップファイルを改めて開く過程が完了したので、仮想マシンが実行中であり、ユーザに感じさせないように、リンク構造を維持してバックオフしない。前回の仮想マシンスナップショットを作成するデータの漏れを回避するために、上記仮想マシン管理モジュール内で動作する第2合併ユニット708は、現在仮想マシンスナップショットの作成コマンドが受信されたことに応答して、以下のステップにより、前回の仮想マシンスナップショットの作成が失敗したか否かを検査できる。即ち、すべての依存ファイル名におけるUUIDを抽出し、データベースのスナップショットリストに当該UUIDが存在するか否かを問い合わせ、データベースのスナップショットリストに当該UUIDが存在する場合に、前回のライブスナップショット過程が成功し、データベースのスナップショットリストに当該UUIDが存在しない場合に、前回のライブスナップショットが失敗した。前回のライブスナップショットが失敗したと検出された場合に、前回の失敗したスナップショットファイルと現在作成された仮想マシンスナップショットファイルとを合併し、合併された第2スナップショットファイルをアップロード対象のスナップショットデータとする。
第2アップロードユニット709は、第2スナップショットファイルをファイル管理サーバーにアップロードするように配置される。
上記第2アップロードユニット709は、上記第2スナップショットファイルが取得されたことに応答して、第2スナップショットファイルをファイル管理サーバーにアップロードする。
上記仮想マシンシステムディスクのスナップショットの作成装置700はコピーユニット710および第3アップロードユニット711をさらに備えるが、それらに限定されない。
コピーユニット710は、仮想マシンがオフ状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンイメージファイルのトップファイルをコピーし、第3スナップショットファイルを取得するように配置される。
上記仮想マシン管理モジュール内で動作するコピーユニット710は第1判定ユニット702の判定結果(即ち、仮想マシンがオフ状態である)を取得した場合に、仮想マシンイメージファイルのトップファイルをコピーし、第3スナップショットファイルを取得する。
第3アップロードユニット711は、第3スナップショットファイルをファイル管理サーバーにアップロードするように配置される。
上記仮想マシン管理モジュール内で動作する第3アップロードユニット711は、まず上記第3スナップショットファイルを取得し、次に、第3スナップショットファイルをファイル管理サーバーにアップロードする。
前記仮想マシンシステムディスクのスナップショットの作成装置700が、プロセッサ、メモリなどのいくつかの他の公知の構造をさらに備えてもよく、本発明の実施例を曖昧にすることを回避するために、これらの公知の構造を図7に示しなかったことを、当業者は理解することができる。
上記仮想マシンシステムディスクのスナップショットの作成装置は第3判定ユニット、第1合併ユニットおよび変更ユニットをさらに備えるが、それら(図示せず)に限定されないようにしてもよい。
第3判定ユニットは、アップロードが成功したことに応答して、リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する。
上記仮想マシン管理モジュール内で動作する第3判定ユニットは仮想マシンの仮想化技術のインターフェースを呼び出し、上記第1スナップショットファイルまたは第2スナップショットファイルのアップロードが成功したことに応答して、リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する。
リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する際に、リネームされたトップファイルの依存ファイルの一意識別子を抽出し、一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定し、一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、履歴スナップショットファイルである場合に判定するようにしてもよい。
第1合併ユニットは、リネームされたトップファイルの依存が履歴スナップショットファイルである場合に、リネームされたトップファイルと履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するように配置される。
上記仮想マシン管理モジュール内で動作する第1合併ユニットは、リンクの長さが長すぎて読み書き性能を損なうとともに使用される物理マシンのディスク容量が大きすぎることを防止するために、既存のシステムディスクファイルを合併してリンクの長さを所定範囲に確保する必要がある。したがって、第1合併ユニットはシステムディスクファイルのリンクの長さを取得し、且つリンクの長さが3を超えると判定する場合に、つまりシステムディスクファイルがBaseファイル、リネームされたTopファイルおよび新規作成されたTopファイル以外、履歴スナップショットファイルを更に含む場合に、リネームされたトップファイルと履歴スナップショットファイルとを合併し、新たな履歴スナップショットファイルを取得することができる。
いくつかの実施形態では、上記第1合併ユニットは、リネームされたトップファイルおよび履歴スナップショットファイルをソースファイルとしてバックアップするバックアップサブユニットと、バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認する確認サブユニットと、バックアップファイルの依存関係とソースファイルの依存関係が異なると確認された場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更する変更サブユニットと、バックアップファイルの依存関係がとソースファイルの依存関係が同様であると確認された場合に、バックアップファイルを合併し、新たな履歴スナップショットファイルを取得する合併サブユニットと、ソースファイルを削除し、つまり元のリネームされたトップファイルおよび元の履歴スナップショットファイルを削除する削除サブユニットと、を備えるが、それらに限定されない。
変更ユニットは、新規作成されたトップファイルの依存を新たな履歴スナップショットファイルに変更し、新規作成されたトップファイルを改めて開く。
上記仮想マシンシステムディスクのスナップショットの作成装置は第2受信ユニット、ダウンロードユニットおよび第3合併ユニットをさらに備えるが、それら(図示せず)に限定されない。
第2受信ユニットは、スナップショットロールバックコマンドを受信する。
上記仮想マシン管理モジュール内で動作する第2受信ユニットは、ユーザーから入力されるスナップショットロールバックコマンドを直接的および/または間接的に受信でき、当該コマンドはロールバック用のスナップショットの汎用一意識別子を含み、当該汎用一意識別子に基づきスナップショットファイルを一意的に決定でき、当該一意的に決定されたスナップショットファイルに基づき、ロールバックの時点情報を決定する。
いくつかの実施形態では、第2受信ユニットがユーザーから入力されるスナップショットロールバックコマンドを間接的に受信するために、第2受信ユニットは、ロールバックコマンドを選択するインターフェースを表示する第1表示サブユニットと、ロールバックコマンドに対する第1選択操作を受信する第1受信サブユニットと、第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示する第2表示サブユニットと、ロールバック時点に対応する第2選択操作を受信する第2受信サブユニットと、を備えるが、それらに限定されない。
ダウンロードユニットは、スナップショットロールバックコマンドが受信されたことに応答して、ファイル管理サーバーからスナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードする。
上記仮想マシン管理モジュール内で動作するダウンロードユニットは、スナップショットの汎用一意識別子に基づき、ファイル管理サーバーからダウンロードするスナップショットファイルを決定してもよい。
上記の実現形態では、第2受信ユニットが第1表示サブユニット、第1受信サブユニット、第2表示サブユニットおよび第2受信サブユニットを備えることに対応して、ダウンロードユニットは、第2選択操作が受信されたことに応答して、ファイル管理サーバーから第2選択操作に適合するスナップショットファイルをダウンロードするダウンロードサブユニットを備えるが、それに限定されない。
第3合併ユニットは、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する。
上記仮想マシン管理モジュール内で動作する第3合併ユニットは、システムディスクファイルの構造のリンクの長さを適切な範囲に確保するために、ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する。
装置700に記載の各記憶ユニットは図2を参照しながら説明された方法における各ステップと対応することを当業者は理解すべきである。それにより、仮想マシンシステムディスクのスナップショットの作成方法について説明された上記操作と特徴は同様に装置700およびそれに含まれるユニットに適用し、ここで説明は省略する。本願の実施例の解決策を実現するために、装置700における対応ユニットは端末装置またはサーバにおけるユニットと相互に組み合わせてもよい。
以下、本発明の実施例を実現するための端末装置またはサーバに適用されるコンピュータシステム800を示す構造模式図である図8を参照する。
図8に示すように、コンピュータシステム800は、読み出し専用メモリ(ROM)802に記憶されているプログラムまたは記憶部808からランダムアクセスメモリ(RAM)803にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置(CPU)801を備える。RAM803には、システム800の操作に必要な様々なプログラムおよびデータがさらに記憶されている。CPU801、ROM802およびRAM803は、バス804を介して互いに接続されている。入力/出力(I/O)インターフェース808もバス804に接続されている。
キーボード、マウスなどを含む入力部806、陰極線管(CRT)、液晶ディスプレイ(LCD)など、およびスピーカなどを含む出力部807、ハードディスクなどを含む記憶部808、およびLANカード、モデムなどを含むネットワークインターフェースカードの通信部809は、I/Oインターフェース805に接続されている。通信部809は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ810は、必要に応じてI/Oインターフェース805に接続される。リムーバブルメディア811は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ810に取り付けられ、したがって、ドライバ810から読み出されたコンピュータプログラムが必要に応じて記憶部808にインストールされる。
特に、本発明の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部809を介してネットワークからダウンロードされてインストールされてもよく、および/またはリムーバブルメディア811からインストールされてもよい。
図面におけるフローチャートおよびブロック図は、本発明の各実施例に係るシステム、方法およびコンピュータプログラム製品により実現可能なアーキテクチャ、機能および操作を示す。ここで、フローチャートまたはブロック図における各枠は、1つのモジュール、プログラムセグメント、またはコードの一部を代表してもよく、前記モジュール、プログラムセグメント、またはコードの一部は、規定された論理機能を実現するための1つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された2つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図および/またはフローチャートにおける各枠と、ブロック図および/またはフローチャートにおける枠の組合せは、規定された機能または操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
本発明の実施例に記載されたユニットは、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。記載されたユニットは、プロセッサに設定されてもよく、例えば、「第1受信ユニット、第1判定ユニット、命名ユニット、新規作成ユニット、第2判定ユニット、決定ユニットおよび第1アップロードユニットを備えるプロセッサ」として記載されてもよい。その中でも、これらのユニットの名称は、ある場合において当該ユニットその自体を限定するものではなく、例えば、第1受信ユニットは、「仮想マシンがオン状態であるか否かを判定するユニット」として記載されてもよい。
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記の実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、1つ以上のプログラムが記憶され、前記1つ以上のプログラムが1つの機器により実行された場合、前記機器に、仮想マシンスナップショットの作成コマンドを受信し、仮想マシンがオン状態であるか否かを判定し、仮想マシンがオン状態である場合に、作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルにおけるトップファイルをリネームし、トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開き、前回のスナップショット作成が成功したか否かを判定し、前回のスナップショット作成が成功した場合に、リネームされたトップファイルを第1スナップショットファイルとし、第1スナップショットファイルをファイル管理サーバーにアップロードするステップようにさせる。
以上の記載は、本発明の好ましい実施例、および使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記した技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記の技術的特徴または同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記の特徴と、本発明に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。

Claims (20)

  1. 仮想マシンスナップショットの作成コマンドを受信するステップと、
    仮想マシンがオン状態であるか否かを判定するステップと、
    前記仮想マシンがオン状態である場合に、前記作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルにおけるトップファイルをリネームするステップと、
    前記トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開くステップと、
    前回のスナップショット作成が成功したか否かを判定するステップと、
    前回のスナップショット作成が成功した場合に、前記リネームされたトップファイルを第1スナップショットファイルとするステップと、
    前記第1スナップショットファイルをファイル管理サーバーにアップロードするステップと、を含むこと
    を特徴とする仮想マシンシステムディスクのスナップショットの作成方法。
  2. アップロードが成功したことに応答して、前記リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定するステップと、
    前記リネームされたトップファイルの依存ファイルが履歴スナップショットファイルである場合に、前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するステップと、
    前記新規作成されたトップファイルの依存を前記新たな履歴スナップショットファイルに変更し、新規作成されたトップファイルを改めて開くステップと、をさらに含むこと
    を特徴とする請求項1に記載の方法。
  3. 前記の前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併するステップにおいては、
    前記リネームされたトップファイルおよび前記履歴スナップショットファイルをソースファイルとしてバックアップするステップと、
    バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認するステップと、
    バックアップファイルの依存関係とソースファイルの依存関係が異なる場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更するステップと、
    バックアップファイルの依存関係とソースファイルの依存関係が同じである場合に、前記バックアップファイルを合併して前記新たな履歴スナップショットファイルを取得するステップと、
    前記ソースファイルを削除するステップと、を含むこと
    を特徴とする請求項2に記載の方法。
  4. 前記の前回のスナップショット作成が成功したか否かを判定するステップにおいては、
    すべての依存される一意識別子を抽出するステップと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定するステップと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定するステップと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定するステップと、を含むこと
    を特徴とする請求項1に記載の方法。
  5. 前回のスナップショット作成が失敗した場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併するステップと、
    前記第2スナップショットファイルをファイル管理サーバーにアップロードするステップと、をさらに含むこと
    を特徴とする請求項1に記載の方法。
  6. 前記仮想マシンがオフ状態である場合に、前記作成コマンドが受信されたことに応答して、前記仮想マシンのシステムディスクファイルのトップファイルをコピーし、第3スナップショットファイルを取得するステップと、
    前記第3スナップショットファイルをファイル管理サーバーにアップロードするステップと、をさらに含むこと
    を特徴とする請求項1に記載の方法。
  7. スナップショットロールバックコマンドを受信するステップと、
    前記スナップショットロールバックコマンド受信したに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするステップと、
    ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併するステップと、をさらに含むこと
    を特徴とする請求項1〜6のいずれかに記載の方法。
  8. 前記のスナップショットロールバックコマンドを受信するステップにおいては、ロールバックコマンドを選択するインターフェースを表示するステップと、前記ロールバックコマンドに対する第1選択操作を受信するステップと、前記第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示するステップと、前記ロールバック時点に対する第2選択操作を受信するステップと、を含んでおり、
    前記の前記スナップショットロールバックコマンドが受信されたことに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするステップにおいては、前記第2選択操作が受信されたことに応答して、前記ファイル管理サーバーから前記第2選択操作に適合するスナップショットファイルをダウンロードするステップを含むこと
    を特徴とする請求項7に記載の方法。
  9. 前記仮想マシンはオープンソースのクラウドコンピューティング管理プラットフォームアーキテクチャOpenStackによりハードウェア仮想化技術qemu−kvmに基づき作成される仮想マシンであり、
    前記仮想マシンのシステムディスクファイルフォーマットはqcow2フォーマットのリンク構造であるること
    を特徴とする請求項8に記載の方法。
  10. 前記システムディスクファイルのリンクの長さは4以下であること
    を特徴とする請求項9に記載の方法。
  11. 仮想マシンスナップショットの作成コマンドを受信する第1受信ユニットと、
    仮想マシンがオン状態であるか否かを判定する第1判定ユニットと、
    前記仮想マシンがオン状態である場合に、前記作成コマンドが受信されたことに応答して、仮想マシンのシステムディスクファイルのトップファイルをリネームする命名ユニットと、
    前記トップファイルのリネームが完了したことに応答して、トップファイルを新規作成し、新規作成されたトップファイルの依存をリネームされたトップファイルにダイレクトし、新規作成されたトップファイルを開く新規作成ユニットと、
    前回のスナップショット作成が成功したか否かを判定する第2判定ユニットと、
    前回のスナップショット作成が成功した場合に、前記リネームされたトップファイルを第1スナップショットファイルとする決定ユニットと、
    前記第1スナップショットファイルをファイル管理サーバーにアップロードする第1アップロードユニットと、を備えること
    を特徴とする仮想マシンシステムディスクのスナップショットの作成装置。
  12. アップロードが成功したことに応答して、前記リネームされたトップファイルの依存が履歴スナップショットファイルであるか否かを判定する第3判定ユニットと、
    前記リネームされたトップファイルの依存ファイルが履歴スナップショットファイルである場合に、前記リネームされたトップファイルと前記履歴スナップショットファイルとを新たな履歴スナップショットファイルに合併する第1合併ユニットと、
    前記新規作成されたトップファイルの依存を前記新たな履歴スナップショットファイルに変更し、新規作成されたトップファイルを改めて開く変更ユニットと、をさらに備えること
    を特徴とする請求項11に記載の装置。
  13. 前記第1合併ユニットは、
    前記リネームされたトップファイルおよび前記履歴スナップショットファイルをソースファイルとしてバックアップするバックアップサブユニットと、
    バックアップファイルの依存関係とソースファイルの依存関係が同じであるか否かを確認する確認サブユニットと、
    バックアップファイルの依存関係とソースファイルの依存関係が異なると確認された場合に、バックアップファイルの依存関係をソースファイルの依存関係と同じように変更する変更サブユニットと、
    バックアップファイルの依存関係とソースファイルの依存関係が同じであると確認された場合に、前記バックアップファイルを合併して前記新たな履歴スナップショットファイルを取得する合併サブユニットと、
    前記ソースファイルを削除する削除サブユニットと、を備えること
    を特徴とする請求項12に記載の装置。
  14. 前記第2判定ユニットは、
    すべての依存される一意識別子を抽出する抽出サブユニットと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在するか否かを判定する判定サブユニットと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在する場合に、前回のスナップショット作成が成功したと判定する第1決定サブユニットと、
    前記一意識別子がアップロード済みのデータベースのスナップショットリストに存在しない場合に、前回のスナップショット作成が失敗したと判定する第2決定サブユニットと、を備えること
    を特徴とする請求項11に記載の装置。
  15. 前回のスナップショット作成が失敗したと判定された場合に、前回のスナップショット作成で生成された、リネームされたトップファイルと現在のスナップショット作成で生成された、リネームされたトップファイルとを第2スナップショットファイルに合併する第2合併ユニットと、
    前記第2スナップショットファイルをファイル管理サーバーにアップロードする第2アップロードユニットと、をさらに備えること
    を特徴とする請求項11に記載の装置。
  16. 前記仮想マシンがオフ状態である場合に、前記作成コマンドが受信されたことに応答して、前記仮想マシンのシステムディスクファイルのトップファイルをコピーし、第3スナップショットファイルを取得するコピーユニットと、
    前記第3スナップショットファイルをファイル管理サーバーにアップロードする第3アップロードユニットと、をさらに備えること
    を特徴とする請求項11に記載の装置。
  17. スナップショットロールバックコマンドを受信する第2受信ユニットと、
    前記スナップショットロールバックコマンドが受信されたことに応答して、前記ファイル管理サーバーから前記スナップショットロールバックコマンドに適合するスナップショットファイルをダウンロードするダウンロードユニットと、
    ダウンロードされたスナップショットファイルが複数である場合に、ダウンロードされたスナップショットファイルを合併する第3合併ユニットと、をさらに備えること
    を特徴とする請求項11〜16のいずれかに記載の装置。
  18. 前記第2受信ユニットは、ロールバックコマンドを選択するインターフェースを表示する第1表示サブユニットと、前記ロールバックコマンドに対する第1選択操作を受信する第1受信サブユニットと、前記第1選択操作が受信されたことに応答して、ロールバック時点を選択するインターフェースを表示する第2表示サブユニットと、前記ロールバック時点に対する第2選択操作を受信する第2受信サブユニットと、を備えており、
    前記ダウンロードユニットは、前記第2選択操作が受信されたことに応答して、前記ファイル管理サーバーから前記第2選択操作に適合するスナップショットファイルをダウンロードするダウンロードサブユニットを備えることを特徴とする請求項17に記載の装置。
  19. 前記装置における前記仮想マシンはオープンソースのクラウドコンピューティング管理プラットフォームアーキテクチャOpenStackによりハードウェア仮想化技術qemu−kvmに基づき作成される仮想マシンであり、
    前記装置における前記仮想マシンのシステムディスクファイルフォーマットはqcow2フォーマットのリンク構造であることを特徴とする請求項18に記載の装置。
  20. 前記装置における前記システムディスクファイルのリンクの長さは4以下であることを特徴とする請求項19に記載の装置。
JP2016159971A 2015-10-28 2016-08-17 仮想マシンシステムディスクのスナップショットの作成方法および装置 Active JP6345211B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510712881.4A CN105335253B (zh) 2015-10-28 2015-10-28 创建虚拟机系统盘快照的方法和装置
CN201510712881.4 2015-10-28

Publications (2)

Publication Number Publication Date
JP2017084332A true JP2017084332A (ja) 2017-05-18
JP6345211B2 JP6345211B2 (ja) 2018-06-20

Family

ID=55285808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016159971A Active JP6345211B2 (ja) 2015-10-28 2016-08-17 仮想マシンシステムディスクのスナップショットの作成方法および装置

Country Status (4)

Country Link
US (1) US11741046B2 (ja)
JP (1) JP6345211B2 (ja)
KR (1) KR101802920B1 (ja)
CN (1) CN105335253B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7148241B2 (ja) 2015-03-19 2022-10-05 三菱商事ライフサイエンス株式会社 植物の生長促進や根伸長促進効果且つ付加価値向上効果を有する酵母抽出物
CN109313565A (zh) * 2016-05-02 2019-02-05 诺基亚通信公司 虚拟网络环境中的快照创建
CN108234587B (zh) * 2016-12-22 2021-04-16 航天信息股份有限公司 一种基于OpenStack多region镜像资源共享的方法
CN106897119B (zh) * 2017-02-28 2021-04-23 郑州云海信息技术有限公司 一种虚拟化平台中磁盘树优化方法及系统
WO2018216972A1 (ko) * 2017-05-23 2018-11-29 주식회사 엔젠소프트 컨테이너 기술 기반의 시스템 전환 장치 및 방법
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
CN107943557B (zh) * 2017-11-18 2020-07-17 浙江网新恒天软件有限公司 一种基于云平台的虚拟机磁盘增量快照方法
US12066900B2 (en) 2018-03-15 2024-08-20 Pure Storage, Inc. Managing disaster recovery to cloud computing environment
CN110737503B (zh) * 2018-07-20 2021-09-14 华为技术有限公司 容器服务快照的管理方法和装置
US10635547B2 (en) * 2018-07-31 2020-04-28 Nutanix, Inc. Global naming for inter-cluster replication
CN109063150A (zh) * 2018-08-08 2018-12-21 湖南永爱生物科技有限公司 大数据提取方法、装置、存储介质及服务器
CN109101323A (zh) * 2018-09-10 2018-12-28 南京铱迅信息技术股份有限公司 虚拟机运行状态下基于qcow2格式的快照实现方法
CN110162507B (zh) * 2019-04-22 2023-06-27 平安科技(深圳)有限公司 快照覆写方法、装置、计算机设备及存储介质
CN110196755B (zh) * 2019-05-07 2024-03-15 腾讯科技(深圳)有限公司 一种虚拟机快照管理方法、装置、服务器及存储介质
CN110188005B (zh) * 2019-05-31 2022-03-04 北京金山云网络技术有限公司 主机创建和数据备份方法、装置、电子设备及存储介质
KR102281901B1 (ko) * 2019-08-13 2021-07-23 건국대학교 산학협력단 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법
CN110879742B (zh) * 2019-10-15 2023-08-11 平安科技(深圳)有限公司 虚拟机异步创建内部快照方法、装置及存储介质
CN110968399B (zh) * 2019-12-18 2023-09-22 腾讯科技(深圳)有限公司 一种虚拟机重装方法、装置和计算机可读存储介质
CN112199162B (zh) * 2020-10-16 2023-02-28 济南浪潮数据技术有限公司 基于虚拟化磁盘双活容灾的磁盘快照方法、装置及介质
US20220121532A1 (en) * 2020-10-16 2022-04-21 Vmware, Inc. Fault-tolerant uploading of data to a distributed storage system
CN112948055A (zh) * 2021-03-04 2021-06-11 华东理工大学 一种基于云计算的创新型课程实验自动管理方法及系统
US12106077B2 (en) * 2021-04-14 2024-10-01 Salesforce, Inc. Process flow builder for extensible web component sequences
CN113886027B (zh) * 2021-12-07 2022-03-08 广州锦和科技有限公司 虚拟机模板创建及虚拟机的进入方法、装置及存储介质
CN114237988B (zh) * 2022-02-25 2022-06-03 广州锦行网络科技有限公司 内存快照的处理方法和装置、存储介质、电子装置
CN114780302B (zh) * 2022-06-23 2022-09-16 山东爱特云翔信息技术有限公司 基于openstack云主机的快照回滚方法、系统、装置及存储介质
CN117130980B (zh) * 2023-10-24 2024-02-27 杭州优云科技有限公司 一种虚拟机快照管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106883A (ja) * 2004-09-30 2006-04-20 Toshiba Corp 計算機システム及びリモートレプリケーション方法
JP2010026939A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd 記憶制御装置及び方法
JP2013137766A (ja) * 2011-12-27 2013-07-11 Hon Hai Precision Industry Co Ltd 仮想マシンの応用システム及び方法
JP2014006845A (ja) * 2012-06-27 2014-01-16 Fujitsu Ltd 管理方法,管理装置および管理プログラム
US20150161151A1 (en) * 2007-10-11 2015-06-11 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943281B1 (en) * 2008-02-19 2015-01-27 Symantec Corporation Method and apparatus for optimizing a backup chain using synthetic backups
US8713060B2 (en) * 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
JP5227887B2 (ja) * 2009-05-21 2013-07-03 株式会社日立製作所 バックアップ管理方法
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US9542400B2 (en) * 2012-09-07 2017-01-10 Oracle International Corporation Service archive support
CN103885854A (zh) * 2012-12-19 2014-06-25 华为技术有限公司 一种数据备份方法、装置及系统
US9514002B2 (en) * 2013-09-13 2016-12-06 Vmware, Inc. Incremental backups using retired snapshots
CN104714755B (zh) * 2013-12-13 2020-01-03 华为技术有限公司 一种快照管理方法及装置
US9959177B2 (en) * 2014-02-27 2018-05-01 Red Hat Israel, Ltd. Backing up virtual machines
US11483405B2 (en) * 2015-06-10 2022-10-25 Platform9, Inc. Private cloud as a service
US10146631B1 (en) * 2015-09-30 2018-12-04 EMC IP Holding Company LLC Incremental forever backups for exchange

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106883A (ja) * 2004-09-30 2006-04-20 Toshiba Corp 計算機システム及びリモートレプリケーション方法
US20150161151A1 (en) * 2007-10-11 2015-06-11 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
JP2010026939A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd 記憶制御装置及び方法
JP2013137766A (ja) * 2011-12-27 2013-07-11 Hon Hai Precision Industry Co Ltd 仮想マシンの応用システム及び方法
JP2014006845A (ja) * 2012-06-27 2014-01-16 Fujitsu Ltd 管理方法,管理装置および管理プログラム

Also Published As

Publication number Publication date
KR20170049375A (ko) 2017-05-10
CN105335253B (zh) 2019-01-15
KR101802920B1 (ko) 2017-11-29
US20170124103A1 (en) 2017-05-04
US11741046B2 (en) 2023-08-29
JP6345211B2 (ja) 2018-06-20
CN105335253A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
JP6345211B2 (ja) 仮想マシンシステムディスクのスナップショットの作成方法および装置
US10511661B2 (en) N-way synchronization of desktop images
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US8191065B2 (en) Managing virtual machine images
US9069607B1 (en) Selective migration of virtualized applications and configuration settings thereof
US9613045B2 (en) Synchronization of desktop images with smart image merging
US20090249051A1 (en) Systems and methods for managing user configuration settings
US10146634B1 (en) Image restore from incremental backup
JP2017123188A (ja) テナント移行にわたるテナント・データのリカバリ
WO2019047976A1 (zh) 网络文件管理方法、终端及计算机可读存储介质
US10671485B2 (en) Image management for desktop virtualization
CN102662591B (zh) 数据处理方法和装置
US20140250069A1 (en) Systems and methods for selectively synchronizing files
US11698795B2 (en) Unified way to track user configuration on a live system
WO2019231836A1 (en) Hydration of a hierarchy of dehydrated files
US9762436B2 (en) Unified and persistent network configuration
US10824598B2 (en) Handling file commit and commit-delete operations in an overlay optimizer
US11886889B2 (en) Managing configurations of system services running in a cluster of hosts by managing lifecycle of virtualization software
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
US20140059538A1 (en) Virtual machine state tracking using object based storage
US11424982B2 (en) Remediation of a system to new desired state using configuration dependency graph
US20240012669A1 (en) Recovery of management appliance after upgrade failure without creating data inconsistencies
US11748314B2 (en) Method, device and computer program product for data replication
CN117539832A (zh) 文件系统对象的重命名方法、装置及计算机程序产品

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180522

R150 Certificate of patent or registration of utility model

Ref document number: 6345211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250