KR20180087278A - 가상 머신의 신속한 복원 방법, 장치 및 시스템 - Google Patents
가상 머신의 신속한 복원 방법, 장치 및 시스템 Download PDFInfo
- Publication number
- KR20180087278A KR20180087278A KR1020187015545A KR20187015545A KR20180087278A KR 20180087278 A KR20180087278 A KR 20180087278A KR 1020187015545 A KR1020187015545 A KR 1020187015545A KR 20187015545 A KR20187015545 A KR 20187015545A KR 20180087278 A KR20180087278 A KR 20180087278A
- Authority
- KR
- South Korea
- Prior art keywords
- host
- backup
- write request
- read
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 28
- 230000003213 activating effect Effects 0.000 claims abstract description 12
- 238000011084 recovery Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 241000720945 Hosta Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 가상 머신의 신속한 복원 방법, 장치 및 시스템을 개시한다. 당해 가상 머신의 신속한 복원 방법은, 제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 단계; 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 제1 호스트의 가상 머신을 가동시키는 단계; 백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 제2 호스트에 송신하는 단계; 제2 호스트는 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 지정 데이터를 백업 호스트로 송신하는 단계; 및 백업 호스트에 의해 지정 데이터를 호출측으로 송신하는 단계를 포함한다.
Description
본 출원은 2016년 12월 28일에 출원되고, 중국 출원번호가 201611240016.5 이고 발명 명칭이 "가상 머신의 신속한 복원 방법 및 장치"인 중국 특허 출원을 기초로 제출한 것으로, 해당 우선권을 주장한다.
기술 분야
본 발명은 컴퓨터 가상화 기술 분야에 관한 것으로, 특히 가상 머신의 신속한 복원 방법, 장치 및 시스템에 관한 것이다.
가상화 기술은 이미 IaaS (Infrastructure as a Service, 즉 서비스형 인프라)의 핵심 기능 중의 하나가 되었다. 가상화 기술은 가상 머신 모니터 VMM (Virtual Machine Monitor) 소프트웨어에 의해, 물리적 머신의 CPU, 메모리, I/O 등 설비에 대한 가상화를 진행하고, 하나의 물리적 머신 중에서 복수 개의 가상 머신 VM (Virtual Machine)을 가상화시키고, 각 VM는 모두 게스트 운영 체제 (Guest OS, 클라이언트)를 실행한다. VMM는 하나의 호스트 운영 체제 (Dom0 또는 Host OS, 호스트)와 함께, 동일한 물리적 머신 상의 가상 머신 사이에 서로 격리되어 있고, 다운 타임이 필요없는 전제하에서 VM를 하나의 물리적 머신으로부터 온라인 상에서 다른 물리적 머신으로 이전하도록 서포트한다 (공유 스토리지를 기반으로 하는 온라인 이전 및 로컬 스토리지를 기반으로 하는 온라인 이전을 포함). 가상화 기술은 VM 기능 및 성능 격리, VM 온라인 이전을 기반으로 하는 부하 균형과 시스템 장애 대응기능, 애플리케이션 이식성, 자원 활용도 향상, 및 유지 난이성 및 비용 절감 등 면에서 장점을 갖기에, 각종 대형 데이터 센터와 클라우드 컴퓨팅 환경 IaaS 플랫폼 중에 광범위하게 응용되고 있다. 일반적인 애플리케이션에는 고성능 컴퓨팅, 대용량 데이터 처리, Web 트랜잭션 처리 등이 있다.
현재, KVM (Kernel-based Virtual Machine, 시스템 가상화 모듈)을 기반으로 하는 클라우드 스토리지 기술안에 있어서, 가상 머신의 읽기 쓰기 요청은 호스트의 로컬 스토리지에 직접 적용된다. 가상 머신이 위치한 호스트의 다운 타임 또는 기타 고장으로 인해 계속하여 서비스를 제공할 수 없을 시, 가상 머신이 액세스할 수 있는 사용가능 스토리지가 없기에, 가상 머신이 신속하게 복원되지 못하고, 가상 머신 상의 조작 중단이 초래하게 된다.
본 발명은 가상 머신의 신속한 복원 방법, 장치 및 시스템을 제공하여, 종래의 가상 머신이 위치한 호스트가 다운 타임될 시, 가상 머신이 신속하게 복원되지 못하는 과제를 해결한다.
본 발명에서 해결하고자 하는 기술적 과제는 이하의 기술적 해결수단을 이용하고 있다.
제1 양태에 있어서, 본 발명은 가상 머신의 신속한 복원 방법을 제공하고, 당해 방법은,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 단계;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 단계;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 단계;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 단계; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 단계를 포함한다.
제2 양태에 있어서, 본 발명은 또한 가상 머신의 신속한 복원 장치를 제공하고, 상기 장치는,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 데이터 백업 유닛;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 백업 머신 가동 유닛;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 요청 판단 유닛;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 제1 처리 유닛; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 데이터 송신 유닛을 포함한다.
제3 양태에 있어서, 본 발명은 또한 가상 머신의 신속한 복원 시스템을 제공하고, 상기 시스템은, 제1 호스트, 제2 호스트 및 백업 호스트를 포함하고, 상기 제1 호스트, 제2 호스트 및 상기 제3 호스트에는 각각 프로세서가 설치되어 있고, 상기 프로세서는,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 단계;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 단계;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 단계;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 단계; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 단계를 수행한다.
본 발명은 종래 기술에 비해 다음과 같은 장점을 갖고 있다. 본 발명에서 제공하는 가상 머신의 신속한 복원 방법, 장치 및 시스템에 있어서, 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트 상에서 제1 호스트 의 가상 머신이 가동되고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 백업 호스트의 가상 머신이 수신한 읽기 쓰기 요청을 가상 머신 백업 데이터를 갖는 제2 호스트에 전송하여 수행시키어, 가상 머신의 스토리지를 갖지 않는 상황 하에서의 신속한 이전 및 고장 복원을 실현할 수 있고, 공유 스토리지를 필요로 하지 않으며, 가상 머신의 러버스트를 향상시키고,사용가능한 스토리지가 없음으로 인한 가상 머신의 액세스가 가상 머신 상의 조작 중단을 초래하는 현상의 발생을 피할 수 있도록 한다.
이하, 도면 및 실시예와 결합하여, 본 발명을 상세히 설명한다. 도면에 있어서,
도1은 본 발명의 제1 실시예 중의 가상 머신의 신속한 복원 방법의 흐름도이다.
도2는 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S1의 구체적인 흐름도이다.
도3은 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S3의 구체적인 흐름도이다.
도4는 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S4의 구체적인 흐름도이다.
도5는 본 발명의 제2 실시예 중의 가상 머신의 신속한 복원 장치의 원리 블록도이다.
도6은 본 발명의 제3 실시예 중의 가상 머신의 신속한 복원 장치의 원리 블록도이다.
도7은 본 발명의 제3 실시예 중의 태블릿 PC의 원리 블록도이다.
도1은 본 발명의 제1 실시예 중의 가상 머신의 신속한 복원 방법의 흐름도이다.
도2는 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S1의 구체적인 흐름도이다.
도3은 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S3의 구체적인 흐름도이다.
도4는 도1에 도시된 가상 머신의 신속한 복원 방법 중의 단계 S4의 구체적인 흐름도이다.
도5는 본 발명의 제2 실시예 중의 가상 머신의 신속한 복원 장치의 원리 블록도이다.
도6은 본 발명의 제3 실시예 중의 가상 머신의 신속한 복원 장치의 원리 블록도이다.
도7은 본 발명의 제3 실시예 중의 태블릿 PC의 원리 블록도이다.
본 발명의 기술적 특징, 목적 및 효과를 더욱 명확히 이해하도록 하기 위해, 이하 도면을 참고하여 상세히 본 발명의 구체적인 실시형태를 설명한다.
제1 실시예
도1은 본 실시예 중의 가상 머신의 신속한 복원 방법을 도시한다. 도1에 도시된 바와 같이, 당해 가상 머신의 신속한 복원 방법은 이하의 단계를 포함한다.
S1: 제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트 상에서 백업되도록 한다. 대응되게, 제2 호스트 상의 읽기 쓰기 요청도 제1 호스트 상에서 백업된다. 스토리지 peer 쌍을 형성한 제1 호스트의 가상 머신 및 제2 호스트의 가상 머신은 서로 독립되나, 가상 머신 상에서 수행되는 읽기 쓰기 요청은 상호적으로 백업된다.
S2: 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시킨다. 제1 호스트의 다운 타임 또는 파워 오프는, 제1 호스트기 계속하여 서비스를 제공할 수 없는 두 종류의 상태로서, 다른 정상적으로 작동하는 하나의 기계 상에서 제1 호스트의 가상 머신을 가동시켜, 제1 호스트의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 보증할 수 있다. 여기서, 파워 오프는 호스트가 파워가 오프되어 컴퓨터가 철저히 오프된 상태이다. 다운 타임은, 호스트가 엄중한 시스템 오류로부터 복원될 수 없거나, 또는 시스템 하드웨어에 문제가 발생하여 시스템이 장시간 동안 응답하지 않는 상태를 가리킨다. 따라서, 백업 호스트는 그룹 중의 정상적으로 작동하는 하나의 예비 기계로서, 백업 호스트의 하드웨어 배치는 제1 호스트 상의 모든 가상 머신을 작동시킬 수 있는 수요를 만족시켜, 제1 호스트의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 한다. 이하, 백업 호스트 상에서 가동되는 제1 호스트의 가상 머신을 백업 호스트의 가상 머신으로 칭한다.
S3: 백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신한다. 제2 호스트가 백업 호스트로의 전체 데이터의 백업을 완료할 시, 백업 호스트 상에서 읽기 쓰기 요청을 수행하고, 읽기 쓰기 요청을 제2 호스트에 송신할 필요가 없는 바, 그 원인은, 이때 제1 호스트의 가상 머신의 이전이 완료되고, 가상 머신의 복원이 안정적이기 때문이다. 제2 호스트가 백업 호스트의 전체 데이터의 백업을 완료할 시, 제2 호스트와 백업 호스트에 의해 새로운 스토리지 peer 쌍을 형성하여, 제2 호스트의 가상 머신과 백업 호스트의 가상 머신은 데이터 백업을 실현할 수 있도록 하고, 제2 호스트와 백업 호스트의 다운 타임 또는 기타 고장이 발생하여 작동하지 못할 경우, 그 위의 가상 머신이 데이터에 액세스할 수 없는 것을 피할 수 있도록 한다.
S4: 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트로 송신하고; 제2 호스트는 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 지정 데이터를 백업 호스트로 송신하며; 백업 호스트는 지정 데이터를 호출측으로 송신한다. 다시 말해서, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 경우, 제1 호스트의 가상 머신은 백업 호스트 중으로 완전히 이전되지 못하고, 백업 호스트는 그 위에서 가동되는 가상 머신이 수신한 읽기 쓰기 요청을 처리할 수 없으며, 읽기 쓰기 요청을 가상 머신 데이터가 백업된 제2 호스트로 전송하여 처리시키어, 신속한 복원 가상 머신을 실현하고, 가상 머신 상의 조작 중단을 피할 수 있도록 한다.
S5: 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 백업 호스트 상에서 읽기 쓰기 요청을 수행하고, 백업 호스트의 가상 머신 상의 읽기 쓰기 요청을 제2 호스트에 백업시킨다. 구체적으로, 백업 호스트 상에서 읽기 쓰기 요청을 수행하는 과정과 제2 호스트 상에서 읽기 쓰기 요청을 수행하는 과정은 같으며, 다시 말해서 쓰기 요청에 따라 쓰기 대기 데이트를 백업 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득한다. 다시 말해서, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 백업 호스트는 가상 머신을 가동시켜 읽기 쓰기 요청을 수신할 시, 읽기 쓰기 요청은 직접 백업 호스트의 로컬 디스크에 적용되기에, 읽기 쓰기 요청을 제2 호스트 상에 이전시켜 수행하지 않아도 되지만, 백업 호스트 상의 가상 머신 상의 읽기 쓰기 요청은 제2 호스트 상에 백업되며, 그 백업 과정은 단계 S1과 같다.
S6: 백업 호스트는 지정 데이터를 호출측으로 송신한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 백업 호스트 상에서 읽기 쓰기 요청을 수행하고, 읽기 요청에 대응되는 지정 데이터를 획득하여 호출측으로 송신한다. 또는, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트로 송신하며, 제2 호스트 상에서 읽기 쓰기 요청을 수행하며, 읽기 요청에 대응하는 지정 데이터를 획득하여 호출측으로 송신한다.
본 실시예에서 제공하는 가상 머신의 신속한 복원 방법에 있어서, 제1 호스트가 다운 타임, 파워 오프 또는 기타 계속하여 서비스를 제공하지 못할 경우, 백업 호스트 상에서 제1 호스트의 가상 머신을 가동시킬 수 있으며; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 백업 호스트의 가상 머신이 수신한 읽기 쓰기 요청을 가상 머신 백업 데이터를 갖는 제2 호스트 상에 전송하여 수행시키며, 가상 머신의 스토리지를 갖지 않는 상황 하에서의 신속한 이전 및 고장 복원을 실현할 수 있고, 공유 스토리지를 필요로 하지 않으며, 가상 머신의 러버스트 (Robust)를 향상시키고, 사용가능한 스토리지가 없음으로 인한 가상 머신의 액세스가 가상 머신 상의 조작 중단을 초래하는 현상의 발생을 피할 수 있도록 한다.
이하, 구체적인 실시형태와 결합하여, 당해 가상 머신의 신속한 복원 방법을 설명한다. 구체적인 실시형태에 있어서, 당해 가상 머신의 신속한 복원 방법은 이하의 단계를 포함한다.
S1: 제1 호스트 (A)와 제2 호스트 (B)는 스토리지 peer 쌍을 형성하여, 제1 호스트 (A)의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트 (B)상에서 백업되도록 한다. 대응되게, 제2 호스트 (B)의 가상 머신 상의 읽기 쓰기 요청도 제1 호스트 (A) 상에서 백업된다. 제1 호스트 (A) 상의 가상 머신과 제2 호스트 (B) 상의 가상 머신은 서로 독립되나, 가상 머신 데이터는 상호적으로 백업되여, 제1 호스트 (A) 및 제2 호스트 (B)가 다운 타임 또는 기타 고장으로 인해 정상적으로 작동할 수 없는 것을 피하도록 하고, 가상 머신이 신속하게 복원할 수 없어 작업 중단이 초래하는 것을 피하도록 한다. 도2에 도시된 바와 같이, 단계 S1는 구체적으로 이하의 단계를 포함한다.
S11: 제1 호스트 (A)의 게스트 운영 체제(GuestOS)는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼(ring buffer)에 저장한다. 여기서, 게스트 운영 체제(GuestOS)는 제1 호스트 (A)의 가상 머신 상에서 작동하는 운영 체제이다. 링 버퍼(ring buffer)는 통신 프로그램에서, 통신에서 송수신되는 데이터를 저장하는데 사용되는 데이터 구조로서, 통신 프로그램으로 버퍼에 대한 상호 배타적인 액세스를 제공할 수 있다.
S12: 제1 호스트 (A)의 Qemu 모듈은 링 버퍼(ring buffer)로부터 읽기 쓰기 요청을 획득한다. 여기서, Qemu 모듈은 제1 호스트의 호스트 운영 체제 (Host OS)에 설치되고, 읽기 쓰기 요청은 미처리된 읽기 쓰기 요청이다. 여기서, Qemu는 단독으로 작동될 수 있는 소프트웨어로서, 기계를 시뮬레이션하는데 사용되며, 뛰어난 영활성과 이식성을 갖는다. Qemu는 주요하게 특수한 “재 컴파일러”에 의해, 특정 프로세서용으로 작성된 이진 코드를 다른 것으로 변환시키며, 예를 들어 PPCmac 상에서 MIPS 코드를 작동시키거나, 또는 X86 PC 상에서 ARM 코드를 작동시킨다. Qemu 모듈 중에서 IO 경로는 크게 virtio 백엔드 (a), 통용 블록 장치 레이어 (b) 및 구동 레이어(c)와 같은 3개의 층으로 나뉘고, virtio 백엔드 (a) 및 통용 블록 장치 레이어 (b)의 인터페이스 부분에 일부 코드를 삽입하여, 읽기 쓰기 요청을 제2 호스트 (B) 에 전송하여 백업시키는 것을 실현한다.
S13: 제1 호스트 (A)의 Qemu 모듈은 당해 요청에 따라, 제1 호스트 (A)의 로컬 디스크 상으로부터 지정 데이터를 획득하거나; 또는 제1 호스트 (A)의 Qemu 모듈은 쓰기 요청에 따라, 쓰기 대기 데이터를 제1 호스트 (A)의 로컬 디스크 상에 저장한다.
S14: 제1 호스트 (A)의 Qemu 모듈은 쓰기 요청을 호스트 운영 체제의 Sync Orig 모듈로 송신한다. 여기서, Sync Orig 모듈은 제1 호스트 (A)의 호스트 운영 체제(Host OS) 상에 설치되는바, 제1 호스트 (A)의 읽기 쓰기 요청 전송 모듈이다.
S15: 호스트 운영 체제의 Sync Orig 모듈은 쓰기 요청을 제2 호스트 (B)의 Sync Term 모듈로 송신한다. 제1 호스트 (A)의 Sync Orig 모듈과 제2 호스트 (B)의 Sync Term 모듈 사이는 네트워크를 통해 연결된다.
S16: 제2 호스트의 Sync Term 모듈은 쓰기 요청을 수신하고, 쓰기 요청에 대응하는 쓰기 대기 데이터를 제2 호스트의 로컬 디스크 상에 저장하여, 제1 호스트 (A)의 가상 머신 상의 쓰기 요청이 제2 호스트 (B)에서 백업되는 것을 실현한다. Sync Term 모듈은 제2 호스트 (B)의 호스트 운영 체제(Host OS) 상에 설치되는바, 제2 호스트 (B)의 읽기 쓰기 요청 수신 모듈이다.
제1 호스트 (A)와 제2 호스트 (B)에 의해 형성된 스토리지 peer 쌍의 의사 (擬似) 코드는 다음과 같다.
Host A config file:
PeerID = 1
Host B config file:
PeerID = 1
제1 호스트 (A)와 제2 호스트 (B)가 가동된 후, 각각 클라우드를 향해 자신의 PeerID를 서버에 보고하며, 서버는 PeerID가 같은 두 개의 호스트를 스토리지 Peer 쌍으로 등록한다.
If(hostA.peerId == hostB.peerId)
{ Peer peer = new Peer(hostA, hostB);
peer.add(peer); }
제1 호스트 (A)의 가상 머신 상의 읽기 쓰기 요청을 제2 호스트 (B) 상에 백업하는 의사 코드는 다음의 것을 포함한다: 제1 호스트 (A)의 Qemu 모듈은 쓰기 요청을 수신한 후, 쓰기 요청에 대응하는 쓰기 대기 데이터를 제1 호스트 (A)의 로컬 디스크 상에 저장하는 이외에, 또한 쓰기 요청에 대응하는 쓰기 대기 데이터를 제1 호스트 (A)의 호스트 운영 체제(HostOS)의 공유 메모리 중에 저장한다. 이어서,당해 쓰기 요청을 위해 하나의 sequence 번호를 생성시키고, 쓰기 요청의 수정이 필요한 sector 개시 번호 및 sector 개수를 request 중에 기입하며, 호스트 운영 체제 (Host OS)의 Sync Orig 모듈에 넘겨 처리시킨다. 호스트 운영 체제 (Host OS)는 request를 수신하고, request와 공유 메모리 중의 쓰기 대기 데이터 data에 의해 하나의 TCP 데이터 패킷을 조성하여, 제2 호스트 (B)의 호스트 운영 체제 (HostOS)로 송신한다. 제2 호스트 (B)의 호스트 운영 체제 (HostOS)는 데이터 패킷 중의 쓰기 대기 데이터 data를 request 지정의 sector 중에 기입하여, 호스트 운영 체제(Host OS)의 가상 머신의 쓰기 요청이 호스트 운영 체제 (Host OS_B)에서 백업되는 것을 실현한다.
S2: 제1 호스트 (A)가 다운 타임될 경우, 백업 호스트 (C)는 제1 호스트 (A)의 가상 머신을 가동시킨다. 본 실시예에 있어서, 제1 호스트 (A)가 다운 타임 또는 계속하여 서비스를 제공할 수 없을 시, 기타 정상적으로 작동하는 기계 상에서 제1 호스트 (A)의 가상 머신을 가동시켜, 제1 호스트 (A)의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 보증할 수 있다. 제2 호스트 (B) 상에 일정한 수량의 가상 머신이 있기에, 제1 호스트 (A)의 가상 머신을 제2 호스트 (B)로 이전시켜 복원할 시, 제2 호스트 (B)의 로컬 디스크 상에서 백업된 제1 호스트 (A)의 가상 머신 데이터를 즉시 획득할 수 있지만, 제2 호스트 (B)의 가상 머신의 액세스 부하가 과도하게 높아지고, 제2 호스트 (B)의 외부에 제공하는 서비스의 기능에 영향을 주게 된다. 여기서, 백업 호스트 (C)는 그룹 중의 정상적으로 작동하는 하나의 예비 기계로서, 백업 호스트 (C)의 하드웨어 배치는 제1 호스트 (A) 상의 모든 가상 머신을 작동시킬 수 있는 수요를 만족시켜, 제1 호스트 (A)의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 한다. 이하, 백업 호스트 (C) 상에서 가동되는 제1 호스트 (A)의 가상 머신을 백업 호스트 (C)의 가상 머신으로 칭한다.
S3: 백업 호스트 (C) 상에서 가동하는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화의 완료 여부를 판단한다. 구체적으로, 백업 호스트 (C)는 제2 호스트가 송신한 동기화 완료 통지를 제공할지 여부를 판단하고, 동기화 완료 통지를 수신할 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 완료되었다고 인정하고; 반대일 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료라고 판단한다. 도3에 도시된 바와 같이, 단계 S3는 이하의 단계를 포함한다.
S31: 제2 호스트 (B)는 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단한다. 다시 말해서 백업 호스트 (C) 상에서 제1 호스트 (A)의 가상 머신을 가동시킨 후, 제2 호스트 (B)는 실시간으로 현재 네트워크 처리율, 디스크 액세스 등 현재 작동 지표를 검출하고, 각 항의 현재 작동 지표가 모두 사전 설정 조건에 달한 후, 단계 S32를 수행한다.
S32: "예"일 경우, 제2 호스트 (B) 상에 백업된 제1 호스트 (A)의 가상 머신 상의 읽기 쓰기 요청 백업 호스트 (C) 상에 동기화시키며, 다시 말해서 제2 호스트 (B)의 가상 머신 데이터를 백업 호스트 (C) 상에 동기화시킨다.
S33: 제2 호스트 (B) 상의 동기화되지 않은 데이터의 존재 여부를 판단한다. 제2 호스트 (B)는 또한 동기화되지 않은 데이터가 존재하는지 여부를 판단하여, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화의 완료 여부를 확정한다.
S34: 존재할 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료인 상태이며, 동기화 되지 않은 데이터를 백업 호스트 (C)에 송신하여 백업시킨다.
S35: 존재하지 않을 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 완료되었으며, 백업 호스트 (C)에 동기화 완료 통지를 송신한다.
또한, 단계 S3에 있어서, 백업 호스트 (C)의 게스트 운영 체제 (GuestOS)는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼 (ring buffer)에 저장한다.
S4: 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트 (B)에 송신하며; 제2 호스트 (B)는 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 (B) 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 지정 데이터를 백업 호스트 (C)로 송신하며; 백업 호스트 (C)는 지정 데이터를 호출측으로 송신한다. 도4에 도시된 바와 같이, 단계 S4는 구체적으로 이하의 단계를 포함한다.
S41: 백업 호스트 (C)의 Qemu 모듈은 링 버퍼(ring buffer)로부터 읽기 쓰기 요청을 획득한다.
S42: 백업 호스트 (C)의 Qemu 모듈은 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신한다.
S43: Sync Orig 모듈은 읽기 쓰기 요청을 제2 호스트 (B)의 Sync Term 모듈로 송신한다.
S44: 제2 호스트 (B)의 Sync Term 모듈은 읽기 쓰기 요청을 수신하고, 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 (B)의 로컬 디스크 상에 저장한다.
S45: 제2 호스트 (B)의 Sync Term 모듈은 읽기 요청에 따라, 제2 호스트 (B)의 로컬 디스크로부터 지정 데이터를 획득하고, 지정 데이터를 백업 호스트 (C)의 Sync Orig 모듈로 송신한다.
S46: 백업 호스트의 Sync Orig 모듈은 지정 데이터를 수신하고, 지정 데이터를 백업 호스트 (C)의 Qemu 모듈로 송신한다.
S47: 백업 호스트 (C)의 Qemu 모듈은 지정 데이터를 백업 호스트 (C)의 게스트 운영 체제(GuestOS)로 송신하여, 호출측으로 송신한다.
백업 호스트 (C)의 가상 머신의 읽기 쓰기 요청을 제2 호스트 (B)에 전송하여 처리하는 의사 코드는 다음과 같다.
백업 호스트 (C)의 Qemu 모듈이 가동하기 전, 배치 파일에서, remoteIO를 True로 표기한다.
백업 호스트 (C)의 Qemu 모듈이 가동될 시, remoteIO= True를 판독하고, 이 후 수신된 각 IO 요청 (다시 말해서, 읽기 쓰기 요청)을 로컬 디스크 액세스로 하지 않고, 공유 메모리를 통해 Sync Orig 모듈에 통지하여, Sync Orig 모듈에 의해 제2 호스트 (B)로 전송한다.
제2 호스트 (B)의 Sync Term 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 쓰기 요청을 수신한 후, 쓰기 데이터를 백업 호스트 (C)의 로컬 디스크에 저장시킨다.
제2 호스트 (B)의 Sync Term 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 읽기 요청을 수신한 후, 지정 sector로부터 지정 데이터를 읽고, 그 후, TCP를 통해 백업 호스트 (C)의 Sync Orig 모듈로 송신한다.
백업 호스트 (C)의 Sync Orig 모듈은 B머신에 의해 피드백된 지정 데이터를 수신한 후, 당해 피드백된 지정 데이터를 공유 메모리 중에 기입하고, TCP를 통해 메시지를 백업 호스트 (C)의 Qemu 모듈로 통지한다.
백업 호스트 (C)의 Qemu 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 TCP 메시지 통지를 수신한 후, 지정 공유 메모리 중으로부터 지정 데이터를 획득하여, 호출측으로 피드백한다.
가상 머신이 백업 호스트 상에서 안정된 후, 제2 호스트 (B)에서 백업 호스트 (C)로의 데이터 동기화를 가동시킨다. 가상 머신이 스토리지를 갖지 않는 상황 하에서 백업 호스트 (C)로의 이전을 완료한 후, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화를 가동시키는 과정의 의사 코드는 다음과 같다.
제2 호스트 (B)의 Sync Term 모듈은 로컬 디스크의 qcow2 파일의 sector 기입 상황을 분석하는 것을 통해, 기입된 sector를 하나씩 백업 호스트 (C)의 Sync Orig 모듈로 송신한다. 백업 호스트 (C)의 Sync Orig 모듈은 제2 호스트 (B)의 Sync Term 모듈이 송신한 동기화 sector 데이터를 수신한 후, 데이터 내용을 로컬 디스크의 qcow2 파일 중에 기입한다.
제2 호스트 (B) 상에서 수행되는 의사 코드는 다음과 같다.
For(every writen sector)
{ Send_to_hostC(sectorIdx, sector_data); }
백업 호스트 (C) 상에서 수행되는 의사 코드는 다음과 같다.
For(sector_data receive from hostB)
{ Write(qcow2file, sectorIdx, sector_data); }
백업 호스트 (C)는 전체 데이터 동기화가 완료된 후, 가상 머신의 읽기 쓰기 요청의 복원을 백업 호스트 (C)의 로컬 디스크 상에서 수행하는 바, 제2 호스트 (B)로 전송하지는 않는다. 이때, 제2 호스트 (B) 상에서 수행되는 의사 코드는 다음과 같다.
If(every_writen_sector_send == true)
{ Send_to_hostC(all_data_synchronized = true); }
백업 호스트 (C) 상에서 수행되는 의사 코드는 다음과 같다.
If(Received_msg(hostB, all_data_synchronized = true))
{ Qemu.remoteIO = False; }
제2 실시예
도5는 본 실시예 중의 가상 머신의 신속한 복원 장치를 나타낸다. 도5에 도시된 바와 같이, 당해 가상 머신의 신속한 복원 장치는 데이터 백업 유닛 (10), 백업 머신 가동 유닛 (20), 요청 판단 유닛 (30), 제1 처리 유닛 (40) 및 제2 처리 유닛 (50)을 포함한다.
데이터 백업 유닛 (10)은, 제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트에서 백업되도록 한다. 상응하게, 제2 호스트 상의 읽기 쓰기 요청도 제1 호스트 상에서 백업된다. 스토리지 peer 쌍을 형성한 제1 호스트의 가상 머신 및 제2 호스트의 가상 머신은 서로 독립적이나, 가상 머신 상에서 수행되는 읽기 쓰기 요청은 상호적으로 백업된다.
백업 머신 가동 유닛 (20)은, 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 제1 호스트의 가상 머신을 가동시킨다. 제1 호스트의 다운 타임 또는 파워 오프는 제1 호스트기 계속하여 서비스를 제공할 수 없는 두 종류의 상태로서, 다른 정상적으로 작동하는 하나의 기계 상에서 제1 호스트의 가상 머신을 작동시켜, 제1 호스트의 가상 머신에 의해 제공되는 서비스가 신속히 복원도록 보증할 수 있다. 여기서, 파워 오프는 호스트가 파워 오프되어, 컴퓨터가 철저히 오프된 상태이다. 다운 타임은 호스트가 엄중한 시스템 오류로부터 복원될 수 없거나, 또는 시스템 하드웨어에 문제가 발생하여 시스템이 장시간 동간 응답하지 않는 상태를 가리킨다. 따라서, 백업 호스트는 그룹 중의 정상적으로 작동하는 하나의 예비 기계로서, 백업 호스트의 하드웨어 배치는 제1 호스트 상의 모든 가상 머신을 작동시킬 수 있는 수요를 만족시켜, 제1 호스트의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 한다. 이하, 백업 호스트 상에서 가동되는 제1 호스트의 가상 머신을 백업 호스트의 가상 머신으로 칭한다.
요청 판단 유닛 (30)은, 백업 호스트 상에서 가동되는 가상 머신에 의해 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트에 송신한다. 제2 호스트에서 백업 호스트로의 전체 데이터의 백업이 완료될 시, 백업 호스트 상에서 읽기 쓰기 요청을 수행하며, 읽기 쓰기 요청을 제2 호스트에 송신할 필요가 없는 바, 그 원인은, 이때 제1 호스트의 가상 머신의 이전이 완료되고, 가상 머신의 복원이 안정적이기 때문이다. 제2 호스트가 백업 호스트의 전체 데이터의 백업을 완료할 시, 제2 호스트와 백업 호스트에 의해 새로운 스토리지 peer 쌍을 형성하여, 제2 호스트의 가상 머신과 백업 호스트의 가상 머신은 데이터 백업을 실현할 수 있도록 하고, 제2 호스트와 백업 호스트의 다운 타임 또는 기타 고장이 발생하여 작동하지 못할 경우, 그 위의 가상 머신이 데이터에 액세스할 수 없는 것을 피할 수 있도록 한다.
제1 처리 유닛 (40)은, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트로 송신하고; 제2 호스트는 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하며 지정 데이터를 백업 호스트로 송신하며; 백업 호스트는 지정 데이터를 호출측으로 송신한다. 다시 말해서 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 제1 호스트의 가상 머신은 백업 호스트 중에 완전히 이전되지 못하고, 백업 호스트는 그 위에서 가동되는 가상 머신에 의해 수신한 읽기 쓰기 요청을 처리할 수 없으며, 읽기 쓰기 요청을 가상 머신 데이터가 백업된 제2 호스트로 송신하여 처리시키며, 신속한 복원 가상 머신을 실현하고, 가상 머신 상의 작동 중단을 피할 수 있도록 한다.
제2 처리 유닛 (50)은 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 시, 백업 호스트 상에서 읽기 쓰기 요청을 수행하고, 백업 호스트의 가상 머신 상의 읽기 쓰기 요청을 제2 호스트에서 백업시킨다. 구체적으로, 백업 호스트 상에서 수행되는 읽기 쓰기 요청의 과정과 제2 호스트 상에서 수행되는 읽기 쓰기 요청의 과정은 같으며, 다시 말해서 쓰기 요청에 따라 쓰기 대기 데이터를 백업 호스트에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 백업 호스트는 가상 머신을 가동시켜 읽기 쓰기 요청을 수신할 시, 읽기 쓰기 요청을 백업 호스트의 로컬 디스크에 직접 저장하고, 읽기 쓰기 요청을 제2 호스트에 전송하여 수행하지 않아도 되지만, 백업 호스트 상의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트로 백업될 때, 그 백업 과정과 데이터 백업 유닛 (10)의 데이터 백업 과정은 같다.
데이터 송신 유닛 (60)은 백업 호스트로 하여금 지정 데이터를 호출측으로 송신하도록 한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 시, 백업 호스트 상에서 읽기 쓰기 요청을 수행하고, 읽기 요청에 대응하는 지정 데이터를 획득하여 호출측으로 송신한다. 또는, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트로 송신하며, 제2 호스트 상에서 읽기 쓰기 요청을 수행하고, 읽기 요청에 대응하는 지정 데이터를 획득하여 호출측으로 송신한다.
본 실시예에서 제공하는 가상 머신의 신속한 복원 장치에 있어서, 제1 호스트가 다운 타임, 파워 오프 또는 기타 계속하여 서비스를 제공하지 못할 경우, 백업 호스트 상에서 제1 호스트의 가상 머신을 가동시킬 수 있으며; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 백업 호스트의 가상 머신이 수신한 읽기 쓰기 요청을 가상 머신 백업 데이터를 갖는 제2 호스트 상에 전송하여 수행시키며, 가상 머신의 스토리지를 갖지 않는 상황 하에서의 신속한 이전 및 고장 복원을 실현할 수 있고, 공유 스토리지를 필요로 하지 않으며, 가상 머신의 러버스트 (Robust)를 향상시키고, 사용가능한 스토리지가 없음으로 인한 가상 머신의 액세스가 가상 머신 상의 조작 중단을 초래하는 현상의 발생을 피할 수 있도록 한다.
이하, 구체적인 실시형태와 결합하여, 당해 가상 머신의 신속한 복원 장치를 설명한다. 구체적인 실시형태에 있어서, 당해 가상 머신의 신속한 복원 장치는 다음의 것을 포함한다.
데이터 백업 유닛 (10)은, 제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트에서 백업되도록 한다. 대응되게, 제2 호스트 상의 읽기 쓰기 요청도 제1 호스트 상에서 백업된다. 스토리지 peer 쌍을 형성한 제1 호스트의 가상 머신 및 제2 호스트의 가상 머신은 서로 독립적이나, 가상 머신 상에서 수행되는 읽기 쓰기 요청은 상호적으로 백업되어, 제1 호스트 (A) 및 제2 호스트 (B)가 다운 타임 또는 기타 고장으로 인해 정상적으로 작동하지 못할 시, 가상 머신이 신속히 복원되지 못하여 그 것이 제공하는 작동 중단을 초래하는 것을 피할 수 있도록 한다. 구체적으로, 데이터 백업 유닛 (10)은 다음의 것을 포함한다.
제1 호스트 (A)의 게스트 운영 체제(GuestOS)는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼(ring buffer)에 저장한다. 여기서, 게스트 운영 체제 (GuestOS)는 제1 호스트 (A)의 가상 머신 상에서 작동하는 운영 체제이다. 링 버퍼 (ring buffer)는 통신 프로그램에서, 통신에서 송수신되는 데이터를 저장하는데 사용되는 데이터 구조로서, 통신 프로그램에 상호 배타적인 액세스를 버퍼에 제공할 수 있다.
제1 호스트 (A)의 Qemu 모듈은 링 버퍼(ring buffer)로부터 읽기 쓰기 요청을 획득한다. 여기서, Qemu 모듈은 제1 호스트의 호스트 운영 체제 (Host OS)에 설치되고, 읽기 쓰기 요청은 미처리된 읽기 쓰기 요청이다. 여기서, Qemu는 단독으로 작동될 수 있는 소프트웨어로서, 기계를 시뮬레이션하는데 사용되며, 뛰어난 영활성과 이식성을 갖는다. Qemu는 주요하게 특수한 “재 컴파일러”에 의해, 특정 프로세서 용으로 작성된 이진 코드를 다른 것으로 변환시키며, 예를 들어 PPCmac 상에서 MIPS 코드를 작동시키거나, 또는 X86 PC 상에서 ARM 코드를 작동시킨다. Qemu 모듈 중에서 IO 경로는 크게 virtio 백엔드 (a), 통용 블록 장치 레이어 (b) 및 구동 레이어(c)와 같은 3개의 층으로 나뉘고, virtio 백엔드 (a) 및 통용 블록 장치 레이어 (b)의 인터페이스 부분에 일부 코드를 삽입하여, 읽기 쓰기 요청을 제2 호스트 (B) 에 전송하여 백업시키는 것을 실현한다.
제1 호스트 (A)의 Qemu 모듈은 당해 요청에 따라, 제1 호스트 (A)의 로컬 디스크 상으로부터 지정 데이터를 획득하거나; 또는 제1 호스트 (A)의 Qemu 모듈은 쓰기 요청에 따라, 쓰기 대기 데이터를 제1 호스트 (A)의 로컬 디스크 상에 저장한다.
제1 호스트 (A)의 Qemu 모듈은 쓰기 요청을 호스트 운영 체제의 Sync Orig 모듈로 송신한다. 여기서, Sync Orig 모듈은 제1 호스트 (A)의 호스트 운영 체제(Host OS) 상에 설치되는바, 제1 호스트 (A)의 읽기 쓰기 요청 전송 모듈이다.
호스트 운영 체제의 Sync Orig 모듈은 쓰기 요청을 제2 호스트 (B)의 Sync Term 모듈로 송신한다. 제1 호스트 (A)의 Sync Orig 모듈과 제2 호스트 (B)의 Sync Term 모듈 사이는 네트워크를 통해 연결된다.
제2 호스트의 Sync Term 모듈은 쓰기 요청을 수신하고, 쓰기 요청에 대응하는 쓰기 대기 데이터를 제2 호스트의 로컬 디스크 상에 저장하여, 제1 호스트 (A)의 가상 머신 상의 쓰기 요청이 제2 호스트 (B)에서 백업되는 것을 실현한다. Sync Term 모듈은 제2 호스트 (B)의 호스트 운영 체제(Host OS) 상에 설치되는바, 제2 호스트 (B)의 읽기 쓰기 요청 수신 모듈이다.
제1 호스트 (A)와 제2 호스트 (B)에 의해 형성된 스토리지 peer 쌍의 의사 코드는 다음과 같다.
Host A config file:
PeerID = 1
Host B config file:
PeerID = 1
제1 호스트 (A)와 제2 호스트 (B)가 가동된 후, 각각 클라우드를 향해 자신의 PeerID를 서버에 보고하며, 서버는 PeerID가 같은 두 개의 호스트를 스토리지 Peer 쌍으로 등록한다.
If(hostA.peerId == hostB.peerId)
{ Peer peer = new Peer(hostA, hostB);
peer.add(peer); }
제1 호스트 (A)의 가상 머신 상의 읽기 쓰기 요청을 제2 호스트 (B) 상에 백업하는 의사 코드는 다음의 것을 포함한다: 제1 호스트 (A)의 Qemu 모듈은 쓰기 요청을 수신한 후, 쓰기 요청에 대응하는 쓰기 대기 데이터를 제1 호스트 (A)의 로컬 디스크 상에 저장하는 이외에, 또한 쓰기 요청에 대응하는 쓰기 대기 데이터를 제1 호스트 (A)의 호스트 운영 체제(HostOS)의 공유 메모리 중에 저장한다. 이어서,당해 쓰기 요청을 위해 하나의 sequence 번호를 생성시키고, 쓰기 요청의 수정이 필요한 sector 개시 번호 및 sector 개수를 request 중에 기입하며, 호스트 운영 체제 (Host OS)의 Sync Orig 모듈에 넘겨 처리시킨다. 호스트 운영 체제 (Host OS)는 request를 수신하고, request와 공유 메모리 중의 쓰기 대기 데이터 data에 의해 하나의 TCP 데이터 패킷을 조성하여, 제2 호스트 (B)의 호스트 운영 체제 (HostOS)로 송신한다. 제2 호스트 (B)의 호스트 운영 체제 (HostOS)는 데이터 패킷 중의 쓰기 대기 데이터 data를 request 지정의 sector 중에 기입하여, 호스트 운영 체제(Host OS)의 가상 머신의 쓰기 요청이 호스트 운영 체제 (Host OS_B)에서 백업되는 것을 실현한다.
백업 머신 가동 유닛 (20)은 제1 호스트 (A)가 다운 타임될 경우, 백업 호스트 (C)에 의해 제1 호스트 (A)의 가상 머신을 가동시킨다. 본 실시예에 있어서, 제1 호스트 (A)가 다운 타임 또는 계속하여 서비스를 제공할 수 없을 시, 기타 정상적으로 작동하는 기계 상에서 제1 호스트 (A)의 가상 머신을 가동시켜, 제1 호스트 (A)의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 보증할 수 있다. 제2 호스트 (B) 상에 일정한 수량의 가상 머신이 있기에, 제1 호스트 (A)의 가상 머신을 제2 호스트 (B)로 이전시켜 복원할 시, 제2 호스트 (B)의 로컬 디스크 상에서 백업된 제1 호스트 (A)의 가상 머신 데이터를 즉시 획득할 수 있지만, 제2 호스트 (B)의 가상 머신의 액세스 부하가 과도하게 높아지고, 제2 호스트 (B)의 외부에 제공하는 서비스의 기능에 영향주게 된다. 여기서, 백업 호스트 (C)는 그룹 중의 정상적으로 작동하는 하나의 예비 기계로서, 백업 호스트 (C)의 하드웨어 배치는 제1 호스트 (A) 상의 모든 가상 머신을 작동시킬 수 있는 수요를 만족시켜, 제1 호스트 (A)의 가상 머신에 의해 제공되는 서비스가 신속히 복원되도록 한다. 이하, 백업 호스트 (C) 상에서 가동되는 제1 호스트 (A)의 가상 머신을 백업 호스트 (C)의 가상 머신으로 칭한다.
요청 판단 유닛 (30), 백업 호스트 (C) 상에서 가동하는 가상 머신으로 하여금 호출측이 송신한 읽기 쓰기 요청을 수신하도록 하고, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화의 완료 여부를 판단한다. 구체적으로, 백업 호스트 (C)는 제2 호스트가 송신한 동기화 완료 통지를 제공할지 여부를 판단하고, 동기화 완료 통지를 수신할 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 완료되었다고 인정하고; 반대일 경우, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료라고 판단한다. 도3에 도시된 바와 같이, 단계 S3는 이하의 단계를 포함한다.
도5에 도시된 바와 같이, 요청 판단 유닛 (30)은 제1 판단 서브 유닛 (31), 제1 동기화 서브 유닛 (32), 제2 판단 서브 유닛 (33), 제1 확정 서브 유닛 (34) 및 제2 확정 서브 유닛 (35)를 포함한다.
제1 판단 서브 유닛 (31)은, 제2 호스트 (B)로 하여금 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단하도록 한다. 다시 말해서 백업 호스트 (C) 상에서 제1 호스트 (A)의 가상 머신을 가동시킨 후, 제2 호스트 (B)는 실시간으로 현재 네트워크 처리율, 디스크 액세스 등 현재 작동 지표를 검출하고, 각 항의 현재 작동 지표가 모두 사전 설정 조건에 달한 후, 단계 S32를 수행한다.
제1 동기화 서브 유닛 (32)는, 사전 설정 조건에 도달할 시, 제2 호스트 (B) 상에 백업된 제1 호스트 (A)의 가상 머신 상의 읽기 쓰기 요청 백업 호스트 (C) 상에 동기화시키며, 다시 말해서 제2 호스트 (B)의 가상 머신 데이터를 백업 호스트 (C) 상에 동기화시킨다.
제2 판단 서브 유닛 (33)은, 제2 호스트 (B) 상에 동기화되지 않은 데이터가 존재하는지 여부를 판단한다. 제2 호스트 (B)는 또한 동기화되지 않은 데이터가 존재하는지 여부를 판단하여, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화의 완료 여부를 확정한다.
제1 확정 서브 유닛 (34)은, 동기화되지 않은 데이터가 존재할 시, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료인 상태라고 확정하며, 동기화되지 않은 데이터를 백업 호스트 (C)에 송신하여 백업시킨다.
제2 확정 서브 유닛 (35)는, 동기화되지 않은 데이터가 존재하지 않을 시, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 완료되었다고 확정하며, 백업 호스트 (C)에 동기화 완료 통지를 송신한다.
요청 판단 유닛 (30) 에 있어서, 백업 호스트 (C)의 게스트 운영 체제 (GuestOS)는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼 (ring buffer)에 저장한다.
제1 처리 유닛 (40)은 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화가 미완료 시, 읽기 쓰기 요청을 제2 호스트 (B)에 송신하며; 제2 호스트 (B)는 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 (B) 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 지정 데이터를 백업 호스트 (C)에 송신하며; 백업 호스트 (C)는 지정 데이터를 호출측으로 송신한다. 구체적으로, 제1 처리 유닛 (40)은 다음의 것을 포함한다.
백업 호스트 (C)의 Qemu 모듈로서, 링 버퍼(ring buffer)로부터 읽기 쓰기 요청을 획득한다.
백업 호스트 (C)의 Qemu 모듈로서, 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신한다.
호스트 운영 체제 상의 Sync Orig 모듈로서, 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신한다.
제2 호스트 (B)의 Sync Term 모듈로서, 읽기 쓰기 요청을 수신하고, 쓰기 요청에 따라 쓰기 대기 데이터를 제2 호스트 (B)의 로컬 디스크 상에 저장한다.
제2 호스트 (B)의 Sync Term 모듈로서, 읽기 요청에 따라, 제2 호스트 (B)의 로컬 디스크로부터 지정 데이터를 획득하고, 지정 데이터를 백업 호스트 (C)의 Sync Orig 모듈로 송신한다.
백업 호스트의 Sync Orig 모듈로서, 지정 데이터를 수신하고, 지정 데이터를 백업 호스트 (C)의 Qemu 모듈로 송신한다.
백업 호스트 (C)의 Qemu 모듈로서, 지정 데이터를 백업 호스트 (C)의 게스트 운영 체제(GuestOS)로 송신하여, 호출측으로 송신한다.
백업 호스트 (C)의 가상 머신의 읽기 쓰기 요청을 제2 호스트 (B)에 전송하여 처리하는 의사 코드는 다음과 같다.
백업 호스트 (C)의 Qemu 모듈이 가동하기 전, 배치 파일에서, remoteIO를 True로 표기한다.
백업 호스트 (C)의 Qemu 모듈이 가동될 시, remoteIO= True를 판독하고, 이 후 수신된 각 IO 요청 (다시 말해서, 읽기 쓰기 요청)을 로컬 디스크 액세스로 하지 않고, 공유 메모리를 통해 Sync Orig 모듈에 통지하여, Sync Orig 모듈에 의해 제2 호스트 (B)로 전송한다.
제2 호스트 (B)의 Sync Term 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 쓰기 요청을 수신한 후, 쓰기 데이터를 백업 호스트 (C)의 로컬 디스크에 저장시킨다.
제2 호스트 (B)의 Sync Term 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 읽기 요청을 수신한 후, 지정 sector로부터 지정 데이터를 읽은 후, TCP를 통해 백업 호스트 (C)의 Sync Orig 모듈로 송신한다.
백업 호스트 (C)의 Sync Orig 모듈은 B머신에 의해 피드백된 지정 데이터를 수신한 후, 당해 피드백된 지정 데이터를 공유 메모리 중에 기입하고, TCP를 통해 메시지를 백업 호스트 (C)의 Qemu 모듈로 통지한다.
백업 호스트 (C)의 Qemu 모듈은 백업 호스트 (C)의 Sync Orig 모듈의 TCP 메시지 통지를 수신한 후, 지정 공유 메모리 중으로부터 지정 데이터를 획득하여, 호출측으로 피드백한다.
가상 머신이 백업 호스트 상에서 안정된 후, 제2 호스트 (B)에서 백업 호스트 (C)로의 데이터 동기화를 가동시킨다. 가상 머신이 스토리지를 갖지 않은 상황 하에서 백업 호스트 (C)로의 이전을 완료한 후, 제2 호스트 (B)에서 백업 호스트 (C)로의 전체 데이터 동기화를 가동시키는 과정의 의사 코드는 다음과 같다.
제2 호스트 (B)의 Sync Term 모듈은 로컬 디스크의 qcow2 파일의 sector 기입 상황을 분석하는 것을 통해, 기입된 sector를 하나씩 백업 호스트 (C)의 Sync Orig 모듈로 송신한다. 백업 호스트 (C)의 Sync Orig 모듈은 제2 호스트 (B)의 Sync Term 모듈이 송신한 동기화 sector 데이터를 수신한 후, 데이터 내용을 로컬 디스크의 qcow2 파일 중에 기입한다.
제2 호스트 (B) 상에서 수행되는 의사 코드는 다음과 같다.
For(every writen sector)
{ Send_to_hostC(sectorIdx, sector_data); }
백업 호스트 (C) 상에서 수행되는 의사 코드는 다음과 같다.
For(sector_data receive from hostB)
{ Write(qcow2file, sectorIdx, sector_data); }
백업 호스트 (C)는 전체 데이터 동기화가 완료된 후, 가상 머신의 읽기 쓰기 요청복원을 백업 호스트 (C)의 로컬 디스크 상에서 수행하는바, 제2 호스트 (B)로 전송하지 않는다. 이때, 제2 호스트 (B) 상에서 수행되는 의사 코드는 다음과 같다.
If(every_writen_sector_send == true)
{ Send_to_hostC(all_data_synchronized = true); }
백업 호스트 (C) 상에서 수행되는 의사 코드는 다음과 같다.
If(Received_msg(hostB, all_data_synchronized = true))
{ Qemu.remoteIO = False; }
제3 실시예
도6은 본 발명의 제3 실시예 중의 가상 머신의 신속한 복원시스템의 원리 블록도이다. 도6에 도시된 바와 같이, 당해 가상 머신의 신속한 복원 시스템은 서버 (4), 서버 (4)와 통신 연결되는 제1 호스트 (1), 제2 호스트 (2) 및 백업 호스트 (3)을 포함한다. 여기서, 제1 호스트 (1), 제2 호스트 (2) 및 백업 호스트 (3)은 모두 핸드폰, 태블릿 PC, 개인 휴대 정보 단말기 (Personal Digital Assistant, PDA), 데스크톱 컴퓨터, 서버 등 단말일 수 있다. 태블릿 PC를 예로 할 시, 도7에 도시된 바와 같이, 각 태블릿 PC (700)은 모두 무선 주파수 (Radio Frequency, RF) 회로 (701), 메모리 (702), 입력 모듈 (703), 표시 모듈 (704), 프로세서 (705), 오디오 회로 (706), WiFi (Wireless Fidelity) 모듈 (707) 및 전원 (708)을 포함한다.
프로세서 (705)에 연결되는 입력 모듈 (703)은 태블릿 PC (700)의 사용자 상호 작용 장치로서, 사용자와 태블릿 PC (700) 사이의 상호 작용을 실현한다. 여기서, 제1 호스트 (1)의 입력 모듈 (703)은 사용자에 의해 입력된 제1 백업 스토리지 명령을 수신하고, 제1 백업 스토리지 명령을 대응되는 프로세서 (705)에 송신하며, 제1 백업 스토리지 명령은 peer 쌍 ID를 포함한다. 제2 호스트 (2)의 입력 모듈이 수신한 사용자에 의해 입력된 제2 백업 스토리지 명령을 수신하고, 제2 백업 스토리지 명령을 대응되는 프로세서 (705) 에 송신하며, 제2 백업 스토리지 명령은 peer 상 ID를 포함한다. 제1 백업 스토리지 명령 및 제2 백업 스토리지 명령은 동일한 peer 쌍 ID를 포함하여, 제1 백업 스토리지 명령 및 제2 백업 스토리지 명령에 의해, 제1 호스트 (1) 및 제2 호스트 (2)에 의해 형성된 스토리지 peer 쌍을 실현하여, 제1 호스트 (1)의 가상 머신 상의 읽기 쓰기 요청이 제2 호스트 (2) 상에서 백업되도록 한다. 상응하게, 백업 호스트 (3)의 입력 모듈 (703)은 사용자가 입력한 가상 머신 가동 명령을 수신하고, 가상 머신 가동 명령을 프로세서 (705)에 수신하며, 당해 가상 머신 가동 명령은 제2 백업 스토리지 명령과 같은 peer 쌍 ID를 포함하여, 제1 호스트 (1)가 다운 타임 또는 파워 오프될 시, 백업 호스트 (3) 상에서 제1 호스트 (1)의 가상 머신이 작동될 수 있도록 한다.
일부 실시예에 있어서, 입력 모듈 (703)은 사용자가 입력한 숫자 또는 문자 정보를 수신하고, 태블릿 PC (700)의 사용자에 의한 설정 및 기능 제어와 관련된 신호 입력을 생성한다. 일부 실시예에 있어서, 당해 입력 모듈 (703)은 터치 패널 (7031)을 포함할 수 있다. 터치 패널 (7031)은 터치 스크린으로도 불리우며, 그 위 및 부근의 사용자의 터치 조작 (예를 들어 사용자가 손가락, 터치펜 등 임의의 적합한 물체 또는 부속품에 의한 터치 패널 (7031) 상의 조작)을 수집하고, 미리 설정한 프로그램으로 상응한 연결 장치를 구동시킬 수 있다. 옵션으로, 터치 패널 (7031)은 터치 검출 장치 및 터치 컨트롤러 두 부분을 포함할 수 있다. 여기서, 터치 검출 장치는 사용자의 터치 위치를 검출하고, 터치 조작으로 인한 신호를 검출하며, 신호를 터치 컨트롤러에 송신하며; 터치 컨트롤러는 터치 검출 장치 상으로부터 터치 정보를 수신하며, 그것을 터치 좌표로 전환시킨 후, 프로세서 (705)에 전송하며, 프로세서 (705)가 송신한 명령을 수신하고 수행한다. 이 외에도, 저항식, 캐패시턴스식, 적외선 및 표면 음파 등 각종 유형을 이용하여 터치 패널 (7031)을 실현할 수 있다. 터치 패널 (7031) 이외에, 입력 모듈 (703)은 또한 기타 입력 설비 (7032)를 포함할 수 있고, 기타 입력 설비 (7032)는, 물리적 키보드, 기능 키 (볼륨 제어 단추, 스위치 단추 등), 트랙볼, 마우스, 조이스틱 등 중의 하나 또는 여러 종류를 포함하나, 이에 한정되는 것이 아니다.
일부 실시예에 있어서, 표시 모듈 (704)는 사용자가 입력한 정보 또는 사용자에게 제공하는 정보 및 태블릿 PC (700)의 각종 메뉴 화면을 표시할 수 있다. 표시 모듈 (704)는 디스플레이 패널 (7041)을 포함할 수 있고, 옵션으로, LCD 또는 유기 발광 다이오드 (Organic Light-Emitting Diode,OLED) 등 형태를 이용하여 디스플레이 패널 (7041)을 배치할 수 있다.
터치 패널 (7031)은 디스플레이 패널 (7041)을 덮어, 터치 스크린을 형성하며, 당해 터치 스크린이 그 위 또는 부근의 터치 조작을 검출한 후, 프로세서 (705)에 전송하여 터치 이벤트의 유형을 확정하고, 이어서 프로세서 (705)는 터치 이벤트의 유형에 따라,터치 스크린 상에 상응한 시각적 출력을 제공한다.
터치 스크린은 애플리케이션 인터페이스 표시 영역 및 공통 제어 표시 영역을 포함한다. 당해 애플리케이션 인터페이스 표시 영역 및 당해 공통 제어 표시 영역의 배열 방식은 한정되는 것이 아니지만 상하 배열, 좌우 배열 등 두 개의 표시 영역을 구분할 수 있는 배열 방식일 수 있다. 당해 애플리케이션 인터페이스 표시 영역은 애플리케이션의 인터페이스를 표시하는 데 사용될 수 있다. 각 인터페이스는 적어도 하나의 애플리케이션의 아이콘 및/또는 widget 데스크탑 컨트롤 등 인터페이스 인소를 포함할 수 있다. 당해 애플리케이션 인터페이스 표시 영역도 임의의 내용을 포함하지 않은 빈 인터페이스일 수 있다. 당해 공통 제어 표시 영역은, 예를 들어, 설정 단추, 인터페이스 번호, 스크롤 막대, 전화 번호부 아이콘 등 애플리케이션 아이콘 등과 같은, 사용률이 비교적 높은 컨트롤에 사용될 수 있다.
WiFi 모듈 (707)은 태블릿 PC (700)의 네트워크 인터페이스로서, 태블릿 PC (700)과 기타 설비의 데이터 상호 작용을 실현할 수 있다. 네트워크 인터페이스와 원격 저장 장치 (다시 말해서, 호출측)은 네트워크를 통해 통신 연결된다. 본 실시예에 있어서, 백업 호스트 (3) 중의 WiFi 모듈 (707)은 원격 저장 장치 (다시 말해서, 호출측)로부터 송신한 읽기 쓰기 요청을 수신할 수 있고, 프로세서 (705)를 통해 처리한 후, 쓰기 요청에 대응하는 지정 데이터를 획득하며, 지정 데이터를 WiFi 모듈 (707)을 통해 호출측에 송신한다. 실시예에 있어서, 당해 네트워크 인터페이스와 WiFi 네트워크에 의해 연결되는 원격 저장 장치 (다시 말해서, 호출측)은 클라우드 서버 또는 기타 데이터베이스일 수 있다.
메모리 (702)는 제1 메모리 (7021) 및 제2 메모리 (7022)를 포함한다. 일부 실시예에 있어서, 제1 메모리 (7021)는 일시적이지 않은 컴퓨터 판독 가능 저장 매체일 수 있는바, 운영 체제, 데이터베이스 및 컴퓨터 실행 가능 명령이 저장되어 있다. 컴퓨터 실행 가능 명령은 프로세서 (705)에 의해 수행될 수 있으며, 도1에 도시된 바와 같은 제1 실시예의 가상 머신의 신속한 복원 방법을 실현하는데 이용된다. 메모리 (702)에 저장된 데이터베이스는, 예를 들어, 상술한 가상 머신의 신속한 복원 방법 중에서 언급된 각종 데이터, 예를 들어 읽기 요청에 대응되는 지정 데이터, 쓰기 요청에 대응되는 쓰기 대기 데이터 등과 같은 각종 유형의 데이터를 저장하는데 이용된다. 제2 메모리 (7021)는 태블릿 PC (700)의 메모리일 수 있고, 비 휘발성 컴퓨터 판독 가능 저장 매체 중의 운영 체제, 데이터베이스 및 컴퓨터 실행 가능 명령을 위해 캐시된 작동 환경을 제공한다.
본 실시예에 있어서, 프로세서 (705)는 태블릿 PC (700)의 제어 센터로서, 각종 인터페이스 및 회선을 이용하여 핸드폰의 모든 부분을 연결 시키고, 제1 메모리 (7021) 내에 저장된 컴퓨터 실행 가능 명령 및/또는 데이터베이스 내의 데이터를 작동시키거나 실행하며, 태블릿 PC (700)의 각종 기능 및 처리 데이터를 실행하여, 태블릿 PC (700)에 대한 전체적인 모니터링을 진행한다. 옵션으로, 프로세서 (705)는 하나 또는 여러 개의 처리 모듈을 포함할 수 있다.
본 실시예에 있어서, 당해 제1 메모리 (7021) 내의컴퓨터 실행 가능 명령 및/또는 데이터베이스 내의 데이터를 수행하는 것을 통해, 프로세서 (705)는 다음과 같은 단계를 수행할 수 있다. 제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하며; 상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키며; 백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로 전체 데이터 동기화를 완료할지 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료되지 않았을 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하며; 상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하며; 상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신한다.
상기 프로세서 (705)는 또한 다음과 같은 단계를 수행한다. 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 시, 상기 백업 호스트 상에서 상기 읽기 쓰기 요청을 수행하며, 백업 호스트로 하여금 가상 머신 상의 읽기 쓰기 요청을 상기 제2 호스트에 백업시키도록 한다.
바람직하게는, 프로세서 (705)는 또한 다음과 같은 단계를 수행한다. 상기 백업 호스트의 게스트 운영 체제는 상기 읽기 쓰기 요청을 수신하고, 상기 읽기 쓰기 요청을 링 버퍼에 저장한다.
상기 백업 호스트의 Qemu 모듈은 상기 링 버퍼로부터 상기 읽기 쓰기 요청을 획득하고, 상기 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈에 송신하며; 상기 Sync Orig 모듈은 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신한다.
상기 제2 호스트 의 Sync Term 모듈은 상기 읽기 쓰기 요청을 수신하고; 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크에 저장하거나; 또는 읽기 요청에 따라 상기 제2 호스트의 로컬 디스크로부터 지정 데이터를 획득하며 상기 지정 데이터를 상기 백업 호스트의 Sync Orig 모듈로 송신한다.
상기 백업 호스트의 Sync Orig 모듈은 상기 지정 데이터를 수신하고 상기 지정 데이터를 상기 백업 호스트의 Qemu 모듈로 송신한다.
상기 백업 호스트의 Qemu 모듈은 상기 지정 데이터를 상기 백업 호스트의 게스트 운영 체제로 송신한다.
바람직하게는, 상기 제1 호스트의 가상 머신의 데이터를 상기 제2 호스트 상에 백업시키는 단계는,
상기 제1 호스트의 게스트 운영 체제는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 단계;
상기 제1 호스트의 Qemu 모듈은 상기 링 버퍼로부터 상기 읽기 쓰기 요청을 획득하며; 상기 Qemu 모듈은 읽기 요청에 따라, 상기 제1 호스트의 로컬 디스크로부터 지정 데이터를 획득하거나; 또는 상기 Qemu 모듈은 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제1 호스트의 로컬 디스크에 저장하며; 상기 쓰기 요청을 호스트 운영 체제의 Sync Orig 모듈에 송신하는 단계;
상기 호스트 운영 체제의 Sync Orig 모듈은 상기 쓰기 요청을 상기 제2 호스트 의 Sync Term 모듈에 송신하는 단계;
상기 제2 호스트의 Sync Term 모듈은 상기 쓰기 요청을 수신하고, 상기 쓰기 요청에 대응하는 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크에 저장하는 단계를 포함한다.
바람직하게는, 프로세서 (705)는 또한,
상기 제2 호스트가 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단하는 단계;
"예"일 경우, 상기 제2 호스트 상에 백업된 제1 호스트의 가상 머신 상의 읽기 쓰기 요청을 백업 호스트 상에 동기화시키는 단계;
상기 제2 호스트 상의 동기화되지 않은 데이터의 존재 여부를 판단하는 단계;
존재할 경우, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화는 미완료 상태인 단계;
존재하지 않을 경우, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화는 완료되었으며, 상기 백업 호스트에 동기화 완료 통지를 송신하는 단계를 포함한다.
본 실시예에서 제공하는 가상 머신의 신속한 복원 시스템에 있어서, 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에서 제1 호스트의 가상 머신을 가동시키며; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 백업 호스트의 가상 머신이 수신한 읽기 쓰기 요청을 가상 머신 백업 데이터를 갖는 제2 호스트에 전송하여 수행시키어, 가상 머신의 스토리지를 갖지 않는 상황 하에서의 신속한 이전 및 고장 복원을 실현할 수 있고, 공유 스토리지를 필요로 하지 않으며, 가상 머신의 러버스트를 향상시키고, 사용가능한 스토리지가 없음으로 인한 가상 머신의 액세스가 가상 머신 상의 조작 중단을 초래하는 현상의 발생을 피할 수 있도록 한다.
당업자는 본원에서 개시된 실시예 중의 각 예시 모듈 및 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합으로 구현될 수 있다는 것을 인식할 수 있다. 이러한 기능은 하드웨어 또는 소프트웨어로 구현되는지 여부는 기술안의 특정 애플리케이션 및 설계 제약 사항에 따라 결정된다. 당업자는 각 특정 애플리케이션에 대해 상이한 방법을 사용하여 위에서 설명된 기능을 구현할 수 있지만, 그러한 구현은 본 발명의 범위를 벗어나는 것으로 간주되어서는 안된다.
당업자라면, 설명의 편의상 및 간략화를 위해, 상술한 시스템, 장치 및 모듈의 구체적인 작업 과정에 대해, 상술한 방법 실시예에서의 대응하는 과정을 참조할 수 있음을 명확히 이해할 수 있으며, 상세한 설명은 여기에서 다시 설명하지 않는다.
본원에서 제공되는 실시예에 있어서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 장치의 실시예는 단지 예시적인 것이며, 예를 들어, 모듈의 분할은 논리적인 기능적 분할이고 실제 구현에서 다른 분할일 수도 있다. 예를 들어, 복수 개의 모듈 또는 구성 요소가 결합되거나 다른 시스템에 통합되거나 일부 기능을 무시하거나 실행하지 않을 수 있다. 또한, 도시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 접속은 일부 인터페이스, 장치 또는 모듈을 통한 간접 결합 또는 통신 접속일 수 있으며, 전기적, 기계적 또는 다른 형태일 수 있다.
별도의 구성 요소로 설명된 모듈은 물리적으로 분리되어 있을 수도 있고 그렇지 않을 수도 있다. 모듈로 표시되는 구성 요소는 물리적 모듈일 수도 있고 아닐 수도 있다. 다시 말해서, 한 곳에 배치될 수도 있고 여러 개의 네트워크 모듈에 분산될 수도 있다. 본 실시예에서 솔루션의 목적을 달성하기 위해 모듈의 일부 또는 전부가 실제 요구에 따라 선택될 수 있다.
또한, 본 발명의 각 실시 예에서의 각 기능 모듈은 하나의 처리 모듈에 통합되거나, 각 모듈이 물리적으로 단독으로 존재하거나, 두 개 이상의 모듈이 하나의 모듈에 통합될 수 있다.
기능이 소프트웨어 기능 모듈의 형태로 구현되고 독립적인 제품으로서 판매되거나 사용되는 경우, 기능은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로 본 발명의 기술 솔루션 또는 종래 기술에 기여하는 부분 또는 기술적 솔루션의 일부는 저장 매체에 저장된 소프트웨어 제품의 형태로 구현될 수 있으며, 명령들은 본 발명의 각 실시예에 따른 방법의 단계들의 전부 또는 일부를 컴퓨터 장치 (개인용 컴퓨터, 서버, 네트워크 장치 등일 수 있음)가 실행할 수 있게 하는 데 사용된다. 상기 저장 매체는 USB 플래시 디스크, 착탈식 하드 디스크, ROM, RAM, 자기 디스크 또는 광학 디스크와 같은 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
이상에서 설명한 내용은 본 발명의 특정의 실시 예에 불과한 것으로, 본 발명의 보호 범위가 이에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 여러 가지 변형이 있을 수 있음은 자명하다. 본 발명의 보호 범위에 포함되어야 한다. 따라서, 본 발명의 보호 범위는 청구 범위의 보호 범위를 따라야 한다.
Claims (18)
- 가상 머신의 신속한 복원 방법에 있어서,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 단계;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 단계;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 단계;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 단계; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 단계를 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 방법.
- 제1항에 있어서,
제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 상기 백업 호스트 상에서 상기 읽기 쓰기 요청을 수행하고, 백업 호스트의 가상 머신 상의 읽기 쓰기 요청을 상기 제2 호스트에 백업시키는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 방법.
- 제1항에 있어서,
상기 백업 호스트의 게스트 운영 체제는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 단계;
상기 백업 호스트의 Qemu 모듈은 상기 링 버퍼로부터 읽기 쓰기 요청을 획득하고, 상기 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하며; 상기 Sync Orig 모듈은 상기 읽기 쓰기 요청을 제2 호스트로 송신하는 단계;
상기 제2 호스트의 Sync Term 모듈은 읽기 쓰기 요청을 수신하고; 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하거나; 또는 읽기 요청에 따라 상기 제2 호스트의 로컬 디스크로부터 지정 데이터를 획득하고, 지정 데이터를 상기 백업 호스트의 Sync Orig 모듈로 송신하는 단계;
상기 백업 호스트의 Sync Orig 모듈은 지정 데이터를 수신하고, 상기 지정 데이터를 상기 백업 호스트의 Qemu 모듈로 송신하는 단계;
상기 백업 호스트의 Qemu 모듈은 상기 지정 데이터를 상기 백업 호스트의 게스트 운영 체제로 송신하는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 방법.
- 제1항에 있어서,
상기 제1 호스트의 가상 머신의 데이터를 상기 제2 호스트에서 백업시키는 단계는,
상기 제1 호스트의 게스트 운영 체제는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 단계;
상기 제1 호스트의 Qemu 모듈은 상기 링 버퍼로부터 상기 읽기 쓰기 요청을 획득하고; 상기 Qemu 모듈은 읽기 요청에 따라 상기 제1 호스트의 로컬 디스크로부터 지정 데이터를 획득하거나; 또는 상기 Qemu 모듈은 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제1 호스트의 로컬 디스크 상에 저장하며; 상기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하는 단계;
상기 호스트 운영 체제 상의 Sync Orig 모듈은 상기 쓰기 요청을 상기 제2 호스트의 Sync Term 모듈로 송신하는 단계;
상기 제2 호스트의 Sync Term 모듈은 상기 쓰기 요청을 수신하고; 상기 쓰기 요청에 대응되는 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하는 단계를 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 제2 호스트는 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단하는 단계;
"예"일 경우, 상기 제2 호스트 상에 백업된 제1 호스트의 가상 머신 상의 읽기 쓰기 요청 백업 호스트 상에 동기화시키는 단계;
상기 제2 호스트 상의 동기화되지 않은 데이터의 존재 여부를 판단하며,
존재할 경우, 제2 호스트 에서 백업 호스트로의 전체 데이터 동기화가 미완료인 상태이고,
존재하지 않을 경우, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료되었으며, 상기 백업 호스트에 동기화 완료 통지를 송신하는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 방법.
- 가상 머신의 신속한 복원 장치에 있어서,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 데이터 백업 유닛;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 백업 머신 가동 유닛;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 요청 판단 유닛;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 제1 처리 유닛; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 데이터 송신 유닛을 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 장치.
- 제6항에 있어서,
제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 상기 백업 호스트 상에서 상기 읽기 쓰기 요청을 수행하고, 백업 호스트의 가상 머신 상의 읽기 쓰기 요청을 상기 제2 호스트에 백업시키는 제2 처리 유닛을 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 장치.
- 제6항에 있어서,
읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 상기 백업 호스트의 게스트 운영 체제;
상기 링 버퍼로부터 읽기 쓰기 요청을 획득하고, 상기 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하며; 상기 Sync Orig 모듈은 상기 읽기 쓰기 요청을 제2 호스트로 송신하는 상기 백업 호스트의 Qemu 모듈;
읽기 쓰기 요청을 수신하고; 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하거나; 또는 읽기 요청에 따라 상기 제2 호스트의 로컬 디스크로부터 지정 데이터를 획득하고, 지정 데이터를 상기 백업 호스트의 Sync Orig 모듈로 송신하는 상기 제2 호스트의 Sync Term 모듈;
지정 데이터를 수신하고, 상기 지정 데이터를 상기 백업 호스트의 Qemu 모듈로 송신하는 상기 백업 호스트의 Sync Orig 모듈;
상기 지정 데이터를 상기 백업 호스트의 게스트 운영 체제로 송신하는 상기 백업 호스트의 Qemu 모듈을 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 장치.
- 제6항에 있어서,
상기 데이터 백업 유닛은,
읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 상기 제1 호스트의 게스트 운영 체제;
상기 링 버퍼로부터 상기 읽기 쓰기 요청을 획득하고; 상기 Qemu 모듈은 읽기 요청에 따라 상기 제1 호스트의 로컬 디스크로부터 지정 데이터를 획득하거나; 또는 상기 Qemu 모듈은 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제1 호스트의 로컬 디스크 상에 저장하며; 상기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하는 상기 제1 호스트의 Qemu 모듈;
상기 쓰기 요청을 상기 제2 호스트의 Sync Term 모듈로 송신하는 상기 호스트 운영 체제 상의 Sync Orig 모듈;
상기 쓰기 요청을 수신하고; 상기 쓰기 요청에 대응되는 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하는 상기 제2 호스트의 Sync Term 모듈을 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 장치.
- 제6항 내지 제9항 중 어느 한 항에 있어서,
제2 호스트로 하여금 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단하도록 하는 제1 판단 서브 유닛;
사전 설정 조건에 도달할 시, 상기 제2 호스트 상에 백업된 제1 호스트의 가상 머신 상의 읽기 쓰기 요청 백업 호스트 상에 동기화시키는 제1 동기화 서브 유닛;
상기 제2 호스트 상에 동기화되지 않은 데이터가 존재하는지 여부를 판단하는 제2 판단 서브 유닛;
동기화되지 않은 데이터가 존재할 시, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료인 상태라고 확정하는 제1 확정 서브 유닛;
동기화되지 않은 데이터가 존재하지 않을 시, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료되었다고 확정하며, 상기 백업 호스트에 동기화 완료 통지를 송신하는 제2 확정 서브 유닛 (35)을 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 장치.
- 가상 머신의 신속한 복원 시스템에 있어서,
제1 호스트, 제2 호스트 및 백업 호스트를 포함하고, 상기 제1 호스트, 제2 호스트 및 상기 제3 호스트에는 각각 프로세서가 설치되어 있고, 상기 프로세서는,
제1 호스트 및 제2 호스트에 의해 스토리지 peer 쌍을 형성하여, 상기 제1 호스트의 가상 머신 상의 읽기 쓰기 요청이 상기 제2 호스트에서 백업되도록 하는 단계;
상기 제1 호스트가 다운 타임 또는 파워 오프될 때, 백업 호스트에 의해 상기 제1 호스트의 가상 머신을 가동시키는 단계;
백업 호스트 상에서 가동되는 가상 머신은 호출측이 송신한 읽기 쓰기 요청을 수신하고, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화의 완료 여부를 판단하고; 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 미완료 시, 상기 읽기 쓰기 요청을 상기 제2 호스트에 송신하는 단계;
상기 제2 호스트는 상기 읽기 쓰기 요청을 수신하고 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트 상에 저장하거나, 또는 읽기 요청에 따라 지정 데이터를 획득하고 상기 지정 데이터를 백업 호스트로 송신하는 단계; 및
상기 백업 호스트에 의해 상기 지정 데이터를 상기 호출측으로 송신하는 단계를 수행하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료될 경우, 상기 백업 호스트 상에서 상기 읽기 쓰기 요청을 수행하고, 백업 호스트의 가상 머신 상의 읽기 쓰기 요청을 상기 제2 호스트에 백업시키는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
상기 백업 호스트의 게스트 운영 체제는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 단계;
상기 백업 호스트의 Qemu 모듈은 상기 링 버퍼로부터 읽기 쓰기 요청을 획득하고, 상기 읽기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하며; 상기 Sync Orig 모듈은 상기 읽기 쓰기 요청을 제2 호스트로 송신하는 단계;
상기 제2 호스트의 Sync Term 모듈은 읽기 쓰기 요청을 수신하고; 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하거나; 또는 읽기 요청에 따라 상기 제2 호스트의 로컬 디스크로부터 지정 데이터를 획득하고, 지정 데이터를 상기 백업 호스트의 Sync Orig 모듈로 송신하는 단계;
상기 백업 호스트의 Sync Orig 모듈은 지정 데이터를 수신하고, 상기 지정 데이터를 상기 백업 호스트의 Qemu 모듈로 송신하는 단계;
상기 백업 호스트의 Qemu 모듈은 상기 지정 데이터를 상기 백업 호스트의 게스트 운영 체제로 송신하는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
상기 제1 호스트의 가상 머신의 데이터를 상기 제2 호스트에서 백업시키는 단계는,
상기 제1 호스트의 게스트 운영 체제는 읽기 쓰기 요청을 수신하고, 읽기 쓰기 요청을 링 버퍼에 저장하는 단계;
상기 제1 호스트의 Qemu 모듈은 상기 링 버퍼로부터 상기 읽기 쓰기 요청을 획득하고; 상기 Qemu 모듈은 읽기 요청에 따라 상기 제1 호스트의 로컬 디스크로부터 지정 데이터를 획득하거나; 또는 상기 Qemu 모듈은 쓰기 요청에 따라 쓰기 대기 데이터를 상기 제1 호스트의 로컬 디스크 상에 저장하며; 상기 쓰기 요청을 호스트 운영 체제 상의 Sync Orig 모듈로 송신하는 단계;
상기 호스트 운영 체제 상의 Sync Orig 모듈은 상기 쓰기 요청을 상기 제2 호스트의 Sync Term 모듈로 송신하는 단계;
상기 제2 호스트의 Sync Term 모듈은 상기 쓰기 요청을 수신하고; 상기 쓰기 요청에 대응되는 쓰기 대기 데이터를 상기 제2 호스트의 로컬 디스크 상에 저장하는 단계를 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항 내지 제14항 중 어느 한 항에 있어서,
상기 제2 호스트는 현재 작동 지표가 사전 설정 조건에 달하는지 여부를 판단하는 단계;
"예"일 경우, 상기 제2 호스트 상에 백업된 제1 호스트의 가상 머신 상의 읽기 쓰기 요청 백업 호스트 상에 동기화시키는 단계;
상기 제2 호스트 상의 동기화되지 않은 데이터의 존재 여부를 판단하며,
존재할 경우, 제2 호스트 에서 백업 호스트로의 전체 데이터 동기화가 미완료인 상태이고,
존재하지 않을 경우, 제2 호스트에서 백업 호스트로의 전체 데이터 동기화가 완료되었으며, 상기 백업 호스트에 동기화 완료 통지를 송신하는 단계를 더 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
상기 제1 호스트, 제2 호스트 및 백업 호스트는 모드 상기 프로세서와 연결되는 사용자 상호 작용 장치를 포함하고;
상기 제1 호스트와 상기 제2 호스트 상의 사용자 상호 작용 장치는, 사용자에 의해 입력된 제1 백업 스토리지 명령 및 제2 백업 스토리지 명령을 수신하고, 상기 제1 백업 스토리지 명령 및 상기 제2 백업 스토리지 명령에 따라, 상기 제1 호스트와 제2 호스트에 의해 스토리지 peer 쌍을 형성하며; 상기 제1 백업 스토리지 명령 및 제2 백업 스토리지 명령은 동일한 peer 쌍 ID를 포함하며;
상기 백업 호스트 상의 사용자 상호 작용 장치는, 사용자에 의해 입력된 가상 머신 가동 명령을 수신하도록 하여, 상기 제1 호스트가 다운 타임 또는 파워 오프될 시, 상기 백업 호스트 상에서 상기 제1 호스트의 가상 머신을 가동시키며; 상기 가상 머신 가동 명령은 상기 peer 쌍 ID를 포함하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
상기 백업 호스트는 상기 프로세서와 연결되는 네트워크 인터페이스를 더 포함하고, 상기 네트워크 인터페이스는 호출측으로부터 송신한 읽기 쓰기 요청을 수신하고, 상기 지정 데이터를 상기 호출측에 송신하는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
- 제11항에 있어서,
상기 제1 호스트 상의 메모리에는 데이터베이스가 설정되어 있고, 상기 데이터베이스는 제1 호스트의 가상 머신 상의 읽기 쓰기 요청에 대응되는 데이터를 저장하는데 사용되며;
상기 제2 호스트 상의 메모리에는 데이터베이스가 설정되어 있고, 상기 데이터베이스는 제1 호스트의 가상 머신 상의 읽기 쓰기 요청에 대응되는 데이터를 저장하고, 백업 호스트 상에서 상기 제1 호스트의 가상 머신을 가동시키는 읽기 쓰기 요청에 대응되는 데이터를 저장하는데 사용되며;
상기 백업 호스트 상의 메모리에는 데이터베이스가 설정되어 있고, 상기 데이터베이스는 제1 호스트의 가상 머신 상의 읽기 쓰기 요청에 대응되는 데이터를 저장하고, 백업 호스트 상에서 상기 제1 호스트의 가상 머신을 가동시키는 읽기 쓰기 요청에 대응되는 데이터를 저장하는데 사용되는 것을 특징으로 하는, 가상 머신의 신속한 복원 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611240016.5 | 2016-12-28 | ||
CN201611240016.5A CN106708603B (zh) | 2016-12-28 | 2016-12-28 | 虚拟机快速恢复方法及装置 |
PCT/CN2017/079912 WO2018120491A1 (zh) | 2016-12-28 | 2017-04-10 | 虚拟机快速恢复方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180087278A true KR20180087278A (ko) | 2018-08-01 |
KR102067918B1 KR102067918B1 (ko) | 2020-01-17 |
Family
ID=58903718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187015545A KR102067918B1 (ko) | 2016-12-28 | 2017-04-10 | 가상 머신의 신속한 복원 방법, 장치 및 시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10740197B2 (ko) |
EP (1) | EP3564815A4 (ko) |
JP (1) | JP6735820B2 (ko) |
KR (1) | KR102067918B1 (ko) |
CN (1) | CN106708603B (ko) |
AU (1) | AU2017341159B2 (ko) |
SG (1) | SG11201803894WA (ko) |
WO (1) | WO2018120491A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168774B (zh) * | 2017-06-14 | 2020-11-10 | 北京云联万维技术有限公司 | 一种基于本地存储的虚拟机迁移方法及系统 |
JP7006461B2 (ja) * | 2018-04-02 | 2022-01-24 | 株式会社デンソー | 電子制御装置および電子制御システム |
CN109298977A (zh) * | 2018-10-19 | 2019-02-01 | 深信服科技股份有限公司 | 一种虚拟机业务快速恢复方法、系统、装置及存储介质 |
CN111240889A (zh) * | 2018-11-29 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 数据备份系统和方法以及电子设备 |
CN111090491B (zh) * | 2019-07-03 | 2023-10-10 | 杭州海康威视系统技术有限公司 | 虚拟机任务状态的恢复方法、装置及电子设备 |
CN111221561B (zh) * | 2020-01-14 | 2024-05-31 | 平安科技(深圳)有限公司 | 流表更新方法、装置、系统、计算机设备及存储介质 |
US11509487B2 (en) * | 2020-03-16 | 2022-11-22 | Kaseya Limited | System for rollout of certificates to client and server independent of public key infrastructure |
CN113900716B (zh) * | 2021-09-29 | 2023-05-30 | 武汉噢易云计算股份有限公司 | 桌面启动的管理方法及装置 |
CN113918284B (zh) * | 2021-10-13 | 2022-08-02 | 江苏安超云软件有限公司 | 云主机批量迁移的方法及装置、电子设备和存储介质 |
CN114760242B (zh) * | 2022-03-30 | 2024-04-09 | 深信服科技股份有限公司 | 虚拟路由器的迁移方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090065126A (ko) * | 2007-12-17 | 2009-06-22 | 한국전자통신연구원 | 가상 머신 디스크 풀을 이용한 가상 머신 프로비저닝 방법 |
KR20140000720A (ko) * | 2006-05-08 | 2014-01-03 | 마이크로소프트 코포레이션 | 머신을 가상 머신으로 변환하는 방법 |
KR20140140719A (ko) * | 2013-05-30 | 2014-12-10 | 삼성에스디에스 주식회사 | 가상 머신 동기화 장치 및 시스템과 이를 이용한 장애 처리 방법 |
KR20150111609A (ko) * | 2014-03-26 | 2015-10-06 | 에스케이텔레콤 주식회사 | 가상화 환경에서의 장애 처리 방법 |
KR20160012863A (ko) * | 2014-07-24 | 2016-02-03 | 삼성전자주식회사 | 가상 머신을 실행하는 전자 장치 및 가상 머신을 실행하는 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893147B2 (en) * | 2012-01-13 | 2014-11-18 | Ca, Inc. | Providing a virtualized replication and high availability environment including a replication and high availability engine |
CN103838593B (zh) * | 2012-11-22 | 2020-04-03 | 华为技术有限公司 | 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机 |
CN103559108B (zh) * | 2013-11-11 | 2017-05-17 | 中国科学院信息工程研究所 | 一种基于虚拟化实现主备故障自动恢复的方法及系统 |
US9529617B2 (en) * | 2014-03-21 | 2016-12-27 | Ca, Inc. | Instant virtual machines |
CN105653345A (zh) | 2014-10-17 | 2016-06-08 | 伊姆西公司 | 用于支持对数据的非易失性随机访问的方法和设备 |
CN104331318B (zh) * | 2014-10-27 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种嵌入式双系统及其工作方法 |
CN104965757B (zh) * | 2015-01-21 | 2018-03-30 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
US9632881B1 (en) * | 2015-03-24 | 2017-04-25 | EMC IP Holding Company LLC | Replication of a virtual distributed volume |
CN105159798A (zh) * | 2015-08-28 | 2015-12-16 | 浪潮集团有限公司 | 一种虚拟机的双机热备方法、双机热备管理服务器和系统 |
-
2016
- 2016-12-28 CN CN201611240016.5A patent/CN106708603B/zh active Active
-
2017
- 2017-04-10 KR KR1020187015545A patent/KR102067918B1/ko active IP Right Grant
- 2017-04-10 JP JP2018519449A patent/JP6735820B2/ja active Active
- 2017-04-10 SG SG11201803894WA patent/SG11201803894WA/en unknown
- 2017-04-10 US US15/772,798 patent/US10740197B2/en active Active
- 2017-04-10 WO PCT/CN2017/079912 patent/WO2018120491A1/zh active Application Filing
- 2017-04-10 EP EP17857672.4A patent/EP3564815A4/en active Pending
- 2017-04-10 AU AU2017341159A patent/AU2017341159B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140000720A (ko) * | 2006-05-08 | 2014-01-03 | 마이크로소프트 코포레이션 | 머신을 가상 머신으로 변환하는 방법 |
KR20090065126A (ko) * | 2007-12-17 | 2009-06-22 | 한국전자통신연구원 | 가상 머신 디스크 풀을 이용한 가상 머신 프로비저닝 방법 |
KR20140140719A (ko) * | 2013-05-30 | 2014-12-10 | 삼성에스디에스 주식회사 | 가상 머신 동기화 장치 및 시스템과 이를 이용한 장애 처리 방법 |
KR20150111609A (ko) * | 2014-03-26 | 2015-10-06 | 에스케이텔레콤 주식회사 | 가상화 환경에서의 장애 처리 방법 |
KR20160012863A (ko) * | 2014-07-24 | 2016-02-03 | 삼성전자주식회사 | 가상 머신을 실행하는 전자 장치 및 가상 머신을 실행하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP6735820B2 (ja) | 2020-08-05 |
SG11201803894WA (en) | 2018-08-30 |
AU2017341159B2 (en) | 2019-07-25 |
WO2018120491A1 (zh) | 2018-07-05 |
KR102067918B1 (ko) | 2020-01-17 |
US10740197B2 (en) | 2020-08-11 |
AU2017341159A1 (en) | 2018-07-12 |
CN106708603B (zh) | 2019-04-26 |
JP2019504374A (ja) | 2019-02-14 |
EP3564815A1 (en) | 2019-11-06 |
CN106708603A (zh) | 2017-05-24 |
US20190272219A1 (en) | 2019-09-05 |
EP3564815A4 (en) | 2020-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102067918B1 (ko) | 가상 머신의 신속한 복원 방법, 장치 및 시스템 | |
US11681566B2 (en) | Load balancing and fault tolerant service in a distributed data system | |
US10114834B2 (en) | Exogenous virtual machine synchronization and replication | |
US9727429B1 (en) | Method and system for immediate recovery of replicated virtual machines | |
EP3106983B1 (en) | Virtual machine migration control method and apparatus | |
US9423956B2 (en) | Emulating a stretched storage device using a shared storage device | |
WO2014026387A1 (zh) | 一种云环境下虚拟应用双机的切换方法、装置及系统 | |
WO2013153472A1 (en) | Providing application based monitoring and recovery for a hypervisor of an ha cluster | |
WO2014076838A1 (ja) | 仮想マシン同期システム | |
US9442811B2 (en) | Emulating a stretched storage device using a shared replicated storage device | |
WO2014079194A1 (zh) | 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机 | |
WO2019100589A1 (zh) | 虚拟机快速扩容方法、装置、设备以及存储介质 | |
US20140244822A1 (en) | Management apparatus and method of managing server node | |
US20180165163A1 (en) | Fault tolerant application storage volumes for ensuring application availability and preventing data loss using suspend-resume techniques | |
US11762741B2 (en) | Storage system, storage node virtual machine restore method, and recording medium | |
US10180853B2 (en) | Session reliability for a redirected mass storage device | |
US10938703B1 (en) | Status monitoring system and method | |
US8909816B2 (en) | Implementing a logical unit reset command in a distributed storage system | |
KR101618992B1 (ko) | 가상 데스크탑 서비스 제공 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체와, 하드웨어와 결합되어 그 제어방법을 실행시키기 위하여 매체에 저장된 애플리케이션 | |
US20120180066A1 (en) | Virtual tape library cluster | |
US11977458B2 (en) | System and method for storage awareness service failover | |
JP2011081847A (ja) | 仮想計算機システム | |
JP2012185865A (ja) | 管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |