KR102659829B1 - Raid 동작을 제어하는 방법 및 시스템 - Google Patents

Raid 동작을 제어하는 방법 및 시스템 Download PDF

Info

Publication number
KR102659829B1
KR102659829B1 KR1020160128783A KR20160128783A KR102659829B1 KR 102659829 B1 KR102659829 B1 KR 102659829B1 KR 1020160128783 A KR1020160128783 A KR 1020160128783A KR 20160128783 A KR20160128783 A KR 20160128783A KR 102659829 B1 KR102659829 B1 KR 102659829B1
Authority
KR
South Korea
Prior art keywords
raid
input
output
flash storage
attribute information
Prior art date
Application number
KR1020160128783A
Other languages
English (en)
Other versions
KR20180022515A (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 삼성전자주식회사
Publication of KR20180022515A publication Critical patent/KR20180022515A/ko
Application granted granted Critical
Publication of KR102659829B1 publication Critical patent/KR102659829B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid 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/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
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/104Metadata, i.e. metadata associated with RAID systems with parity

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)
  • Power Sources (AREA)

Abstract

RAID 동작을 제어하는 방법 및 시스템이 제공된다. RAID 동작을 제어하는 방법은, 호스트 장치로부터, RAID 동작을 위한 입/출력 커맨드를 수신받되, 상기 입/출력 커맨드는 데이터 및 태그를 포함하고, 수신받은 상기 입/출력 커맨드의 상기 태그를 디코딩하여, 상기 입/출력 커맨드로부터 상기 RAID 동작의 입/출력 속성 정보를 추출하고, 상기 입/출력 속성 정보를 플래쉬 저장 장치의 SRAM(Static Random Access Memory)의 RAID 메타 저장 영역에 저장하고, 상기 데이터를 상기 플래쉬 저장 장치의 플래쉬 메모리에 저장하는 것을 포함한다.

Description

RAID 동작을 제어하는 방법 및 시스템{Methods and systems for controlling Redundant Array of Inexpensive Disks (RAID) operations}
본 발명은 RAID 분야에 관한 것으로, 좀 더 구체적으로는 RAID 컨트롤러에 관한 것이다.
인터넷 서비스 분야의 기하학적인 성장은, 데이터 용량을 증가시키는 결과를 낳았다. 매우 큰 용량의 데이터의 관리는, 저장 시스템의 용량, 성능, 및 이용 가능성에 대한 높은 요구사항들을 요한다. 종래의 저장 어레이 또는 저장 시스템은, 하드 디스크를 일반적으로 사용해왔었다. 대안적으로, SSD(Solid State Device)와 같은 오늘날의 저장 장치들은, 엔터프라이즈 셋업(enterprise setup)에서 효율적으로 사용되었었다.
실제 응용 중, 하드 디스크 장치의 낮은 성능과 실패율을 처리하기 위해, 하드 디스크 드라이브는 종종 RAID 모드를 이용할 수 있다. RAID는 (미러링 또는 패리티를 통한) 데이터 보호가 가능하도록 하기 위해, 복수의 디스크 드라이브를 이용할 수 있다. 저장될 데이터는, 다른 드라이브 유닛과 관련하여, 실패 유닛의 재건을 가능하게 할 수 있는 모든 드라이브들에 걸쳐 저장될 수 있다. 따라서, RAID는, 저장 시스템의 입/출력 성능을 향상시킬 수 있고, 서버 또는 워크 스테이션(workstation)과 같은 호스트의 신뢰성도 향상시킬 수 있다. RAID는 RAID 컨트롤러를 이용하여 구현될 수 있다. SATA(Serial Advanced Technology Attachment)와 같은 종래의 장치는, 하드웨어 RAID 컨트롤러를 효율적으로 이용할 수 있다.
그러나, 차세대 SSD, NVDIMM-F(Non-Volatile Dual In-line Memory Module - F) 등과 같은 저장 장치를 위한 하드웨어 RAID 컨트롤러 배치를 구현하는 것은, 이러한 저장 장치는 물리적으로 DIMM 슬롯에 위치되어 있고 프로세서 메모리 컨트롤러에 의해 제어되기 때문에, 어려울 수 있다. 따라서, SSD를 위한 RAID의 실현은 오직, OS(Operating System)의 특징으로써 구현될 수 있는 RAID 컨트롤러를 통해 구현될 수 있다. OS 내에서 RAID 컨트롤러의 배치와 함께, 장치 드라이버와 같은 현재의 모듈은, 실제 동작의 수행 전 장치 드라이버가 기록 동작을 할 때 발생할 수 있는 갑작스러운 파워 오프(sudden power off) 문제를 처리할 수 있다.
이는, 저장 장치에 대한 두 개의 입/출력 동작을 야기시킬 수 있다. 첫번째 동작은, 수행될 동작(읽기 또는 기록)의 기록 정보일 수 있다. 두번째 동작은, 저장 장치에 대한 실제 동작일 수 있다. 예를 들어, 실제 동작은, 저장 장치로부터 읽거나, 저장 장치에 기록하는 동작일 수 있다. 따라서, 모든 입/출력 동작은, 입/출력 성능을 효율적으로 낮출 수 있는 추가적인 입/출력 동작을 야기시킬 수 있다. 또한, 추가적인 기록은, 단지 몇 분만에 쓰여질 수 있는 블록인 후단부 장치로써 NAND를 포함하는 모든 SSD 때문에, 저장 장치의 더 적은 수명 기간을 야기시킬 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 플래쉬 저장 장치에 의해 RAID 동작을 제어하기 위한 시스템 및 방법을 제공하는 것이다. 플래쉬 저장 장치는, 호스트 장치로부터, 입/출력 커맨드의 RAID 동작의 입/출력 속성 정보를 수신받을 수 있고, 플래쉬 저장 장치 상에 유보된 RAID 메타 저장 영역 내에 수신받은 RAID 동작의 입/출력 속성 정보를 저장할 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 갑작스러운 파워 오프가 발생한 플래쉬 저장 장치의 플래쉬 메모리로, 플래쉬 저장 장치의 메타 데이터와 함께, RAID 메타 저장 영역에 저장된 입/출력 속성 정보를 플러시(flushing)하기 위한 시스템 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 갑작스러운 파워 오프 후, 데이터 보정을 수행하기 위해, 호스트 장치로부터 입/출력 속성 정보 검색 커맨드를 수신 받은 플래쉬 메모리로 플러시된, 입/출력 속성 정보를 호스트 장치로 전송하기 위한 시스템 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 RAID 동작 제어 방법은, 호스트 장치로부터, RAID 동작을 위한 입/출력 커맨드를 수신 받되, 입/출력 커맨드는 데이터 및 태그를 포함하고, 수신 받은 입/출력 커맨드의 태그를 디코딩하여, 입/출력 커맨드로부터 RAID 동작의 입/출력 속성 정보를 추출하고, 입/출력 속성 정보를 플래쉬 저장 장치의 SRAM(Static Random Access Memory)의 RAID 메타 저장 영역에 저장하고, 데이터를 플래쉬 저장 장치의 플래쉬 메모리에 저장하는 것을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 RAID 동작을 제어하기 위한 플래쉬 저장 장치는, 플래쉬 저장 장치 및 상기 플래쉬 저장 장치에 포함되는 호스트 컨트롤러를 포함하고, 상기 호스트 컨트롤러는, 호스트 장치로부터, RAID 동작을 위한 입/출력 커맨드를 수신 받되, 상기 입/출력 커맨드는 데이터 및 태그를 포함하고, 수신 받은 상기 입/출력 커맨드의 상기 태그를 디코딩하여, 상기 입/출력 커맨드로부터 상기 RAID 동작의 입/출력 속성 정보를 추출하고, 상기 입/출력 속성 정보를 상기 플래쉬 저장 장치의 SRAM(Static Random Access Memory)의 RAID 메타 저장 영역에 저장하고, 상기 데이터를 상기 플래쉬 저장 장치의 플래쉬 메모리에 저장할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 RAID 동작을 위한 호스트 장치는 호스트 장치 및 상기 호스트 장치에 포함되는 장치 드라이버를 포함하고, 상기 장치 드라이버는, 플래쉬 저장 장치의 SRAM(Static Random Access Memory) 내의 RAID 메타 저장 영역을 리저브하도록, RAID 스트림 오픈 관리 커맨드를 상기 플래쉬 저장 장치에 전송하고, RAID 동작에 상응하는 입/출력 커맨드를 상기 플래쉬 저장 장치에 전송하고, 상기 입/출력 커맨드는 데이터 및 태그를 포함하고, 상기 태그에 인코딩된 입/출력 속성 정보는, 상기 RAID 메타 저장 영역에 저장할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1a 및 도 1b는 본 발명의 몇몇 실시예들에 따른 플래쉬 저장 장치의 SRAM 상에 저장된 입/출력 속성 정보를 이용하여, RAID 동작을 제어하기 위한, RAID 환경의 시스템을 도시한 도면이다.
도 2는 본 발명의 몇몇 실시예들에 따른 RAID 메타 저장 영역을 이용하는 플래쉬 저장 장치의 RAID 동작을 제어하기 위한 방법을 도시한 순서도이다.
도 3은 본 발명의 몇몇 실시예들에 따른 수신된 입/출력 커맨드를 위한, RAID 메타 저장 영역을 이용하는 플래쉬 저장 장치에 의해 제어되는 RAID 동작을 도시한 예시적인 도면이다.
도 4는 본 발명의 몇몇 실시예들에 따른, 갑작스러운 파워 오프의 경우 데이터 보정을 수행하기 위한 호스트 장치를 이용가능하게 하기 위한, 플래쉬 저장 장치에 의해 제어되는 RAID 동작을 도시한 예시적인 도면이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에 개시된 실시예들은, RAID 환경의 플래쉬 저장 장치에 의해 RAID 동작을 제어하기 위한 시스템 및 방법을 달성하기 위한 것일 수 있다. 본 발명의 기술적 사상에 따른 방법은, 플래쉬 저장 장치에 의해, 호스트 장치로부터 발생된 입/출력 커맨드 내의 RAID 동작에 대한 입/출력 속성 정보를 수신 받는 것을 포함할 수 있다. 나아가, 입/출력 커맨드 내의 태그 필드(tag field)로써 제공되는 입/출력 속성 정보는, 플래쉬 저장 장치 내에 제공되는 SRAM(Static RAM)의 RAID 메타 저장 영역 내에 저장될 수 있다.
오직, 입/출력 커맨드 내의 데이터만이, 플래쉬 메모리에 저장될 수 있다. 따라서, 플래쉬 저장 장치 상의 플래쉬 메모리에 입/출력 속성 정보를 저장하는 것 대신, SRAM에 입/출력 속성 정보를 저장 또는 기록함으로써, 플래쉬 메모리에 대한 기록 동작의 수를 감소시킬 수 있고, 플래쉬 저장 장치의 성능을 향상시킬 수 있다.
RAID 메타 저장 영역은, 호스트 장치로부터 발행된 스트림 오픈 관리(stream open admin) 커맨드를 수신 받은 플래쉬 저장 장치에 리저브(reserve)될 수 있다. 나아가, 본 발명의 기술적 사상에 따른 방법은, 갑작스러운 파워 오프가 발생한 플래쉬 메모리에, RAID 메타 저장 영역 내의 플래쉬 저장 장치의 메타 데이터와 함께 입/출력 속성 정보를 플러시할 수 있다. 나아가, 본 발명의 기술적 사상에 따른 방법은, 호스트 장치로부터 발행된 입/출력 속성 검색 커맨드를 수신 받은, 갑작스러운 파워 오프가 발생한 플래쉬 메모리에 플러시된 입/출력 속성 정보를, 호스트 장치에 전송하는 것을 포함할 수 있다.
호스트 장치는 후에, RAID 환경의 플래쉬 저장 장치 각각으로부터 수신 받은 입/출력 속성 정보에 기초하여, 시스템 내의 하나 이상의 플래쉬 저장 장치를 위한 데이터 보정을 수행할 수 있다.
또한, 복수의 RAID 동작에 대한 정보 때문에, 입/출력 속성 정보는 갑작스러운 파워 오프가 발생한 플래쉬 메모리에 한번에 기록될 수 있고, 본 발명의 기술적 사상에 따른 방법에 의해 제공되는 기록 증폭 요인(write amplification factor)은 낮아질 수 있다. 이는, 플래쉬 저장 장치의 더 나은 수명 기간을 야기시킬 수 있다.
몇몇 실시예에서, 플래쉬 저장 장치는, NVDIMM-F 또는 NVMe(NVM Express) 등과 같은 SSD일 수 있다.
이하에서, 도 1a 내지 도 4를 참조하여 본 발명의 몇몇 실시예들에 따른 방법 및 시스템에 대해 설명한다.
도 1a 및 도 1b는 본 발명의 몇몇 실시예들에 따른 플래쉬 저장 장치의 SRAM 상에 저장된 입/출력 속성 정보를 이용하여, RAID 동작을 제어하기 위한, RAID 환경의 시스템(100)을 도시한 도면이다.
도 1a 및 도 1b를 참조하면, RAID 환경 시스템(100)은 호스트 장치(102)를 포함할 수 있다. RAID 환경 시스템(100)에 포함되는 호스트 장치(102)는, 플래쉬 저장 장치의 어레이(106a 내지 106n) 각각과 통신할 수 있다. 도 1a에서는, 도시의 간결성을 위해, 단일 플래쉬 저장 장치(106a)에 관한 시스템(100)을 도시하고 있다. 그러나, 호스트 장치(102)아 플래쉬 저장 장치(106b 내지 106n) 간의 통신은, 플래쉬 저장 장치(102)에 대한 설명과 유사하다는 것을, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 이해할 수 있을 것이다.
플래쉬 저장 장치(106a)는, 호스트 컨트롤러(108)를 포함할 수 있다. 플래쉬 저장 장치(106a)에 포함되는 호스트 컨트롤러(108)는, 호스트 장치(102)에서 실행되는 어플리케이션을 위한 장치 드라이버(104)를 통해, 입/출력(읽기/기록) 커맨드와 같은 RAID 동작을 수행할 수 있다.
호스트 장치(102)는, RAID 스트림 오픈 관리 커맨드(CMD) 등을 발행할 수 있다. 커맨드 구조는, 적용되는 프로토콜에 따라 채용될 수 있다. RAID 스트림 오픈 관리 커맨드가 수신되는 경우, 호스트 컨트롤러는, 플래쉬 저장 장치(106a)의 SRAM(110) 내의 RAID 메타 저장 영역(112)을 리저브(reserve)할 수 있다. RAID 메타 저장 영역(112)은, 입/출력 동작의 메타 데이터(입/출력 속성 정보) 저장을 위한 원형 버퍼(circular buffer) 방식으로 이용될 수 있다.
일단 RAID 메타 저장 영역(112)이 리저브되면, 장치 드라이버(104)는, 데이터 기록/읽기 동작을 위해, 입/출력 커맨드를 이용하는 기 정의된 프로토콜을 이용하여 호스트 컨트롤러(108)와 순조롭게 상호작용할 수 있다.
시스템(100)은, 입/출력 커맨드에 포함되는 현재 정보에 더하여, 태그(118)를 나타내는 입/출력 속성 정보 필드를 포함시키기 위한 장치 드라이버(104)를 구성할 수 있다. 현재 정보는, RAID 동작 유형(읽기/기록 등), 읽기/기록하는 위치(섹터 번호) 및 데이터가 제공되거나 읽어지는 위치를 포함할 수 있다. 따라서, 입/출력 커맨드는, 태그(118) 및 실제 데이터를 위한 데이터 필드를 포함하는 적어도 두 개의 필드를 포함할 수 있다.
몇몇 실시예에서, 태그(118)는, 스트림 식별자(ID) 및 시퀀스 번호로 각각 지칭될 수 있는, 메이저 및 마이너 세그먼트의 조합을 포함할 수 있다. 스트림 ID는 RAID 동작의 카테고리를 나타낼 수 있다. 시퀀스 번호는 RAID 동작 내부의 반복(iteration)을 나타낼 수 있다. 아래의 표 1은, 메이저와 마이너 세그먼트의 내용을 나타내는 예시적인 표이다.

메이저 세그먼트

마이너 세그먼트
0x a(RAID 0) 0,1,2,3,4,5 ..
0x b(RAID 1) 0,1,2,3,4,5 ..
0x c(RAID 2) 0,1,2,3,4,5 ..
0x d(RAID 5) 0,1,2,3,4,5 ..
0x e(RAID 6) 0,1,2,3,4,5 ..
따라서, RAID 동작 중 장치 드라이버(104)로부터 수신받은 입/출력 커맨드는, 태그(118) 및 데이터를 포함할 수 있다.
호스트 장치(102)로부터 수신받은 모든 입/출력 커맨드를 위해, 호스트 컨트롤러(108)는 입/출력 커맨드로부터 RAID 동작의 입/출력 속성 정보를 추출할 수 있다. 또한, 호스트 장치(102)로부터 수신받은 모든 입/출력 커맨드를 위해, 호스트 컨트롤러(108)는 추출한 RAID 동작의 입/출력 속성 정보를, 도 1b에 도시된 바와 같이, RAID 메타 저장 영역(112)에 저장할 수 있다. 입/출력 속성 정보는, 태그(118)를 디코딩하여 추출될 수 있다.
나아가, 호스트 컨트롤러(108)는, 플래쉬 메모리(116)에 데이터를 저장할 수 있다. 플래쉬 메모리(116)는, 플래쉬 컨트롤러(114)에 의해 제어될 수 있다. RAID 동작 중, RAID 메타 저장 영역(112)에 입/출력 속성 정보를 저장하고, 플래쉬 메모리(116)에 데이터를 저장하는 것은, 도 3을 참조하여 후술한다.
나아가, 갑작스러운 파워 오프가 발생한 경우, 호스트 컨트롤러(108)는 플래시 저장 장치의 메타 데이터와 함께 (태그(118)로부터 디코딩된) 입/출력 속성 정보를, SRAM(110)으로부터 플래쉬 메모리(116)로 플러시할 수 있다. 후에, 호스트 컨트롤러(108)는 플래쉬 메모리(116)로 플러시된 입/출력 속성 정보를, 입/출력 정보 검색 커맨드를 수신 받은 호스트 장치(102)에 제공할 수 있다. 예를 들어, 'get feature' 커맨드와 같은 입/출력 정보 검색 커맨드는, 프로토콜에 제공될 수 있다. 프로토콜은, 플래쉬 저장 장치(106a)의 플래쉬 메모리(116)로부터, 저장되어 있던 입/출력 속성 정보를 읽을 수 있다.
호스트 장치(102)는, 요구된 데이터 보정을 수행하고, 각 플래쉬 저장 장치의 상태를 식별하기 위해, 플래쉬 저장 장치(106a 내지 106n) 각각의 상태를 확인할 수 있다. 갑작스러운 파워 오프의 발생, 플래쉬 메모리(116)로 태그(118)를 플러시하는 것 및 데이터 보정을 위한 태그 정보의 검색은, 도 4를 참조하여 후술한다.
도 2는 본 발명의 몇몇 실시예들에 따른 RAID 메타 저장 영역을 이용하는 플래쉬 저장 장치(106a)의 RAID 동작을 제어하기 위한 방법(200)을 도시한 순서도이다.
도 1a 내지 도 2를 참조하면, 단계(202)에서, 본 발명의 기술적 사상에 따른 방법(200)은, 도 1a에 도시된 바와 같이, 호스트 컨트롤러(108)가, 호스트 장치(102)로부터 발행된 RAID 스트림 오픈 관리 커맨드를 수신받은 플러시 저장 장치(106a)의 SRAM(110) 내에, RAID 동작을 위해 RAID 메타 저장 영역(112)을 리저브하는 것을 포함할 수 있다.
단계(204)에서, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가, RAID 동작을 위해 호스트 장치(102)로부터 입/출력 커맨드를 수신받는 것을 포함할 수 있다. 입/출력 커맨드는, 도 1b에 도시된 바와 같이, 데이터 및 태그(118)를 포함할 수 있다.
단계(206)에서, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가, 수신받은 입/출력 커맨드 내의 태그를 디코딩하여, RAID 동작에 상응하는 입/출력 속성 정보를, 입/출력 커맨드로부터 추출하는 것을 포함할 수 있다.
단계(208)에서, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가, 도 1b에 도시된 바와 같이, RAID 메타 저장 영역(112) 내의 태그(118)로부터 디코딩된 입/출력 속성 정보 및, 플래쉬 저장 장치(106a)의 플래쉬 메모리(116) 내의 데이터를 저장하는 것을 포함할 수 있다. RAID 동작 중, 데이터를 플래쉬 메모리(116)에 저장하는 것과, 입/출력 속성 정보를 RAID 메타 저장 영역(112)에 저장하는 것은, 도 3을 참조하여 후술한다.
단계(210)에서 갑작스러운 파워 오프가 발생한 경우, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가, 플래쉬 저장 장치의 메타 데이터와 함께, (태그(118)로부터 디코딩된) 입/출력 속성 정보를 SRAM(110)으로부터 플래쉬 메모리(116)로 플러시하는 것을 포함할 수 있다. 나아가, 호스트 장치(102)로부터 발행된 입/출력 정보 검색 커맨드가 수신된 경우, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가 플래쉬 메모리(116)로부터 플러시된 입/출력 속성 정보를 호스트 장치(102)에 제공하는 것을 포함할 수 있다.
갑작스러운 파워 오프의 발생, 플래쉬 메모리(116)로 태그(118)를 플러시하는 것 및 데이터 보정을 위해 태그 정보를 검색하는 것은, 도 4를 참조하여 후술한다.
예를 들어, 본 발명의 기술적 사상에 따른 방법(200)은, 호스트 컨트롤러(108)가 'get feature' 커맨드를 수신하는 것을 포함할 수 있다. 'get feature' 커맨드는, 호스트 장치(102)가 플래쉬 메모리(116)로부터, 플래쉬 메모리(116)에 저장된 입/출력 속성 정보를 읽는 것을 가능하게 하는 커맨드일 수 있다. 호스트 장치(102)는, 요구된것과 같은 데이터 보정을 수행하고, 각 플래쉬 저장 장치의 상태를 식별하기 위해, 플래쉬 저장 장치(106a 내지 106n) 각각의 상태를 확인할 수 있다.
본 발명의 기술적 사상에 따른 방법(200)에 포함되는 다양한 방법들은, 제공되는 순서대로 수행될 수도 있고, 또는 다른 순서로 수행될 수도 있으며, 나아가 동시에 수행될 수도 있다. 나아가, 몇몇 실시예들에서, 도 2에 기재된 몇몇 동작들은 생략되었을 수도 있다.
도 3은 본 발명의 몇몇 실시예들에 따른 수신된 입/출력 커맨드를 위한, RAID 메타 저장 영역을 이용하는 플래쉬 저장 장치에 의해 제어되는 RAID 동작을 도시한 예시적인 도면이다.
도 1a 내지 도 3을 참조하면, 도 3에 도시된 예시는, RAID 1 미러링(mirroring)에 관한 것일 수 있다. RAID 1 미러링은, RAID 어레이에 제공되는 두 개의 플래쉬 저장 장치(106a, 106b)를 이용할 수 있다. 몇몇 실시예에서, RAID 동작은, 어플리케이션(302)이 호스트 장치(102) 상에서 실행되도록 하는 입/출력(기록) 커맨드를 위해 수행될 수 있다.
입/출력(기록) 커맨드(Op(Operation) 1)는, 기록(Write) 0xabc 55일 수 있다. 기록 Oxabc 55는, 플래쉬 저장 장치(106a)에 기록될 데이터 '55'와, 기록 동작의 메타 데이터를 제공하는 '0xabc' 기록 동작을 위한 (태그(118)로부터 디코딩된) 입/출력 속성 정보를 포함할 수 있다.
이와 유사하게, RAID 동작(Op2)은, 기록 동작일 수 있다. 이 때, 장치 드라이버(104)에 의해 발행된 기록 동작을 위한 입/출력 커맨드는, 기록 0xef0 AA를 포함할 수 있다. 여기서, '0xef0'는 입/출력 속성 정보일 수 있고, AA는 데이터일 수 있다.
두 개의 기록 동작들은, 미러링될 수 있고, 따라서 플래쉬 저장 장치(106a 106b) 각각에 기록될 수 있다. 따라서, 호스트 컨트롤러(108)는, 입/출력 속성 정보(0xabc 및 0xef0)를 이에 상응하는 RAID 메타 저장 영역(112)에 저장하고, 데이터(55 및 AA)를 이에 상응하는 플래쉬 메모리(116)에 저장하는 플래쉬 저장 장치(106a, 106b) 각각을 제공할 수 있다.
도 4는 본 발명의 몇몇 실시예들에 따른, 갑작스러운 파워 오프의 경우 데이터 보정을 수행하기 위한 호스트 장치를 이용가능하게 하기 위한, 플래쉬 저장 장치에 의해 제어되는 RAID 동작을 도시한 예시적인 도면이다.
도 1 내지 도 4를 참조하면, 호스트 장치(102)는 RAID 1 설정에서, 플래쉬 저장 장치(106a, 106b) 각각에, 입/출력(읽기/기록) 동작(402)과 같은 RAID 동작의 데이터 및 태그를 저장할 수 있다.
갑작스러운 파워 오프(404) 후, 호스트 장치(102)는 'get feature' 커맨드(406)와 같은 입/출력 속성 정보 검색 커맨드를 이용하여, 플래쉬 메모리(116)로 플러시된 태그 정보를 검색하는 것을 시도할 수 있다. 'get feature' 커맨드(406)를 실행하는 경우, 호스트 장치(102)는 플래쉬 저장 장치(106a, 106b) 각각의 플래쉬 메모리(116)로 플러시된 입/출력 속성 정보(408)로부터 정보를 검색하거나 탐지할 수 있다.
정보는, 다음의 1 및 2와 같은 사항을 나타낼 수 있다.
1. 파워 오프 전에 진행된 RAID 동작은 RAID 1이었다. (메이저(0xb)로부터 검색됨)
2. RAID 1 설정과 연관되는 플래쉬 저장 장치(106a, 106b)각각은, 서로 다른 상태에 있다. 플래쉬 저장 장치(106a)는 네 번째 동작이 완료되지 않았고, 플래쉬 저장 장치(106b)는 네 번째 동작이 완료되었다.
RAID 1이기 때문에, 모든 플래쉬 저장 장치들은 모두 같은 상태에 있어야한다. 호스트 장치(102)는 플래쉬 저장 장치(106a)가 네 번째 동작을 다시하게 하거나, 플래쉬 저장 장치(106b)가 네 번째 동작을 다시하게 할 수 있다.
본 명세서에 개시된 실시예들은, 적어도 하나의 하드웨어 상에서 실행되고, 네트워크 구성요소들을 제어하기 위한 네트워크 관리 기능을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1 내지 도 4에 도시된 네트워크 구성요소들은, 적어도 하나의 하드웨어 장치, 또는 하드웨어 장치 및 소프트웨어 모듈의 조합일 수 있는 블록들을 포함할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
102: 호스트 장치 110: SRAM
108: 호스트 컨트롤러 106a: 플래쉬 저장 장치

Claims (10)

  1. 호스트 장치로부터 RAID 동작을 위한 입/출력 커맨드를 수신 받되, 상기 입/출력 커맨드는 태그 및 상기 입/출력 커맨드에 대응하는 데이터를 포함하고,
    상기 태그로부터 상기 RAID 동작의 입/출력 속성 정보를 추출하고,
    상기 추출된 입/출력 속성 정보만을 적어도 하나의 플래쉬 저장 장치의 RAID 메타 저장 영역에 저장하되, 상기 RAID 메타 저장 영역은 플래쉬 저장 장치에 포함된 SRAM(Static Random Access Memory)에 위치하고,
    상기 입/출력 커맨드에 포함된 상기 데이터를 적어도 하나의 상기 플래쉬 저장 장치에 포함된 플래쉬 메모리에 저장하고, 및
    상기 태그 및 상기 데이터에 기초하여 상기 플래쉬 메모리를 이용하여 입/출력 동작을 수행하는 것을 포함하되,
    상기 태그에 대응하는 상기 입/출력 속성 정보는 상기 RAID 동작의 카테고리 정보를 제공하는 스트림 식별자(ID) 및 상기 RAID 동작의 실행 순서 정보를 지칭하는 시퀀스 번호를 포함하는 적어도 하나의 플래쉬 저장 장치에 의해 수행되는 RAID 동작을 제어하는 방법.
  2. 제 1항에 있어서,
    갑작스러운 파워 오프(sudden power off) 발생을 감지하고,
    감지된 상기 갑작스러운 파워 오프 발생에 기초하여 상기 플래쉬 저장 장치의 메타 데이터와 함께 상기 입/출력 속성 정보를 상기 SRAM으로부터 상기 플래쉬 메모리로 플러시(flushing)하는 것을 더 포함하는 적어도 하나의 플래쉬 저장 장치에 의해 수행되는 RAID 동작을 제어하는 방법.
  3. 제 2항에 있어서,
    입/출력 속성 정보 검색 커맨드를 수신 받고, 및
    상기 플래쉬 메모리로 플러시된 상기 입/출력 속성 정보를 상기 호스트 장치에 전송하는 것을 더 포함하되
    상기 입/출력 속성 정보는, 상기 갑작스러운 파워 오프 발생과 관련된 데이터 보정을 위해 상기 호스트 장치에 의해 이용되는 것을 더 포함하는 적어도 하나의 플래쉬 저장 장치에 의해 수행되는 RAID 동작을 제어하는 방법.
  4. 제 1항에 있어서,
    상기 호스트 장치로부터 RAID 스트림 오픈 관리 커맨드를 수신하고, 및
    상기 SRAM의 적어도 일부에 상기 RAID 메타 저장 영역을 리저브(reserve)하는 것을 더 포함하는 적어도 하나의 플래쉬 저장 장치에 의해 수행되는 RAID 동작을 제어하는 방법.
  5. RAID 구성에서의 복수의 플래쉬 저장 장치 각각의 휘발성 메모리 섹션에 RAID 메타 저장 영역을 리저브(reserve)하고,
    적어도 하나의 호스트 장치로부터 태그 정보 및 데이터를 포함하는 RAID 입/출력 커맨드를 수신하고,
    상기 태그 정보에 기초하여 RAID 입/출력 동작과 관련된 메타 데이터를 포함하는 입/출력 속성 정보를 결정하고,
    상기 결정된 입/출력 속성 정보를 상기 복수의 플래쉬 저장 장치들 중 적어도 일부의 상기 리저브된 RAID 메타 저장 영역에 기록하고, 및
    상기 태그 정보 및 상기 데이터에 기초하여 적어도 하나의 상기 플래쉬 저장 장치의 비휘발성 메모리 섹션에 대해 상기 RAID 입/출력 동작을 수행하는 것을 포함하되,
    상기 태그에 대응하는 상기 입/출력 속성 정보는 상기 RAID 입/출력 동작의 카테고리 정보를 제공하는 스트림 식별자(ID) 및 상기 RAID 입/출력 동작의 실행 순서 정보를 지칭하는 시퀀스 번호를 포함하는 RAID 구성에서 복수의 플래쉬 저장 장치의 동작 방법.
  6. 제 5항에 있어서,
    갑작스러운 파워 오프(sudden power off) 발생을 감지하고; 및
    상기 복수의 플래쉬 저장 장치들 중 적어도 하나에서의 상기 갑작스러운 파워 오프 발생 여부의 상기 감지 결과에 기초하여 상기 리저브된 RAID 메타 저장 영역의 내용(contents)을 상기 비휘발성 메모리 섹션에 기록하는 것을 더 포함하는 RAID 구성에서 복수의 플래쉬 저장 장치의 동작 방법.
  7. 제 6항에 있어서,
    상기 호스트 장치로부터 입/출력 속성 정보 검색 커맨드를 수신 받고, 및
    상기 리저브된 RAID 메타 저장 영역의 상기 내용을 상기 복수의 플래시 저장 장치 중 적어도 하나에서의 상기 비휘발성 메모리 섹션으로부터 상기 호스트 장치로 전송하는 것을 더 포함하는 RAID 구성에서 복수의 플래쉬 저장 장치의 동작 방법.
  8. 제 5항에 있어서,
    상기 휘발성 메모리 섹션은 RAM(Random Access Memory)이고,
    상기 비휘발성 메모리 섹션은 플래쉬 메모리인 RAID 구성에서 복수의 플래쉬 저장 장치의 동작 방법.
  9. 제 5항에 있어서,
    상기 복수의 플래쉬 저장 장치 각각은 NVDIMM-F(Non-Volatile Dual In-line Memory Module-F) 플래쉬 저장 장치 또는 NVMe(NVM Express) 플래쉬 저장 장치 중 하나인 RAID 구성에서 복수의 플래쉬 저장 장치의 동작 방법.
  10. 삭제
KR1020160128783A 2016-08-24 2016-10-06 Raid 동작을 제어하는 방법 및 시스템 KR102659829B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201641028801 2016-08-24
IN201641028801 2016-08-24

Publications (2)

Publication Number Publication Date
KR20180022515A KR20180022515A (ko) 2018-03-06
KR102659829B1 true KR102659829B1 (ko) 2024-04-22

Family

ID=61242764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160128783A KR102659829B1 (ko) 2016-08-24 2016-10-06 Raid 동작을 제어하는 방법 및 시스템

Country Status (2)

Country Link
US (1) US10445178B2 (ko)
KR (1) KR102659829B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11782616B2 (en) 2021-04-06 2023-10-10 SK Hynix Inc. Storage system and method of operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006078311A2 (en) 2005-01-14 2006-07-27 Ario Data Networks, Inc. Apparatus, system and method for differential rebuilding of a reactivated offline raid member disk
US20160054942A1 (en) 2013-03-15 2016-02-25 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US20120159040A1 (en) * 2010-12-15 2012-06-21 Dhaval Parikh Auxiliary Interface for Non-Volatile Memory System
US20130036256A1 (en) * 2011-08-05 2013-02-07 Hitachi, Ltd. Method and apparatus of sanitizing storage device
US8745320B2 (en) 2012-05-04 2014-06-03 Riverbed Technology, Inc. Ensuring write operation consistency using multiple storage devices
US9213633B2 (en) * 2013-04-30 2015-12-15 Seagate Technology Llc Flash translation layer with lower write amplification
US9690655B2 (en) * 2014-09-30 2017-06-27 EMC IP Holding Company LLC Method and system for improving flash storage utilization by predicting bad m-pages
US10013177B2 (en) * 2015-04-20 2018-07-03 Hewlett Packard Enterprise Development Lp Low write amplification in solid state drive

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006078311A2 (en) 2005-01-14 2006-07-27 Ario Data Networks, Inc. Apparatus, system and method for differential rebuilding of a reactivated offline raid member disk
US20160054942A1 (en) 2013-03-15 2016-02-25 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance

Also Published As

Publication number Publication date
US20180060170A1 (en) 2018-03-01
KR20180022515A (ko) 2018-03-06
US10445178B2 (en) 2019-10-15

Similar Documents

Publication Publication Date Title
US10365983B1 (en) Repairing raid systems at per-stripe granularity
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
US7979635B2 (en) Apparatus and method to allocate resources in a data storage library
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US20150067244A1 (en) Method and System for Migrating Data Between Flash Memory Devices
US8725945B2 (en) Method and system for governing an enterprise level green storage system drive technique
JP2005276196A (ja) ドライブ故障に続いてドライブリカバリを行うためのシステムおよび方法
JP2007156597A (ja) ストレージ装置
JP2007213721A (ja) ストレージシステム及びその制御方法
US20130103902A1 (en) Method and apparatus for implementing protection of redundant array of independent disks in file system
US10346247B1 (en) Adjustable error sensitivity for taking disks offline in a mapped RAID storage array
US10338844B2 (en) Storage control apparatus, control method, and non-transitory computer-readable storage medium
US9459811B2 (en) Disk array system and data processing method
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
US20140379649A1 (en) Distributed storage system and file synchronization method
US7962690B2 (en) Apparatus and method to access data in a raid array
US20130151886A1 (en) Computing device and method for switching physical links of a sas expander of the computing device
KR102659829B1 (ko) Raid 동작을 제어하는 방법 및 시스템
US10586607B2 (en) Method and apparatus for implementing disaggregated memory platters
US20120215966A1 (en) Disk array unit and control method thereof
US11080136B2 (en) Dropped write error detection
KR101509183B1 (ko) 네트워크 직접 부착방식의 저장장치
US11144453B2 (en) Unmap to initialize sectors
US9274709B2 (en) Indicators for storage cells
KR101658071B1 (ko) 하드웨어 어레이와 소프트웨어 어레이의 복합구조 볼륨 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant