KR102031484B1 - Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server - Google Patents

Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server Download PDF

Info

Publication number
KR102031484B1
KR102031484B1 KR1020180029768A KR20180029768A KR102031484B1 KR 102031484 B1 KR102031484 B1 KR 102031484B1 KR 1020180029768 A KR1020180029768 A KR 1020180029768A KR 20180029768 A KR20180029768 A KR 20180029768A KR 102031484 B1 KR102031484 B1 KR 102031484B1
Authority
KR
South Korea
Prior art keywords
server
recovery
service server
hash value
data
Prior art date
Application number
KR1020180029768A
Other languages
Korean (ko)
Other versions
KR20190078451A (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 숭실대학교산학협력단
Publication of KR20190078451A publication Critical patent/KR20190078451A/en
Application granted granted Critical
Publication of KR102031484B1 publication Critical patent/KR102031484B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data

Abstract

블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법이 개시된다. 개시된 서버는 서비스 서버의 복구에 이용되며 스탠바이로 동작하는 서버로서, 상기 서비스 서버로부터 복구 데이터를 수신하는 수신부; 상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고, 상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록된다. Disclosed are a server and a recovery server for performing disaster recovery of a service server using a block chain, and a control method of the server. The disclosed server is a server that is used for recovery of a service server and operates in a standby state, comprising: a receiving unit which receives recovery data from the service server; A controller configured to calculate a hash value of the received recovery data; And a transmitter configured to transmit the calculated hash value of the repaired data to at least one other standby operation server, wherein the receiver receives the hash value of at least one other service server from the other standby operation server. The controller may be further configured to calculate a root hash value of a Merkle tree based on a hash value of the repair data and a hash value of the repair data of the other service server, and generate a block by using the root hash value. Blocks are registered on the blockchain.

Figure 112018025601445-pat00004
Figure 112018025601445-pat00004

Description

블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법{Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server}Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server}

본 발명의 실시예들은 블록 체인을 이용하여 서비스 서버(즉, 액티브 동작 서버)의 재해 복구를 수행하는 스탠바이 동작 서버 및 이와 연동하여 동작하는 복구 서버와, 스탠바이 동작 서버의 제어 방법에 관한 것으로서, 보다 상세하게는 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행하는 스탠바이 동작 서버 및 복구 서버와, 상기 스탠바이 동작 서버의 제어 방법에 관한 것이다. Embodiments of the present invention relate to a standby operation server for performing disaster recovery of a service server (that is, an active operation server) using a block chain, a recovery server operating in association with the standby operation server, and a control method of the standby operation server. In detail, a standby operation server and a recovery server for determining whether or not the recovery data is abnormal using a block chain, and performing recovery using normal recovery data when there is an error in the recovery data, and a control method of the standby operation server. It is about.

오늘날 많은 기업과 기관들은 안정적이고 효율적인 서비스를 제공하기 위하여 정보 시스템을 사용하고 있다. 정보 시스템을 구축하고 운영하는데 있어 각종 재해로 인한 사고 사례가 발생하면서 대비책 마련의 필요성이 발생하였고, 따라서 재해 복구 시스템을 구축하여 최대한 빠르게 서비스를 복구하는 방법으로 대비책을 마련하게 되었다. 여기서, 정보 통신 기술적 측면에서의 재해란, 외부로부터의 원인으로 서비스가 중단되거나, 시스템의 재해로 예상 복구 시간을 초과하여 정상적인 업무 수행에 지장을 초래하는 것을 의미하고, 재해 복구는 재해로 인하여 중단된 서비스를 재개하는 것을 의미한다. Many companies and organizations today use information systems to provide reliable and efficient services. In the construction and operation of the information system, there was a need for the preparation of countermeasures due to the occurrence of accidents caused by various disasters. Therefore, the countermeasure was prepared by establishing a disaster recovery system to restore the service as soon as possible. Here, the disaster in the aspect of information and communication technology means that the service is interrupted due to an external cause or the system disaster causes the disruption of normal work by exceeding the expected recovery time, and the disaster recovery is interrupted due to the disaster. It means to resume the old service.

종래의 재해 복구 시스템은 시스템의 정보 및 데이터를 보호하기 위하여 소산 보관하는 백업을 진행하거나 실시간으로 데이터를 백업하는 방식들을 사용하고 있다. 또한 백업한 데이터를 보호하기 위하여 암호화 알고리즘을 사용하여 데이터의 무결성을 보장하고 있다. Conventional disaster recovery systems are using a method of backing up data in real time or dissipating the data to protect the information and data of the system. In addition, to protect the backed up data, encryption algorithms are used to ensure data integrity.

하지만, 복구를 위해 복제한 파일, 즉 복구 데이터 자체에 위변조가 발생하거나 복구 데이터를 사용할 수 없게 되는 경우, 해당 복구 데이터가 생성된 시점으로 복구할 수 없다는 단점이 존재한다. However, when a forgery occurs in a file copied for recovery, that is, the recovery data itself or when the recovery data is not available, there is a disadvantage in that the recovery data cannot be recovered to the point of time when the recovery data is generated.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법을 제안하고자 한다. In order to solve the problems of the prior art as described above, in the present invention, it is determined whether or not the abnormality of the recovery data using the block chain, and if there is an error of the recovery data, the server performing recovery using normal recovery data and recovery A server and a control method of the server are proposed.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버에 있어서, 상기 서비스 서버로부터 복구 데이터를 수신하는 수신부; 상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고, 상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록되는 것을 특징으로 하는 서버가 제공된다 .According to a preferred embodiment of the present invention to achieve the above object, it is used for the recovery of the service server, the server operating in a standby, comprising: a receiving unit for receiving recovery data from the service server; A controller configured to calculate a hash value of the received recovery data; And a transmitter configured to transmit the calculated hash value of the repaired data to at least one other standby operation server, wherein the receiver receives the hash value of at least one other service server from the other standby operation server. The controller may be further configured to calculate a root hash value of a Merkle tree based on a hash value of the repair data and a hash value of the repair data of the other service server, and generate a block by using the root hash value. The server is provided with the characterized in that the registered block is registered in the blockchain.

상기 블록은, 헤더 및 페이로드로 구성되되, 상기 헤더에는 상기 블록의 이전 블록의 헤더의 해시 값, 상기 머클트리의 루트 해시 값, 타임 스탬프 값 및 넌스 값을 포함하고, 상기 페이로드는 상기 서비스 서버의 복구 데이터 및 상기 다른 서비스 서버의 복구 데이터를 포함한다. The block includes a header and a payload, wherein the header includes a hash value of a header of a previous block of the block, a root hash value of the Merkle tree, a time stamp value, and a nonce value, and the payload is the service. Recovery data of the server and recovery data of the other service server.

상기 전송부는 상기 블록이 생성되었음을 알리는 정보를 포함하는 메시지, 상기 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 상기 다른 스탠바이 동작 서버로 전송하고, 상기 다른 스탠바이 서버는 상기 전송된 타임 스탬프 값 및 넌스 값을 이용하여 상기 블록의 헤더의 해시 값을 검증하고, 상기 검증 결과가 상기 블록의 블록 체인 등록에 사용될 수 있다. The transmitter transmits a message including information indicating that the block is generated, a time stamp value and a nonce value used when generating the block, to the other standby operation server, and the other standby server transmits the transmitted time stamp value. And a hash value of the header of the block using a nonce value, and the verification result may be used for block chain registration of the block.

상기 수신부는 상기 서비스 서버로부터 재해 발생 통보 메시지를 수신하고, 상기 전송부는 상기 재해 발생 통보 메시지를 복구 서버로 전송하되, 상기 복구 서버는 상기 블록 체인을 저장하며, 상기 블록 체인에 포함된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버의 복구를 수행할 수 있다. The receiving unit receives a disaster occurrence notification message from the service server, and the transmitting unit transmits the disaster occurrence notification message to a recovery server, wherein the recovery server stores the block chain and the service server included in the block chain. Recovery of the service server may be performed using the recovery data of.

상기 복구 서버는, 상기 다른 스탠바이 동작 서버로 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값을 전송하고, 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지 각각을 상기 다른 스탠바이 동작 서버로부터 수신하고, 상기 비교 결과 메시지에 기초하여 상기 서비스 서버의 복구를 수행할 수 있다. The recovery server transmits a hash value of the recovery data of the service server stored in the recovery server to the other standby operation server, and transmits a hash value of the recovery data of the service server stored in the recovery server to the other standby operation server. Each of the comparison result messages indicating whether the stored hash values of the recovery data of the service server are the same may be received from the other standby operation server, and the recovery of the service server may be performed based on the comparison result message.

상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우, 상기 복구 서버는 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하고, 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경된 경우, 상기 복구 서버는 상기 다른 스탠바이 동작 서버 중 하나로부터 변경되지 않는 상기 서비스 서버의 복구 데이터를 수신하고, 상기 수신된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구할 수 있다. When the recovery data of the service server stored in the recovery server is not changed, the recovery server recovers the service server using the recovery data of the service server stored in the recovery server, and the service server stored in the recovery server. When the recovery data of is changed, the recovery server receives the recovery data of the service server which is not changed from one of the other standby operation server, and restores the service server using the received recovery data of the service server. Can be.

또한, 본 발명의 다른 실시예에 따르면, 서비스 서버의 복구를 수행하는 복구 서버에 있어서, 상기 서비스 서버의 복구 데이터를 포함하는 블록 체인을 저장하는 저장부; 상기 서비스 서버와 대응되는 스탠바이 동작 서버로부터 상기 서비스 서버의 재해 발생 통보 메시지를 수신하는 수신부; 상기 재해 발생 통보 메시지를 다른 스탠바이 동작 서버로 전송하는 전송부 - 상기 다른 스탠바이 동작 서버는 상기 블록 체인을 저장함 -; 및 상기 서비스 서버의 복구 동작을 제어하는 제어부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지를 각각 수신하며, 상기 제어부는 상기 비교 결과 메시지에 기초하여 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되었는지 여부를 판단하며, 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우 상기 전송부를 통해 상기 저장부에 저장된 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 복구 서버가 제공된다. Further, according to another embodiment of the present invention, a recovery server for performing a recovery of the service server, the storage unit for storing a block chain containing the recovery data of the service server; A receiver configured to receive a disaster occurrence notification message of the service server from a standby operation server corresponding to the service server; A transmission unit for transmitting the disaster occurrence notification message to another standby operation server, wherein the other standby operation server stores the block chain; And a control unit controlling a recovery operation of the service server, wherein the receiving unit is a hash value of the recovery data of the service server stored in the storage unit from the other standby operation server and the service server stored in the other standby operation server. Receive a comparison result message indicating whether or not the hash value of the recovery data of the same is the same, the control unit determines whether the recovery data of the service server stored in the storage unit on the basis of the comparison result message, When the recovery data of the service server stored in the storage unit is not changed, the recovery server is provided by using the recovery data of the service server stored in the storage unit through the transmission unit.

또한, 본 발명의 또 다른 실시예에 따르면, 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버의 제어 방법에 있어서, 상기 서비스 서버로부터 복구 데이터를 수신하는 단계; 상기 수신된 복구 데이터의 해시 값을 산출하는 단계; 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 단계; 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하는 단계; 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하는 단계; 및 상기 루트 해시 값을 이용하여 블록을 생성하는 단계;를 포함하되, 상기 생성된 블록은 블록 체인에 등록되는 것을 특징으로 하는 서버의 제어 방법이 제공된다. Further, according to another embodiment of the present invention, a method for controlling a server that is used to recover a service server and operates in a standby state, the method comprising: receiving recovery data from the service server; Calculating a hash value of the received recovery data; Transmitting a hash value of the calculated recovery data to at least one other standby operation server; Receiving a hash value of recovery data of at least one other service server from the other standby operation server; Calculating a root hash value of a merkle tree based on a hash value of the repair data and a hash value of the repair data of the other service server; And generating a block by using the root hash value, wherein the generated block is registered in a block chain.

본 발명에 따르면, 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행할 수 있는 장점이 있다. According to the present invention, there is an advantage in that it is possible to determine whether or not the recovery data is abnormal using the blockchain, and when there is an error of the recovery data, recovery can be performed using normal recovery data.

도 1 내지 도 3은 본 발명에서 사용되는 블록 체인의 개념을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 서버 시스템의 개략적인 구성을 도시한 도면이다.
도 5는 블록 생성 및 등록 절차를 진행하기 위한 시스템의 동작의 흐름도를 도시한 도면이다.
도 6은 본 발명에 따른 블록의 구조를 도시한 도면이다.
도 7은 재해 복구를 수행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다.
1 to 3 are diagrams illustrating the concept of a blockchain used in the present invention.
4 is a diagram illustrating a schematic configuration of a server system according to an embodiment of the present invention.
5 is a flowchart illustrating an operation of a system for proceeding with a block generation and registration procedure.
6 is a view showing the structure of a block according to the present invention.
7 is a flow diagram of the operation of system 400 to perform disaster recovery.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.As used herein, the singular forms "a", "an" and "the" include plural forms unless the context clearly indicates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the specification, and some of the components or some steps It should be construed that it may not be included or may further include additional components or steps. In addition, the terms "... unit", "module", etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software. .

이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술한다.
Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1 내지 도 3은 본 발명에서 사용되는 블록 체인의 개념을 도시한 도면이다. 1 to 3 are diagrams illustrating the concept of a blockchain used in the present invention.

블록 체인은 분산되고 독립적이며 개방된 공통 장부 관리 기술이다. 블록 체인에 참여한 모든 사용자는 공통 장부의 내용을 소유하고 있고, 과반 수 이상의 참여자가 인정한 블록만이 블록 체인에 연결된다. 블록 체인은 어떤 가치를 다루는 복잡한 시스템을 저가로 교체하거나 신규 개발하는데 이용되거나, 복수의 조직에서 공유하여 조직 간에 맞물려 있던 특정한 중앙 처리 시스템을 경유하지 않고 효율적으로 사용하는 것에 이용되거나, 업무를 자동화하여 업무 비용을 삭감하는 것에 이용되거나, 직접 참가하는 형태의 새로운 서비스를 구축하는 것에 이용된다. Blockchain is a distributed, independent and open common book management technology. Every user who participates in the blockchain owns the contents of the common ledger, and only the blocks recognized by more than half of the participants are connected to the blockchain. Blockchain can be used for low-cost replacement or new development of complex systems that deal with value, or for efficient use without having to go through a specific central processing system that is shared among multiple organizations and interlocked between organizations, or by automating tasks. It can be used to reduce work costs or to build new services in the form of direct participation.

도 1에서는 블록 체인의 대형을 도시하고 있다. 도 1을 참조하면, 블록 체인은 블록이 이어진 형태를 가지고 있다. 만약, 동시에 생성된 블록이 발생할 경우, 1 구역과 2 구역에서 볼 수 있듯이 더 길게 연결된 블록을 사용하고 나머지 블록은 폐기한다. 만약, 폐기된 블록의 해시 값(보다 정확하게, 블록의 헤더의 해시 값)을 사용하여 다음 블록을 생성할 경우, 해당 블록은 정상적인 블록으로 인정받지 못하여 블록 체인에 등록되지 않는다.Figure 1 illustrates the formation of the blockchain. Referring to FIG. 1, a block chain has a form in which blocks are connected. If a block is created at the same time, as shown in the 1st and 2nd zones, the longer connected block is used and the remaining blocks are discarded. If the next block is generated using the hash value of the discarded block (more precisely, the hash value of the header of the block), the block is not recognized as a normal block and is not registered in the blockchain.

그리고, 도 2에서는 블록 체인에 연결되어 있는 블록 구조를 보다 상세하게 도시하고 있다. 도 2을 참조하면, 블록은 헤더 및 페이로드를 포함하고, 블록 체인에서의 해시 값의 산출은 블록 전체를 해싱하지 않고 헤더의 내용을 SHA-256 해시 알고리즘을 사용하여 해싱한다. 즉, 블록의 해시 값은 블록의 헤더의 해시 값과 대응된다. 그리고, 다음의 블록을 생성할 때 이전의 블록의 헤더의 해시 값을 사용한다. 이 때, 페이로드 내용의 무결성을 확보하는 것이 필요하기 때문에, 헤더에 페이로드를 해싱한 값을 넣어 사용한다. 페이로드의 해시 값을 얻기 위해서는 각각의 트랜잭션을 해싱하고, 머클트리로 만들어 해시 값을 산출한다. 블록 체인에서 사용되는 머클트리의 형태의 일례는 도 3과 같다. In addition, FIG. 2 illustrates a block structure connected to a block chain in more detail. Referring to FIG. 2, a block includes a header and a payload, and the calculation of hash values in the blockchain hashes the contents of the header using the SHA-256 hash algorithm without hashing the entire block. In other words, the hash value of the block corresponds to the hash value of the header of the block. Then, when generating the next block, the hash value of the header of the previous block is used. At this time, since it is necessary to ensure the integrity of the payload contents, the hashed value of the payload is used in the header. To get the hash value of the payload, we hash each transaction and make it a Merkle Tree to compute the hash value. An example of the shape of the merkle tree used in the blockchain is shown in FIG. 3.

또한, 각 트랜잭션들은 각자의 해시 값을 생성하고 전파한다. 이 후, 다른 트랜잭션들의 해시 값을 받아서 2진 트리 구조의 머클트리를 만든다. 각각의 해시 값들을 재차 해싱을 진행하여 최종 루트 해시 값을 획득하면 블록의 헤더에 페이로드 해시 값에 넣어서 사용한다.In addition, each transaction generates and propagates its own hash value. After that, it takes the hash values of the other transactions and builds a Merkle tree with a binary tree structure. Each hash value is hashed again to obtain the final root hash value. The hash value of the block is inserted into the payload hash value in the header of the block.

이하, 상기에서 설명한 도 1 내지 도 3과, 하기에서 설명하는 도면들을 참조하여, 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 시스템을 보다 상세하게 설명한다. Hereinafter, a server system for performing disaster recovery of a service server using a block chain will be described in more detail with reference to FIGS. 1 to 3 and the drawings described below.

도 4는 본 발명의 일 실시예에 따른 서버 시스템의 개략적인 구성을 도시한 도면이다. 4 is a diagram illustrating a schematic configuration of a server system according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 서버 시스템(400)은 서버 그룹(410) 및 복구 서버(420)를 포함한다. 이하, 각 구성 요소 별로 수행되는 동작을 상세하게 설명하기로 한다. Referring to FIG. 4, a server system 400 according to an embodiment of the present invention includes a server group 410 and a recovery server 420. Hereinafter, an operation performed for each component will be described in detail.

서버 그룹(410)는 복수의 서버가 포함되는 주 센터이다. 일례로, 서버 그룹(410)는 IDC(Internet Data Center) 센터일 수 있다. The server group 410 is a main center including a plurality of servers. In one example, server group 410 may be an Internet Data Center (IDC) center.

이 때, 서버 그룹(410)는 액티브(active)로 동작하는 적어도 하나의 액티브 동작 서버(411) 및 스탠바이(standby)로 동작하는 적어도 하나의 스탠바이 동작 서버(412)를 포함한다. 즉, 주 센터는 복수의 서버 각각이 액티브-스탠바이 관계로 구성되어 있으며, 액티브 동작 서버 및 스탠바이 동작 서버는 미러링되어 실시간으로 정보를 공유한다. In this case, the server group 410 includes at least one active operation server 411 operating in an active state and at least one standby operation server 412 operating in a standby state. That is, in the main center, each of the plurality of servers is configured in an active-standby relationship, and the active operation server and the standby operation server are mirrored to share information in real time.

여기서, 액티브 동작 서버(411)는 서비스를 제공하고 있는 서버인 서비스 서버이고, 스탠바이 동작 서버(412)는 액티브 동작 서버(411)와 비동기식으로 통신 연결되며, 액티브 동작 서버(411)에서 재해가 발생하였을 때, 액티브 동작 서버(411)의 서비스 제공 동작을 대신하여 수행하는 서버를 의미한다. 즉, 액티브 동작 서버(411)에서 재해가 발생한 경우, 액티브 동작 서버(411)에서 서비스 제공을 중지하고, 스탠바이 동작 서버(412)에서 서비스 제공 동작을 수행한다. 특히, 본 발명의 경우, 스탠바이 동작 서버(412)는 액티브 동작 서버(411)의 재해 복구를 위한 복구 데이터를 포함하는 블록을 생성하고, 복구 동작 수행 시 액티브 동작 서버(411)와 복구 서버(420)를 연결하는 기능을 더 수행할 수 있다. Here, the active operation server 411 is a service server which is a server providing a service, the standby operation server 412 is asynchronously connected to the active operation server 411, a disaster occurs in the active operation server 411 In this case, it refers to a server performing the service providing operation of the active operation server 411 instead. That is, when a disaster occurs in the active operation server 411, the service operation is stopped by the active operation server 411, and the service operation is performed by the standby operation server 412. In particular, in the case of the present invention, the standby operation server 412 generates a block including recovery data for disaster recovery of the active operation server 411, and the active operation server 411 and the recovery server 420 when performing the recovery operation. ) Can be further performed.

그리고, 복구 서버(420)는 액티브 동작 서버(411)의 복구 동작을 수행하는 서버이다. The recovery server 420 is a server that performs a recovery operation of the active operation server 411.

한편, 액티브 동작 서버(411), 스탠바이 동작 서버(412) 및 복구 서버(420) 각각은 통신부(수신부 및 전송부를 포함), 제어부, 저장부를 포함한다. 통신부는 다른 서버와 통신 연결을 수행하는 구성 요소이고, 제어부는 프로세서를 포함하며, 해시 값 산출, 머클트리 산출, 블록 생성 및 블록 체인의 등록, 재해 복구 기능을 수행하거나 제어하고, 저장부는 해시 값, 블록 체인 등을 저장하는 구성 요소이다. The active operation server 411, the standby operation server 412, and the recovery server 420 each include a communication unit (including a receiver and a transmitter), a controller, and a storage unit. The communication unit is a component that performs a communication connection with another server, the control unit includes a processor, performs or controls the hash value calculation, Merkle tree calculation, block creation and block chain registration, disaster recovery functions, and the storage unit is a hash value Is a component for storing blockchains, etc.

이하, 도 5 및 도 6을 참조하여 상기한 시스템(400)의 동작을 보다 상세하게 설명한다. Hereinafter, the operation of the system 400 will be described in more detail with reference to FIGS. 5 and 6.

도 5는 블록 생성 및 등록 절차를 진행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다. 이 때, 액티브 동작 서버(411) 중 액티브 동작 서버 A 및 스탠바이 동작 서버(412) 중 스탠바이 동작 서버 A를 중심으로 동작을 설명하기로 한다. 5 is a flow diagram of the operation of the system 400 for proceeding with the block creation and registration procedure. In this case, operations will be described based on the active operation server A of the active operation server 411 and the standby operation server A of the standby operation server 412.

먼저, 액티브 동작 서버 A는, 자신의 복구 데이터를 생성하고(단계 502), 생성된 복구 데이터를 스탠바이 동작 서버 A로 전송한다(단계 504). 이 때, 복구 데이터는 액티브 동작 서버 A의 개인키로 암호화된 값일 수 있다. First, the active operation server A generates its own recovery data (step 502) and transmits the generated recovery data to the standby operation server A (step 504). At this time, the recovery data may be a value encrypted with the private key of the active operation server A.

다음으로, 복구 데이터를 수신한 스탠바이 동작 서버 A는 수신한 복구 데이터의 해시 값을 산출한다(단계 506). 이 때, 스탠바이 동작 서버 A는 SHA-256 해시 알고리즘을 사용하여 복구 데이터의 해시 값을 산출할 수 있다. 그 후, 스탠바이 동작 서버 A는 산출된 복구 데이터의 해시 값을 서버 그룹(410) 내의 다른 스탠바이 동작 서버(412)로 전송한다(단계 508). 이 때, 다른 스탠바이 동작 서버(412)는 하나 이상일 수 있다. Next, the standby operation server A which has received the recovery data calculates a hash value of the received recovery data (step 506). At this time, the standby operation server A may calculate a hash value of the recovered data using the SHA-256 hash algorithm. The standby operation server A then sends the calculated hash value of the recovered data to another standby operation server 412 in the server group 410 (step 508). At this time, the other standby operation server 412 may be one or more.

계속하여, 스탠바이 동작 서버 A는 다른 스탠바이 동작 서버(412)로부터 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 수신한다(단계 510). 이 때 다른 액티브 동작 서버(412)는 하나 이상일 수 있으며, 다른 스탠바이 동작 서버(412)와 대응되는 액티브 동작 서버이다. 즉, 다른 스탠바이 동작 서버(412) 역시 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 산출하며, 단계 510는 다른 스탠바이 동작 서버(412)가 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 전송하는 단계와 대응된다. Subsequently, the standby operation server A receives a hash value of the recovery data of the other active operation server 412 from the other standby operation server 412 (step 510). In this case, there may be one or more other active operation servers 412, and are active operation servers corresponding to other standby operation servers 412. That is, the other standby operation server 412 also calculates a hash value of the recovery data of the other active operation server 412, and in step 510, the other standby operation server 412 hashes the recovery data of the other active operation server 412. Corresponds to the step of transmitting a value.

그 후, 스탠바이 동작 서버 A는 자신이 산출한 액티브 동작 서버 A의 복구 데이터의 해시 값과 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출한다(단계 512). 여기서, 머클트리는 개별 복구 데이터의 해시 값을 2진 트리 형태로 구성된 트리 구조로서, 머클트리의 루트 해시 값은 머클트리의 루트에 위치하는 해시 값을 의미한다. Thereafter, the standby operation server A calculates the root hash value of the Merkle Tree based on the hash value of the recovery data of the active operation server 412 which is different from the hash value of the recovery data of the active operation server A calculated by the standby operation server A (step 512). Here, the merkle tree is a tree structure in which the hash values of individual repair data are formed in the form of a binary tree, and the root hash value of the merkle tree means a hash value located at the root of the merkle tree.

다음으로, 스탠바이 동작 서버 A는 루트 해시 값을 이용하여 블록을 생성한다(단계 514). 이 때, 생성된 블록은 블록체인에 등록될 수 있다. Next, the standby operation server A generates a block using the root hash value (step 514). At this time, the generated block may be registered in the blockchain.

도 6은 블록의 구조를 도시한 도면이다. 6 is a diagram illustrating the structure of a block.

도 6을 참조하면, 블록은 헤더 및 페이로드로 구성되며, 헤더는 버전(version), 이전 블록의 헤더의 해시 값, 머클트리의 루트 해시 값, 타임 스탬프, 넌스(nonce)를 포함한다. 버전은 현재 사용 중인 블록 체인의 버전을 명시한다. 이전 블록의 헤더의 해시 값은 블록 체인에서 현재 블록의 바로 앞에 위치하는 블록(즉, 이전 블록)의 헤더의 해시 값으로서, 이전 블록이 존재하지 않는 경우 블록 생성을 위해 임의의 해시 값이 사용된다. 타임 스탬프는 블록이 생성된 시간으로서, 값이 변동될 수 있지만 이전 블록의 타임 스탬프 값보다 이전의 값으로 사용될 수 없다. 넌스는 최초 0에서 시작하여 조건을 만족하는 해시 값을 찾아낼 때까지의 1씩 증가하는 계산 횟수를 의미하며, 넌스 값은 32비트의 크기를 가진다. 페이로드는 트랜잭션 정보를 포함하며, 트랜잭션 정보는 모든 액티브 동작 서버의 복구 데이터를 담고 있는 정보와 대응된다. Referring to FIG. 6, a block is composed of a header and a payload, and the header includes a version, a hash value of a header of a previous block, a root hash value of a merkle tree, a time stamp, and a nonce. Version specifies the version of the blockchain currently in use. The hash value of the header of the previous block is the hash value of the header of the block (i.e., the previous block) immediately preceding the current block in the blockchain. If the previous block does not exist, an arbitrary hash value is used to generate the block. . The time stamp is a time at which the block is generated, and the value may vary, but cannot be used as a value earlier than the time stamp value of the previous block. The nonce is the number of calculations starting at 0 and incremented by 1 until a hash value that satisfies the condition is found. The nonce has a size of 32 bits. The payload contains transaction information, which corresponds to information containing the recovery data of all active operation servers.

계속하여, 스탠바이 동작 서버 A는 블록이 생성되었음을 알리는 정보를 포함하는 메시지와, 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 다른 스탠바이 동작 서버(412)로 전송한다(단계 516). Subsequently, the standby operation server A transmits a message including information indicating that the block is generated, and a time stamp value and a nonce value used when generating the block to another standby operation server 412 (step 516).

이 후, 다른 스탠바이 동작 서버(412)는 전송된 타임 스탬프 값 및 넌스 값을 이용하여 스탠바이 동작 서버 A에서 생성된 블록의 헤더의 해시 값을 검증한다(단계 518). 이 때, 검증 결과는 생성된 블록의 블록 체인 등록에 사용된다. 일례로, 다른 스탠바이 동작 서버(412) 중 과반수 이상의 스탠바이 동작 서버가 검증 결과가 이상이 없는 것으로 판단한 경우 생성된 블록은 블록 체인에 등록되고, 과반수 이상의 스탠바이 동작 서버가 검증 결과가 이상이 있는 것으로 판단한 경우 생성된 블록을 폐기하고 다시 블록 생성 작업을 수행한다. Thereafter, the other standby operation server 412 verifies the hash value of the header of the block generated at the standby operation server A using the transmitted time stamp value and the nonce value (step 518). At this time, the verification result is used for block chain registration of the generated block. For example, when more than half of the other standby operation servers 412 determine that the verification result is abnormal, the generated block is registered in the blockchain, and the majority or more standby operation server determines that the verification result is abnormal. In this case, discard the created block and perform block creation again.

한편, 단계 514 내지 단계 518는 스탠바이 동작 서버 A가 처음으로 블록을 생성할 때 수행되는 과정이다. 이 때, 상기에서도 언급한 바와 같이, 다른 스탠바이 동작 서버(412)도 역시 모든 액티브 동작 서버의 복구 데이터의 해시 값에 기초하여 블록을 생성할 수 있으며, 만약 다른 스탠바이 동작 서버(412) 중 하나의 다른 스탠바이 서버가 처음으로 블록을 생성하는 경우, 스탠바이 동작 서버 A는 처음 블록을 생성한 다른 스탠바이 서버로부터 블록의 생성 시 사용되는 타임 스탬프 값 및 넌스 값을 수신하고, 이에 기초하여 블록을 검증한다. Meanwhile, steps 514 to 518 are processes performed when the standby operation server A generates a block for the first time. At this time, as mentioned above, the other standby operation server 412 may also generate a block based on the hash value of the recovery data of all active operation servers, and if one of the other standby operation servers 412 is When another standby server generates a block for the first time, the standby operation server A receives a time stamp value and a nonce value used in the generation of the block from another standby server that generated the first block, and verifies the block based thereon.

이에 따라, 생성된 블록이 블록 체인에 연결되고, 블록 체인은 모든 스탠바이 동작 서버 및 복구 서버(420)에 저장된다. Accordingly, the generated block is connected to the block chain, and the block chain is stored in all standby operation servers and recovery servers 420.

도 7은 재해 복구를 수행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다. 이 때도 역시 액티브 동작 서버(411) 중 액티브 동작 서버 A 및 스탠바이 동작 서버(412) 중 스탠바이 동작 서버 A를 중심으로 동작을 설명하기로 한다. 7 is a flow diagram of the operation of system 400 to perform disaster recovery. In this case, the operation will be described based on the active operation server A of the active operation server 411 and the standby operation server A of the standby operation server 412.

먼저, 액티브 동작 서버 A에서 재해가 발생한 경우, 스탠바이 동작 서버 A는 액티브 동작 서버로부터 재해 발생 통보 메시지를 수신하고(단계 702), 이를 복구 서버(420)로 전송하며(단계 704), 복구 서버(420)는 재해 발생 통보 메시지에 대한 응답 메시지인 복구 요청 확인 메시지를 전송한다(단계 706). 여기서, 재해는 외부로부터의 원인으로 서비스가 중단되거나, 시스템의 장애로 예상 복구시간을 초과하여 정상적인 업무 수행에 지장을 초래하는 것을 의미한다. First, when a disaster occurs in the active operation server A, the standby operation server A receives the disaster occurrence notification message from the active operation server (step 702), transmits it to the recovery server 420 (step 704), and the recovery server ( 420 transmits a recovery request confirmation message that is a response message to the disaster occurrence notification message (step 706). In this case, the disaster means that the service is interrupted due to an external cause or the system is damaged and the normal recovery time is exceeded due to the failure of the system.

그 후, 복구 서버(420)는 복구 서버에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값을 다른 스탠바이 동작 서버(412)로 전송한다(단계 708). 이 때, 복구 데이터는 블록 체인 내의 블록의 페이로드에 저장될 수 있다. 그리고, 다른 스탠바이 동작 서버(412)는 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 다른 스탠바이 동작 서버(412)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일한지 여부를 판단한다(단계 710). The recovery server 420 then sends a hash value of the recovery data of the active operation server A stored in the recovery server to another standby operation server 412 (step 708). At this time, the repair data may be stored in the payload of the block in the block chain. The other standby operation server 412 determines whether the hash value of the recovery data of the active operation server A stored in the recovery server 420 is the same as the hash value of the recovery data of the active operation server A stored in the other standby operation server 412. It is determined whether or not (step 710).

즉, 단계 708 및 단계 710은 복구 서버(420)에 저장된 액티브 동작 서버 A가 변경되었는지 여부를 확인하기 위한 과정이다. 다시 말해, 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터가 변경되었는지 여부를 다른 스탠바이 동작 서버(412)를 통해 확인한다. That is, steps 708 and 710 are processes for checking whether the active operation server A stored in the recovery server 420 has been changed. In other words, the recovery server 420 checks through the other standby operation server 412 whether the recovery data of the active operation server A stored therein is changed.

계속하여, 복구 서버(420)는, 상기 동일한지 여부를 알리는 비교 결과 메시지를 다른 스탠바이 동작 서버(412)로부터 수신하고(단계 712), 상기 비교 결과 메시지에 기초하여 액티브 동작 서버 A의 복구 동작을 수행할 수 있다(단계 716). Subsequently, the recovery server 420 receives a comparison result message from another standby operation server 412 indicating whether it is the same (step 712), and performs a recovery operation of the active operation server A based on the comparison result message. May be performed (step 716).

만약, 다른 스탠바이 동작 서버(412) 중 과반수에서 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 자신이 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일하다고 판단한 경우, 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터가 변경되지 않는 것으로 판단하며, 이 경우 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터를 이용하여 액티브 동작 서버 A를 복구한다. If a majority of the other standby operation servers 412 determine that the hash value of the recovery data of the active operation server A stored in the recovery server 420 is the same as the hash value of the recovery data of the active operation server A stored therein, the recovery is performed. The server 420 determines that the recovery data of the active operation server A stored by the server is not changed, and in this case, the recovery server 420 uses the recovery data of the active operation server A stored by the server 420. To recover.

반대로, 다른 스탠바이 동작 서버(412) 중 과반수에서 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 자신이 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일하지 않다고 판단한 경우, 복구 서버(420)는 다른 스탠바이 동작 서버(412) 중 하나로부터 변경되지 않는(즉, 정상적인) 액티브 동작 서버 A의 복구 데이터를 수신하고, 수신된 액티브 동작 서버 A의 복구 데이터를 이용하여 액티브 동작 서버 A를 복구할 수 있다. On the contrary, when the majority of the other standby operation server 412 determines that the hash value of the recovery data of the active operation server A stored in the recovery server 420 and the hash value of the recovery data of the active operation server A stored therein are not the same. The recovery server 420 receives recovery data of the active operation server A that is not changed (that is, normal) from one of the other standby operation servers 412, and uses the received recovery data of the active operation server A to activate the active operation server. A can be restored.

요컨대, 본 발명에 따른 복구 시스템(400)는 복구 서버(420)에 저장된 복구 데이터의 변경이 있는지 유무를 파악하여, 정상일 경우에는 복구 서버(420)가 저장한 복구 데이터로 복구를 진행하고, 변경이 있는 경우에는 다른 스탠바이 동작 서버(412)로부터 복구 데이터를 받아와 복구를 진행한다. 이에 따라, 믿을 수 있고 효과적인 복구를 수행할 수 있는 장점이 있다. In other words, the recovery system 400 according to the present invention determines whether there is a change in the recovery data stored in the recovery server 420, and if it is normal, proceeds with the recovery data stored by the recovery server 420 and changes it. If there is, the recovery data is received from the other standby operation server 412 to proceed with recovery. Accordingly, there is an advantage that reliable and effective recovery can be performed.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention can be implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Examples of program instructions such as magneto-optical, ROM, RAM, flash memory, etc. may be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Contains high-level language codes. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

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

Claims (9)

서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버에 있어서,
상기 서비스 서버로부터 복구 데이터를 수신하는 수신부;
상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및
상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되,
상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고,
상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록되며,
상기 수신부는 상기 서비스 서버로부터 재해 발생 통보 메시지를 수신하고, 상기 전송부는 상기 재해 발생 통보 메시지를 복구 서버로 전송하되,
상기 복구 서버는 상기 블록 체인을 저장하며, 상기 블록 체인에 포함된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버의 복구를 수행하는 것을 특징으로 하는 서버.
In the server that is used for the recovery of the service server, the standby server,
A receiving unit for receiving recovery data from the service server;
A controller configured to calculate a hash value of the received recovery data; And
And a transmitter configured to transmit the calculated hash value of the repaired data to at least one other standby operation server.
The receiving unit receives a hash value of the recovery data of at least one other service server from the other standby operation server,
The controller calculates a root hash value of the Merkle tree based on the hash value of the repair data and the hash value of the repair data of the other service server, and generates a block using the root hash value, wherein the generated block is generated. Is registered on the blockchain,
The receiving unit receives a disaster occurrence notification message from the service server, and the transmission unit transmits the disaster occurrence notification message to a recovery server,
And the recovery server stores the block chain and recovers the service server using the recovery data of the service server included in the block chain.
제1항에 있어서,
상기 블록은, 헤더 및 페이로드로 구성되되,
상기 헤더에는 상기 블록의 이전 블록의 헤더의 해시 값, 상기 머클트리의 루트 해시 값, 타임 스탬프 값 및 넌스 값을 포함하고,
상기 페이로드는 상기 서비스 서버의 복구 데이터 및 상기 다른 서비스 서버의 복구 데이터를 포함하는 것을 특징으로 하는 서버.
The method of claim 1,
The block consists of a header and a payload,
The header includes a hash value of the header of the previous block of the block, the root hash value of the Merkle Tree, a time stamp value and a nonce value,
And the payload includes recovery data of the service server and recovery data of the other service server.
제1항에 있어서,
상기 전송부는 상기 블록이 생성되었음을 알리는 정보를 포함하는 메시지, 상기 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 상기 다른 스탠바이 동작 서버로 전송하고,
상기 다른 스탠바이 서버는 상기 전송된 타임 스탬프 값 및 넌스 값을 이용하여 상기 블록의 헤더의 해시 값을 검증하고, 상기 검증 결과가 상기 블록의 블록 체인 등록에 사용되는 것을 특징으로 하는 서버.
The method of claim 1,
The transmission unit transmits a message including information indicating that the block is generated, a time stamp value and a nonce value used when generating the block, to the other standby operation server.
The other standby server verifies a hash value of a header of the block by using the transmitted time stamp value and a nonce value, and the verification result is used for block chain registration of the block.
삭제delete 제1항에 있어서,
상기 복구 서버는,
상기 다른 스탠바이 동작 서버로 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값을 전송하고,
상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지 각각을 상기 다른 스탠바이 동작 서버로부터 수신하고, 상기 비교 결과 메시지에 기초하여 상기 서비스 서버의 복구를 수행하는 것을 특징으로 하는 서버.
The method of claim 1,
The recovery server,
Transmit a hash value of the recovery data of the service server stored in the recovery server to the other standby operation server,
Receive from the other standby operation server a comparison result message indicating whether the hash value of the recovery data of the service server stored in the recovery server and the hash value of the recovery data of the service server stored in the other standby operation server are the same; And recovering the service server based on the comparison result message.
제5항에 있어서,
상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우, 상기 복구 서버는 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하고,
상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경된 경우, 상기 복구 서버는 상기 다른 스탠바이 동작 서버 중 하나로부터 변경되지 않는 상기 서비스 서버의 복구 데이터를 수신하고, 상기 수신된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 서버.
The method of claim 5,
If the recovery data of the service server stored in the recovery server is not changed, the recovery server recovers the service server using the recovery data of the service server stored in the recovery server,
When the recovery data of the service server stored in the recovery server is changed, the recovery server receives the recovery data of the service server which does not change from one of the other standby operation servers, and recovers the received recovery data of the service server. Recovering the service server using the server.
서비스 서버의 복구를 수행하는 복구 서버에 있어서,
상기 서비스 서버의 복구 데이터를 포함하는 블록 체인을 저장하는 저장부;
상기 서비스 서버와 대응되는 스탠바이 동작 서버로부터 상기 서비스 서버의 재해 발생 통보 메시지를 수신하는 수신부;
상기 재해 발생 통보 메시지를 다른 스탠바이 동작 서버로 전송하는 전송부 - 상기 다른 스탠바이 동작 서버는 상기 블록 체인을 저장함 -; 및
상기 서비스 서버의 복구 동작을 제어하는 제어부;를 포함하되,
상기 수신부는 상기 다른 스탠바이 동작 서버로부터 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지를 각각 수신하며,
상기 제어부는 상기 비교 결과 메시지에 기초하여 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되었는지 여부를 판단하며, 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우 상기 전송부를 통해 상기 저장부에 저장된 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 복구 서버.
A recovery server performing recovery of a service server,
A storage unit for storing a block chain including recovery data of the service server;
A receiver configured to receive a disaster occurrence notification message of the service server from a standby operation server corresponding to the service server;
A transmission unit for transmitting the disaster occurrence notification message to another standby operation server, wherein the other standby operation server stores the block chain; And
And a control unit controlling a recovery operation of the service server.
The receiving unit receives a comparison result message indicating whether the hash value of the recovery data of the service server stored in the storage unit and the hash value of the recovery data of the service server stored in the other standby operation server are the same from the other standby operation server. Receive each,
The control unit determines whether the recovery data of the service server stored in the storage unit is changed based on the comparison result message, and if the recovery data of the service server stored in the storage unit is not changed, Recovery server, characterized in that for recovering the service server using the recovery data of the service server stored in the storage.
서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버의 제어 방법에 있어서,
(a) 상기 서비스 서버로부터 복구 데이터를 수신하는 단계;
(b) 상기 수신된 복구 데이터의 해시 값을 산출하는 단계;
(c) 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 단계;
(d) 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하는 단계;
(e) 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하는 단계; 및
(f) 상기 루트 해시 값을 이용하여 블록을 생성하는 단계;를 포함하되,
상기 생성된 블록은 블록 체인에 등록되며,
상기 (a) 단계는 상기 서비스 서버로부터 재해 발생 통보 메시지를 수신하고, 상기 (c) 단계는 상기 재해 발생 통보 메시지를 복구 서버로 전송하되,
상기 복구 서버는 상기 블록 체인을 저장하며, 상기 블록 체인에 포함된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버의 복구를 수행하는 것을 특징으로 하는 서버의 제어 방법.
In the method of controlling a server that is used to recover a service server and operates in a standby mode,
(a) receiving recovery data from the service server;
(b) calculating a hash value of the received recovery data;
(c) transmitting the calculated hash value of the repaired data to at least one other standby operation server;
(d) receiving a hash value of recovery data of at least one other service server from the other standby operation server;
(e) calculating a root hash value of a merkle tree based on a hash value of the repair data and a hash value of the repair data of the other service server; And
(f) generating a block using the root hash value;
The generated block is registered in the blockchain,
The step (a) receives a disaster occurrence notification message from the service server, and the step (c) transmits the disaster occurrence notification message to a recovery server,
And the recovery server stores the block chain and performs recovery of the service server using recovery data of the service server included in the block chain.
제8항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of claim 8.
KR1020180029768A 2017-12-26 2018-03-14 Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server KR102031484B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170179584 2017-12-26
KR1020170179584 2017-12-26

Publications (2)

Publication Number Publication Date
KR20190078451A KR20190078451A (en) 2019-07-04
KR102031484B1 true KR102031484B1 (en) 2019-10-11

Family

ID=67259718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180029768A KR102031484B1 (en) 2017-12-26 2018-03-14 Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server

Country Status (1)

Country Link
KR (1) KR102031484B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143130A (en) * 2019-12-25 2020-05-12 腾讯科技(深圳)有限公司 Data recovery method and device, computer readable storage medium and computer equipment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102124049B1 (en) * 2019-10-31 2020-06-17 주식회사 이스트게임즈 Apparatus for processing security event using block chain and smart contract and method therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012213118A (en) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd Electronic data distribution system
KR101628005B1 (en) * 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain
KR101724089B1 (en) * 2013-04-18 2017-04-06 주식회사 페이스콘 File security method and apparatus therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040047209A (en) * 2002-11-29 2004-06-05 (주)소프트위드솔루션 Method for automatically recovering computer system in network and recovering system for realizing the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012213118A (en) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd Electronic data distribution system
KR101724089B1 (en) * 2013-04-18 2017-04-06 주식회사 페이스콘 File security method and apparatus therefor
KR101628005B1 (en) * 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143130A (en) * 2019-12-25 2020-05-12 腾讯科技(深圳)有限公司 Data recovery method and device, computer readable storage medium and computer equipment
CN111143130B (en) * 2019-12-25 2021-05-25 腾讯科技(深圳)有限公司 Data recovery method and device, computer readable storage medium and computer equipment

Also Published As

Publication number Publication date
KR20190078451A (en) 2019-07-04

Similar Documents

Publication Publication Date Title
CN111543026B (en) System for performing master node change in distributed network
CN110178340B (en) Recovery processing of network nodes in distributed systems
CN110169015B (en) Achieving consensus among network nodes in a distributed system
CN107193490B (en) Distributed data storage system and method based on block chain
EP3769217B1 (en) Prioritizing shared blockchain data storage
US11068338B2 (en) Consenus of shared blockchain data storage based on error correction code
US11057190B2 (en) Data security of shared blockchain data storage based on error correction code
EP3769499B1 (en) Indexing and recovering encoded blockchain data
CN111095218B (en) Method, system and device for storing shared block chain data based on error correction coding
EP3794532B1 (en) Shared blockchain data storage based on error correction code
KR102031484B1 (en) Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server
JP2015032962A (en) Communication apparatus, key sharing method, program and communication system
Bae et al. An automated system recovery using blockchain
Chen et al. Regenerating-codes-based efficient remote data checking and repairing in cloud storage
CN111460470B (en) Internet order processing method and device
CN111193592B (en) Public key updating method between double systems
CN115989487A (en) Computer-implemented method for storing data sets and computer network
CN116881045A (en) Block chain data recovery method, device and system

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