KR20170099724A - 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 - Google Patents

장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 Download PDF

Info

Publication number
KR20170099724A
KR20170099724A KR1020160022158A KR20160022158A KR20170099724A KR 20170099724 A KR20170099724 A KR 20170099724A KR 1020160022158 A KR1020160022158 A KR 1020160022158A KR 20160022158 A KR20160022158 A KR 20160022158A KR 20170099724 A KR20170099724 A KR 20170099724A
Authority
KR
South Korea
Prior art keywords
data
state
drive
drives
storage device
Prior art date
Application number
KR1020160022158A
Other languages
English (en)
Other versions
KR102533389B1 (ko
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 KR1020160022158A priority Critical patent/KR102533389B1/ko
Priority to US15/285,588 priority patent/US10216578B2/en
Publication of KR20170099724A publication Critical patent/KR20170099724A/ko
Application granted granted Critical
Publication of KR102533389B1 publication Critical patent/KR102533389B1/ko

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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]
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0688Non-volatile semiconductor memory arrays
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection

Landscapes

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

Abstract

본 발명의 실시 예들에 따른 데이터 저장 장치는 복수의 스트라이프들을 포함하는 불휘발성 메모리, 상기 복수의 스트라이프들 각각에 대한 상태 정보를 저장하는 버퍼, 및 상기 상태 정보에 기초하여, 가비지 커렉션을 이용해 스페어 영역 방식으로 데이터 복구 동작을 수행하는 RAID 컨트롤러(101)가 구현된 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는 복수의 드라이브들을 포함하고, 상기 상태 정보는 상기 복수의 드라이브들에 고장이 없는 제1 상태, 및 상기 복수의 드라이브 중 적어도 하나에 고장이 발생한 제2 상태 및 상기 고장이 발생한 드라이브에 저장된 데이터가 복구된 제3 상태를 나타낸다.

Description

장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 RAID 시스템{DATA STORAGE DEVICE FOR INCREASING LIFETIME OF DEVICE AND RAID SYSTEM INCLUDING THE SAME}
본 발명의 개념에 따른 실시 예는 데이터 복구시 발생하는 데이터 이동을 감소시킴으로써, 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 RAID 시스템에 관한 것이다.
RAID(redundant array of independent disks)는 복수의 데이터 저장 장치들 중에서 일부 데이터 저장 장치가 고장일 때, 데이터 손실을 방지하기 위해 사용되는 기술이다. 구체적으로, RAID 기술을 사용하면, 저장 장치에서 데이터 오류가 발생하더라도 데이터들을 기초로 생성된 패리티(parity)를 이용하여 데이터를 복구 할 수 있다. 따라서, RAID를 이용하면 저장 장치의 입출력 작업의 균형을 이룰 수 있고 서버의 전체적인 성능이 개선될 수 있다.
RAID는 미러링(mirror) RAID과 패리티(parity) RAID로 분류된다.
본 발명이 이루고자 하는 기술적인 과제는 데이터 이동을 감소시킴으로써 장치의 수명을 연장시키는 데이터 저장 장치 및 이를 포함하는 RAID 시스템을 제공하는 것이다.
본 발명의 실시 예들에 따른 데이터 저장 장치는 복수의 스트라이프들을 포함하는 불휘발성 메모리, 상기 복수의 스트라이프들 각각에 대한 상태 정보를 저장하는 버퍼, 및 상기 상태 정보에 기초하여, 가비지 커렉션을 이용해 스페어 영역 방식으로 데이터 복구 동작을 수행하는 RAID 컨트롤러가 구현된 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는 복수의 드라이브들을 포함하고, 상기 상태 정보는 상기 복수의 드라이브들에 고장이 없는 제1 상태, 및 상기 복수의 드라이브 중 적어도 하나에 고장이 발생한 제2 상태 및 상기 고장이 발생한 드라이브에 저장된 데이터가 복구된 제3 상태를 나타낸다.
상기 복수의 드라이브들 중 어느 하나가 고장이 발생한 경우, 상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나의 고장을 감지하여, 이를 기초로 상기 상태 신호를 상기 제1 상태로부터 상기 제2 상태로 변경한다.
상기 RAID 컨트롤러는 상기 고장난 드라이브에 저장된 데이터들 또는 패리티들을 스페어 영역에 복구하고, 데이터가 복구된 상기 스페어 영역의 상기 스트라이프에 상응하는 상태 정보를 상기 제2 상태으로부터 상기 제3 상태로 변경한다.
상기 RAID 컨트롤러는 가비지 컬렉션을 수행할 때, 상기 복구된 데이터들을 이동시킴으로써, 상기 스페어 영역을 기설정된 드라이브로 이동시키고, 상기 RAID 컨트롤러는 상기 스페어 영역이 상기 기설정된 드라이브에 위치하는 상기 스트라이프에 상응하는 상기 상태 정보를 상기 제3 상태에서 상기 제1 상태로 변경한다.
상기 제2 상태 또는 상기 제3 상태를 나타내는 상기 상태 정보는 상기 고장이 발생한 드라이브의 주소 정보를 포함한다.
상기 고장이 발생한 드라이브의 상기 주소 정보는 상기 불휘발성 메모리에서 공유되는 정보이다.
상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나를 선택하고, 상기 복수의 스트라이프들 중 적어도 하나 이상을 선택하고, 상기 선택된 드라이브와 적어도 하나 이상의 스트라이프에 상응하는 페이지를 상기 스페어 영역로 만들고, 상기 선택된 적어도 하나 이상의 스트라이프에 상응하는 상기 상태 정보를 상기 제3 상태로 변경한다.
상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나를 선택하고, 상기 선택된 드라이브를 스페어 디스크로 만들고, 상기 상태 정보를 상기 제3 상태로 변경하고, 상기 스페어 디스크는 상기 복수의 스트라이프들 각각에 포함된 모든 상기 스페어 영역을 포함하는 드라이브이다.
상기 RAID 컨트롤러는 상기 데이터를 복구하는 경우, 상기 데이터를 포함하는 상기 스트라이프에 저장된 상기 데이터들 및 패리티에 대하여 XOR 논리 연산을 수행함으로써 상기 데이터를 복구한다.
상기 RAID 컨트롤러는 상기 패리티를 복구하는 경우, 상기 패리티가 저장된 상기 스트라이프에 저장된 상기 데이터들에 대하여 XOR 논리 연산을 수행함으로써 상기 패리티를 복구한다.
본 발명의 실시 예들에 따른 데이터 저장 장치 및 상기 데이터 저장 장치와 통신하는 호스트를 포함하는 RAID 시스템에 있어서, 상기 데이터 저장 장치는 복수의 스트라이프들을 포함하는 불휘발성 메모리, 상기 복수의 스트라이프들 각각에 대한 상태 정보를 저장하는 버퍼, 및 상기 상태 정보에 기초하여, 가비지 커렉션을 이용해 스페어 영역 방식으로 데이터 복구 동작을 수행하는 RAID 컨트롤러가 구현된 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는 복수의 드라이브들을 포함하고, 상기 상태 정보는 상기 복수의 드라이브들에 고장이 없는 제1 상태, 및 상기 복수의 드라이브 중 적어도 하나에 고장이 발생한 제2 상태 및 상기 고장이 발생한 드라이브에 저장된 데이터가 복구된 제3 상태를 나타낸다.
상기 호스트가 상기 고장이 발생한 드라이브에 저장된 데이터를 요청하고, 상기 데이터를 포함하는 상기 스트라이프에 상응하는 상기 상태 신호가 상기 제2 상태인 경우, 상기 데이터 저장 장치는 상기 스트라이프의 다른 데이터들 및 패리티에 대하여 XOR 논리 연산을 수행함으로써, 상기 요청된 데이터를 복구하고, 상기 호스트로 출력한다.
상기 호스트가 상기 고장이 발생한 드라이브에 저장된 데이터를 요청하고, 상기 데이터를 포함하는 상기 스트라이프에 상응하는 상기 상태 신호가 상기 제3 상태인 경우, 상기 데이터 저장 장치는 복구된 데이터가 저장된 드라이브로 상기 호스트의 요청을 연결한다.
상기 제2 상태 또는 상기 제3 상태를 나타내는 상기 상태 정보는 상기 고장이 발생한 드라이브의 주소 정보를 포함한다.
상기 고장이 발생한 드라이브의 상기 주소 정보는 상기 불휘발성 메모리에서 공유되는 정보이다.
본 발명의 실시 예에 따른 데이터 저장 장치는 논리 구조 RAID가 계속해서 스페어 영역 방식으로 데이터를 복구하는 경우, 필연적으로 스페어 디스크가 생성되지만, 상태 정보와 가비지 커렉션을 이용하여, 별도의 데이터 이동 없이 데이터를 재배치함으로써, 스페어 영역 방식을 유지할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는, 논리 구조 RAID에서 스페어 영역 방식으로 데이터를 복구하는 경우, 데이터 이동의 수를 줄임으로써, 데이터 저장 장치의 수명을 연장시킬 수 있다.
또한, 임의로 상태 정보를 변경하여, 일시적인 성능 저하를 보이는 디스크에 데이터 이동을 감소시키거나, 글로벌 마모 레벨링(Global Wear Leveling)에 적용함으로써, 데이터 저장 장치의 수명을 연장시킬 수 있다.
도 1은 본 발명의 실시 예들에 따른 RAID 시스템을 나타내는 블록도이다.
도 2는 본 발명의 비교 예들에 따른 데이터 저장 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 비교 예들에 따른 데이터 저장 장치의 구조를 나타내는 블록도이다.
도 4a 내지 4c는 본 발명의 비교 예들에 따른 스페어 디스크 방식의 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 5a 내지 5c는 본 발명의 비교 예들에 따른 스페어 영역 방식의 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 6a 내지 6f는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 7a 및 7b는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 8은 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 9는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작 방법을 나타내는 순서도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 발명은 패리티 RAID 에 대한 발명으로, 상세하게는 논리 구조 RAID(Log-structured RAID) 에 대한 발명이다.
데이터 저장 장치가 일반적인 패리티 RAID 을 이용하는 경우, 새로운 데이터를 라이트(write)하는 경우, 1개의 라이트 동작이 2개의 리드(read)동작 및 2개의 라이트(write) 동작으로 증폭되는 문제가 발생한다.
이를 해결하기 위해, 논리 구조 RAID가 사용되었으나, 논리 구조 RAID는 별도의 매핑 테이블을 구비해야하며, 가비지 콜렉션(Garbage Collection)을 주기적으로 수행해야 한다.
논리 구조 RAID의 경우, SSD(Solid State Drive) 하나 고장 났을 때, 데이터를 복구하는 방법으로 스페어(spare) 디스크 방식 또는 스페어 영역(region) 방식을 이용할 수 있다. 스페어 영역 방식은 스페어 디스크 방식에 비해 구현이 복잡하지만, 모든 SSD가 리드/라이트 동작에 참여할 수 있고, 복구 동작에서도 모든 SSD가 참여할 수 있기 때문에 SDD 리소스를 더 잘 활용할 수 있다.
스페어 영역 방식으로 데이터 복구를 수행하면, 새롭게 교체된 드라이브가 스페어 디스크가 되기 때문에, 계속해서 스페어 영역 방식을 유지하거나 또는 스페어 디스크 방식으로 변경하는 경우가 있을 수 있다. 전자의 경우가 후자의 경우보다 모든 SSD 리소스를 사용한다는 점에서 효율적이지만, 스페어 디스크의 빈 페이지를 복수의 드라이브들로 분포시켜야 하기 때문에 더 많은 양의 데이터 이동이 발생할 수 밖에 없다.
따라서, 논리 구조 RAID가 스페어 영역 방식으로 유지하면서 데이터를 복구할 때, 데이터 이동을 감소시킬 수 있는 방법이 요구되고 있다.
도 1은 본 발명의 실시 예들에 따른 RAID 시스템을 나타내는 블록도이다. 도 1을 참조하면, RAID 시스템(1)은 호스트(10), 데이터 저장 장치(20) 및 인터페이스(30)를 포함할 수 있다. 예컨대, RAID 시스템(1)은 메모리 시스템을 의미할 수 있다.
실시 예들에 따라, RAID 시스템(1)은 PC(personal computer), 워크스테이션(workstation), 데이터 센터, 인터넷 데이터 센터(internet data center(IDC)), SAN(storage area network), NAS (Network attached storage) 또는 모바일 컴퓨팅 장치로 구현될 수 있는 RAID 시스템을 의미할 수 있으나 이에 한정되는 것은 아니다.
상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA (personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP (portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 드론 (drone), 또는 e-북 (e-book)으로 구현될 수 있다.
호스트(10)는 데이터 저장 장치(20)의 데이터 처리 동작(예컨대, 라이트 동작 또는 리드 동작 등)을 제어할 수 있다. 호스트(10)는 호스트 컨트롤러를 의미할 수 있다.
호스트(10)는 데이터 저장 장치(20)에 데이터를 라이트하기 위한 라이트 요청(write request), 또는 데이터 저장 장치(20)의 데이터를 리드하기 위한 리드 요청(read request)을 데이터 저장 장치(20)으로 전송할 수 있다. 상기 라이트 요청은 라이트 어드레스(write address)를 포함할 수 있고, 상기 리드 요청은 리드 어드레스(read address)를 포함할 수 있다. 요청 (request)은 명령(command)을 의미할 수 있다.
호스트(10)는 인터페이스(30)를 통해 데이터 저장 장치(20)와 데이터를 주거나 받을 수 있다.
인터페이스(30)는 SATA(serial advanced technology attachment) 인터페이스, SATAe(SATA express) 인터페이스, SAS(serial attached small computer system interface(SCSI)) 인터페이스, PCIe(peripheral component interconnect express) 인터페이스, NVMe(non-volatile memory Express) 인터페이스, AHCI(advanced host controller interface) 인터페이스, 또는 멀티미디어 카드(multimedia card(MMC))인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
실시 예에 따라, 호스트(10)는 집적 회로(integrated circuit(IC)), 마더보드(motherboard), 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서 (application processor(AP)), 모바일(mobile) AP, 웹 서버, 데이터 서버, 또는 데이터베이스 서버로 구현될 수 있으나 이에 한정되는 것은 아니다.
인터페이스(30)는 SATA(serial advanced technology attachment) 인터페이스, SATAe(SATA express) 인터페이스, SAS(serial attached small computer system interface(SCSI)) 인터페이스, PCIe(peripheral component interconnect express) 인터페이스, NVMe(non-volatile memory Express) 인터페이스, AHCI(advanced host controller interface) 인터페이스, 또는 멀티미디어 카드(multimedia card(MMC))인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다. 실시 예들에 따라, 인터페이스(30)는 전기 신호들 또는 광신호들을 전송할 수 있다.
데이터 저장 장치(20)는 인터페이스(30)를 통해 호스트(10)와 명령 및/또는 데이터를 주거나 받을 수 있다.
데이터 저장 장치(20)는 플래시 메모리-기반 메모리 장치로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 데이터 저장 장치(20)는 SSD(solid-state drive or solid-state disk), 임베디드 SSD(embedded SSD(eSSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC(eMMC)) 또는 매니지드(managed) NAND로 구현될 수 있으나 이에 한정되는 것은 아니다. 플래시 메모리-기반 메모리 장치는 NAND-타입 플래시 메모리 장치 또는 NOR-타입 플래시 메모리 장치로 구현될 수 있다.
실시 예들에 따라, 데이터 저장 장치(20)는 하드 디스크 드라이브(hard disk drive(HDD)), PRAM(phase change RAM) 장치, MRAM(magnetoresistive RAM) 장치, STT-MRAM(spin-transfer torque MRAM) 장치, FRAM(ferroelectric RAM) 장치 또는 RRAM(resistive RAM) 장치로 구현될 수 있으나 이에 한정되는 것은 아니다.
데이터 저장 장치(20)는 메모리 컨트롤러(100), 불휘발성 메모리(200) 및 버퍼(300)를 포함할 수 있다.
메모리 컨트롤러(100)는 불휘발성 메모리(200)를 제어할 수 있다. 실시 예들에 따라, 메모리 컨트롤러(200)는 집적 회로(IC), 시스템 온 칩(system on chip(SoC)), 프로세서, 애플리케이션 프로세서(application processor(AP)), 칩셋, 또는 반도체 칩들의 집합으로 구현될 수 있다.
메모리 컨트롤러(100)는 호스트(10) 및 불휘발성 메모리(200) 사이에서 주거나 받는 명령 및/또는 데이터의 전송 또는 처리를 제어할 수 있다.
메모리 컨트롤러(100)는 RAID 컨트롤러 카드(controller card)로 구현될 수 있다. 이 경우, 메모리 컨트롤러(100)에 포함된 RAID 컨트롤러(101)는 하드웨어 RAID 컨트롤러를 의미할 수 있다. 이때, 메모리 컨트롤러(100)는 메모리 컨트롤러(100)의 작동을 제어하는 호스트(10)와 통신할 수 있다.
다른 실시 예들에 따라, 메모리 컨트롤러(100)는 CPU(central processing unit) 또는 프로세서(processor)를 포함할 수 있다. 이 경우, RAID 컨트롤러(101)는 상기 CPU 또는 상기 프로세서에 의해 실행되는 소프트웨어 RAID 컨트롤러를 의미할 수 있다.
하드웨어 RAID 컨트롤러 또는 소프트웨어 RAID 컨트롤러는 불휘발성 메모리(200)의 동작을 제어할 수 있다. RAID 컨트롤러(101)는 하드웨어 RAID 컨트롤러 또는 소프트웨어 RAID 컨트롤러를 통칭할 수 있다.
RAID 컨트롤러(101)와 불휘발성 메모리(200)는, SATA (Serial ATA(SATA)) 또는 PCIe(Peripheral Component Interconnect Express)를 통해, 명령 및/또는 데이터를 주거나 받을 수 있다.
실시 예들에 따라, 데이터 저장 장치들(200과 300) 각각은 하드디스크 드라이브(hard disc drive(HDD))로 구현될 수 있다.
다른 실시 예들에 따라, 데이터 저장 장치들(200과 300) 각각은 솔리드 스테이트 드라이브(solid state drive(SSD))로 구현될 수 있다.
또 다른 실시 예들에 따라, 데이터 저장 장치들(200과 300) 중에서 어느 하나는 HDD로 구현될 수 있고, 데이터 저장 장치들(200과 300) 중에서 다른 하나는 SSD로 구현될 수 있다. 이 경우, RAID 시스템(100A)은 하이브리드 RAID 시스템일 수 있다.
본 발명은 HDD(Hard Disk Drive) 또는 SDD(Solid Disk Drvie)에 모두 적용될 수 있으나, SDD의 경우에 훨씬 효과적이므로, 아래에서는 SDD에 본 발명이 적용된 것으로 가정하고 설명되나, 이에 한정되는 것은 아니다.
버퍼(300)는 RAM(ramdom access memory), DRAM (dynamic random access memory), SRAM(static RAM), 버퍼 메모리, 캐시(cache) 및 강하게 결합된 메모리(tightly coupled memory)을 포함하는 휘발성 메모리 장치 또는 NAND 플래시 메모리를 포함하는 불휘발성 메모리 장치로 구현될 수 있으며, 본 발명이 이에 한정되는 것은 아니다.
버퍼(300)는 불휘발성 메모리(200)에 대한 논리 어드레스-물리 어드레스 변환을 위한 매핑 테이블(mapping table)을 저장하는 제1메모리 영역, 캐시(cache)의 기능을 수행할 수 있는 제2메모리 영역, 복수의 스트라이프들(STPs) 각각에 상응하는 상태 정보(SI)를 저장하는 제3 메모리 영역을 포함할 수 있으나 이에 한정되는 것은 아니다. 예컨대, FTL(flash translation layer)은 상기 제1메모리 영역에 저장된 매핑 테이블을 이용하여 논리 어드레스-물리 어드레스 변환을 수행할 수 있다.
도 2는 본 발명의 비교 예들에 따른 데이터 저장 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 메모리 컨트롤러(100)는 RAID 컨트롤러(101)을 포함할 수 있다. 불휘발성 메모리(200)는 복수의 드라이브들(SSD1~SSD4)을 포함할 수 있다.
RAID 컨트롤러(101)는 불휘발성 메모리(200)에 포함된 복수의 드라이브들(SSD1~SSD4)을 제어할 수 있다.
본 도면에서는 설명의 편의를 위해, 불휘발성 메모리(200)가 4개의 드라이브들(SSD1~SSD4)을 포함하는 것으로 도시되었으나, 본 발명이 이에 제한되는 것은 아니다.
각각의 드라이브들(SSD1~SSD4)은 리드 동작의 기본 단위인 페이지(Page)로 구성될 수 있다. 구체적으로, 각각의 드라이브들(SSD1~SSD4)은 복수의 페이지들을 포함할 수 있다. 각각의 페이지에는 데이터 또는 패리티가 저장될 수 있다.
불휘발성 메모리(200)는 복수의 스트라이프(STP1~STP4)를 포함할 수 있다. 스트라이프(Stripe)는 RAID의 복구 동작의 기본 단위로 정의될 수 있다.
스트라이프는 패리티를 생성하는데 사용되는 복수의 페이지를 포함할 수 있다. 예컨대, 제1 스트라이프(STP1)는 제1 패리티(P1-3)을 생성하는데 사용되는 복수의 데이터들(D1-D3)을 저장할 페이지들과 제1 패리티(P1-3)을 저장할 페이지를 포함할 수 있다.
제1 패리티(P1-3)을 생성하는데 사용되는 복수의 페이지는, 제1 내지 제4 드라이브(SSD1~SSD4) 각각의 제1 페이지일 수 있다. 그리고, 제1 패리티(P1-3)는 제1 내지 제3 드라이브(SSD1~SSD3)의 제1 페이지에 저장된 데이터(D1~D3)를 XOR 연산하여 생성될 수 있다.
만일, 데이터(D1)가 손실된 경우, RAID 컨트롤러(101)는 제2 내지 제3 드라이브(SSD2~SSD4)의 제1 페이지에 저장된 데이터(D2 및 D3) 및 패리티(P1-3)를 XOR 연산하여 손실된 데이터(D1)을 복구할 수 있다.
상술한 원리는 다른 페이지 또는 다른 드라이브에 저장된 패리티/데이터에도 동일하게 적용될 수 있다.
따라서, 복수의 드라이브들(SSD1~SSD4) 중 어느 하나가 불량이 생기거나 데이터가 손실되더라도, 상술한 원리에 따라서 데이터를 복구할 수 있다.
예컨대, 제2 드라이브(SSD2)가 손실되었다고 가정한다.
이 때, RAID 컨트롤러(101)는 데이터(D2)를 복구하기 위해, 제1 드라이브(SSD1), 제3 드라이브(SSD3) 및 제4 드라이브(SSD4)의 제1 페이지에 저장된 데이터(D1, D3) 및 패리티(P1-3)를 XOR 연산하여 데이터(D2)를 생성할 수 있다. 상기와 같은 원리로, RAID 컨트롤러(101)는 데이터들(D5, D10) 및 패리티(P7-9)를 복구할 수 있다.
즉, 같은 스트라이프에 저장된 데이터들을 XOR 연산함으로써, 다른 하나의 데이터 또는 패리티를 복구할 수 있다.
도 2에 도시된 패리티 기반 RAID는 1번의 라이트 동작이 2번의 리드 동작과 2번의 라이트 동작을 유발하므로, 장치의 성능을 저하시키고, SSD 장치의 마모(wire)를 가속화하는 문제가 발생할 수 있다. 상술한 리드-모디파이-라이트(read-modify-write)문제라고 칭한다.
도 3은 본 발명의 비교 예들에 따른 데이터 저장 장치의 구조를 나타내는 블록도이다. 설명의 편의를 위해, 도 2에 도시된 데이터 저장 장치(20)과 차이점을 중심으로 설명한다.
도 3에 도시된 데이터 저장 장치(20)는 논리 구조 RAID 방식으로 동작한다. 논리 구조 RAID란 새롭게 라이트 되는 데이터를 기존 데이터가 저장된 페이지가 아닌 새로운 페이지에 라이트하는 기술일 수 있다. 따라서, 도 2에 도시된 데이터 저장 장치(20)에서와 달리, 새로운 데이터가 재기입(overwrite)되는 경우, 새로운 데이터는 기존에 저장된 페이지가 아닌 새로은 페이지에 라이트될 수 있다.
예컨대, 제3 데이터(D3)가 다시 쓰여지는 경우, 새로운 제3 데이터(D3?)는 기존 제3 데이터(D3)가 저장되어 있는 제3 드라이브(SSD3)의 제1 페이지에 라이트 되는 것이 아니라, 제1 드라이브(SSD1)의 제5 페이지에 라이트 될 수 있다.
또한, 제5 데이터(D5) 및 제9 데이터(D9)의 경우도 마찬가지로, 기존의 페이지가 아니라, 새로운 위치에 라이트 될 수 있다. 도 3에서는 새로운 제5 데이터(D5?)는 제2 드라이브(SSD2)의 제5 페이지에 라이트 되고, 새로운 제9 데이터(D9?)는 제3 드라이브(SSD3)의 제5 페이지에 라이트 되는 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니다.
또한, 새로운 데이터들(D3?, D5? 및 D9)에 따른 패리티(P3-5-9)가 제4 드라이브(SSD4)의 제5 페이지에 라이트될 수 있다.
상술한 원리의 논리 구조 RAID는 도 2에 도시된 기존의 RAID 보다 리드-모디파이-라이트 문제를 해결하는 데 효율적이다.
그러나, 논리 구조 RAID는 데이터가 라이트되는 페이지의 주소가 논리 블록 주소(Logical Block Address)와 관계 없이 결정될 수 있기 때문에, 별도의 매핑 테이블(mapping table)이 필요하다.
또한, 논리 구조 RAID는 무효 데이터들(예컨대, 기존에 라이트된 데이터)을 삭제하고 새로운 저장 공간을 생성하기 위하여 가비지 컬렉션(Garbage collection)을 수행해야 한다.
가비지 컬렉션은 기 설정된 정책에 따라, 예컨대, 무효 데이터가 일정 수준 이상인 경우, 수행될 수 있다. 또한, 가비지 컬렉션은 스트라이프 단위로 수행될 수 있다. 예컨대, 제1 내지 제4 드라이브들(SSD1~SSD4)의 제1 페이지들, 즉, 제1 스트라이프(STP1)에 대하여, RAID 컨트롤러(101)가 가비지 컬렉션을 수행하는 경우, 제3 드라이브(SSD3)의 제1 페이지에 저장된 제3 데이터(D3)는 삭제될 수 있다. 왜냐하면, 새로운 제3 데이터(D3?)가 제1 드라이브(SSD1)의 제5페이지에 라이트 되어 있기 때문이다.
도 4a 내지 4c는 본 발명의 비교 예들에 따른 스페어 디스크 방식의 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 4a를 참조하면, 불휘발성 메모리(200)는 6개의 드라이브들(SSD1~SSD6)을 포함할 수 있다.
도 4a 내지 4c는 데이터 저장 장치(20)가 스페어 디스크(spare) 방식으로 데이터를 복구하는 동작 방법을 나타낸다.
제1 내지 제6 드라이브(SSD1~SSD6)는 각각 데이터를 저장할 수 있는 복수의 페이지들를 포함할 수 있다. 설명의 편의상 각 페이지 내 표기된 숫자는 상응하는 데이터가 저장된 페이지를 의미하고, 대문자 P는 패리티가 저장된 페이지를 의미하고, R은 빈 페이지를 의미한다.
아래에서, 각 행(row)은 스트라이프(stripe)를 의미하고, 열(column)은 드라이브(drive), 예컨대, SSD를 의미할 수 있다.
도 4a 내지 4c 에서, 싱글(single) 패리티 RAID가 도시되었으나, 본 발명은 이에 한정되지 않으며, 멀티플(multiple) 패리티 RAID으로 확장될 수 있다.
먼저, 도 4a는 데이터 저장 장치(20)의 초기 상태를 도시한다. 데이터 저장 장치(20)가 일반적으로 동작하는 경우, 제6 드라이브(SSD6)은 데이터의 입출력이 없는 아이들(idle) 상태를 유지할 수 있다. 이때, 제6 드라이브(SSD6)는 스페어 디스크(spare disk)를 의미할 수 있다.
데이터들과 패리티들는 제1 내지 제5 드라이브(SSD1~SSD5)의 복수의 페이지들에 저장될 수 있다.
도 4b는, 제3 드라이브(SSD3)가 고장난 데이터 저장 장치(20)의 상태를 도시한다.
고장을 인식한 RAID 컨트롤러(101)은 고장난 제3 드라이브(SSD3)의 데이터들(예컨대, 3, 7, 10, 14, 및 23)를 각 스트라이프의 데이터들과 패리티의 XOR 연산을 통해 복구할 수 있다.
또한, RAID 컨트롤러(101)은 고장난 제3 드라이브(SSD3)의 패리티(예컨대, P5)를 각 스트라이프의 데이터들의 XOR 연산을 통해 복구할 수 있다.
RAID 컨트롤러(101)는 복구된 데이터들 및 복구된 패리티를 스페어 디스크(예컨대, 제6 드라이브)에 라이트할 수 있다.
이후, RAID 컨트롤러(101)는 제3 드라이브(SSD3)으로의 리드 명령이 있는 경우, 제6 드라이브(SSD6)으로 리디렉션(redirection)함으로써, 정상적으로 리드 동작을 수행할 수 있다.
도 4c는, 고장난 제3 드라이브(SSD3)가 정상적인 SSD로 교체된 데이터 저장 장치(20)의 상태를 도시한다.
RAID 컨트롤러(101)는 제3 드라이브(SSD3)의 교체를 인식할 수 있다. 교체를 인식한 RAID 컨트롤러(101)는 제3 드라이브(SSD3)을 스페어 디스크로 지정할 수 있다.
따라서, RAID 컨트롤러(101)는 이후 다른 드라이브가 고장난 경우, 고장난 드라이브에 저장된 데이터들 또는 패리티들을 복구하고, 스페어 디스크로 지정된 제3 드라이브에 라이트 할 수 있다.
도 4a 내지 4c에 도시된 스페어 디스크(spare) 방식으로 데이터를 복구하는 데이터 저장 장치(20)는 평소에 스페어 디스크를 사용하지 않으므로, RAID 컨트롤러(101)는 불휘발성 메모리(200)를 전체적으로 균형있게 사용할 수 없다.
도 5a 내지 5c는 본 발명의 비교 예들에 따른 스페어 영역 방식의 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 5a를 참조하면, 불휘발성 메모리(200)는 6개의 드라이브들(SSD1~SSD6)을 포함할 수 있다.
도 5a 내지 5c는 데이터 저장 장치(20)가 스페어 영역(region) 방식으로 데이터를 복구하는 데이터 저장 장치(20)의 동작 방법을 나타낸다.
설명의 편의를 위하여, 도 4a 내지 4c에 도시된 스페어 디스크 방식으로 데이터를 복구하는 데이터 저장 장치의 동작과의 차이점을 중심으로 설명한다.
도 5a는 데이터 저장 장치(20)의 초기 상태를 도시한다.
도 4a 내지 4c에 도시된 스페어 디스크 방식과 달리, 스페어 영역 방식으로 동작하는 데이터 저장 장치(20)는 별도의 스페어 디스크를 갖지 않는다.
스페어 디스크에 상응하는 스페어 영역(R)들은 도 5a에 도시된 바와 같이, 복수의 드라이브들(SSD1~SS6)에 고르게 분포할 수 있다. 따라서, 데이터들과 패리티들은 제1 내지 제6 드라이브(SSD1~SSD6)의 복수의 페이지들에 저장될 수 있다.
도 5b는, 제3 드라이브(SSD3)가 고장난 데이터 저장 장치(20)의 상태를 도시한다.
고장을 인식한 RAID 컨트롤러(101)은 고장난 제3 드라이브(SSD3)의 데이터들(예컨대, 3, 7, 10, 14, 및 23)를 각 스트라이프의 데이터들과 패리티의 XOR 연산을 통해 복구할 수 있다.
또한, RAID 컨트롤러(101)은 고장난 제3 드라이브(SSD3)의 패리티(예컨대, P5)를 각 스트라이프의 데이터들의 XOR 연산을 통해 복구할 수 있다.
RAID 컨트롤러(101)는 복구된 데이터들 및 복구된 패리티를 스페어 영역(R)에 라이트할 수 있다.
이후, RAID 컨트롤러(101)는 제3 드라이브(SSD3)으로의 리드 명령이 있는 경우, 복구된 데이터가 저장된 페이지로 리디렉션(redirection)함으로써, 정상적으로 리드 동작을 수행할 수 있다.
도 5c는, 고장난 제3 드라이브(SSD3)가 정상적인 SSD로 교체된 데이터 저장 장치(20)의 상태를 도시한다.
RAID 컨트롤러(101)는 제3 드라이브(SSD3)의 교체를 인식할 수 있다. 교체를 인식한 RAID 컨트롤러(101)는 제3 드라이브(SSD3)를 스페어 디스크로 지정하거나, 복수의 드라이브들(SSD1~SSD6)에 스페어 영역(R)이 분포하도록, 데이터들을 이동함으로써 스페어 영역(R)을 도 5a에 도시된 바와 같이, 재설정할 수 있다.
도 5a 내지 5c에 도시된 스페어 영역 방식으로 데이터를 복구하는 데이터 저장 장치(20)는 모든 드라이브들(SSD1~SSD6)을 균형있게 사용한다는 장점이 있으나, 상술한 바와 같이, 스페어 영역(R)을 재설정 하는 과정에서, 다수의 데이터 이동이 발생하는 단점이 있다. 데이터 이동이 발생할수록, NAND 메모리 소자의 마모(wear)가 진행되고, 따라서 드라이브의 수명도 줄어들 수 있다.
도 6a 내지 6f는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도이다. 도 6a 내지 6e에는 메모리 컨트롤러(100) 및 RAID 컨트롤러(101)가 도시되지 않았지만, RAID 컨트롤러(101)는 후술하는 데이터 저장 장치(20)의 동작을 제어할 수 있다.
도 6a를 참조하면, 불휘발성 메모리(200)는 복수의 드라이브들(SSD1~SSD6)을 포함할 수 있다. 도 6a에는 6개의 드라이브들(SSD1~SSD6)이 도시되었으나, 본 발명이 이에 한정되는 것은 아니다.
복수의 드라이브들(SSD1~SSD6)은 복수의 페이지들을 포함할 수 있다. 복수의 페이지들은 데이터 저장 장치(20)의 리드 동작의 기본 단위이며, 데이터 또는 패리티를 저장할 수 있다.
도 6a에 도시된 바와 같이, 데이터들 또는 패리티들은 복수의 드라이브들(SSD1~SSD6)의 복수의 페이지들에 고르게 분포되도록 저장될 수 있다.
불휘발성 메모리(200)는 복수의 스트라이프(Stripe)들을 포함할 수 있다. 스트라이프(Stripe)는 RAID의 복구 동작의 기본 단위로 정의될 수 있다. 또한, 스트라이프는 논리 구조 RAID의 가비지 컬렉션 동작의 기본 단위일 수 있다.
도 6a 내지 6e에서, 스트라이프는 행(row)으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니다.
스트라이프는 패리티를 생성하는데 사용되는 복수의 페이지를 포함할 수 있다.
데이터 저장 장치(20)는 버퍼(미도시)를 더 포함할 수 있다. 버퍼는 메모리 컨트롤러(100)에 포함될 수 있으며 본 발명이 이에 한정되는 것은 아니다.
버퍼에는 복수의 스트라이프들 각각의 상태 정보(SI)가 저장될 수 있다.
RAID 컨트롤러(101)는 상태 정보(SI)를 이용함으로써, 스페어 영역 방식으로 데이터 복구(recovery) 동작을 수행함에도 불구하고, 데이터 이동의 수를 감소시킬 수 있다. 이와 관련된 상세한 내용은 아래에서 설명된다.
먼저, 도 6a에 도시된 바와 같이, 정상적으로 동작하는 데이터 저장 장치(20)의 경우, 불휘발성 메모리(200)에 포함된 복수의 스트라이프들 각각의 상태 정보는 제1 상태(CL)를 나타낼 수 있다. 예컨대, 제1 상태는 스페어 영역 방식으로 데이터들, 패리티들 및 빈 페이지들이 분포된 상태를 의미할 수 있다.
도 6b는 제3 드라이브(SSD3)가 고장난 직후에 데이터 저장 장치(20)의 상태를 나타내는 데이터 표 이다.
도 6b를 참조하면, RAID 컨트롤러(101)는 드라이브의 고장을 감지할 수 있다. RIAD 컨트롤러(101)는 드라이브의 고장을 감지한 경우, 버퍼에 저장된 복수의 스트라이프들 각각의 상태 정보(SI)를 제1 상태(CL)에서 제2 상태(FL)를 나타내도록 변경할 수 있다.
또한, 상태 정보(SI)가 제2 상태(FL)을 나타내는 경우, 상태 정보(SI)는 고장이 발생한 드라이브의 주소에 대한 정보를 포함할 수 있다. 예컨대, 제3 드라이브(SSD3)가 고장난 경우, 복수의 스트라이프들 각각의 상태정보(SI)는 제3 드라이브-제2 상태(FL3)을 나타낼 수 있다.
이때, 고장이 발생한 드라이브의 주소에 대한 정보는 스트라이프 별로 따로 설정된 정보가 아니라, 불휘발성 메모리(200) 전체적으로 공유되는 정보일 수 있다. 따라서, 고장이 발생한 드라이브의 주소에 대한 정보는 글로벌 공유 데이터(Global Shared Data)일 수 있다.
이후, RAID 컨트롤러(101)는 제3 드라이브(SSD3)으로의 리드 명령이 있는 경우, 상술한 바와 같이 데이터를 복구하고, 복구된 데이터를 호스트(10)로 전송함으로써, 정상적으로 리드 동작을 수행할 수 있다.
도 6c는 제3 드라이브(SSD3)가 고장난 경우에 데이터 저장 장치(20)의 상태를 나타내는 데이터 표 이다.
도 6c를 참조하면, RIAD 컨트롤러(101)는 제3 드라이브(SSD3)의 고장을 인식하고, 고장난 제3 드라이브(SSD3)의 데이터들(예컨대, 3, 7, 10, 및 13)를 각 스트라이프의 데이터들과 패리티의 XOR 연산을 통해 복구할 수 있다.
또한, RAID 컨트롤러(101)은 고장난 제3 드라이브(SSD3)에 저장되었던 패리티(예컨대, P6)를 각 스트라이프의 데이터들의 XOR 연산을 통해 복구할 수 있다.
RAID 컨트롤러(101)는 복구된 데이터들 및 복구된 패리티를 스페어 영역(R)에 라이트할 수 있다.
RAID 컨트롤러(101)는 스페어 영역(R)에 복구된 데이터 또는 패리티가 라이트 된 경우, 버퍼에 저장된 복수의 스트라이프들 각각의 상태 정보(SI)를 제2 상태(FL)에서 제3 상태(RB)를 나타내도록 변경할 수 있다.
또한, 상태 정보(SI)가 제3 상태(RB)을 나타내는 경우, 상태 정보(SI)는 고장난 드라이브의 주소에 대한 정보를 포함할 수 있다. 예컨대, 제3 드라이브(SSD3)가 고장난 경우, 복수의 스트라이프들 각각의 상태정보(SI)는 제3 드라이브-제3 상태(RB3)을 나타낼 수 있다.
이후, RAID 컨트롤러(101)는 제3 드라이브(SSD3)으로의 리드 명령이 있는 경우, 복구된 데이터가 저장된 페이지로 리디렉션(redirection)함으로써, 정상적으로 리드 동작을 수행할 수 있다.
도 6d는, 고장난 제3 드라이브(SSD3)가 정상적인 SSD로 교체된 데이터 저장 장치(20)의 상태를 도시한다.
RAID 컨트롤러(101)는 제3 드라이브(SSD3)의 교체를 인식할 수 있다.
RAID 컨트롤러(101)는 드라이브의 교체 이후, 도 6a에 도시된 초기 상태와 같이 스페어 영역이 설정 되면 상태 정보(SI)를 제3 상태(RB)에서 제1 상태(CL)를 나타내도록 변경할 수 있다.
예컨대, 제3 드라이브(SSD3)의 제5 페이지는 기존에 스페어 영역이 설정되었던 위치였으므로, RAID 컨트롤러(101)는 제3 드라이브(SSD3)가 교체되는 경우, 상태 정보(SI)를 제3 드라이브-제3 상태(RB3)에서 제1 상태(CL)를 나타내도록 변경할 수 있다.
도 6e는, 가비지 컬렉션 수행 이후 데이터 저장 장치(20)의 상태를 도시한다.
도 6e를 참조하면, 상술한 바와 같이, RAID 컨트롤러(101)는 가비지 컬렉션을 수행할 수 있다.
RAID 컨트롤러(101)는 데이터 이동의 수를 감소시키기 위하여, 데이터를 별도로 이동시키지 않고, 가비지 컬렉션을 수행할 때, 데이터를 도 6a에 도시된 바와 같이, 초기 위치로 이동시킬 수 있다. 이는 가비지 컬렉션이 스트라이프 단위로 수행되고, 스트라이프에 포함된 복수의 페이지들에 저장된 데이터들의 라이트 동작을 수반하기 때문에 가능하다.
도 6a 및 6e를 참조하면, RAID 컨트롤러(101)는 제1 스트라이프(STP1)에 가비지 컬렉션을 수행할 때, 제5 드라이브(SSD5)의 제1 페이지에 저장되어 있던 데이터(3)를 제3 드라이브(SSD3)의 제1 페이지로 이동할 수 있다. 가비지 컬렉션이 수행될 때, 스트라이프 전체 영역에 대하여 라이트 동작이 수행되기 때문에, RAID 컨트롤러(101)는 추가적으로 라이트 동작(또는 데이터 이동)을 수행할 필요 없이, 스페어 영역 방식을 유지하면서 데이터 복구를 할 수 있다.
도 6f는 모든 스트라이프에 대하여 가비지 컬렉션이 수행되고 난 후 데이터 저장 장치(20)의 상태를 나타낸다.
도 6f를 참조하면, RIAD 컨트롤러(101)가 복수의 스트라이프들(STP1~STP6) 모두에 대하여 가비지 컬렉션을 수행한 경우, 상태 정보(SI)가 모두 제1 상태(CL)를 나타낼 수 있다.
도 6a에 도시된 데이터 저장 장치(20)의 상태와 도 6f에 도시된 데이터 저장 장치(20)의 상태가 동일하므로, 상술한 바와 같이, RIAD 컨트롤러(101)는 별도의 데이터 이동 없이 계속해서 스페어 영역 방식을 유지하면서 데이터 복구를 할 수 있다.
도 7a 및 7b는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도이다.
도 7a는 도 6e에 도시된 데이터 저장 장치(20)의 상태에서 제1 드라이버가 고장난 경우를 나타낸다.
도 7a를 참조하면, RIAD 컨트롤러(101)는 모든 스트라이프들(STP1~STP6)에 대하여 가비지 컬렉션이 완료되기 전에 또 다른 드라이브가 고장나는 경우, 상태 정보(SI)를 변경할 수 있다.
RIAD 컨트롤러(101)는 드라이브의 고장을 감지할 수 있다. 도 6e 및 도 7a를 참조하면, RIAD 컨트롤러(101)는 상술한 바와 같이, 제1 스트라이프(STP1) 및 제5 스트라이프(STP5)에 대한 상태 정보(SI)를 제1 상태(CL)에서 제1드라이브-제2 상태(FL1)로 변경할 수 있다.
RIAD 컨트롤러(101)는 가비지 컬렉션이 수행되지 않은 스트라이프에 대해서 상태 정보를 추가할 수 있다. 예컨대, RIAD 컨트롤러(101)는 제2 내지 제4 스트라이프(STP2~STP4), 및 제6 스트라이프(STP6)에 대한 상태 정보(SI)에 제1 드라이브-제2 상태(FL1)을 추가할 수 있다. 따라서, 제2 내지 제4 스트라이프(STP2~STP4), 및 제6 스트라이프(STP6)에 대한 상태 정보(SI)는 제3 드라이브-제3 상태-제1드라이브-제2 상태(RB3-FL1)가 될 수 있다.
RAID 컨트롤러(101)는 제3 드라이브(SSD3)으로의 리드 명령이 있는 경우, 복구된 데이터가 저장된 페이지로 리디렉션(redirection)함으로써, 정상적으로 리드 동작을 수행할 수 있다.
또한, RAID 컨트롤러(101)는 제1 드라이브(SSD1)으로의 리드 명령이 있는 경우, 데이터들 및 페리티에 대해 XOR 논리 연산을 수행하여 데이터를 복원하고, 복원된 데이터를 호스트(10)로 출력함으로써, 정상적으로 리드 동작을 수행할 수 있다.
발명의 실시 예들에 따라, RAID 컨트롤러(101)는 상태 정보(SI)를 제3 드라이브-제3 상태-제1드라이브-제2 상태(RB3-FL1)에서 제1 드라이브-제2 상태(FL1)로 변경하기 위하여, 스페어 영역(R)을 상술한 바와 같이, 기존의 위치로 이동할 수 있다. 이때, RAID 컨트롤러(101)는 데이터를 가비지 컬렉션을 통해 이동시킬 수 있지만, 본 발명은 이에 한정되는 것은 아니며, 임의로 데이터 이동을 수행할 수 있다.
도 7b는 도 7a의 상태에서 데이터 이동이 완료된 데이터 저장 장치(20)의 상태를 나타낸다.
도 7b를 참조하면, RAID 컨트롤러(101)는 스페어 영역을 기존의 위치로 변경함으로써, 복수의 스트라이프들(STP1~STP6)의 상태 정보(SI)를 제1 드라이브-제2 상태(FL1)로 변경할 수 있다.
이 후에, 제1 드라이브(SSD1)가 정상 드라이브로 교체되는 경우, RAID 컨트롤러(101)는 도 6b에서 설명한 바와 같이 동작할 수 있다. 따라서, RAID 컨트롤러(101)는 계속해서 스페어 영역 방식을 유지하면서 데이터 복구 동작을 수행할 수 있다.
도 8은 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작을 나타내는 블록도 이다.
도 8을 참조하면, RAID 컨트롤러(101)는 제2 드라이브(SSD2)의 성능이 일시적으로 낮아지거나(degrade), 제2 드라이브(SSD2)의 수명을 특별히 연장시켜야 할 필요가 있는 경우, 임의로 제2 드라이브(SSD2)에 저장된 데이터들을 스페어 영역(R)로 이동시키고, 상태 정보(SI)를 제2 드라이브-제3 상태(RB2)으로 변경할 수 있다.
RAID 컨트롤러(101)가 임의로 데이터를 이동시키고, 상태 정보(SI)를 변경함에 따라, 가비지 컬렉션이 수행되어 스페어 영역(R)의 위치가 변경 될 때까지, 제2 드라이브(SSD2)로의 리드/라이트 동작이 제한된다. 따라서, RAID 컨트롤러(101)는 제2 드라이브(SSD2)의 수명을 연장 시킬 수 있다.
상기 동작은 상술한 내용에 한정되지 않으며, RAID 컨트롤러(101)는 필요한 경우, 상기 동작을 반복해서 수행할 수 있다.
도 9는 본 발명의 실시 예들에 따른 데이터 저장 장치의 동작 방법을 나타내는 순서도이다.
도 9를 참조하면, 단계 S110에서, RAID 컨트롤러(101)는 상태 정보(SI)를 제1 상태(CL)로 설정하고, 데이터 저장 장치(20)는 정상적으로 동작할 수 있다.
단계 S120에서, RAID 컨트롤러(101)는 복수의 드라이브들(SSDs) 중 어느 하나에 고장이 발생했는지 여부를 감지할 수 있다.
만약, 고장이 발생한 경우(S120의 YES), 단계 S130에서, RAID 컨트롤러(101)는 상태 정보(SI)를 제2 상태(FL)로 변경하고, 스트라이프(STP) 별로 데이터 복구를 수행할 수 있다.
데이터 복구는 스트라이프의 데이터들 또는 페리티의 XOR 논리 연산을 통해 수행될 수 있다. 이때 복구된 데이터는 스페어 영역에 라이트될 수 있다.
이때, 호스트(10)로부터 고장난 드라이브(SSD)로 리드 요청이 있는 경우, RAID 컨트롤러(101)는 데이터를 복구하고 복구된 데이터를 호스트(10)로 출력할 수 있다.
그러나, 고장이 발생하지 않은 경우(S120의 NO), 데이터 저장 장치(101)는 정상적으로 동작할 수 있다.
단계 S140에서, RAID 컨트롤러(101)는 스트라이프 별로 데이터 복구가 완료되는 경우, 데이터 복구가 완료된 스트라이프에 상응하는 상태 정보(SI)를 제3 상태(RB)로 변경할 수 있다.
이때, 호스트(10)로부터 고장난 드라이브(SSD)로 리드 요청이 있는 경우, RAID 컨트롤러(101)는 리드 요청을 복구된 데이터가 저장된 드라이브(SSD)로 리디렉션(redirection)(예컨대, 연결)할 수 있다.
단계 S145에서, RAID 컨트롤러(101)는 복수의 드라이브들(SSDs) 중 또 다른 하나에 고장이 다시 발생했는지 여부를 감지할 수 있다.
만약, 고장이 또 발생하지 않은 경우(S150의 NO), RAID 컨트롤러(101)는 스트라이프 별로 가비지 컬렉션을 수행할 수 있다. 또한, RAID 컨트롤러(101)는 가비지 컬렉션이 수행되는 스트라이프의 스페어 영역을 기 설정된 드라이브로 이동할 수 있다. 예컨대, 기 설정된 드라이브는 초기에 스페어 영역이 있던 드라이브일 수 있다.
단계 S160에서, RAID 컨트롤러(101)는 스페어 영역이 기 설정된 드라이브로 이동한 스트라이프의 상태 정보(SI)를 제1 상태(CL)로 변경하고, 정상 동작을 할 수 있다.
만약, 고장이 또 발생한 경우(S145의 YES), 단계 S170에서, RAID 컨트롤러(101)는 제3 상태(RB)로 변경된 상태 정보(SI)에 스트라이프(STP) 별로 새롭게 고장이 발생한 드라이브(SSD)에 대한 정보를 추가할 수 있다.
예컨대, 제1 드라이브(SSD1)에 고장이 발생하여 제3 상태(RB3)가 설정된 스트라이프에 대하여, 제3 드라이브(SSD3)에 고장이 또 발생한 경우, RAID 컨트롤러(101)는 상기 스트라이프에 제1 드라이브-제3 상태-제3 드라이브-제2 상태(RB1-FL3)의 상태를 나타내는 상태 정보(SI)를 설정할 수 있다.
단계 S180에서, RAID 컨트롤러(101)는 스트라이프 별로 가비지 컬렉션을 수행할 수 있다. 또한, RAID 컨트롤러(101)는 가비지 컬렉션이 수행되는 스트라이프의 스페어 영역을 기 설정된 드라이브로 이동할 수 있다.
예컨대, 기 설정된 드라이브는 초기에 스페어 영역이 있던 드라이브일 수 있다.
단계 S190에서, RAID 컨트롤러(101)는 스페어 영역이 기 설정된 드라이브로 이동한 스트라이프의 상태 정보(SI)를 변경하고, 단계 S145에서 감시된 드라이브의 고장에 대하여 데이터 복구 동작을 다시 수행할 수 있다. 예컨대, RAID 컨트롤러(101)는 가비지 컬렉션을 통해 스페어 영역을 기 설정된 위치로 이동한 경우, 제1 드라이브-제3 상태-제3 드라이브-제2 상태(RB1-FL3)의 상태를 나타내는 상태 정보(SI)를 제3 드라이브-제2 상태(FL3)으로 변경할 수 있다.
RAID 컨트롤러(101)가 모든 스트라이프에 대하여 상태 정보(SI)를 변경한 후, RAID 컨트롤러(101)는 다시 단계 S130으로 돌아가 데이터 복구를 수행할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1: RAID 시스템
10: 호스트
20: 데이터 저장 장치
100: 메모리 컨트롤러
200: 불휘발성 메모리

Claims (10)

  1. 복수의 스트라이프들을 포함하는 불휘발성 메모리;
    상기 복수의 스트라이프들 각각에 대한 상태 정보를 저장하는 버퍼; 및
    상기 상태 정보에 기초하여, 가비지 커렉션을 이용해 스페어 영역 방식으로 데이터 복구 동작을 수행하는 RAID 컨트롤러가 구현된 메모리 컨트롤러를 포함하고,
    상기 불휘발성 메모리는 복수의 드라이브들을 포함하고,
    상기 상태 정보는 상기 복수의 드라이브들에 고장이 없는 제1 상태, 및 상기 복수의 드라이브 중 적어도 하나에 고장이 발생한 제2 상태 및 상기 고장이 발생한 드라이브에 저장된 데이터가 복구된 제3 상태를 나타내는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 복수의 드라이브들 중 어느 하나가 고장이 발생한 경우, 상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나의 고장을 감지하여, 이를 기초로 상기 상태 신호를 상기 제1 상태로부터 상기 제2 상태로 변경하는 데이터 저장 장치.
  3. 제2항에 있어서,
    상기 RAID 컨트롤러는 상기 고장난 드라이브에 저장된 데이터들 또는 패리티들을 스페어 영역에 복구하고, 데이터가 복구된 상기 스페어 영역의 상기 스트라이프에 상응하는 상태 정보를 상기 제2 상태로부터 상기 제3 상태로 변경하는 데이터 저장 장치.
  4. 제3항에 있어서,
    상기 RAID 컨트롤러는 상기 가비지 컬렉션을 수행할 때, 상기 복구된 데이터들을 이동시킴으로써, 상기 스페어 영역을 기설정된 드라이브로 이동시키고,
    상기 RAID 컨트롤러는 상기 스페어 영역이 상기 기설정된 드라이브에 위치하는 상기 스트라이프에 상응하는 상기 상태 정보를 상기 제3 상태에서 상기 제1 상태로 변경하는 데이터 저장 장치.
  5. 제1항에 있어서,
    상기 제2 상태 또는 상기 제3 상태를 나타내는 상기 상태 정보는 상기 고장이 발생한 드라이브의 주소 정보를 포함하는 데이터 저장 장치.
  6. 제5항에 있어서,
    상기 고장이 발생한 드라이브의 상기 주소 정보는 상기 불휘발성 메모리에서 공유되는 정보인 데이터 메모리 장치.
  7. 제5항에 있어서,
    상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나를 선택하고, 상기 복수의 스트라이프들 중 적어도 하나 이상을 선택하고, 상기 선택된 드라이브와 적어도 하나 이상의 스트라이프에 상응하는 페이지를 상기 스페어 영역으로 만들고, 상기 선택된 적어도 하나 이상의 스트라이프에 상응하는 상기 상태 정보를 상기 제3 상태로 변경하는 데이터 저장 장치.
  8. 제5항에 있어서,
    상기 RAID 컨트롤러는 상기 복수의 드라이브들 중 어느 하나를 선택하고, 상기 선택된 드라이브를 스페어 디스크로 만들고, 상기 상태 정보를 상기 제3 상태로 변경하고, 상기 스페어 디스크는 상기 복수의 스트라이프들 각각에 포함된 모든 상기 스페어 영역을 포함하는 드라이브인 데이터 저장 장치.
  9. 데이터 저장 장치 및 상기 데이터 저장 장치와 통신하는 호스트를 포함하는 RAID 시스템에 있어서, 상기 데이터 저장 장치는
    복수의 스트라이프들 을 포함하는 불휘발성 메모리;
    상기 복수의 스트라이프들 각각에 대한 상태 정보를 저장하는 버퍼; 및
    상기 상태 정보에 기초하여, 가비지 커렉션을 이용해 스페어 영역 방식으로 데이터 복구 동작을 수행하는 RAID 컨트롤러가 구현된 메모리 컨트롤러를 포함하고,
    상기 불휘발성 메모리는 복수의 드라이브들을 포함하고,
    상기 상태 정보는 상기 복수의 드라이브들에 고장이 없는 제1 상태, 및 상기 복수의 드라이브 중 적어도 하나에 고장이 발생한 제2 상태 및 상기 고장이 발생한 드라이브에 저장된 데이터가 복구된 제3 상태를 나타내는 RAID 시스템.
  10. 제9항에 있어서,
    상기 호스트가 상기 고장이 발생한 드라이브에 저장된 데이터를 요청하고, 상기 데이터를 포함하는 상기 스트라이프에 상응하는 상기 상태 신호가 상기 제2 상태인 경우,
    상기 데이터 저장 장치는 상기 스트라이프의 다른 데이터들 및 패리티에 대하여 XOR 논리 연산을 수행함으로써, 상기 요청된 데이터를 복구하고, 상기 호스트로 출력하는 RAID 시스템
KR1020160022158A 2016-02-24 2016-02-24 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 KR102533389B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160022158A KR102533389B1 (ko) 2016-02-24 2016-02-24 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
US15/285,588 US10216578B2 (en) 2016-02-24 2016-10-05 Data storage device for increasing lifetime and RAID system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160022158A KR102533389B1 (ko) 2016-02-24 2016-02-24 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템

Publications (2)

Publication Number Publication Date
KR20170099724A true KR20170099724A (ko) 2017-09-01
KR102533389B1 KR102533389B1 (ko) 2023-05-17

Family

ID=59629966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160022158A KR102533389B1 (ko) 2016-02-24 2016-02-24 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템

Country Status (2)

Country Link
US (1) US10216578B2 (ko)
KR (1) KR102533389B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102421149B1 (ko) * 2018-01-02 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
JP6817242B2 (ja) * 2018-02-26 2021-01-20 Necプラットフォームズ株式会社 ディスクアレイ装置、ディスクアレイ装置の制御方法、及びディスクアレイ装置の制御プログラム
US11068365B2 (en) * 2018-08-23 2021-07-20 Micron Technology, Inc. Data recovery within a memory sub-system without moving or processing the data through a host
CN109445681B (zh) * 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储系统
US11209990B2 (en) * 2019-03-15 2021-12-28 Super Micro Computer, Inc. Apparatus and method of allocating data segments in storage regions of group of storage units
US20200293202A1 (en) * 2019-03-15 2020-09-17 Super Micro Computer, Inc. Apparatus and method of automatic configuration of storage space
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11157363B2 (en) * 2020-03-25 2021-10-26 Dell Products L.P. Distributed raid storage-device-assisted data rebuild system
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
US11144396B1 (en) * 2021-01-27 2021-10-12 Dell Products L.P. Raid reliability with a provisional spare disk
KR102403477B1 (ko) * 2021-11-12 2022-05-30 삼성전자주식회사 스토리지 장치와 이를 포함하는 호스트-스토리지 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110039418A (ko) * 2008-04-06 2011-04-18 퓨전-아이오, 인크. 저장 요청을 첨부 데이터 저장 명령으로 변환하는 장치,시스템,및 방법
KR20110089972A (ko) * 2010-02-02 2011-08-10 삼성전자주식회사 메모리 장치
KR20150052402A (ko) * 2013-11-04 2015-05-14 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960169A (en) 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
US6742081B2 (en) 2001-04-30 2004-05-25 Sun Microsystems, Inc. Data storage array employing block checksums and dynamic striping
US7055058B2 (en) 2001-12-26 2006-05-30 Boon Storage Technologies, Inc. Self-healing log-structured RAID
US7058762B2 (en) 2003-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Method and apparatus for selecting among multiple data reconstruction techniques
US7266668B2 (en) * 2003-11-24 2007-09-04 Copan Systems Inc. Method and system for accessing a plurality of storage devices
US8195978B2 (en) 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
US20110202722A1 (en) * 2010-01-19 2011-08-18 Infinidat Ltd. Mass Storage System and Method of Operating Thereof
US8527698B2 (en) 2010-06-22 2013-09-03 Lsi Corporation Parity-based raid system configured to protect against data corruption caused by the occurrence of write holes
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8977893B2 (en) 2012-02-17 2015-03-10 Lsi Corporation Accelerated rebuild and zero time rebuild in raid systems
US20140215147A1 (en) 2013-01-25 2014-07-31 Hewlett-Packard Development Company, L.P. Raid storage rebuild processing
GB2513377A (en) 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110039418A (ko) * 2008-04-06 2011-04-18 퓨전-아이오, 인크. 저장 요청을 첨부 데이터 저장 명령으로 변환하는 장치,시스템,및 방법
KR20110089972A (ko) * 2010-02-02 2011-08-10 삼성전자주식회사 메모리 장치
KR20150052402A (ko) * 2013-11-04 2015-05-14 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법

Also Published As

Publication number Publication date
US20170242752A1 (en) 2017-08-24
KR102533389B1 (ko) 2023-05-17
US10216578B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
KR102533389B1 (ko) 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
KR102580123B1 (ko) Raid 스토리지 장치 및 그것의 관리 방법
US10379948B2 (en) Redundancy coding stripe based on internal addresses of storage devices
US8819338B2 (en) Storage system and storage apparatus
US8130554B1 (en) Securely erasing flash-based memory
US8850114B2 (en) Storage array controller for flash-based storage devices
CN112597069A (zh) 存储系统、主机系统和存储系统的操作方法
KR102435890B1 (ko) 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법
US9842024B1 (en) Flash electronic disk with RAID controller
US10409683B2 (en) Data storage system configured to perform data rebuild operation via reduced read requests
CN110895448B (zh) 用于管理存储器系统中的有效数据的设备和方法
KR20130097995A (ko) 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
US20200034081A1 (en) Apparatus and method for processing data in memory system
US9223655B2 (en) Storage system and method for controlling storage system
US11487663B2 (en) Method of operating storage device, storage device performing the same and storage system including the same
US20210103517A1 (en) Operating method of memory system and host recovering data with write error
US10642531B2 (en) Atomic write method for multi-transaction
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11256435B2 (en) Method and apparatus for performing data-accessing management in a storage server
CN113687769A (zh) 用于提高数据处理系统中的操作效率的设备和方法
KR20220086934A (ko) 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법
CN117234430B (zh) 一种缓存框架、数据处理方法、装置、设备和存储介质
WO2024108349A1 (zh) 存储系统和存储系统的操作方法
KR20240053298A (ko) 호스트와 메모리 시스템에서 맵데이터를 관리하는 장치 및 방법
JP2014178867A (ja) ストレージ制御装置、及びストレージ制御システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal