KR20120094782A - Storage system with solid state disk - Google Patents
Storage system with solid state disk Download PDFInfo
- Publication number
- KR20120094782A KR20120094782A KR1020110014255A KR20110014255A KR20120094782A KR 20120094782 A KR20120094782 A KR 20120094782A KR 1020110014255 A KR1020110014255 A KR 1020110014255A KR 20110014255 A KR20110014255 A KR 20110014255A KR 20120094782 A KR20120094782 A KR 20120094782A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- disk
- ssd
- code
- parity
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 신뢰성 및 입출력 성능 개선을 위한 소거 코드(erasure code)를 적용하는 SSD 기반 저장장치 시스템에 관한 것이다.The present invention relates to an SSD-based storage system applying erasure code for improving reliability and input / output performance.
일반적으로, 대용량 서버급 환경에서는 여러 개의 디스크를 배열 구조로 연결한 RAID(Redundant Array of Independent Disks) 시스템과 같은 저장장치 시스템(storage System)이 사용되고 있다. RAID 시스템은 여러 개의 디스크들을 배열 구조로 연결하여 액세스의 병렬성을 높이면서 사용자에게 하나의 디스크로 보이게 하는 기술이다.In general, a storage system such as a redundant array of independent disks (RAID) system in which a plurality of disks are connected in an array structure is used in a large server-class environment. RAID system is a technology that connects several disks in an array structure and makes them appear to the user as one disk while increasing parallelism of access.
이러한 RAID 시스템은 다음과 같은 세 가지 작업을 수행할 수 있다. 첫째, 여러 디스크가 동시에 동작해 단일 데이터 흐름을 공급하거나 받아들이게 허용하는 방식으로 다수의 디스크에 존재하는 스트라이핑(striping) 기법으로 성능을 향상시킬 수 있다. 둘째, 다수의 디스크에 존재하는 데이터를 복사하는 미러링(mirroring) 기법이 있어 단일 디스크의 파손과 관련된 위험을 줄일 수 있다. 셋째, 파손된 단일 디스크의 데이터를 복구하기 위한 패리티(parity) 기법이 존재한다. 패리티 기법을 수행하는 경우 적용하는 소거 코드(Erasure code)에 따라 저장장치의 성능이 변경되므로 소거 코드가 저장장치의 성능에 미치는 영향을 고려해야 한다.Such a RAID system can do three things: First, striping techniques on multiple disks can improve performance in such a way that multiple disks can operate simultaneously to supply or accept a single data flow. Second, there is a mirroring technique for copying data existing on multiple disks, thereby reducing the risk associated with the destruction of a single disk. Third, there is a parity technique for recovering data of a single damaged disk. When the parity technique is performed, the performance of the storage device is changed according to the erase code applied. Therefore, the effect of the erase code on the storage device should be considered.
RAID 시스템에 주로 하드디스크를 사용하였으나, 하드디스크는 기계적인 동작이 추가적으로 발생하기 때문에 디스크의 수가 증가할수록 전력소모가 증가하게 될 뿐만 아니라 외부의 충격으로 인해 쉽게 데이터가 손실될 가능성이 높다. 또한, 하드디스크는 소음이 많고 발열이 쉽게 발생하는 단점을 가지고 있다. Although hard disks are mainly used in RAID systems, hard disks have additional mechanical operations, which increases power consumption as the number of disks increases, and data loss is more likely due to external shocks. In addition, the hard disk has a disadvantage that a lot of noise and heat generation easily.
최근에는 하드디스크와 달리 기계적인 동작이 없고 전력소모가 낮으며 외부의 충격에 강한 반도체 기억장치(Solid State Disk: SSD)가 사용되고 있다. SSD 는 다수의 낸드 플래시 메모리(NAND Flash Memory)로 구성되어 있으며, 다음과 같은 두 가지의 특성들을 가진다. 첫째, SSD 는 마모도(Wear leveling)라고 불리는 블록 갱신 횟수 제한을 고려한다. 싱글 레벨 셀(Single Level Cell) 에서는 약 10만 번 그리고 멀티 레벨 셀(Multi Level Cell) 에서는 약 1만 번 정도의 수명을 가지고 있다. SSD 는 멀티 레벨 셀로 구성되어 있기 때문에 싱글 레벨 셀 보다 수명의 제한이 낮다. 둘째, 기존의 하드디스크와 달리 SSD 는 읽기/쓰기/삭제 3개의 연산의 동작으로 구분 할 수 있으며, 읽기/쓰기 연산은 페이지(512B~4KB) 단위로 수행되고 삭제 연산은 블록(16KB~256KB) 단위로 수행된다.Recently, unlike a hard disk, a solid state disk (SSD), which has no mechanical operation, low power consumption, and strong external shock, has been used. SSD is composed of a number of NAND Flash memory, and has the following two characteristics. First, SSDs consider a limit on the number of block updates called wear leveling. It has a lifetime of about 100,000 times in a single level cell and about 10,000 times in a multi level cell. SSDs have a lower lifetime than single-level cells because they consist of multi-level cells. Second, unlike conventional hard disks, SSD can be divided into three operations: read / write / delete, read / write is performed in units of pages (512B ~ 4KB), and delete operations are blocks (16KB ~ 256KB). Performed in units.
상기한 바와 같이 (590)SSD는 고성능 및 저전력의 장점을 가지고 있어 휴대기기에서부터 엔터프라이즈 서버와 같은 고성능 시스템에 이르기까지 하드디스크를 대체할 저장장치로 각광받고 있다.As described above, the (590) SSD has the advantages of high performance and low power, and thus has been in the spotlight as a storage device to replace a hard disk, ranging from a portable device to a high performance system such as an enterprise server.
기존의 대용량 저장장치 시스템에서 사용되는 패리티 기반의 하드디스크 RAID 시스템과 SSD의 수명 증가를 위해 연구된 Diff-RAID(Differential RAID) 시스템에 대해 설명한다.A parity-based hard disk RAID system used in the existing mass storage system and a Diff-RAID (Differential RAID) system studied for increasing the lifespan of an SSD will be described.
하드디스크 기반의 대표적인 패리티 RAID 시스템으로는 도 1과 같이 패리티 정보를 그룹내 모든 디스크들로 분산 저장하는 방식을 이용하는 RAID-5시스템과 2차원 패리티 방식을 사용하는 RAID-6시스템이 있다.As a representative parity RAID system based on a hard disk, as shown in FIG. 1, there are a RAID-5 system using a method of distributing and storing parity information among all disks in a group and a RAID-6 system using a two-dimensional parity method.
RAID-5 시스템은 최소 3 개 이상의 디스크가 있어야만 구성이 가능하며, 보통 5 개 이상의 디스크로 구성된다. 또한 디스크에 오류가 발생했을 때에는 패리티(Parity)를 이용해서 데이터를 복구할 수 있기 때문에 패리티 RAID 시스템이라고도 불린다.A RAID-5 system can only be configured with at least three disks, usually five or more disks. It is also called a parity RAID system, because when a disk fails, data can be recovered using parity.
RAID-5 시스템과 같은 저장장치 시스템은 서로 독립적으로 동작하므로, 여러 개의 소규모 어플리케이션 요청 사항을 동시에 처리할 수 있으며, 대용량 입/출력 요청을 처리해야 하는 경우에는 모든 디스크가 활성화 되어 하나의 작업을 처리할 수 있다.Storage systems, such as RAID-5 systems, operate independently of each other, so they can handle multiple small application requests simultaneously, and when a large input / output request needs to be processed, all disks are activated to handle one operation. can do.
그러나, 상기와 같이 하드디스크 기반으로 구성된 RAID 시스템은 하드디스크의 기계적 특성 때문에 소모되는 전력이 많이 필요하며, 디스크의 공간이 협조해지는 경우 성능이 저하되는 문제점을 갖는다.However, a RAID system based on a hard disk as described above requires a lot of power consumed due to the mechanical characteristics of the hard disk, and has a problem in that performance is degraded when space of the disk is cooperative.
RAID-6 시스템은 2 개의 패리티를 사용함으로써 공간 효율은 RAID-5 보다 떨어지지만, 2 개의 디스크가 동시에 고장 나도 데이터에는 이상이 없도록 하는 방식이다. 따라서 RAID-6 시스템은 최소 4 개의 디스크로 도2와 같이 구성된다.The RAID-6 system uses two parities so that space efficiency is lower than RAID-5. However, even if two disks fail at the same time, the data is good. Therefore, the RAID-6 system is composed of at least four disks as shown in FIG.
따라서 RAID-6 시스템의 장점으로 RAID-5 시스템 보다 데이터에 대한 신뢰도는 좀 더 높아지는 효과를 갖는다. 하지만 RAID-6 시스템의 단점으로 RAID-5 시스템은 패리티를 1 개만 생성하면 되지만, RAID-6 시스템은 패리티를 2 개를 생성해야 하므로, 내부적으로 소거 코드를 사용하여 인코딩 할 때, 쓰기(Write) 연산이 복잡해 RAID-5 보다 성능이 저하된다.Therefore, the advantage of RAID-6 system is that the data reliability is higher than the RAID-5 system. The disadvantage of RAID-6 systems, however, is that RAID-5 systems only need to generate one parity, while RAID-6 systems only need to generate two parities. Complicated computations degrade performance over RAID-5.
SSD는 삭제 연산이 10,000 번으로 제한되어 있다. 따라서 SSD의 수명 저하로 인한 데이터 손실 및 디스크 오류에 치명적인 단점을 가지게 된다. 최근에는 SSD 기반 RAID 시스템의 연구로 SSD의 수명제한을 고려한 Diff-RAID(Differential RAID) 방식이 연구되고 있다.SSDs are limited to 10,000 erase operations. As a result, data loss and disk failure due to the deterioration of SSD's lifespan are fatal. Recently, the research of SSD-based RAID system has been studied the Diff-RAID (Differential RAID) method considering the life of the SSD.
도 3은 Diff-RAID시스템의 패리티 분산 방법을 도시한다. 4개의 SSD(SSD0~SSD3) 로 RAID 시스템이 구성 되어 있고, 각각의 SSD로 70 %, 10 %, 10 %, 10 %의 비율로 패리티 분산(Parity Distribution)되어 저장된다. SSD0의 패리티 분산률이 70%로 가장 높기 때문에 SSD0로 쓰기/삭제 연산이 집중된다. 따라서, SSD0가 나머지 SSD (SSD1~SSD3)보다 낮은 수명률을 보이게 된다. 3 illustrates a parity distribution method of a Diff-RAID system. RAID system consists of four SSDs (SSD0 ~ SSD3), and each SSD is stored with parity distribution at a rate of 70%, 10%, 10%, and 10%. Since SSD0 has the highest parity dispersion rate of 70%, write / erase operations are concentrated on SSD0. Therefore, SSD0 has a lower life rate than the remaining SSDs SSD1 to SSD3.
그리고, SSD0의 수명저하로 인해 디스크에 오류가 발생하면 하나의 SSD(SSD4)를 추가하여 기존의 RAID 시스템을 계속 유지한다. SSD1은 SSD0 대신 패리티 분산률이 10%에서 70%로 증가하게 되고 SSD1로 데이터의 쓰기/삭제 연산이 집중되는 시스템을 보여주게 된다. If the disk fails due to the reduced life of SSD0, one SSD (SSD4) is added to maintain the existing RAID system. SSD1 will show a system where the parity dispersion rate will increase from 10% to 70% instead of SSD0, and the write / erase operations of data will be concentrated on SSD1.
상기와 같은 Diff-RAID 시스템은 디스크의 수명을 고려한 것으로, SSD 기반의 RAID 시스템의 수명이 효율적으로 관리되지만 소거 코드의 연산이 SSD에 미치는 영향에 대해서는 고려되지 않았다.The above-described Diff-RAID system considers the lifespan of a disk. The Diff-RAID system manages the lifespan of an SSD-based RAID system efficiently, but does not consider the effect of the erase code operation on the SSD.
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 본 발명은 소거 코드를 파일 시스템 레벨이나 디바이스 드라이버 레벨에 적용하는 SSD 기반 저장장치 시스템을 제공하기 위한 것이다.The present invention has been made to solve the above problems, the present invention is to provide an SSD-based storage system that applies the erase code to the file system level or device driver level.
또한, 본 발명은 갱신 횟수가 잦은 패리티 블록을 하나의 디스크로 집중되게 저장하는 데이터 할당 기법을 적용하여 디스크의 수명 저하를 최소화하는 SSD 기반 저장장치 시스템을 제공하기 위한 것이다.In addition, the present invention is to provide an SSD-based storage system that minimizes the deterioration of the life of the disk by applying a data allocation technique to centrally store the parity block with a frequent update to a single disk.
상기한 과제를 실현하기 위한 본 발명의 일 예와 관련된 SSD 기반 저장장치 시스템은 다수의 디스크가 배열로 연결되어 구성되는 디스크 배열과, 상기 다수의 디스크로의 데이터 입출력 요구에 따라 소거 코드를 이용하여 데이터를 인코딩하여 상기 다수의 디스크에 분산하여 저장하는 중앙 제어부를 포함한다.In the SSD-based storage system according to an embodiment of the present invention for realizing the above object is a disk array consisting of a plurality of disks connected in an array, and using an erase code according to the data input and output request to the plurality of disks And a central control unit for encoding and distributing data on the plurality of disks.
또한, 상기 디스크는 SSD(Solid State Device)와 같은 반도체 저장장치로 구현된다.In addition, the disk is implemented as a semiconductor storage device such as a solid state device (SSD).
또한, 상기 중앙 제어부는 소거 코드를 이용하여 입력 데이터를 데이터 파일과 패리티 파일로 분할하는 파일 시스템과, 상기 파일 시스템과 연결되며 상기 분할된 파일을 수신하는 가상 파일 시스템과, 상기 가상 파일 시스템을 거쳐 수신되는 분할된 파일을 수신하는 디바이스 드라이버와, 상기 분할된 파일들의 메타데이터 정보에 근거하여 데이터 영역과 패리티 영역으로 분류하여 상기 디스크 배열에 저장하는 블록 할당 관리부를 포함한다.The central controller may further include a file system for dividing input data into a data file and a parity file using an erase code, a virtual file system connected to the file system and receiving the divided file, and a virtual file system. A device driver for receiving the received divided file, and a block allocation management unit for classifying into a data area and a parity area based on the metadata information of the divided files, and storing them in the disk array.
또한, 상기 중앙 제어부는 요청에 따라 데이터를 수신하는 가상 파일 시스템과, 상기 가상 파일 시스템으로부터 전송되는 데이터를 소거 코드를 통해 인코딩하는 디바이스 드라이버와, 상기 인코딩된 데이터를 데이터 영역과 패리티 영역으로 분할하여 상기 디스크 배열에 순차적으로 저장하는 블록 할당 관리부를 포함한다.The central control unit may further include: a virtual file system for receiving data on request; a device driver for encoding data transmitted from the virtual file system through an erase code; and dividing the encoded data into a data area and a parity area. And a block allocation management unit to sequentially store the disk array.
상기와 같이 구성되는 본 발명의 적어도 하나의 실시 예에 관련된 본 발명은 하드디스크를 SSD(solid state disk)로 대체하고 소거 코드를 파일 시스템 레벨 또는 디바이스 드라이버 레벨에 적용하므로, 저장장치 시스템의 입출력 성능을 향상시킬 수 있다.The present invention relates to at least one embodiment of the present invention, which is configured as described above, replaces a hard disk with a solid state disk (SSD) and applies an erase code to a file system level or a device driver level, thereby providing an input / output performance of a storage system. Can improve.
또한, 본 발명은 패리티 블록을 하나의 디스크로 집중 저장되도록 데이터 할당을 수행하므로, 디스크의 수명저하를 개선하여 신뢰성을 향상시킬 수 있다.In addition, since the present invention performs data allocation so that the parity block is centrally stored in one disk, reliability of the disk can be improved by reducing the lifespan of the disk.
도 1은 일반적인 RAID-5 시스템의 구성.
도 2는 종래의 하드디스크 기반의 RAID-6 시스템의 구성.
도 3은 종래의 Differential RAID의 패리티 분산에 따른 수명률을 도시한 도표.
도 4는 본 발명과 관련된 리드-솔로몬 코드가 적용된 SSD기반의 RAID-6 시스템.
도 5는 본 발명과 관련된 EVENODD 코드가 적용된 SSD기반의 RAID-6 시스템.
도 6는 본 발명과 관련된 Liberation 코드가 적용된 SSD기반의 RAID-6 시스템.
도 7는 본 발명의 일 실시 예와 관련된 SSD 기반 저장장치 시스템의 구조를 도시한 블록도.
도 8은 본 발명의 다른 실시 예와 관련된 SSD 기반 저장장치 시스템의 구조를 도시한 블록도.1 is a configuration of a typical RAID-5 system.
2 is a configuration of a conventional hard disk-based RAID-6 system.
3 is a chart showing the life rate according to the parity distribution of the conventional differential RAID.
4 is an SSD-based RAID-6 system to which the Reed-Solomon code according to the present invention is applied.
5 is an SSD-based RAID-6 system to which the EVENODD code according to the present invention is applied.
6 is a SSD-based RAID-6 system to which the Liberation code according to the present invention is applied.
7 is a block diagram illustrating a structure of an SSD-based storage system according to an embodiment of the present invention.
8 is a block diagram illustrating a structure of an SSD-based storage system according to another embodiment of the present invention.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예들을 좀 더 상세하게 설명한다.Hereinafter, exemplary embodiments will be described in more detail with reference to the accompanying drawings.
본 발명은 대용량 저장장치 시스템으로 사용되는 기존의 하드디스크 기반의 RAID(Redundant Array of Independent Disks) 시스템에서 하드디스크를 SSD(solid state device)로 대체한 RAID 시스템을 제안한다. 그리고, 본 발명에서 사용되는 RAID 시스템은 2 개의 패리티(parity)를 사용하는 RAID-6 시스템이고, 이 RAID-6 시스템에 소거 코드(Erasure code)를 적용한다.The present invention proposes a RAID system in which a hard disk is replaced with a solid state device (SSD) in a conventional hard disk based RAID (Redundant Array of Independent Disks) system used as a mass storage system. In addition, the RAID system used in the present invention is a RAID-6 system using two parity, and an erasure code is applied to the RAID-6 system.
소거 코드들은 인코딩 기법에 따라 연산 방법이 달라지기 때문에 SSD에 미치는 영향에 따라 성능 및 전력소모가 달라질 수 있다. 따라서, SSD 환경에 적합한 소거 코드를 사용해야 한다.Since erasure codes vary depending on the encoding method, performance and power consumption may vary depending on the impact on the SSD. Therefore, an erase code suitable for the SSD environment should be used.
SSD 환경에 적용 가능한 소거 코드는 다음과 같다.The erase codes applicable to the SSD environment are as follows.
첫째, 리드-솔로몬(Reed-Solomon) 코드는 가장 강력하고 보편적인 코딩 기법이다. 리드-솔로몬 코딩 기법은 여러 개의 오류를 복잡한 매트릭스 곱으로 복원 할 수 있다. 도 4에 도시된 바와 같이, 분산 매트릭스 B는 매트릭스 I와 하나의 매트릭스로 구성되어 있고 데이터 D와의 곱셈 연산으로 데이터와 코딩 정보를 생성할 수 있다. First, Reed-Solomon code is the most powerful and universal coding technique. Reed-Solomon coding techniques can recover multiple errors into complex matrix products. As shown in FIG. 4, the dispersion matrix B is composed of a matrix I and one matrix, and may generate data and coding information by a multiplication operation with the data D.
하지만 분산 매트릭스 기반의 리드-솔로몬 코드 연산은 계산하는데 많은 비용을 필요로 한다. 따라서 SSD 기반 환경에서는 비트 갱신 횟수가 증가함에 따라 SSD 마모도에 미치는 영향이 높아져 시스템의 전체적인 성능이 저하 될 수 있다. However, Reed-Solomon code operations based on distributed matrices are expensive to compute. Therefore, in the SSD-based environment, as the number of bit updates increases, the impact on SSD wear may increase, thereby reducing the overall performance of the system.
둘째, EVENODD 코드 기법은 도 5에 도시된 바와 같이 독립적인 두 개의 패리티 열을 가지고 있으며, 두 개의 패리티 열은 각각 데이터들의 체크섬으로 계산 할 수 있다. Second, the EVENODD code scheme has two independent parity columns as shown in FIG. 5, and the two parity columns can be calculated as checksums of data, respectively.
첫 번째 패리티(C0,0?C0,3)는 디스크 행렬의 각 행을 모두 XOR 한 값이며 다음과 같은 식으로 표현 할 수 있다. 식 1 를 살펴보면, j는 열을 의미하며 모든 열의 XOR 계산 된다.
The first parity (C 0,0 ? C 0,3 ) is a value obtained by XORing each row of the disk matrix and can be expressed as the following equation. Looking at
두 번째 패리티는 EVENODD 코드의 특수한 대각 패턴과 신드롬(Syndrome)을 함께 XOR 연산하여 계산 된 결과로 식 2 과 같이 표현 할 수 있다. The second parity is the result of XOR operation of the special diagonal pattern of the EVENODD code and Syndrome together, which can be expressed as
위와 같은 계산방법으로 EVENODD 코드가 SSD 에 미치는 영향은 단순한 XOR 연산으로 리드-솔로몬 코드보다 연산이 단순하기 때문에 SSD 수명저하에 미치는 영향이 적을 것이다. With the above calculation method, the effect of EVENODD code on SSD is simple XOR operation and the operation is simpler than Reed-Solomon code.
셋째, Liberation 코드 기법은 리드-솔로몬 코드와 매우 유사하게 계산 되며, 리드-솔로몬 코드에서 사용되는 분산 매트릭스와 달리 이진 비트 매트릭스로 분할하여 데이터와 결합하는 코딩 기법을 사용한다. Third, the Liberation code technique is calculated very similarly to the Reed-Solomon code. Unlike the dispersion matrix used in the Reed-Solomon code, the Liberation code technique uses a coding technique that divides the binary bit matrix into data.
일반적으로 Liberation 코드는 도 6과 같이 k개의 데이터 디바이스와 m개의 코딩 디바이스, 그리고 각각의 w로 고정된 비트로 구성된다. 또한 모든 요소들이 바이너리(binary)로 구성되어 있기 때문에 BDM(Binary Distribution Matrix)이라 불리며, 리드-솔로몬 코딩 보다 빠른 연산이 가능하다. In general, the Liberation code is composed of k data devices, m coding devices, and bits fixed to each w as shown in FIG. Also, because all elements are composed of binary, it is called BDM (Binary Distribution Matrix), and it can operate faster than Reed-Solomon coding.
Liberation 코드는 리드-솔로몬 코드와 연산 방법이 매우 유사하지만, 이진 매트릭스를 사용하여 계산되기 때문에 계산 복잡도가 낮으며 빠른 연산을 할 수 있다. 따라서 SSD 기반 환경에 적용 하였을 때 리드-솔로몬 보다 낮은 비트 갱신 횟수로 인해 SSD 마모도에 미치는 영향과 SSD 수명저하에 미치는 영향이 적다는 특징을 가지고 있다.
Liberation code is very similar to Reed-Solomon code, but computed using binary matrices, resulting in low computational complexity and fast operation. Therefore, when applied to SSD-based environment, it has less effect on SSD wear and SSD lifespan due to lower bit update times than Reed-Solomon.
도 7는 본 발명의 일 실시 예와 관련된 SSD 기반 저장장치 시스템의 구조를 도시한 블록도이다. 본 실시 예는 소거 코드(Erasure code)를 파일 시스템에 적용한 경우 쓰기 동작을 수행하는 것을 예로 들어 설명한다.7 is a block diagram illustrating a structure of an SSD-based storage system according to an embodiment of the present invention. In the present embodiment, a write operation is performed when an erasure code is applied to a file system.
SSD 기반 저장장치 시스템(100)은 중앙 제어부(110)와 디스크 배열(disk array)(120)를 포함한다.The SSD-based
중앙 제어부(110)는 저장장치 시스템에서 외부입력에 의해 시스템 호출이 요청되거나 하드웨어로부터 인터럽트가 요청되면 그 요청에 대응하는 처리를 수행한다. 그리고, 중앙 제어부(110)는 디스크 배열(120)을 구성하는 다수의 디스크들로 데이터를 입출력하는 경우 소거 코드를 이용하여 데이터를 인코딩(encoding)하거나 디코딩(decoding)한다.The
중앙 제어부(110)는 파일 시스템(111)과, 가상 파일 시스템(Virtual File System: VFS)(112)와 디바이스 드라이버(device driver)(113)과, 블록 할당 관리부(114)를 포함한다.The
파일 시스템(111)은 파일의 생성 및 접근 제어, 디렉토리 관리 등을 서비스한다. 파일 시스템(111)은 쓰기 요청이 수신되면 하나의 데이터를 소거 코드를 이용하여 데이터 파일(파일0~파일3)과 패리티(parity) 파일(파일p, 파일q)로 분할한다. 다시 말해서, 파일 시스템(111)은 소거 코드를 통해 데이터를 인코딩하여 파일 단위로 생성한다.The file system 111 services file creation and access control, directory management, and the like. When the write request is received, the file system 111 divides one data into data files (files 0 to 3) and parity files (files p and file q) by using an erase code. In other words, the file system 111 encodes data through an erase code to generate the file unit.
가상 파일 시스템(112)은 사용자로부터 특정 이벤트가 들어오면 파일시스템에 대한 인터페이스를 제공하는 역할을 한다. 가상 파일 시스템(112)는 상기 분할된 파일들을 디바이스 드라이버(113)로 전송한다.The
디바이스 드라이버(113)은 디스크, 터미널, 네트워크 카드 등의 주변 장치를 구동하는 드라이버들로 구성된다. 디바이스 드라이버(113)은 디스크 배열(120)로 데이터 입출력을 제어하며, 상기 가상 파일 시스템(112)을 거쳐 수신되는 상기 분할된 파일들을 블록 할당 관리부(114)로 전송한다.The
상기 블록 할당 관리부(114)는 내부에 데이터 영역(data area)과 패리티 영역(parity area)을 구비한다. 상기 블록 할당 관리부(114)는 상기 분할된 파일들의 메타데이터 정보에 근거하여 섹터(sector) 단위(512B~4KB)로 데이터 영역과 패리티 영역을 분류하여 디스크 배열(120)로 전송한다. 다시 말해서, 블록 할당 관리부(114)는 상기 파일 시스템(111)에 의해 인코딩된 데이터의 메타데이터 정보를 가지고 데이터를 분류한다. 상기 디스크 배열(120)로 전송된 섹터들은 디스크 배열(120)의 각 디스크에 순차적으로 페이지(page) 단위(512B~4KB)로 저장된다.The
도 8은 본 발명의 다른 실시 예와 관련된 SSD 기반 저장장치 시스템의 구조를 도시한 블록도이다. 본 실시 예는 소거 코드를 디바이스 드라이브에 적용하여 쓰기 동작을 수행하는 것을 예로 들어 설명한다.8 is a block diagram illustrating a structure of an SSD-based storage system according to another exemplary embodiment of the present invention. In the present embodiment, a write operation is performed by applying an erase code to a device drive.
도 8을 참조하면, 가상 파일 시스템(112)은 쓰기 요청이 있으면 데이터를 수신하면 디바이스 드라이버(113)로 전송한다.Referring to FIG. 8, if there is a write request, the
디바이스 드라이버(113)는 소거 코드를 사용하여 가상 파일 시스템(112)으로부터 전송되는 데이터를 섹터 단위로 인코딩한다. 여기서, 소거 코드는 리드-솔로몬(Reed-Solomon) 코드, EVENODD 코드, Liberation 코드 중 어느 하나이다. 그리고, 디바이스 드라이버(113)는 상기 인코딩된 데이터를 블록 할당 관리부(114)로 전송한다.The
블록 할당 관리부(114)는 디바이스 드라이버(113)로부터 전송되는 인코딩된 데이터를 데이터 영역과 패리티 영역으로 분할하여 디스크 배열(120)의 디스크들에 순차적으로 저장한다.The
상기 블록 할당 관리부(114)는 인코딩된 데이터의 메타데이터 정보에 의해 데이터를 분류할 수 있다. 예를 들어, 인코딩된 데이터의 메타데이터 정보가 데이터 블록이면 블록 할당 관리부(114)는 인코딩된 데이터를 데이터 블록 할당 관리부(114) 내의 데이터 영역으로 분류하여 디스크 배열(120)의 데이터 디스크(SSD0~SSDn)에 저장한다. 그리고, 인코딩된 데이터의 메타데이터 정보가 패리티블록_p이거나 또는 패리티 블록_q이면, 블록 할당 관리부(114)는 인코딩된 데이터를 블록 할당 관리부(114) 내의 패리티 영역으로 분류하여 디스크 배열(120)의 패리티 디스크(SSDp, SSDq)에 저장한다.The
또한, 블록 할당 관리부(114)는 갱신 횟수가 잦은 패리티 블록을 하나의 디스크로 집중하여 저장한다. 예를 들어, 4개의 데이터 디스크와 2개의 패리티 디스크로 디스크 배열(120)이 구성된 경우, 블록 할당 관리부(114)는 데이터를 4개의 데이터 디스크로 분산하여 저장하고, 패리티p와 패리티q는 2개의 패리티 디스크 중 하나의 디스크에 집중되게 저장한다. 따라서, 2개의 패리티 디스크 중 다른 하나의 디스크 수명저하를 최소화할 수 있다.In addition, the block
디스크 배열(120)은 적어도 둘 이상의 데이터 디스크들과 두 개의 패리티 디스크들이 배열로 연결된다. 여기서, 디스크는 SSD(solid state disk)와 같은 반도체 저장장치로 구현된다. 각 디스크는 쓰기/삭제 연산 횟수를 측정하며, 그 측정된 쓰기/삭제 연산 횟수가 임계값 이상이면 디스크 교체가 필요함을 중앙 제어부(110)에 알린다. 상기 중앙 제어부(110)은 디스크의 교체 알림 메시지를 출력한다. 예를 들어, SSD 수명이 10,000회로 제한되므로, SSD의 쓰기/삭제 연산 횟수가 9,000회가 되면 이를 감지하여 중앙 제어부(110)는 사용자가 인지할 수 있도록 디스크 교체 알림을 출력한다. 상기 디스크 교체 알림은 메시지 및/또는 경고음 등으로 출력된다.The
상기 디스크 배열(130)은 제어 명령에 따라 디스크 배열(120)을 구성하는 디스크들 중 적어도 하나 이상의 디스크 동작을 제어하는 디스크 제어부를 더 포함할 수 있다. 디스크 제어부는 각 디스크들의 상태를 감지하여 그 연결 상태를 파악하고, 상기 파악된 디스크 상태 정보를 중앙 제어부(110)로 전달한다. 상기 디스크 제어부는 각 디스크의 쓰기/삭제 연산 횟수를 측정하여 그 측정된 쓰기/삭제 연산 횟수가 임계값 이상이면 중앙 제어부(110)에 디스크의 교체 필요 여부를 알리는 정보를 전송한다.The disk array 130 may further include a disk controller for controlling at least one or more disk operations among the disks constituting the
100: 저장장치 시스템 110: 중앙 제어부
111: 파일 시스템 112: 가상 파일 시스템
113: 디바이스 드라이버 114: 블록 할당 관리부
120: 디스크 배열100: storage system 110: central control unit
111: File System 112: Virtual File System
113: device driver 114: block allocation management unit
120: disk array
Claims (8)
상기 다수의 디스크로의 데이터 입출력 요구에 따라 소거 코드를 이용하여 데이터를 인코딩하여 상기 다수의 디스크에 분산하여 저장하는 중앙 제어부를 포함하는 것을 특징으로 하는 SSD 기반 저장장치 시스템.A disk array in which a plurality of disks are connected and arranged in an array structure;
And a central controller configured to encode data by using an erase code according to data input / output requests to the plurality of disks, and to distribute the data to the plurality of disks.
SSD(Solid State Drive)와 같은 반도체 저장장치로 구현되는 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 1, wherein the disk,
SSD-based storage system, characterized in that implemented as a semiconductor storage device, such as a solid state drive (SSD).
상기 디스크의 쓰기/삭제 연산 횟수를 측정하여 그 측정된 연산 횟수가 임계값 이상이면 디스크 교체 알림 메시지를 출력하는 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 1, wherein the central control unit,
And measuring a number of write / erase operations of the disk and outputting a disk replacement notification message if the measured number of operations is greater than or equal to a threshold value.
소거 코드를 이용하여 입력 데이터를 데이터 파일과 패리티 파일로 분할하는 파일 시스템과,
상기 파일 시스템과 연결되며 상기 분할된 파일을 수신하는 가상 파일 시스템과,
상기 가상 파일 시스템을 거쳐 수신되는 분할된 파일을 수신하는 디바이스 드라이버와,
상기 분할된 파일들의 메타데이터 정보에 근거하여 데이터 영역과 패리티 영역으로 분류하여 상기 디스크 배열에 저장하는 블록 할당 관리부를 포함하는 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 1, wherein the central control unit,
A file system for dividing input data into a data file and a parity file using an erase code;
A virtual file system connected to the file system and receiving the divided file;
A device driver for receiving the divided file received through the virtual file system;
And a block allocation manager configured to classify the data file into a data area and a parity area based on the metadata information of the divided files and to store them in the disk array.
분할된 파일들의 메타데이터 정보에 근거하여 섹터 단위로 데이터 영역과 패리티 영역으로 분류하는 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 4, wherein the block allocation management unit,
SSD-based storage system, characterized in that divided into data area and parity area by sector based on the metadata information of the divided files.
요청에 따라 데이터를 수신하는 가상 파일 시스템과,
상기 가상 파일 시스템으로부터 전송되는 데이터를 소거 코드를 통해 인코딩하는 디바이스 드라이버와,
상기 인코딩된 데이터를 데이터 영역과 패리티 영역으로 분할하여 상기 디스크 배열에 순차적으로 저장하는 블록 할당 관리부를 포함하는 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 1, wherein the central control unit,
A virtual file system that receives data on request,
A device driver for encoding data transmitted from the virtual file system through an erase code;
And a block allocation management unit for dividing the encoded data into a data area and a parity area and sequentially storing the encoded data in the disk array.
갱신 횟수가 잦은 패리티 블록을 하나의 디스크에 저장하는 것을 특징으로 하는 SSD 기반 저장 시스템.The method according to claim 4 or 6, wherein the block allocation management unit,
SSD-based storage system, characterized in that to store the parity block with a high number of updates to one disk.
리드-솔몬 코드, EVENODD 코드, 분리 코드(Liberation code) 중 어느 하나인 것을 특징으로 하는 SSD 기반 저장 시스템.The method of claim 1, wherein the erase code,
SSD-based storage system, characterized in that any one of the Reed-Solmon code, EVENODD code, and Liberation code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110014255A KR101241976B1 (en) | 2011-02-17 | 2011-02-17 | Storage apparatus with solid state disk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110014255A KR101241976B1 (en) | 2011-02-17 | 2011-02-17 | Storage apparatus with solid state disk |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120094782A true KR20120094782A (en) | 2012-08-27 |
KR101241976B1 KR101241976B1 (en) | 2013-03-11 |
Family
ID=46885568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110014255A KR101241976B1 (en) | 2011-02-17 | 2011-02-17 | Storage apparatus with solid state disk |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101241976B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101430552B1 (en) * | 2013-04-08 | 2014-08-18 | 인하대학교 산학협력단 | A Data De-duplication and Recycling Method in SSD-based Storage System for Increasing De-duplication Rate and I/O Performance |
KR101675694B1 (en) * | 2015-09-11 | 2016-11-23 | 성균관대학교산학협력단 | Block replacement method of ssd based on block popularity |
KR20170061431A (en) * | 2015-11-26 | 2017-06-05 | 삼성전자주식회사 | Method of operating storage controller and method of operating data storage device having the storage controller |
CN107678680A (en) * | 2017-07-27 | 2018-02-09 | 深圳市云舒网络技术有限公司 | The concurrent IO of correcting and eleting codes method and storage device in distributed block storage system |
US10644726B2 (en) | 2013-10-18 | 2020-05-05 | Universite De Nantes | Method and apparatus for reconstructing a data block |
KR20200055898A (en) * | 2018-11-14 | 2020-05-22 | 인하대학교 산학협력단 | Low-power raid scheduling method for distributed storage application |
CN113742310A (en) * | 2015-10-05 | 2021-12-03 | 维卡艾欧有限公司 | Method and machine readable memory for operating a memory system |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101704936B1 (en) | 2015-12-07 | 2017-02-09 | 성균관대학교산학협력단 | Block replacement method based on recency, and thereof hybrid strorage system |
US10230398B2 (en) | 2016-08-19 | 2019-03-12 | Samsung Electronics Co., Ltd. | Erasure code data protection and recovery computation system and method |
-
2011
- 2011-02-17 KR KR1020110014255A patent/KR101241976B1/en active IP Right Grant
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101430552B1 (en) * | 2013-04-08 | 2014-08-18 | 인하대학교 산학협력단 | A Data De-duplication and Recycling Method in SSD-based Storage System for Increasing De-duplication Rate and I/O Performance |
US10644726B2 (en) | 2013-10-18 | 2020-05-05 | Universite De Nantes | Method and apparatus for reconstructing a data block |
KR101675694B1 (en) * | 2015-09-11 | 2016-11-23 | 성균관대학교산학협력단 | Block replacement method of ssd based on block popularity |
CN113742310A (en) * | 2015-10-05 | 2021-12-03 | 维卡艾欧有限公司 | Method and machine readable memory for operating a memory system |
KR20170061431A (en) * | 2015-11-26 | 2017-06-05 | 삼성전자주식회사 | Method of operating storage controller and method of operating data storage device having the storage controller |
CN107678680A (en) * | 2017-07-27 | 2018-02-09 | 深圳市云舒网络技术有限公司 | The concurrent IO of correcting and eleting codes method and storage device in distributed block storage system |
CN107678680B (en) * | 2017-07-27 | 2020-07-17 | 深圳市联云港科技有限公司 | Method for concurrent IO of erasure codes in distributed block storage system and storage device |
KR20200055898A (en) * | 2018-11-14 | 2020-05-22 | 인하대학교 산학협력단 | Low-power raid scheduling method for distributed storage application |
Also Published As
Publication number | Publication date |
---|---|
KR101241976B1 (en) | 2013-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101241976B1 (en) | Storage apparatus with solid state disk | |
US11941257B2 (en) | Method and apparatus for flexible RAID in SSD | |
US10901848B2 (en) | Storage systems with peer data recovery | |
CN103793182B (en) | System and method for expansible storage protection | |
US10353614B2 (en) | Raid system and method based on solid-state storage medium | |
US9063910B1 (en) | Data recovery after triple disk failure | |
US9552258B2 (en) | Method and system for storing data in raid memory devices | |
KR101636785B1 (en) | Dynamic higher-level redundancy mode management with independent silicon elements | |
CN111133420A (en) | RAID array reconstruction assistance from external array copies | |
CN107155358B (en) | Mixed-granularity higher-level redundancy for non-volatile memories | |
CN102122235B (en) | RAID4 (redundant array of independent disks) system and data reading and writing method thereof | |
US9639457B1 (en) | Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability | |
US9823968B1 (en) | Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same | |
KR102572357B1 (en) | Raid-6 data storage device and data processing system having the same | |
US20200042380A1 (en) | Storage Systems with Peer Data Scrub | |
Park et al. | Reliability and performance enhancement technique for SSD array storage system using RAID mechanism | |
JP2009514056A (en) | Data storage array | |
CN102656567A (en) | Data management in solid state storage devices | |
KR20120055725A (en) | Stripe-based memory operation | |
JP2006505035A (en) | Methods and means that can be used in the event of multiple dependent failures or any double disk failures in a disk array | |
KR20140106752A (en) | Memory Management System and Method | |
CN110597654A (en) | System and method for ultra-fast error correction code with parity | |
US20200371871A1 (en) | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive | |
US10802958B2 (en) | Storage device, its controlling method, and storage system having the storage device | |
JP6491482B2 (en) | Method and / or apparatus for interleaving code words across multiple flash surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160211 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171213 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181121 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 8 |