KR100308149B1 - 디스크어레이제어장치및제어방법 - Google Patents

디스크어레이제어장치및제어방법 Download PDF

Info

Publication number
KR100308149B1
KR100308149B1 KR1019980062856A KR19980062856A KR100308149B1 KR 100308149 B1 KR100308149 B1 KR 100308149B1 KR 1019980062856 A KR1019980062856 A KR 1019980062856A KR 19980062856 A KR19980062856 A KR 19980062856A KR 100308149 B1 KR100308149 B1 KR 100308149B1
Authority
KR
South Korea
Prior art keywords
scsi
memory
bus
data
rdcc
Prior art date
Application number
KR1019980062856A
Other languages
English (en)
Other versions
KR20000046179A (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 KR1019980062856A priority Critical patent/KR100308149B1/ko
Publication of KR20000046179A publication Critical patent/KR20000046179A/ko
Application granted granted Critical
Publication of KR100308149B1 publication Critical patent/KR100308149B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

디스크 어레이 제어 장치 및 제어 방법에 관한 것으로 특히, 레벨 1인 미러링(Mirroring) 방식의 디스크 어레이 방식과 스카시-투-스카시(SCSI-TO-SCSI)방식을 채택하여 신뢰도를 향상시키기에 적당한 디스크 어레이 제어 장치 및 제어 방법에 관한 것이다. 이와 같은 디스크 어레이 장치는 레이드 디스크 제어 회로(RDCC)보드의 메인 메모리인 제 1 메모리와, 상기 RDCC 보드를 제어하는 중앙처리장치(CPU)의 프로그램을 내장하고 있는 제 2, 제 3 메모리와, 상기 RDCC 보드와 연결되는 스카시(SCSI) 프로토콜을 처리하는 복수개의 스카시 제어부와, 상기 RDCC 보드의 상기 중앙처리장치(CPU)로 버스의 점유권을 요청하는 랜 제어부와, 상기 제 1, 제 2, 제 3 메모리 및 상기 스카시 제어부를 억세스하는 제 1 버스와, 상기 랜 제어부를 억세스하는 제 2 버스와, 상기 제 1, 제 2 버스의 분리를 위한 버스 분리버퍼로 구성된다.

Description

디스크 어레이 제어 장치 및 제어 방법{Disk array controll device and control method}
본 발명응 디스크 어레이 제어 장치 및 제어 방법에 관한 것으로 특히, 레벨1(Level 1)인 미러링(Mirroring) 방식의 디스크 어레이(Disk array) 방식과 스카시-투-스카시(SCSI(Small Computer System Interface)-TO-SCSI)방식을 채택하여 신뢰도를 향상시키기에 적당한 디스크 어레이 제어 장치 및 제어 방법에 관한 것이다.
이하, 첨부된 도면을 참조하여 종래 디스크 어레이 장치를 설명하기로 한다.
도 1은 종래 디스크 어레이 장치의 블록 구성도이고, 도 2는 종래 디스크 어레이 제어 장치의 DAC 블록 구성도다.
종래 디스크 어레이 장치 및 디스크 어레이 장치의 DAC는 도 1 및 도 2에 나타낸 바와 같은데 마이렉스(Mylex)에서 생산되는 RDC(DAC960SX(도 2의 20)의 중요 구성 요소를 나타낸 것으로 우선 DAC960SX(20)와의 1차적인 사용자 인터페이스(User Interface)는 프로그램 가능 논리부(17)를 통한 프론트 패널 키 패드(Front panel Keypad)에 의한 것이며 2차적인 사용자 인터페이스는 RS-232 직렬 통신 포트(serial communication port)에 의한 것이다.
그리고, COD(Configuration on Disk)는 DAC960SX(20)가 하드디스크(도시하지 않음)의 변환시 그 변동상황을 인식 할 수 있도록 하여 주며, 자동적으로 재 구조화 할 수 있도록 하여 준다.
ASIC(주문형 반도체)(3)는 인터리브드 디램(Interleaved DRAM)인 메인 메모리(main memory(4)를 통제하기 위해 디자인 된 장치이고, 메인 메모리(4)는 256MB(Byte)의 쌓인 512MB의 모듈화 된 어드레스(Adress)를 지원한다.
메인 메모리 버스 인터페이스(Memory Bus Interface)(5)는 로컬 버스(local bus)(로컬 인터페이스)와 메인 메모리(4)(DRAM SIMM module)간의 데이터 버스 버퍼(data bus buffer)를 제공하고, 메인 메모리(4)에 대한 패리티 생성(parity generation), 패리티 체킹(parity checking), 패리티 에러 인터럽트 로직(parity error interrupt logic)을 제공한다.
그리고, BBU 회로(6)는 전력(power)과 주어진 메인 메모리(4)구조에 대한 적당한 리프레쉬 시그널링(refresh signaling)을 유지시킨다.
Flash EPROM(13)은 DAC960SX(20)의 CPU(15)에 의해 수행되어 지는 프로그램이 포함되어져 있으며, 또한, 파워 오프(power off)시의 정보가 포함되어 지며 하드웨어 적인 칩의 교환 없이 업그레이드가 가능하도록 한다.
그리고, NVRAM(16)은 현재의 콘트롤러(controller)의 구조와 거기에 부착된 디스크 드라이브(도시하지 않음)의 데이터가 저장되어 있어서, 디스크 드라이브의 구조가 변화되어질 때(디스크 fail등으로) 그 기록을 유지시킨다.
SIOP(SCSI I/O Processor)(8)는 호스트 채널(Host Channel) 1개의 디스크 채널(Disk Channel) 2개로 구성되어 있으며, DMA 코어(core)와 스카시 코어(SCSI core)등으로 구성되어 스카시(SCSI) 프로토콜 등 여러 가지 일을 처리한다.
로컬 버스(Local Bus)(9)는 모든 데이터(All data)와 CPU(11) 트래픽(Traffic)이 공유한다.
그리고, DAC960SX(20)는 128MB의 모듈화 된 디램 캐쉬(DRAM Cache)로 구성되어져 있으며, 최소로는 8MB의 DRAM이 요구되어 진다.
CPU(15)와 캐쉬 메모리 디램(cache memory DRAM)사이의 fast 32bit 인터페이스는 이산적인 프로그램회 된 로직(logic)으로 구현 된 MCU(Memory Control Unit)에 의하여 제공된다.
메모리 통제와 어드레싱 기능에 부가적으로 MCU는 디바이스를 맵핑하고, NVRAM(16)과 Flash EEPROM)(13)을 위한 디코딩을 수행한다.
그리고, 듀얼 URAT(UAL)(11)는 일반적인 목적의 입출력에 부가적으로 두 개의 UART를 포함한다.
제 1 직결 통신 포트는 CTS, RTS, DSR, DTR, DCD를 포함하는 모뎀 제어 신호(Modem control signal)로 구성되고, 제 2 직렬 통신 포트는 Tx, Rx만을 지원한다.
DAC960SX(20)는 콘트롤러(controller)가 호스트 시스템과 각 구동부간(25)의 데이터를 읽고 쓰는 등의 통신을 수행하기 위하여 각 채널마다 심비오스(Symbios) Logic 53C770 SCSI I/O processor chip을 사용한다.
DAC960SX(20)에 의해 통제되는 각 SCSI 채널(24)에는 최고 6개까지의 디스크 드라이브(제 1 내지 제 6 하드 디스크 구동부)(25))를 연결 할 수 있다.
그리고, Fast Wide SCSI-3(Ultra-SCSI)을 지원한다.
출력 포트(3)는 8bit 제어 보드(controller board)에 있어서 하드웨어(H/W)에 사용되어지는 Write-only control bit를 제공한다.
마지막으로 DAC960SX(20)의 CPU(15)는 33MHZ로 동작하고, 1KB의 데이터 캐쉬(Data Cache)와 4KB의 인스트럭션 캐쉬(Instruction Cache)를 가지고 있는 32bit Intel I960 RISC Microprocessor이며, 이 CPU는 스카시 버스(SCSI bus) 전송, 레이드 처리(RAID processing), 구성(configuration), 데이터 스트리핑(data striping), 에러 복구(eror recovery), 재구동(drive rebuild) 등을 포함한 모든 기능을 통제한다.
이와 같은 종래 디스크 어레이 제어 장치의 동작을 설명하기로 한다.
DAC960SX(20)는 상용의 일반 하드디스크 여러개를 하나의 고용량의 하드디스크로 인식하며, 이중 구조를 기본으로 하는 구성부분에 이상이 발생하더라도 On-Line상에서 시스템 정지 없이 복구가 가능한 무정지 대용량의 저장 장치이다.
DAC960SX(20)는 시스템 가동 중 하드디스크 장애시에도 시스템 정지 없이 새하드디스크로 교체하면(HOT Swap) 원래의 데이터를 자동 복구(데이터 손실 제거)할 수 있으며, 여러 개의 하드디스크를 하나의 커다란 가상 디스크로 구성하므로 해서 대용량의 저장 장치를 구축 할 수 있으며, 또 다수의 하드디스크에 데이터를 분할 하여 병렬 전송함으로써 전송 속도가 향상되었고, 듀얼 호스트(Dual Host) 접속 기능을 이용한 호스트의 폴트 허용(Fault Tolerant)으로 무정지 망 서비스(Network Serivce)를 구현할 수 있다.
DAC960SX(20)에서 구현되는 레이드 레벨(RAID Level)은 데이터 레코딩(DataReocrding)방식에 따라 구분되며, 제각기 독자성을 유지하므로 높은 레벨(Level)이 낮은 레벨(Level)의 기능을 포함하지 않는다
레이드 레벨은 각각의 어플리케이션(Application)에 최적인 레이드 레벨을 선정하여 사용하는 것이 바람직하며, 단일 레이드에도 여러 FP이트 레벨을 복합적으로 구성할 수 있다.
이를 구체적인 예를 들어 설명하면 레벨 0(Leve 0)은 데이터 스트리핑(Data Striping)이라 하며, 데이터를 패리티(Parity)없이 구성 하드디스크에 분산, 기록하고, 데이터의 복구 기능이 없으며, 입출력이 집중적으로 사용되는 어플리케이션에 적합하다.
레벨 1(Level 1)은 디스크 미러링(Di나 Mirroring)이라 하며 두 개의 하드디스크에 데이터를 동일하게 기록하고, 데이터의 복구 능력이 탁월하다.
레벨 3(Level 3)은 데이터 스트리핑 위드 전용(Data Striping with a Dedicated)이며, 데이터를 비트(bit)단위로 분할 기록하고, 패리티 디스크(Parity Disk)에는 패리티만 기록한다.
레벨 5(Level 5)는 데이터 스트리핑 위드 분산 패리티 데이터(Data Striping with a Distributed Parity Data)이라 하며, 패리티 디스크(Parity Disk)의 지정없이 데이터와 패리티를 분산 기록한다.
레벨 0+1(Level 0+1)은 스트리핑 & 미러링(Striping & Mirroring)이고, 레벨 7(Level 7)은 JBOD(Just Bunch of Disks)이다.
DAC960SX(20)의 장점은 데이터의 안정성(Mirroring/Parity, Online DataRebuild), 무정지성(Hot-Swap), 뛰어난 I/O(전용 Processor, Cache), 풍부한 확장성(Disk의 증설로 차후 손쉽게 용량 확장 가능), 완벽한 호환성(SCSI-to-SCSI Connection), 효율적인 운영성(Dual Host, 다수의 대용량 LUN)등을 들 수 있으며, 실제 시스템의 적용 차원에서 스카시 버스(SCSI BUS) 정합부인 DAC960SX(20)는 VIPS-HD의 가입자 서비스를 위한 음성, FAX 데이터, 사서함 정보, 시스템 프로그램등을 저장하는 축적 장치(하드디스크, 카트리지 드라이브 등)을 억세스하는데 있어서 SCSI(Small Computer System Interface) 방식을 사용하고 있다.
이 방식은 대량의 저장 능력을 가지며 고속 처리를 가능케 하는 정합으로 하나의 호스트에 최대 7 개의 타겟(축적 장치)을 정합 시킬 수 있으며 각 타겟은 고유한 ID(Identity) 번호를 가진다.
마스터 위치의 마스터 MPU(21)는 SCSI ID가 7이고, 슬레이브 위치의 슬레이브 MPU(22)는 SCSI ID 6을 가진다.
SCSI 정합 방식에는 비동기/동기(Asynchronous/Synchronous), 내로우/와이드, 패스트(Narrow/Wide, Fast)등이 있다.
DAC960SX(20)의 이중화는 마스터 MPU(21)가 DAC960SX(20)에게 SCSI 명령을 내리면 미리 세팅된 DAC960SX(20)의 RAID 레벨(레벨 1∼7)에 따라 DAC960SX(20)가 하드디스크(25) 이중화를 수행하는 것이다.
DAC960SX(20)의 이중화에는 여러 가지 방식이 있는 데 흔히 사용되는 것은 도 3에 나타낸 바와 같은 1개의 패리티 정보를 가진 하드디스크를 두는 디스크 스트리핑(DISK Striping) 방식과, 4에 나타낸 바와 같은 완전 이중화된 디스크 미러링(DISK Mirroring) 방식 등이 있다.
디스크 스트리핑은 SCSI-2 규격의 "DISCONNECT" 기능을 최대한 발휘 할 수 있으므로 속도가 빠른 장점이 있고, 디스크 미러링은 속도 면에서는 디시크 스트리핑 보다는 느리지만 하드디스크의 고 신뢰성을 보장하는 장점이 있다.
이와 같은 종래 디스크 어레이 제어 장치 및 제어 방법에 있어서는 다음과 같은 문제점이 있었다.
첫째, 스카시 디바이스 구동부(SCSI Device_Driver)에 있어서 스크립트(SCRIPT) 수행 후 인터럽트 서비스 루팅(Interrupt Service Routine) 처리 시 SIP와 DIP가 동시에 발생했을 경우에 대한 처리가 모호하였다.
둘째, 에러 코드(Error Code) = 71FE(Check Condition)의 재고에 대한 문제가 있었다.
셋째, 인터럽트 자체가 발생하지 않는 경우가 있었다. 즉, 호스트와 타겟의 스카시 접속은 이루어 졌으나 RDC와 하드디스크 구동부(HDD)간의 장애로 버스가 홀딩(Holding)되었을 때 무한히 인터럽트를 기다리는 경우, 마스트 MPU와 RDC가 중재(Arbitration), 선택 위드 어텐션(Selection With Attention), 메시지 아웃 페이즈(Message Out Phase) 과정을 정상적으로 끝내고, 데이터 인/아웃(Data In/Out) 페이즈에서 하드디스크 구동부의 장애로 버스가 홀딩되는 문제가 발생하였다.
넷째, 인터럽트가 발생했음에도 ISTAT에 SIP나 DIP중 어느 것도 설정(SET)되어 있지 않아 인터럽트 자체를 잃어버리는 문제점이 발생하기도 한다.
본 발명의 목적은 이상에서 언급한 종래 기술의 문제점을 감안하여 안출한 것으로서, 디스크 어레이 방식으로 레벨 1인 미러링 방식을 채택하고, 어레이 관리 방식으로는 스카시-투-스카시 방식을 채택하여 디스크의 신뢰도를 향상시킨 디스크 어레이 제어 장치 및 제어 방법을 제공하기 위한 것이다
이상과 같은 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 레이드 디스크 제어 회로(RDCC) 보드의 메인 메모리인 제 1 메모리와, 상기 RDCC 보드를 제어하는 중앙처리장치(CPU)의 프로그램을 내장하고 있는 제 2, 제 3 메모리와, 상기 RDCC 보드와 연결되는 스카시(SCSI) 프로토콜을 처리하는 복수개의 스카시 제어부와, 상기 RDCC 보드의 상기 중앙처리장치(CPU)로 버스의 점유권을 요청하는 랜 제어부와, 상기 제 1, 제 2, 제 3 메모리 및 상기 스카시 제어부를 억세스하는 제 1 버스와, 상기 랜 제어부를 억세스하는 제 2 버스와, 상기 제 1, 제 2 버스의 분리를 위한 버스 분리 버퍼로 구성된다.
이상과 같은 다른 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 사용자 어플리케이션이 호스트 구동 시스템(O/S)에 스카시 디바이스에 있는 데이터 접속을 요청하는 단계, 호스트 메모리에 상기 호스트 구동 시스템의 입출력을 요청하는 단계, 스카시 구동부의 구동 시스템 인터페이스로 상기 호스트 메모리가 입출력을 요청하는 단계, 상기 입출력 요청에 따라 호스트 메모리에 데이터 스트럭쳐를 생성하는 단계, 상기 데이터 스트럭쳐가 생성되면 상기 호스트 메모리의 커맨드 블록에 저장하는 단계, 상기 커맨드 블록을 상기 스카시 구동부로 전송하는 단계, 상기 커맨드 블록을 이용하여 스카시 제어부로 상기 스카시 디바이스의 어드레스를로드하는 단계, 상기 스카시 제어부가 상기 스카시 디바이스 어드레스를 이용하여 상기 스카시 디바이스를 구동시키는 구동부에 접속하는 단계를 포함하여 이루어진다.
이상과 같은 본 발명에 따르면, 디스크 어레이의 신뢰성을 향상시킬 수 있다.
도 1은 종래 디스크 어레이 제어 장치의 블록 구성도
도 2는 종래 디스크 어레이 제어 장치의 DAC 블록 구성도
도 3은 종래 일 실시예에 따른 DAC의 디스크 스트리핑을 나타낸 도면
도 4는 종래 다른 실시예에 따른 DAC의 완전 이중화된 디스크 미러링을 나타낸 도면
도 5는 본 발명 디스크 어레이 장치의 블록 구성도
도 6은 본 발명 스카시 입출력 오퍼레이션을 나타낸 도면
도 7은 본 발명 디스크 어레이 장치의 구동을 나타낸 도면
도면의 주요 부분에 대한 부호의 설명
30 : CPU 31 : 제 1 메모리
32 : 제 2 메모리 33 : 제 3 메모리
34 : 제 4 메모리 35 : 제 5 메모리
36 : 스카시 제어부 37 : LAN 제어부
38 : 직렬 포트 39 : 공통 메모리
40 : 제 1 버스 41 : 제 2 버스
42 : 버스 분리 버퍼
이하 본 발명의 바람직한 일 실시 예에 다른 구성 및 작용을 첨부된 도면을 참조하여 설명한다.
도 5는 본 발명 디스크 어레이 장치의 블록 구성도이다.
본 발명 디스크 어레이 장치의 블록 구성도는 RDCC(Raid Disk Controller Circuit) 보드를 나타낸 것으로 RDCC 보드의 메인 메모리인 제 1 메모리(31)와, CPU(30)의 프로그램을 내장하고 있는 제 2, 제 3 메모리(32)(33)DHK, 디스크 드라이버(도시하지 않음)의 데이터가 저장되어 있어 디스크 드라이버의 구조가 바뀔 때마다 그 내용을 기억하는 제 4 메모리(34)와, 직렬포트(38)를 통해 P1과 P2간의 데이터를 저장하는 제 5 메모리와, 직접 메모리 억세스(Direct Memory Access : DMA)코어(core)와 스카시 코어 등으로 구성되어 스카시(SCSI) 프로토콜의 여러 가지 처리를 하는 제 1 내지 제 3 스카시(SCSI) 제어부(36a),(36b)(36c)와, 공통 메모리(39), 상기 제 1, 제 2, 제 3 메모리(31)(32)(33) 및 스카시 제어부(36)를 억세스하는 제 1 버스(40)와, LAN 제어부(37)와 공통 메모리(39)를 억세스하기 위한 제 2 버스(41)와, 상기 제 1, 제 2 버스(40)(41)의 분리를 위한 버스 분리버퍼(42)로 구성된다.
이때, 상기 제 1 메모리(31)는 디램(DRAM)으로 구성되고, 제 2 메모리(32)는 이피롬(EPROM)으로 구성되며, 제 3 메모리(33)는 플래쉬(FLASH) 메모리로 구성되고, 제 4 메모리(34)는 불휘발성 램(Nonvolatile SRAM : NVRAM)으로 구성된다.
그리고, 제 5 메모리(35)는 듀얼 포트 메모리이며, 공통 메모리(39)는 에스램(SRAM)으로 구성된다.
또한, 상기 직렬 포트(38)는 RS232C Serial Port이다.
이때, 상기 RDCC 보드는 EPLD(Ehnaced 프로그램 가능 논리부) CHIP이 추가되며, 이 EPLD CHIP은 CPU(30)와 각 칩 상의 신호선을 통제하는 역할을 하며, CPU(30)가 다른 CPU(도시하지 않음)와 다른 Dynamic Bus Sizing을 지원하기 위해 데이터 먹스/디먹스(Data Mux/Demux) 기능을 수행한다.
이와 같은 본 발명 디스크 어레이 장치에서, 장기 제 1 메모리(31)는 CPU(30)의 일련의 명령을 수행할 수 있는 작업 메모리(working memory)이고, 제 2 메모리(32)는 부팅 롬(booting ROM)으로써 보드에 전원이 들어오면, CPU(30)는 부팅 롬인 제 2 메모리(32)를 억세스하여 부팅 코드를 제 3 메모리(33)에 복사를 한 후 외부로부터 명령을 받을 수 있는 단계에 이르게 된다. 그리고, 불휘발성 램인 제 4 메모리(34)는 매체 접근 제어(Media Access Control) 어드레스나 실시간(real time)을 항상 저장하고 있는 전원을 없애도 지워지면 안되는 데이터를 저장하고 있다.
여기서 제 1, 제 2 버스(40,41)를 분리하는 버스 분리 버퍼(42)는 팬아웃(Fan out) 문제를 해결하기 위한 것이며, 이후 제 1, 제 2 버스(40,41)를 점유하여 동작할 수 있는 제 2 및 제 3 스카시 제어부(36b,36c)와 랜 제어부(37)의 버스 점유는 제 1 스카시 제어부(36a)가 CPU(30)를 통해 결정하게 된다.
이후의 동작은 제 2, 제 3 스카시 제어부(36b,36c)가 도 6에 나타낸 바와 같은 하드디스크드라이버로 구성되는 스카시(54)를 억세스 하는 경우에 버스를 점유하여 제 1 메모리(31)를 사용하여 자신의 동작을 처리하고, 랜 제어부(37) 역시 프레임이 랜망을 통해서 들어올 경우 CPU(30)로 버스 점유를 요구한 후 CPU(30)로부터 버스 점유에 대한 응답이 오면 동작하게 된다.
따라서 디스크 어레이 방식으로 레벨 1인 미러링 방식을 채택하고, 어레이 관리 방식으로 스카시-투-스카시 방식을 채택한 경우에 있어서, 제 2, 제 3 스카시 제어부(36b,36c)가 중 하나에 페일(fail)이 발생하는 경우에도 스카시 하드 디스크 드라이버를 다른 하나의 스카시 제어부가 억세스 할 수 있으므로 디스크의 신뢰도를 향상시킬 수 있다.
도 6은 본 발명 스카시 입출력 동작을 나타낸 도면이다.
이와 같은 스카시 입출력 동작에서 스카시 제어부(53)는 도 5에 나타낸 제2, 제 3 스카시 제어부(36b,36b)중 하나를 나타낸 것이다. 그리고 뒤에서 설명할 호스트 O/S(51), 스카시 구동부(52)는 도 5D 나타낸 CPU(30)의 동작을 편의상 구분한 것으로 도 5에 나타낸 버스(40)의 구성은 생략하였다.
본 발명 스카시 제어부(53)의 입출력 동작은 우선, 사용자 어플리케이션(User Application)(50)이 스카시 디바이스(SCSI Device)(HDD)(54)에있는 데이터에 접속하기 위하여 호스트 O/S(Host O/S(Operating/System))(51)에게 요청한다.
그와 같은 요청(Request)은 스카시 구동부(SCSI device driver)(52)의 O/S 인터페이스(52a)로 보내지며, O/S 인터페이스(52a)는 하드웨어 인터페이스(52b)를 위해 인터럽트(Interrupt), 스케줄(Schedule) 및 포맷(Format)을 한다.
O/S 인터페이스(52a)는 I/O Request(61)를 받았을 때, Host Memory(60)에 데이터 스트럭쳐(Data Structure)를 만드는데, 이 데이터 스트럭쳐는 실행시킬 하드웨어 레이어(layer)로 보내어 지고, I/O가 완성되어 질 때까지 기다린다.
O/S 인터페이스(52a)는 스트럭쳐 완료 상태(Completion Status)를 읽은 후, 스케줄러 인포메이션을 업데이트하기 위해 이 데이터 스트럭쳐를 사용하게 된다.
이때 적당한 정보는 하드웨어 인터페이스(52b)로 보내 질 커맨드 블록(COMMAND BLOCK)(62)에 넣어지고, 하드웨어 인터페이스(52b)는 메모리(60)에서 데이터를 위치시킬 곳과 실행시킬 스크립트 루틴(SCRIPTS Routine)을 결정하기 위해 커맨드 블록(62)에 있는 정보를 사용하며, 스크립트 프로그램이 입출력을 실행하기 위해 필요하지, 커맨드와 데이터 버퍼(63)를 위한 데이터 영역을 설정하기 위해 필요한지를 결정한다.
그리고 나서 하드웨어 인터페이스(52b)는 스크립트 스타팅 어드레스를 SCSI제어부(53)의 DSP저장부(53a)로 로드한다.
SCSI 제어부(53)는 특정 SCSI 디바이스 ID를 가진 스카시 디바이스(SCSI HDD)(54)에 접속하기 위해 서브 루틴을 수행하며, 하드웨어 인터페이스(52b)는 스케줄러 인포메이션을 업데이트할 O/S 인터페이스(52a)에 알린다.
이와 같은 도 6에서의 스카시 디바이스(54)들은 도 5에 나타낸 제 2, 제 3스카시 제어부(36b,36c)가 음성 등의 정보를 저장하는 디바이스로 스카시 하드 디시크 드라이버(HDD)라고도 한다.
이때, 제 3 스카시 제어부(36c)는 제 2 스카시 제어부(36b)가 저장하는 스카시 디바이스(HDD)(54)의 내용이 디바이스 파손과 같은 문제 발생시를 대비한 백업(back up) 용도의 스카시 디바이스(54)를 제어하는데 사용된다.
도 7은 본 발명 스카시 어레이 장치의 구동을 나타낸 도면이다.
스카시 구동부(SCSI DEVICE DRIVER)(52)는 도 7에 나타낸 바와 같이, 어플리케이션 입출력 요청이 호스트 O/S(HOST O/S)에 입력되면 기능 코드(Function Code), DCB 포인터(pointer), 파라미터 리스트(Parameter List)가 제공되며, MKCMD(Make Command)는 스카시 커맨드 블록을 구축하는 부분이다.
스카시 커맨드 블록은 모두 디바이스 타입을 나타내는 코드와 커맨드 카운트(Command Count), 데이터 카운터(Data count) 등으로 구성된다.
또한, SCSI ISR(Interrupt Service Routine)에서 SC_pend(wait interrupt)되어 진 후 스카시 제어부(53)의 DSP 저장부(53a)의 리드(ISTAT Reg READ)가 이루어지는데 이는 DSP 저장부(53a)의 DIP가 SET되었는지, SIP가 SET되어 있는지를 분석하여 각각에 맞는 Status Return(대기 상태) 되어지며 DIP 또는 SIP가 아닌 경우에는 중단(Abort)시킨다. 이때, 상기 디에스피 저장부의 DIP SET과, SIP SET이 동시에 발생할 경우에는 우선적으로 상기 DIP SET을 먼저 처리하고, 이어서 상기 SIPSET을 처리하도록 한다.
SC_pend 되어 진 후 ISR Routine이 SC_post되어 지면, 스테이터스를 분석하여 정상 종료인지 상태 체크(Check Condition)인지를 분석하고, 맞으면 해당 스테이터스를 Return 하고 틀리면 한번 더 Phase Mismatch 인지를 물어서 Phase Mismatch이면 남겨진 바이트 수를 계산하고, 남겨진 바이트 수에 따라 포인터와 카운터를 업데이트 한다.
그리고 나서 데이터 버퍼에서 데이터 어드레스와 남겨진 바이트 수를 패치(Patch)하고 직접 메모리 억세스(DMA)와 SCSI FIFO를 클리어 한다.
이때, Phase Mismatch가 아닌 경우는 중단(Abort) 시킨다.
이상의 설명에서와 같은 본 발명은 다음과 같은 효과가 있다.
첫째, 스카시 구동부(SCSI Device_Driver)에 있어서 스크립트(SCRIPT) 수해후 ISR(Interrupt Service Rountine) 처리 시 SIP와 DIP가 동시에 발생했을 경우에 대한 문제가 발생하였을 경우 DIP를 먼저 처리하도록 하고, 그 다음 SIP를 처리하도록 함으로써 처리의 모호성을 없어졌다.
즉, 스크립트 시작 후 SC_pend 되어진 후 항상 ISTAT Reg에 DIP가 SET 되어 졌는지를 묻고, ISAT Reg에 SIP가 SET 되어졌는지를 묻고 그 각각을 처리함으로써 순서의 모호성을 해결하였다.
둘째, Error Code = 71FE(Check Condition)의 재고에 대한 문제 즉, 스카시 구동부의 스카시 장애에 대한 Retry 과정은 모든 에러 코드에 대하여 SCSI 버스를Reset 해도 SCSI 버스가 재접속 되지 않는 상태 체크(Check Condition)는 예외적으로 처리해야 하는데 그 해결 방안으로 RDCC는 상태 체크를 발생시켜 에러로 리턴되는 경우 디바이스 드라이버에 리퀘스트 센스를 수행시켜 센스 키가 포함된 어레로 리턴 하게끔 하였다.
셋째, 인터럽트가 발생했는데 ISAT에 SIP나 DIP중 어느 것도 SET되어 있지 않은 경우는 중단 비트를 SET함으로서 인터럽트를 잃어버리는 문제를 해결하였다.

Claims (6)

  1. 레이드 디스크 제어 회로(RDCC) 보드의 메인 메모리인 제 1 메모리와;
    상기 RDCC 보드를 제어하는 중앙처리장치(CPU)의 프로그램을 내장하고 있는 제 2, 제 3 메모리와;
    상기 RDCC 보드외 연결되는 스카시(SCSI) 프로토콜을 처리하는 복수개의 스카시 제어부와;
    상기 RDCC 보드의 상기 중앙처리장치(CPU)로 버스의 점유권을 요청하는 랜 제어부와;
    상기 제 1, 제 2, 제 3 메모리 및 상기 스카시 제어부를 억세스하는 제 1 버스와;
    상기 랜 제어부를 억세스하는 제 2 버스와,
    상기 제 1, 제 2 버스의 분리를 위한 버스 분리 버퍼로 구성된 것을 특징으로 하는 디스크 어레이 제어 장치.
  2. 사용자 어플리케이션이 호스트 구동 시스템(O/S)에 스카시 디바이스에 있는 데이터 접속을 요청하는 단계;
    호스트 메모리에 상기 호스트 구동 시스템이 입출력을 요청하는 단계;
    스카시 구동부의 구동 시스템 인터페이스로 상기 호스트 메모리가 입출력을 요청하는 단계;
    상기 호스트 메모리에 데이터 스트럭쳐를 생성하는 단계;
    상기 데이터 스트럭쳐가 생성되면 상기 호스트 메모리의 커맨드 블록에 저장하는 단계;
    상기 커맨드 블록을 상기 스카시 구동부로 전송하는 단계;
    상기 커맨드 블록을 이용하여 스카시 제어부로 상기 스카시 디바이스의 어드레스를 로드하는 단계;
    상기 스카시 제어부가 상기 스카시 디바이스 어드레스를 이용하여 상기 스카시 디바이스를 구동시키는 구동부에 접속하는 단계를 포함하여 이루어지는 것을 특징으로 하는 디스크 어레이 제어 방법.
  3. 제 2 항에 있어서 상기 스카시 디바이스 구동부는 상기 어플리케이션 입출력 요청이 상기 호스트 구동부에 입력되면 기능 코드, 디시비(DCB) 포인터, 파라미터 리스트를 제공하는 단계와, 커맨드 블록을 구축하는 단계와, 상기 어플리케이션 입출력으로 인한 인터럽트 서비스 루틴에서 SC_pend되고, 상기 스카시 제어부의 디에스피(DSP) 저장부의 리드가 이뤄지는 단계와, 상기 인터럽트 서비스 루틴이 SC_post 되면, 상기 스카시 제어부가 정상 종료인지와 상태 체크인지를 분석하는 단계와, 상기 분석 결과 정상 종료이면 해당 스테이터스를 대기 상태로 하고, 상기 분석 결과 정상 종료가 아니면 한번 더 페이즈 미스매치(Phase Mismatch) 인지를 확인하고 단계와, 상기 확인 결과 페이즈 미스매치이면 남겨진 바이트 수를 계산하고, 남겨진 바이트 수에 따라 상기 디시비 포인터와 카운터를 업데이트하는 단계와, 데이터 버퍼에서 데이터 어드레스와 남겨진 바이트 수를 패치(Patch)하고 직접 메모리 억세스와 상기 스카시의 파이포(FIFO)를 클리어하는 단계를 포함하여 이루어지는 것을 특징으로 하는 디스크 어레이 제어 방법.
  4. 제 3 항에 있어서, 상기 스카시 제어부의 디에스피 저장부의 리드가 이뤄지는 단계는 상기 디에스피 저장부의 DIP가 셋(SET)되었는지, SIP가 셋(SET)되었는지를 분석하는 단계와, 상기 분석 결과 DIP의 셋(SET)과, SIP의 셋(SET)에 ??는 대기 상태로 하는 단계와, 상기 DIP 또는 SIP중 어느 것도 셋(SET) 되어 있지 않은 경우 중단시키는 단계를 포함하여 이루어지는 것을 특징으로 하는 디스크 어레이 제어 방법.
  5. 제 4 항에 있어서, 상기 디에스피 저장부의 DIP 셋(SET)과, SIP 셋(SET)이 동시에 발생할 경우 상기 DIP 셋(SET)을 먼저 처리한 후 상기 SIP 셋(SET)을 처리하는 것을 특징으로 하는 디스크 어레이 제어 방법.
  6. 제 2 항에 있어서, 상기 커맨드 블록은 상기 디바이스 타입을 나타내는 코드와 커맨드 카운트, 데이터 카운트로 이루어지는 것을 특징으로 하는 디스크 어레이 제어 방법.
KR1019980062856A 1998-12-31 1998-12-31 디스크어레이제어장치및제어방법 KR100308149B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980062856A KR100308149B1 (ko) 1998-12-31 1998-12-31 디스크어레이제어장치및제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980062856A KR100308149B1 (ko) 1998-12-31 1998-12-31 디스크어레이제어장치및제어방법

Publications (2)

Publication Number Publication Date
KR20000046179A KR20000046179A (ko) 2000-07-25
KR100308149B1 true KR100308149B1 (ko) 2001-11-02

Family

ID=19569471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980062856A KR100308149B1 (ko) 1998-12-31 1998-12-31 디스크어레이제어장치및제어방법

Country Status (1)

Country Link
KR (1) KR100308149B1 (ko)

Also Published As

Publication number Publication date
KR20000046179A (ko) 2000-07-25

Similar Documents

Publication Publication Date Title
US6009481A (en) Mass storage system using internal system-level mirroring
US6839824B2 (en) System and method for partitioning a storage area network associated data library employing element addresses
US6928514B2 (en) Method and apparatus for teaming storage controllers
US5548783A (en) Composite drive controller including composite disk driver for supporting composite drive accesses and a pass-through driver for supporting accesses to stand-alone SCSI peripherals
CN102918509B (zh) 数据读写方法、装置和存储系统
US6484234B1 (en) Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
US5511227A (en) Method for configuring a composite drive for a disk drive array controller
US6529989B1 (en) Intelligent expansion ROM sharing bus subsystem
US7484050B2 (en) High-density storage systems using hierarchical interconnect
WO1992015057A1 (en) Parity calculation in an efficient array of mass storage devices
JP2001256003A (ja) ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法
CN1938670A (zh) 双媒体存储装置
WO1999038067A1 (en) An apparatus and method for automatic configuration of a raid controller
JPH07152491A (ja) 仮想ディスクシステム
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
CN109313593B (zh) 存储系统
US5805787A (en) Disk based disk cache interfacing system and method
JPH07281840A (ja) 2重化ディスク記録装置
US6438648B1 (en) System apparatus and method for managing multiple host computer operating requirements in a data storage system
US20100070705A1 (en) Method and system for resolving configuration conflicts in raid systems
JPH09282104A (ja) 記憶装置のデータ記憶性能向上方法とその装置
CN113282246A (zh) 数据处理方法及装置
CN113342258A (zh) 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备
EP1890229B1 (en) System controller, data processor, and input output request control method
KR100308149B1 (ko) 디스크어레이제어장치및제어방법

Legal Events

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

Payment date: 20050628

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee