KR20190078451A - 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법 - Google Patents

블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법 Download PDF

Info

Publication number
KR20190078451A
KR20190078451A KR1020180029768A KR20180029768A KR20190078451A KR 20190078451 A KR20190078451 A KR 20190078451A KR 1020180029768 A KR1020180029768 A KR 1020180029768A KR 20180029768 A KR20180029768 A KR 20180029768A KR 20190078451 A KR20190078451 A KR 20190078451A
Authority
KR
South Korea
Prior art keywords
server
recovery
service server
hash value
recovery data
Prior art date
Application number
KR1020180029768A
Other languages
English (en)
Other versions
KR102031484B1 (ko
Inventor
신용태
배수환
이홍재
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Publication of KR20190078451A publication Critical patent/KR20190078451A/ko
Application granted granted Critical
Publication of KR102031484B1 publication Critical patent/KR102031484B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법이 개시된다. 개시된 서버는 서비스 서버의 복구에 이용되며 스탠바이로 동작하는 서버로서, 상기 서비스 서버로부터 복구 데이터를 수신하는 수신부; 상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고, 상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록된다.

Description

블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법{Server and Recovery server for performing failure recovery of service server using block chain, Method for controlling the server}
본 발명의 실시예들은 블록 체인을 이용하여 서비스 서버(즉, 액티브 동작 서버)의 재해 복구를 수행하는 스탠바이 동작 서버 및 이와 연동하여 동작하는 복구 서버와, 스탠바이 동작 서버의 제어 방법에 관한 것으로서, 보다 상세하게는 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행하는 스탠바이 동작 서버 및 복구 서버와, 상기 스탠바이 동작 서버의 제어 방법에 관한 것이다.
오늘날 많은 기업과 기관들은 안정적이고 효율적인 서비스를 제공하기 위하여 정보 시스템을 사용하고 있다. 정보 시스템을 구축하고 운영하는데 있어 각종 재해로 인한 사고 사례가 발생하면서 대비책 마련의 필요성이 발생하였고, 따라서 재해 복구 시스템을 구축하여 최대한 빠르게 서비스를 복구하는 방법으로 대비책을 마련하게 되었다. 여기서, 정보 통신 기술적 측면에서의 재해란, 외부로부터의 원인으로 서비스가 중단되거나, 시스템의 재해로 예상 복구 시간을 초과하여 정상적인 업무 수행에 지장을 초래하는 것을 의미하고, 재해 복구는 재해로 인하여 중단된 서비스를 재개하는 것을 의미한다.
종래의 재해 복구 시스템은 시스템의 정보 및 데이터를 보호하기 위하여 소산 보관하는 백업을 진행하거나 실시간으로 데이터를 백업하는 방식들을 사용하고 있다. 또한 백업한 데이터를 보호하기 위하여 암호화 알고리즘을 사용하여 데이터의 무결성을 보장하고 있다.
하지만, 복구를 위해 복제한 파일, 즉 복구 데이터 자체에 위변조가 발생하거나 복구 데이터를 사용할 수 없게 되는 경우, 해당 복구 데이터가 생성된 시점으로 복구할 수 없다는 단점이 존재한다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버에 있어서, 상기 서비스 서버로부터 복구 데이터를 수신하는 수신부; 상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고, 상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록되는 것을 특징으로 하는 서버가 제공된다 .
상기 블록은, 헤더 및 페이로드로 구성되되, 상기 헤더에는 상기 블록의 이전 블록의 헤더의 해시 값, 상기 머클트리의 루트 해시 값, 타임 스탬프 값 및 넌스 값을 포함하고, 상기 페이로드는 상기 서비스 서버의 복구 데이터 및 상기 다른 서비스 서버의 복구 데이터를 포함한다.
상기 전송부는 상기 블록이 생성되었음을 알리는 정보를 포함하는 메시지, 상기 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 상기 다른 스탠바이 동작 서버로 전송하고, 상기 다른 스탠바이 서버는 상기 전송된 타임 스탬프 값 및 넌스 값을 이용하여 상기 블록의 헤더의 해시 값을 검증하고, 상기 검증 결과가 상기 블록의 블록 체인 등록에 사용될 수 있다.
상기 수신부는 상기 서비스 서버로부터 재해 발생 통보 메시지를 수신하고, 상기 전송부는 상기 재해 발생 통보 메시지를 복구 서버로 전송하되, 상기 복구 서버는 상기 블록 체인을 저장하며, 상기 블록 체인에 포함된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버의 복구를 수행할 수 있다.
상기 복구 서버는, 상기 다른 스탠바이 동작 서버로 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값을 전송하고, 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지 각각을 상기 다른 스탠바이 동작 서버로부터 수신하고, 상기 비교 결과 메시지에 기초하여 상기 서비스 서버의 복구를 수행할 수 있다.
상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우, 상기 복구 서버는 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하고, 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경된 경우, 상기 복구 서버는 상기 다른 스탠바이 동작 서버 중 하나로부터 변경되지 않는 상기 서비스 서버의 복구 데이터를 수신하고, 상기 수신된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 서비스 서버의 복구를 수행하는 복구 서버에 있어서, 상기 서비스 서버의 복구 데이터를 포함하는 블록 체인을 저장하는 저장부; 상기 서비스 서버와 대응되는 스탠바이 동작 서버로부터 상기 서비스 서버의 재해 발생 통보 메시지를 수신하는 수신부; 상기 재해 발생 통보 메시지를 다른 스탠바이 동작 서버로 전송하는 전송부 - 상기 다른 스탠바이 동작 서버는 상기 블록 체인을 저장함 -; 및 상기 서비스 서버의 복구 동작을 제어하는 제어부;를 포함하되, 상기 수신부는 상기 다른 스탠바이 동작 서버로부터 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지를 각각 수신하며, 상기 제어부는 상기 비교 결과 메시지에 기초하여 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되었는지 여부를 판단하며, 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우 상기 전송부를 통해 상기 저장부에 저장된 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 복구 서버가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버의 제어 방법에 있어서, 상기 서비스 서버로부터 복구 데이터를 수신하는 단계; 상기 수신된 복구 데이터의 해시 값을 산출하는 단계; 상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 단계; 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하는 단계; 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하는 단계; 및 상기 루트 해시 값을 이용하여 블록을 생성하는 단계;를 포함하되, 상기 생성된 블록은 블록 체인에 등록되는 것을 특징으로 하는 서버의 제어 방법이 제공된다.
본 발명에 따르면, 블록 체인을 이용하여 복구 데이터의 이상 여부를 판단하고, 복구 데이터의 이상이 있는 경우 정상적인 복구 데이터를 이용하여 복구를 수행할 수 있는 장점이 있다.
도 1 내지 도 3은 본 발명에서 사용되는 블록 체인의 개념을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 서버 시스템의 개략적인 구성을 도시한 도면이다.
도 5는 블록 생성 및 등록 절차를 진행하기 위한 시스템의 동작의 흐름도를 도시한 도면이다.
도 6은 본 발명에 따른 블록의 구조를 도시한 도면이다.
도 7은 재해 복구를 수행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술한다.
도 1 내지 도 3은 본 발명에서 사용되는 블록 체인의 개념을 도시한 도면이다.
블록 체인은 분산되고 독립적이며 개방된 공통 장부 관리 기술이다. 블록 체인에 참여한 모든 사용자는 공통 장부의 내용을 소유하고 있고, 과반 수 이상의 참여자가 인정한 블록만이 블록 체인에 연결된다. 블록 체인은 어떤 가치를 다루는 복잡한 시스템을 저가로 교체하거나 신규 개발하는데 이용되거나, 복수의 조직에서 공유하여 조직 간에 맞물려 있던 특정한 중앙 처리 시스템을 경유하지 않고 효율적으로 사용하는 것에 이용되거나, 업무를 자동화하여 업무 비용을 삭감하는 것에 이용되거나, 직접 참가하는 형태의 새로운 서비스를 구축하는 것에 이용된다.
도 1에서는 블록 체인의 대형을 도시하고 있다. 도 1을 참조하면, 블록 체인은 블록이 이어진 형태를 가지고 있다. 만약, 동시에 생성된 블록이 발생할 경우, 1 구역과 2 구역에서 볼 수 있듯이 더 길게 연결된 블록을 사용하고 나머지 블록은 폐기한다. 만약, 폐기된 블록의 해시 값(보다 정확하게, 블록의 헤더의 해시 값)을 사용하여 다음 블록을 생성할 경우, 해당 블록은 정상적인 블록으로 인정받지 못하여 블록 체인에 등록되지 않는다.
그리고, 도 2에서는 블록 체인에 연결되어 있는 블록 구조를 보다 상세하게 도시하고 있다. 도 2을 참조하면, 블록은 헤더 및 페이로드를 포함하고, 블록 체인에서의 해시 값의 산출은 블록 전체를 해싱하지 않고 헤더의 내용을 SHA-256 해시 알고리즘을 사용하여 해싱한다. 즉, 블록의 해시 값은 블록의 헤더의 해시 값과 대응된다. 그리고, 다음의 블록을 생성할 때 이전의 블록의 헤더의 해시 값을 사용한다. 이 때, 페이로드 내용의 무결성을 확보하는 것이 필요하기 때문에, 헤더에 페이로드를 해싱한 값을 넣어 사용한다. 페이로드의 해시 값을 얻기 위해서는 각각의 트랜잭션을 해싱하고, 머클트리로 만들어 해시 값을 산출한다. 블록 체인에서 사용되는 머클트리의 형태의 일례는 도 3과 같다.
또한, 각 트랜잭션들은 각자의 해시 값을 생성하고 전파한다. 이 후, 다른 트랜잭션들의 해시 값을 받아서 2진 트리 구조의 머클트리를 만든다. 각각의 해시 값들을 재차 해싱을 진행하여 최종 루트 해시 값을 획득하면 블록의 헤더에 페이로드 해시 값에 넣어서 사용한다.
이하, 상기에서 설명한 도 1 내지 도 3과, 하기에서 설명하는 도면들을 참조하여, 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 시스템을 보다 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 서버 시스템의 개략적인 구성을 도시한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 서버 시스템(400)은 서버 그룹(410) 및 복구 서버(420)를 포함한다. 이하, 각 구성 요소 별로 수행되는 동작을 상세하게 설명하기로 한다.
서버 그룹(410)는 복수의 서버가 포함되는 주 센터이다. 일례로, 서버 그룹(410)는 IDC(Internet Data Center) 센터일 수 있다.
이 때, 서버 그룹(410)는 액티브(active)로 동작하는 적어도 하나의 액티브 동작 서버(411) 및 스탠바이(standby)로 동작하는 적어도 하나의 스탠바이 동작 서버(412)를 포함한다. 즉, 주 센터는 복수의 서버 각각이 액티브-스탠바이 관계로 구성되어 있으며, 액티브 동작 서버 및 스탠바이 동작 서버는 미러링되어 실시간으로 정보를 공유한다.
여기서, 액티브 동작 서버(411)는 서비스를 제공하고 있는 서버인 서비스 서버이고, 스탠바이 동작 서버(412)는 액티브 동작 서버(411)와 비동기식으로 통신 연결되며, 액티브 동작 서버(411)에서 재해가 발생하였을 때, 액티브 동작 서버(411)의 서비스 제공 동작을 대신하여 수행하는 서버를 의미한다. 즉, 액티브 동작 서버(411)에서 재해가 발생한 경우, 액티브 동작 서버(411)에서 서비스 제공을 중지하고, 스탠바이 동작 서버(412)에서 서비스 제공 동작을 수행한다. 특히, 본 발명의 경우, 스탠바이 동작 서버(412)는 액티브 동작 서버(411)의 재해 복구를 위한 복구 데이터를 포함하는 블록을 생성하고, 복구 동작 수행 시 액티브 동작 서버(411)와 복구 서버(420)를 연결하는 기능을 더 수행할 수 있다.
그리고, 복구 서버(420)는 액티브 동작 서버(411)의 복구 동작을 수행하는 서버이다.
한편, 액티브 동작 서버(411), 스탠바이 동작 서버(412) 및 복구 서버(420) 각각은 통신부(수신부 및 전송부를 포함), 제어부, 저장부를 포함한다. 통신부는 다른 서버와 통신 연결을 수행하는 구성 요소이고, 제어부는 프로세서를 포함하며, 해시 값 산출, 머클트리 산출, 블록 생성 및 블록 체인의 등록, 재해 복구 기능을 수행하거나 제어하고, 저장부는 해시 값, 블록 체인 등을 저장하는 구성 요소이다.
이하, 도 5 및 도 6을 참조하여 상기한 시스템(400)의 동작을 보다 상세하게 설명한다.
도 5는 블록 생성 및 등록 절차를 진행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다. 이 때, 액티브 동작 서버(411) 중 액티브 동작 서버 A 및 스탠바이 동작 서버(412) 중 스탠바이 동작 서버 A를 중심으로 동작을 설명하기로 한다.
먼저, 액티브 동작 서버 A는, 자신의 복구 데이터를 생성하고(단계 502), 생성된 복구 데이터를 스탠바이 동작 서버 A로 전송한다(단계 504). 이 때, 복구 데이터는 액티브 동작 서버 A의 개인키로 암호화된 값일 수 있다.
다음으로, 복구 데이터를 수신한 스탠바이 동작 서버 A는 수신한 복구 데이터의 해시 값을 산출한다(단계 506). 이 때, 스탠바이 동작 서버 A는 SHA-256 해시 알고리즘을 사용하여 복구 데이터의 해시 값을 산출할 수 있다. 그 후, 스탠바이 동작 서버 A는 산출된 복구 데이터의 해시 값을 서버 그룹(410) 내의 다른 스탠바이 동작 서버(412)로 전송한다(단계 508). 이 때, 다른 스탠바이 동작 서버(412)는 하나 이상일 수 있다.
계속하여, 스탠바이 동작 서버 A는 다른 스탠바이 동작 서버(412)로부터 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 수신한다(단계 510). 이 때 다른 액티브 동작 서버(412)는 하나 이상일 수 있으며, 다른 스탠바이 동작 서버(412)와 대응되는 액티브 동작 서버이다. 즉, 다른 스탠바이 동작 서버(412) 역시 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 산출하며, 단계 510는 다른 스탠바이 동작 서버(412)가 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값을 전송하는 단계와 대응된다.
그 후, 스탠바이 동작 서버 A는 자신이 산출한 액티브 동작 서버 A의 복구 데이터의 해시 값과 다른 액티브 동작 서버(412)의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출한다(단계 512). 여기서, 머클트리는 개별 복구 데이터의 해시 값을 2진 트리 형태로 구성된 트리 구조로서, 머클트리의 루트 해시 값은 머클트리의 루트에 위치하는 해시 값을 의미한다.
다음으로, 스탠바이 동작 서버 A는 루트 해시 값을 이용하여 블록을 생성한다(단계 514). 이 때, 생성된 블록은 블록체인에 등록될 수 있다.
도 6은 블록의 구조를 도시한 도면이다.
도 6을 참조하면, 블록은 헤더 및 페이로드로 구성되며, 헤더는 버전(version), 이전 블록의 헤더의 해시 값, 머클트리의 루트 해시 값, 타임 스탬프, 넌스(nonce)를 포함한다. 버전은 현재 사용 중인 블록 체인의 버전을 명시한다. 이전 블록의 헤더의 해시 값은 블록 체인에서 현재 블록의 바로 앞에 위치하는 블록(즉, 이전 블록)의 헤더의 해시 값으로서, 이전 블록이 존재하지 않는 경우 블록 생성을 위해 임의의 해시 값이 사용된다. 타임 스탬프는 블록이 생성된 시간으로서, 값이 변동될 수 있지만 이전 블록의 타임 스탬프 값보다 이전의 값으로 사용될 수 없다. 넌스는 최초 0에서 시작하여 조건을 만족하는 해시 값을 찾아낼 때까지의 1씩 증가하는 계산 횟수를 의미하며, 넌스 값은 32비트의 크기를 가진다. 페이로드는 트랜잭션 정보를 포함하며, 트랜잭션 정보는 모든 액티브 동작 서버의 복구 데이터를 담고 있는 정보와 대응된다.
계속하여, 스탠바이 동작 서버 A는 블록이 생성되었음을 알리는 정보를 포함하는 메시지와, 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 다른 스탠바이 동작 서버(412)로 전송한다(단계 516).
이 후, 다른 스탠바이 동작 서버(412)는 전송된 타임 스탬프 값 및 넌스 값을 이용하여 스탠바이 동작 서버 A에서 생성된 블록의 헤더의 해시 값을 검증한다(단계 518). 이 때, 검증 결과는 생성된 블록의 블록 체인 등록에 사용된다. 일례로, 다른 스탠바이 동작 서버(412) 중 과반수 이상의 스탠바이 동작 서버가 검증 결과가 이상이 없는 것으로 판단한 경우 생성된 블록은 블록 체인에 등록되고, 과반수 이상의 스탠바이 동작 서버가 검증 결과가 이상이 있는 것으로 판단한 경우 생성된 블록을 폐기하고 다시 블록 생성 작업을 수행한다.
한편, 단계 514 내지 단계 518는 스탠바이 동작 서버 A가 처음으로 블록을 생성할 때 수행되는 과정이다. 이 때, 상기에서도 언급한 바와 같이, 다른 스탠바이 동작 서버(412)도 역시 모든 액티브 동작 서버의 복구 데이터의 해시 값에 기초하여 블록을 생성할 수 있으며, 만약 다른 스탠바이 동작 서버(412) 중 하나의 다른 스탠바이 서버가 처음으로 블록을 생성하는 경우, 스탠바이 동작 서버 A는 처음 블록을 생성한 다른 스탠바이 서버로부터 블록의 생성 시 사용되는 타임 스탬프 값 및 넌스 값을 수신하고, 이에 기초하여 블록을 검증한다.
이에 따라, 생성된 블록이 블록 체인에 연결되고, 블록 체인은 모든 스탠바이 동작 서버 및 복구 서버(420)에 저장된다.
도 7은 재해 복구를 수행하기 위한 시스템(400)의 동작의 흐름도를 도시한 도면이다. 이 때도 역시 액티브 동작 서버(411) 중 액티브 동작 서버 A 및 스탠바이 동작 서버(412) 중 스탠바이 동작 서버 A를 중심으로 동작을 설명하기로 한다.
먼저, 액티브 동작 서버 A에서 재해가 발생한 경우, 스탠바이 동작 서버 A는 액티브 동작 서버로부터 재해 발생 통보 메시지를 수신하고(단계 702), 이를 복구 서버(420)로 전송하며(단계 704), 복구 서버(420)는 재해 발생 통보 메시지에 대한 응답 메시지인 복구 요청 확인 메시지를 전송한다(단계 706). 여기서, 재해는 외부로부터의 원인으로 서비스가 중단되거나, 시스템의 장애로 예상 복구시간을 초과하여 정상적인 업무 수행에 지장을 초래하는 것을 의미한다.
그 후, 복구 서버(420)는 복구 서버에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값을 다른 스탠바이 동작 서버(412)로 전송한다(단계 708). 이 때, 복구 데이터는 블록 체인 내의 블록의 페이로드에 저장될 수 있다. 그리고, 다른 스탠바이 동작 서버(412)는 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 다른 스탠바이 동작 서버(412)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일한지 여부를 판단한다(단계 710).
즉, 단계 708 및 단계 710은 복구 서버(420)에 저장된 액티브 동작 서버 A가 변경되었는지 여부를 확인하기 위한 과정이다. 다시 말해, 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터가 변경되었는지 여부를 다른 스탠바이 동작 서버(412)를 통해 확인한다.
계속하여, 복구 서버(420)는, 상기 동일한지 여부를 알리는 비교 결과 메시지를 다른 스탠바이 동작 서버(412)로부터 수신하고(단계 712), 상기 비교 결과 메시지에 기초하여 액티브 동작 서버 A의 복구 동작을 수행할 수 있다(단계 716).
만약, 다른 스탠바이 동작 서버(412) 중 과반수에서 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 자신이 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일하다고 판단한 경우, 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터가 변경되지 않는 것으로 판단하며, 이 경우 복구 서버(420)는 자신이 저장한 액티브 동작 서버 A의 복구 데이터를 이용하여 액티브 동작 서버 A를 복구한다.
반대로, 다른 스탠바이 동작 서버(412) 중 과반수에서 복구 서버(420)에 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값과 자신이 저장된 액티브 동작 서버 A의 복구 데이터의 해시 값이 동일하지 않다고 판단한 경우, 복구 서버(420)는 다른 스탠바이 동작 서버(412) 중 하나로부터 변경되지 않는(즉, 정상적인) 액티브 동작 서버 A의 복구 데이터를 수신하고, 수신된 액티브 동작 서버 A의 복구 데이터를 이용하여 액티브 동작 서버 A를 복구할 수 있다.
요컨대, 본 발명에 따른 복구 시스템(400)는 복구 서버(420)에 저장된 복구 데이터의 변경이 있는지 유무를 파악하여, 정상일 경우에는 복구 서버(420)가 저장한 복구 데이터로 복구를 진행하고, 변경이 있는 경우에는 다른 스탠바이 동작 서버(412)로부터 복구 데이터를 받아와 복구를 진행한다. 이에 따라, 믿을 수 있고 효과적인 복구를 수행할 수 있는 장점이 있다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (9)

  1. 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버에 있어서,
    상기 서비스 서버로부터 복구 데이터를 수신하는 수신부;
    상기 수신된 복구 데이터의 해시 값을 산출하는 제어부; 및
    상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 전송부;를 포함하되,
    상기 수신부는 상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하고,
    상기 제어부는, 상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하고, 상기 루트 해시 값을 이용하여 블록을 생성하되, 상기 생성된 블록은 블록체인에 등록되는 것을 특징으로 하는 서버.
  2. 제1항에 있어서,
    상기 블록은, 헤더 및 페이로드로 구성되되,
    상기 헤더에는 상기 블록의 이전 블록의 헤더의 해시 값, 상기 머클트리의 루트 해시 값, 타임 스탬프 값 및 넌스 값을 포함하고,
    상기 페이로드는 상기 서비스 서버의 복구 데이터 및 상기 다른 서비스 서버의 복구 데이터를 포함하는 것을 특징으로 하는 서버.
  3. 제1항에 있어서,
    상기 전송부는 상기 블록이 생성되었음을 알리는 정보를 포함하는 메시지, 상기 블록을 생성할 때 이용되는 타임 스탬프 값 및 넌스 값을 상기 다른 스탠바이 동작 서버로 전송하고,
    상기 다른 스탠바이 서버는 상기 전송된 타임 스탬프 값 및 넌스 값을 이용하여 상기 블록의 헤더의 해시 값을 검증하고, 상기 검증 결과가 상기 블록의 블록 체인 등록에 사용되는 것을 특징으로 하는 서버.
  4. 제1항에 있어서,
    상기 수신부는 상기 서비스 서버로부터 재해 발생 통보 메시지를 수신하고, 상기 전송부는 상기 재해 발생 통보 메시지를 복구 서버로 전송하되,
    상기 복구 서버는 상기 블록 체인을 저장하며, 상기 블록 체인에 포함된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버의 복구를 수행하는 것을 특징으로 하는 서버.
  5. 제4항에 있어서,
    상기 복구 서버는,
    상기 다른 스탠바이 동작 서버로 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값을 전송하고,
    상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지 각각을 상기 다른 스탠바이 동작 서버로부터 수신하고, 상기 비교 결과 메시지에 기초하여 상기 서비스 서버의 복구를 수행하는 것을 특징으로 하는 서버.
  6. 제5항에 있어서,
    상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우, 상기 복구 서버는 상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하고,
    상기 복구 서버에 저장된 상기 서비스 서버의 복구 데이터가 변경된 경우, 상기 복구 서버는 상기 다른 스탠바이 동작 서버 중 하나로부터 변경되지 않는 상기 서비스 서버의 복구 데이터를 수신하고, 상기 수신된 상기 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 서버.
  7. 서비스 서버의 복구를 수행하는 복구 서버에 있어서,
    상기 서비스 서버의 복구 데이터를 포함하는 블록 체인을 저장하는 저장부;
    상기 서비스 서버와 대응되는 스탠바이 동작 서버로부터 상기 서비스 서버의 재해 발생 통보 메시지를 수신하는 수신부;
    상기 재해 발생 통보 메시지를 다른 스탠바이 동작 서버로 전송하는 전송부 - 상기 다른 스탠바이 동작 서버는 상기 블록 체인을 저장함 -; 및
    상기 서비스 서버의 복구 동작을 제어하는 제어부;를 포함하되,
    상기 수신부는 상기 다른 스탠바이 동작 서버로부터 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터의 해시 값과 상기 다른 스탠바이 동작 서버에 저장된 상기 서비스 서버의 복구 데이터의 해시 값이 동일한지 여부를 알리는 비교 결과 메시지를 각각 수신하며,
    상기 제어부는 상기 비교 결과 메시지에 기초하여 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되었는지 여부를 판단하며, 상기 저장부에 저장된 상기 서비스 서버의 복구 데이터가 변경되지 않는 경우 상기 전송부를 통해 상기 저장부에 저장된 서비스 서버의 복구 데이터를 이용하여 상기 서비스 서버를 복구하는 것을 특징으로 하는 복구 서버.
  8. 서비스 서버의 복구에 이용되며, 스탠바이로 동작하는 서버의 제어 방법에 있어서,
    상기 서비스 서버로부터 복구 데이터를 수신하는 단계;
    상기 수신된 복구 데이터의 해시 값을 산출하는 단계;
    상기 산출된 복구 데이터의 해시 값을 적어도 하나의 다른 스탠바이 동작 서버로 전송하는 단계;
    상기 다른 스탠바이 동작 서버로부터 적어도 하나의 다른 서비스 서버의 복구 데이터의 해시 값을 수신하는 단계;
    상기 복구 데이터의 해시 값과 상기 다른 서비스 서버의 복구 데이터의 해시 값에 기초하여 머클트리의 루트 해시 값을 산출하는 단계; 및
    상기 루트 해시 값을 이용하여 블록을 생성하는 단계;를 포함하되,
    상기 생성된 블록은 블록 체인에 등록되는 것을 특징으로 하는 서버의 제어 방법.
  9. 제8항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020180029768A 2017-12-26 2018-03-14 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법 KR102031484B1 (ko)

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 true KR20190078451A (ko) 2019-07-04
KR102031484B1 KR102031484B1 (ko) 2019-10-11

Family

ID=67259718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180029768A KR102031484B1 (ko) 2017-12-26 2018-03-14 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법

Country Status (1)

Country Link
KR (1) KR102031484B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102124049B1 (ko) * 2019-10-31 2020-06-17 주식회사 이스트게임즈 블록체인 및 스마트컨트랙트를 이용한 보안 이벤트를 처리하기 위한 장치 및 이를 위한 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143130B (zh) * 2019-12-25 2021-05-25 腾讯科技(深圳)有限公司 数据恢复方法、装置、计算机可读存储介质和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040047209A (ko) * 2002-11-29 2004-06-05 (주)소프트위드솔루션 네트워크 상의 컴퓨터 시스템의 자동 복구 방법 및 이를구현하기 위한 컴퓨터 시스템의 자동 복구 시스템
JP2012213118A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 電子データ配布システム
KR101628005B1 (ko) * 2015-02-05 2016-06-13 주식회사 코인플러그 블록체인을 기반으로 하는 디지털 콘텐츠의 저작권리 위변조 감지시스템
KR101724089B1 (ko) * 2013-04-18 2017-04-06 주식회사 페이스콘 파일 보안 방법 및 이를 위한 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040047209A (ko) * 2002-11-29 2004-06-05 (주)소프트위드솔루션 네트워크 상의 컴퓨터 시스템의 자동 복구 방법 및 이를구현하기 위한 컴퓨터 시스템의 자동 복구 시스템
JP2012213118A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 電子データ配布システム
KR101724089B1 (ko) * 2013-04-18 2017-04-06 주식회사 페이스콘 파일 보안 방법 및 이를 위한 장치
KR101628005B1 (ko) * 2015-02-05 2016-06-13 주식회사 코인플러그 블록체인을 기반으로 하는 디지털 콘텐츠의 저작권리 위변조 감지시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102124049B1 (ko) * 2019-10-31 2020-06-17 주식회사 이스트게임즈 블록체인 및 스마트컨트랙트를 이용한 보안 이벤트를 처리하기 위한 장치 및 이를 위한 방법
WO2021085701A1 (ko) * 2019-10-31 2021-05-06 주식회사 이스트게임즈 블록체인 및 스마트컨트랙트를 이용한 보안 이벤트를 처리하기 위한 장치 및 이를 위한 방법

Also Published As

Publication number Publication date
KR102031484B1 (ko) 2019-10-11

Similar Documents

Publication Publication Date Title
CN111543026B (zh) 分布式网络中进行主节点变更的系统
CN110178340B (zh) 在分布式系统中进行网络节点的恢复处理
CN110169015B (zh) 在分布式系统中的网络节点之间达成共识
TWI720918B (zh) 基於錯誤校正碼之共用區塊鏈資料儲存的共識
WO2019119929A1 (zh) 区块链共识方法、装置和系统、标识信息处理方法和装置
AU2019321745B2 (en) Prioritizing shared blockchain data storage
WO2015125765A1 (ja) セキュリティ装置、その方法、およびプログラム
CN111095218B (zh) 基于纠错编码存储共享的区块链数据的方法、系统及装置
KR102363271B1 (ko) 에러 정정 코드에 기초한 공유 블록체인 데이터 저장의 데이터 보안
TWI749488B (zh) 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體
KR20210045353A (ko) 인코딩된 블록체인 데이터의 인덱싱 및 복구
JP6230322B2 (ja) 通信装置、鍵共有方法、プログラムおよび通信システム
CN111033491A (zh) 基于纠错编码存储共享的区块链数据
KR20190078451A (ko) 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법
US20230275750A1 (en) System and method for secure storage and distribution of encryption keys
CN113630445B (zh) 一种基于区块链网络的数据存储方法及装置
KR20080054792A (ko) 하드웨어 보안 모듈 다중화 장치 및 그 방법
CN111460470B (zh) 互联网订单的处理方法及装置
CN115989487A (zh) 用于存储数据集的计算机实现的方法以及计算机网络

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