KR102610996B1 - 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 - Google Patents
데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 Download PDFInfo
- Publication number
- KR102610996B1 KR102610996B1 KR1020160147034A KR20160147034A KR102610996B1 KR 102610996 B1 KR102610996 B1 KR 102610996B1 KR 1020160147034 A KR1020160147034 A KR 1020160147034A KR 20160147034 A KR20160147034 A KR 20160147034A KR 102610996 B1 KR102610996 B1 KR 102610996B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- storage nodes
- data management
- bandwidth
- storage
- Prior art date
Links
- 238000013523 data management Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims description 11
- 238000003860 storage Methods 0.000 claims abstract description 127
- 238000007726 management method Methods 0.000 claims description 18
- 230000014759 maintenance of location Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 13
- 238000007405 data analysis Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 기술에 의한 데이터 관리 시스템은 데이터의 사본을 저장하는 다수의 스토리지 노드 및 프로세싱 노드로부터 데이터에 대한 읽기 요청이 있는 경우 다수의 스토리지 노드 각각에 대하여 사본 중 일부분에 대한 읽기 요청을 제공하고, 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부를 포함한다.
Description
본 발명은 다수의 스토리지에 동일한 데이터를 분산하여 저장하고 다수의 데이터 스토리지 각각으로부터 데이터의 일부분을 읽어 요청된 데이터를 완성하는 방식으로 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법에 관한 것이다.
클라우드 서비스와 같이 다수의 스토리지를 네트워크로 연결하여 데이터 서비스를 제공하는 기술이 활발하게 이용되고 있다.
모바일 네트워크 및 사물 인터넷 등과 같이 네트워크를 통한 데이터 트래픽이 급증하는 추세이다.
이에 따라 네트워크 자체의 속도뿐만 아니라 데이터를 물리적인 매체에 저장하고 물리적인 매체로부터 요청된 데이터를 읽어오는 데이터 관리 시스템의 성능 향상이 매우 중요한 과제가 되고 있다.
종래의 데이터 관리 시스템에서는 다수의 스토리지를 네트워크로 연결하여 동일한 데이터를 여러 스토리지에 복제하여 저장함으로써 데이터에 대한 보호 기능을 제공하고 있을 뿐이다.
이에 따라 다수의 스토리지를 포함하는 데이터 관리 시스템에서 효율적인 데이터 읽기 쓰기를 위한 새로운 기술이 요구되고 있다.
본 기술은 다수의 스토리지에 복제되어 저장된 데이터를 읽는 경우 다수의 사본 각각으로부터 데이터의 일부분을 읽어 전체 데이터를 완성함으로써 성능을 향상시킨 데이터를 분산 처리하는 데이터 관리 시스템 및 데이터 관리 방법을 제공한다.
본 기술은 데이터의 일부분을 읽는 경우 각 스토리지의 입출력 성능에 따라 각 스토리지로부터 읽는 데이터 양을 적응적으로 조절함으로써 성능을 향상시킨 데이터를 분산 처리하는 데이터 관리 시스템 및 데이터 관리 방법을 제공한다.
본 발명의 일 실시예에 의한 데이터 관리 시스템은 데이터의 사본을 저장하는 다수의 스토리지 노드 및 프로세싱 노드로부터 데이터에 대한 읽기 요청이 있는 경우 다수의 스토리지 노드 각각에 대하여 사본 중 일부분에 대한 읽기 요청을 제공하고, 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부를 포함한다.
본 발명의 일 실시예에 의한 데이터 관리 방법은 다수의 스토리지 노드 각각에 대하여 대역폭을 할당하는 단계; 다수의 스토리지 노드 각각에 대하여 데이터의 일부분에 대한 읽기 요청을 제공하는 단계; 및 다수의 스토리지 노드 각각으로부터 읽은 데이터의 일부분들을 조합하여 데이터를 출력하는 단계를 포함한다.
본 기술에 의한 데이터 관리 시스템은 동일한 데이터에 대한 사본을 저장하는 다수의 스토리지 각각으로부터 하나의 데이터를 구성하는 일부분들을 읽고 이를 하나의 데이터로 조합함으로써 데이터 읽기 속도를 현저하게 향상시킨다.
본 기술에 의한 데이터 관리 시스템은 데이터 관리 시스템에 포함된 다수의 스토리지에 대한 입출력 성능을 고려하여 각 스토리지에서 읽는 데이터의 양을 적응적으로 조절함으로써 데이터 처리 속도를 향상시킨다.
도 1은 본 발명의 일 실시예에 의한 데이터 관리 시스템을 나타낸 블록도.
도 2는 도 1의 분산 데이터 관리부의 상세 블록도.
도 3은 프로세싱 노드에서 데이터 관리 시스템에 데이터를 저장하는 동작을 설명하는 설명도.
도 4는 스토리지에 데이터를 저장하는 다른 예를 나타낸 설명도.
도 5는 프로세싱 노드에서 데이터 읽기를 요청한 경우의 동작을 설명하는 설명도.
도 6은 도 5에서 본 발명의 효과를 설명하는 설명도.
도 7은 프로세싱 노드에서 데이터 읽기를 요청한 경우의 다른 동작을 설명하는 설명도.
도 8은 본 발명의 일 실시예에 의한 데이터 관리 시스템의 동작을 나타낸 순서도.
도 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: 스토리지
10, 11, 12: 프로세싱 노드
100: 데이터 관리 시스템
110: 분산 데이터 관리부
111: 데이터 분석부
112: 분산 자원 관리부
1121: 입출력 요청 생성부
1122: 상태 관리부
1123: 입출력 대역폭 설정부
1124: 입출력 성능 감시부
120, 130, 140: 스토리지 노드
121, 131, 141: 입출력 제어부
122, 132, 142: 스토리지
Claims (20)
- 데이터의 사본을 저장하는 다수의 스토리지 노드; 및
프로세싱 노드로부터 상기 데이터에 대한 읽기 요청이 있는 경우 상기 다수의 스토리지 노드 각각에 대하여 상기 사본 중 일부분에 대한 읽기 요청을 제공하고, 상기 다수의 스토리지 노드에서 출력된 일부분들을 조합하여 완성된 데이터를 출력하는 분산 데이터 관리부
를 포함하되,
상기 분산 데이터 관리부는
상기 다수의 스토리지 노드에 대한 대역폭 용량과 상기 다수의 스토리지 노드에 대하여 할당된 대역폭 용량을 비교하여 상기 다수의 스토리지 노드에 대한 입출력 성능을 감시하는 입출력 성능 감시부; 및
상기 다수의 스토리지 노드 중 어느 하나의 스토리지 노드에 대한 대역폭이 상기 어느 하나의 스토리지 노드에 대하여 할당된 대역폭보다 더 작은 경우 상기 다수의 스토리지 노드에 대한 대역폭을 조절하는 입출력 대역폭 설정부
를 포함하는 데이터 관리 시스템. - 삭제
- 삭제
- 삭제
- 청구항 1에 있어서, 상기 분산 데이터 관리부는 상기 데이터와 상기 데이터의 사본이 저장된 상기 다수의 스토리지 노드의 정보를 관리하는 상태 관리부, 상기 다수의 스토리지 노드에 대하여 설정된 입출력 대역폭에 따라 상기 다수의 스토리지 노드에 제공할 상기 일부분에 대한 읽기 요청을 생성하는 입출력 요청 생성부를 더 포함하는 데이터 관리 시스템.
- 청구항 1에 있어서, 상기 분산 데이터 관리부는 일정 시간마다 상기 다수의 프로세싱 노드에 대한 입출력 성능을 참조하여 상기 다수의 프로세싱 노드에서 읽어올 데이터의 양을 조절하는 데이터 관리 시스템.
- 청구항 1에 있어서, 상기 스토리지 노드는 상기 사본을 저장하는 스토리지와 상기 스토리지에 대한 입출력을 제어하는 입출력 제어부를 포함하는 데이터 관리 시스템.
- 청구항 1에 있어서, 상기 사본은 상기 데이터와 동일한 내부 배열을 가지는 데이터 관리 시스템.
- 청구항 1에 있어서, 상기 사본은 상기 데이터와 동일하지 않은 내부 배열을 가지는 데이터 관리 시스템.
- 청구항 9에 있어서, 상기 사본은 상기 스토리지 노드에서 읽을 부분의 순서가 상기 스토리지 노드에서 읽지 않을 부분의 데이터보다 먼저 배치된 내부 배열을 가지는 데이터 관리 시스템.
- 청구항 1에 있어서, 상기 다수의 스토리지 노드는 네트워크에 연결되는 데이터 관리 시스템.
- 청구항 11에 있어서, 상기 분산 데이터 관리부는 상기 네트워크에 연결되는 데이터 관리 시스템.
- 청구항 11에 있어서, 상기 분산 데이터 관리부는 상기 다수의 스토리지 중 어느 하나에 내장되는 데이터 관리 시스템.
- 청구항 11에 있어서, 상기 프로세싱 노드는 상기 네트워크에 연결되는 데이터 관리 시스템.
- 데이터의 사본을 저장하는 다수의 스토리지 노드와 상기 다수의 스토리지 노드를 관리하는 분산 데이터 관리부를 포함하는 데이터 관리 시스템의 데이터 관리 방법으로서,
상기 다수의 스토리지 노드 각각에 대하여 대역폭을 할당하는 단계;
상기 다수의 스토리지 노드 각각에 대하여 데이터의 일부분에 대한 읽기 요청을 제공하는 단계;
상기 다수의 스토리지 노드 각각으로부터 읽은 데이터의 일부분들을 조합하여 데이터를 출력하는 단계;
상기 다수의 스토리지 노드에 대한 입출력 성능을 감시하는 단계; 및
상기 다수의 스토리지 노드에 대한 대역폭을 조절하는 단계
를 포함하되,
상기 입출력 성능을 감시하는 단계는 상기 다수의 스토리지 노드에 대한 대역폭 용량과 상기 다수의 스토리지 노드에 대하여 할당된 대역폭 용량을 비교하는 단계를 포함하고,
상기 대역폭을 조절하는 단계는 상기 다수의 스토리지 노드 중 어느 하나의 스토리지 노드에 대한 대역폭 용량이 상기 어느 하나의 스토리지 노드에 대하여 할당된 대역폭 용량보다 더 작은 경우 상기 다수의 스토리지 노드에 대한 대역폭을 조절하는 단계
를 포함하는 데이터 관리 방법. - 삭제
- 삭제
- 청구항 15에 있어서, 상기 조절하는 단계는 용량을 초과한 스토리지 노드의 개수가 최소가 되도록 상기 다수의 스토리지 노드에 대하여 할당된 대역폭을 조절하는 단계를 포함하는 데이터 관리 방법.
- 청구항 15에 있어서, 용량을 초과한 스토리지 노드에 대해서는 할당된 대역폭을 줄이는 단계를 포함하는 데이터 관리 방법.
- 청구항 18에 있어서, 상기 조절하는 단계는 용량을 초과한 스토리지 노드의 개수가 최소인 조건에서 용량을 초과한 부분의 총합이 최소가 되도록 상기 다수의 스토리지 노드에 대하여 할당된 대역폭을 조절하는 단계를 포함하는 데이터 관리 방법.
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 KR20180050180A (ko) | 2018-05-14 |
KR102610996B1 true 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)
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 |
EP4038486A4 (en) * | 2020-11-17 | 2023-02-22 | Zhejiang Dahua Technology Co., Ltd | DATA STORAGE AND PROCESSING SYSTEMS AND PROCEDURES |
US20220229569A1 (en) * | 2021-01-20 | 2022-07-21 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for storage query planning |
Citations (1)
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 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2622452A4 (en) | 2010-09-30 | 2017-10-04 | Nec Corporation | Storage system |
US20120136960A1 (en) | 2010-11-29 | 2012-05-31 | Beijing Z & W Technology Consulting Co., Ltd | Cloud Storage Data Access Method, Apparatus and System |
KR101907067B1 (ko) * | 2011-11-02 | 2018-10-11 | 삼성전자 주식회사 | 요청 패턴을 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법 |
KR20130048594A (ko) * | 2011-11-02 | 2013-05-10 | 삼성전자주식회사 | 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법 |
KR102137217B1 (ko) * | 2013-07-18 | 2020-07-23 | 한국전자통신연구원 | 비대칭 파일 시스템의 데이터 복제 방법 |
KR101694980B1 (ko) * | 2014-01-20 | 2017-01-23 | 한국전자통신연구원 | 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버 |
US9773014B2 (en) * | 2014-06-03 | 2017-09-26 | Samsung Electronics Co., Ltd. | Heterogeneous distributed file system using different types of storage mediums |
-
2016
- 2016-11-04 KR KR1020160147034A patent/KR102610996B1/ko active IP Right Grant
-
2017
- 2017-03-31 US US15/476,234 patent/US10254973B2/en active Active
Patent Citations (1)
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 |
Also Published As
Publication number | Publication date |
---|---|
US10254973B2 (en) | 2019-04-09 |
US20180129425A1 (en) | 2018-05-10 |
KR20180050180A (ko) | 2018-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9891835B2 (en) | Live configurable storage | |
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
CN112015583B (zh) | 一种数据存储的方法、装置和系统 | |
US9361034B2 (en) | Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network | |
CN109725826B (zh) | 管理存储系统的方法、设备和计算机可读介质 | |
US20190163371A1 (en) | Next generation storage controller in hybrid environments | |
US11188258B2 (en) | Distributed storage system | |
JP2008234158A (ja) | ストレージ装置及び記憶領域配置方法 | |
KR102610996B1 (ko) | 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법 | |
CN102111438B (zh) | 参数调整方法、装置和分布式计算平台系统 | |
US10084860B2 (en) | Distributed file system using torus network and method for configuring and operating distributed file system using torus network | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN107133228A (zh) | 一种数据重分布的方法及装置 | |
KR20180046078A (ko) | 데이터베이스 리밸런싱 방법 | |
US12026177B2 (en) | Dynamic adaptive partition splitting | |
JP6175785B2 (ja) | ストレージシステム、ディスクアレイ装置及びストレージシステムの制御方法 | |
CN115878047A (zh) | 一种数据一致性校验方法、装置、设备及存储介质 | |
Cheriere et al. | How fast can one resize a distributed file system? | |
JP2015055878A (ja) | キャッシュ制御装置及びキャッシュの制御方法、ディスクアレイ装置及びそのコントローラ、並びにコンピュータ・プログラム | |
CN112749136B (zh) | 一种基于GlusterFS的文件存储方法及系统 | |
US12131051B2 (en) | Migrating data between different medium layers of a storage system | |
US11586595B1 (en) | Space-efficient techniques for generating unique instances of data objects | |
JP7491545B2 (ja) | 情報処理方法 | |
US20230137007A1 (en) | Data storage method, storage system, storage device, and storage medium | |
CN116360686A (zh) | 一种分布式存储系统性能优化的方法、装置、设备及介质 |
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 |