KR20070055590A - 분산된 저장 시스템을 관리하는 방법 - Google Patents

분산된 저장 시스템을 관리하는 방법 Download PDF

Info

Publication number
KR20070055590A
KR20070055590A KR1020077008420A KR20077008420A KR20070055590A KR 20070055590 A KR20070055590 A KR 20070055590A KR 1020077008420 A KR1020077008420 A KR 1020077008420A KR 20077008420 A KR20077008420 A KR 20077008420A KR 20070055590 A KR20070055590 A KR 20070055590A
Authority
KR
South Korea
Prior art keywords
storage
storage device
master
state
storage devices
Prior art date
Application number
KR1020077008420A
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 KR20070055590A publication Critical patent/KR20070055590A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0653Monitoring storage devices or systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 (1)네트워크(N) 상의 다수의 저장 장치들(D, D1, D2, D3,...,Dn)을 포함하는 분산된 저장 시스템(1)을 관리하는 방법을 서술하는데, 다른 저장 장치들(D, D1, D2, D3,...,Dn)을 제어하기 위한 마스터 저장 장치로서 저장 장치들(D, D1, D2, D3,...,Dn)중 하나를 선택하도록 하는 선택 프로세스에서, 저장 장치들(D, D1, D2, D3,...,Dn)은 다이얼로그에서 파라미터 정보(2, 2')를 교환하여 어느 저장 장치들(D, D1, D2, D3,...,Dn)이 특정 파라미터의 최대값을 갖는지를 결정하고 최대 파라미터 값을 갖는 저장 장치(D, D1, D2, D3,...,Dn)는 다른 저장 장치들(D, D1, D2, D3,...,Dn)이 종속 저장 장치들(D, D1, D2, D3,...,Dn)의 상태를 취하는 동안 다음 시간 간격에 대한 현재 마스터 저장 장치로서 선택된다.
분산 저장, 마스터 저장, 종속 저장, 데이터베이스

Description

분산된 저장 시스템을 관리하는 방법{METHOD OF MANAGING A DISTRIBUTED STORAGE SYSTEM}
본 발명은 다수의 저장 장치들을 포함하는 분산된 저장 시스템을 관리하는 방법에 관한 것이다.
본 발명은 또한 분산된 저장 시스템에 사용하기 위한 저장 장치에 관한 것이다.
본 발명은 또한 분산된 저장 시스템에 사용하기 위한 프로그래밍 가능한 저장 장치의 메모리로 직접 로딩할 수 있는 컴퓨터 프로그램 제품에 관한 것이다.
분산된 저장 시스템들은 통상적으로 네트워크상에 함께 접속되는 다수의 저장 장치들 상에 데이터, 전형적으로 많은 양의 데이터를 저장하는데 사용된다. 전형적인 분산된 저장 시스템에서, 메인프레임 컴퓨터, 개인용 컴퓨터, 워크스테이션 등일 수 있는 한 장치는 다른 워크 스테이션들, 개인용 컴퓨터들일 수 있는 다수의 다른 종속 장치들 상에서 이용될 수 있는 메모리 또는 저장 용량을 추적하고 어느 데이터 또는 콘텐트가 어느 장치상에 저장되는지를 기록하기 위하여 제어 장치로서 통상적으로 동작한다. 이 제어 장치는 통상적으로 가장 강력한 기계, 즉 가장 큰 처리력 또는 저장 공간을 갖는 기계이다. 그러나, 이 제어 장치가 저장 공간을 다 소모할 때, 콘텐트는 여전히 이용가능한 저장 공간을 갖는 종속 장치로 전달되어야 한다. 이는 부가적인 네트워크 전달을 초래하고 네트워크의 이용가능한 대역폭을 제한한다. 또한, 제어 장치가 몇몇 이유로 장애가 있다면, 분산된 저장 시스템은 제어 장치를 복구 또는 대체하고 가능한 한 검색 또는 재구성을 위해 요구되는 시간 길이에 벗어날 것이고, 데이터 레코드들이 원래 제어 장치상에 유지되도록 한다. 이와 같은 복구 프로세스는 수동으로 실행되어야 하고 시간 소모적이고 비용이 드는 프로세스일 수 있다. 부가적인 비용 및 지연은 이와 같은 분산된 저장 시스템의 임의의 사용자들이 제어 장치가 고장나는 한 필요로 되는 데이터에 액세스할 수 없는 경우에 야기될 수 있다.
중앙 호스트가 중앙 레코드에서 다수의 주변 저장 장치들에서 이용가능한 저장 용량을 추적하는 저장 시스템을 관리하는 시스템이 문서 US 4,528,624로부터 알려져 있다. 저장될 데이터는 주변 저장 장치들 중 하나 이상의 저장 장치들 상에 공간이 할당되고 중앙 레코드는 이에 따라서 갱신된다. 이 시스템은 무엇이 어디에 저장되었는지를 추적하는 중앙 호스트이기 때문에, 중앙 호스트가 장애가 있는 경우 저장 시스템이 전체적으로 무용한 것으로 간주된다는 상술된 단점을 갖는다.
그러므로, 본 발명의 목적은 분산된 저장 시스템을 관리하는 강력하고 저렴한 방법을 제공하는 것이다.
이를 위하여, 본 발명은 네트워크 상의 다수의 저장 장치들을 포함하는 분산된 저장 시스템을 관리하는 방법을 제공하는데, 다른 저장 장치들을 제어하기 위한 마스터 저장 장치로서 저장 장치들 중 한 장치를 선택하기 위한 선택 프로세스에서, 저장 장치들은 다이얼로그에서 상태 및/또는 파라미터 정보를 교환하여 저장 장치들 중 어느 것이 특정 파라미터의 가장 적절한 파라미터 값을 가지는지를 결정하고, 다른 저장 장치들이 종속 저장 장치들의 상태를 추정하는 동안 다음 시간 간격에 대한 가장 적절한 파라미터 값을 가진 저장 장치가 현재의 마스터 저장 장치로서 선택된다.
본 발명을 따른 선택 프로세스에서, 네트워크의 저장 장치들은 저장 장치들 중 어느 것이 마스터 저장 장치 상태를 추정하는데 가장 적합한지를 결정하기 위해 신호들의 형태로 정보를 교환한다. 선택 다이얼로그는 저장 장치가 저장 장치 상태 및/또는 파라미터 값에 관한 정보를 요청 및/또는 공급하는 미리 규정된 프로토콜을 따른다. 마스터 저장 장치 상태를 갖는 임의의 저장 장치는 또 다른 저장 장치로부터 상태 및/또는 파라미터 정보를 요청할 수 있다. 이와 같은 요청에 응답하여, 저장 장치는 필요한 정보를 공급한다. 하나 이상의 저장 장치가 마스터 저장 장치 상태를 갖는 경우에, 이들 저장 장치들 중 어느 것이 자신의 마스터 저장 장치 상태를 유지해야 하는지를 결정하기 위하여 파라미터의 값이 사용된다. 파라미터 유형에 따라, 가장 적절한 파라미터 값, 예를 들어, "최대" 값 또는 "최소" 값을 갖는 저장 장치는 궁극적으로 자신의 마스터 저장 장치 상태를 유지하는 반면, 다른 저장 장치들은 자신들의 상태를 마스터에서 "슬레이브", 즉 종속 상태로 스위치해야 한다. 이 방식으로 마스터 저장 장치인 것으로 선택된 저장 장치는 다음의 시간 간격 동안, 자신이 고장날 때까지, 또는 자신의 파라미터 값이 또 다른 저장 장치의 파라미터 값을 초과할 때까지 이 상태를 유지할 것이다. 용어들 "마스터" 및 "슬레이브"는 제어 및 종속 장치를 각각 참조할 때 통상적으로 사용되므로, 이하에서 또한 사용된다.
두 저장 장치들간에 교환된 상태 정보는 "마스터" 또는 "슬레이브" 중 하나일 수 있다. 파라미터 정보는 자유 메모리 공간, 처리 능력, 이용 가능한 대역폭, 등과 같은 임의의 적절한 파라미터의 값일 수 있다. 파라미터의 유형은 바람직하게는, 분산된 저장 시스템의 동작의 개시 시에 규정되고, 내내 지속된다. "가장 적절한" 값은 반드시 값이 가장 큰 것이 아니라, "더 양호한" 것으로 이해되어야 한다. 예를 들어, 저장 장치들간에 교환된 파라미터가 현재 CPU 부하를 나타내는 경우, 이때 더 낮은 값이 높은 값보다 "더 양호한" 것으로 해석될 수 있다. 저장 장치들 모두가 동일한 파라미터 값들을 가지는 경우에, 이들 장치들 중 어느 것이 "우수한"지에 관한 판정이 동전 던지기 방식으로 랜덤화될 수 있다.
따라서, 본 발명의 특히 양호한 특성은 전체 마스터/슬레이브 선택 프로세스가 완전히 자동적인 방식으로 수행되어, 사용자에 의한 수동적인 상호작용에 대한 필요성을 제거한다는 것이다. 따라서, 현재의 지정된 마스터 저장 장치가 몇몇 이유로 고장난 경우일지라도, 나머지 저장 장치들이 그들의 수 중 하나를 선택하여 마스터 저장 장치의 역할을 가정한다. 따라서, 인간 상호작용이 필요로 되지 않고, 분산된 저장 시스템의 동작 시에 교란들 또는 방해들이 방지될 수 있다.
따라서, 마스터 저장 장치 또는 종속 저장 장치로서 동작 가능하며 분산된 저장 시스템에서 사용하기 위한 저장 장치는, 상태 및/또는 파라미터 값 정보를 수신 및/또는 공급하기 위해 네트워크상에 존재하는 임의의 다른 저장 장치들과의 다이얼로그를 시작하는 다이얼로그 유닛, 다른 저장 장치들로부터 수신된 파라미터 값들에 따라 저장 장치의 그 다음 상태를 결정하는 상태 결정 유닛, 및 마스터 저장 장치 상태 및 종속 저장 장치 상태 간의 저장 장치의 상태를 스위칭하는 상태 토글 유닛을 포함한다.
저장 장치들 중 어느 하나가 고장난 마스터 저장 장치를 대체하기 위해 마스터 저장 장치 상태를 추정할 수 있어야 하기 때문에, 즉, 각각의 저장 장치가 마스터 또는 슬레이브 중 하나로서 교환가능하게 동작할 수 있어야 하기 때문에, 네트워크 상의 저장 장치들은 바람직하게는, 동일하며, 동일한 유형의 프로세서를 가지고, 동일한 소프트웨어를 실행시킨다. 이 방식으로, 마스터 및 슬레이브 상태 간의 스위치는 임의의 저장 장치에 대하여 항상 가능하다.
종속 청구항들 및 다음의 설명은 특히 본 발명의 유용한 실시예들 및 특성들을 게시한다.
저장 장치의 전력-업 시에, 저장 장치는 마스터 저장 장치 상태를 자동적으로 추정하는 것이 가장 바람직하다. 이는 네트워크의 다수의 저장 장치들이 동시적으로 전력 업되거나 스위치 온될 때, 이들 저장 장치들의 각각이 마스터 저장 장치 상태를 추정할 것이라는 것을 따른다. 더구나, 저장 장치가 분산된 저장 시스템에 부가될 때, 분산된 저장 시스템을 이미 제어하는 마스터 저장 장치 이외에, 전력-업 시에 이 저장 장치는 또한 마스터 저장 장치 상태를 추정할 것이다. 저장 장치들 중 하나만이 마스터 저장 장치 상태를 가질 수 있다는 것을 마스터/슬레이브 관리 시스템이 전제로 하고 있기 때문에, 저장 장치들 중 어느 것이 그 마스터 저장 장치 상태를 유지하는지에 관한 결정이 이루어져야 한다.
전력-업 시에 저장 장치가 마스터 저장 장치 상태를 자동적으로 추정하도록 하는 장점은 네트워크 상의 모든 저장 장치들이 저장 장치들 중 적어도 하나가 마스터 저장 장치 상태를 가지며, 하나 이상의 저장 장치가 마스터 상태를 가지는 경우, 이들 중 어느 것이 그 상태를 유지하는지를 결정하는 선택 프로세스가 간단하기 때문에, 슬레이브 또는 종속 저장 장치 상태를 동시적으로 가지는 상황이 방지될 수 있다는 것이다.
이를 위하여, 마스터 저장 장치 상태를 가진 각각의 저장 장치는 임의의 다른 저장 장치들이 존재하는지 여부를 결정하기 위하여 네트워크를 스캐닝하고, 위치할 수 있는 임의의 다른 저장 장치와의 다이얼로그를 시작하는 스캐닝 동작을 개시한다. 다이얼로그는 저장 장치가 다른 저장 장치의 상태 및/또는 파라미터 값에 관한 정보를 다른 저장 장치로부터 요청하기 위하여 또 다른 저장 장치에 요청 신호를 발부하고 및/또는 다른 저장 장치로부터의 요청 신호에 응답하여 또 다른 저장 장치에 자신의 상태 및/또는 자신의 파라미터 값을 나타내는 정보 신호를 공급하는 미리 규정된 선택 서비스 프로토콜에 따른다. 마스터 상태를 갖는 저장 장치는 종속적이거나 또는 슬레이브 상태를 갖는 임의의 다른 저장 장치에 관한 디스크립티브 정보(descriptive information)에 들어갈 수 있는 리스트를 설정한다. 디스크립티브 정보는 IP 어드레스 또는 임의의 다른 적절한 정보일 수 있다. 마스터 저장장치는 전력-업 후 이 리스트를 설정하거나, 또는 슬레이브 저장 장치 상태를 갖는 또 다른 저장 장치를 검출할 때 리스트를 우선 설정할 수 있다.
마스터 저장 장치 상태를 갖는 제 1 저장 장치는 제 2 저장 장치가 슬레이브 상태를 갖는다는 것을 확인하는 상태 정보를 제 2 저장 장치로부터 수신하는 경우에, 제 1 저장 장치는 제 2 저장 장치에 대한 적절한 정보로 자신의 슬레이브들의 리스트를 증가시킨다. 제 2 저장 장치가 또한 마스터 저장 장치 상태를 가졌다고 응답했다면, 이때 제 1 저장 장치는 선택 서비스 프로토콜에 따라, 제 2 저장 장치로부터 파라미터 값을 요청할 것이다. 제 2 저장 장치가 제 1 저장 장치보다 더 적절하지 않은 파라미터 값을 리턴하면, 제 1 저장 장치는 제 2 저장 장치를 나타내는 정보를 입력시킴으로써 슬레이브들의 리스트를 증가시키는 반면, 제 2 저장 장치는 슬레이브 상태로 스위치한다. 한편, 제 2 저장 장치가 제 1 저장 장치보다 더 적절한 파라미터 값을 리턴하면, 그 후 제 1 저장 장치는 리스트에 존재하였던 임의의 엔트리들의 슬레이브들의 리스트를 소거하고, 자신의 상태를 마스터에서 슬레이브로 스위칭하는 반면, 제 2 저장 장치는 제 1 저장 장치에 대한 엔트리로 자신의 슬레이브들의 리스트를 증가시키고, 계속해서 마스터로서 동작한다.
전력-업 후, 하나 이상의 저장 장치들이 마스터 저장 장치로서 동작하고, 각각의 이와 같은 마스터 저장 장치들이 바람직하게는 규칙적인 간격으로, 자신의 슬레이브들의 리스트 내의 각 슬레이스 저장 장치의 고장 검출 유닛으로 "하트비트 요청" 또는 비-고장 신호를 발부한다. 마스터 저장 장치는 이러한 요청에 대한 응답을 기대한다. 종속 저장 장치가 응답을 리턴하지 못한다면, 마스터 저장 장치는 슬레이브 저장 장치가 고장났다고 결정하고, 이 슬레이브를 자신의 슬레이브들의 리스트로부터 제거한다. 이는 또한 시스템 오퍼레이터 또는 제어기에 슬레이브 저장 장치의 고장을 보고하여, 임의의 필요한 유지보수 또는 복구 작업이 수행될 수 있도록 할 수 있다.
더구나, 슬레이브들 또는 종속 저장 장치들의 각각은 마스터 저장 장치로부터 특정 간격으로 이 신호 또는 요청을 수신할 것을 기대한다. 하트비트 요청이 미리규정된 지속기간에 걸쳐 도착하지 않았다면, 이때 슬레이브 저장 장치는 마스터 저장 장치가 고장났다고 결정하고, 그 자신이 마스터 저장 장치 상태를 추정한다. 따라서, 하트비트 신호의 부재를 검출할 수 있는 모든 슬레이브 저장 장치들은 원래 마스터 저장 장치의 고장 후 어떤 시간에 마스터 저장 장치 상태를 추정할 것이다. 마스터/슬레이브 선택 프로토콜에 따른 이들 저장 장치들의 각각은 다른 저장 장치들로부터 상태 및 파라미터 정보에 대한 요청을 발부하는 것을 개시하고, 다른 저장 장치들로부터의 요청에 응답하여 상태 및/또는 파라미터 정보를 공급한다. 교환된 정보에 기초하여, 저장 장치들 중 하나를 제외한 모든 저장 장치들이 마스터에서 다시 슬레이브로 스위치되고, 단일 저장 장치가 마스터 상태를 유지하도록 한다. 이 저장 장치는 또한 네트워크 상의 모든 슬레이브 저장 장치들로 비-고장 신호를 발부하기 시작한다.
처리 능력, 이용 가능한 대역폭 등과 같은 임의의 적절한 파라미터는 어떤 저장 장치가 마스터 저장 장치의 상태에 가장 적절한지를 결정하는데 사용될 수 있다. 본 발명의 특히 바람직한 실시예에서, 저장 장치에 의해 공급된 파라미터 정보는 그 저장 장치에서 이용 가능한 자유 저장 용량의 표시를 포함하고, 대부분의 자유 공간을 갖는 저장 장치가 궁극적으로 마스터 저장 장치로서 동작하도록 선택될 것이다. 언제나 대부분의 자유 저장 용량을 갖는 마스터 저장 장치의 장점은 마스터 저장 장치가 저장 공간을 다 소모한 경우 발생하며, 따라서 슬레이브 저장 장치로의 데이터 전달을 필요로 하는 불필요한 네트워크 전달들이 방지된다는 것이다. 본 발명의 바람직한 실시예에서, 마스터 저장 장치는 분산된 저장 시스템에 저장될 데이터에 다수의 종속 저장 장치들의 저장 용량을 할당함으로써 자신의 자유 저장 용량을 유지하도록 하여, 마스터 저장 장치의 저장 용량은 종속 저장 장치들 각각의 저장 용량보다 더 크게 유지하도록 한다. 따라서, 네트워크를 통한 불필요한 데이터 전달들이 방지되어, 이용 가능한 네트워크 대역폭이 영향을 받지 않는다. 마스터/슬레이브 배열(constellation)은 단지 예를 들어, 현재의 마스터 저장 장치보다 더 큰 저장 용량을 갖는 새로운 저장 장치가 네트워크에 부가되는 경우, 또는 현재의 마스터 저장 장치가 고장나는 경우에만 거의 변경되지 않아야 할 것이다.
마스터 저장 장치는 또한 분산된 저장 시스템의 이용 가능한 저장 용량을 최적화하기 위하여 하나의 종속 저장 장치로부터 또 다른 종속 저장 장치로 데이터를 재배치할 수 있다. 마스터 저장 장치가 자신의 저장 용량을 할당하도록 강요받는 경우에, 자유 저장 용량의 결과적인 감소는 마스터 상태의 후속 손실을 초래하고, 따라서 이 저장 장치는 더 이상 네트워크 상의 다른 저장 장치로 비-고장 또는 하트비트 신호를 발부하지 못하고, 그 결과, 다른 저장 장치들 중 몇몇은 하트비트 요청의 부재를 검출할 시에 자신들이 마스터 저장 장치 상태를 추정하도록 된다. 마스터/슬레이브 선택 서비스 프로토콜에서의 파라미터 값들의 교환에 따라서, 지금 대부분의 자유 저장 용량을 갖는 저장 장치가 궁극적으로 마스터인 것으로 선택되는 반면, 원래 마스터 저장 장치는 자신의 상태를 양도하고, 슬레이브로서 동작을 지속한다.
분산된 저장 시스템은 상술된 바와 같이 임의의 수의 이와 같은 저장 장치들을 포함할 수 있는 반면, 저장 장치들 중 적어도 하나, 및 바람직하게는 모두가 고장 검출 유닛을 이용하여, 고장 검출 유닛을 가진 종속 저장 장치들 중 어느 하나가 필요하다면 마스터 저장 장치 상태를 추정할 수 있다. 이와 같은 고장 검출 유닛은 마스터 저장 장치에 의해 간격을 두고 발부된 하트비트 요청을 청취한다. 이 요청이 미리 규정된 시간 길이 동안 도달하지 못한다면, 고장 검출 유닛은 상태 결정 유닛 또는 상태 토글 유닛에 통지하여, 슬레이브에서 마스터 상태로의 스위치에 대한 판정이 행해질 수 있도록 한다.
상술된 바와 같이, 저장 장치의 모듈들 또는 유닛들은 소프트웨어 또는 하드웨어 또는 가장 적절한 바와 같이 소프트웨어 및 하드웨어 모두의 조합에 의해 구현될 수 있다. 마스터/슬레이브 선택 서비스 프로토콜은 프로그램 가능한 저장 장치의 메모리로 직접 로딩될 수 있는 컴퓨터 프로그램 제품의 형태로 구현되는 것이 가장 바람직하며, 여기서 방법의 단계들은 컴퓨터 프로그램이 저장 장치에서 실행될 때 적절한 소프트웨어 코드 부분들에 의해 수행된다.
본 발명의 다른 목적들 및 특성들은 첨부 도면들과 함께 고려되는 다음의 상세한 설명들로부터 명백해질 것이다. 그러나, 도면들은 본 발명의 한계들을 규정하는 것이 아니라, 단지 설명을 위해서 설계된다는 것을 이해해야 한다.
도 1은 본 발명을 따른 분산된 저장 시스템을 블록도 형태로 도시한 도면.
도 2는 본 발명의 실시예를 다른 저장 장치의 요소들을 도시한 개략적인 블록도.
도 3은 본 발명에 따른 방법에 대한 마스터/슬레이브 선택 프로토콜의 단계들을 도시한 흐름도.
도 4는 본 발명의 실시예에 따른 마스터 저장 장치의 선택 프로세스의 단계들을 도시한 시간적인 도면.
도 5는 본 발명의 실시예에 따른 마스터 저장 장치의 선택 프로세스의 단계들을 도시한 시간적인 도면.
도 6은 본 발명의 실시예에 따른 마스터 저장 장치의 선택 프로세스의 단계들을 도시한 시간적인 도면.
도 7은 본 발명의 실시예에 따른 슬레이브 저장 장치의 실패의 결과를 도시한 시간적인 도면.
도 8은 본 발명의 실시예에 따른 마스터 저장 장치의 실패의 결과를 도시한 시간적인 도면.
도면들에서, 전체적으로 동일한 대상들에는 동일한 참조번호가 병기되어 있다.
도 1은 네트워크(N)에 의해 서로 접속되는 분산된 저장 시스템(1)의 다수의 저장 장치들(D1,D2,D3,...Dn)을 도시한다. 각각의 저장 장치(D1,D2,D3,...Dn)는 네트워크 접속을 갖는 처리 보드 및 가변 크기의 하드 디스크(M1,M2,M3,...Mn)를 포함하며, 각각의 저장 장치(D1,D2,D3,...Dn)는 동일한 소프트웨어 스택을 실행한다. 네트워크(N)는 임의의 적절한 방식으로 구현될 수 있고, 간소화를 위하여 도면에서 백본 네트워크(N)로서 도시되어 있다. 분산된 저장 시스템(1)의 저장 장치(D1,D2,D3,...Dn)의 각각은 네트워크(N) 상의 임의의 다른 저장 장치(D1,D2,D3,...Dn)로부터 정보 - 즉, 신호들을 수신할 수 있고, 또한 어떤 적절한 어드레싱 프로토콜을 사용하여 네트워크(N) 상의 임의의 다른 저장 장치(D1,D2,D3,...Dn)로 정보를 전송할 수 있는데, 이는 본원에서 심도있게 취급할 필요가 없다.
본 발명에 따른 저장 장치(D1,D2,D3,...Dn)는 하나 이상의 하드-디스크들, 휘발성 메모리, 또는 심지어 상이한 메모리 유형들의 조합을 포함할 수 있는 관련된 메모리(M1,M2,M3,...Mn)로 데이터를 저장하고 이 메모리로부터 데이터를 검색하는데 사용될 수 있다. 각각의 저장 장치(D1,D2,D3,...Dn)는 자신의 특정 메모리(M1,M2,M3,...Mn)와 관련된다. 저장 장치(D1,D2,D3,...Dn)의 메모리(M1,M2,M3,...Mn)에 저장될 데이터는 네트워크(N)를 통하여 목표 저장 장치(들)(D1,D2,D3,...Dn)로 전송된다. 저장 프로세스를 제어하는 임의의 신호들이 또한 네트워크(N)를 통하여 전 송된다.
임의의 저장 장치(D1,D2,D3,...Dn)가 항상 마스터 저장 장치의 역할을 취하도록 하기 위하여, 필요하다면, 각각의 저장 장치(D1,D2,D3,...Dn)는 콘텐트와 관련된 메타데이터뿐만 아니라, 하드 디스크들(M1,M2,M3,...Mn) 상의 콘텐트의 물리적인 위치에 대한 포인터들을 포함하는 데이터베이스를 가질 것이다. 데이터베이스는 또한 분산된 저장 시스템의 임의의 설정들을 포함할 것이다. 이 데이터베이스는 마스터 저장 장치에 의해 마스터 저장 장치상에서 갱신되고, 이어서 모든 슬레이브 저장 장치(D1,D2,D3,...Dn)로 복제될 것이다.
전형적으로, 이와 같은 분산된 저장 시스템(1)은 지속적으로 동작하고 있다. 저장 장치(D1,D2,D3,...Dn)는 항상 분산된 저장 시스템(1)에 부가되거나, 또는 저장 장치(D1,D2,D3,...Dn)가 부적합성, 물리적인 고장, 유지보수 조치 등과 같은 어떤 이유로 제거될 수 있다. 저장 장치(D1,D2,D3,...Dn)가 네트워크(N)에 부가될 때, 마스터 데이터베이스의 콘텐트들은 새로운 저장 장치(D1,D2,D3,...Dn)로 복제되어, 새로운 콘텐트를 수용할 준비가 되어 있도록 한다. 저장 장치(D1,D2,D3,...Dn)가 고장난 경우, 마스터 저장 장치는 단지 그 저장 장치(D1,D2,D3,...Dn)의 메모리 상에 존재하였던 콘텐트와 관련된 모든 메타데이터를 자신의 데이터베이스로부터 제거한다. 마스터 저장 장치가 고장난 경우에, 나머지 저장 장치들(D1,D2,D3,...Dn) 중 하나가 마 스터로 선택되고, 단지 이전 마스터의 메모리에 저장되었던 콘텐트와 관련된 모든 메타데이터를 제거할 것이다.
분산된 저장 시스템(1)의 저장 공간이 중앙으로 할당되어야 하기 때문에, 이하에 보다 상세히 설명되는 마스터/슬레이브 선택 다이얼로그에서, 저장 장치들(D1,D2,D3,...Dn) 중 하나는 "마스터" 상태로 선택되거나 지정되는 반면, 나머지 저장 장치들(D1,D2,D3,...Dn)은 "슬레이브" 또는 종속 상태를 취한다. 그 후, 이 마스터 저장 장치는 임의의 인입 데이터가 저장 장치들(D1,D2,D3,...Dn) 중 어느 장치로 할당되거나 저장되어야 하는지, 및 특정 데이터가 어느 저장 장치(D1,D2,D3,...Dn)로부터 검색되어야 하는지를 결정할 것이다. 더구나, 마스터 저장 장치는 자신의 지속된 기능 또는 비-고장을 종속 저장 장치(D1,D2,D3,...Dn)에 통지하고 각각의 슬레이브 저장 장치(D1,D2,D3,...Dn)로부터 비-고장 확인을 요청하기 위하여 하트비트 요청 신호를 규칙적인 간격으로 발부한다.
네트워크(N)를 통해 수신된 신호들을 해석하고, 메모리로의 데이터의 저장 및 메모리로부터의 데이터의 검색을 다루기 위하여, 저장 장치는 다수의 유닛들 또는 모듈들을 사용한다. 도 2는 저장 장치(D), 및 그 관련된 메모리(M), 및 본 발명과 관련된 저장 장치(D)의 유닛들(5,6,7,8,9,10,11)을 도시한다. 저장 장치(D)는 임의의 수의 부가적인 유닛들, 모듈들 또는 사용자 인터페이스들을 포함할 수 있는데, 이들은 본 발명과 관련되지 않으며, 따라서 본 명세서에서 고려되지 않는다.
명령 발부 유닛(5)은 저장 장치(D)가 마스터로서 동작할 때, 메모리 할당 또는 데이터 검색에 관한 신호들과 같은 명령 신호들(12)을 네트워크 상의 다른 저장 장치들로 발부하도록 한다. 슬레이브로서 동작할 때, 명령 수신 유닛(6)은 마스터 저장 장치로부터 명령 신호들(13)을 수신한다. 데이터(14)는 이 저장 장치(D)와 관련된 메모리(M)로 기록되거나 또는 이 메모리로부터 판독될 수 있다. 메모리 어드레싱은 저장 장치(D)에 의해 국부적으로 관리될 수 있거나 또는 마스터 저장 장치에 의해 원격적으로 관리될 수 있다.
인터페이스 유닛(8)은 네트워크상의 또 다른 저장 장치로부터 인입 요청 신호(2) 및 정보 신호(3)를 수신하고 또한 요청 신호(2') 및/또는 정보 신호(3')를 다른 저장 장치로 전송할 수 있다. 다이얼로그 유닛(7)은 다른 저장 장치들로부터 수신되는 임의의 요청들(2) 및 정보(3)를 해석하고 후술되는 마스터/슬레이브 선택 프로토콜에 따라서 요청들을 발부하고 인터페이스 유닛(8)에 의해 전송될 이 저장 장치(D)에 관한 상태 및 파라미터 정보를 네트워크상의 또 다른 저장 장치로 공급한다. 이것은 또한 정보를 상태 결정 유닛(9)으로 전달한다.
고장 검출 유닛(11)은 현재 마스터 저장 장치에 의해 발부된 비고장 또는 하트비트 신호(4)를 수신 또는 "청취"한다. 어떤 이유로 현재 마스터 저장 장치가 고장이 난 경우, 하트비트 신호(4)는 고장 검출 유닛(11)에 도달하지 않을 것이다. 미리 정해진 시간 길이 동안 하트비트 신호(4)의 부재 후, 마스터 저장 장치가 고장났다고 추정한다. 적절한 신호는 상태 결정 유닛(9)으로 전달된다.
이 상태 결정 유닛(9)은 다이얼로그 유닛(7) 및 고장 검출 유닛(11)으로부터 수신된 정보를 토대로 현재 마스트/스를레이 상태가 지속되는지 또는 그 상태가 마스터로부터 슬레이브로 또는 그 반대로 스위칭되는지를 결정한다. 상태 토글 유닛(10)은 "마스터"로부터 "슬레이브"로 저장 장치(D)의 상태를 스위칭하거나 또는 이에 따라서 "슬레이브"로부터 "마스터"로 스위칭한다.
다이얼로그 유닛(7), 상태 결정 유닛(9) 및 상태 토글 유닛(10)과 같은 상술된 임의의 유닛들은 임의의 신호 해석 및 처리를 실행하기 위하여 소프트웨어 모듈의 형태로 실현될 수 있다.
모든 신호들(2, 2', 3, 3', 12, 13, 14 및 4)은 네트워크(N)를 통해서 통상적인 방식으로 전송되는 것으로 추정되지만, 간결성을 위하여 이 도면에서 별도로 도시된다. 게다가, 저장 장치(D) 및 네트워크(N) 간의 인터페이스는 명령 발부 유닛(5), 명령 수신 유닛(6), 고장 검출 유닛(11) 및 인터페이스 유닛(8) 모두가 단일 인터페이스에 결합되도록 하는 임의의 적절한 네트워크 인터페이스 카드 또는 커넥터일 수 있다.
도 3은 본 발명에 따른 마스터/슬레이브 선택 프로토콜의 단계들을 상세하게 도시한다. 분산된 저장 시스템 내의 저장 장치의 전력-업(100) 후, 저장 장치는 마스터 상태(101)를 자동으로 추정한다. 얼마나 많은 다른 저장 장치들이 네트워크상에 존재하는지를 저장 장치가 알 수 없고 이들 다른 저장 장치들의 상태 또는 파라미터가 무엇인지를 알 수 없기 때문에, 각 저장 장치는 다른 저장 장치에 대한 상태를 결정하고 필요한 경우 파리미터 값들을 비교해야 한다. 이를 위하여, 네트워크를 스캐닝하며, 다른 저장 장치들로부터의 요청들에 응답하고 고장 검출을 수행 하는 프로세스들(20, 30, 40)이 단계들(200, 300, 400) 각각에서 초기화되고 각 저장 장치상에서 병렬로 실행된다. 이하에서, 저장 장치들 간에서 교환된 파라미터 값은 저장 장치상에서 이용할 수 있는 자유 저장 용량의 측정값인데, 그 이유는 네트워크를 통한 불필요한 데이터 전달이 마스터 저장 장치상에서 자유 저장 용량을 유지함으로써 감소될 수 있기 때문이며, 따라서 불필요한 대역폭 감소를 방지하게 한다. 명백하게, 임의의 다른 적절한 파라미터 값이 마찬가지로 동작의 착수(outset)에 따라서 결정되고 동일한 다이얼로그를 이용하여 교환될 수 있다.
스캐닝 프로세스(20)에서, 서브넷 또는 네트워크는 또 다른 저장 장치의 선택 서비스 포트의 존재를 식별하려고 할 때 제 1 저장 장치에 의해 스캐닝된다. 다른 저장 장치가 단계(201)에서 발견되지 않으면, 제 1 저장 장치는 단계(209)에서 스캐닝 프로세스(20)를 완료한다. 또 다른 저장 장치가 단계(201)에서 발견되면, 제 1 저장 장치는 단계(202)에서 제 2 저장 장치의 상태를 요청한다. 단계(203)에서, 제 1 저장 장치는 제 2 저장 장치가 슬레이브인지를 알기 위하여 점검한다. 예라면, 제 1 저장 장치는 제 2 저장 장치에 대한 디스크립티브 정보로 단계(204)에서 슬레이브 리스트를 증가시고 단계(200)로 리턴한다. 제 2 저장 장치가 마스터이면, 제 1 저장 장치는 단계(205)에서 자신의 자유 저장 공간을 요청하고 단계(206)에서 제 2 저장 장치의 자유 저장 공간을 자신의 저장 공간과 비교한다.
제 2 저장 장치가 제 1 저장 장치보다 적은 자유 저장 용량을 가지면, 제 1 저장 장치는 단계(204)에서 제 2 저장 장치의 디스크립터로 슬레이브 리스트를 증가시키고 단계(200)로 리턴한다. 다른 한편으로, 제 2 저장 장치가 제 1 저장 장치 보다 더 많은 저장 용량을 이용하면, 제 1 저장 장치는 단계(207)에서 임의의 엔트리들의 슬레이브들의 리스트를 소거하며, 단계(208)에서 자신의 마스터 상태를 허용하고 슬레이브 상태로 스위칭하며, 단계(209)에서 스캐닝 프로세스(20)를 완료한다.
스캐닝 프로세스(20)와 병렬로, 각 저장 장치가 단계(301)에서 네트워크상의 또 다른 저장 장치로부터의 요청을 대기하는 선택 서비스 프로세스(30)가 실행된다. 제 2 저장 장치로부터 인입 요청이 분석된다. 제 1 저장 장치의 상태가 단계(302)에서 요청되면, 제 1 저장 장치는 단계(303)에서 자신의 상태(마스터 또는 슬레이브)를 제 2 저장 장치로 리턴한다. 파라미터 값, 이 경우에 자유 저장 용량이 상태(302')에서 요청되면, 제 1 저장 장치는 단계(303')에서 자신의 현재 자유 공간을 제 2 저장 장치로 리턴한다. 단계(303) 또는 단계(303') 중 하나의 단계 후, 제 1 저장 장치는 단계(304)에서 자신의 상태를 점검한다. 슬레이브인 경우, 이는 부가 요청을 대기하는 단계(301)로 리턴한다. 이것이 마스터이면, 이는 단계(305)에서 제 2 저장 장치의 파라미터 값을 요청한다. 제 2 저장 장치가 단계(306)에서 낮은 파라미터 값을 리턴하면, 제 1 저장 장치는 단계(307)에서 제 2 저장 장치를 슬레이브의 리스트에 부가하고, 부가 요청을 청취하는 단계(301)로 리턴한다. 한편으로, 단계(306)에서 제 2 저장 장치에 의해 리턴되는 파라미터 값이 제 1 저장 장치의 값을 초과하면, 제 1 저장 장치는 단계(308)에서 슬레이브의 리스트를 소거하며, 단계(309)에서 슬레이브 상태를 추정하며, 네트워크 상의 다른 저장 장치로부터 요청 청취를 재개하는 단계(301)로 리턴한다.
고장 검출을 위한 나머지 프로세스(40)에서, 제 1 저장 장치는 단계(401)에서 그 상태를 점검한다. 마스터인 경우, 이때 그것은 슬레이브의 리스트내의 제 2 저장 장치로부터의 "하트비트"를 단계(402)에서 요청한다. 제 2 저장 장치가 작동되면, 즉 단계(403)에서 하트비트를 리턴하면, 제 1 저장 장치는 단계(401)로 리턴한다. 다른 한편으로, 제 2 저장 장치가 단계(403)에서 하트비트 신호를 리턴시키는데 실패하면, 제 1 저장 장치는 단계(404)에서 제 2 저장 장치가 고장이라고 결론짓고 이러한 제 2 저장 장치를 슬레이브들의 리스트로부터 제거한다.
단계(401)에서, 제 1 저장 장치가 마스터가 아니라고 결정하면, 이는 단계(405)에서 마스터 저장 장치로부터 하트비트 요청을 미리 정해진 시간 길이 동안 대기한다. 단계(406)에서, 제 1 저장 장치는 이미 대기하는데 소모된 시간과 미리 정해진 지속기간을 계속해서 비교한다. 하트비트 요청이 단계(407)에서 도달하면, 특정 최대 타임아웃 내에서, 제 1 저장 장치는 승인 신호를 전송함으로써 단계(408)에서 마스터 저장 장치에 응답하고 부가적인 하트비트 요청을 대기하기 위하여 단계(405)로 리턴한다. 대기된 시간 길이가 하트비트 요청을 대기하는 미리 정해진 지속기간과 동일하거나 이를 초과하면, 제 1 저장 장치는 단계(406)에서 마스터 저장 장치가 고장이라고 결론짓고 단계(101)에서 마스터 저장 장치 상태 자체를 추정한다.
다른 저장 장치들이 또한 마스터 저장 장치가 고장이라고 결론짓고 차례로 마스터 저장 장치 상태를 추정하기 때문에, 마스터/슬레이브 선택 프로토콜은 저장 장치들 중 하나 이상을 선택하여 다른 저장 장치가 슬레이브 장치가 되는 동안 마 스터 상태를 유지한다.
도 4 내지 도 8은 상술된 바와 같이 마스터/슬레이브 선택 프로토콜에서 t로 표시된 시간에서 단계들의 시퀀스를 도시한 시간 다이어그램이다.
도 4는 다수의 저장 장치들 중에서 마스터 저장 장치를 선택하는 마스터/슬레이브 선택 프로토콜에서의 단계들의 시퀀스를 도시한 것으로서, 이들 모두는 시스템 전력-업 후 마스터 저장 장치 상태를 갖는다. 이 예에서, 3개의 장치들(D1, D2 및 D3) 모두는 초기에 마스터 저장 장치 상태를 갖고 상술된 스캐닝 및 마스터 선택 프로세스들을 시작한다. D1은 D2로부터 자신의 상태와 자신의 자유 공간을 요청한다. D2가 D1보다 많은 이용가능한 저장 용량을 갖기 때문에, D1은 다음에 자신의 상태를 슬레이브로 스위칭하고 자신의 스캐닝 프로세스를 완료한다. 다른 한편으로, D2는 D1으로부터 상태 정보를 요청하고, D1이 슬레이브인지를 확인하며, D1에 대한 엔트리로 슬레이브들의 리스트를 증가시킨다. 그 후, D3를 검출하고 그로부터 상태 및 저장 용량 정보를 요청한다. 다시, D3는 D2보다 적은 자유 공간 용량을 가지며, 따라서 D2가 D3에 대한 엔트리로 슬레이브들의 리스트를 증가시키도록 한다. D2는 네트워크 상에 부가적인 저장 장치가 없다는 것을 발견하고, 그러므로 자신의 스캐닝 프로세스를 완료하고 마스터 저장 장치로서 동작을 계속한다. D3는 여전히 네트워크를 스캐닝하고 D1을 검출한다. 상태 정보에 대한 요청에 응답하여, D1은 현재 " 슬레이브"인 자신의 상태를 공급한다. D3는 이 정보로 리스트를 증가시키고 D2로부터 상태 정보를 요청하기 위해 진행한다. D2는 여전히 마스터이며, D3가 또한 파라미터 정보를 요청하도록 한다. D2가 D3 자체보다 더 많은 자유 공간 용량을 갖는다는 것을 인식할 때, D3는 마스터 상태를 양도해야 함을 실현한다. 그러므로, 이는 슬레이브의 리스트를 소거하며, 마스터로부터 슬레이브 상태로 스위칭하며 그것의 스캐닝 프로세스를 완료한다.
도 5는 상기 도 4에 도시된 3개의 저장 장치(D1, D2, D3)를 포함하는 분산된 저장 시스템에 부가적인 저장 장치(Dn)를 부가하는 효과를 도시한 것이다. 저장 장치(D2)는 마스터로서 동작하지만, 새롭게 부가된 저장 장치(Dn)는 또한 마스터 상태를 갖는다. 이 새로운 장치(Dn)는 스캐닝 프로세스를 자동적으로 시작하고 우선, 나타나는 엔트리로 자신의 슬레이브들의 리스트를 차례로 갱신하는 저장 장치(Dn)로부터의 요청에 응답하여 자신의 상태(슬레이브)를 공급하는 저장 장치(D3)를 탐색한다. 다음에, 저장 장치(Dn)는 저장 장치(D2)로부터 상태 요청을 발부한다. 이 저장 장치(D2)가 또한 마스터 상태를 갖는다는 것을 알 때 저장 장치(Dn)는 자신의 자유 공간 용량을 요청한다. 저장 장치(D2)가 더 적은 자유 공간 용량(20Gbyte)를 갖기 때문에, 새로운 저장 장치(Dn)는 저장 장치(D2)용 엔트리로 자신의 슬레이브 리스트 를 증가시킨다. 이러한 교환은 저장 장치(D2)로부터 자신의 자유 저장 용량을 요청하는 저장 장치(Dn)로의 요청에 앞서 있다. 저장 장치(Dn)이 자신보다 더 많은 자유 공간 용량을 갖는다는 것을 알 때, 저장 장치(D2)는 자신의 슬레이브들의 리스트를 소거하고 자신의 마스터 상태를 중단하고, 슬레이브 상태로 스위칭한다. 최종적으로, 저장 장치(Dn)가 네트워크상의 최종 나머지 저장 장치(D1)을 탐색하고 자신의 상태를 요청한다. 저장 장치(D1)가 슬레이브로서 동작하기 때문에, 저장 장치(Dn)는 적절한 엔트리로 자신의 리스트를 증가시키고 자신의 스캐닝 프로세스를 완료한다.
도 6은 유사한 상황을 도시하지만, 이 경우에, 새로운 저장 장치(Dn)는 현재 동작하는 마스터 저장 장치(D2)보다 적은 저장 용량을 갖는다. 상기 도 5에 도시된 바와 같이, 새로운 저장 장치는 스캐닝 프로세스를 시작하고 우선 저장 장치(D3)를 검출하며, 그것이 슬레이브인지를 안 후에 이 저장 장치에 대한 엔트리를 부가한다. 다음에, 새로운 저장 장치(Dn)는 또한 마스터 장치를 갖는 저장 장치(D2)를 검출한다. 마스터/슬레이브 선택 프로토콜에 따른 정보의 교환은 새로운 저장 장치(Dn)에 저장 장치(D2)가 마스터 상태이고 그 자신보다 더 많은 자유 저장 용량을 갖는다는 것을 통지한다. 그러므로, 저장 장치(D2)는 자신의 슬레이브들의 리스트를 소거하고 자신의 마스터 상태를 중단한다. 저장 장치(D2)가 자신의 이용가능한 저장 용량을 나타내는 저장 장치(Dn)으로부터 파라미터 값을 요청하고 적절한 엔트리로 자신의 슬레이브들의 리스트를 증가시키고 마스터로서 계속 동작하도록 한다.
상술된 바와 같이, 마스터 저장 장치는 네트워크 상의 모든 저장 장치들에 간격을 두고 하트비트 요청을 발부한다. 각 슬레이브는 "얼라이브" 신호를 리턴함으로써 이와 같은 요청에 대해 특정 시간 내에 응답하여야 하고 그 응답은 마스터 저장 장치에 의해 등록된다. 도 7은 하트비트 요청에 응답하여 고장의 결과를 도시한다. 여기서, 저장 장치(D1)은 마스터이고 하트비트 요청들을 네트워크상의 모든 슬레이브 장치들에 발부하는데, 이들 중 단지 슬레이브 저장 장치(D2)가 간결성을 위하여 도시되어 있다. 저장 장치(D2)가 동작중인 동안, 이는 마스터 저장 장치(D1)로부터 하트비트 요청들에 응답하여 "얼라이브"를 리턴한다. 어떤 지점에서, 저장 장치(D2)는 고장이 나고 마스터 저장 장치(D1)로부터 하트비트 요청들에 더이상 응답할 수 없다. 임의의 응답을 수신함이 없이 다수의 시도 후, 저장 장치(D1)는 슬레이브 저장 장치(D2)가 더이상 선택적이 아니라고 결론짓고 자신의 슬레이브 리스트로부터 저장 장치를 나타내는 엔트리를 제거한다.
마스터 저장 장치가 또한 동작 동안 어떤 지점에서 고장날 수 있기 때문에, 슬레이브 저장 장치는 이와 같은 고장에 응답할 수 있다. 도 8은 마스터 저장 장치(D1) 및 슬레이브 저장 장치(D2) 간에서 하트비트 요청들 및 응답들의 교환을 도 시한다. 어떤 지점에서, 마스터 저장 장치(D1)는 어떤 이유로 고장난다. 그 결과 그것의 하트비트 요청들은 더 이상 발부되지 않는다. 슬레이브 저장 장치(D2)는 하트비트 요청들을 계속 대기한다. 미리 정해진 시간 길이 후, 그것은 마스터 저장 장치(D1)가 더 이상 동작되지 않는다고 결론짓고 그 자신은 마스터 상태를 취한다. 간결성을 위하여 도면에 도시되지 않은 임의의 다른 슬레이브 저장 장치는 또한 마스터 저장 장치 상태를 추정할 수 있다. 그 후, 마스터/슬레이브 선택 서비스는 결국 단지 하나의 마스터 저장 장치가 마스터 저장 장치 상태를 유지하도록 하고 나머지 저장 장치들은 슬레이브 상태를 재개하도록 실행된다.
본 발명이 바람직한 실시예들 및 이에 대한 변형의 형태로 서술되었지만, 수많은 부가적인 수정들 및 변화들이 본 발명의 범위를 벗어나지 않고 행해질 수 있음을 이해할 것이다. 간결성을 위하여, 본 출원 전반의 "a" 또는 "an"의 사용은 복수를 배제하지 않고 "포함하는"은 다른 단계들 또는 요소들을 배제하지 않는다는 것을 이해하여야 한다. "유닛"은 단일 엔티티로서 명시적으로 설명되지 않는 한 다수의 블록들 또는 장치들을 포함할 수 있다.

Claims (14)

  1. 네트워크(N) 상의 다수의 저장 장치들(D, D1, D2, D3, ..., Dn)을 포함하는 분산된 저장 시스템(1)을 관리하는 방법에 있어서,
    다른 저장 장치들(D, D1, D2, D3,..., Dn)을 제어하기 위하여 마스터 저장 장치로서 상기 저장 장치들(D, D1, D2, D3, ..., Dn) 중 하나를 선택하기 위한 선택 프로세스에서, 상기 저장 장치들(D, D1, D2, D3, ..., Dn)은 어느 저장 장치들(D, D1, D2, D3, ..., Dn)이 특정 파라미터의 가장 적절한 값을 갖는지를 결정하기 위해, 다이얼로그에서 상태 및/또는 파라미터 정보(3, 3')를 교환하고, 상기 가장 적절한 파라미터 값을 갖는 저장 장치들(D, D1, D2, D3, ..., Dn)은 다른 저장 장치들(D, D1, D2, D3, ..., Dn)이 종속 저장 장치들(D, D1, D2, D3, ..., Dn)의 상태를 나타내는 후속 시간 간격 동안 현재 마스터 저장 장치로서 선택되는, 분산된 저장 시스템 관리 방법.
  2. 제 1 항에 있어서,
    각 저장 장치(D, D1, D2, D3, ..., Dn)는 초기에 마스터 저장 장치의 상태를 취하는, 분산된 저장 시스템 관리 방법.
  3. 제 2 항에 있어서,
    마스터 저장 장치 상태를 취할 때, 저장 장치(D, D1, D2, D3, ..., Dn)는 네트워크(N)상에 존재하는 임의의 다른 저장 장치들(D, D1, D2, D3, ..., Dn)과의 다이얼로그를 시작하며, 상기 다이얼로그는, 상기 저장 장치(D, D1, D2, D3, ..., Dn)가 다른 저장 장치(D, D1, D2, D3, ..., Dn)의 상태 및/또는 파라미터 값에 관한 상기 다른 저장 장치(D, D1, D2, D3, ..., Dn)로부터 정보(3)를 요청하기 위하여 요청 신호(2')를 또 다른 저장 장치(D, D1, D2, D3, ..., Dn)로 발부하고, 및/또는 상기 다른 저장 장치(D, D1, D2, D3, ..., Dn)로부터의 요청 신호(2)에 응답하여 자신의 상태 및/또는 자신의 상태 파라미터값을 나타내는 정보 신호(3')를 또 다른 저장 장치(D, D1, D2, D3, ..., Dn)에 공급하는 미리 규정된 선택 서비스 프로토콜을 따르는, 분산된 저장 시스템 관리 방법.
  4. 제 3 항에 있어서,
    마스터 저장 장치 상태를 갖는 제 1 저장 장치(D, D1, D2, D3, ..., Dn) 및 종속 저장 장치 상태를 갖는 제 2 저장 장치(D, D1, D2, D3, ..., Dn)간의 다이얼로그에서, 상기 제 1 저장 장치(D, D1, D2, D3, ..., Dn)는 제 2 저장 장치(D, D1, D2, D3, ..., Dn)에 관한 정보를 종속 저장 장치 상태를 갖는 저장 장치(D, D1, D2, D3, ..., Dn)에 관한 엔트리를 저장하기 위하여 설정된 리스트에 입력하는, 분산된 저장 시스템 관리 방법.
  5. 제 3 항 또는 제 4 항에 있어서,
    마스터 저장 장치 상태를 갖는 2개의 저장 장치들 (D, D1, D2, D3, ..., Dn) 간의 다이얼로그에서, 보다 적은 적절한 파라미터 값을 갖는 저장 장치(D, D1, D2, D3, ..., Dn)는 자신의 상태를 마스터 저장 장치 상태로부터 종속 저장 장치 상태로 스위칭하고, 존재한다면 종속 저장 장치들에 관한 임의의 엔트리들의 리스트를 소거하는, 분산된 저장 시스템 관리 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    마스터 저장 장치 상태를 갖는 상기 저장 장치(D, D1, D2, D3, ..., Dn)는 비고장을 네트워크(N) 상의 임의의 다른 저장 장치들(D, D1, D2, D3, ..., Dn)에 브로드캐스팅하기 위하여 및/또는 네트워크(N) 상의 임의의 종속 저장 장치들(D, D1, D2, D3, ..., Dn)의 비고장을 결정하기 위하여 규칙적인 간격으로 비고장 요청(4)을 발부하는, 분산된 저장 시스템 관리 방법.
  7. 제 6 항에 있어서,
    종속 저장 장치 상태를 갖는 저장 장치(D, D1, D2, D3, ..., Dn)는 비고장 신호(4)가 미리 규정된 지속 기간동안 부재함을 결정하는 경우 마스터 저장 장치 상태를 취하는, 분산된 저장 시스템 관리 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    저장 장치(D, D1, D2, D3, ..., Dn)에 의해 공급되는 상기 파라미터 정보(3. 3')는 저장 장치(D, D1, D2, D3, ..., Dn) 상에서 이용가능한 자유 저장 용량의 표시를 포함하고, 가장 큰 자유 저장 용량을 갖는 저장 장치(D, D1, D2, D3, ..., Dn)는 현재 마스터 저장 장치로 선택되는, 분산된 저장 시스템 관리 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 마스터 저장 장치는 다수의 종속 저장 장치들(D, D1, D2, D3, ..., Dn)을 분산된 저장 시스템(1)에 저장될 데이터로 바람직하게 할당함으로써 자유 저장 용량을 유지시키는, 분산된 저장 시스템 관리 방법.
  10. 분산된 저장 시스템(1)에 사용하기 위한 저장 장치(D, D1, D2, D3, ..., Dn) 로서, 상기 저장 장치(D, D1, D2, D3, ..., Dn)는 마스터 저장 장치로서 또는 종속 저장 장치로서 동작가능한 저장 장치에 있어서,
    상태 및/또는 파라미터 값 정보(3, 3')를 수신 및/또는 공급하기 위하여 네트워크(N)상에 존재하는 임의의 다른 저장 장치들(D, D1, D2, D3, ..., Dn)과 다이얼로그하는 다이얼로그 유닛(7);
    다른 저장 장치들(D, D1, D2, D3, ..., Dn)로부터 수신된 파라미터 값들(3)에 따라서 저장 장치(D, D1, D2, D3, ..., Dn)의 후속 상태를 결정하는 상태 결정 유닛(9); 및
    마스터 저장 장치 상태 및 종속 저장 장치 상태 간의 저장 장치(D, D1, D2, D3, ..., Dn)의 상태를 스위칭하는 상태 토글 유닛(10)를 포함하는, 저장 장치.
  11. 제 10 항에 있어서,
    비고장 신호(4)의 부재를 결정하기 위한 고장 검출 유닛(11)을 포함하며, 상기 저장 장치(D, D1, D2, D3, ..., Dn)의 상기 상태 결정 유닛(9) 및/또는 상태 토글 유닛(10)은 상기 저장 장치(D, D1, D2, D3, ..., Dn)의 상태가 마스터 저장 장치의 비고장 신호(4)의 부재시 미리 규정된 지속기간 동안 종속 저장 장치 상태로부터 마스터 저장 장치 상태로 스위칭되는, 저장 장치.
  12. 제 10 항에 따른 다수의 저장 장치들(D, D1, D2, D3, ..., Dn)을 포함하는, 분산된 저장 시스템(1).
  13. 제 12 항에 있어서,
    저장 장치(D, D1, D2, D3, ..., Dn) 중 적어도 하나가 제 11 항에 따른 저장 장치인, 분산된 저장 시스템(1).
  14. 분산된 저장 시스템(1)에 사용하기 위해 프로그래밍가능한 저장 장치(D, D1, D2, D3, ..., Dn)의 메모리로 직접 로딩가능한 컴퓨터 프로그램 제품에 있어서,
    상기 제품이 상기 저장 장치(D, D1, D2, D3, ..., Dn)상에서 실행될 때 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법의 단계들을 수행하기 위한 소프트웨어 코드 부분들을 포함하는, 컴퓨터 프로그램 제품.
KR1020077008420A 2004-09-13 2005-09-01 분산된 저장 시스템을 관리하는 방법 KR20070055590A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04104408 2004-09-13
EP04104408.2 2004-09-13

Publications (1)

Publication Number Publication Date
KR20070055590A true KR20070055590A (ko) 2007-05-30

Family

ID=35335792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077008420A KR20070055590A (ko) 2004-09-13 2005-09-01 분산된 저장 시스템을 관리하는 방법

Country Status (6)

Country Link
US (1) US20070266198A1 (ko)
EP (1) EP1810125A2 (ko)
JP (1) JP2008512759A (ko)
KR (1) KR20070055590A (ko)
CN (1) CN101019097A (ko)
WO (1) WO2006030339A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101511098B1 (ko) * 2011-10-10 2015-04-10 네이버 주식회사 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603449B1 (en) 2002-06-10 2009-10-13 Crossroads Systems, Inc. System and method for inquiry caching
US8429300B2 (en) 2006-03-06 2013-04-23 Lg Electronics Inc. Data transferring method
US20090133129A1 (en) 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
EP1992138A4 (en) 2006-03-06 2014-12-31 Lg Electronics Inc DATA TRANSFER CONTROL METHOD, METHOD FOR CONTINUOUS TRANSMISSION CONTROL, METHOD FOR DETECTING CONTENT PROCESSING INFORMATION AND CONTENT TRANSMISSION SYSTEM
KR20080022476A (ko) 2006-09-06 2008-03-11 엘지전자 주식회사 논컴플라이언트 컨텐츠 처리 방법 및 디알엠 상호 호환시스템
CN101542495B (zh) 2007-01-05 2014-10-22 Lg电子株式会社 用于传递资源的方法和用于提供信息的方法
US8584206B2 (en) 2007-02-16 2013-11-12 Lg Electronics Inc. Method for managing domain using multi domain manager and domain system
US7877644B2 (en) * 2007-04-19 2011-01-25 International Business Machines Corporation Computer application performance optimization system
PL2300904T3 (pl) * 2008-05-08 2013-06-28 V S K Electronics System i sposób sekwencyjnego rejestrowania i archiwizowania wielko-rozmiarowych danych wideo
US8874868B2 (en) * 2010-05-19 2014-10-28 Cleversafe, Inc. Memory utilization balancing in a dispersed storage network
US8983902B2 (en) * 2010-12-10 2015-03-17 Sap Se Transparent caching of configuration data
US8949293B2 (en) * 2010-12-17 2015-02-03 Microsoft Corporation Automatically matching data sets with storage components
JP6180830B2 (ja) * 2012-09-07 2017-08-16 セイコーインスツル株式会社 ステッピングモータ制御回路、ムーブメント及びアナログ電子時計
WO2017015961A1 (zh) 2015-07-30 2017-02-02 华为技术有限公司 一种用于双活数据中心的仲裁方法、装置及系统
CN110262892B (zh) * 2019-05-13 2020-02-14 特斯联(北京)科技有限公司 一种基于分布式存储数据链的票务发布方法、装置及数据链节点
CN113553216B (zh) * 2021-06-28 2024-06-28 北京百度网讯科技有限公司 数据恢复方法、装置、电子设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528624A (en) * 1981-03-25 1985-07-09 International Business Machines Corporation Method and apparatus for allocating memory space based upon free space in diverse memory devices
US5526358A (en) * 1994-08-19 1996-06-11 Peerlogic, Inc. Node management in scalable distributed computing enviroment
US5897661A (en) * 1997-02-25 1999-04-27 International Business Machines Corporation Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information
US6298419B1 (en) * 1998-03-26 2001-10-02 Compaq Computer Corporation Protocol for software distributed shared memory with memory scaling
US6363416B1 (en) * 1998-08-28 2002-03-26 3Com Corporation System and method for automatic election of a representative node within a communications network with built-in redundancy
JP2000163288A (ja) * 1998-11-30 2000-06-16 Nec Corp データ記憶システム、データ再配置方法及び記録媒体
US6957254B1 (en) * 1999-10-21 2005-10-18 Sun Microsystems, Inc Method and apparatus for reaching agreement between nodes in a distributed system
WO2001082678A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Cluster membership monitor
DE10049498A1 (de) * 2000-10-06 2002-04-11 Philips Corp Intellectual Pty Virtuelles Speichergerät für ein digitales Hausnetz
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US6990667B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US6883065B1 (en) * 2001-11-15 2005-04-19 Xiotech Corporation System and method for a redundant communication channel via storage area network back-end
US7007047B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
US7185163B1 (en) * 2003-09-03 2007-02-27 Veritas Operating Corporation Balancing most frequently used file system clusters across a plurality of disks
US7383313B2 (en) * 2003-11-05 2008-06-03 Hitachi, Ltd. Apparatus and method of heartbeat mechanism using remote mirroring link for multiple storage system
JP4568502B2 (ja) * 2004-01-09 2010-10-27 株式会社日立製作所 情報処理システムおよび管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101511098B1 (ko) * 2011-10-10 2015-04-10 네이버 주식회사 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법

Also Published As

Publication number Publication date
EP1810125A2 (en) 2007-07-25
WO2006030339A2 (en) 2006-03-23
CN101019097A (zh) 2007-08-15
JP2008512759A (ja) 2008-04-24
US20070266198A1 (en) 2007-11-15
WO2006030339A3 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
KR20070055590A (ko) 분산된 저장 시스템을 관리하는 방법
US7130970B2 (en) Dynamic storage device pooling in a computer system
US9940209B2 (en) SVC cluster configuration node failover
US7080219B2 (en) Storage controlling device and control method for a storage controlling device
US8028127B2 (en) Automated on-line capacity expansion method for storage device
US7287116B2 (en) Storage virtualization system and method having a virtualization switch
JP4452064B2 (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US20080184000A1 (en) Storage module and capacity pool free capacity adjustment method
US20080127199A1 (en) Storage sub-system, host computer, storage system, load balancing method and load balancing program
CN104137085A (zh) 集群环境中用于控制客户端对服务的访问的方法
CN1797343A (zh) 在存储区域网络中安装远程引导的操作系统的系统和方法
CN107291395B (zh) 一种lun在线扩容方法及系统
WO2016082078A1 (zh) 路径管理的系统、装置和方法
JP2004240563A (ja) ディスク制御装置およびディスク制御装置の制御方法
US20140237306A1 (en) Management device, management method, and medium
US20070180452A1 (en) Load distributing system and method
US8819481B2 (en) Managing storage providers in a clustered appliance environment
CN114553900B (zh) 一种分布式块存储管理系统、方法及电子设备
JP2003296154A (ja) ボリューム統合管理方法および統合管理システム
JP2000339186A (ja) クラスタシステム監視端末の自動再接続方法および自動再接続システム
JP4910274B2 (ja) プログラム及びサーバ装置
JP4090216B2 (ja) ディスクボリュームの管理方法及びその装置
JP2005011210A (ja) ディスク装置の割り当て制御装置及び割り当て制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid