KR20110103699A - Network block device providing personalized virtual machine in cloud computing environment and control method thereof - Google Patents

Network block device providing personalized virtual machine in cloud computing environment and control method thereof Download PDF

Info

Publication number
KR20110103699A
KR20110103699A KR1020100022882A KR20100022882A KR20110103699A KR 20110103699 A KR20110103699 A KR 20110103699A KR 1020100022882 A KR1020100022882 A KR 1020100022882A KR 20100022882 A KR20100022882 A KR 20100022882A KR 20110103699 A KR20110103699 A KR 20110103699A
Authority
KR
South Korea
Prior art keywords
operation command
block
network
write
virtual machine
Prior art date
Application number
KR1020100022882A
Other languages
Korean (ko)
Other versions
KR101329759B1 (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 KR1020100022882A priority Critical patent/KR101329759B1/en
Publication of KR20110103699A publication Critical patent/KR20110103699A/en
Application granted granted Critical
Publication of KR101329759B1 publication Critical patent/KR101329759B1/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
    • 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
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 및 그 제어 방법이 제공된다. 본 발명에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법은, 가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일(Operating System Image File)과 상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터를 기록하는 쓰기 데이터 파일을 저장하는 단계; 네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하는 단계; 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하면 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 단계; 및 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에, 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계를 포함한다.Provided are a network block device for providing a personalized virtual machine in a cloud computing environment and a control method thereof. In a method of controlling a network block device server providing a personalized virtual machine in a cloud computing environment according to the present invention, an OS image file providing a virtual machine and a write command to the OS image file are provided. Storing a write data file for recording data for the; Receiving an operation command for the virtual machine from a network block device client; If the received operation command is a read operation command, it is determined whether a block of the OS image file corresponding to the read operation command exists in the cache memory. If the received operation command exists in the cache memory, the block is transferred to the network block device client. Providing; And if the received operation command is a write operation command, writing a block according to the write operation command to a bitmap of a block corresponding to the write operation command on the write data file.

Description

클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 및 그 제어 방법{NETWORK BLOCK DEVICE PROVIDING PERSONALIZED VIRTUAL MACHINE IN CLOUD COMPUTING ENVIRONMENT AND CONTROL METHOD THEREOF}NETWORK BLOCK DEVICE PROVIDING PERSONALIZED VIRTUAL MACHINE IN CLOUD COMPUTING ENVIRONMENT AND CONTROL METHOD THEREOF}

본 발명의 실시예들은 네트워크 블록 디바이스 및 그 제어 방법에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 및 그 제어 방법에 관한 것이다.Embodiments of the present invention relate to a network block device and a control method thereof, and more particularly, to a network block device for providing a personalized virtual machine in a cloud computing environment and a control method thereof.

본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-016-03, 과제명: 저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy [Task Management No .: 2007-S-016-03, Title: Development of a low-cost large-scale global Internet service solution].

블록 디바이스(Block Device)는 블록 단위의 입출력이 가능한 장치로서, 대부분의 유닉스(Unix) 또는 리눅스(Linux) 시스템은 이와 같은 블록 디바이스를 포함하여 구성되어 있다. 네트워크 블록 디바이스(Network Block Device: NBD)는 네트워크를 통하여 네트워크 블록 디바이스 클라이언트가 이와 같은 블록 디바이스로 접근 가능하도록 하는 구성을 가지고 있다.A block device is a device capable of input / output in units of blocks, and most Unix or Linux systems include such a block device. A network block device (NBD) has a configuration that allows a network block device client to access such a block device through a network.

클라우드 컴퓨팅(cloud computing) 환경에서 가상 머신(Virtual Machine)의 구동을 위해서는, 로컬 디스크에 운영 체제(Operating System: OS)를 설치 가능한 크기의 적절한 디바이스 파일을 생성하고 상기 디바이스 파일 상에 운영 체제를 설치한다. 이와 같이 구성되는 가상 머신은 사용자의 읽기(read) 또는 쓰기(write) 명령에 의하여 변경이 이루어지며 그에 따라 각 사용자당 하나의 가상 머신이 할당된다.To run a virtual machine in a cloud computing environment, create an appropriate device file of a size that can install an operating system (OS) on a local disk and install an operating system on the device file. do. The virtual machine configured as described above is changed by a user's read or write command, and thus, one virtual machine is allocated to each user.

그러므로, 종래에는 사용자 별로 가상 머신을 위한 파일을 여러 개 생성하여 네트워크 파일 시스템(Network File System: NFS)의 형태로 사용자에게 제공하였으며, 그에 따라 가상 머신의 용량의 낭비가 발생하였으며 가상 머신의 사용자에 대한 응답성에도 문제가 발생하였다. 즉, 종래에는 사용자 별로 가상 머신 이미지 파일을 복사하여야 하므로 로컬 디스크의 용량의 낭비가 발생하고 사용자에게 제공할 수 있는 가상 머신의 수도 한정되어 있었다. 또한, 다수의 사용자가 가상 머신을 요청하는 경우 네트워크 블록 디바이스 서버에서 네트워크 병목 현상이 발생하여 사용자의 읽기 또는 쓰기 명령이 원활하게 이루어질 수 없었다.Therefore, in the related art, a plurality of files for a virtual machine are generated for each user and provided to a user in the form of a network file system (NFS). Accordingly, a waste of the capacity of the virtual machine occurs, There was a problem with responsiveness. That is, in the related art, since the virtual machine image file must be copied for each user, the capacity of the local disk is wasted and the number of virtual machines that can be provided to the user is limited. In addition, when a large number of users request a virtual machine, a network bottleneck occurs in the network block device server, and thus, a user's read or write command cannot be smoothly performed.

본 발명은 가상 머신을 제공하는 OS 이미지 파일과 상기 OS 이미지 파일에 대한 쓰기 데이터를 별도로 관리하여 가상 머신의 제공을 위한 용량의 낭비를 최소화하고 사용자에게 제공할 수 있는 가상 머신의 수도 최대화 하고자 한다.The present invention manages the OS image file providing the virtual machine and the write data for the OS image file separately to minimize the waste of capacity for providing the virtual machine and to maximize the number of virtual machines that can be provided to the user.

또한 본 발명은 다수의 사용자에게 가상 머신의 제공 시에도 네트워크 병목 현상이 발생하지 않도록 하고자 한다.In addition, the present invention is intended to prevent a network bottleneck even when providing a virtual machine to a large number of users.

본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법은, 가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일(Operating System Image File)과 상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터를 기록하는 쓰기 데이터 파일을 저장하는 단계; 네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하는 단계; 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하면 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 단계; 및 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에, 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계를 포함한다.According to an embodiment of the present invention, a method for controlling a network block device server providing a personalized virtual machine in a cloud computing environment includes an operating system image file and an operating system image file providing a virtual machine. Storing a write data file for recording data for a write command to the write command; Receiving an operation command for the virtual machine from a network block device client; If the received operation command is a read operation command, it is determined whether a block of the OS image file corresponding to the read operation command exists in the cache memory. If the received operation command exists in the cache memory, the block is transferred to the network block device client. Providing; And if the received operation command is a write operation command, writing a block according to the write operation command to a bitmap of a block corresponding to the write operation command on the write data file.

이때, 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 단계는, 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 상기 블록을 제공받아 상기 네트워크 블록 디바이스 클라이언트로 제공할 수 있다.The providing of the block to the network block device client may include determining whether a block of the OS image file corresponding to the read operation command exists in the cache memory when the received operation command is a read operation command. If not present in the cache memory, the block may be provided to the network block device client through a peer to peer (P2P) network.

이때, 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계는, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하지 않으면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하고 상기 블록을 처음으로 저장하였음을 나타내는 값을 상기 쓰기 데이터 파일 상에 저장하는 단계일 수 있다.In this case, the writing of the block according to the write operation command may include determining whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file if the received operation command is a write operation command. If the existing block does not exist, writing a block according to the write operation command in a bitmap of a block corresponding to the write operation command and storing a value indicating that the block is stored for the first time on the write data file. It may be a step.

이때, 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계는, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계일 수 있다.In this case, the writing of the block according to the write operation command may include determining whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file if the received operation command is a write operation command. If the existing block exists, the method may include writing a block according to the write operation command to a bitmap of a block corresponding to the write operation command.

이때, 상기 Peer To Peer(P2P) 네트워크는 비트토렌트 네트워크(BitTorrent network)일 수 있다.In this case, the Peer To Peer (P2P) network may be a BitTorrent network.

본 발명에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버는, 가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일을 저장하는 OS 이미지 파일 저장부; 상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터가 기록되는 쓰기 데이터 파일 저장부; 및 네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하고, 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 블록(block)이 상기 OS 이미지 파일 저장부의 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하면 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하도록 제어하고, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에, 상기 쓰기 연산 명령에 따른 블록을 기록하도록 제어하는 중앙 제어부를 포함한다.A network block device server for providing a personalized virtual machine in a cloud computing environment according to the present invention includes an OS image file storage configured to store an OS image file for providing a virtual machine; A write data file storage unit in which data on a write command to the OS image file is recorded; And receiving an operation command for the virtual machine from a network block device client, and if the received operation command is a read operation command, a block corresponding to the read operation command is cached in the OS image file storage unit. It is determined whether the memory exists in the memory, and if the cache memory is present in the cache memory, control to provide the block to the network block device client, and if the received operation command is a write operation command, it corresponds to the write operation command on the write data file storage unit. And a central control unit for controlling to write a block according to the write operation command in the bitmap of the block.

이때, 상기 중앙 제어부는, 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 상기 블록을 제공받아 상기 OS 이미지 파일 저장부에 저장하고, 상기 OS 이미지 파일 저장부에 저장된 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공할 수 있다.In this case, if the received operation command is a read operation command, the central controller determines whether a block of the OS image file corresponding to the read operation command exists in the cache memory. The block may be received through a To Peer (P2P) network and stored in the OS image file storage, and the block stored in the OS image file storage may be provided to the network block device client.

이때, 상기 중앙 제어부는, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하지 않으면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하고 상기 블록을 처음으로 저장하였음을 나타내는 값을 상기 쓰기 데이터 파일 저장부에 저장하도록 제어할 수 있다.In this case, if the received operation command is a write operation command, the central controller determines whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file storage unit. If not present, the block according to the write operation command is recorded in the bitmap of the block corresponding to the write operation command, and a value indicating that the block is stored for the first time may be controlled to be stored in the write data file storage unit.

이때, 상기 중앙 제어부는, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하면 상기 쓰기 데이터 파일 저장부의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하도록 제어할 수 있다.In this case, if the received operation command is a write operation command, the central controller determines whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file storage unit. If present, the block according to the write operation command may be recorded in a bitmap of a block corresponding to the write operation command of the write data file storage unit.

이때, 상기 Peer To Peer(P2P) 네트워크는 비트토렌트 네트워크(BitTorrent network)일 수 있다.In this case, the Peer To Peer (P2P) network may be a BitTorrent network.

본 발명에 따르면, 가상 머신을 제공하는 OS 이미지 파일과 상기 OS 이미지 파일에 대한 쓰기 데이터를 별도로 관리하여 가상 머신의 제공을 위한 용량의 낭비를 최소화하고 사용자에게 제공할 수 있는 가상 머신의 수도 최대화 할 수 있으며, 다수의 사용자에게 가상 머신의 제공 시에도 네트워크 병목 현상이 발생하지 않는다.According to the present invention, the OS image file providing the virtual machine and the write data for the OS image file are separately managed to minimize the waste of capacity for providing the virtual machine and maximize the number of virtual machines that can be provided to the user. The network bottleneck does not occur even when the virtual machine is provided to a large number of users.

또한 본 발명에 따르면, Peer To Peer(P2P) 네트워크로서 비트토렌트 네트워크(BitTorrent network)가 적용되는 경우, 보다 빠르게 사용자에게 가상 머신을 제공할 수 있다.In addition, according to the present invention, when a BitTorrent network is applied as a Peer To Peer (P2P) network, a virtual machine may be provided to a user more quickly.

도 1은 본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스의 개념도이다.
도 2는 본 발명의 일실시예에 따른 네트워크 블록 디바이스 서버의 구성도이다.
도 3은 본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법을 설명하기 위한 흐름도이다.
1 is a conceptual diagram of a network block device for providing a personalized virtual machine in a cloud computing environment according to an embodiment of the present invention.
2 is a block diagram of a network block device server according to an embodiment of the present invention.
3 is a flowchart illustrating a control method of a network block device server providing a personalized virtual machine in a cloud computing environment according to an exemplary embodiment of the present invention.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스의 개념도이다. 도 1을 참고하여 본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스를 설명하기로 한다.1 is a conceptual diagram of a network block device for providing a personalized virtual machine in a cloud computing environment according to an embodiment of the present invention. Referring to Figure 1 will be described a network block device for providing a personalized virtual machine in a cloud computing environment according to an embodiment of the present invention.

도 1에 도시된 바와 같이 본 발명의 일실시예에 따른 네트워크 블록 디바이스(Network Block Device: NBD)는 네트워크 블록 디바이스 서버(Network Block Device Server: NBD Server)(110), 네트워크 블록 디바이스 클라이언트(Network Block Device Client: NBD Client)(121, 122) 및 Peer To Peer 네트워크(130)를 포함하여 구성된다.As shown in FIG. 1, a network block device (NBD) according to an embodiment of the present invention includes a network block device server (NBD server) 110 and a network block device client (Network Block device client). Device Client: NBD Client (121, 122) and Peer To Peer network (130).

네트워크 블록 디바이스 클라이언트(121, 122)는 네트워크 블록 디바이스 서버(110)에 액세스하여 각각 가상 머신(Virtual Machine: VM)을 제공받을 수 있다.The network block device clients 121 and 122 may access the network block device server 110 and receive a virtual machine (VM), respectively.

네트워크 블록 디바이스 서버(NBD Server: 110)는 OS 이미지 파일 저장부(111) 및 쓰기 데이터 파일 저장부(112)를 포함하여 구성되며, OS 이미지 파일 저장부(111) 상에는 OS 이미지 파일(Operation System Image File)이 저장되어 있다. 따라서, 제1 네트워크 블록 디바이스 클라이언트(121) 또는 제2 네트워크 블록 디바이스 클라이언트(122)는 네트워크 블록 디바이스 서버(NBD Server: 110)에 액세스하여 가상 머신을 제공받을 수 있다.The NBD server 110 includes an OS image file storage 111 and a write data file storage 112, and an OS image file on the OS image file storage 111. File) is stored. Accordingly, the first network block device client 121 or the second network block device client 122 may access a network block device server (NBD server 110) and receive a virtual machine.

네트워크 블록 디바이스 클라이언트(121, 122)가 가상 머신 상에서의 읽기(read) 또는 쓰기(write) 명령을 내리면, 상기 읽기 또는 쓰기의 연산 명령은 네트워크 블록 디바이스 클라이언트(121, 122)로부터 네트워크 블록 디바이스 서버(110)로 전달된다.When the network block device client 121 or 122 issues a read or write command on a virtual machine, the operation command of the read or write is executed from the network block device client 121 or 122 to the network block device server ( 110).

네트워크 블록 디바이스 서버(110)는 네트워크 블록 디바이스 클라이언트(121, 122)로부터 상기 연산 명령을 수신하고 네트워크 블록 디바이스 서버(110)는 상기 수신한 연산 명령이 읽기 명령인지 또는 쓰기 명령인지를 판단한다. 네트워크 블록 디바이스 서버(110)의 상기 판단 결과, 상기 네트워크 블록 디바이스 클라이언트(121, 122)로부터 수신한 연산 명령이 읽기 연산 명령인 경우에는 상기 읽기 연산 명령에 해당하는 OS 이미지 파일의 블록(block)이 캐시 메모리(cache memory)상에 존재하는지를 판단한다. 네트워크 블록 디바이스 서버(110)에서의 상기 판단 결과, 상기 블록이 캐시 메모리에 존재하면 네트워크 블록 디바이스 서버(110)는 OS 이미지 파일 저장부(111)의 캐시 메모리에 존재하는 블록을 네트워크 블록 디바이스 클라이언트(121, 122)로 제공한다.The network block device server 110 receives the operation command from the network block device clients 121 and 122, and the network block device server 110 determines whether the received operation command is a read command or a write command. As a result of the determination of the network block device server 110, when the operation command received from the network block device client 121 or 122 is a read operation command, a block of an OS image file corresponding to the read operation command is Determine if it exists in cache memory. As a result of the determination by the network block device server 110, if the block exists in the cache memory, the network block device server 110 may select a block existing in the cache memory of the OS image file storage 111. 121, 122).

또한, 네트워크 블록 디바이스 서버(110)에서의 상기 판단 결과, 상기 블록이 캐시 메모리에 존재하지 않으면 네트워크 블록 디바이스 서버(110)는 Peer To Peer(P2P) 네트워크(130)를 통해 상기 블록을 제공받을 수 있다. 이때, 본 발명의 일실시예에 따른 Peer To Peer(P2P) 네트워크(130)로는 다양한 방식의 Peer To Peer 네트워크가 적용될 수 있으며, 보다 바람직하게는 Peer To Peer 네트워크로서 비트토렌트 네트워크(BitTorrent network)가 적용될 수 있다. 비트토렌트 네트워크를 적용하면 네트워크의 피어(131, 132, 133) 상에 분산되어 저장된 파일을 동시에 가져올 수 있으므로 네트워크 블록 디바이스 서버(110)가 보다 빠르게 블록을 제공받을 수 있다.In addition, as a result of the determination by the network block device server 110, if the block does not exist in the cache memory, the network block device server 110 may receive the block through a peer to peer (P2P) network 130. have. At this time, the Peer To Peer (P2P) network 130 according to an embodiment of the present invention may be applied to a Peer To Peer network of various methods, more preferably a BitTorrent network as a Peer To Peer network Can be applied. By applying the BitTorrent network, the network block device server 110 may be provided with the block faster because the file distributed and stored on the peers 131, 132, and 133 of the network may be simultaneously imported.

한편, 네트워크 블록 디바이스 서버(110)의 상기 판단 결과, 상기 네트워크 블록 디바이스 클라이언트(121, 122)로부터 수신한 연산 명령이 쓰기 연산 명령인 경우에는 네트워크 블록 디바이스 서버(110)가 쓰기 데이터 파일 저장부(112) 상에 상기 쓰기 연산 명령에 따른 블록을 기록한다. 즉, 네트워크 블록 디바이스 서버(110)는 쓰기 데이터 파일 저장부(112) 상의 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록한다.On the other hand, when the network block device server 110 determines that the operation command received from the network block device clients 121 and 122 is a write operation command, the network block device server 110 writes a write data file storage unit ( A block according to the write operation instruction is written on 112. That is, the network block device server 110 writes a block according to the write operation command in a bitmap of the block corresponding to the write operation command on the write data file storage 112.

이때, 네트워크 블록 디바이스 서버(110)는 쓰기 데이터 파일 저장부(112) 상의 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하지 않으면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하며, 또한 상기 블록을 처음으로 저장하였음을 나타내는 값을 상기 쓰기 데이터 파일 저장부(112)에 저장할 수 있다. 또 달리, 네트워크 블록 디바이스 서버(110)는 상기 기존의 블록이 존재하면 쓰기 데이터 파일 저장부(112)의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록할 수 있다.In this case, the network block device server 110 determines whether an existing block exists in the bitmap of the block on the write data file storage unit 112, and if the existing block does not exist, the network block device server 110 determines whether a block corresponding to the write operation command is present. A block according to the write operation command may be recorded in a bitmap, and a value indicating that the block is stored for the first time may be stored in the write data file storage 112. Alternatively, if the existing block exists, the network block device server 110 may write a block according to the write operation command to a bitmap of a block corresponding to the write operation command of the write data file storage 112. have.

예를 들어, 제1 네트워크 블록 디바이스 클라이언트(121)가 네트워크 블록 디바이스 서버(110)로 읽기(read, reread) 연산 명령을 전달하면, 네트워크 블록 디바이스 서버(110)는 상기 읽기 연산 명령에 해당하는 OS 이미지 파일의 블록이 OS 이미지 파일 저장부(111)에 캐시된 블록(142)으로 존재하는지를 판단하여, 존재하면 상기 캐시된 블록(142)을 제1 네트워크 블록 디바이스 클라이언트(121)로 제공한다. 한편, 네트워크 블록 디바이스 서버(110)는 OS 이미지 파일의 블록이 빈 블록(141)으로 존재하면 비트토렌트 네트워크(130) 상에 존재하는 제1 피어(peer: 131), 제2 피어(peer: 132) 및 제3 피어(peer: 133)을 통하여 블록을 제공받아서 제1 네트워크 블록 디바이스 클라이언트(121)로 신속하게 제공할 수 있다. 따라서 제1 네트워크 블록 디바이스(121)는 제공받은 블록을 통해 업데이트된 블록(143)을 구성할 수 있다.For example, when the first network block device client 121 transmits a read (read, reread) operation command to the network block device server 110, the network block device server 110 may transmit an OS corresponding to the read operation command. It is determined whether a block of the image file exists as a block 142 cached in the OS image file storage 111, and if present, the cached block 142 is provided to the first network block device client 121. Meanwhile, if the block of the OS image file exists as an empty block 141, the network block device server 110 may have a first peer 131 and a second peer 132 existing on the BitTorrent network 130. And a block through the third peer 133 to quickly provide the block to the first network block device client 121. Accordingly, the first network block device 121 may configure the updated block 143 through the provided block.

그리고, 제1 네트워크 블록 디바이스 클라이언트(121)가 네트워크 블록 디바이스 서버(110)로 쓰기(write, rewrite) 연산 명령을 전달하는 경우에는, 네트워크 블록 디바이스 서버(110)는 쓰기 데이터 파일 저장부(112) 상의 쓰기 연산 명령에 매칭되는 블록의 비트맵에 기존의 블록이 존재하는지를 판단한다. 네트워크 블록 디바이스 서버(110)는 상기 판단 결과 기존의 블록이 존재하지 않으면, 상기 쓰기 연산 명령에 해당하는 쓰기 데이터 파일 저장부(112)의 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하며, 또한 상기 블록을 처음으로 저장하였음을 나타내는 값을 저장한다. 즉, 네트워크 블록 디바이스 서버(110)는 제1 네트워크 블록 디바이스 클라이언트(121)로부터 9번째의 빈 블록에 쓰기 요청을 수신한 경우에는 (9, 1, ■)과 같이 9번째 블록에 첫 번째로 해당 블록을 저장하였음을 기록할 수 있다. 이때, '9'(144)는 9번째 블록을 쓰기 하였음을 나타내며 '1'(145)은 빈 블록에 처음으로 쓰기를 하였음을 나타내며, '■'(146)은 쓰기에 의해 저장된 해당 블록 데이터를 나타낸다.In addition, when the first network block device client 121 transmits a write (write, rewrite) operation command to the network block device server 110, the network block device server 110 may write data file storage 112. It is determined whether an existing block exists in the bitmap of the block matching the write operation command on the screen. If there is no existing block as a result of the determination, the network block device server 110 records a block according to the write operation command in a bitmap of a block of the write data file storage unit 112 corresponding to the write operation command. Also, stores a value indicating that the block is stored for the first time. That is, when the network block device server 110 receives a write request to the ninth empty block from the first network block device client 121, the network block device server 110 corresponds to the ninth block first as (9, 1, ■). You can record that you have saved a block. At this time, '9' 144 indicates writing the ninth block, '1' 145 indicates writing for the first time on an empty block, and '■' 146 indicates corresponding block data stored by writing. Indicates.

이와 같이, 본 발명에 따르면 가상 머신을 제공하는 OS 이미지 파일과 상기 OS 이미지 파일에 대한 쓰기 데이터를 별도로 관리하여 가상 머신의 제공을 위한 용량의 낭비를 최소화할 수 있다.As described above, according to the present invention, the OS image file providing the virtual machine and the write data for the OS image file may be separately managed to minimize waste of capacity for providing the virtual machine.

도 2는 본 발명의 일실시예에 따른 네트워크 블록 디바이스 서버의 구성도이다. 도 2를 참조하여 본 발명의 일실시예에 따른 네트워크 블록 디바이스 서버의 구성을 설명하기로 한다.2 is a block diagram of a network block device server according to an embodiment of the present invention. The configuration of a network block device server according to an embodiment of the present invention will be described with reference to FIG. 2.

도 2에 도시된 바와 같이 본 발명의 일실시예에 따른 네트워크 블록 디바이스 서버는 OS 이미지 파일 저장부(210), 쓰기 데이터 파일 저장부(220) 및 중앙 제어부(230)를 포함하여 구성된다.As shown in FIG. 2, the network block device server according to an exemplary embodiment of the present invention includes an OS image file storage 210, a write data file storage 220, and a central controller 230.

OS 이미지 파일 저장부(210)는 가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일을 저장하며, 쓰기 데이터 파일 저장부(220)는 상기 OS 이미지 파일에 대한 쓰기 명령에 관련된 데이터를 기록한다.The OS image file storage unit 210 stores an OS image file providing a virtual machine, and the write data file storage unit 220 records data related to a write command for the OS image file.

중앙 제어부(230)는 네트워크 블록 디바이스 클라이언트(NBD Client)로부터 가상 머신(VM)에 대한 연산 명령을 수신하는 경우, 수신한 연산 명령이 읽기(read, reread) 연산 명령이면 읽기 연산 명령에 해당하는 블록(block)이 상기 OS 이미지 파일 저장부의 캐시 메모리에 존재하는지를 판단한다. 중앙 제어부(230)는 상기 판단 결과, 읽기 연산 명령에 대응되는 블록이 캐시 메모리에 존재하면 상기 블록을 네트워크 블록 디바이스 클라이언트로 제공하도록 제어한다.When the central control unit 230 receives an operation command for a virtual machine (VM) from a network block device client (NBD Client), if the received operation command is a read operation command, a block corresponding to a read operation command It is determined whether a block exists in the cache memory of the OS image file storage unit. As a result of the determination, if the block corresponding to the read operation command exists in the cache memory, the central controller 230 controls to provide the block to the network block device client.

또한, 중앙 제어부(230)는 상기 수신한 연산 명령이 읽기(read, reread) 연산 명령이면 읽기 연산 명령에 해당하는 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단한다. 중앙 제어부(230)는 판단 결과, 해당 블록이 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 블록을 제공받아 OS 이미지 파일 저장부(111)에 저장한다. 그리고, 중앙 제어부(230)는 OS 이미지 파일 저장부(111)에 저장된 블록을 네트워크 블록 디바이스 클라이언트로 제공하도록 제어한다. 이때, 중앙 제어부(230)가 블록을 제공받는 Peer To Peer(P2P) 네트워크가 비트토렌트 네트워크(BitTorrent network)로 구성되면, 네트워크의 피어(Peer) 상에 분산되어 저장된 파일을 동시에 가져올 수 있으므로 보다 빠르게 블록을 제공받을 수 있다.In addition, if the received operation command is a read operation command, the central controller 230 determines whether a block of an OS image file corresponding to a read operation command exists in the cache memory. As a result of the determination, if the block does not exist in the cache memory, the central controller 230 receives the block through a peer to peer (P2P) network and stores the block in the OS image file storage 111. The central controller 230 controls the network block device client to provide a block stored in the OS image file storage 111. At this time, if the peer-to-peer (P2P) network, in which the central control unit 230 receives a block, is configured as a BitTorrent network, the central control unit 230 can simultaneously retrieve files stored and distributed on the peers of the network. Blocks may be provided.

한편, 중앙 제어부(230)는 블록 디바이스 클라이언트로부터 수신한 연산 명령이 쓰기 연산 명령이면, 쓰기 데이터 파일 저장부(220) 상의 쓰기 연산 명령에 해당하는 블록의 비트맵에, 쓰기 연산 명령에 따른 블록을 기록하도록 제어한다. 보다 상세하게 설명하면, 중앙 제어부(230)는 수신한 연산 명령이 쓰기 연산 명령이면 쓰기 데이터 파일 저장부(220) 상의 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단한다. 중앙 제어부(230)는 상기 판단 결과, 기존의 블록이 존재하지 않으면 쓰기 연산 명령에 해당하는 블록의 비트맵에 쓰기 연산 명령에 따른 블록을 기록하고 상기 블록을 처음으로 저장하였음을 나타내는 값을 쓰기 데이터 파일 저장부(220)에 저장하도록 제어할 수 있다. 또 달리, 중앙 제어부(230)는 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 기존의 블록이 존재하면 쓰기 데이터 파일 저장부(220)의 쓰기 연산 명령에 해당하는 블록의 비트맵에 쓰기 연산 명령에 따른 블록을 기록하도록 제어할 수 있다.On the other hand, if the operation command received from the block device client is a write operation command, the central control unit 230 writes a block according to the write operation command to the bitmap of the block corresponding to the write operation command on the write data file storage unit 220. Control to record. In more detail, if the received operation command is a write operation command, the central controller 230 determines whether an existing block exists in the bitmap of the block corresponding to the write operation command on the write data file storage 220. As a result of the determination, if the existing block does not exist, the central controller 230 writes a block according to the write operation command in the bitmap of the block corresponding to the write operation command and writes a value indicating that the block is stored for the first time. The file storage unit 220 may be controlled to be stored. Alternatively, the central controller 230 determines whether an existing block exists in the bitmap of the block corresponding to the write operation command, and if the existing block exists, the central control unit 230 corresponds to the write operation command of the write data file storage unit 220. It is possible to control to write a block according to a write operation command in the bitmap of the block.

도 3은 본 발명의 일실시예에 따른 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법을 설명하기 위한 흐름도이다. 도 3을 참고하여 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법을 설명하기로 한다.3 is a flowchart illustrating a control method of a network block device server providing a personalized virtual machine in a cloud computing environment according to an exemplary embodiment of the present invention. A control method of a network block device server that provides a personalized virtual machine in a cloud computing environment will be described with reference to FIG. 3.

네트워크 블록 디바이스 서버(NBD Server)가 가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일(Operating System Image File)과 상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터를 기록하는 쓰기 데이터 파일을 저장 및 유지한다(S310).A network block device server (NBD Server) stores and maintains an operating system image file providing a virtual machine and a write data file that records data on a write command to the OS image file. (S310).

네트워크 블록 디바이스 서버가 네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하고(S320), 수신한 연산 명령이 읽기 연산 명령인지를 판단하여(S330), 상기 수신한 연산 명령이 읽기 연산 명령이면 읽기 연산 명령에 해당하는 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단한다(S340).The network block device server receives an operation command for the virtual machine from a network block device client (NBD Client) (S320), determines whether the received operation command is a read operation command (S330), and the received operation command is If it is a read operation command, it is determined whether a block of an OS image file corresponding to the read operation command exists in the cache memory (S340).

네트워크 블록 디바이스 서버는 상기 판단 결과, 블록이 캐시 메모리에 존재하면 상기 블록을 캐시 메모리로부터 읽고(S350), 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 블록을 제공받는다(S355). 이때, 상기 Peer To Peer(P2P) 네트워크는 비트토렌트 네트워크(BitTorrent network)로 구성될 수 있다. 이후, 네트워크 블록 디바이스 서버는 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공한다(S360).As a result of the determination, the network block device server reads the block from the cache memory if the block exists in the cache memory (S350), and receives the block through the Peer To Peer (P2P) network if the block does not exist in the cache memory (S355). In this case, the Peer To Peer (P2P) network may be configured as a BitTorrent network. Thereafter, the network block device server provides the block to the network block device client (S360).

또 달리, 네트워크 블록 디바이스 서버의 판단 결과, 상기 수신한 연산 명령이 읽기 연산 명령이 아닌 쓰기 연산 명령이면, 상기 쓰기 데이터 파일 상의 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단한다(S370).Alternatively, if the network block device server determines that the received operation command is a write operation command instead of a read operation command, it is determined whether an existing block exists in the bitmap of the block corresponding to the write operation command on the write data file. (S370).

네트워크 블록 디바이스 서버의 판단 결과, 기존의 블록이 존재하면 쓰기 연산 명령에 해당하는 블록의 비트맵에 쓰기 연산 명령에 따른 블록을 기록한다(S380). 또한, 네트워크 블록 디바이스 서버의 판단 결과, 기존의 블록이 존재하지 않으면 쓰기 연산 명령에 해당하는 블록의 비트맵에 쓰기 연산 명령에 따른 블록을 기록하고 블록을 처음으로 저장하였음을 나타내는 값을 쓰기 데이터 파일 상에 저장한다(S385).As a result of the determination by the network block device server, if an existing block exists, the block according to the write operation command is recorded in the bitmap of the block corresponding to the write operation command (S380). In addition, if the existing block does not exist, the network block device server determines that the block corresponding to the write operation command is written to the bitmap of the block corresponding to the write operation command, and writes a value indicating that the block is stored for the first time. Stored in the (S385).

이와 같이, 본 발명은 가상 머신을 제공하는 OS 이미지 파일과 상기 OS 이미지 파일에 대한 쓰기 데이터를 별도로 관리한다. 따라서, 본 발명에 따르면 가상 머신의 제공을 위한 용량의 낭비를 최소화하고 사용자에게 제공할 수 있는 가상 머신의 수도 최대화 할 수 있으며, 다수의 사용자에게 가상 머신의 제공 시에도 네트워크 병목 현상이 발생하지 않는다.As described above, the present invention manages an OS image file for providing a virtual machine and write data for the OS image file separately. Therefore, according to the present invention, it is possible to minimize the waste of capacity for providing a virtual machine and to maximize the number of virtual machines that can be provided to a user, and a network bottleneck does not occur even when a virtual machine is provided to a plurality of users. .

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art to which the present invention pertains, various modifications and variations are possible. Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .

110: 네트워크 블록 디바이스 서버
111: OS 이미지 파일 저장부
112: 쓰기 데이터 파일 저장부
121: 제1 네트워크 블록 디바이스 클라이언트
122: 제2 네트워크 블록 디바이스 클라이언트
130: Peer To Peer 네트워크
131: 제1 피어
132: 제2 피어
133: 제3 피어
141: 빈 블록
142: 캐시된 블록
143: 업데이트된 블록
110: network block device server
111: OS image file storage
112: write data file storage
121: first network block device client
122: second network block device client
130: Peer To Peer Network
131: first peer
132: second peer
133: third peer
141: empty block
142: cached block
143: Updated block

Claims (10)

가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일(Operating System Image File)과 상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터를 기록하는 쓰기 데이터 파일을 저장하는 단계;
네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하는 단계;
상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하면 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 단계; 및
상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에, 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계
를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법.
Storing an operating system image file providing a virtual machine and a write data file for recording data on a write command to the OS image file;
Receiving an operation command for the virtual machine from a network block device client;
If the received operation command is a read operation command, it is determined whether a block of the OS image file corresponding to the read operation command exists in the cache memory. If the received operation command exists in the cache memory, the block is transferred to the network block device client. Providing; And
If the received operation command is a write operation command, writing a block according to the write operation command to a bitmap of a block corresponding to the write operation command on the write data file.
Control method of a network block device server providing a personalized virtual machine in a cloud computing environment comprising a.
제1항에 있어서,
상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 단계는,
상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 상기 블록을 제공받아 상기 네트워크 블록 디바이스 클라이언트로 제공하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법.
The method of claim 1,
Providing the block to the network block device client,
If the received operation command is a read operation command, it is determined whether a block of the OS image file corresponding to the read operation command exists in the cache memory, and if not, the Peer To Peer (P2P) network is determined. The control method of a network block device server providing a personalized virtual machine in a cloud computing environment, characterized in that receiving the block through the network block device client.
제1항에 있어서,
상기 쓰기 연산 명령에 따른 블록을 기록하는 단계는,
상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하지 않으면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하고 상기 블록을 처음으로 저장하였음을 나타내는 값을 상기 쓰기 데이터 파일 상에 저장하는 단계인 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법.
The method of claim 1,
The step of writing a block according to the write operation command,
If the received operation command is a write operation command, it is determined whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file, and if the existing block does not exist, it corresponds to the write operation command. Providing a personalized virtual machine in a cloud computing environment, recording a block according to the write operation command in a bitmap of a block and storing a value indicating that the block is stored for the first time on the write data file. A control method of a network block device server.
제1항에 있어서,
상기 쓰기 연산 명령에 따른 블록을 기록하는 단계는,
상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하는 단계인 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법.
The method of claim 1,
The step of writing a block according to the write operation command,
If the received operation command is a write operation command, it is determined whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file, and if the existing block exists, it corresponds to the write operation command. The method of controlling a network block device server providing a personalized virtual machine in a cloud computing environment, comprising: writing a block according to the write operation command in a bitmap of a block.
제2항에 있어서,
상기 Peer To Peer(P2P) 네트워크는,
비트토렌트 네트워크(BitTorrent network)인 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버의 제어 방법.
The method of claim 2,
The Peer To Peer (P2P) network,
Control method of a network block device server providing a personalized virtual machine in a cloud computing environment, characterized in that the BitTorrent network (BitTorrent network).
가상 머신(Virtual Machine)을 제공하는 OS 이미지 파일을 저장하는 OS 이미지 파일 저장부;
상기 OS 이미지 파일에 대한 쓰기 명령에 대한 데이터가 기록되는 쓰기 데이터 파일 저장부; 및
네트워크 블록 디바이스 클라이언트(NBD Client)로부터 상기 가상 머신에 대한 연산 명령을 수신하고, 상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 블록(block)이 상기 OS 이미지 파일 저장부의 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하면 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하도록 제어하고, 상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에, 상기 쓰기 연산 명령에 따른 블록을 기록하도록 제어하는 중앙 제어부
를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버.
An OS image file storage unit for storing an OS image file providing a virtual machine;
A write data file storage unit in which data on a write command to the OS image file is recorded; And
Receives an operation command for the virtual machine from a network block device client (NBD Client), and if the received operation command is a read operation command, a block corresponding to the read operation command is a cache memory of the OS image file storage unit. If it is present in the cache memory, the controller determines to provide the block to the network block device client if it exists in the cache memory. If the received operation command is a write operation command, the block corresponds to the write operation command on the write data file storage unit. Central control unit for controlling to write the block according to the write operation command in the bitmap of the block
Network block device server providing a personalized virtual machine in a cloud computing environment comprising a.
제6항에 있어서,
상기 중앙 제어부는,
상기 수신한 연산 명령이 읽기 연산 명령이면 상기 읽기 연산 명령에 해당하는 상기 OS 이미지 파일의 블록(block)이 캐시 메모리에 존재하는지를 판단하여, 상기 캐시 메모리에 존재하지 않으면 Peer To Peer(P2P) 네트워크를 통해 상기 블록을 제공받아 상기 OS 이미지 파일 저장부에 저장하고, 상기 OS 이미지 파일 저장부에 저장된 상기 블록을 상기 네트워크 블록 디바이스 클라이언트로 제공하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버.
The method of claim 6,
The central control unit,
If the received operation command is a read operation command, it is determined whether a block of the OS image file corresponding to the read operation command exists in the cache memory, and if not, the Peer To Peer (P2P) network is determined. The network providing a personalized virtual machine in a cloud computing environment, wherein the block is received and stored in the OS image file storage unit and the block stored in the OS image file storage unit is provided to the network block device client. Block device server.
제6항에 있어서,
상기 중앙 제어부는,
상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하지 않으면 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하고 상기 블록을 처음으로 저장하였음을 나타내는 값을 상기 쓰기 데이터 파일 저장부에 저장하도록 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버.
The method of claim 6,
The central control unit,
If the received operation command is a write operation command, it is determined whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file storage unit, and if the existing block does not exist, the write operation command Personalized virtual in the cloud computing environment, characterized in that to write the block according to the write operation command in the bitmap of the block corresponding to the storage data stored in the write data file storage unit indicating that the block is stored for the first time Network block device server providing a machine.
제6항에 있어서,
상기 중앙 제어부는,
상기 수신한 연산 명령이 쓰기 연산 명령이면 상기 쓰기 데이터 파일 저장부 상의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 기존의 블록이 존재하는지를 판단하여, 상기 기존의 블록이 존재하면 상기 쓰기 데이터 파일 저장부의 상기 쓰기 연산 명령에 해당하는 블록의 비트맵에 상기 쓰기 연산 명령에 따른 블록을 기록하도록 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버.
The method of claim 6,
The central control unit,
If the received operation command is a write operation command, it is determined whether an existing block exists in a bitmap of a block corresponding to the write operation command on the write data file storage unit, and if the existing block exists, the write data file is stored. The network block device server providing a personalized virtual machine in a cloud computing environment, characterized by controlling to write a block according to the write operation command in a bitmap of a block corresponding to the negative write operation command.
제7항에 있어서,
상기 Peer To Peer(P2P) 네트워크는,
비트토렌트 네트워크(BitTorrent network)인 것을 특징으로 하는 클라우드 컴퓨팅 환경에서 개인화 가상 머신을 제공하는 네트워크 블록 디바이스 서버.
The method of claim 7, wherein
The Peer To Peer (P2P) network,
A network block device server providing a personalized virtual machine in a cloud computing environment, characterized in that a BitTorrent network.
KR1020100022882A 2010-03-15 2010-03-15 Network block device providing personalized virtual machine in cloud computing environment and control method thereof KR101329759B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100022882A KR101329759B1 (en) 2010-03-15 2010-03-15 Network block device providing personalized virtual machine in cloud computing environment and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100022882A KR101329759B1 (en) 2010-03-15 2010-03-15 Network block device providing personalized virtual machine in cloud computing environment and control method thereof

Publications (2)

Publication Number Publication Date
KR20110103699A true KR20110103699A (en) 2011-09-21
KR101329759B1 KR101329759B1 (en) 2013-11-14

Family

ID=44954826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100022882A KR101329759B1 (en) 2010-03-15 2010-03-15 Network block device providing personalized virtual machine in cloud computing environment and control method thereof

Country Status (1)

Country Link
KR (1) KR101329759B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150087990A (en) * 2014-01-23 2015-07-31 한국전자통신연구원 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine
KR20160093877A (en) 2015-01-30 2016-08-09 엔트릭스 주식회사 Virtual client, cloud streaming server, cloud streaming server test system comprising the same, control method thereof and computer readable medium having computer program recorded therefor
WO2017074303A1 (en) * 2015-10-26 2017-05-04 Hewlett-Packard Development Company, L.P. Cloud platform os management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090001305A (en) * 2007-06-29 2009-01-08 엘지엔시스(주) Supporting system and method for multiple computing environment
KR100956637B1 (en) * 2007-12-07 2010-05-11 한국전자통신연구원 Method for asynchronous data replication in distributed file system and system thereof
KR101007279B1 (en) * 2007-12-17 2011-01-13 한국전자통신연구원 Method and system for provisioning of virtual machine using virtual machine disk pool

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150087990A (en) * 2014-01-23 2015-07-31 한국전자통신연구원 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine
KR20160093877A (en) 2015-01-30 2016-08-09 엔트릭스 주식회사 Virtual client, cloud streaming server, cloud streaming server test system comprising the same, control method thereof and computer readable medium having computer program recorded therefor
WO2017074303A1 (en) * 2015-10-26 2017-05-04 Hewlett-Packard Development Company, L.P. Cloud platform os management

Also Published As

Publication number Publication date
KR101329759B1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
CA3027756C (en) Systems and methods for efficient distribution of stored data objects
US10853339B2 (en) Peer to peer ownership negotiation
US10652330B2 (en) Object storage in cloud with reference counting using versions
CN104239575A (en) Virtual machine mirror image file storage and distribution method and device
CN104580439B (en) Method for uniformly distributing data in cloud storage system
WO2019085769A1 (en) Tiered data storage and tiered query method and apparatus
WO2017167056A1 (en) Virtual machine data storage method and apparatus
US8938550B2 (en) Autonomous network streaming
CN108139974B (en) Distributed cache live migration
US9609044B2 (en) Methods, systems, and media for stored content distribution and access
CN102708060A (en) Method, device and system for accessing image files
CN106817388B (en) Method and device for acquiring data by virtual machine and host machine and system for accessing data
US10360189B2 (en) Data object storage across multiple storage nodes
CN107153512B (en) Data migration method and device
US20160335199A1 (en) Extending a cache of a storage system
KR20140143775A (en) Cache management
US11416176B2 (en) Function processing using storage controllers for load sharing
KR101329759B1 (en) Network block device providing personalized virtual machine in cloud computing environment and control method thereof
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
US20090327303A1 (en) Intelligent allocation of file server resources
US11588891B2 (en) Access pattern driven data placement in cloud storage
Meyer et al. Supporting heterogeneous pools in a single ceph storage cluster
JP4224279B2 (en) File management program
US12038872B2 (en) Apparatus and method for managing in-memory container storage
CN117194439B (en) Method for creating resource storage system, electronic equipment and storage medium

Legal Events

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

Payment date: 20161107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171101

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181030

Year of fee payment: 6