KR20050013938A - 하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법 - Google Patents

하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법

Info

Publication number
KR20050013938A
KR20050013938A KR1020040058236A KR20040058236A KR20050013938A KR 20050013938 A KR20050013938 A KR 20050013938A KR 1020040058236 A KR1020040058236 A KR 1020040058236A KR 20040058236 A KR20040058236 A KR 20040058236A KR 20050013938 A KR20050013938 A KR 20050013938A
Authority
KR
South Korea
Prior art keywords
data
scrub
drive
error
scrub cycle
Prior art date
Application number
KR1020040058236A
Other languages
English (en)
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 KR20050013938A publication Critical patent/KR20050013938A/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
    • 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
    • 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
    • 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/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/1088Scrubbing in RAID systems with parity

Abstract

복수의 하드 디스크 드라이브를 갖는 RAID 서브시스템은 데이터 스크럽을 실행하는 데에 RAID 제어기를 필요로 하지 않고 자신의 디스크에 대한 데이터 스크럽을 자율적으로 실행하는 각 디스크 제어기를 갖는다. 데이터 스크럽은 RAID 제어기로부터 I/O 요청을 수신하면 중단될 수 있고, 또는 보장된 스크럽률이 얻을 수 없다면 계속 진행될 수도 있다. 데이터는 동심원 데이터 트랙의 다수의 밴드에 저장되며, 선택적으로 밴드 판독 빈도 또는 밴드 기록 시점에 기초하여 스크럽할 밴드를 선택할 수 있다.

Description

하드 디스크 드라이브에서의 자율적인 데이터 스크럽 시스템 및 방법{SYSTEM AND METHOD FOR AUTONOMOUS DATA SCRUBBING IN A HARD DISK DRIVE}
본 발명은 일반적으로 하드 디스크 드라이브에 관한 것으로, 특히 복수 배열 독립 디스크(Redundant Arrays of Independent Disks : RAID) 시스템의 하드 디스크 드라이브에 관한 것이다.
대부분의 데이터 저장 서브시스템에 있어서 데이터 무결성은 가장 큰 관심사이다. 이들 서브시스템은 각종 RAID 기술을 이용하여 데이터 리던던시를 제공하는데, 이러한 RAID 서브시스템에서는 어느 한 하드 디스크 드라이브로부터 데이터를 입수할 수 없는 경우에 다른 드라이브로부터 그 데이터를 복구할 수 있다. 대부분의 서브시스템은 다수 장애를 허용하는 데에 드는 비용이 높기 때문에 단일 장애만을 허용한다. 불행하게도, 하드 에러로도 알려진 복구 불가능한 판독 에러가 디스크 드라이브에서 일어날 수 있다. 이것은 드라이브의 에러 복구 절차(ERP)의 모든 단계를 소진한 후에도 섹터를 판독할 수 없을 때 일어나는 장애 상황이다. 이러한 단계에는 구현된 모든 레벨의 에러 정정 제어(ECC)를 호출하는 것과, 상이한 헤드 오프셋을 이용하여 재시도하는 것이 포함된다. RAID 서브시스템의 다른 모든 드라이브가 여전히 액세스 가능한 동안에 복구 불가능한 판독 에러가 일어나는 경우에는, 이들 드라이브로부터 섹터를 재구축할 수 있다. 그러나, RAID의 어느 한 드라이브에 이미 장애가 일어난 경우에 하드 에러가 일어난다면, 그 하드 에러 섹터와 장애 상태 드라이브의 대응 섹터는 모두 복구 불가능하다. 그 결과, 데이터가 손실된다.
드라이브에 장애가 일어난 후에 하드 에러가 일어날 확률을 줄이기 위해서, 일부 저장 서브시스템에서는 그 데이터가 실제로 필요해지기 전에 그 에러를 제거하기 위해서 여러 종류의 데이터 스크럽 루틴을 실행한다. 이러한 방식에 있어서, RAID 제어기는 자체적으로 검증 판독(즉, 캐시로부터 판독하지 않고, 디스크 매체로부터 판독) 커맨드를 각 드라이브 제어기에 주기적으로 발행하고 각 드라이브의 모든 어드레스에 대해 반복한다. 복구 불가능한 에러가 일어나 어느 한 드라이브 제어기에 의해 보고되면, RAID 제어기는 RAID 리던던시를 이용하여 다른 드라이브로부터 그 데이터를 재구축한다. 일부 서브시스템에서는 하드 에러가 일어난 섹터가 여분의 위치에 자동적으로 재할당되도록, 디스크 드라이브에서 자동 재할당을가능하게 한다. 다른 서브시스템에서는 RAID 제어기가 먼저 문제가 해결되었는지를 알아 보기 위해서 데이터를 원래의 위치에 재기록할지를 판정하여, 그 문제가 영구적인 경우(예컨대 매체 상의 스크래치)에만 재할당할 수 있도록, 자동 재할당을 턴오프시킨다. 모든 경우에, RAID 제어기는 복구 불가능한 에러의 통계를 기록한다. 이러한 에러가 소정의 임계값을 초과하면, 그 드라이브는 대체될 것이다.
전술한 서브시스템 제어기에 의한 데이터 스크럽 관리는 두 가지 결점을 가지고 있다. 첫째로, 데이터 스크럽 프로세스를 관리하고 실행하는 데에 RAID 시스템 제어기 자원이 필요하다는 점과, 둘째로, 그 제어기가 실제로 필요로 하지 않는 데이터가 드라이브로부터 반송된다는 점이다. 이것은 버스 상에 불필요한 트래픽을 발생시켜 시스템 성능을 저하시킬 수 있다. 이러한 제한 때문에, 데이터 스크럽 사이클이 생각했던 것보다 더 길어질 수 있다.
본 발명은 복구 불가능한 에러가 일어나지 않는 한은 RAID 제어기에 의한 어떠한 액션도 요구하지 않고 디스크 드라이브 제어기 레벨에서 데이터 스크럽을 실행함으로써 전술한 문제들을 해결할 수 있다는 인식 하에 이루어진 것이다.
도 1은 클라이언트 프로세서와 협력하는 RAID 시스템의 블록도.
도 2는 도 1에 도시한 RAID 시스템의 어느 한 하드 디스크 드라이브(HDD)의 블록도.
도 3은 보장된 스크럽률을 유지하는 선택적 로직을 보여주는 데이터 스크럽 프로세스의 흐름도.
도 4는 스크럽 재개를 고정 기간 또는 적응 기간만큼 지연시키는 선택적 로직과 기회주의적인 데이터 스크럽의 선택적 로직을 보여주는 도 3에 도시한 스크럽 프로세스를 중단하는 프로세스의 흐름도.
도 5는 도 3의 스크럽 프로세스를 이용하여 보장된 스크럽률을 확립하는 프로세스를 보여주는 흐름도.
도 6은 도 3의 스크럽 프로세스 중에 스크럽할 다음 데이터 단위를 선택하는 바람직한 프로세스를 보여주는 흐름도.
도 7은 도 4의 스크럽 중단 로직 중에 사용자가 요청한 판독 또는 기록을 실행하는 바람직한 프로세스를 보여주는 흐름도.
도 8은 바람직한 데이터 밴드 테이블을 보여주는 도면.
도 9는 도 8의 테이블을 유지하는 바람직한 프로세스를 보여주는 흐름도.
도 10은 스크럽할 단위를 선택하는 바람직한 프로세스를 보여주는 흐름도.
<도면의 주요 부분에 부호의 설명>
10 : RAID 시스템
12: RAID 제어기
14: 클라이언트 프로세서
16 : 하드 디스크 드라이브(HDD)
18: HDD 제어기
20: 데이터 저장 디스크
22: 캐시
본 발명의 하드 디스크 드라이브는 적어도 하나의 저장 디스크와; 상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기를 포함한다. 상기 드라이브 제어기는, 적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하는 기능을 포함하는 스크럽 사이클을실행하는 기능을 포함하는 로직을 실행한다. 에러가 있는 경우에는, 그 에러를 기록 및/또는 보고한다. 상기 에러 검출 로직은 후속 데이터 단위에 대해서도 실행된다. 데이터 판독 또는 데이터 기록에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개한다.
바람직한 실시예에 있어서, 상기 하드 디스크 드라이브는 RAID 시스템과 결합되고, 상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신한다.
비제한 일실시예에 있어서, 상기 드라이브 제어기 로직은 상기 스크럽 사이클을 재개하기 전에 사용자 요청 큐 내의 모든 사용자 요청을 실행한 후 지연 기간을 대기하는 기능을 포함한다. 상기 지연 기간은 상기 RAID 제어기로부터 수신되는 사용자 요청의 빈도 및/또는 수에 따라 달라지는 적응 지연 기간일 수 있다.
상기 디스크 드라이브는 데이터 밴드로 분할될 수 있다. 상기 드라이브 제어기는 예컨대 밴드에 대한 최근의 액세스를 나타내는 테이블을 유지하는 것이 바람직하다.
선택적으로, 사용자 요청을 실행함과 동시에, 사용자 요청에 속하는 디스크 상의 데이터에 바로 인접한 데이터에 대해서 스크럽을 선택적으로 실행할 수 있다. 또한, 선택적으로, 다른 데이터보다 더 최근에 기록된 데이터에 대해서 및/또는 다른 디스크의 영역보다 더 자주 액세스된 디스크의 영역에 대해서 스크럽을 실행할 수 있다.
다른 형태로서, 본 발명의 하드 디스크 드라이브는 적어도 하나의 저장 디스크와; 상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기를 포함한다. 상기 드라이브 제어기는, 적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하는 기능을 포함하는 스크럽 사이클을 실행하는 기능을 포함하는 로직을 실행한다. 에러가 있는 경우에는, 그 에러를 기록 및/또는 보고한다. 상기 에러 검출 로직은 후속 데이터 단위에 대해서도 실행된다. 데이터 판독 또는 데이터 기록에 대한 사용자 요청을 수신하고, 현재의 스크럽률이 임계률을 초과하는 경우에는, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개한다. 그렇지 않은 경우에는 상기 스크럽 사이클 중 현행 스크럽 판독을 중단하지 않는다.
또 다른 형태로서, 본 발명의 하드 디스크 드라이브는 적어도 하나의 저장 디스크와; 상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기를 포함한다. 상기 드라이브 제어기는, 적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하는 기능을 포함하는 스크럽 사이클을 실행하는 기능을 포함하는 로직을 실행한다. 에러가 있는 경우에는, 그 에러를 기록 및/또는 보고한다. 상기 에러 검출 로직은 후속 데이터 단위에 대해서도 실행된다. 상기 스크럽 사이클은 제2 데이터보다 더 최근에 기록된 제1 데이터에 대해서 실행되고, 그 다음에 그 제2 데이터에 대해서 실행될 수 있다. 또는, 선택적으로, 상기 스크럽 사이클은 자주 액세스된 디스크의 영역에 대해서 실행될 수 있다.
본 발명의 상세, 즉 그 구성 및 작용에 대해서는 첨부한 도면(동일한 요소에는 동일한 참조 번호를 부여)을 참조하면 보다 잘 이해할 수 있을 것이다.
먼저 도 1을 참조해 보면, 하나 이상의 클라이언트 프로세서(14)와 통신하여 복수의 하드 디스크 드라이브(HDD)(16)에 대한 데이터의 저장 및 검색을 행하는 RAID 제어기(12)를 포함하는 RAID 시스템(10)이 도시되어 있다. 도 2에는 RAID 제어기(12)로부터의 요청에 응답하여 하나 이상의 데이터 저장 디스크(20)에 대한 데이터의 판독 및 기록을 행하는 드라이브 제어기(18)를 포함하는 본 발명의 하드 디스크 드라이브(16)가 도시되어 있다. 각 HDD(16)는 또한 종래의 HDD 원리에 따른 도시한 바와 같은 고체 상태의 데이터 캐시(22)를 포함한다. 본 발명의 원리에 따라, RAID 시스템(10)의 각 HDD 제어기(18)는 후술하는 스크럽 로직을 자율적으로 실행하는데, 즉 각 드라이브 제어기(18)는 RAID 제어기(12)로부터 독립적이고 자율적으로 자신의 디스크에 대한 데이터 스크럽을 실행한다.
도 3은 바람직하게는 드라이브 제어기(18)가 무한정으로 반복할 수 있는 본 발명의 스크럽 루프의 로직을 보여준다. 로직은 개시 단계 24에서 개시하여, 도 5를 참조하여 충분히 후술하는 바와 같이 보장된 스크럽률을 충족시키는 경우에, 단계 26으로 이동하여, 스크럽 사이클의 개시 시각을 기록한다.
보장된 스크럽률을 충족시키지 못하는 경우에, 로직은 단계 26 또는 개시 단계 24에서 단계 28로 이동하여, 도 6을 참조하여 후술하는 바와 같이 또는 후술하는 기준을 이용하여 스크럽할 다음 데이터 단위를 선택한다. 비제한 실시예에 있어서 데이터는 "밴드(band)"로 디스크(20)에 저장되는데, 이 밴드는 디스크 상의 이용 가능한 데이터 공간의 논리적 분할에 의해 형성된다. 예컨대, 100GB 드라이브는각 밴드가 1GB인 100개의 밴드, 또는 각 밴드가 100MB인 1000개의 밴드 등으로 분할될 수 있다. 하나의 데이터 단위는 비교적 다수의 섹터, 예컨대 512개이거나, 하나의 전체 트랙일 수 있다. 전(full) 트랙 판독의 경우에, 회전 레이턴시 오버헤드를 제거하도록 스크럽 판독을 행할 때 제로 레이턴시 판독 기술(즉, 헤드가 트랙에 위치하자마자 판독을 개시)을 쉽게 적용할 수 있다. 후술하는 바와 같이, 스크럽 데이터 단위에 대응하는 비트 맵을 이용하여 이미 스크럽된 단위의 트랙을 유지할 수 있는데, 그 외에도 다른 방법을 이용할 수도 있다. 각 스크럽 사이클의 개시 시에 비트 맵을 리셋한다.
스크럽할 데이터 단위를 식별하고 나면, 단계 30에서 그 데이터 단위를 판독한다. 단계 32에서 드라이브 제어기(18)는 그 데이터 단위에 정정 불가능한 에러가 있는지를 판정한다. 에러가 검출되면, 단계 34에서 그 에러의 위치(어드레스)가 기록된다. 선택적으로, 이 단계에서 바로 그 에러가 RAID 제어기(12)에 통지될 수도 있다. 다음에, 단계 36에서 드라이브 제어기(18)는 스크럽된 데이터 단위의 리스트(또는 비트 맵)를 갱신한다. 보장된 스크럽률이 이용되는 경우에, 로직은 단계 38로 이동하는데, 여기서 단계 36에서 기록한 스크럽된 데이터양을 단계 26에서 기록한 스크럽 사이클 개시 시각 이래로 경과한 총 시간으로 나눔으로써 스크럽률이 결정된다. 마지막으로, 단계 40에서 전체 디스크가 스크럽되었는지를 판정하고, 그렇지 않은 경우에는 로직은 단계 28로 되돌아간다. 이와 달리, 로직은 단계 24에서 또 다른 스크럽 사이클을 개시할 수도 있다.
도 4는 보장된 스크럽률을 얻지 못할 경우에 드라이브 제어기(18)가 실행할수 있는 로직을 보여준다. 도 3에 도시한 스크럽 루프가 계속해서 실행되고 있다는 가정 하에, 단계 42에서 (예컨대 RAID 제어기(12)로부터) 디스크(20)에 대한 판독 또는 기록에 관한 사용자 요청을 수신한다. 단계 44에서 드라이브 제어기(18)는 스크럽 판독이 진행 중인지를 판정하고, 그러한 경우에는 단계 46에서 그 스크럽 판독을 중단 또는 중지한다. 도 4의 파선은 다각형 48로 표시한 도 3의 스크럽 루프 서브루틴이 통지 또는 중지된다는 것을 나타낸다.
스크럽 판독이 진행 중이지 않은 경우에는, 로직은 단계 46 또는 단계 44에서 단계 50으로 이동하여, I/O 요청을 요청 큐에 추가한다. 다음에, 단계 52로 이동하여, 실행되지 않은 요청이 큐에 존재하는지를 판정하고, 그러한 경우에는 단계 54에서 요청을 서비스한다. 큐 내의 어떤 요청을 다음에 서비스할지를 선택하는 데에는 포스트-컴-포스트-서브드(first-come-first-served), 쇼티스트-타임-포스트 (shortest-time-first) 등을 포함한 예정된 알고리즘을 이용할 수 있다.
또한, 단계 54의 로직의 일부로서, 사용자 요청을 실행하면서 그 요청에 속하는 디스크 상의 데이터에 바로 인접한 데이터에 대해서도 기회주의적으로 스크럽 루프를 실행할 수 있다. 이것은 하나 이상의 인접한 데이터 스크럽 단위를 포함하도록 요청을 확장함으로써 가능하다. 예컨대, 판독 요청을 128개의 섹터, 즉 어드레스 5020에서부터 어드레스 5147까지 판독하도록 할 수 있다. 기회주의적인 스크럽을 호출하는 경우에는, 드라이브 제어기(18)는 요청 섹터를 포함한 전체 스크럽 단위(즉, 어드레스 5000에서부터 어드레스 5999까지)를 판독하고, 그렇게 하면서 그 전체 단위를 스크럽한다.
원한다면, 모든 사용자 I/O 요청을 실행하고 나면, 로직은 단계 56으로 이동하여, 도 3의 스크럽 루프를 재개하기 전에 지연 기간을 대기할 수 있다. 지연 기간은 고정 기간이거나 적응 기간일 수 있고, 예컨대 사용자 요청을 수신하는 빈도(빈도가 클수록 예컨대 지연 기간은 길어짐) 및/또는 RAID 제어기로부터 수신되는 사용자 요청수(요청이 많을수록 예컨대 지연 기간은 길어짐)에 따라 달라질 수 있다. 지연 기간은 새로운 요청이 가까운 장래에 도착하지 않을 확률을 증가시키는데, 즉 HDD는 유휴 기간에 들어간다. 지연 기간 중에 새로운 요청이 도착하면, 로직은 개시 단계 42로 되돌아가거나, 단계 48에서 스크럽 루프에 재진입한다.
적응 지연 기간을 결정함에 있어서, 드라이브 제어기(18)는 단계 42에서 기록한 최종 사용자 요청 도착 시각 이래로 경과한 시간량을 계산할 수 있다. 이 예에서는, 그 경과 시간을 이용하여 실행할 지연 기간을 계산한다. 이러한 계산의 일례로서, 지연 기간 = k / 경과 시간, 여기서 k는 상수. 따라서, 경과 시간이 짧으면, 또 다른 요청이 곧 도착할 확률이 크므로 지연 기간을 길게 하고, 경과 시간이 길면, 긴 기간 중에 HDD에 어떠한 활동도 없었고 따라서 더 자주 스크럽을 행하여도 성능에 영향을 미칠 가능성이 없으므로 지연 기간을 짧게 한다. 전술한 바와 같이, 다른 적응 방법이나 방식을 이용할 수도 있다.
도 5는 스크럽이 적어도 사용자가 규정할 수 있는 어떤 임계률로 일어나는 것이 바람직한 경우에 실행할 수 있는 로직을 보여준다. 도 3에 도시한 스크럽 루프가 계속해서 실행되고 있다는 가정 하에, 단계 58에서 (예컨대 RAID 제어기(12)로부터) 디스크(20)에 대한 판독 또는 기록에 관한 사용자 요청을 수신한다. 단계60에서 스크럽 판독이 진행 중인지를 판정하고, 그러한 경우에는 로직은 단계 62로 이동하여, (도 3의 단계 38에서 결정된) 현재의 스크럽률이 임계률 미만인지를 판정한다. 그렇지 않은 경우에는, 로직은 단계 64로 이동하여, 스크럽 판독을 중단 또는 중지한다. 도 5의 파선은 다각형 66으로 표시한 도 3의 스크럽 루프 서브루틴이 통지 또는 중지된다는 것을 나타낸다.
반대로, 단계 62에서 스크럽률이 부족한 경우(즉, 너무 느린 경우)에는, 로직은 단계 68로 이동하여, 사용자 요청을 서비스하기 전에 현재의 스크럽 판독을 완료한다. 스크럽 판독이 진행 중이지 않은 경우에는 단계 69에서, 또는 판독이 진행 중이고 스크럽률에 따라 달라지는 경우에는 단계 64 또는 단계 68에서, 로직은 단계 70으로 이동하여, 사용자 요청을 요청 큐에 추가한다. 다음에, 단계 72로 이동하여, 실행되지 않은 요청이 큐에 존재하는지를 판정하고, 그러한 경우에는 단계 74에서 요청을 서비스한다. 원한다면, 도 4의 로직에서와 같이, 단계 74의 로직의 일부로서, 사용자 요청을 실행하면서 그 요청에 속하는 디스크 상의 데이터에 바로 인접한 데이터에 대해서도 기회주의적으로 스크럽 루프를 실행할 수 있다.
드라이브 제어기(18)의 로직은 단계 74에서 단계 76으로 이동하여, 새로운 스크럽률을 계산하고, 그 다음에 단계 78로 이동하여, 그 스크럽률이 너무 느린지를 판정한다. 그러한 경우에는, 로직은 다각형 66으로 표시한 도 3의 스크럽 루프에 재진입하고, 그 스크럽률이 사용자가 규정한 임계값과 같아질 때까지 단계 66과 단계 78 사이의 루프에 머무른다. 스크럽률이 임계값과 같아지면, 로직은 다시 단계 72로 이동한다. 도 5에 도시한 바와 같이, 단계 72에서 큐 내의 모든 사용자 요청이 실행되었다고 판정하면, 로직은 선택적으로 단계 80으로 이동하여, 단계 66에서 스크럽 루프에 재진입하기 전에 전술한 지연 기간을 호출할 수 있다.
전술한 바와 같이, 바람직한 실시예에서는 데이터 스크럽 단위로서 물리적인 트랙 또는 그 일부를 이용한다. 스크럽할 데이터 단위를 스케줄링하는 경우에, 처음부터 끝까지 순차적으로 나가는 대신에, 디스크 드라이브(16)의 헤드가 현재 위치한 곳에 가장 가까운 곳에서 다음 스크럽 판독이 일어나도록 스케줄링할 수도 있다. 이 때문에, 어느 비제한 실시예에 있어서, 도 3의 단계 28에서 실행하는 로직을 도 6에 도시한 로직으로 구현할 수도 있다.
단계 82에서 시작하는데, 이 단계에서는 헤드가 현재 위치한 곳의 물리적인 실린더 번호 "C"를 기록한다. 단계 84에서 드라이브 제어기(18)는 실린더 C 내의 모든 트랙이 이미 스크럽되었는지를 판정한다. 적어도 하나의 트랙이 아직 스크럽되지 않은 경우에는, 로직은 단계 86으로 이동하여, 그 실린더로부터 스크럽되지 않은 트랙을 선택하고, 그 다음에 로직은 도 3의 단계 30으로 이동한다.
단계 84에서 실린더 "C" 내의 모든 트랙이 스크럽되었다고 판정하면, 로직은 단계 88로 이동하여, 인덱스 변수 "i"를 1로 초기화한다. 그 다음에 로직은 단계 90으로 이동하여, 실린더 C+i 내의 모든 트랙이 이미 스크럽되었는지를 판정한다. 그렇지 않은 경우에는, 로직은 단계 86으로 이동하고, 그러한 경우에는, 로직은 단계 92로 이동하여, 실린더 C-i 내의 모든 트랙이 이미 스크럽되었는지를 판정한다. 실린더 C-i 내의 적어도 하나의 트랙이 아직 스크럽되지 않은 경우에는, 로직은 단계 86으로 이동한다. 그러나 단계 92에서 실린더 C-i 내의 모든 트랙이 스크럽되었다고 판정하면, 로직은 단계 94로 이동하여, 인덱스 변수 "i"를 1만큼 증분시킨다.
다음에, 단계 96으로 이동하여, 인덱스 변수 "i"가 임계값을 초과하는지를 판정한다. 그렇지 않은 경우에는 로직은 단계 90으로 되돌아간다. 그러나, 임계값을 초과하는 경우에는 단계 98로 이동하여, 다음 스크럽 단위를 선택하는 데에 상이한 알고리즘을 이용할 수 있다. 이것은 그러한 탐색을 합당한 시간으로 제한하고, 또한 "i"가 성능 이점을 갖기에 너무 커져 버린 후에 상이한 선택 방법으로 전환시킨다.
스크럽할 데이터 단위를 선택하는 데에 이용할 수 있는 상이한 선택 방법의 비제한 예로서, 다른 데이터보다 더 최근에 기록된 데이터를 그 다른 데이터를 스크럽하기 전에 스크럽할 데이터로 선택할 수 있다. 또는 더 자주 액세스된 디스크 영역을 덜 자주 이용된 다른 영역을 스크럽하기 전에 스크럽할 수 있다.
더 구체적으로, 본 발명은 일부 복구 불가능한 에러가 불량 기록에 의한 것일 수도 있음을 인식하였다. 이러한 에러를 더 신속하게 발견하기 위해서, 드라이브 제어기(18)는 도 7에 도시한 바와 같이, 최근에 기록된 트랙 및 인접 트랙을 스크럽하도록 스케줄링할 수 있다. 도 4 및 도 5의 단계 54 및 단계 74와 관련하여 전술한 바에 따라, 요청를 서비스하는 것은 단계 100에서 요청된 판독 또는 기록 커맨드를 실행하는 것을 포함할 수 있고, 그러면 단계 102에서 바로 완료된 커맨드가 기록 커맨드인지를 판정할 수 있다. 그것이 기록 커맨드인 경우에는 단계 104에서 드라이브 제어기(18)는 그 기록 커맨드가 작용한 스크럽 단위를, 그것이 이 사이클에서 스크럽되었는지의 여부에 상관없이, 아직 스크럽되지 않은 것으로 표시한다. 스크럽된 단위들을 기억하는 데에 비트 맵을 이용하는 바람직한 실시예에서는, 이들 단위의 대응하는 비트를 리셋한다. 이런 식으로, 이들 단위는 스크럽 대상으로 스케줄링되기 전에 다음 스크럽 사이클을 대기할 필요없이 바로 스크럽될 수 있다. 게다가, 이들 데이터 단위는 도 6의 스케줄링 방법을 이용하면 신속하게 스케줄링될 것이다. 스크럽 단위가 물리적인 트랙인 바람직한 실시예에 있어서, 작용 스크럽 단위는 바로 기록된 데이터를 포함하는 트랙과 그 동일 표면 상의 인접한 트랙이 될 것이다.
전술한 바와 같이, 디스크(20)는 크기가 반드시 같은 것이 아닌 데이터 밴드로 논리적으로 분할될 수 있다. 밴드와 관련된 테이블(106)을 도 8에 도시하였는데, 여기서 각 엔트리는 하나의 밴드에 대응한다. 각 엔트리는 제1 열에 표시한 바와 같이 카운트 필드를 포함한다. 카운트 축소를 위해서 이중 링크 리스트로 엔트리를 설정하는 것이 바람직하며, 이에 따라 각 엔트리는 또한 제2 및 제3 열에 표시한 바와 같이 이중 링크 리스트에 정방향 포인터 및 역방향 포인터를 포함한다. 이러한 밴드 테이블 외에도, HDD는 이중 링크 리스트의 상위(최고 카운트를 갖는 엔트리)를 지시하는 포인터를 유지한다.
비제한 실시예로서 이제 도 9를 참조해 보면, 도 9의 단계 108에서 HDD(16)가 새로운 사용자 I/O 요청을 수신할 때마다, 단계 110에서 드라이브 제어기(18)는 그 요청에 대응하는 밴드를 판정한다. 단계 112에서 그 밴드의 카운트를 증분시킨다. 다음에 단계 114로 이동하여, 그 증분된 카운트가 카운트 필드가 유지할 수 있는 최대값을 초과하는지를 판정한다. 예컨대, 카운트 필드에 16 비트를 이용한다면, 그 최대 카운트는 65535가 된다. 최대값을 초과하는 경우에는, 로직은 단계 116으로 이동하여, 테이블 내의 모든 엔트리의 카운트 필드를 2로 나눈다.
다음에, 단계 116에서 또는 단계 114에서 판정 결과가 NO인 경우에는 단계 118로 이동하고, 여기서 드라이브 제어기(18)는 새로운 카운트가 현재의 밴드와 관련된 역방향 포인터가 지시하는 엔트리(즉, 정돈된 링크 리스크에서 다음 큰 엔트리)의 카운트보다 큰지를 판정한다. 그러한 경우에는, 로직은 단계 120으로 이동하여, 링크 리스트에서 이들 두 엔트리의 위치를 바꾼다. 다음에 루프는 단계 118로 되돌아가서, 링크 리스트가 적절히 정돈될 때까지 반복한다.
마지막으로, 도 10은 도 8 및 도 9의 전술한 테이블 구현에 있어서 단계 122에서 시작되는 선택 알고리즘을 보여준다. 단계 124에서 링크 리스트의 상위 엔트리(최고 카운트를 갖는 엔트리)를 선택한다. 다음에, 단계 126으로 이동하여, 이 밴드의 모든 스크럽 단위가 이미 스크럽되었는지를 판정한다. 모든 스크럽 단위가 이미 스크럽되었다면, 로직은 단계 128로 이동하여, 링크 리스트의 다음 밴드를 선택한 다음에, 단계 126으로 되돌아간다. 단계 126에서 모든 데이터 단위가 스크럽되지 않은 밴드가 발견되면, 단계 130으로 이동하여, 이 밴드로부터 스크럽 단위를 선택한다.
에러 복구 절차(ERP)를 이용하여 복구 가능한 에러의 경우, 드라이브 제어기(18)는 데이터를 원래의 위치에 다시 기록한 다음에 그 데이터를 판독해 보아, 다시 에러를 포함하는지를 판정해 볼 수 있다. 다시 에러를 포함하는 경우에는, 물리적인 위치가 손상되었다는 것을 의미한다. 이러한 옵션은 새로운 모드 페이지 파라미터로 제어될 수 있다. 사용자가 그 모드 페이지에 자동 재할당을 지정한 경우에는, 드라이브 제어기(18)는 복구된 데이터를 새로운 위치에 기록한다. 자동 재할당을 지정하지 않고 또한 원래의 위치에의 재기록도 지정하지 않은 경우에는, 복구된 데이터를 보호 영역에 저장할 수 있는데, 다음의 복구 불가능한 에러가 일어난 경우에 보호 영역을 검사하여 손실 데이터가 보호 영역에 존재하는지를 알아 볼 수 있다.
본원에 상세히 기재한 특정한하드 디스크 드라이브에서의 자율적인 데이터 스크럽 시스템 및 방법은 본 발명의 전술한 목적 달성이 충분히 가능하지만, 그것은 단지 본 발명의 바람직한 실시예이고 따라서 본 발명이 폭넓게 의도하는 주제를 대표하는 것이며, 당업자에게 자명한 다른 실시예는 모두 본 발명의 범위에 포함되고, 따라서 본 발명의 범위는 단지 첨부한 청구 범위에 의해서만 한정되며, 단수로 표시된 요소는 명백히 말하지 않는 이상은 "하나 및 단 하나"를 의미하는 것이 아니라 "하나 이상"을 의미하는 것이다. 본 발명에 의해 해결하고자 하는 각 문제 및 모든 문제를 어느 한 장치 또는 방법으로 처리할 필요는 없을 뿐더러, 본 발명의 청구 범위가 그러한 장치 또는 방법을 포함할 필요도 없는 것이다. 게다가, 본원의 요소, 구성 요소 또는 방법 단계는 그것들이 청구 범위에 명백하게 기재되어 있는지의 여부에 상관없이 공중의 것으로 해서는 안된다. 본원의 요소는 그것이 어구 "기능적 수단(means for)", 또한 방법 청구 범위의 경우에는 "작용(act)" 대신에 "단계(step)"으로 명백하게 기재되지 않는 이상은 U.S.C 112 35조 6항 하에서 해석해서는 안된다. 본원에 없는 용어 정의, 청구 범위 용어는 본원의 상세한 설명 및문서 내력과 모순되지 않는 모든 일반적인 의미로 해석해야 한다.
본 발명에 의하면, 복구 불가능한 에러가 일어나지 않는 한은 RAID 제어기에 의한 어떠한 액션도 요구하지 않고 디스크 드라이브 제어기 레벨에서 데이터 스크럽을 실행하는 것이 가능하다.

Claims (29)

  1. 적어도 하나의 저장 디스크와;
    상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기
    를 포함하며, 상기 드라이브 제어기는,
    적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하여, 에러가 있는 경우에는, 그 에러를 기록하는 것과 그 에러를 보고하는 것 중 적어도 하나를 실행하는 기능과, 후속 데이터 단위에 대해 상기 기능들을 실행하는 기능을 포함하는 스크럽 사이클을 실행하는 기능과;
    데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하는 기능
    을 포함하는 로직을 실행하는 것인 하드 디스크 드라이브.
  2. 제1항에 있어서, RAID 시스템과 결합되고,
    상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신하는 것인 하드 디스크 드라이브.
  3. 제2항에 있어서, 상기 스크럽 사이클을 재개하기 전에 사용자 요청 큐 내의모든 사용자 요청을 실행한 후 지연 기간을 대기하는 기능을 포함하는 것인 하드 디스크 드라이브.
  4. 제3항에 있어서, 상기 지연 기간은 상기 RAID 제어기로부터 수신되는 사용자 요청의 빈도 및 수 중 적어도 하나에 따라 달라지는 적응 지연 기간인 것인 하드 디스크 드라이브.
  5. 제1항에 있어서, 상기 디스크 드라이브는 데이터 밴드로 분할되고, 상기 드라이브 제어기는 적어도 밴드에 대한 최근의 액세스를 나타내는 테이블을 유지하는 것인 하드 디스크 드라이브.
  6. 제1항에 있어서, 사용자 요청을 실행하는 기능의 일부로서, 사용자 요청에 속하는 디스크 상의 데이터에 바로 인접한 데이터에 대해서 상기 스크럽 사이클을 실행하는 기능을 포함하는 것인 하드 디스크 드라이브.
  7. 제1항에 있어서, 제2 데이터보다 더 최근에 기록된 제1 데이터에 대해서 상기 스크럽 사이클을 실행하고, 그 다음에 그 제2 데이터를 스크럽하는 기능을 포함하는 것인 하드 디스크 드라이브.
  8. 제1항에 있어서, 덜 자주 이용된 디스크의 영역보다 더 자주 액세스된 디스크의 영역에 대해서 상기 스크럽 사이클을 실행하고, 그 다음에 그 덜 자주 이용된 영역을 스크럽하는 기능을 포함하는 것인 하드 디스크 드라이브.
  9. 적어도 하나의 저장 디스크와;
    상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기
    를 포함하며, 상기 드라이브 제어기는,
    적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하여, 에러가 있는 경우에는, 그 에러를 기록하는 것과 그 에러를 보고하는 것 중 적어도 하나를 실행하는 기능과, 후속 데이터 단위에 대해 상기 기능들을 실행하는 기능을 포함하는 스크럽 사이클을 실행하는 기능과;
    데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하고, 현재의 스크럽률이 임계률을 초과하는 경우에는, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하며, 그렇지 않은 경우에는 상기 스크럽 사이클 중 적어도 현행 스크럽 판독을 중단하지 않는 기능
    을 포함하는 로직을 실행하는 것인 하드 디스크 드라이브.
  10. 제9항에 있어서, RAID 시스템과 결합되고,
    상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신하는 것인 하드 디스크 드라이브.
  11. 제10항에 있어서, 상기 스크럽 사이클을 재개하기 전에 사용자 요청 큐 내의 모든 사용자 요청을 실행한 후 지연 기간을 대기하는 기능을 포함하는 것인 하드 디스크 드라이브.
  12. 제11항에 있어서, 상기 지연 기간은 상기 RAID 제어기로부터 수신되는 사용자 요청의 빈도 및 수 중 적어도 하나에 따라 달라지는 적응 지연 기간인 것인 하드 디스크 드라이브.
  13. 제9항에 있어서, 상기 디스크 드라이브는 데이터 밴드로 분할되고, 상기 드라이브 제어기는 적어도 밴드에 대한 최근의 액세스를 나타내는 테이블을 유지하는 것인 하드 디스크 드라이브.
  14. 제9항에 있어서, 사용자 요청을 실행하는 기능의 일부로서, 사용자 요청에 속하는 디스크 상의 데이터에 바로 인접한 데이터에 대해서 상기 스크럽 사이클을 실행하는 기능을 포함하는 것인 하드 디스크 드라이브.
  15. 제9항에 있어서, 제2 데이터보다 더 최근에 기록된 제1 데이터에 대해서 상기 스크럽 사이클을 실행하고, 그 다음에 그 제2 데이터를 스크럽하는 기능을 포함하는 것인 하드 디스크 드라이브.
  16. 제9항에 있어서, 덜 자주 이용된 디스크의 영역보다 더 자주 액세스된 디스크의 영역에 대해서 상기 스크럽 사이클을 실행하고, 그 다음에 그 덜 자주 이용된 영역을 스크럽하는 기능을 포함하는 것인 하드 디스크 드라이브.
  17. 적어도 하나의 저장 디스크와;
    상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기
    를 포함하며, 상기 드라이브 제어기는,
    적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하여, 에러가 있는 경우에는, 그 에러를 기록하는 것과 그 에러를 보고하는 것 중 적어도 하나를 실행하는 기능과, 후속 데이터 단위에 대해 상기 기능들을 실행하는 기능을 포함하는 스크럽 사이클을 실행하는 기능
    을 포함하는 로직을 실행하는데, 상기 스크럽 사이클은 제2 데이터보다 더 최근에 기록된 제1 데이터에 대해서 실행되고, 그 다음에 그 제2 데이터에 대해서 실행되는 것인 하드 디스크 드라이브.
  18. 제17항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하는 것인 하드 디스크 드라이브.
  19. 제18항에 있어서, RAID 시스템과 결합되고,
    상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신하는 것인 하드 디스크 드라이브.
  20. 제17항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하고, 현재의 스크럽률이 임계률을 초과하는 경우에는, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하며, 그렇지 않은 경우에는 상기 스크럽 사이클 중 적어도 현행 스크럽 판독을 중단하지 않는 것인 하드 디스크 드라이브.
  21. 적어도 하나의 저장 디스크와;
    상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기
    를 포함하며, 상기 드라이브 제어기는,
    데이터 단위가 사용자 요청에 속하는 디스크 상의 데이터에 바로 인접한 경우에는 그 데이터 단위를 우선적으로 스크럽 대상으로 선택하는 적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하여, 에러가 있는 경우에는, 그 에러를 기록하는 것과 그 에러를 보고하는 것 중 적어도 하나를 실행하는 기능과, 후속 데이터 단위에 대해 상기 기능들을 실행하는 기능을포함하는 스크럽 사이클을 실행하는 기능
    을 포함하는 로직을 실행하는 것인 하드 디스크 드라이브.
  22. 제21항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하는 것인 하드 디스크 드라이브.
  23. 제22항에 있어서, RAID 시스템과 결합되고,
    상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신하는 것인 하드 디스크 드라이브.
  24. 제21항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하고, 현재의 스크럽률이 임계률을 초과하는 경우에는, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하며, 그렇지 않은 경우에는 상기 스크럽 사이클 중 적어도 현행 스크럽 판독을 중단하지 않는 것인 하드 디스크 드라이브.
  25. 적어도 하나의 저장 디스크와;
    상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기
    를 포함하며, 상기 드라이브 제어기는,
    적어도 하나의 데이터 단위를 판독하는 기능과, 그 데이터 단위에 에러가 있는지를 판정하여, 에러가 있는 경우에는, 그 에러를 기록하는 것과 그 에러를 보고하는 것 중 적어도 하나를 실행하는 기능과, 후속 데이터 단위에 대해 상기 기능들을 실행하는 기능을 포함하는 스크럽 사이클을 실행하는 기능
    을 포함하는 로직을 실행하는데, 상기 스크럽 사이클은 덜 자주 이용된 디스크의 영역보다 더 자주 액세스된 디스크의 영역에 대해서 실행되고, 그 다음에 그 덜 자주 이용된 영역에 대해서 실행되는 것인 하드 디스크 드라이브.
  26. 제25항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하는 것인 하드 디스크 드라이브.
  27. 제26항에 있어서, RAID 시스템과 결합되고,
    상기 드라이브 제어기는 상기 사용자 요청을 RAID 제어기로부터 수신하는 것인 하드 디스크 드라이브.
  28. 제25항에 있어서, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하고, 현재의 스크럽률이 임계률을 초과하는 경우에는, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하며, 그렇지 않은 경우에는 상기 스크럽 사이클 중 적어도 현행 스크럽 판독을 중단하지 않는 것인 하드 디스크 드라이브.
  29. RAID 제어기와, 복수의 하드 디스크 드라이브를 포함하는 복수 배열 독립 디스크(RAID) 시스템으로서,
    각 디스크 드라이브는 적어도 하나의 저장 디스크와, 상기 디스크에 대한 데이터 판독 및 데이터 기록을 행하는 적어도 하나의 드라이브 제어기를 포함하며,
    각 디스크 드라이브의 드라이브 제어기는 상기 RAID 제어기에 결합되고, 자율적으로 자신의 디스크에 대해서 스크럽 사이클을 실행하며, 데이터 판독과 데이터 기록 중 적어도 하나에 대한 사용자 요청을 수신하면, 상기 스크럽 사이클을 중단하여 상기 요청을 실행하고, 그 다음에 상기 스크럽 사이클을 재개하는 것인 RAID 시스템.
KR1020040058236A 2003-07-29 2004-07-26 하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법 KR20050013938A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/629,675 2003-07-29
US10/629,675 US7137038B2 (en) 2003-07-29 2003-07-29 System and method for autonomous data scrubbing in a hard disk drive

Publications (1)

Publication Number Publication Date
KR20050013938A true KR20050013938A (ko) 2005-02-05

Family

ID=33541483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040058236A KR20050013938A (ko) 2003-07-29 2004-07-26 하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법

Country Status (7)

Country Link
US (1) US7137038B2 (ko)
EP (1) EP1503378A3 (ko)
JP (1) JP2005050346A (ko)
KR (1) KR20050013938A (ko)
CN (1) CN1577587A (ko)
SG (1) SG148019A1 (ko)
TW (1) TW200516380A (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107838A (ja) * 2003-09-30 2005-04-21 Toshiba Corp ディスクアレイコントローラ及びログ情報記録方法
US7278067B1 (en) * 2004-04-30 2007-10-02 Network Appliance, Inc. Method and an apparatus for aggressively detecting media errors on storage devices with negligible performance impact
US7257686B2 (en) * 2004-06-03 2007-08-14 International Business Machines Corporation Memory controller and method for scrubbing memory without using explicit atomic operations
US7346804B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive data scrub methodology
US7346806B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive background scrub methodology
KR100652399B1 (ko) * 2005-02-02 2006-12-01 삼성전자주식회사 하드디스크 드라이브의 디펙트 처리 방법, 이에 적합한하드디스크 드라이브 및 기록 매체
US7496823B2 (en) * 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
US8745011B2 (en) * 2005-03-22 2014-06-03 International Business Machines Corporation Method and system for scrubbing data within a data storage subsystem
US7325078B2 (en) * 2005-10-06 2008-01-29 Hewlett-Packard Development Company, L.P. Secure data scrubbing
TWI289759B (en) * 2005-10-07 2007-11-11 Via Tech Inc Controller and operation method thereof of a disk array
US20070168754A1 (en) * 2005-12-19 2007-07-19 Xiv Ltd. Method and apparatus for ensuring writing integrity in mass storage systems
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US7752387B2 (en) * 2006-03-21 2010-07-06 International Business Machines Corporation Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure
US7882323B2 (en) * 2007-09-07 2011-02-01 International Business Machines Corporation Scheduling of background scrub commands to reduce high workload memory request latency
US7882314B2 (en) * 2007-09-07 2011-02-01 International Business Machines Corporation Efficient scheduling of background scrub commands
US7975171B2 (en) * 2007-09-12 2011-07-05 International Business Machines Corporation Automated file recovery based on subsystem error detection results
US8140752B2 (en) * 2007-09-20 2012-03-20 Xyratex Technology Limited Method of executing a background task and an array controller
JP4606455B2 (ja) * 2007-12-20 2011-01-05 富士通株式会社 ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム
JP4951493B2 (ja) * 2007-12-21 2012-06-13 株式会社日立製作所 ディスクアレイ装置
US7788541B2 (en) * 2008-04-15 2010-08-31 Dot Hill Systems Corporation Apparatus and method for identifying disk drives with unreported data corruption
EP2288992A4 (en) * 2008-04-22 2011-11-30 Lsi Corp DISTRIBUTED CACHE SYSTEM IN A DRIVE ARRAY
US8347182B2 (en) * 2008-07-01 2013-01-01 International Business Machines Corporation Ensuring data consistency
US9170879B2 (en) * 2009-06-24 2015-10-27 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated data errors from a memory system
US8280858B2 (en) * 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US20110099421A1 (en) * 2009-09-30 2011-04-28 Alessandro Geist Radiation-hardened hybrid processor
US8407191B1 (en) * 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
US8229901B2 (en) 2010-09-04 2012-07-24 International Business Machines Corporation Disk scrubbing
WO2012172645A1 (ja) * 2011-06-14 2012-12-20 富士通株式会社 メモリ制御装置および制御方法
US20130191833A1 (en) * 2012-01-23 2013-07-25 Dell Products L.P. System and method for assuring performance of data scrubbing operations
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
US8892939B2 (en) * 2012-11-21 2014-11-18 Hewlett-Packard Development Company, L.P. Optimizing a RAID volume
US9104604B2 (en) * 2013-02-26 2015-08-11 International Business Machines Corporation Preventing unrecoverable errors during a disk regeneration in a disk array
JP6155768B2 (ja) * 2013-03-29 2017-07-05 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US10534683B2 (en) 2013-08-29 2020-01-14 International Business Machines Corporation Communicating outstanding maintenance tasks to improve disk data integrity
KR102368170B1 (ko) 2013-09-12 2022-02-25 버섹 시스템즈, 인코포레이션 멀웨어의 자동화된 런타임 검출
US9354994B2 (en) 2014-02-18 2016-05-31 International Business Machines Corporation Preemptive relocation of failing data
CN107077412B (zh) 2014-06-24 2022-04-08 弗塞克系统公司 单层或n层应用的自动化根本原因分析
AU2015279923B9 (en) 2014-06-24 2018-01-25 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
US9495242B2 (en) 2014-07-30 2016-11-15 International Business Machines Corporation Adaptive error correction in a memory system
KR102419574B1 (ko) 2016-06-16 2022-07-11 버섹 시스템즈, 인코포레이션 컴퓨터 애플리케이션에서 메모리 손상을 교정하기 위한 시스템 및 방법
US10310935B2 (en) * 2016-11-17 2019-06-04 International Business Machines Corporation Dynamically restoring disks based on array properties
US11016850B2 (en) * 2018-03-20 2021-05-25 Veritas Technologies Llc Systems and methods for detecting bit rot in distributed storage devices having failure domains
US10824526B2 (en) 2018-08-03 2020-11-03 Western Digital Technologies, Inc. Using failed storage device in peer-to-peer storage system to perform storage-centric task
US10831603B2 (en) 2018-08-03 2020-11-10 Western Digital Technologies, Inc. Rebuild assist using failed storage device
US10901848B2 (en) * 2018-08-03 2021-01-26 Western Digital Technologies, Inc. Storage systems with peer data recovery
US10649843B2 (en) * 2018-08-03 2020-05-12 Western Digital Technologies, Inc. Storage systems with peer data scrub
US11182258B2 (en) 2019-01-04 2021-11-23 Western Digital Technologies, Inc. Data rebuild using dynamic peer work allocation
US11455402B2 (en) 2019-01-30 2022-09-27 Seagate Technology Llc Non-volatile memory with precise write-once protection
US11347884B2 (en) 2019-07-02 2022-05-31 Bank Of America Corporation Data security tool
US11182358B2 (en) 2019-07-18 2021-11-23 International Business Machines Corporation Performance enhanced data scrubbing
US10922012B1 (en) * 2019-09-03 2021-02-16 Dropbox, Inc. Fair data scrubbing in a data storage system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
JP2735801B2 (ja) * 1990-09-20 1998-04-02 富士通株式会社 入出力制御装置
JPH04310671A (ja) * 1991-04-09 1992-11-02 Toshiba Corp ディスク制御装置
JPH05158628A (ja) * 1991-12-05 1993-06-25 Nec Ibaraki Ltd 磁気ディスク制御装置
JPH05181618A (ja) * 1991-12-26 1993-07-23 Nec Ibaraki Ltd 周辺制御装置
JP2737562B2 (ja) * 1992-08-18 1998-04-08 日本電気株式会社 高密度磁気ディスク装置のパトロールシーク方式
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete
US5632012A (en) * 1993-11-24 1997-05-20 Storage Technology Corporation Disk scrubbing system
US5481733A (en) * 1994-06-15 1996-01-02 Panasonic Technologies, Inc. Method for managing the power distributed to a disk drive in a laptop computer
US5682273A (en) * 1995-06-30 1997-10-28 International Business Machines Corporation Disk drive for portable computer with adaptive demand-driven power management
US6345349B1 (en) * 1998-12-30 2002-02-05 Intel Corporation Combined memory and mass storage device
JP4419211B2 (ja) * 1999-06-03 2010-02-24 ソニー株式会社 記録媒体制御装置及び記録媒体制御方法
US6715116B2 (en) * 2000-01-26 2004-03-30 Hewlett-Packard Company, L.P. Memory data verify operation
JP3368475B2 (ja) * 2000-05-19 2003-01-20 富士通株式会社 情報処理装置及び省電力制御方法及び省電力制御プログラムを格納した記録媒体
US7017107B2 (en) * 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US7062704B2 (en) * 2001-04-30 2006-06-13 Sun Microsystems, Inc. Storage array employing scrubbing operations using multiple levels of checksums
US6848063B2 (en) * 2001-11-20 2005-01-25 Hewlett-Packard Development Company, L.P. System and method for scrubbing errors in very large memories

Also Published As

Publication number Publication date
US20050028048A1 (en) 2005-02-03
EP1503378A3 (en) 2007-08-08
SG148019A1 (en) 2008-12-31
EP1503378A2 (en) 2005-02-02
TW200516380A (en) 2005-05-16
CN1577587A (zh) 2005-02-09
US7137038B2 (en) 2006-11-14
JP2005050346A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
KR20050013938A (ko) 하드 디스크 드라이브에서의 자율적인 데이터 스크럽시스템 및 방법
JP5807458B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP5958020B2 (ja) ストレージシステム
CN101566924B (zh) 一种磁盘阵列的数据读写方法
US8751740B1 (en) Systems, methods, and computer readable media for performance optimization of storage allocation to virtual logical units
US7076605B1 (en) Method and apparatus for writing data to a storage device
US8726070B2 (en) System and method for information handling system redundant storage rebuild
US7975168B2 (en) Storage system executing parallel correction write
US8019937B2 (en) Applying storage device commit-cached-data-to-media functionality to improve data security in systems that allow storage devices to cache writes
US9471240B2 (en) Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
US7539816B2 (en) Disk control device, disk control method
US20080082744A1 (en) Storage system having data comparison function
KR20130100722A (ko) Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현
US20060161823A1 (en) Disk array system configuring a logical disk drive having a redundancy function
JP2005309818A (ja) ストレージ装置、そのデータ読出方法、及びそのデータ読出プログラム
US6219750B1 (en) Disk drive having control mechanism to reduce or eliminate redundant write operations and the method thereof
US20100058090A1 (en) Storage system and power saving method thereof
US20050283651A1 (en) Disk controller, disk patrol method, and computer product
JP4430092B2 (ja) Raid装置、raid装置の制御部およびraid装置のライトバック制御方法
US7526605B2 (en) System and method for optimizing random XOR command performance
CN115087962A (zh) 用于全跨度降级的抢先升级
JP2009223355A (ja) ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム
JP2009163499A (ja) ストレージ装置と方法とプログラム
JPH1124848A (ja) ディスクアレイの障害領域交代処理方法およびディスクアレイ装置
US6957302B2 (en) System and method for performing write operations in a disk drive using a write stack drive

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid