KR101252375B1 - Mapping management system and method for enhancing performance of deduplication in storage apparatus - Google Patents
Mapping management system and method for enhancing performance of deduplication in storage apparatus Download PDFInfo
- Publication number
- KR101252375B1 KR101252375B1 KR1020100136766A KR20100136766A KR101252375B1 KR 101252375 B1 KR101252375 B1 KR 101252375B1 KR 1020100136766 A KR1020100136766 A KR 1020100136766A KR 20100136766 A KR20100136766 A KR 20100136766A KR 101252375 B1 KR101252375 B1 KR 101252375B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- data
- mapping table
- original
- mapping
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
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
저장 장치에서 효과적으로 중복을 제거하기 위한 매핑 관리 방법 및 시스템이 개시된다. 매핑 관리 시스템은 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 중복 제거부; 및 데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 데이터 변경부를 포함할 수 있다. Disclosed are a mapping management method and system for effectively removing redundancy in a storage device. The mapping management system may further include: a deduplication unit configured to map at least one reference block corresponding to the data to an original block in which the data is stored by using a mapping table when a plurality of data are duplicated; And when the data change request changes the data of the original block, store the changed data in one of the reference blocks according to the change request, and set the original block to refer to the reference block storing the changed data. It may include a data change unit.
Description
본 발명은 저장 장치에서 효과적으로 중복을 제거하기 위한 매핑 관리 방법 및 시스템에 관한 것으로, 보다 상세하게는 중복 제거 기술을 사용한 블록의 데이터가 변경되는 경우 필요한 연산의 수를 감소시키는 시스템 및 방법에 관한 것이다. The present invention relates to a mapping management method and system for effectively eliminating redundancy in a storage device, and more particularly, to a system and method for reducing the number of operations required when data in a block using deduplication is changed. .
중복 제거 기술은 기 저장된 데이터 중에 신규 데이터와 동일한 데이터가 있는 경우, 신규 데이터를 저장 매체에 저장하지 않고, 신규 데이터가 저장될 블록이 해당 데이터가 기 저장된 원본 블록을 참조한다는 맵핑 정보를 맵핑 테이블에 저장함으로써, 데이터 저장에 따른 쓰기 연산의 숫자를 감소시키는 기술이다.Deduplication technology does not store new data in a storage medium when there is the same data among the previously stored data, and maps the mapping information indicating that the block in which the new data is to be stored refers to the original block in which the data is previously stored. By storing, a technique of reducing the number of write operations in accordance with data storage.
그러나 종래의 중복 제거 기술은 원본 블록에 저장된 데이터를 변경할 경우, 원본 블록에 기 저장된 데이터를 원본 블록을 참조하던 블록 중 하나에 복사한 다음 원본 블록의 데이터를 변경해야 하며, 맵핑 테이블도 복사된 블록을 새로운 원본 블록으로 설정하여 변경해야 하는 불편함이 있었다.However, in case of changing the data stored in the original block, the conventional deduplication technique needs to copy the data previously stored in the original block to one of the blocks referring to the original block, and then change the data in the original block. Had to be changed to a new original block.
따라서, 중복 제거 기술에서 원본 블록에 저장된 데이터를 간단하게 변경할 수 있는 방법이 요구되고 있다.Accordingly, there is a demand for a method of easily changing data stored in the original block in the deduplication technology.
본 발명은 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시키는 시스템 및 방법을 제공한다. According to the present invention, when the data of the original block referenced by a plurality of reference blocks is changed, the data of the original block is changed by storing the data of the changed original block in one of the reference blocks, and having the original block refer to the corresponding reference block. It provides a system and method that reduces the copy and change operations performed when possible.
또한, 본 발명은 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시키는 시스템 및 방법을 제공한다. The present invention also provides a system for reducing the size of the mapping table by storing information indicating that the plurality of reference blocks refer to the original block by using one entry in the mapping table when the plurality of reference blocks refer to one original block. And methods.
본 발명의 일실시예에 따른 맵핑 관리 시스템은 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 중복 제거부; 및 데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 하는 데이터 변경부를 포함할 수 있다.According to an embodiment of the present invention, a mapping management system may include: a deduplication unit configured to map at least one reference block corresponding to the data to an original block in which the data is stored using a mapping table when a plurality of data is duplicated; And when the data change request changes the data of the original block, store the changed data in one of the reference blocks according to the change request, and cause the original block to refer to the reference block storing the changed data. It may include a data change unit.
본 발명의 일실시예에 따른 맵핑 관리 시스템의 중복제거부는, 복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정할 수 있다.When the plurality of reference blocks refer to one original block, the deduplication unit of the mapping management system according to an embodiment of the present invention refers to the plurality of reference blocks by using one entry in the mapping table. Can be set to
본 발명의 일실시예에 따른 맵핑 관리 시스템은 참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 맵핑 테이블 정리부를 더 포함할 수 있다.The mapping management system according to an embodiment of the present invention changes the reference block and the data of the chain block according to a reference object based on a chain block that is an original block referring to one of the reference blocks, and changes the data from the mapping table to the chain block. The apparatus may further include a mapping table cleaner that deletes information about the information.
본 발명의 일실시예에 따른 맵핑 관리 방법은 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 단계; 데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하는 단계; 및 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 단계를 포함할 수 있다.A mapping management method according to an embodiment of the present invention includes mapping at least one reference block corresponding to the data to an original block in which the data is stored by using a mapping table when a plurality of data is duplicated; If the change request of data changes the data of the original block, storing the changed data in one of the reference blocks according to the change request; And setting the original block to refer to the reference block storing the changed data.
본 발명의 일실시예에 의하면, 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다. According to an embodiment of the present invention, when the data of the original block referred to by a plurality of reference blocks is changed, the data of the changed original block is stored in one of the reference blocks, and the original block refers to the corresponding reference block. When the data of the original block is changed, the copy and change operations performed can be reduced.
또한, 본 발명의 일실시예에 의하면, 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시킬 수 있다.Further, according to an embodiment of the present invention, when a plurality of reference blocks refer to one original block, the mapping table is stored by storing information indicating that the plurality of reference blocks refer to the original block using one entry in the mapping table. Can reduce the size.
도 1은 본 발명의 일실시예에 따른 맵핑 관리 시스템을 도시한 블록 다이어그램이다.
도 2는 본 발명의 일실시예에 따른 맵핑 테이블 관리부가 생성한 맵핑 테이블의 일례이다.
도 3은 본 발명의 일실시예에 따른 데이터 변경부가 원본 블록의 데이터 변경 요청을 처리하는 과정의 일례이다.
도 4는 본 발명의 일실시예에 따른 맵핑 테이블 정리부가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정의 일례이다.
도 5는 본 발명의 일실시예에 따른 맵핑 관리 방법을 도시한 플로우차트이다.1 is a block diagram illustrating a mapping management system according to an embodiment of the present invention.
2 is an example of a mapping table generated by the mapping table manager according to an embodiment of the present invention.
3 is an example of a process of a data change unit processing a data change request of an original block according to an embodiment of the present invention.
4 is an example of a process of arranging duplicate mapping information in a mapping table by a mapping table organizer according to an embodiment of the present invention.
5 is a flowchart illustrating a mapping management method according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 맵핑 관리 방법은 맵핑 관리 시스템에 의해 수행될 수 있다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The mapping management method according to an embodiment of the present invention may be performed by a mapping management system.
도 1은 본 발명의 일실시예에 따른 맵핑 관리 시스템을 도시한 블록 다이어그램이다. 1 is a block diagram illustrating a mapping management system according to an embodiment of the present invention.
도 1을 참고하면, 본 발명의 일실시예에 따른 맵핑 관리 시스템(100)은 중복 제거부(110), 변경 데이터 판단부(120), 데이터 변경부(130), 및 맵핑 테이블 정리부(140)를 포함할 수 있다. Referring to FIG. 1, the
중복 제거부(110)는 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑할 수 있다.The
이때, 중복 제거부(110)는 중복 여부를 판단하는 중복 판단부(111)과 맵핑 테이블을 생성하여 관리하는 맵핑 테이블 관리부(112)를 포함할 수 있다.In this case, the
중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 저장을 요청 받은 신규 데이터가 기존에 블록 단위로 저장된 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 구체적으로, 중복 판단부(111)는 기존 데이터의 해시 값과 신규 데이터의 해시 값을 계산하고, 동일한 해시 값이 계산된 경우, 신규 데이터를 기존 데이터와 중복 되는 데이터로 판단할 수 있다. 이때, 중복 판단부(111)는 SHA1(Secure Hash Algorithm 1)이나 MD5(Message-Digest algorithm 5)를 사용하여 해시 값을 계산할 수 있다. The
맵핑 테이블 관리부(112)는 중복 판단부(111)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 기존 데이터와 중복되었다는 정보를 맵핑 정보 형태로 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블은 기존 데이터가 저장된 블록을 원본 블록으로 설정하고, 신규 데이터가 저장될 예정이었던 블록을 참조 블록으로 설정하며, 원본 블록과 참조 블록을 맵핑하여 저장할 수 있다. 또한, 맵핑 테이블 관리부(112)는 복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정할 수 있다. 이때, 맵핑 테이블 관리부(112)는 맵핑 테이블을 탐색하는 성능을 고려하여 인버티드 테이블(inverted table)형태로 맵핑 테이블을 만들 수도 있다.The
맵핑 테이블 관리부(112)가 맵핑 테이블을 생성하는 과정은 이하 도 2를 참조로 상세히 설명한다. A process of generating the mapping table by the
변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 변경 요청이 맵핑 테이블에서 원본 블록으로 설정된 블록의 데이터를 변경하는지 여부를 확인할 수 있다.When the change
데이터 변경부(130)는 변경 데이터 판단부(120)가 상기 변경 요청이 원본 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 변경한 데이터를 저장한 참조 블록을 참조하도록 설정할 수 있다.When the change
데이터 변경부(130)가 원본 블록의 데이터 변경 요청을 처리하는 과정은 이하 도 3을 참조로 상세히 설명한다. The process of the
맵핑 테이블 정리부(140)는 참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 체인 블록의 데이터를 임시 블록에 저장하고, 체인 블록이 참조하던 참조 블록의 데이터를 체인 블록에 저장하며, 임시 블록의 데이터를 체인 블록이 참조하던 참조 블록에 저장하고, 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제할 수 있다.The
맵핑 테이블 정리부(140)가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정은 이하 도 4를 참조로 상세히 설명한다. A process of arranging the overlapping mapping information in the mapping table by the
또한, 중복된 맵핑 정보를 검색하고, 정리하는 과정은 검색하고 연산하는 데이터의 량이 크므로 데이터가 저장된 저장 시스템에 부하를 줄 수 있다. 따라서, 맵핑 테이블 정리부(140)는 데이터가 저장되는 저장 시스템이 유휴(idle)상태이거나, 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 동작하도록 설정함으로써 저장 시스템에 대한 부하를 줄일 수 있다. 이때, 임계 값은 맵핑 테이블을 생성하기 전에 설정한 맵핑 테이블의 최대 크기일 수 있다. 즉, 맵핑 테이블이 최대 크기인 경우 맵핑 테이블 안의 중복 맵핑 정보를 정리함으로써 맵핑 테이블의 크기를 감소할 수 있다.In addition, the process of retrieving and arranging the duplicated mapping information may increase the load on the storage system in which the data is stored because the amount of data to be retrieved and calculated is large. Therefore, the
도 2는 본 발명의 일실시예에 따른 맵핑 테이블 관리부가 생성한 맵핑 테이블의 일례이다.2 is an example of a mapping table generated by the mapping table manager according to an embodiment of the present invention.
본 발명의 일실시예에 따른 맵핑 테이블 관리부(112)는 5개의 저장 블록(210)을 사용하는 저장 시스템에서 블록1 내지 블록 4에 동일한 데이터 A가 저장되는 경우, 도 2에 도시된 바와 같이 블록2 내지 블록 4에는 데이터를 저장하지 않고 블록 1을 참조하도록 할 수 있다. 구체적으로 맵핑 테이블 관리부(112)는 맵핑 테이블(220)에 블록2, 블록3, 및 블록 4를 각각 참조 블록으로 설정하고 블록1을 참조 블록이 참조하는 원본 블록으로 설정한 맵핑 정보를 저장할 수 있다.The mapping
이때, 동일한 데이터를 참조하는 블록들을 별개의 엔트리로 저장하는 경우 맵핑 테이블의 크기가 증가하므로, 맵핑 테이블 관리부(112)는 도 2에 도시된 바와 같이 하나의 엔트리를 사용하여 동일한 원본 블록을 참조하는 블록들을 맵핑할 수 있다(230).In this case, when the blocks referring to the same data are stored as separate entries, the size of the mapping table increases, so that the mapping
일례로, 맵핑 테이블에 저장되는 각 블록의 식별 정보를 저장하기 위하여 4byte의 용량이 필요한 경우, 맵핑 테이블(220)은 3개의 엔트리에 3쌍의 맵핑 정보를 저장하며 각각의 엔트리에 참조 블록과 원본 블록을 저장하므로 수학식 1에 따라 4byte*4byte*3의 저장 공간을 필요로 한다. For example, when 4 bytes of capacity are required to store identification information of each block stored in the mapping table, the mapping table 220 stores three pairs of mapping information in three entries, and the reference block and the original in each entry. Since the block is stored, a storage space of 4 bytes * 4 bytes * 3 is required according to
이때, cn은 참조 블록의 식별 정보를 저장하기 위한 저장 공간의 크기이고, bn은 원본 블록의 식별 정보를 저장하기 위한 저장 공간의 크기이며, e는 맵핑 정보가 저장된 엔트리의 숫자일 수 있다.In this case, cn may be a size of a storage space for storing identification information of a reference block, bn may be a size of a storage space for storing identification information of an original block, and e may be a number of entries in which mapping information is stored.
반면, 맵핑 테이블(230)은 하나의 엔트리에 동일한 원본 블록을 참조하는 3개의 식별 정보를 저장하므로 동일한 정보인 원본 블록의 식별 정보를 저장하는 횟수가 감소한다. 즉, 맵핑 테이블(230)은 수학식 2에 따라 (4byte*3)+4byte의 저장 공간을 필요로 한다. On the other hand, since the mapping table 230 stores three pieces of identification information referring to the same original block in one entry, the number of times of storing the identification information of the original block that is the same information is reduced. That is, the mapping table 230 requires (4 bytes * 3) + 4 bytes of storage space according to
즉, 맵핑 테이블 관리부(112)는 맵핑 테이블(230)와 같은 구조의 맵핑 테이블을 사용함으로써 동일한 데이터를 사용할 경우, 맵핑 테이블(220)를 사용하는 것이 비하여 수학식 3 정도의 저장 공간을 절약할 수 있다.That is, the
이때, k는 동일한 원본 블록을 참조하고 있는 참조 블록의 수이고, n은 참조 블록, 또는 원본 블록의 식별 정보를 저장하기 위한 저장 공간의 크기일 수 있다.In this case, k may be the number of reference blocks referring to the same original block, and n may be a size of a storage space for storing identification information of the reference block or the original block.
도 3은 본 발명의 일실시예에 따른 데이터 변경부가 원본 블록의 데이터 변경 요청을 처리하는 과정의 일례이다.3 is an example of a process of a data change unit processing a data change request of an original block according to an embodiment of the present invention.
본 발명의 일실시예에 따른 변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 도 3에 도시된 바와 같이 변경 요청(311)이 맵핑 테이블에서 원본 블록으로 설정된 블록(블록 1)의 데이터를 변경하는지 여부를 확인할 수 있다(310). When the change
이때, 본 발명의 일실시예에 따른 변경 데이터 판단부(120)는 복수의 블록이 서로 상대 블록에 있는 데이터를 참조하도록 설정하는 교차 참조 기법을 사용할 수 있다. In this case, the change
구체적으로, 데이터 변경부(130)는 변경 요청이 원본 블록의 데이터를 변경하는 것인 경우(310), 원본 블록인 블록 1을 참조하는 블록 2, 내지 블록 4 중에서 하나의 블록을 선택할 수 있다(320). 일례로, 데이터 변경부(130)는 도 3에 도시된 바와 같이 블록 2(321)를 선택한 경우, 맵핑 테이블에 블록 1이 블록 2를 참조한다는 정보(322)를 추가할 수 있다. 이때, 변경 데이터 판단부(120)는 블록 1을 참조하는 블록 2, 내지 블록 4 중에서 다른 참조 블록의 원본 블록으로 설정된 블록이 있는지 여부를 확인하며, 다른 참조 블록의 원본 블록으로 설정된 블록은 선택할 수 없다. In detail, when the change request is to change the data of the
다음으로, 데이터 변경부(130)는 블록 2에 변경 요청(311)에 따른 데이터(331)을 저장할 수 있다(330). 이때, 블록 1과 블록 2는 서로 상대 블록에 저장된 데이터를 참조하는 교차 참조 상태이다.Next, the
그 다음으로, 다른 시스템에서 블록 2 내지 블록 4 중에 하나의 데이터를 요구하는 경우, 맵핑 테이블 관리부(112)는 맵핑 테이블에 따라 블록 2 내지 블록 4가 참조하고 있는 블록 1에 저장된 데이터 A를 제공할 수 있다. 또한, 다른 시스템에서 블록 1의 데이터를 요구하는 경우, 맵핑 테이블 관리부(112)는 맵핑 테이블에 따라 블록 1이 참조하고 있는 블록 2에 저장된 데이터 B를 제공할 수 있다. Next, when another system requires one of
본 발명의 일실시예에 따른 데이터 변경부(130)는 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다. 구체적으로 종래의 맵핑 테이블 관리 시스템은 원본 블록인 블록 1의 데이터를 변경하는 경우, 블록 2 내지 블록 4중 하나에 데이터 A를 복사하고, 데이터 A가 복사된 블록을 다른 블록이 참조하도록 변경한 다음, 블록 1의 데이터를 B로 변경하여야 하므로 1회의 블록 데이터 복사와 2회의 맵핑 테이블 엔트리 변경 및 1회의 블록 데이터 변경을 필요로 한다.The
반면, 본 발명에 따른 데이터 변경부(130)는 1회의 맵핑 테이블에 엔트리 추가(322)와 1회의 블록 데이터 복사(331)만으로도 외부에서 블록 1의 데이터를 요구하는 경우 데이터 B를 제공하고, 블록 2 내지 블록 4의 데이터를 요구하는 경우 데이터 A를 제공할 수 있다. 따라서, 본 발명에 따른 데이터 변경부(130)는 도 3의 일례에서 종래의 맵핑 테이블 관리 시스템에 비하여 1회의 맵핑 테이블 엔트리 변경 및 1회의 블록 데이터 변경을 생략할 수 있다.On the other hand, the
도 4는 본 발명의 일실시예에 따른 맵핑 테이블 정리부가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정의 일례이다.4 is an example of a process of arranging duplicate mapping information in a mapping table by a mapping table organizer according to an embodiment of the present invention.
데이터 변경부(130)가 블록 데이터를 변경하는 방법은 도 3에 도시된 바와 같이 연산 횟수를 감소시키지만 맵핑 테이블에 포함된 엔트리의 숫자는 증가시키게 된다. 이때, 맵핑 테이블 정리부(140)는 한 블록의 원본 블록이 다른 블록을 참조하는 관계들의 정보인 체인 정보를 기초로 체인 클리닝 기법을 수행함으로써 맵핑 테이블을 정리하여 데이터 변경부(130)에 의하여 증가한 엔트리의 숫자를 감소시킬 수 있다.The method of changing the block data by the
먼저, 맵핑 테이블 정리부(140)는 체인 정보를 검색할 수 있다. 구체적으로 맵핑 테이블 정리부(140)는 참조 블록과 원본 블록으로 모두 사용되는 블록을 검색하여 체인 블록으로 설정할 수 있다(410). 일례로, 맵핑 테이블(412)에서는 블록 1, 블록 2, 및 블록 3이 참조 블록과 원본 블록으로 모두 사용되고 있음을 검색할 수 있다. 구체적으로, 블록 1은 블록 2를 참조하고 있고, 블록 2는 블록 3을 참조하고 있으며, 블록 3은 블록 1을 참조하고 있다. 즉, 저장 블록(411)에 도시된 바와 같이 블록 3과 블록 4는 블록 1에 저장된 데이터 A를 참조하고 있고, 블록 1은 블록 2에 저장된 데이터 B를 참조하고 있으며, 블록 2는 블록 3에 저장된 데이터 C를 참조하고 있다.First, the
다음으로, 맵핑 테이블 정리부(140)는 체인 블록들을 각각의 체인 블록이 참조하는 대상에 기초하여 정리할 수 있다. Next, the
먼저, 맵핑 테이블 정리부(140)는 블록 1에 저장되었던 데이터 A를 임시 블록에 백업하고, 블록 1이 참조하던 데이터 B를 블록 1에 저장할 수 있다. 이때, 맵핑 테이블 정리부(140)는 데이터 A를 임시 블록에서 로드 하여 블록 2에 저장하고, 블록 1이 블록 2를 참조한다는 맵핑 정보 1:2를 삭제할 수 있다. First, the
다음으로, 맵핑 테이블 정리부(140)는 블록 1의 원본 블록인 블록 2가 참조 블록으로 설정된 맵핑 정보 2:3을 사용하여 블록 2를 정리할 수 있다. 이때, 맵핑 테이블 정리부(140)는 상기 단계에서 블록 2에 저장된 데이터 A를 임시 블록에 백업하고, 블록 2가 참조하던 데이터 C를 블록 2에 저장할 수 있다. 이때, 맵핑 테이블 정리부(140)는 데이터 A를 임시 블록에서 로드 하여 블록 3에 저장하고, 블록 2가 블록 3을 참조한다는 맵핑 정보 2:3을 삭제할 수 있다. Next, the
이때, 블록 2의 원본 블록인 블록 3이 참조 블록으로 설정된 맵핑 정보 3:1은 최초의 정리 대상이었던 블록 1을 참조하므로, 체인 클리닝 기법의 수행을 중단할 수 있다. 이때, 맵핑 테이블 정리부(140)는 블록 4가 참조하던 대상인 데이터 A가 저장된 장소가 블록 1에서 블록 3으로 이동하였으므로, 블록 4에 대한 엔트리를 블록 4가 블록 3을 참조한다는 맵핑 정보 4:3으로 변경할 수 있다.In this case, since the mapping information 3: 1 in which
본 발명에 따른 맵핑 테이블 정리부(140)는 상기 과정을 통하여 도 4와 같이 저장 블록(421) 간에 참조하는 대상의 수를 1로 감소시키고, 맵핑 테이블(422)의 엔트리를 1개로 감소시킬 수 있다(420).The
도 5는 본 발명의 일실시예에 따른 맵핑 관리 방법을 도시한 플로우차트이다.5 is a flowchart illustrating a mapping management method according to an embodiment of the present invention.
단계(S510)에서 중복 판단부(111)는 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 일례로, 중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다.In operation S510, the
단계(S520)에서 맵핑 테이블 관리부(112)는 단계(S520)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 신규 데이터가 기존 데이터와 중복되었다는 맵핑 정보를 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블 관리부(112)는 기존 데이터가 저장된 블록의 번호를 원본 블록으로 설정하고, 신규 데이터가 저장될 예정이었던 블록을 참조 블록으로 설정하며, 원본 블록과 참조 블록을 맵핑하여 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블은, 하나의 엔트리에서 복수의 참조 블록들이 하나의 원본 블록을 참조하는 구조일 수 있다. In operation S520, the mapping
단계(S530)에서 변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 변경 요청이 맵핑 테이블에서 원본 블록으로 설정된 블록의 데이터를 변경하는지 여부를 확인할 수 있다.In operation S530, when the change
단계(S540)에서 데이터 변경부(130)는 단계(S530)에서 원본 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 교차 참조 기법을 수행할 수 있다.If it is determined in step S540 that the
단계(S550)에서 데이터 변경부(130)는 단계(S530)에서 원본 블록이 아닌 참조 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 참조 블록의 데이터를 변경할 수 있다. 이때, 데이터 변경에 의하여 참조 블록과 원본 블록의 데이터가 다르게 되므로, 참조 블록이 원본 블록을 참조한다는 맵핑 정보를 삭제할 수 있다.If it is determined in step S550 that the
단계(S560)에서 맵핑 테이블 정리부(140)는 단계(S540)의 교차 참조 기법에 의하여 증가된 맵핑 테이블의 정보를 정리하는 체인 클리닝 기법의 실행이 필요한지 여부를 판단할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 데이터가 저장되는 저장 시스템이 유휴(idle)상태이거나, 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 체인 클리닝 기법의 실행이 필요한 것으로 판단할 수 있다.In operation S560, the
단계(S570)에서 맵핑 테이블 정리부(140)는 단계(S540)의 교차 참조 기법에 의하여 증가된 맵핑 테이블에서 정리 대상 블록인 체인 블록을 검색할 수 있다. 구체적으로 맵핑 테이블 정리부(140)는 참조 블록과 원본 블록으로 모두 사용되는 블록을 체인 블록으로 검색할 수 있다.In operation S570, the
단계(S580)에서 맵핑 테이블 정리부(140)는 단계(S570)에서 검색한 체인 블록들을 각각의 체인 블록이 참조하는 대상에 기초하여 정리할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 체인 블록의 데이터를 임시 블록에 저장하고, 체인 블록이 참조하던 참조 블록의 데이터를 체인 블록에 저장하며, 임시 블록의 데이터를 체인 블록이 참조하던 참조 블록에 저장하고, 맵핑 테이블에서 체인 블록이 참조 블록을 참조하는 정보를 삭제할 수 있다. 이때, 맵핑 테이블 정리부(140)는 체인 블록이 참조하던 참조 블록을 새로운 체인 블록으로 설정하여 체인 클리닝 기법을 적용하며, 최초의 체인 블록을 원본 블록으로 설정한 체인 블록이 검색된 경우 체인 클리닝 기법의 수행을 종료할 수 있다.In operation S580, the
본 발명은 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다. According to the present invention, when the data of the original block referenced by a plurality of reference blocks is changed, the data of the original block is changed by storing the data of the changed original block in one of the reference blocks, and having the original block refer to the corresponding reference block. This can reduce the copy and change operations performed.
또한, 본 발명은 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시킬 수 있다.Also, when the plurality of reference blocks refer to one original block, the present invention can reduce the size of the mapping table by storing information indicating that the plurality of reference blocks refer to the original block by using one entry in the mapping table. have.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
110: 중복 제거부
120: 변경 데이터 판단부
130: 데이터 변경부
140: 맵핑 테이블 정리부110: deduplication unit
120: change data determination unit
130: data change unit
140: mapping table cleanup unit
Claims (12)
데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 데이터 변경부; 및
참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 맵핑 테이블 정리부
를 포함하는 맵핑 관리 시스템.A deduplication unit configured to map at least one reference block corresponding to the data to the original block in which the data is stored, by using a mapping table when a plurality of data is duplicated;
When a change request of data changes data of the original block, the changed data is stored in one of the reference blocks according to the change request, and the original block is set to refer to the reference block storing the changed data. A data changer; And
Mapping table organizer for changing the reference block and the data of the chain block according to the reference object based on the chain block, which is an original block referring to one of the reference blocks, and deleting information on the chain block from the mapping table.
Mapping management system comprising a.
상기 중복제거부는,
복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 상기 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정하는 것을 특징으로 하는 맵핑 관리 시스템.The method of claim 1,
The deduplication unit,
And when a plurality of reference blocks refer to one original block, setting the plurality of reference blocks to refer to one original block using one entry in the mapping table.
상기 맵핑 테이블 정리부는,
상기 체인 블록의 데이터를 임시 블록에 저장하고, 상기 체인 블록이 참조하던 참조 블록의 데이터를 상기 체인 블록에 저장하며, 상기 임시 블록의 데이터를 상기 체인 블록이 참조하던 참조 블록에 저장하고, 상기 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제하는 것을 특징으로 하는 맵핑 관리 시스템.The method of claim 1,
The mapping table organizer,
Store data of the chain block in a temporary block, store data of a reference block referred to by the chain block in the chain block, store data of the temporary block in a reference block referred to by the chain block, and map the And the chain block deletes the information referring to the reference block from the table.
상기 맵핑 테이블 정리부는,
데이터가 저장되는 저장 시스템이 유휴(idle)상태인 경우 동작하는 것을 특징으로 하는 맵핑 관리 시스템.The method of claim 1,
The mapping table organizer,
And a storage management system in which data is stored in an idle state.
상기 맵핑 테이블 정리부는,
상기 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 동작하는 것을 특징으로 하는 맵핑 관리 시스템.The method of claim 1,
The mapping table organizer,
And operate when the size of the mapping table exceeds a threshold.
데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하는 단계;
상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 단계; 및
참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 단계
를 포함하는 맵핑 관리 방법.Mapping a plurality of data to at least one reference block corresponding to the data to an original block in which the data is stored using a mapping table;
If the change request of data changes the data of the original block, storing the changed data in one of the reference blocks according to the change request;
Setting the original block to refer to a reference block storing the changed data; And
Changing the reference block and data of the chain block according to a reference object based on a chain block which is an original block referring to one of the reference blocks, and deleting information on the chain block from the mapping table;
Mapping management method comprising a.
상기 맵핑하는 단계는
복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 상기 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정하는 것을 특징으로 하는 맵핑 관리 방법.The method of claim 7, wherein
The mapping step
And when a plurality of reference blocks refer to one original block, setting the plurality of reference blocks to refer to one original block using one entry in the mapping table.
상기 체인 블록에 대한 정보를 삭제하는 단계는,
상기 체인 블록의 데이터를 임시 블록에 저장하는 단계;
상기 체인 블록이 참조하던 참조 블록의 데이터를 상기 체인 블록에 저장하는 단계;
상기 임시 블록의 데이터를 상기 체인 블록이 참조하던 참조 블록에 저장하는 단계; 및
상기 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제하는 단계
를 포함하는 맵핑 관리 방법.The method of claim 7, wherein
Deleting information about the chain block,
Storing the data of the chain block in a temporary block;
Storing data of a reference block referred to by the chain block in the chain block;
Storing the data of the temporary block in a reference block referred to by the chain block; And
Deleting information in which the chain block refers to a reference block in the mapping table
Mapping management method comprising a.
상기 체인 블록에 대한 정보를 삭제하는 단계는,
데이터가 저장되는 저장 시스템이 유휴(idle)상태인 경우 실행하는 것을 특징으로 하는 맵핑 관리 방법.The method of claim 7, wherein
Deleting information about the chain block,
And executing when the storage system storing data is in an idle state.
상기 체인 블록에 대한 정보를 삭제하는 단계는,
상기 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 실행하는 것을 특징으로 하는 맵핑 관리 방법.The method of claim 7, wherein
Deleting information about the chain block,
If the size of the mapping table exceeds a threshold, executing the mapping management method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100136766A KR101252375B1 (en) | 2010-12-28 | 2010-12-28 | Mapping management system and method for enhancing performance of deduplication in storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100136766A KR101252375B1 (en) | 2010-12-28 | 2010-12-28 | Mapping management system and method for enhancing performance of deduplication in storage apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120074817A KR20120074817A (en) | 2012-07-06 |
KR101252375B1 true KR101252375B1 (en) | 2013-04-08 |
Family
ID=46708891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100136766A KR101252375B1 (en) | 2010-12-28 | 2010-12-28 | Mapping management system and method for enhancing performance of deduplication in storage apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101252375B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101532283B1 (en) * | 2013-11-04 | 2015-06-30 | 인하대학교 산학협력단 | A Unified De-duplication Method of Data and Parity Disks in SSD-based RAID Storage |
KR101680540B1 (en) * | 2015-06-18 | 2016-11-30 | 주식회사 코인플러그 | Financial institution document verification system that is based on the block chain |
KR101637868B1 (en) * | 2016-02-22 | 2016-07-08 | 주식회사 코인플러그 | Financial institution document verification system that is based on the block chain |
KR102204605B1 (en) * | 2019-04-25 | 2021-01-19 | 주식회사 웨이투빗 | Method and device for providing blockchain capable of optimizing storages of each node included therein |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040009926A (en) * | 2002-07-26 | 2004-01-31 | 지인정보기술 주식회사 | Flash memory management method |
US7734603B1 (en) * | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
-
2010
- 2010-12-28 KR KR1020100136766A patent/KR101252375B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040009926A (en) * | 2002-07-26 | 2004-01-31 | 지인정보기술 주식회사 | Flash memory management method |
US7734603B1 (en) * | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
Also Published As
Publication number | Publication date |
---|---|
KR20120074817A (en) | 2012-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10620862B2 (en) | Efficient recovery of deduplication data for high capacity systems | |
US10761758B2 (en) | Data aware deduplication object storage (DADOS) | |
US8799601B1 (en) | Techniques for managing deduplication based on recently written extents | |
US20140297603A1 (en) | Method and apparatus for deduplication of replicated file | |
US9430164B1 (en) | Memory efficient sanitization of a deduplicated storage system | |
US8271462B2 (en) | Method for creating a index of the data blocks | |
US9317218B1 (en) | Memory efficient sanitization of a deduplicated storage system using a perfect hash function | |
CN104077380B (en) | A kind of data de-duplication method, apparatus and system | |
WO2016086819A1 (en) | Method and apparatus for writing data into shingled magnetic record smr hard disk | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
CN105027069A (en) | Deduplication of volume regions | |
JP2015512604A (en) | Cryptographic hash database | |
CN110888837B (en) | Object storage small file merging method and device | |
JP6094267B2 (en) | Storage system | |
CN113535670B (en) | Virtual resource mirror image storage system and implementation method thereof | |
KR20150122533A (en) | Method for generating secondary index and apparatus for storing secondary index | |
CN111522502B (en) | Data deduplication method and device, electronic equipment and computer-readable storage medium | |
KR101252375B1 (en) | Mapping management system and method for enhancing performance of deduplication in storage apparatus | |
CN109558456A (en) | A kind of file migration method, apparatus, equipment and readable storage medium storing program for executing | |
KR101350132B1 (en) | Data deduplication management system and method for using nvram as mapping table storage apparatus | |
CN104965835B (en) | A kind of file read/write method and device of distributed file system | |
CN104133970A (en) | Data space management method and device | |
CN104484402B (en) | A kind of method and device of deleting duplicated data | |
KR100987251B1 (en) | Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl | |
US10185660B2 (en) | System and method for automated data organization in a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160401 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180403 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190402 Year of fee payment: 7 |