KR20200070085A - 정보를 처리하기 위한 방법 및 장치 - Google Patents

정보를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200070085A
KR20200070085A KR1020190112208A KR20190112208A KR20200070085A KR 20200070085 A KR20200070085 A KR 20200070085A KR 1020190112208 A KR1020190112208 A KR 1020190112208A KR 20190112208 A KR20190112208 A KR 20190112208A KR 20200070085 A KR20200070085 A KR 20200070085A
Authority
KR
South Korea
Prior art keywords
virtual machine
file
physical address
information
memory
Prior art date
Application number
KR1020190112208A
Other languages
English (en)
Other versions
KR102236522B1 (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 KR20200070085A publication Critical patent/KR20200070085A/ko
Application granted granted Critical
Publication of KR102236522B1 publication Critical patent/KR102236522B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • 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
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/1441Resetting or repowering
    • 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/45575Starting, stopping, suspending or resuming 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원의 실시형태는 정보를 처리하기 위한 방법 및 장치를 개시한다. 상기 방법의 하나의 구체적인 실시형태는, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하는 단계와 - 상기 목표 메모리는 운행하는 가상머신을 위해 프로덕션 커널에 의해 미리 할당된 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널에 의해 상기 목표 메모리에 저장됨 -, 상기 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하는 단계와, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 파일을 공유 저장영역에 저장하는 단계를 포함한다. 본 실시형태는 프로덕션 커널의 패닉시, 프로덕션 커널에 의해 운행되는 가상머신의 관련 파일을 공유 저장영역에 저장할 수 있다.

Description

정보를 처리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING INFORMATION}
본 출원의 실시형태는 컴퓨터 기술분야에 관한 것으로, 특히 정보를 처리하기 위한 방법 및 장치에 관한 것이다.
컴퓨터 기술의 발전과 더불어 컴퓨터 기술 및 인터넷 기술을 사용하여 제공되는 서비스가 점점 풍부해지고 있다. 가상화 기술을 이용하여 물리적 장치(전자기기)상에 논리상 컴퓨터(즉 가상머신)를 가상화함으로써 외부에 서비스를 제공할 수 있다. 가상머신의 안정성은 많은 요소의 영향을 받으며, 그 중 가상머신이 존재하는 호스트 컴퓨터의 다운은 의심할바없이 제어가 가장 어렵고 피해가 가장 크다. 호스트 컴퓨터의 다운은 운행중인 가상머신의 다운을 초래하여 가상머신의 서비스 제공에 영향을 주며 심지어 가상머신의 저장 미디어를 손상시켜 데이터 유실 등과 같은 심각한 사태를 일으킬 수 있다.
본 출원의 실시형태는 정보를 처리하기 위한 방법 및 장치를 개시한다.
제1 양태에 있어서, 본 출원의 실시형태는 정보를 처리하기 위한 방법을 제공하며, 상기 방법은, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하는 단계와 - 상기 목표 메모리는 운행하는 가상머신을 위해 상기 프로덕션 커널에 의해 미리 할당된 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널에 의해 상기 목표 메모리에 저장됨 -, 상기 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하는 단계와, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하는 단계를 포함한다.
일부 실시형태에 있어서, 상기 방법은 또한, 상기 파일의 파일 식별자를 포함하는 가상머신 복구 청구를 백업 전자기기에 전송하여, 상기 백업 전자기기가 상기 파일 식별자에 의해 상기 공유 저장영역으로부터 상기 파일을 취득하고, 상기 파일에 의해 상기 가상머신을 복구하는 단계를 더 포함한다.
일부 실시형태에 있어서, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하는 단계는, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 스냅 샷 파일을 생성하는 단계와, 상기 스냅 샷 파일을 공유 저장영역에 저장하는 단계를 포함한다.
일부 실시형태에 있어서, 상기 물리적 주소 정보는 상기 프로덕션 커널에 의해, 상기 가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 상기 가상머신에 전송하는 단계, 및 가상 주소와 물리적 주소 간의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 상기 가상머신 메모리의 가상 주소에 의해 물리적 주소 정보를 생성하는 단계를 통해 생성된다.
일부 실시형태에 있어서, 상기 목표 메모리로부터 상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 취득하는 단계는, 상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 가상 파일 시스템을 통해 상기 목표 메모리로부터 취득하는 단계를 포함한다.
제2 양태에 있어서, 본 출원의 실시형태는 정보를 처리하기 위한 장치를 제공하며, 상기 장치는, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하되, 상기 목표 메모리는 운행하는 가상머신을 위해 상기 프로덕션 커널에 의해 미리 할당된 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널에 의해 상기 목표 메모리에 저장하도록 구성되는 제1 취득 유닛과, 상기 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하도록 구성되는 제2 취득 유닛과, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하는 저장 유닛을 포함한다.
일부 실시형태에 있어서, 상기 장치는 또한, 상기 파일의 파일 식별자를 포함하는 가상머신 복구 청구를 백업 전자기기에 전송하여, 상기 백업 전자기기가 상기 파일 식별자에 의해 상기 공유 저장영역으로부터 상기 파일을 취득하고, 상기 파일에 의해 상기 가상머신을 복구하도록 구성되는 전송 유닛을 더 포함한다.
일부 실시형태에 있어서, 상기 저장 유닛은 또한, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 스냅 샷 파일을 생성하고, 상기 스냅 샷 파일을 공유 저장영역에 저장하도록 구성된다.
일부 실시형태에 있어서, 상기 물리적 주소 정보는 상기 프로덕션 커널에 의해, 가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 상기 가상머신에 전송하는 단계, 및 가상 주소와 물리적 주소 간의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 상기 가상머신 메모리의 가상 주소에 의해 물리적 주소 정보를 생성하는 단계를 통해 생성된다.
일부 실시형태에 있어서, 상기 제1 취득 유닛은 또한, 상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 가상 파일 시스템을 통해 상기 목표 메모리로부터 취득하도록 구성된다.
제3 양태에서, 본 출원의 실시형태는 하나 이상의 프로세서와, 하나 이상의 프로그램이 저장되어 있는 저장 장치를 포함하며, 하나 이상의 프로그램이 하나 이상의 프로세서에 의해 실행될 경우, 하나 이상의 프로세서가 제1 양태 중 어느 하나의 실현방식에 기재된 방법을 실현하도록 구성되는 서버를 제공한다.
제4 양태에서, 본 출원의 실시형태는 컴퓨터 프로그램이 저장되어 있는 컴퓨터 판독 가능 매체에 있어서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 제1 양태 중 어느 하나의 실현방식에 기재된 방법을 실현하는 컴퓨터 판독 가능 매체를 제공한다.
본 출원의 실시형태에 의한 정보를 처리하기 위한 방법 및 장치는, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득한 후, 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하고, 마지막으로 목표 데이터 및 가상머신 기기상태 정보에 의해 공유 메모리 영역에 파일을 저장함으로써, 프로덕션 커널의 패닉시, 프로덕션 커널에 의해 운행되는 가상머신의 관련 파일을 공유 저장영역에 저장함으로써 프로덕션 커널 패닉으로 인한 가상머신 데이터 유실을 방지한다.
이하, 첨부된 도면을 참조하면서 비한정적인 실시예를 상세하게 설명함으로써 본 출원의 다른 특징, 목적 및 이점은 더욱 명확해질 것이다.
도 1은 본 출원의 일 실시예에 적용될 수 있는 예시적인 시스템 구조도이다.
도 2는 본 출원에 따른 정보를 처리하기 위한 방법의 일 실시예의 흐름도이다.
도 3은 본 출원에 따른 정보를 처리하기 위한 방법의 하나의 응용 시나리오를 도시한 도면이다.
도 4는 본 출원에 따른 정보를 처리하기 위한 방법의 또 하나의 실시예의 흐름도이다.
도 5는 본 출원에 따른 정보를 처리하기 위한 장치의 일 실시예의 개략적인 구조도이다.
도 6은 본 출원의 실시예를 실현하기에 적합한 서버의 컴퓨터 시스템의 개략적인 구조도이다.
이하, 첨부 도면 및 실시예를 참조하면서 본 출원을 더 상세하게 설명한다.
본 명세서에 기술된 구체적인 실시예는 본 발명에 대한 한정이 아니라 관련 발명을 분석하기 위한 것임을 이해해야 할것이다. 또한, 설명의 편의상, 관련된 발명과 관련된 부분만이 첨부 도면에 도시되어 있음에 유의해야 한다.
본 출원중의 실시예 및 실시예 중의 특징들은 충돌되지 않는 정황하에서 서로 결합될 수 있음에 유의해야 한다. 이하, 첨부 도면에 실시예를 결합하여 본 출원을 상세하게 설명한다.
도 1은 본 출원의 실시예가 적용될 수 있는 정보를 처리하기 위한 방법 또는 정보를 처리하기 위한 장치의 예시적인 시스템 아키텍처(100)를 나타낸다.
도 1에 도시된 바와 같이, 시스템 아키텍처(100)는 호스트 컴퓨터(101), 서버(102) 및 네트워크(103)를 포함할 수 있다. 네트워크(103)는 호스트 컴퓨터(101)와 서버(102) 사이에 통신 링크를 제공하기 위한 매체로서 사용된다. 네트워크(103)는 예를 들어, 유선, 무선 통신 링크 혹은 광섬유 케이블 등과 같은 각종 접속 유형을 포함할 수 있다.
호스트 컴퓨터(101)는 클라우드 컴퓨팅을 제공하는 가상머신이 실행되는 물리적 장치일 수 있다. 가상머신(1011, 1012, 1013)은 호스트 컴퓨터(101)에서 실행될 수 있다. 가상머신(1011, 1012, 1013)은 호스트 컴퓨터(101)의 하드웨어 디바이스에 액세스할 수 있다. 예를 들면, 가상머신(1011, 1012, 1013)은 가상머신(1011, 1012, 1013) 상에 설치된 디바이스 드라이버를 통해 호스트 컴퓨터(101)상의 하드웨어 디바이스에 액세스할 수 있다. 일반적으로, 가상머신(1011, 1012, 1013)의 디바이스 드라이버가 호스트 컴퓨터(101)의 하드웨어 디바이스를 액세스하는 행위는 호스트 컴퓨터(101)상의 가상머신 모니터((Virtual Machine Monitor,VMM)에 의해 기록될 수 있다. 실제 응용 시나리오에서, 호스트 컴퓨터(101)는 다양한 클라우드 서비스를 제공하는 서버일 수 있고, 서버상에서 운행되는 가상머신의 상태 및 동작을 관리, 기록하기 위해 가상머신 모니터는 서버상에서 운행될 수 있다.
서버(102)는 데이터 저장을 진행하기 위한 파일 공유 저장 서버일 수 있다. 예를 들어, 서버(102)는 호스트 컴퓨터(101)에 의해 전송된 파일을 저장할 수 있다.
도 1의 호스트 컴퓨터, 가상머신, 네트워크 및 서버의 수량은 단지 예시적인 것임을 이해해야 한다. 실현의 수요에 따라 임의의 수량의 호스트 컴퓨터, 가상머신, 네트워크 및 서버를 구비할수 있다.
설명해야 할 것은, 본 출원의 실시예에 의해 제공되는 정보를 처리하기 위한 방법은 일반적으로 호스트 컴퓨터(101)에 의해 실행되며, 따라서, 정보를 처리하기 위한 장치는 일반적으로 호스트 컴퓨터(101)에 설치된다.
계속하여 도 2를 참조하면, 본 출원에 따른 정보를 처리하기 위한 방법의 하나의 실시예의 프로세스(200)를 나타낸다. 상기 정보를 처리하기 위한 방법은 다음의 단계를 포함한다.
단계(201)에서, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득한다.
본 실시예에 있어서, 정보를 처리하기 위한 방법의 실행 주체(예를 들어, 도 1에 도시된 호스트 컴퓨터(101))는 프로덕션 커널(production kernel 또는 first kernel)을 운행할 수 있고, 프로덕션 커널은 가상머신 및 가상머신 모니터를 운행할 수 있다. 가상머신은 소프트웨어를 통해 시뮬레이션되는 완벽한 하드웨어 시스템 기능을 갖춘, 완전히 격리된 환경에서 운행되는 완벽한 컴퓨터 시스템일 수 있다. 여기서, 프로덕션 커널은 컴퓨터 하드웨어 및 소프트웨어 리소스를 관리 및 제어하는 컴퓨터 프로그램일 수 있으며, 베어 메탈상에서 직접 실행되는 가장 기본적인 시스템 소프트웨어일 수 있다. 다른 소프트웨어는 프로덕션 커널의 지원을 받아야만 운행될수 있으나, 여기서, 프로덕션 커널은 예를 들어, Linux 시스템과 같은 임의의 유형의 시스템 소프트웨어일 수 있다.
실천에 있어서, 프로덕션 커널은 운행과정 중, 예를 들어, 커널 데드 락 이벤트, 커널 널 포인터 액세스 이벤트, 커널 모듈이 불합법적인 동작 이벤트를 감지하는 등과 같은 비정상적인 이벤트가 발생할 수 있다. 또한 예를 들어, 과부하와 같이 호스트 컴퓨터에서 운행되는 주요 메트릭에 이상이 발생할 수 있다. 사전에 정의된 일부 비정상적인 이벤트에 대해서는, 일단 발생하기만 하면 프로덕션 커널 자체에 돌이킬수 없는 오류, 즉 프로덕션 커널의 패닉이 가능하게 이미 나타나었음을 표시한다. 이때 프로덕션 커널은 타겟 커널 모듈의 호출을 통해 다운 조작을 실행하고, 그 다음 재부팅을 통해 복구를 시도할 수 있다. 예시로서, 타겟 커널 모듈은 공황(Panic)함수가 패키징된 모듈일 수 있다.
실천에 있어서, 커널 패닉을 대처하는 방식에는 여러가지가 있다. 예를 들어, Linux 운영체제 커널에는 여러가지 패닉 덤프 메커니즘이 존재하며, 이는 시스템 커널 패닉시, 사후 분석을 위해 메모리 내용을 저장한다. 예를 들어, kdump는 Linux 시스템에서 제공되는 물리적 장치가 다운되었을 때 운행시 메모리를 덤프하기 위한 메커니즘이다. 이는 시스템에 일부 메모리를 미리 남겨두고, 커널로 하여금 다운시 제2 커널을 시동시켜 운행시의 메모리에 대해 덤프 등 동작을 진행할수 있도록 한다. Kdump는 시스템 패닉, 데드 록 상태 또는 다운시 메모리 운행 변수를 덤프하기 위한 도구 및 서비스이다. 예를 들어, 시스템이 일단 붕괴되면 정상적인 커널은 동작할 수 없게 되며, 이때 kdump는 현재 운행 정보를 포착 취득(capture)하는 커널을 생성하고, 상기 커널은 현재 메모리에 있어서의 모든 운행 상태 및 데이터 정보를 추후 붕괴 원인 분석을 위해 dump core 파일에 수집하고, 일단 메모리 정보 수집이 완성되면 시스템은 자동으로 리부팅된다.
본 실시예에 있어서, 프로덕션 커널 패닉이 확정된 것에 응답하여, 실행 주체는 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득할 수 있다. 여기서 목표 메모리는 프로덕션 커널이 운행중인 가상머신을 위해 미리 할당하는 메모리일 수 있다. 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보는 프로덕션 커널에 의해 타겟 메모리에 저장된다. 예시로서, 실행 주체에서 운행중인 가상머신 모니터는 매개 가상머신의 가상머신 기기상태 정보 및 가상머신에 대응하는 물리적 주소 정보를 미리 상기 가상머신을 위해 할당한 타겟 메모리에 저장할 수 있다. 여기서, 가상머신 기기상태 정보는 가상머신의 가상 디바이스의 상태정보일 수 있다. 예를 들어, 가상 디바이스는 가상 네트워크 카드, 가상 디스크, 가상 CPU(Central Processing Unit, 중앙 처리 장치) 등을 포함하지만 이에 한정되지 않는다.
상기 실시예의 일부 선택적 실현방식들에서, 상기 물리적 주소 정보는 프로덕션 커널에 의해, 먼저 가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 가상머신에 전송한다. 그 다음, 가상 주소와 물리적 주소 간의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 가상머신 메모리의 가상 주소에 의해 물리적 주소 정보를 생성한다
본 실시예에 있어서, 프로덕션 커널 패닉이 확정된 것에 응답하여, 프로덕션 커널은 가상머신을 제어하여 운행을 정지시키는 운행 정지 명령을 운행중인 가상머신에 전송한다. 그 후, 미리 저장된 페이지 테이블 및 가상머신 메모리의 가상 주소에 의해 물리적 주소 정보를 생성할 수 있다. 예시로서, 가상머신 메모리의 가상 주소는 시작 어드레스 및 길이를 포함할 수 있는 연속적인 주소일 수 있다. 이와 같이, 실행 주체는 페이지 테이블에 기록된 가상 주소와 물리 어드레스의 대응관계에 의해, 연속적인 가상머신 메모리의 가상 주소를 이산적인 물리적 주소로 전환하여 링크 리스트 형식의 물리적 주소 정보를 얻을 수 있다.
단계(202)에서 물리적 주소 정보에 따라 데이터를 취득하여 목표 데이터로 한다.
본 실시예에 있어서, 실행 주체는 단계(201)에서 취득한 물리적 주소 정보에 따라 데이터를 취득하여 목표 데이터로 할수 있다. 실천에 있어서, 상기 물리적 주소 정보는 링크 리스트일 수 있다. 링크 리스트는 물리적 저장 유닛의 비연속적이고 비순차적인 저장구조이며, 데이터 요소의 논리적 순서는 링크 리스트 중의 포인터 링크 순서를 통해 실현된 것이다. 링크 리스트는 일련의 노드( 링크 리스트 중의 각 요소를 노드라고 함)로 구성되며, 각 노드는 데이터 요소가 저장되는 데이터 필드와, 다음 노드의 어드레스를 저장하는 포인터 필드의 두부분을 포함한다. 이와 같이, 실행 주체는 링크 리스트 중의 각 노드에 순차적으로 액세스하여 각 노드의 데이터를 취득하고, 취득한 데이터를 목표 데이터로 사용한다.
본 실시예의 일부 선택적 실현방식들에서, 상술한 단계(202)에서, 구체적으로 가상 파일 시스템을 통해 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득한다.
본 실현방식에서, 실행 주체는 가상 파일 시스템을 통해 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득할 수 있다. 예시로서, 상기 실행 주체의 메모리는 커널 공간(커널 모드)과 사용자 공간(사용자 모드)으로 나눌수 있다. 커널 공간은 동작 시스템 명령을 실행하는데 사용할 수 있으며, 사용자 공간은 사용자 프로그램 명령을 실행하는데 사용할 수 있다. 예시로서, 상기 프로덕션 커널은 커널 공간에서 운행될 수 있고, 본 출원의 정보를 처리하기 위한 방법의 각 단계는 사용자 공간에서 실행될 수 있다. 실천에 있어서, 커널 공간에 대한 일부 정보는 가상 파일 시스템을 통해 사용자 공간에 제공할 수 있다. 예를 들어, 가상 파일 시스템(예를 들어 /proc 파일 시스템)을 통해 사용자 공간에 데이터 인터페이스를 제공하고, 사용자 공간에서 실행되는 사용자 프로그램은 상기 데이터 인터페이스를 통해 커널 공간의 프로덕션 커널에 있는 가상머신 기기상태 정보 및 물리적 주소 정보를 취득할 수 있다.
단계(203)에서, 목표 데이터 및 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장한다.
본 실시예에 있어서, 실행 주체는 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 따라 파일을 공유 저장영역에 저장할 수 있다. 여기서, 상기 공유 저장영역은 데이터를 저장하기 위한 미리 설정된 전자기기(예를 들면, 도 1의 서버(102))의 저장영역일 수 있다. 예시로서, 실행 주체는 상기 목표 데이터 및 상기 가상머신 기기상태 정보를 파일로서 상기 공유 저장영역에 직접 저장할 수 있다.
본 실시예의 일부 선택적 실현방식들에서, 단계(203)에서, 구체적으로 먼저, 목표 데이터 및 가상머신 기기상태 정보에 따라 스냅 샷 파일을 생성한다. 그런 다음, 공유 저장영역에 스냅 샷 파일을 저장한다.
본 실현방식에서, 상기 실행 주체는 처음으로 목표 데이터 및 가상머신 기기상태 정보에 따라 스냅 샷 파일을 생성할 수 있다. 여기서, 스냅 샷은 지정된 데이터 세트에 대한, 복사 시점의 원본 데이터의 정적 이미지가 포함된 하나의 완전한 사용 가능 복사이다. 스냅 샷은 데이터 재현의 하나의 사본 또는 복사본일 수 있다. 설명해야 할 것은, 스냅 샷 기술은 현재 널리 연구되고 응용되고 있는 기술이므로 여기서는 설명을 생략한다. 그 다음, 실행 주체는 생성된 스냅 샷 파일을 공유 저장영역에 저장할 수 있다. 본 실현방식에서는 스냅 샷 기술을 통해 프로덕션 커널 패닉 시간, 프로덕션 커널에서 운행중인 가상머신에 대응하는 목표 데이터 및 가상머신 기기상태 정보를 보존하고, 공유 저장영역에 저장함으로써 프로덕션 커널 패닉으로 인한 가상머신 데이터의 유실을 방지할 수 있다.
계속하여 도 3을 참조하면, 도 3은 본 실시예에 따른 정보를 처리하기 위한 방법의 하나의 응용 시나리오를 도시한 도면이다. 도 3의 응용 시나리오에 있어서, 프로덕션 커널 패닉이 확정된 것에 응답하여, 호스트 컴퓨터(301)는 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하며, 그 중, 목표 메모리는 운행하는 가상머신을 위해 프로덕션 커널에 의해 미리 할당된 메모리이고, 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 프로덕션 커널에 의해 목표 메모리에 저장한다. 그리고, 호스트 컴퓨터(301)는 물리 어드레스 정보에 의해 데이터를 취득하여 목표 데이터로 할수 있다. 마지막으로, 호스트 컴퓨터(301)는 목표 데이터 및 가상머신 기기상태 정보에 의해 서버(302)의 공유 저장영역에 파일을 저장할 수 있다.
본 출원의 상기 실시예에 의한 방법은, 프로덕션 커널의 패닉시, 프로덕션 커널에 의해 운행되는 가상머신의 관련 파일을 공유 저장영역에 저장함으로써, 프로덕션 커널의 패닉으로 인한 가상머신 데이터 유실을 피면할 수 있다.
계속하여 도 4를 참조하면, 정보를 처리하기 위한 방법의 또 하나의 실시예의 프로세스(400)를 나타낸다. 상기 정보를 처리하기 위한 방법의 프로세스(400)는 다음의 단계를 포함한다.
단계(401)에서, 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득한다.
본 실시예에 있어서, 단계(401)는 도 2에 도시된 실시예의 단계(201)와 유사하므로, 상세한 설명은 생략한다.
단계(402)에서 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 한다.
본 실시예에 있어서, 단계(402)는 도 2에 도시된 실시예의 단계(202)와 유사하므로, 상세한 설명은 생략한다.
단계(403)에서 목표 데이터 및 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장한다.
본 실시예에 있어서, 단계(403)는 도 2에 도시된 실시예의 단계(203)와 유사하므로, 상세한 설명은 생략한다.
단계(404)에서 백업 전자기기에 가상머신 복구 청구를 전송한다.
본 실시예에 있어서, 상기 실행 주체는 가상머신 복구 청구를 미리 설정된 백업 전자기기에 전송할 수 있다. 상기 가상머신 복구 청구은 상기 파일의 파일 식별자를 포함할 수 있다. 이러한 방식으로, 상기 백업 전자기기는 파일 식별자에 의해 공유 저장영역으로부터 파일을 취득하고, 파일에 의해 백업 전자기기에서 프로덕션 커널 패닉시 프로덕션 커널에 의해 운행되던 가상머신을 국부적으로 복원할 수 있다. 설명해야 할 것은, 가상머신의 관련 파일에 의한 백업 전자기기에서의 가상머신 복구는 현재 널리 연구되고 응용되고 있는 공지의 기술로서, 상세한 설명은 생략한다.
도 4에서 알수 있는 바와 같이, 본 실시예에서의 정보를 처리하기 위한 방법의 프로세스(400)는 도 2에 대응하는 실시예에 비하여 백업 전자기기에 가상머신 복구 청구를 전송하는 단계를 강조한다. 따라서, 본 실시예에서 설명하는 해결방법은, 프로덕션 커널 패닉시 백업 전자기기를 사용하여 프로덕션 커널에서 운행되는 가상머신을 복구함으로써, 백업 전자기기상에서의 가상머신의 계속적인 운행을 실현하고 가상머신의 높은 가용성을 보장하였다.
진일보로 도 5를 참조하면, 상기 각 도면에 도시된 방법의 구현으로서, 본 출원은 정보를 처리하기 위한 장치의 실시예를 제공하며, 상기 장치의 실시예는 도 2에 도시된 방법의 실시예에 대응되며, 상기 장치는 구체적으로 다양한 전자기기에 응용될 수 있다.
도 5에 도시된 바와 같이, 본 실시예의 정보를 처리하기 위한 장치(500)는, 제1 취득 유닛(501), 제2 취득 유닛(502) 및 저장 유닛(503)을 포함한다. 제1 취득 유닛(501)은 프로덕션 커널 패닉이 확정된 것에 응답하여 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하되, 상기 목표 메모리는 운행하는 가상머신을 위해 상기 프로덕션 커널이 미리 할당한 메모리이며, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널로부터 상기 목표 메모리에 저장하도록 구성되며, 제2 취득 유닛(502)은 상기 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하도록 구성되며, 저장 유닛(503)은 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하도록 구성된다.
본 실시예에 있어서, 정보를 처리하기 위한 장치(500)의 제1 취득 유닛(501), 제2 취득 유닛(502) 및 저장 유닛(503)의 구체적인 처리 및 기술적인 효과는 도 2의 대응하는 실시예의 단계(201), 단계(202), 단계(203)의 관련 설명을 참조할 수 있으므로, 더 이상 설명하지 않는다.
본 실시예의 일부 선택적인 실현방식에 있어서, 상기 장치(500)는 또한, 상기 파일의 파일 식별자를 포함하는 가상머신 복구 청구를 백업 전자기기에 전송함으로써 상기 백업 전자기기가 상기 파일 식별자에 의해 상기 공유 저장영역으로부터 상기 파일을 취득하고, 상기 파일에 의해 상기 가상머신을 복구하도록 구성되는 전송 유닛(미도시)을 더 포함할 수 있다.
본 실시예의 일부 선택적인 실현방식에 있어서, 상기 저장 유닛(503)은 또한, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 스냅 샷 파일을 생성하고, 상기 스냅 샷 파일을 공유 저장영역에 저장하도록 구성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 상기 물리적 주소 정보는 상기 프로덕션 커널로부터, 상기 가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 상기 가상머신에 전송하는 단계, 및 가상 주소와 물리적 주소 간의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 상기 가상머신 메모리의 가상 주소에 의해 물리적 주소 정보를 생성하는 단계를 통해 생성된다.
본 실시예의 일부 선택적인 실현방식에 있어서, 상기 제1 취득 유닛(501)은 또한, 상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 가상 파일 시스템을 통해 상기 목표 메모리로부터 취득하도록 구성된다.
아래에 도 6을 참조하면, 본 출원의 실시예의 서버를 실현하는데 적합한 컴퓨터 시스템(600)의 개략적인 구조도를 나타낸다. 도 6에 도시된 서버는 단지 하나의 예시일뿐 본 출원의 실시예의 기능 및 사용 범위에 대해 어떠한 제한도 하지 않는다.
도 6에 나타낸 바와 같이, 컴퓨터 시스템(600)은 중앙 처리 유닛(CPU)(601)을 구비하며, CPU(601)는 읽기 전용 메모리(ROM)(602)에 저장되어 있는 프로그램 또는 저장부(608)로부터 랜덤 액세스 메모리(RAM)(603)에 로드된 프로그램에 따라 다양한 적당한 동작 및 처리를 실행할 수 있다. RAM(603)에는 시스템(600)의 동작에 필요한 각종 프로그램 및 데이터가 더 저장되어 있다. CPU(601), ROM(602), 및 RAM(603)은 버스(604)를 통해 서로 연결되어 있다. 입력/출력(I/O) 인터페이스(605)도 버스(604)에 연결되어 있다.
I/O 인터페이스(605)에 연결되는 부재로서, 키보드, 마우스 등을 포함하는 입력부(606)와, 예를 들어, 음극선관(CRT), 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력부(607)와, 하드 디스크 등을 포함하는 저장부(608)와, 예를 들어 LAN 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(609)가 포함된다. 통신부(609)는 인터넷과 같은 네트워크를 통해 통신 처리를 실행한다. 드라이버(610)는 또한 필요에 따라 I/O 인터페이스(605)에 연결된다. 이동식 미디어(611), 예를 들어, 마그네틱 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 등이, 필요에 따라 드라이버(610)에 장착됨으로서 드라이버(610)에서 판독된 컴퓨터 프로그램이 필요에 따라 저장부(608)에 장착된다.
특히, 본 발명의 실시예에 따르면, 상기 흐름도 참조에서 설명된 과정은 컴퓨터 소프트웨어 프로그램으로 실현될 수 있다. 예를 들어, 본 발명의 실시예는, 컴퓨터 판독 가능 매체에 로드되는 컴퓨터 프로그램을 포함한 컴퓨터 프로그램 제품을 제공하며, 상기 컴퓨터 프로그램은 흐름도에 표시된 방법을 실행하기 위한 프로그램 코드를 포함한다. 이러한 실시예에서, 상기 컴퓨터 프로그램은 통신부(609)를 통해 네트워크로부터 다운로드되어 설치 및/또는 이동식 미디어(611)로부터 장착될 수 있다. 상기 컴퓨터 프로그램은 중앙 처리 유닛(CPU)(601)에 의해 실행시, 본 출원의 방법에 한정된 상기 기능을 실행한다.
설명해야 할것은, 본 출원에 기재되는 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 신호 매체 또는 컴퓨터 판독 가능 저장 매체 또는 상기 양자의 임의적인 조합일 수 있다. 컴퓨터 판독 가능 저장 매체는 예컨대 전기, 자기, 광, 전자기, 적외선 또는 반도체의 시스템, 장치 또는 소자, 혹은 임의적인 조합일 수 있지만 이에 한정되지 않는다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는, 하나 또는 복수의 전도선을 구비한 전기적 연결, 휴대형 컴퓨터 자기 디스크, 하드디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 삭제 가능 프로그래밍 읽기 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대형 콤팩터 자기디스크 읽기 전용 메모리(CD-ROM), 광 메모리 소자, 자기 메모리 소자, 또는 상술한 요소들의 임의적인 적당한 조합을 포함하며 이에 한정되지 않는다. 본 출원에 있어서, 컴퓨터 판독 가능 저장 매체는 프로그램을 포함하거나 저장한 임의의 유형 매체일 수 있으며, 상기 프로그램은 명령 실행 시스템, 장치 또는 소자에 의해 사용되거나 그것들과 결합 사용될 수 있다. 본 출원에서, 컴퓨터 판독 가능 신호 매체는 베이스 밴드에 포함되거나, 캐리어 파동의 일부분으로서 전파되는 데이터 신호에 포함될 수 있는데, 그 중에는 컴퓨터 판독 가능 프로그램 코드가 탑재되어 있다. 이러한 전파되는 데이터 신호는 다양한 형식을 적용할 수 있는 바, 전자기 신호, 광 신호 또는 상술한 신호들의 임의적인 조합을 포함할 수 있지만 이에 한정되지는 않는다. 컴퓨터 판독 가능 신호 매체는 또한 컴퓨터 판독 가능 저장 매체 이외의 임의의 컴퓨터 판독 가능 매체일 수도 있는데, 상기 컴퓨터 판독 가능 매체는 프로그램을 전송, 전파 또는 전송할 수 있는 바, 상기 프로그램은 명령 실행 시스템, 장치 또는 소자 또는 이들의 결합에 의해 사용되는 프로그램이다. 컴퓨터 판독 가능 매체 상에 포함되는 프로그램 코드는 임의의 적절한 매체를 이용하여 전송될 수 있는데, 무선, 전선, 광 케이블, RF 등 또는 상술한 요소들의 임의의 적절한 조합을 포함할 수 있으나 이에 한정되지 않는다.
한가지 또는 여러가지 프로그램 설계 언어 또는 그 조합에 의해 본 출원에 따라 동작하는 컴퓨터 프로그램 코드를 프로그래밍할 수 있고, 상기 프로그램 설계 언어는 객체를 지향한 프로그램 설계 언어, 예컨대 Java, Smalltalk, C++를 포함하고, 상규적 과정식 프로그램 설계 언어, 예컨대 "C" 언어 또는 유사한 프로그램 설계 언어를 더 포함한다. 프로그램 코드는 완전히 사용자 컴퓨터 상에서 실행되거나, 부분적으로 사용자 컴퓨터 상에서 실행되거나, 하나의 독립적인 소프트웨어 패킷으로서 실행되거나, 일부분은 사용자 컴퓨터 상에서 타부분은 원격 컴퓨터 상에서 실행되거나, 완전히 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 원격 컴퓨터가 섭렵되는 경우, 원격 컴퓨터는 임의의 종류의 네트워크 - 로컬 영역 네트워크(LAN) 또는 광대 영역 네트워크(WAN)를 통해 사용자 컴퓨터에 연결될 수 있다. 또는, 외부 컴퓨터(예를 들면, 인터넷 서비스 제공업체를 이용하여 인터넷을 통해 연결)에 연결될 수 있다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 동작을 도시하였다. 이러한 방면에 있어서, 흐름도 또는 블록도 중의 각 블록은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 해당 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령을 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능들은 첨부된 도면에 표기된 순서와 다른 순서로 수행될 수도 있음을 유의하여야 한다. 예를 들어, 순차적으로 표시된 두개의 블록은 실제적으로 거의 동시에 실행될 수 있고, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 결정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록들의 조합은 규정된 기능 또는 동작을 실행하는 하드웨어 기반의 전용 시스템으로 실시되거나, 전용 하드웨어와 컴퓨터 명령의 조합으로 실시될 수 있음을 유의하여야 한다.
본 출원의 실시예에 설명된 관련 유닛들은 소프트웨어의 방식으로 실시될 수 있거나, 또는 하드웨어의 방식으로 실시될 수도 있다. 설명된 유닛은 또한 프로세서에 설치될 수도 있으며, 예를 들어, 제1 취득 유닛, 제2 취득 유닛, 및 저장 유닛을 포함하는 프로세서로서 설명될 수 있다. 이러한 유닛의 명칭은 특정 상황에서 상기 유닛 자체에 대한 제한을 구성하지 않는다. 예를 들어 제1 취득 유닛은 "프로덕션 커널 패닉이 확정된 것에 응답하여 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하는 유닛"으로 설명될 수도 있다.
다른 한 방면에 있어서, 본 출원은 컴퓨터 판독 가능한 매체를 더 제공하며, 해당 컴퓨터 판독 가능한 매체는 상술한 실시예에 설명된 장치에 포함되는 것일 수 있으며, 또는 해당 장치에 설치되는 것이 아니라 단독으로 존재할 수도 있다. 상기 컴퓨터 판독 가능 매체는 하나 이상의 프로그램을 담고 있으며, 상기 하나 이상의 프로그램이 장치에 의해 실행될 경우, 상기 장치는 프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하는 단계에 있어서, 상기 목표 메모리는 운행하는 가상머신을 위해 프로덕션 커널에 의해 미리 할당된 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널로부터 상기 목표 메모리에 저장되는 단계와, 상기 물리적 주소 정보에 의해 데이터를 취득하고 목표 데이터로 하는 단계와, 상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 파일을 공유 저장영역에 저장하는 단계를 실행하도록 한다.
이상의 설명은 단지 본 출원의 비교적 바람직한 실시예 및 운용한 기술적 원리에 대한 설명이다. 본 출원에 관련된 발명의 범위가 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라, 본 발명의 주지를 벗어나지 않는한 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 이루어진 기타 기술적 방안들도 포함되어야 함을 해당 기술분야의 당업자는 이해할 것이다. 예를 들어, 상기 특징들과 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징을 서로 대체하여 이루어진 기술적 방안도 포함된다.

Claims (12)

  1. 정보를 처리하기 위한 방법에 있어서,
    프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하는 단계와 - 상기 목표 메모리는 운행하는 가상머신을 위해 상기 프로덕션 커널에 의해 미리 할당된 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널에 의해 상기 목표 메모리에 저장됨 -,
    상기 물리적 주소 정보에 의해, 데이터를 취득하여 목표 데이터로 하는 단계와,
    상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하는 단계를 포함하는 정보를 처리하기 위한 방법.
  2. 제1항에 있어서,
    상기 방법은,
    상기 파일의 파일 식별자를 포함하는 가상머신 복구 청구를 백업 전자기기에 전송하여, 상기 백업 전자기기가 상기 파일 식별자에 의해 상기 공유 저장영역으로부터 상기 파일을 취득함과 동시에 상기 파일에 의해 상기 가상머신을 복구하도록 하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하는 단계는,
    상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 스냅 샷 파일을 생성하는 단계와,
    상기 스냅 샷 파일을 공유 저장영역에 저장하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 물리적 주소 정보는 상기 프로덕션 커널에 의해
    상기 가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 상기 가상머신에 전송하는 단계, 및
    가상 주소와 물리적 주소의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 상기 가상머신 메모리의 가상 주소에 의해, 물리적 주소 정보를 생성하는 단계를 통해 생성되는 방법.
  5. 제1항에 있어서,
    상기 목표 메모리로부터 상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 취득하는 단계는,
    상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 가상 파일 시스템을 통해 상기 목표 메모리로부터 취득하는 단계를 포함하는, 방법.
  6. 정보를 처리하기 위한 장치에 있어서,
    프로덕션 커널 패닉이 확정된 것에 응답하여, 목표 메모리로부터 가상머신 기기상태 정보 및 물리적 주소 정보를 취득하되, 상기 목표 메모리는 상기 프로덕션 커널이 운행하는 가상머신을 위해 미리 할당한 메모리이고, 상기 가상머신의 가상머신 기기상태 정보 및 가상머신 메모리의 가상 주소에 대응하는 물리적 주소 정보를 상기 프로덕션 커널에 의해 상기 목표 메모리에 저장하도록 구성되는 제1 취득 유닛과,
    상기 물리적 주소 정보에 의해 데이터를 취득하여 목표 데이터로 하도록 구성되는 제2 취득 유닛과,
    상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 공유 저장영역에 파일을 저장하도록 구성되는 저장 유닛을 포함하는 정보를 처리하기 위한 장치.
  7. 제6항에 있어서,
    상기 장치는,
    상기 파일의 파일 식별자를 포함하는 가상머신 복구 청구를 백업 전자기기에 전송하여, 상기 백업 전자기기가 상기 파일 식별자에 의해 상기 공유 저장영역으로부터 상기 파일을 취득하고, 상기 파일에 의해 상기 가상머신을 복구하도록 구성되는 전송 유닛을 더 포함하는 장치.
  8. 제6항에 있어서,
    상기 저장 유닛은 또한
    상기 목표 데이터 및 상기 가상머신 기기상태 정보에 의해 스냅 샷 파일을 생성하고,
    상기 스냅 샷 파일을 공유 저장영역에 저장하도록 구성되는 장치.
  9. 제6항에 있어서,
    상기 물리적 주소 정보는 상기 프로덕션 커널에 의해
    가상머신을 제어하여 운행을 정지시키기 위한 운행 정지 명령을 상기 가상머신에 전송하는 단계, 및
    가상 주소와 물리적 주소 간의 대응관계를 설명하기 위한 미리 저장된 페이지 테이블 및 상기 가상머신 메모리의 가상 주소에 의해, 물리적 주소 정보를 생성하는 단계를 통해 생성되는 장치.
  10. 제6항에 있어서,
    상기 제1 취득 유닛은 또한,
    상기 가상머신 기기상태 정보 및 상기 물리적 주소 정보를 가상 파일 시스템을 통해 상기 목표 메모리로부터 취득하도록 구성되는 장치.
  11. 하나 이상의 프로세서, 및
    하나 이상의 프로그램이 저장되는 저장 장치를 포함하며,
    상기 하나 이상의 프로그램이 상기 하나 이상의 프로세서에 의해 실행될 경우, 상기 하나 이상의 프로세서가 제1항 내지 제5항 중 어느 한 항에 기재된 방법을 실현하도록 하는 서버.
  12. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 매체에 있어서,
    상기 프로그램이 프로세서에 의해 실행될 경우, 제1항 내지 제5항 중 어느 한 항에 기재된 방법을 실현하는 컴퓨터 판독 가능 매체.
KR1020190112208A 2018-12-07 2019-09-10 정보를 처리하기 위한 방법 및 장치 KR102236522B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811497981.XA CN109597677B (zh) 2018-12-07 2018-12-07 用于处理信息的方法和装置
CN201811497981.X 2018-12-07

Publications (2)

Publication Number Publication Date
KR20200070085A true KR20200070085A (ko) 2020-06-17
KR102236522B1 KR102236522B1 (ko) 2021-04-07

Family

ID=65961455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190112208A KR102236522B1 (ko) 2018-12-07 2019-09-10 정보를 처리하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US11392461B2 (ko)
JP (1) JP6799652B2 (ko)
KR (1) KR102236522B1 (ko)
CN (1) CN109597677B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379295B1 (en) * 2019-05-15 2022-07-05 Amazon Technologies, Inc. Recovery protocols for system malfunctions in virtual computing environments
CN110990122B (zh) * 2019-11-28 2023-09-08 海光信息技术股份有限公司 一种虚拟机迁移方法和装置
CN112860506B (zh) * 2019-11-28 2024-05-17 阿里巴巴集团控股有限公司 监控数据的处理方法、装置、系统和存储介质
CN111026504B (zh) * 2019-12-06 2023-04-07 海光信息技术股份有限公司 配置虚拟机中获取处理器信息的指令的处理方法、装置、cpu芯片、片上系统和计算机
CN113127263B (zh) * 2020-01-15 2023-04-07 中移(苏州)软件技术有限公司 一种内核崩溃恢复方法、装置、设备及存储介质
CN111367472A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 虚拟化方法和装置
CN111506508A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 边缘计算测试方法、装置、设备和可读存储介质
CN111611145B (zh) * 2020-05-29 2023-03-31 北京字节跳动网络技术有限公司 崩溃信息收集方法、装置、存储介质及电子设备
CN111745650B (zh) * 2020-06-15 2021-10-15 哈工大机器人(合肥)国际创新研究院 一种机器人操作系统的运行方法和机器人的控制方法
CN112685133A (zh) * 2020-12-29 2021-04-20 联想(北京)有限公司 一种数据处理方法及电子装置
CN115543364A (zh) * 2021-06-30 2022-12-30 华为云计算技术有限公司 内核升级方法及装置
CN113886019B (zh) * 2021-10-20 2024-04-30 北京字节跳动网络技术有限公司 虚拟机创建方法、装置、系统、介质和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090079012A (ko) * 2008-01-16 2009-07-21 삼성전자주식회사 가상 머신의 상태를 저장, 복원하는 방법 및 장치
US20110246986A1 (en) * 2010-03-31 2011-10-06 Microsoft Corporation Virtual Machine Crash File Generation Techniques
US20160364341A1 (en) * 2015-06-15 2016-12-15 Intel Corporation Virtualization-based platform protection technology
CN107704314A (zh) * 2017-11-09 2018-02-16 北京百度网讯科技有限公司 用于迁移虚拟机的方法和装置
US20180074956A1 (en) * 2016-09-09 2018-03-15 Alibaba Group Holding Limited Method, apparatus, and electronic device for modifying memory data of a virtual machine
US20180276081A1 (en) * 2015-11-30 2018-09-27 Huawei Technologies Co., Ltd. Method and Apparatus for Generating Virtual Machine Snapshot

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529897B1 (en) * 2003-12-31 2009-05-05 Vmware, Inc. Generating and using checkpoints in a virtual computer system
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US7505960B2 (en) * 2005-11-15 2009-03-17 Microsoft Corporation Scalable retrieval of data entries using an array index or a secondary key
US9317314B2 (en) * 2010-06-29 2016-04-19 Microsoft Techology Licensing, Llc Techniques for migrating a virtual machine using shared storage
US9336036B2 (en) * 2011-03-31 2016-05-10 Intel Corporation System method for memory virtualization control logic for translating virtual memory in space of guest memory based on translated codes in response to memory failure
CN102306126B (zh) * 2011-08-24 2014-06-04 华为技术有限公司 内存管理方法、装置和系统
CN102929747B (zh) * 2012-11-05 2015-07-01 中标软件有限公司 基于龙芯服务器的Linux操作系统崩溃转储的处理方法
US9110762B2 (en) * 2012-12-04 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine-preserving host updates
CN104111878A (zh) * 2014-02-20 2014-10-22 西安未来国际信息股份有限公司 基于虚拟机快照的hadoop集群自动化恢复技术
US10846117B1 (en) * 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
CN107025146B (zh) * 2016-01-30 2019-10-18 华为技术有限公司 一种文件生成方法、装置和系统
US10255147B2 (en) * 2016-04-14 2019-04-09 Vmware, Inc. Fault tolerance for containers in a virtualized computing environment
CN106201652B (zh) * 2016-06-29 2020-05-26 联想(北京)有限公司 一种数据处理方法及虚拟机
CN107247619B (zh) * 2017-06-12 2019-07-23 优刻得科技股份有限公司 虚拟机热迁移方法、装置、系统、存储介质及设备
US10430261B2 (en) * 2017-08-15 2019-10-01 Vmware, Inc. Detecting a guest operating system crash on a virtual computing instance
CN108932170A (zh) * 2018-06-06 2018-12-04 华东师范大学 一种同驻虚拟机间高效共享内存文件系统的机制

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090079012A (ko) * 2008-01-16 2009-07-21 삼성전자주식회사 가상 머신의 상태를 저장, 복원하는 방법 및 장치
US20110246986A1 (en) * 2010-03-31 2011-10-06 Microsoft Corporation Virtual Machine Crash File Generation Techniques
US20160364341A1 (en) * 2015-06-15 2016-12-15 Intel Corporation Virtualization-based platform protection technology
US20180276081A1 (en) * 2015-11-30 2018-09-27 Huawei Technologies Co., Ltd. Method and Apparatus for Generating Virtual Machine Snapshot
US20180074956A1 (en) * 2016-09-09 2018-03-15 Alibaba Group Holding Limited Method, apparatus, and electronic device for modifying memory data of a virtual machine
CN107704314A (zh) * 2017-11-09 2018-02-16 北京百度网讯科技有限公司 用于迁移虚拟机的方法和装置

Also Published As

Publication number Publication date
JP2020091835A (ja) 2020-06-11
CN109597677A (zh) 2019-04-09
US20200183795A1 (en) 2020-06-11
US11392461B2 (en) 2022-07-19
JP6799652B2 (ja) 2020-12-16
KR102236522B1 (ko) 2021-04-07
CN109597677B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
KR102236522B1 (ko) 정보를 처리하기 위한 방법 및 장치
US10394547B2 (en) Applying update to snapshots of virtual machine
US9658942B2 (en) Dynamic tracing framework for debugging in virtualized environments
JP6516730B2 (ja) アプリケーションをバックアップ及び復元するための方法及び装置
US10255086B2 (en) Determining optimal methods for creating virtual machines
US20120167090A1 (en) Hypervisor for starting a virtual machine
US10592312B2 (en) Message oriented middleware with integrated rules engine
US8086900B2 (en) System, method and computer program product for testing a boot image
CN107368353B (zh) 一种实现虚拟机内存热添加的方法和装置
US10725890B1 (en) Program testing service
US20150161023A1 (en) Distributed debugging of an application in a distributed computing environment
CN107918555B (zh) 基于物理主机的用于处理数据的方法和装置
US8738873B2 (en) Interfacing with a point-in-time copy service architecture
JP2012208752A (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
US10997058B2 (en) Method for performance analysis in a continuous integration pipeline
CN114661420B (zh) 基于Kubernetes容器平台的应用保护方法、装置及系统
US11449388B1 (en) Synthesized network block devices for recovery of image backups
CN111290818A (zh) 创建应用程序的操作方法及应用程序的操作方法
CN113206760B (zh) 用于vrf资源分配的接口配置更新方法、装置与电子设备
US11977636B2 (en) Storage transaction log
US9858159B2 (en) Fault tolerant distributed computation
CN114003341A (zh) 分布式存储服务的升级方法、装置、电子设备及存储介质
CN117319368A (zh) 一种远程控制管理方法及相关装置
CN116560821A (zh) 一种运维系统、方法、装置、设备及存储介质
Sultania Monitoring and Failure Recovery of Cloud-Managed Digital Signage

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant