KR100261378B1 - 어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법 - Google Patents

어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법 Download PDF

Info

Publication number
KR100261378B1
KR100261378B1 KR1019960034092A KR19960034092A KR100261378B1 KR 100261378 B1 KR100261378 B1 KR 100261378B1 KR 1019960034092 A KR1019960034092 A KR 1019960034092A KR 19960034092 A KR19960034092 A KR 19960034092A KR 100261378 B1 KR100261378 B1 KR 100261378B1
Authority
KR
South Korea
Prior art keywords
adapter
array
data
storage
host
Prior art date
Application number
KR1019960034092A
Other languages
English (en)
Other versions
KR970016918A (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 포만 제프리 엘
Publication of KR970016918A publication Critical patent/KR970016918A/ko
Application granted granted Critical
Publication of KR100261378B1 publication Critical patent/KR100261378B1/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
    • 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/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따르면, 각각의 저장 어레이 상의 데이터가 어떤 호스트 컴퓨터에 의해서도 액세스될 수 있도록 다수의 저장 어레이들 상에 다수의 호스트 컴퓨터들을 위한 데이터를 저장하기 위한 시스템이 제공된다. 이때 다수의 어댑터 카드들이 사용된다. 각각의 어댑터 카드는 지정된 저장 어레이에 대한 콘트롤러 기능을 갖고 있다. 시스템내의 모든 어댑터들 사이에는 어댑터 통신 인터페이스(상호연결)가 존재한다. 또한, 호스트 컴퓨터에서 실행되는 어플리케이션 프로그램과 어댑터 사이에는 호스트 어플리케이션 인터페이스가 존재한다. 어플리케이션 프로그램이 호스트 어플리케이션 인터페이스를 통해, 제1 어댑터에 의해 주 제어되지 않는 저장 어레이에 저장된 데이터에 대한 데이터 요구를 발생하면, 상기 데이터 요구는 어댑터 통신 인터페이스를 통해 상기 요구한 데이터가 저장된 저장 어레이를 주 제어하는 어댑터로 전달된다.

Description

어댑터들이 상이한 호스트 컴퓨터에 존재하는 어레이에 대한 주 콘트롤러 및 보조 콘트롤러로서 작용하도록 함으로써 복수의 저장 어레이를 공유하기 위한 시스템 및 방법 {SYSTEM AND METHOD FOR SHARING MULTIPLE STORAGE ARRAYS BY DEDICATING ADAPTERS AS PRIMARY CONTROLLER AND SECONDARY CONTROLLER FOR ARRAYS RESIDE IN DIFFERENT HOST COMPUTERS}
본 발명은 데이터 저장 시스템들에 관한 것으로, 더욱 상세하게는 다중 호스트 시스템들에 의해 공유되는 다중 저장 시스템들(multiple storage systems)에 관한 것이다.
컴퓨터 사용이 증가함에 따라, 이들 컴퓨터 시스템에 대한 데이터를 저장하기 위해 융통성(flexible)과 높은 가용성(high availability)을 제공하는 시스템들에 대한 요구가 증가되었다. 많은 회사들은 독자적으로 기능을 수행하거나 네트워크를 통해 연결된 개인용 컴퓨터들 및 워크스테이션들을 포함하는 다수의 호스트 컴퓨터 시스템들을 보유하고 있다. 다중 호스트 컴퓨터 시스템들이 다중 저장 시스템의 공통 풀(common pool)에 액세스할 수 있도록 하여, 데이터들이 모든 호스트 시스템들에 의해 액세스될 수 있는 것이 바람직하다. 이와 같은 구성은 임의의 하나의 호스트 시스템에 이용가능한 데이터의 총량을 증가시킨다. 또한, 작업 부하(work load)를 이와 같은 호스트들간에 공유할 수 있고 전체 시스템은 임의의 하나의 호스트의 고장으로부터 보호될 수 있다.
또한, 저장 시스템들에 저장된 데이터의 가용성(availability)을 보호하는 것이 중요하다. 데이터 보호를 위한 하나의 스킴(scheme)은 RAID(Redundant Array of Independent Disks) 기능을 통합하는 것이다. RAID 기술의 개념과 변천은 저장 장치 업계에 공지되어 있다. RAID 레벨들에 관해서는, Patterson 등에 의해 시카고주 일리노이에서 6월에 열린 데이터 관리에 관한 1988년도 ACM SIGMOND 학술 회의에서 발표한 "RAID(Redundant Array of Independent Disks)에 대한 사례"에 설명되어 있다. 일반적인 RAID 시스템은 RAID 콘트롤러 및 어레이(array)로서 구성된, 디스크 드라이브로도 불리는, 직접 액세스 저장 장치들(Direct Access Storage Devices:DASDs)과 같은 다수의 저장 장치들을 포함한다. 상기 시스템에서 데이터는 어레이의 일부로서 저장되는 패리티 정보를 이용하여 보호된다. 일반적으로 RAID 레벨 0 어레이는 데이터가 모든 DASD들에 걸쳐 스트라이프(stripe)되고 패리티 보호 기능이 없는 어레이를 말한다. RAID 1 시스템에서는 하나의 DASD로부터의 데이터가 중복보호(redundancy protection)를 위해 보조 DASD(second DASD)에 미러(mirrored)된다. RAID 5 아키텍쳐에서는, 논리적 패리티 디스크를 지정함으로써 RAID 연산의 효율성과 신뢰성이 증가된다. 이러한 논리적 패리티 디스크는 어레이 상의 각각의 디스크에 걸쳐 물리적으로 스트라이프되며, 따라서 하나의 디스크가 전체 어레이에 대한 패리티를 포함하지 않는다. 일반적으로 JBOD(Just a Bunch Of Disks)는 스트라이핑(striping) 또는 중복성이 없는 DASD들의 어레이를 말한다. 여기에는 각각의 레벨 즉, RAID 0, RAID 1, RAID 3, 및 RAID 5가 더 바람직할 수도 있는 어떤 연산들이 있다. 예를 들어, RAID 5는 데이터에 대한 다수의 동시발생 액세스를 필요로 하는 시스템에 바람직하다.
또한, 저장 장치 시스템들은 캐쉬를 포함하는 것이 바람직하며, 이때 캐쉬는 판독 캐쉬나 기록 캐쉬 중 어느 하나이다. 당업계에 널리 공지된 바와 같이, 비휘발성 캐쉬(non-volatile cache)를 사용하면, 이런 캐쉬에 기록된 데이터는 디스크 액세스를 대기할 필요없이 또한 디스크 자체에 데이터를 실제로 기록하지 않고도 마치 그것이 디스크에 기록된 것처럼 간주된다.
또한, 하드웨어 고장에 대한 보호를 위해 중복 경로를 제공하여 데이터 액세스에 대해 높은 수준의 가용성 및 성능을 보장할 수 있는 것이 바람직하다.
복수의 호스트들이 다중 컴퓨터 시스템에 액세스할 수 있도록 하는 종래의 해결방안들은 호스트 어댑터 카드들과, 외부 보드 디스크 콘트롤러들과, 그리고 표준 네트워크 통신 시스템들을 사용하였다.
도1과 도2는 복수의 호스트들이 다중 저장 어레이에 액세스할 수 있도록 하는 종래의 네트워킹된 컴퓨터 저장 시스템 구성의 예를 도시하고 있다. 도1은 다중 호스트 시스템들(10)을 구비한 시스템을 나타낸다. 각각의 호스트 시스템은 디스크 어레이(12)에 대한 그 고유의 인터페이스(11)를 가지고 있다. 호스트 시스템은 네트워크(13) 및 선 마이크로시스템의 네트워크 파일 시스템(NFS)과 같은 네트워크 파일 시스템을 통해 서로 통신한다. 만약 어떤 호스트가 다른 호스트 시스템에 연결되어 그것에 의해 제어되는 데이터에 액세스할 필요가 있으면, 이러한 데이터 액세스를 위한 요구(request)는 네트워크 서버를 통해 그 데이터가 저장된 어레이를 제어하는 호스트로 라우팅(route)된다. 이러한 해결방안은 요구 전송이 느리다는 문제점 때문에 한계가 있다. 또한, 이러한 네트워크 시간의 사용은 이런 형태의 연산에 적합하지 않으며, 그 대신에 호스트들 간의 다른 형태의 통신이 요구된다. 또한, 네트워크가 이런 형태의 데이터 액세스에 최적화되어 있지 않다.
도2는 분리된 콘트롤러 서브시스템(15)이 다수의 호스트들(16)에 의해 액세스될 수 있는 시스템을 나타낸다. 콘트롤러 서브시스템(subsystem)은 그 서브시스템에 부착된 어레이(18,19)에 대한 제어 기능들을 제공한다. 이들 기능은 RAID의 패리티 및 스트라이핑 기능(striping function), 판독 캐쉬 기능 및 비휘발성 기록 캐쉬 기능들을 포함한다. 호스트(16)는 공유 콘트롤러를 통해 데이터에 액세스한다. 호스트는 콘트롤러를 통해 요구를 전송하고, 이 콘트롤러는 어레이에 액세스하여 상기 호스트로 다시 상기 요구한 데이터를 전송한다. 그러나, 도2에 도시된 시스템은 다음과 같은 많은 제한요소를 갖고 있다. 먼저, 하나의 서브시스템에 연결될 수 있는 호스트의 수에 제한이 있고, 또한 상기 서브시스템에 의해 제어되는 어레이의 수에 제한이 있다는 것이다. 또한, 도2에 도시된 바와 같은 종래 기술은 호스트와 어레이의 수에 제한이 있다는 것이다. 또한, 도2에 도시된 바와 같은 종래 기술은 호스트와 어레이들 간에 분리된 레벨의 제어 장치를 갖고 있으며, 따라서, 호스트가 그 자신의 DASD 셋트에 대해 제어할 수 있는 자신의 콘트롤러를 갖고 있지 않다. 또한, 외부 보드 콘트롤러들은 추가적인 전자장비, 전력 및 패키지를 필요로 하며, 이에 따라 비용이 증가되고 전체 시스템의 신뢰성이 감소된다.
따라서, 저렴하고 보다 확장가능한(scalable) 해결 방안이 요구된다. 하나의 해결 방안은 호스트들과 저장 어레이들의 연결성을 증가시키는 것이다. 이러한 시스템은 높은 가용성과 양호한 성능을 갖는 것이 바람직하다.
본 발명은 저렴하고 더욱 확장 가능한 해결 방안을 제공하면서, 종래의 시스템의 전술한 하나 이상의 문제점을 해결한다. 본 발명은 호스트에 내재될 수 있고 다수의 어레이를 제어할 수 있는 호스트 어댑터 카드들을 이용하는 아키텍쳐를 제공한다.
각각의 저장 어레이 상의 데이터가 어떤 호스트 컴퓨터에 의해서도 액세스될 수 있도록 다수의 저장 어레이들 상에 다수의 호스트 컴퓨터들을 위한 데이터를 저장하기 위한 시스템이 제공된다. 이때 다수의 어댑터 카드들이 사용된다. 각각의 어댑터 카드는 지정된 저장 어레이에 대한 제어 기능들을 갖고 있다. 시스템내의 모든 어댑터들 사이에는 어댑터 통신 인터페이스(상호연결)가 존재한다. 또한, 호스트 컴퓨터에서 실행되는 어플리케이션 프로그램과 어댑터 사이에는 호스트 어플리케이션 인터페이스가 존재한다. 어플리케이션 프로그램이 호스트 어플리케이션 인터페이스를 통해, 저장 어레이에 저장되어 있지만 주(first) 어댑터에 의해 주 제어되지 않는 데이터에 대한 요구를 주 어댑터에 전송하는 경우에, 이 데이터 요구는 어댑터 통신 인터페이스를 통해, 상기 요구한 데이터가 저장된 저장 어레이를 주 제어하는 어댑터로 전달된다.
바람직한 실시예에서, 각각의 호스트 컴퓨터는 하나 또는 그 이상의 어댑터를 갖고 있으며, 여기서 각각의 어댑터는 RAID 콘트롤러, 하나 또는 그 이상의 외부 인터페이스 및 판독/기록 캐쉬를 포함한다. RAID 1, RAID 1, RAID 3 또는 RAID 5와 같은 RAID 스킴에서는 디스크 드라이브가 하나 또는 그 이상의 어레이로 구성된다. 주어진 시간에, 각각의 어레이는 단일 어댑터에 의해 제어되고, 어레이에 대한 모든 액세스가 그 어댑터를 통해 수행된다. 이것은 동시발생적인 중복(overlapping) 패리티 갱신으로 인한 잠재적인 충돌(conflicts)이 쉽게 해결될 수 있도록 한다. 또한, 이것은 복수의 캐쉬에 동일 데이터의 복수의 카피를 저장함으로써 발생하는 코히어런시 문제(coherency problem)를 피할 수 있다. 어댑터간의 상호연결(interconnect)은 어댑터-디스크 통신(adapter-to-disk communication) 뿐만 아니라 어댑터-어댑터 통신(adapter-to-adapter communication 또는 peer-to-peer communication)을 가능하게 한다.
바람직한 실시예에서, 또한, 각각의 저장 어레이를 보조 제어하는 다수의 어댑터가 존재한다. 이 보조(secondary) 어댑터는 지정된 저장 어레이를 주 제어하는 어댑터가 이용불가능한 경우에, 그 지정된 저장 어레이를 제어한다. 어댑터 통신 인터페이스는 보조 어댑터들을 포함하여 모든 어댑터들을 상호연결한다.
본 발명의 목적은 복수의 호스트가 복수의 어레이에 액세스할 수 있도록 하는 높은 가용성을 갖는 시스템을 제공하는 것이다. 직렬 저장 아키텍쳐(Serial Storage Architecture:이하 "SSA"라 칭함)의 루프 토폴로지(loop topology)를 이용하여 구현하면, 128개의 호스트 시스템들이 상호연결될 수 있다.
호스트 어댑터 카드는 개인용 컴퓨터들과 워크스테이션들을 위한 마이크로 채널 또는 PCI 버스와 같은 많은 호스트 버스들과 호환성이 있으며, 이것은 저렴하고 더욱 확장가능한(scalable) 해결 방안을 제공한다. SSA 인터페이스 뿐만 아니라, 파이버 채널 인터페이스(fiber channel interface)인, FC-AL(Fiber Channel-Arbitrated Loop)을 SCSI2와 같은 기존의 병렬 인터페이스와 함께 사용할 수 있다.
도1은 복수의 어레이에 대해 복수의 호스트들에 의한 액세스를 제공하는 제1 종래의 시스템을 나타낸 블록도.
도2는 복수의 어레이에 대해 복수의 호스트들에 의한 액세스를 제공하는 제2 종래의 시스템을 나타낸 블록도.
도3은 본 발명에 따른 기능 및 연산을 논리적 관점에서 나타낸 블록도.
도4는 본 발명을 구현하기 위한 방법을 나타낸 흐름도.
도5는 본 발명을 구현하는 어댑터 카드를 위한 하드웨어를 나타낸 블록도.
도6은 본 발명을 구현하기 위한 소프트웨어에 대한 블록도.
도7은 본 발명의 제1 구현예를 나타낸 블록도.
도8은 본 발명의 제2 구현예를 나타낸 블록도.
도9는 어댑터들의 레지스트리와 저장 장치들에 저장된 테이블을 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명
110:어댑터 카드 112,113:SSA 노드
114:호스트 루프 116:장치 루프
120,122:드라이브 그룹
도3은 본 발명에 따른 기능 및 연산의 주요 요소들을 논리적 관점으로 도시하고 있다. 각각의 호스트 컴퓨터(20)는 하나 또는 그 이상의 어댑터(22)를 포함한다. 각각의 어댑터는 RAID 콘트롤러, 하나 또는 그 이상의 외부 인터페이스, 및 판독/기록 캐쉬를 포함한다. 호스트 컴퓨터들은 디스크 드라이브 어레이들의 공통 풀(common pool of arrays)을 공유한다. 디스크 드라이브는 RAID 0, RAID 1, RAID 3 또는 RAID 5, 또는 JBOD와 같은 하나 또는 그 이상의 어레이들로 구성되며, 이것은 당 분야에 있어서 통상의 지식을 가진 사람들에게는 잘 알려진 시스템이다. 언제라도, 각각의 어레이는 단일 어댑터에 의해 제어되고 그 어레이에 대한 모든 액세스는 상기 어댑터를 통해 수행된다. 이것은 동시발생적인 중복 패리티 갱신으로 인한 잠재적인 충돌이 쉽게 해결될 수 있도록 한다. 또한, 이것은 복수의 캐쉬에 동일 데이터의 복수의 카피를 저장함으로써 발생하는 코히어런시 문제(coherency problem)를 피할 수 있다. 각각의 어레이는 단지 하나의 어댑터에 의해서만 제어되므로, 어떤 어레이에 대해 그 어레이의 제어 어댑터(controlling adapter)가 아닌 다른 어댑터로부터 발생하는 요구는 먼저 그 제어 어댑터로 라우팅되어야 하며, 이 제어 어댑터는 그 어레이에 액세스하여, 그 결과를 원래의 요구자에게 리턴한다. 어댑터들(22)은 어댑터-디스크 통신(adapter-to-disk communication) 뿐만 아니라 어댑터들 간의 통신도 허용하는 상호연결수단(23)을 통해 상호연결된다.
호스트 시스템의 예로는 IBM AIX 운영체제를 실행하는 IBM Risc System/6000 머신이 있다. 당분야에 통상의 지식을 가진 사람에게 잘 알려져 있는 많은 다른 호스트 시스템들이 사용될 수 있다.
도3과 도4를 참조하여 살펴보면, 호스트1이 어댑터B(24)에 의해 제어되는 어레이2로부터 데이터를 판독하길 원하는 상황에서(단계 24), 이 호스트는 어댑터A에게 I/O 요구를 발행한다(단계 25). 어댑터A는 디렉토리를 참조하여 상기 어레이2가 어댑터B에 의해 제어되는지 판단한다(단계 26). 시초 어댑터(originating adapter)는 I/O 요구를 어댑터B로 전송한다(단계 27). 어댑터B는 자신의 캐쉬들을 검색하고 필요한 경우에 디스크에 액세스함으로써 I/O 요구를 실행한다. 그리고 나서 어댑터B는 어댑터A에 판독 데이터를 리턴한다(단계 28). 어댑터A는 호스트 메모리에 이 판독 데이터를 저장하고, I/O 요구가 완료되었음을 알려주기 위해 호스트를 인터럽트한다.
당 분야에 통상의 지식을 가진 사람에게는 잘 알려진 바와 같이, 요구되는 대역폭(bandwidth), 팬아웃(fan out) 및 가용성(availability)에 따라 상호연결(23)을 제공하기 위해 사용될 수 있는 많은 구현예가 존재한다. 예를 들어, 하나 또는 그 이상의 병렬 버스, 직렬 루프(serial loops) 또는 직렬 스위치(serial switches)가 있을 수 있다. 본 발명의 바람직한 실시예는 상호연결 아키텍쳐(interconnect architecture)로서 직렬 저장 아키텍쳐(SSA)를 참조하여 설명되지만, 다른 아키텍쳐도 사용될 수 있다.
SSA는 미국 국립 표준국(American National Standards Institute:ANSI) X3T10.1에 의해 개발되었다. SSA는 디스크 드라이브, 테이프 드라이브, CD ROM, 옵티칼 드라이브, 프린터, 스캐너 및 다른 주변기기들과 같은 I/O 장치들을 워크스테이션 서버(호스트 시스템)와 저장 서브시스템에 연결하기 위해 특별히 설계된 직렬 인터페이스이다. 당 분야에 통상의 지식을 가진 사람은 SSA 아키텍쳐의 구현에 대해 잘 알고 있으며, 따라서, 아키텍쳐 및 그 연산에 대해서는 여기서 상세히 기술하지 않는다. SSA에 대한 더 자세한 설명은 "정보 기술(Information Technology)-직렬 저장 아키텍쳐(Serial Storage Architecture)-트랜스포트 계층(SSA-TL1), ANSI X3T10.1/0989D", "정보 기술(Information Technology)-직렬 저장 아키텍쳐(Serial Storage Architecture)-물리적 1(Physical 1)(SSA-PH1), ANSI X3T10.1/xxxD", 및 "정보 기술(Information Technology)-직렬 저장 아키텍처(Serial Storage Architecture)-SCSI-2 프로토콜(SSA-S2P), ANSI X3T10.1/1121D"를 참조하자.
링크(link) 또는 버스(bus)는 구리선(copper wire)과 같은 전송 매체를 통해 데이터를 신호로서 전송하기 위해 사용되는 커넥터(connector)를 말한다. 직렬 링크(serial link)는 단일 신호를 처리할 수 있는 크기의 케이블을 사용할 수 있으며, 여기서 전송되는 데이터 단위는 통신 경로에 대해 직렬화(serialize)되어 있다. 일반적으로 직렬 커넥터는 양방향(two way)(전이중(full duplex)) 통신을 한다. 루프 구성을 사용하는 경우에(디스크 어레이들과 함께), 상기 루프안의 각각의 드라이브(drive)에 대한 대역폭을 두 배로 하거나 또는 어떤 연결이 고장났을 때 드라이브에 대체 루트(alternate route)를 제공하기 위해 제2 경로(path)가 사용될 수 있다. SSA는 전이중 통신(full duplex communication)을 제공하는 2-신호 연결(전송 및 수신)을 제공한다.
SSA는 직렬로 접속된 주변장치들을 어드레싱하기 위해 SCSI(Small Computer System Interface;소형 컴퓨터 시스템 인터페이스) 스펙의 논리적인 면을 이용한다. 이들 SCSI 스펙은 SSA의 물리적 스펙에 맵핑(mapped)된다. 즉, SSA는 다양한 상위-레벨 프로토콜, 특히, 저장 어플리케이션들을 위한 SCSI-2에 대한 트랜스포트 계층(transport layer)으로써 사용될 수 있다. SSA에 관한 SCSI-2는 개시자(initiators), 타겟(targets) 및 논리 유니트(logical units)가 존재하는 SCSI 표준에 정의된 바와 같은 유사한 어드레스 스킴을 유지한다.
가장 기본적인 SSA 네트워크는 단일 포트 주변기기에 연결된 단일 포트 호스트 어댑터로 구성된다. 직렬 연결(serial connection)은 정보의 프레임(frame)을 전달하기 위해 사용되는 4개의 도선들(four wires)로 구성된다. 4개의 도선들은 플러스/마이너스 라인-아웃(line out)(전송) 및 플러스/마이너스 라인-인(line in)(수신)으로 구성된다. "포트"는 게이트웨이를 말하며, 이것은 하나의 링크(하나의 전송 경로와 하나의 수신 경로)의 종단을 지원하기 위해 하드웨어와 펌웨어(firmware)로 구성된다. 하나의 노드의 포트는 링크를 통해 다른 노드의 포트에 연결된다.
SSA의 포트는 동시에, 즉 한 번의 인바운드와 한 번의 아웃바운드에 각각 초당 20 메가바이트의 대화(conversations)를 수행할 수 있다. 루프(loop)내의 각각의 링크는 독립적으로 동작하며, 따라서, 총 루프 대역폭이 단일 링크보다 높을 수 있다. 또한, 루프에서 메시지와 데이터가 시계 방향을 돌거나 반시계방향으로 돌 수 있으므로 단일 폴트(single fault)가 허용된다. SSA의 이중 포트 노드(SSA dual port node)는 초당 80 메가바이트의 총 대역폭을 갖고 4개의 동시 대화를 수행할 수 있다.
노드는 하나 또는 그 이상의 직렬 포트를 갖는 시스템 콘트롤러, 호스트, 또는 주변장치를 말한다. 각각의 노드는 그 특정한 임무 또는 태스크(task)가 되는 기능(function)을 갖는다. 개시자(initiator)는 어떤 태스크가 실행될 필요가 있는지 또한 어떤 타겟(target)이 원하는 태스크를 수행할 것인지를 판단하는 노드내의 기능이다. 노드는 하나 또는 그 이상의 포트를 구현한다.
프레임(frame)은 SSA 네트워크에서 두 포트간의 정보 전송의 기본 단위이다. 프레임은 하나의 콘트롤 바이트, 6 바이트까지의 어드레스, 128 바이트까지의 데이터, 및 4개의 오류(error) 검출 바이트로 구성된 예상 포맷을 갖고 있다. 노드는 포트들 사이에서 프레임들을 라우팅(route)할 수 있다. 노드 기능(node function)은 프레임들을 생성하거나 또는 전송할 수 있다. SSA 프로토콜은 특정 문자들을 사용하여 노드들 사이에서 전송되는 프레임의 흐름을 조정하고 프레임들을 승인한다. 프레임 다중화 능력은 2개 또는 그 이상의 메시지들이 동일한 케이블을 통해 어느 한 방향으로 동시에 전송될 수 있도록 허용하는 전신 시스템(system of telegraphy)을 의미한다.
SSA는 스트링(string), 루프(loop) 및 스위치 구성(switch configurations)을 포함하는 복수의 토폴로지(multiple topologies)를 이용하여 구현된다. 일반적인 단일 루프 구성에 있어서는, 128개의 이중 포트(dual-port) 노드들(주변장치들 또는 호스트들)이 지원될 수 있다. 복합 스위치 구성(complex switch configuration)에 있어서 이론적인 최대 노드 수는 200만개 이상이다. 루프 토폴로지(loop topology)는 네트워크의 각각의 노드에 대한 교호(alternate) 경로들을 제공하며 네트워크에서 단일 포인트의 결함은 무시한다.
게이트웨이(gateway)는 두 노드들 간에 구축되어 SSA 네트워크를 통한 전이중 통신(full duplex communication)을 제공한다. 노드는 디스크 액세스와 같은 기능을 수행하기 위해 다른 노드로 트랜잭션(transaction)을 발생한다. 게이트웨이는 각각의 방향으로 하나씩 두 개의 연결로 이루어진다. 마스터(트랜잭션을 발생하는 것)는 마스터 제어 블록을 구축한다. 게이트웨이는 프레임들로 이루어진 트랜잭션을 네트워크를 통해 전송한다. 게이트웨이의 슬레이브(slave)측은 트랜잭션 프레임들을 수신하고, 어드레스된 서비스(addressed service)를 호출하는 태스크 제어 블록을 구축한다.
도5는 어댑터 카드 하드웨어의 블록도를 도시하고 있다. 어댑터는 마이크로프로세서(30)를 포함하며, 이 마이크로 프로세서는 마이크로프로세서 버스(32)를 통해, 필요한 코드와 제어 블록들(도6에서 더욱 상세히 기술할 것임)을 포함하는 RAM(33), 비휘발성 RAM(34) 및 ROM 부트스트랩(ROM bootstrap)(35)에 연결된다. 마이크로프로세서 브리지(36)는 마이크로프로세서(30)를 로컬 버스(37)를 통해 비휘발성 캐쉬(38)와 판독 캐쉬(40)에 연결한다. 또한, RAID 패리티 연산을 수행하기 위해 배타적 논리합 하드웨어(XOR hardware)(42)가 제공된다. 호스트 브리지(44)는 마이크로채널 또는 PCI 버스(45)와 같은 호스트 인터페이스를 통해 메인 호스트 하드웨어에 대한 접속을 제공한다. 여기에는 두 개의 SSA 이중 포트 칩(46,47)이 존재하는데, 하나는 다른 어댑터들과의 상호연결을 위한 것이고 다른 하나는 저장 장치 어레이와의 상호연결을 위한 것이다. 각각의 블록은 독립된 ASIC(Application Specific Integrated Circuit)일 수 있다. 배타적 논리합 기능(XOR function)은 하나의 ASIC으로 판독 캐쉬 콘트롤러(read cache controller)와 조합될 수 있다.
도6은 본 발명을 구현하기 위해 호스트 및 어댑터 카드에서 실행되는 소프트웨어의 개략적인 블록도이다. 호스트 시스템은 중앙 처리 장치(Central Processing Unit)(CPU)(미도시)와 RAM(미도시)을 포함하며, RAM에는 소프트웨어를 실행하는 동안 상기 소프트웨어가 저장된다. RAM 내에서 실행되는 어플리케이션 프로그램(56)은 파일 시스템(57)으로 I/O 요구를 전송하거나 또는 운영체제(Operation System)(60)를 통해 장치 드라이버(device driver)(58)로 직접 I/O 요구를 전송한다. 장치 드라이버는 운영체제(61)에 대한 인터페이스, 소프트웨어 버스(62), 및 어댑터 카드로의 게이트웨이(63)를 포함한다.
어댑터 카드(64)는 그 자신의 마이크로프로세서와 그 자신의 RAM을 포함하며, RAM은 본 발명을 구현하기 위한 소프트웨어를 실행하는 동안에 포함한다(어댑터내의 하드웨어의 더욱 상세한 것은 도5를 참조). 어댑터 카드는 장치 드라이버와 대화(interact)하기 위한 게이트웨이(66)와, 캐쉬 콘트롤러(68) 및 RAID 콘트롤러(70)와 대화하는 소프트웨어 버스(67)를 포함한다. 또한, 어댑터 카드는 그 어댑터 카드에 의해 주 제어되는(primary controlled) 저장 장치 어레이와 다른 어댑터 카드들을 통해 액세스할 수 있는 어레이들을 식별하는 레지스트리(registry)(72)를 포함한다. 또한, 소프트웨어 버스는 게이트웨이(74)와 대화하며, 이 게이트웨이는 인터페이스 칩을 통해 다른 어댑터 카드들과의 피어-투-피어 링크(peer-to-peer link)(75)를 가능하게 한다. 디스크 인터페이스(76)는 디스크 어레이(77)와 대화한다.
어레이에 대한 연결성(connectivity)을 증가시키기 위해, 각각의 어레이는 주 제어 어댑터(controlling adapter) 및 보조 제어 어댑터를 갖추고 있다. 루프내의 모든 디스크들은 이들 두 어댑터 모두에 연결되어 있기 때문에, 이들 두 어댑터가 모두 작용하고 있는 경우에, 다른 어댑터에 의해 주 제어되는 어레이에 액세스하기 위한 요구는 처리를 위해 피어-투-피어 링크(peer-to-peer link)(75)를 통해 먼저 다른 어댑터로 라우팅된다. 그리고 나서, 그 결과는 다시 피어-투-피어 링크(75)를 통해 요구한 어댑터로 전달되며, 호스트로 리턴된다.
하나의 구성예에서, 어레이들이 동일한 SSA 디스크 어레이 루프에 존재하는경우에, 하나의 어댑터가 한 어레이에 대해서는 주 제어 어댑터(primary controlling adapter)가 될 수 있고 다른 어레이에 대해서는 보조 제어 어댑터(secondary controlling adapter)가 될 수 있다. 도7을 참조하면, 각각의 호스트(80-85)는 디스크 어레이(92-97)에 대한 주 어댑터 또는 보조 어댑터로서 작용하는 하나의 어댑터 카드(86-91)를 포함하고 있다. 이미 언급한 바와 같이, 단지 6개의 호스트 컴퓨터만 도시되어 있으나 여기에는 더욱 많은 상호연결된 호스트들이 존재할 수 있다. 각각의 어레이(92-97)는 그 어레이에 대한 콘트롤러로서 작용하는 주 어댑터와 보조 어댑터를 갖고 있다. 예를 들어, 어댑터 A1(86)은 어레이 A(92)에 대해서는 주 콘트롤러이고 어레이 B(93)에 대해서는 보조 어댑터이다. 어댑터 A2(87)는 어레이 B에 대해서는 주 콘트롤러이고 어레이 A(92)에 대해서는 보조 어댑터이다. 이들 어댑터는 SSA 루프(SSA loop)(98)를 통해 모두 상호연결된다. 어레이 A 및 어레이 B와 같은 어레이들의 쌍은 SSA 장치 루프(SSA device loop)(99)를 통해 연결된다. 주 어댑터가 액티브 상태이면, I/O 요구들은 주 어댑터를 통해 지시된다. 주 어댑터 카드에 결함이 발생한 경우에도, 다른 호스트들은 여전히 보조 어댑터를 통해 디스크 어레이에 액세스할 수 있다.
시스템은 루프 또는 이중 스위치들(dual switches)과 같은 상호연결을 통한 대체 경로와 각각의 호스트 컴퓨터 내의 복수의 어댑터들을 포함함으로써 단일 포인트 결함에 무관하게 구성될 수 있다. 도8은 세 개의 SSA 루프들의 구현을 통한 높은 가용성 구성(high availability configuration)을 나타낸다. 각각의 어댑터 카드(110)는 두 개의 이중 포트 SSA 노드(112,113)를 포함한다. 하나의 노드(112)는 호스트 루프(114)인 외부 루프(outer loop)에 연결된다. 이 루프는 근원 어댑터(originating adapter)와 주 어댑터간의 통신을 위해서만 사용된다. 다른 노드(113)는 두 개의 내부 루프들(inner loops), 즉 장치 루프들(device loops)(116) 중의 하나에 연결된다. 각각의 장치 루프는 주 어댑터와 그 대응하는 어레이들 내의 디스크들간에 통신을 제공한다. 또한, 주 어댑터와 보조 어댑터간의 통신을 위해서도 사용된다.
도8을 참조하면, 어댑터 A는 어레이 1의 주 콘트롤러이고, 어댑터 D는 어레이 1의 보조 콘트롤러이고, 어댑터 B는 어레이 2의 주 콘트롤러이고, 어댑터 C는 어레이 2의 보조 콘트롤러이다. 어레이 1에 대해 호스트 1이 생성한 I/O 요구들은 직접 어댑터 A로 발행된다. 다음에, 어댑터 A는 이 요구들을 디스크 판독/기록 명령들로 변환(translate)한다. 어레이 2에 대해 호스트 1이 생성한 I/O 요구들은 어댑터 B와 링크 2를 통해 어댑터 C로 발행된다. 어댑터 C는 이 요구들을 디스크 판독/기록 명령들로 변환한다. 이와 유사하게 어레이 2에 대해 호스트 2가 생성한 I/O 요구들은 어댑터 C로 직접 발행된다. 어댑터 C는 이 요구들을 디스크 판독/기록 명령들로 변환한다. 어레이 1에 대해 호스트 2가 생성한 I/O 요구들은 어댑터 D와 링크 4를 통해 어댑터 A로 발행된다. 그리고 나서, 어댑터 A는 이 요구들을 디스크 판독/기록 명령들로 번역한다. 도시된 예에서, 디스크는 분산형 패리티를 갖는 7 + P(7개의 데이터 디스크들과 1개의 패리티 디스크) 구성과 같은 두 개의 RAID 5 어레이들로서 구성된다. 이 디스크들은 결함에 내성이 있는 전원과 냉각기능이 있는(fault tolerant power and cooling) 외부 엔클로져(external enclosure)에 포장된다.
다른 한편으로, 디스크들은 8개의 RAID 1 어레이들로서 구성될 수 있다. 이 경우에, 각 어레이의 하나의 디스크는 각각의 호스트 컴퓨터에 포장될 수 있다. 또한, 어댑터들은 어레이들이 동일한 장치 루프(same device loop)에 존재하는 경우에 하나의 어레이에 대해서는 주 제어 어댑터로서 작용하고, 다른 어레이에 대해서는 보조 제어 어댑터로서 작용할 수 있다. 예를 들어, 만일 어댑터 A와 어댑터 B 간의 장치 루프에 연결된 2개의 3 + P RAID 5 어레이들이 존재하면, 어댑터 A는 하나의 3 + P 어레이를 구성하는 상부 드라이브 그룹(120)에 대한 주 제어 기능을 갖고, 두 번째 3 + P RAID 5 어레이를 구성하는 하부 드라이브 그룹(122)에 대해서는 보조 제어 기능을 갖는다. 그리고, 어댑터 D는 하부 그룹(122)에 대해서는 주 제어 기능을 갖고 상부 그룹(120)에 대해서는 보조 제어 기능을 갖는다. 또한, 호스트는 두 개 이상의 어댑터를 포함할 수 있다.
만약, 어떤 어댑터에 고장이 발생하면, 그것의 연산은 어댑터가 인계받아 수행한다. 호스트는 여전히 그 다른 어댑터를 통해 어레이들에 액세스할 수 있다.
어떤 어댑터에 고장이 발생하면, 이 어댑터에서 처리중에 있었던 원격 I/O 요구들은 근원 어댑터 카드(originating adapter card)의 SSA 게이트웨이에 의해 오류 발생을 알리고 종료된다. 다음에, 트랜잭션을 전송한 모듈은 보조 어댑터가 상기 어레이를 인계하였다는 것을 브로드케스트(broadcast)하기를 기대하면서 몇 초간 대기한다. 그런 다음, 실패한 트랜잭션은 보조 어댑터로 재전송될 수 있다.
SSA 어드레싱 기능(SSA addressing capabilities)은 호스트 루프가 128개의 어댑터까지 확장가능하게 한다. 매우 많은 수의 어댑터들을 갖는 호스트 루프는 그것이 거의 모든 I/O 요구들에 의해 공유되기 때문에, 근본적인 대역폭 제한을 갖는다. 요구들이 랜덤하게 분산된다고 가정하면, 대략 각각의 요구는 상기 루프를 도는 경로의 약 절반을 통해 이동해야 하며, 따라서 이용가능한 총 대역폭은 전이중(full duplex) 방식에서 초당 2×20, 즉 40 메가 바이트이다. 발생가능한 교착상태(deadlock)를 피하기 위해 SSA 프레임들은 루프의 하나의 노드 또는 하나의 링크를 통해 라우팅되지 않아야 한다. 기록에 대한 판독의 비율이 1 대 1인 경우에, 총 I/O 대역폭은 오버헤드를 무시하면, 초당 80 메가바이트이다. 호스트 루프를 멀티포트 SSA 스위치(multiport SSA switch)로 대체하면, 높은 대역폭(high bandwidth)이 얻어질 수 있다.
도8에 도시된 구성에서는, 하나의 어댑터 카드에서 수신되는 트랜잭션들의 일부만이 그 카드의 RAID 소프트웨어에 의해 처리되게 된다. 원격 자원으로 예정된 트랜잭션들은 SSA 게이트웨이를 통해 라우팅된다. SSA 게이트웨이는 그것이 찾고 있는 각각의 원격 어댑터를 어드레스하기 위해 노드 번호를 제공한다.
어레이의 일부가 되는 각각의 디스크는 제어 어댑터(controlling adapter)에 할당된다. 이 어댑터를 통상적으로 디스크의 주 어댑터(disk's primary adapter)라 한다. 각각의 디스크는 단지 2개의 어댑터를 가진 루프내에 존재한다. 각각의 어댑터에는 노드 번호가 할당된다. 이 번호는 호스트에 의해 공급되며, 유일한 식별자로서 간주될 수 있다. 어떤 어레이가 구축될 때, 디스크들에는 자동적으로 상기 어레이를 구축하기 위해 사용된 어댑터의 노드 번호를 표시한다. 또한, 디스크들에 상기 루프의 다른 어댑터의 노드 번호도 표시한다. 상기 다른 어댑터는 어레이 백업 어댑터이고 이를 보조 어댑터(secondary adapter)라고 부른다. 정상적인 동작중에 주 어댑터는 어레이 내의 디스크들을 제어하는 RAID 코드를 실행한다. 보조 어댑터는 주 어댑터의 지시에 따라 기록 캐쉬 및 비휘발성 메모리의 이중 카피만을 유지관리한다(후술할 것임). 만일 결함을 발견하면, 보조 어댑터는 주 어댑터의 연산을 인계받는다.
각각의 어댑터 카드는 소프트웨어 버스를 통해 액세스할 수 있는 중앙 서비스(control service)인 레지스트리를 포함한다. 레지스트리는 상기 시스템 내의 모든 어댑터들의 리스트와 모든 어레이들의 리스트를 유지관리한다. 도9를 참조하면, 어댑터 리스트(130)에서 각각의 엔트리는 노드 번호(131)를 포함한다.
어레이 리스트(133)에서 각각의 엔트리는 자원 ID(resource ID)(134)와 현재 그 어레이를 제어하는 (주 또는 보조) 어댑터의 노드 번호(135)를 포함한다. 자원 ID는 판독 및 기록을 위해 어레이를 오픈하기 위해 장치 드라이버에 의해 이용된다. 이 자원 ID는 타입(Type) 필드(137)와 자원 번호(138)로 구성된다, 타입 필드는 예를 들어, RAID 레벨 0, 1, 3, 또는 5와 같은 어레이 타입을 명시한다. 자원 번호는 어레이가 구성될 때 할당되는 유일한 식별자이다.
각각의 DASD는 패런트 어레어(parent array)가 구성될 때 생성되는 구성 레코드(Configuration Record)(140)를 저장한다. 구성 레코드는 자원 ID(141), 어레이 파라미터(142)(예를 들면, 스트라이프 크기(stripe size)), 어레이 내의 다른 DASD들의 일련 번호(143), 주 어댑터 노드(144), 및 보조 어댑터 노드(145)를 저장한다. 이들 모두는 호스트 구성 유틸리티(host configuration utility)를 사용하여 수동으로 할당된다. 또한, 구성 레코드는 현재 어레이를 제어하고 있는 것이 주 어댑터인지 또는 보조 어댑터인지를 나타내기 위한 플래그(146)를 포함한다. 이 플래그는 전술한 바와 같이 주 어댑터와 보조 어댑터들 내의 레지스트리들에 의해 관리된다.
레지스트리를 구축할 때, 어댑터는 어레이의 일부분인 각 디스크 상의 주 노드 번호(primary node number)를 조사하고, 만일 이 번호가 상기 어댑터에 속하면, 상기 디스크를 RAID 펌웨어에 전달한다. 만일 상기 어댑터가 특정 디스크에 대한 주 콘트롤러가 아니면, 다른 어댑터에 핑(Ping)을 수행하여 그것이 동작하는지를 판단한다. 만일 다른 어댑터가 동작하고 있지 않으면, 첫 번째 어댑터가 그 디스크에 대한 어레이 콘트롤러(array controller)로서의 역할을 수행한다. 이것은 페일-오버(fail-over)로 불린다. 레지스트리는 한 시스템으로부터 다른 시스템으로 디스크 페일-오버를 수행한다. 페일-오버는 어떤 어댑터가 다른 어댑터가 작동 어댑터(working adapter)로부터 결함 상태(failed state)로 전이되었다는 것을 확인할 때 발생한다. 이것이 발생하면, 페일-오버가 수행된다. 스위칭될 모든 디스크들은 예를 들어, SCSI 예약 명령(SCSI reserve command)에 의해 로크(lock)된다. 그리고 나서, 디스크가 주 어댑터에 의해 관리되는 것이 아니라 보조 어댑터에 의해 관리된다는 것을 나타내기 위해 각 디스크 상의 플래그가 변경된다. 그러면, 모든 디스크들이 릴리스될 수 있다. 만일 디스크들 중 어느 하나가 예약되지 않으면, 지금까지 예약되어 있던 모든 디스크들로부터 예약을 해제한다. 이 절차(process)는 백오프(back off)되었다가 소정의 주기 이후에 재시도된다. 만일 예약 주기 이후에도 여전히 오류가 발생하면, 모든 플래그들이 그들의 주 상태(primary state)로 복귀하고, 절차(process) 자체가 백오프(back off)되었다가 재시도된다. 만일 이런 절차 동안에 전원 결함이 발생한 후 전원이 복원(restore)되면, 이들 두 어댑터들은 불일치(inconsistency)를 인지하고, 디폴트(default)에 의해 모든 디스크들을 주 어댑터로 세팅한다.
페일-백(fail-back)은 앞서 기술한 페일-오버(fail-over) 절차의 반대개념이다. 이것은 어댑터 카드들이 둘다 작동할 때 발생한다. 이 절차는 주 어댑터에 주기적으로 핑(Ping)하여(신호하여) 그것이 복구되었는지를 판단하는 보조 어댑터에 의해 초기화된다. 만일 핑(Ping)이 성공하면, 보조 어댑터 상의 레지스트리(registry)는 그것이 주 어댑터로 역할을 반환하길 원한다는 것을 각 디스크의 RAID 콘트롤러에게 알려, 그 디스크가 릴리스되어야 한다는 것을 명시한다. 보조 어댑터의 RAID 콘트롤러는 먼저, 명시된 디스크들을 포함하는 어레이를 클로우즈(close)하고, 다음에 디스크 자체를 클로우즈(close)한다. 어레이 내의 모든 디스크들이 클로우즈(close)되면, 보조 어댑터내의 레지스트리는 전술한 바와 같이 디스크들을 로크(lock)하고 플래그를 다시 스위칭하여, 이들 디스크가 다시 주 어댑터에 의해 제어되도록 한다. 그리고 나서, 보조 어댑터는 상기 디스크들을 릴리스하고, 주 어댑터의 레지스트리에게 페일-백(fail-back) 절차가가 완료되었음을 알린다.
원하지 않는 페일-오버(fail-over)를 발생시키지 않고 시스템 전원이 오프되도록 하기 위해, 먼저 시스템은 그것이 오픈하여 어댑터 카드의 레지스트리에게 폐쇄(close down)를 통지한 모든 어레이들을 클로우즈(close)한다. 이어서, 주 어댑터상의 레지스트리는 그것이 폐쇄 상태라는 것을 보조 어댑터의 레지스트리에게 알린다. 이로 인해, 보조 어댑터 상의 레지스트리는 플래그를 리셋하게 되며, 그것이 주 어댑터가 작동하고 있다는 것을 알았음을 알린다. 페일-오버(fail-over)는 주 어댑터가 작동상태에서 결함상태로 전이했다는 것을 보조 어댑터가 알았을 때 발생하기 때문에, 주 어댑터의 후속 전원 중단(power down)은 페일-오버(fail-over)를 발생시키지 않는다.
디스크 어레이들은 주 어댑터와 보조 어댑터간의 SSA 루프에 배열된다. 디스크 또는 디스크와 어댑터 사이의 링크에 결함이 발생하는 경우에도, 양 어댑터가 여전히 모든 디스크들을 액세스할 수 있는데, 그 이유는 전송신호가 루프를 통해 양방향으로 라우팅될 수 있기 때문에다. 그러므로, 도7을 참조하면, 링크(101)에 결함이 발생한 경우에도, 어댑터 A1(86)은 전송신호(transmission)를 링크(102)를 통해 링크(104)로, 다시 어댑터 카드 A2의 인터페이스 칩을 통해 링크(103)로 전송함으로써 여전히 어레이 A(92)에 접근할 수 있다. 어댑터 카드 A2로의 이와 같은 전송신호는 어댑터 카드 A2 내의 소프트웨어에 의해 결코 처리되지 않는다. SSA 칩은 이 메시지가 루프 내의 다른 어레이를 향해 프레임들을 라우팅하기 위한 것이며 이 요구는 그 어레이로 전송된다는 것을 감지한다. 또한, 이것은 어레이 B(93)의 SSA칩들에게도 적용된다.
전술한 절차(process)는 컷-쓰루 라우팅(cut-through routing)으로 불리며, 이것은 SSA 트랜스포트 계층 내의 표준 기능이다. 또한, 컷-쓰루 라우팅(cut-through routing)은 데이터 액세스 요구를 근원 어댑터(originating adapter)로부터 어레이에 대한 제어 어댑터(controlling adapter)로 전송하기 위해서도 이용된다. 각각의 이중 포트 노드(어댑터 또는 디스크 드라이브)는 SSA 칩 내의 하드웨어 라우터를 포함한다. 이 라우터는 어드레스 필드의 첫 번째 바이트를 조사하여 프레임을 루프내의 다음 노드로 전송할 것인지 여부를 판단한다. 근원 어댑터(originating adapter)는 단지 루프를 통해 요구를 전송하는 경우에만 프레임 어드레스 필드에 주 어댑터의 경로 어드레스를 부여한다.
경로는 시스템 전원이 켜져 있는 상태(power-on)에서 결정된다. 개시자 어댑터(initiator adapter)는 구성을 판단하고 각 노드에 대한 엔트리를 갖는 구성 테이블(configuration table)을 구축하기 위해 네트워크를 "워킹(walk)"한다. 각각의 엔트리는 그 노드의 경로 어드레스도 포함한다. 만일 대체 경로들이 존재하면, 개시자는 일반적으로 가장적은 링크를 이용하는 경로를 선택한다. 이것은 어떤 링크가 분리된 경우에는 달라질 수 있다.
장치 드라이버는 요구한 데이터를 포함하는 어레이를 식별한다. 그러면, 장치는 그 어레이가 지역적으로(locally) 제어되는지 판단하기 위해 어댑터상의 레지스트리에 질의한다. 호스트가 하나 이상의 어댑터들을 포함하는 경우에, 장치 드라이버는 (지역적으로 제어되는 경우에) 요구한 데이터를 포함하는 어레이를 주 제어하는 어댑터로 요구를 전송한다. 만약 그렇지 않으면, 원격 어레이들에 대해, 장치 드라이버는 각 어댑터를 통해 어레이들의 절반씩을 어드레싱하거나 또는 각 어댑터를 통해 교대로 요구들을 전송함으로써, 어댑터들 간에 부하(load)를 평형시키기 위해 노력한다.
비휘발성 RAM의 내용은 주 어댑터에 의해 보조 어댑터의 비휘발성 RAM에 미러(mirror)된다. RAID 모듈들은 이것을 보조 어댑터 카드 상의 SSA 게이트웨이 및 비휘발성 RAM 관리자(manager)를 통해 수행한다.
정상적인 동작중에, 주 어댑터는 어레이의 어떤 영역이 갱신되는지를 나타내는 메타 데이터와 유사하게, 보조 어댑터에서 주 어댑터의 기록 캐쉬의 이중 카피(duplex copy)를 유지관리하기 위해 장치 루프(device loop)를 이용한다. 이것은 기록 캐쉬 내의 데이터의 손실 없이 또는 어레이의 파괴 없이 주 어댑터로부터 보조 어댑터로의 페일-오버(fail-over)를 수행할 수 있도록 한다.
주 어댑터가 기록 명령을 수행할 때, 주 어댑터는 또한 데이터의 카피(copy)를 보조 어댑터 내의 기록 캐쉬로 전송한다. 주 어댑터는 기록 캐쉬로부터 디스크로 데이터를 디스테이지(destage)할 때, 어레이의 어떤 영역이 갱신되고 있는지를 나타내기 위한 메시지를 보조 어댑터로 전송한다. 이들 두 어댑터들은 디스테이지(destage)가 완료되기 전의 전원 결함으로 인해 발생하는 문제를 방지하기 위해, 통상적으로 비휘발성 메모리에 이러한 정보를 저장한다. 주 어댑터가 데이터를 디스테이지(destage)하고 패리티를 갱신하면, 그것은 제2 메시지를 보조 어댑터로 전송한다. 그러면, 보조 어댑터는 그것의 기록 캐쉬와 비휘발성 메모리로부터 대응하는 레코드들을 삭제한다.
비록 본 발명이 바람직한 실시예를 참조하여 도시 및 설명되었지만, 본 발명이 속하는 기술 분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 사상 및 범위를 벗어나지 않고, 그 형태 및 세부사항에 다양한 변형이 이루어질 수도 있다는 것을 이해할 것이다.
전술한 바와 같은 본 발명에 따르면, 종래 기술의 여러 단점들을 없애면서, 각각의 저장 어레이 상의 데이터가 어떤 호스트 컴퓨터에 의해서도 액세스될 수 있도록 다수의 저장 어레이들 상에 다수의 호스트 컴퓨터들을 위한 데이터를 저장하기 위한 시스템을 제공할 수 있는 효과가 있다.

Claims (12)

  1. 임의의 저장 장치 상의 데이터가 어떤 호스트 컴퓨터에 의해서도 액세스될 수 있도록 저장 장치들의 다수의 어레이들 상에 다수의 호스트 컴퓨터들을 위한 데이터를 저장하기 위한 시스템에 있어서,
    호스트 컴퓨터에 각각 관련되어 있으며, 지정된 어레이의 주 제어(primary control) 기능을 각각 갖고 있는 다수의 어댑터;
    피어-투-피어 통신(peer to peer communication)을 위한 상기 어댑터들 사이의 어댑터 통신 상호연결 수단(adapter communication interconnect) - 여기서, 호스트 컴퓨터로부터 그 어댑터에 의해 주 제어되지 않는 어레이에 대한 관련 어댑터로의 데이터 액세스 요구는 어댑터 통신 인터페이스를 통해 상기 어레이의 주 제어 기능을 가진 어댑터로 전달됨 - ; 및
    다수의 보조 어댑터 - 여기서, 상기 각각의 보조 어댑터는 하나의 호스트 컴퓨터와 관련되어 있으며, 지정된 어레이의 보조 제어 기능을 가지며, 하나의 보조 어댑터는 상기 지정된 어레이를 주 제어하는 어댑터가 이용불가능한 경우에 상기 지정된 어레이를 제어함 -
    를 포함하고,
    상기 지정된 어레이에 관해 주 제어 기능을 가진 어댑터와 보조 제어 기능을 가진 어댑터는 서로 다른 호스트 컴퓨터에 존재하는
    데이터 저장 시스템.
  2. 제 1 항에 있어서,
    각각의 어댑터에 저장되어, 상기 어댑터에 의해 주 제어되는 저장 장치들을 나타내기 위한 식별자
    를 더 포함하는 데이터 저장 시스템.
  3. 제 1 항에 있어서,
    각각의 저장 어레이에 저장되어, 상기 저장 어레이의 주 제어 기능을 가진 어댑터를 식별하기 위한 식별자
    를 더 포함하는 데이터 저장 시스템.
  4. 제 1 항에 있어서,
    각각의 어댑터는 하나의 호스트 컴퓨터에 존재하는
    데이터 저장 시스템.
  5. 제 1 항에 있어서,
    제1 호스트 컴퓨터는 제1 어레이를 주 제어하는 제1 어댑터와 제2 어레이를 보조 제어하는 제2 어댑터를 포함하고;
    제2 호스트 컴퓨터는 상기 제1 어레이를 보조 제어하기 위한 제3 어댑터와 상기 제2 어레이를 주 제어하기 위한 제4 어댑터를 포함하는
    데이터 저장 시스템.
  6. 제 1 항에 있어서,
    상기 어댑터 내에 포함되어, RAID 스킴(scheme)에 따라 어레이에 저장된 데이터를 분배하기 위한 RAID 콘트롤러 펑션(RAID controller functions)
    을 더 포함하는 데이터 저장 시스템.
  7. 제 1 항에 있어서,
    상기 어댑터 통신 인터페이스는 SSA 인터페이스인
    데이터 저장 시스템.
  8. 다수의 저장 장치 어레이 상의 다수의 호스트 컴퓨터를 위한 데이터에 액세스하기 위한 방법에 있어서,
    a) 적어도 하나의 어댑터를 각각의 호스트 컴퓨터와 관련시키는 단계;
    b) 제1 어댑터를 제1 저장 어레이에 대한 주 콘트롤러로서 제1 호스트와 관련시키는 단계;
    c) 모든 어댑터들 사이에 통신 상호연결 수단(communication interconnect)을 관련시키는 단계;
    d) 상기 제1 호스트로부터 상기 호스트와 관련된 제1 어댑터로 데이터 액세스 요구를 전송하는 단계;
    e) 요구한 데이터가 상기 제1 어댑터에 의해 주 제어되는 상기 제1 저장 어레이에 저장되어 있는지를 식별하는 단계;
    f) 상기 제1 어댑터에 의해 주 제어되는 상기 제1 저장 어레이에 저장되지 않은 상기 요구한 데이터에 대한 데이터 액세스 요구를 상기 통신 상호연결 수단을 통해 상기 요구한 데이터를 포함하는 저장 어레이를 주 제어하는 어댑터로 전송하는 단계;
    g) 제2 저장 어레이에 대한 보조 콘트롤러로서 상기 제1 어댑터를 관련시키는 단계 - 여기서, 상기 보조 어댑터는 상기 제2 저장 어레이를 주 제어하는 어댑터를 포함하는 호스트 컴퓨터가 아닌 다른 호스트 컴퓨터에 존재함 -
    h) 상기 제1 저장 어레이를 주 제어하는 상기 제1 어댑터가 이용불가능한지 여부를 판단하는 단계; 및
    i) 제1 지정된 저장 어레이의 주 제어 기능을 가진 제1 어댑터가 이용불가능한 경우에 상기 제1 지정된 저장 어레이에 대한 콘트롤러로서 상기 제1 저장 어레이에 대한 보조 제어 기능을 가진 제2 어댑터를 이용하는 단계
    를 포함하는 데이터 액세스 방법.
  9. 다수의 호스트 컴퓨터와 다수의 저장 어레이를 포함하는 네트워킹된 컴퓨터 시스템 - 여기서, 상기 각각의 호스트 컴퓨터는 그 안에 제1 저장 어레이를 주 제어하고 제2 저장 어레이를 보조 제어하는 어댑터 카드를 포함하고, 시스템 내의 모든 어댑터 카드들 사이에 통신 상호연결 수단을 포함함 - 에서, 상기 어댑터 카드들과 함께 이용하기 위한 컴퓨터 프로그램 제품에 있어서,
    상기 다수의 저장 어레이들 상에 저장된 데이터에 대해 상기 모든 호스트 컴퓨터들에 대한 액세스를 제공하기 위해 그 안에 구현된 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 컴퓨터 이용가능 매체를 포함하고, 상기 컴퓨터 프로그램 제품은,
    (1) 제1 호스트 컴퓨터와 관련된 제1 어댑터 카드가 상기 제1 호스트 컴퓨터로부터의 데이터 액세스 요구를 수신하도록 하기 위한 컴퓨터 판독가능 프로그램 코드 수단;
    (2) 상기 요구한 데이터가 상기 제1 어댑터에 의해 주 제어되는 저장 어레이에 저장되었는지를 식별하기 위한 컴퓨터 판독가능 프로그램 코드 수단;
    (3) 상기 제1 어댑터에 의해 주 제어되는 저장 어레이에 저장되지 않은 데이터에 대한 데이터 액세스 요구를 상기 통신 상호연결 수단을 통해 상기 요구한 데이터를 포함하는 저장 어레이를 주 제어하는 어댑터 카드로 전송하기 위한 컴퓨터 판독가능 프로그램 코드 수단; 및
    (4) 제1 주 어댑터가 고장난 경우에 제2 호스트 컴퓨터에 존재하는 보조 어댑터로 하여금 상기 제1 주 어댑터에 대한 제1 어레이의 제어 기능을 인계받을 수 있도록 하기 위한 컴퓨터 판독가능 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  10. 임의의 저장 장치 상의 데이터가 어떤 호스트 컴퓨터에 의해서도 액세스될 수 있도록 저장 장치들의 다수의 어레이들 상에 다수의 호스트 컴퓨터들을 위한 데이터를 저장하기 위한 시스템에 있어서,
    다수의 어댑터 - 여기서, 각각의 어댑터는 호스트 컴퓨터와 관련되어 있으며, 또한, 각각의 어댑터는 제1 어레이의 주 제어(primary control) 기능과 제2 어레이의 보조 제어 기능을 갖고 있으며, 보조 어댑터는 지정된 어레이를 주 제어하는 주 어댑터가 이용불가능한 경우에 상기 지정된 어레이를 제어하고, 제1 어댑터는 제1 어레이의 주 제어 기능과 제2 어레이의 보조 제어 기능을 가지며, 제2 어댑터는 제2 어레이의 주 제어 기능과 제1 어레이의 보조 제어 기능을 가짐 - ; 및
    피어-투-피어 통신(peer to peer communication)을 위한 상기 어댑터들 사이의 어댑터 통신 상호연결 수단(adapter communication interconnect) - 여기서, 호스트 컴퓨터로부터 그 관련 어댑터에 의해 주 제어되지 않는 어레이에 대한 관련 어댑터로의 데이터 액세스 요구는 어댑터 통신 인터페이스를 통해 상기 어레이의 주 제어 기능을 가진 어댑터로 전달됨 - ;
    을 포함하는 데이터 저장 시스템.
  11. 제 16 항에 있어서,
    상기 제1 및 제2 어댑터는 동일한 호스트 컴퓨터에 존재하는
    데이터 저장 시스템.
  12. 다수의 호스트 컴퓨터와 다수의 저장 어레이를 포함하는 네트워킹된 컴퓨터 시스템 - 여기서, 상기 각각의 호스트 컴퓨터는 그 안에 제1 저장 어레이를 주 제어하고 제2 저장 어레이를 보조 제어하는 적어도 하나의 어댑터를 포함하고, 상기 다수의 저장 어레이들 상에 저장된 데이터에 대해 상기 모든 호스트 컴퓨터들에 대한 액세스를 제공하기 위해 컴퓨터 시스템 내의 모든 어댑터 카드들 사이에 통신 상호연결 수단을 포함함 - 에 이용하기 위한 제조 물품에 있어서,
    상기 제조 물품은 컴퓨터 판독가능 매체에 구현된 컴퓨터 프로그램 명령을 포함하고, 상기 컴퓨터 프로그램 명령은 상기 컴퓨터 시스템으로 하여금,
    (1) 제1 호스트 컴퓨터로부터의 데이터 액세스 요구를 상기 제1 호스트 컴퓨터와 관련된 제1 어댑터로 전송하도록 하고;
    (2) 상기 요구한 데이터가 상기 제1 어댑터에 의해 주 제어되는 상기 제1 저장 어레이에 저장되어 있는지를 식별하도록 하고;
    (3) 상기 제1 어댑터에 의해 주 제어되는 제1 저장 어레이에 저장되지 않은 상기 요구한 데이터에 대한 데이터 액세스 요구를 상기 통신 상호연결 수단을 통해 상기 요구한 데이터를 포함하는 저장 어레이를 주 제어하는 어댑터로 전송하도록 하고;
    (4) 상기 제1 저장 어레이를 주 제어하는 상기 제1 어댑터가 이용불가능한지 여부를 판단하도록 하고; 및
    (5) 제1 지정된 저장 어레이의 주 제어 기능을 가진 제1 어댑터가 이용불가능한 경우에 상기 제1 지정된 저장 어레이에 대한 콘트롤러로서 상기 제1 저장 어레이에 대한 보조 제어 기능을 가진 제2 어댑터를 이용하도록 하는
    제조 물품.
KR1019960034092A 1995-09-19 1996-08-17 어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법 KR100261378B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP95-258162 1995-09-11
US08/528,287 1995-09-14
US08/531,239 US5768623A (en) 1995-09-19 1995-09-19 System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
US08/531,239 1995-09-19
US8/531,239 1995-09-19
JP7-241705 1995-09-20

Publications (2)

Publication Number Publication Date
KR970016918A KR970016918A (ko) 1997-04-28
KR100261378B1 true KR100261378B1 (ko) 2000-07-01

Family

ID=24116835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960034092A KR100261378B1 (ko) 1995-09-19 1996-08-17 어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법

Country Status (5)

Country Link
US (1) US5768623A (ko)
EP (1) EP0769744B1 (ko)
JP (1) JPH0981527A (ko)
KR (1) KR100261378B1 (ko)
DE (1) DE69636663T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766356B1 (ko) * 2005-11-28 2007-10-12 후지쯔 가부시끼가이샤 데이터 스토리지 시스템 및 데이터 스토리지 제어 장치

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3456018B2 (ja) * 1993-07-26 2003-10-14 ソニー株式会社 情報送出システム
US6118931A (en) * 1996-04-15 2000-09-12 Discreet Logic Inc. Video data storage
GB2312319B (en) * 1996-04-15 1998-12-09 Discreet Logic Inc Video storage
CA2201679A1 (en) 1996-04-15 1997-10-15 Raju C. Bopardikar Video data storage
JPH1078852A (ja) * 1996-09-04 1998-03-24 Nec Corp マルチアレイディスク装置
US6173376B1 (en) * 1996-10-03 2001-01-09 International Business Machines Corp. Data backup and restore method and system in a multisystem environment
JPH10134485A (ja) * 1996-10-30 1998-05-22 Toshiba Corp ストレージ共有型分散マルチメディアサーバシステム
US6029231A (en) * 1996-12-03 2000-02-22 Emc Corporation Retrieval of data stored on redundant disks across a network using remote procedure calls
JPH10198526A (ja) 1997-01-14 1998-07-31 Fujitsu Ltd Raid装置及びそのアクセス制御方法
JP3563907B2 (ja) * 1997-01-30 2004-09-08 富士通株式会社 並列計算機
US6014383A (en) * 1997-02-10 2000-01-11 Compaq Computer Corporation System and method for controlling multiple initiators in a fibre channel environment
US6185203B1 (en) * 1997-02-18 2001-02-06 Vixel Corporation Fibre channel switching fabric
US6118776A (en) 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
KR100551191B1 (ko) * 1997-05-16 2006-05-25 매그나칩 반도체 유한회사 컴퓨터 시스템에서의 논리 유니트 유일 식별 방법
JP3228182B2 (ja) 1997-05-29 2001-11-12 株式会社日立製作所 記憶システム及び記憶システムへのアクセス方法
US5948075A (en) * 1997-06-04 1999-09-07 International Business Machines Corporation System for identifying operating parameters in a storage enclosure having each of first connector only for specifying a physical location associated with each of backplane interfaces
US5986880A (en) * 1997-06-16 1999-11-16 Compaq Computer Corporation Electronic apparatus having I/O board with cable-free redundant adapter cards thereon
US6145006A (en) * 1997-06-25 2000-11-07 Emc Corporation Method and apparatus for coordinating locking operations of heterogeneous host computers accessing a storage subsystem
US6009535A (en) * 1997-06-30 1999-12-28 Emc Corporation SCSI adaptor failover for a disk drive system
US5937428A (en) * 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
US6088330A (en) * 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6317800B1 (en) 1997-11-17 2001-11-13 Seagate Technology Llp System for reducing arbitrated-loop overhead by maintaining control of a communications channel as long as a predetermined amount of data is available within control of channel node
US6006342A (en) * 1997-12-11 1999-12-21 International Business Machines Corporation Failover and failback system for a direct access storage device
US6151659A (en) * 1997-12-22 2000-11-21 Emc Corporation Distributed raid storage system
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
WO1999063438A1 (en) 1998-06-05 1999-12-09 Mylex Corporation Apparatus, system and method for n-way raid controller
US6421711B1 (en) * 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6032269A (en) * 1998-06-30 2000-02-29 Digi-Data Corporation Firmware recovery from hanging channels by buffer analysis
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6282584B1 (en) * 1998-08-18 2001-08-28 International Business Machines Corporation Structure and method for reading/writing signature commands from/to a plurality of controller pairs
US6412079B1 (en) * 1998-10-09 2002-06-25 Openwave Systems Inc. Server pool for clustered system
US6397345B1 (en) * 1998-10-09 2002-05-28 Openwave Systems Inc. Fault tolerant bus for clustered system
US6330687B1 (en) * 1998-11-13 2001-12-11 Digi-Data Corporation 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
US6542961B1 (en) 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
JP4400895B2 (ja) 1999-01-07 2010-01-20 株式会社日立製作所 ディスクアレイ制御装置
US6317839B1 (en) 1999-01-19 2001-11-13 International Business Machines Corporation Method of and apparatus for controlling supply of power to a peripheral device in a computer system
US6449731B1 (en) * 1999-03-03 2002-09-10 Tricord Systems, Inc. Self-healing computer system storage
US6341356B1 (en) 1999-03-25 2002-01-22 International Business Machines Corporation System for I/O path load balancing and failure which can be ported to a plurality of operating environments
JP2000278290A (ja) * 1999-03-29 2000-10-06 Matsushita Electric Ind Co Ltd ネットワーク管理システム
JP3376316B2 (ja) * 1999-05-19 2003-02-10 日本電気株式会社 ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体
JP4864210B2 (ja) * 1999-05-20 2012-02-01 イヴァン, チョン−ション ホワン, 作業グループサーバー実施の方法と装置
JP3987241B2 (ja) * 1999-07-29 2007-10-03 株式会社東芝 系間情報通信システム
US6543004B1 (en) * 1999-07-29 2003-04-01 Hewlett-Packard Development Company, L.P. Method and apparatus for archiving and restoring data
US6295587B1 (en) * 1999-09-03 2001-09-25 Emc Corporation Method and apparatus for multiple disk drive access in a multi-processor/multi-disk drive system
JP3952640B2 (ja) * 1999-09-07 2007-08-01 株式会社日立製作所 データバックアップ方法、メインフレーム系ストレージシステムおよびメインフレームホストコンピュータ
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US6944654B1 (en) * 1999-11-01 2005-09-13 Emc Corporation Multiple storage array control
CA2391353A1 (en) * 1999-11-12 2001-06-21 Crossroads Systems, Inc. Encapsulation protocol for linking storage area networks over a packet-based network
US6965934B1 (en) 1999-11-12 2005-11-15 Crossroads Systems, Inc. Encapsulation protocol for linking storage area networks over a packet-based network
US6487680B1 (en) * 1999-12-03 2002-11-26 International Business Machines Corporation System, apparatus, and method for managing a data storage system in an n-way active controller configuration
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
US7657727B2 (en) * 2000-01-14 2010-02-02 Hitachi, Ltd. Security for logical unit in storage subsystem
US6684209B1 (en) * 2000-01-14 2004-01-27 Hitachi, Ltd. Security method and system for storage subsystem
JP4651230B2 (ja) 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
US6615375B1 (en) * 2000-02-03 2003-09-02 International Business Machines Corporation Method and apparatus for tolerating unrecoverable errors in a multi-processor data processing system
US6772270B1 (en) 2000-02-10 2004-08-03 Vicom Systems, Inc. Multi-port fibre channel controller
US6877044B2 (en) * 2000-02-10 2005-04-05 Vicom Systems, Inc. Distributed storage management platform architecture
US6851005B1 (en) * 2000-03-03 2005-02-01 International Business Machines Corporation Apparatus and method for implementing raid devices in a cluster computer system
US6643795B1 (en) * 2000-03-30 2003-11-04 Hewlett-Packard Development Company, L.P. Controller-based bi-directional remote copy system with storage site failover capability
US6601187B1 (en) 2000-03-31 2003-07-29 Hewlett-Packard Development Company, L. P. System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween
JP4462711B2 (ja) * 2000-04-18 2010-05-12 株式会社日立製作所 記憶システム
JP4719957B2 (ja) * 2000-05-24 2011-07-06 株式会社日立製作所 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法
US7080133B1 (en) 2000-07-17 2006-07-18 International Business Machines Corporation Method and system for configuring a computer network
US6505307B1 (en) * 2000-09-06 2003-01-07 Unisys Corporation Method and apparatus for ensuring data integrity
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6678768B1 (en) * 2000-10-06 2004-01-13 International Business Machines Corporation Method and apparatus for configuring redundant array of independent disks (RAID)
US6954881B1 (en) 2000-10-13 2005-10-11 International Business Machines Corporation Method and apparatus for providing multi-path I/O in non-concurrent clustering environment using SCSI-3 persistent reserve
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
KR20020032136A (ko) 2000-10-25 2002-05-03 박성훈 메모리를 이용한 대용량 보조기억장치
US6845467B1 (en) 2001-02-13 2005-01-18 Cisco Systems Canada Co. System and method of operation of dual redundant controllers
US7418620B1 (en) 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
US6961868B2 (en) * 2001-02-16 2005-11-01 Swsoft Holdings, Ltd. Fault tolerant storage system and method using a network of servers
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6941252B2 (en) 2001-03-14 2005-09-06 Mcdata Corporation Striping data frames across parallel fibre channel links
US6675242B2 (en) * 2001-03-17 2004-01-06 Hewlett-Packard Development Company, L.P. Communication bus controller including designation of primary and secondary status according to slot position
US7209973B2 (en) 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
GB2374749B (en) * 2001-04-20 2005-04-06 Discreet Logic Inc Image data processing
US6996674B2 (en) * 2001-05-07 2006-02-07 International Business Machines Corporation Method and apparatus for a global cache directory in a storage cluster
US7023869B2 (en) * 2001-05-10 2006-04-04 Emc Corporation Data storage system with one or more integrated server-like behaviors
JP2003044230A (ja) * 2001-05-23 2003-02-14 Hitachi Ltd 記憶装置システム
US7543100B2 (en) * 2001-06-18 2009-06-02 3Par, Inc. Node controller for a data storage system
JP4156817B2 (ja) * 2001-07-27 2008-09-24 株式会社日立製作所 記憶装置システム
US7055056B2 (en) * 2001-11-21 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for ensuring the availability of a storage system
US6892167B2 (en) * 2001-11-28 2005-05-10 Sypris Data Systems, Inc. Real-time data acquisition and storage network
US6643735B2 (en) * 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
KR100445425B1 (ko) * 2001-12-24 2004-08-25 한국전자통신연구원 분산 레이드 제어기 환경에서의 부하 분산 방법
US7552289B2 (en) * 2002-01-18 2009-06-23 Rasilient, Inc. Method and apparatus for arbitrating access of a serial ATA storage device by multiple hosts with separate host adapters
US7290277B1 (en) * 2002-01-24 2007-10-30 Avago Technologies General Ip Pte Ltd Control of authentication data residing in a network device
US6820172B2 (en) * 2002-03-25 2004-11-16 International Business Machines Corporation Method, system, and program for processing input/output (I/O) requests to a storage space having a plurality of storage devices
US7013364B2 (en) * 2002-05-27 2006-03-14 Hitachi, Ltd. Storage subsystem having plural storage systems and storage selector for selecting one of the storage systems to process an access request
US7213158B2 (en) 2002-06-28 2007-05-01 Lenovo (Singapore) Pte. Ltd. Distributed autonomic backup
US7672226B2 (en) * 2002-09-09 2010-03-02 Xiotech Corporation Method, apparatus and program storage device for verifying existence of a redundant fibre channel path
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US20040068591A1 (en) * 2002-10-03 2004-04-08 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US6879526B2 (en) * 2002-10-31 2005-04-12 Ring Technology Enterprises Llc Methods and apparatus for improved memory access
US7415565B2 (en) * 2002-10-31 2008-08-19 Ring Technology Enterprises, Llc Methods and systems for a storage system with a program-controlled switch for routing data
US7707351B2 (en) * 2002-10-31 2010-04-27 Ring Technology Enterprises Of Texas, Llc Methods and systems for an identifier-based memory section
US7197662B2 (en) * 2002-10-31 2007-03-27 Ring Technology Enterprises, Llc Methods and systems for a storage system
JP2004164072A (ja) * 2002-11-11 2004-06-10 Hitachi Ltd ディスク制御装置およびディスク制御装置の制御方法
JP4352693B2 (ja) * 2002-12-10 2009-10-28 株式会社日立製作所 ディスクアレイ制御装置及びその制御方法
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US7089357B1 (en) * 2003-09-22 2006-08-08 Emc Corporation Locally buffered cache extensions having associated control parameters to determine use for cache allocation on subsequent requests
US7058758B2 (en) * 2003-10-16 2006-06-06 International Business Machines Corporation Load balancing to support tape and disk subsystems on shared fibre channel adapters
US7619974B2 (en) * 2003-10-31 2009-11-17 Brocade Communication Systems, Inc. Frame traffic balancing across trunk groups
US7593336B2 (en) 2003-10-31 2009-09-22 Brocade Communications Systems, Inc. Logical ports in trunking
US7296117B2 (en) * 2004-02-12 2007-11-13 International Business Machines Corporation Method and apparatus for aggregating storage devices
US7296116B2 (en) * 2004-02-12 2007-11-13 International Business Machines Corporation Method and apparatus for providing high density storage
US7702757B2 (en) * 2004-04-07 2010-04-20 Xiotech Corporation Method, apparatus and program storage device for providing control to a networked storage architecture
US7814293B2 (en) 2004-07-19 2010-10-12 Infotrend Technology Inc. Redundant controller host-side IO rerouting
US20060020720A1 (en) * 2004-07-23 2006-01-26 Lsi Logic Corporation Multi-controller IO shipping
US7681105B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
US7681104B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for erasure coding data across a plurality of data stores in a network
US7493370B2 (en) 2004-10-29 2009-02-17 International Business Machines Corporation Two stage method for dynamically determining primary adapter in a heterogeneous N-way adapter configuration
US7568121B2 (en) * 2004-11-16 2009-07-28 International Business Machines Corporation Recovery from failure in data storage systems
JP2006195759A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd ディスク接続ユニット、ディスクパッケージ、ディスク装置、ディスク接続方法
US20060218436A1 (en) * 2005-03-25 2006-09-28 Dell Products L.P. System, method and software using a RAID device driver as backup for a RAID adapter
US7797394B2 (en) * 2005-04-18 2010-09-14 Dell Products L.P. System and method for processing commands in a storage enclosure
JP4327130B2 (ja) * 2005-06-24 2009-09-09 富士通株式会社 ディスクアレイアクセス動的制御装置、及び方法
US20070038749A1 (en) * 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
US11080138B1 (en) 2010-04-26 2021-08-03 Pure Storage, Inc. Storing integrity information in a vast storage system
US10866754B2 (en) 2010-04-26 2020-12-15 Pure Storage, Inc. Content archiving in a distributed storage network
US10154034B2 (en) * 2010-04-26 2018-12-11 International Business Machines Corporation Cooperative data access request authorization in a dispersed storage network
US11340988B2 (en) 2005-09-30 2022-05-24 Pure Storage, Inc. Generating integrity information in a vast storage system
TWI315475B (en) * 2006-09-01 2009-10-01 Via Tech Inc Control method and control system for multiple host bus adapters
GB2446177A (en) * 2007-02-03 2008-08-06 Katherine Bean Data storage system
US20100011176A1 (en) * 2008-07-11 2010-01-14 Burkey Todd R Performance of binary bulk IO operations on virtual disks by interleaving
US8255476B2 (en) * 2009-03-30 2012-08-28 International Business Machines Corporation Automated tape drive sharing in a heterogeneous server and application environment
US10956292B1 (en) 2010-04-26 2021-03-23 Pure Storage, Inc. Utilizing integrity information for data retrieval in a vast storage system
JP2013530448A (ja) * 2010-05-05 2013-07-25 マーベル ワールド トレード リミテッド キャッシュストレージアダプタアーキテクチャ
US9015519B2 (en) * 2012-01-31 2015-04-21 Symantec Corporation Method and system for cluster wide adaptive I/O scheduling by a multipathing driver
US20160004460A1 (en) * 2013-10-29 2016-01-07 Hitachi, Ltd. Computer system and control method
JP6185668B2 (ja) * 2014-07-25 2017-08-23 株式会社日立製作所 ストレージ装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3693161A (en) * 1970-07-09 1972-09-19 Burroughs Corp Apparatus for interrogating the availability of a communication path to a peripheral device
CH608902A5 (ko) * 1975-04-21 1979-01-31 Siemens Ag
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4396984A (en) * 1981-03-06 1983-08-02 International Business Machines Corporation Peripheral systems employing multipathing, path and access grouping
US4455605A (en) * 1981-07-23 1984-06-19 International Business Machines Corporation Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4747047A (en) * 1985-12-06 1988-05-24 Unisys Corporation Data transfer system using two peripheral controllers to access dual-ported data storage units
JPH0827705B2 (ja) * 1990-07-25 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション アダプタ
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5280586A (en) * 1991-10-03 1994-01-18 Compaq Computer Corp. Expandable communication system using data concentration
JPH05252228A (ja) * 1992-03-02 1993-09-28 Mitsubishi Electric Corp データ伝送装置及びその通信路管理方法
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
US5337414A (en) * 1992-09-22 1994-08-09 Unisys Corporation Mass data storage and retrieval system
US5386517A (en) * 1993-01-26 1995-01-31 Unisys Corporation Dual bus communication system connecting multiple processors to multiple I/O subsystems having a plurality of I/O devices with varying transfer speeds
US5553230A (en) * 1995-01-18 1996-09-03 Hewlett-Packard Company Identifying controller pairs in a dual controller disk array

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766356B1 (ko) * 2005-11-28 2007-10-12 후지쯔 가부시끼가이샤 데이터 스토리지 시스템 및 데이터 스토리지 제어 장치

Also Published As

Publication number Publication date
KR970016918A (ko) 1997-04-28
EP0769744B1 (en) 2006-11-02
JPH0981527A (ja) 1997-03-28
DE69636663D1 (de) 2006-12-14
EP0769744A3 (en) 2004-03-03
US5768623A (en) 1998-06-16
EP0769744A2 (en) 1997-04-23
DE69636663T2 (de) 2007-08-16

Similar Documents

Publication Publication Date Title
KR100261378B1 (ko) 어댑터들이상이한호스트컴퓨터에존재하는어레이에대한주콘트롤러및보조콘트롤러로서작용하도록함으로써복수의저장어레이를공유하기위한시스템및방법
US6654831B1 (en) Using multiple controllers together to create data spans
US6601138B2 (en) Apparatus system and method for N-way RAID controller having improved performance and fault tolerance
US6553408B1 (en) Virtual device architecture having memory for storing lists of driver modules
US7133967B2 (en) Storage system, controller, control method and program product therefor
US6553389B1 (en) Resource availability determination mechanism for distributed data storage system
JP4643539B2 (ja) メモリシステムおよびその使用方法
US6578158B1 (en) Method and apparatus for providing a raid controller having transparent failover and failback
US6571354B1 (en) Method and apparatus for storage unit replacement according to array priority
US7020731B2 (en) Disk array control device with two different internal connection systems
US6446141B1 (en) Storage server system including ranking of data source
US6839788B2 (en) Bus zoning in a channel independent storage controller architecture
US6970972B2 (en) High-availability disk control device and failure processing method thereof and high-availability disk subsystem
US7664909B2 (en) Method and apparatus for a shared I/O serial ATA controller
US7437493B2 (en) Modular architecture for a network storage controller
US7028078B1 (en) System and method for performing virtual device I/O operations
EP0535807A2 (en) Linear and orthogonal expansion of array storage in multiprocessor computing systems
US7203801B1 (en) System and method for performing virtual device I/O operations
US20030065836A1 (en) Controller data sharing using a modular DMA architecture
KR20020012539A (ko) 공유된 디스크 어레이 관리 기능을 구현하기 위한 방법 및시스템
TW201403352A (zh) 集群中的虛擬共享儲存空間
US20050071546A1 (en) Systems and methods for improving flexibility in scaling of a storage system
JP2004530972A (ja) 障害の存在下で完全な性能を維持するファイルサーバのツイン接続フェールオーバ
JP4721379B2 (ja) ストレージシステム、ディスク制御クラスタおよびディスク制御クラスタの増設方法
US7752340B1 (en) Atomic command retry in a data storage system

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: 20130327

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee