KR101628436B1 - Method for processing data of virtual machine - Google Patents

Method for processing data of virtual machine Download PDF

Info

Publication number
KR101628436B1
KR101628436B1 KR1020130011608A KR20130011608A KR101628436B1 KR 101628436 B1 KR101628436 B1 KR 101628436B1 KR 1020130011608 A KR1020130011608 A KR 1020130011608A KR 20130011608 A KR20130011608 A KR 20130011608A KR 101628436 B1 KR101628436 B1 KR 101628436B1
Authority
KR
South Korea
Prior art keywords
input
information
data
input fingerprint
sector
Prior art date
Application number
KR1020130011608A
Other languages
Korean (ko)
Other versions
KR20140099353A (en
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 단국대학교 산학협력단
Priority to KR1020130011608A priority Critical patent/KR101628436B1/en
Publication of KR20140099353A publication Critical patent/KR20140099353A/en
Application granted granted Critical
Publication of KR101628436B1 publication Critical patent/KR101628436B1/en

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 머신의 데이터 처리 방법이 개시된다. 입력 데이터 처리 방법은, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성하는 단계, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하는 단계, 및 제1 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는 경우, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계를 포함한다. 따라서, 가상 머신의 입출력 성능을 향상시킬 수 있다.A data processing method of a virtual machine is disclosed. The input data processing method includes the steps of generating a first input fingerprint by applying a hash algorithm to data input request information of a virtual machine, determining whether there is an input fingerprint identical to the first input fingerprint among databases formed based on the input fingerprint previously generated And setting first mapping information for inputting data corresponding to the first input fingerprint when the input fingerprint identical to the first input fingerprint exists in the database. Therefore, the input / output performance of the virtual machine can be improved.

Description

가상 머신의 데이터 처리 방법{METHOD FOR PROCESSING DATA OF VIRTUAL MACHINE}METHOD FOR PROCESSING DATA OF VIRTUAL MACHINE [0002]

본 발명은 데이터 처리 방법에 관한 것으로, 더욱 상세하게는 가상화 시스템에 있어서 가상 머신의 입출력 데이터를 처리하기 위한 가상 머신의 데이터 처리 방법에 관한 것이다.The present invention relates to a data processing method, and more particularly, to a virtual machine data processing method for processing input / output data of a virtual machine in a virtualization system.

일반적으로, 입출력(input/output, I/O) 요청이 발생한 경우 가상 머신은(virtual machine)은 입출력 요청 정보를 컨트롤 도메인(control domain) 내의 드라이버(driver)에 전송하고, 드라이버는 입출력 요청 정보를 기초로 저장 장치를 제어하여 가상 머신으로부터 요청된 입출력을 수행한다.Generally, when an input / output (I / O) request is issued, the virtual machine transmits input / output request information to a driver in a control domain, And controls the storage device as a basis to perform the requested input / output from the virtual machine.

이때 복수의 가상 머신들이 동시에 입출력을 요청하는 경우, 컨트롤 도메인 내의 드라이버는 부하(load)의 증가로 인하여 입출력 요청의 처리 능력이 저하되고, 이에 따라 가상 머신들의 입출력 처리 능력도 저하되는 문제점이 있다.In this case, when a plurality of virtual machines request input / output at the same time, the processing capacity of the input / output request is lowered due to an increase in the load of the driver in the control domain, thereby degrading the input / output processing capability of the virtual machines.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 가상 머신들 간의 입력 데이터의 중복을 제거하여 입력 성능을 향상시키기 위한 가상 머신의 입력 데이터 처리 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide an input data processing method of a virtual machine for eliminating redundancy of input data between virtual machines to improve input performance.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 가상 머신들 간의 출력 데이터의 중복을 제거하여 출력 성능을 향상시키기 위한 가상 머신의 출력 데이터 처리 방법을 제공하는 데 있다.Another object of the present invention is to provide a method of processing output data of a virtual machine for eliminating duplication of output data between virtual machines to improve output performance.

상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 가상 머신들 간의 입출력 데이터의 중복을 제거하여 입출력 성능을 향상시키기 위한 가상화 장치를 제공하는 데 있다.It is another object of the present invention to provide a virtualization apparatus for improving input / output performance by eliminating duplication of input / output data between virtual machines.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 입력 데이터 처리 방법은, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성하는 단계, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 상기 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하는 단계, 및 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하는 경우, 상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for processing input data, the method comprising: generating a first input fingerprint by applying a hash algorithm to data input request information of a virtual machine; Determining whether there is an input fingerprint that is the same as the first input fingerprint among the formed databases, and if the same input fingerprint exists in the database, comparing the data corresponding to the input fingerprint that is the same as the first input fingerprint And setting first mapping information for inputting data corresponding to the first input fingerprint so as to correspond to mapping information indicating an input address.

여기서, 상기 입력 데이터 처리 방법은, 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하지 않는 경우, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계, 및 상기 제1 매핑 정보가 나타내는 주소에 상기 제1 입력 지문과 대응된 데이터를 입력하는 단계를 더 포함할 수 있다.The input data processing method may further include setting first mapping information for inputting data corresponding to the first input fingerprint when the input fingerprint identical to the first input fingerprint does not exist in the database, And inputting data corresponding to the first input fingerprint to an address indicated by the first mapping information.

여기서, 상기 해시 알고리즘은 SHA 일 수 있다.Here, the hash algorithm may be SHA.

여기서, 상기 데이터베이스는 RB-트리 구조를 기반으로 형성될 수 있다.Here, the database may be formed based on an RB-tree structure.

여기서, 상기 매핑 정보는 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 상기 블록 정보에 대응된 물리적 주소를 나타내는 섹터 정보 및 상기 블록 내의 섹터에 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함할 수 있다.Here, the mapping information may include block information indicating a logical address to which data is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the data input to the sector in the block is referred to have.

여기서, 상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계는, 블록 정보를 상기 제1 입력 지문과 대응된 데이터에 대한 논리적 주소로 설정하고, 섹터 정보를 상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터에 대한 물리적 주소로 설정하고, 참조 정보를 참조되는 데이터가 없음을 나타내는 값으로 설정할 수 있다.The step of setting the first mapping information for inputting the data corresponding to the first input fingerprint so as to correspond to the mapping information indicating the input address of the data corresponding to the input fingerprint identical to the first input fingerprint, Sets block information as a logical address for data corresponding to the first input fingerprint, sets sector information as a physical address for data corresponding to the same input fingerprint as the first input fingerprint, Can be set to a value indicating that there is none.

상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 출력 데이터 처리 방법은, 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득하는 단계, 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 상기 블록 정보와 대응된 매핑 정보를 획득하는 단계, 상기 매핑 정보로부터 상기 출력 요청된 데이터가 입력된 물리적 주소를 획득하는 단계, 및 획득된 물리적 주소에 입력된 데이터를 상기 가상 머신에 제공하는 단계를 포함한다.According to another aspect of the present invention, there is provided an output data processing method including: obtaining block information indicating a logical address to which output requested data is input, from data output request information of a virtual machine; Obtaining mapping information corresponding to the block information from a mapping table formed based on an input logical address and physical address, obtaining a physical address to which the output requested data is input from the mapping information, And providing data input to the address to the virtual machine.

여기서, 상기 매핑 정보는 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 상기 블록 정보에 대응된 물리적 주소를 나타내는 섹터 정보 및 상기 섹터에 입력된 데이터가 참조되는 횟수를 나타내는 참조 정보를 포함할 수 있다.Here, the mapping information may include block information indicating a logical address to which data is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the data input to the sector is referred to.

상기 또 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 가상화 장치는, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성하고, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 상기 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하고, 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하는 경우, 상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 처리부, 및 상기 처리부에서 처리되는 정보 및 처리된 정보를 저장하는 저장부를 포함한다.According to another aspect of the present invention, there is provided a virtualization apparatus for generating a first input fingerprint by applying a hash algorithm to data input request information of a virtual machine, Determining whether there is an input fingerprint that is the same as the first input fingerprint in the database, and when the input fingerprint identical to the first input fingerprint exists in the database, data corresponding to the input fingerprint that is the same as the first input fingerprint is input A first processing unit for setting first mapping information for inputting data corresponding to the first input fingerprint so as to correspond to mapping information indicating an address of the first input fingerprint and a storage unit for storing information processed in the processing unit and processed information.

여기서, 상기 매핑 정보는 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 상기 블록 정보에 대응된 물리적 주소를 나타내는 섹터 정보 및 상기 블록 내의 섹터에 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함할 수 있다.Here, the mapping information may include block information indicating a logical address to which data is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the data input to the sector in the block is referred to have.

여기서, 상기 처리부는, 상기 제1 매핑 정보를 설정하는 경우, 블록 정보를 상기 제1 입력 지문과 대응된 데이터에 대한 논리적 주소로 설정하고, 섹터 정보를 상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터에 대한 물리적 주소로 설정하고, 참조 정보를 참조되는 데이터가 없음을 나타내는 값으로 설정할 수 있다.Here, when setting the first mapping information, the processing unit sets the block information as a logical address for data corresponding to the first input fingerprint, and the sector information corresponds to the same input fingerprint as the first input fingerprint To the physical address for the data that has been referenced, and to set the reference information to a value that indicates that there is no referenced data.

여기서, 상기 처리부는, 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하지 않는 경우, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하고, 상기 제1 매핑 정보가 나타내는 주소에 상기 제1 입력 지문과 대응된 데이터를 입력할 수 있다.The processing unit sets first mapping information for inputting data corresponding to the first input fingerprint when the input fingerprint identical to the first input fingerprint does not exist in the database, The data corresponding to the first input fingerprint can be input to the address indicated by the first input fingerprint.

여기서, 상기 처리부는, 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득하고, 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 상기 블록 정보와 대응된 매핑 정보를 획득하고, 상기 매핑 정보로부터 상기 출력 요청된 데이터가 입력된 물리적 주소를 획득하고, 획득된 물리적 주소에 입력된 데이터를 가상 머신에 제공할 수 있다.Here, the processor obtains block information indicating a logical address to which data requested to be output is input, from the data output request information of the virtual machine, and extracts, from the mapping table formed based on the logical address and the physical address, Acquire the mapping information corresponding to the information, acquire the physical address into which the output requested data is input from the mapping information, and provide the virtual machine with the data input at the acquired physical address.

여기서, 상기 해시 알고리즘은 SHA 일 수 있다.Here, the hash algorithm may be SHA.

여기서, 상기 데이터베이스는 RB-트리 구조를 기반으로 형성될 수 있다.Here, the database may be formed based on an RB-tree structure.

본 발명에 의하면, 가상 머신(virtual machine)들 간의 입출력(input/output) 데이터 중 중복된 입출력 데이터를 제거할 수 있으므로, 입출력 요청에 의해 발생하는 부하(load)를 감소시킬 수 있고, 이에 따라 가상 머신의 입출력 성능을 향상시킬 수 있다.According to the present invention, since redundant input / output data among input / output data between virtual machines can be removed, a load caused by an input / output request can be reduced, The input / output performance of the machine can be improved.

도 1은 가상화 시스템의 일 실시예를 도시한 블록도이다.
도 2는 가상 머신이 수행하는 작업에 따른 데이터의 중복성을 도시한 그래프이다.
도 3은 기억 장치인 디스크의 구조에 대한 일 실시예를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 입력 데이터 처리 방법을 도시한 흐름도이다.
도 5는 매핑 테이블의 일 실시예를 도시한 블록도이다.
도 6은 매핑 테이블의 다른 실시예를 도시한 블록도이다.
도 7은 매핑 테이블의 또 다른 실시예를 도시한 블록도이다.
도 8은 본 발명의 일 실시예에 따른 출력 데이터 처리 방법을 도시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 입출력 데이터 처리 방법을 적용한 결과를 도시한 그래프이다.
도 10은 본 발명의 일 실시예에 따른 가상화 장치를 도시한 블록도이다.
1 is a block diagram illustrating one embodiment of a virtualization system.
2 is a graph showing redundancy of data according to a task performed by a virtual machine.
3 is a block diagram showing an embodiment of a structure of a disk which is a storage device.
4 is a flowchart illustrating an input data processing method according to an embodiment of the present invention.
5 is a block diagram illustrating an embodiment of a mapping table.
6 is a block diagram illustrating another embodiment of the mapping table.
7 is a block diagram illustrating another embodiment of the mapping table.
8 is a flowchart illustrating an output data processing method according to an embodiment of the present invention.
9 is a graph illustrating a result of applying the input / output data processing method according to an embodiment of the present invention.
10 is a block diagram illustrating a virtualization apparatus according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 가상화 시스템(virtualization system)의 일 실시예를 도시한 블록도이다.1 is a block diagram illustrating one embodiment of a virtualization system.

도 1을 참조하면, 가상화 시스템은 가상 머신(virtual machine)(10), 가상화 인프라스트럭쳐(infrastructure)(20) 및 하드웨어(hardware)(30)를 포함한다. 가상 머신(10)은 물리적인 컴퓨터(computer)에서 구동되는 운영체제와 어플리케이션(application)으로 이루어진 소프트웨어 컨테이너(software container)를 의미한다. 가상 머신(10)은 가상 자원을 사용하여 물리적인 컴퓨터처럼 구동된다. 가상 자원은 가상 프로세서(processor)(예를 들어, CPU(central processing unit), GPU(graphics processing unit) 등), 가상 메모리(memory), 가상 디스크(disk), 가상 네트워크 인터페이스 카드(network interface card, NIC) 등을 포함한다.Referring to FIG. 1, a virtualization system includes a virtual machine 10, a virtualization infrastructure 20, and hardware 30. The virtual machine 10 refers to a software container composed of an operating system and an application running on a physical computer. The virtual machine 10 is operated as a physical computer using virtual resources. A virtual resource may be a virtual processor, such as a central processing unit (CPU), a graphics processing unit (GPU), a virtual memory, a virtual disk, NIC) and the like.

