KR100363221B1 - 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법 - Google Patents

대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법 Download PDF

Info

Publication number
KR100363221B1
KR100363221B1 KR1020000066822A KR20000066822A KR100363221B1 KR 100363221 B1 KR100363221 B1 KR 100363221B1 KR 1020000066822 A KR1020000066822 A KR 1020000066822A KR 20000066822 A KR20000066822 A KR 20000066822A KR 100363221 B1 KR100363221 B1 KR 100363221B1
Authority
KR
South Korea
Prior art keywords
disk
unit
signal
bus
system bus
Prior art date
Application number
KR1020000066822A
Other languages
English (en)
Other versions
KR20020036576A (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 KR1020000066822A priority Critical patent/KR100363221B1/ko
Publication of KR20020036576A publication Critical patent/KR20020036576A/ko
Application granted granted Critical
Publication of KR100363221B1 publication Critical patent/KR100363221B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

본 발명은 신뢰성을 향상시키기 위한 폴트 톨로런스(fault tolerance) 기능을 갖는 디스크 저장 장치 및 이를 위한 폴트 톨로런스 제공방법에 관한 것이다.
본 발명에 따른 디스크 제어기는 호스트 접속부; 디스크 캐쉬; 자신의 시스템 버스신호와 다른 디스크 제어기의 시스템 버스신호를 비교하여 불일치를 검출하면 불일치신호를 발생하는 시스템 버스 신호 비교기; N개의 디스크제어 칩; 상기 디스크제어 칩과 연결된 내부 디스크 버스 신호를 상기 하드디스크와 연결되는 외부 디스크버스 신호와 비교하여 불일치를 검출하면 불일치신호를 발생하는 적어도 한개 이상 N개 이내의 디스크 버스 신호 비교기; 및 상기 시스템 버스를 제공하고, 정상 동작중에 마스터나 체커로서 동작하도록 하며, 상기 불일치신호가 수신되면 소정 알고리즘에 따라 폴트 톨로런스 기능을 제공하는 제어수단을 포함한다.
따라서, 본 발명에 따르면 대용량 디스크 저장장치를 구현함에 있어서 폴트 톨로런스 기능을 제공하여 디스크 제어기에 장애가 발생하더라도 신속하게 복구할 수 있고, 두 디스크 제어기 유니트의 동작을 하드웨어 레벨에서 비교하여 폴트를 감지하므로 폴트를 신속. 정확하게 검출할 수 있다.

Description

대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스 제공 방법 { A disk array system and method of providing fault tolerance for it }
본 발명은 대용량 디스크 저장 장치에 관한 것으로, 더욱 상세하게는 신뢰성을 향상시키기 위한 폴트 톨로런스(fault tolerance) 기능을 갖는 디스크 저장 장치 및 이를 위한 폴트 톨로런스 제공방법에 관한 것이다.
대용량의 디스크 저장장치에서 래이드(RAID: Redundant Arrays of Inexpensive Disks)시스템은 여러 개의 독립된 디스크 저장 장치들을 하나로 모아 각각의 디스크로 데이터를 분산 수용하고 동시에 여러 디스크로의 접근을 가능하게 함으로써 입출력 특성을 향상시키고, 호스트 컴퓨터 시스템으로는 여러개의 독립된 디스크 저장장치들이 마치 하나의 디스크 처럼 보이게 하므로써 대용량 저장장치의 구현을 가능하게 하는 기술이다. 또한 디스크 복제나 오류 검사 정정 코드(ECC) 또는 패티리 데이터와 같은 보조 데이터를 동시에 수용하므로 어느 한 디스크에 고장이 발생하더라도 데이터를 자동으로 복구할 수 있는 방법을 제공하여 시스템의 가용성을 높일 수 있다.
이러한 RAID시스템은 구성 형태에 따라 RAID level 0 내지 RAID level 5로 구분된다. 레벨0(Data striping)은 장애 발생에 대비한 여분의 저장공간을 갖지 않으나 다수의 HDD를 하나의 드라이브로 이용하여 데이터 전송을 균등하게 분산하므로 용량과 속도를 향상시킬 수 있는 방법이다. 레벨 1(Data mirroring)은 이른 바 미러링(mirroring)이라고 하는 방법으로서, 한 드라이브에 저장되는 모든 데이터를 다른 드라이브에도 동일하게 저장하여 신뢰성을 향상시킨 방법이다. 레벨 3(striping with extra parity)은 최소한 3대의 HDD를 사용하며 1대의 HDD를 에러정정 전용으로 사용하는 방법이고, 레벨 5(Striping with distributed parity)는 레벨 3과 같이 최소한 3개 이상의 디스크를 사용하되, 모든 디스크에 패리티 데이터를 분산시키는 방법이다. 그리고 레벨 0+1은 미러링과 스트라이핑을 조합한 것으로서 속도와 신뢰성을 향상시킬 수 있는 방법이다.
도 1은 이중 제어기를 갖는 일반적인 레이드시스템의 구성도의 한 예로서, 호스트 컴퓨터(11)와 접속된 제1 및 제 2 어레이 제어기(12,13), 디스크를 연결하기 위한 SCSI버스 및 디스크 저장장치 블록(14)으로 구성된다. SCSI버스에 연결되어 있는 디스크 저장장치(14)들은 RAID시스템의 초기환경 설정에 의해 두개의 논리적 그룹으로 나누어져 있고, 각 그룹은 각각 하나의 어레이 제어기에 속해 있다. 따라서 두개의 어레이 제어기(12,13)가 모두 정상 동작할 경우에는 각 어레이 제어기는 해당 디스크 그룹을 제어하고, 만약 하나의 어레이 제어기에 고장이 발생하면 다른 어레이 제어기가 고장 난 어레이 제어기에 있던 디스크 그룹의 제어권을 넘겨받는다.
그런데 이러한 종래의 이중 제어기 시스템은 SCSI방식의 디스크 저장장치들에 적합하나 IDE방식의 디스크 저장장치에는 적용하기 어려운 문제점이 있고, 고장이 발생한 디스크 제어기내의 디스크 캐쉬 메모리에서 디스크로 쓰기를 수행하지 못한 더티(dirty) 블럭에 대한 복구가 불가능한 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 복수개의 디스크 제어기가 항시 동일하게 동작하게 함과 아울러 그 출력신호를 비교하여 일치할 경우에는 마스터 모드로 동작중인 출력만 전달되게 하고, 일치하지 않은 경우에는 소정의 알고리즘에 따라 에러발생확률이 적은 디스크 제어기가 주도적으로 시스템을 제어할 수 있게 하여 저장시스템의 신뢰성을 향상시킨 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스 방법을 제공하는데 그 목적이 있다.
도 1은 이중 제어기를 갖는 종래의 디스크 저장 장치의 예를 도시한 도면,
도 2는 본 발명에 따른 디스크 저장 장치를 도시한 구성도,
도 3은 본 발명에 따른 디스크 저장 장치의 동작 상태도,
도 4는 본 발명에 따라 마스터가 수행하는 절차를 도시한 순서도,
도 5는 본 발명에 따라 체커가 수행하는 절차를 도시한 순서도이다.
*도면의 주요부분에 대한 부호의 설명
210: 호스트컴퓨터 220: 결합기
230,240: 디스크 제어기 231,242: 호스트접속부
232,242: 디스크 캐쉬 233,243: 시스템버스 신호 비교기
234,244: 제어부
235-1~235-n,245-1~245-n: 디스크제어칩
236-1~n,246-1~n: 디스크버스 신호 비교기
250-1~250-n: 하드 디스크
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 호스트컴퓨터로부터 전달되는 데이터를 N개의 하드디스크를 분산하여 저장하고, N개의 하드디스크로부터 읽은 데이터를 상기 호스트컴퓨터로 전달하는 대용량 저장 시스템에 있어서, 적어도 2개 이상의 디스크 제어기가 상기 호스트 컴퓨터와 상기 N개의 하드디스크를 중개하고, 각 디스크 제어기는 시스템 버스와 연결되며 상기 호스트컴퓨터와 접속하기 위한 호스트 접속부; 상기 시스템 버스에 접속되어 상기 호스트컴퓨터와 상기 하드디스크 사이에서 캐쉬 기능을 수행하는 디스크 캐쉬; 자신의 시스템 버스신호와 다른 디스크 제어기의 시스템 버스신호를 비교하여 불일치를 검출하면 불일치신호를 발생하는 시스템 버스 신호 비교기; 시스템 버스 및 내부 디스크 버스와 연결되어 시스템 버스 신호와 디스크 버스 신호를 중개하는 N개의 디스크제어칩; 상기 디스크제어칩과 연결된 내부 디스크 버스 신호를 상기 하드디스크와연결되는 외부 디스크버스 신호와 비교하여 불일치를 검출하면 불일치신호를 발생하는 적어도 한개 이상 N개 이내의 디스크버스 신호 비교기; 및 상기 시스템 버스를 제공하고, 정상 동작중에 마스터나 체커로서 동작하도록 하며, 상기 불일치신호가 수신되면 소정 알고리즘에 따라 폴트 톨로런스 기능을 제공하는 제어수단을 포함하는 것을 특징으로 한다.
또한 상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 호스트컴퓨터와 N개의 하드디스크 사이에 적어도 2개 이상의 디스크 제어기 유니트가 존재하는 저장 시스템에서 폴트 톨로런스를 제공하는 방법에 있어서, 전원이 온되거나 리셋이 되면 초기화를 수행하는 초기화 단계; 상기 초기화 단계에서 초기화가 완료되면 하나의 디스크 제어기가 마스터로 동작하고 다른 하나는 체커로 동작하면서 각 유니트가 자신의 신호와 상대방의 신호를 비교하여 불일치를 감시하는 듀얼 동작 단계; 상기 듀얼 동작 단계에서 트랜지언트 폴트가 발생되면, 각 유니트는 자기진단하여 에러확률을 계산하고 자신의 에러확률과 상대 유니트의 에러확률을 비교한 후 자신의 에러확률이 상대 유니트의 에러확률보다 낮으면 캐쉬 데이터를 플러시한 후 상기 듀얼 동작 단계로 가고, 자신의 에러확률이 상대 유니트의 에러확률보다 높으면 리셋신호를 수신하여 리셋 후 상기 듀얼 동작 단계로 가는 트랜지언트 폴트 처리 단계; 및 상기 듀얼 동작 단계에서 넌트랜지언트 폴트가 발생되면, 각 유니트는 자기진단하여 에러확률을 계산하고 자신의 에러확률과 상대 유니트의 에러확률을 비교한 후 자신의 에러확률이 상대 유니트의 에러확률보다 낮으면 상대 유니트를 킬(kill)하고 싱글 동작하며 자신의 에러확률이 상대 유니트의 에러확률보다 높으면 킬(kill)신호를 수신하여 동작을 정지하는 넌트랜지언트 폴트 처리 단계를 구비하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
도 2는 본 발명에 따른 대용량 디스크 저장 장치를 도시한 구성도로서, 본 발명의 장치는 제1 디스크 제어기(230)와 제2 디스크 제어기(240), n개의 하드 디스크(HD1~HDn: 250-1~250-n), 결합기(220)로 구성되어 호스트 컴퓨터(210)와 광신호로 결합되어 호스트 컴퓨터(210)가 제공한 데이터를 하드디스크(250-1~250-n)에 저장(write동작)하고, 하드디스크(250-1~250-n)로부터 데이터를 읽어 호스트 컴퓨터(210)에 전달(read동작)한다. 그리고 본 발명의 실시예에서 시스템 버스(SYS BUS)로는 PCI 버스등을 이용할 수 있고, 디스크 버스(DBUS)로는 IDE 버스 등을 이용할 수 있으며, 디스크제어칩(235-1~235-n, 245-1~245-n)으로는 RAID칩을 이용할 수 있다.
그리고 본 발명에 따른 제1 디스크 제어기(230)와 제2 디스크 제어기(240)는 동일한 구성으로 이루어지며, 정상상태에서 하나는 '마스터(master) 모드'로, 다른 하나는 '체커(checker) 모드'로 동작한다. 그리고 각 디스크 제어기(230,240)는 호스트접속부(231,241), 디스크 캐쉬(232,242), 시스템 버스 신호 비교기(233,243), 제어부(234,244), 제1 내지 제n 디스크제어칩(235-1~n,245-1~n)과, 상기 제1 내지 제n 디스크제어칩(235-1~n,245-1~n)과 제1 내지 제n 하드 디스크(250-1~250-n)를 연결하는 제1 내지 제n 디스크버스 신호 비교기(236-1~236-n,246-1~246-n)로 구성된다.
여기서, 제1 디스크 제어기(230)와 제2 디스크 제어기(240)는 클럭을 공유하여 동일한 클럭에 동일한 하드웨어로 동작하므로 두 유니트가 모두 정상 동작할 경우에는 제1 디스크 제어기(230)의 시스템 버스 신호와 제2 디스크 제어기(240)의 시스템 버스 신호가 일치하고, 제1 디스크 제어기(230)의 디스크 버스 신호와 제2 디스크 제어기(240)의 디스크 버스 신호가 일치해야 한다. 만일, 두 신호가 일치하지 않는다면 어느 하나에 에러가 발생한 것을 의미한다. 따라서 본 발명은 두 디스크 제어기의 신호들을 서로 비교하여 일치하지 않을 경우에는 각각 진단절차를 통해 장애가 발생한 유니트를 찾아 내고, 장애정도에 따라 적절한 조치를 취하는 것이다.
도 2를 참조하면, 결합기(220)는 제1 및 제2 디스크 제어기(230,240)와 호스트 컴퓨터(210)를 광신호 등을 이용하여 통신할 수 있도록 한다. 호스트 접속부(231,241)는 제어기 내부와는 시스템 버스(SYS BUS)로 접속되고, 광결합기(220)와는 광신호로 접속되어 디스크 제어기(230,240)를 호스트 컴퓨터(210)에 접속하는 기능을 수행한다. 이 때 호스트 접속부(231,241)는 라이트 동작시에는 호스트 컴퓨터(210)로부터 전달되는 신호를 제1 디스크 제어기(230)와 제2 디스크 제어기(240) 양측으로 동일하게 전달하도록 되어 있으나 리드 동작시에는 체커측의 호스트 접속부는 출력을 차단하고 마스터측의 호스트 접속부만 출력을 호스트 컴퓨터(210)에 전달하도록 되어 있다. 이와 같이 호스트 컴퓨터측과광신호로 접속하므로써 처리속도와 용량을 향상시킬 수 있으나 경우에 따라서는 광결합기를 이용하지 않고 호스트 접속부와 호스트 컴퓨터를 전기적인 신호로 접속할 수도 있다.
디스크 캐쉬(232,242)는 호스트컴퓨터와 하드디스크 사이에서 고속 디스크 동작을 위한 캐쉬 기능을 수행한다.
시스템 버스 신호 비교기(233,243)는 자신의 시스템버스 신호를 상대 유니트로 전달하고, 상대 유니트의 시스템 버스 신호를 수신하여 자신의 시스템 버스 신호와 비교한다. 이와 같은 신호 비교는 하드웨어적으로 수행되며 두 신호가 일치할 경우에는 클럭에 동기되어 비교동작을 계속 수행하다가 두 신호가 일치하지 않을 경우에는 제어부(234,244)에 불일치신호를 전달하여 장애발생을 통지한다.
디스크제어칩(235-1~235-n, 245-1~245-n)은 시스템버스(SYS BUS)신호를 하드 디스크 타입에서 요구되는 신호로 변환하고, 해당 하드 디스크를 제어한다. 본 발명의 실시예에서는 하드 디스크는 IDE버스 타입의 하드 디스크를 사용하므로 시스템버스 신호와 내부 IDE버스 신호를 중개한다. 그리고 디스크제어칩의 갯수는 사용하는 디스크 버스 신호 비교기의 수와 동일하다. 이 때, RAID칩을 사용할 경우에 하드디스크의 수는 RAID칩 개수의 정수 배이다.
디스크버스 신호 비교기(236-1~236-n, 246-1~246-n)는 리드 동작시에는 마스터나 체커, 모두 하드 디스크의 디스크버스(DBUS)와 내부 디스크버스(UBUS)를 연결하고, 라이트 동작시에는 체커측의 디스크버스 신호 비교기는 출력을 차단하고 마스터측의 디스크버스 신호 비교기만 하드 디스크측으로 연결한다. 그리고 마스터측의 디스크버스 신호 비교기는 디스크제어칩이 출력하는 내부 디스크버스(UBUS)상의 신호와 자신이 하드디스크로 출력하는 하드디스크상의 디스크버스(DBUS) 신호를 비교하여 일치 여부를 판별하고, 체커측의 디스크버스 신호 비교기는 디스크제어칩이 출력하는 내부 디스크버스(UBUS)상의 신호와 상대측이 제공하는 하드디스크상의 디스크버스(DBUS)신호를 비교하여 일치 여부를 판별한다. 비교결과 두 신호가 일치하면, 클럭에 따라 계속적으로 다음 신호를 비교하고, 일치하지 않으면 불일치신호로 장애발생을 제어부(234,244)에 통보한다.
제어부(234,244)는 마이콤(MCU) 등으로 구현되어 시스템버스 신호 비교기(233,243)나 디스크버스 신호 비교기(236-1~236-n, 246-1~246-n)로부터 불일치신호가 수신되면 후술하는 바와 같이 진단절차를 수행하여 장애에 따른 폴트 톨로런스 기능을 제공하며, 정상시에는 마스터 혹은 체커 모드로 동작하도록 디스크 제어기의 각 부를 제어한다.
도 3은 본 발명에 따른 디스크 저장 장치의 동작 상태도이다.
먼저, 본 발명에 따르면 디스크 저장 장치에서 장애(fault)는 '트랜지언트 폴트(transient fault)'와 '넌트랜지언트 폴트(non-transient fault)'로 구분된다. 트랜지언트 폴트(transient fault)는 시스템버스의 패리티 에러(PERR#, SERR#)등과 같이 일시적인 폴트로서 단순한 리트라이(retry)만으로 복구가 가능한 장애이다. 이와 같은 트랜지언트 폴트가 발생하면 캐쉬 데이터를 플러시(flush)한 후 리셋한다.
넌트랜지언트 폴트(non-transient fault)는 하드웨어적인 장애(예컨대, 메모리 데이터 손상, IDE버스 손상, 시스템버스 손상 등)에 의해 유발된 장애 등 트랜지언트 폴트를 제외한 모든 장애를 의미하고, 넌트랜지언트 폴트가 발생되면 에러발생 확률이 큰 유니트를 죽이고 에러발생 확률이 적은 유니트만 싱글로 동작한다. 이 때는 디스크 캐쉬를 플러시(flush)하지 않고, 리셋이 발생하지 않는다.
도 3을 참조하면, 본 발명에 따르면 S0 내지 S6까지 7가지 상태가 있고, 각각의 상태로의 천이는 다음과 같은 절차를 통해 이루어진다.
S0상태(Power On)는 파워 온 리셋 상태로서 전원을 온하거나 리셋에 의해 촉발된다. S0상태는 상대 유니트의 전원이 인가되어 있고 상대 유니트의 오퍼레이션 모드가 마스터이면 S0상태를 유지하고, 상대 유니트의 전원이 인가되어 있고 상대 유니트의 동작모드가 에러이면 S1상태(Dual Operation)로 천이한다.
S1상태(Dual Operation)는 듀얼 오퍼레이션 상태로서, 제1 디스크 제어기(230)와 제2 디스크 제어기(240)가 모두 정상으로 동작하는 상태이다. 이 때 두 유니트중 어느 하나는 마스터(master)로서 동작하고, 다른 하나는 체커(checker)로서 동작한다.
S2상태(transient fault)는 트랜지언트 폴트 상태로서, S1상태에서 트랜지언트 에러가 발생하여 천이된 상태이다. S2상태에서는 자기 진단(diagnosis) 절차를 수행한 후에 에러발생 확률이 적은 유니트에서는 캐쉬를 플러시(flush)하고 소프트웨어 리셋을 건다.
S3상태(non-transient fault)는 넌트랜지언트 폴트상태로서 S1(듀얼모드 오퍼레이션)상태에서 넌트랜지언트 폴트가 발생할 경우에 천이되는 상태이다. 넌트랜지언트 폴트가 발생하면 에러발생 확률이 큰 유니트는 킬(kill)되어 죽은 상태(killed:S5)가 되고, 에러발생 확률이 적은 유니트는 싱글 오퍼레이션 상태(S4)로 천이된다.
S4상태(Single Operation)는 싱글 오퍼레이션 상태로서 넌트랜지언트 폴트가 발생된 다른 유니트는 죽은 상태(killed: S5)이고 혼자서 동작하는 상태이다. 이 상태에서는 폴트 톨로런스 기능이 제공되지 않으므로 운영자를 불량이 발생한 유니트를 교체하든가 필요한 조치를 취해야 한다.
S5상태(Killed)는 유니트의 동작이 중지된 상태로서 유니트에 넌트랜지언트 폴트가 발생된 경우이다. 운영자가 로컬 리셋을 하거나 새로 유니트를 교체하여 삽입하면 자신은 S0상태(Power On)가 되고 S4상태의 상대방은 S6상태(Reintegration)가 된다.
S6상태(Reintegration)는 리인티그레이션 상태로서 디스크 캐쉬의 더티 데이터를 라이트 백(write back)시켜 플러시(flush) 동작을 처리하고, 플러시 동작이 완료되면 리셋에 의해 S0상태(Power On)로 천이된다.
도 4는 본 발명에 따라 마스터가 수행하는 절차를 도시한 순서도이고, 도 5는 본 발명에 따라 체커가 수행하는 절차를 도시한 순서도이다. 앞서 설명한 바와 같이 최초 전원이 온된 후 정상 동작시 두 유니트중 어느 하나는 마스터가 되고, 다른 하나는 체커가 된다(S1상태).
도 4를 참조하면, 마스터는 리드동작이나 라이트동작 모두에서 내부의 디스크버스(UBUS)와 하드디스크의 디스크버스(DBUS)를 연결하고, 디스크버스 신호 비교기(236-1~n,246-1~n)가 두 신호를 비교한다(401,402). 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 바교동작을 수행한다(403). 이와 아울러 마스터는 리드동작이나 라이트동작에 관계없이 시스템버스(SYS BUS)와 호스트컴퓨터(210)측을 연결하고, 상대 유니트로부터 수신된 시스템버스신호와 자신의 시스템버스신호를 비교한다(404,405). 비교결과 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 비교동작을 수행한다(406). 각 비교결과 두 신호가 일치하면 두 디스크 제어기가 모두 정상 동작하는 것으로 판단함과 아울러 동작상태를 계속 유지한다.
만일, 어느 한 신호라도 불일치하면 불일치인터럽트가 발생되어 자기 진단절차를 수행하고, 에러발생 확률을 산출한 후 상대방으로 전송한다(407~409). 이어 상대 유니트로부터 에러발생 확률이 수신되면 자신의 에러발생 확률과 비교하고, 발생된 폴트(fault)의 종류를 판별한다(410,411).
판별결과 트랜지언트 폴트(transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 낮거나 같을 경우에는 캐쉬 메모리의 더티 블럭을 하드디스크에 플러시하고, 시스템 리셋을 수행함과 동시에 상대 유니트에 리셋을 건다(412~414). 이어 리셋이 완료된 후에는 자신이 계속 마스터로서 동작을 유지한다(415).
판별결과 트랜지언트 폴트(transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 클 경우에는 신호를 대기하다가 상대 유니트로부터 리셋신호가 수신되면 시스템을 리셋한 후 마스터에서 체커로 동작모드를전환한다(416~420).
판별결과 넌트랜지언트 폴트(non-transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 낮거나 같을 경우에는 상대 유니트로 킬(kill)신호를 송신하여 상대 유니트를 죽은 상태(killed:S5)로 천이시키고, 자신은 싱글 오퍼레이션 모드(S4)로 동작한다(421~423).
판별결과 넌트랜지언트 폴트(non-transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 클 경우에는 신호를 대기하다가 상대 유니트로부터 킬(kill)신호가 수신되면 동작을 중지하고 죽은 상태(S5)로 천이한다(424~427).
도 5를 참조하면, 체커는 디스크 리드시와 라이트시를 구분하여 신호 연결을 달리한다. 즉, 동작 모드를 판별하여 라이트동작이면 내부의 디스크버스(UBUS)와 하드디스크의 디스크버스(DBUS)의 연결을 차단하고, 디스크버스 신호 비교기가 자신의 디스크버스(UBUS)신호와 상대 유니트의 디스크버스(DBUS) 신호를 비교한다. 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 비교동작을 수행한다(501~504). 이와 아울러 시스템버스(SYS BUS)와 호스트컴퓨터(210)측을 연결하여 호스트컴퓨터(210)로부터 전달되는 신호를 수신할 수 있게 하고, 상대 유니트로부터 수신된 시스템버스신호와 자신의 시스템버스신호를 비교한다(505,506). 비교결과 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 비교동작을 수행한다. 각 비교결과 두 신호가 모두 일치하면 두 제어기가 모두 정상 동작하는 것으로 판단함과 아울러 동작상태를 계속 유지한다.
한편, 동작 모드를 판별하여 리드(read)동작이면 내부의 디스크버스(UBUS)와 디스크의 디스크버스(DBUS)를 연결하고, 디스크버스 신호 비교기가 자신의 디스크버스(UBUS)신호와 하드디스크상의 디스크버스(DBUS) 신호를 비교한다(508~510). 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 비교동작을 수행한다. 이와 아울러 시스템버스(SYS BUS)와 호스트 컴퓨터(210)측의 연결을 절단하여 디스크로부터 호스트 컴퓨터로 전달되는 신호를 차단하고, 상대 유니트로부터 수신된 시스템버스신호와 자신의 시스템버스신호를 비교한다(511,512). 비교결과 두 신호가 일치하면 클럭에 따라 다음 신호에 대해서도 계속 비교동작을 수행한다. 각 비교결과 두 신호가 모두 일치하면 두 제어기가 모두 정상 동작하는 것으로 판단함과 아울러 동작상태를 계속 유지한다.
만일, 어느 한 신호라도 불일치하면 불일치인터럽트가 발생되어 자기 진단절차를 수행하고, 에러발생 확률을 산출한 후 상대 유니트로 전송한다(514~516). 이어 상대방으로부터 에러발생 확률이 수신되면 자신의 에러발생 확률과 비교하고, 발생된 폴트(fault)의 종류를 판별한다(517,518).
판별결과 트랜지언트 폴트(transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 낮거나 같을 경우에는 캐쉬 메모리의 더티 블럭을 하드디스크에 플러시하고, 시스템 리셋을 수행함과 동시에 상대 유니트에 리셋을 건다. 이어 리셋이 완료된 후에는 자신이 체커에서 마스터로 전환한다(519~522).
판별결과 트랜지언트 폴트(transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 클 경우에는 신호를 대기하다가 상대 유니트로부터리셋신호가 수신되면 시스템을 리셋한 후 체커 동작모드를 계속 유지한다(523~527).
판별결과 넌트랜지언트 폴트(non-transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 낮거나 같을 경우에는 상대 유니트로 킬(kill)신호를 송신하여 상대 유니트를 죽은 상태(killed:S5)로 천이시키고 자신은 싱글 오퍼레이션 모드(S4)로 동작한다(528~530).
판별결과 넌트랜지언트 폴트(non-transient fault)이고 자신의 에러발생 확률이 상대 유니트의 에러발생 확률보다 클 경우에는 신호를 대기하다가 상대 유니트로부터 킬(kill)신호가 수신되면 동작을 중지하고 죽은 상태(S5)로 천이한다(531~534).
이상에서 설명한 바와 같이, 본 발명에 따르면 대용량 디스크 저장장치를 구현함에 있어서 폴트 톨로런스 기능을 제공하여 디스크 제어기에 장애가 발생하더라도 신속하게 복구할 수 있고, 두 디스크 제어기 유니트의 동작을 하드웨어 레벨에서 비교하여 폴트를 감지하므로 폴트를 신속. 정확하게 검출할 수 있는 효과가 있다.

Claims (8)

  1. 호스트컴퓨터로부터 전달되는 데이터를 N개의 하드디스크를 분산하여 저장하고, N개의 하드디스크로부터 읽은 데이터를 상기 호스트컴퓨터로 전달하는 대용량 저장 시스템에 있어서,
    적어도 2개 이상의 디스크 제어기가 상기 호스트 컴퓨터와 상기 N개의 하드디스크를 중개하고,
    각 디스크 제어기는
    시스템버스와 연결되며 상기 호스트컴퓨터와 접속하기 위한 호스트 접속부;
    상기 시스템버스에 접속되어 상기 호스트컴퓨터와 상기 하드디스크 사이에서 캐쉬 기능을 수행하는 디스크 캐쉬;
    자신의 시스템버스신호와 다른 디스크 제어기의 시스템버스신호를 비교하여 불일치를 검출하면 불일치신호를 발생하는 시스템버스 신호 비교기;
    시스템버스 및 내부 디스크 버스와 연결되어 시스템신호와 디스크 버스 신호를 중개하며 N개의 디스크제어칩;
    상기 디스크제어칩과 연결된 내부 디스크 버스 신호를 상기 하드디스크와 연결되는 외부 디스크버스 신호와 비교하여 불일치를 검출하면 불일치신호를 발생하는 적어도 한개 이상 N개 이내의 디스크버스 신호 비교기; 및
    상기 시스템버스를 제공하고, 정상 동작중에 마스터나 체커로서 동작하도록 하며, 상기 불일치신호가 수신되면 소정 알고리즘에 따라 폴트 톨로런스 기능을 제공하는 제어수단을 포함하는 것을 특징으로 하는 대용량 디스크 저장장치.
  2. 제1항에 있어서, 상기 대용량 디스크 저장 장치는 상기 디스크 제어기를 상기 호스트컴퓨터와 결합하기 위한 결합기를 더 구비하는 것을 특징으로 하는 대용량 디스크 저장장치.
  3. 호스트컴퓨터와 N개의 하드디스크 사이에 적어도 2개 이상의 디스크 제어기 유니트가 존재하는 저장 시스템에서 폴트 톨로런스를 제공하는 방법에 있어서,
    전원이 온되거나 리셋이 되면 초기화를 수행하는 초기화 단계;
    상기 초기화 단계에서 초기화가 완료되면 하나의 디스크 제어기가 마스터로 동작하고 다른 하나는 체커로 동작하면서 각 유니트가 자신의 신호와 상대방의 신호를 비교하여 불일치를 감시하는 듀얼 동작 단계;
    상기 듀얼 동작 단계에서 트랜지언트 폴트가 발생되면, 각 유니트는 자기진단하여 에러확률을 계산하고 자신의 에러확률과 상대 유니트의 에러확률을 비교한 후 자신의 에러확률이 상대 유니트의 에러확률보다 낮으면 캐쉬 데이터를 플러시한 후 상기 듀얼 동작 단계로 가고, 자신의 에러확률이 상대 유니트의 에러확률보다 높으면 리셋신호를 수신하여 리셋 후 상기 듀얼 동작 단계로 가는 트랜지언트 폴트 처리 단계; 및
    상기 듀얼 동작 단계에서 넌트랜지언트 폴트가 발생되면, 각 유니트는 자기진단하여 에러확률을 계산하고 자신의 에러확률과 상대 유니트의 에러확률을 비교한 후 자신의 에러확률이 상대 유니트의 에러확률보다 낮으면 상대 유니트를 킬(kill)하고 싱글 동작하며 자신의 에러확률이 상대 유니트의 에러확률보다 높으면 킬(kill)신호를 수신하여 동작을 정지하는 넌트랜지언트 폴트 처리 단계를 구비하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
  4. 제3항에 있어서, 상기 듀얼 동작 단계는,
    각 유니트가 자신의 디스크 버스 신호와 상대 유니트의 디스크 버스 신호를 비교하여 일치 여부를 판별하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
  5. 제3항에 있어서, 상기 듀얼 동작 단계는,
    각 유니트가 자신의 시스템버스 신호와 상대 유니트의 시스템버스 신호를 비교하여 일치 여부를 판별하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
  6. 제3항에 있어서, 상기 폴트 톨로런스 방법은,
    넌트랜지언트 폴트 처리단계에서 킬(killed)된 유니트를 리셋하거나 교체 삽입하면 싱글 동작중이던 유니트가 디스크 캐쉬의 데이터를 플러시한 후 상대 유니트와 자신을 리셋하여 초기화 후 다시 듀얼 동작 상태로 진행하는 단계를 더 구비하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
  7. 제6항에 있어서, 상기 초기화 중에 에러가 검출되면 해당 유니트를 킬(kill)한 후 다시 싱글 동작 단계를 수행하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
  8. 제3항에 있어서, 상기 트랜지언트 폴트 처리단계는
    상기 트랜지언트 폴트를 카운트하여 소정 시간안에 소정 기준치 이상 발생하면 해당 유니트를 킬(kill)한 후 싱글 동작을 수행하는 것을 특징으로 하는 대용량 저장장치의 폴트 톨로런스 제공방법.
KR1020000066822A 2000-11-10 2000-11-10 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법 KR100363221B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000066822A KR100363221B1 (ko) 2000-11-10 2000-11-10 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000066822A KR100363221B1 (ko) 2000-11-10 2000-11-10 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법

Publications (2)

Publication Number Publication Date
KR20020036576A KR20020036576A (ko) 2002-05-16
KR100363221B1 true KR100363221B1 (ko) 2002-12-05

Family

ID=19698381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000066822A KR100363221B1 (ko) 2000-11-10 2000-11-10 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법

Country Status (1)

Country Link
KR (1) KR100363221B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890702122A (ko) * 1987-06-02 1989-12-22 스토리지 컴퓨터 고장 내성 및 오류 정정 기억 장치 시스템
KR19980022356A (ko) * 1996-09-21 1998-07-06 김광호 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
KR19980073938A (ko) * 1997-03-20 1998-11-05 윤종용 디스크 공유를 통한 두 시스템간 고장허용 장치 및 방법
JP2000207136A (ja) * 1998-12-31 2000-07-28 Lsi Logic Corp 複数ドライブ故障トレラントraidアルゴリズム
JP2000298594A (ja) * 1999-04-13 2000-10-24 Nec Corp フォールトトレラント制御方法および冗長コンピュータシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890702122A (ko) * 1987-06-02 1989-12-22 스토리지 컴퓨터 고장 내성 및 오류 정정 기억 장치 시스템
KR19980022356A (ko) * 1996-09-21 1998-07-06 김광호 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
KR19980073938A (ko) * 1997-03-20 1998-11-05 윤종용 디스크 공유를 통한 두 시스템간 고장허용 장치 및 방법
JP2000207136A (ja) * 1998-12-31 2000-07-28 Lsi Logic Corp 複数ドライブ故障トレラントraidアルゴリズム
JP2000298594A (ja) * 1999-04-13 2000-10-24 Nec Corp フォールトトレラント制御方法および冗長コンピュータシステム

Also Published As

Publication number Publication date
KR20020036576A (ko) 2002-05-16

Similar Documents

Publication Publication Date Title
JP5127491B2 (ja) ストレージサブシステム及びこれの制御方法
EP1019823B1 (en) Redundant controller diagnosis using a private lun
US8020035B2 (en) Expander circuit for a solid state persistent storage device that provides a plurality of interfaces to corresponding storage controllers
JP3226370B2 (ja) 高可用度ディスク配列に関する改善
US5274645A (en) Disk array system
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US6934904B2 (en) Data integrity error handling in a redundant storage array
US6330687B1 (en) System and method to maintain performance among N single raid systems during non-fault conditions while sharing multiple storage devices during conditions of a faulty host computer or faulty storage array controller
US7185222B2 (en) Apparatus, system, and method for maintaining data in a storage array
US7594134B1 (en) Dual access pathways to serially-connected mass data storage units
JPH03184130A (ja) ソフトウェアの誤り処理方法
US6983396B2 (en) Apparatus for reducing the overhead of cache coherency processing on each primary controller and increasing the overall throughput of the system
JPH0234055B2 (ko)
GB2375633A (en) Redundant controller data storage system having hot insertion system and method
JPH0683717A (ja) 大型耐故障不揮発性複数ポート・メモリー
US7076686B2 (en) Hot swapping memory method and system
US8381027B1 (en) Determining alternate paths in faulted systems
JP3748117B2 (ja) 鏡像化メモリ用エラー検出システム
US7529776B2 (en) Multiple copy track stage recovery in a data storage system
KR100363221B1 (ko) 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법
KR19990051729A (ko) 이중 어레이 제어기를 갖는 래이드 시스템의 구조
JPH11134210A (ja) システムの冗長化方法
CN113868000B (zh) 一种链路故障修复方法、系统及相关组件

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee