KR20210054732A - 객체 스토리지 장치 및 이를 이용한 데이터 저장방법 - Google Patents

객체 스토리지 장치 및 이를 이용한 데이터 저장방법 Download PDF

Info

Publication number
KR20210054732A
KR20210054732A KR1020190140747A KR20190140747A KR20210054732A KR 20210054732 A KR20210054732 A KR 20210054732A KR 1020190140747 A KR1020190140747 A KR 1020190140747A KR 20190140747 A KR20190140747 A KR 20190140747A KR 20210054732 A KR20210054732 A KR 20210054732A
Authority
KR
South Korea
Prior art keywords
data
storage
policy
storage policy
candidate group
Prior art date
Application number
KR1020190140747A
Other languages
English (en)
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 KR1020190140747A priority Critical patent/KR20210054732A/ko
Publication of KR20210054732A publication Critical patent/KR20210054732A/ko

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원은 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 관한 것으로서, 본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터 저장방법은, 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 단계; 및 상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 상기 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함할 수 있다.

Description

객체 스토리지 장치 및 이를 이용한 데이터 저장방법 {Apparatus for object based storage and data storage method using the same}
본 출원은 데이터에 따라 데이터 저장정책을 선택하여 효율적으로 저장할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 관한 것이다.
이메일, 전자상거래 등과 같은 다양한 네트워크 기반 응용에 의해 생성되는 방대한 양의 데이터가 급격하게 증가함에 따라, 기업에서는 상기와 같이 급격히 증가하는 대량의 데이터를 가능한 많이 지속적으로 축적하기 위해 스토리지 시스템(storage system) 구축에 심혈을 기울이고 있다. 하지만, 기업이 이미 보유하고 있는 이질적인 인터넷 환경으로 인해, 기업에서는 여러 곳에 산재하고 있는 스토리지 저장소들에 존재하는 정보들을 관리 및 활용하기가 매우 어렵다. 이에 따라, 대량의 데이터를 효율적으로 처리하기 위한 스토리지 시스템과 관련된 기술로서, 'DAS(Direct Attached Storage)', 'NAS(Network Attached Storage)', 'SAN(Storage Area Network)' 등이 제안되었다.
구체적으로, DAS는 블록기반의 스토리지 디바이스를 호스트 컴퓨터의 입출력 버스에 SCSI 혹은 IDE를 통하여 직접 연결한 구조인데, 고성능 및 강력한 데이터 보호 기능을 제공하지만 스토리지 디바이스의 확장성에 있어 제약이 존재하는 한계가 있다.
NAS는 상이한 플랫폼을 갖는 호스트들에서 데이터를 공유할 수 있는 파일 서비스를 제공하기 위해, 파일이 스토리지 디바이스에 어떻게 저장되었는지를 기술하는 메타데이터를 하나의 서버에서 모두 관리하는 구조이며, 모든 파일에 대한 입출력이 하나의 서버를 통해 이루어지기 때문에 파일 서버에 병목 현상이 발생하는 문제가 있다.
SAN은 스토리지 디바이스 연결성 제약과 스토리지 디바이스의 공유 문제를 해결하고, 더욱 많은 클라이언트 호스트와 스토리지 디바이스를 지원하기 위해 빠르고 확장성이 높은 상호 연결을 지원하는 구조이며, 파일 시스템과 같은 스토리지 응용이 데이터를 공유하기 위해 서로 다른 플랫폼들에서 파일 시스템의 메타데이터를 이해할 수 있어야 하고 별도의 고가 장비들이 필요로 하기 때문에 스토리지 확장성에 제한이 있다.
앞서 언급된 DAS, NAS 및 SAN이 갖는 한계를 극복하기 위해, '객체기반 스토리지 시스템(Object-Based Storage system)'이 제안되었다. 여기서, 객체기반 스토리지 시스템은 스토리지 환경에서 사용하던 데이터 처리 경로를 메타데이터 영역 및 실제 데이터 영역으로 구분함으로써, 기존의 NAS 및 SAN이 갖는 개념들을 객체 인터페이스를 통해 통합할 뿐만 아니라, 고성능, 높은 확장성, 플랫폼간 데이터 공유 등과 같은 스토리지 환경을 위한 조건을 만족시킨다.
본 출원은 각각의 데이터별로 최적의 저장정책을 선택하여 저장할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다.
본 출원은 이미 저장된 데이터의 저장정책을 상황에 따라 유동적으로 변경하여, 다운로드 성능 등을 향상시킬 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다.
본 출원은 데이터 저장정책을 선택적으로 적용하여, 저장공간 효율성을 향상시킬 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다.
본 출원은 객체 스토리지 장치의 리소스 사용률에 따라 저장정책을 변경하여, 데이터 처리시 리소스를 효율적으로 사용할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다.
본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터 저장방법은, 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 단계; 및 상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 상기 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함할 수 있다.
여기서 메인 저장부에 저장하는 단계는, 상기 대상 데이터의 크기가 임계값 이상인지 비교하는 단계; 상기 임계값 미만이면 상기 REP 저장정책에 따라, 상기 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 상기 메인 저장부에 저장하는 단계; 상기 임계값 이상이면 상기 EC 저장정책에 따라, 상기 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 상기 데이터 청크 및 패리티 데이터를 각각 상기 메인 저장부에 저장하는 단계; 및 상기 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장하는 단계를 포함할 수 있다.
여기서 상기 임계값은,
Figure pat00001
를 만족시키는 x값으로, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭일 수 있다.
여기서 상기 메인저장부에 재저장하는 단계는, 상기 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 상기 메타 데이터 저장부에게 후보군 데이터를 요청하는 단계; 상기 메타 데이터 저장부가 상기 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 상기 후보군 데이터로 추출하여, 상기 저장정책 변경 데몬으로 제공하는 단계; 및 상기 후보군 데이터가 존재하면, 상기 저장정책 변경 데몬이 상기 리소스 사용률에 따라 상기 후보군 데이터에 대한 저장정책 변경여부를 판별하는 단계를 포함할 수 있다.
여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 상기 저장 정책 변경을 수행하지 않을 수 있다.
여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면, 상기 후보군 데이터 중에서 상기 EC 저장정책으로 저장된 데이터를 상기 REP 저장정책으로 변경할 수 있다.
여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면, 상기 후보군 데이터 중에서 상기 REP 저장정책으로 저장된 데이터를 상기 EC 저장정책으로 변경할 수 있다.
여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 후보군 데이터에 대한 저장정책 변경시, 상기 REP 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 큰 순서에 따라 상기 EC 저장정책으로 변경하고, 상기 EC 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 작은 순서에 따라 상기 REP 저장정책으로 변경할 수 있다.
본 발명의 일 실시예에 의하면, 하드웨어와 결합된 상술한 데이터 저장 방법들을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램이 존재할 수 있다.
본 발명의 일 실시예에 의한 객체 스토리지 장치는, 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 정책설정부; 및 상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장정책을 변경하여 상기 메인 저장부에 재저장하는 정책전환부를 포함할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 각각의 데이터별로 최적의 저장정책을 선택하여 저장하는 것이 가능하다. 또한, 이미 저장된 데이터에 대하여도, 상황에 따라 유동적으로 저장정책을 변경할 수 있으므로, 각각의 데이터에 대한 다운로드 성능 등을 향상시킬 수 있다. 나아가, 각각의 데이터별로 저장정책을 선택적으로 적용할 수 있으므로, 저장공간을 효율적으로 운용하는 것이 가능하다.
본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 객체 스토리지 장치의 리소스 사용률에 따라 저장정책을 변경하므로, 데이터 처리시 리소스를 효율적으로 사용하는 것이 가능하다.
본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 대용량 데이터 처리시 입출력 대역폭의 병목현상을 방지하고, 저용량 데이터 처리시 CPU를 사용하는 추가적인 연산작업을 줄일 수 있으므로, 객체 스토리지 장치의 다운로드 성능 저하를 방지할 수 있다
도1은 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 나타내는 개략도이다.
도2는 본 발명의 일 실시예에 의한 객체 스토리지 장치를 나타내는 블록도이다.
도3은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 대상 데이터의 크기에 따른 저장 정책 설정을 나타내는 타이밍도이다.
도4는 본 발명의 일 실시예에 의한 객체 스토리지 장치에 저장된 대상 데이터들에 대한 저장 정책 전환을 나타내는 타이밍도이다.
도5 내지 도7은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터 저장방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 명세서에 기재된 "~부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
도1은 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 나타내는 개략도이다.
도1을 참조하면, 본 발명의 일 실시예에 의한 객체 스토리지 시스템은 사용자 단말(1) 및 객체 스토리지 장치(100)를 포함할 수 있다.
이하 도1을 참조하여 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 설명한다.
사용자 단말(1)은 네트워크를 통해 객체 스토리지 장치(100)와 통신을 수행할 수 있으며, 사용자 단말(1)에서 생성한 텍스트, 이미지, 동영상 등 다양한 종류의 비정형 데이터들을 객체 스토리지 장치(100) 내에 저장할 수 있다.
여기서, 사용자 단말(1)은 유선 또는 무선 통신망을 통해 데이터 통신을 수행할 수 있으며, 정보의 송수신을 위한 통신모듈, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.
구체적으로, 사용자 단말(1)은 스마트 폰(smart phone), 태블릿 PC(Tablet PC), 노트북, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player, 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등의 무선 통신 기술이 적용되는 이동 단말기 또는 PC, IPTV, 스마트 TV, 음성인식 스피커 등과 같이 휴대하기 어려운 디지털 기기일 수 있다. 실시예에 따라서는, 사용자 단말(1)은 객체 스토리지 장치(100)에 OS(Operation System) 이미지 파일 등의 자원을 저장한 클라우드 PC(Cloud Personal Computer) 등일 수 있다.
객체 스토리지 장치(100)는 네트워크 상에 데이터를 저장하는 서버 등일 수 있다. 즉, SSD(Solid State Drive, HDD(Hard Disk Drive) 등의 저장장치를 구비할 수 있으며, 사용자 단말(1)의 요청에 따라 데이터 입출력 서비스 등을 제공할 수 있다. 실시예에 따라서는, 객체 스토리지 장치(100)를 이용하여 클라우드 PC, 서버 기반 컴퓨팅(Server based Computing), IPTV 서비스, 이메일 서비스, 웹 스토리지 서비스 등을 제공하는 것도 가능하다.
여기서, 객체 스토리지 장치(100)는 객체 기반(object based) 저장장치로, 저장공간의 효율성 등을 위하여 다양한 저장 정책을 지원할 수 있으며, 사용자 단말(1)이 저장하고자 하는 대상 데이터를 분석한 후, 각각의 데이터별로 최적의 저장 정책을 선택하여 적용할 수 있다. 구체적으로, 객체 스토리지 장치(100)이 적용하는 저장정책에는, REP(Replication) 저장정책과 EC(Erasure Coding) 저장정책이 포함될 수 있다.
REP 저장정책에 의하면, 대상 데이터의 손실에 대비하기 위하여, 대상 데이터와 동일한 복제 데이터를 복수개 생성할 수 있다. 이후, 대상 데이터와 복제 데이터들을 서로 다른 공간에 저장하여, 어느 하나에 손실이 발생하더라도 대상 데이터를 그대로 유지시킬 수 있다. REP 저장정책의 경우, 대상 데이터를 단순히 복제하는 것이므로, 데이터 처리방식이 간단하여 객체 스토리지 장치(100)의 CPU 사용률은 적을 수 있다. 다만, 대상 데이터의 크기가 큰 경우에는 SSD, HDD 등의 입출력 대역폭이 많이 사용되므로, 입출력 대역폭이 포화되는 경우가 발생할 수 있다.
EC 저장정책의 경우, 대상 데이터를 분할하여 복수개의 데이터 청크(chunk)를 생성할 수 있으며, 각각의 데이터 청크의 복원을 위한 패리티(parity) 데이터를 생성할 수 있다. 여기서, 각각의 데이터 청크와 패리티 데이터를 서로 다른 공간에 저장하므로, 데이터 청크 중 일부에 손실이 발생하더라도 패리티 데이터를 이용하여 손실될 데이터를 복원하는 것이 가능하다. EC 저장정책의 경우, 대상 데이터를 분할하여 처리하므로 입출력 대역폭의 사용이 적어 입출력 대역폭의 포화 등은 발생하지 않을 수 있다. 다만, 대상 데이터의 분할이나 패리티 데이터 생성을 위한 연산을 수행하므로, CPU 사용률이 증가할 수 있다.
이와 같이, 각각의 저장정책에는 장단점이 존재하므로, 객체 스토리지 장치(100)는 각각의 대상 데이터에 따라 적합한 저장 정책을 선택하여 적용함으로써, 효율적인 데이터 저장을 수행할 수 있다.
도2는 본 발명의 일 실시예에 의한 객체 스토리지 장치를 나타내는 블록도이다.
도2를 참조하면, 본 발명의 일 실시예에 의한 객체 스토리지 장치(100)는 제어부(110), 메인저장부(120) 및 메타데이터저장부(130)를 포함할 수 있다.
이하 도2를 참조하여 본 발명의 일 실시예에 의한 객체 스토리지 장치를 설명한다.
제어부(110)는 객체 스토리지 장치(100)의 전반적인 동작을 제어할 수 있으며, 객체 스토리지 장치(100)의 데이터 저장 정책을 설정할 수 있다. 제어부(110)는 사용자 단말(1)로부터 대상 데이터에 대한 저장 요청을 수신할 수 있으며, 대상 데이터에 대응하는 저장정책을 적용하여 메인 저장부(120)에 저장할 수 있다. 또한, 대상 데이터에 적용한 저장정책과, 대상 데이터가 저장되는 위치정보 등의 메타데이터를 생성하여 메타데이터저장부(130)에 저장할 수 있다. 이후, 제어부(110)는 사용자 단말(1)로부터 대상 데이터에 대한 접근을 요청받을 수 있다. 이 경우 제어부(110)는 메타데이터저장부(130)에 저장된 메타데이터를 참조하여 메인저장부(120)에 저장된 대상 데이터를 추출할 수 있으며, 추출한 대상 데이터를 사용자 단말(1)에게 제공할 수 있다.
실시예에 따라서는, 사용자 단말(1)이 대상 데이터 저장에 대한 저장정책을 미리 설정한 경우가 있을 수 있으나, 이 경우에도 제어부(110)는 사용자 단말(1)이 설정한 저장정책과는 무관하게 저장정책을 선택하여 적용할 수 있다. 즉, 사용자는 초기 설정시 적용되는 저장정책을 그대로 사용하는 등 객체 스토리 장치(100)를 효율적으로 사용하지 않을 수 있으므로, 제어부(110)를 이용하여 효율적인 저장정책의 적용을 강제할 수 있다.
또한, 제어부(110)에서 저장정책을 선택하여 설정한 경우에는, 각각의 대상 데이터에 적용된 저장정책을 명확하게 하기 위하여, 별도의 테이블표를 생성할 수 있다. 즉, 변경 전의 저장 정책과 변경된 저장정책을 테이블표에 기록하도록 하여, 사용자의 대상 데이터 요청시 테이블표를 참조하여 처리하도록 할 수 있다.
메인저장부(120)는 사용자 단말(1)로부터 요청받은 대상 데이터를 저장할 수 있다. 메인저장부(120)는 복수의 SSD, HDD 등을 포함할 수 있으며, 물리적으로 구별되는 복수의 저장공간들을 포함할 수 있다. 메인저장부(120)는 제어부(110)가 설정한 각각의 REP 저장정책 또는 EC 저장정책에 따라, 각각의 대상 데이터를 저장할 수 있다.
메타데이터저장부(130)는 각각의 대상 데이터에 대한 메타데이터를 저장할 수 있다. 즉, 각각의 대상 데이터에 적용된 저장정책과, 대상 데이터가 저장되는 메인저장부(120) 상의 위치정보 등이 메타데이터로 저장될 수 있다. 이후, 메타데이터저장부(130)에 저장된 메타데이터를 활용하여 메인저장부(120)에 저장된 대상 데이터들을 추출할 수 있다.
한편, 도2에서는 객체 스토리지 장치(100) 내에 제어부(110), 메인저장부(120), 메타데이터저장부(130)가 포함되는 것으로 도시되어 있으나, 이에 한정되지 않고 각각 별도의 서버로 구현될 수 있다. 즉, 제어부(110)는 별도의 컴퓨팅 서버로 구현되고, 메인저장부(120)와 메타데이터저장부(130)는 컴퓨팅 서버에 연결된 각각의 스토리지 서버로 구현될 수 있다.
추가적으로, 도2를 참조하면, 제어부(110)는 정책설정부(111) 및 정책전환부(112)를 더 포함할 수 있다. 즉, 제어부(110)는 대상 데이터의 저장시 정책설정부(111)를 통하여 적용할 저장정책을 선택하여 저장할 수 있으며, 이후 정책전환부(112)를 이용하여 메인저장부(120)에 저장된 각각의 대상 데이터에 적용하는 저장정책을 변경하도록 할 수 있다. 이를 통하여 대상 데이터를 보다 효율적으로 저장할 수 있으며, 사용자에게 향상된 다운로드 성능을 제공할 수 있다.
구체적으로, 도3을 참조하면, 정책설정부(111)는 사용자 단말(1)로부터 대상 데이터에 대한 저장 요청을 수신할 수 있으며(S11), 대상 데이터의 크기에 따라 REP 저장정책과 EC 저장정책 중 어느 하나의 저장정책을 선택할 수 있다(S12).
먼저, 정책설정부(111)는 사용자 단말(1)이 저장요청한 대상 데이터의 크기가 임계값 이상인지를 비교할 수 있다(S12). 여기서, 임계값은 사용자 단말(1)에 대한 대상 데이터의 다운로드 성능을 향상시키기 위하여 설정될 수 있으며, EC 저장정책에 따른 다운로드 성능과 REP 저장정책에 따른 다운로드 성능을 비교하여 설정할 수 있다. 즉, 대상 데이터의 크기가 임계값 이상이면 EC 저장정책을 적용하고, 대상 데이터의 크기가 임계값 미만이면 REP 저장정책을 적용하도록 설정하므로, 임계값은 EC 저장정책의 다운로드 성능 보다 REP 저장정책의 다운로드 성능이 더 좋도록 하는 대상 데이터의 최소 크기에 해당한다.
구체적으로, 다운로드 성능(second) = 데이터 크기(MB) / 데이터 처리 능력(MB/second)로 계산되므로, REP 저장정책에 따른 다운로드 성능은
Figure pat00002
, EC 저장정책에 따른 다운로드 성능은
Figure pat00003
이다. 여기서, x는 대상 데이터의 크기, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 메인 저장부(120)의 입출력 대역폭(I/O Bandwidth)에 해당한다.
따라서, 임계값은
Figure pat00004
를 만족시키는 x값으로 결정될 수 있다.
한편, 입출력 대역폭(H(x))은 HDD, SSD 등 종류에 관계없이 일정한 크기 이상의 데이터를 처리할 때 성능적인 한계에 의하여 포화될 수 있으므로, 다음과 같이 표현될 수 있다.
Figure pat00005
즉, 대상 데이터(x)의 크기가 제한값(t1) 미만인 경우에는, 입출력대역폭(H(x))이 데이터 크기에 비례하여 증가하는 증가함수 G(x)로 표현될 수 있으나, 대상 데이터(x)의 크기가 제한값(t1) 이상인 경우에는 최대 대역폭으로 포화될 수 있다. 따라서, H(x)를 적용하여,
Figure pat00006
를 만족시키는 임계값을 산출할 수 있다.
이후, 정책설정부(111)는 대상 데이터의 크기가 임계값 미만이면 REP 저장정책에 따라 데이터를 저장할 수 있다. 즉, 대상 데이터와 동일한 복수의 복제 데이터를 생성한 후, 각각을 메인 저장부(120)에 저장할 수 있다(S13).
반면에, 대상 데이터의 크기가 임계값 이상인 경우에는 EC 저장정책에 따라 데이터를 저장할 수 있다. 즉, 대상 데이터를 복수의 데이터 청크로 분할할 수 있으며, 각각의 데이터 청크에 대한 패리티 데이터를 생성할 수 있다(S15). 이후, 각각의 데이터 청크 및 패리티 데이터를 각각 메인 저장부(120)에 저장할 수 있다(S16).
예를들어 1GB의 대상 데이터를 저장하는 경우, REP 저장정책을 적용하면 2개의 복제데이터를 더 생성하여 총 3GB를 저장할 수 있다. 반면에, EC 저장정책을 사용하는 경우에는, 1GB의 대상 데이터를 쪼개어 10개의 데이터 청크를 생성하고, 10개의 데이터 청크에 대한 4개의 패리티 데이터를 생성하여 저장할 수 있다. 이때 데이터 청크와 패리티 데이터의 크기는 같으므로, 실제로는 1.4GB가 저장될 수 있다. 이와 같이 REP 저장정책과 EC 저장정책에 따라, 각각의 실제 데이터 저장량은 상이하며, 이러한 차이는 대상 데이터의 크기가 클수록 더 커질 수 있다. 따라서, 임계값보다 큰 데이터는 EC 저장정책을 적용하고 임계값보다 작은 데이터는 REP 저장정책을 적용하도록 함으로써, 전체 저장공간에 대한 효율적인 활용을 구현할 수 있다.
이후, 각각의 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터를 생성하여 메타데이터 저장부(130)에 저장할 수 있다(S14, S17).
한편, 정책전환부(112)는 이미 저장된 대상 데이터의 저장정책을 상황에 맞게 유동적으로 변경시킬 수 있다. 구체적으로, 정책전환부(112)는 메인 저장부(120)에 저장된 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출할 수 있으며, 객체 스토리지 장치(100)의 리소스 사용률에 따라, 후보군 데이터들의 저장 정책을 변경할 수 있다. 이후, 변경된 저장 정책에 따라 해당 후보군 데이터들을 메인 저장부(120)에 재저장할 수 있다.
여기서, 메인저장부(120)에는 저장정책 변경 데몬(daemon)이 설치되어 있을 수 있으며, 도4에 도시한 바와 같이, 정책전환부(112)는 메인저장부(120)에게 저장정책 변경 데몬의 실행을 요청할 수 있다(S21). 여기서, 객체 스토리지 장치(100)의 시스템 자원 소모를 최소화하기 위하여, 메인저장부(120)의 백그라운드에서 동작하는 데몬 프로세스를 이용하여 저장정책 변경 동작을 수행하도록 할 수 있다(S22).
이 경우, 저장정책 변경 데몬은 메타데이터 저장부(130)에게 현재 메인저장부(120)에 저장된 대상 데이터들 중에서 저장정책 변경할 후보군 데이터에 해당하는 데이터들을 추출할 것을 요청할 수 있다(S23).
사용자 단말(1)이 메인저장부(120)에 저장된 대상 데이터에 접근하기 위해서는 메타 데이터 저장부(130)에 저장된 메타 데이터를 참조하여야 하므로, 메타데이터 저장부(130)는 각각의 대상데이터들에 대한 사용자 단말(1)들의 접근빈도, 접근 이력 등을 포함하는 접근기록이 저장되어 있을 수 있다. 따라서, 저장정책변경 데몬은 메타데이터 저장부(130)에게 후보군 데이터를 요청할 수 있다.
이후, 메타데이터 저장부(130)는 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 후보군 데이터로 추출할 수 있다(S24). 즉, 접근빈도가 높거나 최근에 접근한 대상 데이터의 경우, 사용자 단말(1)이 다시 요청할 가능성이 높은 것으로 볼 수 있다. 따라서, 해당 데이터들을 후보군 데이터로 추출할 수 있으며, 해당 후보군 데이터가 신속하게 사용자 단말(1)에게 제공될 수 있도록 각각의 후보군 데이터들에 대한 저장정책을 변경시킬 수 있다.
이때, 메타데이터 저장부(130)는 후보군 데이터를 메인저장부(120)로 제공할 수 있으며(S25), 저장정책 변경 데몬은 객체 스토리지 장치(100)의 리소스 사용률을 고려하여 각각의 후보군 데이터들에 대한 저장정책 변경여부를 결정할 수 있다(S26). 여기서, 정책전환부(112)가 고려하는 객체 스토리지 장치(100)의 리소스 사용률에는 CPU 사용률과, 입출력 대역폭의 포화여부가 포함될 수 있다.
REP 저장정책의 경우, 대상 데이터를 그대로 복제하여 저장하므로 CPU의 동작이 필요하지 않지만, 대상 데이터의 크기가 큰 경우에는 입출력 대역폭이 포화되는 경우가 발생할 수 있다. 즉, 먼저 입출력 대역폭을 점유하고 있는 프로세스가 처리될 때까지 기다려야 하는 상황이 발생하므로 다운로드 성능 저하의 원인이 될 수 있다.
반면에, EC 저장정책의 경우, 분할된 각각의 데이터 청크의 크기가 작으므로 입출력 대역폭이 포화되지 않을 수 있으나, 각각의 데이터 청크를 결합하기 위한 CPU 연산이 많이 발생할 수 있다. 즉, 먼저 요청된 프로세스를 CPU가 처리 중인 경우에는, 해당 프로세스가 완료될 때까지 기다려야 하는 상황이 발생하므로 다운로드 성능 저하의 원인이 될 수 있다.
따라서, 정책전환부(112)는 저장정책 변경 데몬이 각각의 객체 스토리지 장치(100)의 리소스 사용률을 더 고려하여 저장정책을 변경하도록 할 수 있다(S26).
구체적으로, 현재 CPU 사용률이 한계값 미만이고, 입출력 대역폭의 포화가 발생하지 않은 경우가 있을 수 있다. 이 경우, CPU 사용률이 높지 않고 입출력 대역폭도 포화되지 않았으므로, REP 저장정책과 EC 저장정책 중 어느 것으로 처리해도 성능저하 등의 문제가 발생하지 않을 수 있다. 따라서, 이 경우는 리소스 사용률이 설정조건을 만족하지 않은 경우에 해당하므로, 정책전환부(112)는 저장정책을 변경시키지 않고, 기존에 저장정책에 따라 동작하도록 할 수 있다.
또한, 현재 CPU 사용률이 한계값 이상이고, 입출력 대역폭의 포화도 발생한 경우도 리소스 사용률이 설정조건을 만족하지 않은 경우에 해당한다. 즉, 어느 저장정책을 적용하여도 성능저하가 발생하게 되므로, 추가로 저장정책을 변경시키지 않고 기존의 저장정책에 따라 동작하도록 할 수 있다.
반면에, 현재 CPU 사용률이 한계값 이상이고, 입출력 대역폭의 포화가 발생하지 않은 경우는 설정조건을 만족하는 경우에 해당하며, REP 저장정책을 적용하는 것이 사용자 단말(1)의 요청에 대한 처리성능 향상에 유리할 수 있다. 따라서, 기존에 EC 저장정책으로 저장된 데이터를 REP 저장정책으로 변경시킬 수 있다. 이때, 후보군 데이터들 중에서 후보군 데이터의 크기가 작은 순서에 따라 REP 저장정책으로 변경시킬 수 있다. 즉, 후보군 데이터의 크기가 작을수록 REP 저장정책 적용시 입출력 대역폭의 포화가 발생하지 않으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 REP 저장정책으로 변경할 수 있다(S27).
또한, 현재 CPU 사용율이 한계값 미만이고, 입출력 대역폭의 포화가 발생한 경우도 설정조건을 만족하는 경우에 해당하며, CPU 사용율에 여유가 있으므로 EC 저장정책을 적용하는 것이 사용자 단말(1)의 요청에 대한 신속한 처리에 유리하다. 따라서, 기존에 REP 저장정책을 EC 저장정책으로 변경시킬 수 있다. 이때, 후보군 데이터의 크기가 큰 순서에 따라 EC 저장정책으로 변경시킬 수 있다. 즉, 후보군 데이터의 크기가 클수록 입출력 대역폭의 포화가 발생할 가능성이 높으므로, 미리 EC 저장정책으로 변경시킬 수 있다(S27).
이후, 저장정책 변경 데몬은 저장정책의 변경 내용을 정책전환부(112)로 제공하여, 정책전환부(112)에 저장 중인 테이블 내에 저장정책 변경 내역을 기록하도록 할 수 있다(S28).
도5 내지 도7은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터저장방법을 나타내는 순서도이다.
도5를 참조하면, 객체 스토리지 장치가 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장할 수 있다(S110).
구체적으로, 도6에 도시한 바와 같이, 객체 스토리지 장치는 대상 데이터의 크기가 임계값 이상인지 비교할 수 있으며(S111), 대상 데이터의 크기가 임계값 미만이면(S112) REP 저장정책에 따라 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 메인 저장부에 저장할 수 있다(S114).
반면에, 대상 데이터의 크기가 임계값 이상이면(S112) EC 저장정책에 따라 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 데이터 청크 및 패리티 데이터를 각각 메인 저장부에 저장할 수 있다(S113).
이후, 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장할 수 있다(S115).
한편, 임계값은
Figure pat00007
를 만족시키는 x값으로 설정될 수 있으며, 여기서 N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭에 해당한다.
이후, 객체 스토리지 장치는, 메인 저장부에 저장된 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출할 수 있으며, 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 후보군 데이터들의 저장 정책을 변경하여 메인 저장부에 재저장할 수 있다(S120).
구체적으로, 도7에 도시한 바와 같이, 먼저 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 메타 데이터 저장부에게 후보군 데이터를 요청할 수 있다(S121). 이후, 메타 데이터 저장부가 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 후보군 데이터로 추출하여, 저장정책 변경 데몬으로 제공할 수 있다(S122).
여기서, 후보군 데이터가 존재하면, 저장정책 변경 데몬이 리소스 사용률에 따라 후보군 데이터에 대한 저장정책 변경여부를 판별할 수 있다(S123).
구체적으로, 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면(S124), 후보군 데이터 중에서 EC 저장정책으로 저장된 데이터를 REP 저장정책으로 변경시킬 수 있다(S125). 즉, CPU 사용률이 한계값을 초과하였으므로, EC 저장정책에 따른 데이터 제공시 다운로드 성능이 저하될 수 있다. 따라서, CPU 사용률이 낮은 REP 저장정책으로 미리 변경하여 해당 후보군 데이터에 대한 요청시 신속한 다운로드가 수행되도록 할 수 있다.
반면에, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면(S126), 후보군 데이터 중에서 REP 저장정책으로 저장된 데이터를 EC 저장정책으로 변경시킬 수 있다(S127). 즉, 입출력 대역폭이 포화되었으므로, REP 저장정책에 따른 데이터 제공시 다운로드 성능이 저하될 수 있다. 따라서, 입출력 대역폭이 적은 EC 저장정책으로 미리 변경하여 해당 후보군 데이터에 대한 요청시 신속한 다운로드가 수행되도록 할 수 있다.
한편, 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 저장 정책 변경을 수행하지 않을 수 있다. 즉, CPU 사용률이 한계값 미만이고, 입출력 대역폭의 포화가 발생하지 않은 경우에는 REP 저장정책과 EC 저장정책 중 어느 것으로 처리해도 성능저하 등의 문제가 발생하지 않을 수 있다. 따라서, 저장정책을 변경시키지 않고, 기존에 저장정책에 따라 동작하도록 할 수 있다. 반면에, CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화도 발생한 경우에는, 어느 저장정책을 적용하여도 성능저하가 발생하므로 저장정책을 변경시키지 않고 기존의 저장정책에 따라 동작하도록 할 수 있다.
추가적으로, REP 저장정책으로 저장된 후보군 데이터를 EC 저장정책으로 변경할 때에는, 후보군 데이터의 크기가 큰 순서에 따라 변경할 수 있다. 즉, 후보군 데이터의 크기가 작을수록 REP 저장정책 적용시 입출력 대역폭의 포화가 발생하지 않으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 REP 저장정책으로 변경할 수 있다. 반면에, EC 저장정책으로 저장된 후보군 데이터를 REP 저장정책으로 변경할 때에는, 후보군 데이터의 크기가 작은 순서에 따라 변경할 수 있다. 즉, 후보군 데이터의 크기가 클수록 입출력 대역폭의 포화가 발생할 가능성이 높으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 EC 저장정책으로 변경시킬 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
1: 사용자 단말 100: 객체 스토리지 장치
110: 제어부 111: 정책설정부
112: 정책전환부 120: 메인저장부
130: 메타데이터 저장부

Claims (10)

  1. 객체 스토리지 장치의 데이터 저장방법에 있어서,
    사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 단계; 및
    상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 상기 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함하는 데이터 저장방법.
  2. 제1항에 있어서, 메인 저장부에 저장하는 단계는
    상기 대상 데이터의 크기가 임계값 이상인지 비교하는 단계;
    상기 임계값 미만이면 상기 REP 저장정책에 따라, 상기 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 상기 메인 저장부에 저장하는 단계;
    상기 임계값 이상이면 상기 EC 저장정책에 따라, 상기 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 상기 데이터 청크 및 패리티 데이터를 각각 상기 메인 저장부에 저장하는 단계; 및
    상기 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장하는 단계를 포함하는 데이터 저장방법.
  3. 제2항에 있어서, 상기 임계값은
    Figure pat00008

    를 만족시키는 x값으로, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭인 것을 특징으로 하는 데이터 저장방법.
  4. 제1항에 있어서, 상기 메인저장부에 재저장하는 단계는
    상기 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 상기 메타 데이터 저장부에게 후보군 데이터를 요청하는 단계;
    상기 메타 데이터 저장부가 상기 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 상기 후보군 데이터로 추출하여, 상기 저장정책 변경 데몬으로 제공하는 단계; 및
    상기 후보군 데이터가 존재하면, 상기 저장정책 변경 데몬이 상기 리소스 사용률에 따라 상기 후보군 데이터에 대한 저장정책 변경여부를 판별하는 단계를 포함하는 것을 특징으로 하는 데이터 저장방법.
  5. 제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
    상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 상기 저장 정책 변경을 수행하지 않는 것을 특징으로 하는 데이터 저장방법.
  6. 제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
    상기 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면, 상기 후보군 데이터 중에서 상기 EC 저장정책으로 저장된 데이터를 상기 REP 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
  7. 제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
    상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면, 상기 후보군 데이터 중에서 상기 REP 저장정책으로 저장된 데이터를 상기 EC 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
  8. 제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
    상기 후보군 데이터에 대한 저장정책 변경시, 상기 REP 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 큰 순서에 따라 상기 EC 저장정책으로 변경하고, 상기 EC 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 작은 순서에 따라 상기 REP 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
  9. 하드웨어와 결합된 청구항 제1항 내지 제8항 중 어느 한 항의 데이터 저장 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램.
  10. 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 정책설정부; 및
    상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장정책을 변경하여 상기 메인 저장부에 재저장하는 정책전환부를 포함하는 객체 스토리지 장치.
KR1020190140747A 2019-11-06 2019-11-06 객체 스토리지 장치 및 이를 이용한 데이터 저장방법 KR20210054732A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190140747A KR20210054732A (ko) 2019-11-06 2019-11-06 객체 스토리지 장치 및 이를 이용한 데이터 저장방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190140747A KR20210054732A (ko) 2019-11-06 2019-11-06 객체 스토리지 장치 및 이를 이용한 데이터 저장방법

Publications (1)

Publication Number Publication Date
KR20210054732A true KR20210054732A (ko) 2021-05-14

Family

ID=75915380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190140747A KR20210054732A (ko) 2019-11-06 2019-11-06 객체 스토리지 장치 및 이를 이용한 데이터 저장방법

Country Status (1)

Country Link
KR (1) KR20210054732A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277736A (zh) * 2022-07-25 2022-11-01 中国工商银行股份有限公司 分布式块存储的数据自动均衡方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277736A (zh) * 2022-07-25 2022-11-01 中国工商银行股份有限公司 分布式块存储的数据自动均衡方法及装置

Similar Documents

Publication Publication Date Title
US9983825B2 (en) Efficient data volume replication for block-based storage
US10489422B2 (en) Reducing data volume durability state for block-based storage
US8762674B2 (en) Storage in tiered environment for colder data segments
US9116803B1 (en) Placement of virtual machines based on page commonality
US11093343B2 (en) Fragmentation mitigation in synthetic full backups
US11463518B2 (en) Storage tier selection for replication and recovery
US8234470B2 (en) Data repository selection within a storage environment
US10380074B1 (en) Systems and methods for efficient backup deduplication
US10505862B1 (en) Optimizing for infrastructure diversity constraints in resource placement
US20140281301A1 (en) Elastic hierarchical data storage backend
US11500577B2 (en) Method, electronic device, and computer program product for data processing
US11314432B2 (en) Managing data reduction in storage systems using machine learning
KR101918806B1 (ko) 분산 파일 시스템의 읽기 성능 극대화를 위한 캐시 관리 방법
US10621123B2 (en) Managing storage system performance
US11272006B2 (en) Intelligently distributing retrieval of recovery data amongst peer-based and cloud-based storage sources
JP5444728B2 (ja) ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
KR20210054732A (ko) 객체 스토리지 장치 및 이를 이용한 데이터 저장방법
JP2024506131A (ja) 仮想マシンのメモリ共有方法および装置
CN109947704B (zh) 一种锁类型切换方法、装置及集群文件系统
US9160610B1 (en) Method and apparatus for coordinating service execution within a shared file system environment to optimize cluster performance
US10101940B1 (en) Data retrieval system and method
US11698744B2 (en) Data deduplication (dedup) management
US10394481B2 (en) Reducing application input/output operations from a server having data stored on de-duped storage
KR101887741B1 (ko) 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal