KR20220080329A - Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 - Google Patents

Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR20220080329A
KR20220080329A KR1020200169320A KR20200169320A KR20220080329A KR 20220080329 A KR20220080329 A KR 20220080329A KR 1020200169320 A KR1020200169320 A KR 1020200169320A KR 20200169320 A KR20200169320 A KR 20200169320A KR 20220080329 A KR20220080329 A KR 20220080329A
Authority
KR
South Korea
Prior art keywords
encoding
server
data
storage
api gateway
Prior art date
Application number
KR1020200169320A
Other languages
English (en)
Other versions
KR102531765B9 (ko
KR102531765B1 (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 KR1020200169320A priority Critical patent/KR102531765B1/ko
Publication of KR20220080329A publication Critical patent/KR20220080329A/ko
Application granted granted Critical
Publication of KR102531765B1 publication Critical patent/KR102531765B1/ko
Publication of KR102531765B9 publication Critical patent/KR102531765B9/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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법이 제시된다. 일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템은, 클라이언트로부터 PUT 오브젝트를 요청 받아, 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 API 게이트웨이 서버; 및 상기 API 게이트웨이 서버로부터 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 스토리지 서버를 포함하여 이루어질 수 있다.

Description

PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법{SYSTEM OF HYBRID OBJECT STORAGE FOR ENHANCING PUT OBJECT THROUGHPUT AND ITS OPERATION METHOD}
아래의 실시예들은 PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법에 관한 것이다.
이 특허는 2020년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구임(2020-0-01389, 인공지능융합연구센터지원(인하대학교)). 또한, 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. NRF2020R1F1A106563811).
관리해야 하는 데이터의 양이 증가함에 따라 클라우드 오브젝트 스토리지의 수요가 증가하고 있다. 하지만, 보안 및 비용의 문제로 많은 기업과 기관들은 AWS, Microsoft, Google, IBM 등에서 제공하는 상용 클라우드 오브젝트 스토리지 서비스를 지양하고, 자체적인 스토리지 시스템을 구축하려는 노력을 많이 하고 있다. 또한, 최근에는 여러 오픈소스 프로젝트에서 오브젝트 스토리지 시스템을 제안하고 있다.
이렇게 제안된 오브젝트 스토리지 시스템에서는 높은 가용성과 강인성을 클라이언트에게 제공하기 위해 인코딩의 작업을 진행한다.
도 1은 일반적인 Replication 인코딩 방식을 설명하기 위한 도면이다. 또한, 도 2는 일반적인 이레이저 인코딩 방식을 설명하기 위한 도면이다.
인코딩의 방식은 크게 두 가지가 있다. 첫 번째 인코딩 방식은, 도 1에 도시된 바와 같이, 데이터(110)를 여러 개의 데이터(111, 112, 113)로 복제하여 여러 곳에 저장하는 Replication 방식이다. 두 번째 인코딩 방식은, 도 2에 도시된 바와 같이, 데이터(210)를 여러 데이터 청크 파일(211, 212, 213, 214)로 쪼갠 뒤, 이를 연산하여 패리티 청크 파일들(215, 216)을 만들어 여러 곳에 저장하는 이레이저 인코딩(erasure encoding) 방식이다.
두 개의 인코딩 방식 중, 여러 오브젝트 스토리지 사업자와 오픈소스 프로젝트는 비용적인(예컨대, 동일한 양의 데이터를 저장하는데 필요한 스토리지 공간) 문제로 이레이저 인코딩(erasure encoding) 방식을 채택하고 있다.
최신 오브젝트 스토리지 시스템에서는 한 서버(예컨대, API(Application Programming Interface) 게이트웨이 서버 또는 스토리지 서버)에서 인코딩을 수행하기 때문에, 한정된 인프라 환경에서는 PUT 오브젝트 처리량이 인프라의 가용 용량에 따라 차이가 난다. 따라서 프로세싱/네트워킹 자원을 유연하게 사용하면서 인프라 가용 용량을 최대로 활용할 수 있는 스토리지 시스템이 필요하다.
한국등록특허 10-1683352호는 이러한 클라우드 기반 어플리케이션들을 위한 센서 API 프레임워크에 관한 기술을 기재하고 있다.
한국등록특허 10-1683352호
실시예들은 PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법에 관하여 기술하며, 보다 구체적으로 주어진 인프라 환경에서 프로세싱 및 네트워크 자원을 효율적으로 사용하면서 네트워킹/프로세싱 병목 현상을 피하고, 오브젝트 저장 처리속도를 높일 수 있는 하이브리드 오브젝트 스토리지 시스템 구조에 관한 기술을 제공한다.
실시예들은 오브젝트 스토리지에서 이레이저 인코딩(erasure encoding)을 API 게이트웨이 서버와 스토리지 서버에서 동시에 수행함으로써, 이레이저 인코딩(erasure encoding) 방식을 통해 시스템에 대한 신뢰도를 향상시키면서, 인프라의 자원을 유연하게 활용해 높은 PUT 오브젝트 처리량을 달성할 수 있는, PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법을 제공하는데 있다.
일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템은, 클라이언트로부터 PUT 오브젝트를 요청 받아, 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 API 게이트웨이 서버; 및 상기 API 게이트웨이 서버로부터 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 스토리지 서버를 포함하여 이루어질 수 있다.
상기 하이브리드 오브젝트 스토리지 시스템은, 네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정하고, 상기 인코딩 방식은, 상기 API 게이트웨이 서버에서 인코딩 후 청크 파일을 복수개의 스토리지 서버로 분배하거나, 상기 API 게이트웨이 서버에서 데이터를 그대로 상기 스토리지 서버로 포워딩(forwarding) 한 후, 상기 스토리지 서버에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버로 분배할 수 있다.
다른 실시예에 따른 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법은, API 게이트웨이 서버에서 클라이언트로부터 PUT 오브젝트를 요청 받는 단계; PUT 오브젝트 요청을 받은 상기 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 단계; 및 상기 스토리지 서버에서 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계를 포함하여 이루어질 수 있다.
상기 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 단계는, 네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정하는 단계를 포함하고, 상기 인코딩 방식은, 상기 API 게이트웨이 서버에서 인코딩 후 청크 파일을 복수개의 스토리지 서버로 분배하거나, 상기 API 게이트웨이 서버에서 데이터를 그대로 상기 스토리지 서버로 포워딩(forwarding) 한 후, 상기 스토리지 서버에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버로 분배할 수 있다.
적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계는, 상기 스토리지 서버에서 인코딩이 되지 않은 채로 데이터를 받은 경우, 데이터를 인코딩 하는 단계; 상기 스토리지 서버에서 인코딩을 수행한 후, 하나의 청크 파일을 자신의 디스크에 저장하는 단계; 및 상기 스토리지 서버에서 상기 하나의 청크 파일을 제외한 나머지 청크 파일을 적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계를 포함할 수 있다.
실시예들에 따르면 주어진 인프라 환경에서 프로세싱 및 네트워크 자원을 효율적으로 사용하면서 네트워킹/프로세싱 병목 현상을 피하고, 오브젝트 저장 처리속도를 높일 수 있는 PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법을 제공할 수 있다.
실시예들에 따르면 오브젝트 스토리지에서 이레이저 인코딩(erasure encoding)을 API 게이트웨이 서버와 스토리지 서버에서 동시에 수행함으로써, 이레이저 인코딩(erasure encoding) 방식을 통해 시스템에 대한 신뢰도를 향상시키면서, 인프라의 자원을 유연하게 활용해 높은 PUT 오브젝트 처리량을 달성할 수 있는, PUT 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법을 제공할 수 있다.
도 1은 일반적인 Replication 인코딩 방식을 설명하기 위한 도면이다.
도 2는 일반적인 이레이저 인코딩 방식을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 클라우드 오브젝트 스토리지 시스템 모델을 나타내는 도면이다.
도 4a는 일 실시예에 따른 API 게이트웨이 서버에서 인코딩이 진행되는 경우를 논리적으로 표현하는 도면이다.
도 4b는 일 실시예에 따른 스토리지 서버에서 인코딩이 진행되는 경우를 논리적으로 표현하는 도면이다.
도 5는 일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템을 나타내는 도면이다.
도 6은 일 실시예에 따른 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법을 나타내는 흐름도이다.
도 7은 일 실시예에 따른 각 서버에 20 core CPU를 사용한 인코딩 위치 별 PUT 오브젝트 처리율을 나타내는 도면이다.
도 8은 일 실시예에 따른 각 서버에 50 core CPU를 사용한 인코딩 위치 별 PUT 오브젝트 처리율을 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 실시예들을 설명한다. 그러나, 기술되는 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시예들에 의하여 한정되는 것은 아니다. 또한, 여러 실시예들은 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
최근 공개된 오픈소스 기반 오브젝트 스토리지 시스템의 메인 구성요소를 살펴보면, 클라이언트의 요청을 직접 받아 분석 및 수행하는 API 게이트웨이(Gateway) 서버, 데이터가 실제로 저장되는 공간인 스토리지(storage) 서버, 및 데이터와 관련한 부가정보(예컨대, 데이터 이름, 생성 날짜, 소유자, 사이즈 등)를 관리하는 데이터베이스로 활용되는 메타데이터(metadata) 서버로 구성된다.
이 때, 이레이저 인코딩(erasure encoding)은 여러 개의 데이터 청크 파일을 비트 단위로 일일이 연산하여 패리티 청크 파일을 만들어야 하기 때문에 많은 연산을 필요로 하며, 어느 서버에서 데이터 인코딩 작업을 수행할지를 결정하는 것이 중요하다.
이에 따라 스토리지 시스템이 낼 수 있는 초당 오브젝트 저장(PUT 오프젝트) 속도가 달라지기 때문이다. 일반적으로 오픈소스 오브젝트 스토리지 시스템을 살펴보면, 인코딩을 API 게이트웨이 서버 혹은 스토리지 서버 중 한 곳에서 수행하고 있다.
예를 들어 MinIO(https://min.io/)의 경우, API 게이트웨이 서버에서 인코딩을 수행하도록 구현되어 있으며, OpenSwift(http://openswift.sourceforge.net/)의 경우 스토리지 서버에서 인코딩을 수행하게 구현되어 있다. 여기서, API 게이트웨이 서버 인코딩과 스토리지 서버 인코딩 중 어느 방식이 더 좋다고 말할 수 없으며, 시스템을 구축하는데 주어진 인프라 자원의 구조와 성능에 따라서 달라지게 된다. 특히, 프로세싱과 네트워크 자원이 한정된 인프라에서 인코딩을 한 종류의 서버로 한정해서 수행하게 되면, 주어진 인프라의 가용 자원을 최대한으로 활용하지 못할 수 있고 이로 인한 저장 처리 속도에 저하가 발생할 수 있다.
본 실시예들은 하이브리드 오브젝트 스토리지 시스템에 관한 것으로, 현재 오브젝트 스토리지 시스템에서 사용하는 이레이저 인코딩(erasure encoding)을 그대로 사용하면서도, 앞서 설명한 기존 인코딩 프레임워크의 한계를 극복하기 위한 것이다. 실시예들은, 기존 오브젝트 스토리지 시스템에서 인코딩을 API 게이트웨이 서버와 스토리지 서버 둘 중 한 곳에서 수행한 것과는 다르게, 두 종류의 서버를 모두 활용하면서 그 사용 비율을 조절하는 데이터를 인코딩하는 방식을 제안한다.
제안된 하이브리드 오브젝트 스토리지 시스템은 주어진 클라우드 인프라가 어떻게 주어지는가에 독립적으로 유연하게 사용할 수 있으며, 자원 사용률의 병목 현상도 줄이고, 더 높은 오브젝트 저장 속도를 달성할 있다는 것을 시뮬레이션을 통하여 증명하였다.
도 3은 일 실시예에 따른 클라우드 오브젝트 스토리지 시스템 모델을 나타내는 도면이다.
도 3을 참조하면, 일반적인 클라우드 인프라는 계층적인 구조를 가지고 있다. 가장 상위에 L2/L3/L4 라우터(Router) 및/또는 스위치(Switch)(310)가 분포해 있고, 하위 레이어에 랙(Rack)(320) 단위로 서버들(Server)(330)이 배치되어 있다, 서버(330)의 역할은 랙(320) 단위로 분리되어 있으며, (클라우드) 오브젝트 스토리지 시스템을 구축하기 위하여 API 게이트웨이 용도의 서버(331)와 스토리지 용도의 서버(332)가 분리되어 있다. 여기서, API 게이트웨이 용도의 서버(331)는 간단히 API 게이트웨이 서버로 언급될 수 있으며, 스토리지 용도의 서버(332)는 스토리지 서버로 언급될 수 있다.
각 서버(330) 단위로 프로세싱(GHz) 가용 용량이 할당되어 있다. API 게이트웨이 서버(331)-랙(320) 간 네트워크 대역폭(bits/sec)과 스토리지 서버(332)-랙(320) 간 네트워크 대역폭이 존재하며, 랙(320)과 그 상위 계층(310) 사이의 네트워크 대역폭(Gbps)이 할당되어 있다. 프로세싱과 네트워크에 자원의 가용 용량에 따른 여러 가지 제약사항이 따른다. 도 3에서 (a)~(h)는 네트워크 제약사항을 나타내고, (i)~(j)는 프로세싱 제약사항을 나타낸다.
보다 구체적으로, 클라우드 오브젝트 스토리지 시스템을 배포하려면 각 계층이 별도의 랙(320)에 설치되어 있는 API 게이트웨이 및 스토리지 계층 전용 두 가지 유형의 서버(330)가 필요하다. CG(및 CS)는 단일 API 게이트웨이 (및 스토리지) 서버(330)의 처리 용량(cycles/sec)을 나타낸다. NGR API 게이트웨이 서버(331) (및 NSR 스토리지 서버(332))는 각 랙(320)에 연결되며, API 게이트웨이 (및 스토리지) 계층을 위한 NG (및 NS) 랙(320)이 있다. API 게이트웨이 서버(331) (및 스토리지 서버(332))와 랙(320) 사이의 네트워크 대역폭은 BGR (및 BSR)(bits/sec)로 표시된다. API 게이트웨이 용도의 랙(320) (및 스토리지 용도의 랙)과 상위 계층 사이의 네트워크 대역폭은 BG (및 BS)(bits/sec)로 표시된다. 모든 네트워크는 전-이중 유선 링크(full-duplex wired link)로 구성된다. 즉, 데이터를 동시에 양방향으로 전송할 수 있다.
인코딩의 방식은 이레이저 인코딩(erasure encoding) 알고리즘인 Reed-Solomon(n, k)을 고려한다. 이는 데이터 인코딩 시 원본 데이터를 n-k 개의 데이터 청크 파일로 쪼개고, 이를 이용하여 k 개의 패리티 청크 파일을 만든다(총
Figure pat00001
n 개의 청크 파일이 생성된다).
Figure pat00002
=
Figure pat00003
는 인코딩 전 대비 인코딩 후의 데이터 크기의 변화율을 나타내며,
Figure pat00004
(cycles/bit)는 단위 크기의 데이터를 인코딩 하는데 필요한 CPU 사이클 수를 나타낸다. 이 때, 결정하는 파라미터는 API 게이트웨이 서버(331) 한 대에서 인코딩되는 데이터의 속도 rG(bits/sec)와, 스토리지 서버(332) 한 대에서 인코딩되는 데이터의 속도 rs(bits/sec)가 된다. 이는 곧, API 게이트웨이 서버(331)와 스토리지 서버(332)간 데이터 인코딩 작업을 어느 비율로 분산시킬지를 결정한다.
도 4a는 일 실시예에 따른 API 게이트웨이 서버에서 인코딩이 진행되는 경우를 논리적으로 표현하는 도면이다. 그리고, 도 4b는 일 실시예에 따른 스토리지 서버에서 인코딩이 진행되는 경우를 논리적으로 표현하는 도면이다.
도 4a를 참조하면, PUT 오브젝트를 요청을 받으면, API 게이트웨이 서버(410)는 오브젝트 데이터를 인코딩 후 복수개의 스토리지 서버들(420)로 분배할 수 있다.
도 4b를 참조하면, PUT 오브젝트를 요청을 받으면, API 게이트웨이 서버(410)는 오브젝트 데이터를 스토리지 서버(420)로 포워딩하고, 스토리지 서버(420)에서 전달 받은 오브젝트 데이터를 인코딩한 후 다른 스토리지 서버들(420)로 분배할 수 있다.
도 5는 일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템을 나타내는 도면이다.
도 5를 참조하면, 일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템을 나타내는 것으로, API 게이트웨이 서버(510)와 스토리지 서버(520) 모두에서 데이터 인코딩을 수행하기 위한 시스템 논리 구조도를 나타낸다. 최종적으로 API 게이트웨이 서버(510)와 스토리지 서버(520)를 모두 사용하여 PUT 오브젝트 저장 처리 속도 rs+rG를 최대화하는 방식이다.
일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템은 API 게이트웨이 서버(510) 및 스토리지 서버(520)를 포함하여 이루어질 수 있다.
API 게이트웨이 서버(510)는 클라이언트(501)로부터 PUT 오브젝트를 요청 받아 적어도 하나 이상의 스토리지 서버(520)에 분배할 수 있다. 이 때, API 게이트웨이 서버(510)는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버(520)에 분배할 수 있다.
스토리지 서버(520)는 API 게이트웨이 서버(510)로부터 분배 받은 청크 파일을 디스크에 저장하거나 적어도 하나 이상의 다른 스토리지 서버(520)에 분배할 수 있다. 스토리지 서버(520)는 API 게이트웨이 서버(510)로부터 인코딩이 되지 않은 채로 데이터를 받은 경우, 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버(520)에 분배할 수 있다.
여기서, 하이브리드 오브젝트 스토리지 시스템은 네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정할 수 있다. 인코딩 방식은 API 게이트웨이 서버(510)에서 인코딩 후 청크 파일을 복수개의 스토리지 서버(520)로 분배하거나, API 게이트웨이 서버(510)에서 데이터를 그대로 스토리지 서버(520)로 포워딩(forwarding) 한 후, 스토리지 서버(520)에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버(520)로 분배할 수 있다.
두 개의 API 게이트웨이 서버(510)와 스토리지 서버(520)를 모두 활용한 알고리즘 방식은 다음과 같이 나타낼 수 있다. 즉, 아래는 본 실시예에서 제안하는 하이브리드 오브젝트 스토리지 시스템의 알고리즘을 나타낸다.
1. 클라이언트(501)로부터 PUT 오브젝트를 요청을 받으면, API 게이트웨이 서버(510) 단계에서 요청을 먼저 확인한다.
2. PUT 오브젝트 요청을 받은 API 게이트웨이 서버(510)는 데이터를 다음 두 가지 방법 중 네트워크 및 프로세싱 자원 가용 용량에 따라 아래 두 가지의 인코딩 방식 중 한 가지를 결정하게 된다(rs, rG 결정).
첫 번째 인코딩 방식은, API 게이트웨이 서버(510)에서 인코딩을 하고, 청크 파일을 여러 스토리지 서버(520)로 분배한다.
두 번째 인코딩 방식은, API 게이트웨이 서버(510)에서 데이터를 그대로 스토리지 서버(520)로 포워딩(forwarding)을 한 후, 스토리지 서버(520)에서 데이터를 인코딩하고, 청크 파일을 다른 스토리지 서버(520)로 분배한다. 이 때, 스토리지 서버(520)에서 인코딩이 된 데이터를 분배할 때, 청크 파일 한 개는 인코딩을 한 스토리지 서버(520)에서 직접 저장을 하고, 나머지 청크 파일을 분배한다.
3. 스토리지 서버(520)는 분배 받은 청크 파일은 자신의 디스크에 저장하고, 인코딩이 되지 않은 채로 데이터를 받은 경우에는 인코딩을 수행하고 하나의 청크 파일만 자신의 디스크에 저장하고 나머지는 다른 스토리지 서버에 분배한다.
도 6은 일 실시예에 따른 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법을 나타내는 흐름도이다.
도 6을 참조하면, 일 실시예에 따른 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법은, API 게이트웨이 서버에서 클라이언트로부터 PUT 오브젝트를 요청 받는 단계(S110), PUT 오브젝트 요청을 받은 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 단계(S120), 및 스토리지 서버에서 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계(S130)를 포함하여 이루어질 수 있다.
일 실시예에 따른 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법은 도 5를 참조하여 설명한 일 실시예에 따른 하이브리드 오브젝트 스토리지 시스템을 예를 들어 설명할 수 있다.
단계(S110)에서, API 게이트웨이 서버에서 클라이언트로부터 PUT 오브젝트를 요청 받을 수 있다.
단계(S120)에서, PUT 오브젝트 요청을 받은 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배할 수 있다.
여기서, 네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정하는 단계를 포함할 수 있다. 인코딩 방식은 API 게이트웨이 서버에서 인코딩 후 청크 파일을 복수개의 스토리지 서버로 분배하거나, API 게이트웨이 서버에서 데이터를 그대로 스토리지 서버로 포워딩(forwarding) 한 후, 스토리지 서버에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버로 분배할 수 있다.
단계(S130)에서, 스토리지 서버에서 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배할 수 있다.
보다 구체적으로, 스토리지 서버에서 인코딩이 되지 않은 채로 데이터를 받은 경우, 데이터를 인코딩 하고, 스토리지 서버에서 인코딩을 수행한 후, 하나의 청크 파일을 자신의 디스크에 저장하며, 스토리지 서버에서 하나의 청크 파일을 제외한 나머지 청크 파일을 적어도 하나 이상의 다른 스토리지 서버에 분배할 수 있다.
실시예들에 따르면, PUT 오브젝트 처리율을 높이면서 자원의 효율성을 높이기 위한 하이브리드 오브젝트 스토리지 서비스 기법을 제공할 수 있다. 특히, 자원이 풍부한 시스템뿐만 아닌 한정된 시스템에서도 적용이 가능한 하이브리드 오브젝트 스토리지 서비스 기법을 제공할 수 있다. 또한, 주어진 인프라의 자원 구조와 가용 용량에 구애 받지 않고 최고의 PUT 오브젝트 처리율을 달성할 수 있는 시스템 구조를 제공할 수 있다.
아래에서는 실시예들에 따른 시뮬레이션 성능을 검증한다.
본 실시예에서 제안 시스템의 성능을 검증하기 위해 MATLAB을 활용하여 시뮬레이션을 진행한다. 프로세싱 및 네트워크 자원 가용 용량에 따라 두 가지 다른 시나리오에서 성능을 검증하였으며, 다음 표 1을 기본 설정으로 시뮬레이션을 진행하였다.
[표 1]
Figure pat00005
도 7은 일 실시예에 따른 각 서버에 20 core CPU를 사용한 인코딩 위치 별 PUT 오브젝트 처리율을 나타내는 도면이다.
도 7을 참조하면, 첫 번째 시뮬레이션은 네트워크 자원이 프로세싱 자원에 비하여 부족한 네트워크 병목 시나리오에서 진행을 하였고, 네트워킹 자원에 병목 현상이 생기는 인프라에서 보여주는 PUT 오브젝트 처리율 비교 분석했다. 그래프를 통해 API 게이트웨이 랙 수가 상대적으로 적을 때는 Storage-only(스토리지 서버에서만 인코딩을 수행)가 API gateway-only(API 게이트웨이 서버에서만 인코딩을 수행) 보다 높은 처리율을 달성하는 반면, API 게이트웨이 랙 수가 많아지면 오히려 역전이 발생하는 것을 볼 수 있다. 이는 곧 인프라의 가용 용량에 따라 이레이저 인코더(erasure encoder)의 적합한 위치가 바뀔 수 있다는 것을 의미한다.
반면, 본 실시예에서 제안한 하이브리드 오브젝트 스토리지 시스템(API 게이트웨이 서버와 스토리지 서버에서 모두 인코딩이 가능)은 모든 경우에서 Storage-only와 API gateway-only 보다 높은 처리율을 달성하였고, 이는 주어진 인프라에서 최적의 인코딩 작업 분배를 통해 가능한 것이다.
도 8은 일 실시예에 따른 각 서버에 50 core CPU를 사용한 인코딩 위치 별 PUT 오브젝트 처리율을 나타내는 도면이다.
도 8을 참조하면, 두 번째 시뮬레이션은 프로세싱 자원이 네트워크 자원에 비하여 부족한 프로세싱 병목 시나리오에서 진행하였고, 앞선 시나리오랑 비슷한 양상을 보여주었다. 특히, 본 실시예에서 제안한 하이브리드 오브젝트 스토리지 시스템의 처리율 향상 폭이 더 커진 것을 확인하였고, 이는 하이브리드 오브젝트 스토리지 시스템이 제한된 인프라 환경에서 얼만큼 인프라의 가용 용량을 잘 활용하는지 더 정확하게 보여준다.
이상과 같이, 본 실시예들은 오브젝트 스토리지에서 이레이저 인코딩(erasure encoding)을 API 게이트웨이 서버와 스토리지 서버에서 동시에 수행할 수 있는 시스템이다. 본 시스템은 이레이저 인코딩(erasure encoding) 방식을 통해 시스템에 대한 신뢰도를 향상시키면서, 인프라의 자원을 유연하게 활용해 높은 PUT 오브젝트 처리량을 달성할 수 있다.
최신 오브젝트 스토리지 시스템에서는 한 서버(예컨대, API 게이트웨이 서버 또는 스토리지 서버)에서 인코딩을 수행하기 때문에, 한정된 인프라 환경에서는 PUT 오브젝트 처리량이 인프라의 가용 용량에 따라 차이가 난다. 따라서 실시예들에 따르면 프로세싱/네트워킹 자원을 유연하게 사용하면서 인프라 가용 용량을 최대로 활용할 수 있는 스토리지 시스템을 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (5)

  1. 클라이언트로부터 PUT 오브젝트를 요청 받아, 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 API 게이트웨이 서버; 및
    상기 API 게이트웨이 서버로부터 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 스토리지 서버
    를 포함하는, 하이브리드 오브젝트 스토리지 시스템.
  2. 제1항에 있어서,
    상기 하이브리드 오브젝트 스토리지 시스템은,
    네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정하고,
    상기 인코딩 방식은,
    상기 API 게이트웨이 서버에서 인코딩 후 청크 파일을 복수개의 스토리지 서버로 분배하거나, 상기 API 게이트웨이 서버에서 데이터를 그대로 상기 스토리지 서버로 포워딩(forwarding) 한 후, 상기 스토리지 서버에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버로 분배하는 것
    을 특징으로 하는, 하이브리드 오브젝트 스토리지 시스템.
  3. 컴퓨터 장치를 통해 구현되는 하이브리드 오브젝트 스토리지 시스템의 동작 방법에 있어서,
    API 게이트웨이 서버에서 클라이언트로부터 PUT 오브젝트를 요청 받는 단계;
    PUT 오브젝트 요청을 받은 상기 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 단계; 및
    상기 스토리지 서버에서 분배 받은 청크 파일을 디스크에 저장하거나, 인코딩이 되지 않은 채로 데이터를 받은 경우 데이터의 인코딩을 수행한 후 적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계
    를 포함하는, 하이브리드 오브젝트 스토리지 시스템의 동작 방법.
  4. 제3항에 있어서,
    상기 API 게이트웨이 서버는 데이터를 인코딩하거나 인코딩하지 않고 적어도 하나 이상의 스토리지 서버에 분배하는 단계는,
    네트워크 및 프로세싱 자원 가용 용량에 따라 인코딩 방식을 결정하는 단계를 포함하고,
    상기 인코딩 방식은,
    상기 API 게이트웨이 서버에서 인코딩 후 청크 파일을 복수개의 스토리지 서버로 분배하거나, 상기 API 게이트웨이 서버에서 데이터를 그대로 상기 스토리지 서버로 포워딩(forwarding) 한 후, 상기 스토리지 서버에서 데이터를 인코딩 후 청크 파일을 적어도 하나 이상의 다른 스토리지 서버로 분배하는 것
    을 특징으로 하는, 하이브리드 오브젝트 스토리지 시스템의 동작 방법.
  5. 제3항에 있어서,
    적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계는,
    상기 스토리지 서버에서 인코딩이 되지 않은 채로 데이터를 받은 경우, 데이터를 인코딩 하는 단계;
    상기 스토리지 서버에서 인코딩을 수행한 후, 하나의 청크 파일을 자신의 디스크에 저장하는 단계; 및
    상기 스토리지 서버에서 상기 하나의 청크 파일을 제외한 나머지 청크 파일을 적어도 하나 이상의 다른 스토리지 서버에 분배하는 단계
    를 포함하는, 하이브리드 오브젝트 스토리지 시스템의 동작 방법.
KR1020200169320A 2020-12-07 2020-12-07 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 KR102531765B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200169320A KR102531765B1 (ko) 2020-12-07 2020-12-07 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200169320A KR102531765B1 (ko) 2020-12-07 2020-12-07 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Publications (3)

Publication Number Publication Date
KR20220080329A true KR20220080329A (ko) 2022-06-14
KR102531765B1 KR102531765B1 (ko) 2023-05-11
KR102531765B9 KR102531765B9 (ko) 2023-12-08

Family

ID=81980401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200169320A KR102531765B1 (ko) 2020-12-07 2020-12-07 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102531765B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101683352B1 (ko) 2011-11-09 2016-12-06 퀄컴 인코포레이티드 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크
JP2017531857A (ja) * 2014-10-03 2017-10-26 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ 分散型能動ハイブリッドストレージシステム
JP2017532666A (ja) * 2014-10-03 2017-11-02 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ ハイブリッドオブジェクトストレージデバイスのためのデータの再構成を最適化する方法
JP2018520420A (ja) * 2015-05-21 2018-07-26 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム
JP2019518257A (ja) * 2016-03-03 2019-06-27 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 状態制御方法及び装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101683352B1 (ko) 2011-11-09 2016-12-06 퀄컴 인코포레이티드 클라우드 기반 어플리케이션들을 위한 센서 api 프레임워크
JP2017531857A (ja) * 2014-10-03 2017-10-26 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ 分散型能動ハイブリッドストレージシステム
JP2017532666A (ja) * 2014-10-03 2017-11-02 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ ハイブリッドオブジェクトストレージデバイスのためのデータの再構成を最適化する方法
JP2018520420A (ja) * 2015-05-21 2018-07-26 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム
JP2019518257A (ja) * 2016-03-03 2019-06-27 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 状態制御方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이경태, 김영진, "처리율 향상을 위한 하이브리드 오브젝트 스토리지 시스템", 한국통신학회 학술대회논문집, pp 454-455, 2020.11 1부.* *

Also Published As

Publication number Publication date
KR102531765B9 (ko) 2023-12-08
KR102531765B1 (ko) 2023-05-11

Similar Documents

Publication Publication Date Title
US10659254B2 (en) Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric
US10296386B2 (en) Processing element management in a streaming data system
CN109845218B (zh) 用于与客户机-服务器数据信道一起使用的信道数据封装系统和方法
US9916275B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US8849756B2 (en) Selecting data nodes in distributed storage system
US9817584B2 (en) Storage system having node with light weight container
US11843527B2 (en) Real-time scalable virtual session and network analytics
US10608951B2 (en) Live resegmenting of partitions in distributed stream-processing platforms
KR20160139493A (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US9917900B2 (en) Operator movement based on memory
JP2018506936A (ja) ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム
US11425178B1 (en) Streaming playlist including future encoded segments
CN110908600B (zh) 数据访问方法、装置和第一计算设备
US20170353537A1 (en) Predictive load balancing for a digital environment
US11405455B2 (en) Elastic scaling in a storage network environment
US11416176B2 (en) Function processing using storage controllers for load sharing
KR102531765B1 (ko) Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법
EP4130972A1 (en) Systems, methods, and apparatus for remote data transfers to memory
US20190166081A1 (en) Dynamic communication session management
US8161180B1 (en) Method and apparatus for routing a data stream through a plurality of data movers independent of a network interface type
KR20150032085A (ko) 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법
KR102021671B1 (ko) SDN에서 애플리케이션 레이어의 통신을 위한 노스바운드 API로써의 gRPC
KR102061963B1 (ko) 고 가용성을 보장하는 nfv 기반의 네트워크 패킷 처리 시스템 및 방법
US20160219120A1 (en) Methods for providing a staging area for objects prior to erasure coding and devices thereof
Nirmala Cloud based big data analytics: WAN optimization techniques and solutions

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
G170 Re-publication after modification of scope of protection [patent]