KR20120072907A - 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 - Google Patents

오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 Download PDF

Info

Publication number
KR20120072907A
KR20120072907A KR1020100134840A KR20100134840A KR20120072907A KR 20120072907 A KR20120072907 A KR 20120072907A KR 1020100134840 A KR1020100134840 A KR 1020100134840A KR 20100134840 A KR20100134840 A KR 20100134840A KR 20120072907 A KR20120072907 A KR 20120072907A
Authority
KR
South Korea
Prior art keywords
group
client
target data
data node
target
Prior art date
Application number
KR1020100134840A
Other languages
English (en)
Other versions
KR101585146B1 (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 주식회사 케이티
Priority to KR1020100134840A priority Critical patent/KR101585146B1/ko
Priority to PCT/KR2011/008221 priority patent/WO2012086918A2/ko
Priority to US13/336,074 priority patent/US8495013B2/en
Publication of KR20120072907A publication Critical patent/KR20120072907A/ko
Application granted granted Critical
Publication of KR101585146B1 publication Critical patent/KR101585146B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

분산 저장 시스템 및 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법이 개시된다. 분산 저장 방법은 클라이언트를 인증하는 단계, 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성하는 단계, 저장할 대상 오브젝트가 존재할 경우, 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹을 결정하는 지역 그룹 결정 단계, 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하는 대상 데이터 노드 결정 단계, 대상 데이터 노드에 대상 오브젝트를 저장하는 저장 단계, 및 대상 오브젝트의 고유 정보 및 대상 오브젝트가 저장된 데이터 노드의 고유 정보를 이용하여 메타데이터를 갱신하는 메타데이터 갱신 단계를 포함한다. 본 발명에 의하여, 데이터 노드들을 그루핑하기 때문에 실제 복제본들이 안전하게 지역적으로 분산 저장되어 하나의 지역에 문제가 발생할 경우에도 신뢰성이 향상된다. 또한, 클라이어언트의 위치와 물리적으로 가까운 데이터 노드에 오브젝트를 배치함으로서 오브젝트의 저장과 조회 지연을 최소화할 수 있다.

Description

오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체{Distribution storage system of distributively storing objects based on position of plural data nodes, position-based object distributive storing method thereof, and computer-readable recording medium}
본 발명은 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템에 관한 것으로서, 특히, 분산 저장 시스템에서 오브젝트의 업로드 및 다운로드시 지연을 줄이기 위해 클라이언트 및 데이터 노드의 물리적인 위치를 고려하여 최적의 데이터 노드를 선택하여 오브젝트를 배치하는 방법에 관한 것이다.
클라우드 컴퓨팅은 인터넷 망을 통해 여러 가지 IT(Information Technology) 자원들을 분배하여 서비스하는 개념으로 가장 일반적인 서비스 분류로는 첫째, 하드웨어 인프라를 서비스로 제공하는 IaaS(Infrastructure As A Service), 둘째, 응용 개발 및 실행 플랫폼을 서비스로 제공하는 PaaS(Platform As A Service), 그리고 마지막으로 어플리케이션을 서비스로 제공하는 SaaS(Software As A Service)로 나눈다.
IaaS 에는 많은 서비스 카테고리가 있는데, 대표적으로 연산 자원을 가상 머신 형태로 제공하는 연산 서비스와 저장 서비스가 있다. 이러한 분산 저장 시스템은 클라우드 스토리지 서비스를 제공하는데, 이를 이용하면 저사양의 하드웨어를 활용하여 공용의 저장소 풀(storage pool)을 만들어 탄력적이고 유연한 사용량을 적시에 만족하는 특징을 가진다. 이를 위해 널리 이용되는 단순하고 강력한 오브젝트 기반 스토리지 기법에서는 물리적인 저장 공간 관리 기능을 저장 장치 자체에서 직접 수행하게 한다. 그러므로, 저장 장치의 성능이 향상되고 손쉽게 저장 장치의 용량을 확장할 수 있다. 또한, 플랫폼과 독립적으로 데이터를 안전하게 공유할 수 있는 특징을 가진다.
도 1은 종래 기술에 의한 분산 저장 시스템을 개념적으로 나타내는 도면이다.
도 1에 도시되는 오브젝트 스토리지 시스템은 클라이언트의 인증을 처리하는 인증 서버, 클라이언트의 요구사항을 처리하는 프락시 서버(proxy server)(또는 마스터 서버), 오브젝트들의 물리적인 위치를 포함하는 메타데이터를 저장하는 메타데이터 데이터베이스, 실제 오브젝트 저장 및 관리를 담당하는 데이터 노드, 그리고 데이터의 복제 등을 관리하는 복제 서버(replicator server) 등을 포함한다. 클라이언트는 초기에 인증 서버를 통해 인증을 받으며, 인증이 완료된 후에는 프락시 서버에게 원하는 오브젝트를 관리하는 데이터 노드의 정보를 요청한다. 클라이언트의 요청에 대해 프락시 서버는 메타데이터를 참조하여 해당하는 데이터 노드의 아이디 및 주소를 클라이언트에게 전달한다. 이 후 클라이언트는 프락시 서버를 거치지 않고 직접 데이터 노드와 통신하여 오브젝트의 저장 및 조회 등의 서비스를 요청한다. 이 경우 제어 채널과 데이터 채널이 분리되어 지연이나 데이터 트래픽이 감소하는 효과를 기대할 수 있다.
오브젝트 저장소는 데이터의 안전성과 높은 가용성을 위해 데이터를 복제(replication)하며 이런 복제본을 레플리카(replica)라고 한다. 널리 이용되는 분산 저장 시스템은 일반적으로 2개 내지 3개의 복제본을 가지지만, 오브젝트의 중요도에 따라 더 많은 복제본을 가지기도 한다. 오브젝트의 복제본은 서로 동기를 유지해야 하며 이는 보통 별도의 복제 서버 (replicator server)에서 처리한다.
그런데, 종래 기술에 의한 분산 저장 시스템의 경우, 클라이언트 및 데이터 노드의 물리적 위치와 무관하게 오브젝트의 저장 및 복제 동작이 수행된다. 그 결과, 물리적으로 원거리에 위치한 클라이언트 및 데이터 노드 간에 오브젝트를 업로드 및 다운로드하는 경우가 발생하는데, 이는 오브젝트의 입출력 시간을 길게 만든다. 또한, 특정 지역에 위치한 복수 개의 데이터 노드에만 오브젝트를 저장 및 복제하는 경우도 발생한다. 따라서, 해당 지역의 네트워크에 문제가 발생할 경우 관심 대상인 오브젝트를 저장하는 모든 데이터 노드가 동작하지 않게 되기 때문에 오브젝트를 이용할 수 없는 심각한 문제가 대두된다.
그러므로, 클라이언트 및 데이터 노드의 위치 관계를 고려하여 클라이언트로부터 수신되는 오브젝트를 저장하기에 적합한 데이터 노드를 결정하여 저장하는 것은 물론, 특정 지역의 네트워크 오류 등의 사건이 발생할 경우에도 오브젝트를 안정적으로 획득할 수 있는 기술이 절실히 요구된다. 또한, 오브젝트의 업로드 및 다운로드시 지연을 최소화할 수 있는 기술이 절실히 요구된다.
본 발명의 목적은 클라우드 스토리지 서비스를 위한 오브젝트 스토리지 시스템에서 클라이언트 및 데이터 노드의 위치 정보에 기반하여 효과적으로 복제본을 저장하고 관리할 수 있는 오브젝트의 분산 저장 방법을 제공하는 것이다.
본 발명의 다른 목적은 클라이언트 및 데이터 노드의 위치 정보를 이용하여 오브젝트를 선호도가 높은 데이터 노드에 우선적으로 저장함으로써 저장된 오브젝트 조회 및 저장 지연을 최소화할 수 있는 분산 저장 시스템을 제공하는 것이다.
상기와 같은 목적들을 달성하기 위한 본 발명의 일면은, 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템(distribution storage system)에 관한 것이다. 본 발명에 의한 분산 저장 시스템은 클라이언트를 인증하기 위한 인증 서버, 지역(zone)별로 그루핑되며 각각 적어도 하나의 오브젝트들을 저장하는 복수 개의 데이터 노드들로서, 동일한 오브젝트는 동일한 지역 그룹(zone group)에 속한 데이터 노드들 중 오직 하나에만 저장되도록 구성되는 복수 개의 데이터 노드들, 오브젝트의 고유 정보 및 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터를 저장하는 메타데이터 데이터베이스, 및 인증된 클라이언트의 질의에 응답하여, 메타데이터를 참조하여 클라이언트의 관리 동작의 객체인 대상 오브젝트(target object)와 관련되는 대상 데이터 노드(target data node)의 고유 정보의 목록을 클라이언트에게 제공하는 프락시 서버를 포함하며, 클라이언트는, 대상 데이터 노드의 고유 정보의 목록을 참조하여 대상 오브젝트의 관리 동작(management process)을 수행하도록 구성된다. 특히, 관리 동작은 대상 오브젝트를 데이터 노드에 저장하는 저장 동작(storage process)이며, 저장 동작을 수행하기 위하여, 클라이언트는 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들 및 각 지역 그룹 당 하나의 대상 데이터 노드를 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도(preference)에 의하여 결정되는 우선 순위(priority)를 지역 그룹에게 부여하며, 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 동작(replication process)이 수행되도록 야기하도록 더욱 구성되고, 프락시 서버는, 대상 오브젝트가 저장된 대상 데이터 노드들의 목록을 클라이언트에게 질의(query)하고, 클라이언트에 의하여 대상 데이터 노드들의 목록이 회신되면, 회신된 목록을 이용하여 메타데이터 데이터베이스를 갱신하도록 구성된다. 또는, 관리 동작은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 동작(zone group change process)이며, 지역 그룹 변경 동작을 수행하기 위하여, 클라이언트는, 프락시 서버에게 지역 그룹 변경 요청(zone group change request)을 송신한 후 지역 그룹 변경 요청이 수락되면, 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹들 및 각 지역 그룹 당 하나의 대상 데이터 노드를 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하며, 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 프락시 서버는, 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제하고, 클라이언트가 선택한 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록을 클라이언트에게 질의하며, 클라이언트에 의하여 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록이 회신되면, 회신된 목록을 이용하여 메타데이터 데이터베이스를 갱신하도록 더욱 구성된다. 또한, 관리 동작은 대상 오브젝트를 데이터 노드에 저장하는 저장 동작이며, 저장 동작을 수행하기 위하여, 클라이언트는, 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하며, 지역 그룹 당 하나의 대상 데이터 노드의 목록을 프락시 서버로부터 수신하고, 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 프락시 서버는, 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 클라이언트로 전송하고, 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하도록 구성된다. 특히, 프락시 서버는 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고, 동일한 지역 그룹에 포함되는 데이터 노드들 중에서 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하도록 더욱 구성된다. 또는, 관리 동작은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 동작이며, 지역 그룹 변경 동작을 수행하기 위하여, 클라이언트는, 프락시 서버에게 지역 그룹 변경 요청을 송신한 후 지역 그룹 변경 요청이 수락되면, 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하며, 지역 그룹 당 하나의 대상 데이터 노드의 목록을 프락시 서버로부터 수신하고, 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 프락시 서버는, 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제하고, 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 클라이언트로 전송하며, 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하도록 더욱 구성된다. 이 경우에, 프락시 서버는 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고, 동일한 지역 그룹에 포함되는 데이터 노드들 중에서 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하도록 더욱 구성된다. 또한, 관리 동작은 대상 오브젝트를 데이터 노드에 저장하는 저장 동작이며, 분산 저장 시스템은, 데이터 노드들 및 클라이언트의 위치 관계에 기반하여 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하고 선택된 지역 그룹 및 클라이언트 간의 거리에 기반하여 지역 그룹별 우선 순위를 결정하는 위치 인식 서버(location-aware server)를 더 포함하고, 저장 동작을 수행하기 위하여, 프락시 서버는, 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하고, 결정된 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하며, 대상 데이터 노드들의 목록 및 지역 그룹별 우선 순위를 클라이언트에게 전송하도록 구성되고, 클라이언트는, 가장 높은 지역 그룹별 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성된다. 특히, 프락시 서버는 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고, 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하도록 더욱 구성된다. 더 나아가, 복제 동작을 수행하기 위하여, 클라이언트는, 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하도록 더욱 구성된다. 또는, 복제 동작을 수행하기 위하여, 대상 데이터 노드들은 자신이 속한 지역 그룹의 우선 순위보다 한 단계 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드로부터 대상 오브젝트를 수신하여 저장하도록 구성된다. 더 나아가, 분산 저장 시스템은 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 저장된 대상 오브젝트를 독출하고, 독출된 대상 오브젝트를 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 저장하는 복제 서버(replication server)를 더 포함하며, 복제 동작은 복제 서버에 의하여 수행된다. 한편, 오브젝트의 고유 정보는 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고, 데이터 노드의 고유 정보는 데이터 노드의 ID, IP(Internet Protocol) 주소, 및 물리적 위치 중 적어도 하나를 포함한다. 특히, 메타데이터는, 데이터 노드들의 사용량, 각 지역 그룹에 속한 데이터 노드들의 목록, 대상 오브젝트에 대한 지역 그룹별 우선 순위, 및 동일한 지역 그룹에 속한 데이터 노드들 간의 우선 순위 중 적어도 하나를 더 포함한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 다른 면은 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법에 관한 것이다. 본 발명에 의한 오브젝트 분산 저장 방법은 클라이언트를 인증하는 단계, 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성하는 단계, 저장할 대상 오브젝트가 존재할 경우, 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹을 결정하는 지역 그룹 결정 단계, 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하는 대상 데이터 노드 결정 단계, 대상 데이터 노드에 대상 오브젝트를 저장하는 저장 단계, 및 대상 오브젝트의 고유 정보 및 대상 오브젝트가 저장된 데이터 노드의 고유 정보를 이용하여 메타데이터를 갱신하는 메타데이터 갱신 단계를 포함한다. 특히, 지역 그룹 결정 단계는, 클라이언트가 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하는 단계를 포함하고, 대상 데이터 노드 결정 단계는, 클라이언트가 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하는 단계를 포함하며, 저장 단계는, 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하는 단계, 및 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트를 복제하는 복제 단계를 포함하고, 메타데이터 갱신 단계는, 클라이언트에 의하여 대상 데이터 노드들의 목록이 회신되면, 프락시 서버가 회신된 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함한다. 특히, 본 발명에 의한 방법은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 단계를 더 포함하며, 지역 그룹 변경 단계는, 클라이언트가 프락시 서버에게 지역 그룹 변경 요청을 송신하는 단계, 프락시 서버가 지역 그룹 변경 요청을 수락하고 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제하는 단계, 지역 그룹 변경 요청이 수락되면, 클라이언트가 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하는 단계, 클라이언트가 동일한 우선 순위를 가지는 지역 그룹에 속하는 데이터 노드들 중 하나를 대상 데이터 노드로서 결정하는 단계, 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 단계가 수행되도록 야기하는 단계, 및 클라이언트에 의하여 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록이 회신되면, 프락시 서버가 회신된 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함한다. 또는, 지역 그룹 결정 단계는, 클라이언트가 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하는 단계를 포함하고, 대상 데이터 노드 결정 단계는, 프락시 서버가 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하는 단계를 포함하며, 저장 단계는, 클라이언트가 대상 데이터 노드의 목록을 프락시 서버로부터 수신하는 단계, 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하는 단계, 및 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트를 복제하는 복제 단계를 포함하고, 메타데이터 갱신 단계는, 프락시 서버가 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함한다. 더 나아가, 대상 데이터 노드 결정 단계는 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계 및 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하는 단계를 포함한다. 또한, 본 발명에 의한 방법은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 단계를 더 포함하며, 지역 그룹 변경 단계는, 클라이언트가 프락시 서버에게 지역 그룹 변경 요청을 송신하는 단계, 지역 그룹 변경 요청이 수락되면, 클라이언트가 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여하는 단계, 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제하는 단계, 프락시 서버가 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 클라이언트로 전송하는 단계, 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트가 복제되는 복제 단계가 수행되도록 야기하는 단계, 및 프락시 서버가 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함한다. 바람직하게는, 본 발명에 의한 오브젝트 분산 저장 방법은 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계, 및 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하는 단계를 더 포함한다. 특히, 지역 그룹 결정 단계는 위치 인식 서버가 데이터 노드들 및 클라이언트의 위치 관계에 기반하여 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하는 단계 및 위치 인식 서버가 선택된 지역 그룹 및 클라이언트 간의 거리에 기반하여 지역 그룹별 우선 순위를 결정하는 단계를 포함하고, 대상 데이터 노드 결정 단계는, 프락시 서버가 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하는 단계, 및 프락시 서버가 대상 데이터 노드들의 목록 및 지역 그룹별 우선 순위를 클라이언트에게 전송하는 단계를 포함하며, 메타데이터 갱신 단계는, 프락시 서버가 결정된 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함하고, 저장 단계는, 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하는 단계, 및 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트를 복제하는 복제 단계를 포함한다. 특히, 대상 데이터 노드 결정 단계는 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계, 및 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하는 단계를 포함하는 것을 특징으로 한다. 뿐만 아니라, 복제 단계는 클라이언트가 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하는 단계를 포함한다. 또는, 복제 단계는 대상 데이터 노드들이, 자신이 속한 지역 그룹의 우선 순위보다 한 단계 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드로부터 대상 오브젝트를 수신하여 저장하는 단계를 포함한다. 더 나아가, 복제 단계는 복제 서버가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 저장된 대상 오브젝트를 독출하는 단계, 및 복제 서버가 독출된 대상 오브젝트를 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 저장하는 단계를 포함한다.
본 발명에 의하여, 클라우드 스토리지 서비스에서 데이터 노드들을 지역(zone) 이라는 구역으로 그루핑하기 때문에 실제 복제본들이 안전하게 지역적으로 분산 저장되어 하나의 지역에 문제가 발생할 경우에도 더욱 신뢰성 있는 서비스가 가능하게 된다.
또한, 오브젝트들의 복제본들을 지역 개념을 도입하여 물리적으로 분산하여 배치함으로써 오브젝트의 가용성과 신뢰성을 높이기 위한 목적으로 수행되는 복제 동작을 보다 효율적으로 지원할 수 있으며, 클라이어언트의 위치와 물리적으로 가까운 데이터 노드에 오브젝트를 배치함으로서 오브젝트의 저장과 조회 지연을 최소화할 수 있다.
도 1은 종래 기술에 의한 분산 저장 시스템을 개념적으로 나타내는 도면이다.
도 2는 본 발명의 일면에 의한 분산 저장 시스템의 일 실시예를 개념적으로 나타내는 도면이다.
도 3은 지역 그룹 및 대상 데이터 노드의 선택 주체에 따른 다양한 알고리즘을 정리하는 표를 도시한다.
도 4는 본 발명의 다른 면에 의한 분산 저장 시스템의 오브젝트 저장 방법을 개념적으로 나타내는 흐름도이다.
도 5는 본 발명의 다른 면에 의한 분산 저장 시스템의 오브젝트 저장 방법에 포함되는 복제 단계를 나타내는 흐름도이다.
도 6은 본 발명의 일면에 의한 분산 저장 시스템의 다른 실시예를 개념적으로 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2는 본 발명의 일면에 의한 분산 저장 시스템의 일 실시예를 개념적으로 나타내는 도면이다.
도 2에 도시된 분산 저장 시스템(200)은 네트워크(290)에 연결되는 복수 개의 클라이언트들(210, 212, 216) 및 데이터 노드들(DN11-DN1n, DN21-DN2n, DNm1-DNmn)을 포함한다. 또한, 도 2에 도시된 분산 저장 시스템(200)은 인증 서버(220), 프락시 서버(250) 및 메타데이터 데이터베이스(280)를 더 포함한다.
도 2를 참조하면, 데이터 노드들(DN11-DN1n, DN21-DN2n, DNm1-DNmn)은 제1 내지 제m 지역 그룹(ZG1, ZG2, ZGm) 중 어느 하나에 포함된다는 것을 알 수 있다. 도 2에 도시되는 지역 그룹(ZG1, ZG2, ZG3)들은 효과적인 복제본의 분산 저장을 위하여, 각각 지역적으로 인접한 데이터 노드들을 그루핑함으로써 정의된다. 또한, 동일한 지역 그룹에 속하는 데이터 노드들은 동일한 오브젝트를 저장하지 않도록 구성된다. 즉, 하나의 오브젝트의 복제본은 다른 지역 그룹에 속하는 데이터 노드들에 분산되어 저장되기 때문에 두 개의 복제본이 어느 하나의 지역 그룹에 속한 두 개의 데이터 노드에 공통적으로 저장되지 않는다. 이를 메타데이터의 관점에서 보면, 오브젝트의 물리적인 위치를 나타내는 메타데이터에서 하나의 오브젝트의 복제본들은 다른 지역 그룹에 속한 데이터 노드들에 매핑된다. 그러므로, 어느 특정한 지역 그룹이 전체 네트워크 상에 문제가 생기는 등의 물리적인 피해를 입은 경우라도 복제본이 다른 지역 그룹에 속한 데이터 노드에 분산되어 저장되어 있으므로 신뢰성을 높일 수 있다.
본 발명에서, 지역 그룹은 하나의 데이터 센터가 될 수도 있고 좀 더 좁은 지역으로는 하나의 서버 랙이 될 수도 있다. 지역 그룹이 설정되면, 해당 지역 그룹 내에 속한 데이터 노드들을 그 지역 그룹에 속하는 것으로 메타데이터에 등록된다. 그러면, 오브젝트의 복제본들은 다른 지역 그룹에 속한 데이터 노드에 복제된다.
데이터 노드를 지역 그룹으로 그루핑함으로써 얻어지는 장점은 다음과 같다.
1) 본 발명에서, 모든 클라이언트들(210, 212, 216) 및 데이터 노드들(DN11-DN1n, DN21-DN2n, DNm1-DNmn)들은 네트워크(290)를 통하여 서로 통신한다. 즉, 클라이언트 각각 및 데이터 각각 간에는 가상 채널(virtual channel)이 존재한다. 그러나, 이러한 가상 채널은 클라이언트 및 데이터 노드의 모든 쌍에 대해 반드시 동일한 조건을 가지는 것은 아니다. 예를 들어, 가상 채널의 통신 환경은 클라이언트 및 데이터 노드 간의 물리적 거리에 따라 달라질 수 있다. 클라이언트 및 데이터 노드 간의 물리적 거리가 멀수록 오브젝트는 더 많은 릴레이 노드 또는 게이트웨이를 통하여 전달되기 때문에 송수신 시간이 오래 걸린다. 또한, 가상 채널의 통신 환경은 네트워크 트래픽의 양 및 가상 채널을 구성하는 네트워크 자원의 성능에 따라서도 달라질 수 있다. 가상 채널을 통해 전달되는 트래픽의 양이 많을수록 가상 채널 상에서 전송 충돌(transmission collision)이 발생될 가능성이 높아지며, 네트워크 자원의 성능이 높을수록 가상 채널의 송수신 속도는 빨라진다. 그러므로, 본 발명에서는 이와 같은 가상 채널의 통신 환경을 고려하여 클라이언트 및 데이터 노드 간에 가장 최적의 가상 채널을 선택한다. 최적의 가상 채널을 선택하기 위하여 본 발명에 의한 분산 저장 시스템에서는 클라이언트 및 지역 그룹 간의 물리적 거리를 참조할 수 있다. 따라서, 저장한 오브젝트를 포함하는 클라이언트로부터 가장 가까운 거리에 위치한 지역 그룹에 속한 데이터 노드에 오브젝트를 저장함으로써 오브젝트의 업로드 시간을 최소화할 수 있다.
2) 또한, 본 발명에 의한 분산 저장 시스템은 오브젝트를 복제할 때 동일한 지역 그룹에 속하는 데이터 노드로 복제되지 않도록 한다. 따라서, 저장할 대상 오브젝트는 여러 개의 지역 그룹에 분산 저장된다. 일반적으로, 네트워크 장애가 발생하면 인접 지역의 데이터 노드들의 동작도 불가능한 경우가 많다. 예를 들어, 어느 데이터 센터에 여러 개의 데이터 노드들이 존재하고, 이 데이터 센터가 하나의 지역 그룹으로 설정된다고 가정한다. 이러한 가정은 본 발명을 용이하게 설명하기 위한 것으로 본 발명을 한정하는 것이 아님은 명백하다. 갑작스런 정전 등의 사고로 해당 데이터 센터가 동작 불능의 상태에 빠지는 경우가 발생할 수 있다. 이 경우, 본 발명에 의한 분산 저장 시스템은 대상 오브젝트를 해당 데이터 센터의 데이터 노드들 중 오직 하나의 대상 데이터 노드에만 저장하고, 그 복제본은 다른 지역 그룹에 속하는 대상 데이터 노드에 저장한다. 그러므로, 데이터 센터의 모든 데이터 노드들이 장애를 일으키더라도, 다른 지역 그룹에 속하는 대상 데이터 노드로부터 원하는 대상 오브젝트를 용이하게 조회할 수 있다.
다시 도 2를 참조하면, 분산 저장 시스템(200)에서 데이터 노드를 할당하는 방식으로는 수동 선택 방식과 자동 선택 방식의 두 가지 방식이 제안될 수 있다. 수동 선택 방법은 클라이어트가 최초로 계정을 만들 때 프락시 서버에서 선호하는 지역 그룹을 클라이언트에게 질의하여 클라이언트에게 선택권을 주는 방법이다. 복제본의 개수에 따라 지역 그룹의 개수가 정해지기 때문에, 클라이언트는 허용되는 가장 많은 복제본 개수만큼 선호하는 지역 그룹을 우선 순위에 따라 선택한다. 즉, 클라이언트는 오브젝트에 따라 복제본 개수를 다르게 선택할 수 있는 경우를 고려해 허용되는 최대 복제본 개수만큼 선호 지역 그룹을 선택한다. 이 후 선호하는 지역 그룹을 바꾸고자 할 경우에는 프락시 서버에게 지역 그룹 변경을 요청하고, 이 요청이 받아들여지면 그 이 후에는 대상 오브젝트를 변경된 선호 지역 그룹에 속하는 대상 데이터 노드에 저장한다.
자동 선택 방법은 위치 인식 서버(location-aware server)를 이용하여 지역 그룹을 선택하는 방식이다. 자동 선택 방법에 대해서는 도 6을 참조하여 상세히 후술된다.
도 3은 지역 그룹 및 대상 데이터 노드의 선택 주체에 따른 다양한 알고리즘을 정리하는 표를 도시한다.
도 3을 참조하면, 분산 저장 시스템(200)에서 대상 오브젝트를 저장하기 위해서는 우선 클라이언트가 선호하는 지역 그룹을 선택하고, 선택된 지역 그룹에 속하는 데이터 노드 중에서 하나의 데이터 노드를 대상 데이터 노드로서 선택해야 한다. 이 때, 지역 그룹 및 대상 데이터 노드를 선택하는 주체가 무엇인지에 따라서 도 3에 제공되는 바와 같은 알고리즘들이 존재할 수 있다.
알고리즘 1
알고리즘 1에서는 지역 그룹 및 대상 데이터 노드를 모두 클라이언트가 선택한다. 본 명세서에서 '대상 오브젝트(target object)'란 클라이언트가 저장하고자 하는 오브젝트나 데이터 노드로부터 조회하고자 하는 관심 대상인 오브젝트를 의미한다. 또한, '대상 데이터 노드(target data node)'란 여러 개의 데이터 노드 중에서 대상 오브젝트가 저장된 데이터 노드를 의미한다.
알고리즘 1에서는 클라이언트는 지역 그룹 및 대상 데이터 노드를 선택하고, 선택된 지역 그룹들에 대한 클라이언트의 선호도(preference)에 의하여 결정되는 우선 순위(priority)를 지역 그룹에게 부여한다. 본 명세서에서 '우선 순위'란 특정 대상 오브젝트를 저장하기에 어떤 지역 그룹 또는 데이터 노드가 다른 지역 그룹 또는 데이터 노드에 비하여 더 적합한지 판단하여 매긴 순위를 나타낸다. 우선 순위에는 특정 지역 그룹이 다른 지역 그룹에 비하여 가지는 우선 순위 및 동일한 지역 그룹 내에 속한 데이터 노드들 간의 우선 순위가 포함될 수 있다. 또한, 우선 순위는 클라이언트가 직접 어느 대상 오브젝트에 관련한 특정 지역 및 데이터 노드에 대한 선호도에 기반하여 매길 수도 있고, 또는 프락시 서버 또는 위치 인식 서버에 의하여 자동으로 결정될 수도 있다. 이에 대해서는 명세서의 해당 부분에서 상세히 후술된다.
이와 같이, 클라이언트에 의하여 지역 그룹 및 대상 데이터 노드가 결정되면, 클라이언트는 자신이 선택한 대상 데이터 노드들에 대상 오브젝트를 저장하고 복제한다. 복제 동작에 대해서는 도 5를 이용하여 상세히 후술된다.
클라이언트가 대상 데이터 노드를 결정하면, 프락시 서버는 대상 오브젝트가 저장된 대상 데이터 노드들의 목록을 클라이언트에게 질의(query)하고, 회신된 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신한다.
알고리즘 1에 따르면, 클라이언트는 자신이 선택한 지역 그룹 및 대상 데이터 노드를 변경할 수도 있다. 이러한 변경 동작을 수행하기 위하여, 클라이언트는 우선 프락시 서버에게 지역 그룹 변경 요청(zone group change request)을 송신한다. 프락시 서버 서버는 이러한 변경 요청을 수락할 경우 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제한다. 지역 그룹 변경 요청이 수락되면, 클라이언트는 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹들 및 각 지역 그룹 당 하나의 대상 데이터 노드를 선택한다. 또한, 클라이언트는 선택된 지역 그룹들에 대한 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여할 수 있다. 그러면, 프락시 서버는 클라이언트가 선택한 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록을 클라이언트에게 질의하여 회신된 목록을 이용하여 메타데이터 데이터베이스를 갱신한다. 본 명세서에서 A라는 오브젝트가 B라는 데이터 노드와 ‘관련’된다는 의미는 다음과 같이 이해된다. 우선, 관리 동작이 오브젝트 저장 동작일 경우에는, A 오브젝트가 저장될 대상 데이터 노드로서 데이터 노드 B가 결정된다는 것을 의미할 수 있다. 또는, 관리 동작이 오브젝트 독출 동작일 경우에는, A 오브젝트가 이미 데이터 노드 B에 저장되어 있다는 것을 의미할 수 있다.
본 명세서에서 대상 오브젝트의 관리 동작이란, 대상 오브젝트를 대상 데이터 노드에 저장하는 저장 동작, 저장된 대상 오브젝트를 대상 데이터 노드로부터 독출하는 독출 동작, 대상 오브젝트가 저장된 지역 그룹 또는 대상 데이터 노드를 변경하려는 변경 동작, 및 저장된 대상 오브젝트를 수정하려는 동작 등을 모두 포함하는 것으로 이해되어야 한다. 즉, 클라이언트가 오브젝트를 분산 저장하고, 저장된 오브젝트를 독출하여 수정하는 모든 동작이 관리 동작에 포함되는 것으로 이해된다. 또한, 본 명세서에서 분산 저장 시스템이란 클라우드 컴퓨팅을 지원하는 클라우드 스토리지 시스템과 같이, 동일한 오브젝트를 두 개 이상의 저장소에 기록하여 데이터의 손실을 방지하고 저장 부담을 경감시키려는 모든 시스템을 총칭하여 가리키는 용어로 이해되어야 한다.
알고리즘 1에 의하면, 클라이언트가 직접 지역 그룹 및 데이터 노드를 선택하기 때문에 사용자가 선호하는 데이터 노드에 우선적으로 대상 오브젝트를 저장할 수 있다는 장점이 있다.
알고리즘 2
알고리즘 2에서는 지역 그룹은 클라이언트가 선택하지만 대상 데이터 노드는 프락시 서버에 의하여 선택된다. 클라이언트가 주로 관심을 가지는 것은 자신으로부터 가까운 지역 그룹이 어디 있는지가 될 수 있다. 또한, 지역 그룹을 선택한 후 클라이언트는 해당 지역 그룹 내에 어느 데이터 노드가 대상 데이터 노드로서 선택되는지에 대해서는 별로 관심이 없을 수도 있다. 특히, 지역 그룹에 속하는 데이터 노드의 개수가 많아질수록 클라이언트가 이들 중 하나를 대상 데이터 노드로서 선택하는 작업은 매우 지루하고 불필요한 것일 수 있다. 따라서, 클라이언트가 지역 그룹만 선택하면, 프락시 서버가 자동적으로 대상 데이터 노드를 선택할 필요가 있다.
알고리즘 2를 상세히 설명하면 다음과 같다. 우선, 클라이언트는 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들 및 선택된 지역 그룹들에 대한 클라이언트의 선호도에 의하여 결정되는 우선 순위를 지역 그룹에게 부여한다. 그러면, 프락시 서버는 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 클라이언트로 전송하고, 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신한다.
클라이언트는, 지역 그룹 당 하나의 대상 데이터 노드의 목록을 프락시 서버로부터 수신한 뒤 대상 오브젝트의 저장 및 복제 동작을 수행할 수 있다. 이 때, 프락시 서버는 대상 데이터 노드를 선택하기 위하여 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려할 수 있다. 즉, 프락시 서버는 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여한 후, 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정할 수 있다.
알고리즘 2에서, 클라이언트가 지역 그룹을 변경하고자 할 경우에도 지역 그룹만을 선택하면 되고 대상 데이터 노드까지는 선택할 필요가 없다. 따라서, 클라이언트는 지역 그룹 변경 요청이 수락되면, 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고 선택된 지역 그룹에 우선 순위를 부여한다. 그러면, 프락시 서버는 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제하고, 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 클라이언트로 전송한다. 또한, 프락시 서버는 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신한다. 지역 그룹 당 하나의 대상 데이터 노드의 목록이 프락시 서버로부터 수신되면, 클라이언트는 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써, 대상 오브젝트의 복제 동작이 수행되도록 할 수 있다.
알고리즘 1에 비하여, 알고리즘 2는 클라이언트가 오직 지역 그룹만을 선택하면 되기 때문에 데이터 저장 및 복제 동작이 신속하게 수행될 수 있다는 장점을 가진다. 또한, 동일한 지역 그룹 내의 데이터 노드들 중 가장 높은 우선 순위를 가지는 데이터 노드를 프락시 서버가 자동으로 선택하기 때문에, 데이터 노드들 간 로드 밸런싱(load balancing) 효과가 달성된다.
알고리즘 3
알고리즘 3에서는 지역 그룹 및 대상 데이터 노드 선택 동작이 모두 자동적으로 이루어진다.
클라이언트로부터 가장 근접한 지역 그룹을 선택하기 위하여 위치 인식 서버와 같은 장치가 이용될 수 있음은 전술된 바와 같다. 위치 인식 서버는 프락시 서버와 별개의 장치로서 존재할 수도 있지만, 프락시 서버 내에 통합될 수도 있음은 물론이다. 위치 인식 서버는 데이터 노드들 및 클라이언트의 위치 관계에 기반하여 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하고 선택된 지역 그룹 및 클라이언트 간의 거리에 기반하여 지역 그룹별 우선 순위를 결정한다. 그러면, 프락시 서버는 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하고, 결정된 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신한다. 또한, 프락시 서버가 대상 데이터 노드들의 목록 및 지역 그룹별 우선 순위를 클라이언트에게 전송하면, 클라이언트는 가장 높은 지역 그룹별 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장함으로써 복제 동작이 수행되도록 한다.
알고리즘 3에서는 지역 그룹 및 대상 데이터 노드의 선택 동작이 자동적으로 수행되기 때문에, 알고리즘 1 및 2에 비하여 가장 신속하게 오브젝트를 저장할 수 있다는 장점을 가진다. 또한, 위치 인식 서버는 실시간으로 변동되는 네트워크 환경을 고려하여 최적 지역 그룹을 동적으로 선택할 수 있다. 또한, 선택 동작에 클라이언트가 관여하지 않기 때문에, 알고리즘 1 및 2와는 달리 지역 그룹 변경 동작이 불필요할 수 있다. 하지만, 클라이언트가 원할 경우 자동 선택된 지역 그룹 및 대상 데이터 노드를 변경할 수도 있음은 명백하다. 지역 그룹을 변경하고자 원하면, 클라이언트는 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹 및 대상 데이터 노드를 모두 선택할 수 있음은 전술된 바와 같다. 또는, 클라이언트는 지역 그룹만을 선택하고, 대상 데이터 노드는 프락시 서버에 의하여 결정될 수도 있음도 역시 전술된 바와 같다.
본 발명에서 대상 오브젝트가 대상 데이터 노드에 복제되는 복제 동작에 대해서는 도 5를 이용하여 상세히 후술한다.
도 4는 본 발명의 다른 면에 의한 분산 저장 시스템의 오브젝트 저장 방법을 개념적으로 나타내는 흐름도이다.
우선, 인증 서버가 클라이언트를 인증한다(S410). 또한, 본 발명에 의한 오브젝트 저장 방법은 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성한다(S320). 동일한 지역 그룹에 속하는 데이터들 간에는 대상 오브젝트의 복제가 이루어지지 않는다는 것은 전술한 바와 같다.
클라이언트가 대상 오브젝트를 저장할 필요가 있다고 판단하면, 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹 및 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 대상 데이터 노드가 결정된다(S430, S440). 이 경우, 수동 선택 방식일 경우에는, 지역 그룹 및 대상 데이터 노드를 모두 클라이언트가 선택하거나, 클라이언트는 지역 그룹만을 선택하고, 대상 데이터 노드는 프락시 서버가 선택할 수 있음은 전술된 바와 같다. 또한, 지역 그룹 및 대상 데이터 노드는 프락시 서버 또는 위치 인식 서버에 의하여 자동으로 선택될 수도 있다는 것도 전술된 바와 같다.
이와 같이, 대상 오브젝트를 저장한 대상 데이터 노드가 결정되면, 대상 오브젝트를 해당 대상 데이터 노드에 저장 및 복제한다(S450). 이 때, 클라이언트는 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 데이터 노드에 대상 오브젝트를 저장한다. 이후의 복제 동작은 각각 클라이언트, 데이터 노드, 및 복제 서버를 통하여 수행될 수 있는데, 이에 대해서는 도 5를 이용하여 후술된다.
이와 같이, 대상 오브젝트가 대상 데이터 노드에 저장되면, 프락시 서버는 대상 오브젝트의 고유 정보 및 대상 오브젝트가 저장된 데이터 노드의 고유 정보를 이용하여 메타데이터를 갱신한다(S460). 갱신된 메타데이터는 추후에 클라이언트가 저장된 대상 오브젝트를 조회할 경우에 해당 대상 오브젝트가 저장된 대상 데이터 노드를 통지하는데 이용된다.
또한, 본 발명에 의한 분산 저장 방법은 이미 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 단계를 더 포함할 수 있다. 지역 그룹 변경 동작을 수행하기 위해서는, 우선 클라이언트가 프락시 서버에게 지역 그룹 변경 요청을 송신한다. 그러면, 프락시 서버는 지역 그룹 변경 요청을 수락할지 여부를 결정하고, 수락할 경우 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 메타데이터 데이터베이스에서 삭제한다.
대상 오브젝트를 저장할 새로운 지역 그룹 및 대상 데이터 노드를 선택하는 주체는 클라이언트일 수도 있고 프락시 서버일 수도 있다. 즉, 클라이언트가 지역 그룹 및 대상 데이터 노드를 모두 선택할 수도 있고, 클라이언트는 지역 그룹만을 선택하고, 대상 데이터 노드는 프락시 서버에 의하여 선택될 수도 있다. 다른 실시예에서는, 지역 그룹 및 대상 데이터 노드 모두가 프락시 서버 또는 위치 인식 서버에 의하여 자동으로 선택될 수도 있다.
이와 같이, 지역 그룹 및 대상 데이터 노드가 결정되면, 대상 오브젝트의 저장 및 복제 동작이 수행된다. 그러면, 프락시 서버가 새로운 대상 데이터 노드의 목록을 이용하여 메타데이터 데이터베이스를 갱신한다.
본 발명에 의한 분산 저장 방법에서, 오브젝트의 고유 정보는 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 등을 포함할 수 있고, 데이터 노드의 고유 정보는 데이터 노드의 ID, IP(Internet Protocol) 주소, 및 물리적 위치 등을 포함할 수 있다.
이하, 본 발명에 의한 분산 저장 방법에서 수행되는 복제 단계를 상세히 설명한다.
도 5는 본 발명의 다른 면에 의한 분산 저장 시스템의 오브젝트 저장 방법에 포함되는 복제 단계를 나타내는 흐름도이다.
지역 그룹 및 대상 데이터 노드가 결정되면, 클라이언트는 결정된 지역 그룹 중 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장한다(S510). 그러면, 가장 높은 우선 순위를 가지는 지역 그룹에 저장된 대상 오브젝트를 어느 장치로 하여금 복제할지를 결정한다(S520).
본 발명에 의한 분산 저장 방법에서 이용될 수 있는 복제 방법으로는 세 가지가 존재하는데, 이는 다음과 같다.
첫째로, 클라이언트가 업로드할 오브젝트를 n개의 복제본을 위해 자신에게 할당된 n개의 데이터 노드들에게 모두 전송하는 것이다(S530). 이 경우, n 개의 대상 데이터 노드가 병렬적으로 n개의 복제본을 저장할 수 있기 때문에 트랜잭션 시간이 단축될 수 있다. 다만, 첫째 방법의 경우 클라이언트가 n 개의 대상 데이터 노드에 한꺼번에 오브젝트를 전송하기 때문에 클라이언트의 전송 대역폭이 과다하게 소요되는 단점이 있다.
둘째로, 파이프라인 방식이다. 이 방식에 따르면, 특정 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드는 자신이 수신하여 저장한 오브젝트를 자신이 속한 지역 그룹의 우선 순위보다 한 단계 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 송신한다. 그러면, 차순위 지역 그룹에 속한 대상 데이터 노드가 이 대상 오브젝트를 수신하여 저장하고, 다시 자신보다 한 단계 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 전송한다(S550). 이때, 대상 데이터 노드는 자신이 속한 보다 낮은 우선 순위를 가지는 지역 그룹에 속한 모든 대상 데이터 노드의 목록도 함께 전송한다. 어느 대상 데이터 노드가 대상 오브젝트를 수신하면, 해당 대상 데이터 노드는 자신이 우선 순위의 최하위에 위치하는지 여부를 판단한다(S560). 만일 자신이 속한 지역 그룹이 가장 낮은 우선 순위를 가지지 않는다면, 아직 대상 오브젝트를 저장할 다른 대상 데이터 노드들이 존재한다는 것을 의미한다. 그러므로, 우선 순위를 낮춘 후(S570) 위의 동작을 반복한다. 이 경우, n개의 대상 데이터 노드가 존재할 경우, n-1번의 복제 동작이 수행되어야 하기 때문에 클라이언트가 전체 트랜잭션에 시간이 지연되는 단점이 있다. 하지만, 파이프라인 방식에 따르면 클라이언트의 부하를 많이 감소해 주고 클라이언트에서의 전송 트래픽을 줄여주는 장점이 있다.
셋째로, 클라이언트는 자신이 가장 선호하는 첫 번째 데이터 노드에만 대상 오브젝트를 전송하고, 나머지 대상 데이터 노드로의 복제 동작은 복제를 전담하는 복제 서버가 수행할 수 있다(S540).
도 6은 본 발명의 일면에 의한 분산 저장 시스템의 다른 실시예를 개념적으로 나타내는 도면이다.
도 6에 도시된 분산 저장 시스템(600)은 네트워크(690)에 연결되는 복수 개의 클라이언트들(610, 612, 616) 및 데이터 노드들(DN11-DN1n, DN21-DN2n, DNm1-DNmn)을 포함한다. 또한, 도 6에 도시된 분산 저장 시스템(600)은 인증 서버(620), 프락시 서버(650), 위치 인식 서버(660), 복제 서버(670) 및 메타데이터 데이터베이스(680)를 더 포함한다.
도 6에 도시된 클라이언트들(610, 612, 616), 인증 서버(620) 및 메타데이터 데이터베이스(680)의 구성 및 동작은 도 2에 도시되는 대응 구성 요소들의 그것과 유사하다. 그러므로, 명세서의 간략화를 위하여 반복적인 설명이 생략된다.
도 6에 도시된 분산 저장 시스템(600)에 포함되는 위치 인식 서버(660)는 지역 그룹 또는 대상 데이터 노드를 자동으로 선택하기 위하여 이용된다. 인증된 클라이언트가 대상 오브젝트를 저장할 대상 데이터 노드에 대해서 프락시 서버(650)에 질의하면, 프락시 서버(650)는 가장 유리한 지역 그룹에 대해서 위치 인식 서버(660)에 문의한다.
위치 인식 서버(660)는 여러 가지 방법으로 클라이언트의 위치를 파악할 수 있는데, 일반적으로는 클라이언트의 IP 주소로 클라이언트의 물리적 위치를 파악할 수 있다. 위치 인식 서버(660)는 프락시 서버(650)의 요청에 따라 클라이언트의 기본 복제본 개수만큼의 지역 그룹을 선정한 후 선정된 지역 그룹 리스트를 프락시 서버(650)에게 전송한다. 위치 인식 서버(660)는 물리적으로 프락시 서버(650) 내에 통합되어 구현될 수 있다.
위치 인식 서버(660)에 의하여 결정된 지역 그룹 각각에 속하는 대상 데이터 노드를 결정하는 동작은 프락시 서버(650) 또는 위치 인식 서버(660)에 의하여 수행될 수 있다. 위치 인식 서버(660)가 대상 데이터 노드까지 결정하는 경우, 위치 인식 서버(660)는 메타데이터 데이터베이스(680)를 참조하여 선택된 지역 그룹 내에서 대상 오브젝트를 가지고 있는 클라이언트와 가장 근접한 대상 데이터 노드를 선택할 수 있다. 반면에, 프락시 서버(650)가 대상 데이터 노드를 선택한다면, 프락시 서버(650)는 로드 밸런서(load balancer, 655)를 이용하여 각 지역 그룹에 속하는 데이터 노드들의 상태를 점검하고, 이 중에서 최적 조건을 가지는 데이터 노드를 대상 데이터 노드로서 선택할 수 있다. 로드 밸런서(655)는 프락시 서버(650)에 포함되는 것으로 도시되었으나, 이는 본 발명을 한정하는 것이 아님이 이해되어야 한다.
또한, 프락시 서버(650)는 각 지역 그룹 내 데이터 노드들의 정보를 메타데이터에 관리하고, 데이터 노드들의 로드 밸런싱을 위해 각 데이터 노드의 스토리지 용량을 고려하여 각 데이터 노드의 가중치 값을 사전에 결정한다. 현재까지 각 데이터 노드의 오브젝트 저장 내역과 데이터 노드의 가중치 값을 고려해 요청 클라이언트의 데이터 노드를 선정함으로써 지역 그룹 내 데이터 노드간 로드 밸런싱을 유지한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 클라우드 컴퓨팅의 스토리지 서비스를 제공할 수 있는 오브젝트 스토리지에서 클라이언트의 위치를 파악하여 가장 가까운 데이터 노드에 오브젝트를 배치하는 기술에 적용될 수 있다.

Claims (29)

  1. 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템(distribution storage system)에 있어서,
    상기 클라이언트를 인증하기 위한 인증 서버;
    지역(zone)별로 그루핑되며 각각 적어도 하나의 오브젝트들을 저장하는 복수 개의 데이터 노드들로서, 동일한 오브젝트는 동일한 지역 그룹(zone group)에 속한 데이터 노드들 중 오직 하나에만 저장되도록 구성되는 복수 개의 데이터 노드들;
    상기 오브젝트의 고유 정보 및 상기 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터를 저장하는 메타데이터 데이터베이스; 및
    인증된 클라이언트의 질의에 응답하여, 상기 메타데이터를 참조하여 상기 클라이언트의 관리 동작의 객체인 대상 오브젝트(target object)와 관련되는 대상 데이터 노드(target data node)의 고유 정보의 목록을 상기 클라이언트에게 제공하는 프락시 서버를 포함하며,
    상기 클라이언트는, 상기 대상 데이터 노드의 고유 정보의 목록을 참조하여 상기 대상 오브젝트의 관리 동작(management process)을 수행하도록 구성되는 특징으로 하는 분산 저장 시스템.
  2. 제1항에 있어서,
    상기 관리 동작은 상기 대상 오브젝트를 상기 데이터 노드에 저장하는 저장 동작(storage process)이며,
    상기 저장 동작을 수행하기 위하여, 상기 클라이언트는,
    상기 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들 및 각 지역 그룹 당 하나의 대상 데이터 노드를 선택하고,
    선택된 지역 그룹들에 대한 상기 클라이언트의 선호도(preference)에 의하여 결정되는 우선 순위(priority)를 상기 지역 그룹에게 부여하며,
    가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 동작(replication process)이 수행되도록 야기하도록 더욱 구성되고, 상기 프락시 서버는,
    상기 대상 오브젝트가 저장된 대상 데이터 노드들의 목록을 상기 클라이언트에게 질의(query)하고,
    상기 클라이언트에 의하여 상기 대상 데이터 노드들의 목록이 회신되면, 회신된 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하도록 구성되는 것을 특징으로 하는 분산 저장 시스템.
  3. 제2항에 있어서,
    상기 관리 동작은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 동작(zone group change process)이며,
    상기 지역 그룹 변경 동작을 수행하기 위하여, 상기 클라이언트는,
    상기 프락시 서버에게 지역 그룹 변경 요청(zone group change request)을 송신한 후 상기 지역 그룹 변경 요청이 수락되면, 상기 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹들 및 각 지역 그룹 당 하나의 대상 데이터 노드를 선택하고,
    선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하며,
    가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 상기 프락시 서버는,
    저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 상기 메타데이터 데이터베이스에서 삭제하고,
    상기 클라이언트가 선택한 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록을 상기 클라이언트에게 질의하며,
    상기 클라이언트에 의하여 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록이 회신되면, 회신된 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  4. 제1항에 있어서,
    상기 관리 동작은 상기 대상 오브젝트를 상기 데이터 노드에 저장하는 저장 동작이며,
    상기 저장 동작을 수행하기 위하여, 상기 클라이언트는,
    상기 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고,
    선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하며,
    상기 지역 그룹 당 하나의 대상 데이터 노드의 목록을 상기 프락시 서버로부터 수신하고,
    가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 상기 프락시 서버는,
    상기 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 상기 클라이언트로 전송하고,
    상기 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하도록 구성되는 것을 특징으로 하는 분산 저장 시스템.
  5. 제4항에 있어서, 상기 프락시 서버는,
    동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고,
    동일한 지역 그룹에 포함되는 데이터 노드들 중에서 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  6. 제5항에 있어서,
    상기 관리 동작은 선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 동작이며,
    상기 지역 그룹 변경 동작을 수행하기 위하여, 상기 클라이언트는,
    상기 프락시 서버에게 지역 그룹 변경 요청을 송신한 후 상기 지역 그룹 변경 요청이 수락되면, 상기 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고,
    선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하며,
    상기 지역 그룹 당 하나의 대상 데이터 노드의 목록을 상기 프락시 서버로부터 수신하고,
    가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되고, 상기 프락시 서버는,
    저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 상기 메타데이터 데이터베이스에서 삭제하고,
    상기 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 상기 클라이언트로 전송하며,
    상기 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  7. 제6항에 있어서, 상기 프락시 서버는,
    동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고,
    동일한 지역 그룹에 포함되는 데이터 노드들 중에서 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  8. 제1항에 있어서,
    상기 관리 동작은 상기 대상 오브젝트를 상기 데이터 노드에 저장하는 저장 동작이며,
    상기 분산 저장 시스템은, 상기 데이터 노드들 및 상기 클라이언트의 위치 관계에 기반하여 상기 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하고 선택된 지역 그룹 및 상기 클라이언트 간의 거리에 기반하여 상기 지역 그룹별 우선 순위를 결정하는 위치 인식 서버(location-aware server)를 더 포함하고,
    상기 저장 동작을 수행하기 위하여, 상기 프락시 서버는,
    상기 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하고,
    결정된 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하며,
    상기 대상 데이터 노드들의 목록 및 상기 지역 그룹별 우선 순위를 상기 클라이언트에게 전송하도록 구성되고,
    상기 클라이언트는, 가장 높은 지역 그룹별 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 동작이 수행되도록 야기하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  9. 제8항에 있어서, 상기 프락시 서버는,
    동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하고,
    가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  10. 제2항 내지 제9항 중 어느 한 항에 있어서,
    상기 복제 동작을 수행하기 위하여, 상기 클라이언트는,
    가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  11. 제2항 내지 제9항 중 어느 한 항에 있어서,
    상기 복제 동작을 수행하기 위하여, 상기 대상 데이터 노드들은,
    자신이 속한 지역 그룹의 우선 순위보다 한 단계 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드로부터 상기 대상 오브젝트를 수신하여 저장하도록 구성되는 것을 특징으로 하는 분산 저장 시스템.
  12. 제2항 내지 제9항 중 어느 한 항에 있어서,
    상기 분산 저장 시스템은 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 저장된 대상 오브젝트를 독출하고, 독출된 대상 오브젝트를 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 저장하는 복제 서버(replication server)를 더 포함하며,
    상기 복제 동작은 상기 복제 서버에 의하여 수행되는 것을 특징으로 하는 분산 저장 시스템.
  13. 제1항에 있어서,
    상기 오브젝트의 고유 정보는 상기 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고,
    상기 데이터 노드의 고유 정보는 상기 데이터 노드의 ID, IP(Internet Protocol) 주소, 및 물리적 위치 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 저장 시스템.
  14. 제1항에 있어서,
    상기 메타데이터는, 상기 데이터 노드들의 사용량, 각 지역 그룹에 속한 데이터 노드들의 목록, 대상 오브젝트에 대한 지역 그룹별 우선 순위, 및 동일한 지역 그룹에 속한 데이터 노드들 간의 우선 순위 중 적어도 하나를 더 포함하는 것을 특징으로 하는 분산 저장 시스템.
  15. 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법에 있어서,
    상기 클라이언트를 인증하는 단계;
    상기 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성하는 단계;
    저장할 대상 오브젝트가 존재할 경우, 상기 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹을 결정하는 지역 그룹 결정 단계;
    동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 상기 대상 데이터 노드로서 결정하는 대상 데이터 노드 결정 단계;
    상기 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 저장 단계; 및
    상기 대상 오브젝트의 고유 정보 및 상기 대상 오브젝트가 저장된 데이터 노드의 고유 정보를 이용하여 메타데이터를 갱신하는 메타데이터 갱신 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  16. 제15항에 있어서,
    상기 지역 그룹 결정 단계는, 상기 클라이언트가 상기 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고, 선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하는 단계를 포함하고,
    상기 대상 데이터 노드 결정 단계는, 상기 클라이언트가 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 상기 대상 데이터 노드로서 결정하는 단계를 포함하며,
    상기 저장 단계는,
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 단계; 및
    상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트를 복제하는 복제 단계를 포함하고,
    상기 메타데이터 갱신 단계는, 상기 클라이언트에 의하여 상기 대상 데이터 노드들의 목록이 회신되면, 상기 프락시 서버가 회신된 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  17. 제16항에 있어서,
    선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 단계를 더 포함하며,
    상기 지역 그룹 변경 단계는,
    상기 클라이언트가 상기 프락시 서버에게 지역 그룹 변경 요청을 송신하는 단계;
    상기 프락시 서버가 상기 지역 그룹 변경 요청을 수락하고 저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 상기 메타데이터 데이터베이스에서 삭제하는 단계;
    상기 지역 그룹 변경 요청이 수락되면, 상기 클라이언트가 상기 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고 선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하는 단계;
    상기 클라이언트가 동일한 우선 순위를 가지는 지역 그룹에 속하는 데이터 노드들 중 하나를 상기 대상 데이터 노드로서 결정하는 단계;
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 단계가 수행되도록 야기하는 단계; 및
    상기 클라이언트에 의하여 새로운 지역 그룹에 속하는 대상 데이터 노드들의 목록이 회신되면, 상기 프락시 서버가 회신된 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  18. 제15항에 있어서,
    상기 지역 그룹 결정 단계는, 상기 클라이언트가 상기 대상 오브젝트를 저장할 대상 데이터 노드들이 속하는 지역 그룹들을 선택하고, 선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하는 단계를 포함하고,
    상기 대상 데이터 노드 결정 단계는, 상기 프락시 서버가 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 상기 대상 데이터 노드로서 결정하는 단계를 포함하며,
    상기 저장 단계는,
    상기 클라이언트가 상기 대상 데이터 노드의 목록을 상기 프락시 서버로부터 수신하는 단계;
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 단계; 및
    상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트를 복제하는 복제 단계를 포함하고,
    상기 메타데이터 갱신 단계는,
    상기 프락시 서버가 상기 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  19. 제18항에 있어서,
    상기 대상 데이터 노드 결정 단계는,
    상기 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계 및
    상기 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  20. 제19항에 있어서,
    선택된 지역 그룹들을 변경하기 위한 지역 그룹 변경 단계를 더 포함하며,
    상기 지역 그룹 변경 단계는,
    상기 클라이언트가 상기 프락시 서버에게 지역 그룹 변경 요청을 송신하는 단계;
    상기 지역 그룹 변경 요청이 수락되면, 상기 클라이언트가 상기 대상 오브젝트를 저장할 새로운 대상 데이터 노드들이 속하는 지역 그룹을 선택하고 선택된 지역 그룹들에 대한 상기 클라이언트의 선호도에 의하여 결정되는 우선 순위를 상기 지역 그룹에게 부여하는 단계;
    저장된 오브젝트와 관련된 대상 데이터 노드들의 목록을 상기 메타데이터 데이터베이스에서 삭제하는 단계;
    상기 프락시 서버가 상기 클라이언트가 선택한 지역 그룹들 각각에 포함되는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하여 상기 클라이언트로 전송하는 단계;
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장함으로써, 상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트가 복제되는 복제 단계가 수행되도록 야기하는 단계; 및
    상기 프락시 서버가 상기 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  21. 제20항에 있어서,
    상기 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계; 및
    상기 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하는 단계를 더 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  22. 제15항에 있어서,
    상기 지역 그룹 결정 단계는,
    위치 인식 서버가 상기 데이터 노드들 및 상기 클라이언트의 위치 관계에 기반하여 상기 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하는 단계 및
    위치 인식 서버가 선택된 지역 그룹 및 상기 클라이언트 간의 거리에 기반하여 상기 지역 그룹별 우선 순위를 결정하는 단계를 포함하고,
    상기 대상 데이터 노드 결정 단계는,
    상기 프락시 서버가 상기 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하는 단계; 및
    상기 프락시 서버가 상기 대상 데이터 노드들의 목록 및 상기 지역 그룹별 우선 순위를 상기 클라이언트에게 전송하는 단계를 포함하며,
    상기 메타데이터 갱신 단계는, 상기 프락시 서버가 결정된 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하고,
    상기 저장 단계는,
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 단계; 및
    상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트를 복제하는 복제 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  23. 제22항에 있어서,
    상기 대상 데이터 노드 결정 단계는,
    상기 프락시 서버가 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하는 단계; 및
    상기 프락시 서버가 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  24. 제16항 내지 제23항 중 어느 한 항에 있어서,
    상기 복제 단계는,
    상기 클라이언트가 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  25. 제16항 내지 제23항 중 어느 한 항에 있어서,
    상기 복제 단계는,
    상기 대상 데이터 노드들이, 자신이 속한 지역 그룹의 우선 순위보다 한 단계 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드로부터 상기 대상 오브젝트를 수신하여 저장하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  26. 제16항 내지 제23항 중 어느 한 항에 있어서,
    상기 복제 단계는,
    복제 서버가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 저장된 대상 오브젝트를 독출하는 단계; 및
    상기 복제 서버가 독출된 대상 오브젝트를 가장 높은 우선 순위보다 낮은 우선 순위를 가지는 모든 지역 그룹들에 속하는 대상 데이터 노드에 저장하는 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  27. 제15항에 있어서,
    상기 오브젝트의 고유 정보는 상기 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고,
    상기 데이터 노드의 고유 정보는 상기 데이터 노드의 ID, IP(Internet Protocol) 주소, 및 물리적 위치 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  28. 제15항에 있어서,
    상기 메타데이터는, 상기 데이터 노드들의 사용량, 각 지역 그룹에 속한 데이터 노드들의 목록, 대상 오브젝트에 대한 지역 그룹별 우선 순위, 및 동일한 지역 그룹에 속한 데이터 노드들 간의 우선 순위 중 적어도 하나를 더 포함하는 것을 특징으로 하는 분산 저장 시스템에서 오브젝트를 분산 저장하기 위한 방법.
  29. 제15항 내지 제23항 중 어느 한 항에 따르는 방법을 구현하기 위하여 컴퓨터에 의하여 실행될 수 있는 컴퓨터 프로그램 명령어들을 저장하는 컴퓨터에 의하여 독출가능한 저장 매체.
KR1020100134840A 2010-12-24 2010-12-24 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 KR101585146B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100134840A KR101585146B1 (ko) 2010-12-24 2010-12-24 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
PCT/KR2011/008221 WO2012086918A2 (ko) 2010-12-24 2011-10-31 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US13/336,074 US8495013B2 (en) 2010-12-24 2011-12-23 Distributed storage system and method for storing objects based on locations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100134840A KR101585146B1 (ko) 2010-12-24 2010-12-24 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체

Publications (2)

Publication Number Publication Date
KR20120072907A true KR20120072907A (ko) 2012-07-04
KR101585146B1 KR101585146B1 (ko) 2016-01-14

Family

ID=46314559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100134840A KR101585146B1 (ko) 2010-12-24 2010-12-24 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체

Country Status (3)

Country Link
US (1) US8495013B2 (ko)
KR (1) KR101585146B1 (ko)
WO (1) WO2012086918A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101681651B1 (ko) * 2015-07-16 2016-12-01 주식회사 케이티 데이터베이스 관리 시스템 및 방법
US9674343B2 (en) 2014-11-20 2017-06-06 At&T Intellectual Property I, L.P. System and method for instantiation of services at a location based on a policy
KR20180045718A (ko) * 2016-10-26 2018-05-04 한국전자통신연구원 빅데이터 플랫폼에서 게이트웨이를 통한 인터페이스 액세스 및 관리 방법
KR102223990B1 (ko) * 2019-11-20 2021-03-08 주식회사 이노그리드 가상 클라우드 서버를 이용한 위치기반 멀티클라우드 서비스 시스템 및 방법

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式***及其数据操作方法
US9330107B1 (en) * 2012-02-08 2016-05-03 Google Inc. System and method for storing metadata for a file in a distributed storage system
GB2500237B (en) * 2012-03-15 2020-09-23 Onapp Ltd Data storage system
US9529772B1 (en) * 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9847907B2 (en) 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
CN107247638B (zh) * 2012-12-25 2020-12-15 华为技术有限公司 一种数据备份方法、装置和***
US9659080B1 (en) * 2013-04-29 2017-05-23 Google Inc. Categorization for constraint-based placement of object replicas in a distributed storage system
CN104731516B (zh) * 2013-12-18 2019-03-01 腾讯科技(深圳)有限公司 一种存取文件的方法、装置及分布式存储***
US9635109B2 (en) 2014-01-02 2017-04-25 International Business Machines Corporation Enhancing reliability of a storage system by strategic replica placement and migration
US9858013B1 (en) * 2014-05-05 2018-01-02 EMC IP Holding Company LLC Scalable distributed storage system infrastructure
US11539611B2 (en) * 2014-05-08 2022-12-27 Microsoft Technology Licensing, Llc Fine-grained network monitoring
CN105095315B (zh) * 2014-05-23 2018-09-21 中国电信股份有限公司 动态调节哈希环节点数的方法、装置和***
CN105635222A (zh) * 2014-11-06 2016-06-01 中兴通讯股份有限公司 云终端升级方法、***、网管服务器及代理服务器
CN104767822A (zh) * 2015-04-21 2015-07-08 成都影泰科技有限公司 一种基于版本的数据存储方法
US10346826B2 (en) * 2015-07-28 2019-07-09 Wesley John Boudville Blockchain and deep links for mobile apps
US11089099B2 (en) * 2015-09-26 2021-08-10 Intel Corporation Technologies for managing data object requests in a storage node cluster
US9990260B2 (en) * 2016-04-29 2018-06-05 Netapp Inc. Cross-platform replication
CN106021375B (zh) * 2016-05-11 2019-11-26 深圳市永兴元科技股份有限公司 数据库访问方法及数据库代理节点
US11159615B2 (en) 2016-07-12 2021-10-26 International Business Machines Corporation Replication optimization for object storage environments
US10855705B2 (en) * 2017-09-29 2020-12-01 Cisco Technology, Inc. Enhanced flow-based computer network threat detection
CN110071949B (zh) * 2018-01-23 2022-05-24 阿里巴巴集团控股有限公司 一种跨地理区域管理计算应用的***、方法和装置
KR102022488B1 (ko) 2018-02-28 2019-09-18 (주)이지스 에이치베이스를 이용한 대용량 공간 데이터의 저장 및 검색 방법
CN108596735A (zh) * 2018-04-28 2018-09-28 北京旷视科技有限公司 信息推送方法、装置及***
CN109063121B (zh) * 2018-08-01 2024-04-05 平安科技(深圳)有限公司 数据存储方法、装置、计算机设备及计算机存储介质
WO2020206638A1 (en) * 2019-04-10 2020-10-15 Beijing Voyager Technology Co., Ltd. Systems and methods for data storage
CN111611317B (zh) * 2020-06-08 2023-05-30 杭州复杂美科技有限公司 区块链分布式存储分组方法、设备和存储介质
US11924177B2 (en) * 2021-06-11 2024-03-05 Whitestar Communications, Inc. Crypto-signed switching between two-way trusted network devices in a secure peer-to-peer data network
US11784813B2 (en) * 2021-07-30 2023-10-10 Whitestar Communications, Inc. Crypto tunnelling between two-way trusted network devices in a secure peer-to-peer data network

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714992A (en) * 1985-11-26 1987-12-22 International Business Machines Corporation Communication for version management in a distributed information service
KR930007928B1 (ko) 1991-01-31 1993-08-21 삼성전자 주식회사 오류정정방법 및 장치
US6684331B1 (en) * 1999-12-22 2004-01-27 Cisco Technology, Inc. Method and apparatus for distributing and updating group controllers over a wide area network using a tree structure
US6587950B1 (en) * 1999-12-16 2003-07-01 Intel Corporation Cluster power management technique
KR100673692B1 (ko) 2000-03-16 2007-01-23 엘지엔시스(주) 패리티 블록코드를 이용한 오류 복구방법
US7418620B1 (en) * 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
JP3690303B2 (ja) 2001-04-19 2005-08-31 日本電気株式会社 分散オブジェクト環境に適用される通信システムおよび通信プログラム
US7191217B2 (en) * 2002-04-10 2007-03-13 Nippon Telegraph And Telephone Corporation Distributed server-based collaborative computing
KR100923394B1 (ko) 2002-06-25 2009-10-23 주식회사 케이티 가상사설망에서의 네트워크 저장공간 구현 방법
JP4387087B2 (ja) 2002-07-25 2009-12-16 三洋電機株式会社 データ記憶装置
JP2004126716A (ja) 2002-09-30 2004-04-22 Fujitsu Ltd 広域分散ストレージシステムを利用したデータ格納方法、その方法をコンピュータに実現させるプログラム、記録媒体、及び広域分散ストレージシステムにおける制御装置
US7739233B1 (en) 2003-02-14 2010-06-15 Google Inc. Systems and methods for replicating data
US20050125456A1 (en) 2003-12-09 2005-06-09 Junichi Hara File migration method based on access history
US20050256923A1 (en) 2004-05-14 2005-11-17 Citrix Systems, Inc. Methods and apparatus for displaying application output on devices having constrained system resources
US7620687B2 (en) 2004-06-25 2009-11-17 Telcordia Technologies, Inc. Distributed request routing
US20060069828A1 (en) 2004-06-30 2006-03-30 Goldsmith Michael A Sharing a physical device among multiple clients
JP2008512763A (ja) 2004-09-10 2008-04-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 仮想タイトルを使用する場合に、共有されたコンテンツの冗長的な複製を避けるシステム及び方法
KR100719285B1 (ko) 2005-03-30 2007-05-17 (주)이스트소프트 웹 스토리지의 분산 파일관리시스템 및 파일관리방법
US7546427B2 (en) * 2005-09-30 2009-06-09 Cleversafe, Inc. System for rebuilding dispersed data
US9392078B2 (en) 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
JP4859595B2 (ja) 2006-09-01 2012-01-25 株式会社日立製作所 記憶システム、そのデータ再配置方法、データ再配置プログラム
US8239479B2 (en) 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
WO2009032712A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
KR20090036276A (ko) 2007-10-09 2009-04-14 주식회사 대우일렉트로닉스 광정보 처리장치의 데이터 페이지, 데이터 페이지 맵핑방법및 데이터 페이지 오류검사방법
US7865762B2 (en) 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
KR100946986B1 (ko) 2007-12-13 2010-03-10 한국전자통신연구원 파일 저장 시스템 및 파일 저장 시스템에서의 중복 파일관리 방법
US7747663B2 (en) * 2008-03-05 2010-06-29 Nec Laboratories America, Inc. System and method for content addressable storage
KR101007356B1 (ko) * 2008-08-28 2011-01-13 한국전자통신연구원 가상화 시스템 상에서 입출력 디바이스 설정장치 및 방법
US9367257B2 (en) 2008-09-11 2016-06-14 Microsoft Technology Licensing, Llc Techniques for resource location and migration across data centers
KR20100055297A (ko) 2008-11-17 2010-05-26 에스케이텔레콤 주식회사 분산 저장된 컨텐츠의 리다이렉티드 url을 이용한 동시 멀티미디어 스트리밍 시스템 및 방법
KR101485610B1 (ko) 2008-11-27 2015-01-22 주식회사 케이티 네트워크 구조를 고려한 분산형 컨텐트 전달 시스템 및 그 방법
KR101104729B1 (ko) 2008-11-28 2012-01-11 에스케이플래닛 주식회사 최적의 캐시조각 획득방식을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101023585B1 (ko) 2008-12-08 2011-03-21 주식회사 케이티 객체기반 스토리지 시스템에서 클라이언트 요청빈도에 따른데이터 관리 방법
KR101010219B1 (ko) 2008-12-16 2011-01-21 한국전자통신연구원 비대칭 분산 파일 시스템과 그의 점진적 일관성 오류 감지 및 복구 방법
KR20100073154A (ko) 2008-12-22 2010-07-01 한국전자통신연구원 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
KR20100122197A (ko) 2009-05-12 2010-11-22 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
US8261033B1 (en) * 2009-06-04 2012-09-04 Bycast Inc. Time optimized secure traceable migration of massive quantities of data in a distributed storage system
US20100318609A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
KR101626117B1 (ko) 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
KR100931260B1 (ko) * 2009-07-08 2009-12-11 (주)나노레볼루션 Sbc 환경에서 사용자 단말의 이동성 지원을 위한 끊김없는 서버 접속 및 서비스 연결 방법 및 시스템
KR100985169B1 (ko) 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US8305932B2 (en) * 2009-12-15 2012-11-06 At&T Intellectual Property I, L.P. Method and apparatus for growing next generation network using modular design
US8380659B2 (en) * 2010-02-09 2013-02-19 Google Inc. Method and system for efficiently replicating data in non-relational databases
US9600791B2 (en) * 2010-06-07 2017-03-21 Hewlett Packard Enterprise Development Lp Managing a network system
EP2557892A1 (en) * 2011-08-11 2013-02-13 Pioneer Digital Design Centre Ltd Mobile data sharing networks

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674343B2 (en) 2014-11-20 2017-06-06 At&T Intellectual Property I, L.P. System and method for instantiation of services at a location based on a policy
US10575121B2 (en) 2014-11-20 2020-02-25 At&T Intellectual Property I, L.P. System and method for instantiation of services at a location based on a policy
KR101681651B1 (ko) * 2015-07-16 2016-12-01 주식회사 케이티 데이터베이스 관리 시스템 및 방법
KR20180045718A (ko) * 2016-10-26 2018-05-04 한국전자통신연구원 빅데이터 플랫폼에서 게이트웨이를 통한 인터페이스 액세스 및 관리 방법
KR102223990B1 (ko) * 2019-11-20 2021-03-08 주식회사 이노그리드 가상 클라우드 서버를 이용한 위치기반 멀티클라우드 서비스 시스템 및 방법

Also Published As

Publication number Publication date
KR101585146B1 (ko) 2016-01-14
US20120166394A1 (en) 2012-06-28
US8495013B2 (en) 2013-07-23
WO2012086918A2 (ko) 2012-06-28
WO2012086918A3 (ko) 2012-09-07

Similar Documents

Publication Publication Date Title
KR101585146B1 (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
KR101544480B1 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US10104175B2 (en) Massively scalable object storage system
US9760289B2 (en) Massively scalable object storage for storing object replicas
US9626420B2 (en) Massively scalable object storage system
US7634566B2 (en) Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US7457835B2 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
US20120166403A1 (en) Distributed storage system having content-based deduplication function and object storing method
US7076553B2 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
US8510267B2 (en) Synchronization of structured information repositories
US9659038B2 (en) Efficient snapshot read of a database in a distributed storage system
US11038959B2 (en) State management and object storage in a distributed cloud computing network
JP2014044677A (ja) 送信制御プログラム、通信ノード、および送信制御方法
KR20100073154A (ko) 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템
JP2009527056A (ja) サーバ管理システムおよび方法
CN105068755A (zh) 一种面向云计算内容分发网络的数据副本存储方法
Rajalakshmi et al. An improved dynamic data replica selection and placement in cloud
CN112948178A (zh) 一种数据处理方法、装置、***、设备及介质
JP2014041550A (ja) データ移行処理システムおよびデータ移行処理方法
US20060117041A1 (en) Connection of an application to a resource manager selected from a plurality of resource managers
JP2016162170A (ja) ストレージシステム、ストレージ、管理サーバおよびファイル管理方法
KR20050013519A (ko) 데이터의 배포와 획득시스템 및 데이터의 배포와 획득방법
JP2015165373A (ja) ノードおよびプログラム

Legal Events

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

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5