[go: up one dir, main page]

KR102752810B1 - Apparatus for object based storage and data storage method using the same - Google Patents

Apparatus for object based storage and data storage method using the same Download PDF

Info

Publication number
KR102752810B1
KR102752810B1 KR1020190140747A KR20190140747A KR102752810B1 KR 102752810 B1 KR102752810 B1 KR 102752810B1 KR 1020190140747 A KR1020190140747 A KR 1020190140747A KR 20190140747 A KR20190140747 A KR 20190140747A KR 102752810 B1 KR102752810 B1 KR 102752810B1
Authority
KR
South Korea
Prior art keywords
data
storage
policy
storage policy
target data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190140747A
Other languages
Korean (ko)
Other versions
KR20210054732A (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/KR102752810B1/en
Publication of KR20210054732A publication Critical patent/KR20210054732A/en
Application granted granted Critical
Publication of KR102752810B1 publication Critical patent/KR102752810B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함할 수 있다. The present application relates to an object storage device and a data storage method using the same. The data storage method of the object storage device according to one embodiment of the present invention may include the steps of: when receiving a storage request for target data from a user terminal, selecting one of a REP (Replication) storage policy or an EC (Erasure Coding) storage policy according to a size of the target data and storing the data in a main storage; and the steps of comparing access records for the target data stored in the main storage to extract candidate data, and changing the storage policy of the candidate data according to a resource usage rate of the object storage device and re-storing the same in the main storage.

Description

객체 스토리지 장치 및 이를 이용한 데이터 저장방법 {Apparatus for object based storage and data storage method using the same}{Apparatus for object based storage and data storage method using the same}

본 출원은 데이터에 따라 데이터 저장정책을 선택하여 효율적으로 저장할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 관한 것이다. The present application relates to an object storage device capable of efficiently storing data by selecting a data storage policy according to the data, and a data storage method using the same.

이메일, 전자상거래 등과 같은 다양한 네트워크 기반 응용에 의해 생성되는 방대한 양의 데이터가 급격하게 증가함에 따라, 기업에서는 상기와 같이 급격히 증가하는 대량의 데이터를 가능한 많이 지속적으로 축적하기 위해 스토리지 시스템(storage system) 구축에 심혈을 기울이고 있다. 하지만, 기업이 이미 보유하고 있는 이질적인 인터넷 환경으로 인해, 기업에서는 여러 곳에 산재하고 있는 스토리지 저장소들에 존재하는 정보들을 관리 및 활용하기가 매우 어렵다. 이에 따라, 대량의 데이터를 효율적으로 처리하기 위한 스토리지 시스템과 관련된 기술로서, 'DAS(Direct Attached Storage)', 'NAS(Network Attached Storage)', 'SAN(Storage Area Network)' 등이 제안되었다. As the massive amount of data generated by various network-based applications such as email, e-commerce, etc. rapidly increases, enterprises are making great efforts to build storage systems in order to continuously accumulate the rapidly increasing massive amount of data as much as possible. However, due to the heterogeneous Internet environment that enterprises already possess, it is very difficult for enterprises to manage and utilize information existing in storage repositories scattered in various places. Accordingly, technologies related to storage systems for efficiently processing massive amounts of data, such as 'DAS (Direct Attached Storage)', 'NAS (Network Attached Storage)', and 'SAN (Storage Area Network)', have been proposed.

구체적으로, DAS는 블록기반의 스토리지 디바이스를 호스트 컴퓨터의 입출력 버스에 SCSI 혹은 IDE를 통하여 직접 연결한 구조인데, 고성능 및 강력한 데이터 보호 기능을 제공하지만 스토리지 디바이스의 확장성에 있어 제약이 존재하는 한계가 있다.Specifically, DAS is a structure in which a block-based storage device is directly connected to the input/output bus of a host computer via SCSI or IDE. It provides high performance and strong data protection functions, but has limitations in terms of the expandability of the storage device.

NAS는 상이한 플랫폼을 갖는 호스트들에서 데이터를 공유할 수 있는 파일 서비스를 제공하기 위해, 파일이 스토리지 디바이스에 어떻게 저장되었는지를 기술하는 메타데이터를 하나의 서버에서 모두 관리하는 구조이며, 모든 파일에 대한 입출력이 하나의 서버를 통해 이루어지기 때문에 파일 서버에 병목 현상이 발생하는 문제가 있다. NAS is a structure that manages all metadata describing how files are stored on a storage device on a single server in order to provide a file service that allows data to be shared across hosts with different platforms. However, because input/output for all files is done through a single server, there is a problem that a bottleneck occurs on the file server.

SAN은 스토리지 디바이스 연결성 제약과 스토리지 디바이스의 공유 문제를 해결하고, 더욱 많은 클라이언트 호스트와 스토리지 디바이스를 지원하기 위해 빠르고 확장성이 높은 상호 연결을 지원하는 구조이며, 파일 시스템과 같은 스토리지 응용이 데이터를 공유하기 위해 서로 다른 플랫폼들에서 파일 시스템의 메타데이터를 이해할 수 있어야 하고 별도의 고가 장비들이 필요로 하기 때문에 스토리지 확장성에 제한이 있다.SAN is a structure that supports fast and highly scalable interconnection to solve the storage device connectivity constraints and storage device sharing issues, and to support more client hosts and storage devices. However, storage applications such as file systems have limitations in storage scalability because they require different platforms to understand file system metadata in order to share data and require separate expensive equipment.

앞서 언급된 DAS, NAS 및 SAN이 갖는 한계를 극복하기 위해, '객체기반 스토리지 시스템(Object-Based Storage system)'이 제안되었다. 여기서, 객체기반 스토리지 시스템은 스토리지 환경에서 사용하던 데이터 처리 경로를 메타데이터 영역 및 실제 데이터 영역으로 구분함으로써, 기존의 NAS 및 SAN이 갖는 개념들을 객체 인터페이스를 통해 통합할 뿐만 아니라, 고성능, 높은 확장성, 플랫폼간 데이터 공유 등과 같은 스토리지 환경을 위한 조건을 만족시킨다.To overcome the limitations of the aforementioned DAS, NAS, and SAN, an 'Object-Based Storage System' has been proposed. Here, the Object-Based Storage System not only integrates the concepts of existing NAS and SAN through an object interface by dividing the data processing path used in the storage environment into a metadata area and an actual data area, but also satisfies the conditions for a storage environment such as high performance, high scalability, and cross-platform data sharing.

본 출원은 각각의 데이터별로 최적의 저장정책을 선택하여 저장할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다. The present application aims to provide an object storage device capable of selecting and storing an optimal storage policy for each data, and a data storage method using the same.

본 출원은 이미 저장된 데이터의 저장정책을 상황에 따라 유동적으로 변경하여, 다운로드 성능 등을 향상시킬 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다. The present application seeks to provide an object storage device and a data storage method using the same, which can improve download performance, etc. by flexibly changing the storage policy of already stored data according to the situation.

본 출원은 데이터 저장정책을 선택적으로 적용하여, 저장공간 효율성을 향상시킬 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다. The present application seeks to provide an object storage device capable of improving storage space efficiency by selectively applying a data storage policy and a data storage method using the same.

본 출원은 객체 스토리지 장치의 리소스 사용률에 따라 저장정책을 변경하여, 데이터 처리시 리소스를 효율적으로 사용할 수 있는 객체 스토리지 장치 및 이를 이용한 데이터 저장방법을 제공하고자 한다. The present application seeks to provide an object storage device and a data storage method using the same, which can efficiently use resources during data processing by changing a storage policy according to the resource usage rate of the object storage device.

본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터 저장방법은, 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 단계; 및 상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 상기 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함할 수 있다. A method for storing data in an object storage device according to one embodiment of the present invention may include the steps of: when receiving a storage request for target data from a user terminal, selecting one of a REP (Replication) storage policy or an EC (Erasure Coding) storage policy according to a size of the target data and storing the data in a main storage; and comparing access records for the target data stored in the main storage to extract candidate data, and changing the storage policy of the candidate data according to a resource usage rate of the object storage device and re-storing the same in the main storage.

여기서 메인 저장부에 저장하는 단계는, 상기 대상 데이터의 크기가 임계값 이상인지 비교하는 단계; 상기 임계값 미만이면 상기 REP 저장정책에 따라, 상기 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 상기 메인 저장부에 저장하는 단계; 상기 임계값 이상이면 상기 EC 저장정책에 따라, 상기 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 상기 데이터 청크 및 패리티 데이터를 각각 상기 메인 저장부에 저장하는 단계; 및 상기 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장하는 단계를 포함할 수 있다. Here, the step of storing in the main storage may include: a step of comparing whether the size of the target data is greater than or equal to a threshold value; a step of generating a plurality of replicated data identical to the target data according to the REP storage policy if the size is less than or equal to the threshold value, and storing the same in the main storage; a step of dividing the target data into a plurality of data chunks according to the EC storage policy if the size is greater than or equal to the threshold value, generating parity data for each data chunk, and storing the data chunk and parity data in the main storage, respectively; and a step of generating metadata including information on each storage policy applied to the target data, and storing the metadata in the metadata storage.

여기서 상기 임계값은, 를 만족시키는 x값으로, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭일 수 있다. Here, the above threshold is, where N is the network bandwidth, m is the number of data chunks divided when applying the EC storage policy, and H(x) can be the input/output bandwidth of the main storage unit.

여기서 상기 메인저장부에 재저장하는 단계는, 상기 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 상기 메타 데이터 저장부에게 후보군 데이터를 요청하는 단계; 상기 메타 데이터 저장부가 상기 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 상기 후보군 데이터로 추출하여, 상기 저장정책 변경 데몬으로 제공하는 단계; 및 상기 후보군 데이터가 존재하면, 상기 저장정책 변경 데몬이 상기 리소스 사용률에 따라 상기 후보군 데이터에 대한 저장정책 변경여부를 판별하는 단계를 포함할 수 있다. Here, the step of re-storing in the main storage may include a step of a storage policy change daemon installed in the main storage requesting candidate data from the metadata storage; a step of the metadata storage searching an access record for the target data, extracting target data having an access frequency higher than a set value and an access history within a set period of time as the candidate data, and providing the extracted data to the storage policy change daemon; and a step of the storage policy change daemon determining, if the candidate data exists, whether to change the storage policy for the candidate data based on the resource usage rate.

여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 상기 저장 정책 변경을 수행하지 않을 수 있다. In this step of determining whether to change the storage policy, if the CPU usage rate among the resource usage rates is less than the limit value and saturation of the input/output bandwidth does not occur, or if the CPU usage rate is greater than the limit value and saturation of the input/output bandwidth occurs, the storage policy change may not be performed.

여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면, 상기 후보군 데이터 중에서 상기 EC 저장정책으로 저장된 데이터를 상기 REP 저장정책으로 변경할 수 있다. In this step of determining whether to change the storage policy, if the CPU usage rate among the resource usage rates is greater than the limit value and the input/output bandwidth is not saturated, data among the candidate data stored with the EC storage policy can be changed to the REP storage policy.

여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면, 상기 후보군 데이터 중에서 상기 REP 저장정책으로 저장된 데이터를 상기 EC 저장정책으로 변경할 수 있다. In this step of determining whether to change the storage policy, if the CPU usage rate among the resource usage rates is below the limit value and the input/output bandwidth is saturated, the data stored with the REP storage policy among the candidate data can be changed to the EC storage policy.

여기서 상기 저장 정책 변경여부를 판별하는 단계는, 상기 후보군 데이터에 대한 저장정책 변경시, 상기 REP 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 큰 순서에 따라 상기 EC 저장정책으로 변경하고, 상기 EC 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 작은 순서에 따라 상기 REP 저장정책으로 변경할 수 있다. Here, the step of determining whether or not to change the storage policy is as follows: when the storage policy for the candidate data is changed, the candidate data stored with the REP storage policy can be changed to the EC storage policy in order of the size of the candidate data, and the candidate data stored with the EC storage policy can be changed to the REP storage policy in order of the size of the candidate data.

본 발명의 일 실시예에 의하면, 하드웨어와 결합된 상술한 데이터 저장 방법들을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램이 존재할 수 있다. According to one embodiment of the present invention, there may be a computer program stored on a medium for executing the above-described data storage methods combined with hardware.

본 발명의 일 실시예에 의한 객체 스토리지 장치는, 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 정책설정부; 및 상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장정책을 변경하여 상기 메인 저장부에 재저장하는 정책전환부를 포함할 수 있다. An object storage device according to one embodiment of the present invention may include a policy setting unit that selects one of a REP (Replication) storage policy and an EC (Erasure Coding) storage policy according to a size of the target data and stores the same in a main storage unit when receiving a storage request for target data from a user terminal; and a policy switching unit that compares access records for the target data stored in the main storage unit to extract candidate data, and changes the storage policy of the candidate data according to a resource usage rate and re-stores the same in the main storage unit.

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.In addition, the solution to the above-mentioned problem does not enumerate all the features of the present invention. The various features of the present invention and the advantages and effects thereof can be understood in more detail by referring to the specific embodiments below.

본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 각각의 데이터별로 최적의 저장정책을 선택하여 저장하는 것이 가능하다. 또한, 이미 저장된 데이터에 대하여도, 상황에 따라 유동적으로 저장정책을 변경할 수 있으므로, 각각의 데이터에 대한 다운로드 성능 등을 향상시킬 수 있다. 나아가, 각각의 데이터별로 저장정책을 선택적으로 적용할 수 있으므로, 저장공간을 효율적으로 운용하는 것이 가능하다. According to an object storage device and a data storage method using the same according to one embodiment of the present invention, it is possible to select and store an optimal storage policy for each data. In addition, since the storage policy can be flexibly changed according to the situation even for data that has already been stored, the download performance for each data can be improved. Furthermore, since the storage policy can be selectively applied to each data, it is possible to efficiently operate the storage space.

본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 객체 스토리지 장치의 리소스 사용률에 따라 저장정책을 변경하므로, 데이터 처리시 리소스를 효율적으로 사용하는 것이 가능하다. According to an object storage device and a data storage method using the same according to one embodiment of the present invention, a storage policy is changed according to the resource usage rate of the object storage device, so it is possible to efficiently use resources when processing data.

본 발명의 일 실시예에 의한 객체 스토리지 장치 및 이를 이용한 데이터 저장방법에 의하면, 대용량 데이터 처리시 입출력 대역폭의 병목현상을 방지하고, 저용량 데이터 처리시 CPU를 사용하는 추가적인 연산작업을 줄일 수 있으므로, 객체 스토리지 장치의 다운로드 성능 저하를 방지할 수 있다According to an object storage device and a data storage method using the same according to one embodiment of the present invention, a bottleneck phenomenon of input/output bandwidth can be prevented when processing large-capacity data, and additional computational work using the CPU can be reduced when processing small-capacity data, thereby preventing a decrease in download performance of the object storage device.

도1은 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 나타내는 개략도이다.
도2는 본 발명의 일 실시예에 의한 객체 스토리지 장치를 나타내는 블록도이다.
도3은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 대상 데이터의 크기에 따른 저장 정책 설정을 나타내는 타이밍도이다.
도4는 본 발명의 일 실시예에 의한 객체 스토리지 장치에 저장된 대상 데이터들에 대한 저장 정책 전환을 나타내는 타이밍도이다.
도5 내지 도7은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터 저장방법을 나타내는 순서도이다.
Figure 1 is a schematic diagram showing an object storage system according to one embodiment of the present invention.
Figure 2 is a block diagram showing an object storage device according to one embodiment of the present invention.
FIG. 3 is a timing diagram showing storage policy settings according to the size of target data of an object storage device according to one embodiment of the present invention.
FIG. 4 is a timing diagram showing a storage policy transition for target data stored in an object storage device according to one embodiment of the present invention.
Figures 5 to 7 are flowcharts showing a data storage method of an object storage device according to one embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.Hereinafter, with reference to the attached drawings, preferred embodiments will be described in detail so that those with ordinary skill in the art can easily practice the present invention. However, when describing preferred embodiments of the present invention in detail, if it is determined that a specific description of a related known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, the same reference numerals are used throughout the drawings for parts that perform similar functions and actions.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 명세서에 기재된 "~부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. In addition, throughout the specification, when a part is said to be 'connected' to another part, this includes not only the case where it is 'directly connected', but also the case where it is 'indirectly connected' with another element in between. Also, 'including' a certain component means that, unless specifically stated otherwise, it does not exclude other components, but may include other components. In addition, terms such as "part", "module", etc. described in the specification mean a unit that processes at least one function or operation, and this can be implemented by hardware or software, or by a combination of hardware and software.

도1은 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 나타내는 개략도이다. Figure 1 is a schematic diagram showing an object storage system according to one embodiment of the present invention.

도1을 참조하면, 본 발명의 일 실시예에 의한 객체 스토리지 시스템은 사용자 단말(1) 및 객체 스토리지 장치(100)를 포함할 수 있다. Referring to FIG. 1, an object storage system according to one embodiment of the present invention may include a user terminal (1) and an object storage device (100).

이하 도1을 참조하여 본 발명의 일 실시예에 의한 객체 스토리지 시스템을 설명한다. Referring to FIG. 1 below, an object storage system according to one embodiment of the present invention is described.

사용자 단말(1)은 네트워크를 통해 객체 스토리지 장치(100)와 통신을 수행할 수 있으며, 사용자 단말(1)에서 생성한 텍스트, 이미지, 동영상 등 다양한 종류의 비정형 데이터들을 객체 스토리지 장치(100) 내에 저장할 수 있다. A user terminal (1) can communicate with an object storage device (100) through a network, and can store various types of non-standard data such as text, images, and videos generated by the user terminal (1) in the object storage device (100).

여기서, 사용자 단말(1)은 유선 또는 무선 통신망을 통해 데이터 통신을 수행할 수 있으며, 정보의 송수신을 위한 통신모듈, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다. Here, the user terminal (1) can perform data communication through a wired or wireless communication network, and may be equipped with a communication module for transmitting and receiving information, a memory for storing programs and protocols, a microprocessor for executing various programs to perform calculations and control, etc.

구체적으로, 사용자 단말(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) 등일 수 있다. Specifically, the user terminal (1) may be a mobile terminal to which wireless communication technology is applied, such as a smart phone, a tablet PC, a laptop, a PDA (Personal Digital Assistants), a PMP (Portable Multimedia Player), an MP3 Player, a wearable device (e.g., a smartwatch, a smart glass, a head mounted display (HMD)), or a digital device that is difficult to carry, such as a PC, IPTV, a smart TV, a voice recognition speaker, etc. Depending on the embodiment, the user terminal (1) may be a cloud PC (Cloud Personal Computer) that stores resources, such as an OS (Operation System) image file, in an object storage device (100).

객체 스토리지 장치(100)는 네트워크 상에 데이터를 저장하는 서버 등일 수 있다. 즉, SSD(Solid State Drive, HDD(Hard Disk Drive) 등의 저장장치를 구비할 수 있으며, 사용자 단말(1)의 요청에 따라 데이터 입출력 서비스 등을 제공할 수 있다. 실시예에 따라서는, 객체 스토리지 장치(100)를 이용하여 클라우드 PC, 서버 기반 컴퓨팅(Server based Computing), IPTV 서비스, 이메일 서비스, 웹 스토리지 서비스 등을 제공하는 것도 가능하다. The object storage device (100) may be a server, etc. that stores data on a network. That is, it may be equipped with a storage device, such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive), and may provide data input/output services, etc. according to a request from a user terminal (1). Depending on the embodiment, it is also possible to provide a cloud PC, server-based computing, IPTV service, email service, web storage service, etc. using the object storage device (100).

여기서, 객체 스토리지 장치(100)는 객체 기반(object based) 저장장치로, 저장공간의 효율성 등을 위하여 다양한 저장 정책을 지원할 수 있으며, 사용자 단말(1)이 저장하고자 하는 대상 데이터를 분석한 후, 각각의 데이터별로 최적의 저장 정책을 선택하여 적용할 수 있다. 구체적으로, 객체 스토리지 장치(100)이 적용하는 저장정책에는, REP(Replication) 저장정책과 EC(Erasure Coding) 저장정책이 포함될 수 있다.Here, the object storage device (100) is an object-based storage device, and can support various storage policies for the efficiency of storage space, etc., and after analyzing the target data that the user terminal (1) wants to store, the optimal storage policy can be selected and applied for each data. Specifically, the storage policy applied by the object storage device (100) can include a REP (Replication) storage policy and an EC (Erasure Coding) storage policy.

REP 저장정책에 의하면, 대상 데이터의 손실에 대비하기 위하여, 대상 데이터와 동일한 복제 데이터를 복수개 생성할 수 있다. 이후, 대상 데이터와 복제 데이터들을 서로 다른 공간에 저장하여, 어느 하나에 손실이 발생하더라도 대상 데이터를 그대로 유지시킬 수 있다. REP 저장정책의 경우, 대상 데이터를 단순히 복제하는 것이므로, 데이터 처리방식이 간단하여 객체 스토리지 장치(100)의 CPU 사용률은 적을 수 있다. 다만, 대상 데이터의 크기가 큰 경우에는 SSD, HDD 등의 입출력 대역폭이 많이 사용되므로, 입출력 대역폭이 포화되는 경우가 발생할 수 있다. According to the REP storage policy, in order to prepare for the loss of target data, multiple copies of the same target data can be created. Afterwards, the target data and the copies can be stored in different spaces so that the target data can be maintained as is even if a loss occurs in one of them. In the case of the REP storage policy, since the target data is simply copied, the data processing method is simple and the CPU usage of the object storage device (100) can be low. However, when the size of the target data is large, the input/output bandwidth of SSD, HDD, etc. is used a lot, so the input/output bandwidth may be saturated.

EC 저장정책의 경우, 대상 데이터를 분할하여 복수개의 데이터 청크(chunk)를 생성할 수 있으며, 각각의 데이터 청크의 복원을 위한 패리티(parity) 데이터를 생성할 수 있다. 여기서, 각각의 데이터 청크와 패리티 데이터를 서로 다른 공간에 저장하므로, 데이터 청크 중 일부에 손실이 발생하더라도 패리티 데이터를 이용하여 손실될 데이터를 복원하는 것이 가능하다. EC 저장정책의 경우, 대상 데이터를 분할하여 처리하므로 입출력 대역폭의 사용이 적어 입출력 대역폭의 포화 등은 발생하지 않을 수 있다. 다만, 대상 데이터의 분할이나 패리티 데이터 생성을 위한 연산을 수행하므로, CPU 사용률이 증가할 수 있다. In the case of the EC storage policy, the target data can be divided to create multiple data chunks, and parity data can be created for restoring each data chunk. Here, since each data chunk and parity data are stored in different spaces, even if some of the data chunks are lost, it is possible to restore the lost data using the parity data. In the case of the EC storage policy, since the target data is divided and processed, the input/output bandwidth is less used, so saturation of the input/output bandwidth, etc. may not occur. However, since operations for dividing the target data or creating parity data are performed, the CPU usage rate may increase.

이와 같이, 각각의 저장정책에는 장단점이 존재하므로, 객체 스토리지 장치(100)는 각각의 대상 데이터에 따라 적합한 저장 정책을 선택하여 적용함으로써, 효율적인 데이터 저장을 수행할 수 있다. In this way, since each storage policy has advantages and disadvantages, the object storage device (100) can perform efficient data storage by selecting and applying an appropriate storage policy according to each target data.

도2는 본 발명의 일 실시예에 의한 객체 스토리지 장치를 나타내는 블록도이다. Figure 2 is a block diagram showing an object storage device according to one embodiment of the present invention.

도2를 참조하면, 본 발명의 일 실시예에 의한 객체 스토리지 장치(100)는 제어부(110), 메인저장부(120) 및 메타데이터저장부(130)를 포함할 수 있다. Referring to FIG. 2, an object storage device (100) according to one embodiment of the present invention may include a control unit (110), a main storage unit (120), and a metadata storage unit (130).

이하 도2를 참조하여 본 발명의 일 실시예에 의한 객체 스토리지 장치를 설명한다. An object storage device according to one embodiment of the present invention will be described with reference to FIG. 2 below.

제어부(110)는 객체 스토리지 장치(100)의 전반적인 동작을 제어할 수 있으며, 객체 스토리지 장치(100)의 데이터 저장 정책을 설정할 수 있다. 제어부(110)는 사용자 단말(1)로부터 대상 데이터에 대한 저장 요청을 수신할 수 있으며, 대상 데이터에 대응하는 저장정책을 적용하여 메인 저장부(120)에 저장할 수 있다. 또한, 대상 데이터에 적용한 저장정책과, 대상 데이터가 저장되는 위치정보 등의 메타데이터를 생성하여 메타데이터저장부(130)에 저장할 수 있다. 이후, 제어부(110)는 사용자 단말(1)로부터 대상 데이터에 대한 접근을 요청받을 수 있다. 이 경우 제어부(110)는 메타데이터저장부(130)에 저장된 메타데이터를 참조하여 메인저장부(120)에 저장된 대상 데이터를 추출할 수 있으며, 추출한 대상 데이터를 사용자 단말(1)에게 제공할 수 있다. The control unit (110) can control the overall operation of the object storage device (100) and set the data storage policy of the object storage device (100). The control unit (110) can receive a storage request for target data from the user terminal (1), apply a storage policy corresponding to the target data, and store the data in the main storage unit (120). In addition, the control unit (110) can generate metadata such as the storage policy applied to the target data and the location information where the target data is stored, and store the metadata in the metadata storage unit (130). Thereafter, the control unit (110) can receive a request for access to the target data from the user terminal (1). In this case, the control unit (110) can extract the target data stored in the main storage unit (120) by referring to the metadata stored in the metadata storage unit (130), and provide the extracted target data to the user terminal (1).

실시예에 따라서는, 사용자 단말(1)이 대상 데이터 저장에 대한 저장정책을 미리 설정한 경우가 있을 수 있으나, 이 경우에도 제어부(110)는 사용자 단말(1)이 설정한 저장정책과는 무관하게 저장정책을 선택하여 적용할 수 있다. 즉, 사용자는 초기 설정시 적용되는 저장정책을 그대로 사용하는 등 객체 스토리 장치(100)를 효율적으로 사용하지 않을 수 있으므로, 제어부(110)를 이용하여 효율적인 저장정책의 적용을 강제할 수 있다. Depending on the embodiment, there may be a case where the user terminal (1) has set a storage policy for target data storage in advance, but even in this case, the control unit (110) can select and apply a storage policy regardless of the storage policy set by the user terminal (1). That is, since the user may not use the object story device (100) efficiently, such as by using the storage policy applied at the time of initial setting, the control unit (110) can be used to force the application of an efficient storage policy.

또한, 제어부(110)에서 저장정책을 선택하여 설정한 경우에는, 각각의 대상 데이터에 적용된 저장정책을 명확하게 하기 위하여, 별도의 테이블표를 생성할 수 있다. 즉, 변경 전의 저장 정책과 변경된 저장정책을 테이블표에 기록하도록 하여, 사용자의 대상 데이터 요청시 테이블표를 참조하여 처리하도록 할 수 있다. In addition, when a storage policy is selected and set in the control unit (110), a separate table can be created to clearly indicate the storage policy applied to each target data. That is, the storage policy before the change and the changed storage policy can be recorded in the table so that the table can be referenced and processed when the user requests target data.

메인저장부(120)는 사용자 단말(1)로부터 요청받은 대상 데이터를 저장할 수 있다. 메인저장부(120)는 복수의 SSD, HDD 등을 포함할 수 있으며, 물리적으로 구별되는 복수의 저장공간들을 포함할 수 있다. 메인저장부(120)는 제어부(110)가 설정한 각각의 REP 저장정책 또는 EC 저장정책에 따라, 각각의 대상 데이터를 저장할 수 있다. The main storage unit (120) can store target data requested from the user terminal (1). The main storage unit (120) can include multiple SSDs, HDDs, etc., and can include multiple physically distinct storage spaces. The main storage unit (120) can store each target data according to each REP storage policy or EC storage policy set by the control unit (110).

메타데이터저장부(130)는 각각의 대상 데이터에 대한 메타데이터를 저장할 수 있다. 즉, 각각의 대상 데이터에 적용된 저장정책과, 대상 데이터가 저장되는 메인저장부(120) 상의 위치정보 등이 메타데이터로 저장될 수 있다. 이후, 메타데이터저장부(130)에 저장된 메타데이터를 활용하여 메인저장부(120)에 저장된 대상 데이터들을 추출할 수 있다. The metadata storage unit (130) can store metadata for each target data. That is, the storage policy applied to each target data and the location information on the main storage unit (120) where the target data is stored can be stored as metadata. Thereafter, the target data stored in the main storage unit (120) can be extracted by utilizing the metadata stored in the metadata storage unit (130).

한편, 도2에서는 객체 스토리지 장치(100) 내에 제어부(110), 메인저장부(120), 메타데이터저장부(130)가 포함되는 것으로 도시되어 있으나, 이에 한정되지 않고 각각 별도의 서버로 구현될 수 있다. 즉, 제어부(110)는 별도의 컴퓨팅 서버로 구현되고, 메인저장부(120)와 메타데이터저장부(130)는 컴퓨팅 서버에 연결된 각각의 스토리지 서버로 구현될 수 있다. Meanwhile, in FIG. 2, a control unit (110), a main storage unit (120), and a metadata storage unit (130) are illustrated as being included in the object storage device (100), but this is not limited to this and each may be implemented as a separate server. That is, the control unit (110) may be implemented as a separate computing server, and the main storage unit (120) and the metadata storage unit (130) may be implemented as separate storage servers connected to the computing server.

추가적으로, 도2를 참조하면, 제어부(110)는 정책설정부(111) 및 정책전환부(112)를 더 포함할 수 있다. 즉, 제어부(110)는 대상 데이터의 저장시 정책설정부(111)를 통하여 적용할 저장정책을 선택하여 저장할 수 있으며, 이후 정책전환부(112)를 이용하여 메인저장부(120)에 저장된 각각의 대상 데이터에 적용하는 저장정책을 변경하도록 할 수 있다. 이를 통하여 대상 데이터를 보다 효율적으로 저장할 수 있으며, 사용자에게 향상된 다운로드 성능을 제공할 수 있다. Additionally, referring to FIG. 2, the control unit (110) may further include a policy setting unit (111) and a policy switching unit (112). That is, the control unit (110) may select and store a storage policy to be applied through the policy setting unit (111) when storing target data, and may then change the storage policy applied to each target data stored in the main storage unit (120) using the policy switching unit (112). Through this, the target data may be stored more efficiently, and improved download performance may be provided to the user.

구체적으로, 도3을 참조하면, 정책설정부(111)는 사용자 단말(1)로부터 대상 데이터에 대한 저장 요청을 수신할 수 있으며(S11), 대상 데이터의 크기에 따라 REP 저장정책과 EC 저장정책 중 어느 하나의 저장정책을 선택할 수 있다(S12). Specifically, referring to FIG. 3, the policy setting unit (111) can receive a storage request for target data from a user terminal (1) (S11), and select one of the REP storage policies and the EC storage policy depending on the size of the target data (S12).

먼저, 정책설정부(111)는 사용자 단말(1)이 저장요청한 대상 데이터의 크기가 임계값 이상인지를 비교할 수 있다(S12). 여기서, 임계값은 사용자 단말(1)에 대한 대상 데이터의 다운로드 성능을 향상시키기 위하여 설정될 수 있으며, EC 저장정책에 따른 다운로드 성능과 REP 저장정책에 따른 다운로드 성능을 비교하여 설정할 수 있다. 즉, 대상 데이터의 크기가 임계값 이상이면 EC 저장정책을 적용하고, 대상 데이터의 크기가 임계값 미만이면 REP 저장정책을 적용하도록 설정하므로, 임계값은 EC 저장정책의 다운로드 성능 보다 REP 저장정책의 다운로드 성능이 더 좋도록 하는 대상 데이터의 최소 크기에 해당한다. First, the policy setting unit (111) can compare whether the size of the target data requested for storage by the user terminal (1) is greater than or equal to a threshold value (S12). Here, the threshold value can be set to improve the download performance of the target data for the user terminal (1), and can be set by comparing the download performance according to the EC storage policy and the download performance according to the REP storage policy. That is, if the size of the target data is greater than or equal to the threshold value, the EC storage policy is applied, and if the size of the target data is less than the threshold value, the REP storage policy is applied, so the threshold value corresponds to the minimum size of the target data that makes the download performance of the REP storage policy better than the download performance of the EC storage policy.

구체적으로, 다운로드 성능(second) = 데이터 크기(MB) / 데이터 처리 능력(MB/second)로 계산되므로, REP 저장정책에 따른 다운로드 성능은 , EC 저장정책에 따른 다운로드 성능은 이다. 여기서, x는 대상 데이터의 크기, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 메인 저장부(120)의 입출력 대역폭(I/O Bandwidth)에 해당한다. Specifically, since download performance (second) = data size (MB) / data processing capacity (MB/second), the download performance according to the REP storage policy is calculated as , download performance according to EC storage policy Here, x represents the size of the target data, N represents the network bandwidth, m represents the number of data chunks divided when applying the EC storage policy, and H(x) represents the input/output bandwidth (I/O Bandwidth) of the main storage unit (120).

따라서, 임계값은 를 만족시키는 x값으로 결정될 수 있다. Therefore, the threshold is can be determined by the x-value that satisfies .

한편, 입출력 대역폭(H(x))은 HDD, SSD 등 종류에 관계없이 일정한 크기 이상의 데이터를 처리할 때 성능적인 한계에 의하여 포화될 수 있으므로, 다음과 같이 표현될 수 있다. Meanwhile, the input/output bandwidth (H(x)) can be saturated due to performance limitations when processing data larger than a certain size, regardless of the type, such as HDD or SSD, so it can be expressed as follows.

즉, 대상 데이터(x)의 크기가 제한값(t1) 미만인 경우에는, 입출력대역폭(H(x))이 데이터 크기에 비례하여 증가하는 증가함수 G(x)로 표현될 수 있으나, 대상 데이터(x)의 크기가 제한값(t1) 이상인 경우에는 최대 대역폭으로 포화될 수 있다. 따라서, H(x)를 적용하여, 를 만족시키는 임계값을 산출할 수 있다. That is, when the size of the target data (x) is less than the limit value (t1), the input/output bandwidth (H(x)) can be expressed as an increasing function G(x) that increases in proportion to the data size, but when the size of the target data (x) is greater than the limit value (t1), it can be saturated at the maximum bandwidth. Therefore, by applying H(x), A threshold value satisfying this can be calculated.

이후, 정책설정부(111)는 대상 데이터의 크기가 임계값 미만이면 REP 저장정책에 따라 데이터를 저장할 수 있다. 즉, 대상 데이터와 동일한 복수의 복제 데이터를 생성한 후, 각각을 메인 저장부(120)에 저장할 수 있다(S13). Thereafter, the policy setting unit (111) can store data according to the REP storage policy if the size of the target data is less than the threshold value. That is, after creating multiple duplicate data identical to the target data, each can be stored in the main storage unit (120) (S13).

반면에, 대상 데이터의 크기가 임계값 이상인 경우에는 EC 저장정책에 따라 데이터를 저장할 수 있다. 즉, 대상 데이터를 복수의 데이터 청크로 분할할 수 있으며, 각각의 데이터 청크에 대한 패리티 데이터를 생성할 수 있다(S15). 이후, 각각의 데이터 청크 및 패리티 데이터를 각각 메인 저장부(120)에 저장할 수 있다(S16). On the other hand, if the size of the target data is greater than the threshold value, the data can be stored according to the EC storage policy. That is, the target data can be divided into multiple data chunks, and parity data for each data chunk can be generated (S15). Thereafter, each data chunk and parity data can be stored in the main storage unit (120) (S16).

예를들어 1GB의 대상 데이터를 저장하는 경우, REP 저장정책을 적용하면 2개의 복제데이터를 더 생성하여 총 3GB를 저장할 수 있다. 반면에, EC 저장정책을 사용하는 경우에는, 1GB의 대상 데이터를 쪼개어 10개의 데이터 청크를 생성하고, 10개의 데이터 청크에 대한 4개의 패리티 데이터를 생성하여 저장할 수 있다. 이때 데이터 청크와 패리티 데이터의 크기는 같으므로, 실제로는 1.4GB가 저장될 수 있다. 이와 같이 REP 저장정책과 EC 저장정책에 따라, 각각의 실제 데이터 저장량은 상이하며, 이러한 차이는 대상 데이터의 크기가 클수록 더 커질 수 있다. 따라서, 임계값보다 큰 데이터는 EC 저장정책을 적용하고 임계값보다 작은 데이터는 REP 저장정책을 적용하도록 함으로써, 전체 저장공간에 대한 효율적인 활용을 구현할 수 있다. For example, when storing 1 GB of target data, applying the REP storage policy can create 2 more replicated data and store a total of 3 GB. On the other hand, when using the EC storage policy, the 1 GB of target data can be split to create 10 data chunks, and 4 parity data for the 10 data chunks can be generated and stored. At this time, since the sizes of the data chunks and the parity data are the same, 1.4 GB can actually be stored. In this way, the actual data storage amounts are different depending on the REP storage policy and the EC storage policy, and this difference can become larger as the size of the target data increases. Therefore, by applying the EC storage policy to data larger than the threshold value and applying the REP storage policy to data smaller than the threshold value, efficient utilization of the entire storage space can be implemented.

이후, 각각의 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터를 생성하여 메타데이터 저장부(130)에 저장할 수 있다(S14, S17). Thereafter, metadata including information on each storage policy applied to each target data can be generated and stored in the metadata storage unit (130) (S14, S17).

한편, 정책전환부(112)는 이미 저장된 대상 데이터의 저장정책을 상황에 맞게 유동적으로 변경시킬 수 있다. 구체적으로, 정책전환부(112)는 메인 저장부(120)에 저장된 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출할 수 있으며, 객체 스토리지 장치(100)의 리소스 사용률에 따라, 후보군 데이터들의 저장 정책을 변경할 수 있다. 이후, 변경된 저장 정책에 따라 해당 후보군 데이터들을 메인 저장부(120)에 재저장할 수 있다. Meanwhile, the policy transition unit (112) can flexibly change the storage policy of the target data already stored according to the situation. Specifically, the policy transition unit (112) can extract candidate data by comparing the access records for the target data stored in the main storage unit (120), and can change the storage policy of the candidate data according to the resource usage rate of the object storage device (100). Thereafter, the candidate data can be re-stored in the main storage unit (120) according to the changed storage policy.

여기서, 메인저장부(120)에는 저장정책 변경 데몬(daemon)이 설치되어 있을 수 있으며, 도4에 도시한 바와 같이, 정책전환부(112)는 메인저장부(120)에게 저장정책 변경 데몬의 실행을 요청할 수 있다(S21). 여기서, 객체 스토리지 장치(100)의 시스템 자원 소모를 최소화하기 위하여, 메인저장부(120)의 백그라운드에서 동작하는 데몬 프로세스를 이용하여 저장정책 변경 동작을 수행하도록 할 수 있다(S22). Here, a storage policy change daemon may be installed in the main storage (120), and as illustrated in FIG. 4, the policy transition unit (112) may request the main storage (120) to execute the storage policy change daemon (S21). Here, in order to minimize the consumption of system resources of the object storage device (100), a daemon process running in the background of the main storage (120) may be used to perform the storage policy change operation (S22).

이 경우, 저장정책 변경 데몬은 메타데이터 저장부(130)에게 현재 메인저장부(120)에 저장된 대상 데이터들 중에서 저장정책 변경할 후보군 데이터에 해당하는 데이터들을 추출할 것을 요청할 수 있다(S23). In this case, the storage policy change daemon can request the metadata storage unit (130) to extract data corresponding to candidate data for storage policy change from among the target data currently stored in the main storage unit (120) (S23).

사용자 단말(1)이 메인저장부(120)에 저장된 대상 데이터에 접근하기 위해서는 메타 데이터 저장부(130)에 저장된 메타 데이터를 참조하여야 하므로, 메타데이터 저장부(130)는 각각의 대상데이터들에 대한 사용자 단말(1)들의 접근빈도, 접근 이력 등을 포함하는 접근기록이 저장되어 있을 수 있다. 따라서, 저장정책변경 데몬은 메타데이터 저장부(130)에게 후보군 데이터를 요청할 수 있다. Since the user terminal (1) must refer to the metadata stored in the metadata storage (130) in order to access the target data stored in the main storage (120), the metadata storage (130) may store access records including the access frequency and access history of the user terminals (1) for each target data. Accordingly, the storage policy change daemon may request candidate data from the metadata storage (130).

이후, 메타데이터 저장부(130)는 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 후보군 데이터로 추출할 수 있다(S24). 즉, 접근빈도가 높거나 최근에 접근한 대상 데이터의 경우, 사용자 단말(1)이 다시 요청할 가능성이 높은 것으로 볼 수 있다. 따라서, 해당 데이터들을 후보군 데이터로 추출할 수 있으며, 해당 후보군 데이터가 신속하게 사용자 단말(1)에게 제공될 수 있도록 각각의 후보군 데이터들에 대한 저장정책을 변경시킬 수 있다. Thereafter, the metadata storage unit (130) can search for access records for target data and extract target data having an access frequency higher than a set value and an access history within a set period as candidate data (S24). That is, in the case of target data having a high access frequency or recently accessed, it can be seen that there is a high possibility that the user terminal (1) will request it again. Accordingly, the corresponding data can be extracted as candidate data, and the storage policy for each candidate data can be changed so that the corresponding candidate data can be quickly provided to the user terminal (1).

이때, 메타데이터 저장부(130)는 후보군 데이터를 메인저장부(120)로 제공할 수 있으며(S25), 저장정책 변경 데몬은 객체 스토리지 장치(100)의 리소스 사용률을 고려하여 각각의 후보군 데이터들에 대한 저장정책 변경여부를 결정할 수 있다(S26). 여기서, 정책전환부(112)가 고려하는 객체 스토리지 장치(100)의 리소스 사용률에는 CPU 사용률과, 입출력 대역폭의 포화여부가 포함될 수 있다. At this time, the metadata storage unit (130) can provide candidate data to the main storage unit (120) (S25), and the storage policy change daemon can determine whether to change the storage policy for each candidate data by considering the resource usage rate of the object storage device (100) (S26). Here, the resource usage rate of the object storage device (100) considered by the policy transition unit (112) can include the CPU usage rate and whether the input/output bandwidth is saturated.

REP 저장정책의 경우, 대상 데이터를 그대로 복제하여 저장하므로 CPU의 동작이 필요하지 않지만, 대상 데이터의 크기가 큰 경우에는 입출력 대역폭이 포화되는 경우가 발생할 수 있다. 즉, 먼저 입출력 대역폭을 점유하고 있는 프로세스가 처리될 때까지 기다려야 하는 상황이 발생하므로 다운로드 성능 저하의 원인이 될 수 있다. In the case of the REP storage policy, the target data is copied as is and stored, so CPU operation is not required, but if the size of the target data is large, the input/output bandwidth may become saturated. In other words, a situation may arise where the process occupying the input/output bandwidth first must be processed, which may cause a decrease in download performance.

반면에, EC 저장정책의 경우, 분할된 각각의 데이터 청크의 크기가 작으므로 입출력 대역폭이 포화되지 않을 수 있으나, 각각의 데이터 청크를 결합하기 위한 CPU 연산이 많이 발생할 수 있다. 즉, 먼저 요청된 프로세스를 CPU가 처리 중인 경우에는, 해당 프로세스가 완료될 때까지 기다려야 하는 상황이 발생하므로 다운로드 성능 저하의 원인이 될 수 있다. On the other hand, in the case of the EC storage policy, since the size of each divided data chunk is small, the input/output bandwidth may not be saturated, but a lot of CPU operations may occur to combine each data chunk. In other words, if the CPU is processing a process that was requested first, it may have to wait until the process is completed, which may cause a decrease in download performance.

따라서, 정책전환부(112)는 저장정책 변경 데몬이 각각의 객체 스토리지 장치(100)의 리소스 사용률을 더 고려하여 저장정책을 변경하도록 할 수 있다(S26). Accordingly, the policy transition unit (112) can cause the storage policy change daemon to change the storage policy by further considering the resource usage rate of each object storage device (100) (S26).

구체적으로, 현재 CPU 사용률이 한계값 미만이고, 입출력 대역폭의 포화가 발생하지 않은 경우가 있을 수 있다. 이 경우, CPU 사용률이 높지 않고 입출력 대역폭도 포화되지 않았으므로, REP 저장정책과 EC 저장정책 중 어느 것으로 처리해도 성능저하 등의 문제가 발생하지 않을 수 있다. 따라서, 이 경우는 리소스 사용률이 설정조건을 만족하지 않은 경우에 해당하므로, 정책전환부(112)는 저장정책을 변경시키지 않고, 기존에 저장정책에 따라 동작하도록 할 수 있다. Specifically, there may be a case where the current CPU usage is below the limit and the input/output bandwidth is not saturated. In this case, since the CPU usage is not high and the input/output bandwidth is not saturated, problems such as performance degradation may not occur regardless of whether the REP storage policy or the EC storage policy is used. Accordingly, since this case corresponds to a case where the resource usage does not satisfy the setting conditions, the policy switching unit (112) may not change the storage policy and operate according to the existing storage policy.

또한, 현재 CPU 사용률이 한계값 이상이고, 입출력 대역폭의 포화도 발생한 경우도 리소스 사용률이 설정조건을 만족하지 않은 경우에 해당한다. 즉, 어느 저장정책을 적용하여도 성능저하가 발생하게 되므로, 추가로 저장정책을 변경시키지 않고 기존의 저장정책에 따라 동작하도록 할 수 있다. In addition, if the current CPU usage is above the limit and the input/output bandwidth is saturated, this is also the case where the resource usage does not satisfy the set conditions. In other words, since performance degradation occurs regardless of which storage policy is applied, it is possible to operate according to the existing storage policy without changing the storage policy.

반면에, 현재 CPU 사용률이 한계값 이상이고, 입출력 대역폭의 포화가 발생하지 않은 경우는 설정조건을 만족하는 경우에 해당하며, REP 저장정책을 적용하는 것이 사용자 단말(1)의 요청에 대한 처리성능 향상에 유리할 수 있다. 따라서, 기존에 EC 저장정책으로 저장된 데이터를 REP 저장정책으로 변경시킬 수 있다. 이때, 후보군 데이터들 중에서 후보군 데이터의 크기가 작은 순서에 따라 REP 저장정책으로 변경시킬 수 있다. 즉, 후보군 데이터의 크기가 작을수록 REP 저장정책 적용시 입출력 대역폭의 포화가 발생하지 않으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 REP 저장정책으로 변경할 수 있다(S27). On the other hand, if the current CPU usage is higher than the limit and the input/output bandwidth saturation has not occurred, it is a case where the setting conditions are satisfied, and applying the REP storage policy may be advantageous for improving the processing performance for the request of the user terminal (1). Therefore, data previously stored with the EC storage policy can be changed to the REP storage policy. At this time, the candidate data can be changed to the REP storage policy in the order of the size of the candidate data. That is, since the size of the candidate data is smaller, the saturation of the input/output bandwidth does not occur when the REP storage policy is applied, and therefore, the candidate data with smaller data sizes can be changed to the REP storage policy first (S27).

또한, 현재 CPU 사용율이 한계값 미만이고, 입출력 대역폭의 포화가 발생한 경우도 설정조건을 만족하는 경우에 해당하며, CPU 사용율에 여유가 있으므로 EC 저장정책을 적용하는 것이 사용자 단말(1)의 요청에 대한 신속한 처리에 유리하다. 따라서, 기존에 REP 저장정책을 EC 저장정책으로 변경시킬 수 있다. 이때, 후보군 데이터의 크기가 큰 순서에 따라 EC 저장정책으로 변경시킬 수 있다. 즉, 후보군 데이터의 크기가 클수록 입출력 대역폭의 포화가 발생할 가능성이 높으므로, 미리 EC 저장정책으로 변경시킬 수 있다(S27). In addition, if the current CPU usage rate is below the limit and the input/output bandwidth saturation occurs, this is also a case where the set conditions are satisfied, and since there is room for CPU usage rate, applying the EC storage policy is advantageous for rapid processing of the request of the user terminal (1). Therefore, the existing REP storage policy can be changed to the EC storage policy. At this time, the EC storage policy can be changed in the order of the size of the candidate data. That is, since the possibility of the input/output bandwidth saturation increases as the size of the candidate data increases, the EC storage policy can be changed in advance (S27).

이후, 저장정책 변경 데몬은 저장정책의 변경 내용을 정책전환부(112)로 제공하여, 정책전환부(112)에 저장 중인 테이블 내에 저장정책 변경 내역을 기록하도록 할 수 있다(S28). Thereafter, the storage policy change daemon can provide the changed contents of the storage policy to the policy transition unit (112), so that the storage policy change history can be recorded in the table being stored in the policy transition unit (112) (S28).

도5 내지 도7은 본 발명의 일 실시예에 의한 객체 스토리지 장치의 데이터저장방법을 나타내는 순서도이다. Figures 5 to 7 are flowcharts showing a data storage method of an object storage device according to one embodiment of the present invention.

도5를 참조하면, 객체 스토리지 장치가 사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장할 수 있다(S110). Referring to FIG. 5, when an object storage device receives a storage request for target data from a user terminal, it can select one of the REP (Replication) storage policy or the EC (Erasure Coding) storage policy depending on the size of the target data and store it in the main storage unit (S110).

구체적으로, 도6에 도시한 바와 같이, 객체 스토리지 장치는 대상 데이터의 크기가 임계값 이상인지 비교할 수 있으며(S111), 대상 데이터의 크기가 임계값 미만이면(S112) REP 저장정책에 따라 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 메인 저장부에 저장할 수 있다(S114). Specifically, as illustrated in FIG. 6, the object storage device can compare whether the size of target data is greater than or equal to a threshold value (S111), and if the size of target data is less than the threshold value (S112), the device can create multiple replicated data identical to the target data according to the REP storage policy and store them in the main storage unit (S114).

반면에, 대상 데이터의 크기가 임계값 이상이면(S112) EC 저장정책에 따라 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 데이터 청크 및 패리티 데이터를 각각 메인 저장부에 저장할 수 있다(S113). On the other hand, if the size of the target data is greater than the threshold value (S112), the target data can be divided into multiple data chunks according to the EC storage policy, parity data for each data chunk can be generated, and the data chunks and parity data can be stored in the main storage unit, respectively (S113).

이후, 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장할 수 있다(S115). Thereafter, metadata including information on each storage policy applied to the target data can be generated and stored in the metadata storage unit (S115).

한편, 임계값은 를 만족시키는 x값으로 설정될 수 있으며, 여기서 N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭에 해당한다. Meanwhile, the threshold is can be set to an x value that satisfies , where N is the network bandwidth, m is the number of data chunks divided when applying the EC storage policy, and H(x) corresponds to the input/output bandwidth of the main storage unit.

이후, 객체 스토리지 장치는, 메인 저장부에 저장된 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출할 수 있으며, 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 후보군 데이터들의 저장 정책을 변경하여 메인 저장부에 재저장할 수 있다(S120).Thereafter, the object storage device can extract candidate data by comparing access records for target data stored in the main storage, and, depending on the resource usage rate of the object storage device, change the storage policy of the candidate data and re-store it in the main storage (S120).

구체적으로, 도7에 도시한 바와 같이, 먼저 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 메타 데이터 저장부에게 후보군 데이터를 요청할 수 있다(S121). 이후, 메타 데이터 저장부가 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 후보군 데이터로 추출하여, 저장정책 변경 데몬으로 제공할 수 있다(S122). Specifically, as illustrated in Fig. 7, first, the storage policy change daemon installed in the main storage unit can request candidate data from the metadata storage unit (S121). Thereafter, the metadata storage unit can search for access records for target data, extract target data with an access frequency higher than a set value and an access history within a set period of time as candidate data, and provide the data to the storage policy change daemon (S122).

여기서, 후보군 데이터가 존재하면, 저장정책 변경 데몬이 리소스 사용률에 따라 후보군 데이터에 대한 저장정책 변경여부를 판별할 수 있다(S123). Here, if candidate data exists, the storage policy change daemon can determine whether to change the storage policy for the candidate data based on resource usage (S123).

구체적으로, 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면(S124), 후보군 데이터 중에서 EC 저장정책으로 저장된 데이터를 REP 저장정책으로 변경시킬 수 있다(S125). 즉, CPU 사용률이 한계값을 초과하였으므로, EC 저장정책에 따른 데이터 제공시 다운로드 성능이 저하될 수 있다. 따라서, CPU 사용률이 낮은 REP 저장정책으로 미리 변경하여 해당 후보군 데이터에 대한 요청시 신속한 다운로드가 수행되도록 할 수 있다. Specifically, if the CPU utilization among the resource utilization rates is greater than the threshold and the input/output bandwidth saturation does not occur (S124), the data stored in the EC storage policy among the candidate data can be changed to the REP storage policy (S125). That is, since the CPU utilization rate exceeds the threshold, the download performance may be degraded when providing data according to the EC storage policy. Therefore, by changing to the REP storage policy with low CPU utilization in advance, the candidate data can be downloaded quickly when requested.

반면에, 상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면(S126), 후보군 데이터 중에서 REP 저장정책으로 저장된 데이터를 EC 저장정책으로 변경시킬 수 있다(S127). 즉, 입출력 대역폭이 포화되었으므로, REP 저장정책에 따른 데이터 제공시 다운로드 성능이 저하될 수 있다. 따라서, 입출력 대역폭이 적은 EC 저장정책으로 미리 변경하여 해당 후보군 데이터에 대한 요청시 신속한 다운로드가 수행되도록 할 수 있다. On the other hand, if the CPU utilization rate among the above resource utilization rates is below the limit value and the input/output bandwidth is saturated (S126), the data stored in the REP storage policy among the candidate data can be changed to the EC storage policy (S127). That is, since the input/output bandwidth is saturated, the download performance may be degraded when providing data according to the REP storage policy. Therefore, by changing to the EC storage policy with a small input/output bandwidth in advance, the candidate data can be downloaded quickly when requested.

한편, 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 저장 정책 변경을 수행하지 않을 수 있다. 즉, CPU 사용률이 한계값 미만이고, 입출력 대역폭의 포화가 발생하지 않은 경우에는 REP 저장정책과 EC 저장정책 중 어느 것으로 처리해도 성능저하 등의 문제가 발생하지 않을 수 있다. 따라서, 저장정책을 변경시키지 않고, 기존에 저장정책에 따라 동작하도록 할 수 있다. 반면에, CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화도 발생한 경우에는, 어느 저장정책을 적용하여도 성능저하가 발생하므로 저장정책을 변경시키지 않고 기존의 저장정책에 따라 동작하도록 할 수 있다.Meanwhile, if the CPU usage rate among the resource usage rates is less than the limit and the saturation of the input/output bandwidth does not occur, or if the CPU usage rate is greater than or equal to the limit and the saturation of the input/output bandwidth occurs, the storage policy change may not be performed. That is, if the CPU usage rate is less than the limit and the saturation of the input/output bandwidth does not occur, problems such as performance degradation may not occur regardless of whether the REP storage policy or the EC storage policy is used. Therefore, the storage policy may not be changed and the operation may be performed according to the existing storage policy. On the other hand, if the CPU usage rate is greater than or equal to the limit and the saturation of the input/output bandwidth also occurs, performance degradation occurs regardless of which storage policy is applied, so the storage policy may not be changed and the operation may be performed according to the existing storage policy.

추가적으로, REP 저장정책으로 저장된 후보군 데이터를 EC 저장정책으로 변경할 때에는, 후보군 데이터의 크기가 큰 순서에 따라 변경할 수 있다. 즉, 후보군 데이터의 크기가 작을수록 REP 저장정책 적용시 입출력 대역폭의 포화가 발생하지 않으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 REP 저장정책으로 변경할 수 있다. 반면에, EC 저장정책으로 저장된 후보군 데이터를 REP 저장정책으로 변경할 때에는, 후보군 데이터의 크기가 작은 순서에 따라 변경할 수 있다. 즉, 후보군 데이터의 크기가 클수록 입출력 대역폭의 포화가 발생할 가능성이 높으므로, 데이터의 크기가 작은 후보군 데이터들을 먼저 EC 저장정책으로 변경시킬 수 있다. Additionally, when changing candidate data stored with the REP storage policy to the EC storage policy, the candidate data can be changed in order of their sizes. That is, when the candidate data size is smaller, the saturation of the input/output bandwidth does not occur when the REP storage policy is applied, so candidate data with smaller data sizes can be changed to the REP storage policy first. On the other hand, when changing candidate data stored with the EC storage policy to the REP storage policy, the candidate data can be changed in order of their sizes. That is, when the candidate data size is larger, the saturation of the input/output bandwidth is more likely to occur, so candidate data with smaller data sizes can be changed to the EC storage policy first.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as a computer-readable code on a medium in which a program is recorded. The computer-readable medium may be one that continuously stores a computer-executable program or one that temporarily stores it for execution or downloading. In addition, the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, and may be distributed on a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROMs, RAMs, flash memories, etc., configured to store program instructions. In addition, examples of other media may include recording media or storage media managed by app stores that distribute applications or other sites, servers, etc. that supply or distribute various software. Therefore, the above detailed description should not be construed as limiting in all respects and should be considered exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all changes coming within the equivalent scope of the present invention are intended to be included within the scope of the present invention.

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited to the above-described embodiments and the attached drawings. It will be apparent to those skilled in the art to which the present invention pertains that components according to the present invention can be substituted, modified, and changed within a scope that does not depart from the technical spirit of the present invention.

1: 사용자 단말 100: 객체 스토리지 장치
110: 제어부 111: 정책설정부
112: 정책전환부 120: 메인저장부
130: 메타데이터 저장부
1: User terminal 100: Object storage device
110: Control Unit 111: Policy Setting Unit
112: Policy Transition Department 120: Main Storage Department
130: Metadata storage

Claims (10)

객체 스토리지 장치의 데이터 저장방법에 있어서,
사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 단계; 및
상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 상기 객체 스토리지 장치의 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장 정책을 변경하여 상기 메인 저장부에 재저장하는 단계를 포함하는 데이터 저장방법.
In a method of storing data in an object storage device,
When receiving a storage request for target data from a user terminal, a step of selecting either a REP (Replication) storage policy or an EC (Erasure Coding) storage policy according to the size of the target data and storing it in the main storage; and
A data storage method comprising the step of extracting candidate data by comparing access records for the target data stored in the main storage unit, and changing the storage policy of the candidate data according to the resource usage rate of the object storage device and re-storing the same in the main storage unit.
제1항에 있어서, 메인 저장부에 저장하는 단계는
상기 대상 데이터의 크기가 임계값 이상인지 비교하는 단계;
상기 임계값 미만이면 상기 REP 저장정책에 따라, 상기 대상 데이터와 동일한 복수의 복제 데이터를 생성하여 상기 메인 저장부에 저장하는 단계;
상기 임계값 이상이면 상기 EC 저장정책에 따라, 상기 대상 데이터를 복수의 데이터 청크(chunk)로 분할하고, 각각의 데이터 청크에 대한 패리티(parity) 데이터를 생성하며, 상기 데이터 청크 및 패리티 데이터를 각각 상기 메인 저장부에 저장하는 단계; 및
상기 대상 데이터에 적용된 각각의 저장정책에 대한 정보를 포함하는 메타데이터(metadata)를 생성하여 메타데이터 저장부에 저장하는 단계를 포함하는 데이터 저장방법.
In the first paragraph, the step of storing in the main storage unit is
A step of comparing whether the size of the above target data is greater than or equal to a threshold value;
If it is below the threshold value, a step of creating multiple replicated data identical to the target data and storing them in the main storage according to the REP storage policy;
If the threshold value is exceeded, the step of dividing the target data into multiple data chunks according to the EC storage policy, generating parity data for each data chunk, and storing the data chunk and parity data in the main storage unit, respectively; and
A data storage method comprising a step of generating metadata including information on each storage policy applied to the target data and storing the metadata in a metadata storage unit.
제2항에 있어서, 상기 임계값은

를 만족시키는 x값으로, N은 네트워크 대역폭, m은 EC 저장정책 적용시 분할되는 데이터 청크의 개수, H(x)는 상기 메인 저장부의 입출력 대역폭인 것을 특징으로 하는 데이터 저장방법.
In the second paragraph, the threshold value is

A data storage method characterized in that x is a value satisfying , N is a network bandwidth, m is the number of data chunks divided when applying an EC storage policy, and H(x) is the input/output bandwidth of the main storage unit.
제1항에 있어서, 상기 메인저장부에 재저장하는 단계는
상기 메인저장부에 설치된 저장정책 변경 데몬(daemon)이 메타 데이터 저장부에게 후보군 데이터를 요청하는 단계;
상기 메타 데이터 저장부가 상기 대상 데이터에 대한 접근기록을 검색하여, 접근빈도가 설정값 이상이고, 설정기한 내 접근이력이 존재하는 대상 데이터를 상기 후보군 데이터로 추출하여, 상기 저장정책 변경 데몬으로 제공하는 단계; 및
상기 후보군 데이터가 존재하면, 상기 저장정책 변경 데몬이 상기 리소스 사용률에 따라 상기 후보군 데이터에 대한 저장정책 변경여부를 판별하는 단계를 포함하는 것으로,
상기 메타 데이터 저장부는
상기 대상 데이터에 적용된 상기 저장정책 및 상기 대상 데이터가 저장되는 메인 저장부 상의 위치정보를 포함하는 메타데이터와, 상기 대상 데이터에 대한 상기 사용자 단말의 접근기록을 저장하는 것을 특징으로 하는 데이터 저장방법.
In the first paragraph, the step of resaving in the main storage unit is
A step in which a storage policy change daemon installed in the above main storage unit requests candidate data from the metadata storage unit;
The step of the above metadata storage unit searching for access records for the target data, extracting target data having an access frequency higher than a set value and an access history within a set period as candidate data, and providing the data to the storage policy change daemon; and
If the candidate data exists, the storage policy change daemon includes a step of determining whether to change the storage policy for the candidate data based on the resource usage rate.
The above metadata storage unit
A data storage method characterized by storing metadata including the storage policy applied to the target data and location information on the main storage unit where the target data is stored, and an access record of the user terminal for the target data.
제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하지 않거나, 상기 CPU 사용률이 한계값 이상이고 상기 입출력 대역폭의 포화가 발생한 경우에는, 상기 저장 정책 변경을 수행하지 않는 것을 특징으로 하는 데이터 저장방법.
In the fourth paragraph, the step of determining whether the storage policy has been changed is
A data storage method characterized in that the storage policy change is not performed when the CPU usage rate among the above resource usage rates is less than the limit value and the input/output bandwidth saturation does not occur, or when the CPU usage rate is greater than the limit value and the input/output bandwidth saturation occurs.
제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
상기 리소스 사용률 중에서 CPU 사용률이 한계값 이상이고 입출력 대역폭의 포화가 발생하지 않으면, 상기 후보군 데이터 중에서 상기 EC 저장정책으로 저장된 데이터를 상기 REP 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
In the fourth paragraph, the step of determining whether the storage policy has been changed is
A data storage method characterized in that, if the CPU usage rate among the above resource usage rates is greater than the limit value and the input/output bandwidth saturation does not occur, the data stored with the EC storage policy among the candidate data is changed to the REP storage policy.
제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
상기 리소스 사용률 중에서 CPU 사용률이 한계값 미만이고 입출력 대역폭의 포화가 발생하면, 상기 후보군 데이터 중에서 상기 REP 저장정책으로 저장된 데이터를 상기 EC 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
In the fourth paragraph, the step of determining whether the storage policy has been changed is
A data storage method characterized in that, when the CPU usage rate among the above resource usage rates is below the limit value and the input/output bandwidth is saturated, the data stored with the REP storage policy among the candidate data is changed to the EC storage policy.
제4항에 있어서, 상기 저장 정책 변경여부를 판별하는 단계는
상기 후보군 데이터에 대한 저장정책 변경시, 상기 REP 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 큰 순서에 따라 상기 EC 저장정책으로 변경하고, 상기 EC 저장정책으로 저장된 후보군 데이터는 상기 후보군 데이터의 크기가 작은 순서에 따라 상기 REP 저장정책으로 변경하는 것을 특징으로 하는 데이터 저장 방법.
In the fourth paragraph, the step of determining whether the storage policy has been changed is
A data storage method characterized in that when the storage policy for the above candidate data is changed, the candidate data stored with the REP storage policy is changed to the EC storage policy in order of the size of the candidate data, and the candidate data stored with the EC storage policy is changed to the REP storage policy in order of the size of the candidate data.
하드웨어와 결합된 청구항 제1항 내지 제8항 중 어느 한 항의 데이터 저장 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored on a medium for executing a data storage method according to any one of claims 1 to 8 combined with hardware.
사용자 단말로부터 대상 데이터에 대한 저장 요청을 수신하면, 상기 대상 데이터의 크기에 따라 REP(Replication) 저장정책 또는 EC(Erasure Coding) 저장정책 중 어느 하나의 저장정책을 선택하여 메인 저장부에 저장하는 정책설정부; 및
상기 메인 저장부에 저장된 상기 대상 데이터들에 대한 접근기록을 비교하여 후보군 데이터를 추출하고, 리소스(resource) 사용률에 따라, 상기 후보군 데이터들의 저장정책을 변경하여 상기 메인 저장부에 재저장하는 정책전환부를 포함하는 객체 스토리지 장치.
When receiving a storage request for target data from a user terminal, a policy setting unit that selects either a REP (Replication) storage policy or an EC (Erasure Coding) storage policy according to the size of the target data and stores it in the main storage unit; and
An object storage device including a policy switching unit that compares access records for the target data stored in the main storage unit to extract candidate data, and changes the storage policy of the candidate data according to resource usage and re-stores it in the main storage unit.
KR1020190140747A 2019-11-06 2019-11-06 Apparatus for object based storage and data storage method using the same Active KR102752810B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190140747A KR102752810B1 (en) 2019-11-06 2019-11-06 Apparatus for object based storage and data storage method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190140747A KR102752810B1 (en) 2019-11-06 2019-11-06 Apparatus for object based storage and data storage method using the same

Publications (2)

Publication Number Publication Date
KR20210054732A KR20210054732A (en) 2021-05-14
KR102752810B1 true KR102752810B1 (en) 2025-01-10

Family

ID=75915380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190140747A Active KR102752810B1 (en) 2019-11-06 2019-11-06 Apparatus for object based storage and data storage method using the same

Country Status (1)

Country Link
KR (1) KR102752810B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277736A (en) * 2022-07-25 2022-11-01 中国工商银行股份有限公司 Data automatic balancing method and device for distributed block storage
CN118820363B (en) * 2024-07-19 2025-04-04 中融支付有限公司 An artificial intelligence mobile data storage system and method based on blockchain technology

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180341697A1 (en) * 2017-05-25 2018-11-29 International Business Machines Corporation Pre-allocating filesystem metadata within an object storage system
US20180373435A1 (en) * 2016-02-26 2018-12-27 Hitachi, Ltd. Storage system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI750425B (en) * 2018-01-19 2021-12-21 南韓商三星電子股份有限公司 Data storage system and method for writing object of key-value pair

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180373435A1 (en) * 2016-02-26 2018-12-27 Hitachi, Ltd. Storage system
US20180341697A1 (en) * 2017-05-25 2018-11-29 International Business Machines Corporation Pre-allocating filesystem metadata within an object storage system

Also Published As

Publication number Publication date
KR20210054732A (en) 2021-05-14

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
US20180357173A1 (en) Page cache write logging at block-based storage
US9405684B1 (en) System and method for cache management
US10587686B2 (en) Sustaining backup service level objectives using dynamic resource allocation
US9274907B1 (en) Decommissioning of virtual backup appliances
US10380074B1 (en) Systems and methods for efficient backup deduplication
AU2015229685A1 (en) Dynamically modifying durability properties for individual data volumes
US10540238B2 (en) Adjusting replication operations in a distributed environment
US11966614B2 (en) Object tiering in a distributed storage system
US12141105B2 (en) Data placement selection among storage devices associated with nodes of a distributed file system cluster
KR102752810B1 (en) Apparatus for object based storage and data storage method using the same
US11429573B2 (en) Data deduplication system
US11272006B2 (en) Intelligently distributing retrieval of recovery data amongst peer-based and cloud-based storage sources
US11301156B2 (en) Virtual disk container and NVMe storage management system and method
WO2016184199A1 (en) File management method, equipment and system
CN117762332A (en) Storage management system, method, equipment and machine-readable storage medium
WO2016122841A1 (en) Exposing storage entity consistency capability status
US10698862B2 (en) Enhanced snapshot performance, storage efficiency improvement, dynamic snapshot policy in erasure code supported object storage environment
US10101940B1 (en) Data retrieval system and method
EP4498258A1 (en) Adaptive archive of data chunkfiles
US12045484B2 (en) Data placement selection among storage devices associated with storage nodes of a storage system
CN117349226A (en) Data migration method and device

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20191106

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20221102

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20191106

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240527

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241104

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250106

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250107

End annual number: 3

Start annual number: 1

PG1601 Publication of registration