가상화 인프라스트럭쳐(20)는 하드웨어(30)를 가상화하여 가상 머신(10)으로부터 요청된 서비스를 제공한다. 가상화 인프라스트럭쳐(20)에는 VMWare 기반의 인프라스트럭쳐, Virtual PC 기반의 인프라스트럭쳐, Virtual Box 기반의 인프라스트럭쳐 등이 있다.The virtualization infrastructure 20 virtualizes the hardware 30 and provides the requested service from the virtual machine 10. The virtualization infrastructure 20 includes a VMWare-based infrastructure, a Virtual PC infrastructure, and a Virtual Box infrastructure.

하드웨어(30)는 프로세서, 메모리, 디스크, 네트워크 인터페이스 카드(NIC) 등을 포함한다. 하드웨어(30)는 가상화 인프라스트럭쳐(20)에 의해 가상화 되어 가상 머신(10)으로부터 요청된 서비스를 제공한다.The hardware 30 includes a processor, a memory, a disk, a network interface card (NIC), and the like. The hardware 30 is virtualized by the virtualization infrastructure 20 to provide the requested service from the virtual machine 10.

본 발명의 일 실시예에 따른 입력 데이터 처리 방법과 출력 데이터 처리 방법은 상기에서 설명한 가상화 시스템에서 수행될 수 있다.
The input data processing method and the output data processing method according to an embodiment of the present invention can be performed in the virtualization system described above.

도 2는 가상 머신이 수행하는 작업에 따른 데이터의 중복성을 도시한 그래프이다.2 is a graph showing redundancy of data according to a task performed by a virtual machine.

도 2를 참조하면, 가상 머신이 수행하는 리눅스 인스톨(linux install) 작업, 윈도우 인스톨(window install) 작업, 오피스(office) 작업, 아웃룩(outlook) 작업, 커널 컴파일(kernel compile) 작업, SVN 작업, 웨이백(wayback) 작업, 젠컴파일(xencompile) 작업 등에서 데이터 중복이 발생하는 것을 알 수 있다. 가상 머신이 수행하는 작업 중 특히 SVN 작업, 웨이백 작업에서 데이터 중복이 상대적으로 많이 발생하는 것을 알 수 있다. 이와 같은 데이터 중복에 의해 가상화 시스템의 성능이 저하되는 문제점이 있다.
Referring to FIG. 2, there is shown an example of a process of performing a Linux install operation, a window install operation, an office operation, an outlook operation, a kernel compile operation, an SVN operation, You can see that data redundancy occurs in wayback operations and xencompile operations. It can be seen that there is a relatively large amount of data redundancy in the operations performed by the virtual machine, especially in the SVN operation and the wayback operation. The performance of the virtualization system is deteriorated due to such data redundancy.

도 3은 기억 장치인 디스크의 구조에 대한 일 실시예를 도시한 블록도이다.3 is a block diagram showing an embodiment of a structure of a disk which is a storage device.

도 3을 참조하면, 데이터의 기억 장치인 디스크는 적어도 하나의 블록(block)으로 구성될 수 있고, 하나의 블록(block)은 적어도 하나의 섹터(sector)로 구성될 수 있다. 하나의 블록은 4 킬로바이트(KB)의 크기를 가질 수 있고, 8 개의 섹터를 가질 수 있다.Referring to FIG. 3, a disk serving as a data storage device may include at least one block, and one block may include at least one sector. One block may have a size of 4 kilobytes (KB) and may have 8 sectors.

즉, '블록 0' 은 '섹터 0' 내지 '섹터 7' 로 구성될 수 있고, '블록 1' 은 '섹터 8' 내지 '섹터 15' 로 구성될 수 있고, '블록 2' 는 '섹터 16' 내지 '섹터 23' 으로 구성될 수 있고, '블록 3' 은 '섹터 24' 내지 '섹터 31' 로 구성될 수 있다. 여기서, 디스크의 구조는 상기에서 설명한 구조에 한정되지 않고, 다양한 구조를 가질 수 있다.That is, 'block 0' may consist of 'sector 0' to 'sector 7', 'block 1' may consist of 'sector 8' to 'sector 15', 'block 2' 'To' sector 23 ', and' block 3 'may be composed of' sector 24 'to' sector 31 '. Here, the structure of the disk is not limited to the structure described above, and may have various structures.

본 발명의 일 실시예에 따른 입력 데이터 처리 방법과 출력 데이터 처리 방법은 상기에서 설명한 데이터 구조를 기반으로 데이터를 처리할 수 있다. 즉, 본 발명의 일 실시예에 따른 입력 데이터 처리 방법은 블록 단위로 데이터를 입력할 수 있고, 본 발명의 일 실시예에 따른 출력 데이터 처리 방법은 블록 단위로 데이터를 출력할 수 있다.
The input data processing method and the output data processing method according to an embodiment of the present invention can process data based on the data structure described above. That is, the input data processing method according to an embodiment of the present invention can input data in block units, and the output data processing method according to an embodiment of the present invention can output data in block units.

도 4는 본 발명의 일 실시예에 따른 입력 데이터 처리 방법을 도시한 흐름도이다.4 is a flowchart illustrating an input data processing method according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 입력 데이터 처리 방법은, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘(hash algorithm)을 적용하여 제1 입력 지문을 생성하는 단계(S100), 미리 생성된 입력 지문을 기초로 형성된 데이터베이스(database) 중 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하는 단계(S110), 제1 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는 경우, 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑(mapping) 정보와 대응하도록, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계(S120)를 포함한다.Referring to FIG. 4, an input data processing method according to an embodiment of the present invention includes generating a first input fingerprint by applying a hash algorithm to data input request information of a virtual machine (S100) (S110) whether the input fingerprint identical to the first input fingerprint exists in the database formed based on the generated input fingerprint (S110). When the input fingerprint identical to the first input fingerprint exists in the database, And setting (S120) first mapping information for inputting data corresponding to the first input fingerprint so as to correspond to mapping information indicating an address where data corresponding to the same input fingerprint is input.

또한, 본 발명의 일 실시예에 따른 입력 데이터 처리 방법은, 제1 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하지 않는 경우, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계(S130), 제1 매핑 정보가 나타내는 주소에 제1 입력 지문과 대응된 데이터를 입력하는 단계(S140)를 더 포함할 수 있다.According to another aspect of the present invention, there is provided a method for processing input data, the method comprising: setting first mapping information for inputting data corresponding to a first input fingerprint when the input fingerprint identical to the first input fingerprint does not exist in the database; (S130), and inputting data corresponding to the first input fingerprint to the address indicated by the first mapping information (S140).

여기서, 본 발명의 일 실시예에 따른 입력 데이터 처리 방법은 도 10에 도시된 가상화 장치(10)에서 수행될 수 있으며, 가상화 장치(10)는 도 1에 도시된 가상화 인프라스트럭쳐(20)와 하드웨어(30)로 구성된 장치를 의미할 수 있다.Here, the input data processing method according to an embodiment of the present invention may be performed in the virtualization apparatus 10 shown in FIG. 10, and the virtualization apparatus 10 may include the virtualization infrastructure 20 and hardware (30). ≪ / RTI >

단계 S100 에서, 가상화 장치는 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성할 수 있다. 데이터 입력 요청 정보는 입력하고자 하는 데이터 정보, 데이터가 입력되는 주소 정보, 데이터의 입출력 방향 정보(즉, 입력 또는 출력) 등을 포함할 수 있다. 하나의 데이터 입력 요청 정보는 4 킬로바이트의 크기를 가질 수 있으며, 이에 따라 하나의 데이터 입력 요청 정보를 하나의 블록으로 나타낼 수 있다. 가상화 장치는 해시 알고리즘으로 SHA(secure hash algorithm) 을 사용할 수 있으며, SHA 로 SHA-0, SHA-1, 또는 SHA-2 를 사용할 수 있다. 즉, 가상화 장치는 4 킬로바이트의 크기를 가지는 데이터 입력 요청 정보에 SHA 를 적용하여 20 바이트의 크기를 가지는 입력 지문을 생성할 수 있다.In step S100, the virtualization device may generate a first input fingerprint by applying a hash algorithm to the data input request information of the virtual machine. The data input request information may include data to be input, address information to which data is input, input / output direction information (i.e., input or output) of data, and the like. One data input request information may have a size of 4 kilobytes, and thus one data input request information may be represented by one block. The virtualization device can use the secure hash algorithm (SHA) as a hash algorithm, and SHA-0, SHA-1, or SHA-2 can be used as the SHA. That is, the virtualization apparatus can generate an input fingerprint having a size of 20 bytes by applying SHA to data input request information having a size of 4 kilobytes.

단계 S110 에서, 가상화 장치는 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단할 수 있다. 데이터베이스는 적어도 하나의 입력 지문을 포함하며, RB(red black)-트리(tree) 구조를 기반으로 입력 지문을 저장할 수 있다.In step S110, the virtualization apparatus can determine whether there is an input fingerprint that is the same as the first input fingerprint among the databases formed based on the input fingerprint generated in advance. The database includes at least one input fingerprint and may store the input fingerprint based on a red black (RB) tree structure.

즉, 가상화 장치는 RB-트리 구조를 가지는 데이터베이스를 기초로 입력 지문의 동일성을 판단할 수 있다. 여기서, 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는 경우, 이는 제1 입력 지문에 대응된 데이터가 디스크 내에 이미 입력되어 있는 것을 의미하므로, 가상화 장치는 다음 단계로 단계 S120 을 수행한다. 반면, 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하지 않는 경우, 이는 제1 입력 지문에 대응된 데이터가 디스크 내에 입력되어 있지 않은 것을 의미하므로, 가상화 장치는 다음 단계로 단계 S130, 단계 S140 을 수행한다.That is, the virtualization apparatus can determine the identity of the input fingerprint based on the database having the RB-tree structure. Here, if there is an input fingerprint that is the same as the first input fingerprint in the database, this means that data corresponding to the first input fingerprint has already been input into the disk, so the virtualization device performs step S120 to the next step. On the other hand, if there is no input fingerprint that is the same as the first input fingerprint in the database, this means that data corresponding to the first input fingerprint is not input into the disk, so the virtualization apparatus proceeds to step S130 and step S140 .

단계 S120 에서, 가상화 장치는 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있다.In step S120, the virtualization device sets first mapping information for input of data corresponding to the first input fingerprint so that the virtualization device corresponds to the mapping information indicating the address where the data corresponding to the input fingerprint that is the same as the first input fingerprint is input have.

단계 S130 에서, 가상화 장치는 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있다. 단계 S140 에서, 가상화 장치는 단계 S130 을 통해 설정된 제1 매핑 정보가 나타내는 주소에 제1 입력 지문과 대응된 데이터를 입력할 수 있다.
In step S130, the virtualization apparatus can set the first mapping information for input of the data corresponding to the first input fingerprint. In step S140, the virtualization apparatus may input data corresponding to the first input fingerprint to the address indicated by the first mapping information set in step S130.

이하 도 5, 도 6 및 도 7을 참조하여, 단계 S120 을 통해 수행되는 제1 매핑 정보의 설정 방법, 단계 S130 을 통해 수행되는 제1 매핑 정보의 설정 방법, 단계 S140 을 통해 수행되는 데이터의 입력 방법에 대해 상세하게 설명한다.Hereinafter, with reference to FIG. 5, FIG. 6, and FIG. 7, a first mapping information setting method performed in step S120, a first mapping information setting method performed in step S130, a data inputting step performed in step S140 The method will be described in detail.

도 5는 매핑 테이블의 일 실시예를 도시한 블록도이고, 도 6은 매핑 테이블의 다른 실시예를 도시한 블록도이고, 도 7은 매핑 테이블의 또 다른 실시예를 도시한 블록도이다.FIG. 5 is a block diagram showing an embodiment of a mapping table, FIG. 6 is a block diagram showing another embodiment of the mapping table, and FIG. 7 is a block diagram showing another embodiment of the mapping table.

여기서, 매핑 테이블(table)은 적어도 하나의 매핑 정보를 포함하고, 각각의 행은 하나의 매핑 정보를 의미한다. 매핑 정보는 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 블록 정보에 대응된 물리적 주소를 나타내는 섹터 정보 및 해당 블록 내의 섹터에 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함한다. 논리적 주소는 데이터가 실제로 입력된 디스크 내의 주소가 아닌 가상의 주소를 의미하고, 물리적 주소는 데이터가 실제로 입력된 디스크 내의 주소를 의미한다.Here, the mapping table includes at least one mapping information, and each row indicates one mapping information. The mapping information includes block information indicating a logical address into which data is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the data input to the sector in the block is referred to. A logical address means a virtual address, not an address in the disk on which data is actually input, and a physical address means an address in the disk on which data is actually input.

가상화 장치는 가상 머신으로부터 수신한 데이터 입력 요청 정보를 기반으로 매핑 정보를 생성할 수 있으며, 생성된 적어도 하나의 매핑 정보를 기반으로 매핑 테이블을 생성할 수 있다.The virtualization apparatus may generate mapping information based on the data input request information received from the virtual machine, and may generate a mapping table based on the generated at least one mapping information.

도 5를 참조하면, 디스크 내의 '섹터 0' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 가상화 장치는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Referring to FIG. 5, when data input request information for requesting data input to 'sector 0' in the disk is received, the virtualization apparatus determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database .

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 0' 에 저장되어 있지 않은 경우), 가상화 장치는 '블록 정보 0', '섹터 정보 0', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 첫 번째 행)를 생성한다. 그 후, 가상화 장치는 '섹터 정보 0' 이 지시하는 디스크 내의 '섹터 0' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in 'sector 0' in the disk), the virtualization device may generate 'block information 0', 'sector information 0' (I.e., the first row in the mapping table). Then, the virtualization apparatus inputs data to 'sector 0' in the disk indicated by 'sector information 0'.

여기서, 데이터의 입력이 요청된 '섹터 0' 은 '블록 0' 내에 위치하므로 블록 정보는 '0' 으로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 0' 에 입력되므로 섹터 정보는 '0' 으로 설정되고, '블록 정보 0' 에 대응된 '섹터 0' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 0' requested to input data is located in 'block 0', the block information is set to '0', and the data is substantially input to 'sector 0' in the disk, And 'sector 0' corresponding to 'block information 0' is referred to by one virtual machine, so that the reference information is set to '1'.

그 후, 디스크 내의 '섹터 8' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 가상화 장치는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when data input request information for requesting data input to the 'sector 8' in the disk is received, the virtualization device determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 8' 에 저장되어 있지 않은 경우), 가상화 장치는 '블록 정보 1', '섹터 정보 8', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 두 번째 행)를 생성한다. 그 후, 가상화 장치는 '섹터 정보 8' 이 지시하는 디스크 내의 '섹터 8' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in the 'sector 8' in the disk), the virtualization device may generate 'block information 1', 'sector information 8' (I.e., the second row in the mapping table). Thereafter, the virtualization apparatus inputs data to 'sector 8' in the disk indicated by 'sector information 8'.

여기서, 데이터의 입력이 요청된 '섹터 8' 은 '블록 1' 내에 위치하므로 블록 정보는 '1' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 8' 에 입력되므로 섹터 정보는 '8' 으로 설정되고, '블록 정보 1' 에 대응된 '섹터 8' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 8' requested to input data is located in 'block 1', the block information is set to '1', and the data is substantially input to the 'sector 8' 'Sector 8' corresponding to 'block information 1' is referred to by one virtual machine, and reference information is set to '1'.

그 후, 디스크 내의 '섹터 16' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 가상화 장치는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when the data input request information requesting data input to the 'sector 16' in the disk is received, the virtualization device determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 16' 에 저장되어 있지 않은 경우), 가상화 장치는 '블록 정보 2', '섹터 정보 16', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 세 번째 행)를 생성한다. 그 후, 가상화 장치는 '섹터 정보 16' 이 지시하는 디스크 내의 '섹터 16' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in the 'sector 16' in the disk), the virtualization apparatus generates 'block information 2', 'sector information 16' (I.e., the third row in the mapping table). Then, the virtualization apparatus inputs data to the 'sector 16' in the disk indicated by 'sector information 16'.

여기서, 데이터의 입력이 요청된 '섹터 16' 은 '블록 2' 내에 위치하므로 블록 정보는 '2' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 16' 에 입력되므로 섹터 정보는 '16' 으로 설정되고, '블록 정보 2' 에 대응된 '섹터 16' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 16' requested to input data is located in 'block 2', the block information is set to '2', and the data is actually input to the 'sector 16' And 'sector 16' corresponding to 'block information 2' is referred to by one virtual machine, so that reference information is set to '1'.

그 후, 디스크 내의 '섹터 24' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 가상화 장치는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when data input request information for requesting data input to the 'sector 24' in the disk is received, the virtualization apparatus determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 24' 에 저장되어 있지 않은 경우), 가상화 장치는 '블록 정보 3', '섹터 정보 24', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 네 번째 행)를 생성한다. 그 후, 가상화 장치는 '섹터 정보 24' 가 지시하는 디스크 내의 '섹터 24' 에 데이터를 입력한다. If the same input fingerprint does not exist in the database (that is, the same data is not stored in the 'sector 24' in the disk), the virtualization device may generate 'block information 3', 'sector information 24' (I.e., the fourth row in the mapping table). Then, the virtualization apparatus inputs data to the 'sector 24' in the disk indicated by the 'sector information 24'.

여기서, 데이터의 입력이 요청된 '섹터 24' 는 '블록 3' 내에 위치하므로 블록 정보는 '3' 으로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 24' 에 입력되므로 섹터 정보는 '24' 로 설정되고, '블록 정보 3' 에 대응된 '섹터 24' 는 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 24' requested to input data is located in 'block 3', the block information is set to '3', and the data is substantially input to the 'sector 24' And 'sector 24' corresponding to 'block information 3' is referred to by one virtual machine, so that reference information is set to '1'.

그 후, 디스크 내의 '섹터 32' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 가상화 장치는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다. 이때, 동일한 입력 지문이 데이터베이스에 존재하는 경우 가상화 장치는 도 6에 도시된 매핑 테이블을 생성할 수 있고, 반면 동일한 입력 지문이 데이터베이스에 존재하지 않는 경우 가상화 장치는 도 7에 도시된 매핑 테이블을 생성할 수 있다.Thereafter, when data input request information for requesting input of data to the 'sector 32' in the disk is received, the virtualization apparatus determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database. At this time, if the same input fingerprint exists in the database, the virtualization apparatus can generate the mapping table shown in FIG. 6, whereas if the same input fingerprint does not exist in the database, the virtualization apparatus generates the mapping table shown in FIG. 7 can do.

도 6을 참조하면, '섹터 32' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보에 대한 입력 지문이 '섹터 8' 에 입력된 데이터의 입력 지문과 동일한 경우(즉, 동일한 데이터가 디스크 내의 '섹터 8' 에 이미 저장되어 있는 경우), 가상화 장치는 '블록 정보 4', '섹터 정보 8', '참조 정보 0' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 다섯 번째 행)를 생성한다.Referring to FIG. 6, when the input fingerprint for the data input request information requesting the data input to the 'sector 32' is the same as the input fingerprint of the data input to the 'sector 8' (that is, 8 ', the virtualization apparatus generates mapping information (i.e., the fifth row in the mapping table) including' block information 4 ',' sector information 8 ', and' reference information 0 '.

여기서, 데이터의 입력이 요청된 '섹터 32' 는 '블록 4' 내에 위치하므로 블록 정보는 '4' 로 설정되고, 동일한 데이터가 디스크 내의 '섹터 8' 에 이미 입력되어 있으므로 섹터 정보는 '8' 로 설정되고, '블록 정보 4' 에 대응된 '섹터 32' 를 참조하는 가상 머신이 없으므로 참조 정보는 '0' 으로 설정된다.Since the 'sector 32' requested to input data is located in 'block 4', the block information is set to '4', and the same data is already input to 'sector 8' And the reference information is set to '0' because there is no virtual machine that refers to 'sector 32' corresponding to 'block information 4'.

더불어, 매핑 테이블 내의 두 번째 행의 매핑 정보에 포함된 '섹터 8' 은 2 개의 가상 머신에 의해 참조 되므로(즉, '블록 정보 1' 에 데이터 입력을 요청한 가상 머신, '블록 정보 4' 에 데이터 입력을 요청한 가상 머신), 두 번째 행의 매핑 정보에 포함된 참조 정보는 '2' 로 설정된다. 이와 같이, 참조 정보의 값이 '2' 이상인 경우, 이는 하나의 데이터가 복수의 가상 머신에 의해 참조되고 있음을 나타내므로, 이 경우 가상 머신이 해당 데이터를 변경하는 것을 금지된다.In addition, since the 'sector 8' included in the mapping information of the second row in the mapping table is referred to by two virtual machines (that is, a virtual machine that requests data input in 'block information 1' And the reference information included in the mapping information of the second row is set to '2'. In this way, when the value of the reference information is equal to or larger than '2', this indicates that one piece of data is referred to by a plurality of virtual machines. In this case, the virtual machine is prohibited from changing the corresponding data.

도 7을 참조하면, '섹터 32' 에 데이터 입력을 요청하는 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하지 않는 경우, 가상화 장치는 '블록 정보 4', '섹터 정보 32', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 다섯 번째 행)를 생성한다. 그 후, 가상화 장치는 '섹터 정보 32' 이 지시하는 디스크 내의 '섹터 32' 에 데이터를 입력한다.Referring to FIG. 7, if the input fingerprint that is the same as the input fingerprint for the data input request information requesting the data input to the 'sector 32' is not present in the database, the virtualization device generates 'block information 4', 'sector information 32' , And 'reference information 1' (i.e., the fifth row in the mapping table). Thereafter, the virtualization apparatus inputs data to the 'sector 32' in the disk indicated by 'sector information 32'.

여기서, 데이터의 입력이 요청된 '섹터 32' 는 '블록 4' 내에 위치하므로 블록 정보는 '4' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 32' 에 입력되므로 섹터 정보는 '32' 로 설정되고, '블록 정보 4' 에 대응된 '섹터 32' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.
Since the 'sector 32' requested to input data is located in 'block 4', the block information is set to '4', and the data is actually input to the 'sector 32' in the disc, And 'sector 32' corresponding to 'block information 4' is referred to by one virtual machine, so that reference information is set to '1'.

도 8은 본 발명의 일 실시예에 따른 출력 데이터 처리 방법을 도시한 흐름도이다.8 is a flowchart illustrating an output data processing method according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시예에 따른 출력 데이터 처리 방법은, 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득하는 단계(S200), 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 블록 정보와 대응된 매핑 정보를 획득하는 단계(S210), 매핑 정보로부터 출력 요청된 데이터가 입력된 물리적 주소를 획득하는 단계(S220) 및 획득된 물리적 주소에 저장된 데이터를 가상 머신에 제공하는 단계(S230)를 포함한다.Referring to FIG. 8, an output data processing method according to an exemplary embodiment of the present invention includes: obtaining block information indicating a logical address to which output requested data is input, from a data output request information of a virtual machine (S200) A step S210 of obtaining mapping information corresponding to block information from a mapping table formed based on a logical address and a physical address into which data is input, S210 obtaining a physical address into which data requested to be output from the mapping information is input, And providing data stored in the obtained physical address to the virtual machine (S230).

여기서, 본 발명의 일 실시예에 따른 출력 데이터 처리 방법은 도 10에 도시된 가상화 장치(10)에서 수행될 수 있으며, 가상화 장치(10)는 도 1에 도시된 가상화 인프라스트럭쳐(20)와 하드웨어(30)로 구성된 장치를 의미할 수 있다.Here, the output data processing method according to an embodiment of the present invention can be performed in the virtualization apparatus 10 shown in FIG. 10, and the virtualization apparatus 10 can be realized by the virtualization infrastructure 20 and hardware (30). ≪ / RTI >

단계 S200 에서, 가상화 장치는 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득할 수 있다. 데이터 출력 요청 정보는 출력하고자 하는 데이터가 입력된 주소 정보, 데이터의 입출력 방향 정보(즉, 입력 또는 출력) 등을 포함할 수 있으며, 주소 정보는 데이터가 입력된 섹터 정보 또는 데이터가 입력된 블록 정보를 포함할 수 있다.In step S200, the virtualization apparatus can obtain block information indicating the logical address to which the output requested data is input, from the data output request information of the virtual machine. The data output request information may include address information to which data to be output is input, input / output direction information (i.e., input or output) of data, and the like. The address information may include sector information, . ≪ / RTI >

즉, 가상화 장치는 데이터 출력 요청 정보로부터 주소 정보를 획득할 수 있고, 획득된 주소 정보가 섹터 정보인 경우 섹터 정보를 기반으로 블록 정보를 생성할 수 있다. 예를 들어, 섹터 정보가 '0' 인 경우 가상화 장치는 섹터 정보 '0' 에 대응된 블록 정보 '0' 을 생성할 수 있고, 섹터 정보가 '8' 인 경우 가상화 장치는 섹터 정보 '8' 에 대응된 블록 정보 '1' 을 생성할 수 있다. 반면, 획득된 주소 정보가 블록 정보인 경우, 가상화 장치는 주소 정보를 그대로 사용할 수 있다.That is, the virtualization apparatus can obtain the address information from the data output request information and generate the block information based on the sector information when the obtained address information is the sector information. For example, when the sector information is '0', the virtualization apparatus can generate block information '0' corresponding to the sector information '0'. If the sector information is '8' 1 " corresponding to " 1 " On the other hand, if the acquired address information is block information, the virtualization apparatus can use the address information as it is.

단계 S210 에서, 가상화 장치는 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 블록 정보와 대응된 매핑 정보를 획득할 수 있다. 단계 S220 에서, 가상화 장치는 단계 S210 을 통해 획득한 매핑 정보로부터, 출력 요청된 데이터가 입력된 물리적 주소를 획득할 수 있다. 단계 S230 에서, 가상화 장치는 단계 S220 을 통해 획득된 물리적 주소에 저장된 데이터를 가상 머신에 제공할 수 있다.In step S210, the virtualization apparatus can obtain the mapping information corresponding to the block information from the mapping table formed based on the logical address and the physical address into which data is input. In step S220, the virtualization apparatus can obtain, from the mapping information acquired through step S210, the physical address to which the output requested data is input. In step S230, the virtualization apparatus can provide the virtual machine with data stored in the physical address obtained through step S220.

이하 상기에서 설명한 도 6을 참조하여, 단계 S210 을 통해 수행되는 매핑 정보 획득 방법, 단계 S220 을 통해 수행되는 물리적 주소 획득 방법 및 단계 S230 을 통해 수행되는 데이터를 가상 머신에 제공하는 방법에 대해 상세하게 설명한다.Hereinafter, with reference to FIG. 6, detailed description will be given of a mapping information acquisition method performed in step S210, a physical address acquisition method performed in step S220, and a method of providing data performed in step S230 to a virtual machine Explain.

도 6을 참조하면, 단계 S200 을 통해 획득한 블록 정보가 '1' 인 경우 가상화 장치는 매핑 테이블 내의 두 번째 행의 매핑 정보(즉, '블록 정보 1', '섹터 정보 8', '참조 정보 2')를 획득할 수 있다. 두 번째 행의 매핑 정보 내의 '섹터 정보 8' 은 '블록 정보 1' 에 대응된 물리적 주소를 나타내므로, 가상화 장치는 물리적 주소로 '섹터 정보 8' 을 획득할 수 있다. 그 후, 가상화 장치는 디스크 내의 '섹터 8(즉, 블록 1)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.Referring to FIG. 6, when the block information acquired in step S200 is '1', the virtualization apparatus transmits mapping information of the second row in the mapping table (ie, 'block information 1', 'sector information 8' 2 '). Since 'sector information 8' in the mapping information of the second row represents a physical address corresponding to 'block information 1', the virtualization apparatus can acquire 'sector information 8' as a physical address. The virtualization device may then provide the virtual machine with data entered in the 'sector 8' (i.e. block 1) in the disk.

한편, 단계 S200 을 통해 획득한 블록 정보가 '2' 인 경우 가상화 장치는 매핑 테이블 내의 세 번째 행의 매핑 정보(즉, '블록 정보 2', '섹터 정보 16', '참조 정보 1')를 획득할 수 있다. 세 번째 행의 매핑 정보 내의 '섹터 정보 16' 은 '블록 정보 2' 에 대응된 물리적 주소를 나타내므로, 가상화 장치는 물리적 주소로 '섹터 정보 16' 을 획득할 수 있다. 그 후, 가상화 장치는 디스크 내의 '섹터 16(즉, 블록 2)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.Meanwhile, if the block information acquired in step S200 is '2', the virtualization apparatus allocates the mapping information of the third row in the mapping table (i.e., 'block information 2', 'sector information 16', and 'reference information 1') Can be obtained. Since the 'sector information 16' in the mapping information of the third row represents the physical address corresponding to 'block information 2', the virtualization apparatus can acquire 'sector information 16' as a physical address. The virtualization device may then provide the virtual machine with the data entered into the 'sector 16 (i.e., block 2)' within the disk.

한편, 단계 S200 을 통해 획득한 블록 정보가 '4' 인 경우 가상화 장치는 매핑 테이블 내의 다섯 번째 행의 매핑 정보(즉, '블록 정보 4', '섹터 정보 8', '참조 정보 0')를 획득할 수 있다. 다섯 번째 행의 매핑 정보 내의 '섹터 정보 8' 은 '블록 정보 4' 에 대응된 물리적 주소를 나타내므로, 가상화 장치는 물리적 주소로 '섹터 정보 8' 을 획득할 수 있다. 그 후, 가상화 장치는 디스크 내의 '섹터 8(즉, 블록 1)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.
On the other hand, if the block information acquired in step S200 is '4', the virtualization apparatus stores mapping information of the fifth row in the mapping table (i.e., 'block information 4', 'sector information 8', 'reference information 0' Can be obtained. Since 'sector information 8' in the mapping information of the fifth row represents the physical address corresponding to 'block information 4', the virtualization apparatus can acquire 'sector information 8' as a physical address. The virtualization device may then provide the virtual machine with data entered in the 'sector 8' (i.e. block 1) in the disk.

도 9는 본 발명의 일 실시예에 따른 입출력 데이터 처리 방법을 적용한 결과를 도시한 그래프이다.9 is a graph illustrating a result of applying the input / output data processing method according to an embodiment of the present invention.

도 9를 참조하면, 소스 파일(source file)을 입출력한 경우 본 발명은 종래 기술에 비해 더 적은 실행 시간(run time)을 사용하는 것을 알 수 있고, 영화 파일(movie file)을 입출력한 경우에도 본 발명은 종래 기술에 비해 더 적은 실행 시간을 사용하는 것을 알 수 있다.
Referring to FIG. 9, when inputting and outputting a source file, it can be seen that the present invention uses less run time than the prior art, and even when a movie file is input / output It can be seen that the present invention uses less execution time than the prior art.

본 발명의 일 실시예에 따른 입력/출력 데이터 처리 방법은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The input / output data processing method according to an exemplary embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.

컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다
Examples of computer readable media include hardware devices that are specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa

도 10은 본 발명의 일 실시예에 따른 가상화 장치를 도시한 블록도이다.10 is a block diagram illustrating a virtualization apparatus according to an embodiment of the present invention.

도 10을 참조하면, 가상화 장치(40)는 처리부(41) 및 저장부(42)를 포함한다. 또한, 가상화 장치(40)는 도 1에 도시된 가상화 인프라스트럭쳐(20)와 하드웨어(30)로 구성된 장치를 의미할 수 있다.Referring to FIG. 10, the virtualization apparatus 40 includes a processing unit 41 and a storage unit 42. In addition, the virtualization device 40 may mean a device composed of the virtualization infrastructure 20 and the hardware 30 shown in FIG.

처리부(41)는, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성할 수 있고, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단할 수 있고, 제1 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는 경우, 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있다.The processing unit 41 can generate a first input fingerprint by applying a hash algorithm to the data input request information of the virtual machine, and the input fingerprint identical to the first input fingerprint among the databases formed based on the previously generated input fingerprint exists If the input fingerprint is identical to the first input fingerprint in the database, the first input fingerprint and the second input fingerprint are associated with the mapping information indicating the address to which the data corresponding to the input fingerprint identical to the first input fingerprint is input. It is possible to set the first mapping information for input of the corresponding data.

또한, 처리부(41)는, 제1 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하지 않는 경우, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있고, 제1 매핑 정보가 나타내는 주소에 제1 입력 지문과 대응된 데이터를 입력할 수 있다.The processing unit 41 can set the first mapping information for inputting the data corresponding to the first input fingerprint when the input fingerprint identical to the first input fingerprint does not exist in the database, The data corresponding to the first input fingerprint can be input to the address.

또한, 처리부(41)는, 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득할 수 있고, 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 블록 정보와 대응된 매핑 정보를 획득할 수 있고, 매핑 정보로부터 출력 요청된 데이터가 입력된 물리적 주소를 획득할 수 있고, 획득된 물리적 주소에 저장된 데이터를 가상 머신에 제공할 수 있다.The processing unit 41 may obtain block information indicating a logical address to which the data requested to be output is input from the data output request information of the virtual machine and may generate a mapping formed based on the logical address and the physical address The mapping information corresponding to the block information can be obtained from the table, the physical address to which the data requested to be output from the mapping information is input, and the data stored in the obtained physical address can be provided to the virtual machine.

여기서, 처리부(41)는 프로세서(processor) 및 메모리(memory)를 포함할 수 있다. 프로세서는 범용의 프로세서(예를 들어, CPU 및/또는 GPU 등) 또는 본 발명의 일 실시예에 따른 입력/출력 데이터 처리 방법의 수행을 위한 전용의 프로세서를 의미할 수 있다. 메모리에는 본 발명의 일 실시예에 따른 입력/출력 데이터 처리 방법의 수행을 위한 프로그램 코드(program code)가 저장될 수 있다. 즉, 프로세서는 메모리에 저장된 프로그램 코드를 독출할 수 있고, 독출된 프로그램 코드를 기반으로 본 발명의 일 실시예에 따른 입력/출력 데이터 처리 방법의 각 단계를 수행할 수 있다.Here, the processing unit 41 may include a processor and a memory. A processor may refer to a general purpose processor (e.g., a CPU and / or a GPU) or a dedicated processor for performing input / output data processing methods in accordance with an embodiment of the present invention. The memory may store program code for performing an input / output data processing method according to an embodiment of the present invention. That is, the processor can read the program code stored in the memory and perform each step of the input / output data processing method according to an embodiment of the present invention based on the read program code.

저장부(42)는 처리부(41)에서 처리되는 정보 및 처리된 정보를 저장할 수 있다. 예를 들어, 저장부(42)는 입력 지문, 입력 지문을 기초로 형성된 데이터베이스, 매핑 정보, 적어도 하나의 매핑 정보를 포함한 매핑 테이블, 데이터 등을 저장할 수 있다. 저장부(42)는 메모리, SSD(solid state disk), 또는 하드 디스크(hard disk) 등을 의미할 수 있다.The storage unit 42 may store information processed and processed by the processing unit 41. [ For example, the storage unit 42 may store an input fingerprint, a database formed based on the input fingerprint, mapping information, a mapping table including at least one mapping information, data, and the like. The storage unit 42 may be a memory, a solid state disk (SSD), a hard disk, or the like.

구체적으로, 처리부(41)는 상기에서 설명한 단계 S100 와 동일하게, 가상 머신의 데이터 입력 요청 정보에 해시 알고리즘을 적용하여 제1 입력 지문을 생성할 수다. 여기서, 데이터 입력 요청 정보는 입력하고자 하는 데이터 정보, 데이터가 입력되는 주소 정보, 데이터의 입출력 방향 정보(즉, 입력 또는 출력) 등을 포함할 수 있다. 하나의 데이터 입력 요청 정보는 4 킬로바이트의 크기를 가질 수 있으며, 이에 따라 하나의 데이터 입력 요청 정보를 하나의 블록으로 나타낼 수 있다. 처리부(41)는 해시 알고리즘으로 SHA 을 사용할 수 있으며, SHA 로 SHA-0, SHA-1, 또는 SHA-2 를 사용할 수 있다. 즉, 처리부(41)는 4 킬로바이트의 크기를 가지는 데이터 입력 요청 정보에 SHA 를 적용하여 20 바이트의 크기를 가지는 입력 지문을 생성할 수 있다.Specifically, the processing unit 41 can generate a first input fingerprint by applying a hash algorithm to the data input request information of the virtual machine, as in the above-described step S100. Here, the data input request information may include data information to be input, address information to which data is input, input / output direction information (i.e., input or output) of data, and the like. One data input request information may have a size of 4 kilobytes, and thus one data input request information may be represented by one block. The processing unit 41 can use SHA as the hash algorithm, and SHA-0, SHA-1, or SHA-2 can be used as the SHA. That is, the processing unit 41 can generate an input fingerprint having a size of 20 bytes by applying SHA to data input request information having a size of 4 kilobytes.

처리부(41)는 상기에서 설명한 단계 S110 와 동일하게, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단할 수 있다. 여기서, 데이터베이스는 적어도 하나의 입력 지문을 포함하며, RB-트리 구조를 기반으로 입력 지문을 저장할 수 있다.The processing unit 41 can determine whether there is an input fingerprint identical to the first input fingerprint among the databases formed based on the input fingerprint previously generated, as in the above-described step S110. Here, the database includes at least one input fingerprint, and the input fingerprint can be stored based on the RB-tree structure.

즉, 처리부(41)는 RB-트리 구조를 가지는 데이터베이스를 기초로 입력 지문의 동일성을 판단할 수 있다. 여기서, 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는 경우, 이는 제1 입력 지문에 대응된 데이터가 디스크 내에 이미 입력되어 있는 것을 의미한다. 반면, 데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하지 않는 경우, 이는 제1 입력 지문에 대응된 데이터가 디스크 내에 입력되어 있지 않은 것을 의미한다.That is, the processing unit 41 can determine the identity of the input fingerprint based on the database having the RB-tree structure. Here, if there is an input fingerprint identical to the first input fingerprint in the database, this means that data corresponding to the first input fingerprint has already been input into the disk. On the other hand, when there is no input fingerprint that is the same as the first input fingerprint in the database, this means that data corresponding to the first input fingerprint is not input in the disk.

데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하는 경우, 처리부(41)는 상기에서 설명한 단계 S120 와 동일하게, 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 주소를 나타내는 매핑 정보와 대응하도록, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있다.If there is an input fingerprint that is the same as the first input fingerprint of the database, the processing unit 41 generates mapping information indicating an address to which data corresponding to the input fingerprint identical to the first input fingerprint is input, It is possible to set the first mapping information for inputting the data corresponding to the first input fingerprint.

데이터베이스 중 제1 입력 지문과 동일한 입력 지문이 존재하지 않는 경우, 처리부(41)는 상기에서 설명한 단계 S130 과 동일하게, 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정할 수 있다. 그 후, 처리부(41)는 상기에서 설명한 단계 S140 과 동일하게, 제1 매핑 정보가 나타내는 주소에 제1 입력 지문과 대응된 데이터를 입력할 수 있다.
If there is no input fingerprint that is the same as the first input fingerprint in the database, the processing unit 41 may set the first mapping information for inputting data corresponding to the first input fingerprint, in the same manner as in step S130 described above . Thereafter, the processing unit 41 may input data corresponding to the first input fingerprint to the address indicated by the first mapping information, as in the above-described step S140.

이하 상기에서 설명한 도 5, 도 6 및 도 7을 참조하여, 처리부(41)가 수행하는 매핑 정보 설정, 데이터 입력에 대해 상세하게 설명한다.Hereinafter, the mapping information setting and data input performed by the processing unit 41 will be described in detail with reference to FIGS. 5, 6, and 7. FIG.

여기서, 매핑 테이블은 적어도 하나의 매핑 정보를 포함하고, 각각의 행은 하나의 매핑 정보를 의미한다. 매핑 정보는 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 블록 정보에 대응된 물리적 주소를 나타내는 섹터 정보 및 해당 블록 내의 섹터에 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함한다. 논리적 주소는 데이터가 실제로 입력된 디스크 내의 주소가 아닌 가상의 주소를 의미하고, 물리적 주소는 데이터가 실제로 입력된 디스크 내의 주소를 의미한다.Here, the mapping table includes at least one mapping information, and each row represents one mapping information. The mapping information includes block information indicating a logical address into which data is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the data input to the sector in the block is referred to. A logical address means a virtual address, not an address in the disk on which data is actually input, and a physical address means an address in the disk on which data is actually input.

처리부(41)는 가상 머신으로부터 수신한 데이터 입력 요청 정보를 기반으로 매핑 정보를 생성할 수 있으며, 생성된 적어도 하나의 매핑 정보를 기반으로 매핑 테이블을 생성할 수 있다.The processing unit 41 may generate mapping information based on the data input request information received from the virtual machine, and may generate a mapping table based on the generated at least one mapping information.

즉, 상기에서 설명한 도 5를 참조하면, 디스크 내의 '섹터 0' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 처리부(41)는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.That is, referring to FIG. 5, when data input request information for requesting data input to 'sector 0' in the disk is received, the processing unit 41 transmits the data input request information It is determined whether the input fingerprint exists in the database.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 0' 에 저장되어 있지 않은 경우), 처리부(41)는 '블록 정보 0', '섹터 정보 0', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 첫 번째 행)를 생성한다. 그 후, 처리부(41)는 '섹터 정보 0' 이 지시하는 디스크 내의 '섹터 0' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in 'sector 0' in the disk), the processing unit 41 stores 'block information 0', 'sector information 0' 1 ' (i.e., the first row in the mapping table). Thereafter, the processing unit 41 inputs the data to the 'sector 0' in the disk indicated by 'sector information 0'.

여기서, 데이터의 입력이 요청된 '섹터 0' 은 '블록 0' 내에 위치하므로 블록 정보는 '0' 으로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 0' 에 입력되므로 섹터 정보는 '0' 으로 설정되고, '블록 정보 0' 에 대응된 '섹터 0' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 0' requested to input data is located in 'block 0', the block information is set to '0', and the data is substantially input to 'sector 0' in the disk, And 'sector 0' corresponding to 'block information 0' is referred to by one virtual machine, so that the reference information is set to '1'.

그 후, 디스크 내의 '섹터 8' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 처리부(41)는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when data input request information for requesting data input to the 'sector 8' in the disk is received, the processing unit 41 determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database do.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 8' 에 저장되어 있지 않은 경우), 처리부(41)는 '블록 정보 1', '섹터 정보 8', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 두 번째 행)를 생성한다. 그 후, 처리부(41)는 '섹터 정보 8' 이 지시하는 디스크 내의 '섹터 8' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in the 'sector 8' in the disc), the processing unit 41 reads 'block information 1', 'sector information 8' 1 " (i.e., the second row in the mapping table). Thereafter, the processing unit 41 inputs data to the 'sector 8' in the disk indicated by 'sector information 8'.

여기서, 데이터의 입력이 요청된 '섹터 8' 은 '블록 1' 내에 위치하므로 블록 정보는 '1' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 8' 에 입력되므로 섹터 정보는 '8' 으로 설정되고, '블록 정보 1' 에 대응된 '섹터 8' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 8' requested to input data is located in 'block 1', the block information is set to '1', and the data is substantially input to the 'sector 8' 'Sector 8' corresponding to 'block information 1' is referred to by one virtual machine, and reference information is set to '1'.

그 후, 디스크 내의 '섹터 16' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 처리부(41)는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when data input request information for requesting data input to the 'sector 16' in the disk is received, the processing unit 41 determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database do.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 16' 에 저장되어 있지 않은 경우), 처리부(41)는 '블록 정보 2', '섹터 정보 16', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 세 번째 행)를 생성한다. 그 후, 처리부(41)는 '섹터 정보 16' 이 지시하는 디스크 내의 '섹터 16' 에 데이터를 입력한다.If the same input fingerprint does not exist in the database (that is, if the same data is not stored in the 'sector 16' in the disc), the processing unit 41 stores 'block information 2', 'sector information 16' 1 " (i.e., the third row in the mapping table). Thereafter, the processing unit 41 inputs data to the 'sector 16' in the disk indicated by the 'sector information 16'.

여기서, 데이터의 입력이 요청된 '섹터 16' 은 '블록 2' 내에 위치하므로 블록 정보는 '2' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 16' 에 입력되므로 섹터 정보는 '16' 으로 설정되고, '블록 정보 2' 에 대응된 '섹터 16' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 16' requested to input data is located in 'block 2', the block information is set to '2', and the data is actually input to the 'sector 16' And 'sector 16' corresponding to 'block information 2' is referred to by one virtual machine, so that reference information is set to '1'.

그 후, 디스크 내의 '섹터 24' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 처리부(41)는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다.Thereafter, when data input request information requesting data input to the 'sector 24' in the disc is received, the processing unit 41 determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database do.

동일한 입력 지문이 데이터베이스에 존재하지 않는 경우(즉, 동일한 데이터가 디스크 내의 '섹터 24' 에 저장되어 있지 않은 경우), 처리부(41)는 '블록 정보 3', '섹터 정보 24', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 네 번째 행)를 생성한다. 그 후, 처리부(41)는 '섹터 정보 24' 가 지시하는 디스크 내의 '섹터 24' 에 데이터를 입력한다. If the same input fingerprint does not exist in the database (that is, if the same data is not stored in the 'sector 24' in the disc), the processing unit 41 outputs 'block information 3', 'sector information 24' 1 " (i.e., the fourth row in the mapping table). Thereafter, the processing unit 41 inputs data to the 'sector 24' in the disk indicated by the 'sector information 24'.

여기서, 데이터의 입력이 요청된 '섹터 24' 는 '블록 3' 내에 위치하므로 블록 정보는 '3' 으로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 24' 에 입력되므로 섹터 정보는 '24' 로 설정되고, '블록 정보 3' 에 대응된 '섹터 24' 는 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.Since the 'sector 24' requested to input data is located in 'block 3', the block information is set to '3', and the data is substantially input to the 'sector 24' And 'sector 24' corresponding to 'block information 3' is referred to by one virtual machine, so that reference information is set to '1'.

그 후, 디스크 내의 '섹터 32' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보를 수신한 경우, 처리부(41)는 수신된 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문이 데이터베이스에 존재하는지 판단한다. 이때, 동일한 입력 지문이 데이터베이스에 존재하는 경우 처리부(41)는 도 6에 도시된 매핑 테이블을 생성할 수 있고, 반면 동일한 입력 지문이 데이터베이스에 존재하지 않는 경우 처리부(41)는 도 7에 도시된 매핑 테이블을 생성할 수 있다.Then, when data input request information requesting input of data to the 'sector 32' in the disk is received, the processing unit 41 determines whether the input fingerprint identical to the input fingerprint for the received data input request information exists in the database do. In this case, if the same input fingerprint exists in the database, the processing unit 41 can generate the mapping table shown in FIG. 6, whereas if the same input fingerprint does not exist in the database, You can create a mapping table.

도 6을 참조하면, '섹터 32' 에 데이터의 입력을 요청하는 데이터 입력 요청 정보에 대한 입력 지문이 '섹터 8' 에 입력된 데이터의 입력 지문과 동일한 경우(즉, 동일한 데이터가 디스크 내의 '섹터 8' 에 이미 저장되어 있는 경우), 처리부(41)는 '블록 정보 4', '섹터 정보 8', '참조 정보 0' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 다섯 번째 행)를 생성한다.Referring to FIG. 6, when the input fingerprint for the data input request information requesting the data input to the 'sector 32' is the same as the input fingerprint of the data input to the 'sector 8' (that is, 8 '), the processing unit 41 generates mapping information (i.e., the fifth row in the mapping table) including' block information 4 ',' sector information 8 ', and' reference information 0 ' .

여기서, 데이터의 입력이 요청된 '섹터 32' 는 '블록 4' 내에 위치하므로 블록 정보는 '4' 로 설정되고, 동일한 데이터가 디스크 내의 '섹터 8' 에 이미 입력되어 있으므로 섹터 정보는 '8' 로 설정되고, '블록 정보 4' 에 대응된 '섹터 32' 를 참조하는 가상 머신이 없으므로 참조 정보는 '0' 으로 설정된다.Since the 'sector 32' requested to input data is located in 'block 4', the block information is set to '4', and the same data is already input to 'sector 8' And the reference information is set to '0' because there is no virtual machine that refers to 'sector 32' corresponding to 'block information 4'.

더불어, 매핑 테이블 내의 두 번째 행의 매핑 정보에 포함된 '섹터 8' 은 2 개의 가상 머신에 의해 참조 되므로(즉, '블록 정보 1' 에 데이터 입력을 요청한 가상 머신, '블록 정보 4' 에 데이터 입력을 요청한 가상 머신), 두 번째 행의 매핑 정보에 포함된 참조 정보는 '2' 로 설정된다. 이와 같이, 참조 정보의 값이 '2' 이상인 경우, 이는 하나의 데이터가 복수의 가상 머신에 의해 참조되고 있음을 나타내므로, 이 경우 가상 머신이 해당 데이터를 변경하는 것을 금지된다.In addition, since the 'sector 8' included in the mapping information of the second row in the mapping table is referred to by two virtual machines (that is, a virtual machine that requests data input in 'block information 1' And the reference information included in the mapping information of the second row is set to '2'. In this way, when the value of the reference information is equal to or larger than '2', this indicates that one piece of data is referred to by a plurality of virtual machines. In this case, the virtual machine is prohibited from changing the corresponding data.

도 7을 참조하면, '섹터 32' 에 데이터 입력을 요청하는 데이터 입력 요청 정보에 대한 입력 지문과 동일한 입력 지문에 데이터베이스에 존재하지 않는 경우, 처리부(41)는 '블록 정보 4', '섹터 정보 32', '참조 정보 1' 을 포함하는 매핑 정보(즉, 매핑 테이블 내의 다섯 번째 행)를 생성한다. 그 후, 처리부(41)는 '섹터 정보 32' 이 지시하는 디스크 내의 '섹터 32' 에 데이터를 입력한다.Referring to FIG. 7, if there is no input fingerprint in the input fingerprint for the data input request information requesting data input to the 'sector 32', the processing unit 41 outputs' block information 4 ',' sector information (I.e., the fifth row in the mapping table) including the reference information 32 'and' reference information 1 '. Thereafter, the processing unit 41 inputs data to the 'sector 32' in the disk indicated by the 'sector information 32'.

여기서, 데이터의 입력이 요청된 '섹터 32' 는 '블록 4' 내에 위치하므로 블록 정보는 '4' 로 설정되고, 데이터는 실질적으로 디스크 내의 '섹터 32' 에 입력되므로 섹터 정보는 '32' 로 설정되고, '블록 정보 4' 에 대응된 '섹터 32' 은 1 개의 가상 머신에 의해 참조 되므로 참조 정보는 '1' 로 설정된다.
Since the 'sector 32' requested to input data is located in 'block 4', the block information is set to '4', and the data is actually input to the 'sector 32' in the disc, And 'sector 32' corresponding to 'block information 4' is referred to by one virtual machine, so that reference information is set to '1'.

처리부(41)는 상기에서 설명한 단계 S200 과 동일하게, 가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득할 수 있다. 여기서, 데이터 출력 요청 정보는 출력하고자 하는 데이터가 입력된 주소 정보, 데이터의 입출력 방향 정보(즉, 입력 또는 출력) 등을 포함할 수 있으며, 주소 정보는 데이터가 입력된 섹터 정보 또는 데이터가 입력된 블록 정보를 포함할 수 있다.The processing unit 41 may obtain block information indicating the logical address to which the data requested to be output is input, from the data output request information of the virtual machine, in the same manner as in step S200 described above. Here, the data output request information may include address information to which data to be output is input, input / output direction information (i.e., input or output) of data, and the like. The address information may include sector information or data Block information.

즉, 처리부(41)는 데이터 출력 요청 정보로부터 주소 정보를 획득할 수 있고, 획득된 주소 정보가 섹터 정보인 경우 섹터 정보를 기반으로 블록 정보를 생성할 수 있다. 예를 들어, 섹터 정보가 '0' 인 경우 처리부(41)는 섹터 정보 '0' 에 대응된 블록 정보 '0' 을 생성할 수 있고, 섹터 정보가 '8' 인 경우 처리부(41)는 섹터 정보 '8' 에 대응된 블록 정보 '1' 을 생성할 수 있다. 반면, 획득된 주소 정보가 블록 정보인 경우, 처리부(41)는 주소 정보를 그대로 사용할 수 있다.That is, the processor 41 may obtain address information from the data output request information, and may generate block information based on the sector information when the obtained address information is sector information. For example, when the sector information is '0', the processing unit 41 can generate block information '0' corresponding to the sector information '0'. If the sector information is '8' 1 " corresponding to the information " 8 ". On the other hand, when the obtained address information is block information, the processing unit 41 can use the address information as it is.

처리부(41)는 상기에서 설명한 단계 S210 과 동일하게, 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 블록 정보와 대응된 매핑 정보를 획득할 수 있다. 그 후, 처리부(41) 상기에서 설명한 단계 S220 과 동일하게, 매핑 정보로부터 출력 요청된 데이터가 입력된 물리적 주소를 획득할 수 있다. 그 후, 처리부(41)는 상기에서 설명한 단계 S230 과 동일하게, 획득된 물리적 주소에 저장된 데이터를 가상 머신에 제공할 수 있다.The processing unit 41 may obtain the mapping information corresponding to the block information from the mapping table formed based on the logical address and the physical address into which the data is input, in the same manner as in step S210 described above. Thereafter, the processing unit 41 can acquire the physical address to which the data requested to be output is inputted from the mapping information, similarly to the step S220 described above. Thereafter, the processing unit 41 can provide the virtual machine with the data stored at the obtained physical address in the same manner as in the above-described step S230.

이하 상기에서 설명한 도 6을 참조하여, 처리부(41)가 수행하는 매핑 정보 획득, 물리적 주소 획득, 데이터 제공에 대해 상세하게 설명한다.Hereinafter, the mapping information acquisition, physical address acquisition, and data provision performed by the processing unit 41 will be described in detail with reference to FIG. 6 described above.

도 6을 참조하면, 블록 정보가 '1' 인 경우 처리부(41)는 매핑 테이블 내의 두 번째 행의 매핑 정보(즉, '블록 정보 1', '섹터 정보 8', '참조 정보 2')를 획득할 수 있다. 두 번째 행의 매핑 정보 내의 '섹터 정보 8' 은 '블록 정보 1' 에 대응된 물리적 주소를 나타내므로, 처리부(41)는 물리적 주소로 '섹터 정보 8' 을 획득할 수 있다. 그 후, 처리부(41)는 디스크 내의 '섹터 8(즉, 블록 1)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.6, when the block information is '1', the processing unit 41 stores mapping information of the second row in the mapping table (i.e., 'block information 1', 'sector information 8', and 'reference information 2') Can be obtained. Since the 'sector information 8' in the mapping information of the second row indicates the physical address corresponding to 'block information 1', the processing unit 41 can acquire 'sector information 8' as a physical address. Then, the processing unit 41 can provide the virtual machine with the data input in the sector 8 (i.e., block 1) in the disk.

한편, 블록 정보가 '2' 인 경우 처리부(41)는 매핑 테이블 내의 세 번째 행의 매핑 정보(즉, '블록 정보 2', '섹터 정보 16', '참조 정보 1')를 획득할 수 있다. 세 번째 행의 매핑 정보 내의 '섹터 정보 16' 은 '블록 정보 2' 에 대응된 물리적 주소를 나타내므로, 처리부(41)는 물리적 주소로 '섹터 정보 16' 을 획득할 수 있다. 그 후, 처리부(41)는 디스크 내의 '섹터 16(즉, 블록 2)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.On the other hand, when the block information is '2', the processing unit 41 can obtain the mapping information of the third row in the mapping table (i.e., 'block information 2', 'sector information 16', 'reference information 1' . Since the 'sector information 16' in the mapping information of the third row indicates the physical address corresponding to 'block information 2', the processing unit 41 can obtain 'sector information 16' as a physical address. Thereafter, the processing unit 41 can provide the virtual machine with the data input in the sector 16 (i.e., block 2) in the disk.

한편, 블록 정보가 '4' 인 경우 처리부(41)는 매핑 테이블 내의 다섯 번째 행의 매핑 정보(즉, '블록 정보 4', '섹터 정보 8', '참조 정보 0')를 획득할 수 있다. 다섯 번째 행의 매핑 정보 내의 '섹터 정보 8' 은 '블록 정보 4' 에 대응된 물리적 주소를 나타내므로, 처리부(41)는 물리적 주소로 '섹터 정보 8' 을 획득할 수 있다. 그 후, 처리부(41)는 디스크 내의 '섹터 8(즉, 블록 1)' 에 입력된 데이터를 가상 머신에 제공할 수 있다.
On the other hand, when the block information is '4', the processing unit 41 can acquire the mapping information of the fifth row in the mapping table (i.e., 'block information 4', 'sector information 8', 'reference information 0' . Since the 'sector information 8' in the mapping information of the fifth row represents the physical address corresponding to the 'block information 4', the processing unit 41 can obtain 'sector information 8' as a physical address. Then, the processing unit 41 can provide the virtual machine with the data input in the sector 8 (i.e., block 1) in the disk.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. It will be possible.

10: 가상 머신
20: 가상화 인프라스트럭쳐
30: 하드웨어
10: Virtual Machines
20: Virtualization Infrastructure
30: Hardware

Claims (15)

가상화 장치에서 수행되는 입력 데이터(input data) 처리 방법에 있어서,
가상 머신(virtual machine)의 데이터 입력 요청 정보에 해시 알고리즘(hash algorithm)을 적용하여 제1 입력 지문을 생성하는 단계;
미리 생성된 입력 지문을 기초로 형성된 데이터베이스(database)에 상기 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하는 단계; 및
상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하면, 상기 제1 입력 지문과 동일한 입력 지문에 대응된 매핑(mapping) 정보를 기반으로, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 단계를 포함하고,
상기 매핑 정보는,
상기 제1 입력 지문과 동일한 입력 지문에 대응된 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 상기 블록 정보에 대응된 물리적 주소를 나타낸 섹터 정보 및 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함하고,
상기 제1 매핑 정보는,
상기 제1 입력 지문에 대응된 데이터의 입력을 위한 상기 블록 정보에 나타낸 상기 논리적 주소와 다른 제1 논리적 주소를 나타내는 제1 블록 정보, 상기 섹터 정보에 나타낸 상기 물리적 주소와 동일한 제1 섹터 정보 및 상기 참조 정보에 나타낸 상기 횟수가 변경된 제1 횟수를 나타낸 제1 참조 정보를 포함하는 입력 데이터 처리 방법.
A method for processing input data performed in a virtualization apparatus,
Generating a first input fingerprint by applying a hash algorithm to data input request information of a virtual machine;
Determining whether an input fingerprint identical to the first input fingerprint exists in a database formed based on an input fingerprint previously generated; And
If the same input fingerprint as the first input fingerprint exists in the database, based on mapping information corresponding to the same input fingerprint as the first input fingerprint, for inputting data corresponding to the first input fingerprint And setting the first mapping information,
The mapping information includes:
Block information indicating a logical address to which data corresponding to the input fingerprint identical to the first input fingerprint is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the input data is referenced ,
Wherein the first mapping information comprises:
First block information indicating a first logical address different from the logical address indicated in the block information for inputting data corresponding to the first input fingerprint, first sector information identical to the physical address indicated in the sector information, And first reference information indicating a first number of times the number of times indicated in the reference information is changed.
청구항 1에 있어서,
상기 판단 단계 이후, 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터 베이스에 존재하지 않으면, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제2 매핑 정보를 설정하는 단계; 및
상기 제2 매핑 정보를 기반으로 상기 제1 입력 지문과 대응된 데이터를 입력하는 단계를 포함하고,
상기 제2 매핑 정보는,
상기 제1 입력 지문에 대응된 데이터가 입력되는 제2 블록 정보, 제2 섹터 정보 및 제2 참조 정보를 포함하는 입력 데이터 처리 방법.
The method according to claim 1,
Setting second mapping information for inputting data corresponding to the first input fingerprint if the input fingerprint identical to the first input fingerprint does not exist in the database after the determining step; And
And inputting data corresponding to the first input fingerprint based on the second mapping information,
Wherein the second mapping information comprises:
Second block information, second sector information, and second reference information into which data corresponding to the first input fingerprint is input.
청구항 2에 있어서,
상기 해시 알고리즘은 SHA(secure hash algorithm) 인 것을 특징으로 하는 입력 데이터 처리 방법.
The method of claim 2,
Wherein the hash algorithm is a secure hash algorithm (SHA).
청구항 2에 있어서,
상기 데이터베이스는 RB(red black)-트리(tree) 구조를 기반으로 형성되는 것을 특징으로 하는 입력 데이터 처리 방법.
The method of claim 2,
Wherein the database is formed based on a RB (red black) -tree structure.
청구항 2에 있어서,
상기 제2 매핑 정보는,
상기 제1 입력 지문에 대응된 데이터의 입력을 위한 상기 제1 논리적 주소를 나타내는 제2 블록 정보, 상기 제2 블록 정보에 대응되며 제1 물리적 주소를 나타내는 제2 섹터 정보 및 상기 제1 물리적 주소에 입력된 데이터가 참조되는 제2 횟수를 나타내는 제2 참조 정보를 포함하는 입력 데이터 처리 방법.
The method of claim 2,
Wherein the second mapping information comprises:
Second block information indicating the first logical address for inputting data corresponding to the first input fingerprint, second sector information corresponding to the second block information and indicating a first physical address, and second sector information corresponding to the first physical address And second reference information indicating a second number in which the input data is referenced.
삭제delete 삭제delete 삭제delete 가상 머신(virtual machine)의 데이터 입력 요청 정보에 해시 알고리즘(hash algorithm)을 적용하여 제1 입력 지문을 생성하고, 미리 생성된 입력 지문을 기초로 형성된 데이터베이스(database)에 상기 제1 입력 지문과 동일한 입력 지문이 존재하는지 판단하여, 상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하면, 상기 제1 입력 지문과 동일한 입력 지문에 대응된 매핑(mapping) 정보를 기반으로, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제1 매핑 정보를 설정하는 처리부; 및
상기 처리부에서 처리되는 정보 및 처리된 정보를 저장하는 저장부;를 포함하고,
상기 매핑 정보는,
상기 제1 입력 지문과 동일한 입력 지문과 대응된 데이터가 입력된 논리적 주소를 나타내는 블록 정보, 상기 블록 정보에 대응된 물리적 주소를 나타낸 섹터 정보 및 입력된 데이터가 참조되는 횟수를 나타낸 참조 정보를 포함하고,
상기 처리부는,
상기 제1 입력 지문에 대응된 데이터의 입력을 위한 상기 블록 정보에 나타낸 상기 논리적 주소와 다른 제1 논리적 주소를 나타내는 제1 블록 정보, 상기 섹터 정보에 나타낸 상기 물리적 주소와 동일한 제1 섹터 정보 및 상기 참조 정보에 나타낸 상기 횟수가 변경된 제1 횟수를 나타낸 제1 참조 정보를 포함하는 상기 제1 매핑 정보를 설정하는 가상화 장치.
A first input fingerprint is generated by applying a hash algorithm to the data input request information of a virtual machine and the same data as the first input fingerprint is generated in a database formed on the basis of a previously generated input fingerprint Determining whether or not an input fingerprint exists, and if the input fingerprint identical to the first input fingerprint exists in the database, based on mapping information corresponding to the same input fingerprint as the first input fingerprint, A first mapping information setting unit configured to set first mapping information for input of data corresponding to the first mapping information; And
And a storage unit for storing information processed and processed by the processing unit,
The mapping information includes:
Block information indicating a logical address to which data corresponding to the input fingerprint identical to the first input fingerprint is input, sector information indicating a physical address corresponding to the block information, and reference information indicating the number of times the input data is referenced ,
Wherein,
First block information indicating a first logical address different from the logical address indicated in the block information for inputting data corresponding to the first input fingerprint, first sector information identical to the physical address indicated in the sector information, And sets the first mapping information including first reference information indicating a first number of times the number of times indicated in the reference information is changed.
삭제delete 삭제delete 청구항 9에 있어서,
상기 처리부는,
상기 제1 입력 지문과 동일한 입력 지문이 상기 데이터베이스에 존재하지 않으면, 상기 제1 입력 지문과 대응된 데이터의 입력을 위한 제2 매핑 정보를 설정하고, 상기 제2 매핑 정보를 기반으로 상기 제1 입력 지문과 대응된 데이터를 입력하며,
상기 제2 매핑 정보는,
상기 제1 입력 지문에 대응된 데이터의 입력을 위한 상기 제1 논리적 주소를 나타내는 제2 블록 정보, 상기 제2 블록 정보에 대응되며 제1 물리적 주소를 나타내는 제2 섹터 정보 및 상기 제1 물리적 주소에 입력된 데이터가 참조되는 제2 횟수를 나타내는 제2 참조 정보를 포함하는 가상화 장치.
The method of claim 9,
Wherein,
Setting second mapping information for inputting data corresponding to the first input fingerprint if the input fingerprint identical to the first input fingerprint does not exist in the database, Inputting the data corresponding to the fingerprint,
Wherein the second mapping information comprises:
Second block information indicating the first logical address for inputting data corresponding to the first input fingerprint, second sector information corresponding to the second block information and indicating a first physical address, and second sector information corresponding to the first physical address And second reference information indicating a second number in which the input data is referenced.
청구항 12에 있어서,
상기 처리부는,
가상 머신의 데이터 출력 요청 정보로부터, 출력 요청된 데이터가 입력된 논리적 주소를 나타내는 블록 정보를 획득하고, 데이터가 입력된 논리적 주소 및 물리적 주소를 기초로 형성된 매핑 테이블로부터 상기 블록 정보와 대응된 매핑 정보를 획득하고, 상기 매핑 정보로부터 상기 출력 요청된 데이터가 입력된 물리적 주소를 획득하고, 획득된 물리적 주소에 입력된 데이터를 가상 머신에 제공하는 것을 특징으로 하는 가상화 장치.
The method of claim 12,
Wherein,
Acquiring block information indicating a logical address into which data requested to be output is input from the data output request information of the virtual machine and mapping information corresponding to the block information from the mapping table formed based on the logical address and the physical address, Acquires the physical address to which the output requested data is input from the mapping information, and provides the virtual machine with data input at the obtained physical address.
청구항 9에 있어서,
상기 해시 알고리즘은 SHA(secure hash algorithm) 인 것을 특징으로 하는 가상화 장치.
The method of claim 9,
Wherein the hash algorithm is a secure hash algorithm (SHA).
청구항 9에 있어서,
상기 데이터베이스는 RB(red black)-트리(tree) 구조를 기반으로 형성되는 것을 특징으로 하는 가상화 장치.
The method of claim 9,
Wherein the database is formed based on a RB (red black) -tree structure.
KR1020130011608A 2013-02-01 2013-02-01 Method for processing data of virtual machine KR101628436B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130011608A KR101628436B1 (en) 2013-02-01 2013-02-01 Method for processing data of virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130011608A KR101628436B1 (en) 2013-02-01 2013-02-01 Method for processing data of virtual machine

Publications (2)

Publication Number Publication Date
KR20140099353A KR20140099353A (en) 2014-08-12
KR101628436B1 true KR101628436B1 (en) 2016-06-09

Family

ID=51745701

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130011608A KR101628436B1 (en) 2013-02-01 2013-02-01 Method for processing data of virtual machine

Country Status (1)

Country Link
KR (1) KR101628436B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663139B2 (en) 2019-04-22 2023-05-30 SK Hynix Inc. Apparatus for transmitting map information in memory system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182302A (en) 2009-02-04 2010-08-19 Hitachi Ltd Method and apparatus for efficiently removing data duplication by metadata grouping

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
KR101097777B1 (en) * 2010-02-05 2011-12-23 한국과학기술원 A method, system and computer readable media for managing hybrid memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182302A (en) 2009-02-04 2010-08-19 Hitachi Ltd Method and apparatus for efficiently removing data duplication by metadata grouping

Also Published As

Publication number Publication date
KR20140099353A (en) 2014-08-12

Similar Documents

Publication Publication Date Title
US10691341B2 (en) Method for improving memory system performance in virtual machine systems
US9053065B2 (en) Method for restoring virtual machine state from a checkpoint file
US9239841B2 (en) Hash-based snapshots
US9201698B2 (en) System and method to reduce memory usage by optimally placing VMS in a virtualized data center
US9053064B2 (en) Method for saving virtual machine state to a checkpoint file
KR102321913B1 (en) Non-volatile memory device, and memory system having the same
CN107807839B (en) Method and device for modifying memory data of virtual machine and electronic equipment
US8825936B2 (en) Systems and methods for increasing data volume sparseness
JP2014513338A5 (en) Method, computer readable storage medium and system for optimal compression of a virtual disk
EP3669262B1 (en) Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support
US20170034697A1 (en) Pen Needle Outer Cover Concepts
US10521259B2 (en) Device and method for monitoring resources in full virtualization system
US10318166B1 (en) Preserving locality of storage accesses by virtual machine copies in hyper-converged infrastructure appliances
US10185573B2 (en) Caching based operating system installation
US20150012722A1 (en) Identification of page sharing opportunities within large pages
KR101573112B1 (en) Method for distributing data and apparatus therefor
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
Arani et al. An extended approach for efficient data storage in cloud computing environment
KR101628436B1 (en) Method for processing data of virtual machine
WO2021022274A1 (en) Deduplication based on consolidation of data fingerprints
US10356221B2 (en) Access to network-based storage resource based on hardware identifier
CN106547603B (en) Method and device for reducing garbage recovery time of golang language system
US20240168629A1 (en) Variable sized data chunks with striped erasure coding
US20230205564A1 (en) Generation of cloud-based actionable processes
US20220171852A1 (en) Supervisor-based firmware hardening

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 4