KR102277731B1 - 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 - Google Patents

스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 Download PDF

Info

Publication number
KR102277731B1
KR102277731B1 KR1020150103035A KR20150103035A KR102277731B1 KR 102277731 B1 KR102277731 B1 KR 102277731B1 KR 1020150103035 A KR1020150103035 A KR 1020150103035A KR 20150103035 A KR20150103035 A KR 20150103035A KR 102277731 B1 KR102277731 B1 KR 102277731B1
Authority
KR
South Korea
Prior art keywords
volume
priority
metadata
storage
stripe
Prior art date
Application number
KR1020150103035A
Other languages
English (en)
Other versions
KR20170011080A (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 KR1020150103035A priority Critical patent/KR102277731B1/ko
Priority to US15/183,435 priority patent/US10282260B2/en
Publication of KR20170011080A publication Critical patent/KR20170011080A/ko
Application granted granted Critical
Publication of KR102277731B1 publication Critical patent/KR102277731B1/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/0604Improving or facilitating administration, e.g. storage management
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

스토리지 시스템의 구동 방법 및 스토리지 컨트롤러가 제공된다. 스토리지 시스템의 구동 방법은, 하나 이상의 호스트 디바이스에 볼륨 단위의 스토리지를 제공하는 스토리지 서비스를 실행시키고, 상기 볼륨은 제1 볼륨 및 제2 볼륨을 포함하고, 상기 제1 볼륨 및 상기 제2 볼륨에 제1 우선순위 및 상기 제1 우선순위보다 낮은 제2 우선순위를 각각 부여하고, 상기 스토리지 서비스가 중단된 경우, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터를 복구하고, 복구된 상기 제1 볼륨에 대한 메타데이터를 이용하여 상기 스토리지 서비스를 시작하고, 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터를 복구하는 것을 포함한다.

Description

스토리지 시스템의 구동 방법 및 스토리지 컨트롤러{METHOD FOR OPERATING STORAGE SYSTEM AND STORAGE CONTROLLER}
본 발명은 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러에 관한 것이다.
스토리지 시스템에 서든 파워 오프(sudden power off) 또는 시스템 고장(system crash)이 발생한 경우, 스토리지 시스템에 의해 제공되던 스토리지 서비스는 중단된다. 스토리지 시스템은 중단된 스토리지 서비스를 재개하기 위해 재부팅되고, 스토리지 서비스를 제공하기 위해 필요한 메타데이터를 복구한다. 또한, 필요에 따라 스토리지 시스템은 고장이 발생한 스토리지 디바이스(예컨대, 디스크 드라이브)에 저장되어 있던 데이터를 복구할 수도 있다.
본 발명이 해결하려는 과제는 스토리지 서비스가 중단된 경우 스토리지 볼륨에 대한 우선순위에 따라 메타데이터를 복구하여 신속하게 스토리지 서비스를 재개할 수 있는 스토리지 시스템의 구동 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는 스토리지 서비스가 중단된 경우 스토리지 볼륨에 대한 우선순위에 따라 메타데이터를 복구하여 신속하게 스토리지 서비스를 재개할 수 있는 스토리지 컨트롤러를 제공하는 것이다.
본 발명이 해결하려는 과제는 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법은, 하나 이상의 호스트 디바이스에 볼륨 단위의 스토리지를 제공하는 스토리지 서비스를 실행시키고, 볼륨은 제1 볼륨 및 제2 볼륨을 포함하고, 제1 볼륨 및 제2 볼륨에 제1 우선순위 및 제1 우선순위보다 낮은 제2 우선순위를 각각 부여하고, 스토리지 서비스가 중단된 경우, 제1 우선순위를 갖는 제1 볼륨에 대한 메타데이터를 복구하고, 복구된 제1 볼륨에 대한 메타데이터를 이용하여 스토리지 서비스를 시작하고, 제2 우선순위를 갖는 제2 볼륨에 대한 메타데이터를 복구하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 제1 볼륨에 대한 메타데이터를 복구하는 것은, 상기 제1 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스(Logical Block Address, LBA)를 상기 제1 볼륨에 대응하는 스토리지 디바이스에 정의된 하나 이상의 스트라이프(stripe)에 매핑하는 제1 LBA 매핑 테이블을 메모리에 로드하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제2 볼륨에 대한 메타데이터를 복구하는 것은, 상기 제2 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스를 상기 제2 볼륨에 대응하는 스토리지 디바이스에 정의된 하나 이상의 스트라이프에 매핑하는 제2 LBA 매핑 테이블을 상기 메모리에 로드하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터는 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터보다 먼저 메모리 해제(free)될 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 볼륨에 대한 메타데이터를 복구하는 것은, 상기 스토리지 디바이스에 상기 제1 볼륨에 대응하여 정의된 제1 스트라이프에 저장된 제1 리버스 맵을 이용하여 상기 제1 볼륨에 대한 메타데이터를 업데이트하는 것을 포함하고, 상기 제2 볼륨에 대한 메타데이터를 복구하는 것은, 상기 스토리지 디바이스에 상기 제2 볼륨에 대응하여 정의된 제2 스트라이프에 저장된 제2 리버스 맵을 이용하여 상기 제2 볼륨에 대한 메타데이터를 업데이트하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 스트라이프 및 상기 제2 스트라이프는 각각 복수의 데이터 청크를 포함하고, 상기 제1 스트라이프에 포함된 데이터 청크는 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대응하고, 상기 제2 스트라이프에 포함된 데이터 청크는 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대응할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 상기 하나 이상의 호스트 디바이스로부터 상기 제1 볼륨에 대한 데이터 라이트(write) 요청을 수신한 경우, 상기 데이터를 상기 제1 스트라이프에 저장하고, 상기 하나 이상의 호스트 디바이스로부터 상기 제2 볼륨에 대한 데이터 라이트 요청을 수신한 경우, 상기 데이터를 상기 제2 스트라이프에 저장하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 상기 제1 스트라이프 정보를 비휘발성 메모리(NVRAM)의 제1 영역에 저장하고, 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 상기 제2 스트라이프 정보를 상기 비휘발성 메모리의 제2 영역에 저장하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 볼륨에 대한 메타데이터를 복구하는 것은, 상기 스토리지에 대한 공통 메타데이터를 복구한 후 상기 제1 볼륨에 대한 메타 데이터를 복구하는 것을 포함하고, 상기 스토리지 서비스를 시작하는 것은, 복구된 상기 공통 메타데이터를 이용하여 상기 스토리지 서비스를 시작하는 것을 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법은, 하나 이상의 호스트 디바이스에 제공된 볼륨 정보를 포함하는 볼륨 매핑 테이블을 메모리에 로드(load)하고, 볼륨 정보는 제1 우선순위를 갖는 제1 볼륨에 대한 볼륨 정보 및 제1 우선순위보다 낮은 제2 우선순위를 갖는 제2 볼륨에 대한 볼륨 정보를 포함하고, 제1 우선순위를 갖는 제1 볼륨에 대해, 제1 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스(Logical Block Address, LBA)를 제1 볼륨에 대응하는 스토리지 디바이스에 정의된 하나 이상의 스트라이프(stripe)에 매핑하는 제1 LBA 매핑 테이블을 메모리에 로드하고, 메모리에 로드된 제1 LBA 매핑 테이블을 이용하여 하나 이상의 호스트 디바이스에 대한 스토리지 서비스를 시작하고, 제2 우선순위를 갖는 제2 볼륨에 대해, 제2 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스를 제2 볼륨에 대응하는 스토리지 디바이스의 물리적 어드레스에 매핑하는 제2 LBA 매핑 테이블을 메모리에 로드하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 상기 볼륨 매핑 테이블을 메모리에 로드한 후, 상기 볼륨 매핑 테이블에 저장된 상기 제1 볼륨에 대한 볼륨 정보를 이용하여 상기 제1 LBA 매핑 테이블에 대한 정보를 포함하는 제1 간접 매핑 테이블을 상기 메모리에 로드하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 LBA 매핑 테이블을 상기 메모리에 로드하는 것은, 상기 제1 간접 매핑 테이블에 저장된 상기 제1 LBA 매핑 테이블에 대한 정보를 이용하여 상기 제1 LBA 매핑 테이블을 상기 메모리에 로드하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 상기 스토리지 서비스를 시작한 후, 상기 볼륨 매핑 테이블에 저장된 상기 제2 볼륨에 대한 볼륨 정보를 이용하여 상기 제2 LBA 매핑 테이블에 대한 정보를 포함하는 제2 간접 매핑 테이블을 상기 메모리에 로드하는 것을 더 포함하고, 상기 제1 우선순위를 갖는 상기 제1 간접 매핑 테이블을 메모리 해제(free)하기 전에 상기 제2 우선순위를 갖는 상기 제2 간접 매핑 테이블을 먼저 메모리 해제하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 스토리지 디바이스는 상기 제1 볼륨 및 상기 제2 볼륨에 각각 대응하는 제1 스트라이프 및 제2 스트라이프를 각각 포함하고, 상기 제1 LBA 매핑 테이블을 상기 메모리에 로드하는 것은, 상기 제1 스트라이프에 저장된 제1 리버스 맵을 이용하여 상기 제1 LBA 매핑 테이블을을 업데이트하는 것을 포함하고, 상기 제2 LBA 매핑 테이블을 상기 메모리에 로드하는 것은, 상기 제2 스트라이프에 저장된 제2 리버스 맵을 이용하여 상기 제2 LBA 매핑 테이블을을 업데이트하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 상기 제1 스트라이프 정보는 비휘발성 메모리(NVRAM)의 제1 영역에 저장되고, 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 상기 제2 스트라이프 정보는 상기 비휘발성 메모리의 제2 영역에 저장될 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 스토리지 컨트롤러는, 복수의 스트라이프(stripe)를 포함하고, 하나 이상의 호스트 디바이스에 제공되는 제1 볼륨 및 제2 볼륨이 정의되는 복수의 스토리지 디바이스를 제어하는 스토리지 디바이스 컨트롤러; 제1 볼륨에 제1 우선순위를 부여하고, 제2 볼륨에 제1 우선순위보다 낮은 제2 우선순위를 부여하는 우선순위 관리 모듈; 및 하나 이상의 호스트 디바이스에 제공되는 스토리지 서비스가 중단된 경우, 제1 우선순위를 갖는 제1 볼륨에 대한 메타데이터를 메모리에 로드(load)하고 메모리에 로드된 제1 볼륨에 대한 메타데이터를 이용하여 스토리지 서비스를 시작시킨 후, 제2 우선순위를 갖는 제2 볼륨에 대한 메타데이터를 메모리에 로드하는 인스트럭션을 실행하는 프로세서를 포함한다.
본 발명의 몇몇의 실시예에서, 상기 우선순위 관리 모듈에 의해 부여된 상기 제1 우선순위 및 상기 제2 우선순위는 상기 복수의 스토리지 디바이스 또는 상기 메모리에 저장될 수 있다.
본 발명의 몇몇의 실시예에서, 상기 스토리지 컨트롤러는 상기 스토리지 서비스가 시작된 후, 상기 제1 볼륨을 사용하는 호스트 디바이스에 상기 스토리지 서비스를 제공하는 네트워크 인터페이스를 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 프로세서는 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터가 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터보다 먼저 메모리 해제(free)되도록 하는 인스트럭션을 실행할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 볼륨에 대한 메타데이터를 로드하는 것은, 상기 스토리지 디바이스에 상기 제1 볼륨에 대응하여 정의된 제1 스트라이프에 저장된 제1 리버스 맵을 이용하여 상기 제1 볼륨에 대한 메타데이터를 업데이트하는 것을 포함하고, 상기 제2 볼륨에 대한 메타데이터를 로드하는 것은, 상기 스토리지 디바이스에 상기 제2 볼륨에 대응하여 정의된 제2 스트라이프에 저장된 제2 리버스 맵을 이용하여 상기 제2 볼륨에 대한 메타데이터를 업데이트하는 것을 포함하고, 상기 스토리지 컨트롤러는 상기 제1 스트라이프 정보 및 상기 제2 스트라이프 정보를 구분하여 저장하는 비휘발성 메모리(NVRAM)를 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템에 의해 제공되는 스토리지 서비스를 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 3 내지 도 8은 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면들이다.
도 9는 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면이다.
도 10 내지 도 15는 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면들이다.
도 16은 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 순서도이다.
도 17은 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템에 의해 제공되는 스토리지 서비스를 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(100)은 네크워크(300)를 통해 하나 이상의 호스트 디바이스(400, 410, 420)에 스토리지 서비스를 제공한다.
스토리지 시스템(100)은 호스트 디바이스(400, 410, 420)에 스토리지를 제공한다. 구체적으로 스토리지 시스템(100)은 호스트 디바이스(400, 410, 420)에 볼륨 단위의 스토리지를 제공한다. 예를 들어, 스토리지 시스템(100)은 호스트 디바이스(400)에 300 GB의 제1 볼륨(VOL1)의 스토리지를 제공하고, 호스트 디바이스(410)에 500 GB의 제2 볼륨(VOL2)의 스토리지를 제공하고, 호스트 디바이스(420)에 각각 200 GB 및 400 GB의 제3 볼륨(VOL3) 및 제4 볼륨(VOL4)의 스토리지를 제공할 수 있다.
스토리지 시스템(100)은 이와 같은 호스트 디바이스(400, 410, 420)에 제공된 볼륨 정보를 유지하고 있다가, 호스트 디바이스(400, 410, 420)로부터 데이터 액세스(예컨대 데이터 라이트(write) 또는 데이터 리드(read)) 요청을 수신하면, 각각의 볼륨 정보를 이용하여 스토리지 시스템(100)의 스토리지 디바이스에 데이터를 라이트하거나 스토리지 디바이스로부터 데이터를 리드한다.
네트워크(300)는 LAN(Local Area Network), WAN(Wide Area Network) 등을 비롯한 유선 네트워크 및 WiFi 네트워크, 셀룰러 네트워크 등을 비롯한 무선 네트워크를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 본 발명의 몇몇의 실시예에서, 네트워크(300)는 SAN(Storage Area Network)를 포함할 수 있다. 한편, 다른 몇몇의 실시예에서, 스토리지 시스템(100)은 호스트 디바이스(400, 410, 420)와 케이블로 직접 연결될 수도 있다.
호스트 디바이스(400, 410, 420)는 예컨대, 서버 컴퓨터, 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터 및 스토리지 시스템(100)과 연결되어 데이터를 주고 받을 수 있는 다양한 형태의 컴퓨팅 디바이스를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(100)은 스토리지 컨트롤러(110) 및 스토리지 디바이스(120a, 120b, 120c, 120d)를 포함한다.
스토리지 컨트롤러(110)는 호스트 디바이스(400, 410, 420)의 요청을 처리하고 그 결과를 호스트 디바이스(400, 410, 420)에 제공하며, 스토리지 디바이스(120a, 120b, 120c, 120d)를 제어한다. 스토리지 컨트롤러(110)는 프로세서(40), 메모리(50), 네트워크 인터페이스(60), 우선순위 관리 모듈(10), 스토리지 디바이스 컨트롤러(20) 및 비휘발성 메모리(NVRAM)(30)를 포함한다. 프로세서(40), 메모리(50), 네트워크 인터페이스(60), 우선순위 관리 모듈(10), 스토리지 디바이스 컨트롤러(20) 및 비휘발성 메모리(NVRAM)(30)는 버스(70)를 통해 서로 데이터를 주고 받을 수 있다.
스토리지 디바이스 컨트롤러(20)를 먼저 설명하면, 스토리지 디바이스 컨트롤러(20)는 프로세서(40)에 의해 실행되는 프로그램 코드 또는 인스트럭션에 따라 스토리지 디바이스(120a, 120b, 120c, 120d)를 실질적으로 제어한다. 예를 들어, 스토리지 디바이스 컨트롤러(20)는 데이터 라이트 인스트럭션에 따라 스토리지 디바이스(120a)에 데이터를 라이트하거나, 데이터 리드 인스트럭션에 따라 스토리지 디바이스(120c)로부터 데이터를 리드할 수 있다. 비휘발성 메모리(30)는 스토리지 컨트롤러(110)가 스토리지 시스템(100)을 제어하기 위해 사용하는 메타데이터를 비롯한 다양한 데이터를 포함할 수 있다.
프로세서(40)는 스토리지 시스템(100)을 제어하기 위한 프로그램 코드 또는 인스트럭션을 실행한다. 메모리(50)는 이러한 프로그램 코드 또는 인스트럭션을 포함할 수 있다. 메모리(50) 역시 스토리지 컨트롤러(110)가 스토리지 시스템(100)을 제어하기 위해 사용하는 메타데이터를 포함할 수 있다. 한편 네트워크 인터페이스(60)는 스토리지 시스템(100)과 네트워크(300)로 연결된 호스트 디바이스(400, 410, 420)와 데이터를 주고 받을 수 있도록 한다.
스토리지 시스템(100)을 제어하기 위해 사용하는 메타데이터는, 도 4와 관련하여 후술할 볼륨 매핑 테이블, 간접 매핑 테이블, LBA 매핑 테이블 등을 포함할 수 있다. 또한, 메타데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에 정의된 스트라이프(stripe)에 관한 정보를 포함할 수도 있다. 스토리지 컨트롤러(110)는 이와 같은 메타데이터를 이용하여 호스트 디바이스(400, 410, 420)에 스토리지 서비스를 제공한다. 이와 같은 메타데이터는 스토리지 시스템(100)이 구동되지 않는 동안에는 스토리지 디바이스(120a, 120b, 120c, 120d)를 비롯한 디스크 영역에 저장될 수 있는데, 스토리지 컨트롤러(110)가 메타데이터를 사용하기 위해서는 디스크 영역에 저장된 메타데이터를 메모리 영역(예컨대, 메모리(50) 또는 비휘발성 메모리(30))에 로드해야 한다.
만일 서든 파워 오프(sudden power off) 또는 시스템 고장(system crash) 등이 발생하여 스토리지 서비스가 중단된 경우, 스토리지 컨트롤러(110)는 스토리지 시스템(100)을 제어하고 스토리지 서비스를 재개하기 위해 메타데이터를 복구할 필요가 있다. 즉, 스토리지 컨트롤러(110)는 스토리지 서비스를 재개하기 위해 디스크 영역에 저장된 메타데이터를 메모리 영역(예컨대, 메모리(50) 또는 비휘발성 메모리(30))에 로드할 필요가 있다. 이 때, 모든 메타데이터를 동시에 복구하는 것은 상당한 시간적인 비용을 필요로 한다.
도 1과 관련하여 앞서 설명한 바와 같이, 스토리지 시스템(100)은 호스트 디바이스(400, 410, 420)에 볼륨 단위의 스토리지를 제공하는데, 우선순위 관리 모듈(10)은 호스트 디바이스(400, 410, 420)에 각각 제공된 볼륨 별로 우선순위를 부여한다. 예를 들어, 호스트 디바이스(410)에 제공된 볼륨(VOL2)에 가장 높은 제1 우선순위를 부여하고, 호스트 디바이스(400)에 제공된 볼륨(VOL1)에 제1 우선순위보다 낮은 제2 우선순위를 부여하고, 호스트 디바이스(420)에 제공된 볼륨(VOL3)에 제2 우선순위보다 낮은 제3 우선순위를 부여할 수 있다.
이에 따라, 스토리지 서비스가 중단된 경우, 스토리지 컨트롤러(110)는 프로세서(40)를 이용하여, 가장 높은 제1 우선순위를 갖는 볼륨(VOL2)에 대한 메타데이터를 먼저 복구하고, 복구된 메타데이터를 이용하여 스토리지 서비스를 재개한다. 그러면 스토리지 시스템(100)은 스토리지 서비스를 완전히 복구하기 전이라도 적어도 호스트 디바이스(410)에 대해서는 스토리지 서비스를 제공할 수 있게 된다. 다음으로, 스토리지 서비스가 시작된 후, 스토리지 컨트롤러(110)는 제2 우선순위를 갖는 볼륨(VOL1)에 대한 메타데이터를 복구한다. 그러면 스토리지 시스템(100)은 스토리지 서비스를 완전히 복구하기 전이라도 적어도 호스트 디바이스(410, 400)에 대해 스토리지 서비스를 제공할 수 있다. 이후, 스토리지 컨트롤러(110)는 제3 우선순위를 갖는 볼륨(VOL3)에 대한 메타데이터를 복구할 수 있다.
본 발명의 몇몇의 실시예에서, 각각의 볼륨에 부여되는 우선순위는 각각의 볼륨의 특성을 분석하여 정해질 수도 있고, 관리자에 의해 임의적으로 정해질 수도 있다. 여기서 볼륨의 특성이란, 예컨대, 각각의 볼륨의 상태, 각각의 볼륨에 대한 데이터 액세스의 빈도 또는 주기, 각각의 볼륨을 이용하여 수행되는 작업의 중요도, 각각의 볼륨에 대한 비용적 가치 등을 고려하여 정해질 수 있다.
일례로, 호스트 디바이스(400, 410, 420)와 연결이 수립된 볼륨(즉, 온라인 볼륨)은 호스트 디바이스(400, 410, 420)와 연결이 끊어진 볼륨(즉, 오프라인 볼륨)보다 더 높은 우선순위를 가질 수 있고, 온라인 볼륨 중에서는 데이터 액세스의 빈도가 높은 볼륨이 데이터 액세스의 빈도가 낮은 볼륨보다 더 높은 우선순위를 가질 수 있다. 다른 예로, 주요 실행 파일들이 저장된 볼륨(예컨대, 마스터 볼류)은 데이터가 저장된 볼륨(예컨대, 슬레이브 볼륨)보다 더 높은 우선순위를 가질 수 있고, 단위 용량 당 비용이 높은 볼륨은 단위 용량 당 비용이 낮은 볼륨보다 더 높은 우선순위를 가질 수 있다. 또 다른 예로, 관리자가 특정 볼륨에 대해 명시적으로 높은 우선순위를 부여할 수도 있다.
이하에서는 스토리지 서비스가 중단된 경우, 스토리지 컨트롤러(110)가 메타데이터를 복구하는 세부적인 과정에 대해 구체적으로 설명하도록 한다.
도 3 내지 도 8은 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면들이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위해 스트라이프(200)의 ID가 "1003"이고, 스트라이프(200)에 포함되는 데이터 청크(122a, 122b, 122c, 122d)는 각각 오프셋 "0", "1", "2", "3"에 의해 식별된다고 가정하자. 또한 오프셋 "0", "1", "2"으로 식별되는 데이터 청크(122a, 122b, 122c)는 각각 "513", "1025", "1042"의 LBA로 액세스되고, 500 GB의 사이즈를 갖는 제1 볼륨에 포함된다고 가정하자. 한편, 오프셋 "3"으로 식별되는 데이터 청크(122d)는 "257"의 LBA로 액세스되고, 300 GB의 사이즈를 갖는 제2 볼륨에 포함된다고 가정하자.
도 4는 이와 같은 가정 하에서 메모리에 로드된 메타데이터, 즉, 볼륨 매핑 테이블(501), 간접 매핑 테이블(511, 513) 및 LBA 매핑 테이블(521, 523, 531)을 나타낸 것이다.
볼륨 매핑 테이블(501)은 호스트 디바이스(400, 410, 420)에 제공된 볼륨 정보를 포함한다. 예를 들어, 볼륨 매핑 테이블(501)은 제1 볼륨에 대한 볼륨 정보(예컨대 500 GB의 사이즈)를 포함하는 레코드(5011) 및 제2 볼륨에 대한 볼륨 정보(예컨대 300 GB의 사이즈)를 포함하는 레코드(5013)를 포함한다.
간접 매핑 테이블(511, 513)은 볼륨 별로 사용되는 LBA 매핑 테이블(521, 523, 531)에 대한 정보를 포함한다. 예를 들어, 간접 매핑 테이블(511)은 제1 볼륨의 스토리지를 액세스하기 위한 메모리 상의 LBA 매핑 테이블(521, 523)의 위치 정보(maddr)를 포함하는 레코드(5111, 5113)를 포함하고, 간접 매핑 테이블(513)은 제2 볼륨의 스토리지를 액세스하기 위한 메모리 상의 LBA 매핑 테이블(531)의 위치 정보(maddr)를 포함하는 레코드(5131)를 포함한다.
LBA 매핑 테이블(521, 523, 531)은 해당 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스(LBA)를 스토리지 디바이스(120a, 120b, 120c, 120d)에 정의된 스트라이프에 매핑한다. 예를 들어, 제1 볼륨에 대해 "513"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1003" 스트라이프의 "0"번 오프셋에 저장되고, "1025"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1003" 스트라이프의 "1"번 오프셋에 저장된다. 한편, 제2 볼륨에 대해 "257"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1003" 스트라이프의 "3"번 오프셋에 저장된다.
이어서 도 5 내지 도 7은 메타데이터를 디스크 영역에 저장하는 것을 나타낸다. 먼저 도 5를 참조하면, 먼저 메모리 영역 상의 LBA 매핑 테이블(521, 523, 531)은 디스크 영역에 LBA 매핑 테이블(621, 623, 631)로서 저장된다. 이 때 간접 매핑 테이블(511, 513)은 LBA 매핑 테이블(521, 523, 531)이 디스크 영역으로 플러시되었기 때문에 "dirty" 비트를 1에서 0으로 바꾸고, 그 저장 위치를 "daddr" 칼럼에 기록한다. 다음으로 도 6을 참조하면, 메모리 영역 상의 간접 매핑 테이블(511, 513)은 디스크 영역에 간접 매핑 테이블(611, 613)로서 저장된다. 이 때 볼륨 매핑 테이블(501)은 간접 매핑 테이블(511, 513)이 디스크 영역으로 플러시되었기 때문에 "dirty" 비트를 1에서 0으로 바꾸고, 그 저장 위치를 "daddr" 칼럼에 기록한다. 마지막으로 도 7을 참조하면, 메모리 영역 상의 볼륨 매핑 테이블(501) 역시 디스크 영역에 볼륨 매핑 테이블(601)로서 저장된다. 디스크 영역에 저장된 볼륨 매핑 테이블(601)은 포인터(P)에 의해 접근될 수 있다. 특히, 본 실시예에서는 우선순위 관리 모듈(10)에 의해 부여된 제2 볼륨의 우선순위가 제1 볼륨의 우선순위보다 높다고 가정한다.
다음으로 도 8을 참조하면, 스토리지 서비스가 중단된 경우, 스토리지 컨트롤러(110)는 높은 우선순위를 갖는 제2 볼륨에 대한 메타데이터를 복구한다. 구체적으로, 스토리지 컨트롤러(110)는 디스크 영역에 저장된 볼륨 매핑 테이블(601)을 리드하여 메모리 영역에 볼륨 매핑 테이블(501)을 로드한다. 다음으로 스토리지 컨트롤러(110)는 볼륨 매핑 테이블(501)에 기록된 간접 매핑 테이블(613)의 디스크 영역 상의 위치 정보를 이용하여, 메모리 영역에 간접 매핑 테이블(513)을 로드한다. 또한 스토리지 컨트롤러(110)는 간접 매핑 테이블(513)에 기록된 LBA 매핑 테이블(631)의 디스크 영역 상의 위치 정보를 이용하여, 메모리 영역에 LBA 매핑 테이블(531)을 로드한다.
다음으로 스토리지 컨트롤러(110)는 복구된 제1 볼륨에 대한 메타데이터(즉, 메모리 영역에 로드된 볼륨 매핑 테이블(501), 간접 매핑 테이블(513) 및 LBA 매핑 테이블(531))를 이용하여 스토리지 서비스를 시작한다. 이후 스토리지 컨트롤러(110)는 낮은 우선순위를 갖는 제1 볼륨에 대한 메타데이터를 복구한다. 즉, 스토리지 컨트롤러는(110)는 간접 매핑 테이블(511) 및 LBA 매핑 테이블(531)을 추가로 복구하여 메모리 영역에 로드한다.
이와 같이, 높은 우선순위를 갖는 제2 볼륨에 대한 메타데이터를 먼저 복구하고, 복구된 메타데이터를 이용하여 스토리지 서비스를 재개함으로써, 스토리지 시스템(100)은 스토리지 서비스를 완전히 복구하기 전이라도 일부 호스트 디바이스에 대해 스토리지 서비스를 제공할 수 있게 된다.
도 9는 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법에서 낮은 우선순위를 갖는 볼륨에 대한 메타데이터는 높은 우선순위를 갖는 볼륨에 대한 메타데이터보다 먼저 메모리 해제(free)될 수 있다.
예를 들어, 스토리지 시스템(100) 상에서 메모리 해제가 필요한 경우, 낮은 우선순위를 갖는 제1 볼륨에 대한 간접 매핑 테이블(511)은 높은 우선순위를 갖는 제2 볼륨에 대한 간접 매핑 테이블(513)보다 먼저 메모리 해제될 수 있다. 특히 높은 우선순위가 해당 볼륨에 대한 데이터 액세스의 빈도 수로 결정된 경우에는 이와 같이 낮은 우선순위를 갖는 볼륨에 대한 메타데이터를 높은 우선순위를 갖는 볼륨에 대한 메타데이터보다 먼저 메모리 해제함으로써, 디스크 영역으로부터 메모리 영역으로 메타데이터를 다시 로드해야 하는 작업의 빈도를 감소시킬 수 있다.
도 10 내지 도 15는 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 도면들이다.
도 10을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위해 스트라이프(210)의 ID가 "1007"이고, 스트라이프(210)에 포함되는 데이터 청크(124a, 124b, 124c, 124d)는 각각 오프셋 "0", "1", "2", "3"에 의해 식별된다고 가정하자. 또한 오프셋 "0", "1"로 식별되는 데이터 청크(124a, 124b)는 각각 "1012", "1324"의 LBA로 액세스되고, 500 GB의 사이즈를 갖는 제1 볼륨에 포함된다고 가정하자. 한편, 오프셋 "2", "3"으로 식별되는 데이터 청크(124c, 124d)는 "400", "498"의 LBA로 액세스되고, 300 GB의 사이즈를 갖는 제2 볼륨에 포함된다고 가정하자.
도 11은 이와 같은 가정 하에서 메모리에 로드된 메타데이터, 즉, 볼륨 매핑 테이블(501), 간접 매핑 테이블(511, 513) 및 LBA 매핑 테이블(521, 523, 531)을 나타낸 것이다. 본 실시예에서, 메모리 영역 상의 간접 매핑 테이블(511, 513) 및 LBA 매핑 테이블(521, 523, 531)은 도 10에서 설명한 스트라이프(210)에 데이터가 라이트됨에 따라 디스크 영역 상의 간접 매핑 테이블(611, 613) 및 LBA 매핑 테이블(621, 623, 631)과 그 내용이 일치하지 않음을 알 수 있다.
즉, 제1 볼륨에 대해 "1012"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1007" 스트라이프의 "0"번 오프셋에 저장되었고, 제1 볼륨에 대해 "1324"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1007" 스트라이프의 "1"번 오프셋에 저장되었으나, 이러한 정보는 메모리 영역 상의 LBA 매핑 테이블(521, 523)에만 반영되고 디스크 영역 상의 LBA 매핑 테이블(621, 623)에는 반영되지 않았다. 이에 따라 간접 매핑 테이블(511)은 LBA 매핑 테이블(521, 523)이 디스크 영역으로 플러시되지 않았음을 "dirty" 칼럼에 기록하였다.
한편, 제2 볼륨에 대해 "400"의 LBA로 쓰기 요청된 데이터는 스토리지 디바이스(120a, 120b, 120c, 120d)에서 "1007" 스트라이프의 "2"번 오프셋에 저장되었으나, 이러한 정보는 메모리 영역 상의 LBA 매핑 테이블(531)에만 반영되고 디스크 영역 상의 LBA 매핑 테이블(631)에는 반영되지 않았다. 이에 따라 간접 매핑 테이블(513)은 LBA 매핑 테이블(531)이 디스크 영역으로 플러시되지 않았음을 "dirty" 칼럼에 기록하였다.
단, 이와 같이 추가적으로 라이트된 스트라이프(210)에 관한 정보는 스트라이프 저널(517)에 기록되어 있는 상태이고, 도 13에 도시된 바와 같이 스토리지 디바이스(120a, 120b, 120c, 120d)에는 이에 대한 리버스 맵(509)이 저장된 상태이다.
이어서 도 12를 참조하면, 이와 같은 상황에서 스토리지 서비스가 중단된 경우 도 3 내지 도 8과 관련하여 앞서 설명한 방법만으로는 메타데이터를 완전히 복구할 수 없기 때문에, 도 13의 리버스 맵(509)을 이용하여 복구된 메타데이터를 업데이트할 필요가 있다. 여기서 리버스 맵(509)은 해당 스트라이프에 저장된 데이터의 볼륨 정보 및 LBA 정보를 포함하며, 본 발명의 몇몇의 실시예에서는 스트라이프의 일부 영역(예컨대, 스트라이프(210)의 데이터 청크(124d)의 일부 영역)에 저장된다.
도 14를 참조하면, 스트라이프(210)에 대한 리버스 맵(509)은 제1 볼륨에 해당되고 "1012"의 LBA를 갖는 데이터 청크(124a), 제1 볼륨에 해당되고 "1324"의 LBA를 갖는 데이터 청크(124b) 및 제2 볼륨에 해당되고 "400"의 LBA를 갖는 데이터 청크(124c)에 관한 정보들(5091, 5093, 5095)을 포함한다. 이로부터 스토리지 컨트롤러(110)는 스트라이프(210)에 추가적으로 라이트된 데이터의 정보를 메타데이터에 업데이트할 수 있다.
특히, 본 발명의 몇몇의 실시예에서, 스토리지 컨트롤러(110)는 호스트 디바이스로부터 우선순위가 높은 제2 볼륨에 대한 데이터 라이트(write) 요청을 수신한 경우 데이터를 제1 스트라이프에 저장하고, 호스트 디바이스로부터 우선순위가 낮은 제1 볼륨에 대한 데이터 라이트 요청을 수신한 경우 데이터를 상기 제2 스트라이프에 저장할 수 있다. 이와 같이 데이터를 라이트한 경우에는, 리버스 맵(509)을 이용하여 메타데이터를 업데이트하는 경우에도 높은 우선순위를 갖는 스트라이프에 대해 먼저 작업을 수행할 수 있어, 보다 신속하게 중단된 스토리지 서비스를 제공할 수 있다.
도 15를 참조하면, 본 발명의 몇몇의 실시예에서, 스트라이프 저널(507)은 제1 영역(700) 및 제2 영역(710)을 포함한다. 제1 영역(700)은 우선순위가 높은 볼륨에 대한 스트라이프 정보들(예컨대 높은 우선순위를 갖는 제2 볼륨에 해당하는 스트라이프 "1003", "1007", "1009" 등에 관한 정보들)을 포함할 수 있다. 한편, 제2 영역(710)은 우선순위가 낮은 볼륨에 대한 스트라이프 정보들(예컨대 낮은 우선순위를 갖는 제1 볼륨에 해당하는 스트라이프 "1006", "1008", "1011" 등에 관한 정보들)을 포함할 수 있다.
도 16은 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 순서도이다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템의 구동 방법은 서든 파워 오프(sudden power off) 또는 시스템 고장(system crash)이 발생하여 스토리지 시스템(100)을 재부팅(S1601), 우선순위 관리 모듈(10)을 이용하여 볼륨 별로 우선순위를 결정(S1603)한다. 이후, 볼륨의 우선순위에 따라 메타데이터를 복구한다.
먼저 스토리지 시스템(100) 전반적으로 이용되는 메타데이터인 공통 메타데이터를 복구(S1605)하고, 가장 높은 제1 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1607)한다. 다음으로, 복구된 제1 우선순위를 갖는 볼륨에 해당하는 메타데이터를 이용하여 스토리지 서비스를 시작(S1609)한다. 이후 제1 우선순위보다 차순위인 제2 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1611)한 다음, 제2 우선순위보다 차순위인 제3 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1613)한다.
도 17은 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법을 설명하기 위한 순서도이다.
도 17을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템의 구동 방법은 서든 파워 오프(sudden power off) 또는 시스템 고장(system crash)이 발생하여 스토리지 시스템(100)을 재부팅(S1601), 우선순위 관리 모듈(10)을 이용하여 볼륨 별로 우선순위를 결정(S1603)한다. 이후, 볼륨의 우선순위에 따라 메타데이터를 복구한다.
먼저 스토리지 시스템(100) 전반적으로 이용되는 메타데이터인 공통 메타데이터를 복구(S1605)하고, 복구된 공통 메타데이터를 이용하여 바로 스토리지 서비스를 시작(S1607)한다. 이와 같은 방식으로 더욱 신속하게 중단된 스토리지 서비스를 재개할 수 있다.
다음으로 가장 높은 제1 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1609)한다. 이후 제1 우선순위보다 차순위인 제2 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1611)한 다음, 제2 우선순위보다 차순위인 제3 우선순위를 갖는 볼륨에 해당하는 메타데이터를 복구(S1613)한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 스토리지 서비스 10: 우선순위 관리 모듈
20: 스토리지 디바이스 컨트롤러 30: 비휘발성 메모리(NVRAM)
40: 프로세서 50: 메모리
60: 네트워크 인터페이스 70: 버스
100: 스토리지 시스템 110: 스토리지 컨트롤러
120a, 120b, 120c, 120d: 스토리지 디바이스
122a, 122b, 122c, 122d, 124a, 124b, 124c, 124d: 데이터 청크
200, 210: 스트라이프 300: 네트워크
400, 410, 420: 호스트 디바이스 501: 볼륨 매핑 테이블
507: 스트라이프 저널 509: 리버스 맵
511, 513: 간접 매핑 테이블 521, 523, 531: LBA 매핑 테이블
601: 볼륨 매핑 테이블 611, 613: 간접 매핑 테이블
621, 623, 631: LBA 매핑 테이블 700: 제1 영역
710: 제2 영역

Claims (10)

  1. 하나 이상의 호스트 디바이스에 볼륨 단위의 스토리지를 제공하는 스토리지 서비스를 실행시키고, 상기 볼륨은 제1 볼륨 및 제2 볼륨을 포함하고,
    상기 제1 볼륨 및 상기 제2 볼륨에 제1 우선순위 및 상기 제1 우선순위보다 낮은 제2 우선순위를 각각 부여하고,
    상기 스토리지 서비스가 중단된 경우, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터를 복구하고,
    복구된 상기 제1 볼륨에 대한 메타데이터를 이용하여 상기 스토리지 서비스를 시작하고,
    상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터를 복구하는 것을 포함하고,
    상기 제1 볼륨에 대한 메타데이터를 복구하는 것은,
    상기 제1 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스(Logical Block Address, LBA)를 상기 제1 볼륨에 대응하는 스토리지 디바이스에 정의된 하나 이상의 스트라이프(stripe)에 매핑하는 제1 LBA 매핑 테이블을 메모리에 로드하는 것을 포함하는 스토리지 시스템의 구동 방법.
  2. 제1항에 있어서,
    상기 제2 볼륨에 대한 메타데이터를 복구하는 것은,
    상기 제2 볼륨의 스토리지를 액세스하기 위한 논리 블록 어드레스를 상기 제2 볼륨에 대응하는 스토리지 디바이스에 정의된 하나 이상의 스트라이프에 매핑하는 제2 LBA 매핑 테이블을 상기 메모리에 로드하는 것을 포함하는 스토리지 시스템의 구동 방법.
  3. 제1항에 있어서,
    상기 제1 볼륨에 대한 메타데이터를 복구하는 것은,
    상기 스토리지에 대한 공통 메타데이터를 복구한 후 상기 제1 볼륨에 대한 메타 데이터를 복구하는 것을 포함하고,
    상기 스토리지 서비스를 시작하는 것은,
    복구된 상기 공통 메타데이터를 이용하여 상기 스토리지 서비스를 시작하는 것을 포함하는 스토리지 시스템의 구동 방법.
  4. 하나 이상의 호스트 디바이스에 볼륨 단위의 스토리지를 제공하는 스토리지 서비스를 실행시키고, 상기 볼륨은 제1 볼륨 및 제2 볼륨을 포함하고,
    상기 제1 볼륨 및 상기 제2 볼륨에 제1 우선순위 및 상기 제1 우선순위보다 낮은 제2 우선순위를 각각 부여하고,
    상기 스토리지 서비스가 중단된 경우, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터를 복구하고,
    복구된 상기 제1 볼륨에 대한 메타데이터를 이용하여 상기 스토리지 서비스를 시작하고,
    상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터를 복구하는 것을 포함하고,
    상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터는 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터보다 먼저 메모리 해제(free)되는 스토리지 시스템의 구동 방법.
  5. 하나 이상의 호스트 디바이스에 볼륨 단위의 스토리지를 제공하는 스토리지 서비스를 실행시키고, 상기 볼륨은 제1 볼륨 및 제2 볼륨을 포함하고,
    상기 제1 볼륨 및 상기 제2 볼륨에 제1 우선순위 및 상기 제1 우선순위보다 낮은 제2 우선순위를 각각 부여하고,
    상기 스토리지 서비스가 중단된 경우, 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 메타데이터를 복구하고,
    복구된 상기 제1 볼륨에 대한 메타데이터를 이용하여 상기 스토리지 서비스를 시작하고,
    상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 메타데이터를 복구하는 것을 포함하고,
    상기 제1 볼륨에 대한 메타데이터를 복구하는 것은, 상기 제1 볼륨에 대응하는 스토리지 디바이스에 정의된 제1 스트라이프에 저장된 제1 리버스 맵을 이용하여 상기 제1 볼륨에 대한 메타데이터를 업데이트하는 것을 포함하고,
    상기 제2 볼륨에 대한 메타데이터를 복구하는 것은, 상기 제2 볼륨에 대응하는 스토리지 디바이스에 정의된 제2 스트라이프에 저장된 제2 리버스 맵을 이용하여 상기 제2 볼륨에 대한 메타데이터를 업데이트하는 것을 포함하는 스토리지 시스템의 구동 방법.
  6. 제5항에 있어서,
    상기 제1 스트라이프 및 상기 제2 스트라이프는 각각 복수의 데이터 청크를 포함하고,
    상기 제1 스트라이프에 포함된 데이터 청크는 상기 제1 우선순위를 갖는 상기 제1 볼륨에 대응하고,
    상기 제2 스트라이프에 포함된 데이터 청크는 상기 제2 우선순위를 갖는 상기 제2 볼륨에 대응하는 스토리지 시스템의 구동 방법.
  7. 제5항에 있어서,
    상기 하나 이상의 호스트 디바이스로부터 상기 제1 볼륨에 대한 데이터 라이트(write) 요청을 수신한 경우, 상기 데이터를 상기 제1 스트라이프에 저장하고,
    상기 하나 이상의 호스트 디바이스로부터 상기 제2 볼륨에 대한 데이터 라이트 요청을 수신한 경우, 상기 데이터를 상기 제2 스트라이프에 저장하는 것을 더 포함하는 스토리지 시스템의 구동 방법.
  8. 제5항에 있어서,
    상기 제1 우선순위를 갖는 상기 제1 볼륨에 대한 상기 제1 스트라이프 정보를 비휘발성 메모리(NVRAM)의 제1 영역에 저장하고,
    상기 제2 우선순위를 갖는 상기 제2 볼륨에 대한 상기 제2 스트라이프 정보를 상기 비휘발성 메모리의 제2 영역에 저장하는 것을 더 포함하는 스토리지 시스템의 구동 방법.
  9. 삭제
  10. 삭제
KR1020150103035A 2015-07-21 2015-07-21 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 KR102277731B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150103035A KR102277731B1 (ko) 2015-07-21 2015-07-21 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러
US15/183,435 US10282260B2 (en) 2015-07-21 2016-06-15 Method of operating storage system and storage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150103035A KR102277731B1 (ko) 2015-07-21 2015-07-21 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러

Publications (2)

Publication Number Publication Date
KR20170011080A KR20170011080A (ko) 2017-02-02
KR102277731B1 true KR102277731B1 (ko) 2021-07-14

Family

ID=57836132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150103035A KR102277731B1 (ko) 2015-07-21 2015-07-21 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러

Country Status (2)

Country Link
US (1) US10282260B2 (ko)
KR (1) KR102277731B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870730B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统
CN111124269B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机可读存储介质
CN114816221A (zh) 2021-01-22 2022-07-29 伊姆西Ip控股有限责任公司 存储管理方法、设备和计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305293A (ja) 2007-06-11 2007-11-22 Toshiba Corp 光ディスクと記録方法と再生方法と再生装置
US20080178185A1 (en) 2007-01-24 2008-07-24 Wataru Okada Apparatus and method for controlling data recovery
US20110066803A1 (en) 2009-09-17 2011-03-17 Hitachi, Ltd. Method and apparatus to utilize large capacity disk drives
KR101459861B1 (ko) 2009-09-29 2014-11-07 마이크론 테크놀로지, 인크. 스트라이프 기반 메모리 작동

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644696A (en) 1995-06-06 1997-07-01 International Business Machines Corporation Recovering multi-volume data sets during volume recovery
US6529995B1 (en) * 1999-06-18 2003-03-04 Storage Technology Corporation Method and apparatus for maintaining and restoring mapping table entries and data in a raid system
GB2369206B (en) * 2000-11-18 2004-11-03 Ibm Method for rebuilding meta-data in a data storage system and a data storage system
US8219777B2 (en) 2002-10-03 2012-07-10 Hewlett-Packard Development Company, L.P. Virtual storage systems, virtual storage methods and methods of over committing a virtual raid storage system
US20050015416A1 (en) 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
JP2005242403A (ja) 2004-02-24 2005-09-08 Hitachi Ltd 計算機システム
US7689599B1 (en) 2005-01-31 2010-03-30 Symantec Operating Corporation Repair of inconsistencies between data and metadata stored on a temporal volume using transaction log replay
US7620843B2 (en) 2005-03-02 2009-11-17 International Business Machines Corporation Rebuilding a storage system
US8463798B1 (en) 2007-03-31 2013-06-11 Emc Corporation Prioritized restore
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US8689040B2 (en) 2010-10-01 2014-04-01 Lsi Corporation Method and system for data reconstruction after drive failures
KR101413298B1 (ko) * 2010-11-04 2014-06-27 한국전자통신연구원 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법
US9594421B2 (en) 2011-03-08 2017-03-14 Xyratex Technology Limited Power management in a multi-device storage array
US9218206B2 (en) * 2011-06-20 2015-12-22 Microsoft Technology Licensing, Llc Memory management model and interface for new applications
US8775733B2 (en) 2011-08-30 2014-07-08 Hitachi, Ltd. Distribution design for fast raid rebuild architecture based on load to limit number of redundant storage devices
US8892941B2 (en) 2012-06-27 2014-11-18 International Business Machines Corporation Recovering a volume table and data sets from a corrupted volume
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
US9015527B2 (en) 2013-01-29 2015-04-21 Hewlett-Packard Development Company, L.P. Data backup and recovery
US20140372710A1 (en) * 2013-06-18 2014-12-18 Samsung Electronics Co., Ltd. System and method for recovering from an unexpected shutdown in a write-back caching environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080178185A1 (en) 2007-01-24 2008-07-24 Wataru Okada Apparatus and method for controlling data recovery
JP2007305293A (ja) 2007-06-11 2007-11-22 Toshiba Corp 光ディスクと記録方法と再生方法と再生装置
US20110066803A1 (en) 2009-09-17 2011-03-17 Hitachi, Ltd. Method and apparatus to utilize large capacity disk drives
KR101459861B1 (ko) 2009-09-29 2014-11-07 마이크론 테크놀로지, 인크. 스트라이프 기반 메모리 작동

Also Published As

Publication number Publication date
US10282260B2 (en) 2019-05-07
US20170024292A1 (en) 2017-01-26
KR20170011080A (ko) 2017-02-02

Similar Documents

Publication Publication Date Title
US10430286B2 (en) Storage control device and storage system
US9164895B2 (en) Virtualization of solid state drive and mass storage drive devices with hot and cold application monitoring
US8285965B2 (en) Aligning data storage device partition to boundary of physical data sector
US9684591B2 (en) Storage system and storage apparatus
US9501231B2 (en) Storage system and storage control method
US9934108B2 (en) System and method for optimizing mirror creation
US20140317369A1 (en) Snapshot creation from block lists
US9311002B1 (en) Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US20110022811A1 (en) Information backup/restoration processing apparatus and information backup/restoration processing system
US20070006021A1 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
US20130282997A1 (en) Computer system, storage apparatus and data transfer method
JP5768277B2 (ja) 記憶ボリュームのディスマウント
US8935304B2 (en) Efficient garbage collection in a compressed journal file
US8549243B2 (en) Regeneration of deleted data
WO2013159578A1 (en) Preserving redundancy in data deduplication systems by indicator
US9983826B2 (en) Data storage device deferred secure delete
US11137918B1 (en) Administration of control information in a storage system
US9081506B2 (en) Tape apparatus, storage control apparatus, and storage control method
KR102277731B1 (ko) 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러
US20210223957A1 (en) Storage apparatus and storage control method
WO2014147786A1 (ja) ストレージシステム及びデータ管理方法
US9779002B2 (en) Storage control device and storage system
US9639417B2 (en) Storage control apparatus and control method
WO2017192141A1 (en) Method and apparatus for recovering in memory data processing system
KR102159835B1 (ko) 보조기억장치의 복구정보 관리 장치 및 방법

Legal Events

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