KR20120030938A - 분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스 - Google Patents

분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스 Download PDF

Info

Publication number
KR20120030938A
KR20120030938A KR1020110088594A KR20110088594A KR20120030938A KR 20120030938 A KR20120030938 A KR 20120030938A KR 1020110088594 A KR1020110088594 A KR 1020110088594A KR 20110088594 A KR20110088594 A KR 20110088594A KR 20120030938 A KR20120030938 A KR 20120030938A
Authority
KR
South Korea
Prior art keywords
storage device
data
storage
replica set
distributed data
Prior art date
Application number
KR1020110088594A
Other languages
English (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 KR20120030938A publication Critical patent/KR20120030938A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 일반적으로 분산된 데이터 저장 시스템에 관한 것이다. 더 구체적으로, 본 발명은 데이터 복제의 원하는 레벨을 보장하기 위해 요구되는 데이터 복제물의 개수에 의한 분산된 저장 시스템의 최적화에 관한 것이다.

Description

분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스{METHOD OF DATA REPLICATION IN A DISTRIBUTED DATA STORAGE SYSTEM AND CORRESPONDING DEVICE}
본 발명은 일반적으로 분산된 데이터 저장 시스템에 관한 것이다. 더 구체적으로, 본 발명은 원하는 레벨의 데이터 복제(replication)를 보장하기 위해 요구되는 데이터 복제본(replica)의 개수에 의해 분산된 저장 시스템의 최적화에 관한 것이다.
비디오 및 이미지 취급 디바이스와 같은 대량 데이터 취급 디바이스의 급속도로 퍼지는 전개를 통해, 직접 저장을 위해 또는 백업 저장의 부분으로서, 많은 양의 데이터의 신뢰성 있는 저장소가 요구된다. 더욱더 많은 디바이스가 네트워크연결을 구비하기에, 네트워크에 연결된 디바이스에서 데이터의 분산된 저장소는 비용 효율이 높은 해결책으로 여겨진다. 이러한 분산된 데이터 저장 시스템에서, 일시적 또는 영구적 데이터 손실에 대한 데이터 가용도와, 회복력(resilience)을 보장하기 위해, 분산된 데이터 저장 네트워크에서 동일한 데이터 항목을 다중 네트워크에 연결된 디바이스에 복사하는 방법이 개발되었다. 이는 데이터 복제라 불린다. 데이터 복제는 넓은 의미(sense)로 취해져야 하고, 삭제 또는 재생 코드와 같은 코딩 기법의 사용뿐만이 아니라, 단순한 데이터 복제도 커버한다. 디바이스의 고장 또는 디바이스의 비가용성에 기인한 영구적 또는 일시적 데이터 손실의 위험에 대비하기 위하여, 높은 복제 인자(즉, 많은 수의 복제물)가 요구된다. 하지만, 요구된 통신 및 저장 크기에 의한 비용(소위 복제 비용)을 감소시키기 위해, 낮은 복제 인자를 갖는 것이 요구된다.
필요한 것은 데이터 손실 및 복제 비용에 대한 회복력을 공동으로 고려하는 분산된 데이터 저장의 높은 레벨의 데이터 가용도를 달성하는 해결책이다.
본 발명은 종래 기술의 불편함에 대한 일부의 완화를 목표로 한다.
피어-투-피어 네트워크와 같은 분산된 데이터 네트워크에서, 디바이스는 네트워크에 지속적으로 가입 및 탈퇴한다. 분산된 데이터 저장 네트워크의 부분인 디바이스가 최후에 네트워크를 탈퇴한다면, 데이터 복제 레벨은 감소할 것이다. 데이터 복제의 이러한 레벨은 데이터 복제 기반의 배포 데이터 저장 시스템에서, 동일한 데이터 항목을 저장하는 또 다른 이용가능한 디바이스로부터 이용가능한 데이터로부터 복제된 새로운 항목의 데이터의, 네트워크의 새로운 또는 기존의 디바이스 상에서의 생성에 의해 복구된다. 삭제 코드 또는 재생 코드를 기초로 하는 분산된 데이터 저장 시스템에 대해, 데이터 복제의 레벨은 데이터의 새로운 항목을 생성함으로써 복구되는데, 이 데이터는 네트워크의 새로운 또는 기존의 디바이스에서 데이터 항목을 복제하는데 사용되는 또 다른 이용가능한 디바이스로부터 생성된다. 하지만, 디바이스의 이탈은 반드시 최후에 이루어지는(definitive) 것은 아니고, 디바이스의 비가용성은 단지 일시적일 수 있다. 따라서, 문제는 디바이스가 결정적으로 분산된 데이터 저장 시스템을 탈퇴하여 디바이스의 이탈에 기인하여 감소하는 데이터 복제의 레벨의 회복을 적절한 순간에 트리거(trigger)하는 것을 어떻게 결정하는 지이다. 오직 디바이스의 일시적 연결 해제만으로 초래된, 감소된 복제 레벨이 복구된다면, 복구는 무익하다고 여겨질 수 있고, 저장에 의해 및 네트워크 통신에 의해 분산된 데이터 저장 네트워크의 자원을 불필요하게 낭비한다.
분산된 데이터 저장 시스템의 부분인 디바이스의 거동을 관찰하면, 디바이스가 디바이스의 연결 거동을 갖는다는 것이 관찰될 수 있다. 예를 들어, 특정 디바이스가 항상 연결되어 있는 반면, 다른 디바이스는 낮에만 연결되고 밤엔 연결 해제 되며, 또 다른 디바이스는 더 무작위로 연결 거동을 갖는다. JING TIAN 등의 논문 "Probabilistic Failure Detection for Efficient Distributed Storage Maintenance{신뢰성 있는 배포 시스템, 2008, SRDS ’08, IEEE 토론회(2008년 10월 6일)}"은 노드 마다를 기반으로 하는 실패 검출이 어렵다는 것을 언급하고, 대신에 노드의 그룹 마다를 기초로 데이터의 가용도를 예측하는 것을 제안한다. 하지만 언급된 논문과 같이 진행할 때, 각 노드의 정보를 그룹화할 때, 그룹에서 각 노드의 거동 정보는 손실되고, 따라서 이 종래-기술의 논문에 서술된 방법은 효율의 손실을 초래하여 불필요한 회복을 개시한다. 이와 대조적으로, 본 발명은 디바이스가 분산된 데이터 저장 네트워크를 결정적으로 탈퇴하였다고 간주될 수 있고, 분산된 데이터 저장 네트워크의 자원을 최적으로 사용하기 위하여 적절한 순간에 데이터의 항목의 새로운 생성을 트리거할 수 있을 때를 결정하도록 각 디바이스의 연결 거동에 대한 지식을 활용하는 것을 가능케 한다. 이러한 결정을 위해, 본 발명은 디바이스의 비가동 시간(downtime)의 분포 함수로 결정되는 타임아웃을 사용하는데, 여기에서 비가동 시간 분포는 디바이스에 대해 측정되는 가용도 거동을 기초로 한다. 디바이스가 연결 해제될 때, 타임아웃은 결정된 기간으로 개시된다. 타임아웃은 디바이스가 타임아웃의 만기 이전에 재연결할 때 리셋된다. 하지만, 타임아웃 기간이 만기될 때, 디바이스는 분산된 데이터 저장 시스템을 결정적으로 탈퇴했다고 여겨지고, 새로운 또는 기존의 디바이스 상에서 새로운 데이터 항목의 생성을 통해 복제 레벨을 복구하는 것으로 구성되는 회복 활동이 개시된다. 새로운 데이터 항목은 데이터 항목을 저장하는데 사용되는 하나 이상의 남아있는 디바이스로부터 복사되거나(데이터 복제를 기초로 하는 데이터 복제의 경우) 생성된다(삭제 코드 또는 재생 코드를 기초로 하는 데이터 복제의 경우). 따라서, 올바른 타임아웃 기간의 결정이 중요하다. 타임아웃 값이 너무 짧다면, 일시적인 연결 해제가 영구적 연결 해제로 여겨지기 때문에, 너무 많은 다수의 불필요한 '회복'이 이루어진다. 다수의 불필요한 회복은 분산된 데이터 저장 시스템의 혼잡을 야기할 수 있다. 타임아웃 값이 반대로 너무 길다면, 데이터의 지속성은 타임아웃이 만기 되기 전에 수개의 영구적 연결 해제가 발생할 때 위태로워 진다. 그러므로, 본 발명에 따라, 디바이스의 각 연결 거동에 대한 지식은 각 디바이스의 연결 거동에 적응되는 타임아웃 기간을 결정하기 위해 사용된다. 본 발명의 배경에서, 분산된 데이터 저장 시스템의 각 디바이스의 비가동 시간에 대한 데이터가 수집된다.
분산된 데이터 저장 시스템에서 데이터 복제를 최적화하기 위해, 본 발명은 적어도 저장 디바이스로 사용되는 네트워크 디바이스를 포함하는 분산된 데이터 시스템에서의 데이터 복제 방법을 포함하는데, 방법은 적어도:
- 데이터 항목의 각 저장에 대해, 복제 세트의 선택 단계로서, 복제 세트는 데이터 항목의 저장을 위해 선택되는 분산된 데이터 저장 시스템에서 저장 디바이스의 사전 한정된 개수(k)를 나타내고, 사전 한정된 개수(k)는 소위 복제 레벨을 나타내는, 선택 단계,
- 복제 세트에서 각 저장 디바이스에 대해, 저장 디바이스에 결합된 타이머에 대한 타임아웃(timeout) 값의 결정 단계로서, 타이머는 분산된 데이터 저장 시스템으로부터 상기 저장 디바이스의 연결 해제시 개시되고, 분산된 데이터 저장 시스템으로의 저장 디바이스의 재연결시 정지되며, 저장 디바이스는 타이머의 만기시 연결 해제되었다고 검출되고, 타임아웃 값은 저장 디바이스에 대해 측정되는 비가동 시간의 분포 함수로 결정되며, 비가동 시간의 데이터는 저장 디바이스가 분산된 데이터 저장 시스템에 대해 이용가능하지 않을 때의 지속 시간을 나타내는, 결정 단계, 및
- 상기 적어도 하나의 저장 디바이스가 연결 해제되었다고 검출될 때, 그리고 상기 복제 세트에서 연결된 저장 디바이스의 개수가 사전 한정된 임계치보다 낮다면, 복제 세트에 대해 새로운 적어도 하나의 제 2 저장 디바이스의 선택을 통해, 그리고 적어도 하나의 제 2 저장 디바이스 상의 데이터 항목으로부터 새로운 데이터 항목을 생성함으로써, 상기 복제 레벨을 복구하고, 상기 적어도 하나의 제 2 저장 디바이스를 복제 세트에 추가하는, 복구 및 추가 단계를
포함한다.
본 발명의 다양한 실시예에 따라, 방법은 저장 디바이스에 결합된 타이머가 만기된 이후 디바이스가 분산된 데이터 저장 네트워크에 재연결할 때, 저장 디바이스가 속하는 복제 세트에서 저장 디바이스의 재통합 단계를 더 포함한다.
본 발명의 다양한 실시예에 따라, 복제 세트에서 저장 디바이스 중 각각에 대해 결정된 타임아웃 값은 복제 세트에 대해 결정된 임계(criticalness) 인자에 따라 적응되는데, 이 임계 인자는 복제 세트에서 이용가능한 디바이스의 개수와, 복제 레벨 사이의 차에 따라 결정된다.
본 발명의 다양한 실시예에 따라, 임계 인자는 비가동 시간 데이터의 2개의 시간-이격된 측정치 사이에서 복제 세트에서 연결된 저장 디바이스의 수의 차이에 따라 결정된다.
또한, 본 발명은 적어도 저장 디바이스로 사용되는 네트워크 디바이스를 포함하는 분산된 데이터 저장 시스템에서 데이터 복제를 위한 서버 디바이스에 관한 것인데, 이 서버 디바이스는
- 데이터 항목의 각 저장에 대해, 복제 세트의 선택을 위한 수단으로서, 이 복제 세트는 데이터 항목의 저장을 위해 선택되는 분산된 데이터 저장 시스템에서 저장 디바이스의 사전 결정된 개수(k)를 나타내고, 이 사전 결정된 개수(k)는 소위 복제 레벨을 나타내는, 선택 수단,
- 복제 세트에서 각 저장 디바이스에 대해, 저장 디바이스에 결합된 타이머에 대한 타임아웃(timeout) 값의 결정 수단(320)으로서, 타이머는 분산된 데이터 저장 시스템으로부터 저장 디바이스의 연결 해제시 개시되고, 분산된 데이터 저장 시스템으로의 저장 디바이스의 재연결시 정지되며, 저장 디바이스는 타이머의 만기시 연결 해제되었다고 검출되고, 타임아웃 값은 저장 디바이스에 대해 측정되는 비가동 데이터의 분포 함수로 결정되며, 비가동 시간의 데이터는 저장 디바이스가 분산된 데이터 저장 시스템에 대해 이용가능하지 않을 때의 지속 시간을 나타내는, 결정 수단(320), 및
- 상기 적어도 하나의 저장 디바이스가 연결 해제되었다고 검출될 때(403), 그리고 상기 복제 세트에서 연결된 저장 디바이스의 개수가 사전 한정된 임계치보다 낮다면, 복제 세트에 대해 새로운 적어도 하나의 제 2 저장 디바이스의 선택을 통해, 그리고 적어도 하나의 제 2 저장 디바이스 상의 데이터 항목으로부터 새로운 데이터 항목을 생성함으로써, 그리고 적어도 하나의 제 2 저장 디바이스를 복제 세트에 추가함으로써, 복제 레벨을 복구하는 수단을
포함한다.
또한, 본 발명은 컴퓨터 프로그램 제품을 포함하는데, 이 컴퓨터 프로그램 제품은 이 프로그램이 컴퓨터상에서 실행될 때, 본 발명의 데이터 복제의 이전에 언급된 방법에 따라, 방법의 단계를 실행하는 프로그램 코드 지령들을 포함하는 것을 특징으로 한다.
본 발명의 더 많은 장점은 특히 본 발명의 제한적이지 않은 실시예의 서술을 통해 나타날 것이다.
실시예는 다음의 도면을 참조로 서술될 것이다.
본 발명은 데이터 손실 및 복제 비용에 대한 회복력을 개선하는 방법 및 장치를 제공한다.
도 1은 본 발명의 특정 변형을 구현하는데 적합한 분산된 저장 네트워크 아키텍처를 도시하는 도면.
도 2는 전형적인 피어에 대한 비가동 시간(downtime)의 분포를 도시하는 도면.
도 3은 본 발명의 방법을 구현하는 디바이스의 예시적인 실시예를 도시하는 도면.
도 4는 예를 들어, 도 1의 디바이스(10 내지 16) 중 하나에 의해 구현되는 본 발명의 방법의 특정 실시예를 구현하는 알고리즘을 도시하는 도면.
도 1은 본 발명의 특정 변형을 구현하는데 적합한 분산된 저장 네트워크의 아키텍처를 도시한다. 도면은 네트워크(1003)를 도시하는데, 디바이스(10 및 11)를 네트워크(1003)에 연결하는 게이트웨이(12); 서버(17); 네트워크 디바이스(15 및 16)를 네트워크(1003)에 연결하는 다른 게이트웨이(14); 및 네트워크(1003)에 직접 연결되는 네트워크 디바이스(13)가 이 네트워크(1003)에 연결된다. 디바이스(10 내지 16)의 전체 또는 오직 일부만이 데이터를 저장하기 위한 이들의 용량에 따라, 그리고 분산된 저장 네트워크의 멤버쉽(membership)에 따라, 분산된 저장 네트워크에서의 분산된 저장 디바이스로 여겨질 수 있다.
도 1에 도시된 네트워크와 다른 타입의 네트워크는 본 발명과 호환될 수 있다. 예를 들어, 네트워크는 하나 이상의 네트워크 스위칭 노드를 포함하거나, 또는 네트워크는 하나 이상의 서브네트워크를 포함하고, 네트워크는 무선 네트워크 디바이스를 연결한다.
본 발명은 가정용 네트워크를 인터넷, 웹 서버, 비디오 서버, 또는 무선 디바이스(휴대용 또는 비휴대용)에 연결하는 가정용 게이트웨이와 같은 임의의 타입의 네트워크 디바이스에서 구현될 수 있다.
도 2는 전형적인 디바이스에 대한 비가동 시간 분포를 도시한다. 관찰되는 바와 같이, 디바이스는 예를 들어, 밤엔 전원이 꺼져있는 디바이스에 대해 전형적인, 13시간 정도의 평균 비가동 시간을 갖는다. 본 발명의 다양한 실시예에 따라, 디바이스의 비가동 시간 데이터는 각 디바이스 그 자체에 의해 각각 측정된다. 다른 다양한 실시예에 따라, 디바이스 비가동 시간 데이터는 이러한 업무에 전용되거나 전용되지 않는 집중화된 서버에 의해 수집된다. 또 다른 실시예에 따라, 디바이스의 비가동 시간 데이터는 계산 및 정보 교환을 위한 감시 프로토콜을 통해 수집되는데, 이 감시 프로토콜은 디바이스를 통해 비가동 시간 데이터를 수집하는 계산적 부담을 분배한다. 동일한 데이터 항목을 저장하는 디바이스는 우리가 이하에 '복제 세트'로 언급하는 디바이스의 세트 또는 클러스터를 형성한다.
다양한 실시예에 따라, 본 발명의 방법을 더 최적화시키는 임계 개념이 도입된다. 임계는 예를 들어, 복제 세트에서 연결된 디바이스의 개수가 사전 한정된 복제 인자(k) 내에 속할 때, 데이터 항목의 영구적 손실의 위험으로 한정된다. 임계치는 복제 세트에서의 모든 다바이스에 대해 결정되고, 복제 세트에서 디바이스에 대한 타임아웃의 각 값에 영향을 미친다. 특정 실시예에 따라, 복제 세트에서 연결된 디바이스의 개수는 다음의 계산:
Figure pat00001
을 통해 인자 델타에 의해 처음 타임아웃 값에 영향을 미치는데, 여기에서 a는 복제 세트의 연결된 디바이스의 관측된 개수이고, c는 복제 세트에서 연결된 디바이스의 원하는 개수이다. 그런 후에, a > c라면, 인자(a/c)는 1보다 높을 것이고, 타임아웃 값은 증가될 것인데, 이는 덜 '공격적인(aggressive)' 타임아웃 설정을 초래하고, 따라서 복제 세트에서 연결 해제된 디바이스의 '지연된' 교체를 허용한다. a = c라면, 타임아웃 값은 변경되지 않은 상태로 남아있다. a < c 라면, 타임아웃은 감소되고, 이는 더 '공격적인' 타임아웃 설정을 초래하며, 따라서 복제된 세트에서 연결 해제된 디바이스의 '가속된' 교체를 초래한다.
다양한 실시예에 따라, 임계치는 시간에 걸쳐 복제 세트에서 연결된 디바이스의 개수를 측정함으로써 결정된다. 타임아웃의 초기 값은 감소되거나, 동일하게 유지되거나, 또는 복제 세트에서 연결된 디바이스의 감소 또는 증가를 기초로 결정되는 인자에 따라 확장된다. 예를 들어, 상이한 2주 동안 동일한 시간에 연결된 디바이스의 2개의 측정치가 존재한다.
본 발명의 다양한 실시예에 따라, 타임아웃 값에 대한 최적 값은
Figure pat00002
일 때, 획득된다.
여기에서 임계치가 0 내지 1의 크기로 측정되는데, 0은 최소 임계치를 나타내고, 1은 최대 임계치를 나타내며, Pr(H0)은 타임-아웃 디바이스가 재연결하는 선험적인 확률이다. 시스템 레벨에서, Pr(H0)은
Figure pat00003
로 계산될 수 있다. 여기에서 NbrTransientFailure는 '잘못된' 실패의 개수, 즉 이용가능하지 않거나 또는 연결 해제된(만기된 타임아웃) 것으로 여겨지지만 재연결되는 디바이스의 연결 해제의 비가용성을 나타내고, NbrPermanentFailures는 '실제' 실패의 개수 즉, 이용가능하지 않게/연결 해제된 상태로 남아있는 디바이스의 개수이다.
Figure pat00004
의 값은 복제 세트에 대해 계산된다. 타임아웃의 최적 값은 적분 값을 계산하는 제 1 단계에 의해 계산될 수 있고, 이 값이 수학식 2의 값보다 낮다면, 제 2 단계에서 타임아웃 값은 감소되고, 제 1 및 제 2 단계는 수학식 1이 참이될 때 까지 반복된다.
다양한 실시예에 따라, 각 디바이스는 디바이스의 비가동 시간 분포 데이터를 저장한다. 이러한 변형은 디바이스 가용도의 집중된 감시를 회피하고, 디바이스와 서버 사이의 통신을 감소시키는데 장점을 갖는다.
각 노드를 감시하고, 각 노드에 대해 연결 및 연결 해제의 상대적으로 적은 양의 데이터를 저장하는 것이 가능하기 때문에, 앞서 논의된 다양한 실시예는 각 노드의 거동을 기초로 타임아웃의 적응을 가능케 한다. 이러한 감시는 정기적으로 각 노드에 '핑을 보내는(ping)' 집중화된 서버에 의해{핑은 인터넷 프로토콜(IP) 네트워크상에서 호스트의 도달을 시험하는데, 그리고 원래의 호스트에서 목적지 컴퓨터로 전송된 메세지에 대한 왕복시간을 측정하는데 사용되는 컴퓨터 네트워크 관리 유틸리티이다}, 또는 비집중화된 방식으로 달성될 수 있다.
도 3은 특정 실시예에 따라 본 발명을 구현할 수 있는 디바이스를 도시한다. 디바이스는 본 발명의 특정 변형을 구현하는데 전용되거나 전용되지 않는 서버와 같은 본 발명의 특정 변형을 구현하는 디바이스 또는, 본 발명의 특정 변형을 구현하는 특정 집중화된 디바이스일 수 있다.
디바이스(30)는 판독 전용 메모리{(ROM)(300)}, 랜덤 액세스 메모리{(RAM)(310)}, 중앙 처리 유닛{(CPU)(320)}, 클록(330), 네트워크 인터페이스(340), 그래픽 인터페이스(350) 및 사용자 인터페이스(360)를 포함한다. 이들 요소 모두는 데이터- 및 통신 버스(370)를 통해 상호 연결된다. CPU(320)는 메모리 영역(301)에서 ROM(300)에 저장된 프로그램에 따라 디바이스(30)를 제어한다. 클록 디바이스(330)는 이러한 동작을 배열(sequence) 및 동기화하기 위해, 디바이스(30)의 요소에 공통 타이밍을 제공한다. 네트워크 인터페이스(340)는 연결(3000)을 통해 외부 디바이스와 데이터를 송수신한다. 그래픽 인터페이스(350)는 연결(3001)을 통해 외부 렌더링 디바이스에 연결된다. 사용자 인터페이스(360)는 연결(3002)을 통해 사용자로부터 입력 명령을 수신한다. ROM 메모리 영역(301)은 본 발명의 방법을 구현하는 지령을 포함한다. 디바이스(30)의 전원을 켤 시, CPU(320)는 ROM 메모리 영역(301)에서 RAM 메모리 영역(311)으로 프로그램 'Prog'을 복사하고, 복사된 프로그램을 실행한다. 복사된 프로그램의 실행시, 프로그램은 RAM 메모리 영역(315)에서 프로그램의 실행을 위해 요구되는 변수에 대한 메모리 공간을 할당하고, 복제 세트(302)와, 복제 세트에서 저장 디바이스에 결합된 타이머(303)의 타임아웃 값을 각 RAM 메모리(312 내지 313)에 복사한다. 디바이스(30)는 이제 동작중이고, 새로운 데이터의 저장을 위한 요청의 수신시, 본 발명의 방법이 작용된다.
다양한 실시예에 따라, 전용 요소(예를 들어, ASIC, FPGA 또는 VLSI)(각각 <<주문형 집적 회로>>, <<필드-프로그램 가능 게이트 어레이>> 및 <<초고밀도 집적 회로>>)로 또는 디바이스에 통합된 별개의 전자 요소로 본 발명은 그 전체가 하드웨어, 또는 하드웨어 및 소프트웨어의 조합의 형태로 구현된다.
또한 본 발명은 본 발명의 방법의 단계를 실행하는 프로그램 코드 지령을 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있다.
도 4는 예를 들어, 도 3의 디바이스에 의해 구현되는 본 발명의 방법의 특정 실시예를 구현하는 알고리즘을 도시한다.
알고리즘은 단계(400)에서 개시하는데, 여기서 알고리즘의 실행을 위해 요구되는 변수가 초기화된다. 단계(401)에서, 복제 세트는 데이터 항목의 저장을 위해 선택된다. 이러한 선택은 예를 들어, 도 3의 CPU(320)에 의해 이루어진다. 이러한 복제 세트는 데이터 항목을 저장하기 위해 선택되는 분산된 데이터 저장 시스템에서 저장 디바이스의 사전 결정된 개수(예를 들어, k)를 나타낸다. 복제 세트의 선택은 예를 들어 데이터 항목을 저장하기 위한 요청의 수신시 트리거된다. 개수(k)는 사전 결정되고, 데이터의 회복력을 보장하는 값으로 설정된다. 사전 결정된 개수(k)는 '복제 레벨'로 더 언급된다. 그러면, 단계(402)에서, 타임아웃값은 복제 세트에서 디바이스에 결합된 타이머에 대해 결정되고, 각 디바이스는 특정 타이머에 결합된다. 이러한 결정은 예를 들어, 도 3의 CPU(320)에 의해 이루어진다. 타이머는 복제 세트에서 디바이스의 영구적 연결 해제 또는 비가용성을 결정하는 것을 허용한다. 타이머는 결합된 저장 디바이스의 연결 해제시 개시되고, 결합된 저장 디바이스의 재연결시 정지된다. 하지만, 타이머가 만기된다면, 결합된 저장 디바이스는 분산된 저장 시스템으로부터 연결해제되었다고 여겨진다. 타임아웃 값은 타임아웃에 연관된 저장 디바이스에 대해 측정된 비가동 시간 데이터의 분포 함수로 결정된다. 비가동 시간 데이터는 저장 디바이스가 분산된 데이터 저장 시스템으로부터 이용가능하지 않을 때/연결 해제될 때의 지속 기간을 나타낸다. 단계(403)에서, 복제 세트에서 적어도 하나의 저장 디바이스가 연결 해제되었다고 검출될 때, 그리고 복제 세트에서 연결된/이용가능한 저장 디바이스의 개수가 사전 결정된 임계치(예를 들어, k, 하지만 보안 마진을 추가하기 위해 k보다 클 수 있는)보다 낮다면, 복제 레벨은 복제 세트에 대해 새로운 적어도 하나의 저장 디바이스의 선택에 의해 복구되고, 새로운 데이터 항목은 데이터 항목으로부터 생성되고, 후에 '새로운' 저장 디바이스 상에 저장되며, '새로운' 저장 디바이스는 복제 세트에 추가된다. 복제 레벨의 복구는 예를 들어 도 3의 CPU(320)에 의해 이루어진다.
방법은 저장 디바이스의 결합된 타이머가 만기된 이후, 즉 저장 디바이스가 영구적으로 연결해제되었다고 '잘못' 여겨진 이후, 저장 디바이스가 분산된 데이터 저장 네트워크에 재연결할 때, 저장 디바이스가 속하는 복제 세트에서 저장 디바이스의 재병합에 의해 더 최적화될 수 있다.
다양한 실시예에 따라, 복제 세트에서 저장 디바이스 각각에 대한 결정된 타임아웃 값은 복제 세트에 대해 결정된 임계 인자에 따라 적응되는데, 이 임계 인자는 복제 세트에서 이용가능한 디바이스의 개수와, 사전 결정된 개수(k) 사이의 차에 따라 결정된다.
본 발명의 방법에 따라 복제물 회복을 위한 적응 및 느린(lazy) 접근법은 접근법이 노드 타임아웃마다 사용될 뿐만 아니라, 시간에 걸쳐 복제의 적극성을 적응시킨다는 점에서 유일하다. 타임아웃이 너무 짧고, 너무 많은 복제본이 존재한다면, 평형 상태가 충족될 때까지 타임아웃이 길어진다. 타임아웃이 너무 길다면, 요구된 최소값으로 복제물의 개수를 증가시키기 위해 타임아웃이 줄어든다. 이러한 느린 접근법은 이 접근법이 영구적 노드 손실의 잘못된-긍정 결정의 양을 낮추기 때문에, 시간에 걸쳐 사용되는 자원의 양을 상당히 감소시킨다.
300 : ROM 310 : RAM
320 : CPU 330 : 클록
340 : 네트워크 디바이스 350 : 그래픽 인터페이스
360 : 사용자 인터페이스

Claims (6)

  1. 적어도 저장 디바이스로 사용되는 네트워크 디바이스를 포함하는 분산된 데이터 저장 시스템에서의 데이터 복제 방법에 있어서,
    - 데이터 항목의 각 저장에 대해, 복제 세트의 선택 단계(401)로서, 상기 복제 세트는 상기 데이터 항목의 저장을 위해 선택되는 상기 분산된 데이터 저장 시스템에서 저장 디바이스의 사전 한정된 개수(k)를 나타내고, 상기 사전 한정된 개수(k)는 소위 복제 레벨을 나타내는, 선택 단계(401),
    - 상기 복제 세트에서 각 저장 디바이스에 대해, 상기 저장 디바이스에 결합된 타이머에 대한 타임아웃(timeout) 값의 결정 단계(402)로서, 상기 타이머는 상기 분산된 데이터 저장 시스템으로부터 상기 저장 디바이스의 연결 해제시 개시되고, 상기 분산된 데이터 저장 시스템으로의 상기 저장 디바이스의 재연결시 정지되며, 상기 저장 디바이스는 상기 타이머의 만기시 연결 해제되었다고 검출되고, 상기 타임아웃 값은 상기 저장 디바이스에 대해 측정되는 비가동 시간(downtime)의 분포 함수로 결정되며, 상기 비가동 시간의 데이터는 상기 저장 디바이스가 상기 분산된 데이터 저장 시스템에 대해 이용가능하지 않을 때의 지속 시간을 나타내는, 결정 단계(402), 및
    - 상기 적어도 하나의 저장 디바이스가 연결 해제되었다고 검출될 때(403), 그리고 상기 복제 세트에서 연결된 저장 디바이스의 개수가 사전 한정된 임계치보다 낮다면, 상기 복제 세트에 대해 새로운 적어도 하나의 제 2 저장 디바이스의 선택을 통해, 그리고 상기 적어도 하나의 제 2 저장 디바이스 상의 상기 데이터 항목으로부터 새로운 데이터 항목을 생성함으로써, 상기 복제 레벨을 복구하고, 상기 적어도 하나의 제 2 저장 디바이스를 상기 복제 세트에 추가하는, 복구 및 추가 단계를
    포함하는 것을 특징으로 하는, 분산된 데이터 저장 시스템에서의 데이터 복제 방법.
  2. 제 1항에 있어서, 상기 방법은 상기 저장 디바이스에 결합된 상기 타이머가 만기된 이후, 상기 디바이스가 상기 분산된 데이터 저장 네트워크에 재연결할 때, 상기 디바이스가 속한 복제 세트에서 저장 디바이스의 재통합 단계를 더 포함하는 것을 특징으로 하는, 분산된 데이터 저장 시스템에서의 데이터 복제 방법.
  3. 제 1항 또는 제 2항에 있어서, 상기 복제 세트에서 상기 저장 디바이스 중 각각에 대해 상기 결정된 타임아웃 값은 상기 복제 세트에 대해 결정된 임계 인자에 따라 적응되는데, 상기 임계 인자는 상기 복제 세트에서 이용가능한 디바이스의 개수와 상기 복제 레벨 사이의 차에 따라 결정되는 것을 특징으로 하는, 분산된 데이터 저장 시스템에서의 데이터 복제 방법.
  4. 제 3항에 있어서, 상기 임계 인자는 상기 비가동 시간의 데이터의 2개의 시간-이격된 측정치 사이에서 상기 복제 세트에서의 연결된 저장 디바이스의 개수의 차이에 따라 결정되는 것을 특징으로 하는, 분산된 데이터 저장 시스템에서의 데이터 복제 방법.
  5. 적어도 저장 디바이스로 사용되는 네트워크 디바이스를 포함하는 분산된 데이터 저장 시스템에서 데이터 복제를 위한 서버 디바이스에 있어서,
    - 데이터 항목의 각 저장에 대해, 복제 세트의 선택 수단(320)으로서, 상기 복제 세트는 상기 데이터 항목의 저장을 위해 선택되는 상기 분산된 데이터 저장 시스템에서 저장 디바이스의 사전 한정된 개수(k)를 나타내고, 상기 사전 한정된 개수(k)는 소위 복제 레벨을 나타내는, 선택 수단(320),
    - 상기 복제 세트에서 각 저장 디바이스에 대해, 상기 저장 디바이스에 결합된 타이머에 대한 타임아웃(timeout) 값의 결정 수단(320)로서, 상기 타이머는 상기 분산된 데이터 저장 시스템으로부터 상기 저장 디바이스의 연결 해제시 개시되고, 상기 분산된 데이터 저장 시스템으로의 상기 저장 디바이스의 재연결시 정지되며, 상기 저장 디바이스는 상기 타이머의 만기시 연결 해제되었다고 검출되고, 상기 타임아웃 값은 상기 저장 디바이스에 대해 측정되는 비가동 시간의 분포 함수로 결정되며, 상기 비가동 시간의 데이터는 상기 저장 디바이스가 상기 분산된 데이터 저장 시스템에 대해 이용가능하지 않을 때의 지속 시간을 나타내는, 결정 수단(320), 및
    - 상기 적어도 하나의 저장 디바이스가 연결 해제되었다고 검출될 때(403), 그리고 상기 복제 세트에서 연결된 저장 디바이스의 개수가 사전 한정된 임계치보다 낮다면, 상기 복제 세트에 대해 새로운 적어도 하나의 제 2 저장 디바이스의 선택을 통해, 그리고 상기 적어도 하나의 제 2 저장 디바이스 상의 상기 데이터 항목으로부터 새로운 데이터 항목을 생성함으로써, 상기 복제 레벨을 복구하고, 상기 적어도 하나의 제 2 저장 디바이스를 상기 복제 세트에 추가하는, 복구 및 추가 수단을
    포함하는 것을 특징으로 하는, 분산된 데이터 저장 시스템에서 데이터 복제를 위한 서버 디바이스.
  6. 컴퓨터 프로그램 제품에 있어서, 상기 프로그램이 컴퓨터상에서 실행될 때, 제 1 항에 따른 방법의 단계를 실행하는 프로그램 코드 지령을 포함하는 것을 특징으로 하는, 컴퓨터 프로그램 제품.
KR1020110088594A 2010-09-20 2011-09-01 분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스 KR20120030938A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10306000A EP2439908A1 (en) 2010-09-20 2010-09-20 Method of data replication in a distributed data storage system and corresponding device
EP10306000.0 2010-09-20

Publications (1)

Publication Number Publication Date
KR20120030938A true KR20120030938A (ko) 2012-03-29

Family

ID=43920327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110088594A KR20120030938A (ko) 2010-09-20 2011-09-01 분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스

Country Status (5)

Country Link
US (1) US8812801B2 (ko)
EP (2) EP2439908A1 (ko)
JP (1) JP5836722B2 (ko)
KR (1) KR20120030938A (ko)
CN (1) CN102411607B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system
US10033803B1 (en) * 2014-10-31 2018-07-24 Amazon Technologies, Inc. Data volume auto-repair based on volume degradation level
CN105227345A (zh) * 2015-08-24 2016-01-06 北京汉柏科技有限公司 一种连接的超时时间设置方法及装置
US10379742B2 (en) 2015-12-28 2019-08-13 Netapp, Inc. Storage zone set membership
US10514984B2 (en) * 2016-02-26 2019-12-24 Netapp, Inc. Risk based rebuild of data objects in an erasure coded storage system
US10055317B2 (en) 2016-03-22 2018-08-21 Netapp, Inc. Deferred, bulk maintenance in a distributed storage system
US11733874B2 (en) * 2021-05-03 2023-08-22 EMC IP Holding Company LLC Managing replication journal in a distributed replication system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
JP2004341961A (ja) * 2003-05-16 2004-12-02 Nippon Telegr & Teleph Corp <Ntt> ストレージシステムおよびストレージプログラム
CN1658560A (zh) * 2005-02-28 2005-08-24 中国人民解放军国防科学技术大学 一种基于预测的快速数据复制方法
EP2067104A1 (en) * 2006-09-28 2009-06-10 Xeround Systems Ltd. Apparatus and method for a distributed storage global database
WO2010037794A2 (en) * 2008-10-03 2010-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Monitoring mechanism for a distributed database
SE533007C2 (sv) * 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring

Also Published As

Publication number Publication date
CN102411607B (zh) 2016-08-03
US20120072689A1 (en) 2012-03-22
CN102411607A (zh) 2012-04-11
US8812801B2 (en) 2014-08-19
EP2432193A3 (en) 2012-07-11
EP2432193A2 (en) 2012-03-21
EP2439908A1 (en) 2012-04-11
JP5836722B2 (ja) 2015-12-24
JP2012064217A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
KR20120030938A (ko) 분산된 데이터 저장 시스템에서 데이터 복제의 방법 및 이에 대응하는 디바이스
EP3518110B1 (en) Designation of a standby node
US10560315B2 (en) Method and device for processing failure in at least one distributed cluster, and system
CN106878473B (zh) 一种消息处理方法、服务器集群及***
JP4709840B2 (ja) ネットワークのノード間でデータ・コンポーネントをコピーする方法およびシステム
EP2273371B1 (en) Failover procedure for server system
CN106330475B (zh) 一种通信***中管理主备节点的方法和装置及高可用集群
JP2020505839A (ja) ネットワークのトポロジのネットワークの認識を更新するコンピュータにより実装されるシステム及び方法
WO2019128670A1 (zh) 用于在分布式***中使管理能力自恢复的方法和装置
CN101009628A (zh) 一种交换网络拓扑变化时组播表项更新的方法及装置
CN112328421A (zh) 一种***故障处理方法、装置、计算机设备和存储介质
US11314772B2 (en) Robust data replication among data centers
TW201946419A (zh) 監視裝置、網路系統、拓樸管理方法及監視程式產品
CN108958883A (zh) 云计算集群中虚拟机的恢复方法及***
JP6007988B2 (ja) 予備系装置、運用系装置、冗長構成システム、及び負荷分散方法
EP3570169A1 (en) Method and system for processing device failure
CN111629022A (zh) 实用性拜占庭容错的节点设置方法
JP5813771B2 (ja) 分散型データ記憶システムにデータを記憶する方法およびこれに対応する装置
KR101909264B1 (ko) 분산 sdn 제어기 구조에서 제어기 장애 복구 시스템 및 방법
JP6364203B2 (ja) システムの稼働状態を監視する監視サーバ及び監視サーバの制御方法
CN115277379B (zh) 分布式锁容灾处理方法、装置、电子设备及存储介质
JP6701846B2 (ja) 管理装置、バックアップシステム、バックアップ管理方法、プログラム
JP5890452B2 (ja) クラスタシステムのサーバ装置およびそのプログラム
JP6167827B2 (ja) 情報提供プログラム、情報提供方法、情報提供装置、および情報収集システム
JP2014160374A (ja) 中継計算機、分散配置システムおよびデータ配信方法

Legal Events

Date Code Title Description
WITB Written withdrawal of application