KR20100014909A - 분산 스토리지 시스템 - Google Patents

분산 스토리지 시스템 Download PDF

Info

Publication number
KR20100014909A
KR20100014909A KR1020097018501A KR20097018501A KR20100014909A KR 20100014909 A KR20100014909 A KR 20100014909A KR 1020097018501 A KR1020097018501 A KR 1020097018501A KR 20097018501 A KR20097018501 A KR 20097018501A KR 20100014909 A KR20100014909 A KR 20100014909A
Authority
KR
South Korea
Prior art keywords
storage device
node list
interface processor
interface
file
Prior art date
Application number
KR1020097018501A
Other languages
English (en)
Other versions
KR101303989B1 (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 KR20100014909A publication Critical patent/KR20100014909A/ko
Application granted granted Critical
Publication of KR101303989B1 publication Critical patent/KR101303989B1/ko

Links

Images

Classifications

    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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]
    • 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/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

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

Abstract

관리 공정 수의 증가를 최저한으로 억제하면서 신뢰성 및 연속 가동성을 향상시킬 수가 있는 분산 스토리지 시스템을 제공한다.
분산 스토리지 시스템(100)은 데이터를 격납하는 스토리지 디바이스(31~39)와 사용자 단말(10)로부터의 요구에 따라 스토리지 디바이스(31~39)를 제어하는 인터페이스 프로세서(21~25)를 포함한다. 이들은 각각 스토리지 디바이스(31~39) 가운데 적어도 1개의 IP주소를 포함하는 노드 리스트를 격납한다. 인터페이스 프로세서(21~29)는, 이 노드 리스트에 따라 스토리지 디바이스(31~39)를 제어한다. 스토리지 디바이스(31~39)는 매회 다른 인터페이스 프로세서에 노드 리스트를 요구하고, 요구를 받은 인터페이스 프로세서는 요구해 온 스토리지 디바이스의 IP주소를 자신의 노드 리스트에 추가한다.
신뢰성, 가동성, 분산 스토리지, 디바이스, 인터페이스, 노드 리스트, IP주소

Description

분산 스토리지 시스템{DISTRIBUTED STORAGE SYSTEM}
본 발명은 분산 스토리지 시스템에 관한 것이다.
네트워크 상에서 데이터를 관리하는 스토리지(storage) 시스템으로서 일괄 관리형 네트워크 파일 시스템이 종래로부터 알려져 있다. 도 10에 종래로부터 이용되어 온 일괄 관리형 네트워크 파일 시스템의 개략도를 나타낸다. 일괄 관리형 네트워크 파일 시스템이라는 것은 복수의 사용자 단말(클라이언트)(202)과는 별개로 데이터를 보관하는 파일 서버(201)를 설치하고, 각 사용자 단말(202)은 이 파일 서버(201) 내의 파일을 이용하는 방식이다. 관리 기능, 관리 정보는 파일 서버(201)가 보유한다. 파일 서버(201)와 사용자 단말(202)은 통신 네트워크(203)를 통해 접속된다.
이러한 구성에서는 파일 서버(201)에 장해가 발생한 경우, 복구까지 모든 자원에 액세스(access)를 할 수가 없고, 장해에 대해 매우 약한 시스템으로서의 신뢰성이 낮다고 하는 문제가 있다.
이러하는 문제를 회피하기 위한 시스템으로서 분산 스토리지 시스템이 알려져 있다. 분산 스토리지 시스템의 예는 특허 문헌 1에 나타나 있다. 도 11에 그 구성예를 나타낸다. 분산 관리형 네트워크 파일 시스템은 네트워크(302)와 거기에 접 속되는 복수의 사용자 단말(클라이언트(client))(301)로 구성된다.
각 사용자 단말(301)은 자기의 스토리지 내에 파일 공유 영역(301a)을 설치하고, 당해 사용자 단말(301)이 관리하는 마스터 파일(master file), 다른 사용자 단말(301)이 관리하는 마스터 파일의 카피(copy)인 캐쉬 파일(cache file), 통신 네트워크(302) 상에 점재하는 각각의 파일의 정보를 파악하기 위해서 필요한 관리 정보가 들어가 있는 관리 정보 테이블을 가진다. 각각의 사용자 단말(301)은 다른 사용자 단말(301)과 적어도 1개 이상의 참조 관계를 맺고, 이 참조 관계를 통해서 관리 정보를 교환, 수정을 행한다. 이들의 작업을 네트워크 상의 모든 사용자 단말(301)이 마찬가지로 행하고, 정보가 순차 전파함으로써 시간이 지나면 수속(收束)하고, 모든 사용자 단말(301)이 같은 관리 정보를 보유할 수가 있다. 사용자가 실제로 파일에 액세스 할 때에는, 자기가 보유하고 있는 관리 정보 테이블에서 관리 정보를 취득하고, 액세스(access) 하고 싶은 파일을 소유하고 있는 사용자 단말(301)(캐쉬 클라이언트(cache client))을 선택한다. 다음에, 마스터 클라이언트로 되는 사용자 단말(301) 및 캐쉬 클라이언트로부터 파일 정보를 입수, 비교하여 일치하면 선택한 사용자 단말로부터 당해 파일을 입수하고, 불일치하면 마스터 클라이언트로부터 당해 파일을 입수한다. 또, 불일치의 경우에는, 캐쉬 클라이언트에 불일치인 것을 통지한다. 통지를 받은 캐쉬 클라이언트는 당해 파일의 삭제, 마스터 클라이언트로부터 당해 파일의 입수, 관리 정보 테이블의 변경 등의 처리를 행한다.
  <특허 문헌 1> 일본국 특허공개 2002-324004호 공보
<발명이 해결하고자 하는 과제>
그렇지만, 종래의 분산 스토리지 시스템에서는, 신뢰성의 향상과 교환에 관리가 복잡하게 되고, 이것에 수반하여 여러 가지 문제가 발생하고 있었다.
예를 들면, 특허 문헌 1과 같은 구성에서는 신뢰성 향상을 위해 파일의 카피를 복수 격납해 둘 필요가 있기 때문에, 대용량 스토리지를 구축하기 위해서는 다수의 사용자 단말(301)이 필요하고, 사용자 단말(301)의 수가 증가하면 증가할수록 관리 정보가 수속될 때까지의 시간이 증대한다. 또, 각 사용자 단말(301)간에 관리 정보 및 실체 파일의 교환이 발생하기 때문에, 사용자 단말(301)의 하드웨어 자원을 소비함과 아울러, 네트워크 부하가 증대하게 된다.
이 발명은, 이러하는 문제점을 해결하기 위해서 이루어진 것으로, 관리 공정 수의 증가를 최저한으로 억제하면서, 신뢰성 및 연속 가동성을 향상시킬 수가 있는 분산 스토리지 시스템을 제공하는 것을 목적으로 한다.
<과제를 해결하기 위한 수단>
상술의 문제점을 해결하기 위해, 이 발명과 관련되는 분산 스토리지 시스템은, 데이터를 격납하는 복수의 스토리지 디바이스와, 스토리지 디바이스의 제어를 행하는 복수의 인터페이스 프로세서를 포함하고, 인터페이스 프로세서 및 스토리지 디바이스는 통신 네트워크를 통해 IP프로토콜에 따라 서로 통신 가능하고, 인터페이스 프로세서는 각각 통신 네트워크에 있어서의 스토리지 디바이스의 적어도 1개의 IP주소를 포함하는 노드 리스트(node list)를 격납하고, 스토리지 디바이스는 복수의 다른 인터페이스 프로세서에 대해 노드 리스트를 요구하고, 요구된 인터페이스 프로세서는 요구한 스토리지 디바이스에 노드 리스트를 송신함과 아울러, 요구한 스토리지 디바이스의 IP주소를 노드 리스트에 추가한다.
분산 스토리지 시스템은 또한 통신 네트워크에 접속된 DNS 서버를 포함하고, DNS 서버는 소정의 호스트명(host name)과 복수의 인터페이스 프로세서의 각각의 IP주소를 관련지어 기억함과 아울러, 소정의 호스트명의 조회에 대해 복수의 인터페이스 프로세서의 IP주소의 하나를 순회적으로 통지하고, 스토리지 디바이스는 DNS 서버에 대해 소정의 호스트명의 조회를 행하고, 통지된 인터페이스 프로세서의 IP주소에 기초하여 노드 리스트의 요구를 해도 좋다.
인터페이스 프로세서는 노드 리스트에 포함되는 스토리지 디바이스의 IP주소와 시각을 나타내는 정보를 관련지어 격납함과 아울러, 소정의 조건에 따라 가장 낡은 시각을 나타내는 정보와 관련지어진 스토리지 디바이스의 IP주소를 노드 리스트로부터 삭제해도 좋다.
복수의 스토리지 디바이스의 각각은 다른 스토리지 디바이스의 적어도 1개의 IP주소를 포함하는 노드 리스트를 격납하고, 인터페이스 프로세서 및 스토리지 디바이스는 각각 자신의 노드 리스트에 포함되는 스토리지 디바이스에 대해 스토리지 디바이스의 제어에 관한 정보의 송신을 해도 좋다.
1개의 스토리지 디바이스와 1개의 스토리지 디바이스의 노드 리스트에 포함되는 다른 스토리지 디바이스에 있어서, 1개의 스토리지 디바이스는 자신의 노드 리스트로부터 다른 스토리지 디바이스를 삭제하고, 다른 스토리지 디바이스는 자신의 노드 리스트에 1개의 스토리지 디바이스를 추가하고, 1개의 스토리지 디바이스 및 다른 스토리지 디바이스는 각각의 노드 리스트에 포함되는 1개의 스토리지 디바이스 및 다른 스토리지 디바이스를 제외한 모든 스토리지 디바이스를 교환해도 좋다.
스토리지 디바이스는 인터페이스 프로세서로부터 송신된 노드 리스트에 따라 자신의 노드 리스트를 갱신해도 좋다.
인터페이스 프로세서는 외부로부터의 데이터의 써넣기 요구를 수신하면, 다른 인터페이스 프로세서와의 사이에서, 그 데이터의 써넣기 허가에 관한 정보의 송수신을 하고, 써넣기 요구를 수신한 인터페이스 프로세서는 써넣기 허가에 관한 정보의 송수신의 결과에 따라 스토리지 디바이스에 대해 데이터의 격납을 지시하거나 혹은 지시하지 않아도 된다.
<발명의 효과>
이 발명과 관련되는 분산 스토리지 시스템에 의하면, 각 스토리지 디바이스의 IP주소가 각각 복수의 인터페이스 프로세서의 노드 리스트에 포함되므로, 인터페이스 프로세서 중 한쪽이 가동하고 있지 않는 상태라도 나머지의 인터페이스 프로세서를 사용하여 파일의 써넣기 및 읽어들이기를 할 수가 있어 관리 공정 수의 증가를 최저한으로 억제하면서 신뢰성 및 연속 가동성을 향상시킬 수가 있다.
도 1은 본 발명과 관련되는 분산 스토리지 시스템을 포함하는 구성을 나타내는 도이다.
도 2는 도 1의 인터페이스 프로세서 및 스토리지 디바이스의 논리적인 접속 상태를 설명하는 그래프이다.
도 3은 도 2의 그래프를 나타내는 노드 리스트의 예이다.
도 4는 인터페이스 프로세서가 데이터를 소실 정정 부호화 하는 순서를 나타내는 도이다.
도 5는 스토리지 디바이스 및 인터페이스 프로세서가 각각의 노드 리스트를 갱신할 때의 처리의 흐름을 나타내는 플로차트이다.
도 6은 도 5의 스텝 S103a 및 S103b에 있어서의 갱신 처리를 설명하는 도이다.
도 7은 도 1의 분산 스토리지 시스템이 사용자 단말로부터 파일을 수신하여 격납할 때의 동작을 포함하는 처리의 흐름을 나타내는 플로차트이다.
도 8은 도 1의 분산 스토리지 시스템이 사용자 단말로부터 파일 읽어들이기 요구를 수신하여 파일을 송신할 때의 동작을 포함하는 처리의 흐름을 나타내는 플로차트이다.
도 9는 도 1의 분산 스토리지 시스템이 사용자 단말로부터 파일을 수신하여 격납할 때에 행하는 배타(排他) 제어 처리의 흐름을 나타내는 플로차트이다.
도 10은 종래의 일괄 관리형 네트워크 파일 시스템의 개략도이다.
도 11은 종래의 분산 관리형 네트워크 파일 시스템의 개략도이다.
이하, 이 발명의 실시의 형태를 첨부 도면에 기초하여 설명한다.
<실시의 형태 1>
 도 1에 본 발명과 관련되는 분산 스토리지 시스템(100)을 포함한 구성을 나타낸다. 분산 스토리지 시스템(100)은 공중 통신 네트워크인 인터넷(51)을 통해 분산 스토리지 시스템(100)의 이용자가 사용하는 컴퓨터인 사용자 단말(10)과 통신 가능하게 접속되어 있다.
분산 스토리지 시스템(100)은 데이터를 격납하는 스토리지 디바이스군(storage device group)(30)과 사용자 단말(10)로부터의 요구에 따라 스토리지 디바이스군(30)을 제어하는 인터페이스 프로세서군(interface processor group)(20)을 포함한다. 인터페이스 프로세서군(20) 및 스토리지 디바이스군(30)은 통신 네트워크인 LAN(Local Area Network)(52)를 통해 서로 통신 가능하게 접속된다.
인터페이스 프로세서군(20)은 복수의 인터페이스 프로세서를 포함한다. 본 실시의 형태에서는 5대의 인터페이스 프로세서(21~25)가 도시되어 있지만 이것과는 다른 수여도 좋다.
스토리지 디바이스군(30)은 복수의 스토리지 디바이스를 포함한다. 스토리지 디바이스의 수는 예를 들면 1000대이지만 간명(簡明)을 위해 본 실시의 형태에서는 9대의 스토리지 디바이스(31~39)만을 사용하여 설명한다.
사용자 단말(10), 인터페이스 프로세서(21~25), 및 스토리지 디바이스(31~39)는 각각 주지의 컴퓨터로서의 구성을 가지고, 외부로부터의 입력을 수취하는 입력 수단과, 외부로의 출력을 행하는 출력 수단과, 연산을 행하는 연산 수단 과, 정보를 격납하는 기억 수단을 구비한다. 입력 수단은 키보드 및 마우스를 포함하고, 출력 수단은 디스플레이 및 프린터를 포함하고, 연산 수단은 CPU(Central Processing Unit)를 포함하고, 기억 수단은 메모리 및 HDD(Hard Disk Drive)를 포함한다. 또, 이들의 컴퓨터는 각각의 기억 수단에 격납된 프로그램을 실행함으로써 본 명세서에 설명되는 기능을 실현한다.
사용자 단말(10)은 인터넷(51)에 대한 입출력 수단인 네트워크 카드(card)를 구비한다. 스토리지 디바이스(31~39)는 각각 LAN(52)에 대한 입출력 수단인 네트워크 카드를 구비한다. 인터페이스 프로세서(21~25)는 각각 2개의 네트워크 카드를 구비하고, 이 중 한쪽은 인터넷(51)에 대한 입출력 수단이고, 다른 한쪽은 LAN(52)에 대한 입출력 수단이다.
사용자 단말(10), 인터페이스 프로세서(21~25), 및 스토리지 디바이스(31~39)는 각각 네트워크 카드에 대응하는 IP주소가 부여된다.
예로서 LAN(52)에 대해 인터페이스 프로세서(21~25) 및 스토리지 디바이스(31~39)의 IP주소는 다음과 같이 지정되고 있다.
 인터페이스 프로세서(21) : 192. 168. 10.21
 인터페이스 프로세서(22) : 192. 168. 10.22
 인터페이스 프로세서(23) : 192. 168. 10.23
 인터페이스 프로세서(24) : 192. 168. 10.24
 인터페이스 프로세서(25) : 192. 168. 10.25
 스토리지 디바이스(31) :  192. 168. 10.31
 스토리지 디바이스(32) :  192. 168. 10.32
 스토리지 디바이스(33) :  192. 168. 10.33
 스토리지 디바이스(34) :  192. 168. 10.34
 스토리지 디바이스(35) :  192. 168. 10.35
 스토리지 디바이스(36) :  192. 168. 10.36
 스토리지 디바이스(37) :  192. 168. 10.37
 스토리지 디바이스(38) :  192. 168. 10.38
 스토리지 디바이스(39) :  192. 168. 10.39
마찬가지로 인터넷(51)에 대해 사용자 단말(10) 및 인터페이스 프로세서(21~25)에 IP주소가 지정된다. 구체적인 예는 생략하지만 이들은 서로 다른 것이면 좋다.
인터넷(51)에는 주지의 구성을 가지는 DNS 서버인 DNS 서버(41)가 통신 가능하게 접속된다. DNS 서버(41)는 단일의 호스트명과 인터페이스 프로세서(21~25) 각각의 인터넷(51)에 있어서의 IP주소를 관련지어 기억하고, 이른바 라운드로빈(round robin) DNS 방식에 따라 동작한다. 즉, 사용자 단말(10)로부터의 이 단일의 호스트명에 관한 조회에 대해 인터페이스 프로세서(21~25)에 각각 대응하는 합계 5개의 IP주소를 차례로 순회적으로 통지한다.
마찬가지로 LAN(52)에는 주지의 구성을 가지는 DNS 서버인 DNS 서버(42)가 통신 가능하게 접속된다. DNS 서버(42)는 단일의 호스트명과 인터페이스 프로세서(21~25) 각각의 LAN(52)에 있어서의 IP주소를 관련지어 기억한다. DNS 서버(42) 는 스토리지 디바이스(31~39)로부터의 이 단일의 호스트명에 관한 조회에 대해 라운드로빈 DNS 방식에 따라 인터페이스 프로세서(21~25)의 IP주소를 차례로 통지한다.
도 2는 도 1의 인터페이스 프로세서(21~25) 및 스토리지 디바이스(31~39)의 논리적인 접속 상태를 설명하는 그래프이다. 이 논리적인 접속 상태는 인터페이스 프로세서(21~25) 및 스토리지 디바이스(31~39)를 나타내는 노드와, 노드간을 연결하는, 방향을 가진 변으로 이루어지는 유향(directed) 그래프로서 나타난다. 또, 간명을 위해 도 2에는 인터페이스 프로세서로서 인터페이스 프로세서(21)만을 나타내지만, 실제로는 다른 인터페이스 프로세서(22~25)도 이 그래프에 포함된다.
이 그래프는 인터페이스 프로세서(21)(22~25도 마찬가지임)로부터 스토리지 디바이스(31~39)의 적어도 1개, 예를 들면 스토리지 디바이스(31, 36, 37, 및 38)로 향하는 변(邊)을 가진다. 한편, 그 역, 즉 스토리지 디바이스(31~39)로부터 인터페이스 프로세서(21)(22~25도 마찬가지임)로 향하는 변은 가지지 않는다. 또, 각 스토리지 디바이스간에서는 변을 가지지 않는 경우도 있고, 한 방향만의 변을 가지는 경우도 있고, 쌍방향의 변을 가지는 경우도 있다.
또, 이 그래프는 고정된 것은 아니고 분산 스토리지 시스템(100)의 동작에 따라 변화하지만 이에 대해서는 후술한다.
분산 스토리지 시스템(100)에 있어서 논리적인 접속 상태는 노드마다 작성되는 노드 리스트의 집합으로서 나타내진다.
도 3은 도 2의 그래프를 나타내는 노드 리스트의 예이다. 어느 노드로부터 다른 노드로 향하는 변이 존재하는 경우, 변의 시점으로 되는 노드의 노드 리스트는 변의 종점이 되는 노드를 나타내는 정보, 예를 들면 LAN(52)에 있어서의 IP주소를 포함한다.
도 3(a)은 도 2에 있어서의 인터페이스 프로세서(21)(IP주소 192. 168. 10.21을 가짐)에 대해 작성된 노드 리스트를 나타낸다. 이 노드 리스트는 인터페이스 프로세서(21)의 기억 수단에 격납된다. 이 노드 리스트에는 스토리지 디바이스(31, 36, 37, 및 38)를 나타내는 IP주소가 포함된다.
마찬가지로 도 3(b)은 도 2에 있어서의 스토리지 디바이스(31)(IP주소 192. 168. 10.31을 가짐)에 대해 작성된 노드 리스트를 나타낸다. 이 노드 리스트는 스토리지 디바이스(31)의 기억 수단에 격납된다. 이 노드 리스트에는 스토리지 디바이스(32, 34, 및 35)를 나타내는 IP주소가 포함된다.
인터페이스 프로세서(21~25)는 각각 주지의 방법으로 데이터를 소실 정정 부호화 하는 기능을 가진다.
도 4는 인터페이스 프로세서(21)(22~25도 마찬가지)가 데이터를 소실 정정 부호화 하는 순서를 나타낸다. (a)는 원래 데이터를 나타내고, 정보가 1개의 덩어리로서 주어진 상태를 나타낸다. 인터페이스 프로세서(21)는 원래 데이터를 분할하여 복수의 정보 패킷을 작성한다. (b)는 예를 들면 100개의 정보 패킷이 작성된 상태를 나타낸다. 또한, 인터페이스 프로세서(21)는 정보 패킷을 용장화(redundancy) 하여 보다 다수의 부호화 데이터 파일을 작성한다. (c)는 예를 들면 150개의 부호화 데이터 파일이 작성된 상태를 나타낸다.
이 150개의 부호화 데이터 파일은 예를 들면 그 중 임의의 105개가 수집되면 원래 데이터가 복원 가능하게 되도록 구성된다. 이러한 부호화 및 복호화의 방법은 주지의 소실 정정 부호 또는 오류 정정 코드(ECC) 등의 기술에 기초하는 것이고, 부호화 데이터 파일의 수나 원래 데이터의 복원에 필요한 부호화 데이터 파일의 최소 개수는 적당히 변경이 가능하다.
인터페이스 프로세서(21)는 그 기억 수단에 이러한 부호화 및 복호화를 행하기 위한 프로그램을 격납하고, 이것을 실행함으로써 부호화 수단 및 복호화 수단으로서 기능한다.
분산 스토리지 시스템(100)은 도 2에 예시되는 논리적인 접속 상태를 동적으로 갱신하는 기능을 가진다.
도 5 및 도 6은 스토리지 디바이스(31~39) 및 인터페이스 프로세서(21~25)가 각각의 노드 리스트를 갱신할 때의 처리의 흐름을 설명하는 도이다.
각 스토리지 디바이스, 이하 예로서 스토리지 디바이스(31)는 소정의 타이밍으로, 예를 들면 2분 간격으로, 도 5의 플로차트의 실행을 개시한다. 이 실행을 개시한 스토리지 디바이스가 갱신 처리를 개시한 스토리지 디바이스로 된다.
우선, 스토리지 디바이스(31)는 자신의 노드 리스트에 존재하는 노드중 1개를 갱신 처리의 대상으로 하여 선택한다(스텝 S101a). 여기에서는, 과거에 1번도 선택되어 있지 않은 노드 또는 가장 장시간 선택되어 있지 않은 노드가 1개 선택된다. 조건에 적합한 노드가 복수 존재하는 경우는, 그 중에서 랜덤(random)하게 선택된다. 도시하지 않지만, 선택된 노드의 IP주소는 그 시점의 시각의 타임 스탬 프(time stamp)와 관련지어 기억되고, 다음번의 처리에 있어서의 선택 기준으로서 참조된다. 또, 변형예로서 IP주소와 타임 스탬프의 관련지음을 행하지 않는 구성으로 해도 좋다. 그 경우는, 스텝 S101a에 있어서의 노드의 선택에 있어서 노드 리스트에 포함되는 노드 중에서 랜덤하게 1개의 노드가 선택된다.
여기에서는, 예로서 스토리지 디바이스(32)가 선택된 것으로 한다.
다음에, 스토리지 디바이스(31)는 선택된 노드에 그 노드가 갱신 처리의 대상으로 하여 선택된 것을 나타내는 노드 교환 메세지를 송신한다(스텝 S102a). 스토리지 디바이스(32)는 이 노드 교환 메세지를 수신하고(스텝 S102b), 스토리지 디바이스(31)에 의한 갱신 처리의 대상으로 하여 선택된 것을 인식한다.
 다음에, 스토리지 디바이스(31 및 32)는, 상호 접속 정보의 다듬기(pruning)를 실행하여 노드 리스트를 갱신한다(스텝 S103a 및 S103b).
도 6은 스텝 S103a 및 S103b에 있어서의 갱신 처리를 설명하는 도이다. (x)는 이들의 스텝이 개시되기 전의 스토리지 디바이스(31 및 32)의 노드 리스트를 나타낸다. 이것은 도 2의 접속 상태에 대응한다. 스토리지 디바이스(31)의 노드 리스트에는 스토리지 디바이스(32, 34, 및 35)가 포함되어 있고, 스토리지 디바이스(32)의 노드 리스트에는 스토리지 디바이스(33)만이 포함되어 있다.
스텝 S103a 및 S103b에 있어서, 우선 스토리지 디바이스(31 및 32)는 갱신 처리를 개시한 스토리지 디바이스(31)로부터 갱신 처리의 대상으로 하여 선택된 스토리지 디바이스(32)로 향하는 변의 방향을 역전한다. 즉, 스토리지 디바이스(31)의 노드 리스트로부터는 스토리지 디바이스(32)가 삭제되고, 한편 스토리지 디바이 스(32)의 노드 리스트에는 스토리지 디바이스(31)가 추가된다(스토리지 디바이스(31)가 이전부터 존재하고 있었을 경우는 변경되지 않는다). 이 시점에서 노드 리스트는 도 6(y)에 나타내는 내용으로 된다.
또한, 스토리지 디바이스(31 및 32)는 노드 리스트의 다른 노드를 교환한다. 스토리지 디바이스(31)의 노드 리스트로부터는 스토리지 디바이스(34 및 35)가 삭제되고, 이들은 스토리지 디바이스(32)의 노드 리스트에 추가된다. 또, 스토리지 디바이스(32)의 노드 리스트로부터는 스토리지 디바이스(33)가 삭제되고, 이것은 스토리지 디바이스(31)의 노드 리스트에 추가된다. 이 시점에서 노드 리스트는 도 6(z)에 나타내는 내용으로 된다.
또, 스텝 S103a 및 S103b에 있어서의 상호 접속 정보의 다듬기에서는 전체 스토리지 디바이스의 노드 리스트에 포함되는 노드의 총수, 즉 도 2의 그래프에 나타난 스토리지 디바이스간의 변의 총수는 변화하지 않는 경우도 있고, 감소하는 경우도 있지만, 증가하는 경우는 없다. 이것은 갱신 처리를 개시한 스토리지 디바이스로부터 갱신 처리의 대상으로 하여 선택된 스토리지 디바이스로 향하는 변은 반드시 삭제되지만, 그 역의 변은 추가되는 경우도 있지만 추가되지 않는 경우(즉, 그 이전부터 존재하고 있는 경우)도 있기 때문이다.
이상과 같이 하여 스토리지 디바이스(31 및 32)는 스텝 S103a 및 S103b의 상호 접속 정보의 다듬기을 실행한다. 그 후 선택된 스토리지 디바이스(32)는 그 처리를 종료한다.
다음에, 스토리지 디바이스(31)는 자신의 노드 리스트에 포함되는 노드 수가 일정한 수 이하, 예를 들면 4이하로 되었는지 어떠했는지를 판정한다(도 5의 스텝 S104a). 노드 수가 일정한 수를 넘고 있는 경우, 스토리지 디바이스(31)는 처리를 종료한다.
노드 수가 일정한 수 이하인 경우, 스토리지 디바이스(31)는 인터페이스 프로세서(21~25)의 어느 쪽인가에 노드 정보, 즉 노드 리스트의 송신을 요구하여 이것을 취득하고, 이것에 포함되는 노드를 자신의 노드 리스트에 추가한다(스텝 S105a). 요구의 대상으로 된 인터페이스 프로세서는 이 요구에 따라 자신의 노드 리스트를 스토리지 디바이스(31)에 송신한다(스텝 S105c). 이 노드 리스트는, 도 3(a)에 나타내듯이, 스토리지 디바이스(31~39) 가운데 적어도 1개의 IP주소를 포함한다.
여기서, 스토리지 디바이스(31)는 소정의 호스트명(host name)을 사용하여 DNS 서버(42)에 조회를 행하고, 얻어진 IP주소를 가지는 인터페이스 프로세서로부터 노드 정보를 취득한다. DNS 서버(42)는 위에서 설명한 바와 같이 라운드로빈 방식에 따라 통지를 행하므로, 스토리지 디바이스(31)는 스텝 S105a가 실행될 때마다 다른 인터페이스 프로세서로부터 노드 정보를 취득하게 된다. 여기에서는 예로서 DNS 서버(42)는 인터페이스 프로세서(21)의 IP주소를 통지하였다고 한다.
다음에, 스토리지 디바이스(31) 및 인터페이스 프로세서(21)는 스텝 S105a 및 S105c의 결과에 따라 각각의 노드 리스트를 갱신한다(스텝 S106a 및 S106b).
여기서, 스토리지 디바이스(31)는, 취득한 노드 가운데, 노드 리스트에 존재하지 않는 노드(자기 자신을 제외하다)를 자신의 노드 리스트에 추가한다.
또, 인터페이스 프로세서(21)는 요구원의 노드인 스토리지 디바이스(31)를 자신의 노드 리스트에 추가한다. 여기서, 인터페이스 프로세서(21)는 추가된 노드에 그것이 추가된 시각을 나타내는 정보, 예를 들면 타임 스탬프(time stamp)를 관련지어 기억한다. 그리고, 소정의 조건이 만족되면, 예를 들면 노드 리스트의 노드가 일정한 수 이상으로 되면, 가장 낡은 타임 스탬프가 관련지어진 것으로부터 차례로 노드 리스트로부터 삭제한다. 또, 변형예로서 인터페이스 프로세서(21)는 노드와 타임 스탬프의 관련지음을 행하지 않는 구성으로 해도 좋다. 그 경우, 노드 리스트로부터 삭제되어야 할 노드의 선택에서는 노드 리스트에 포함되는 노드 중에서 랜덤(random)하게 1개의 노드가 선택된다. 또, 인터페이스 프로세서(21)는 노드 리스트를 순서를 가지는 리스트로서 기억해도 좋다. 즉, 각 노드가 노드 리스트에 추가된 순서를 판정할 수 있는 구성으로 해도 좋다. 그 경우, 노드 리스트로부터 삭제되어야 할 노드의 선택은 노드 리스트에 추가된 순서에 따라 낡은 것으로부터 차례로, 즉 FIFO 방식으로 행해져도 좋다.
이와 같이 하여 분산 스토리지 시스템(100)은 노드간의 논리적인 접속 상태를 동적으로 갱신한다.
또, 도 1에 포함되지 않는 새로운 스토리지 디바이스가 분산 스토리지 시스템(100)에 추가되는 경우, 이 스토리지 디바이스는 우선 인터페이스 프로세서의 어느 쪽으로부터 노드 리스트를 취득하고, 이것을 초기의 노드 리스트로 한다. 즉, 이 경우, 추가된 스토리지 디바이스는 노드 리스트가 비어있기 때문에, 스텝 S101a, S102a, S102b, S103a, S103b는 실행되지 않고, 스텝 S104a에 대해 노드 정 보는 0으로 당연히 일정한 수 이하이기 때문에, 도 5의 스텝 S105a 및 S105c와 S106a 및 S106c가 실행되게 된다.
이와 같이, 도 5 및 도 6으로 설명한 노드 리스트의 갱신을 각 스토리지 디바이스에서 소정의 타이밍으로 반복하여 실행함으로써, 추가한지 얼마 되지 않은 스토리지 디바이스는 변을 가지지 않지만, 이윽고, 한 방향만의 변을 가지는 경우, 쌍방향의 변을 가지는 경우 등, 여러 가지 패턴의 유향(directed) 그래프가 구축된다.
도 7은 분산 스토리지 시스템(100)이, 사용자 단말(10)로부터 파일을 수신하여 격납할 때의 동작을 포함하는 처리의 흐름을 설명하는 플로차트이다.
우선, 사용자 단말(10)이 사용자의 지시에 따라 분산 스토리지 시스템(100)에 격납되어야 할 써넣기 파일을 분산 스토리지 시스템(100)에 송신한다(스텝 S201a).
여기서, 사용자 단말(10)은 소정의 호스트명을 사용하여 DNS 서버(41)에 조회를 행하고, 얻어진 IP주소를 가지는 인터페이스 프로세서에 써넣기 파일을 송신한다. DNS 서버(41)는 위에서 설명한 바와 같이 라운드로빈 방식에 따라 통지를 행하므로, 사용자 단말(10)은 매회 다른 인터페이스 프로세서에 써넣기 파일을 송신하게 된다. 여기에서는, 예로서 인터페이스 프로세서(21)에 써넣기 파일이 송신되었다고 한다.
또, 여기서 당해 파일의 써넣기 처리를 담당해야할 인터페이스 프로세서가 이미 결정되어 있고, 사용자 단말(10)이 그 IP주소를 기억하고 있는 경우는, 사용 자 단말(10)은 DNS 서버(41)에의 조회를 행하지 않고, IP주소를 직접 사용하여 송신을 행한다. 예를 들면, 배타 제어 처리(도 9를 사용하여 후술함)의 결과, 그 파일의 써넣기를 허가하는 토큰(token)을 특정의 인터페이스 프로세서가 취득하고 있는 상태가 그러한 경우에 상당한다.
인터페이스 프로세서(21)는 써넣기 파일을 수신하면(스텝 S201b), 이것을 분할하고, 소실 정정 부호화를 하여 복수의 서브 파일을 작성한다(스텝 S202b). 이것은 도 4를 이용하여 설명한 방법으로 이루어진다.
다음에, 인터페이스 프로세서(21)는 스토리지 디바이스(31~39)에 써넣기 요구를 송신하고(스텝 S203b), 스토리지 디바이스(31~39)는 이것을 수신한다(스텝 S203c). 이 써넣기 요구는 도 2에 나타난 그래프에 따라 인터페이스 프로세서(21)로부터 그 노드 리스트에 나타난 스토리지 디바이스에 송신되고, 또한 그 스토리지 디바이스의 노드 리스트에 나타난 노드 리스트에 송신되고, 이것을 반복하여 스토리지 디바이스간에 전송된다.
이 써넣기 요구는 다음의 데이터를 포함한다.
- 그 써넣기 요구를 송신한 인터페이스 프로세서의 IP주소
- 그 써넣기 요구를 일의적으로 식별하기 위한 메세지 ID
- 그 써넣기 요구가 전송된 횟수를 나타내는 홉프(hop) 수
- 각 스토리지 디바이스가 그 써넣기 요구에 응답해야할 확률을 나타내는 응답 확률
여기서, 홉프 수의 초기값은 예를 들면 1이다. 또, 응답 확률은 인터페이스 프로세서(21)가 전체 스토리지 디바이스의 수와 서브 파일의 수에 기초하여 응답하는 스토리지 디바이스의 수가 서브 파일의 수 이상으로 되는 확률이 충분히 높아지도록 결정된다. 예를 들면, 스토리지 디바이스의 수(미리 지정되어 인터페이스 프로세서(21)의 기억 수단에 격납되어 있음)가 1000대이고, 서브 파일의 수가 150개인 경우, 응답하는 스토리지 디바이스의 수의 기대치가 서브 파일의 수에 동일하게 되도록 하는 데는, 응답 확률을 150/1000=0.15로 하면 좋지만, 응답하는 스토리지 디바이스의 수가 서브 파일의 수 이상으로 되는 확률이 충분히 높아지게 되도록 하는 데는, 예를 들면 20%의 여유도(margin)를 가지고, 응답 확률을 0.15×1.2=0.18로 하면 좋다.
또, 변형예로서 써넣기 요구는 홉프 수를 포함하지 않는 것이어도 좋다.
써넣기 요구의 송수신은 구체적으로는 예를 들면 다음과 같은 알고리즘이 사용된다.
(1) 송신 노드, 예를 들면 인터페이스 프로세서(21)는 자신의 노드 리스트에 포함되는 전체 노드에 써넣기 요구를 송신한다.
(2) 수신 노드, 예를 들면 스토리지 디바이스(31)는 수신한 써넣기 요구의 메세지 ID를 참조하고, 그 써넣기 요구가 기지인지 어떤지, 즉 이미 수신된 것인지 어떤지를 판정한다.
(3) 수신 노드는, 그 써넣기 요구가 기지인 경우, 처리를 종료한다.
(4) 수신 노드는, 그 써넣기 요구가 기지가 아닌 경우, 송신 노드로서 상기(1)와 마찬가지로 그 써넣기 요구를 송신한다. 또, 이때 써넣기 요구의 홉프 수 를 1만 증가시킨다.
이상과 같이 하여 유향(directed) 그래프로 연결된 모든 스토리지 디바이스(31~39)가 써넣기 요구를 수신한다.
다음에, 스토리지 디바이스(31~39)는 각각 수신한 써넣기 요구에 응답할지 어떨지를 결정한다(스텝 S204c). 이 결정은 응답 확률에 따라 랜덤하게 이루어지고, 예를 들면 응답 확률이 0.18이면, 0.18의 확률로 응답하는 것으로 결정하고, 1-0.18=0.82의 확률로 응답하지 않는 것으로 결정한다.
응답하지 않는 것으로 결정하였을 경우, 그 스토리지 디바이스는 처리를 종료한다.
응답하는 것으로 결정하였을 경우, 그 스토리지 디바이스는 써넣기 요구에 포함되어 있는 인터페이스 프로세서의 IP주소, 여기에서는 192. 168. 10.21에 대해 응답을 송신한다(스텝 S205c). 이 응답은 그 스토리지 디바이스의 IP주소를 포함한다.
써넣기 요구의 송신원인 인터페이스 프로세서(21)는 이 응답을 수신하고(스텝 S205b), 응답에 포함된 IP주소에 대해서, 즉 응답한 스토리지 디바이스에 대해 서브 파일을 송신한다(스텝 S206b). 여기서, 1개의 스토리지 디바이스에 대해서는 1개의 서브 파일이 송신된다.
응답한 스토리지 디바이스의 수가 서브 파일의 수보다 많은 경우, 인터페이스 프로세서(21)는 소정의 기준에 따라 스토리지 디바이스를 선택한다. 이 기준은 예를 들면 데이터가 가능한 한 지리적으로 분산되도록, 즉 동일한 거점에 포함되는 스토리지 디바이스의 최대수를 줄이도록 설정된다.
써넣기 요구에 응답한 스토리지 디바이스는 서브 파일을 수신한다(스텝 S206c). 도 7에는 나타나지 않지만, 응답했음에도 불구하고 서브 파일을 수신하지 않았던 스토리지 디바이스는 그 처리를 종료한다.
서브 파일을 수신한 스토리지 디바이스는 그 서브 파일을 자신의 기억 수단에 격납한다(스텝 S207c). 이에 의해 그 서브 파일은 분산 스토리지 시스템(100)에 써넣어진 것으로 된다.
그 후, 각 스토리지 디바이스는 서브 파일 써넣기 종료 통지를 인터페이스 프로세서(21)에 송신한다(스텝 S208c). 인터페이스 프로세서(21)는 서브 파일을 송신한 스토리지 디바이스의 모두로부터 이것을 수신한다(스텝 S208b). 이에 의해 원래 데이터의 전량이 분산 스토리지 시스템(100)에 써넣어진 것으로 된다.
그 후, 인터페이스 프로세서(21)는 사용자 단말(10)에 파일 써넣기 종료 통지를 송신하고(스텝 S209b), 사용자 단말(10)은 이것을 수신하고(스텝 S209a), 파일 써넣기 처리를 종료한다(스텝 S210a).
도 8은 분산 스토리지 시스템(100)이 사용자 단말(10)로부터 파일 읽어들이기 요구를 수신하여 파일을 송신할 때의 동작을 포함하는 처리의 흐름을 설명하는 플로차트이다.
우선, 사용자 단말(10)이 특정의 파일을 읽어들이는 지시를 사용자로부터 수취하고, 이것에 따라 분산 스토리지 시스템(100)에 파일 읽어들이기 요구를 송신한다(스텝 S301a).
여기서, 도 7의 스텝 S201a와 마찬가지로 라운드로빈 방식의 DNS 조회가 이루어진다. 즉, 사용자 단말(10)은 매회 다른 인터페이스 프로세서에 파일 읽어들이기 요구를 송신하게 된다. 여기에서는, 예로서 인터페이스 프로세서(21)에 파일 읽어들이기 요구가 송신되었다고 한다.
인터페이스 프로세서(21)는 파일 읽어들이기 요구를 수신하면(스텝 S301b), 스토리지 디바이스(31~39)에 파일 존재 확인 요구를 송신하고(스텝 S302b), 스토리지 디바이스(31~39)는 이것을 수신한다(스텝 S302c). 이 파일 존재 확인 요구는 도 7의 스텝 S203b에 있어서의 써넣기 요구와 같은 방법으로 송수신된다. 즉, 도 2에 나타난 그래프에 따라 인터페이스 프로세서(21)로부터 그 노드 리스트에 나타난 스토리지 디바이스에 송신되고, 또한 그 스토리지 디바이스의 노드 리스트에 나타난 노드 리스트에 송신되고, 이것을 반복하여 스토리지 디바이스간에 전송된다.
이 파일 존재 확인 요구는 다음의 데이터를 포함한다.
- 파일 읽어들이기 요구의 대상으로 되는 파일을 특정하는 정보, 예를 들면 파일명
- 그 파일 존재 확인 요구를 송신한 인터페이스 프로세서의 IP주소
- 그 파일 존재 확인 요구를 일의적으로 식별하기 위한 메세지 ID
- 그 파일 존재 확인 요구가 전송된 횟수를 나타내는 홉프(hop) 수
여기서, 홉프 수의 초기값은 예를 들면 1이다. 또, 변형예로서 파일 존재 확인 요구는 홉프 수를 포함하지 않는 것이어도 좋다.
다음에, 스토리지 디바이스(31~39)는 각각 해당하는 파일의 서브 파일을 격 납하고 있는지 어떤지를 판정한다(스텝 S303c).
격납하고 있지 않는 경우, 그 스토리지 디바이스는 처리를 종료한다.
격납하고 있는 경우, 그 스토리지 디바이스는 파일 존재 확인 요구에 포함되어 있는 인터페이스 프로세서의 IP주소, 여기에서는 192. 168. 10.21에 대해 파일이 존재하는 것을 나타내는 존재 응답을 송신한다(스텝 S304c). 이 응답은 그 스토리지 디바이스의 IP주소를 포함한다.
파일 존재 확인 요구의 송신원인 인터페이스 프로세서(21)는 이 존재 응답을 수신하고(스텝 S304b), 존재 응답에 포함된 IP주소에 대해서, 즉 응답한 스토리지 디바이스에 대해 서브 파일 읽어들이기 요구를 송신한다(스텝 S305b).
존재 응답을 송신한 스토리지 디바이스는 서브 파일(sub-file) 읽어들이기 요구를 수신하면(스텝 S305c), 그 서브 파일을 자신의 기억 수단으로부터 읽어들이고(스텝 S306c), 인터페이스 프로세서(21)에 송신한다(스텝 S307c).
인터페이스 프로세서(21)는 서브 파일을 송신한 스토리지 디바이스의 적어도 일부로부터 이것을 수신한다(스텝 S307b). 또한, 수신한 복수의 서브 파일에 기초하여 소실 정정 부호의 복호화를 하여 사용자 단말(10)로부터 요구되고 있는 파일을 재구축 한다(스텝 S308b). 이 복호화는 도 4를 이용하여 설명한 부호화 방법에 대응하고 주지의 방법으로 이루어진다. 또, 이 때, 서브 파일은 용장화 되어 있으므로, 모든 서브 파일이 갖추어지지 않아도 원래 파일을 정확하게 복원할 수가 있다.
그 후, 인터페이스 프로세서(21)는 사용자 단말(10)에 복호화된 파일을 송신 하고(스텝 S309b), 사용자 단말(10)은 이것을 수신하고(스텝 S309a), 파일 읽어들이기 처리를 종료한다(스텝 S310a).
도 9는 분산 스토리지 시스템(100)이, 사용자 단말(10)로부터 파일을 수신하여 격납할 때에 행하는 배타 제어 처리의 흐름을 설명하는 플로차트이다. 이 배타 제어 처리는 복수의 인터페이스 프로세서가 동시에 동일한 파일을 써넣기 하는 것을 방지하기 위한 것이다.
이 제어에서는 각 파일에 관련지어지고, 그 파일의 써넣기 허가의 상태를 나타내는 토큰을 사용한다. 1개의 파일에 대해 최대 1대의 인터페이스 프로세서가 그 토큰을 기억 수단에 격납하고, 토큰을 격납하고 있는 인터페이스 프로세서만이 그 파일의 써넣기(신규 파일의 격납 및 기존 파일의 갱신을 포함)를 행할 수가 있다.
우선, 사용자 단말(10)이 사용자의 지시에 따라 파일을 써넣기 하기 위한 써넣기 요구를 분산 스토리지 시스템(100)에 송신한다(스텝 S401a).
여기서, 도 7의 스텝 S203a와 마찬가지로 라운드로빈 방식의 DNS 조회가 이루어진다. 여기에서는, 예로서 인터페이스 프로세서(21)에 파일 써넣기 요구가 송신되었다고 한다.
인터페이스 프로세서(21)는 써넣기 요구를 수신하면(스텝 S401b), 다른 인터페이스 프로세서(22~25)에 배타 제어용의 토큰 취득 요구를 송신한다(스텝 S402b). 이 토큰 취득 요구는 다음의 데이터를 포함한다.
- 그 토큰 취득 요구를 송신한 인터페이스 프로세서의 IP주소
- 그 토큰 취득 요구의 대상으로 되는 파일을 특정하는 정보, 예를 들면 파 일명
- 그 토큰 취득 요구가 작성된 시각을 나타내는 타임 스탬프(time stamp)
다른 인터페이스 프로세서(22~25)는 이 토큰 취득 요구를 수신하고(스텝 S402c), 자기 자신이 당해 파일에 대한 토큰을 취득하고 있는지 어떤지를 판정한다(스텝 S403c).
다른 인터페이스 프로세서(22~25)는 당해 파일에 대한 토큰을 취득하고 있지 않는 것으로 판정하였을 경우, 처리를 종료한다.
당해 파일에 대한 토큰을 취득하고 있다고 판정하였을 경우, 토큰 취득 요구를 송신해 온 인터페이스 프로세서(21)에 대해 토큰이 취득 완료 상태인 것을 나타내는 토큰 취득 거부 응답을 송신한다(스텝 S404c).
인터페이스 프로세서(21)는 토큰 취득 거부 응답을 기다리고, 송신된 것이 있으면 수신한다(스텝 S404b). 여기서, 인터페이스 프로세서(21)는 스텝 S402b의 실행 후 소정 시간, 예를 들면 100ms만 기다리고, 그 사이에 토큰 취득 거부 응답을 받아들인다.
다음에, 인터페이스 프로세서(21)는 스텝 S404b에 있어서, 토큰 취득 거부 응답을 수신하였는지 어떤지를 판정한다(스텝 S405b). 토큰 취득 거부 응답을 수신하였다고 판정되었을 경우, 사용자 단말(10)에 써넣기 불가 통지를 송신하고(스텝 S411b), 사용자 단말(10)은 이 써넣기 불가 통지를 수신한다(스텝 S411a). 이 경우, 사용자 단말(10)은 파일의 써넣기를 실행하지 않고, 사용자에 대해 주지의 방법으로 써넣기 불가의 통지를 행한다. 즉, 사용자 단말(10)은 도 7의 스텝 S201a를 실행하지 않는다.
스텝 S405b에 있어서, 토큰 취득 거부 응답을 수신하고 있지 않는 것으로 판정되었을 경우, 인터페이스 프로세서(21)는 스텝 S401b의 실행 개시부터 스텝 S405b의 실행 완료까지의 동안에, 다른 인터페이스 프로세서(22~25)로부터 토큰 취득 요구를 수신하고 있었는지 어떠했는지를 판정한다(스텝 S406b).
다른 인터페이스 프로세서(22~25)로부터 토큰(token) 취득 요구를 수신하고 있지 않았던 경우, 인터페이스 프로세서(21)는 그 파일에 대한 토큰을 취득한다(스텝 S408b). 즉, 토큰을 작성하여 기억 수단에 격납한다.
다른 인터페이스 프로세서(22~25)로부터 토큰 취득 요구를 수신하고 있었을 경우, 인터페이스 프로세서(21)는 자신이 송신한 토큰 취득 요구와, 그 외로부터 수신한 토큰 취득 요구 모두 사이에, 시각 판정을 행한다(스텝 S407b). 이 판정은 각 토큰 취득 요구에 포함되는 타임 스탬프를 비교하는 것에 의해 이루어진다.
스텝 S407b에 있어서, 자신의 토큰 취득 요구가 가장 빠른 것이었을 경우, 즉 타임 스탬프가 가장 낡은 것이었을 경우, 인터페이스 프로세서(21)는 스텝 S408b로 나아가고, 위에서 설명한 바와 같이 토큰을 취득한다. 그렇지 않은 경우, 인터페이스 프로세서(21)는 스텝 S411b으로 나아가고, 위에서 설명한 바와 같이 써넣기 불가 통지를 송신한다.
스텝 S408b에 있어서, 토큰을 취득한 후, 인터페이스 프로세서(21)는 사용자 단말(10)에 써넣기 가능 통지를 송신하고(스텝 S409b), 사용자 단말(10)은 이 써넣기 가능 통지를 수신한다(스텝 S409a). 이 후 사용자 단말(10)은 써넣기 동작을 실 행한다(스텝 S410a). 즉, 사용자 단말(10)은 도 7의 스텝 S201a를 실행하고, 이것에 수반하여 도 7의 플로차트가 실행된다.
또, 스텝 S408b에 있어서, 취득된 토큰은, 예를 들면 도 7의 스텝 S208b가 완료한 시점에서 해방되고, 인터페이스 프로세서(21)는 그 기억 수단으로부터 토큰을 소거한다.
이상과 같이 동작하는 분산 스토리지 시스템(100)의 처리의 흐름의 예를 이하에 설명한다.
분산 스토리지 시스템(100)이 구성되어 작동함에 수반하여, 인터페이스 프로세서(21~25) 및 스토리지 디바이스(31~39)의 사이에는 도 2에 나타내는 논리적인 접속 상태가 형성된다. 이 접속 상태는 사용자 단말(10)로부터의 지시에 관련되지 않고, 자동적으로, 수시, 도 5에 나타내는 처리에 의해 동적으로 갱신된다. 이에 의해 노드의 어느 쪽인가 또는 노드간의 통신 경로에 장해가 발생한 경우라도 그 장해를 우회하는 경로를 생성할 수 있어 내장해성이 높은 시스템으로 된다.
시간의 경과에 수반하여 도 5의 처리가 반복되고, 따라서 스텝 S103a 및 S103b에 있어서의 상호 접속 정보의 다듬기(pruning)가 반복되면, 각 스토리지 디바이스의 노드 리스트에 포함되는 노드의 수는 점차 감소한다. 즉, 도 2의 그래프는 점차 변의 수가 감소하여 소원한 것으로 된다. 여기서, 도 5의 스텝 S105a에 있어서, 각 스토리지 디바이스의 노드 리스트에 포함되는 노드 정보의 수가 역치(threshold)(예를 들면 4) 이하로 되면, 노드 정보를 추가 취득하여 이것을 증가시킨다. 이 역치의 설정에 의해, 도 2의 그래프의 평균 최단 경로 길이, 즉 인터페 이스 프로세서(21~25)로부터 스토리지 디바이스(31~39)에 메세지가 송신될 때의 평균 홉프 수를 조정할 수가 있다. 이 평균 최단 경로 길이는,
[{ln(N)-γ}/ln(<k>)]+1/2
로 나타내진다. 여기서, N은 노드 수, γ는 오일러(Euler) 정수(약 0.5772), <k>는 노드 리스트에 포함되는 노드 정보의 수의 평균치이고, ln는 자연 대수를 나타낸다.
또, 평균 최단 경로 길이가 측정에 의해 구해지는 경우, 위의 식을 N에 대해 푸는 것에 의해 스토리지 디바이스의 수를 역산하여 구할 수가 있다. 도 7의 스텝 S203b에서는, 써넣기 요구에 포함되는 응답 확률을 결정하기 위해서 인터페이스 프로세서(21)는 스토리지 디바이스의 수를 미리 기억하고 있지만, 변형예로서 이러한 역산에 의해 스토리지 디바이스의 수를 구하는 구성으로 해도 좋다. 또, 그 경우는, 도 7의 스텝 S203b에 있어서의 써넣기 요구 및 도 8의 스텝 S302b에 있어서의 파일 존재 확인 요구를 전송할 때에, 각 스토리지 디바이스는 인터페이스 프로세서(21)에 홉프 수를 통지하고, 인터페이스 프로세서(21)는 이 홉프 수를 전체 스토리지 디바이스에 대해 평균하는 것에 의해 평균 최단 경로 길이의 실측값을 얻는다.
또, 스토리지 디바이스(31~39)가 위에서 설명한 바와 같이 노드 리스트를 요구하면, 요구를 받은 인터페이스 프로세서는 노드 리스트를 송신함과 아울러, 송신을 요구해 온 스토리지 디바이스의 IP주소를 자신의 노드 리스트에 추가한다(스텝 S106c). 여기서, 스토리지 디바이스(31~39)로부터의 인터페이스 프로세서의 IP주소 의 조회에 대해 DNS 서버(42)는 매회 다른 인터페이스 프로세서의 IP주소를 통지하므로, 스토리지 디바이스(31~39)는 매회 다른 인터페이스 프로세서에 노드 리스트를 요구하게 된다. 이에 의해 스토리지 디바이스(31~39) 각각의 IP주소는 각각 복수의 인터페이스 프로세서의 노드 리스트에 포함되게 된다.
여기서, 예를 들면 분산 스토리지 시스템(100)의 사용자가 사용자 단말(10)을 통해 파일명 「ABCD」를 가지는 파일을 분산 스토리지 시스템(100)에 격납하는 것을 지시하였다고 한다. 이것에 따라 분산 스토리지 시스템(100)은 도 9에 나타내는 배타 제어 처리를 실행하고, 예를 들면 인터페이스 프로세서(21)가 파일 ABCD의 토큰을 취득한다. 여기서, 인터페이스 프로세서(21~25)의 각각이 자립적으로 토큰 취득 동작을 행하고, 별개로 토큰을 관리하는 기구를 가지지 않는 구조이기 때문에, 일괄 관리 기구를 가지지 않고 분산 스토리지 시스템(100)을 구축할 수 있다.
인터페이스 프로세서(21)가 토큰을 취득하면, 이것에 이어 사용자 단말(10) 및 분산 스토리지 시스템(100)은 도 7에 나타내는 써넣기 처리를 실행한다. 여기서, 인터페이스 프로세서(21)는 파일 ABCD를 분할하여 100개의 정보 패킷으로 하고, 또한 용장화 하여 150개의 서브 파일로 한다(스텝 S202b). 또한, 인터페이스 프로세서(21)는 응답 확률로서 0.18을 지정한 써넣기 요구를 전체 스토리지 디바이스에 송신한다(스텝 S203b). 이 써넣기 요구는 도 2에 나타내는 것 같은 그래프에 따라 버킷 릴레이(bucket relay) 방식으로 전송된다. 스토리지 디바이스는 각각 지정된 0.18의 확률로 응답을 송신한다(스텝 S205c). 이때 인터페이스 프로세서(21)의 IP주소는 써넣기 요구에 포함되어 있기 때문에, 스토리지 디바이스는 인터페이 스 프로세서(21)(및 다른 인터페이스 프로세서(22~25))의 IP주소를 사전에 알고 있을 필요가 없다.
인터페이스 프로세서(21)는 수신한 응답에 따라 서브 파일의 송신을 하고, 각 스토리지 디바이스는 기억 수단에 서브 파일을 격납한다(스텝 S207c).
여기서, 인터페이스 프로세서(21~25)는 파일 ABCD의 서브 파일이 어느 스토리지 디바이스에 격납되어 있는가라고 하는 관리를 행할 필요가 없기 때문에, 일괄 관리 기구를 가지지 않고 분산 스토리지 시스템(100)을 구축할 수가 있다.
또, 개개의 스토리지 디바이스의 고장, 전원단락, 유지보수, 네트워크 회선의 단선 등의 요인으로 스토리지 디바이스의 일부가 정상적으로 가동하고 있지 않는 경우라도 소실 정정 부호화 기술에 의해 가동하고 있는 나머지의 스토리지 디바이스로부터 필요한 수의 서브 파일을 취득할 수가 있다. 따라서, 원래 파일을 정확하게 복호화 하여 생성할 수가 있어 높은 신뢰성 및 연속 가동성을 달성할 수가 있다.
또, 분산 스토리지 시스템(100)의 사용자는 소망의 시점에서 분산 스토리지 시스템(100)에 격납한 파일 ABCD의 읽어들이기를 사용자 단말(10)을 통해 분산 스토리지 시스템(100)에 지시한다. 이것에 따라 예를 들면 인터페이스 프로세서(21)는 도 8에 나타내듯이 파일 존재 확인을 송신하고(스텝 S302b), 응답이 있던 스토리지 디바이스로부터 서브 파일을 수신한다(스텝 S307b). 여기서, 써넣기 처리시와 마찬가지로 인터페이스 프로세서(21)의 IP주소는 파일 존재 확인 요구에 포함되어 있기 때문에, 스토리지 디바이스는 이것을 사전에 알고 있을 필요가 없다. 또, 인 터페이스 프로세서(21)는 파일 ABCD의 서브 파일이 어느 스토리지 디바이스에 격납되어 있는가라고 하는 관리를 행할 필요가 없기 때문에, 일괄 관리 기구를 가지지 않고 분산 스토리지 시스템(100)을 구축할 수가 있다.
인터페이스 프로세서(21)는 수신한 서브 파일에 기초하여 파일 ABCD를 재구축 하고(스텝 S308b), 이것을 사용자 단말(10)에 송신한다.
이상 설명되듯이, 본 발명과 관련되는 분산 스토리지 시스템(100)에 의하면 인터페이스 프로세서(21~25) 및 스토리지 디바이스(31~39)는 각각 스토리지 디바이스(31~39) 가운데 적어도 1개의 IP주소를 포함하는 노드 리스트를 격납한다. 인터페이스 프로세서(21~29)는 이 노드 리스트에 따라 스토리지 디바이스(31~39)를 제어한다.
여기서, 스토리지 디바이스(31~39)는 매회 다른 인터페이스 프로세서에 노드 리스트를 요구하므로, 스토리지 디바이스(31~39) 각각의 IP주소는 각각 복수의 인터페이스 프로세서의 노드 리스트에 포함되게 된다. 따라서, 인터페이스 프로세서(21~25) 중 한쪽이 가동하고 있지 않는 상태라도 나머지의 인터페이스 프로세서를 사용하여 파일의 써넣기 및 읽어들이기를 할 수가 있어 관리 공정 수의 증가를 최저한으로 억제하면서 신뢰성 및 연속 가동성을 향상시킬 수가 있다.
또, DNS 라운드로빈 방식에 의해 복수의 인터페이스 프로세서(21~25)에 부하를 분산시킬 수가 있으므로, 특정의 인터페이스 프로세서나 그 주변의 네트워크의 부하가 돌출하여 증대하는 사태를 회피할 수 있다.
또, 인터페이스 프로세서(21~25)가 소실 정정 부호화 기술을 이용하여 복수 의 서브 파일을 작성하고, 복수의 스토리지 디바이스가 1개씩 서브 파일을 격납하므로, 스토리지 디바이스(31~39) 중 한쪽이 가동하고 있지 않는 상태라도 나머지의 스토리지 디바이스를 사용해 파일의 읽어들이기를 할 수가 있어 신뢰성 및 연속 가동성을 한층 더 향상시킬 수가 있다.
또, 스토리지 디바이스(31~39) 및 새롭게 추가되는 스토리지 디바이스는 인터페이스 프로세서(21~25)의 노드 리스트를 요구하고, 이것에 따라 자신의 노드 리스트를 자동적으로 갱신 또는 작성하므로, 새로운 스토리지 디바이스의 추가에 수반하는 설정 변경 작업이 불필요하게되어 구성 변경의 공정 수를 저감할 수가 있다. 특히, 새롭게 추가되는 스토리지 디바이스에는 DNS 서버(42)의 IP주소와 인터페이스 프로세서(21~25)가 공유하는 단일의 호스트명만을 기억하게 하면 좋고, 인터페이스 프로세서(21~25) 각각의 다른 IP주소를 기억시킬 필요가 없다.
또, 본 발명과 관련되는 분산 스토리지 시스템(100)에 의하면 종래의 분산 스토리지 시스템과 비교하여 이하와 같은 효과를 얻을 수 있다.
서브 파일은 사용자 단말로부터는 독립한 분산 스토리지 시스템(100)의 내부에 격납되므로, 사용자의 악의 또는 오조작에 의한 영향을 억제할 수가 있다. 또, 격납할 수 있는 파일의 용량을 크게 하는 데는 스토리지 디바이스를 추가하면 좋고, 다수의 사용자 단말을 준비할 필요가 없다. 또, 스토리지 디바이스간에 관리 정보와 같은 정보의 전파가 수속되는 것을 기다릴 필요가 없다. 또한, 인터페이스 프로세서(21~25)는 파일 존재 확인 요구(도 8의 스텝 S302b)에 의해 어느 스토리지 디바이스가 해당하는 서브 파일을 격납하고 있는지를 알 수 있으므로, 파일(및 서 브 파일)과 스토리지 디바이스와의 대응 관계를 관리할 필요가 없다.
또, 사용자 단말(10) 및 인터넷(51)은 분산 스토리지 시스템(100)의 외부에 있으므로, 분산 스토리지 시스템(100) 내부에서의 정보의 송수신에 의한 네트워크 부하의 증대의 영향을 받지 않는다. 또한, 사용자 단말(10)은 스토리지 디바이스(31~39)와는 다른 하드웨어로 구성되므로 파일이나 서브 파일의 송수신이 사용자 단말(10)의 하드웨어 자원을 빼앗아 버리는 것이 없다.
또, 인터페이스 프로세서(21~25)가 토큰에 의한 배타 제어 처리를 행하므로, 동일한 파일에 대해 둘 이상이 동시에 써넣기 처리를 요구하였을 경우라도, 써넣어지는 파일의 정합성을 유지할 수가 있다.
상술의 실시의 형태 1에서는, LAN(52)에는 DNS 서버(42)가 접속되어 스토리지 디바이스(31~39)는 DNS 서버(42)에의 조회에 의해 인터페이스 프로세서(21~29)의 IP주소를 취득하고 있다. 변형예로서 DNS 서버(42)를 설치하지 않고, 각 스토리지 디바이스(31~39)가 전체 인터페이스 프로세서(21~25)의 IP주소를 기억하고 있어도 좋다. 또, 인터페이스 프로세서(21~25)의 IP주소의 범위, 예를 들면 「192. 168. 10.21~192. 168. 10.25」를 나타내는 정보를 기억하고 있어도 좋다. 이 경우, 각 스토리지 디바이스(31~39)는, 도 5의 스텝 S105a에 있어서의 인터페이스 프로세서에의 요구시, 인터페이스 프로세서(21~25)를 순회적으로 선택해도 좋다. 이러한 구성이어도 스토리지 디바이스(31~39) 각각의 IP주소는 각각 복수의 인터페이스 프로세서의 노드 리스트에 포함되므로 실시의 형태 1과 마찬가지로 신뢰성 및 연속 가동성을 향상시킬 수가 있다.

Claims (7)

  1. 데이터를 격납하는 복수의 스토리지 디바이스와,
    상기 스토리지 디바이스의 제어를 행하는 복수의 인터페이스 프로세서를 포함하고,
    상기 인터페이스 프로세서 및 상기 스토리지 디바이스는 통신 네트워크를 통해 IP프로토콜에 따라 서로 통신 가능하고,
    상기 인터페이스 프로세서는 각각 상기 통신 네트워크에 있어서의 상기 스토리지 디바이스의 적어도 1개의 IP주소를 포함하는 노드 리스트를 격납하고,
    상기 스토리지 디바이스는 복수의 다른 상기 인터페이스 프로세서에 대해 상기 노드 리스트를 요구하고,
    상기 요구된 인터페이스 프로세서는 상기 요구한 스토리지 디바이스에 상기 노드 리스트를 송신함과 아울러, 상기 요구한 스토리지 디바이스의 상기 IP주소를 상기 노드 리스트에 추가하는 분산 스토리지 시스템.
  2. 제1항에 있어서,
    상기 분산 스토리지 시스템은 또한 상기 통신 네트워크에 접속된 DNS 서버를 포함하고,
    상기 DNS 서버는 소정의 호스트명과 상기 복수의 인터페이스 프로세서의 각각의 IP주소를 관련지어 기억함과 아울러, 상기 소정의 호스트명의 조회에 대해 상 기 복수의 인터페이스 프로세서의 상기 IP주소의 하나를 순회적으로 통지하고,
    상기 스토리지 디바이스는 상기 DNS 서버에 대해 상기 소정의 호스트명의 조회를 행하고, 상기 통지된 인터페이스 프로세서의 상기 IP주소에 기초하여 상기 노드 리스트의 상기 요구를 행하는 분산 스토리지 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 인터페이스 프로세서는 상기 노드 리스트에 포함되는 상기 스토리지 디바이스의 상기 IP주소와 시각을 나타내는 정보를 관련지어 격납함과 아울러,
    소정의 조건에 따라 가장 낡은 시각을 나타내는 정보가 관련지어진 상기 스토리지 디바이스의 상기 IP주소를 상기 노드 리스트로부터 삭제하는 분산 스토리지 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 스토리지 디바이스의 각각은 다른 상기 스토리지 디바이스의 적어도 1개의 IP주소를 포함하는 노드 리스트를 격납하고,
    상기 인터페이스 프로세서 및 상기 스토리지 디바이스는 각각 자신의 노드 리스트에 포함되는 상기 스토리지 디바이스에 대해 상기 스토리지 디바이스의 상기 제어에 관한 정보의 송신을 행하는 분산 스토리지 시스템.
  5. 제4항에 있어서,
    1개의 상기 스토리지 디바이스와 상기 1개의 스토리지 디바이스의 노드 리스트에 포함되는 다른 상기 스토리지 디바이스에 있어서,
    상기 1개의 스토리지 디바이스는 자신의 노드 리스트로부터 상기 다른 스토리지 디바이스를 삭제하고,
    상기 다른 스토리지 디바이스는 자신의 노드 리스트에 상기 1개의 스토리지 디바이스를 추가하고,
    상기 1개의 스토리지 디바이스 및 상기 다른 스토리지 디바이스는 각각의 노드 리스트에 포함되는 상기 1개의 스토리지 디바이스 및 상기 다른 스토리지 디바이스를 제외한 모든 스토리지 디바이스를 교환하는 분산 스토리지 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 스토리지 디바이스는 상기 인터페이스 프로세서로부터 상기 송신된 노드 리스트에 따라 자신의 노드 리스트를 갱신하는 분산 스토리지 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 인터페이스 프로세서는 외부로부터의 상기 데이터의 써넣기 요구를 수신하면, 다른 상기 인터페이스 프로세서와의 사이에서, 그 데이터의 써넣기 허가에 관한 정보의 송수신을 하고,
    상기 써넣기 요구를 수신한 상기 인터페이스 프로세서는 상기 써넣기 허가에 관한 상기 정보의 상기 송수신의 결과에 따라 상기 스토리지 디바이스에 대해 상기 데이터의 격납을 지시하거나 혹은 지시하지 않는 분산 스토리지 시스템.
KR1020097018501A 2007-03-30 2007-06-21 분산 스토리지 시스템 KR101303989B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2007-092342 2007-03-30
JP2007092342A JP4696089B2 (ja) 2007-03-30 2007-03-30 分散ストレージシステム
PCT/JP2007/062508 WO2008129686A1 (ja) 2007-03-30 2007-06-21 分散ストレージシステム

Publications (2)

Publication Number Publication Date
KR20100014909A true KR20100014909A (ko) 2010-02-11
KR101303989B1 KR101303989B1 (ko) 2013-09-04

Family

ID=39875231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018501A KR101303989B1 (ko) 2007-03-30 2007-06-21 분산 스토리지 시스템

Country Status (5)

Country Link
US (1) US20100115078A1 (ko)
JP (1) JP4696089B2 (ko)
KR (1) KR101303989B1 (ko)
CN (1) CN101663651B (ko)
WO (1) WO2008129686A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
CN102013991B (zh) * 2009-09-08 2012-10-17 华为技术有限公司 自动扩容的方法、管理设备及系统
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
FR2961924A1 (fr) * 2010-06-29 2011-12-30 France Telecom Gestion du lieu de stockage de donnees dans un systeme de stockage distribue
WO2012089701A1 (en) 2010-12-27 2012-07-05 Amplidata Nv A distributed object storage system comprising performance optimizations
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
CN103207867B (zh) * 2012-01-16 2019-04-26 联想(北京)有限公司 处理数据块的方法、发起恢复操作的方法和节点
WO2013107029A1 (zh) 2012-01-19 2013-07-25 华为技术有限公司 一种基于块存储的数据处理方法、装置及系统
US20140122546A1 (en) * 2012-10-30 2014-05-01 Guangdeng D. Liao Tuning for distributed data storage and processing systems
EP2918038B1 (en) 2012-11-12 2017-10-25 Secured2 Corporation Systems and methods of transmitting data
CN103856511B (zh) * 2012-11-30 2018-07-17 腾讯科技(深圳)有限公司 数据包上传方法、客户端、节点、信息服务器及系统
US8903959B2 (en) 2013-01-08 2014-12-02 Lyve Minds, Inc. Storage network data distribution
US9201837B2 (en) 2013-03-13 2015-12-01 Futurewei Technologies, Inc. Disaggregated server architecture for data centers
JP6135226B2 (ja) 2013-03-21 2017-05-31 日本電気株式会社 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム
US9678678B2 (en) 2013-12-20 2017-06-13 Lyve Minds, Inc. Storage network data retrieval
JP6641813B2 (ja) * 2015-09-11 2020-02-05 富士通株式会社 制御装置、情報処理システム、及び制御プログラム
CN107181637B (zh) 2016-03-11 2021-01-29 华为技术有限公司 一种心跳信息发送方法、装置及心跳发送节点
CN107330061B (zh) * 2017-06-29 2021-02-02 苏州浪潮智能科技有限公司 一种基于分布式存储的文件删除方法及装置
CN107329707A (zh) * 2017-07-03 2017-11-07 郑州云海信息技术有限公司 统一存储的多存储设备管理方法、系统及gui管理系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1040419B1 (en) * 1997-12-24 2002-08-07 Avid Technology, Inc. Computer system for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
JP2000148710A (ja) * 1998-11-05 2000-05-30 Victor Co Of Japan Ltd 動画像サーバシステム
US6839750B1 (en) * 2001-03-03 2005-01-04 Emc Corporation Single management point for a storage system or storage area network
JP2002297447A (ja) * 2001-03-29 2002-10-11 Mitsubishi Heavy Ind Ltd コンテンツセキュリティ方式
JP4410963B2 (ja) * 2001-08-28 2010-02-10 日本電気株式会社 コンテンツ動的ミラーリングシステム、
JP2003108537A (ja) * 2001-09-13 2003-04-11 Internatl Business Mach Corp <Ibm> ネットワーク上のサーバに対するサービス要求の負荷分散の方法およびシステム
US7194004B1 (en) * 2002-01-28 2007-03-20 3Com Corporation Method for managing network access
EP2302529B1 (en) * 2003-01-20 2019-12-11 Dell Products, L.P. System and method for distributed block level storage
WO2005010766A1 (ja) * 2003-07-24 2005-02-03 Fujitsu Limited データ格納システム
US7567566B2 (en) * 2003-08-29 2009-07-28 Intel Corporation Method and apparatus to perform aging
GB0322494D0 (en) * 2003-09-25 2003-10-29 British Telecomm Computer networks
JP2006119941A (ja) * 2004-10-22 2006-05-11 Hitachi Ltd 動画像蓄積方法

Also Published As

Publication number Publication date
JP4696089B2 (ja) 2011-06-08
CN101663651B (zh) 2012-06-27
JP2008250767A (ja) 2008-10-16
CN101663651A (zh) 2010-03-03
WO2008129686A1 (ja) 2008-10-30
KR101303989B1 (ko) 2013-09-04
US20100115078A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
KR101303989B1 (ko) 분산 스토리지 시스템
US8463867B2 (en) Distributed storage network
JP5624655B2 (ja) 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
CN109857445A (zh) 存储系统和控制软件配置方法
US8661055B2 (en) File server system and storage control method
JP2019008417A (ja) 情報処理装置、メモリ制御方法およびメモリ制御プログラム
JP2003046569A (ja) 負荷テスト実行装置及びシステム、及びその方法、及びそのプログラム
JP4201447B2 (ja) 分散処理システム
US10382553B2 (en) Zone storage—resilient and efficient storage transactions
JP6943790B2 (ja) セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法
EP2274889B1 (en) System for delivery of content to be played autonomously
CN115065694B (zh) 一种云存储数据中转上传系统、方法、设备及介质
CN115933985A (zh) 一种分布式存储QoS控制方法及系统
US8997124B2 (en) Method for updating data in a distributed data storage system
CN115426251B (zh) 一种云主机的容灾方法、装置及介质
JP5754778B2 (ja) 記憶装置共用システム、管理装置、処理装置、記憶装置共用方法、管理方法、アクセス方法およびプログラム
CN112395263B (zh) 一种osd的数据恢复方法及装置
US11275798B2 (en) Hybrid task assignment for web crawling
KR100416691B1 (ko) 대용량 데이터통신 관리 서버 시스템 및 그를 이용한 방법
JP4774421B2 (ja) 分散処理システム
JP5037546B2 (ja) ネットワークストレージ制御装置、ネットワークストレージシステムおよびネットワークストレージ制御方法
CN117032878A (zh) 一种k8s中的容器保护预算ppb方法
JP2012194996A (ja) ネットワークストレージ制御装置、ネットワークストレージシステムおよびネットワークストレージ制御方法
EP1579348B1 (en) Distributed storage network

Legal Events

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

Payment date: 20160628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170627

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee