KR20180050180A - 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 - Google Patents

데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 Download PDF

Info

Publication number
KR20180050180A
KR20180050180A KR1020160147034A KR20160147034A KR20180050180A KR 20180050180 A KR20180050180 A KR 20180050180A KR 1020160147034 A KR1020160147034 A KR 1020160147034A KR 20160147034 A KR20160147034 A KR 20160147034A KR 20180050180 A KR20180050180 A KR 20180050180A
Authority
KR
South Korea
Prior art keywords
data
storage nodes
data management
input
storage
Prior art date
Application number
KR1020160147034A
Other languages
English (en)
Other versions
KR102610996B1 (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 KR1020160147034A priority Critical patent/KR102610996B1/ko
Priority to US15/476,234 priority patent/US10254973B2/en
Publication of KR20180050180A publication Critical patent/KR20180050180A/ko
Application granted granted Critical
Publication of KR102610996B1 publication Critical patent/KR102610996B1/ko

Links

Images

Classifications

    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

본 기술에 의한 데이터 관리 시스템은 데이터의 사본을 저장하는 다수의 스토리지 노드 및 프로세싱 노드로부터 데이터에 대한 읽기 요청이 있는 경우 다수의 스토리지 노드 각각에 대하여 사본 중 일부분에 대한 읽기 요청을 제공하고, 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부를 포함한다.

Description

데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법{DATA MANAGEMENT SYSTEM AND METHOD FOR DISTRIBUTED DATA PROCESSING}
본 발명은 다수의 스토리지에 동일한 데이터를 분산하여 저장하고 다수의 데이터 스토리지 각각으로부터 데이터의 일부분을 읽어 요청된 데이터를 완성하는 방식으로 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법에 관한 것이다.
클라우드 서비스와 같이 다수의 스토리지를 네트워크로 연결하여 데이터 서비스를 제공하는 기술이 활발하게 이용되고 있다.
모바일 네트워크 및 사물 인터넷 등과 같이 네트워크를 통한 데이터 트래픽이 급증하는 추세이다.
이에 따라 네트워크 자체의 속도뿐만 아니라 데이터를 물리적인 매체에 저장하고 물리적인 매체로부터 요청된 데이터를 읽어오는 데이터 관리 시스템의 성능 향상이 매우 중요한 과제가 되고 있다.
종래의 데이터 관리 시스템에서는 다수의 스토리지를 네트워크로 연결하여 동일한 데이터를 여러 스토리지에 복제하여 저장함으로써 데이터에 대한 보호 기능을 제공하고 있을 뿐이다.
이에 따라 다수의 스토리지를 포함하는 데이터 관리 시스템에서 효율적인 데이터 읽기 쓰기를 위한 새로운 기술이 요구되고 있다.
US 9256368 B2 US 20120136960 A1
본 기술은 다수의 스토리지에 복제되어 저장된 데이터를 읽는 경우 다수의 사본 각각으로부터 데이터의 일부분을 읽어 전체 데이터를 완성함으로써 성능을 향상시킨 데이터를 분산 처리하는 데이터 관리 시스템 및 데이터 관리 방법을 제공한다.
본 기술은 데이터의 일부분을 읽는 경우 각 스토리지의 입출력 성능에 따라 각 스토리지로부터 읽는 데이터 양을 적응적으로 조절함으로써 성능을 향상시킨 데이터를 분산 처리하는 데이터 관리 시스템 및 데이터 관리 방법을 제공한다.
본 발명의 일 실시예에 의한 데이터 관리 시스템은 데이터의 사본을 저장하는 다수의 스토리지 노드 및 프로세싱 노드로부터 데이터에 대한 읽기 요청이 있는 경우 다수의 스토리지 노드 각각에 대하여 사본 중 일부분에 대한 읽기 요청을 제공하고, 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부를 포함한다.
본 발명의 일 실시예에 의한 데이터 관리 방법은 다수의 스토리지 노드 각각에 대하여 대역폭을 할당하는 단계; 다수의 스토리지 노드 각각에 대하여 데이터의 일부분에 대한 읽기 요청을 제공하는 단계; 및 다수의 스토리지 노드 각각으로부터 읽은 데이터의 일부분들을 조합하여 데이터를 출력하는 단계를 포함한다.
본 기술에 의한 데이터 관리 시스템은 동일한 데이터에 대한 사본을 저장하는 다수의 스토리지 각각으로부터 하나의 데이터를 구성하는 일부분들을 읽고 이를 하나의 데이터로 조합함으로써 데이터 읽기 속도를 현저하게 향상시킨다.
본 기술에 의한 데이터 관리 시스템은 데이터 관리 시스템에 포함된 다수의 스토리지에 대한 입출력 성능을 고려하여 각 스토리지에서 읽는 데이터의 양을 적응적으로 조절함으로써 데이터 처리 속도를 향상시킨다.
도 1은 본 발명의 일 실시예에 의한 데이터 관리 시스템을 나타낸 블록도.
도 2는 도 1의 분산 데이터 관리부의 상세 블록도.
도 3은 프로세싱 노드에서 데이터 관리 시스템에 데이터를 저장하는 동작을 설명하는 설명도.
도 4는 스토리지에 데이터를 저장하는 다른 예를 나타낸 설명도.
도 5는 프로세싱 노드에서 데이터 읽기를 요청한 경우의 동작을 설명하는 설명도.
도 6은 도 5에서 본 발명의 효과를 설명하는 설명도.
도 7은 프로세싱 노드에서 데이터 읽기를 요청한 경우의 다른 동작을 설명하는 설명도.
도 8은 본 발명의 일 실시예에 의한 데이터 관리 시스템의 동작을 나타낸 순서도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
도 1은 본 발명의 일 실시예에 의한 데이터 관리 시스템을 나타낸 블록도이다.
본 발명의 일 실시예에 의한 데이터 관리 시스템(100)은 분산 데이터 관리부(110)와 다수의 스토리지 노드(120, 130, 140)를 포함한다.
다수의 스토리지 노드는 네트워크(1)를 통해 분산 데이터 관리부(110)에 연결된다.
본 실시예에서 스토리지 노드의 개수가 3개로 도시되어 있으나 스토리지 노드의 개수는 실시예에 따라 다양하게 변경될 수 있다.
스토리지 노드(120, 130, 140)는 입출력 제어부(121, 131, 141)와 스토리지(122, 132, 142)를 포함한다.
스토리지(122, 132, 142)는 하드디스크(HDD), 솔리드 스테이트 디스크(SSD) 등의 물리적인 저장 매체를 지칭할 수 있다.
입출력 제어부(121, 131, 141)는 분산 데이터 관리부(110)를 통해 제공된 데이터 입출력 요청에 따라 스토리지(122, 132, 142)를 제어한다.
본 발명에서 네트워크(1)는 인터넷과 같은 광역 네트워크, 로컬 네트워크, 스토리지 영역 네트워크 등의 임의의 네트워크 또는 이들의 조합으로 구성될 수 있으며 특정한 종류의 네트워크에 한정되지는 않는다.
도시된 바와 같이 분산 데이터 관리부(110)는 스토리지 노드(120, 130, 140) 외부의 독립적인 구성으로 존재하며, 네트워크(1)를 통해 다수의 스토리지 노드를 제어할 수 있다.
이하의 개시에서 분산 데이터 관리부(110)와 그 하위 블록들은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
다른 실시예에서 분산 데이터 관리부(110)는 스토리지 노드에 내장되거나 스토리지 노드 외부에 존재하면서 네트워크를 경유하지 않고 스토리지 노드에 직결될 수도 있다.
프로세싱 노드(10, 11, 12)는 네트워크(1)에 연결되어 네트워크(1)를 통해 데이터 관리 시스템(100)에 데이터 저장을 요청하거나 데이터 관리 시스템(100)에 데이터 읽기를 요청할 수 있다.
프로세싱 노드(10)는 데이터를 이용하는 각종 단말기, 서버를 포함할 수 있다.
프로세싱 노드(10)로부터 데이터 저장 요청이 있는 경우 분산 데이터 관리부(110)는 요청된 데이터의 사본을 다수의 스토리지 노드에 중복하여 저장한다.
프로세싱 노드(10)로부터 데이터 읽기 요청이 있는 경우 분산 데이터 관리부(110)는 다수의 스토리지 노드 각각에 데이터의 일부분에 대한 읽기 요청을 제공하고 스토리지 노드들로부터 수신한 데이터를 조합하여 네트워크(1)를 통해 프로세싱 노드(10)에 출력한다.
도 2는 도 1의 분산 데이터 관리부의 상세 블록도이다.
분산 데이터 관리부(110)는 데이터 분석부(111), 분산 자원 관리부(112)를 포함한다.
데이터 분석부(111)는 프로세싱 노드(10)에서 제공된 데이터 접근 요청의 종류, 데이터의 길이, 주소 등을 분석하여 분산 자원 관리부(112)에 제공한다.
분산 자원 관리부(112)는 입출력 요청 생성부(1121), 상태 관리부(1122)를 포함한다.
입출력 요청 생성부(1121)는 데이터 분석부(111)에서 제공된 입출력 요청에 따라 다수의 스토리지 노드에 출력할 읽기 또는 쓰기 요청을 생성한다.
상태 관리부(1122)는 데이터가 저장된 스토리지 노드의 개수 및 위치, 스토리지 노드의 상태 등의 정보를 저장한다. 상태 관리부(1122)는 분산 파일 시스템을 이용하여 이러한 정보를 관리할 수 있다.
입출력 요청 생성부(1121)는 데이터에 대한 읽기 또는 쓰기 요청을 생성하기 위하여 상태 관리부(1122)를 참조할 수 있다.
도 3은 프로세싱 노드에서 데이터 관리 시스템에 데이터를 저장하는 동작을 설명하는 설명도이다.
도 3은 프로세싱 노드(10)에서 데이터 A에 대한 저장 요청을 네트워크(1)를 통해 데이터 관리 시스템(110)에 제공하는 경우이다.
도 3의 예에서 데이터 A는 6개의 부분을 포함하는 경우를 예시한다. 이때 부분은 데이터를 구성하는 단위로서 섹터, 블록 등의 단위일 수 있다.
데이터 분석부(111)는 프로세싱 노드(10)로부터 제공된 요청의 종류와 데이터의 길이를 분석하여 분산 자원 관리부(112)에 제공한다.
입출력 요청 생성부(1121)는 데이터 A에 대한 쓰기 요청을 각각의 스토리지 노드(120, 130, 140)에 제공한다.
상태 관리부(1122)는 데이터 A가 저장되는 스토리지 노드의 위치, 스토리지의 상태 등에 관한 정보를 저장할 수 있다.
입출력 제어부(121, 131, 141)는 데이터 A에 대한 저장 요청을 수신하면 스토리지(122, 132, 142)에 이를 저장한다.
이에 따라 프로세싱 노드(10)에서 쓰기 요청된 데이터 A의 사본은 다수의 스토리지(122, 132, 142)에 중복적으로 저장된다.
도 3의 실시예에서 입출력 제어부(121, 131, 141)는 데이터 A의 사본을 스토리지(122, 132, 142)에 저장할 때 원본과 동일하게 1번에서 6번의 순서대로 저장한다.
도 4는 데이터를 저장하는 다른 실시예를 나타낸다.
도 4의 실시예에서 입출력 제어부(121, 131, 141)는 데이터의 사본을 저장할 때 그 순서를 원본과 다르게 저장할 수 있다.
입출력 제어부(121)는 스토리지(122)에 데이터 A의 사본을 원본과 동일하게 1번에서 6번까지 저장한다.
입출력 제어부(131)는 데이터 A의 사본을 원본과 다른 순서로 스토리지(132)에 저장한다. 예를 들어 입출력 제어부(131)는 데이터 A의 사본을 저장할 때 3번과 4번 먼저 저장하고 이후에 1번, 2번, 5번, 6번의 순서로 저장한다.
입출력 제어부(141)는 데이터 A의 사본을 원본과 다른 순서로 스토리지(142)에 저장한다. 예를 들어 입출력 제어부(141)는 데이터 A의 사본을 저장할 때 5번과 6번 먼저 저장하고 이후에 1번, 2번, 3번, 4번의 순서로 저장한다.
본 발명의 경우 데이터 읽기 요청 시 스토리지로부터 데이터의 전부가 아닌 일부를 읽어온다. 이에 따라 각 스토리지에서 읽어올 부분을 먼저 저장하는 경우 데이터 읽기 속도가 향상될 수 있다.
예를 들어 스토리지 노드로부터 읽어올 데이터 부분들이 미리 정해진 경우라면 각 입출력 제어부(121, 131, 141)는 먼저 읽어올 부분들을 먼저 저장하고 나머지 부분들을 나중에 저장할 수 있다.
다른 예에서 입출력 요청 생성부(1121)는 데이터 접근 패턴을 고려하여 각 입출력 제어부(121, 131, 141)에 쓰기 요청을 제공하는 경우 데이터 부분들의 내부 배열 순서를 지정할 수 있다.
데이터 접근 패턴에 대한 정보는 요청된 데이터에 대한 주소 범위, 접근 단위(예를 들어 섹터, 블록 등), 접근 주기 등을 포함할 수 있다.
데이터 접근 패턴에 대한 정보는 데이터 분석부(111)에서 분석되어 분산 자원 관리부(112)에 제공될 수 있다.
도 5는 프로세싱 노드에서 데이터 읽기를 요청한 경우의 동작을 설명하는 설명도이다.
프로세싱 노드(10)에서 데이터 A에 대한 읽기 요청을 네트워크(1)를 통해 데이터 관리 시스템(100)에 제공한다.
분산 데이터 관리부(110)의 데이터 분석부(111)는 요청의 종류, 데이터의 길이 등에 대한 정보를 분산 자원 관리부(112)에 제공한다.
입출력 요청 생성부(1121)는 상태 관리부(1122)를 참조하여 데이터 A의 사본이 저장된 스토리지 노드의 위치에 관한 정보, 현재 가용한 스토리지 노드의 정보를 얻는다.
입출력 요청 생성부(1121)는 식별된 스토리지 노드들에 데이터 A의 사본의 일부분에 대한 읽기 요청을 생성하여 입출력 제어부에 제공한다.
도시된 실시예에서 입출력 요청 생성부(1121)는 입출력 제어부(121)에 데이터 A 중에서 1번과 2번에 대한 읽기 요청을 제공하고, 입출력 제어부(131)에 데이터 A 중에서 3번과 4번에 대한 읽기 요청을 제공하고, 입출력 제어부(141)에 데이터 A 중에서 5번과 6번에 대한 읽기 요청을 제공한다.
입출력 제어부(121, 131, 141)는 스토리지(122, 132, 142)에서 해당하는 부분을 읽어 이를 분산 데이터 관리부(110)에 출력한다.
분산 데이터 관리부(110)는 출력된 데이터를 조합하여 네트워크(1)를 통해 프로세싱 노드(10)에 제공한다.
도 5에 도시된 바와 같이 본 발명에서는 다수의 스토리지에서 데이터 사본의 일부분을 동시에 읽어온 후 이를 조합하여 출력하므로 읽기 처리 속도가 크게 향상될 수 있다.
도 6은 도 5의 예에서 본 발명의 효과를 설명하는 설명도이다.
종래의 경우에는 T0에 어느 한 스토리지 노드에 읽기 요청이 제공된다. 이에 따라 종래의 경우는 데이터를 1번에서 6번까지 순차적으로 읽어오는 동작이 T2에서 완료된다.
이에 비하여 본 발명에서는 T0에서 다수의 스토리지 노드에 다수의 읽기 요청이 제공된다. 즉 1번과 2번에 대한 읽기 요청, 3번과 4번에 대한 읽기 요청, 5번과 6번에 대한 읽기 요청이 동시에 제공되어 이들을 읽어 오는 동작이 T2보다 빠른 T1에 완료된다.
도 7은 프로세싱 노드에서 데이터 읽기를 요청한 경우의 다른 동작을 설명하는 설명도이다.
본 실시예에서는 각 스토리지 노드에 대해서 읽어올 데이터 부분의 크기를 스토리지 노드에 대하여 입출력 성능을 고려하여 서로 다르게 가변적으로 제어한다.
본 실시예에서 분산 자원 관리부(112)는 입출력 대역폭 설정부(1123)와 입출력 성능 감시부(1124)를 더 포함한다.
입출력 성능 감시부(1124)는 각 스토리지 노드와의 사이에 입출력 성능을 감시한다. 입출력 성능은 스토리지 노드에 대한 입출력 속도, 대역폭의 최대 용량, 현재 사용 중인 대역폭 등에 따라 평가될 수 있다.
입출력 대역폭 설정부(1123)는 스토리지 노드와의 입출력 성능에 따라 해당 스토리지 노드에서 읽어올 데이터의 양을 결정할 수 있다.
입출력 요청 생성부(1121)는 입출력 대역폭 설정부(1123)에서 결정한 데이터의 양에 따라 입출력 요청을 생성하여 입출력 제어부(121, 131, 141)에 제공한다.
본 실시예에서 스토리지 노드(120)의 입출력 성능이 가장 좋고, 스토리지 노드(140)의 입출력 성능이 가장 나쁘고, 스토리지 노드(130)의 입출력 성능은 그 중간이다.
이에 따라 입출력 제어부(121)에 대해서는 1번, 2번, 3번에 대한 읽기 요청이 제공되고, 입출력 제어부(131)에 대해서는 4번, 5번에 대한 읽기 요청이 제공되고, 입출력 제어부(141)에 대해서는 6번에 대한 읽기 요청이 제공된다.
본 실시예는 입출력 성능을 고려하여 대역폭을 가변적으로 조절함으로써 전체적인 데이터 읽기 시간을 줄일 수 있다.
도 8은 본 발명의 일 실시예에 의한 데이터 관리 시스템의 동작을 나타낸 순서도이다.
도 8의 실시예는 읽기 동작 시 스토리지 노드에 대해서 대역폭을 가변적으로 조절하는 실시예에 연관된다.
먼저 데이터 관리 시스템(100)이 프로세싱 노드(10)로부터 읽기 요청을 수신한다(S100).
상태 관리부(1122)를 참조하여 요청된 데이터가 저장된 N개의 스토리지 노드에서 사본을 확인한다(S200).
이후 N개의 스토리지 노드에 대역폭을 할당한다(S300).
이때 대역폭은 입출력 성능 감시부(1124)에서 각 스토리지 노드에 대한 입출력 성능을 감시한 결과를 참조하여 입출력 대역폭 설정부(1123)에서 결정할 수 있다.
다른 실시예에서는 현재 입출력 성능에 관계없이 각 스토리지 노드에 대한 초기 대역폭을 균등하게 할당할 수도 있다.
이후 각 스토리지 노드의 사본에서 지정된 부분들에 대해서 읽기를 수행한다(S400).
이후 요청된 데이터에 대한 읽기가 완료되었는지 판단한다(S500).
읽기가 완료되었으면 동작을 종료하고, 그렇지 않으면 N 개의 스토리지 노드에 대한 대역폭 용량을 확인한다(S600).
이후 모든 스토리지 노드에 대한 대역폭 용량이 할당된 대역폭 이상인지 확인한다(S700).
모든 스토리지 노드에 대해서 대역폭 용량이 현재 할당된 대역폭 이상인 경우 입출력 성능에 문제가 없는 것으로 보고 각 스토리지 노드에 대한 대역폭을 변경하지 않고 단계(S400)로 이동한다.
그렇지 않은 경우 단계(S800)로 이동하여 각 스토리지 노드의 대역폭을 조절한다.
스토리지 노드의 대역폭을 조절하는 경우 용량을 초과한 스토리지 노드의 개수가 최소화되도록 각 스토리지 노드에 대한 대역폭을 조절할 수 있다.
예를 들어 용량을 초과한 스토리지 노드에 대해서는 대역폭을 줄이고, 여유가 있는 스토리지 노드에 대해서는 대역폭을 늘려서 용량을 초과한 스토리지 노드의 개수를 최소화할 수 있다.
용량을 초과한 스토리지 노드의 개수가 최소가 된 상태에서 용량의 초과분이 최소가 되도록 대역폭을 추가로 조절할 수 있다.
이후 단계(S400)로 진행하여 전술한 동작을 반복한다. 이상의 동작은 일정 시간마다 주기적으로 반복될 수 있다.
이상은 본 발명의 개시를 위한 것으로서 이상의 기재가 본 발명의 권리범위를 한정하는 것은 아니다. 본 발명의 권리범위는 특허청구범위에 문언적으로 기재된 범위와 그 균등범위로 정해진다.
1: 네트워크
10, 11, 12: 프로세싱 노드
100: 데이터 관리 시스템
110: 분산 데이터 관리부
111: 데이터 분석부
112: 분산 자원 관리부
1121: 입출력 요청 생성부
1122: 상태 관리부
1123: 입출력 대역폭 설정부
1124: 입출력 성능 감시부
120, 130, 140: 스토리지 노드
121, 131, 141: 입출력 제어부
122, 132, 142: 스토리지

Claims (20)

  1. 데이터의 사본을 저장하는 다수의 스토리지 노드 및
    프로세싱 노드로부터 상기 데이터에 대한 읽기 요청이 있는 경우 상기 다수의 스토리지 노드 각각에 대하여 상기 사본 중 일부분에 대한 읽기 요청을 제공하고, 상기 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부
    를 포함하는 데이터 관리 시스템.
  2. 청구항 1에 있어서, 상기 분산 데이터 관리부는 상기 데이터와 상기 데이터가 저장된 상기 다수의 스토리지 노드의 정보를 관리하는 상태 관리부와 상기 다수의 스토리지 노드에 제공할 상기 일부분에 대한 읽기 요청을 생성하는 입출력 요청 생성부를 포함하는 데이터 관리 시스템.
  3. 청구항 1에 있어서, 상기 분산 데이터 관리부는 상기 다수의 프로세싱 노드에 대한 입출력 성능에 따라 상기 다수의 프로세싱 노드에서 읽어올 데이터의 양을 조절하는 데이터 관리 시스템.
  4. 청구항 3에 있어서, 상기 분산 데이터 관리부는 상기 다수의 스토리지 노드에 대한 입출력 성능을 감시하는 입출력 성능 감시부 및 상기 입출력 성능 감시부를 참조하여 상기 다수의 스토리지 노드에 대한 입출력 대역폭을 설정하는 입출력 대역폭 설정부를 포함하는 데이터 관리 시스템.
  5. 청구항 4에 있어서, 상기 분산 데이터 관리부는 상기 데이터와 상기 데이터의 사본이 저장된 상기 다수의 스토리지 노드의 정보를 관리하는 상태 관리부, 상기 다수의 스토리지 노드에 대하여 설정된 입출력 대역폭에 따라 상기 다수의 스토리지 노드에 제공할 상기 일부분에 대한 읽기 요청을 생성하는 입출력 요청 생성부를 더 포함하는 데이터 관리 시스템.
  6. 청구항 3에 있어서, 상기 분산 데이터 관리부는 일정 시간마다 상기 다수의 프로세싱 노드에 대한 입출력 성능을 참조하여 상기 다수의 프로세싱 노드에서 읽어올 데이터의 양을 조절하는 데이터 관리 시스템.
  7. 청구항 1에 있어서, 상기 스토리지 노드는 상기 사본을 저장하는 스토리지와 상기 스토리지에 대한 입출력을 제어하는 입출력 제어부를 포함하는 데이터 관리 시스템.
  8. 청구항 1에 있어서, 상기 사본은 상기 데이터와 동일한 내부 배열을 가지는 데이터 관리 시스템.
  9. 청구항 1에 있어서, 상기 사본은 상기 데이터와 동일하지 않은 내부 배열을 가지는 데이터 관리 시스템.
  10. 청구항 9에 있어서, 상기 사본은 상기 스토리지 노드에서 읽을 부분의 순서가 상기 스토리지 노드에서 읽지 않을 부분의 데이터보다 먼저 배치된 내부 배열을 가지는 데이터 관리 시스템.
  11. 청구항 1에 있어서, 상기 다수의 스토리지 노드는 네트워크에 연결되는 데이터 관리 시스템.
  12. 청구항 11에 있어서, 상기 분산 데이터 관리부는 상기 네트워크에 연결되는 데이터 관리 시스템.
  13. 청구항 11에 있어서, 상기 분산 데이터 관리부는 상기 다수의 스토리지 중 어느 하나에 내장되는 데이터 관리 시스템.
  14. 청구항 11에 있어서, 상기 프로세싱 노드는 상기 네트워크에 연결되는 데이터 관리 시스템.
  15. 다수의 스토리지 노드 각각에 대하여 대역폭을 할당하는 단계;
    상기 다수의 스토리지 노드 각각에 대하여 데이터의 일부분에 대한 읽기 요청을 제공하는 단계; 및
    상기 다수의 스토리지 노드 각각으로부터 읽은 데이터의 일부분들을 조합하여 데이터를 출력하는 단계
    를 포함하는 데이터 관리 방법.
  16. 청구항 15에 있어서, 상기 다수의 스토리지 노드에 대한 입출력 성능을 감시하는 단계 및 상기 다수의 스토리지 노드에 대한 대역폭을 조절하는 단계를 더 포함하는 데이터 관리 방법.
  17. 청구항 16에 있어서,
    상기 입출력 성능을 감시하는 단계는 상기 다수의 스토리지 노드에 대한 대역폭 용량과 상기 다수의 스토리지 노드에 대하여 할당된 대역폭 용량을 비교하는 단계를 포함하고,
    상기 대역폭을 조절하는 단계는 상기 다수의 스토리지 노드에 대한 대역폭 용량이 상기 다수의 스토리지 노드에 대하여 할당된 대역폭 용량이 더 작은 경우 상기 다수의 스토리지 노드에 대한 대역폭을 조절하는 단계
    를 더 포함하는 데이터 관리 방법.
  18. 청구항 17에 있어서, 상기 조절하는 단계는 용량을 초과한 스토리지 노드의 개수가 최소가 되도록 상기 다수의 스토리지 노드에 대하여 할당된 대역폭을 조절하는 단계를 포함하는 데이터 관리 방법.
  19. 청구항 17에 있어서, 용량을 초과한 스토리지 노드에 대해서는 할당된 대역폭을 줄이는 단계를 포함하는 데이터 관리 방법.
  20. 청구항 18에 있어서, 상기 조절하는 단계는 용량을 초과한 스토리지 노드의 개수가 최소인 조건에서 용량을 초과한 부분의 총합이 최소가 되도록 상기 다수의 스토리지 노드에 대하여 할당된 대역폭을 조절하는 단계를 포함하는 데이터 관리 방법.
KR1020160147034A 2016-11-04 2016-11-04 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 KR102610996B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160147034A KR102610996B1 (ko) 2016-11-04 2016-11-04 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법
US15/476,234 US10254973B2 (en) 2016-11-04 2017-03-31 Data management system and method for processing distributed data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160147034A KR102610996B1 (ko) 2016-11-04 2016-11-04 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법

Publications (2)

Publication Number Publication Date
KR20180050180A true KR20180050180A (ko) 2018-05-14
KR102610996B1 KR102610996B1 (ko) 2023-12-06

Family

ID=62064535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160147034A KR102610996B1 (ko) 2016-11-04 2016-11-04 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법

Country Status (2)

Country Link
US (1) US10254973B2 (ko)
KR (1) KR102610996B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258877B2 (en) 2018-07-26 2022-02-22 Netapp, Inc. Methods for managing workloads in a storage system and devices thereof
WO2022105473A1 (en) * 2020-11-17 2022-05-27 Zhejiang Dahua Technology Co., Ltd. Systems and methods for data storage and computing
US20220229569A1 (en) * 2021-01-20 2022-07-21 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for storage query planning

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079222A1 (en) * 2000-10-06 2003-04-24 Boykin Patrick Oscar System and method for distributing perceptually encrypted encoded files of music and movies
US20120136960A1 (en) 2010-11-29 2012-05-31 Beijing Z & W Technology Consulting Co., Ltd Cloud Storage Data Access Method, Apparatus and System
KR20130048598A (ko) * 2011-11-02 2013-05-10 삼성전자주식회사 요청 패턴을 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
KR20130048594A (ko) * 2011-11-02 2013-05-10 삼성전자주식회사 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
KR20150010242A (ko) * 2013-07-18 2015-01-28 한국전자통신연구원 비대칭 파일 시스템의 데이터 복제 방법
KR20150086649A (ko) * 2014-01-20 2015-07-29 한국전자통신연구원 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
KR20150139408A (ko) * 2014-06-03 2015-12-11 삼성전자주식회사 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법
US9256368B2 (en) 2010-09-30 2016-02-09 Nec Corporation System and method for deduplication of distributed data

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079222A1 (en) * 2000-10-06 2003-04-24 Boykin Patrick Oscar System and method for distributing perceptually encrypted encoded files of music and movies
US9256368B2 (en) 2010-09-30 2016-02-09 Nec Corporation System and method for deduplication of distributed data
US20120136960A1 (en) 2010-11-29 2012-05-31 Beijing Z & W Technology Consulting Co., Ltd Cloud Storage Data Access Method, Apparatus and System
KR20130048598A (ko) * 2011-11-02 2013-05-10 삼성전자주식회사 요청 패턴을 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
KR20130048594A (ko) * 2011-11-02 2013-05-10 삼성전자주식회사 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
KR20150010242A (ko) * 2013-07-18 2015-01-28 한국전자통신연구원 비대칭 파일 시스템의 데이터 복제 방법
KR20150086649A (ko) * 2014-01-20 2015-07-29 한국전자통신연구원 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
KR20150139408A (ko) * 2014-06-03 2015-12-11 삼성전자주식회사 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법

Also Published As

Publication number Publication date
KR102610996B1 (ko) 2023-12-06
US20180129425A1 (en) 2018-05-10
US10254973B2 (en) 2019-04-09

Similar Documents

Publication Publication Date Title
CN108780386B (zh) 一种数据存储的方法、装置和系统
US10853139B2 (en) Dynamic workload management based on predictive modeling and recommendation engine for storage systems
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
US20190163371A1 (en) Next generation storage controller in hybrid environments
KR20120120702A (ko) 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
US8566555B2 (en) Data insertion system, data control device, storage device, data insertion method, data control method, data storing method
JP2004252663A (ja) ストレージ装置、分担範囲決定方法及びプログラム
CN103067433A (zh) 一种分布式存储系统的数据迁移方法、设备和系统
KR102192442B1 (ko) 쿠버네티스 클러스터에서의 리더 분산 방법 및 리더 분산 시스템
US10084860B2 (en) Distributed file system using torus network and method for configuring and operating distributed file system using torus network
KR102610996B1 (ko) 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법
CN109582213A (zh) 数据重构方法及装置、数据存储系统
US10057348B2 (en) Storage fabric address based data block retrieval
US20080228841A1 (en) Information processing system, data storage allocation method, and management apparatus
CN112379825A (zh) 基于数据特征分池的分布式数据存储方法及装置
US11188258B2 (en) Distributed storage system
JP7398567B2 (ja) 動的適応型パーティション分割
US11334456B1 (en) Space efficient data protection
KR101661475B1 (ko) 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
JP6175785B2 (ja) ストレージシステム、ディスクアレイ装置及びストレージシステムの制御方法
CN109960474A (zh) 基于自动精简配置的数据更新方法、装置、设备及介质
US10063256B1 (en) Writing copies of objects in enterprise object storage systems
US8543784B1 (en) Backup application coordination with storage array power saving features
Cheriere et al. How fast can one resize a distributed file system?
GB2443442A (en) Automated redundancy control and recovery mechanisms in a clustered computing system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant