KR20170049375A - 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 - Google Patents

가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 Download PDF

Info

Publication number
KR20170049375A
KR20170049375A KR1020160104236A KR20160104236A KR20170049375A KR 20170049375 A KR20170049375 A KR 20170049375A KR 1020160104236 A KR1020160104236 A KR 1020160104236A KR 20160104236 A KR20160104236 A KR 20160104236A KR 20170049375 A KR20170049375 A KR 20170049375A
Authority
KR
South Korea
Prior art keywords
file
snapshot
virtual machine
unit
renaming
Prior art date
Application number
KR1020160104236A
Other languages
English (en)
Other versions
KR101802920B1 (ko
Inventor
유 장
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
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 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20170049375A publication Critical patent/KR20170049375A/ko
Application granted granted Critical
Publication of KR101802920B1 publication Critical patent/KR101802920B1/ko

Links

Images

Classifications

    • 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
    • G06F17/30088
    • 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/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

본 발명은 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치를 공개하였다. 상기 가상 머신 시스템 디스크 스냅 샷의 생성 방법의 구체적인 실시 형태는 가상 머신 스냅 샷의 생성 명령을 수신하는 단계와; 가상 머신이 턴온 상태인지를 판단하는 단계와; 가상 머신이 턴온 상태일 경우, 수신된 생성 명령에 응답하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명하는 단계와; 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈하는 단계와; 앞서 진행한 스냅 샷 생성의 성공 여부를 판단하는 단계와; 앞서 진행한 스냅 샷 생성이 성공하였을 경우, 재명명 후의 최상층 파일을 제1 스냅 샷 파일로 하는 단계 및 제1 스냅 샷 파일을 파일 관리 서버에 업로드하는 단계를 포함한다. 상기 실시 형태는 가상 머신 시스템 디스크 스냅 샷을 생성할 경우 가상 머신의 동작을 정지시킬 필요없이 스냅 샷을 생성할 수 있어, 스냅 샷을 생성할 경우 백업해야 할 데이터 량 및 점용하는 저장 공간을 감소하였고 스냅 샷을 업로드할 경우, 점용하는 네트워크 대역폭을 감소시키는 목적을 구현하였다.

Description

가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치{METHOD AND APPARATUS FOR CREATING A VIRTUAL MACHINE SYSTEM DISK SNAPSHOT}
본 발명은 컴퓨터 기술 분야에 관한 것으로서, 구체적으로 가상 머신 기술 분야에 관한 것이며, 특히는 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치에 관한 것이다.
기존의 가상 머신 스냅 샷의 생성 방법은 통상적으로 내장 디스크 스냅 샷(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은 본 발명에서 이에 응용될 수 있는 예시적 시스템의 구조도이고,
도 2는 본 발명의 실시예의 가상 머신 시스템 디스크 스냅 샷의 생성 방법에 근거하여 일 예시적 흐름도를 도시하였으며,
도 3은 본 발명의 실시예의 가상 머신 시스템 디스크 스냅 샷의 생성 방법에 근거하여 응용 시나리오의 일 예시적 흐름도를 도시하였고,
도 4는 본 발명의 실시예의 시스템 디스크 파일의 병합 방법에 근거하여 일 예시적 흐름도를 도시하였으며,
도 5는 본 발명의 실시예의 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키는 방법에 근거하여 응용 시나리오의 일 예시적 흐름도를 도시하였고,
도 6은 본 발명의 실시예의 스냅 샷을 롤백할 경우, 다운로드된 스냅 샷 파일을 병합시키는 방법에 근거하여 일 예시적 흐름도를 도시하였으며,
도 7은 본 발명의 실시예의 가상 머신 시스템 디스크 스냅 샷의 생성 장치에 근거하여 일 예시적 구조도를 도시하였고,
도 8은 본 발명의 실시예를 구현하기에 적합한 단말기 장치 또는 서버의 컴퓨터 시스템의 구조 설명도를 도시하였다.
아래에 첨부 도면과 실시예를 결부시켜 본 발명에 대한 진일보의 구체적인 설명을 진행한다. 여기서 설명되는 구체적인 실시예는 다만 관련 발명을 해석하기 위한 것으로 상기 발명을 한정하는 것이 아님을 이해할 수 있다. 이외에 더 설명이 필요한 점은, 보다 쉬운 설명을 위해 첨부 도면에서는 발명과 관련되는 부분만을 도시하였다.
설명이 필요한 점은, 충돌되는 않는 상황에서 본 발명 중의 실시예 및 실시예 중의 특징은 상호 결합될 수 있다. 아래에 첨부 도면을 참조하고 실시예와 결부시켜 본 발명을 구체적으로 설명한다.
도 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는 본 발명의 실시예의 가상 머신 시스템 디스크 스냅 샷의 생성 방법에 근거하여 일 예시적 흐름도를 도시하였다. 도 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) 파일을 포함하고 베이스 파일과 최상층 파일 사이에는 또한 기록 스냅 샷 파일이 더 존재할 수도 있다. 여기서, 베이스 파일이란 가상 머신 원래의 시스템 설치 파일 또는 원래의 시스템 설치 파일에 시스템 패치 후 생성된 증분 파일 즉 가상 머신의 미러 이미지 파일이다.
가상 머신이 턴온 상태이고 가상 머신 스냅 샷의 생성 명령을 수신하였을 경우, I/O 인터페이스는 지속적인 기입 과정일 수 있고, qemu-kvm 유형의 가상 머신이 계속하여 동작 과정일 경우, 오픈한 명칭인 device의 파일은 여전히 스냅 샷 과정 이전의 qcow2파일이며 새로운 증분 차이 파일로의 전환이 필요하다면 nova-compute 처리로 이를 오픈한 파일 기술자에 대한 수정을 진행하고 명칭을 disk의 최상층 파일로 재명명할 수 있는 것과 같이 상기 가상 머신 관리 모듈을 통하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명할 수 있다.
단계 204에서, 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈한다.
본 실시예에 있어서, 최상층 파일의 재명명 완료에 응답하여 상기 가상 머신 관리 모듈은 가상 머신의 가상화 기술의 인터페이스에 대한 호출을 통하여 최상층 파일을 새로 생성하고 이후 가상 머신의 가상화 기술의 인터페이스를 호출하여 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키도록 수정하며 그 다음 가상 머신의 가상화 기술의 인터페이스를 호출하여 새로 생성된 최상층 파일을 오픈한다. 예하면, 상기 Nova-compute 처리는 libvirt의 API에 대한 호출을 통하여 최상층 파일을 새로 생성하고 이후 libvirt의 API를 호출하여 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 그 다음 libvirt의 API를 호출하여 reopen 명령을 구현하여 새로 생성된 disk 파일을 오픈한다. 여기서, libvirt는 1세트의 무료, 오픈 소스의 Linux 하의 주류 가상화 도구의 C 함수 베이스이다.
본 실시예에 있어서, 상기 새로 생성된 최상층 파일과 재명명 후의 최상층 파일 사이의 종속 관계란 새로 생성된 최상층 파일과 재명명 후의 최상층 파일 사이의 어의의 연결 관계이고, 재명명 후의 최상층 파일은 새로 생성된 최상층 파일에서 독립하지만 새로 생성된 최상층 파일은 재명명 후의 최상층 파일에 종속되며 재명명 후의 최상층 파일이 변경되었다면 이에 종속되는 새로 생성된 최상층 파일에 영향준다.
단계 205에서, 앞서 진행한 스냅 샷 생성의 성공 여부를 판단한다.
본 실시예에 있어서, 가상 머신 스냅 샷의 생성을 성공한 후 재명명 후의 최상층 파일과 재명명 후의 최상층 파일이 종속되는 파일이 이미 업로드된 스냅 샷 파일인지의 여부에 근거하여 앞서 진행한 스냅 샷 생성의 성공 여부를 판단할 수 있다.
본 실시예의 일 선택적인 구현 형태에 있어서, 앞서 진행한 스냅 샷 생성의 성공 여부를 판단하는 단계는 모든 종속되는 파일의 단일 식별 코드를 추출하는 단계와; 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하는지를 판단하는 단계와; 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재할 경우, 앞서 진행한 스냅 샷 생성이 성공한 것으로 확정하는 단계 및 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하지 않을 경우, 앞서 진행한 스냅 샷 생성이 실패한 것으로 확정하는 단계를 포함할 수 있으나 이에 한하지 않는다.
단계 206에서, 앞서 진행한 스냅 샷 파일 생성이 성공하였을 경우, 재명명 후의 최상층 파일을 제1 스냅 샷 파일로 한다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈에서 가상 머신 처리를 호출하여 새로 생성된 최상층 파일을 오픈한 후 재명명 후의 최상층 파일은 읽기 전용 파일이기에 가상 머신 관리 모듈이 상기 읽기 전용 파일을 오픈하고 업로드하는 단계는 가상 머신의 정상적인 동작에 영향을 주지 않는다.
단계 207에서, 제1 스냅 샷 파일을 파일 관리 서버에 업로드한다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈이 제1 스냅 샷 파일을 파일 관리 서버에 업로드하고 여기서, 파일 관리 서버는 생성된 스냅 샷 파일을 저장하고 관리하기 위한 클라우드 컴퓨팅 플랫폼을 구성하는 서버 중의 하나일 수 있다.
본 실시예의 일 선택적인 구현 형태에 있어서, 상기 가상 머신 시스템 디스크 스냅 샷의 생성 방법은 하기 단계를 더 포함할 수 있으나 이에 한하지 않는다.
단계 208에서, 앞서 진행한 스냅 샷 생성이 실패하였을 경우, 앞서 진행한 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일과 현재 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일을 제2 스냅 샷 파일로 병합시킨다. 및
단계 209에서, 제2 스냅 샷 파일을 파일 관리 서버에 업로드한다.
예하면, 가상 머신이 1차 스냅 샷(업로드 성공하였는지 여부를 막론하고)을 생성한 후, qcow2 포맷의 가상 머신 시스템 디스크 파일의 체인 길이를 3으로 증가하고 상기 Nova-compute의 처리는 libvirt의 API를 호출하여 qemu-kvm 가상 머신의 처리를 통하여 새로운 qcow2 포맷의 최상층 파일을 다시 오픈한 후 Nova-compute의 처리에서 앞서 진행한 가상 머신 스냅 샷 생성이 실패로 판단되었다면 libvirt의 API를 호출하여 스냅 샷 qemu-img commit 동작을 병합시키고 앞서 진행한 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일인 Disk.snp1.delta와 현재 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일인Disk.snp2를 제2 스냅 샷 파일로 병합시키며 다시 snap2를 파일 관리 서버에 업로드하고 snap2를 설명하는 메타 데이터를 OpenStack 구조 중의 Glance 어셈블리에 업로드한다.
상기 가상 머신 스냅 샷 생성의 실패 원인은 주로 하기 몇가지 문제점들에 집중된다.
1) 백업 과정에서 디스크 공간의 부족으로 백업 실패를 초래하고,
2) 병합 과정에서 실패하여 오류를 반환하며,
3) 스냅 샷 파일의 업로드 과정에서 실패한다.
앞서 진행한 가상 머신 스냅 샷 생성이 실패한 후 가상 머신이 최상층 파일을 다시 오픈하는 과정이 이미 완료되고 가상 머신은 동작 과정이기에 사용자가 감지하지 못하도록 체인 구조를 유지하여 더 이상 롤백하지 않는다. 앞서 진행한 가상 머신 스냅 샷의 생성 데이터의 누락을 예방하고자 상기 가상 머신 관리 모듈은 현재 수신된 가상 머신 스냅 샷의 생성 명령에 응답하여 하기 단계를 통하여 앞서 진행한 가상 머신 스냅 샷 생성이 실패인지의 여부를 검사할 수 있다. 모든 종속 파일명 중의 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은 본 발명의 실시예의 가상 머신 시스템 디스크 스냅 샷의 생성 방법에 근거하여 응용 시나리오의 일 예시적 흐름도를 도시하였다. 도 3에 도시된 흐름도(300)에서는 하기 단계를 포함한다.
단계 301에서, OpenStack 기술 구조에서 작업 어셈블리 Novad의 전단 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는 스냅 샷의 종속 관계 또는 스냅 샷의 시간 포인트를 업그레이드하는 것과 같이 데이터베이스를 업그레이드한다.
본 발명의 상기 실시예에서 제공하는 가상 머신 시스템 디스크 스냅 샷의 생성 방법은 첫째, 가상 머신이 턴온 상태에서 가상 머신 시스템 디스크 스냅 샷을 생성할 경우, 가상 머신의 동작을 정지시킬 필요없이 스냅 샷을 생성할 수 있어 가상 머신 스냅 샷을 생성할 경우 백업해야 할 데이터 량 및 점용하는 저장 공간을 감소하였고 스냅 샷을 업로드할 경우, 점용하는 네트워크 대역폭을 감소시키는 목적을 구현하였으며, 둘째, 앞서 진행한 가상 머신 스냅 샷 생성이 실패한 후, 앞서 진행한 재명명 후의 최상층 파일과 이번 재명명 후의 최상층 파일을 병합시키고 병합시킨 후의 파일을 파일 관리 서버에 업로드하여 스냅 샷 데이터의 누락을 예방하는 목적을 구현하였으며, 셋째, 가상 머신이 턴오프 상태에서 또한 가상 머신 스냅 샷을 생성할 수도 있어 가상 머신 스냅 샷의 생성 효율을 제고하는 목적을 더 구현하였다.
진일보로 도 4를 참조하면, 이는 본 발명의 실시예의 시스템 디스크 파일의 병합 방법에 근거하여 일 예시적 흐름도를 도시하였다. 도 4에 도시된 바와 같이, 상기 시스템 디스크 파일의 병합 방법의 흐름도(400)는 상기 가상 머신 시스템 디스크 스냅 샷의 생성 방법의 기초 상에 하기 단계를 더 포함한다.
단계 401에서, 업로드 성공에 응답하여 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단한다.
본 실시예에 있어서, 가상 머신 시스템 디스크 스냅 샷의 생성 방법에서 실행되는 가상 머신 관리 모듈은 가상 머신의 가상화 기술의 인터페이스를 호출하여 하기 동작을 진행한다. 상기 제1 스냅 샷 파일 또는 제2 스냅 샷 파일의 업로드 성공에 응답하여 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단한다.
재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지의 여부를 판단할 경우, 재명명 후의 최상층 파일의 종속의 단일 식별 코드를 추출하고, 상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하는지를 판단하며, 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재할 경우, 기록 스냅 샷 파일로 확정할 수 있다.
단계 402에서, 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일일 경우, 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시킨다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈은 체인 길이가 너무 길어 읽기 쓰기 성능에 영향을 주고 너무 많은 물리머신 디스크 공간을 점용하는 문제를 방지하고자 기존의 시스템 디스크 파일에 대한 병합을 통하여 체인 길이가 일정한 범위 내에 도달하도록 보장할 필요가 있다. 따라서, 상기 가상 머신 관리 모듈이 획득한 시스템 디스크 파일의 체인 길이가 3보다 크다고 판단할 경우, 즉 시스템 디스크 파일에서 베이스 파일, 재명명 후의 최상층 파일과 새로 생성된 최상층 파일을 제외하고 기록 스냅 샷 파일을 더 포함할 경우, 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 병합시켜 새로운 기록 스냅 샷 파일을 획득할 수 있다.
본 실시예의 일 선택적인 구현 형태에 있어서, 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키는 단계는 하기 단계를 포함할 수 있으나 이에 한하지 않는다. 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 소스 파일로 하여 백업하는 단계와; 백업 파일의 종속 관계와 소스 파일의 종속 관계가 동일한지를 확인하는 단계와; 백업 파일의 종속 관계와 소스 파일의 종속 관계가 상이할 경우, 백업 파일의 종속 관계를 소스 파일의 종속 관계와 동일하게 수정하는 단계와; 백업 파일의 종속 관계와 소스 파일의 종속 관계가 동일할 경우, 백업 파일을 병합시켜 새로운 기록 스냅 샷 파일을 획득하는 단계 및 소스 파일 즉 기존의 재명명 후의 최상층 파일 및 기존의 기록 스냅 샷 파일을 삭제하는 단계를 포함한다.
단계 403에서, 새로 생성된 최상층 파일의 종속을 새로운 기록 스냅 샷 파일로 수정하고 새로 생성된 최상층 파일을 다시 오픈한다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈이 새로운 기록 스냅 샷 파일을 획득한 후 새로 생성된 Top파일의 종속을 새로운 기록 스냅 샷 파일로 수정하고 가상화 기술을 지원하는 함수 베이스의 어플리케이션 프로그래밍 인터페이스에 대한 호출을 통하여 가상 머신의 처리를 호출하여 새로 생성된 최상층 파일을 다시 오픈한다.
본 실시예에 있어서, 시스템 디스크 파일의 체인 길이를 4급 또는 4급 이내로 통제하여 체인 길이가 너무 긴 것으로 인한 성능 손실을 예방할 수 있다.
도 5를 참조하면, 도 5는 본 발명의 실시예의 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키는 방법에 근거하여 응용 시나리오의 일 예시적 흐름도(500)를 도시하였다.
도 5에 도시된 바와 같이, 시스템 디스크 파일의 제1 체인 구조(510)에서, 기록 스냅 샷 파일은 기록 스냅 샷 파일(502)의 형태로 체인 구조에 존재하고 재명명 후의 최상층 파일은 증분 스냅 샷 파일(503)의 형태로 체인 구조에 존재하며 새로 생성된 최상층 파일은 최상층 파일(504)의 형태로 체인 구조에 존재하고 베이스 미러 이미지 파일(501), 기록 스냅 샷 파일(502), 증분 스냅 샷 파일(503) 및 최상층 파일(504)인 4개의 파일에서 뒤에 위치하는 파일이 앞에 위치하는 파일에 종속된다. 상기 가상 머신 관리 모듈이 증분 스냅 샷 파일(503)을 파일 관리 서버에 업로드 성공한 후 증분 스냅 샷 파일(503)이 종속되는 파일에 대한 판단을 통하여 획득한 판단 결과는 기록 스냅 샷 파일(502)에 존재하고 이후 기록 스냅 샷 파일(502)과 증분 스냅 샷 파일(503)을 병합시키고, 병합 과정에서 우선, 기록 스냅 샷 파일 백업(505)과 증분 스냅 샷 파일 백업(506) 2개의 백업 파일을 생성하여 제2 체인 구조(520)를 획득하며 이후, 기록 스냅 샷 파일 백업(505) 및 증분 스냅 샷 파일 백업(506)과 베이스 미러 이미지 파일(501) 사이의 종속 관계가 기존 체인 구조의 종속 관계와 동일한지를 검사하고, 기록 스냅 샷 파일 백업(505) 및 증분 스냅 샷 파일 백업(506)과 베이스 미러 이미지 파일(501) 사이의 종속 관계가 기존 체인 구조의 종속 관계와 동일할 경우, 기록 스냅 샷 파일 백업(505)과 증분 스냅 샷 파일 백업(506)을 병합시켜 새로운 기록 스냅 샷 파일(507)을 생성하고 제3 체인 구조(530)를 획득하며 이후, 최상층 파일(504)의 종속을 새로운 기록 스냅 샷 파일(507)에 지향시키도록 수정하고 최상층 파일(504)을 다시 오픈하여 제4 체인 구조(540)를 획득함으로써 상기 가상 머신 관리 모듈로 하여금 시스템 디스크 파일의 구조 체인 길이에 대한 통제를 완료하도록 한다.
도 4로 되돌아가, 도 4에서 알 수 있는 바와 같이, 도 2와 대응되는 실시예와 비교하면, 본 실시예에 있어서 가상 머신 시스템 디스크 스냅 샷의 생성 방법의 흐름도(400)는 시스템 디스크 파일의 체인 길이에 대한 통제를 강조하였다. 이로써, 본 실시예에서 설명하는 수단은 스냅 샷 파일의 병합을 소개함으로써 시스템 디스크 파일의 체인 길이를 감소하여 가상 머신의 읽기 쓰기 성능을 제고하고 물리머신 디스크 공간에 대한 점용을 감소시키는 문제를 구현할 수 있다.
진일보로 도 6을 참조하면, 도 6은 본 발명의 실시예의 스냅 샷을 롤백할 경우, 다운로드된 스냅 샷 파일을 병합시키는 방법에 근거하여 일 예시적 흐름도를 도시하였다. 상기 가상 머신 시스템 디스크 스냅 샷의 생성 방법의 흐름도(600)는 상기 가상 머신 시스템 디스크 스냅 샷의 생성 방법의 기초 상에 하기 단계를 더 포함한다.
단계 601에서, 스냅 샷 롤백 명령을 수신한다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈은 사용자가 입력한 스냅 샷 롤백 명령을 직접 및/또는 간접적으로 수신할 수 있고 상기 명령은 롤백에 사용되는 스냅 샷의 통용 단일 식별 코드를 포함하며 상기 통용 단일 식별 코드에 근거하여 롤백에 필요한 스냅 샷 파일을 유일하게 확정할 수 있고 상기 유일하게 확정한 스냅 샷 파일에 근거하여 롤백의 시간 포인트 정보를 확정한다.
본 실시예의 일 선택적인 구현 형태에 있어서, 하기 단계를 통하여 스냅 샷 롤백 명령을 간접적으로 수신하는 단계를 구현할 수 있다. 롤백 명령을 선택하는 인터페이스를 표시하고, 롤백 명령에 대한 제1 선택 동작을 수신하며, 수신된 제1 선택 동작에 응답하여 롤백 시간 포인트를 선택하는 인터페이스를 표시하고, 롤백 시간 포인트에 대한 제2 선택 동작을 수신한다. 롤백 시간 포인트와 스냅 샷 파일이 일대일로 대응되기에 롤백 시간 포인트 정보를 통하여 스냅 샷 파일 및 스냅 샷 파일의 통용 단일 식별 코드를 유일하게 확정할 수 있다.
본 실시예에 있어서, 제1 선택 동작과 제2 선택 동작은 2개의 상이한 동작 대상에 대한 동작만을 대표하고, 여기서, 제1 선택 동작이란 롤백 명령에 대한 동작이고 제2 선택 동작이란 롤백 시간 포인트에 대한 동작이며 각기 적합한 동작 형태를 선택하여 완료할 수 있고, 선택한 동작 형태는 동일할 수도 있고 상이할 수도 있으며 본 영역에서 통상적인 지식을 가진 자들은 여기서 제1 또는 제2는 동작 선택에 대한 특수한 제한을 구성하지 않음을 이해할 것이다.
단계 602에서, 수신된 스냅 샷 롤백 명령에 응답하여 파일 관리 서버에서 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드한다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈은 스냅 샷의 통일 단일 식별 코드에 근거하여 파일 관리 서버에서 다운로드된 스냅 샷 파일을 확정할 수 있다.
본 실시예의 일 선택적인 구현 형태에 있어서, 수신된 스냅 샷 롤백 명령에 응답하여 파일 관리 서버에서 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드하는 단계는, 수신된 제2 선택 동작에 응답하여 파일 관리 서버에서 제2 선택 동작과 상호 적응하는 스냅 샷 파일을 다운로드하는 단계를 포함한다.
단계 603에서, 다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시킨다.
본 실시예에 있어서, 상기 가상 머신 관리 모듈은 시스템 디스크 파일 구조의 체인 길이를 적합한 범위 내에 유지하고자 다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시킨다.
본 발명의 상기 실시예는 물리머신 디스크 공간의 점용을 감소하였고 가상 머신의 읽기 쓰기 성능을 제고하였다.
진일보로 도 7을 참조하면, 상기 각 도면에 도시된 방법의 구현으로, 도 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) 파일을 포함하며 베이스 파일과 최상층 파일 사이에는 또한 기록 스냅 샷 파일이 더 존재할 수도 있다. 여기서, 베이스 파일이란 가상 머신 원래의 시스템 설치 파일 또는 원래의 시스템 설치 파일에 시스템 패치 후 생성된 증분 파일 즉 가상 머신의 미러 이미지 파일이다.
명명 유닛(703)이 획득한 제1 판단 유닛(702)의 판단 결과 가상 머신이 턴온 상태이고 가상 머신 스냅 샷의 생성 명령을 수신하였을 경우, I/O 인터페이스는 지속적인 기입 과정일 수 있고, qemu-kvm 유형의 가상 머신이 계속하여 동작 과정일 경우, 이를 오픈한 device파일은 여전히 스냅 샷 과정 이전의 qcow2파일이며 새로운 증분 차이 파일로의 전환이 필요하다면 nova-compute 중의 네임 파일로 이를 오픈한 파일 기술자에 대한 수정을 진행하고 명칭을 disk의 최상층 파일로 재명명할 수 있는 것과 같이 상기 가상 머신 관리 모듈에서 실행되는 명명 유닛(703)을 통하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명할 수 있다.
생성 유닛(704)은 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈하도록 구성된다.
본 실시예에 있어서, 최상층 파일의 재명명 완료에 응답하여 상기 가상 머신 관리 모듈에서 실행되는 생성 유닛(704)은 가상 머신의 가상화 기술의 인터페이스에 대한 호출을 통하여 최상층 파일을 새로 생성하고 이후 가상 머신의 가상화 기술의 인터페이스를 호출하여 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키도록 수정하며 그 다음 가상 머신의 가상화 기술의 인터페이스를 호출하여 새로 생성된 최상층 파일을 오픈한다. 예하면, 상기 Nova-compute에서 실행되는 생성 유닛은 libvirt의 API에 대한 호출을 통하여 최상층 파일을 새로 생성하고 이후 libvirt의 API를 호출하여 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 그 다음 libvirt의 API를 호출하여 reopen 명령을 구현하여 새로 생성된 disk 파일을 오픈한다. 여기서, libvirt는 1세트의 무료, 오픈 소스의 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가 존재하는지를 조사하고, 이미 존재할 경우, 앞서 진행한 온라인 스냅 샷 과정은 성공이고 그렇지 않을 경우, 앞서 진행한 온라인 스냅 샷은 실패하며 앞서 진행한 온라인 스냅 샷이 실패하였음을 검사하게 되면 앞서 진행한 실패한 스냅 샷 파일과 현재 생성된 가상 머신 스냅 샷 파일을 병합시킨다. 병합시켜 획득한 제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에 도시되지 않았다.
선택적으로, 상기 가상 머신 시스템 디스크 스냅 샷의 생성 장치(700)는 제3 판단 유닛, 제1 병합 유닛 및 수정 유닛을 더 포함할 수 있으나 이에 한하지 않는다(미도시).
제3 판단 유닛은 업로드 성공에 응답하여 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단하도록 구성된다.
상기 가상 머신 관리 모듈에서 실행되는 제3 판단 유닛은 가상화 기술의 인터페이스를 호출하여 하기 동작을 진행한다. 상기 제1 스냅 샷 파일 또는 제2 스냅 샷 파일의 업로드 성공에 응답하여 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단한다.
재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지의 여부를 판단할 경우, 재명명 후의 최상층 파일의 종속의 단일 식별 코드를 추출하고, 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하는지를 판단하며, 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재할 경우, 기록 스냅 샷 파일로 확정한다.
제1 병합 유닛은 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일일 경우, 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키기 위해 배치된다.
상기 가상 머신 관리 모듈에서 실행되는 제1 병합 유닛은 체인 길이가 너무 길어 읽기 쓰기 성능에 영향을 주고 너무 많은 물리머신 디스크 공간을 점용하는 문제를 방지하고자 기존의 시스템 디스크 파일에 대한 병합을 통하여 체인 길이가 일정한 범위 내에 도달하도록 보장할 필요가 있다. 따라서, 제1 병합 유닛이 획득한 시스템 디스크 파일의 체인 길이가 3보다 크다고 판단할 경우, 즉 시스템 디스크 파일에서 베이스 파일, 재명명 후의 최상층 파일과 새로 생성된 최상층 파일을 제외하고 기록 스냅 샷 파일을 더 포함할 경우, 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 병합시켜 새로운 기록 스냅 샷 파일을 획득할 수 있다.
일부 구현에 있어서, 상기 제1 병합 유닛은 재명명 후의 최상층 파일과 기록 스냅 샷 파일을 소스 파일로 하여 백업하기 위한 백업 서브 유닛, 백업 파일의 종속 관계와 소스 파일의 종속 관계가 동일한지를 확인하기 위한 확인 서브 유닛, 백업 파일의 종속관계와 소스 파일의 종속 관계가 상이할 경우, 백업 파일의 종속 관계를 소스 파일의 종속 관계와 동일하게 수정하기 위한 수정 서브 유닛, 백업 파일의 종속관계와 소스 파일의 종속 관계가 동일할 경우, 백업 파일을 병합시켜 상기 새로운 기록 스냅 샷 파일을 획득하기 위한 병합 서브 유닛, 소스 파일 즉 기존의 재명명 후의 최상층 파일 및 기존의 기록 스냅 샷 파일을 삭제하기 위한 삭제 서브 유닛을 포함할 수 있으나 이에 한하지 않는다.
수정 유닛은 새로 생성된 최상층 파일의 종속을 새로운 기록 스냅 샷 파일로 수정하고 새로 생성된 최상층 파일을 다시 오픈하도록 구성된다.
선택적으로, 상기 가상 머신 시스템 디스크 스냅 샷의 생성 장치(700)는 제2 수신 유닛, 다운로드 유닛 및 제3 병합 유닛을 더 포함할 수 있으나 이에 한하지 않는다(미도시).
제2 수신 유닛은 스냅 샷 롤백 명령을 수신하기 위한 것이다.
상기 가상 머신 관리 모듈에서 실행되는 제2 수신 유닛은 직접 및/또는 간접적으로 사용자가 입력한 스냅 샷 롤백 명령을 수신할 수 있고, 상기 명령은 롤백에 사용되는 스냅 샷의 통용 단일 식별 코드를 포함하며, 상기 통용 단일 식별 코드에 근거하여 스냅 샷 파일을 유일하게 확정할 수 있고 상기 유일하게 확정한 스냅 샷 파일에 근거하여 롤백의 시간 포인트 정보를 확정한다.
일부 구현에 있어서, 제2 수신 유닛이 간접적으로 사용자가 입력한 스냅 샷 롤백 명령을 수신하는 목적을 구현하고자 제2 수신 유닛은 롤백 명령을 선택하는 인터페이스를 표시하기 위한 제1 표시 서브 유닛, 롤백 명령에 대한 제1 선택 동작을 수신하기 위한 제1 수신 서브 유닛, 수신된 제1 선택 동작에 응답하여 롤백 시간 포인트를 선택하는 인터페이스를 표시하기 위한 제2 표시 서브 유닛, 롤백 시간 포인트에 대한 제2 선택 동작을 수신하기 위한 제2 수신 서브 유닛을 포함할 수 있으나 이에 한하지 않는다.
다운로드 유닛은 수신된 스냅 샷 롤백 명령에 응답하여 파일 관리 서버에서 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드하기 위한 것이다.
상기 가상 머신 관리 모듈에서 실행되는 다운로드 유닛은 스냅 샷의 통용 단일 식별 코드에 근거하여 파일 관리 서버에서 다운로드된 스냅 샷 파일을 확정할 수 있다.
상기 구현 중의 제1 표시 서브 유닛, 제1 수신 서브 유닛, 제2 표시 서브 유닛 및 제2 수신 서브 유닛을 포함할 수 있는 제2 수신 유닛과 상응하게 다운로드 유닛은 수신된 제2 선택 동작에 응답하여 파일 관리 서버에서 제2 선택 동작과 상호 적응하는 스냅 샷 파일을 다운로드하기 위한 다운로드 서브 유닛을 포함할 수 있으나 이에 한하지 않는다.
제3 병합 유닛은 다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시키기 위한 것이다.
상기 가상 머신 관리 모듈에서 실행되는 제3 병합 유닛은 시스템 디스크 파일 구조의 체인 길이를 적합한 범위 내에 유지하고자 다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시킨다.
본 영역에서 통상적인 지식을 가진 자들은 가상 머신 시스템 디스크 스냅 샷의 생성 장치(700) 중에 기재된 모든 유닛과 참조도 2에서 설명한 방법 중의 각 단계가 상호 대응된다는 것을 이해할 것이다. 이로써, 상기 내용에서 가상 머신 시스템 디스크 스냅 샷의 생성 방법과 관련하여 설명한 동작과 특징은 마찬가지로 가상 머신 시스템 디스크 스냅 샷의 생성 장치(700) 및 이에 포함되는 유닛에 적용되므로 여기서 더 이상 설명하지 않기로 한다. 가상 머신 시스템 디스크 스냅 샷의 생성 장치(700) 중의 상응 유닛은 단말기 장치 또는 서버 중의 유닛과 상호 매칭되어 본 발명의 실시예를 구현할 수 있도록 하는 수단이다.
도 8은 본 출원의 실시예의 본 발명의 실시예를 구현하기에 적합한 단말기 장치 또는 서버의 컴퓨터 시스템의 구조 설명도를 나타낸다.
도 8에 도시된 바와 같이, 컴퓨터 시스템(800)은 중앙 처리 유닛(801; CPU)을 포함하며, 읽기 전용 메모리 장치(801; ROM)에 저장된 프로그램 또는 저장부(808)로부터 랜덤 액세스 메모리 장치(803; RAM)에 로딩된 프로그램에 의해 각종 적당한 동작과 처리를 실행할 수 있다. RAM(803)에는 시스템(800)을 작동하기에 필요한 각종 프로그램 및 데이터가 더 저장되어 있다. CPU(801), ROM(802) 및 RAM(803)은 버스(804)을 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(805)도 버스(804)에 연결된다.
I/O 인터페이스(805)에 연결되는 부재로서, 키보드, 마우스 등을 포함하는 입력부(806)와, 예를 들어 음극선관(CRT), 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력부(807)와, 하드 드라이버 등을 포함하는 저장부(808)와, 예를 들어 LAN 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(809)가 포함된다. 통신부(809)는 인터넷과 같은 네트워크를 통해 통신처리를 실행한다. 구동부(810)도 수요에 따라 I/O 인터페이스(805)에 연결된다. 자기 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 장치 등과 같은 착탈 가능한 매체(811)는 이들 매체로부터 판독된 컴퓨터 프로그램을 수요에 따라 저장부(808)에 설치하도록 수요에 따라 구동부(810)에 설치된다.
특히, 본 개시의 실시예에 의하면, 흐름도를 참조하여 설명한 상기 과정들은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 예를 들어, 본 개시의 실시예는 컴퓨터 프로그램 제품을 포함하고, 컴퓨터 판독 가능한 매체에 유형적으로 포함된 컴퓨터 프로그램을 포함하며, 상기 컴퓨터 프로그램은 흐름도에 도시된 방법을 실행하기 위한 컴퓨터 코드를 포함한다. 이러한 실시예에 있어서, 해당 컴퓨터 프로그램은 통신부(809)를 경유하여 네트워크로부터 다운로드되어 설치될 수 있고 및/또는 착탈 가능한 매체(811)로부터 설치될 수 있다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 조작을 도시하였다. 이러한 방면에서, 흐름도 또는 블록도 중의 각각은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 상기 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령을 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능은 첨부된 도면에 표기된 순서와 다른 순서로 발생할 수도 있음을 주의하여야 한다. 예를 들어, 순차적으로 표시된 두개의 블록은 실제적으로 기본상 동시에 실행될 수 있도, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 확정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록의 조합은 규정된 기능 또는 조작을 실행하는 하드웨어 기반의 전용 시스템으로 구현될 수 있고, 및/또는 전용 하드웨어와 컴퓨터 명령의 조합으로 구현될 수 있음을 유의하여야 한다.
본 출원의 실시예에 설명되는 관련된 유닛들은 소프트웨어의 방식으로 구현되거나 하드웨어의 방식으로 구현될 수 있다. 설명된 유닛은 프로세서에 설치될 수도 있으며, 예를 들어, 프로세서는 제1 수신 유닛, 제1 판단 유닛, 명명 유닛, 생성 유닛, 제2 판단 유닛, 확정 유닛 및 제1 업로드 유닛을 포함한다고 설명될 수도 있다. 여기서, 이러한 유닛들의 명칭은 일부 경우에 해당 유닛에 대한 한정을 구성하지 않으며, 예를 들어, 제1 수신 모듈은 "가상 머신이 턴온 상태인지를 판단하는 모듈"로 설명될 수도 있다.
다른, 일 방면에 있어서, 본 출원은 비휘발성 컴퓨터 저장 매체를 더 제공하며, 상기 비휘발성 컴퓨터 저장 매체는 상술한 실시예 중의 상기 장치에 포함된 비휘발성 컴퓨터 저장 매체이거나, 독립적으로 존재하며 단말기 장치에 설치되지 않은 비휘발성 컴퓨터 저장 매체일 수도 있다. 상기 비휘발성 컴퓨터 저장 매체는 하나 또는 다수의 프로그램을 저장하고, 하나 또는 다수의 프로그램이 하나의 장치로 실행될 경우, 상기 장치로 하여금, 가상 머신 스냅 샷의 생성 명령을 수신하고, 가상 머신이 턴온 상태인지를 판단하고, 가상 머신이 턴온 상태일 경우, 수신된 생성 명령에 응답하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명하고, 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고, 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈하고, 앞서 진행한 스냅 샷 생성의 성공 여부를 판단하고, 앞서 진행한 스냅 샷 생성이 성공하였을 경우, 재명명 후의 최상층 파일을 제1 스냅 샷 파일로 하고, 제1 스냅 샷 파일을 파일 관리 서버에 업로드하도록 한다.
이상의 설명은 오직 본 출원의 비교적 바람직한 실시예 및 운용한 기술적 원리에 대한 설명이다. 해당 기술분야의 당업자에게는 본 출원에 관련된 발명의 범위가 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라 본 발명의 주지를 벗어나지 않고서 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 이루어진 기타 기술적 방안들, 예를 들어, 상기 특징을 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징과 서로 대체하여 이루어진 기술적 방안도 포함하고 있음이 자명할 것이다.

Claims (20)

  1. 가상 머신 스냅 샷의 생성 명령을 수신하는 단계;
    가상 머신이 턴온 상태인지를 판단하는 단계;
    상기 가상 머신이 턴온 상태일 경우, 수신된 상기 생성 명령에 응답하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명하는 단계;
    상기 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고, 상기 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈하는 단계;
    앞서 진행한 스냅 샷 생성의 성공 여부를 판단하는 단계;
    앞서 진행한 스냅 샷 생성이 성공하였을 경우, 상기 재명명 후의 최상층 파일을 제1 스냅 샷 파일로 하는 단계; 및
    상기 제1 스냅 샷 파일을 파일 관리 서버에 업로드하는 단계;
    를 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  2. 제1항에 있어서,
    업로드 성공에 응답하여 상기 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단하는 단계;
    상기 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일일 경우, 상기 재명명 후의 최상층 파일과 상기 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키는 단계; 및
    상기 새로 생성된 최상층 파일의 종속을 상기 새로운 기록 스냅 샷 파일로 수정하고, 상기 새로 생성된 최상층 파일을 다시 오픈하는 단계;를 더 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  3. 제2항에 있어서,
    상기 재명명 후의 최상층 파일과 상기 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키는 상기 단계는,
    상기 재명명 후의 최상층 파일과 상기 기록 스냅 샷 파일을 소스 파일로 하여 백업하는 단계와,
    백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 동일한지를 확인하는 단계와,
    상기 백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 상이할 경우, 백업 파일의 종속 관계를 소스 파일의 종속 관계와 동일하게 수정하는 단계와,
    상기 백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 동일할 경우, 상기 백업 파일을 병합시켜 상기 새로운 기록 스냅 샷 파일을 획득하는 단계와,
    상기 소스 파일을 삭제하는 단계를 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  4. 제1항에 있어서,
    상기 앞서 진행한 스냅 샷 생성의 성공 여부를 판단하는 단계는,
    모든 종속되는 파일의 단일 식별 코드를 추출하는 단계와,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하는지를 판단하는 단계와,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재할 경우, 앞서 진행한 스냅 샷 생성이 성공한 것으로 확정하는 단계와,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하지 않을 경우, 앞서 진행한 스냅 샷 생성이 실패한 것으로 확정하는 단계를 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  5. 제1항에 있어서,
    앞서 진행한 스냅 샷 생성이 실패하였을 경우, 앞서 진행한 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일과 현재 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일을 제2 스냅 샷 파일로 병합시키는 단계; 및
    상기 제2 스냅 샷 파일을 파일 관리 서버에 업로드하는 단계;를 더 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  6. 제1항에 있어서,
    상기 가상 머신이 턴오프 상태일 경우, 수신된 상기 생성 명령에 응답하여 상기 가상 머신 시스템 디스크 파일의 최상층 파일을 복사하여 제3 스냅 샷 파일을 획득하는 단계; 및
    상기 제3 스냅 샷 파일을 파일 관리 서버에 업로드하는 단계;를 더 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    스냅 샷 롤백 명령을 수신하는 단계;
    수신된 상기 스냅 샷 롤백 명령에 응답하여 상기 파일 관리 서버에서 상기 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드하는 단계; 및
    다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시키는 단계;를 더 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  8. 제7항에 있어서,
    상기 스냅 샷 롤백 명령을 수신하는 단계는,
    롤백 명령을 선택하는 인터페이스를 표시하는 단계와,
    상기 롤백 명령에 대한 제1 선택 동작을 수신하는 단계와,
    수신된 상기 제1 선택 동작에 응답하여 롤백 시간 포인트를 선택하는 인터페이스를 표시하는 단계와,
    상기 롤백 시간 포인트에 대한 제2 선택 동작을 수신하는 단계를 포함하고,
    상기 수신된 상기 스냅 샷 롤백 명령에 응답하여 상기 파일 관리 서버에서 상기 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드하는 단계는,
    수신된 상기 제2 선택 동작에 응답하여 상기 파일 관리 서버에서 상기 제2 선택 동작과 상호 적응하는 스냅 샷 파일을 다운로드하는 단계를 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  9. 제8항에 있어서,
    상기 가상 머신은 오픈 소스의 클라우드 컴퓨팅 관리 플랫폼 구조인 OpenStack을 통하여 하드웨어의 가상화 기술인 qemu-kvm에 기반하여 생성된 가상 머신이고,
    상기 가상 머신의 시스템 디스크 파일 포맷은 qcow2 포맷의 체인 구조를 사용하는, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  10. 제9항에 있어서,
    상기 시스템 디스크 파일의 체인 길이가 4보다 크지 않은, 가상 머신 시스템 디스크 스냅 샷의 생성 방법.
  11. 가상 머신 스냅 샷의 생성 명령을 수신하기 위한 제1 수신 유닛;
    가상 머신이 턴온 상태인지를 판단하기 위한 제1 판단 유닛;
    상기 가상 머신이 턴온 상태일 경우, 수신된 상기 생성 명령에 응답하여 가상 머신 시스템 디스크 파일 중의 최상층 파일을 재명명하기 위한 명명 유닛;
    상기 최상층 파일의 재명명 완료에 응답하여 최상층 파일을 새로 생성하고, 상기 새로 생성된 최상층 파일의 종속을 재명명 후의 최상층 파일에 지향시키고 새로 생성된 최상층 파일을 오픈하기 위한 생성 유닛;
    앞서 진행한 스냅 샷 생성의 성공 여부를 판단하기 위한 제2 판단 유닛;
    앞서 진행한 스냅 샷 생성이 성공하였을 경우, 상기 재명명 후의 최상층 파일을 제1 스냅 샷 파일로 하기 위한 확정 유닛; 및
    상기 제1 스냅 샷 파일을 파일 관리 서버에 업로드하기 위한 제1 업로드 유닛;
    을 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  12. 제11항에 있어서,
    업로드 성공에 응답하여 상기 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일인지를 판단하기 위한 제3 판단 유닛;
    상기 재명명 후의 최상층 파일의 종속이 기록 스냅 샷 파일일 경우, 상기 재명명 후의 최상층 파일과 상기 기록 스냅 샷 파일을 새로운 기록 스냅 샷 파일로 병합시키기 위한 제1 병합 유닛; 및
    상기 새로 생성된 최상층 파일의 종속을 상기 새로운 기록 스냅 샷 파일로 수정하고, 상기 새로 생성된 최상층 파일을 다시 오픈하기 위한 수정 유닛;을 더 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  13. 제12항에 있어서,
    상기 제1 병합 유닛은,
    상기 재명명 후의 최상층 파일과 상기 기록 스냅 샷 파일을 소스 파일로 하여 백업하기 위한 백업 서브 유닛과,
    백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 동일한지를 확인하기 위한 확인 서브 유닛과,
    상기 백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 상이할 경우, 백업 파일의 종속 관계를 소스 파일의 종속 관계와 동일하게 수정하기 위한 수정 서브 유닛과,
    상기 백업 파일의 종속 관계와 상기 소스 파일의 종속 관계가 동일할 경우, 상기 백업 파일을 병합시켜 상기 새로운 기록 스냅 샷 파일을 획득하기 위한 병합 서브 유닛과,
    상기 소스 파일을 삭제하기 위한 삭제 서브 유닛을 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  14. 제11항에 있어서,
    상기 제2 판단 유닛은,
    모든 종속되는 파일의 단일 식별 코드를 추출하기 위한 추출 서브 유닛과,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하는지를 판단하기 위한 판단 서브 유닛과,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재할 경우, 앞서 진행한 스냅 샷 생성이 성공한 것으로 확정하기 위한 제1 확인 서브 유닛과,
    상기 단일 식별 코드가 이미 업로드된 데이터베이스의 스냅 샷 리스트에 존재하지 않을 경우, 앞서 진행한 스냅 샷 생성이 실패한 것으로 확정하기 위한 제2 확인 서브 유닛을 포함하는 것을 특징으로 하는, 머신 시스템 디스크 스냅 샷의 생성 장치.
  15. 제11항에 있어서,
    앞서 진행한 스냅 샷 생성이 실패하였을 경우, 앞서 진행한 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일과 현재 스냅 샷 생성에 의해 생성된 재명명 후의 최상층 파일을 제2 스냅 샷 파일로 병합시키기 위한 제2 병합 유닛; 및
    상기 제2 스냅 샷 파일을 파일 관리 서버에 업로드하기 위한 제2 업로드 유닛;을 더 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  16. 제11항에 있어서,
    상기 가상 머신이 턴오프 상태일 경우, 수신된 상기 생성 명령에 응답하여 상기 가상 머신 시스템 디스크 파일의 최상층 파일을 복사하여 제3 스냅 샷 파일을 획득하기 위한 복사 유닛; 및
    상기 제3 스냅 샷 파일을 파일 관리 서버에 업로드하기 위한 제3 업로드 유닛;을 더 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서,
    스냅 샷 롤백 명령을 수신하기 위한 제2 수신 유닛;
    수신된 상기 스냅 샷 롤백 명령에 응답하여 상기 파일 관리 서버에서 상기 스냅 샷 롤백 명령에 적용되는 스냅 샷 파일을 다운로드하기 위한 다운로드 유닛; 및
    다운로드된 스냅 샷 파일이 복수개일 경우, 다운로드된 스냅 샷 파일을 병합시키기 위한 제3 병합 유닛;을 더 포함하는 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  18. 제17항에 있어서,
    상기 제2 수신 유닛은,
    롤백 명령을 선택하는 인터페이스를 표시하기 위한 제1 표시 서브 유닛과,
    상기 롤백 명령에 대한 제1 선택 동작을 수신하기 위한 제1 수신 서브 유닛과,
    수신된 상기 제1 선택 동작에 응답하여 롤백 시간 포인트를 선택하는 인터페이스를 표시하기 위한 제2 표시 서브 유닛과,
    상기 롤백 시간 포인트에 대한 제2 선택 동작을 수신하기 위한 제2 수신 서브 유닛을 포함하고,
    상기 다운로드 유닛은,
    수신된 상기 제2 선택 동작에 응답하여 상기 파일 관리 서버에서 상기 제2 선택 동작과 상호 적응하는 스냅 샷 파일을 다운로드하기 위한 다운로드 서브 유닛을 포함하는, 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  19. 제18항에 있어서,
    상기 가상 머신 시스템 디스크 스냅 샷의 생성 장치 중의 상기 가상 머신은 오픈 소스의 클라우드 컴퓨팅 관리 플랫폼 구조인 OpenStack을 통하여 하드웨어의 가상화 기술인 qemu-kvm에 기반하여 생성된 가상 머신이고,
    상기 가상 머신 시스템 디스크 스냅 샷의 생성 장치 중의 상기 가상 머신의 시스템 디스크 파일 포맷은 qcow2 포맷의 체인 구조를 사용하는, 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
  20. 제19항에 있어서,
    상기 가상 머신 시스템 디스크 스냅 샷의 생성 장치 중의 상기 시스템 디스크 파일의 체인 길이가 4보다 크지 않은 가상 머신 시스템 디스크 스냅 샷의 생성 장치.
KR1020160104236A 2015-10-28 2016-08-17 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 KR101802920B1 (ko)

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
KR20170049375A true KR20170049375A (ko) 2017-05-10
KR101802920B1 KR101802920B1 (ko) 2017-11-29

Family

ID=55285808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160104236A KR101802920B1 (ko) 2015-10-28 2016-08-17 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치

Country Status (4)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216972A1 (ko) * 2017-05-23 2018-11-29 주식회사 엔젠소프트 컨테이너 기술 기반의 시스템 전환 장치 및 방법
KR20210019771A (ko) * 2019-08-13 2021-02-23 건국대학교 산학협력단 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016148193A1 (ja) 2015-03-19 2016-09-22 興人ライフサイエンス株式会社 植物の生長促進や根伸長促進効果且つ付加価値向上効果を有する酵母抽出物
US10860436B2 (en) * 2016-05-02 2020-12-08 Nokia Solutions And Networks Oy Snapshot creation in virtual network environment
CN108234587B (zh) * 2016-12-22 2021-04-16 航天信息股份有限公司 一种基于OpenStack多region镜像资源共享的方法
CN106897119B (zh) * 2017-02-28 2021-04-23 郑州云海信息技术有限公司 一种虚拟化平台中磁盘树优化方法及系统
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 北京金山云网络技术有限公司 主机创建和数据备份方法、装置、电子设备及存储介质
CN110879742B (zh) * 2019-10-15 2023-08-11 平安科技(深圳)有限公司 虚拟机异步创建内部快照方法、装置及存储介质
CN110968399B (zh) * 2019-12-18 2023-09-22 腾讯科技(深圳)有限公司 一种虚拟机重装方法、装置和计算机可读存储介质
US20220121532A1 (en) * 2020-10-16 2022-04-21 Vmware, Inc. Fault-tolerant uploading of data to a distributed storage system
CN112199162B (zh) * 2020-10-16 2023-02-28 济南浪潮数据技术有限公司 基于虚拟化磁盘双活容灾的磁盘快照方法、装置及介质
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 杭州优云科技有限公司 一种虚拟机快照管理方法及装置

Family Cites Families (16)

* 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 計算機システム及びリモートレプリケーション方法
US9135260B2 (en) * 2007-10-11 2015-09-15 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
US8943281B1 (en) * 2008-02-19 2015-01-27 Symantec Corporation Method and apparatus for optimizing a backup chain using synthetic backups
JP5156518B2 (ja) * 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
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
TW201327391A (zh) * 2011-12-27 2013-07-01 Hon Hai Prec Ind Co Ltd 虛擬機應用系統及方法
JP2014006845A (ja) * 2012-06-27 2014-01-16 Fujitsu Ltd 管理方法,管理装置および管理プログラム
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216972A1 (ko) * 2017-05-23 2018-11-29 주식회사 엔젠소프트 컨테이너 기술 기반의 시스템 전환 장치 및 방법
KR20210019771A (ko) * 2019-08-13 2021-02-23 건국대학교 산학협력단 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101802920B1 (ko) 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치
US9354987B2 (en) Systems and methods for out-of-band backup and restore of hardware profile information
JP5772127B2 (ja) 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
US9075811B2 (en) Cloud information migration systems and methods
US7606842B2 (en) Method of merging a clone file system with an original file system
US8738883B2 (en) Snapshot creation from block lists
US8407693B2 (en) Managing package dependencies
KR102047216B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US8239662B1 (en) Network based operating system across devices
US20120192175A1 (en) Method and System to Accelerate Copying of Virtual Machine Images
JP2020528618A (ja) 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成
US9244774B2 (en) Storage device failure recovery system
US9875041B1 (en) Synchronized change tracking in data storage volumes
US10761941B1 (en) Changed blocks tracking methods and systems for writable snapshots
JP5665889B2 (ja) サブバージョンリポジトリをバックアップする方法及び装置
US9430222B2 (en) Controlling a running application for live scene graph editing
US20150269029A1 (en) Immediate Recovery of an Application from File Based Backups
US8826264B1 (en) Non-disruptive upgrade of applications
US20080270480A1 (en) Method and system of deleting files from a remote server
GB2515598A (en) Information processing apparatus and information processing method
US20240111642A1 (en) Lossless failover for data recovery
US11886889B2 (en) Managing configurations of system services running in a cluster of hosts by managing lifecycle of virtualization software
CN117648198B (zh) 应用适配方法及装置、设备及存储介质
KR102039593B1 (ko) 서비스 관리를 위한 장치 및 방법
US10956399B1 (en) Transaction pipelining in a journaled database

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant