KR20190027279A - Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding - Google Patents

Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding Download PDF

Info

Publication number
KR20190027279A
KR20190027279A KR1020170114138A KR20170114138A KR20190027279A KR 20190027279 A KR20190027279 A KR 20190027279A KR 1020170114138 A KR1020170114138 A KR 1020170114138A KR 20170114138 A KR20170114138 A KR 20170114138A KR 20190027279 A KR20190027279 A KR 20190027279A
Authority
KR
South Korea
Prior art keywords
data
memory
size
data storage
storage
Prior art date
Application number
KR1020170114138A
Other languages
Korean (ko)
Other versions
KR102356307B1 (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 KR1020170114138A priority Critical patent/KR102356307B1/en
Publication of KR20190027279A publication Critical patent/KR20190027279A/en
Application granted granted Critical
Publication of KR102356307B1 publication Critical patent/KR102356307B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Disclosed are a method for recovering a data loss using selective erasure coding in a flash storage apparatus, and a device thereof. According to an aspect of the embodiment, the method for recovering a data loss using selective erasure coding in a flash storage apparatus comprises: a process of receiving a data write request from a host; a process of determining a data storage method of either an erasure coding method or a replication method, based on a size of data requested to be written; a process of generating metadata including information on the data requested to be written and recording the generated metadata in a memory; and a process of recording the data requested to be written in the memory in accordance with a determined data storage mode.

Description

플래시 저장 장치에서의 선택적 소거 코딩을 이용한 데이터 손실 복원 방법 및 장치{Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a method and an apparatus for restoring data loss using selective erasure coding in a flash storage device,

본 실시예는 플래시 메모리에 기반한 저장 장치에 관한 것이다.This embodiment relates to a flash memory based storage device.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

저장 장치에서 중요한 기술 중 하나는 데이터의 손실이 발생했을 때, 원본 데이터를 복원하는 기술이다. 데이터를 복원하지 못할 경우 경제적 손실을 초래할 수 있다. 데이터 손실을 복원하기 위한 방법으로, 원본 데이터의 사본을 생성하고 사본을 원본과는 다른 물리적인 공간에 저장하는 복제(Replication) 방식이 있다. 이러한 복제 방식을 이용하는 경우에는 원본 데이터가 그대로 복제되므로 원본 데이터와 동일한 크기의 추가 저장공간이 필요하게 되므로, 상대적으로 가격이 저렴한 HDD, Tape 장치 등에서 사용된다. One of the important techniques in storage devices is to restore original data when data loss occurs. Failure to restore the data can result in economic loss. As a method for restoring data loss, there is a replication method which creates a copy of the original data and stores the copy in a physical space different from the original. In such a copying method, since the original data is copied as it is, additional storage space of the same size as the original data is required. Therefore, it is used in a relatively cheap HDD or tape device.

최근에는 비용과 저장 공간 효율성 측면이 중요해지면서 소거 코딩(Erasure Coding) 방식이 도입되고 있다. 소거 코딩 방식은 데이터를 인코딩하여 패리티를 생성한 후 데이터와 패리티를 분산 저장하고, 데이터 손실시 패리티를 이용한 디코딩 과정을 거쳐 원본 데이터를 복원하는 방법이다. 이러한 소거 코딩 방식은 저장된 원본 데이터의 일부에 손실이 발생하더라도, 원본 데이터를 복원 시킬 수 있는 방법으로, 원본 데이터의 사본을 생성하지 않고 일부 복원 정보만 별도로 유지하면 데이터를 복원할 수 있기 때문에 공간 효율성 측면에서 유리하고, 오류의 복원 성능 또한 뛰어나 SSD와 같은 고가의 장치에서 사용된다. 소거 코딩 방식에 따르면 원본 데이터를 분할하여 분할된 데이터를 여러 저장 공간에 나누어 저장하는데, 이 때, 분할된 데이터의 크기가 플래시의 논리적 페이지 크기보다 작을 경우에 플래시 페이지 내부 단편화(internal fragmentation) 문제가 발생하게 된다. 내부 단편화가 발생한 페이지를 회수하기 위해서는 추가적인 데이터 읽기/쓰기 과정을 필요로 하는데, 플래시 메모리는 물리적인 특성상 쓰기 횟수가 제한되어 있어 이로 인해 메모리 수명이 단축될 수 있는 문제가 있다.In recent years, as cost and storage space efficiency become more important, erasure coding is being introduced. The erasure coding scheme is a method of encoding data to generate parity, distributing data and parity, and recovering original data through a decoding process using parity in case of data loss. This erasure coding method is a method that can restore original data even if a part of original data stored is lost. Since it is possible to restore data by maintaining only some restoration information without generating a copy of original data, It is advantageous from the side and has excellent error restoration performance and is used in expensive devices such as SSD. According to the erase coding scheme, the original data is divided and the divided data is divided into several storage spaces. In this case, when the size of the divided data is smaller than the logical page size of the flash, the internal fragmentation problem of the flash page . In order to retrieve the page where the internal fragmentation occurs, additional data read / write process is required. However, since the flash memory has a limited number of write operations due to its physical characteristics, there is a problem that the memory life can be shortened.

본 발명의 실시예들은, 플래시 저장 장치의 데이터 손실 복원을 위해 소거 코딩 방식을 적용함에 있어서, 페이지 내부 단편화로 인해 발생할 수 있는 플래시 메모리 수명 단축 문제를 해결할 수 있는 방법을 제공하는 데 주된 목적이 있다.Embodiments of the present invention have a main object to provide a method for solving the problem of shortening the life of a flash memory that can occur due to internal fragmentation in applying an erasure coding scheme for data loss recovery of a flash storage device .

본 실시예의 일 측면에 의하면, 호스트로부터 데이터 쓰기 요청을 수신하는 과정, 쓰기 요청된 데이터의 크기에 기반하여, 소거 코딩(Erasure Coding) 방법 및 복제(Replication) 방법 중 어느 하나의 데이터 저장 방식을 결정하는 과정, 쓰기 요청된 데이터에 대한 정보를 포함하는 메타데이터를 생성하고, 생성된 메타데이터를 메모리에 기록하는 과정 및 결정된 데이터 저장 방식에 따라 쓰기 요청된 데이터를 메모리에 기록하는 과정을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법을 제공한다.According to an aspect of the present invention, a method of determining a data storage method of an erasure coding method and a replication method is determined based on a size of data requested to be written, Generating metadata including information on data requested to be written, recording the generated metadata in a memory, and writing data requested to be written according to a determined data storage method to a memory, Thereby providing a method for restoring data loss of the storage device.

상기 데이터 손실 복원 방법의 실시예는 다음의 특징들을 하나 이상 더 포함할 수 있다.The embodiment of the data loss recovery method may further include one or more of the following features.

데이터 저장 방식을 결정하는 과정은 소거 코딩 방식을 적용함에 따라 분할되는 데이터 청크 크기와 메모리의 논리 페이지 크기를 비교하는 과정을 포함하고, 데이터 청크 크기가 논리 페이지 크기보다 크거나 같은 경우 소거 코딩 방식으로 데이터 저장 방식을 결정하고, 데이터 청크 크기가 논리 페이지 크기보다 작은 경우 복제 방식으로 데이터 저장 방식을 결정할 수 있다.The process of determining the data storage method includes a process of comparing the data chunk size divided by the erasure coding scheme and the logical page size of the memory, and when the data chunk size is equal to or larger than the logical page size, The data storage method can be determined. If the data chunk size is smaller than the logical page size, the data storage method can be determined by the replication method.

메타데이터를 메모리에 기록하는 과정은, 쓰기 요청된 데이터와 대응하는 데이터 저장 방식에 대한 정보를 포함하는 메타데이터를 생성할 수 있다.The process of writing the meta data into the memory may generate the meta data including the information about the data storage method corresponding to the data requested to be written.

본 실시예의 일 측면에 의하면, 호스트로부터 데이터 읽기 요청을 수신하는 과정, 읽기 요청된 데이터의 메타데이터를 참조하여, 읽기 요청된 데이터의 데이터 저장 방식을 확인하는 과정, 데이터 저장 방식이 소거 코딩 방식인 경우, 메모리로부터 복수의 원본 데이터 청크를 읽어들이는 과정 및 데이터 저장 방식이 복제 방식인 경우, 메모리로부터 원본 데이터 또는 복제된 데이터 중 어느 하나를 읽어들이는 과정을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법을 제공한다.According to an aspect of the present invention, there is provided a method for managing a data read request, the method comprising: receiving a data read request from a host; checking metadata of data requested to be read; A step of reading a plurality of original data chunks from a memory and a step of reading either original data or copied data from the memory when the data storing method is a duplication method. ≪ / RTI >

이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 플래시 메모리의 논리적 페이지 크기를 고려하여 선택적으로 소거 코딩을 적용함으로써 페이지 내부 단편화 문제를 해결할 수 있고, 이로 인한 입출력 성능 저하 문제 및 플래시 메모리 수명 단축 문제를 해소할 수 있는 효과가 있다.As described above, according to the embodiment of the present invention, the internal page fragmentation problem can be solved by selectively applying erasure coding in consideration of the logical page size of the flash memory, and the problems of the input / output performance degradation and the shortening of the life of the flash memory It is possible to solve the problem.

또한, 본 발명의 실시예에 의하면, 플래시 메모리의 손상에 의해 저장된 데이터에 손실이 발생하더라도 데이터를 복원할 수 있는 방법 및 장치를 제공함으로써, 플래시 저장 장치에 저장된 데이터에 대한 신뢰성을 보장하는 효과가 있다.In addition, according to the embodiments of the present invention, it is possible to provide a method and an apparatus for restoring data even if a loss occurs in stored data due to damage to the flash memory, thereby ensuring reliability of data stored in the flash storage device have.

도 1은 소거 코딩 방식을 설명하기 위한 도면이다.
도 2는 복제 방식을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 플래시 저장 장치에 대한 구성도이다.
도 4은 본 발명의 실시예에 따른 데이터 손실 복원 방법을 이용한 플래시 저장 장치에서의 데이터 쓰기 방법을 나타내는 흐름도이다.
도 5 및 도 6은 본 발명의 실시예에 따른 데이터 쓰기 방법을 설명하기 위한 예시도이다.
도 7은 본 발명의 실시예에 따른 데이터 손실 복원 방법을 이용한 플래시 저장 장치에서의 데이터 읽기 방법을 나타내는 흐름도이다.
1 is a diagram for explaining an erasure coding scheme.
Fig. 2 is a diagram for explaining a copying method.
3 is a configuration diagram of a flash storage device according to an embodiment of the present invention.
4 is a flowchart illustrating a method of writing data in a flash storage device using a data loss recovery method according to an embodiment of the present invention.
5 and 6 are diagrams for explaining a data writing method according to an embodiment of the present invention.
7 is a flowchart illustrating a method of reading data in a flash storage device using a data loss recovery method according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명을 설명하는 데 있어서, 플래시 저장 장치는 플래시 메모리를 기반으로 구현된 저장 장치를 말하며, 예컨대, SSD와 같은 저장 장치일 수 있다. 또한, 플래시 메모리는 다수의 플래시 메모리 칩을 포함하는 개념이며, 각각의 플래시 메모리 칩은 물리적으로 서로 다른 저장 공간에 해당한다. 플래시 메모리는 복수의 블록들로 구성되며 각각의 블록은 복수의 페이지들을 포함한다. 플래시 메모리에서 쓰기(program 또는 write) 및 읽기(read)는 페이지 단위로 수행되고, 지우기(erase)는 블록 단위로 수행된다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, a flash storage device refers to a storage device implemented based on a flash memory, and may be a storage device such as an SSD. Further, the flash memory is a concept including a plurality of flash memory chips, and each flash memory chip corresponds to a physically different storage space. The flash memory is composed of a plurality of blocks, and each block includes a plurality of pages. Writing (program or write) and reading (reading) in the flash memory are performed page by page, and erasing is performed block by block.

도 1은 소거 코딩 방식을 설명하기 위한 도면이다. 도 1에는 논리적 페이지 크기가 4KB인 플래시 저장 장치에 4+2 소거 코드를 이용하여 4KB 크기의 데이터를 쓰는 경우가 예시되어 있다. 1 is a diagram for explaining an erasure coding scheme. FIG. 1 illustrates a case in which 4 KB data is written using a 4 + 2 erase code in a flash storage device having a logical page size of 4 KB.

소거 코딩은 원본 데이터를 분할하여 생성한 원본 데이터 청크와 인코딩 과정을 통해 생성한 패리티 청크를 서로 다른 공간에 저장하여, 원본 데이터 청크 일부에 손실이 발생하더라도 패리티 청크를 이용해 손실된 데이터를 복원할 수 있는 방법이다. 일반적으로 소거 코드로는 Reed Solomon 코드를 많이 사용하며, K+N과 같은 형태로 표기한다. 이 때, K는 원본 데이터가 분할되는 개수, N은 원본 데이터를 복구하기 위해 생성하는 패리티의 개수를 의미하며, K+N은 분할된 데이터 및 패리티를 저장하기 위한 저장 공간의 총 개수를 나타낸다. K+N 소거 코드를 이용하여 데이터를 저장하면, N개의 분할된 데이터 또는 패리티에 손실이 발생하더라도 원본 데이터를 재구성할 수 있다. 이하에서는, Reed Solomon 코드를 사용하는 것을 예시로 하여, 소거 코딩 방식을 적용해 플래시 메모리에 데이터를 쓰는 과정에 대해 설명한다. In erase coding, the original data chunks generated by dividing the original data and the parity chunks generated through the encoding process are stored in different spaces, so that even if a loss occurs in a part of the original data chunks, the lost data can be restored by using the parity chunks There is a way. In general, the Reed Solomon code is often used as the erase code, and is expressed in the form of K + N. In this case, K denotes the number of original data to be divided, N denotes the number of parities to be generated for restoring original data, and K + N denotes the total number of storage spaces for storing divided data and parity. If data is stored using a K + N erasure code, the original data can be reconstructed even if there is a loss in N divided data or parity. Hereinafter, a process of writing data to the flash memory by applying the erasure coding scheme will be described as an example using the Reed Solomon code.

데이터 쓰기 요청이 발생하면, K+N 소거 코드를 적용하여 원본 데이터를 K 개의 원본 데이터 청크로 분할하고, 이들 원본 데이터 청크들로부터 N 개의 패리티 청크를 생성한다. 여기서 원본 데이터 청크는 원본 데이터를 분할하여 생성한 데이터 청크를 말하며, 패리티 청크는 원본 데이터의 복구를 위해 생성된 데이터 청크를 말한다. 저장 공간이 손상되는 경우에 대비하여, 생성된 원본 데이터 청크 및 패리티 청크는 물리적으로 서로 다른 공간에 저장하는 것이 바람직하다. When a data write request occurs, a K + N erasure code is applied to divide the original data into K original data chunks, and N parity chunks are generated from these original data chunks. Here, the original data chunk refers to a data chunk generated by dividing original data, and the parity chunk refers to a data chunk generated for restoring original data. It is desirable to store the generated original data chunks and parity chunks physically in different spaces in case the storage space is damaged.

도 1을 참조하면, 4KB 크기의 데이터 쓰기 요청이 발생한 경우, 4+2 소거 코드를 사용하여, 각 1KB 크기의 4개의 원본 데이터 청크를 생성하고, 원본 데이터 청크들에 대한 2개의 패리티 청크를 생성한다. 데이터 쓰기 과정에서 이러한 소거 코드를 적용하는 경우, 원본 데이터 청크 또는 패리티 청크를 불문하고 4개의 청크만 존재하면 원본 데이터를 재구성할 수 있다. 도면과 같이, 소거 코드를 적용하여 생성된 원본 데이터 청크 및 패리티 청크를 서로 다른 플래시 메모리에 기록한다. 이 때, 데이터 쓰기는 페이지 단위로 이루어지므로, 논리적 페이지 크기가 4KB인 경우, 1KB의 청크들을 각각 기록하면 해당 페이지는 3KB의 내부 단편화가 발생하게 된다. 내부 단편화가 발생한 페이지는 향후 내부 단편화 제거 루틴에 의해 다시 읽혀진 후, 내부 단편화가 발생한 페이지들에 기록된 데이터를 병합하여 다른 새로운 페이지에 기록을 하며, 기존에 내부 단편화가 발생했던 페이지는 삭제 연산을 통해 유휴 공간으로 남겨지게 된다. 이러한 과정을 Write Amplification Factor(WAF)라 하는데, WAF가 증가함에 따라 병렬적인 연산이 불가능하게 되어 입출력 성능이 저하되고, 플래시 메모리의 수명도 짧아지게 된다.Referring to FIG. 1, when a data write request of a size of 4 KB occurs, four original data chunks each having a size of 1 KB are generated using a 4 + 2 erase code, and two parity chunks for original data chunks are generated do. When applying these erasure codes in the course of writing data, the original data can be reconstructed if there are only four chunks, regardless of the original data chunk or the parity chunk. As shown in the figure, original data chunks and parity chunks generated by applying an erasure code are recorded in different flash memories. In this case, data writing is performed on a page-by-page basis. Therefore, if a logical page size is 4 KB, recording of 1 KB chunks results in internal fragmentation of 3 KB. The page where the internal fragmentation occurred is re-read by the internal fragmentation elimination routine in the future. Then, the data recorded on the pages where the internal fragmentation occurs is merged and the new page is written to another page. And is left as an idle space. This process is called Write Amplification Factor (WAF). As the WAF increases, the parallel operation becomes impossible, the input / output performance is lowered, and the lifetime of the flash memory is also shortened.

도 2는 복제 방식을 설명하기 위한 도면이다. 도 2에는 논리적 페이지 크기가 4KB인 플래시 저장 장치에 3-way 복제 방식을 적용하여 4KB 크기의 데이터를 쓰는 경우가 예시되어 있다. Fig. 2 is a diagram for explaining a copying method. FIG. 2 illustrates a case where a 4-KB data is written by applying a 3-way replication method to a flash storage device having a logical page size of 4 KB.

복제 방식은 데이터의 손실에 대비하기 위해, 원본 데이터의 사본을 생성하여 복제된 데이터를 만들고, 원본 데이터와 복제된 데이터를 서로 다른 공간에 저장함으로써, 어느 하나의 데이터에 손실이 발생하더라도 원본 데이터를 그대로 유지할 수 있는 방법이다. N-way와 같이 표기된 것은, 원본 데이터와 복제된 데이터의 총 개수가 N인 것을 의미하며, 도 2에 예시된 3-way 복제 방식의 경우 원본 데이터에 대한 사본이 2개 생성된다. 복제 방식을 적용해 데이터를 저장하면, N-1개의 데이터에 손실이 발생하더라도 원본 데이터를 복원할 수 있다. In order to prepare for the loss of data, the duplication method creates duplicated data by making a copy of the original data and stores the original data and the duplicated data in different spaces, so that even if any data is lost, It is a method that can be maintained as it is. N-way means that the total number of original data and copied data is N, and in the case of the 3-way copying method illustrated in FIG. 2, two copies of original data are generated. When the data is stored by applying the replication method, original data can be restored even if a loss occurs in N-1 data.

데이터 쓰기 요청이 발생하면, N 개의 원본 데이터 및 복제된 데이터를 생성한다. 여기서 원본 데이터와 복제된 데이터는 실질적으로 동일하므로 그 구분은 사실상 무의미하며, 이하에서는 설명을 위해 구분하여 기재한다. 저장 공간이 손상되는 경우에 대비하여, 원본 데이터 및 복제된 데이터는 물리적으로 서로 다른 공간에 저장하는 것이 바람직하다. When a data write request occurs, it generates N original data and replicated data. Here, the original data and the replicated data are substantially identical, so that the division is virtually meaningless, and the division is described below for the sake of explanation. In case the storage space is damaged, it is desirable that the original data and the replicated data are physically stored in different spaces.

도 2를 참조하면, 4KB 크기의 데이터 쓰기 요청이 발생한 경우, 쓰기 요청된 데이터에 대한 사본을 2개 생성하고, 원본 데이터 및 복제된 데이터를 서로 다른 플래시 메모리에 기록한다. 이 때, 데이터 쓰기는 페이지 단위로 이루어지므로, 논리적 페이지 크기가 4KB인 경우, 4KB 크기의 원본 데이터 및 복제된 페이지를 쓰게 되므로 내부 단편화 문제가 발생하지 않는다. 그러나, 이 경우 저장 장치에 데이터를 기록하기 위해 필요한 용량이 매우 크다는 단점이 있다. 도 1 및 도 2에 예시된 경우 모두 최대 2개의 디스크 오류에 대비가 가능하지만, 도 1의 소거 코딩 방식의 경우 6KB의 용량이 필요하고, 도 2의 복제 방식의 경우에는 12KB의 용량이 필요하게 되므로, 저장 장치의 용량 효율성 측면에서 불리하다.Referring to FIG. 2, when a data write request of a size of 4 KB occurs, two copies of write-requested data are generated, and the original data and the copied data are written to different flash memories. In this case, data writing is performed on a page-by-page basis. Therefore, if the logical page size is 4 KB, the original data of 4 KB size and the duplicated page are written, so that the internal fragmentation problem does not occur. However, in this case, there is a disadvantage that the capacity required for recording data in the storage device is very large. In both cases shown in FIGS. 1 and 2, it is possible to prepare for a maximum of two disc failures. However, the erasure coding scheme of FIG. 1 requires a capacity of 6 KB, and the replication scheme of FIG. 2 requires a capacity of 12 KB Which is disadvantageous in terms of capacity efficiency of the storage device.

본 발명은 플래시 기반 저장 장치에서 소거 코딩을 적용함에 있어, 플래시 메모리의 논리적 페이지 크기를 고려하여 소거 코딩 방식과 복제 방식을 선택적으로 적용하는 방법을 제안한다. 구체적으로, 원본 데이터를 분할하여 생성하는 데이터 청크의 크기가 플래시의 논리적 페이지 크기보다 작은 경우에는 소거 코딩을 적용하지 않고, 데이터 복제 방식을 적용하여 불필요한 데이터 내부 단편화 문제를 발생시키지 않는다. The present invention proposes a method of selectively applying an erase coding scheme and a replication scheme in consideration of a logical page size of a flash memory in applying erasure coding in a flash-based storage device. Specifically, when the size of the data chunks generated by dividing the original data is smaller than the logical page size of the flash, no unnecessary data internal fragmentation problem is caused by applying the data replication method without applying erasure coding.

또한, 쓰기 요청된 데이터의 크기에 의해 데이터의 저장 방식이 결정되기 때문에, 데이터 읽기 과정에서 데이터 저장 방식을 판단하고 해당 데이터를 읽어들일 수 있도록 하기 위해, 결정된 데이터 저장 방식에 따라 메타데이터에 포함되는 정보를 서로 달리하여 메타데이터를 생성하는 방법을 제안한다. 생성된 메타데이터는 데이터와 함께 메모리에 기록될 수 있으며 읽기 과정에서 메타데이터를 확인하는 과정을 거쳐 데이터 저장 방식을 판단할 수 있게 된다. In addition, since the method of storing data is determined according to the size of the data requested to be written, in order to determine the data storage method in the data reading process and to read the data, We propose a method to generate meta data with different information. The generated metadata can be recorded in the memory together with the data, and the data storage method can be determined through the process of checking the metadata in the reading process.

도 3은 본 발명의 실시예에 따른 플래시 저장 장치에 대한 구성도이다. 도 3을 참조하면, 본 발명의 실시예에 따른 플래시 저장 장치는 저장 장치 컨트롤러(100) 및 플래시 메모리(200)를 포함하여 구성된다.3 is a configuration diagram of a flash storage device according to an embodiment of the present invention. Referring to FIG. 3, a flash storage device according to an embodiment of the present invention includes a storage controller 100 and a flash memory 200.

저장 장치 컨트롤러(100)는 호스트와의 통신 및 플래시 메모리(200)와의 데이터 송수신 과정을 제어한다. 저장 장치 컨트롤러(100)는 플래시 메모리(200)에 데이터를 저장하거나, 저장된 데이터를 읽고 삭제할 수 있다. 본 발명의 실시예에서, 저장 장치 컨트롤러(100)는 플래시 메모리(200)에 데이터를 저장하는 과정을 제어하며, 데이터 손실에 대비해 데이터를 복원하기 위한 데이터 쓰기 방법을 제공한다. 또한, 본 발명의 실시예에서, 저장 장치 컨트롤러(100)는 플래시 메모리(200)로부터 데이터를 읽어들이는 과정을 제어하며, 데이터 손실이 발생한 경우 원본 데이터를 복원하기 위한 데이터 읽기 방법을 제공한다. 저장 장치 컨트롤러(100)는 플래시 메모리 어플리케이션을 위한 펌웨어를 구동하고, 데이터 읽기 및 쓰기의 과정을 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.The storage controller 100 controls communication with the host and data transmission / reception with the flash memory 200. The storage controller 100 may store data in the flash memory 200 or may read and erase the stored data. In the embodiment of the present invention, the storage controller 100 controls the process of storing data in the flash memory 200 and provides a data writing method for recovering data in preparation for data loss. In addition, in the embodiment of the present invention, the storage controller 100 controls the process of reading data from the flash memory 200 and provides a data reading method for recovering original data when data loss occurs. The storage controller 100 may include a microprocessor and the like for driving firmware for a flash memory application and for controlling the process of reading and writing data.

저장 장치 컨트롤러(100)는 호스트 인터페이스(미도시), 플래시 메모리 컨트롤러(미도시) 등을 포함할 수 있다. 호스트 인터페이스는 저장 장치와 외부의 호스트 컴퓨터 사이에서 인터페이스를 제공한다. 호스트 인터페이스는, 예컨대, PATA(Parallel ATA), SATA(Seral ATA) 또는 USB(Universal Serial Bus) 등의 통신 규격일 수 있다. 본 발명의 실시예에 따른 플래시 저장 장치는 호스트 인터페이스를 통해 호스트로부터 데이터 읽기, 데이터 쓰기와 같은 데이터 액세스 명령을 수신한다. 플래시 메모리 컨트롤러는 저장 장치 컨트롤러(100)의 제어 하에 플래시 메모리(200)의 데이터 전송, 버스 제어 등을 수행한다.The storage controller 100 may include a host interface (not shown), a flash memory controller (not shown), and the like. The host interface provides an interface between the storage device and an external host computer. The host interface may be a communication standard such as PATA (Parallel ATA), SATA (Seral ATA), or USB (Universal Serial Bus). A flash storage device according to an embodiment of the present invention receives data access commands such as reading data from a host and writing data through a host interface. The flash memory controller performs data transfer, bus control, and the like of the flash memory 200 under the control of the storage controller 100.

플래시 메모리(200)는 다수의 플래시 메모리 칩을 포함하여 구성된다. 플래시 메모리(200)는 데이터 삭제 연산의 기본 단위인 복수의 블록으로 구성되며, 블록은 읽기 및 쓰기 연산의 기본 단위인 복수의 페이지로 구성된다. The flash memory 200 includes a plurality of flash memory chips. The flash memory 200 is constituted by a plurality of blocks which are basic units of the data erase operation, and the blocks are composed of a plurality of pages which are basic units of read and write operations.

도 4는 본 발명의 실시예에 따른 데이터 손실 복원 방법을 이용한 저장 장치에서의 데이터 쓰기 방법을 나타내는 흐름도이다. 4 is a flowchart illustrating a method of writing data in a storage device using a data loss recovery method according to an embodiment of the present invention.

도 5 및 도 6은 본 발명의 실시예에 따른 데이터 쓰기 방법을 설명하기 위한 예시도이다.5 and 6 are diagrams for explaining a data writing method according to an embodiment of the present invention.

이하에서는, 도 4 내지 도 6을 참조하여 본 발명의 실시예에 따른 플래시 저장 장치에서 데이터를 저장하는 방법에 대해 설명한다.Hereinafter, a method of storing data in a flash storage device according to an embodiment of the present invention will be described with reference to FIGS.

도 4를 참조하면, 본 발명의 실시예에 따른 플래시 저장 장치가 호스트로부터 데이터 쓰기 요청을 수신하면(S410), 저장 장치 컨트롤러(100)는 쓰기 요청된 데이터의 크기에 기반하여, 소거 코딩 방식과 복제 방식 중 어떤 방법을 사용하여 데이터를 저장할지를 결정한다. 구체적으로, 저장 장치 컨트롤러(100)는 데이터 저장 방식을 결정하기 위해 쓰기 요청된 데이터에 소거 코딩 방식을 적용했을 때 생성되는 데이터 청크 크기와 메모리의 논리 페이지 크기를 비교한다(S420). Referring to FIG. 4, when the flash storage device according to the embodiment of the present invention receives a data write request from the host at step S410, the storage controller 100 determines whether or not the flash memory Determine which method of replication will be used to store the data. Specifically, the storage controller 100 compares the size of the data chunk generated when the erase coding scheme is applied to the data requested to be written to determine the data storage mode, and the logical page size of the memory (S420).

비교 결과, 데이터 청크 크기가 논리 페이지 크기보다 크거나 같은 경우 소거 코딩 방식을 적용하는 것으로 결정한다(S430). 데이터 저장 방식이 결정되면, 쓰기 요청된 데이터에 대응하는 데이터 저장 방식에 대한 정보를 포함하는 메타데이터를 생성한다(S440). 데이터 읽기 요청이 있는 경우에, 서로 다른 공간에 저장되어 있는 복수의 원본 데이터 청크를 모두 읽어 원본 데이터를 재구성하기 위해, 결정된 데이터 저장 방식에 대한 정보를 메타데이터에 포함시킬 필요가 있다. 생성된 메타데이터를 메모리에 기록하고, 원본 데이터 청크들과 패리티 청크를 플래시 메모리(200)에 기록한다(S450).As a result of the comparison, if the data chunk size is equal to or greater than the logical page size, it is determined to apply the erasure coding scheme (S430). When the data storage method is determined, metadata including information on the data storage method corresponding to the data requested to be written is generated (S440). It is necessary to include information on the determined data storage method in the metadata in order to reconstruct the original data by reading all of the plurality of original data chunks stored in different spaces. The generated metadata is recorded in the memory, and the original data chunks and the parity chunk are written into the flash memory 200 (S450).

도 5를 참조하여, 논리적 페이지 크기가 4KB인 플래시 저장 장치에 4+2 소거 코드를 이용하여 16KB 크기의 데이터를 쓰는 경우를 예시로 설명한다. 도 5와 같은 예시에서, 16KB 데이터에 소거 코딩 방식을 적용하면 분할된 원본 데이터 청크의 크기는 4KB이다. 데이터 청크 크기가 논리적 페이지 크기와 같으므로, 쓰기 요청된 데이터의 데이터 저장 방식으로 소거 코딩 방식을 적용하는 것으로 결정한다. 결정된 데이터 저장 방식이 소거 코딩 방식인 경우, 원본 데이터 청크와 패리티 청크의 개수, 데이터 청크 크기 및 패리티 청크의 위치 정보를 포함하는 메타데이터를 생성하고, 쓰기 요청된 데이터의 저장에 앞서 생성된 메타데이터를 메모리에 저장한다. 도면에서, 4+2 소거 코딩 과정을 거쳐 생성된 원본 데이터 청크를 각 a, b, c, d와 같이 표기하였고, 원본 데이터 청크에 대한 패리티 청크는 p1, p2와 같이 표기하였다. 총 6개의 원본 데이터 청크(a, b, c, d)와 패리티 청크(p1, p2)는 물리적으로 서로 다른 저장 공간에 기록되며, 16KB 크기의 데이터 손실 복원을 위해서 8KB만이 추가적으로 사용된다.Referring to FIG. 5, a case of writing data of 16 KB size using a 4 + 2 erase code to a flash storage device having a logical page size of 4 KB will be described as an example. In the example shown in FIG. 5, when the erasure coding scheme is applied to the 16 KB data, the size of the divided original data chunk is 4 KB. Since the data chunk size is equal to the logical page size, it is determined that the erasure coding method is applied to the data storage method of the write-requested data. When the determined data storage scheme is an erasure coding scheme, metadata including the number of original data chunks, parity chunks, data chunk size, and parity chunks is generated, and the generated metadata Into memory. In the figure, the original data chunks generated through the 4 + 2 erasure coding process are denoted as a, b, c, and d, respectively, and the parity chunks for the original data chunks are denoted as p1 and p2. A total of six original data chunks (a, b, c, d) and parity chunks (p1, p2) are physically recorded in different storage spaces and only 8KB are used for restoring data loss of 16KB in size.

반면에, 데이터 청크 크기와 메모리의 논리 페이지 크기 비교 결과, 데이터 청크 크기가 논리 페이지 크기보다 작은 경우 복제 방식을 적용하는 것으로 결정한다(S460). 데이터 저장 방식이 결정되면, 쓰기 요청된 데이터와 대응하는 데이터 저장 방식에 대한 정보를 포함하는 메타데이터를 생성한다(S470). 데이터 읽기 요청이 있는 경우에, 원본 데이터 및 복제된 데이터 중 어느 하나를 읽어 원본 데이터를 반환하기 위해, 결정된 데이터 저장 방식에 대한 정보를 메타데이터에 포함시킬 필요가 있다. 생성된 메타데이터를 메모리에 기록하고, 원본 데이터와 복제된 데이터를 플래시 메모리(200)에 기록한다(S480).On the other hand, if it is determined that the data chunk size is smaller than the logical page size as a result of comparing the size of the data chunk and the size of the logical page of the memory, it is determined to apply the copying method (S460). When the data storage method is determined, metadata including information on the data storage method corresponding to the data requested to be written is generated (S470). When there is a data read request, it is necessary to include information on the determined data storage method in the metadata in order to read either the original data or the duplicated data and return the original data. The generated metadata is recorded in the memory, and the original data and the copied data are recorded in the flash memory 200 (S480).

도 6을 참조하여, 논리적 페이지 크기가 4KB인 플래시 저장 장치에 3-way 복제 방식을 적용하여 8KB 크기의 데이터를 쓰는 경우를 예시로 설명한다. 도 6과 같은 플래시 저장 장치에 8KB 크기의 데이터 쓰기 요청이 있는 경우, 8KB 데이터에 소거 코딩 방식을 적용하면 분할된 원본 데이터 청크의 크기가 2KB이다. 데이터 청크 크기가 논리적 페이지 크기보다 작으므로, 쓰기 요청된 데이터의 데이터 저장 방식으로 복제 방식을 적용하는 것으로 결정한다. 결정된 데이터 저장 방식이 복제 방식인 경우, 원본 데이터 및 복제된 데이터의 위치 정보를 포함하는 메타데이터를 생성하고, 쓰기 요청된 데이터의 저장에 앞서 생성된 메타데이터를 메모리에 저장한다. 도면에서, 원본 데이터는 o, 복제된 데이터는 o'와 같이 표기하였다. 데이터 쓰기 과정은 페이지 단위로 이루어지기 때문에, 도면과 같이 4KB씩 나누어 메모리에 기록되며 각 a, b와 같이 표기하였고, 복제된 데이터 또한 페이지 단위로 나누어 기록되므로 a', b'와 같이 표기하였다. 원본 데이터와 복제된 데이터는 물리적으로 서로 다른 저장 공간에 기록되며, 이 경우 내부 단편화 문제는 발생하지 않는다. Referring to FIG. 6, a 3-way replication method is applied to a flash storage device having a logical page size of 4 KB to write data of 8 KB size. 6, when the erase coding scheme is applied to the 8 KB data, the size of the divided original data chunk is 2 KB. Since the data chunk size is smaller than the logical page size, it is determined that the replication method is applied to the data storage method of the write-requested data. When the determined data storage method is the replication method, metadata including the original data and the location information of the copied data is generated, and the generated metadata is stored in the memory before storing the requested data. In the figure, the original data is denoted by o and the replicated data is denoted by o '. Since the data writing process is performed page by page, as shown in the figure, the data is divided into 4 KB and recorded in the memory, and the data are written as a and b. The original data and the replicated data are physically recorded in different storage spaces, so that the internal fragmentation problem does not occur.

도 7은 본 발명의 실시예에 따른 데이터 손실 복원 방법을 이용한 플래시 저장 장치에서의 데이터 읽기 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a method of reading data in a flash storage device using a data loss recovery method according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 실시예에 따른 플래시 저장 장치가 호스트로부터 데이터 읽기 요청을 수신하면(S710), 저장 장치 컨트롤러(100)는 읽기 요청된 데이터의 메타데이터를 확인하여(S720) 데이터 저장 방식이 소거 코딩 방식인지 복제 방식인지 판단한다(S730). Referring to FIG. 7, when the flash storage device according to the embodiment of the present invention receives a data read request from the host (S710), the storage controller 100 checks metadata of the read requested data (S720) It is determined whether the storage scheme is an erasure coding scheme or a replication scheme (S730).

데이터 저장 방식이 소거 코딩 방식인 경우, 메타데이터에 포함된 원본 데이터 청크들의 위치 정보를 참조하여 해당 주소로부터 원본 데이터 청크들을 읽는다(S730). 원본 데이터 청크들 중 어느 하나 이상의 데이터 청크에 데이터 손실이 있는지 판단하고(S740), 손실이 있다고 판단되는 경우, 메타데이터에 포함된 패리티 청크의 위치 정보를 참조하여 해당 주소로부터 패리티 청크를 읽고, 이를 이용하여 원본 데이터를 복원한다(S750). If the data storage scheme is the erasure coding scheme, the original data chunks are read from the address by referring to the location information of the original data chunks included in the metadata (S730). If it is determined that there is a data loss in one or more data chunks of the original data chunks (S740), the parity chunk is read from the corresponding address by referring to the position information of the parity chunk included in the meta data, To restore the original data (S750).

또는, 데이터 저장 방식이 복제 방식인 경우, 메타데이터에 포함된 원본 데이터의 위치 정보를 참조하여 해당 주소로부터 원본 데이터를 읽거나 복제된 데이터의 위치 정보를 참조하여 복제된 데이터를 읽는다(S760).If the data storage method is the replication method, the original data is read from the address by referring to the location information of the original data included in the metadata, or the copied data is read with reference to the location information of the replicated data (S760).

데이터 저장 방식에 따라 서로 다른 방법을 이용하여 원본 데이터를 읽거나 복원하고, 호스트에 원본 데이터를 반환한다(S770).According to the data storage method, the original data is read or restored using different methods, and the original data is returned to the host (S770).

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

100: 저장 장치 컨트롤러
200: 플래시 메모리
100: Storage controller
200: flash memory

Claims (16)

호스트로부터 데이터 쓰기 요청을 수신하는 과정;
쓰기 요청된 데이터의 크기에 기반하여, 소거 코딩(Erasure Coding) 방식 및 복제(Replication) 방식 중 어느 하나의 데이터 저장 방식을 결정하는 과정;
상기 쓰기 요청된 데이터에 대한 정보를 포함하는 메타데이터를 생성하고, 생성된 메타데이터를 메모리에 기록하는 과정; 및
결정된 데이터 저장 방식에 따라 상기 쓰기 요청된 데이터를 메모리에 기록하는 과정
을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법.
Receiving a data write request from a host;
Determining a data storage method of either an erasure coding method or a replication method based on a size of data requested to be written;
Generating metadata including information on the write-requested data, and recording the generated metadata in a memory; And
And writing the requested data to the memory in accordance with the determined data storage mode
The method comprising the steps of:
제 1항에 있어서,
상기 데이터 저장 방식을 결정하는 과정은,
소거 코딩 방식을 적용함에 따라 분할되는 데이터 청크 크기와 상기 메모리의 논리 페이지 크기를 비교하는 과정을 포함하고,
상기 데이터 청크 크기가 상기 논리 페이지 크기보다 크거나 같은 경우 소거 코딩 방식으로 데이터 저장 방식을 결정하고, 상기 데이터 청크 크기가 상기 논리 페이지 크기보다 작은 경우 복제 방식으로 데이터 저장 방식을 결정하는 것을 특징으로 하는 플래시 저장 장치의 데이터 손실 복원 방법.
The method according to claim 1,
The method of claim 1,
And comparing the size of the data chunk to be divided with the logical page size of the memory by applying the erasure coding scheme,
Determining a data storage scheme using an erasure coding scheme when the data chunk size is equal to or greater than the logical page size and determining a data storage scheme using a replication scheme when the data chunk size is smaller than the logical page size, A method for restoring data loss in a flash storage device.
제 1항에 있어서,
상기 메타데이터를 메모리에 기록하는 과정은,
상기 쓰기 요청된 데이터에 대응하는 데이터 저장 방식에 대한 정보를 포함하는 메타데이터를 생성하는 것을 특징으로 하는 플래시 저장 장치의 데이터 손실 복원 방법.
The method according to claim 1,
Wherein the step of recording the metadata in a memory comprises:
And generating metadata including information on a data storage method corresponding to the write-requested data.
제 3항에 있어서,
상기 메타데이터를 메모리에 기록하는 과정은,
상기 결정된 데이터 저장 방식이 소거 코딩 방식인 경우 데이터 청크 크기 및 패리티 청크의 위치 정보를 포함하는 메타데이터를 생성하고, 상기 결정된 데이터 저장 방식이 복제 방식인 경우 복제된 데이터의 위치 정보를 포함하는 메타데이터를 생성하는 것을 특징으로 하는 플래시 저장 장치의 데이터 손실 복원 방법.
The method of claim 3,
Wherein the step of recording the metadata in a memory comprises:
Generating metadata including a data chunk size and position information of a parity chunk when the determined data storage scheme is an erasure coding scheme and generating metadata including location information of the replicated data when the determined data storage scheme is a replication scheme, Wherein the flash memory device is a flash memory device.
호스트로부터 데이터 읽기 요청을 수신하는 과정;
읽기 요청된 데이터의 메타데이터를 참조하여, 상기 읽기 요청된 데이터의 데이터 저장 방식을 확인하는 과정;
상기 데이터 저장 방식이 소거 코딩 방식인 경우, 메모리로부터 복수의 원본 데이터 청크를 읽어들이는 과정; 및
상기 데이터 저장 방식이 복제 방식인 경우, 메모리로부터 원본 데이터 및 복제된 데이터 중 어느 하나를 읽어들이는 과정
을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법.
Receiving a data read request from a host;
Confirming a data storage mode of the read-requested data by referring to metadata of the read-requested data;
Reading a plurality of original data chunks from a memory when the data storage method is an erasure coding method; And
When the data storage method is a replication method, a process of reading either original data or copied data from the memory
The method comprising the steps of:
제 5항에 있어서,
상기 복수의 원본 데이터 청크 중 어느 하나 이상에 데이터 손실이 발생한 경우, 상기 메모리로부터 패리티 청크를 읽어들이는 과정; 및
상기 패리티 청크를 이용하여 손실이 발생한 데이터를 복원하는 과정
을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법.
6. The method of claim 5,
Reading parity chunks from the memory when data loss occurs in at least one of the plurality of original data chunks; And
A process of restoring lost data using the parity chunk
The method comprising the steps of:
호스트로부터 데이터 쓰기 요청을 수신하면, 쓰기 요청된 데이터의 크기에 기반하여 소거 코딩 방식 및 복제 방식 중 어느 하나의 데이터 저장 방식을 결정하고, 상기 쓰기 요청된 데이터에 대한 정보를 포함하는 메타데이터를 생성하여 메모리에 기록하고, 결정된 데이터 저장 방식에 따라 상기 쓰기 요청된 데이터를 메모리에 기록하는 과정; 및
호스트로부터 데이터 읽기 요청을 수신하면, 상기 요청된 데이터의 메타데이터를 참조하여 상기 읽기 요청된 데이터의 데이터 저장 방식을 확인하고, 상기 데이터 저장 방식이 소거 코딩 방식인 경우 메모리로부터 복수의 원본 데이터 청크를 읽어들이고, 상기 데이터 저장 방식이 복제 방식인 경우 메모리로부터 원본 데이터 및 복제된 데이터 중 어느 하나를 읽어들이는 과정
을 포함하는 플래시 저장 장치의 데이터 손실 복원 방법.
Upon receiving the data write request from the host, the data storage method of either the erase coding method or the replication method is determined based on the size of the data requested to be written, and the metadata including the information about the write requested data is generated And writing the requested data into the memory according to the determined data storage mode; And
The method comprising: receiving a data read request from a host, checking a data storage mode of the read-requested data by referring to the metadata of the requested data; if the data storage scheme is an erasure-coding scheme, And reading the original data and the duplicated data from the memory when the data storage method is a duplication method
The method comprising the steps of:
제 7항에 있어서,
상기 쓰기 요청된 데이터를 메모리에 기록하는 과정은,
소거 코딩 방식을 적용함에 따라 분할되는 데이터 청크 크기와 상기 메모리의 논리 페이지 크기를 비교하여, 상기 데이터 청크 크기가 상기 논리 페이지 크기보다 크거나 같은 경우 소거 코딩 방식으로 데이터 저장 방식을 결정하고, 상기 데이터 청크 크기가 상기 논리 페이지 크기보다 작은 경우 복제 방식으로 데이터 저장 방식을 결정하는 것을 특징으로 하는 플래시 저장 장치의 데이터 손실 복원 방법.
8. The method of claim 7,
And writing the requested data to the memory,
The data chunk size of the memory is compared with the logical page size of the memory by applying the erasure coding scheme and if the data chunk size is equal to or greater than the logical page size, And if the chunk size is smaller than the logical page size, the data storage method is determined by the replication method.
제 7항에 있어서,
상기 복수의 원본 데이터 청크 중 어느 하나 이상에 데이터 손실이 발생한 경우, 상기 메모리로부터 패리티 청크를 읽어들이고, 상기 패리티 청크를 이용하여 손실이 발생한 데이터를 복원하는 것을 특징으로 하는 플래시 저장 장치의 데이터 손실 복원 방법.
8. The method of claim 7,
Wherein when a data loss occurs in at least one of the plurality of original data chunks, parity chunks are read from the memory, and the lost data is recovered using the parity chunk. Way.
호스트로부터 데이터 쓰기 요청을 수신하고, 쓰기 요청된 데이터의 크기에 기반하여, 소거 코딩 방식 및 복제 방식 중 어느 하나의 데이터 저장 방식을 결정하는 저장 장치 컨트롤러; 및
상기 쓰기 요청된 데이터에 대한 정보를 포함하는 메타데이터가 기록되고, 결정된 데이터 저장 방식에 따라 상기 쓰기 요청된 데이터가 기록되는 플래시 메모리
를 포함하는 플래시 저장 장치.
A storage controller that receives a data write request from a host and determines a data storage method of either an erase coding method or a replication method based on a size of data requested to be written; And
Wherein the write request data is recorded in the flash memory according to a determined data storage format,
/ RTI >
제 10항에 있어서,
상기 저장 장치 컨트롤러는,
소거 코딩 방식을 적용함에 따라 분할되는 데이터 청크 크기와 플래시 저장 장치의 논리 페이지 크기를 비교하여, 상기 데이터 청크 크기가 상기 논리 페이지 크기보다 크거나 같은 경우 소거 코딩 방식으로 데이터 저장 방식을 결정하고, 상기 데이터 청크 크기가 상기 논리 페이지 크기보다 작은 경우 복제 방식으로 데이터 저장 방식을 결정하는 것을 특징으로 하는 플래시 저장 장치.
11. The method of claim 10,
The storage controller comprising:
The data chunk size of the flash storage device is compared with the logical page size of the flash storage device when the erasure coding method is applied and the data storage method is determined by the erasure coding method when the data chunk size is equal to or greater than the logical page size, Wherein the data storage method is determined by a replication method when the data chunk size is smaller than the logical page size.
제 10항에 있어서,
상기 메타데이터는,
상기 쓰기 요청된 데이터와 대응하는 데이터 저장 방식에 대한 정보를 포함하는 것을 특징으로 하는 플래시 저장 장치.
11. The method of claim 10,
The metadata includes:
And information on a data storage mode corresponding to the write-requested data.
제 12항에 있어서,
상기 메타데이터는,
결정된 데이터 저장 방식이 소거 코딩 방식인 경우 데이터 청크 크기 및 패리티 청크의 위치 정보를 포함하고, 상기 결정된 데이터 저장 방식이 복제 방식인 경우 복제된 데이터의 위치 정보를 포함하는 것을 특징으로 하는 플래시 저장 장치.
13. The method of claim 12,
The metadata includes:
And location information of a chunk of data when the determined data storage scheme is an erasure coding scheme, and location information of the replicated data when the determined data storage scheme is a replication scheme.
제 10항에 있어서,
상기 저장 장치 컨트롤러는,
호스트로부터 데이터 읽기 요청을 수신하면, 읽기 요청된 데이터의 메타데이터를 참조하여 상기 읽기 요청된 데이터의 데이터 저장 방식을 확인하고, 상기 플래시 메모리로부터 데이터를 읽어들이는 것을 특징으로 하는 플래시 저장 장치.
11. The method of claim 10,
The storage controller comprising:
Wherein the flash memory device reads data from the flash memory by checking the data storage method of the read requested data by referring to the meta data of the read requested data when receiving a data read request from the host.
제 14항에 있어서,
상기 저장 장치 컨트롤러는,
데이터 저장 방식이 소거 코딩 방식인 경우 상기 플래시 메모리로부터 복수의 원본 데이터 청크를 읽어들이고, 상기 데이터 저장 방식이 복제 방식인 경우 상기 플래시 메모리로부터 원본 데이터 또는 복제된 데이터 중 어느 하나를 읽어들이는 것을 특징으로 하는 플래시 저장 장치.
15. The method of claim 14,
The storage controller comprising:
Wherein the data storage method reads a plurality of original data chunks from the flash memory when the data storage method is an erasure coding method and reads either original data or copied data from the flash memory when the data storage method is a replication method .
제 15항에 있어서,
상기 저장 장치 컨트롤러는,
상기 복수의 원본 데이터 청크 중 어느 하나 이상에 데이터 손실이 발생한 경우, 상기 플래시 메모리로부터 패리티 청크를 읽어들이고, 상기 패리티 청크를 이용하여 손실이 발생한 데이터를 복원하는 것을 특징으로 하는 플래시 저장 장치.
16. The method of claim 15,
The storage controller comprising:
Reads a parity chunk from the flash memory when data loss occurs in at least one of the plurality of original data chunks, and restores the lost data using the parity chunk.
KR1020170114138A 2017-09-06 2017-09-06 Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding KR102356307B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170114138A KR102356307B1 (en) 2017-09-06 2017-09-06 Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170114138A KR102356307B1 (en) 2017-09-06 2017-09-06 Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding

Publications (2)

Publication Number Publication Date
KR20190027279A true KR20190027279A (en) 2019-03-14
KR102356307B1 KR102356307B1 (en) 2022-01-26

Family

ID=65759808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170114138A KR102356307B1 (en) 2017-09-06 2017-09-06 Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding

Country Status (1)

Country Link
KR (1) KR102356307B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040085422A (en) * 2003-03-31 2004-10-08 삼성전자주식회사 Access apparatus and method using flash memory
KR20120027786A (en) * 2010-09-13 2012-03-22 에스케이 텔레콤주식회사 Meta-data server, data server, replica server, asymmetric distributed file system, and data processing method therefor
KR101265410B1 (en) * 2010-02-12 2013-05-16 가부시끼가이샤 도시바 Semiconductor memory device
KR20140026933A (en) * 2012-08-24 2014-03-06 삼성전자주식회사 Storage device based on a flash memory and method for allocatting write memory block of memory controller controlling a flash memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040085422A (en) * 2003-03-31 2004-10-08 삼성전자주식회사 Access apparatus and method using flash memory
KR101265410B1 (en) * 2010-02-12 2013-05-16 가부시끼가이샤 도시바 Semiconductor memory device
KR20120027786A (en) * 2010-09-13 2012-03-22 에스케이 텔레콤주식회사 Meta-data server, data server, replica server, asymmetric distributed file system, and data processing method therefor
KR20140026933A (en) * 2012-08-24 2014-03-06 삼성전자주식회사 Storage device based on a flash memory and method for allocatting write memory block of memory controller controlling a flash memory

Also Published As

Publication number Publication date
KR102356307B1 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
US8788876B2 (en) Stripe-based memory operation
US7984325B2 (en) Storage control device, data recovery device, and storage system
KR101491943B1 (en) Transaction log recovery
KR101392701B1 (en) Embedded mapping information for memory devices
US8799745B2 (en) Storage control apparatus and error correction method
US11531590B2 (en) Method and system for host-assisted data recovery assurance for data center storage device architectures
JP2008204041A (en) Storage device and data arrangement control method
KR20120060236A (en) Power interrupt management
US10019315B2 (en) Control device for a storage apparatus, system, and method of controlling a storage apparatus
US20230082008A1 (en) Parity protection in non-volatile memory
US11704196B2 (en) Reduced parity data management
US10574270B1 (en) Sector management in drives having multiple modulation coding
CN113838510A (en) Fast replication via controller
TW201626230A (en) Method for writing into and reading from bad pages of a flash memory
JP5908106B2 (en) Device and method for storing validity mask and operating device
KR102356307B1 (en) Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding
TW202145243A (en) Data storage device and data processing method
US10642816B2 (en) Protection sector and database used to validate version information of user data
US11995224B2 (en) Data storage device and data processing method
CN116909802A (en) Dynamic RAIN for partitioned storage systems
CN113590038A (en) Solid state disk and management method thereof

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant