KR940001269B1 - 다수의 디스크 유니트들의 페어링 최적화 방법 - Google Patents

다수의 디스크 유니트들의 페어링 최적화 방법 Download PDF

Info

Publication number
KR940001269B1
KR940001269B1 KR1019900021286A KR900021286A KR940001269B1 KR 940001269 B1 KR940001269 B1 KR 940001269B1 KR 1019900021286 A KR1019900021286 A KR 1019900021286A KR 900021286 A KR900021286 A KR 900021286A KR 940001269 B1 KR940001269 B1 KR 940001269B1
Authority
KR
South Korea
Prior art keywords
disk
protection
level
units
disk unit
Prior art date
Application number
KR1019900021286A
Other languages
English (en)
Other versions
KR910014815A (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 KR910014815A publication Critical patent/KR910014815A/ko
Application granted granted Critical
Publication of KR940001269B1 publication Critical patent/KR940001269B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/2056Error 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 by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

내용 없음.

Description

다수의 디스크 유니트들의 페어링 최적화 방법
제1a도는 디스크 베어링(pairing)이 요망되는 간단한 컴퓨터 시스템의 하드웨어 다이어그램.
제1b도는 제1a도의 컴퓨터 시스템에 대한 세그먼트 리스트(list) 및 선택된 페어링을 보여주는 도면.
제2a도는 디스크 페어링이 요망되는 더 복잡한 컴퓨터 시스템의 하드웨어 다이어그램.
제2b도는 제2a도의 컴퓨터 시스템에 대한 세그먼트 리스트, 예비 리스트 및 예비적으로 선택된 페어링을 보여주는 도면.
제2c도는 제2a도의 컴퓨터 시스템에 대한 세그먼트 리스트 및 최종적으로 선택된 페어링을 보여주는 도면.
제2d도는 구성 변화가 실시되기 전의 또다른 컴퓨터 시스템의 하드웨어 다이어그램.
제3도 내지 제8도는 본 발명의 흐름도.
제9a도 내지 제9c도는 본 발명의 디스플레이 화면 (display screen)을 보여주는 도면.
* 도면의 주요부분에 대한 부호의 설명
10,11,12 : 컴퓨터 시스템 81,91,92 : 세그먼트
93 : 예비 리스트
본 발명은 데이터 처리 분야에 관한 것으로서, 특히, 컴퓨터 시스템내의 디스크 유니트들이 최적의 방법으로 페어링(pairing)되도록 하는 것에 관한 것이다.
디스크 유니트 미러링(Disk Unit Mirroring)을 사용하는 컴퓨터 시스템은 서로의 미러(mirror)로 지정되는 (designated as mirrors of one another) 한쌍의 디스크 유니트에 동일한 데이터의 사본(identical copies of data)을 유지한다. 미러 한 쌍에서(in a mirrored pair) 디스크 유니트 하나가 고장나면, 시스템은 고장난 유니트가 수리되고 그 유니트의 데이터의 사본이 재구축 될 (rebuilt)때 까지 그 미러 한 쌍의 다른 유니트에 있는 데이터를 사용할 수 있다. 만일 디스크 유니트를 입출력 제어기가 고장나서 그 유니트의 미러가 다른 제어기에 연결되어 있으면, 시스템은 그 다른 제어기에 연결된 디스크 유니트를 사용하여 여전히 계속 작동될 수 있다. 마찬가지로, 한 입출력 프로세서 또는 버스에 연결되는 모든 디스크 유니트가 다른 입출력 프로세서 또는 버스에 연결된 다른 디스크 유니트와 미러 한 쌍이 되면(mirrored by disk units), 시스템은 입출력 프로세서 또는 버스의 고장을 극복하고 계속 작동될 수 있다.
데이터가 헤드 파손으로 인하여 파괴될때 또는 데이터가 부품 고장으로 인하여 일시적으로 사용될 수 없을때[이하 "액세스불가 데이타(inaccessible data)"라고 총괄하여 지칭한다]와 같이 데이터가 액세스될 수 없는 상황에 대하여 보호하는 미러식 컴퓨터 시스템(mirrored computer system)의 능력은 하드웨어가 연결되는 방식과 디스크 유니트가 미러 한 쌍으로 배열되는 방식에 직접적으로 관련이 있다. 동일한 하드웨어가 우수한 보호를 제공 할 수도 있고 불량한 보호를 제공할 수도 있다.
단일 하드웨어 고장점(single hardware falure points)의 수를 줄여서 보호 레벨을 증가시키기 위해서는 한쌍의 디스크 유니트로부터 시스템으로의 하드웨어 경로가 가능한한 많이 중복될(duplicated) 수 있어야(미러식이 될수 있어야)한다. 이러한 디스크 유니트의 페어링에는 하드웨어의 물리적 접속에 관한 전문적인 이해가 요구된다. 또한 디스크 유니트를 페어링하고자 할때에는 다른 시스템에 대하여 알아야하고 미러링을 하는데 어떤 제약이 있는지도 알아야 하며 만일 그러한 제약, 예를들어 미러쌍인 디스크 유니트들은 독립적으로 서비스할 수 있어야 한다던가 페어링에 사용될 디스크 디바이스의 종류는 같은 것이어야 한다등과 같은 제약이 있다면, 이를 알아서 그러한 제약을 따라야 한다.
미러링을 위하여 디스크 유니트들을 수동으로 제어링하는 것은 어렵고, 시간이 많이 걸리고 실수가 있기 쉬우며, 그 결과 유용하지 못한 구성 또는 최적의 페어링 및 보호에 못미치는 구성이 종종 초래된다.
디스크 유니트를 추가하거나 없앨때, 컴퓨터 시스템을 재배선할때, 또는 고장난 유니트가 예비품으로 교체될때와 같이 컴퓨터 시스템의 구성이 바뀔 때마다, 미러링을 위하여 디스크 유니트를 수동으로 미러링하는데 따른 문제점이 크게 노출되어졌다. 액세스불가 데이터에 대한 컴퓨터 시스템의 보호레벨은 구성 변화가 있을 때마다 사용자도 모르는 사이에 감소될 수 있다. 이것은, 사용자가 자기의 컴퓨터 시스템의 보호레벨에 대한 안전성에 대해 잘못된 인식(false sense of security)을 가질 수 있으므로, 분명히 바람직하지 않다. 사용자가 적절히 보호를 받으려면 디스크 유니트의 페어링이 필요하며, 자기의 컴퓨터 시스템의 디스크 유니트가 다시 페어링될 필요가 있는지 판단하려면 전문가를 불러야 할 것이다.
본 발명의 주 목적은 디스크 유니트 페어링의 자동화된 방법을 제공하는 것이다.
본 발명의 다른 목적은 액세스불가 데이터에 대한 컴퓨터 시스템의 보호 레벨을 최적화하는 미러식 시스템에서 디스크 유니트 페어링의 자동화 방법을 제공하는 것이다.
본 발명의 또다른 목적은 이전에 페어링된 디스크 유니트를 갖는 컴퓨터 시스템에서의 구성 변화를 검출하고, 구성변화가 더 낮은 보호 레벨을 초래하면 디스크 유니트를 다시 페어링하는 것이다.
이러한 목적 및 다른 목적은 본 명세서에서 기술된 컴퓨터 제어에 의한 디스크 유니트의 최적 페어링 발명에 의해 달성된다.
컴퓨터 시스템은 디스크 격납 용기(disk enclosure)내에서 제어기에 접속된 하나 이상의 디스크 유니트들을 포함하고 있다. 하나 이상의 디스크 격납 용기는 입출력 프로세서에 접속된다. 하나 이상의 입출력 프로세서는 버스에 연결된다. 컴퓨터 시스템은 하나 이상의 버스를 포함할 수 있다.
컴퓨터 시스템에서 디스크 유니트 페어링은 같은 디바이스형을 갖는 모든 디스크 유니트들을 어드레스에의해 소팅(sorting)함으로써 시작된다. 세그먼트란 디스크 격납 용기당(per disk enclosure)같은 수의 디스크 유니트들을 갖는 동일한 디바이스형인 디스크 유니트들의 각 군(each group)을 정의한 것이다. 첫번째로 처리되는 세그먼트는 디스크 격납 용기당 가장 높은 수의 디스크 유니트들을 포함한다. 가능한 곳에서는, 디스크 유니트들은 다른 버스상의 다른 디스크 유니트들과 페어링을 한다. 이것은 컴퓨터 시스템에서 데이타 손실 또는 부품의 고장으로 인한 액세스불가 데이터에 대한 가장 높은 보호 레벨을 제공한다. 이것이 불가능한 곳에서는, 나머지 디스크 유니트들은 다른 입출력 프로세서상의 디스크 유니트들과 페어링 한다. 이것은 그 다음 높은 보호 레벨을 제공한다. 이것이 불가능한 곳에서는, 나머지 디스크 유니트는 다른 제어기상의 디스크 유니트들과 페어링 한다. 이갓은 그 다음 높은 보호 레벨을 제공한다. 이것이 불가능한 곳에서는, 나머지 디스크 유니트들은 다른 디스크 격납 용기 상에 놓인 디스크 유니트들과 페어링 한다. 이것은 그 다음 높은 보호 레벨을 제공한다. 이것이 불가능한 곳에서는, 나머지 디스크 유니트들은 임계(threshold) 보호 레벨 아래로 떨어지고 따라서 동일 세그먼트내에서는 페어링은 불가능하다. 임계 보호 레벨은 컴퓨터 시스템의 성질에 따라 상향 또는 하향으로 조절될 수 있다. 나머지 세그먼트는 동일한 방법으로 처리된다.
결국 디스크 유니트들이 자신들이 속하는 세그먼트내에서 페어링될 수 없다면, 그들은 예비 디스크 유니트 리스트(이하 예비 리스트라 한다)에 올려지며, 이러한 예비 리스트에 올려진 디스크 유니트들끼리 페어링하려는 시도가 여러번 수행된다. 이러한 시도가 모두 실패하면, 가장 낮은 보호 레벨로 페어링된 디스크 유니트들을 해체(brok en apart)하여 이 예비 리스트에 추가하게되는데, 그렇게 한후 예비 리스트에 있는 디스크 유니트들 페어링하는 시도가 다시 있게 된다. 가장 낮은 보호 레벨로 페어링된 디스크 유니트들을 해체하여 그들을 예비 리스트에 추가하는 과정은 컴퓨터 시스템내의 모든 디스크 유니트들이 페어링될 때까지 계속된다.
모든 디스크 유니트들이 페어링된 후, 페어링 되어 있는 디스크 유니트들간에 서로의 메이트(mate : 짝)를 바꿈으로써 보로레벨이 증가될 수 있는지를 알아보기 위해서 하나의 페어링된 디스크 유니트들을 다른 페어링된 디스크 유니트들과 비교한다. 이러한 페어링된 디스크 유니트들간의 쌍의 비교는 보호 레벨이 최적으로 될때까지 반복된다.
컴퓨터 시스템이 시동될때마다, 구성 변화가 더 낮은 보호 레벨을 초래했는지를 판단하기 위해서 검사를 한다. 보호레벨이 낮아졌다면 보호 레벨을 증가시키기 위해 컴퓨터 시스템상의 디스크 유니트들이 다시 페어링되기를 원하는 지에 대하여 사용자에게 질문한다.
이하, 본 발명을 첨부된 도면을 참조하여 더욱 상세히 설명한다.
제1a도는 본 발명의 컴퓨터 시스템(10)의 하드웨어 다이어그램을 보여준다. 프로세서(20)는 버스(21) 및 버스(22)에 접속된다. 버스(21)는 입출력 프로세서(31 및 32)에 접속된다. 버스(22)는 입출력 프로세서(33 및 34)에 접속된다. 입출력 프로세서(31)는 디스크 격납 용기(41 및 42)에 접속된다. 디스크 격납 용기(41)는 제어기( 51) 및 디스크 유니트(61 및 62)를 포함한다. 디스크 격납 용기(42)는 제어기(52)와디스크 유니트(63 및 64)를 포함한다. 입출력 프로세서(32)는 디스크 격납 용기(43)에 접속된다. 디스크 격납 용기(43)는 제어기(53)와 디스크 유니트(65 및 66)를 포함한다. 입출력 프로세서(33)는 디스크 격납 용기(44 및 45)에 접속된다. 디스크 격납 용기(44)는 제어기(54)와 디스크 유니트(67 및 68)를 포함한다. 디스크 격납 용기( 45)는 제어기(55)와 디스크 유니트(69 및 70)를 포함한다. 입출력 프로세서(34)는 디스크 격납 용기(46)에 접속된다. 디스크 격납 용기(46)는 제어기(56)와 디스크 유니트(71 및 72)를 포함한다. 제1도의 본 발명의 실시예에서, 컴퓨터 시스템(10)은 IB M 응용 시스템/400 (IBM Application System/400) 중형(midrange) 컴퓨터이다. 그러나 본 발명은 디스크 유니트 페어링을 필요로하는 어떠한 컴퓨터 시스템에도 사용될 수 있다.
제2a도는 본 발명의 컴퓨터 시스템(11)의 하드웨어 다이어그램을 보여준다. 컴퓨터 시스템(11)은 제1a도의 컴퓨터 시스템(10)과 거의 동일하나, 입출력 프로세서(3 4)가 디스크 격납 용기(46)에 접속되지 않고 그대신, 입출력 프로세서(35)가 제어기( 57) 및 제어기(58)에 직접 접속되어 있다는 것에 유의할 필요가 있다. 제어기(57)는 디스크 유니트(73)에 접속되고, 제어기(58)는 디스크 유니트(74)에 접속된다.
제3도 내지 제8도에 도시된 본 발명의 흐름도는 제1a도, 제2a도 및 제2d도의 적절히 프로그램된 프로세서(20)가 액세스불가 데이터에 대한 보호 레벨을 증가시키기 위해 어떻게 동작하는지를 보여준다. 제1a도의 컴퓨터 시스템(10)의 디스크 유니트들이 어떻게 페어링하는지 보여주기 위해 제3도 내지 제8도를 우선 설명하기로 한다. 그후에, 더 복잡한 컴퓨터 시스템(11)의 디스크 유니트들이 어떻게 페어링되는지 설명하기 위해서 제3도 내지 제8도를 다시 참조하기로 한다. 마지막으로, 제3도 내지 제8도는 제2d도의 컴퓨터 시스템(12)의 변화된 구성이 어떻게 보호 레벨의 감소를 초래하고 , 사용자에게 이 사실이 어떻게 알려지고, 사용자는 디스크 유니트가 다시 페어링되기를 어떻게 요구할 수 있는지를 보여준다.
이제 제3도를 참조하면, 단계(101)에서는 사용자가 페어링을 개시하기를 원하는지를 판단한다. 사용자가 원하면, 단계(131)에서는, 디바이스형마다 짝수(even nu mber)개의 디스크 유니트가 있는지 알아보기 위해 검사한다. 짝수가 아니면, 페어링을 할 수 없고, 단계(132)에서 에러 메시지가 표시되고, 프로그램은 단계(120)에서 끝난다. 단계(131)에서 "예"이면, 단계(200)에서 제4도의 페어링 서브루우틴이 호출된다. 이제 제4도를 참조하면, 단계(201)에서는 한 디바이스형내에서 입출력 어드레스에 의해 모든 디스크 유니트들을 소팅(sort)한다. 제1a도의 컴퓨터 시스템(10)의 모든 디스크 유니트들은 동일한 디바이스형이다. 제1a도의 디스크 유니트들(61 내지 72)은 각각 관련된 입출력 어드레스를 갖는다. 이러한 예의 목적으로, 디스크 유니트들(61 내지 72)은 61 내지 72라는 어드레스를 가지고 이에 따라 소팅된다고 가정한다. 단계(202)에서는 처리할 디바이스형이 있는지를 판단한다. 처리할 한가지 디바이스형이 있으므로, 단계(202)에서는 "예"로 대답된다.
단계(204)에서는 디스크 격납 용기당 동일한 수의 디스크 유니트들을 갖는 디스크 유니트들의 각 군을 하나의 세그먼트로 정의한다. 컴퓨터 시스템(10)은 각각 동일한 수의 디스크 유니트들 즉, 2개씩 가지고 있는 여섯개의 디스크 격납용기(41 내지 46)을 포함한다. 따라서, 단계(204)에서는 이군을 하나의 세그먼트로 정의한다. 단계( 205)에서는 처리할 세그먼트가 있는지를 판단한다. 처리할 세그먼트가 1개 있으므로, 단계(206)에서는 그 유일한 세그먼트를 디스크 격납 용기당 가장 높은 수의 디스크 유니트들을 갖는 세그먼트로 선택한다. 단계(207)에서는 이 세그먼트의 세그먼트 디바이더(divider)가 디스크 유니트(66) 디스크 유니트(67)사이에 있도록 선택한다. (제1b도) 단계(207)에서는 또한 필요하다면 이 세그먼트의 세그먼트 디바이더가 디스크 격납 용기 사이에 있도록 조정한다. 이것은 디스크 격납 용기와 디스크 격납 용기간의 페어링을 촉진하기 위해 행하여진다. 한 스크 격납 용기가 고장났을때 고장난 디스크 격납 용기를 수리하거나 교체할때까지는 단 한개의 다른 디스크 격납 용기만 계속 작동되면 되므로 이러한 페어링은 바람직하다. 이러한 조정은 이 세그먼트의 세그먼트 디바이더가 이미 디스크 격납 용기(43) 및 디스크 격납 용기(44) 사이에 있으므로 컴퓨터 시스템(10)에는 필요하지 않다.
본 발명의 양호한 실시예에 있어서, 단계(208)에서는 이 세그먼트의 윗부분에서 세그먼트 디바이더에 가장 가까운 디스크 유니트(디스크 유니트 66)로부터 시작하고, 이 디스크 유니트에 대한 잠재적 메이트(mate)를 세그먼트의 아랫 부분에 있는 디스크 유니트에서 세그먼트 디바이더에 가장 가까운 디스크 유니트로부터 시작하여 선택한다(selects a potential mate for this disk unit with the disk unit in the lower portion of the segment, starting with the disk unit closest to the segment divid er). 이 예에서, 단계(208)에서는 우선 디스크 유니트(67)를 디스크 유니트(66)에 대한 잠재적 메이트로 선택한다. 단계(300)에서는 그 다음에 제5도에 있는 보호 레벨 계산 서브루우틴을 호출한다.
여전히 본 발명의 정신 및 범위내에 속하면서 여기서 소개한 본 발명의 양호한 실시예의 선택 방법과는 다르게 잠재적 메이트를 선택하는 다른 실시예도 고려해 보았다. 예를들면, 다른 선택 방법은 첫번째 디스크 유니트 및 그의 첫번째 잠재적 메이트를 선택하기 위해 이 세그먼트의 관련 부분의 처음에서 시작하고(start at the biginning of the relevant portion of the segment) 다음번의 잠재적 메이트를 선택하기 위해 리스트를 아래로 따라가면서 작업해 나가는 것이다.
이제 제5도를 참조하면, 보호 레벨 게산 서브루우틴은 잠재적 디스크 유니트 쌍 (66 및 67)에 대한 보호 레벨을 결정한다. 단계(321)에서는 보호 레벨을 영으로 초기화시킨다. 본 명세서에서 "보호 레벨"은 단일 부품 고장점(failure point)으로 인한 액세스불가 데이터가 발생하는 것을 최소화하는 능력으로서 정의된다. 보호 레벨은 액세스불가 데이타를 초래하게 되는 부품 고장점이 가장 적을때 가장 높다. 반대로, 보호 레벨은 액세스불가 데이타를 일으키게 되는 부품 고장점이 가장 많을때 가장 낮다. 본 발명의 양호한 실시예의 컴퓨터 시스템의구조에서, 버스 레벨 보호(bus level protecti on)가 가장 양호하고, 32점(point)이라는 임의의 값이 주어진다. 입출력 프로세서 레벨 보호가 그 다음으로 양호하고, 16점의 값이 주어진다. 제어기 레벨 보호가 그 다음으로 양호하고, 8점의 값이 주어진다. 디바이스 레벨 보호가 그 다음으로 양호하고, 4점의 값이 주어진다. 임계 보호 레벨은 3의 값이 주어진다. 이 값들은 임의의 설계 선택값이고 컴퓨터 시스템의 구조 및 다른 인자에 의하여 변할 수 있다.
단계(301)에서는 이러한 디스크 유니트가 다른 버스상에 있는지를 판단한다. 디스크 유니트(66)는 버스(21)상에 있고, 디스크 유니트(67)는 버스(22)상에 있으므로(제1a도), 단계(301)에서는 "예"대답되고 단계(302)에서 이 쌍에 대한 보호 레벨을 버스 레벨의 보호(32점)와 같게 설정한다. 이것은 컴퓨터 시스템(10)이 단일 부품 고장으로 인한 액세스불가 데이타를 갖지 않을 것이므로 컴퓨터 시스템(10)에서의 액세스불가 데이터에 대한 가장 높은 보호 레벨이다. 서브루우틴은 단계(310)에서 제4b도의 단계(220)로 복귀한다.
단계(220)에서는 상기 임의의 값으로 정해져 있는 보호레벨 점수외에 보호레벨 점수에 가산해 줄 수 있는 다른 요소들이(이들"2차적 인자"라하자)있다면 이에 대한 점수도 보호 레벨 계산 서브루우틴에서 결정된 보호 레벨 값에 더한다. 2차적 인자들은 보호레벨 계산 서브루우틴에서 같은 보호 레벨을 갖는것으로 나타나 잠재적 메이트 들간에 보호레벨의 우열을 판정하기 위해 사용된다. 2차적 인자의 한 예는 각각의 디스크 격납 용기에서 같은 위치를 차지하는 디스크 유니트들끼리 페어링하고자 하는 요망이다. 다시 말하면, 심리학적 및 유용성 이유로서, 한 디스크 격납 용기에서 왼쪽 위치를 차지하는 디스크 유니트를 다른 디스크 격납 용기에서 왼쪽 위치를 차지하는 다른 디스크 유니트와 페어링 하는 것이 바람직하다. 다른 2차적 인자들의 예로서(미러링을 시작시의 효과를 높이기 위해) 풀 디스크 유니트(a full disk unit)를 공 디스크 유니트(an empty disk unit)와 페어링하고자 하는 선호도 (preference)를 단계(220)에서 고려해 볼 수 있다. 2차적 인자도 수치값이 (numeric values)주어지나, 이 값은 보호 레벨 계산 서브루우틴에 의해 할당되는 가장 낮은 보호 레벨 값보다 낮은 값이다.
이 예에서는, 다음과 같은 2차적 인자가 하나 있다고 가정할 수 있다 ; 즉, 디스크 격납 용기내에서 왼쪽 대 왼쪽 및 오른쪽 대 오른쪽 페어링하는 것을 보호레벨 계산시 2차적 인자로 고려해 넣을 수 있다. 이 2차적 인자는 2라는 임의의 값이 할당된다.
단계(220)에서는 디스크 유니트(66)가 격납 용기에서 "오른쪽"위치를 차지하고 디스크 유니트(67)는 "왼쪽" 위치를 차지하는 것을 판단한다. 따라서, 이 2차적 인자의 조건은 만족되지 않고, 버스 레벨의 보호를 가지므로써 이 잠재적 한쌍이 얻은 32점에 추가 점수가 가산되지 않는다.
단계(221)에서는 이 잠재적 메이트가 이전의 잠재적 메이트보다 더 높은 보호 레벨을 가지는지를 판단한다. 더 높은 보호 레벨을 가진다면, 단계(211)에서는 새로운 가장 양호한 잠재적 메이트를 세이브(save)한다. 이 예에서, 단계(211)에서는 디스크 유니트(67)가 지금까지 처리된 유일한 잠재적 메이트이므로 이것을 가장 양호한 메이트로 세이브할 것이다. 단계(210)에서는 디스크 유니트(66)에 대한 다른 잠재적 메이트가 세그먼트의 아랫 부분에 있는지를 판단한다. 디스크 유니트(66 내지 72)는 모두 디스크 유니트(66)에 대한 잠재적 메이트이므로, 제어의 흐름은 모든 잠재적 메이트에 대해서 단계(208,300,220,221,211 및210)사이에서 순환한다 (loop). 이 예에서, 보호 레벨 계산 서브루우틴은 모든 잠재적 메이트가 버스 레벨의 보호(32점)을 가진다고 결정하나, 단계(220)에서는 디스크 유니트들(68,70 및 72)에서 디스크 격납 용기의 "오른쪽"위치에 놓여 있다고 해서 추가로 2점을 준다. 디스크 유니트(66)는 추가 점수가 주어지는 첫번째 디스크 유니트였으므로, 이것은 가장 양호한 잠재적 메이트로 고려된다.
단계(212)에서는 디스크 유니트(66) 및 디스크 유니트(68)의 보호 레벨이 임계 보호 레벨을 초과하는지를 판단한다. 본 발명의 양호한 실시예에서, 버스 레벨의 보호가 가장 양호하고, 입출력 프로세서 레벨의 보호, 제어기 레벨의 보호 및 디바이스 레벨의 보호의 순서로 양호하다. 본 발명의 양호한 실시예에서 임계 보호 레벨은 디바이스 레벨의 보호 이하로 설정되는데, 이것은 페어링되는 두 디스크 유니트가 같은 디스크 격납 용기에 있으면, 페어링은 허용불가하며 수행되지 않는 것을 의미한다. 임계 보호 레벨은 원하는 최소 보호 레벨에 근거하여 조정될 수 있다는 것에 유의할 필요가 있다. 예를들면, 보다 복잡한 컴퓨터 시스템에서는 임계 보호 레벨을 더 높게 설정하기를 원할 수도 있다.
최선으로부터 최악에까지 이르는 보호 레벨은 특정 컴퓨터 시스템의 구조에 기초하여 다르게 정해질 수 있다. 예를들면, 컴퓨터 시스템의 구조가 단일 버스에 직접 접속되는 디스크 격납 용기를 가지며, 가장 높은 보호 레벨은 디바이스 레벨의 보호가 될 것이다. 이 교체 실시예에서, 제5도는 단계(321)를 단계(311)에 바로 후속하여 단계(301 내지 306)를 바이패스하도록 수정될 것이다.
이 예에있어서, 단계(212)에서는 디스크 유니트들(66,68)에 대한 보호 레벨이 임계 보호 레벨을 초과한다고 판단하고, 단계(213)에서는 유니트(66)를 유니트 (68)와 페어링한다. 단계(212)에서 "아니오"로 대답되었으면, 디스크 유니트는 페어링되지 않는다. 어느 경우에도, 제어의 흐름은 단계(214)로 이동하는데, 여기에서 세그먼트의 윗쪽 부분에 처리할 디스크 유니트가 더 있는지를 판단한다. 이 예에서, 디스크 유니트( 65 내지 61)는 아직 처리되어야 하므로, 단계(214)에서는 "예"로 대답되고 제어의 흐름은 리스트에 있는 다음 디스크 유니트, 즉 디스크 유니트(65)에 대한 잠재적 메이트를 선택하기 위해서 단계(208)로 복귀한다. 세그먼트의 윗부분에 있는 모든 디스크 유니트에 대한 페어링의 시도가 끝날때까지 단계 (208 내지 221)가 반복된다.
디스크 유니트들(65 내지 61)은 상기와 같은 방법으로 페어링된다. 모두 버스 레벨의 보호를 제공한 아랫쪽 세그먼트에 있는 메이트를 찾을 수 있었다. 디스크 유니트(65)는 디스크 유니트(67)와 페어링되었다. 마찬가지로, 디스크 유니트들 (61,62, 63 및 64)은 디스크 유니트들(71, 72, 69 및 70)과 각각 페어링되었다. 제1b도는 세그먼트에 있는 디스크 유니트가 어떻게 페어링되었는지 보여준다.
다시 제4b도를 참조하면, 단계(214)에서 고려할 윗부분의 디스크 유니트가 더이상 없다고 판단하여, 단계(215)에서 페어링되지 않는 모든 디스크 유니트들을 예비 리스트에 올려놓는다. 모든 디스크 유니트가 성공적으로 페어링되었으므로, 어떠한 디스크 유니트도 예비 리스트에 올려지지 않으며, 제어의 흐름은 처리할 또다른 세그먼트가 있는지 알아보기 위해 단계(205)로 지행한다. 이 예에서는 하나의 세그먼트가 있었으므로, 단계(205)에서는 "아니오"로 대답되고, 단계(202)에서는 처리할 다른 디바이스형을 갖는 디스크 유니트가 있는지를 판단한다. 각 디바이스형은 미러링의 호환성을 확실히 하기 위해 본 발명의 양호한 실시예에서 따로따로 처리된다. 이 예에서, 모든 디스크 유니트들은 같은 디바이스형을 가졌으므로, 단계(202)에서는 "아니오"로 대답되고, 서브루우틴은 단계(205)에서 제3도의 단계 (103)로 복귀한다.
제3도의 단계(103)에서는 예비 리스트에 디스크 유니트가 있는지를 판단한다. 디스크 유니트들은 잠재적 페어링이 임계 보호 레벨을 초과하지 않기 때문에 페어링될 수 없거나 또는 세그먼트의 윗부분이 세그먼트의 아랫부분과 다른 수의 디스크 유니트를 가지고 있으면 예비 리스트에 올려진다. 이 예에서, 모든 디스크 유니트들은 성공적으로 페어링 되었으므로, 단계(103)에서는 "아니오"로 대답되고, 따라서 제6a도의 단계(400)의 예비 디스크 유니트 페어링 서브 루우틴을 스키핑한다(skip). 제6a도의 예비 디스크 유니트 페어링 서브루우틴은 나중에 제2a도의 컴퓨터 시스템(11)에서의 디스크 유니트들의 페어링을 논의할때 상세하게 논의하고자 한다.
다시 제3도를 참조하면, 단계(500)에서는 제7도의 최적화 서브루우틴을 호출한다. 이 서브루우틴은 선택된 페어링이 디스크 유니트 쌍사이에서 메이트를 교환하므로써 최적화될 수 있는지를 판단한다. 이제 제7도를 참조하면, 단계(501)에서는 하나의 디바이스형의 최적화할 디스크 유니트들이 있는지를 판단한다. 이 예에서, 모든 디스크 유니트들(61 내지 72)은, 기술된 바와같이, 동일한 디바이스형을 가지고 있으므로 최적화할 디바이스형은 하나만 포함한다. 단계(502)에서는 디스크 유니트 쌍의 첫번째 군을 검사한다. 이 예에서, 쌍(61+71) 및 쌍(62+72)이 먼저 검사된다. 단계(503)에서는 교환하면 더 높은 보호 레벨이 발생되는지를 알아보기 위해서 이 디스크 유니트의 쌍 사이에서 메이트를 잠재적으로 교환한다. 따라서, 단계(503)에서는 디스크 유니트들(62 및 71)뿐만 아니라 디스크 유니트들(61 및 72)을 잠재적 메이트로 고려한다.
제5도의 보호 레벨 계산 서브루우틴은 단계(300)에서 호출되고, 기술된 것과 같은 방법으로 동작하고 단계(504)로 복귀한다. 이 서브루우틴은 잠재적 한쌍(61 및 72)과 잠재적 한쌍(62 및 71)둘다 버스 레벨의 보호를 가진다고 결정한다. 단계(504)에서는 쌍(61+71) 및 쌍(62+72)도 또한 버스 레벨의 보호를 가졌으므로 메이트를 교환하는 것이 더 나은 보호 레벨을 제공하지 않을 것으로 판단한다. 따라서, 단계(504 )에서는 "아니오"로 대답되고, 제어의 흐름은 또다른 쌍의 군을 검사하기 위해 단계(5 02)로 다시 진행한다. 제어의 흐름은 모든 쌍의 군이 검사될때까지 단계(502 내지 50 4)사이를 순환한다. 이 예에서 컴퓨터 시스템(10)의 모든 디스크 유니트 쌍은 버스 레벨의 보호를 가지므로, 단계(504)에서는 언제나 "아니오"로 대답되므로 단계(505)에서 어떠한 유니트도 메이트를 교환하여 다시 페어링되지 않는다. 단계(502)에서 검사할 쌍의 군이 더이상 없다고 판단되면, "아니오"로 대답되고, 단계(501)로 복귀한다. 단계(501)에서 최적화할 디스크 유니트의 디바이스형이 더이상 없다고 판단하면, 서브루우틴은 단계(510)에서 제3도의 단계 (110)로 복귀한다.
제3도를 다시 참조하면, 단계(110)에서 컴퓨터 시스템의 각 디스크 유니트에 대해 선택된 페어링을 보여주는 화면이 사용자에게 나타난다. 제1a도의 컴퓨터 시스템 (10)에 대한 이런 화면의 예가 제9a도에 도시되었다. 이 화면은 컴퓨터 시스템(10)에 있어서 디스크 유니트의 각각의 메이트에 대한 보호 레벨을 확인하여 주고 사용자에게 허용 여부를 묻는다. 사용자는 보호 레벨을 보고서 보호 레벨을 개선하기 위해 부품을 더 추가하거나 또는 가지고 있는 부품을 다르게 접속하여 하드웨어를 재구성하는 것이 바람직하다고 판단할 수도 있다. 이 경우에, 사용자는 페어링을 거부할 것이며, 단계(1 11)에서 "아니오"로 대답되고, 프로그램은 단계(120)에서 종료된다. 사용자가 페어링을 받아들이면, 단계(112)에서는 받아들인 페어링을 가지고 컴퓨터 시스템의 미러 조작(mirror the computer system with the accepted pairings)이 종래의 방법으로 진행된다. 이 예에서, 이것은 동일한 데이타가 디스크 유니트(71)상에서와 마찬가지로 디스크 유니트(61)상에도 포함되는 것을 의미한다. 마찬가지로, 동일한 데이타가 디스크 유니트[(62 및 72), (63 및 69), (64와 70), (65와 67) 및 (66과 68)]상에 있다. 이렇게 하고 나면, 컴퓨터 시스템(10)은 단일 부품이 버스, 입출력 프로세서, 제어기, 디스크 격납 용기, 또는 디스크 유니트이든지간에, 그 단일 부품 고장점으로 인한 액세스를 데이타에 대해 보호된다. 제1b도는 세그먼트(81)가 어떻게 형성되고, 세그먼트(81 )에 포함된 디스크 유니트가 어떻게 페어링되었는지 보여준다.
제2a도는 제1a도의 컴퓨터 시스템(10)보다 더 복잡한 페어링 과정을 수반하는 컴퓨터 시스템(11)을 도시한다. 제3도 내지 제8도의 흐름도를 컴퓨터 시스템 (10)의 디스크 유니트들이 어떻게 제어링되는지 설명하기 위해 다시 참조할 것이다. 상기한 바와같이, 컴퓨터 시스템(11)은 입출력 프로세서(34)가 디스크 격납 용기(46)에 접속되지 않는 것을 제외하고는 제1a도의 컴퓨터 시스템(10)과 거의 동일하다. 그 대신에, 입출력 프로세서(35)는 직접 제어기(57) 및 제어기(58)에 접속된다. 제어기(57)는 디스크 유니트(73)에 접속되고, 제어기(58)는 디스크 유니트(74)에 접속된다. 따라서, 디스크 유니트들(73 및 74)은, 나머지 디스크 유니트들과 다르게, 각각 그들 자체의 디스크 격납 용기[동일번호로 디스크격납 용기(73 및 74)로 지칭된다]에 혼자 있는 것으로 생각된다. 따라서, 디스크 격납 용기 (73 및 74)는 컴퓨터 시스템(11)내의 모든 다른 디스크 격납 용기보다 작은 수의 디스크 유니트들을 갖는다.
이제 제3도를 참조하면, 단계(101)에서는 사용자가 페어링을 개시하기를 원하는지를 판단한다. 사용자가 원한다면, 단계(131)에서 짝수의 디스크 유니트가 있다고 판단한 후 제4도의 페어링 서브루우틴이 단계(200)에서 호출된다. 이제 제4도를 참조하면, 단계(201)에서 모든 디스크 유니트들을 디바이스형내에서 입출력 어드레스에 의해 소팅한다. 제2a도의 컴퓨터 시스템(11)의 모든 디스크 유니트들은 동일한 디바이스형이다. 단계(202)에서는 처리할 디바이스형이 있는지를 판단한다. 처리한 디바이스형이 하나 있으므로, 단계(202)에서 "예"로 대답된다. 제2a도의 디스크 유니트(61 내지 70) 및 디스크 유니트(73 내지 74)들은 각각 관련된 입출력 어드레스를 가진다. 이 예의 목적으로, 디스크 유니트들(61 내지 70) 및 디스크 유니트들(73 내지 74)은 해당 디바이스 어드레스로서 61 내지 70 및 73 내지 74를 갖고, 이에 따라 소팅되는 것으로 가정한다.
단계(204)에서는 디스크 격납 용기당 같은 수의 디스크 유니트들을 갖는 디스크 유니트들의 각 군을 하나의 세그먼트로 정의한다. 컴퓨터 시스템(11)은 모두 각각 두개의 디스크 유니트들을 갖는 다섯개의 디스크 격납 용기(41 내지 45)를 포함한다. 컴퓨터 시스템(11)은 또한 둘다 각각 한개의 디스크 유니트를 갖는 두개의 디스크 격납 용기(73 내지 74)를 포함한다. 따라서, 단계(204)에서는 디스크 격납 용기의 이들 두개의 군을 두개의 세그먼트로 정의한다. 이것은 디스크 격납 용기 대 디스크 격납 용기의 페어링을 촉진하기 위해 수행된다. 단계(205)에서는 처리할 세그먼트가 있는지를 판단한다. 현재로서는 처리할 세그먼트가 두개 있고, 단계(206)에서 디스크 격납 용기당 가장 높은 수의 디스크 유니트들을 갖는 세그먼트를 선택하는 것으로 시작한다. 이 예에서, 이것은 제2b도에 도시된 바와같이 세그먼트(91)이고 디스크 유니트들(61 내지 70)을 가지고 있다. 단계(207)에서는 초기에는 세그먼트의 이 세그먼트 디바이더가 세그먼트(91)의 중간에 디스크 유니트들(65와 66)사이에 있는 것으로 선택하지만, 이 선택이 바람직하지 않게 디스크 격납 용기(43)를 반으로 나누게 되는 것을 인식하면, 단계(207)에서는 세그먼트의 이 세그먼트 디바이더가 디스크 유니트들(64와 65 )사이 [따라서, 디스크 격납 용기(42와 43) 사이]에 있도록 조정한다.
단계(208)에서 이 세그먼트 디바이더에 가장 가까운 세그먼트에 윗부분에 있는 디스크 유니트[디스크 유니트(64)]를 취하고, 이 디스크 유니트에 대한 잠재적 메이트를 세그먼트 디바이더에 가장 가까운 디스크 유니트에서 시작하여 세그먼트의 아랫부분에 있는 디스크 유니트로 선택한다.
이 예에서, 단계(208)에서는 디스크 유니트(65)를 잠재적 메이트로 선택한다. 단계(300)에서는 그 다음에 제5도의 보호 레벨 계산 서브루우틴을 호출한다.
이제 제5도를 참조하면, 보호 레벨 계산 서브루우틴은 잠재적 디스크 유니트 메이트(64 및 65)에 대한 보호 레벨을 판단한다. 단계(301)에서는 이들 디스크 유니트가 다른 버스상에 있는지를 판단한다. 이들 디스크 유니트는 둘다 버스(21)상에 있으므로(제2a도), 단계(301)에서는 "아니오"로 부정적으로 대답된다. 단계(303)에서 그 다음에 이들 디스크 유니트가 다른 입출력 프로세서상에 있는지를 판단한다. 디스크 유니트(64)는 입출력 프로세서(31)상에 있고 디스크 유니트(65)는 입출력 프로세서(32 )상에 있으므로(제2a도), 단계(303)에서는 "예"라 대답되고, 단계(304)에서 이 쌍에 대한 보호 레벨을 입출력 프로세서 레벨의 보호와 같게 설정한다. 단계(310)에서 서브루우틴은 제4b도의 단계(320)로 복귀한다.
디스크 유니트(64)는 디스크 격납 용기에서 "오른쪽"위치를 차지하고 디스크 유니트(65)는 "왼쪽"위치를 차지하므로, 단계(220)에서는 2차 인자 점수를 가산하지 않는다.
단계(221)에서 이 잠재적 메이트가 지금까지는 가장 양호하다고 판단하면, 단계(221)에서 이것을 세이브한다. 단계(210)에서 세그먼트의 아랫부분에 디스크 유니트(64)에 대한 또다른 잠재적 메이트가 있는지를 판단한다. 디스크 유니트(66 내지 7 0)도 디스크 유니트(64)에 대한 잠재적 메이트이므로, 제어의 흐름은 모든 잠재적 메이트에 대해 단계(208,300,220,221,211 및 210) 사이에서 순환된다. 이 예에서, 보호 레벨 계산 서브루우틴은 잠재적 메이트(66)가 입출력 프로세서 레벨의 보호를 가지고, 잠재적 메이트(67 내지 70)가 모두 버스 레벨의 보호를 갖는 것으로 판단한다.
단계(220)에서 디스크 유니트들(66,68 및 70)에서 추가 점수를 준다. 디스크 유니트(68)는 디스크 유니트(64)에 대한 가장 양호한 잠재적 메이트로 선택된다.
단계(212)에서 디스크 유니트들(64 및 68)의 보호 레벨의 임계 보호 레벨을 초과하는지를 알아보기 위해 검사한다. 이 예에서, 단계(212)에서 디스크 유니트들( 64 및 68)에 대한 보호 레벨이 임계 보호 레벨을 초과한다고 판단하면, 단계(213)에서는 디스크 유니트(64)를 디스크 유니트(68)와 페어링한다. 단계(212)에서 "아니오"로 대답된다면, 디스크 유니트들은 페어링되지 않는다. 어느 경우에도, 제어의 흐름은 단계(214)로 진행하는데, 여기에서 세그먼트의 윗부분에 처리할 디스크 유니트가 더 있는지의 판단이 이루어진다. 이 예에서, 디스크 유니트들(63 내지 61)이 아직 처리되어야 하므로, 단계(214)에서는 "예"로 대답되고, 제어의 흐름은 리스트상에 있는 다음 디스크 유니트 즉, 디스크 유니트(63)에 대한 잠재적 메이트를 선택하기 위해 단계(208 )로 복귀한다. 세그먼트의 윗부분에 있는 디스크 유니트로 페어링이 끝날때까지 단계( 208 내지 221)가 반복된다.
디스크 유니트들(63 내지 61)은 상기와 같은 방법으로 페어링된다. 모두가 버스 레벨의 보호를 제공한 아래쪽 세그먼트에서 메이트를 찾을 수 있었다. 디스크 유니트(63)는 디스크 유니트(67)와 페어링되었다. 마찬가지로, 디스크 유니트들(62 및 61 )는 디스크 유니트(70 및 69)와 각각 페어링되었다.
이제 제4b도를 다시 참조하면, 단계(214)에서 고려할 윗부분의 디스크 유니트가 더이상 없다고 판단하면, 단계(215)에서는 페어링되지 않은 모든 디스크 유니트들을 예비 리스트에 올려 놓는다. 디스크 유니트들(65 및 66)은 아직 페어링되지 않았고, 따라서 이들 디스크 유니트들이 예비 리스트에 올려진다는 것에 유의할 필요가 있다.
처리할 또다른 세그먼트가 있는지를 알아보기 위해 제어의 흐름은 단계(205)로 진행한다. 이 예에서 처리할 세그먼트가 두개 있으므로, 제4a도는 제2b도에서 세그먼트(92)로 도시된 두번째 세그먼트를 이제 처리할 것이다. 디스크 유니트들 (73 및 74)은 그 세그먼트에 있는 단 두개의 디스크 유니트이므로, 제4a도는 이들을 페어링하고 이 잠재적 한쌍에 제어기 레벨의 보호를 할당한다. 제어기 레벨의 보호는 임계 보호 레벨을 초과하고, 따라서 유니트들은 단계(213)에서 페어링된다. 단계(205)에서 처리할 세그먼트가 더이상 없다고 판단하고, 단계(202)에서 처리할 디바이스형이 더이상 없다고 판단하면 서브루우틴은 단계(225)에서 제3도의 단계(103)으로 복귀한다. 제2b도는 디스크 유니트들이 지금까지 어떻게 페어링되었는지 보여주고, 예비 리스트(93)가 디스크 유니트들(65 및 66)을 포함하고 있는 것을 보여준다.
제3도의 단계(103)에서는 예비 리스트에 디스크 유니트들이 존재하는지를 판단한다. 디스크 유니트들은 잠재적 페어링이 규정된 임계 보호 레벨을 초과하지 않았기 때문에 페어링될 수 없었거나 또는 세그먼트의 윗부분이 세그먼트의 아랫부분과 다른 수의 디스크 유니트들을 포함하고 있으면 예비 리스트에 올려진다. 예비 리스트(93)는 디스크 유니트들(65 및 66)을 포함하고 있으므로, 단계(103)에서 "예"로 대답되고, 단계(400)에서 제6a도의 예비 디스크 유니트 페어링 서브루우틴을 호출한다.
단계(401)에서 예비 리스트를 루프어라운드하여 디스크 유니트들의 잠재적 한쌍을 선택하다. 이 예에서, 디스크 유니트들(65 및 66)은 현재 예비 리스트에 있는 단 두개의 디스크 유니트이므로, 그들은 잠재적 한쌍으로 선택된다. 제5도의 보호 레벨 계산 서브루우틴이 단계(300)에서 다시 호출된다. 이 서브루우틴은 단계 (311)에서 디스크 유니트들(65 및 66)이 동일한 격납 용기에 있다고 판단한다. 서브루우틴은 제6a도의 단계(402)로 복귀한다. 단계(402)에서 보호 레벨이 임계 보호 레벨을 초과하지 않으므로 디스크 유니트들(65와 66)을 페어링하는 것은 합당치 않겠다고 판단한다. 따라서, 디스크 유니트들(65 및 66)은 여전히 페어링되지 않고 단계(403)에서 "예"로 대답된다.
예비 디스크 유니트 페어링 서브루우틴은 그 다음에 단계(411,300,412 및 413 )를 실행한다. 이러한 단계에서는 잠재적 메이트에 대한 인덱스를 상부 대신에 하부에서 시작하여 다른 순서로 예비 리스트를 진행하므로써 예비 리스트(92)에 있는 디스크 유니트(65)에 대한 다른 잠재적 메이트를 찾으려고 시도한다. 디스크 유니트(65)에 대한 유일한 잠재적 메이트는 앞서 합당치 않은 메이트라고 결정된 디스크 유니트(66)이므로, 이들 단계에서는 합당한 메이트를 찾는데 성공하지 못한다. 단계(421,300,422 및 423)도 또한 다른 메이트를 찾아보기 위해 실행된다. 이들 단계에서도 또한 성공하지 못하고, 단계(423)에서 "예"로 대답된다. 단계 (402,412 및 422)에서는 각각 제4b도의 단계(220,221,211,210,212 및 213)와 매우 유사한 기능을 수행하는 것에 유의할 필요가 있다.
단계(440)에서는 가장 작은 보호 레벨을 갖는 기존의 쌍을 해체하여 그들을 예비 리스트(93)에 추가한다. 이 예에서, 디스크 유니트들(73 및 74)이 가장 낮은 보호 레벨 즉, 제어기 레벨의 보호를 포함한다. 따라서, 이 쌍이 해체되고 디스크 유니트들(7 3 및 74)이 예비 리스트(93)에 추가된다. 제어의 흐름은 단계(401)로 다시 진행하고, 여기에서 지금 예비 리스트에 있는 디스크 유니트들(65,66,73 및 74)을 베어링하는 시도가 이루어진다. 이번에는, 작업이 양호하게 진행되어, 단계(401,300,402 및 403)에서 디스크 유니트(65)는 디스크 유니트(73)와 페어링되고 디스크 유니트(66)는 디스크 유니트(74)와 페어링된다. 이 페어링들은 버스 레벨의 보호를 가지며, 따라서 단계(403)에서 "아니오"로 대답되고, 서브루우틴은 단계(450)에서 제3도의 단계(500)로 복귀한다. 디스크 유니트들의 페어링은 제2c도에 도시되었다.
제7도의 최적화 서브루우틴은 단계(500)에서 호출된다. 모든 페어링된 디스크 유니트들은 버스 레벨의 보호를 가지므로, 메이트의 교환은 일어나지 않고, 서브루우틴은 제3도의 단계(110)로 복귀한다.
다시 제3도를 참조하면, 단계(110)에서 컴퓨터 시스템의 각 디스크 유니트에 대해 선택된 페어링을 보여주는 화면이 표시된다. 제2a도의 컴퓨터 시스템(11)에 대한 이런 화면의 예는 제9b도에 도시되었다. 이 화면은 컴퓨터 시스템(11)에서의 각 디스크 유니트에 대한 보호 레벨을 확인시키고, 사용자에게 이것이 받아들여질 수 있는지 또는 그렇지 않은지를 묻는다. 사용자가 페어링을 받아들이면, 디스크 유니트는 단계( 112)에서 미러링되고, 프로그램은 단계(120)에서 종료된다.
본 발명의 또다른 특징은 구성 변화(configuration change)를 검출하고 구성 변화 이전 및 이후의 보호 레벨을 계산하는 능력이다. 구성 변화(하드웨어의 추가, 제거 , 교체 및 재배치)가 보호 레벨의 감소를 초래하면, 사용자에게 이 사실이 경고되고 따라서 디스크 유니트의 기존 쌍을 해체하여 다시 페어링하는 것과 같은 보정 조치를 취할 수 있다.
제2d도의 컴퓨터 시스템(12)은 상기 기술을 사용하여 디스크 유니트 모두를 페어링하였고, 다음의 쌍들 즉, 디스크 유니트[(61+60), (62+70), (63+67), (64+65 ) 및 (66+68)]가 만들어졌다고 가정한다. 쌍(64-65)은 제외한 모든 쌍은 버스 레벨의 보호를 갖는다. 쌍(64+65)은 입출력 레벨의 보호를 갖는다.
사용자는 컴퓨터 시스템(12)이 이제 제2a도의 컴퓨터 시스템(11)과 같이 보이도록, 제어기(57 및 58)와 입출력 프로세서(35)와 함께 디스크 유니트(73 및 74)를 추가하여 컴퓨터 시스템(12)의 구성을 변화시킨다.
다시 제3도를 참조하면, 단계(101)에서 사용자가 이번엔 페어링을 개시하기를 바라지 않는다고 판단하면, 단계(102)에서는 컴퓨터 시스템에서 구성 변화가 있었는지를 판단한다. 본 발명의 양호한 실시예에서, 컴퓨터 시스템은 최종으로 알려진 디바이스의 입출력 어드레스의 기록을 유지함으로써 이것을 판단하고, 각 초기 프로그램 로드(Initial Program Load)(IPL)의 일부로서 그것을 디바이스의 현재 입출력 어드레스와 비교한다. 컴퓨터 시스템은 또한, 새로운 부품들이 컴퓨터 시스템에 의해 인식되기 위해서는 사용자가 재구성(reconfiguraion)을 수행하여야만 하므로, 새로운 부품이 언제 추가되었는지를 알고 있다. 여기서, 단계(102)에서 디스크 유니트들(73 및 74)의 추가로 인한 변화된 구성을 검출하고, 따라서 단계(600)에서는 제8도의 변화된 구성 서브루우틴을 호출한다.
이제 제8도를 참조하면, 단계(601)에서는 디스크 유니트가 페어링되지 않았는지 판단한다. 이 예에서, 새로 추가된 디스크 유니트들(73 및 74)은 아직 페어링되지 않았으므로, 단계(601)에서 "예"로 대답된다. 단계(602)에서 디스크 유니트 (73)에 대한 잠재적 메이트를 선택한다. 이 경우에, 페어링되지 않은 유일하고도 가능한 메이트는 디스크 유니트(74)이다. 단계(300)에서 제5도의 보호 레벨 계산 서브루우틴을 호출하는데, 그 서브루틴은 단계(305 내지 306)에서 잠재적 한쌍(73 및 74)의 제어기 레벨의 보호를 가지는 것으로 판단하여 제8도의 단계(601)로 복귀한다. 단계(601)에서 페어링할 디스크 유니트가 더이상 없다고 판단하여 제어의 흐름은 단계(605)로 진행한다. 단계(605)에서 컴퓨터 시스템의 새로운 보호 레벨이 이전의 보호 레벨보다 작은지를 판단한다. 한 디스크 유니트 쌍이 입출력 프로세서 레벨의 보호를 가졌으므로, 이것의 보호 레벨은 본 발명의 양호한 실시예에서 취해진 최소 공통 분모 방식(a least common denominator approach)에 의해, 입출력 프로세서 레벨의 보호였다. 새로운 보호 레벨은 같은 방식에 의해 제어기 레벨의 보호이다. 따라서, 컴퓨터 시스템(12)의 보호 레벨은 구성 변화에 의해 감소되었고, 따라서 단계(605)에서 "예"로 대답된다. 또 한편으로는, 컴퓨터 시스템은 또한 각 디스크 유니트에 대한 보호 레벨을 유지하고 유니트의 보호가 감소되면 사용자에게 알려줄 수 있다. 단계(606)에서 컴퓨터 시스템(1 2)의 감소된 보호 레벨을 보여주는 화면을 사용자에게 보여준다. 이런 화면의 예는 제9 c도에 도시되었다.
사용자는 그 다음에 더 낮은 보호 레벨을 받아들이고, 지시된 바와 같은 새로운 유니트들을 함께 페어링할 것인지의 선택(option)이 주어진다. 사용자가 보호 레벨을 받아들이면, 단계(611)에서 페어링이 임계 보호 레벨보다 위에 있는지를 판단한다. 그렇다면, 단계(612)에서 앞아서 페어링되지 않은 디스크 유니트들을 함께 페어링하고 단계(620)에서 제3도의 단계(115)로 복귀한다. 이 예에서, 사용자는 컴퓨터 시스템( 12)의 감소된 보호 레벨을 받아들이지 않았다고 가정하면 단계(610)에서 "예"로 대답된다. 단계(615)에서 사용자가 기존의 쌍을 해체하여 컴퓨터 시스템의 디스크 유니트를 다시 페어링하기를 원하는지 판단한다. 아니라면, 서브루우틴은 단계(620)에서 제3도의 단계(615)로 복귀한다. 이 예에서, 사용자는 기존의 쌍들을 해체하여 컴퓨터 시스템(12)의 디스크 유니트들을 다시 페어링하기를 원하고, 따라서 단계(615)에서 "예"로 대답된다. 단계(616)에서 페어링이 개시되어야 함을 표시하고, 단계(620)에서 제3도의 단계(115)로 복귀한다.
제3도를 다시 참조하면, 단계(115)에서 페어링이 개시되어야 하는지를 판단한다. 그렇지 않으면, 프로그램은 단계(120)에서 끝난다. 제8도의 단계(616)에서 페어링이 개시되어야 한다고 표시되었으므로, 단계(115)에서 "예"로 대답되고 제어의 흐름은 단계(200)로 다시 진행하고, 여기서 추가된 디스크 유니트들(73 및 74)을 포함한 컴퓨터 시스템(12)의 디스크 유니트들을 컴퓨터 시스템(11)에 대해 기술된 것과 같은 방법으로 다시 페어링된다.
본 발명은 양호한 실시예 및 여러가지 교체 실시예에 대해 기술되었지만, 본 기술분야에 숙련된 사람은 본 발명의 정신, 범위내에서는 여러가지의 변형이 가능하다는 것은 주지의 사실이다. 예를 들면, 본 발명은 디스크 유니트들이 아닌 기억장치 디바이스들을 페어링하는데도 적용된다. 또한, 이 기억장치 디디바이스들을 미러링이 아닌 다른 방법으로 페어링할 수도 있다. 따라서, 본 명세서에서 기술된 것은 다음의 청구항에서 규정된 것에 의해서만 제한되어야 한다.

Claims (31)

  1. 다수의 디스크 유니트들의 페어링(pairing)을 최적화하기 위한 방법에 있어서, 제1디스크 유니트를 선택하는 단계와, 상기 제1디스크 유니트와 제1잠재적 한쌍(pote ntial pair)을 이룰 제2디스크 유니트를 선택하는 단계와, 상기 제1잠재적 한쌍에 대한 보호 레벨인 제1보호 레벨(level of protection)을 계산하는 단계와, 상기 제1디스크 유니트와 제2잠재적 한쌍을 이룰 제3디스크 유니트를 선택하는 단계와, 상기 제2잠재적 한쌍에 대한 보호 레벨인 제2보호 레벨을 판단하는 단계와, 임계 보호 레벨에 상관없이 상기 제2보호 레벨이 상기 제1보호 레벨을 초과하지 않으면(unless said second level of protection exceeds said first level of protection), 상기 제1 및 제2디스크 유니트를 함께 페어링하는 단계를 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  2. 제1항에 있어서, 상기 페어링 단계는 상기 제1보호 레벨이 임계(threshold) 보호 레벨을 초과할 경우에만(only if said first level of protection exceeds a thres hold level of protection) 수행하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  3. 제1항에 있어서, 상기 제2보호 레벨이 상기 제1보호 레벨을 초과할 경우(if said second level of protection exceeds said first level of protection) 제1 및 제3디스크 유니트를 함께 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  4. 제3항에 있어서, 상기 페어링 단계를 상기 제2보호 레벨이 임계 보호 레벨을 초과할 경우에만 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  5. 제1항에 있어서, 상기 제1디스크 유니트와 제3잠재적 한쌍을 이룰 제4디스크 유니트를 선택하는 단계와, 상기 제3잠재적 한쌍에 대한 보호 레벨인 제3보호 레벨을 판단하는 단계와, 상기 제2 및 제3보호 레벨이 상기 제1보호 레벨을 초과하지 않으면 제1 및 제2디스크 유니트를 함께 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  6. 제5항에 있어서, 상기 페어링 단계는 상기 제1보호 레벨이 임계 보호 레벨을 초과할 경우에만 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  7. 제5항에 있어서, 상기 제2보호 레벨이 상기 제1보호 레벨을 초과하고 상기 제3보호 레벨이 상기 제2보호 레벨을 초과하지 않으면, 제1 및 제2디스크 유니트를 함께 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  8. 제7항에 있어서, 상기 페어링 단계는 상기 제2보호 레벨이 임계 보호 레벨을 초과할 경우에만 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  9. 제1버스에 접속되는 제1다수의 디스크 유니트들과 제2버스에 접속되는 제2다수의 디스크 유니트들을 갖는 컴퓨터 시스템에서 액세스불가(inaccessible) 데이타에 대해 상기 컴퓨터 시스템을 보호하는 방법에 있어서, 상기 제1다수의 디스크 유니트들의 각각을 상기 제2다수의 디스크 유니트들중의 한 디스크 유니트와 페어링하는 단계를 구비하는 것을 특징으로 하는 액세스불가 데이타에 대해 컴퓨터 시스템을 보호하는 방법.
  10. 버스에 접속되는 다수의 디스크 격납 용기를 가지며, 상기 디스크 격납 용기 각각은 다수의 디스크 유니트들을 구비하는 컴퓨터 시스템에서 액세스불가 데이타에 대해 상기 컴퓨터 시스템을 보호하는 방법에 있어서, 상기 다수의 디스크 유니트들의 각각을 상기 다수의 디스크 격납 용기중 다른 디스크 격납 용기중에 포함된 디스크 유니트와 페어링하는 단계를 구비하는 것을 특징으로 하는 액세스불가 데이타에 대해 컴퓨터 시스템을 보호하는 방법.
  11. 제1입출력 프로세서에 접속되는 제1다수의 디스크 유니트들, 제2입출력 프로세서에 접속되는 제2다수의 디스크 유니트들과, 제3입출력 프로세서에 접속되는 제3다수의 디스크 유니트들을 가지며, 상기제1 및 상기 제2입출력 프로세서는 제1버스에 접속되고 상기 제3입출력 프로세서는 제2버스에 접속되는 컴퓨터 시스템에서 액세스불가 데이타에 대해 상기 컴퓨터 시스템을 보호하는 방법에 있어서, 상기 제1다수의 디스크 유니트들중 몇개를 상기 제3다수의 디스크 유니트들중의 몇개의 디스크 유니트들과 페어링하여, 버스 레벨의 보호를 제공하는 단계와, 상기 제2다수의 디스크 유니트들중 몇개를 상기 제3다수의 디스크 유니트들중의 몇개의 디스크 유니트들과 페어링하여, 버스 레벨의 보호를 제공하는 단계와, 상기 제1다수의 디스크 유니트들중 나머지를 상기 제2다수의 디스크 유니트들중에서 해당되는 나머지 디스크 유니트들과 페어링하여 입출력 프로세서 레벨의 보호를 제공하는 단계를 구비하는 것을 특징으로 하는 액세스불가 데이타에 대해 컴퓨터 시스템을 보호하는 방법.
  12. 다수의 페어링된 디스크 유니트들을 갖는 컴퓨터 시스템에서 액세스불가 데이타에 대해 상기 컴퓨터 시스템을 보호하는 방법에 있어서, 상기 컴퓨터 시스템에서의 구성 변화(coufiguration change)를 검출하는 단계와, 상기 구성 변화가 액세스불가 데이타에 대해 보호 레벨의 감소를 초래하는지 판단하는 단계와, 사용자에게 상기 보호 레벨의 감소를 알리는 단계를 구비하는 것을 특징으로 하는 액세스불가 데이타에 대해 컴퓨터 시스템을 보호하는 방법.
  13. 제12항에 있어서, 액세스불가 데이타에 대해 보호 레벨을 최대화하기 위해 디스크 유니트들을 다시 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 액세스불가 데이타에 대해 컴퓨터 시스템을 보호하는 방법.
  14. 다수의 디스크 유니트들(1 내지 N)의 페어링을 최적화하기 위한 방법에 있어서, (a) 상기 다수의 디스크 유니트들(1 내지 N)중의 하나를 디스크 유니트(x)로 선택하는 단계와, (b) 상기 디스크 유니트(x)가 아닌 상기 다수의 디스크 유니트들(1 내지 N)중의 하나이고, 상기 디스크 유니트(x)와 잠재적 한쌍(X+Y)을 이룰 디스크 유니트(y)를 고르는(picking) 단계와, (c) 상기 잠재적 한쌍(x-y)에 대한 보호 레벨을 계산하는 단계와, (d) 상기 다수의 디스크 유니트들(1 내지 N)중의 다른 하나의 디스크 유니트를 디스크 유니트(y)로 하여 반복하여 설정하면서 단계(c)를 반복하는 단계와, (e) 상기 디스크 유니트(x)를 단계(b) 내지 단계(d)로 통하여 가장 높은 보호 레벨을 갖는 것으로 판단한 디스크 유니트(y)와 페어링하는 단계를 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  15. 제14항에 있어서, 가장 높은 보호 레벨이 임계 보호 레벨을 초과하지 않으면 상기 단계(e)는 수행되지 않는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  16. 제15항에 있어서, (f) 상기 다수의 디스크 유니트들(1 내지 N)중에서 이전에 페어링되지 않은 다른 하나를 디스크 유니트(x)로 하여 반복하여 설정하면서 단계(b 내지 e)를 반복하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  17. 제16항에 있어서, (g) 상기 다수의 디스크 유니트들(1 내지 N)의 모두가 함께 페어링될때까지 단계(b 내지 f)를 반복하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  18. 제17항에 있어서, (h)제1디스크 유니트 쌍과 제2디스크 유니트 쌍 사이에서 서로의 메이트(mate)를 교환(swapping)하는 것이 상기 제1 및 제2디스크 유니트 쌍 둘다에 대해서 더 높은 보호 레벨을 제공한다면, 상기 제1디스크 유니트 쌍과 상기 제2디스크 유니트 쌍 사이에서 메이트(mate)를 교환하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  19. 제1군(1 내지 M) 및 제2군(M+1 내지 N)으로 세그먼트(segment)되어 있는 다수의 디스크 유니트들(1 내지 N)의 페어링을 최적화하기 위한 방법에 있어서, (a) 상기 제1군의 디스크 유니트들(1 내지 M)중의 하나를 디스크 유니트(x)로 선택하는 단계와, (b) 상기 디스크 유니트(x)가 아닌 상기 제1군의 디스크 유니트들 중의 하나이고, 상기 디스크 유니트(x)와 잠재적 한쌍(X+Y)를 이룰 디스크 유니트(y)를 고르는 단계와, (c) 상기 잠재적 한쌍(x+y)에 대한 보호 레벨을 계산하는 단계와, (d) 상기 제1군의 디스크 유니트들(1 내지 M)중의 다른 하나의 디스크 유니트를 디스크 유니트(y)로하여 반복하여 설정하면서 단계(c)를 반복하는 단계와, (e) 상기 디스크 유니트(x)를 단계(b 내지 d)를 통하여 가장 높은 보호 레벨을 갖는 것으로 판단된 디스크 유니트(y)와 페어링하는 단계를 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  20. 제19항에 있어서, 가장 높은 보호 레벨이 임계 보호 레벨을 초과할 경우에만 상기 단계(e)가 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  21. 제20항에 있어서, (f)상기 다수의 디스크 유니트들(1 내지 M)중에서 이전에 페어링되지 않은 다른 하나를 디스크 유니트(x)로 하여 반복하여 설정하면서 단계(b 내지 e)를 반복하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  22. 제21항에 있어서, (g) 상기 제2군에 있는 상기 다수의 디스크 유니트(M+1 내지 N)중의 하나를 디스크 유니트(x)로 선택하는 단계와, (h) 디스크 유니트(x)가 아닌 상기 제2군의 디스크 유니트들(M+1 내지 N)중의 하나이고, 상기 디스크 유니트(x)와 잠재적 한쌍(x+y)을 이룰 디스크 유니트(y)를 고르는 단계와, (i) 상기 잠재적 한쌍(x+y)에 대한 보호 레벨을 계산하는 단계와, (j) 상기 제2군의 디스크 유니트들(M+1 내지 N)중의 다른 하나의 디스크 유니트를 디스크 유니트(y)로하여 반복하여 설정하면서 단계(i)를 반복하는 단계와, (k) 상기 디스크 유니트(x)를 단계(h) 내지 (j)를 통하여 가장 높은 보호 레벨을 갖는 것으로 판단된 디스크 유니트(y)와 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  23. 제22항에 있어서, 가장 높은 보호 레벨이 임계 보호 레벨을 초과하는 경우에만 상기 단계(k)가 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  24. 제23항에 있어서, (1)상기 다수의 디스크 유니트들(M+1 내지 N)중에서 이전에 페어링되지 않은 다른 하나를 디스크 유니트(x)로 하여 반복하여 설정하면서 단계(g 내지 k)를 반복하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  25. 제24항에 있어서, 단계(a 내지 1)에서 페어링될 수 없는 모든 디스크 유니트들이 예비 디스크 유니트들(1 내지 S)를 포함하는 예비 디스크 유니트 리스트에 올려지는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  26. 제25항에 있어서, (m) 상기 예비 디스크 유니트 리스트에 있는 상기 예비 디스크 유니트들중의 하나인 디스크 유니트(b)를 선택하는 단계와, (n) 상기 디스크 유니트(b)가 아닌 상기 예비 디스크 유니트 리스트에 있는 상기 예비 디스크 유니트들중의 하니이고, 상기 디스크 유니트(b)와 잠재적 한쌍(b+c)을 이룰 디스크 유니트(c)를 고르는 단계와, (o) 상기 잠재적 한쌍(b+c)에 대한 보호 레벨을 계산하는 단계와, (p) 상기 예비 디스크 유니트 리스트에 있는 상기 예비 디스크 유니트들중의 다른 하나의 디스크 유니트를 디스크 유니트(c)로 하여 반복하여 설정하면서 단계(o)를 반복하는 단계와, (q) 상기 디스크 유니트(b)를 단계(n 내지 p)를 통하여 가장 높은 보호 레벨을 갖는 것으로 판단된 디스크 유니트(c)와 페어링하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  27. 제26항에 있어서, 가장 높은 보호 레벨이 임계 보호 레벨을 초과할 경우에만 상기 단계(q)가 수행되는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  28. 제27항에 있어서, (r) 상기 다수의 디스크 유니트들(1 내지 S)들 중에서 이전에 페어링되지 않는 다른 하나를 디스크 유니트(b)로 하여 반복하여 설정하면서 단계(m 내지 q)를 반복하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  29. 제28항에 있어서, 디스크 유니트들(1 내지 S)중 어느 디스크 유니트라도 여전히 제어링되지 않은 상태로 남아 있는 경우에 있어서도 (s) 단계(a 내지 1)에서 페어링된 가장 낮은 보호 레벨을 갖는 디스크 유니트의 쌍(x+y)을 결정하는 단계와, (f) 단계(a 내지 1)에서 페어링된 가장 낮은 보호 레벨을 갖는 쌍을 상기 예비 디스크 유니트 리스트에 추가하는 단계와, (u) 모든 디스크 유니트들(1 내지 N)이 페어링될때까지 단계(m 내지 t)를 반복하는 단계를 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  30. 제29항에 있어서, (V) 제1디스크 유니트 쌍과 제2디스크 유니트 쌍 사이에서 서로의 메이트를 교환하는 것이 상기 제1 및 제2디스크 유니트 쌍 둘다에 대해 더 높은 보호 레벨을 제공한다면, 상기 제1디스크 유니트 쌍과 제1디스크 유니트 쌍 사이에서 메이트를 교환하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
  31. 제24항에 있어서, (v) 제1디스크 유니트 쌍과 제2디스크 유니트 쌍 사이에서 서로의 메이트를 교환하는 것이 상기 제1 및 제2디스크 유니트 쌍 둘다에 대해서 더 높은 보호 레벨을 제공한다면, 상기 제1 디스크 유니트 쌍과 제1디스크 유니트 쌍 사이에서 메이트를 교환하는 단계를 추가로 구비하는 것을 특징으로 하는 다수의 디스크 유니트들의 페어링을 최적화하기 위한 방법.
KR1019900021286A 1990-01-24 1990-12-21 다수의 디스크 유니트들의 페어링 최적화 방법 KR940001269B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/469,611 US5185884A (en) 1990-01-24 1990-01-24 Computer controlled optimized pairing of disk units
US469611 1990-01-24
US469,611 1990-01-24

Publications (2)

Publication Number Publication Date
KR910014815A KR910014815A (ko) 1991-08-31
KR940001269B1 true KR940001269B1 (ko) 1994-02-18

Family

ID=23864426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900021286A KR940001269B1 (ko) 1990-01-24 1990-12-21 다수의 디스크 유니트들의 페어링 최적화 방법

Country Status (12)

Country Link
US (2) US5185884A (ko)
EP (1) EP0441090B1 (ko)
JP (1) JPH03226825A (ko)
KR (1) KR940001269B1 (ko)
CN (2) CN1031084C (ko)
AU (1) AU640724B2 (ko)
BR (1) BR9100319A (ko)
CA (1) CA2030940C (ko)
DE (1) DE69030951T2 (ko)
HK (1) HK1000075A1 (ko)
SG (2) SG44411A1 (ko)
TW (1) TW216457B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
DE69227956T2 (de) * 1991-07-18 1999-06-10 Tandem Computers Inc Multiprozessorsystem mit gespiegeltem Speicher
US5857112A (en) * 1992-09-09 1999-01-05 Hashemi; Ebrahim System for achieving enhanced performance and data availability in a unified redundant array of disk drives by using user defined partitioning and level of redundancy
US5485571A (en) * 1993-12-23 1996-01-16 International Business Machines Corporation Method and apparatus for providing distributed sparing with uniform workload distribution in failures
JP3243919B2 (ja) * 1994-02-23 2002-01-07 三菱電機株式会社 ディスク装置、および、このディスク装置を使用したfaコントローラ
JP2894676B2 (ja) * 1994-03-21 1999-05-24 インターナショナル・ビジネス・マシーンズ・コーポレイション 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法
JP3085085B2 (ja) * 1994-05-09 2000-09-04 三菱電機株式会社 データアクセス装置及び分散データベースシステム
GB2301208B (en) * 1994-05-09 1997-08-20 Mitsubishi Electric Corp Data access apparatus and distributed data base system
US5537533A (en) * 1994-08-11 1996-07-16 Miralink Corporation System and method for remote mirroring of digital data from a primary network server to a remote network server
US5826046A (en) * 1994-12-30 1998-10-20 International Business Machines Corporation Method and apparatus for polling and selecting any paired device in any drawer
US5740397A (en) * 1995-10-11 1998-04-14 Arco Computer Products, Inc. IDE disk drive adapter for computer backup and fault tolerance
US6092066A (en) * 1996-05-31 2000-07-18 Emc Corporation Method and apparatus for independent operation of a remote data facility
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5870241A (en) * 1996-11-26 1999-02-09 International Business Machines Corporation Method and apparatus for evasive maneuvering to keep DASD heads away from protruding surface defects
US6631477B1 (en) * 1998-03-13 2003-10-07 Emc Corporation Host system for mass storage business continuance volumes
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
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
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
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
US7103739B2 (en) * 2003-10-09 2006-09-05 International Business Machines Corporation Method and apparatus for providing hardware aware logical volume mirrors
US8438333B2 (en) * 2008-02-11 2013-05-07 Dell Products L.P. Systems and methods for automatically generating a mirrored storage configuration for a storage array
CN101876949B (zh) * 2009-11-30 2012-04-25 威盛电子股份有限公司 数据储存系统与方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3634830A (en) * 1969-06-13 1972-01-11 Ibm Modular computer sharing system with intercomputer communication control apparatus
US3623006A (en) * 1970-06-29 1971-11-23 Burroughs Corp Queueing device for the selection of requests for access to a storage medium
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability

Also Published As

Publication number Publication date
DE69030951D1 (de) 1997-07-24
KR910014815A (ko) 1991-08-31
CN1031084C (zh) 1996-02-21
CN1067779C (zh) 2001-06-27
JPH058447B2 (ko) 1993-02-02
CN1090071A (zh) 1994-07-27
SG70107A1 (en) 2000-01-25
US5167032A (en) 1992-11-24
HK1000075A1 (en) 1997-11-14
EP0441090A2 (en) 1991-08-14
EP0441090A3 (en) 1993-10-06
JPH03226825A (ja) 1991-10-07
DE69030951T2 (de) 1998-01-15
TW216457B (ko) 1993-11-21
CA2030940C (en) 1995-11-21
EP0441090B1 (en) 1997-06-18
AU6835090A (en) 1991-07-25
BR9100319A (pt) 1991-10-22
US5185884A (en) 1993-02-09
AU640724B2 (en) 1993-09-02
CN1053695A (zh) 1991-08-07
CA2030940A1 (en) 1991-07-25
SG44411A1 (en) 1997-12-19

Similar Documents

Publication Publication Date Title
KR940001269B1 (ko) 다수의 디스크 유니트들의 페어링 최적화 방법
US4542458A (en) Method of and apparatus for assigning software resources to memory devices
US5574914A (en) Method and apparatus for performing system resource partitioning
JP3628522B2 (ja) ファイル・セットのバージョンをマージする方法およびシステム
US6766397B2 (en) Controlling access to a storage device
GB2287559A (en) Parallel processor change-over
JPH05307445A (ja) データ処理システムにおけるミラー化された一対のデータ記憶ユニットの状態を決定する方法及び装置
US5226176A (en) System for selectively aborting operation or waiting to load required data based upon user response to non-availability of network load device
US20020069377A1 (en) Control device and control method for a disk array
US5615370A (en) Computer system with automatic degradation/initialization function
US5291590A (en) Method of detecting and processing abnormal message output from computer system and detecting and processing apparatus therefor
US5530882A (en) Multi-purpose information processing system
EP0796463B1 (en) Configuration mechanism
JPS635780B2 (ko)
US4402041A (en) Plural storage areas with different priorities in a processor system separated by processor controlled logic
JPH04102952A (ja) デバイスドライバ・ローディング方式
JPH05314085A (ja) 複数計算機間の相互稼動待機方式
JPS6117014B2 (ko)
JP3049732B2 (ja) 計算機システムにおける主記憶容量の設定方式
EP0294891A1 (en) Office automation system
JPH0498445A (ja) 情報処理装置
JPH03192432A (ja) データ処理装置
JPS62198944A (ja) 装置異常検出方式
JP2001175489A (ja) 異常検出時の動作モードを決定する装置および方法
JPH07160430A (ja) 自動入出力管理装置

Legal Events

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

Payment date: 20070205

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee