KR102632961B1 - 하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크 - Google Patents

하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크 Download PDF

Info

Publication number
KR102632961B1
KR102632961B1 KR1020217006066A KR20217006066A KR102632961B1 KR 102632961 B1 KR102632961 B1 KR 102632961B1 KR 1020217006066 A KR1020217006066 A KR 1020217006066A KR 20217006066 A KR20217006066 A KR 20217006066A KR 102632961 B1 KR102632961 B1 KR 102632961B1
Authority
KR
South Korea
Prior art keywords
hard disk
delete delete
chunk
data
failure
Prior art date
Application number
KR1020217006066A
Other languages
English (en)
Other versions
KR20210028268A (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 claimed from PCT/CN2019/104163 external-priority patent/WO2020048442A1/zh
Publication of KR20210028268A publication Critical patent/KR20210028268A/ko
Application granted granted Critical
Publication of KR102632961B1 publication Critical patent/KR102632961B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1879Direct read-after-write methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • 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/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

하드 디스크 고장 처리 방법이 제공된다. 하드 디스크 고장 처리 방법은 스토리지 어레이(100)의 어레이 컨트롤러(101)에 의해 수행된다. 스토리지 어레이(100)는 복수의 하드 디스크(105, 106, 107, 108)를 포함한다. 하드 디스크(105, 106, 107, 108) 각각이 복수의 청크로 분할되고, 서로 다른 하드 디스크(105, 106, 107, 108)의 복수의 청크가 리던던시 알고리즘을 이용하여 청크 그룹을 형성한다. 하드 디스크 고장 처리 방법은 제1 하드 디스크에 있는 고장 영역으로서 고장이 발생하는 고장 영역의 고장 정보를 획득하는 단계; 고장 정보가 고장 영역의 데이터가 유실된 것을 나타내면, 유실된 데이터가 위치하는 고장 청크를 결정하는 단계; 고장 청크가 속한 청크 그룹의 다른 청크를 이용하여 고장 청크의 데이터를 복구하는 단계; 복구된 데이터를 복구된 청크에 저장하는 단계 - 복구된 청크가 제2 하드 디스크에 위치하고, 제2 하드 디스크는 청크 그룹이 위치하는 하드 디스크가 아닌 하드 디스크임 -; 및 제1 하드 디스크의 고장 청크의 데이터의 주소와 제2 하드 디스크의 복구된 데이터 블록의 주소 간의 대응관계를 기록하는 단계를 포함한다.

Description

하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크
본 발명은 저장 기술 분야에 관한 것으로, 상세하게는 하드 디스크의 저장 영역이 고장난 후 수행되는 처리 방법, 및 처리 방법을 수행하는 어레이 컨트롤러와 하드 디스크에 관한 것이다.
데이터가 로컬 위치의 솔리드 스테이트 디스크(solid state disk)에 기입될 수 없고 또한 원격 위치에만 기입되므로, 데이터를 솔리드 스테이트 디스크에 기입하기 위해서는 이중화 공간(redundant space)의 일부가 예약되어 솔리드 스테이트 디스크의 성능을 향상시킬 필요가 있다. 솔리드 스테이트 디스크에 의해 제공되는 공칭 용량(nominal capacity)이 이중화 공간의 용량을 포함하지 않는다.
솔리드 스테이트 디스크의 영역에 고장이 발생하면(예를 들어, DIE(이하, 간략히 고장 영역이라고 함)가 고장이면), 공칭 용량을 줄이지 않기 위해, 고장 영역이 이중화 공간의 용량을 이용하여 보상될 필요가 있다. 따라서, 이중화 공간의 용량이 줄어든다. 이중화 공간이 줄어듬으로 인해 솔리드 스테이트 디스크의 마모도(wear degree)가 높아짐으로써 솔리드 스테이트 디스크의 성능에 영향을 미친다.
본 발명의 실시예는 하드 디스크에 고장 영역이 발생한 후에 수행되는 처리 방법을 제공한다. 상기 처리 방법에 따르면, 하드 디스크에 고장 영역이 발생한 후에, 하드 디스크의 이중화 공간이 줄어들지 않고, 따라서 하드 디스크의 마모도가 높아지지 않는다.
본 발명의 실시예의 제1 양태는 하드 디스크 고장 처리 방법(hard disk fault handling method)을 제공한다. 상기 하드 디스크 고장 처리 방법은 스토리지 어레이의 어레이 컨트롤러에 의해 수행된다. 상기 스토리지 어레이는 복수의 하드 디스크를 포함하고, 상기 하드 디스크 각각이 복수의 청크(chunk)로 분할되며, 서로 다른 하드 디스크의 복수의 청크가 리던던시 알고리즘(redundancy algorithm)을 이용하여 청크 그룹을 형성한다. 상기 하드 디스크 고장 처리 방법은, 제1 하드 디스크에 있는 고장 영역으로서 고장이 발생하는 고장 영역의 고장 정보를 획득하는 단계; 상기 고장 정보가 상기 고장 영역의 데이터가 유실된 것을 나타내면, 상기 유실된 데이터가 위치하는 고장 청크를 결정하는 단계; 상기 고장 청크가 속한 청크 그룹의 다른 청크를 이용하여 상기 고장 청크의 데이터를 복구하는 단계; 상기 복구된 데이터를 복구된 청크에 저장하는 단계 - 상기 복구된 청크는 제2 하드 디스크에 위치하고, 상기 제2 하드 디스크는 상기 청크 그룹이 위치하는 하드 디스크가 아닌 하드 디스크임 -; 및 상기 제1 하드 디스크의 고장 청크의 데이터의 주소와 상기 제2 하드 디스크의 복구된 데이터 블록의 주소 간의 대응관계를 기록하는 단계를 포함한다.
상기 제1 하드 디스크의 고장 청크의 유실된 데이터가 상기 제2 하드 디스크의 복구된 청크로 복구되고, 상기 제1 하드 디스크의 고장 청크의 주소와 상기 제2 하드 디스크의 복구된 청크의 주소 간의 상기 대응관계가 기록된다. 이와 같이, 상기 제1 하드 디스크의 성능이 보장될 수 있도록, 상기 제1 하드 디스크의 이중화 공간이 줄어들지 않는다.
제1 양태의 실시예에서, 상기 제1 하드 디스크에 있는 고장 영역으로서 장애가 발생하는 고장 영역의 고장 정보를 획득하는 2가지 방식이 제공된다. 첫 번째 방식에서, 상기 어레이 컨트롤러가 상기 제1 하드 디스크에 의해 보고된 상기 고장 정보를 수신한다. 두 번째 방식에서, 상기 어레이 컨트롤러가 상기 제1 하드 디스크에 고장 질의 명령을 송신하고, 그런 다음 상기 고장 질의 명령에 따라 상기 제1 하드 디스크에 의해 보고된 상기 고장 정보를 수신한다.
선택적으로, 상기 고장 정보는 데이터가 유실되었는지 여부를 나타내는 식별자를 포함하고, 상기 식별자에 기초하여, 상기 고장 영역의 데이터가 유실되었다는 것이 결정된다.
제1 양태의 실시예에서, 상기 유실된 데이터가 위치하는 고장 청크를 결정하는 2가지 방식이 제공된다. 첫 번째 방식에서, 상기 어레이 컨트롤러가 상기 제1 하드 디스크에서 상기 제1 하드 디스크의 제1 청크의 주소를 획득하고; 상기 제1 하드 디스크의 제1 청크의 주소를 싣고 있는 데이터 유실 질의 명령을 상기 제1 하드 디스크에 송신한다. 상기 데이터 유실 질의 명령을 수신한 후에, 상기 제1 하드 디스크는 상기 질의 명령에 실려 있는 상기 주소가 상기 고장 영역의 주소의 일부 또는 전부를 포함하는지 여부를 판정하고, 상기 질의 명령에 실려 있는 상기 주소가 상기 고장 영역의 주소의 일부 또는 전부를 포함하면, 상기 제1 하드 디스크는 상기 제1 청크가 상기 유실된 데이터를 포함한다는 것을 나타내는 지시 정보를 전달하기 위해 상기 질의 명령의 반환 메시지를 이용하거나; 또는 상기 질의 명령에 실려 있는 상기 주소가 상기 고장 영역의 주소의 일부 또는 전부를 포함하지 않으면, 상기 제1 하드 디스크는 상기 제1 청크가 상기 유실된 데이터를 포함하지 않는다는 것을 나타내는 지시 정보를 전달하기 위해 상기 질의 명령의 반환 메시지를 사용한다. 상기 제1 하드 디스크에 의해 반환된 지시 정보로서 상기 제1 청크가 상기 유실된 데이터를 포함하는지 여부를 나타내는 지시 정보를 수신한 후에, 상기 어레이 컨트롤러가 상기 지시 정보가 상기 제1 청크가 상기 유실된 데이터를 포함한다는 것을 나타낸다고 결정하면, 상기 어레이 컨트롤러는 상기 제1 청크가 상기 고장 청크라고 결정하고; 그런 다음 상기 제1 하드 디스크에 있는 상기 제1 하드 디스크의 제2 청크의 주소를 싣고 있는 새로운 데이터 유실 질의 명령을 생성한다.
상기 상기 유실된 데이터가 위치하는 고장 청크를 결정하는 두 번째 방식에서, 상기 어레이 컨트롤러는 상기 제1 하드 디스크에 고장 영역 질의 명령을 송신하고; 상기 제1 하드 디스크에 의해 반환된 정보로서 상기 고장 영역의 주소를 포함하는 정보를 수신하며; 상기 고장 영역의 주소에 기초하여 상기 고장 청크를 결정한다.
선택적으로, 상기 고장 정보는 상기 고장 영역의 용량을 포함한다. 상기 하드 디스크 고장 처리 방법이, 상기 고장 정보에 있는 상기 고장 영역의 용량을 획득하고, 상기 고장 영역의 용량을 상기 제1 하드 디스크의 총 고장 용량에 더하는 단계; 및 상기 총 고장 용량이 사전 설정된 값보다 크다고 결정하면, 상기 제1 하드 디스크를 교체하도록 사용자에게 프롬프트(prompt)하는 단계를 더 포함한다.
하드 디스크의 마모도(wear degree)를 검출하는 종래 기술과 비교할 때, 하드 디스크의 총 용량 손실을 검출하여 하드 디스크를 교체할지 여부를 판정하는 방식이 더 편리하고 정확하다.
본 발명의 제2 양태는 하드 디스크 고장 처리 방법을 제공한다. 상기 하드 디스크 고장 처리 방법은 스토리지 어레이의 어레이 컨트롤러에 의해 수행되고, 상기 스토리지 어레이는 제1 하드 디스크를 포함하며, 상기 제1 하드 디스크는 고장 영역을 포함한다. 상기 하드 디스크 고장 처리 방법은, 상기 고장 영역의 고장 정보를 획득하는 단계; 상기 고장 정보에 기초하여 상기 고장 영역의 용량을 결정하는 단계; 상기 용량에 기초하여 상기 제1 하드 디스크의 일부 데이터를 제2 하드 디스크로 마이그레이션(migrate)하는 단계; 및 상기 제1 하드 디스크의 마이그레이션된 데이터의 주소와 상기 제2 하드 디스크의 마이그레이션된 데이터의 주소 간의 매핑 관계를 기록하는 단계를 포함한다.
선택적으로, 상기 제1 하드 디스크와 상기 스토리지 어레이의 다른 하드 디스크가 리던던시 알고리즘을 이용하여 논리 디스크를 형성한다. 상기 하드 디스크 고장 처리 방법이, 상기 고장 정보에 기초하여, 상기 제1 하드 디스크의 데이터가 유실되었는지 여부를 판정하는 단계; 및 상기 제1 하드 디스크의 데이터가 유실되었으면, 상기 리던던시 알고리즘을 이용하여 상기 제1 하드 디스크의 데이터를 복구하는 단계를 더 포함하다.
상기 하드 디스크의 유실된 데이터는 상기 하드 디스크의 유실된 데이터에 관한 정보와 상기 하드 디스크들 간의 리던던시 알고리즘을 이용하여 적시에 복구될 수 있다.
본 발명의 제3 양태는 하드 디스크에 의해 수행되는 하드 디스크 고장 처리 방법을 제공한다. 상기 하드 디스크 고장 처리 방법은, 상기 하드 디스크의 고장 영역을 검출하는 단계; 상기 고장 영역의 데이터가 유실되었는지 여부를 판정하는 단계; 판정 결과에 기초하여, 상기 고장 영역의 데이터가 유실되었는지 여부를 나타내는 마크(mark)를 설정하는 단계; 및 고장 정보로서 사용되는, 상기 하드 디스크가 상기 고장 영역을 포함한다는 것을 나타내는 마크와 상기 고장 영역의 데이터가 유실되었는지 여부를 나타내는 상기 마크를 어레이 컨트롤러에 보고하는 단계를 포함한다.
선택적으로, 상기 하드 디스크는 추가적으로 상기 고장 영역의 용량을 기록하고, 고장 정보로서 사용되는 상기 고장 영역의 용량을 어레이 컨트롤러에 보고한다.
상기 어레이 컨트롤러는 상기 하드 디스크의 고장 영역의 용량을 보고함으로써 상기 고장 영역의 유실된 용량을 검출할 수 있다. 따라서, 쓰기 요청을 수신할 때, 어레이는 상대적으로 남은 용량이 큰 하드 디스크에 쓰기 요청을 할당함으로써 하드 디스크를 더 잘 제어할 수 있다.
선택적으로, 상기 하드 디스크 고장 처리 방법이, 상기 고장 영역의 용량이 사전 설정된 값보다 큰지 여부를 판정하는 단계; 및 상기 고장 영역의 용량이 상기 사전 설정된 값보다 크면, 상기 고장 정보를 상기 어레이 컨트롤러에 보고하는 단계를 더 포함한다.
상기 고장 영역의 용량이 상기 사전 설정된 값보다 크면, 상기 고장 정보를 자주 보고함으로써 야기되는 스토리지 어레이의 성능에 영향을 미치는 것을 방지하기 위해, 상기 고장 정보가 보고된다.
제3 양태의 구현에서, 상기 하드 디스크와 상기 어레이 컨트롤러 간에 통신 프로토콜이 다를 때, 상기 하드 디스크가 상기 고장 정보를 기록하고 보고하는 방식도 다르다. 상기 하드 디스크와 상기 어레이 컨트롤러 간의 통신 프로토콜이 SCSI 프로토콜이면, 상기 고장 정보는 SCSI 프로토콜의 정보 예외 로그 페이지에 기록된다.
SCSI 프로토콜에서, 2가지 방식으로 상기 고장 정보가 보고된다. 첫 번째 방식은, 상기 어레이 컨트롤러에 의해 송신된 입력/출력(input/output, I/O) 요청을 수신하고; 상기 I/O 요청에 대한 응답 정보로서 상기 정보 예외 로그 페이지를 포함하는 응답 정보를 이용하여 상기 고장 정보를 상기 어레이 컨트롤러에 보고하는 것이다. 두 번째 방식은, 상기 어레이 컨트롤러에 의해 송신된 고장 정보 질의 요청을 수신하고; 상기 고장 정보 질의 요청에 대한 응답 정보로서 상기 정보 예외 로그 페이지를 포함하는 응답 정보를 이용하여 상기 고장 정보를 보고하는 것이다.
상기 하드 디스크와 상기 어레이 컨트롤러 간의 통신 프로토콜이 ATA 프로토콜이면, 상기 고장 정보는 ATA 프로토콜의 솔리드 스테이트 디바이스 통계 페이지에 기록되고, 이 경우, 상기 고장 정보를 기록하는 방식이, 상기 어레이 컨트롤러에 의해 송신된 고장 정보 질의 요청을 수신하고; 상기 고장 정보 질의 요청에 대한 응답 정보로서 상기 솔리드 스테이트 디바이스 통계 페이지를 포함하는 응답 정보를 이용하여 상기 고장 정보를 보고하는 것이다.
상기 하드 디스크와 상기 어레이 컨트롤러 간의 통신 프로토콜이 NVMe 프로토콜이면, 상기 고장 정보는 NVMe 프로토콜의 건강 정보 로그(health information log)에 기록되고, 이 경우, 상기 고장 정보를 보고하는 방식이, 비동기 이벤트 요청(asynchronous event request)에 대한 응답 정보로서 상기 솔리드 스테이트 디바이스 통계 페이지를 포함하는 응답 정보를 이용하여 상기 고장 정보를 보고하는 것이다.
본 발명의 제4 양태는 하드 디스크 고장 처리 방법을 제공한다. 제4 양태에서 제공된 하드 디스크 처리 방법과 제1 양태에서 제공된 하드 디스크 고장 처리 방법 간의 차이는, 상기 복구된 데이터가 상기 복구된 청크에 저장된 후에, 상기 청크 그룹의 고장 청크가 상기 복구된 청크로 교체되고, 상기 복구된 청크와 상기 고장 청크 간의 대응관계가 기록될 필요가 없다는 것에 있다.
본 발명의 제5 양태는 제1 양태에서 제공된 하드 디스크 고장 처리 방법에 대응하는 어레이 컨트롤러를 제공한다. 상기 어레이 컨트롤러의 기능 모듈에 의해 수행되는 기능들이 제1 양태에서 제공된 하드 디스크 고장 처리 방법에 포함된 단계들과 동일하다. 여기서는 세부사항에 대해 다시 설명하지 않는다.
본 발명의 제6 양태는 제2 양태에서 제공된 하드 디스크 고장 처리 방법에 대응하는 어레이 컨트롤러를 제공한다. 상기 어레이 컨트롤러의 기능 모듈에 의해 수행되는 기능들이 제2 양태에서 제공된 하드 디스크 고장 처리 방법에 포함된 단계들과 동일하다. 여기서는 세부사항에 대해 다시 설명하지 않는다.
본 발명의 제7 양태는 제3 양태에서 제공된 하드 디스크 고장 처리 방법에 대응하는 하드 디스크를 제공한다. 상기 하드 디스크의 기능 모듈에 의해 수행되는 기능들이 제3 양태에서 제공된 하드 디스크 고장 처리 방법에 포함된 단계들과 동일하다. 여기서는 세부사항에 대해 다시 설명하지 않는다.
본 발명의 제8 양태는 제4 양태에서 제공된 하드 디스크 고장 처리 방법에 대응하는 어레이 컨트롤러를 제공한다. 상기 어레이 컨트롤러의 기능 모듈에 의해 수행되는 기능들이 제4 양태에서 제공된 하드 디스크 고장 처리 방법에 포함된 단계들과 동일하다. 여기서는 세부사항에 대해 다시 설명하지 않는다.
상기 본 발명의 제9 양태는 어레이 컨트롤러를 제공한다. 상기 어레이 컨트롤러는 프로세서와 컴퓨터 판독가능 저장 매체를 포함하고, 상기 저장 매체는 프로그램 명령을 저장하며, 상기 프로세서는 상기 프로그램 명령을 실행하여 제1 양태, 또는 제2 양태, 또는 제4 양태의 하드 디스크 고장 처리 방법을 수행한다.
본 발명의 제10 양태는 하드 디스크를 제공한다. 상기 하드 디스크는 프로세서와 컴퓨터 판독가능 저장 매체를 포함하고, 상기 저장 매체는 프로그램 명령을 저장하며, 상기 프로세서는 상기 프로그램 명령을 실행하여 제3 양태의 하드 디스크 고장 처리 방법을 수행한다.
본 발명의 제11 양태는 컴퓨터 판독가능 저장 매체를 제공한다. 상기 컴퓨터 판독가능 저장 매체는 명령을 저장하고, 상기 명령은 컴퓨터 상에서 실행될 때 상기 컴퓨터로 하여금 제1 양태, 또는 제2 양태, 또는 제3 양태, 또는 제4 양태의 하드 디스크 고장 처리 방법을 수행할 수 있게 한다.
이하, 본 발명의 실시예 또는 종래 기술의 기술적 해결책을 더 명확하게 설명하기 위해, 실시예 또는 종래 기술을 설명하기 위한 첨부 도면에 대해 간략하게 설명한다.
도 1은 스토리지 어레이의 구조도이다.
도 2는 본 발명의 실시예 1에 따른 어레이 컨트롤러가 논리 디스크를 생성하는 것을 개략적으로 나타내는 도면이다.
도 3은 본 발명의 실시예 1에 따른 스토리지 어레이가 핫 스페어 공간(hot spare space)과 이중화 공간(redundant space)을 제공하는 것을 개략적으로 나타내는 도면이다.
도 4는 본 발명의 실시예 1에 따라 스토리지 어레이가 하드 디스크의 고장 영역을 처리하는 것을 나타내는 흐름도이다.
도 5는 하드 디스크의 고장 영역을 나타내는 ASC 코드와 ASCQ 코드로서 본 발명의 일 실시예에 따라 SCSI 프로토콜에 정의된 ASC 코드와 ASCQ 코드를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 SCSI 프로토콜의 정보 예외 로그 페이지(informational exception log page)의 예를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 I/O 요청의 반환 정보의 기술자 포맷 감지 데이터(descriptor format sense data)를 개략적으로 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 ATA 프로토콜에 정의된 솔리드 스테이트 디바이스 통계 페이지(solid state device statistics page)를 개략적으로 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 NVMe 프로토콜에 정의된 건강 정보 로그(health information log)를 개략적으로 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 어레이 컨트롤러가 재기입 요청을 수신할 때 수행되는 처리 방법을 나타내는 흐름도이다.
도 11은 본 발명의 실시예 2에 따라 어레이 컨트롤러가 복수의 독립적인 하드 디스크와 RAID 알고리즘을 이용하여 논리 디스크를 형성하는 것을 개략적으로 나타내는 도면이다.
도 12는 본 발명의 제2 실시예에 따라 하드 디스크의 결함 영역을 처리하는 방법을 나타내는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 하드 디스크의 모듈도이다.
도 14는 본 발명의 실시예 1에 따른 어레이 컨트롤러의 모듈도이다.
도 15는 본 발명의 실시예 2에 따른 어레이 컨트롤러의 모듈도이다.
이하, 본 발명의 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결책을 명확하고 완전하게 설명한다. 설명되는 실시예가 본 발명의 실시예의 전부가 아니라 일부일 뿐이라는 것이 명확하다.
도 1은 스토리지 어레이(100)의 구조도이다. 스토리지 어레이(100)는 어레이 컨트롤러(101), 복수의 하드 디스크(105-108), 메모리(103), 통신 인터페이스(104), 및 버스(102)를 포함한다. 어레이 컨트롤러(101)는 메모리(103)의 프로그램(도면에 도시되지 않음)실행하여 하드 디스크(105-108)를 관리하고 하드 디스크(105-108)의 데이터를 액세스하도록 구성된다. 통신 인터페이스(104)는 호스트(도면에 도시되지 않음)에 연결하도록 구성되고, 호스트는 통신 인터페이스(104)를 통해 읽기/쓰기 명령 또는 관리 명령을 스토리지 어레이(100)에 전송할 수 있다. 통신 인터페이스는 NVMe(Non-Volatile Memory express) 인터페이스일 수 있거나, 또는 SCSI(Small Computer System Interface, SCSI) 인터페이스일 수 있다.
도 2는 본 발명의 실시예 1에 따라 어레이 컨트롤러(101)가 호스트에 의해 사용될 논리 디스크를 생성하는 것을 개략적으로 나타내는 도면이다. 스토리지 어레이(100)가 NVMe 인터페이스를 이용하는 플래시 어레이일 때, 호스트는 NVMe 프로토콜을 이용하여 스토리지 어레이(100)와 통신하고, 스토리지 어레이(100)에 의해 생성된 논리 디스크는 NVMe 프로토콜에 정의된 네임 스페이스(Namespace)를 이용하여 표현될 수 있다. 스토리지 어레이(100)가 SCSI 인터페이스를 이용하는 스토리지 어레이일 때, 호스트는 SCSI 프로토콜을 이용하여 스토리지 어레이(100)와 통신하고, 하드 디스크는 SCSI 프로토콜에 정의된 논리 유닛 번호(Logic Unit Number, LUN)를 이용하여 표현될 수 있다. 도 2의 실시예에서는 어레이 컨트롤러(101)가 SCSI 프로토콜을 이용하여 LUN을 생성하는 프로세스를 설명을 위한 예로 사용한다.
도 2에 도시된 바와 같이, 스토리지 어레이(100)의 하드 디스크(105-108) 각각이 동일한 크기의 청크(chunk)로 분할되고, 서로 다른 하드 디스크에 속하는 청크가 RAID(redundant arrays of independent drives) 알고리즘을 이용하여 청크 그룹(chunk group)을 형성한다. 도 2에 도시된 바와 같이, 하드 디스크(102)에 속한 청크(201), 하드 디스크(106)에 속한 청크(202), 및 하드 디스크(107)에 속한 청크(203)가 RAID 5 알고리즘을 이용하여 청크 그룹(204)을 형성한다. 하드 디스크(102)에 속한 청크(205), 하드 디스크(107)에 속한 청크(206), 및 하드 디스크(108)에 속한 청크(207)가 RAID 5 알고리즘을 이용하여 청크 그룹(208)을 형성한다. 청크 그룹이 생성된 후, 스토리지 컨트롤러(101)는 각각의 청크 그룹을 구성하는 청크가 위치하는 하드 디스크를 기록한다. 청크 그룹에 기초하여 스토리지 풀(209)이 구성되고, 스토리지 풀(209)에 기초하여 LUN 0, LUN 1, 및 LUN 3과 같은 논리 디스크가 구성된다.
도 3에 도시된 바와 같이, 본 발명의 본 실시예에서, 스토리지 자원 풀(209) 외에, 스토리지 어레이(100)는 핫 스페어 공간(hot spare space, 210)과 이중화 공간(redundant space, 211)을 더 제공한다. 핫 스페이 공간(210)은, 하드 디스크의 청크가 고장난 후에 고장 청크의 데이터를 복구하고 고장 청크를 교체하도록 구성된다. 이중화 공간은 스토리지 어레이(100)에 의해 예약된 공간이고, 스토리지 어레이(100)는 이중화 공간의 크기를 외부에 제공하지 않으며, 이중화 공간은 스토리지 어레이(100)의 성능을 개선하도록 구성된다. 핫 스페이 공간(210)과 이중화 공간(211) 각각이 하나의 하드 디스크일 수 있거나, 또는 복수의 하드 디스크의 청크에 의해 형성된 풀링 공간(pooling space)일 수 있다. 본 발명의 본 실시예에서, 핫 스페어 공간과 이중화 공간은 각각 청크와 동일한 크기의 단위(granularity)로 분할될 수 있고, 하드 디스크의 고장 청크를 교체하도록 구성될 수 있다. 핫 스페어 공간(210)과 이중화 공간(211)을 이용하여 하드 디스크의 고장 청크를 교체하는 방법은 하드 디스크 고장 처리 방법을 설명할 때 이하에서 자세히 설명한다.
배경기술에서 설명한 바와 같이, 종래 기술에서, 하드 디스크에 고장 영역(즉, 하드 디스크에 고장이 발생하는 저장 공간의 세그먼트)이 생성된 후, 예를 들어 하드 디스크 내의 DIE 고장 이후, 어레이 컨트롤러(100)는 고장을 감지하지 못하고, 따라서 고장을 처리하지 않는다. 이후, 하드 디스크의 마모도(wear degree)가 임계값에 도달한 것을 검출한 후, 어레이 컨트롤러(100)는 디스크 교체 처리를 직접 수행한다. 하지만, 하드 디스크의 마모도가 임계치에 도달하지 않으면, 하드 디스크의 이중화 공간이 고장 영역으로 인해 줄어들고, 이중화 공간이 줄어듬으로 인해 스토리지 시스템의 성능이 영향을 받는다.
본 발명의 본 실시예에서 제공되는 장애 처리 방법에 따르면, 전체 스토리지 시스템의 성능이 영향을 받지 않을 수 있도록, 어레이 컨트롤러(100)는 하드 디스크의 고장 영역이 위치하는 고장 청크를 결정하고, 고장 청크를 이중화 공간(211) 또는 핫 스페어 공간(210)의 청크로 교체할 수 있다.
이하, 도 4의 흐름도를 이용하여 본 발명의 일 실시예의 하드 디스크 장애 처리 방법을 설명한다.
도 4는 도 1에 도시된 아키텍처 내의 스토리지 시스템이 하드 디스크의 고장 영역을 처리하는 방법을 나타내는 흐름도이다. 스토리지 어레이(100) 내의 하드 디스크(105)가 고장인 예를 이용하여 다음의 설명이 제공된다.
단계 S401: 하드 디스크(105)가 하드 디스크(105)의 고장 영역을 식별하고, 고장 영역의 용량을 축적한다.
고장 영역은 하드 디스크 플래시의 DIE 입자이거나, 또는 하드 디스크 공간의 세그먼트일 수 있다. 하드 디스크 실행 과정에서, 하드 디스크는 하드 디스크의 저장 영역 예외의 횟수에 관한 통계를 수집한다. 저장 영역의 예외의 유형의 횟수가 사전 설정된 값을 초과하면, 저장 영역이 고장 영역으로 식별될 수 있다. 예외는 오류 검사 및 보정 오류(error checking and correction error, ECC error), 수정 불가능한 ECC 코드 오류(uncorrectable error-correcting code error, UNC), I/O에 대한 느린 응답, 및 I/O에 대한 응답의 시간 초과 등일 수 있다. 종래 기술에서는 어떠한 방식으로도 고장 영역을 식별할 수 있다. 본 명세서에서는 이에 대해 제한하지 않는다. 하드 디스크에 의해 수행되는 기능이, 하드 디스크의 메모리(도면에 도시되지 않음)에 저장된 프로그램 코드의 세그먼트를 실행함으로써 하드 디스크의 프로세서(도면에 도시되지 않음)에 의해 구현된다.
단계 S402: 어레이 컨트롤러(101)가 하드 디스크(105)의 고장 영역의 고장 정보를 획득한다. 고장 정보는 고장 영역의 데이터가 유실되었는지 여부를 나타내는 식별자를 포함한다. 일부 실시예에서, 고장 정보는 고장 영역의 용량을 더 포함한다.
실제 적용시, 일부 하드 디스크는 하드 디스크에서 데이터 복구 능력이 있는 RAID 1 또는 RAID 5와 같은 RAID를 수행하여 데이터 신뢰도를 보장한다. 이렇게 하면, 하드 디스크에 고장 영역이 있더라도 고장 영역의 데이터가 하드 디스크의 RAID 알고리즘을 이용하여 복구될 수 있고, 따라서 데이터가 유실되지 않는다. 하드 디스크가 인-디스크(in-disk) RAID를 수행하지 않거나 또는 데이터가 복구될 수 없는 RAID, 예를 들어 RAID 0을 수행하면, 고장 영역의 데이터가 복구될 수 없으므로 데이터가 유실된다. 따라서, 본 발명의 본 실시예에서, 어레이 컨트롤러(101)는 고장 영역의 데이터가 유실되었는지 여부를 나타내는 식별자를 획득함으로써, 이후에 고장 영역의 유실된 데이터를 복구한다.
본 발명의 본 실시예에서, 하드 디스크(105)와 스토리지 어레이(100) 간의 통신 프로토콜이 다른 경우, 고장 정보를 획득하는 방식도 다르다. 이하, 서로 다른 통신 프로토콜에서 고장 영역의 고장 정보를 획득하는 방식에 대해 개별적으로 설명한다.
1. SCSI 프로토콜
기존 SCSI 프로토콜에서, ASC(additional sense code)와 ASCQ(attachment sense code qualifier)가 정의되어 있고, 서로 다른 ASC와 ASCQ가 하드 디스크에서 발생하는 예외를 식별하는 데 사용된다. 하드 디스크의 예외가 검출된 후, 예외에 대응하는 ASC와 ASCQ가 정보 예외 로그 페이지(informational exception log page)에 기록된다. 정보 예외 로그 페이지는 SCSI 프로토콜에 정의되고 하드 디스크의 예외를 기록하는 데 사용되는 로그 페이지이다. 기존 SCSI 프로토콜에서, ASC가 5D이면, 실패 예측 임계값이 초과되었다는 것을 나타낸다(FAILURE PREDICTION THRESHOLD EXCEEDED). 구체적으로, 모니터링된 하드 디스크의 파라미터가 지정된 임계값을 초과하면, 이 파라미터가 어레이 컨트롤러에 보고되어야 한다. 하드 디스크에서 검출되어야 하는 각각의 파라미터는 5D에 대응하는 각각의 ASCQ에 정의되어 있다. 하드 디스크의 고장 영역을 보고하는 데 사용되는 ASCQ가 기존 SCSI 프로토콜에 정의되어 있지 않고 또한 고장 영역의 용량이 보고될 수 없기 때문에, 본 발명의 본 실시예에서는 고장 영역의 고장 상태를 나타내는 ASCQ 코드(6D 및 6E)가 정의되어 있다. 도 5는 본 발명의 일 실시예에 따른 새로 정의된 ASCQ 코드(6D 및 6E)의 정의를 나타내는 도면이다. 여기서, 6D는 하드 디스크에 고장 영역이 발생하였지만 데이터가 유실되지 않았다는 것을 나타내고, 6E는 하드 디스크에 고장 영역이 발생하고 데이터가 유실되었다는 것을 나타낸다. 하드 디스크의 고장 영역이 검출되고 또한 총 고장 용량이 사전 설정된 값에 도달하면, 고장 영역의 데이터가 유실되었는지 여부에 기초하여 6D 또는 6E가 정보 예외 로그 페이지에 기록된다. 도 6은 정보 예외 로그 페이지의 예를 나타내는 도면이다. 고장 영역의 고장 용량이 사전 설정된 값에 도달하고 또한 데이터가 유실되지 않으면, 정보 예외 로그 페이지 상에 8번째 바이트로 표시된 정보 예외 ASC(INFORMATIONAL EXCEPTION ADDITIONAL SENSE CODE)에 5D가 채워지고, 정보 예외 로그 페이지 상에 9번째 바이트로 표시된 정보 예외 ASCQ(INFORMATIONAL EXCEPTION ADDITIONAL SENSE CODE QUALIFIER)에 6D가 채워진다. 고장 영역의 용량이 사전 설정된 값에 도달하고 또한 데이터가 유실되면, 정보 예외 로그 페이지 상에 8번째 바이트로 표시된 정보 예외 ASC에 5D가 채워지고, 9번째 바이트로 표시된 정보 예외 ASCQ에 6E가 채워진다. 또한, 선택적으로, 고장 영역의 용량이 정보 예외 로그 페이지의 정보(information) 바이트에 기록된다. 도 6에 도시된 바와 같이, "00 00 00 00 00 01 00 00"(16진수), 즉 8 GB 고장 용량이 전달된다. 전술한 ASCQ 코드(6D 및 6E)는 설명을 위한 예일 뿐이다. 실제 사용시, ASC 5D의 프로토콜에 사용되지 않는 어떠한 ASCQ도 사용될 수 있다.
SCSI 프로토콜에서, 고장 영역의 장애 정보가 2가지 방식으로 획득될 수 있다.
첫 번째 방식에서, 하드 디스크(105)가 고장 영역의 고장 정보를 능동적으로 보고한다.
어레이 컨트롤러(101)에 의해 송신된 I/O 요청이 수신된 후, 5D 및 6E와 같은 예외 코드가 정보 예외 로그 페이지 상의 정보 예외 ASC 바이트와 정보 예외 ASCQ 바이트에 기록되고, 정보 바이트에 기록된 5D, 6E, 및 고장 용량(8G)이 I/O 요청에 대한 반환 정보의 기술자 포맷 감지 데이터(Descriptor format sense data)에 기입된다. 도 7에 도시된 바와 같이, 기술자 포맷 감지 데이터가 ASC 바이트와 ASCQ 바이트를 포함하면, 정보 예외 로그 페이지로부터 획득된 ASC 코드(5D)와 ASCQ 코드(6D/6E)가 기술자 포맷 감지 데이터의 ASC와 ASCQ에 채워진다. 또한, 기술자 포맷 감지 데이터가 정보 바이트를 더 포함하면, 고장 영역의 용량이 기술자 포맷 감지 데이터의 정보 바이트에 기입될 수 있다.
이와 같이, I/O 요청에 대한 반환 정보를 수신한 후, 어레이 컨트롤러(101)는 반환 정보의 기술자 포맷 감지 데이터로부터 하드 디스크의 고장 영역의 고장 정보를 획득할 수 있다.
두 번째 방식에서, 어레이 컨트롤러(101)는 하드 디스크(105)의 고장 영역의 고장 정보를 주기적으로 질의한다.
이 방식에서, 어레이 컨트롤러(101)는 정보 예외 로그 페이지의 식별자를 싣고 있는 고장 질의 명령을 하드 디스크(105)에 주기적으로 송신한다. 고장 질의 명령을 수신한 후, 하드 디스크(105)는 정보 예외 로그 페이지를 어레이 컨트롤러(101)에 반환한다. 로그 페이지를 수신한 후, 어레이 컨트롤러(101)는 ASC, ASCQ, 및 로그 페이지로부터의 정보에 대응하는 내용(content)을 획득한다. ASC와 ASCQ가 각각 5D와 6D이면, 어레이 컨트롤러(101)는, 하드 디스크(105)의 예외가 고장 영역이 발생한다는 것과 고장 영역의 데이터가 유실되지 않았다는 것을 나타낸다는 것을 알 수 있다. ASC와 ASCQ가 각각 5D와 6E이면, 어레이 컨트롤러(101)는, 하드 디스크의 예외가 고장 영역이 발생한다는 것과 고장 영역의 데이터가 유실되었다는 것을 나타낸다는 것을 알 수 있다. 선택적으로, 어레이 컨크롤러(101)는 이 정보에 대응하는 바이트로부터 고장 영역의 용량을 추가로 획득할 수 있다.
2. ATA(Advanced Technology Attachment) 프로토콜
ATA 프로토콜에서, 솔리드 스테이트 디바이스 통계(Solid State Device Statistics) 페이지가 정의되어 있고, 이 통계 페이지는 하드 디스크에 의해 검출된 하드 디스크의 예외의 예외 정보를 기록하는 데 사용된다. 본 발명의 본 실시예에서, 새로운 예외 정보, 즉 수정 불가능한 플래시 유닛 에러 정보(Uncorrectable Flash Unit Error Information)가 정의되고, 하드 디스크의 고장 영역의 고장 정보를 기록하는 데 사용된다. 도 8에 도시된 바와 같이, 이 정보는 64 비트 이진수를 이용하여 표현된다. 비트 0 ~ 비트 15는 00000010(도면에서 16 진수 "0002"로 표시됨)으로 설정되고, 솔리드 스테이트 디바이스 통계 페이지의 식별자이다. 비트 16 ~ 비트 23은 하드 디스크에 고장 영역이 있는지 여부를 나타내는 데 사용된다. 고장 영역이 있으면, 비트 16 ~ 비트 23은 00000001(도면에서 16 진수 "01"로 표시됨)로 설정된다. 고장 영역이 없으면, 비트 16 ~ 비트 23은 00000000(도면에서 16 진수 "00"으로 표시됨)으로 설정된다. 비트 24 ~ 비트 31은 고장 영역의 데이터가 유실되었는지 여부를 나타내는 데 사용된다. 데이터가 유실되면, 비트 24 ~ 비트 31은 00000001(도면에서 16진수 "01"로 표시됨)로 설정된다. 데이터가 유실되지 않으면, 비트 24 ~ 비트 31은 00000000(16 진수 "00"으로 표시될 수 있음)으로 설정된다. 또한, 하드 디스크는 솔리드 스테이트 디바이스 통계 페이지에 고장 영역의 용량을 추가로 기록한다. 예를 들어, 도 12에는 파라미터, 즉 수정 불가능한 용량 파라미터(uncorrectable capacity parameter)가 바이트 24 ~ 바이트 31에 정의되고, 또한 64 비트이다. 고장 영역의 고장 용량은 파라미터에 대응하는 위치에 기록된다. 본 발명의 본 실시예에서, 보고된 용량이 00 00 00 00 00 01 00 00(16진수), 즉 8G이다.
어레이 컨트롤러(101)는, 솔리드 스테이트 디바이스의 통계 페이지의 식별자를 싣고 있는 질의 명령을 하드 디스크(105)에 주기적으로 전송한다. 고장 질의 명령을 수신한 후, 하드 디스크는 솔리드 스테이트 디바이스 통계 페이지를 어레이 컨트롤러(101)에 반환한다. 솔리드 스테이트 디바이스 통계 페이지를 수신한 후, 어레이 컨트롤러(101)는 솔리드 스테이트 디바이스 통계 페이지로부터 수정 불가능한 플래시 유닛 에러 정보, 즉, 64 비트 이진수(또는 16 비트 16진수)를 획득한다. 어레이 컨트롤러(101)는 수정 불가능한 플래시 유닛 에러 정보를 분석함으로써 하드 디스크(105)의 고장 영역에 관한 정보를 획득할 수 있다.
3. NVMe 프로토콜
NVMe 프로토콜에서, 건강 정보 로그(Health Information Log)가 정의되어 있고, 건강 정보 로그는 하드 디스크에 의해 검출된 하드 디스크의 예외의 예외 정보를 기록하는 데 사용된다. 도 9에 도시된 바와 같이, 하드 디스크의 서로 다른 예외 정보는 건강 정보 로그의 바이트 0의 서로 다른 비트에 정의되어 있다. 첫 번째, 두 번째, 세 번째, 네 번째 비트는 기존 NVMe 프로토콜에 정의되어 있는 예외 정보이고, 이러한 비트가 본 발명과 관련이 없으므로 본 명세서에서 이에 대해 설명하지 않는다. 본 발명의 본 실시예에서, 하드 디스크(105)에 고장 영역이 발생하는지 여부를 나타내기 위해 다섯 번째 비트가 새로 정의된다. 다섯 번째 비트의 값이 1이면, 하드 디스크(105)에 고장 영역이 발생한다는 것을 나타낸다. 또한, 32 비트 문자열은 4 바이트, 즉 6번째 ~ 9번째 바이트로 정의된다. 최상위 비트, 즉 9번째 바이트의 비트 7은 고장 영역의 데이터가 유실되었는지 여부를 나타내는 데 사용된다. 예를 들어, 비트가 1로 설정되면, 고장 영역의 데이터가 유실되었다는 것을 나타내거나; 또는 비트가 0으로 설정되면, 고장 영역의 데이터가 유실되지 않았다는 것을 나타낸다. 최상위 비트 다음의 비트가 고장 청크의 고장 용량을 나타내는 데 사용된다. 예를 들어, 16 진수 "00 00 00 00 00 01 00 00"은 고장 청크의 데이터가 유실되지 않고 또한 고장 청크의 고장 용량이 8 GB라는 것을 나타내고, "80 00 00 00 00 01 00 00"(16진수의 최상위 비트가 8, 즉 이진수의 최상위 비트가 1임)은 고장 청크의 데이터가 유실되지 않고 또한 고장 청크의 고장 용량이 8 GB라는 것을 나타낸다.
하드 디스크에 의해 수집된 고장 청크의 고장 용량의 통계가 사전 설정된 값에 도달하면, 하드 디스크는 비동기 이벤트 요청(Asynchronous Event Request)에 대한 응답을 이용하여 어레이 컨트롤러(101)에 건강 정보 로그를 보고한다. 어레이 컨트롤러(101)는 건강 정보 로그를 분석하여 고장 영역의 고장 정보를 획득할 수 있다.
단계 S403: 어레이 컨트롤러(101)가 고장 정보로부터 하드 디스크(105)의 고장 영역의 용량을 획득하고, 획득된 용량에 관한 정보를 하드 디스크의 총 고장 용량으로서 어레이 컨트롤러(101)에 의해 기록된 총 고장 용량에 더한다. 하드 디스크(105)의 총 고장 용량이 사전 설정된 값에 도달하면, 어레이 컨트롤러(101)는 사용자에게 하드 디스크(105)를 교체하도록 통지한다.
단계 S404: 고장 정보가 고장 영역의 데이터가 유실되었다는 것을 나타내면, 어레이 컨트롤러(101)가 유실된 데이터가 위치하는 청크를 결정한다.
본 발명의 본 실시예에서, 유실된 데이터가 위치하는 청크를 결정하는 2가지 방법이 제공된다. 첫 번째 방법에서, 어레이 컨트롤러(101)가 하드 디스크(105)에서 하드 디스크에 속하는 각각의 청크의 주소를 획득한다. 하드 디스크가 SSD인 경우, 하드 디스크(105)의 주소가 하드 디스크의 논리 주소이다. 다음, 어레이 컨트롤러(101)는, 청크 중 하나의 논리 주소를 싣고 있는 데이터 유실 질의 명령을 하드 디스크(105)에 송신한다. 도 2에 도시된 바와 같이, 스토리지 풀을 구성할 때, 어레이 컨트롤러(101)는 각각의 하드 디스크에 속하는 청크를 기록한다. 따라서, 유실된 데이터가 위치하는 청크를 결정할 때, 어레이 컨트롤러(101)는 청크의 단위로 하드 디스크의 유실된 데이터의 논리 주소를 질의한다. 데이터 유실 질의 명령을 수신할 때, 하드 디스크는 데이터 유실 질의 명령에 실려 있는 논리 주소가 고장 영역의 주소의 일부 또는 전부를 포함하는지 여부를 판정하고, 데이터 유실 질의 명령에 실려 있는 논리 주소가 고장 영역의 주소의 일부 또는 전부를 포함하면, 데이터가 유실되었다는 것을 나타내는 식별자를 스토리지 컨트롤러(101)에 보고하거나; 또는 데이터 유실 질의 명령에 실려 있는 논리 주소가 고장 영역의 주소의 일부 또는 전부를 포함하지 않으면, 데이터가 유실되지 않았다는 것을 나타내는 식별자를 스토리지 컨트롤러(101)에 보고한다. 보고 정보를 수신한 후, 보고 정보가 데이터가 유실된 것을 나타내는 식별자를 포함하면, 스토리지 컨트롤러(101)는 청크의 논리 주소로서 데이터 유실 질의 명령에 실려 있는 논리 주소가 나타내는 청크를 유실된 데이터가 위치하는 청크로서 사용한다. 일 구현에서, 하드 디스크에 의해 보고된 고장 영역은 일반적으로 청크보다 작다. 이 구현에서, 보고 정보가 데이터가 유실되지 않았다는 것을 나타내는 식별자를 포함하면, 유실된 데이터가 위치하는 청크가 발견될 때까지, 하드 디스크의 다른 청크의 논리 주소를 싣고 있는 새로운 데이터 유실 질의 명령이 하드 디스크에 송신된다. 다른 실시 형태에서, 하드 디스크에 의해 보고된 고장 영역이 청크보다 크면, 어레이 컨트롤러는 고장 청크를 결정할 때마다 청크의 주소를 하드 디스크에 송신하고, 청크의 반환 정보를 수신한 후, 하드 디스크의 모든 청크의 주소가 하드 디스크에 송신될 때까지 다음 청크의 주소를 하드 디스크에 송신함으로써, 유실된 데이터가 위치하는 복수의 청크를 결정한다.
두 번째 방법에서, 어레이 컨트롤러(101)가 하드 디스크(105)에 고장 목록 질의 명령을 송신한다. 고장 목록 질의 명령을 수신한 후, 하드 디스크(105)는 고장 영역의 기록된 논리 주소 목록을 어레이 컨트롤러(101)에 보고하고, 어레이 컨트롤러(101)는 보고된 논리 주소 목록에 기초하여, 유실된 데이터가 위치하는 청크를 결정할 수 있다.
단계 S405: 유실된 데이터가 위치하는 청크, 즉 고장 청크를 결정한 후, 어레이 컨트롤러(101)가, 고장 청크를 포함하는 청크 그룹의 다른 청크와 RAID 알고리즘을 이용하여 고장 청크의 데이터를 복구한다.
단계 S406: 어레이 컨트롤러(101)가 복구된 데이터를 핫 스페어 공간 또는 OP 공간의 유휴 청크(idle chunk)에 저장하고, 유휴 청크는 백업 청크이다. 백업 청크가 위치하는 하드 디스크가 청크 그룹의 다른 청크가 위치하는 하드 디스크와 다르다.
단계 S407: 어레이 컨트롤러(101)가 하드 디스크의 고장 청크의 주소와 백업 공간 또는 OP 공간의 백업 청크의 주소 간의 매핑 관계를 기록한다.
이와 같이, 고장 청크의 데이터를 갱신하기 위한 요청을 이후에 수신할 때, 어레이 컨트롤러(101)는 이 요청의 기입될 데이터를 백업 청크에 기록하고; 고장 청크의 데이터를 무효로 설정하며, 후속 가비지 수집 과정(garbage collection process)에서 고장 청크의 고장 영역 이외의 공간을 해제할 수 있다.
본 발명의 실시예 2에서, 단계 S406에서 복구된 데이터를 백업 청크로 복구한 후, 어레이 컨트롤러(101)는 청크 그룹의 고장 청크를 복구된 청크로 교체한다. 교체 중에, 어레이 컨트롤러(101)는 청크 그룹의 메타 데이터에 기록된 제1 하드 디스크의 고장 청크의 주소를 복구된 청크가 위치하는 하드 디스크의 복구된 청크의 주소로 교체할 수 있다.
하드 디스크가 하드 디스크의 유실된 용량을 보고한 후, 어레이 컨트롤러(101)는 각각의 하드 디스크의 유실된 용량을 기록하고, 각각의 하드 디스크의 현재 이용 가능한 용량을 계산하며, 유실된 용량이 상대적으로 크지 않도록 하드 디스크에 기입될 데이터를 제한한다. 도 10은 어레이 컨트롤러(101)가 하드 디스크의 데이터에 대한 재기입 요청을 수신할 때 수행되는 처리 방법을 나타내는 흐름도이다.
단계 S501: 기입될 데이터, 기입될 데이터의 논리 주소, 및 기입될 데이터의 데이터 양을 싣고 있는 쓰기 요청을 수신한다.
단계 S502: 기입될 데이터의 논리 주소에 기초하여, 기입될 데이터의 타깃 하드 디스크가 하드 디스크(105)라고 결정한다.
단계 S503: 하드 디스크(105)의 이용 가능한 용량을 질의한다.
단계 S504: 하드 디스크의 이용 가능한 용량이 기입될 데이터의 데이터 양보다 작은지 여부를 판정한다.
단계 S505: 하드 디스크의 이용 가능한 용량이 기입될 데이터의 데이터 양보다 크면, 기입될 데이터를 하드 디스크에 기입한다.
단계 S506: 하드 디스크의 이용 가능한 용량이 기입될 데이터의 데이터 양보다 작거나 같으면, 기입될 데이터를 핫 스페어 공간 또는 이중화 공간에 기입하고, 하드 디스크(105)에 있는 데이터로서 논리 주소가 가비지 데이터로서 가리키는 데이터를 마킹하고, 후속 가비지 수집을 기다린다.
어레이 컨트롤러(101)가 각각의 하드 디스크의 이용 가능한 용량을 마킹한 후, 새로운 청크 그룹이 이후에 생성되어야 할 때, 이용 가능한 용량이 큰 하드 디스크를 선택하여 청크 그룹을 생성할 수 있다. "하드 디스크의 이용 가능한 용량 = 하드 디스크의 공칭 용량 - 유실된 용량 - 사용된 공간"이다.
도 11은 본 발명의 실시예 3에 따른 RAID 알고리즘을 이용하여 복수의 독립적인 하드 디스크(1104-1106)에 의해 형성되는 논리 디스크 LNU(1101)를 나타내는 도면이다. 핫 스페어 공간(1102)과 이중화 중복 공간(1103)도 독립적인 하드 디스크(1107, 1108)에 의해 제공된다.
이하, 도 12에 도시된 흐름도를 이용하여 실시예 3에서 하드 디스크의 고장영역을 처리하는 방법에 대해 설명한다.
실시예 3에서, 단계 S701 내지 단계 S703은 도 1의 단계 S401 내지 단계 S403과 동일하다. 여기서는 세부 사항에 대해 다시 설명하지 않는다.
단계 S704: 어레이 컨트롤러(101)가 고장 정보로부터 고장 영역의 데이터가 유실되었는지 여부를 나타내는 식별자를 획득한다.
단계 S705: 식별 정보가 고장 영역의 데이터가 유실되지 않았다는 것을 나타내면, 어레이 컨트롤러(101)는 하드 디스크(105)에 있는 데이터로서 유실된 용량과 동일한 용량의 데이터를 핫 스페어 공간(1102) 또는 이중화 공간(1103)으로 마이그레이션한다.
단계 S706: 식별 정보가 하드 디스크의 고장 영역의 데이터가 유실되었다는 것을 나타내면, 어레이 컨트롤러(101)는 RAID 알고리즘을 이용하여 하드 디스크의 데이터를 복구하고, 복구 후에 단계 S705를 수행한다. 즉, 어레이 컨트롤러(101)는 하드 디스크(105)에 있는 데이터로서 유실된 용량과 동일한 용량의 데이터를 핫 스페어 공간(1102) 또는 이중화 공간(1103)으로 마이그레이션한다.
단계 S707: 하드 디스크(105)의 마이그레이션된 데이터의 주소와 핫 스페어 공간 또는 이중화 공간으로 마이그레이션된 데이터의 주소 간의 매핑 관계를 하드 디스크(105)에 기록한다.
마이그레이션된 데이터에 대한 접근 요청이 이후에 수신되면, 마이그레이션된 데이터는 이 매핑 관계에 기초하여 핫 스페어 공간 또는 이중화 공간에서 액세스될 수 있다.
이와 같이, 이중화 공간 또는 핫 스페어 공간은 하드 디스크의 고장 영역의 유실된 공간을 보상하는 데 사용된다. 따라서, 하드 디스크의 이중화 공간이 하드 디스크의 고장 영역을 보상하는 데 사용될 필요가 없다. 이러한 방식으로, 하드 디스크에 고장 영역이 발생하더라도, 하드 디스크의 마모도가 높아지지 않고 또한 스토리지 어레이의 성능이 보장될 수 있도록, 하드 디스크의 이중화 공간이 줄어들지 않는다.
도 13은 본 발명의 일 실시예에 따른 하드 디스크(1200)의 모듈도이다.
하드 디스크(1200)는 식별 모듈(1201), 마킹 모듈(1202), 및 보고 모듈(1203)을 포함한다. 식별 모듈(1201)은 하드 디스크(105)의 고장 영역을 식별하고, 고장 영역의 용량을 축적하도록 구성된다. 식별 모듈(1201)에 의해 수행되는 기능이 도 4의 단계 S401의 기능과 동일하다. 마킹 모듈(1202)은 식별된 고장 영역의 고장 정보를 마킹하도록 구성된다. 마킹 방법에 대해서는, SCSI 프로토콜, ATA 프로토콜, 및 NVMe 프로토콜과 같은 상이한 프로토콜에서 하드 디스크가 고장 영역의 고장 정보를 마킹하는 방법의 단계 S402의 관련 설명을 참조하라. 세부사항에 대해서는 도 4, 도 5, 도 8, 및 도 9의 관련 설명을 참조하라.
보고 모듈(1203)은 마킹 모듈(1202)에 의해 마킹된 고장 정보를 어레이 컨트롤러에 보고하도록 구성된다. 보고 모듈(1203)이 고장 정보를 보고하는 구체적인 방식에 대해서는, 하드 디스크가 상이한 프로토콜, 예를 들어 SCSI 프로토콜, ATA 프로토콜, 및 NVMe 프로토콜에서 고장 영역의 고장 정보를 보고하는 방법의 단계 S402의 관련 설명을 참조하라. 여기서는 세부사항에 대해 다시 설명하지 않는다.
도 14는 본 발명의 실시예 1에 따른 어레이 컨트롤러(1300)의 모듈도이다. 어레이 컨트롤러(1300)는 획득 모듈(1301), 가산 모듈(addition module, 1302), 복구 모듈(1303), 및 기록 모듈(1304)을 포함한다. 획득 모듈(1301)은 하드 디스크의 고장 영역의 고장 정보를 획득하도록 구성된다. 하드 디스크의 고장 영역의 고장 정보를 획득하는 방식에 대해서는 단계 S402의 관련 설명을 참조하라. 상이한 프로토콜, 예를 들어 SCSI 프로토콜, ATA 프로토콜, NVMe 프로토콜에서 고장 정보를 획득하는 방식들이 다르다. 세부사항에 대해서는, 단계 S402의 설명을 참조하라. 여기서는 세부사항에 대해 다시 설명하지 않는다.
가산 모듈(1302)은 고장 정보로부터 하드 디스크의 고장 영역의 용량을 획득하고, 획득된 용량에 관한 정보를 하드 디스크의 기록된 총 고장 용량에 더하며; 하드 디스크의 총 고장 용량이 사전 설정된 값에 도달하면, 사용자에게 하드 디스크를 교체하도록 통지한다. 세부사항에 대해서는 단계 S403의 관련 설명을 참조하라.
복구 모듈(1303)은, 획득 모듈이 하드 디스크의 고장 영역의 고장 정보를 획득한 후, 고장 정보가 고장 영역의 데이터가 유실되었다는 것을 나타내면, 유실된 데이터가 위치하는 고장 청크를 결정하도록 구성되고; 고장 청크를 포함하는 청크 그룹의 다른 청크와 RAID 알고리즘을 이용하여 고장 청크의 데이터를 복구하며, 그런 다음 복구된 데이터를 백업 청크에 저장하고, 백업 청크와 청크 그룹의 고장 청크가 아닌 청크를 이용하여 새로운 청크 그룹을 형성한다. 세부사항에 대해서는, 단계 S404 내지 단계 S407의 관련 설명을 참조하라.
기록 모듈(1304)은 하드 디스크의 고장 청크의 주소와 백업 공간이나 OP 공간의 백업 청크의 주소 간의 매핑 관계를 기록하도록 구성된다. 세부사항에 대해서는, 단계 S407의 관련 설명을 참조하라.
본 발명의 실시예 2의 어레이 컨트롤러는 실시예 1의 어레이 컨트롤러의 획득 모듈(1301), 가산 모듈(1302), 및 복구 모듈(1303)과 동일한 기능을 가지고 있다. 차이점은, 실시예 2에서는 기록 모듈이 청크 그룹의 고장 청크를 복구된 청크로 교체한다는 것이다. 교체 중에, 기록 모듈은 청크 그룹의 메타 데이터에 기록된 제1 하드 디스크의 고장 청크의 주소를 복구된 청크가 위치하는 하드 디스크의 복구된 청크의 주소로 교체할 수 있다.
도 15는 본 발명의 실시예 3에 따른 어레이 컨트롤러(1400)의 모듈도이다. 어레이 컨트롤러(1400)는 획득 모듈(1401), 가산 모듈(1402), 마이그레이션 모듈(1403), 및 기록 모듈(1404)을 포함한다.
획득 모듈(1401)과 가산 모듈(1402)의 기능이 어레이 컨트롤러(1300)의 획득 모듈(1301)과 가산 모듈(1302)의 기능과 동일하다. 세부사항에 대해서는, 획득 모듈(1301)과 가산 모듈(1301)의 관련 설명을 참조하라. 여기서는 세부사항에 대해 다시 설명하지 않는다. 마이그레이션 모듈(1403)은, 고장 정보가 고장 영역의 데이터가 유실되지 않았다는 것을 나타내면, 하드 디스크에 있는 데이터로서 유실된 용량과 동일한 용량의 데이터를 핫 스페어 공간이나 이중화 공간으로 마이그레이션하거나; 또는 고장 정보가 하드 디스크의 고장 영역의 데이터가 유실되었다는 것을 나타내면, RAID 알고리즘을 이용하여 하드 디스크의 데이터를 복구하고, 복구 이후, 하드 디스크에 있는 데이터로서 유실된 용량과 동일한 용량의 데이터를 핫 스페어 공간이나 이중화 공간으로 마이그레이션하도록 구성된다. 세부사항에 대해서는, 단계 S704 내지 단계 S706의 관련 설명을 참조하라.
기록 모듈(1404)은 하드 디스크(105)에 있는 하드 디스크(105)의 마이그레이션된 데이터의 주소와 핫 스페어 공간이나 이중화 공간으로 마이그레이션된 데이터의 주소 간의 매핑 관계를 기록하도록 구성된다. 세부사항에 대해서는, 단계 S707의 관련 설명을 참조하라. 마이그레이션된 데이터에 대한 액세스 요청이 이후에 수신되면, 마이그레이션된 데이터는 매핑 관계에 기초하여 핫 스페어 공간이나 중복 공간에서 액세스될 수 있다.
전술한 모듈 중 하나 이상이 소프트웨어, 또는 하드웨어, 또는 이들의 조합을 이용하여 구현될 수 있다. 전술한 모듈이나 유닛 중 어느 하나가 소프트웨어를 이용하여 구현될 때, 소프트웨어는 컴퓨터 프로그램 명령의 형태로 존재하고, 메모리에 저장된다. 프로세서가 프로그램 명령을 실행하여 전술한 방법 절차를 구현하도록 구성될 수 있다. 프로세서는 다양한 유형의 소프트웨어를 실행하는 컴퓨팅 장치, 즉 중앙처리장치(central processing unit, CPU), 또는 마이크로프로세서, 또는 디지털 신호 프로세서(digital signal processor DSP), 또는 마이크로컨트롤러 유닛(microcontroller unit, MCU), 또는 인공 지능 프로세서 중 적어도 하나를 포함하지만 이에 제한되지 않는다. 각각의 컴퓨팅 장치는 소프트웨어 명령을 실행함으로써 연산이나 처리를 수행하도록 구성된 하나 이상의 코어를 포함할 수 있다. 프로세서는 SoC(system-on-a-chip) 또는 주문형 반도체(application specific integrated 회로, ASIC)에 내장될 수 있거나, 또는 독립적인 반도체 칩일 수 있다. 소프트웨어 명령을 실행하여 연산이나 처리를 수행하도록 구성된 코어 외에, 프로세서는 필요한 하드웨어 가속기, 예를 들어 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 또는 PLD(programmable logic), 또는 전용 논리 연산을 구현하는 논리 회로를 더 포함할 수 있다.
전술한 모듈 또는 유닛이 하드웨어를 이용하여 구현될 때, 하드웨어는 CPU, 마이크로프로세서, DSP, MCU, 인공 지능 프로세서, ASIC, SoC, FPGA, PLD, 전용 디지털 회로, 하드웨어 가속기, 또는 집적되지 않은 개별 디바이스 중 어느 하나이거나 또는 이들의 임의의 조합일 수 있고, 전술한 방법 절차를 수행하기 위해, 하드웨어는 필요한 소프트웨어를 실행할 수 있거나 또는 소프트웨어에 의존하지 않는다.
위에서는 본 발명의 실시예에서 제공되는 하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크에 대해 설명하였다. 본 명세서에서, 본 발명의 원리와 구현을 설명하기 위해 구체적인 예가 사용되었고, 이러한 실시예의 설명은 본 발명의 방법과 핵심 아이디어를 이해하는 것을 돕기 위한 것일 뿐이다. 또한, 당업자라면 본 발명의 사상에 기초하여 구체적인 구현과 적용 범위를 수정할 수 있을 것이다. 따라서, 본 명세서의 내용이 본 발명을 제한하는 것으로 해석되어서는 안 된다.

Claims (46)

  1. 데이터 스토리지 시스템으로서,
    상기 데이터 스토리지 시스템은 비휘발성 메모리 익스프레스, NVMe, 하드 디스크 및 컨트롤러를 포함하며, 상기 NVMe 하드 디스크는 NVMe 프로토콜을 통해 상기 컨트롤러와 통신하며, 여기서,
    상기 NVMe 하드 디스크는:
    상기 NVMe 하드 디스크에서 고장 논리 주소를 감지하고;
    상기 고장 논리 주소를 기록하며,
    상기 NVMe 하드 디스크에 하나 이상의 고장 논리 주소가 있음을 상기 컨트롤러에 알리기 위해 비동기 알람을 전송하도록 구성되고,
    상기 컨트롤러는, 비동기 알람을 수신하면, 쿼리 명령을 상기 NVMe 하드 디스크에 전송하도록 구성되며.
    상기 NVMe 하드 디스크는 상기 쿼리 명령 수신에 대한 응답으로 상기 고장 논리 주소를 보고하도록 추가로 구성되는, 데이터 스토리지 시스템.
  2. 제1항에 있어서,
    상기 컨트롤러는 보고된 상기 고장 논리 주소의 수신에 대한 응답으로 상기 고장 논리 주소의 데이터를 복구하도록 더 구성되는, 데이터 스토리지 시스템.
  3. 제1항에 있어서,
    상기 NVMe 하드 디스크는 임계값을 초과하는 상기 고장 논리 주소에 대한 응답으로 상기 비동기 알람을 전송하도록 구성되는, 데이터 스토리지 시스템.
  4. 데이터 스토리지 시스템에 적용되는 고장 처리 방법으로서,
    상기 데이터 스토리지 시스템은 NVMe 하드 디스크 및 컨트롤러를 포함하며, 상기 NVMe 하드 디스크는 NVMe 프로토콜을 통해 상기 컨트롤러와 통신하며, 상기 고장 처리 방법이:
    상기 NVMe 하드 디스크에 의해, 상기 NVMe 하드 디스크에서 고장 논리 주소를 감지하는 단계;
    상기 NVMe 하드 디스크에 의해, 상기 고장 논리 주소를 기록하는 단계;
    상기 NVMe 하드 디스크에 의해, 상기 NVMe 하드 디스크에 하나 이상의 고장 논리 주소가 있음을 상기 컨트롤러에 알리기 위해 비동기 알람을 전송하는 단계;
    상기 컨트롤러에 의해, 비동기 알람을 수신하면, 쿼리 명령을 상기 NVMe 하드 디스크에 전송하는 단계; 및
    상기 NVMe 하드 디스크에 의해, 상기 쿼리 명령 수신에 대한 응답으로 상기 고장 논리 주소를 보고하는 단계
    를 포함하는 고장 처리 방법.
  5. 제4항에 있어서,
    보고된 상기 고장 논리 주소의 수신에 대한 응답으로, 상기 컨트롤러에 의해, 상기 고장 논리 주소의 데이터를 복구하는 단계
    를 더 포함하는 고장 처리 방법.
  6. 제4항에 있어서,
    상기 비동기 알람을 전송하는 단계가, 임계값을 초과하는 상기 고장 논리 주소에 대한 응답으로 상기 비동기 알람을 전송하는 단계를 더 포함하는, 고장 처리 방법.
  7. NVMe 하드 디스크로서,
    NVMe 하드 디스크에서 고장 논리 주소를 감지하고, 상기 고장 논리 주소를 기록하도록 구성되어 있는 감지 모듈;
    쿼리 명령을 수신하도록 구성되어 있는 수신 모듈; 및
    상기 NVMe 하드 디스크에 하나 이상의 고장 논리 주소가 있음을 컨트롤러에 알리기 위해 비동기 알람을 전송하고, 쿼리 명령의 수신에 대한 응답으로 상기 고장 논리 주소를 보고하도록 구성되어 있는 보고 모듈
    을 포함하는 NVMe 하드 디스크.
  8. 제7항에 있어서,
    상기 보고 모듈은, 임계값을 초과하는 상기 고장 논리 주소에 대한 응답으로 상기 비동기 알람을 전송하도록 구성되는, NVMe 하드 디스크.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
KR1020217006066A 2018-09-05 2019-09-03 하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크 KR102632961B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811028931.7 2018-09-05
CN201811028931 2018-09-05
CN201811451958.7A CN110879761A (zh) 2018-09-05 2018-11-30 硬盘故障处理方法、阵列控制器及硬盘
CN201811451958.7 2018-11-30
PCT/CN2019/104163 WO2020048442A1 (zh) 2018-09-05 2019-09-03 硬盘故障处理方法、阵列控制器及硬盘

Publications (2)

Publication Number Publication Date
KR20210028268A KR20210028268A (ko) 2021-03-11
KR102632961B1 true KR102632961B1 (ko) 2024-02-01

Family

ID=69727315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217006066A KR102632961B1 (ko) 2018-09-05 2019-09-03 하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크

Country Status (7)

Country Link
US (3) US11322179B2 (ko)
EP (2) EP3822792A4 (ko)
JP (2) JP7147050B2 (ko)
KR (1) KR102632961B1 (ko)
CN (2) CN110879761A (ko)
MA (1) MA53144A (ko)
MX (1) MX2021002274A (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879761A (zh) * 2018-09-05 2020-03-13 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN110727633A (zh) * 2019-09-17 2020-01-24 广东高云半导体科技股份有限公司 基于SoC FPGA的边缘人工智能计算系统构架
CN111488124A (zh) * 2020-04-08 2020-08-04 深信服科技股份有限公司 一种数据更新方法、装置、电子设备及存储介质
CN114063892B (zh) * 2020-08-07 2024-03-26 华为技术有限公司 独立磁盘冗余阵列卡,处理命令的方法,存储装置和系统
CN112181718A (zh) * 2020-09-07 2021-01-05 苏州浪潮智能科技有限公司 一种数据备份恢复方法、装置及计算机可读存储介质
CN112362939B (zh) * 2020-11-17 2024-09-20 深圳市道通科技股份有限公司 一种信号记录方法、装置、下位机、上位机及介质
CN113204450A (zh) * 2021-05-27 2021-08-03 济南浪潮数据技术有限公司 基于遗传算法的数据重构自动调参方法、系统及存储介质
CN113886128B (zh) * 2021-10-20 2022-09-09 深圳市东方聚成科技有限公司 一种ssd故障诊断及数据恢复的方法和系统
CN114020525B (zh) * 2021-10-21 2024-04-19 苏州浪潮智能科技有限公司 故障隔离方法、装置、设备及存储介质
CN114461137B (zh) * 2021-12-23 2024-01-02 天翼云科技有限公司 一种基于固体硬盘的写入方法及装置
CN114510379B (zh) * 2022-04-21 2022-11-01 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置
CN114675791B (zh) * 2022-05-27 2022-10-28 苏州浪潮智能科技有限公司 一种磁盘处理方法、系统及电子设备
CN115658362A (zh) * 2022-10-26 2023-01-31 超聚变数字技术有限公司 一种确定硬盘状态的方法以及相关设备
CN115657965B (zh) * 2022-11-16 2023-04-07 苏州浪潮智能科技有限公司 一种元数据的配置方法、装置及介质
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276302A (zh) 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
CN103295648A (zh) * 2012-02-29 2013-09-11 三星电子株式会社 修复存储器单元的设备和方法及包括该设备的存储器系统
WO2014190501A1 (zh) * 2013-05-29 2014-12-04 华为技术有限公司 数据恢复方法、存储设备和存储系统
US20160092326A1 (en) 2014-09-30 2016-03-31 Emc Corporation Method and apparatus for accelerating data reconstruction for a disk array
CN105843699A (zh) * 2015-02-02 2016-08-10 国际商业机器公司 用于错误监视与校正的动态随机存取存储器设备与方法
US20170315891A1 (en) * 2016-05-02 2017-11-02 Ji Hyung Park Storage device having various recovery methods and recovery modes

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327671A (en) 1993-11-17 1994-07-12 Rosek William A Vertical retrieve fishing lure
US5644696A (en) * 1995-06-06 1997-07-01 International Business Machines Corporation Recovering multi-volume data sets during volume recovery
JP3867297B2 (ja) * 1997-08-12 2007-01-10 ソニー株式会社 信号記録再生装置
US6327671B1 (en) 1998-11-18 2001-12-04 International Business Machines Corporation Delta compressed asynchronous remote copy
US20110066768A1 (en) * 2007-07-23 2011-03-17 Rod Brittner Quality of service and streaming attributes for a data storage device
CN103197995B (zh) * 2012-01-04 2016-06-15 百度在线网络技术(北京)有限公司 硬盘故障检测方法及装置
US8843806B2 (en) * 2012-01-19 2014-09-23 International Business Machines Corporation Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
KR20170134989A (ko) * 2016-05-30 2017-12-08 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US9110797B1 (en) * 2012-06-27 2015-08-18 Amazon Technologies, Inc. Correlated failure zones for data storage
CN103530206B (zh) * 2013-09-29 2015-12-02 华为技术有限公司 一种数据恢复的方法和设备
CN104484251B (zh) * 2014-12-11 2018-10-02 华为技术有限公司 一种硬盘故障的处理方法及装置
US10067840B1 (en) * 2015-03-31 2018-09-04 EMC IP Holding Company LLC Life expectancy data migration
KR102415385B1 (ko) 2015-07-22 2022-07-01 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치
WO2017126003A1 (ja) * 2016-01-18 2017-07-27 株式会社日立製作所 複数種類のメモリデバイスを含む計算機システム及び方法
CN107203328A (zh) * 2016-03-17 2017-09-26 伊姆西公司 存储管理方法和存储设备
KR102628239B1 (ko) 2016-05-02 2024-01-24 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치 및 호스트 장치를 포함하는 컴퓨팅 장치의 동작 방법
KR102580123B1 (ko) * 2016-05-03 2023-09-20 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법
CN106371947B (zh) 2016-09-14 2019-07-26 郑州云海信息技术有限公司 一种用于raid的多故障盘数据恢复方法及其系统
US10452290B2 (en) * 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11593036B2 (en) * 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
CN108345519A (zh) 2018-01-31 2018-07-31 河南职业技术学院 计算机硬盘故障的处理方法及装置
US10884889B2 (en) * 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
CN110879761A (zh) * 2018-09-05 2020-03-13 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN110968257B (zh) * 2018-09-30 2023-07-11 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN111124264B (zh) * 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于重建数据的方法、设备和计算机程序产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276302A (zh) 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
CN103295648A (zh) * 2012-02-29 2013-09-11 三星电子株式会社 修复存储器单元的设备和方法及包括该设备的存储器系统
WO2014190501A1 (zh) * 2013-05-29 2014-12-04 华为技术有限公司 数据恢复方法、存储设备和存储系统
US20160092326A1 (en) 2014-09-30 2016-03-31 Emc Corporation Method and apparatus for accelerating data reconstruction for a disk array
CN105843699A (zh) * 2015-02-02 2016-08-10 国际商业机器公司 用于错误监视与校正的动态随机存取存储器设备与方法
US20170315891A1 (en) * 2016-05-02 2017-11-02 Ji Hyung Park Storage device having various recovery methods and recovery modes

Also Published As

Publication number Publication date
JP2021193550A (ja) 2021-12-23
US11264055B2 (en) 2022-03-01
MX2021002274A (es) 2021-05-27
CN111949443B (zh) 2022-07-22
US20210233569A1 (en) 2021-07-29
US20210158841A1 (en) 2021-05-27
BR112021002987A2 (pt) 2021-05-11
CN111949443A (zh) 2020-11-17
US11322179B2 (en) 2022-05-03
EP3920031A1 (en) 2021-12-08
US20220108724A1 (en) 2022-04-07
KR20210028268A (ko) 2021-03-11
US11501800B2 (en) 2022-11-15
JP7147050B2 (ja) 2022-10-04
EP3920031B1 (en) 2024-05-01
JP2021535518A (ja) 2021-12-16
JP7326379B2 (ja) 2023-08-15
EP3822792A1 (en) 2021-05-19
CN110879761A (zh) 2020-03-13
MA53144A (fr) 2021-05-19
EP3822792A4 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
KR102632961B1 (ko) 하드 디스크 고장 처리 방법, 어레이 컨트롤러, 및 하드 디스크
US9684468B2 (en) Recording dwell time in a non-volatile memory system
US9952795B2 (en) Page retirement in a NAND flash memory system
US20180173632A1 (en) Storage device and method for controlling storage device
TWI428737B (zh) 半導體記憶體裝置
WO2020048442A1 (zh) 硬盘故障处理方法、阵列控制器及硬盘
JP4901968B2 (ja) 半導体記憶装置
US11662929B2 (en) Systems, methods, and computer readable media providing arbitrary sizing of data extents
KR20150113158A (ko) 정보 처리 시스템, 제어 프로그램, 및 정보 처리 디바이스
US10733069B2 (en) Page retirement in a NAND flash memory system
US8418029B2 (en) Storage control device and storage control method
BR112021002987B1 (pt) Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido
CN114600073A (zh) 应用于磁盘阵列系统的数据重构方法、装置及计算设备
CN110659152B (zh) 一种数据处理方法及设备

Legal Events

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