KR20120094782A - Storage system with solid state disk - Google Patents

Storage system with solid state disk Download PDF

Info

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
Application number
KR1020110014255A
Other languages
Korean (ko)
Other versions
KR101241976B1 (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 KR1020110014255A priority Critical patent/KR101241976B1/en
Publication of KR20120094782A publication Critical patent/KR20120094782A/en
Application granted granted Critical
Publication of KR101241976B1 publication Critical patent/KR101241976B1/en

Links

Images

Classifications

    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management 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

PURPOSE: A SSD(Solid State Drive) based storage apparatus system is provided to improve the input and output performance of a storage apparatus system by applying a source code to a file system level or an apparatus driver level. CONSTITUTION: A disk arrangement(120) is constituted by connecting disks from each other. A central control unit(110) distributes and stores data according to data input/output request by encoding the data based on an erasure code. The disk is realized a semi-conductor storage apparatus like an SSD. The central control unit measures the writing and deleting calculation number of the disk. When the number of the calculation is over a threshold value, the central control unit outputs a disk exchange alarm message.

Description

SSD 기반 저장장치 시스템 {STORAGE SYSTEM WITH SOLID STATE DISK} SD-based storage system {STORAGE SYSTEM WITH SOLID STATE DISK}

본 발명은 신뢰성 및 입출력 성능 개선을 위한 소거 코드(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는 열을 의미하며

Figure pat00001
모든 열의 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 Equation 1, j is a column
Figure pat00001
The XOR of all columns is calculated.

Figure pat00002

Figure pat00002

두 번째 패리티는 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 Equation 2.

Figure pat00003
Figure pat00003

위와 같은 계산방법으로 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 storage system 100 includes a central controller 110 and a disk array 120.

중앙 제어부(110)는 저장장치 시스템에서 외부입력에 의해 시스템 호출이 요청되거나 하드웨어로부터 인터럽트가 요청되면 그 요청에 대응하는 처리를 수행한다. 그리고, 중앙 제어부(110)는 디스크 배열(120)을 구성하는 다수의 디스크들로 데이터를 입출력하는 경우 소거 코드를 이용하여 데이터를 인코딩(encoding)하거나 디코딩(decoding)한다.The central controller 110 performs a process corresponding to the request when a system call is requested by an external input or an interrupt is requested from hardware in the storage system. The central controller 110 encodes or decodes data using an erase code when inputting / outputting data to a plurality of disks constituting the disk array 120.

중앙 제어부(110)는 파일 시스템(111)과, 가상 파일 시스템(Virtual File System: VFS)(112)와 디바이스 드라이버(device driver)(113)과, 블록 할당 관리부(114)를 포함한다.The central control unit 110 includes a file system 111, a virtual file system (VFS) 112, a device driver 113, and a block allocation management unit 114.

파일 시스템(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 virtual file system 112 serves to provide an interface to the file system when a specific event comes from the user. The virtual file system 112 transmits the divided files to the device driver 113.

디바이스 드라이버(113)은 디스크, 터미널, 네트워크 카드 등의 주변 장치를 구동하는 드라이버들로 구성된다. 디바이스 드라이버(113)은 디스크 배열(120)로 데이터 입출력을 제어하며, 상기 가상 파일 시스템(112)을 거쳐 수신되는 상기 분할된 파일들을 블록 할당 관리부(114)로 전송한다.The device driver 113 is composed of drivers for driving peripheral devices such as disks, terminals, and network cards. The device driver 113 controls data input / output with the disk array 120, and transmits the divided files received through the virtual file system 112 to the block allocation manager 114.

상기 블록 할당 관리부(114)는 내부에 데이터 영역(data area)과 패리티 영역(parity area)을 구비한다. 상기 블록 할당 관리부(114)는 상기 분할된 파일들의 메타데이터 정보에 근거하여 섹터(sector) 단위(512B~4KB)로 데이터 영역과 패리티 영역을 분류하여 디스크 배열(120)로 전송한다. 다시 말해서, 블록 할당 관리부(114)는 상기 파일 시스템(111)에 의해 인코딩된 데이터의 메타데이터 정보를 가지고 데이터를 분류한다. 상기 디스크 배열(120)로 전송된 섹터들은 디스크 배열(120)의 각 디스크에 순차적으로 페이지(page) 단위(512B~4KB)로 저장된다.The block allocation manager 114 includes a data area and a parity area therein. The block allocation manager 114 classifies the data area and the parity area in sector units 512B to 4KB based on metadata information of the divided files and transmits the data area and the parity area to the disk array 120. In other words, the block allocation management unit 114 classifies the data with metadata information of the data encoded by the file system 111. Sectors transferred to the disk array 120 are sequentially stored in each page of the disk array 120 in page units (512B to 4KB).

도 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 virtual file system 112 transmits the data to the device driver 113 when it receives data.

디바이스 드라이버(113)는 소거 코드를 사용하여 가상 파일 시스템(112)으로부터 전송되는 데이터를 섹터 단위로 인코딩한다. 여기서, 소거 코드는 리드-솔로몬(Reed-Solomon) 코드, EVENODD 코드, Liberation 코드 중 어느 하나이다. 그리고, 디바이스 드라이버(113)는 상기 인코딩된 데이터를 블록 할당 관리부(114)로 전송한다.The device driver 113 encodes the data transmitted from the virtual file system 112 in sector units using the erase code. Here, the erase code is any one of a Reed-Solomon code, an EVENODD code, and a Liberation code. The device driver 113 transmits the encoded data to the block allocation manager 114.

블록 할당 관리부(114)는 디바이스 드라이버(113)로부터 전송되는 인코딩된 데이터를 데이터 영역과 패리티 영역으로 분할하여 디스크 배열(120)의 디스크들에 순차적으로 저장한다.The block allocation manager 114 divides the encoded data transmitted from the device driver 113 into a data area and a parity area, and sequentially stores the encoded data transmitted to the disks of the disk array 120.

상기 블록 할당 관리부(114)는 인코딩된 데이터의 메타데이터 정보에 의해 데이터를 분류할 수 있다. 예를 들어, 인코딩된 데이터의 메타데이터 정보가 데이터 블록이면 블록 할당 관리부(114)는 인코딩된 데이터를 데이터 블록 할당 관리부(114) 내의 데이터 영역으로 분류하여 디스크 배열(120)의 데이터 디스크(SSD0~SSDn)에 저장한다. 그리고, 인코딩된 데이터의 메타데이터 정보가 패리티블록_p이거나 또는 패리티 블록_q이면, 블록 할당 관리부(114)는 인코딩된 데이터를 블록 할당 관리부(114) 내의 패리티 영역으로 분류하여 디스크 배열(120)의 패리티 디스크(SSDp, SSDq)에 저장한다.The block allocation manager 114 may classify the data by metadata information of the encoded data. For example, if the metadata information of the encoded data is a data block, the block allocation management unit 114 classifies the encoded data into a data area in the data block allocation management unit 114 and stores the data disks SSD0 to the data array of the disk array 120. SSDn). If the metadata information of the encoded data is parity block_p or parity block_q, the block allocation management unit 114 classifies the encoded data into a parity area in the block allocation management unit 114, and then the disk array 120. To parity disks (SSDp and SSDq).

또한, 블록 할당 관리부(114)는 갱신 횟수가 잦은 패리티 블록을 하나의 디스크로 집중하여 저장한다. 예를 들어, 4개의 데이터 디스크와 2개의 패리티 디스크로 디스크 배열(120)이 구성된 경우, 블록 할당 관리부(114)는 데이터를 4개의 데이터 디스크로 분산하여 저장하고, 패리티p와 패리티q는 2개의 패리티 디스크 중 하나의 디스크에 집중되게 저장한다. 따라서, 2개의 패리티 디스크 중 다른 하나의 디스크 수명저하를 최소화할 수 있다.In addition, the block allocation management unit 114 concentrates and stores the parity blocks with frequent updates to one disk. For example, when the disk array 120 is configured with four data disks and two parity disks, the block allocation manager 114 distributes and stores the data into four data disks, and parity p and parity q are two. Stored centrally on one of the parity disks. Therefore, it is possible to minimize the deterioration of the life of the other one of the two parity disks.

디스크 배열(120)은 적어도 둘 이상의 데이터 디스크들과 두 개의 패리티 디스크들이 배열로 연결된다. 여기서, 디스크는 SSD(solid state disk)와 같은 반도체 저장장치로 구현된다. 각 디스크는 쓰기/삭제 연산 횟수를 측정하며, 그 측정된 쓰기/삭제 연산 횟수가 임계값 이상이면 디스크 교체가 필요함을 중앙 제어부(110)에 알린다. 상기 중앙 제어부(110)은 디스크의 교체 알림 메시지를 출력한다. 예를 들어, SSD 수명이 10,000회로 제한되므로, SSD의 쓰기/삭제 연산 횟수가 9,000회가 되면 이를 감지하여 중앙 제어부(110)는 사용자가 인지할 수 있도록 디스크 교체 알림을 출력한다. 상기 디스크 교체 알림은 메시지 및/또는 경고음 등으로 출력된다.The disk array 120 has at least two data disks and two parity disks connected in an array. Here, the disk is implemented as a semiconductor storage device such as a solid state disk (SSD). Each disk measures the number of write / delete operations, and notifies the central controller 110 that the disk needs to be replaced if the measured number of write / delete operations is greater than or equal to a threshold. The central control unit 110 outputs a disk replacement notification message. For example, since the SSD lifespan is limited to 10,000 times, when the number of SSD write / delete operations reaches 9,000 times, the SSD detects this and the central controller 110 outputs a disk replacement notification for the user to recognize. The disk replacement notification is output as a message and / or a warning sound.

상기 디스크 배열(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 disk array 120 according to a control command. The disk controller detects a state of each of the disks to determine a connection state, and transfers the identified disk state information to the central controller 110. The disk controller measures the number of write / delete operations of each disk, and transmits information indicating whether the disk needs to be replaced to the central controller 110 when the measured number of write / delete operations is equal to or greater than a threshold value.

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.
제1항에 있어서, 상기 디스크는,
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).
제1항에 있어서, 상기 중앙 제어부는,
상기 디스크의 쓰기/삭제 연산 횟수를 측정하여 그 측정된 연산 횟수가 임계값 이상이면 디스크 교체 알림 메시지를 출력하는 것을 특징으로 하는 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.
제1항에 있어서, 상기 중앙 제어부는,
소거 코드를 이용하여 입력 데이터를 데이터 파일과 패리티 파일로 분할하는 파일 시스템과,
상기 파일 시스템과 연결되며 상기 분할된 파일을 수신하는 가상 파일 시스템과,
상기 가상 파일 시스템을 거쳐 수신되는 분할된 파일을 수신하는 디바이스 드라이버와,
상기 분할된 파일들의 메타데이터 정보에 근거하여 데이터 영역과 패리티 영역으로 분류하여 상기 디스크 배열에 저장하는 블록 할당 관리부를 포함하는 것을 특징으로 하는 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.
제4항에 있어서, 상기 블록 할당 관리부는,
분할된 파일들의 메타데이터 정보에 근거하여 섹터 단위로 데이터 영역과 패리티 영역으로 분류하는 것을 특징으로 하는 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.
제1항에 있어서, 상기 중앙 제어부는,
요청에 따라 데이터를 수신하는 가상 파일 시스템과,
상기 가상 파일 시스템으로부터 전송되는 데이터를 소거 코드를 통해 인코딩하는 디바이스 드라이버와,
상기 인코딩된 데이터를 데이터 영역과 패리티 영역으로 분할하여 상기 디스크 배열에 순차적으로 저장하는 블록 할당 관리부를 포함하는 것을 특징으로 하는 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.
제4항 또는 제6항에 있어서, 상기 블록 할당 관리부는,
갱신 횟수가 잦은 패리티 블록을 하나의 디스크에 저장하는 것을 특징으로 하는 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.
제1항에 있어서, 상기 소거 코드는,
리드-솔몬 코드, 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.
KR1020110014255A 2011-02-17 2011-02-17 Storage apparatus with solid state disk KR101241976B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (8)

* Cited by examiner, † Cited by third party
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
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
US20150378816A1 (en) Storage apparatus, storage system, and storage apparatus control method
US11169873B2 (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
CN113553631A (en) Apparatus and method for protecting data in a memory system

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