KR20180051868A - 비휘발성 메모리를 포함하는 raid 시스템 - Google Patents

비휘발성 메모리를 포함하는 raid 시스템 Download PDF

Info

Publication number
KR20180051868A
KR20180051868A KR1020160148741A KR20160148741A KR20180051868A KR 20180051868 A KR20180051868 A KR 20180051868A KR 1020160148741 A KR1020160148741 A KR 1020160148741A KR 20160148741 A KR20160148741 A KR 20160148741A KR 20180051868 A KR20180051868 A KR 20180051868A
Authority
KR
South Korea
Prior art keywords
rebuild
rate
raid
host
raid controller
Prior art date
Application number
KR1020160148741A
Other languages
English (en)
Other versions
KR102611571B1 (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 KR1020160148741A priority Critical patent/KR102611571B1/ko
Priority to US15/645,248 priority patent/US10387245B2/en
Publication of KR20180051868A publication Critical patent/KR20180051868A/ko
Application granted granted Critical
Publication of KR102611571B1 publication Critical patent/KR102611571B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

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

Abstract

비휘발성 메모리를 포함하는 RAID 시스템이 제공된다. RAID 시스템은 RAID로 구성되고, 데이터 청크와, 상기 데이터 청크에 대응하는 제1 및 제2 패리티를 저장하는 복수의 비휘발성 메모리를 포함하는 메모리 장치, 상기 메모리 장치의 RAID 동작 및 리빌드(rebuild) 동작을 제어하는 RAID 컨트롤러, 및 상기 RAID 컨트롤러와 I/O(Input/Output) 레이트로 통신하는 호스트를 포함하되, 상기 RAID 컨트롤러는, 상기 메모리 장치에 저장된 제1 패리티를 이용한 제1 리빌드 동작에서, 제1 리빌드 레이트(rebuild rate)를 갖는 제1 리빌드 관리 정책을 이용하여 상기 제1 리빌드 동작을 수행하고, 상기 메모리 장치에 저장된 제1 및 제2 패리티 비트를 이용한 제2 리빌드 동작에서, 상기 제1 리빌드 레이트와 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 이용하여 상기 제2 리빌드 동작을 수행하고, 상기 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고, 상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용한다.

Description

비휘발성 메모리를 포함하는 RAID 시스템{RAID SYSTEM INCLUDING NONVOLATIME MEMORY}
본 발명은 RAID 시스템에 관한 것이며, 더욱 구체적으로는 비휘발성 메모리를 포함하는 RAID 시스템에 관한 것이다.
RAID(Redundant Array of Inexpensive Disk)는 중요한 데이터를 가지고 있는 서버 등의 저장 매체에서 주로 사용되는 방법으로, 여러 저장 매체 중 하나의 저장 매체에 패리티(parity)를 저장하여 다른 저장 매체에 저장된 데이터에서 오류가 발생하더라도 이를 정상적인 데이터로 복원할 수 있는 방법이다. 이러한 RAID를 이용하게되면 입출력 작업의 균형을 이룰 수 있고 서버의 전체적인 성능이 개선될 수 있다.
한편, 데이터의 완전성을 보장하기 위한 시스템에서는 이러한 RAID의 구성 중 패리티 비트를 분산하여 저장하는 RAID 레벨 5 또는 RAID 레벨 6의 시스템이 사용되고 있다. RAID 레벨 5는 데이터 청크 당 하나의 패리티 비트가 분산되어 저장되는 방식이고, RAID 레벨 6은 데이터 청크 당 두 개의 패리티 비트가 분산되어 저장되는 방식이다. 이 중 RAID 레벨 6은 두 개의 드라이브에 고장이 발생하는 경우에도 두 개의 패리티 비트를 이용하여 고장난 드라이브의 데이터를 리빌드(rebuild)할 수 있다.
이러한 리빌드 과정은, 패리티 비트 및 전체 RAID 시스템에 포함된 데이터에 접근하여 손실된 데이터를 생성하는 작업이므로, 리빌드 과정에 소요되는 시간이 길뿐만 아니라 전체 RAID 시스템의 I/O 성능에도 큰 영향을 미칠 수 있다. 따라서 리빌드에 필요한 I/O 대역폭과, 통상적인 I/O의 대역폭을 조절하여 전체적인 시스템 성능을 확보하는 동시에 신속하게 데이터를 복구하기 위한 리빌드 정책이 필요할 수 있다.
본 발명이 해결하고자 하는 기술적 과제는, RAID 시스템에 포함된 SSD의 고장 정도에 따라 리빌드 관리 정책을 달리 하여 신속한 데이터 복구 및 시스템 성능이 보장되는 RIAD 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 RAID 시스템은 RAID로 구성되고, 데이터 청크와, 상기 데이터 청크에 대응하는 제1 및 제2 패리티를 저장하는 복수의 비휘발성 메모리를 포함하는 메모리 장치, 상기 메모리 장치의 RAID 동작 및 리빌드(rebuild) 동작을 제어하는 RAID 컨트롤러, 및 상기 RAID 컨트롤러와 I/O(Input/Output) 레이트로 통신하는 호스트를 포함하되, 상기 RAID 컨트롤러는, 상기 메모리 장치에 저장된 제1 패리티를 이용한 제1 리빌드 동작에서, 제1 리빌드 레이트(rebuild rate)를 갖는 제1 리빌드 관리 정책을 이용하여 상기 제1 리빌드 동작을 수행하고, 상기 메모리 장치에 저장된 제1 및 제2 패리티 비트를 이용한 제2 리빌드 동작에서, 상기 제1 리빌드 레이트와 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 이용하여 상기 제2 리빌드 동작을 수행하고, 상기 RAID 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고, 상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 RAID 시스템은, 호스트, 및 상기 호스트와 커플링되는 복수의 SSD(Solid State Drive)를 포함하되, 상기 복수의 SSD는, RAID로 구성되고, 데이터 청크와, 상기 데이터 청크에 대응하는 제1 및 제2 패리티를 저장하는 복수의 비휘발성 메모리, 상기 복수의 비휘발성 메모리의 RAID 동작 및 리빌드(rebuild) 동작을 제어하는 RAID 컨트롤러를 포함하되, 상기 RAID 컨트롤러는, 상기 복수의 비휘발성 메모리에 저장된 제1 패리티를 이용한 제1 리빌드 동작에서, 제1 리빌드 레이트(rebuild rate)를 갖는 제1 리빌드 관리 정책을 이용하여 상기 제1 리빌드 동작을 수행하고, 상기 복수의 비휘발성 메모리에 저장된 제1 및 제2 패리티 비트를 이용한 제2 리빌드 동작에서, 상기 제1 리빌드 레이트와 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 이용하여 상기 제2 리빌드 동작을 수행하고, 상기 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고, 상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용하고, 상기 RAID 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고, 상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 RAID 시스템의 블록도이다.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 RAID 시스템이 수행하는 리빌드 동작을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 RAID 시스템이 수행하는 제1 및 제2 리빌드 동작을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 RAID 시스템이 수행하는 제1 및 제2 리빌드 동작을 설명하기 위한 그래프이다.
도 5는 본 발명의 실시예에 따른 RAID 시스템에서, 앞에서 설명한 리빌드 동작과는 다른 동작을 설명하는 그래프이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 RAID 시스템에서, 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 결정하는 동작을 설명하기 위한 그래프이다.
도 7은 본 발명의 다른 실시예에 따른 RAID 시스템을 설명하기 위한 블록도이다.
도 8은 본 발명의 또 다른 실시예에 따른 RAID 시스템을 설명하기 위한 블록도이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 블록도이다.
이하에서, 도 1 내지 도 9를 참조하여, 본 발명의 몇몇 실시예에 따른 RAID 시스템에 대해 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 RAID 시스템의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 RAID 시스템(1)은 메모리 시스템(100) 및 RAID 컨트롤러(200)를 포함한다.
메모리 시스템(100)은 예를 들어, 복수의 비휘발성 메모리 칩들을 포함할 수 있다. 그리고 이러한 복수의 비휘발성 메모리 칩들은 예를 들어, 제1 내지 제k 채널들(CH1~CHk)을 통해 RAID 컨트롤러(200)와 통신할 수 있다.
본 발명의 몇몇 실시예에서, 메모리 시스템(100)가 포함하는 복수의 비휘발성 메모리 칩들은, 각각 하나의 SSD(Solid State Drive)일 수도 있다. 즉, 메모리 시스템(100)는 하나의 RAID로 구성된 복수의 SSD를 포함할 수 있다.
RAID 컨트롤러(200)는 호스트(HOST) 및 메모리 시스템(100)에 커플링될 수 있다. 호스트(HOST)로부터의 요청에 응답하여, RAID 컨트롤러(200)는 비휘발성 메모리 장치(100)를 액세스하도록 구성될 수 있다. 예를 들어, RAID 컨트롤러(200)는 비휘발성 메모리 장치(100)의 리드, 라이트, 이레이즈, 및 배경(background) 동작을 제어하도록 구성될 수 있다.
도면에 명확하게 도시하지는 않았으나, RAID 컨트롤러(200)는 비휘발성 메모리 장치(100) 및 호스트(HOST) 사이에서 인터페이스를 제공하도록 구성될 수 있다. 또한, RAID 컨트롤러(200)는 비휘발성 메모리 장치(100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성될 수 있다.
예시적으로, RAID 컨트롤러(200)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 그리고 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 더 포함할 수 있다. 여기서, 램(RAM)은 프로세싱 유닛의 동작 메모리, 비휘발성 메모리 장치(100) 및 호스트(HOST) 사이의 캐시 메모리, 그리고 비휘발성 메모리 장치(100) 및 호스트(HOST) 사이의 버퍼 메모리 중 적어도 하나로서 이용될 수 있고, 프로세싱 유닛은 RAID 컨트롤러(200)의 제반 동작을 제어할 수 있다.
한편 본 실시예에 따른 RAID 컨트롤러(200)는, 메모리 시스템(100)에 대해 RAID 리빌드(rebuild)를 수행할 수 있다. 구체적으로, RAID 컨트롤러(200)는 메모리 시스템(100)에 대해 스트라이프(stripe) 단위로 RAID 리빌드를 수행할 수 있다.
본 실시예에 따른 RAID 시스템(1)의 구성과 관련하여 도 2a 내지 도 2c를 참조하여 설명한다.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 RAID 시스템(1)이 수행하는 리빌드 동작을 설명하기 위한 개념도이다.
도 2a를 참조하면, 본 발명의 일 실시예에 따른 RAID 시스템(1)에 포함된 메모리 시스템(100)은 데이터를 저장하고 있는 복수의 메모리 칩(CHIP1~CHIP10)을 포함할 수 있다. 더욱 구체적으로, 본 발명의 데이터를 저장하고 있는 8 개의 비휘발성 메모리(CHIP1~CHIP8)와, 고장 발생 시 데이터를 리빌드하여 저장하기 위해 포함되는 2 개의 스페어(spare) 비휘발성 메모리(CHIP9, CHIP10)를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 데이터를 저장하기 위한 8 개의 비휘발성 메모리(CHIP1~CHIP8)의 개수는 예시적인 것이며, 본 발명이 이에 제한되는 것은 아니다. RAID 시스템의 구성에 따라, 데이터 청크(chunk)를 구성하는 데이터가 저장되는 비휘발성 메모리의 개수는 얼마든지 달라질 수 있음은 통상의 기술자에게 자명할 것이다.
본 발명의 일 실시예에 따른 RAID 시스템에 포함된 각각의 비휘발성 메모리 칩(CHIP1~10)은, 도 2a 내지 도 2c에 도시된 데이터 구조에서 각각의 행(row)으로 구분되는 스트라이프(stripe)를 포함할 수 있다. 본 발명의 일 실시예에서, 하나의 스트라이프는 6 개의 데이터 청크(DATA CHUNK)와, 2 개의 패리티(PARITY)를 포함할 수 있다. 도 2a 내지 도 2c에서, 데이터 청크는 D1~D48, 2 개의 패리티는 P1~P43, Q1~Q43으로 각각 나타내었다.
2 개의 스페어 비휘발성 메모리(CHIP9, CHIP10)는 데이터 청크 및 패리티를 저장하고 있는 8 개의 비휘발성 메모리(CHIP1~CHIP8)의 고장 발생 시 리빌드된 데이터를 저장한다. 도 2a에서는, 고장 발생 및 이에 대응하는 리빌드의 수행 전이므로, 2 개의 스페어 비휘발성 메모리(CHIP9, CHIP10)의 저장 공간(S)은 비어있다.
도 2b를 참조하면, 예를 들어 RAID 시스템에 포함된 제1 비휘발성 메모리(CHIP5)에 고장 발생 시, RAID 컨트롤러(200)는 제1 비휘발성 메모리(CHIP5)의 리빌드 동작을 개시한다. 이하에서, 설명의 편의를 위해 고장이 발생한 비휘발성 메모리(CHIP5)를 제1 비휘발성 메모리로 지칭한다.
도 2b에서 도시된 것과 같이 제1 비휘발성 메모리(CHIP5)에만 고장이 발생하였으므로, RAID 컨트롤러(200)는 고장이 발생하지 않은 비휘발성 메모리(CHIP1~4, CHIP6~8)에 포함된 데이터와, 하나의 패리티(P parity)만을 이용하여 제1 비휘발성 메모리(CHIP5)의 데이터를 스페어 비휘발성 메모리(CHIP9)에 차례로 리빌드하여 저장한다.
즉, 본 발명의 일 실시예에 따른 RAID 시스템(1)은, 메모리 시스템을 구성하는 비휘발성 메모리 중 하나에 고장이 발생한 경우, 하나의 패리티(예를 들어, P parity 만)를 사용하여 리빌드 동작을 수행한다.
본 발명의 일 실시예에서, RAID 컨트롤러(200)는 하나의 비휘발성 메모리에 고장 발생 시, 하나의 패리티(예를 들어 P parity 만)을 사용하여 제1 리빌드 동작을 수행할 수 있다.
이어서, 도 2c를 참조하면, 제1 비휘발성 메모리(CHIP5)의 리빌드 도중, 또 다른 제2 비휘발성 메모리(CHIP2)에 고장이 발생할 수 있다. 이 경우, 고장이 발생한 두 개의 비휘발성 메모리(CHIP2, 5)에 대하여 동시에 리빌드 동작이 수행되어야 한다. 또한 두 개의 비휘발성 메모리(CHIP2, 5)에 저장되어 있던 데이터를 리빌드하기 위하여, 두 개의 패리티(P, Q)를 이용하여 리빌드 동작이 수행된다. 이하에서, 설명의 편의를 위해 고장이 발생한 제1 비휘발성 메모리(CHIP5)를 제1 비휘발성 메모리로 지칭한다.
본 발명의 일 실시예에서, RAID 컨트롤러(200)는 두 개의 비휘발성 메모리에 고장이 발생하는 경우 두 개의 패리티(P, Q)를 사용하여 제2 리빌드 동작을 수행할 수 있다.
도 2c에서, 고장이 발생한 두 개의 비휘발성 메모리(CHIP2, 5)의 리빌드 동작이 완료되어 스페어 비휘발성 메모리(CHIP9, CHIP10)에 리빌드된 데이터가 저장되어 있는 것이 도시된다. 여기서 RAID 컨트롤러(200)의 제1 리빌드 동작을 통해 리빌드된 데이터(10)와, 제2 리빌드 동작을 통해 리빌드된 데이터(20)가 구분되어 표시되었다. 이하에서, 설명의 편의를 위해 고장이 발생한 두 번째 제2 비휘발성 메모리(CHIP2)를 제2 비휘발성 메모리로 지칭한다.
본 발명의 몇몇 실시예에서, 제1 리빌드 동작과 제2 리빌드 동작은 서로 다른 환경에서 수행될 수 있다. 더욱 구체적으로, RAID 컨트롤러(200)는 제1 리빌드 동작과 제2 리빌드 동작에서 서로 다른 리빌드 레이트(rebuild rate)를 갖는 리빌드 관리 정책(rebuild management policy)를 이용하여 리빌드 동작을 제어할 수 있다.
이는 다음과 원인 때문일 수 있다. 본 발명의 일 실시예에 따른 RAID 시스템(1)은, 복수의 비휘발성 메모리를 묶어 데이터 액세스 요청에 따라 동시에 복수의 비휘발성 메모리로 입출력을 할 수 있도록 구성되어 단일의 시스템 구성보다는 빠를 수 있다. 다만 RAID 시스템이라 할지라도, 데이터를 내부적 또는 외부적으로 액세스할 수 있는 입출력(I/O) 대역폭(bandwidth) 또는 쓰루풋(throughput)에는 한계가 존재한다.
RAID 시스템(1)에서 리빌드 동작이 수행되는 경우, RAID 시스템(1) 외부로는 드러나지 않지만 내부적으로 손상된 비휘발성 메모리의 데이터를 리빌드하여 저장하기 위한 데이터의 리드(read), 라이트(write) 동작 및 패리티와 비교하는 동작이 지속적으로 수행될 것이다. 따라서 리빌드 동작은 호스트(HOST)로부터의 메모리 장치(100)의 접근에 대한 대역폭 및 응답 속도에 영향을 미칠 수 있다.
따라서, 본 발명의 실시예에 따른 RAID 시스템(1)은, 서로 다른 리빌드 레이트를 갖는 제1 리빌드 동작과 제2 리빌드 동작을 수행하여, RAID 시스템(1)의 대역폭 및 쓰루풋에 가급적 적게 영향을 미치면서 리빌드 동작을 수행할 수 있다.
다시 도 1을 참조하면, 호스트 인터페이스는 호스트(HOST) 및 RAID 컨트롤러(200) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함할 수 있다. 예시적으로, RAID 컨트롤러(200)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(HOST)와 통신하도록 구성될 수 있다.
본 실시예에서, RAID 컨트롤러(200) 및 메모리 시스템(100)은 하나의 반도체 장치로 집적될 수 있다. 예시적으로, RAID 컨트롤러(200) 및 메모리 시스템(100)은 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다.
한편, RAID 컨트롤러(200) 및 메모리 시스템(100)은 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. RAID 컨트롤러(200)와 메모리 시스템(100)이 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD)로 이용되는 경우, 비휘발성 메모리 시스템에 연결된 호스트(HOST)의 동작 속도는 획기적으로 개선될 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니고, RAID 컨트롤러(200)와 메모리 시스템(100)은 탈착 가능하도록 물리적으로 분리되어 구성될 수 있다.
이와는 달리, RAID 컨트롤러(200) 및 메모리 시스템(100)은 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
다른 예로서, 비휘발성 메모리 시스템은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
예시적으로, 비휘발성 메모리 장치(100) 또는 비휘발성 메모리 시스템은 다양한 형태들의 패키지화 될 수 있다. 예를 들어, 비휘발성 메모리 장치(100) 또는 비휘발성 메모리 시스템은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화될 수 있다.
도 3은 본 발명의 일 실시예에 따른 RAID 시스템(1)이 수행하는 제1 및 제2 리빌드 동작을 설명하기 위한 순서도이고, 도 4는 본 발명의 일 실시예에 따른 RAID 시스템(1)이 수행하는 제1 및 제2 리빌드 동작을 설명하기 위한 그래프이다.
도 2a 내지 2c 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 RAID 시스템(1)에 포함되는 RAID 컨트롤러(200)는, 제1 비휘발성 메모리에 고장 발생 여부를 판단하고(S100), 제1 리빌드 관리 정책으로 제1 비휘발성 메모리의 리빌드를 시작한다(S110). 제1 리빌드 동작의 수행 도중 제2 비휘발성 메모리의 고장 발생 여부를 판단하고(S120), 제2 비휘발성 메모리의 고장 발생 시 제2 리빌드 관리 정책으로 제1 및 제2 비휘발성 메모리의 리빌드를 시작한다(S130). 제1 및 제2 비휘발성 메모리의 리빌드가 완료될 때까지, 본 발명의 실시예에 따른 RAID 시스템(1)은 리빌드 동작을 계속한다(S140).
RAID 컨트롤러(200)는 메모리 시스템(100)의 동작을 제어하면서, 메모리 시스템(100) 및 이에 포함된 비휘발성 메모리(CHIP1~CHPI10) 중 데이터가 저장된 비휘발성 메모리(CHIP1~CHIP8)의 이상 여부를 모니터링한다(S100). RAID 컨트롤러(200)가 비휘발성 메모리(CHIP1~CHIP8)의 이상 여부를 모니터링하여 고장 발생 여부를 판단하는 것은, 비휘발성 메모리(CHIP1~CHIP8)의 S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology) 정보를 모니터링하는 것일 수 있다. 더욱 구체적으로, RAID 컨트롤러(200)는 SMART 정보 중 재할당된 섹터수(reallocated sector count), 로우 읽기 에러 발생 비율(raw read error rate) 등의 수치를 모니터링하고, 이들 수치가 소정의 기준값을 넘는 경우에 고장 발생 여부를 결정할 수 있다.
이 때, 비휘발성 메모리(CHIP1~CHIP8)의 중 하나의 비휘발성 메모리(예를 들어, CHIP5)에서 고장 여부가 감지되면, RAID 컨트롤러(200)는 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 이용하여 제1 리빌드 동작을 수행한다(S110).
이 때, RAID 컨트롤러(200)의 제1 리빌드 동작은 도 4에 도시된 그래프와 같이 수행될 수 있다. 제1 고장(1st failure)가 발생한 직후 제1 리빌드 관리 정책을 이용하여 제1 리빌드 동작이 수행되는데, 이 때의 제1 리빌드 레이트(RR1)와 제1 리빌드 동작의 리빌드 진행도(RP1)가 도시된다.
도 4에 도시된 것과 같이, 본 발명의 일 실시예에 따른 RAID 시스템(1)에 포함된 RAID 컨트롤러(100)의 제1 리빌드 동작의 제1 리빌드 레이트(RR1)는, 제1 리빌드 동작 동안 일정할 수 있다.
한편, RAID 컨트롤러(200)는 제1 리빌드 동작을 수행하면서, 메모리 시스템(100) 및 비휘발성 메모리(CHIP1~CHIP4, CHIP6~8의 이상 여부를 모니터링한다(S120).
이 때, 비휘발성 메모리(CHIP1~4, CHIP6~8) 중 하나의 비휘발성 메모리(예를 들어, CHIP2)에서 고장 여부가 감지되면, RAID 컨트롤러(200)는 제2 리빌드 레이트를 갖는 제2 리빌드 동작을 수행한다(S130).
이 때, RAID 컨트롤러(200)의 제2 리빌드 동작은 도 4에 도시된 그래프와 같이 수행될 수 있다. 제2 고장(2nd failure)가 발생한 직후 제2 리빌드 관리 정책을 이용하여 제1 리빌드 동작이 수행되는데, 이 때의 제2 리빌드 레이트(RR2)와 제2 리빌드 동작의 리빌드 진행도(RP2)가 도시된다.
도 4에 도시된 것과 같이, 본 발명의 일 실시예에 따른 RAID 시스템(1)에 포함된 RAID 컨트롤러(100)의 제2 리빌드 동작의 제2 리빌드 레이트(RR2)는, 제2 리빌드 동작 동안 일정할 수 있다. 특히, 제2 리빌드 동작의 제2 리빌드 레이트(RR2)는 제1 리빌드 동작에서의 제1 리빌드 레이트(RR1)보다 클 수 있으며, 제2 리빌드 레이트(RR2)는 RAID 시스템(1)이 규정한 최대 리빌드 레이트와 동일할 수 있다.
이는 다음과 같은 이유에 의한 것일 수 있다. 하나의 비휘발성 메모리 칩(예를 들어, CHIP5)만에 고장이 발생하여 제1 리빌드 동작이 수행되고 있는 도중에는, RAID 시스템(1)에 미치는 입출력 레이트의 영향을 감소시키기 위하여 제1 리빌드 레이트(RR1)는 가급적 적도록 유지될 수 있다.
또한, 본 발명의 실시예에 따른 RAID 시스템(1)에 포함된 메모리 시스템(100)에는, 위에서 설명한 것과 같이 두 개의 패리티(P, Q)가 포함된다. 따라서, 최대 두 개의 비휘발성 메모리에 고장이 발생한 경우에도 두 개의 패리티(P, Q)를 이용하여 데이터를 리빌드할 수 있기 때문에, 제1 리빌드 동작이 수행되고 있는 동안에도 비휘발성 메모리의 추가적인 고장에 대한 여유가 존재하고, 고장이 발생한 비휘발성 메모리의 즉각적인 리빌드의 필요성은 상대적으로 작은 편이다.
따라서, 리빌드로 인한 RAID 시스템(1)의 I/O의 대역폭 또는 쓰루풋에 미치는 영향을 최소화하기 위하여, 제1 리빌드 레이트(RR)는 RAID 시스템(12)의 최대 리빌드 레이트보다 적게 설정된다.
한편, 제1 리빌드 동작의 진행 중 추가적인 비휘발성 메모리의 고장이 발생한 경우에는, 이미 두 개의 비휘발성 메모리에 고장이 발생하였으므로 두 개의 패리티(P, Q)로 데이터를 리빌드할 수 있는 최대 비휘발성 메모리에 도달한다. 이에 더하여 세 개째의 비휘발성 메모리 고장이 발생하면 해당 메모리에 저장된 데이터는 리빌드가 불가능하여 손실될 수밖에 없다.
따라서, 제2 리빌드 동작은, 제2 리빌드 동작에 의해 발생하는 RAID 시스템(1)의 I/O 대역폭 또는 쓰루풋에 미치는 영향을 고려하지 않을 수 있다. 즉, RAID 시스템(1)에 규정된 최대의 리빌드 레이트를 갖도록 제2 리빌드 관리 정책이 적용되고, RAID 시스템(1)이 최대한 빠르게 리빌드될 수 있다.
요약하면, 본 발명의 실시예에 따른 RAID 시스템(1)은, RAID 시스템(1)의 I/O 대역폭 또는 쓰루풋에 미치는 영향이 중요한 제1 리빌드 동작에서는, 제1 리빌드 레이트(RR1)을 갖는 제1 리빌드 관리 정책을 적용하여 제1 리빌드 동작을 수행한다.
한편, RAID 시스템(1)은 빠른 리빌드가 중요한 제2 리빌드 동작에서는, 제1 리빌드 레이트(RR1)와 다른 제2 리빌드 레이트(RR2)를 갖는 제2 리빌드 관리 정책을 적용하여 제2 리빌드 동작을 수행한다. 본 발명의 몇몇 실시예에서, 제2 리빌드 레이트(RR2)는 제1 리빌드 레이트(RR1)보다 클 수 있으며, 더욱 구체적으로 제2 리빌드 레이트(RR2)는 RAID 시스템(1)의 최대 리빌드 레이트와 동일할 수 있다.
도 5는 본 발명의 실시예에 따른 RAID 시스템(1)에서, 위에서 설명한 리빌드 동작과는 다른 동작을 설명하는 그래프이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 RAID 시스템(1)은, 리빌드 동작에 적용되는 리빌드 관리 정책, 구체적으로 리빌드 관리 정책이 갖는 리빌드 레이트가 앞서 설명한 실시예와는 다를 수 있다.
더욱 구체적으로, RAID 시스템(1)이 수행하는 제1 리빌드 동작의 리빌드 레이트(RR1)는, RAID 시스템(1)의 외부 I/O 레이트(IR)에 따라 변화할 수 있다. 여기서 RAID 시스템(1)의 외부 I/O 레이트(IR)는, RAID 시스템(1)과 호스트(HOST), 즉 RAID 시스템(1)과 외부 장치 간의 데이터 전송 속도를 의미한다. RAID 시스템(1)은 제1 리빌드 동작이 수행되는 도중에도 호스트(HOST)의 요청에 따라 외부와 입출력 신호를 주고 받을 수 있다. 이 때, RAID 시스템(1)의 제1 리빌드 동작의 리빌드 레이트(RR1)은, RAID 시스템(1)의 외부 I/O 레이트(IR)에 반비례하여 변화하도록 설정될 수 있다.
즉, 앞서 서술한 것과 같이, 제1 리빌드 동작은 RAID 시스템(1)의 I/O 대역폭 또는 쓰루풋에 미치는 영향을 줄이기 위해 최대 리빌드 레이트보다 작은 제1 리빌트 레이트를 갖는 제1 리빌드 관리 정책이 적용될 수 있다. 그런데, 제1 리빌드 레이트에 의해 영향을 받는 RAID 시스템(1)의 I/O 대역폭 또는 쓰루풋 상에 여유가 있는 경우에는, 제1 리빌드 레이트를 작게 유지하지 않을 수도 있다. 즉, 제1 리빌드 관리 정책은 RAID 시스템(1)의 I/O 레이트(IR)에 반비례하여 제1 리빌드 레이트(RR1)을 조절하는 것을 포함할 수 있다.
도 5에서 도시된 것과 같이, 제1 리빌드 동작 동안에, RAID 시스템(1)의 I/O 레이트(IR) 감소함에 따라, 제1 리빌드 레이트(RR1)이 이에 반비례하여 증가한다.
한편, 제2 리빌드 동작 동안에, RAID 시스템(1)의 I/O 레이트(IR)의 변화에 관계없이, 제2 리빌드 레이트(RR2)는 변화하지 않는다. 두 개의 비휘발성 메모리의 고장 발생으로 인하여 수행되는 제2 리빌드 동작에서, 신속한 리빌드가 우선되지 않으면 데이터의 손실로 이어질 수 있는 것은 앞에서 살펴본 바와 같다. 따라서 RAID 시스템(1)의 I/O 레이트(IR)의 변화에도 불구하고 제2 리빌드 레이트(RR2)일정한 값으로 유지될 수 있다. 본 발명의 몇몇 실시예에서, 제2 리빌드 관리 정책은 제2 리빌드 레이트(RR2)는 최대 리빌드 레이트로 유지하는 것을 포함할 수 있다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 RAID 시스템(1)에서, 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 결정하는 동작을 설명하기 위한 그래프이다.
먼저 도 6a를 참조하면, RAID 시스템(1)의 제1 리빌드 동작이 실행에 의하여 영향을 받는, RAID 시스템(1)의 I/O 레이트(Normal I/O rate)의 변화를 나타낸 것이다. 도 6a에서 R1 그래프는 제1 리빌드 레이트가 R1일 때의 RAID 시스템(1)의 I/O 레이트 변화를 나타낸 것이며, R2 그래프는 제1 리빌드 레이트가 R2(R1 > R2)일 때의 RAID 시스템(1)의 I/O 레이트 변화를 나타낸 것이다.
도 6a에 도시된 것과 같이, RAID 시스템(1)의 제1 리빌드 레이트를 각각 R1 및 R2로 달리하는 것은 서로 다른 RAID 시스템(1)의 I/O 레이트의 그래프를 형성할 수 있다.
도 6a에서 시간 t1에서 제1 비휘발성 메모리에 고장이 발생하였을 때, R1 및 R2의 제1 리빌드 레이트로 제1 리빌드 동작이 수행되면, 각각 시간 t2 및 t3에서 완료되는 것이 도시된다. 여기서 시간 t1 내지 t2 사이, 또는 t1 내지 t3 사이에서 RAID 시스템(1)의 I/O 레이트는 리빌드 동작이 진행될수록 상승하는 경향을 갖는다.
제1 리빌드 동작의 진행 중에 리빌드 대상이 되는 비휘발성 메모리, 특히 리빌드가 완료되지 않은 블록에 대한 데이터 접근 시 복수회의 데이터 읽기가 필요하여 RAID 시스템(1)의 I/O 레이트 하락의 원인이 될 수 있다. 이 때 리빌드 동작이 진행될수록 리빌드가 완료되지 않은 블록에 대한 데이터 접근 확률이 낮아지고, 따라서 RAID 시스템(1)의 I/O 레이트 하락 폭도 줄어들게 되는 것이다.
도 6a에서 P1은 R1의 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 적용하였을 때 제1 리빌드 동작으로 인해 발생한 RAID 시스템(1)의 I/O 레이트의 감소 폭을 의미한다. 또한, P2는 은 R2의 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 적용하였을 때 제1 리빌드 동작으로 인해 발생한 RAID 시스템(1)의 I/O 레이트의 감소 폭을 의미한다.
도 6b를 참조하면, 도 6a의 두 개의 그래프에 나타난 R1 및 R2의 리빌드 레이트를 제1 리빌드 동작에 혼합하여 적용할 수도 있다. 즉, RAID 시스템(1)의 I/O 레이트를 기준으로 필요한 I/O 레이트에 이를 때까지 RAID 시스템(1)의 제1 서브 레이트(sub-rate, R1)를 갖는 제1 리빌드 관리 정책을 적용한다. 이어서, RAID 시스템(1)의 I/O 레이트가 필요한 수치를 만족시킨 t2 이후에는, 제2 서브 레이트(R2)를 갖는 제1 리빌드 관리 정책을 적용하여 제1 리빌드 동작을 속행할 수 있다.
본 발명의 몇몇 실시예에서, 제1 서브 레이트(R1)는 제2 서브 레이트(R2)보다 클 수 있다(R1 > R2).
도 7은 본 발명의 다른 실시예에 따른 RAID 시스템을 설명하기 위한 블록도이다.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 RAID 시스템(2)은, 메모리 시스템(100), RAID 컨트롤러(200) 및 호스트 장치(500)을 포함할 수 있다. 여기서, 메모리 시스템(100) 및 RAID 컨트롤러(200)는 앞서 설명한 본 발명의 일 실시예에 따른 RAID 시스템(도 1의 1)의 메모리 시스템(도 1의 100) 및 RAID 컨트롤러(도 1의 200)의 구성과 동일하다.
한편, 호스트 장치(500)는 내부에 옵저버(510)를 포함할 수 있다. 본 발명의 다른 실시예에 따른 RAID 시스템(2)에서, 옵저버(510)는 RAID 시스템(2) 또는 RAID 시스템(2)이 포함된 컴퓨팅 시스템의 동작을 관찰한다. 옵저버(510)에 의한 시스템의 동작 관찰 결과, 제1 리빌드 관리 정책의 제1 리빌드 레이트를 변화시킬 필요가 있다고 판단되는 경우, 옵저버(510)는 호스트(500)로 하여금 RAID 컨트롤러(200)로 리빌드 레이트 명령을 제공한다. 리빌드 레이트 명령을 제공받은 RAID 컨트롤러(200)는 제1 리빌드 관리 정책의 제1 리빌드 레이트를 변경할 수 있다.
도 8은 본 발명의 또 다른 실시예에 따른 RAID 시스템(3)의 블록도이다.
도 8을 참조하면, 본 발명의 또 다른 실시예에 따른 RAID 시스템(3)은 호스트(300), SSD(150, 250, 350, 450) 및 버스(600)를 포함한다.
본 발명의 또 다른 실시예에 따른 RAID 시스템(3)의 호스트(300)는 도 1을 참조하여 설명한 RAID 컨트롤러(200)와 실질적으로 동일하게 구성 및 동작할 수 있다.
SSD(250)는 복수의 메모리 칩(125, 135, 145, 155), 메모리 컨트롤러(110)를 포함할 수 있다.
메모리 컨트롤러(110)는 복수의 메모리 칩(125, 135, 145, 155)을 제어할 수 있다. 본 발명의 몇몇 실시예에서, 복수의 메모리 칩(125, 135, 145, 155)은 앞서의 실시예에서 설명한 RAID 시스템(1)에 포함된 메모리 시스템(100)에 포함된 비휘발성 메모리들과 구성 및 동작이 동일할 수 있다. 따라서 메모리 컨트롤러(110)에 의하여 복수의 메모리 칩(125, 135, 145, 155)를 대상으로 RAID 시스템이 구성될 수 있다.
또한, 복수의 메모리 칩(125, 135, 145, 155)는 데이터 청크 및 두 개의 패리티(P, Q)가 저장되는 메모리 칩과, 스페어 메모리 칩을 포함할 수 있다. 메모리 컨트롤러(110)는 이와 같이 구성된 RAID 시스템을 대상으로 제1 리빌드 레이트를 갖는 제1 리빌드 관리 정책을 적용하여 제1 리빌드 동작이 수행할 수 있고, 제1 리빌드 레이트와는 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 적용하여 제2 리빌드 동작이 수행될 수 있다.
또한, 호스트(300)에 연결된 각각의 SSD를 대상으로 RAID 시스템이 구성될 수 있다. 즉, SSD(150, 250, 350, 450)는 데이터 청크 및 패리티 비트를 저장하는 SSD와, 스페어 SSD를 포함할 수 있다. 호스트(300)는 이와 같이 구성된 RAID 시스템을 대상으로 제3 리빌드 레이트를 갖는 제3 리빌드 관리 정책을 적용하여 제1 리빌드 동작이 수행할 수 있고, 제1 리빌드 레이트와는 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 적용하여 제2 리빌드 동작이 수행될 수 있다.
한편으로, SSD(150, 250, 350, 450)의 리빌드 과정에서, 각각의 SSD(150, 250, 350, 450)에 대하여 서로 다른 리빌드 관리 정책이 적용될 수도 있다. 예를 들어, SSD(150, 250, 350)에 데이터 청크 및 패리티가 저장되고, SSD(150)에 고장이 발생한 것으로 가정하자. 호스트(300)는 SSD(250, 350)에 저장된 데이터 청크 및 패리티를 이용하여 스페어 SSD에 제1 리빌드 동작을 개시할 수 있다. 이 때, 호스트(300)는 SSD(250, 350) 각각의 리빌드 작업이 전체 시스템에 미치는 영향을 측정하고, SSD(250, 350)가 서로 다른 제1 리빌드 레이트를 갖는 리빌드 관리 정책을 이용하여 제1 리빌드 동작을 수행하도록 SSD(250, 350)를 제어할 수도 있다.
다음 도 9를 참조하여, 본 발명의 일 실시예에 따른 컴퓨팅 시스템에 대해 설명한다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 블록도이다.
도 9를 참조하면, 컴퓨팅 시스템(900)은 중앙 처리 장치(910), 램(920, RAM, Random Access Memory), 사용자 인터페이스(930), 전원(940), 그리고 메모리 시스템(800)을 포함할 수 있다.
여기서, 메모리 시스템(800)은 앞서 설명한 실시예들에 따라 컨트롤러(820)가 비휘발성 메모리 장치(810)를 컨트롤하는 시스템일 수 있다. 이러한 메모리 시스템(800)은 시스템 버스(950)를 통해, 중앙처리장치(910), 램(920), 사용자 인터페이스(930), 그리고 전원(940)에 전기적으로 연결될 수 있다. 그리고, 사용자 인터페이스(930)를 통해 제공되거나, 중앙 처리 장치(910)에 의해서 처리된 데이터는 메모리 시스템(800)에 저장될 수 있다.
비록 도 9에서는, 비휘발성 메모리 장치(810)가 컨트롤러(820)를 통해 시스템 버스(950)에 연결되는 것으로 도시되어 있으나, 본 발명의 몇몇 실시예에 따른 컴퓨팅 시스템에서, 비휘발성 메모리 장치(810)는 시스템 버스(950)에 직접 연결되도록 구성될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 메모리 장치 200: RAID 컨트롤러
300: 호스트 150, 250, 350, 450: SSD
800: 메모리 시스템 900: 컴퓨팅 시스템
930: 사용자 인터페이스 940: 전원

Claims (10)

  1. RAID로 구성되고, 데이터 청크와, 상기 데이터 청크에 대응하는 제1 및 제2 패리티를 저장하는 복수의 비휘발성 메모리를 포함하는 메모리 장치;
    상기 메모리 장치의 RAID 동작 및 리빌드(rebuild) 동작을 제어하는 RAID 컨트롤러; 및
    상기 RAID 컨트롤러와 I/O(Input/Output) 레이트로 통신하는 호스트를 포함하되,
    상기 RAID 컨트롤러는,
    상기 메모리 장치에 저장된 제1 패리티를 이용한 제1 리빌드 동작에서, 제1 리빌드 레이트(rebuild rate)를 갖는 제1 리빌드 관리 정책을 이용하여 상기 제1 리빌드 동작을 수행하고,
    상기 메모리 장치에 저장된 제1 및 제2 패리티 비트를 이용한 제2 리빌드 동작에서, 상기 제1 리빌드 레이트와 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 이용하여 상기 제2 리빌드 동작을 수행하고,
    상기 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고,
    상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용하는 RAID 시스템.
  2. 제 1항에 있어서,
    상기 제2 리빌드 레이트는 상기 제1 리빌드 레이트보다 큰 RAID 시스템.
  3. 제 2항에 있어서,
    상기 제2 리빌드 레이트는, 상기 메모리 장치의 리빌드 동작의 최대 리빌드 레이트인 RAID 시스템.
  4. 제 1항에 있어서,
    상기 제1 리빌드 레이트는 상기 RAID 컨트롤러의 I/O 레이트에 반비례하여 결정되는 RAID 시스템.
  5. 제 1항에 있어서,
    상기 제1 서브 레이트는 상기 제2 서브 레이트보다 큰 RAID 시스템.
  6. 제 1항에 있어서,
    상기 호스트는, 상기 시스템의 동작을 관측하는 옵저버를 포함하고,
    상기 옵저버의 관측 결과에 따라 상기 RAID 컨트롤러로 리빌드 레이트 명령을 제공하고,
    상기 RAID 컨트롤러는 상기 제공받은 리빌드 레이트 명령에 따라 상기 제1 리빌드 레이트를 제어하는 RAID 시스템.
  7. 제 1항에 있어서,
    상기 RAID 컨트롤러가 제1 리빌드 동작을 수행하는 것은,
    상기 복수의 비휘발성 메모리의 S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology) 정보를 모니터링하고,
    상기 복수의 비휘발성 메모리의 S.M.A.R.T의 값이 소정의 기준값을 넘는지 여부에 따라 제1 리빌드 동작 수행 여부를 결정하는 것을 포함하는 RAID 시스템.
  8. 호스트; 및
    상기 호스트와 커플링되는 복수의 SSD(Solid State Drive)를 포함하되,
    상기 복수의 SSD는,
    RAID로 구성되고, 데이터 청크와, 상기 데이터 청크에 대응하는 제1 및 제2 패리티를 저장하는 복수의 비휘발성 메모리;
    상기 복수의 비휘발성 메모리의 RAID 동작 및 리빌드(rebuild) 동작을 제어하는 RAID 컨트롤러를 포함하되,
    상기 RAID 컨트롤러는,
    상기 복수의 비휘발성 메모리에 저장된 제1 패리티를 이용한 제1 리빌드 동작에서, 제1 리빌드 레이트(rebuild rate)를 갖는 제1 리빌드 관리 정책을 이용하여 상기 제1 리빌드 동작을 수행하고,
    상기 복수의 비휘발성 메모리에 저장된 제1 및 제2 패리티 비트를 이용한 제2 리빌드 동작에서, 상기 제1 리빌드 레이트와 다른 제2 리빌드 레이트를 갖는 제2 리빌드 관리 정책을 이용하여 상기 제2 리빌드 동작을 수행하고,
    상기 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고, 상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용하고,
    상기 RAID 컨트롤러와 상기 호스트 간의 I/O 레이트가 필요한 기준값에 이를 때까지 제1 리빌드 레이트에 제1 서브 레이트(sub-rate)를 적용하고,
    상기 I/O 레이트가 필요한 기준값보다 큰 경우 상기 제1 리빌드 레이트에 상기 제1 서브 레이트와 다른 제2 서브 레이트를 적용하는 RAID 시스템.
  9. 제 8항에 있어서,
    상기 제2 리빌드 레이트는 상기 제1 리빌드 레이트보다 큰 RAID 시스템.
  10. 제 8항에 있어서,
    상기 제1 리빌드 레이트는 상기 RAID 컨트롤러와 상기 호스트 간의 I/O 레이트에 반비례하여 결정되는 RAID 시스템.
KR1020160148741A 2016-11-09 2016-11-09 비휘발성 메모리를 포함하는 raid 시스템 KR102611571B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160148741A KR102611571B1 (ko) 2016-11-09 2016-11-09 비휘발성 메모리를 포함하는 raid 시스템
US15/645,248 US10387245B2 (en) 2016-11-09 2017-07-10 RAID system including nonvolatile memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160148741A KR102611571B1 (ko) 2016-11-09 2016-11-09 비휘발성 메모리를 포함하는 raid 시스템

Publications (2)

Publication Number Publication Date
KR20180051868A true KR20180051868A (ko) 2018-05-17
KR102611571B1 KR102611571B1 (ko) 2023-12-07

Family

ID=62064662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160148741A KR102611571B1 (ko) 2016-11-09 2016-11-09 비휘발성 메모리를 포함하는 raid 시스템

Country Status (2)

Country Link
US (1) US10387245B2 (ko)
KR (1) KR102611571B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612412A (zh) * 2020-12-02 2021-04-06 杭州海康威视系统技术有限公司 一种分布式存储系统中数据重构的方法、存储节点设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200068147A (ko) * 2018-12-04 2020-06-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
CN111880962B (zh) * 2020-07-24 2022-06-10 北京浪潮数据技术有限公司 一种raid重构速度控制方法、系统及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128773A (ja) * 2008-11-27 2010-06-10 Nec Fielding Ltd ディスクアレイ装置、そのディスク管理方法及びそのディスク管理プログラム
KR20100135765A (ko) * 2008-03-11 2010-12-27 인터내셔널 비지네스 머신즈 코포레이션 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜 선택
US20120096309A1 (en) * 2010-10-15 2012-04-19 Ranjan Kumar Method and system for extra redundancy in a raid system
KR20130091628A (ko) * 2012-02-08 2013-08-19 엘에스아이 코포레이션 Raid의 개선된 리빌드 시스템 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278838A (en) 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
US7313721B2 (en) 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
US7647526B1 (en) 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
US8463798B1 (en) 2007-03-31 2013-06-11 Emc Corporation Prioritized restore
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8589724B2 (en) 2011-06-30 2013-11-19 Seagate Technology Llc Rapid rebuild of a data set
JP5954081B2 (ja) 2012-09-26 2016-07-20 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US8782292B2 (en) 2012-10-31 2014-07-15 Lsi Corporation Methods and structure for performing a rebuild of a logical volume with a serial attached SCSI expander
US9234441B2 (en) * 2013-03-11 2016-01-12 Pratt & Whitney Canada Corp. Method of immobilizing low pressure spool and locking tool therefore
GB2514810A (en) 2013-06-05 2014-12-10 Ibm Rebuilding data of a storage system
US9542272B2 (en) * 2014-03-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Write redirection in redundant array of independent disks systems
US9823969B2 (en) * 2014-09-02 2017-11-21 Netapp, Inc. Hierarchical wide spreading of distributed storage
CN107526531B (zh) * 2016-06-21 2020-01-14 伊姆西公司 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100135765A (ko) * 2008-03-11 2010-12-27 인터내셔널 비지네스 머신즈 코포레이션 데이터 스토리지 라이브러리를 위한 디듀플리케이션 프로토콜 선택
JP2010128773A (ja) * 2008-11-27 2010-06-10 Nec Fielding Ltd ディスクアレイ装置、そのディスク管理方法及びそのディスク管理プログラム
US20120096309A1 (en) * 2010-10-15 2012-04-19 Ranjan Kumar Method and system for extra redundancy in a raid system
KR20130091628A (ko) * 2012-02-08 2013-08-19 엘에스아이 코포레이션 Raid의 개선된 리빌드 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612412A (zh) * 2020-12-02 2021-04-06 杭州海康威视系统技术有限公司 一种分布式存储系统中数据重构的方法、存储节点设备

Also Published As

Publication number Publication date
US20180129562A1 (en) 2018-05-10
US10387245B2 (en) 2019-08-20
KR102611571B1 (ko) 2023-12-07

Similar Documents

Publication Publication Date Title
KR101826051B1 (ko) 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
KR102665540B1 (ko) 비휘발성 메모리를 포함하는 raid 시스템
KR102177421B1 (ko) 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러
US10877900B1 (en) Enabling faster and regulated device initialization times
US10409683B2 (en) Data storage system configured to perform data rebuild operation via reduced read requests
WO2018112980A1 (zh) 存储控制器、数据处理芯片及数据处理方法
US11797221B2 (en) Method of operating storage device for improving QoS latency and storage device performing the same
KR102611571B1 (ko) 비휘발성 메모리를 포함하는 raid 시스템
US11347634B2 (en) Memory system performing write-same operation and operating method thereof
US11016689B2 (en) Data storage system
US20210191626A1 (en) Data processing system
US10656987B1 (en) Analysis system and method
US20220179724A1 (en) Method for operating storage device and host device, and storage device
US10114694B2 (en) Method and controller for recovering data in event of program failure and storage system using the same
CN110442302B (zh) 存储器系统及用于操作存储器系统的方法
US10628067B2 (en) Memory system and operating method thereof
KR102496678B1 (ko) 반도체 메모리 장치 및 이의 동작 방법
WO2022143741A1 (zh) 存储设备管理方法、设备及存储系统
KR20200078101A (ko) 메모리 시스템 및 그것의 동작 방법
WO2024108349A1 (zh) 存储系统和存储系统的操作方法
KR20220147292A (ko) 메타 데이터 관리를 수행하는 스토리지 장치 및 이의 동작 방법
KR20230044883A (ko) 저장 장치 및 그의 동작 방법

Legal Events

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