WO2013100437A1 - 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 - Google Patents

저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 Download PDF

Info

Publication number
WO2013100437A1
WO2013100437A1 PCT/KR2012/010697 KR2012010697W WO2013100437A1 WO 2013100437 A1 WO2013100437 A1 WO 2013100437A1 KR 2012010697 W KR2012010697 W KR 2012010697W WO 2013100437 A1 WO2013100437 A1 WO 2013100437A1
Authority
WO
WIPO (PCT)
Prior art keywords
grouping
samples
sample
deduplication
extracted
Prior art date
Application number
PCT/KR2012/010697
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020120091409A external-priority patent/KR101388337B1/ko
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to US14/366,775 priority Critical patent/US9501239B2/en
Publication of WO2013100437A1 publication Critical patent/WO2013100437A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Definitions

  • the present invention relates to a grouping method and a device for improving deduplication performance in a storage device such as a hard disk and a solid state disk (SSD).
  • a storage device such as a hard disk and a solid state disk (SSD).
  • Deduplication technology consists of duplicate detection and duplicate data mapping table management.
  • Duplicate detection uses a fingerprint method to determine whether the data currently requested to be stored is the same as the previously stored data. Specifically, it calculates hash values (eg, SHA-1 or MD5) for the stored data blocks, calculates and compares hash values of the data blocks for which storage is requested, and detects duplicates if they are identical. When duplicates are detected, the data is not written to the storage device, but information that is duplicated with already stored data is recorded in the mapping table.
  • hash values eg, SHA-1 or MD5
  • FIG. 1 shows the SHA-1 performance load in a microcontroller.
  • the present invention proposes a performance improvement technique for effective deduplication in SSD as a storage device.
  • Deduplication can process multiple storage requests for the same data in a single write operation, thereby improving the lifespan of the flash memory and increasing the efficiency of the storage space.
  • microcontrollers such as ARM7
  • the present invention proposes a grouping method and an apparatus capable of controlling overlapping probability and response time.
  • a grouping method for improving performance of a deduplication technique comprising: extracting a sample from data stored in a buffer of a memory and waiting to be processed; Performing a remaining operation on the extracted sample; And grouping samples by connecting to a bucket corresponding to a result value of the remaining operation.
  • the step of extracting a sample from the input data may extract a sample of 20 bytes each from 1024 data waiting to be processed.
  • performing the remaining operation on the extracted sample may perform the remaining operation at 1024 on the extracted 20 Bytes samples.
  • the step of grouping the samples by connecting to the bucket corresponding to the result value of the remaining operation, the samples output the same result value is grouped together in one bucket, the number of buckets grouped by the number of result values The number of may appear.
  • the grouping method includes a deduplication step to remove if the probability of redundancy of the extracted samples is high, empty bucket
  • the deduplication step may be performed when the number of bins is greater than or equal to a predetermined criterion, and the deduplication step may not be performed when the number of empty buckets is less than or equal to the predetermined criterion.
  • a grouping apparatus for improving performance of a deduplication technique comprising: a sample extracting unit extracting a sample from data stored in a buffer of a memory and waiting to be processed; An operation unit configured to perform the remaining operations on the extracted samples; And a grouping unit connected to the bucket corresponding to the result value of the remaining operation to group the samples.
  • the number of extracted samples and the number of buckets is the same, the more the number of grouped samples, the empty bucket increases, the grouping device includes a deduplication to remove if the probability of redundancy of the extracted samples is high, the deduplication section empty bucket Deduplication may be performed when the number of bins is greater than or equal to a predetermined criterion, and deduplication may not be performed when the number of empty buckets is less than or equal to a predetermined criterion.
  • a grouping technique is introduced to provide a method of sampling a portion of data to be processed in the future and performing deduplication when the probability of redundancy is high and when not low.
  • performance can be improved by reducing the number of hash value extractions at the expense of the redundancy probability that the performance load generated when the SHA-1 hash value is extracted in the existing deduplication technology.
  • FIG. 1 is a graphical representation of the performance load seen when obtaining the SHA-1 hash value in a microcontroller.
  • FIG. 2 is a flowchart illustrating steps of a grouping method for improving deduplication performance according to an embodiment of the present invention.
  • FIG. 3 is a view showing an embodiment of a grouping method according to an embodiment of the present invention.
  • FIG. 4 is a block diagram illustrating a structure of a grouping apparatus for improving deduplication performance according to an embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating a structure of a storage device (SSD) to which the present invention is applied, according to an embodiment of the present invention.
  • SSD storage device
  • the present invention proposes a performance improvement technique for effective deduplication in a storage device such as an SSD.
  • Deduplication can process multiple storage requests for the same data in a single write operation, thereby improving the lifespan of the flash memory and increasing the efficiency of the storage space.
  • the computational performance of microcontrollers (such as ARM7) used in SSDs is very low, resulting in lower response times. Therefore, the present invention has devised a grouping method and apparatus for controlling redundancy probability and response time.
  • FIG. 2 is a flow chart illustrating the steps of a grouping method for improving performance of a deduplication technique in a storage device.
  • SSDs store data entered via the SATA interface in a buffer in memory. Then, new requests that come into this buffer can be processed one by one and the processed requests can be removed from the buffer. At this time, before processing the request entered into the buffer, it is possible to extract a sample from the waiting data (S210).
  • 20 bytes of samples may be extracted from each of about 1024 data.
  • the reason for proposing 1024 data sample extraction targets is 1024 samples. This is because the efficiency of the invention can be lowered.
  • the remaining operations may be performed on the extracted samples in order to group the samples (S220).
  • the remainder operation can be a residual amount that cannot be expressed as a quotient after division, or in other words, a surplus operation.
  • samples may be extracted from 1024 pieces of data, and the remaining operations may be performed at 1024.
  • the result value of the remaining operations may correspond to 0 to 1023.
  • the samples with the same result value may be grouped in the same bucket, and the samples that are not the same may be grouped in the respective buckets.
  • the number of samples (number of sample extraction data) and the number of buckets grouped are the same. For example, the number of buckets is 1024 because the number of samples is 1024.
  • the present invention proposes a method of sampling and extracting a part of data to be processed in the future to perform deduplication when the probability of redundancy is high and not when it is low.
  • the present invention can analyze the data in the buffer of the memory in which the requests to be processed in the future can perform the deduplication step when a high probability of redundancy is found.
  • the grouping method may comprise a deduplication step of removing duplicate data. Deduplication is performed when the duplicate probability of the extracted sample is high, but not when the duplicate probability is low.
  • the number of empty buckets may be used as a criterion for deduplication. If the number of empty buckets is greater than or equal to a predetermined criterion, the deduplication step is performed because of the high probability of redundancy, whereas if the number of empty buckets is lower than the predetermined criterion, the deduplication step is not performed because of the low probability of redundancy. In one embodiment, the probability of redundancy was reduced to 20% when the standard of deduplication was set at a probability of about 50%, and the performance load of the deduplication step was reduced by 80%.
  • FIG. 3 is a diagram illustrating a grouping method according to an embodiment of the present invention. As described above, the data in the buffer is sampled and grouped into 20 bytes, respectively. It can be seen from the drawing that the number of data and the number of buckets match.
  • SSDs put data coming in through the SATA interface into a buffer in memory. You can then process new requests in the buffer one by one and remove them from the buffer for completed requests.
  • the processed data is subjected to a fingerprint deduplication step, redundancy detection, and duplicate data mapping step.
  • the highest performance load step is a fingerprint generation step, which takes about 5770 usec for SHA-1 hash extraction in ARM7, which is widely used in SSDs. Therefore, if the deduplication step is performed when the redundancy is high, the unnecessary SHA-1 hash extraction process can be eliminated, thereby effectively reducing the performance load.
  • the storage device may include a grouping device 400 to improve the deduplication technique, and the grouping device 400 may include a sample extractor 410, an operation unit 420, and a grouping unit. 430 may be included.
  • the grouping apparatus 400 described below may be an apparatus for performing the grouping method of FIG. 2, and each component of the grouping apparatus 400 may be combined, or one or more components may be omitted.
  • the SSDs hold incoming data in memory buffers. Then, new requests that come into this buffer can be processed one by one and the processed requests can be removed from the buffer.
  • the sample extractor 410 may be input to the SSD and may extract a sample of data that is stored in a buffer of the memory and not yet processed.
  • the sample extractor 410 may extract about 20 bytes of samples from about 1024 pieces of data.
  • the reason for proposing 1024 samples is that the efficiency of the invention may be lowered if the number is exceeded.
  • the grouping apparatus 400 may include an operation unit 420 which performs the remaining operations in order to detect the overlapping probability in grouping the extracted samples.
  • the sample of the data is extracted, the sample is extracted from about 1024 pieces of data, so the operator of the remaining operations may be 1024. In this case, the same result may be grouped based on the sample.
  • the grouping unit 430 groups the samples corresponding to the same result with respect to the result value obtained by the operation unit 420 and connects them to the corresponding buckets. Otherwise, the samples may be grouped into the corresponding buckets.
  • the number of samples (number of sample extraction target data) and the number of buckets grouped are the same. For example, the number of buckets is 1024 because the number of samples is 1024.
  • the present invention proposes a device that performs deduplication when the probability of redundancy is high and does not perform when the probability of redundancy is high by sampling a portion of data to be processed in the future through a grouping device to solve the problems of the existing technology.
  • the present invention may include the deduplication unit 440 to perform deduplication when analyzing the data in the buffer of the memory in which the requests to be processed in the future have a high probability of duplication probability.
  • the deduplication unit 440 performs deduplication for the case where the duplicate probability of the extracted sample is high, and conversely, does not perform deduplication when the duplication probability is low.
  • the deduplication is based on the redundancy probability, and since the number of empty buckets indicates the redundancy probability after grouping, the number of empty buckets may be used as a criterion for deduplication. In other words, if the number of empty buckets is greater than or equal to a predetermined criterion, deduplication is performed because of the high probability of redundancy. If the number of empty buckets is less than or equal to a certain criterion, deduplication is not performed.
  • the present invention is implemented in the controller in the SSD, as shown in FIG.
  • data is input and output through the SATA interface
  • the controller in the SSD may include a CPU, a memory, and a flash controller.
  • a device for performing the grouping method and a device for performing the deduplication step may be separately provided, and the FTL and the deduplication technology are introduced therein.
  • the grouping method is performed before the deduplication technique, and it is possible to group the data in the memory buffer and to decide whether or not to perform the deduplication technique according to the redundancy probability.
  • Deduplication can improve the lifetime of flash memory and increase the storage space efficiency by processing multiple storage requests for the same data in one write operation.
  • the above-described technical contents may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

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

Abstract

하드 디스크, SSD(Solid State Disk) 등의 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 그 장치에 관한 것이다. 중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계; 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계를 포함하는 그룹핑 방법이 제공될 수 있다.

Description

저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
하드 디스크, SSD(Solid State Disk) 등의 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 그 장치에 관한 것이다.
중복제거 기술은 중복 탐지와 중복 데이터 매핑 테이블 관리로 구성된다. 중복 탐지는 현재 저장이 요청된 데이터가 기존에 저장된 데이터와 동일한지 파악하는 방법으로 핑거 프린트(fingerprint) 방법을 사용한다. 구체적으로 저장된 데이터 블록들에 대한 해시 값(예를 들어 SHA-1 또는 MD5)를 계산하고, 저장이 요청된 데이터 블록의 해시 값을 계산하여 비교하고 동일한 경우 중복된 것으로 탐지하는 것이다. 중복이 탐지되면 실제 데이터를 저장 장치에 쓰지 않고, 이미 저장된 데이터와 중복되었다는 정보를 매핑 테이블에 기록한다.
그러나 중복된 데이터를 탐지하는데 쓰이는 SHA-1 해시 값을 구하는 과정에서 매우 많은 성능 부하가 나타난다. 4Kb에서 SHA-1 해시 값을 구하는데 드는 시간은 도 1에 도시되어 있다.
일례에 있어서, 도 1은 마이크로 컨트롤러에서의 SHA-1 성능 부하를 나타낸다.
Micro Blaze에서는 약 6212 usec(micro sec.), ARM7에서는 5772 usec, ARM9에서는 813 usec, 하드웨어로 동작 시에는 80 usec가 걸린다. 많은 SSD는 ARM7 기반으로 동작하는데, MLC 타입의 플래시 메모리에서 쓰기 속도는 약 1400 usec 정도 걸리는데 비해 ARM7에서는 SHA-1 해시 값을 계산하는데 걸리는 시간이 5772 usec로 배로 걸린다. 따라서 모든 요청에 대해 해시 값을 계산한다면 하드 디스크에 비해 빠른 SSD의 장점이 사라진다. 따라서 중복 가능성이 높은 요청에 대해서만 SHA-1 값을 추출하는 방법이 필요하다.
본 발명을 통해 저장장치인 SSD에서 효과적인 중복제거(Deduplication)을 위한 성능 향상 기법을 제안하고자 한다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 높일 수 있다. 그러나 SSD에서 사용하는 마이크로 컨트롤러(예컨대 ARM7)의 연산 처리 성능이 매우 낮아 응답시간이 낮아진다.
따라서, 본 발명에서 중복확률과 응답시간을 조절할 수 있는 그룹핑 방법 및 그 장치를 제안하고자 한다.
중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계; 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계를 포함하는 그룹핑 방법이 제공될 수 있다.
일측에 있어서, 입력된 데이터에서 샘플을 추출하는 단계는 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출할 수 있다.
또 다른 측면에 있어서, 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계는 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행할 수 있다.
또 다른 측면에 있어서, 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계는, 같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되는 것이며, 결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타날 수 있다.
또 다른 측면에 있어서, 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고, 그룹핑 방법은 추출한 샘플의 중복확률이 높으면 제거하는 중복제거 단계를 포함하며, 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거 단계를 실시하고, 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거 단계를 실시하지 않을 수 있다.
중복제거 기술의 성능 향상을 위한 그룹핑 장치에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 샘플 추출부; 추출한 샘플을 대상으로 나머지 연산을 수행하는 연산부; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 그룹핑부를 포함하는 그룹핑 장치가 제공될 수 있다.
일측에 있어서, 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고, 그룹핑 장치는 추출한 샘플들의 중복확률이 높으면 제거하는 중복제거부를 포함하며, 중복제거부는 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거를 실시하고, 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거를 실시하지 않을 수 있다.
기존 기술의 문제점을 해결하기 위해 그룹핑 기법을 도입하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 방법이 제공된다.
본 발명의 개시를 통해 기존의 중복제거 기술에서 SHA-1 해시 값을 추출하였을 때 발생하는 성능 부하가 적은 중복확률을 희생하여 해시 값 추출 횟수를 줄여 성능을 향상시킬 수 있다.
도 1은 마이크로 컨트롤러에서의 SHA-1 해시 값을 구할 때 나타나는 성능 부하를 그래프로 나타낸 것이다.
도 2는 본 발명의 일실시예에 있어서, 중복 제거 성능 향상을 위한 그룹핑 방법의 단계를 도시한 순서도이다.
도 3은 본 발명의 일실시예에 있어서, 그룹핑 방법의 실시예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 있어서, 중복 제거 성능 향상을 위한 그룹핑 장치의 구조를 도시한 블록도이다.
도 5는 본 발명의 일실시예에 있어서, 본 발명이 적용된 저장장치(SSD)의 구조를 도시한 블록도이다.
이하, 저장장치에서 중복제거의 성능 향상을 위한 그룹핑 방법과 그 장치에 대해서 첨부된 도면을 참조하여 자세히 설명한다.
본 발명은 SSD 등의 저장장치에서 효과적인 중복제거(Deduplication)을 위한 성능 향상 기법을 제안한다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 높일 수 있다. 그러나 SSD에서 사용하는 마이크로 컨트롤러(예컨대 ARM7)의 연산 처리 성능이 매우 낮아 응답시간이 낮아진다. 따라서, 본 발명에서 중복확률과 응답시간을 조절하는 그룹핑 방법 및 장치를 고안하였다.
본 발명의 실시예에 있어서, 도 2는 저장장치에서 중복제거 기술의 성능 향상을 위한 그룹핑 방법의 단계를 도시한 순서도이다.
SSD는 SATA 인터페이스를 통해 입력되는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고, 이 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 처리 완료된 요청에 대해서는 버퍼에서 제거할 수 있다. 이때, 버퍼 안에 들어온 요청을 처리하기 전에, 대기중인 데이터에서 샘플을 추출할 수 있다(S210).
데이터에서 샘플을 추출할 때, 실시예에 있어서, 약 1024개의 데이터에서 각각 20바이트(Bytes)의 샘플을 추출할 수 있는데, 데이터 샘플 추출 대상을 1024개로 제안하는 이유는 샘플 추출 대상이 1024개를 넘어가게 되면, 발명의 효율이 낮아질 수 있기 때문이다.
또한, 샘플을 그룹핑하기 위해서 추출된 샘플에 대해서 나머지 연산을 수행할 수 있다(S220). 나머지 연산은 나눗셈 이후 몫으로 표현할 수 없는 남은 양, 다른 말로는 잉여를 구하는 연산을 수행할 수 있다. 앞서 일례로 1024개의 데이터에서 샘플을 추출하여, 나머지 연산은 1024로 연산을 실시할 수 있다. 나머지 연산의 결과 값은 0~1023에 해당될 수 있다.
나머지 연산의 결과에 따라서, 결과 값이 같은 샘플을 해당하는 버킷에 연결함으로써 그룹핑할 수 있다(S230). 이때, 같은 결과가 나온 샘플은 같은 버킷에 그룹핑되며, 그렇지 않은 샘플은 각각 해당하는 버킷에 그룹핑될 수 있다. 발명의 실시예에 있어서, 샘플 수(샘플 추출 대상 데이터 수)와 그룹핑되는 버킷 수는 동일하다. 예컨대 샘플 수가 1024개이기 때문에 버킷의 수도 1024개이다.
나머지 연산의 결과 값에 따라 그룹핑을 실시했을 때, 같은 버킷에 그룹핑된 샘플이 많을수록 빈 버킷의 수가 증가하게 된다. 나머지 연산의 결과 값이 같다는 것은 데이터가 중복될 확률이 높음을 의미할 수 있다. 따라서, 빈 버킷의 수가 증가한다는 것은 중복된 데이터가 많을 확률이 큰 것을 의미하며, 반대로 빈 버킷의 수가 적을수록 중복 데이터가 적을 확률이 크다.
본 발명에서는 기존 기술의 문제점을 해결하기 위해 그룹핑 기법을 도입하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 방법을 제안한다. 본 발명은 앞으로 처리될 요청들이 있는 메모리의 버퍼 안의 데이터를 분석하여 높은 확률이 중복확률이 발견되는 경우에 중복제거 단계를 실시할 수 있다.
발명의 실시예에 있어서, 그룹핑 방법은 중복 데이터를 제거하는 중복제거 단계를 포함할 수 있다. 중복제거는 추출한 샘플의 중복확률이 높은 경우에 대해서 수행하고, 중복확률이 낮은 경우엔 수행하지 않는다.
중복제거의 수행은 단계(S230)에서 그룹핑을 수행한 이후 빈 버킷의 수가 중복확률을 말해주기 때문에, 빈 버킷의 수를 중복제거의 기준으로 할 수 있다. 빈 버킷의 수가 일정 기준 이상일 경우, 중복확률이 높기 때문에 중복제거 단계를 실시하고, 반대로 일정 기준 이하일 경우에는 중복확률이 낮기 때문에 중복제거 단계를 실시하지 않는다. 일실시예에 있어서, 중복제거의 기준을 약 50%의 확률로 설정하여 실험하였을 때의 중복확률은 20%로 감소하였으며, 이때 중복제거 단계의 성능 부하는 80% 감소하였다.
도 3은 본 발명의 실시예에 있어서, 그룹핑 방법을 도시한 도면이다. 앞서 설명한 바와 같이, 버퍼에 있는 데이터를 각각 20Bytes로 샘플링하여 그룹핑하는데, 데이터의 개수와 버킷의 개수가 일치하는 것을 도면을 통해 확인할 수 있다.
SSD는 SATA 인터페이스를 통해 들어오는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 완료된 요청에 대해 버퍼에서 제거할 수 있다. 이때, 처리되는 데이터는 중복제거 단계인 핑거 프린트 생성, 중복성 탐지, 중복 데이터 매핑 단계를 거치게 된다. 일례로, 이중에서 가장 성능 부하가 높은 단계는 핑거 프린트 생성 단계로서 SSD에서 많이 사용되는 ARM7에서 SHA-1 해시 추출할 경우 5770 usec 정도가 소요된다. 따라서, 중복확률이 높은 경우에 중복제거 단계를 수행한다면 불필요한 SHA-1 해시 추출 과정을 제거할 수 있어 효과적으로 성능 부하를 줄일 수 있는 것이다.
본 발명의 실시예에 있어서, 저장장치는 중복제거 기술을 향상하기 위한 그룹핑 장치(400)를 포함할 수 있고, 그룹핑 장치(400)는 샘플 추출부(410), 연산부(420), 그리고 그룹핑부(430)를 포함할 수 있다. 이하 설명하는 그룹핑 장치(400)는 도 2의 그룹핑 방법을 실시하는 장치가 될 수 있으며, 그룹핑 장치(400)의 각 구성은 합쳐질 수 있으며, 또는 하나 이상의 구성을 생략할 수 있다.
SSD는 입력되는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고, 이 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 처리 완료된 요청에 대해서는 버퍼에서 제거할 수 있다. 이때, 샘플 추출부(410)는 SSD로 입력되며, 메모리의 버퍼에 저장되어 아직 처리되지 않은 데이터에 대해서 샘플을 추출할 수 있다.
실시예에 있어서, 샘플 추출부(410)는 약 1024개의 데이터에서 각각 약 20bytes의 샘플을 추출할 수 있다. 샘플 추출 대상을 1024개로 제안하는 이유는 그 수가 넘어가면 발명의 효율이 낮아질 수 있기 때문이다.
그룹핑 장치(400)는 추출한 샘플을 그룹핑하기에 중복확률을 탐지하기 위해서 나머지 연산을 수행하는 연산부(420)를 포함할 수 있다. 데이터의 샘플을 추출할 때 약 1024개의 데이터에서 샘플을 추출하였으므로 나머지 연산의 연산자를 1024가 될 수 있다. 이때, 같은 결과가 나온 샘플을 기준으로 그룹핑될 수 있다.
그룹핑부(430)는 연산부(420)에서 구한 결과 값에 대해서 같은 결과에 해당되는 샘플을 그룹핑하여 해당하는 버킷에 연결하며, 그렇지 않은 샘플은 각각 해당하는 버킷에 그룹핑할 수 있다. 본 발명의 실시예에 있어서, 샘플 수(샘플 추출 대상 데이터 수)와 그룹핑되는 버킷 수는 동일하다. 예컨대, 샘플 수가 1024개이기 때문에 버킷의 수도 1024개이다.
나머지 연산의 결과 값에 따라 그룹핑을 실시했을 때, 같은 버킷에 그룹핑된 샘플이 많을수록 빈 버킷의 수가 증가하게 된다. 나머지 연산의 결과 값이 같다는 것은 데이터가 중복될 확률이 높음을 의미할 수 있다. 따라서, 빈 버킷의 수가 증가한다는 것은 중복된 데이터가 많을 확률이 큰 것을 의미하며, 반대로 빈 버킷의 수가 적을수록 중복 데이터가 적을 확률이 크다.
본 발명에서는 기존 기술의 문제점을 해결하기 위해 그룹핑 장치를 통하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 장치를 제안한다. 본 발명은 앞으로 처리될 요청들이 있는 메모리의 버퍼 안의 데이터를 분석하여 높은 확률이 중복확률이 발견되는 경우에 중복제거부(440)를 포함하여 중복제거를 실시할 수 있다.
중복제거부(440)는 추출한 샘플의 중복확률이 높은 경우에 대해서 중복제거를 수행하고, 반대로 중복확률이 낮은 경우엔 중복제거를 수행하지 않는다. 중복제거의 기준은 앞서 설명한 바와 같이, 중복확률에 대한 것이며, 그룹핑을 수행한 이후 빈 버킷의 수가 중복확률을 말해주기 때문에, 빈 버킷의 수를 중복제거의 기준으로 할 수 있다. 즉, 빈 버킷의 수가 일정 기준 이상일 경우, 중복확률이 높기 때문에 중복제거를 실시하고, 반대로 일정 기준 이하일 경우에는 중복확률이 낮기 때문에 중복제거를 실시하지 않는다.
본 발명은 도 5와 같이, SSD 내의 컨트롤러에 구현이 된다. 앞서 설명한 바와 같이, SATA 인터페이스를 통해 데이터가 입출력되며, SSD 내의 컨트롤러는 CPU와 메모리, 플래시 컨트롤러로 구성될 수 있다.
발명의 실시예에 있어서, 그룹핑 방법을 실시하는 장치와 중복제거 단계를 실시하는 장치를 별도로 가지고 있을 수 있고, 내부에는 FTL과 중복제거 기술이 도입되어있다. 실시예에 있어서, 그룹핑 방법은 중복제거 기술 전에 수행되며, 메모리 버퍼 안의 데이터를 그룹핑하고 중복확률에 따라서 중복제거 기술을 수행할지 말지에 대해 결정할 수 있다.
이와 같이, 저장장치인 SSD에서 효과적인 중복제거를 위한 성능 향상 방법을 제안할 수 있다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 증대시킬 수 있다.
앞서 설명한 기술적 내용들, 즉 저장장치에서 효과적인 중복제거를 위한 그룹핑 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등한 것들에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서,
    메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계;
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 단계
    를 포함하는 그룹핑 방법.
  2. 제1항에 있어서,
    상기 처리 대기중인 데이터에서 샘플을 추출하는 단계는
    상기 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출하는 것
    을 특징으로 하는 그룹핑 방법.
  3. 제2항에 있어서,
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계는
    상기 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행하는 것
    을 특징으로 하는 그룹핑 방법.
  4. 제1항에 있어서,
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 단계는,
    같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되는 것이며,
    결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타나는 것
    을 특징으로 하는 그룹핑 방법.
  5. 제1항에 있어서,
    상기 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고,
    상기 그룹핑 방법은 상기 추출한 샘플들의 중복 데이터를 제거하는 중복제거 단계를 포함하며,
    상기 빈 버킷의 개수가 일정 기준 이상일 경우 상기 중복제거 단계를 실시하고,
    상기 빈 버킷의 개수가 일정 기준 이하일 경우 상기 중복제거 단계를 실시하지 않는 것
    을 특징으로 하는 그룹핑 방법.
  6. 중복제거 기술의 성능 향상을 위한 그룹핑 장치에 있어서,
    메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 샘플 추출부;
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 연산부; 및
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 그룹핑부
    를 포함하는 그룹핑 장치.
  7. 제6항에 있어서,
    상기 샘플 추출부는 상기 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출하는 것
    을 특징으로 하는 그룹핑 장치.
  8. 제7항에 있어서,
    상기 연산부는 상기 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행하는 것
    을 특징으로 하는 그룹핑 방법.
  9. 제6항에 있어서,
    상기 그룹핑부는,
    같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되며, 결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타나는 것
    을 특징으로 하는 그룹핑 방법.
  10. 제6항에 있어서,
    상기 샘플 추출부에서 추출한 샘플 수와 상기 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고,
    상기 그룹핑 장치는 상기 추출한 샘플들의 중복 데이터를 제거하는 중복제거부를 포함하며,
    상기 중복제거부는
    상기 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거를 실시하고,
    상기 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거를 실시하지 않는 것
    을 특징으로 하는 그룹핑 장치.
PCT/KR2012/010697 2011-12-29 2012-12-10 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 WO2013100437A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/366,775 US9501239B2 (en) 2011-12-29 2012-12-10 Grouping method and device for enhancing redundancy removing performance for storage unit

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20110145878 2011-12-29
KR10-2011-0145878 2011-12-29
KR1020120091409A KR101388337B1 (ko) 2011-12-29 2012-08-21 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
KR10-2012-0091409 2012-08-21

Publications (1)

Publication Number Publication Date
WO2013100437A1 true WO2013100437A1 (ko) 2013-07-04

Family

ID=48697827

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/010697 WO2013100437A1 (ko) 2011-12-29 2012-12-10 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2013100437A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2852360B1 (en) 2012-05-23 2019-03-06 Ribau, Cinzia Romana Pump for producing or improving human penis erection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059096A (ja) * 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
WO2010126595A1 (en) * 2009-04-30 2010-11-04 Netapp, Inc. Flash-based data archive storage system
KR20110055263A (ko) * 2009-11-19 2011-05-25 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059096A (ja) * 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
WO2010126595A1 (en) * 2009-04-30 2010-11-04 Netapp, Inc. Flash-based data archive storage system
KR20110055263A (ko) * 2009-11-19 2011-05-25 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FANGLU GUO ET AL.: "Buildig a High-performance Deduplication System.", 2011 USENIX ANNUAL TECHNICAL CONFERENCE., 15 June 2011 (2011-06-15), pages 271 - 284 *
M. LILLIBRIDGE ET AL.: "Sparse indexing: Large scale, inline deduplication using sampling and locality.", THE 7TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES (FAST)., 24 February 2009 (2009-02-24), pages 111 - 123 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2852360B1 (en) 2012-05-23 2019-03-06 Ribau, Cinzia Romana Pump for producing or improving human penis erection

Similar Documents

Publication Publication Date Title
CN104808951B (zh) 进行存储控制的方法和设备
US10884645B2 (en) Virtual machine hot migration method, host machine and storage medium
US10102373B2 (en) Method and apparatus for capturing operation in a container-based virtualization system
JP4488074B2 (ja) パターン検出装置、パターン検出システム、パターン検出プログラム、およびパターン検出方法
US9710386B1 (en) Systems and methods for prefetching subsequent data segments in response to determining that requests for data originate from a sequential-access computing job
JP2017208096A5 (ko)
JP2021018799A (ja) マルウェアについて複数のアーカイブスライスを検査するシステムおよび方法
US10409497B2 (en) Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9886561B2 (en) Efficient encoding and storage and retrieval of genomic data
WO2014181946A1 (ko) 빅 데이터 추출 시스템 및 방법
CN107193498B (zh) 一种对数据进行去重复处理的方法及装置
WO2012091488A1 (en) System and method for detecting malicious content in non-pe file
US9424269B1 (en) Systems and methods for deduplicating archive objects
CN105488409A (zh) 一种检测恶意代码家族变种及新家族的方法及系统
WO2013100437A1 (ko) 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
WO2021066257A1 (ko) 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
KR101388337B1 (ko) 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
CN102737171A (zh) 一种病毒文件存储的方法、装置及存储设备
US10908902B2 (en) Distance based branch prediction and detection of potential call and potential return instructions
CN105162765A (zh) 一种基于断尾求生的云数据安全实现方法
US10049115B1 (en) Systems and methods for performing incremental database backups
WO2009116726A2 (ko) 루트킷 탐지 방법 및 시스템
CN106997407B (zh) 基于趋势拟合的风资源场景缩减方法
CN105224871A (zh) 一种病毒清除方法及装置
CN112835967A (zh) 基于分布式存储系统的数据处理方法、装置、设备和介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12861399

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14366775

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12861399

Country of ref document: EP

Kind code of ref document: A1