[go: up one dir, main page]

KR20040054267A - Distributed and shared RAID system with multiple RAID controllers and management method thereof - Google Patents

Distributed and shared RAID system with multiple RAID controllers and management method thereof Download PDF

Info

Publication number
KR20040054267A
KR20040054267A KR1020020081115A KR20020081115A KR20040054267A KR 20040054267 A KR20040054267 A KR 20040054267A KR 1020020081115 A KR1020020081115 A KR 1020020081115A KR 20020081115 A KR20020081115 A KR 20020081115A KR 20040054267 A KR20040054267 A KR 20040054267A
Authority
KR
South Korea
Prior art keywords
raid
read
data
write
controller
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020020081115A
Other languages
Korean (ko)
Inventor
이상민
석성우
김성운
김명준
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020020081115A priority Critical patent/KR20040054267A/en
Publication of KR20040054267A publication Critical patent/KR20040054267A/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2002Error 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 interconnections or communication control functionality are redundant
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A distributed shared RAID(Redundant Array of Inexpensive Disks) system having a multi-RAID controller and a managing method thereof are provided to make hosts share storages through the multi-RAID controller, process an I/O(Input/Output) request transferred from the host in the RAID controller, and consistently manage the database shared by the RAID controllers. CONSTITUTION: The hosts(20-20n) process the request for reading/writing the data transferred from the host. The first optical channel(21) plurally connects the hosts with the RAID controllers(22-22n). An SCI(Scalable Coherence Interface) switch(23) makes the RAID controller exchange a message or the data in order to keep data consistency, and plurally connects respective RAID controller in order to keep the communication between other RAID controllers even if one RAID controller is out of order. The second optical channel(24) switch plurally connects the storages shared by the RAID controllers with the RAID controllers.

Description

다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법 { Distributed and shared RAID system with multiple RAID controllers and management method thereof }Distributed RAID system with multiple RAID controllers and its management method {Distributed and shared RAID system with multiple RAID controllers and management method

본 발명은 레이드(RAID; Redundant Array of Inexpensive Disks) 시스템에관한 것이며, 보다 상세히는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법에 관한 것이다.The present invention relates to a RAID (Redundant Array of Inexpensive Disks) system, and more particularly to a distributed shared RAID system having a multiple RAID controller and a management method thereof.

도 1을 참조하면, 종래의 레이드 시스템은 하나의 호스트(10)에 2개의 레이드 제어기, 즉 레이드 주제어기(11)와 레이드 보조제어기(12)가 장착되고 SAN(Storage Area Network)을 통해 상기 주제어기(11)와 보조제어기(12)가 다중의 저장장치(예컨대, 디스크)들을 공유하도록 되어 있다.Referring to FIG. 1, a conventional RAID system is equipped with two RAID controllers, that is, a RAID main controller 11 and a RAID auxiliary controller 12, in one host 10 and the main controller through a storage area network (SAN). The device 11 and the auxiliary controller 12 are arranged to share multiple storage devices (eg, disks).

상기 주제어기(11)는 호스트(10)로부터 전달되는 읽기나 쓰기 명령을 받거나 응답하는 역할을 수행하고, 보조제어기(12)는 주제어기(11)가 고장났을 때를 대비하여 고장 감내(fault-tolerant) 기능을 수행하거나 주제어기(11)의 부하(load)가 높은 경우 주제어기(11)로부터 호스트(10)의 요구를 넘겨받아 이를 대신 처리하는 부하 분산(load balancing) 기능을 수행한다.The main controller 11 receives or responds to a read or write command transmitted from the host 10, and the auxiliary controller 12 performs fault tolerance in case the main controller 11 has failed. When the tolerant function or the load of the main controller 11 is high, the request of the host 10 is transferred from the main controller 11 to perform a load balancing function.

상기와 같이 고장 감내 기능을 수행하는 보조제어기(12)는 주제어기(11)에서 처리된 후 전달된 데이터를 자신의 메모리에 저장함으로써 두 제어기(11,12)간에 데이터 일관성이 유지되도록 하여 주제어기(11)가 고장난 경우 보조제어기(12)를 통해 레이드 시스템이 계속 운용되도록 하는 역할을 수행한다.As described above, the auxiliary controller 12 performing the fault tolerance function stores data transferred after being processed in the main controller 11 in its own memory so that data consistency is maintained between the two controllers 11 and 12. In case of failure of 11, the auxiliary controller 12 serves to keep the raid system in operation.

그러나, 상기와 같이 주제어기(11)가 고장났을 경우 보조제어기(12)가 동작하도록 되어 있은 종래의 레이드 시스템은 시스템의 신뢰성이 우수하다는 장점이 있기는 하지만, 시스템의 데이터 처리 성능 향상에는 상기 보조제어기(12)가 아무런 도움이 되지 않는다는 단점이 있다.However, the conventional RAID system in which the auxiliary controller 12 is operated when the main controller 11 fails as described above has the advantage that the reliability of the system is excellent. The disadvantage is that the controller 12 is of no help.

실제로, 상기 보조제어기(12)는 주제어기(11)가 처리하는 일의 양이 어느 정도 이상으로 높아지게 되어 자신이 받은 호스트(10)의 읽기와 쓰기 요구를 보조제어기(12)로 전달(forwarding)하면 이를 처리한 후, 그 처리결과를 주제어기(11)에게 알려주는 역할을 수행함으로써 부하 분산 기능을 수행하며, 이 경우 호스트(10)와 정합(interface)하는 것은 여전히 주제어기(11)로 한정되므로 주제어기(11)와 보조제어기(12)간의 데이터 일관성 유지 등의 문제가 존재한다.In practice, the auxiliary controller 12 has a certain amount of work performed by the main controller 11 to be higher than a certain degree, so that the read and write requests of the host 10 received by the main controller 11 are forwarded to the auxiliary controller 12. If this is done, the load balance function is performed by informing the master controller 11 of the result of the processing. In this case, the interface with the host 10 is still limited to the master controller 11. Therefore, there is a problem such as maintaining data consistency between the main controller 11 and the auxiliary controller 12.

따라서, 본 발명은 상술한 종래의 문제점을 극복하기 위한 것으로서, 본 발명의 목적은 다중의 호스트들이 다중의 레이드 제어기를 통해 다중의 저장장치를 공유하도록 되어 있고, 임의의 호스트로부터 전달된 입출력 요구를 임의의 레이드 제어기에서 처리할 수 있도록 하며, 레이드 제어기들이 공유하는 데이터들을 일관성 있게 관리하고, 여러 호스트들로부터 발생하는 입출력 부하를 여러 레이드 제어기들 중 부하가 적은 레이드 제어기에서 처리하며, 레이드 제어기에 오류가 발생했을 때 내부 캐시에 저장되어 있던 데이터들을 손실 없이 복구할 수 있도록 되어 있고, 여러 호스트들 중 어느 호스트들을 통해서도 시스템에 대한 관리나 모니터링이 가능하도록 된 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법을 제공하는데 있다.Accordingly, an object of the present invention is to overcome the above-mentioned conventional problems, and an object of the present invention is to allow multiple hosts to share multiple storage devices through multiple RAID controllers, and to handle input / output requests transmitted from any host. Allows to be handled by any RAID controller, manages data shared by RAID controllers consistently, handles I / O loads from multiple hosts in the RAID controller with the least load among the RAID controllers, and fails the RAID controller. Distributed RAID system with multiple RAID controllers that can recover data stored in internal cache without loss and manage or monitor the system through any of several hosts To provide management The.

상기 본 발명의 목적을 달성하기 위한 다중 레이드 제어기를 갖는 분산공유 레이드 시스템은, 운영체제의 장치 드라이버(device driver) 상에 레이드 제어기 부하 분산 기능을 수행하는 부하 분산 모듈을 구현하여 복수의 저장장치에 대한 데이터 읽기와 쓰기를 요구하는 복수의 호스트와; 상기 복수의 호스트들 중 임의의호스트로부터 전달되는 데이터 읽기와 쓰기 요구를 처리하는 복수의 레이드 제어기; 상기 복수의 호스트와 복수의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 제1광채널 스위치(fiber channel switch); 상기 복수의 레이드 제어기가 서로 데이터 일관성을 유지하기 위해 서로 메시지나 데이터를 주고받을 수 있도록 하고 복수의 레이드 제어기 중에 임의의 제어기가 고장나더라도 나머지 다른 레이드 제어기간의 통신이 단절되지 않도록 각각의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 SCI(Scalable Coherence Interface) 스위치; 및 상기 복수의 레이드 제어기에 의해 공유되는 상기 복수의 저장장치와 복수의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 제2광채널 스위치로 구성된다.The distributed shared RAID system having multiple RAID controllers for achieving the object of the present invention implements a load balancing module that performs a RAID controller load balancing function on a device driver of an operating system for a plurality of storage devices. A plurality of hosts for requesting data reading and writing; A plurality of RAID controllers for processing data read and write requests transmitted from any of the plurality of hosts; A first fiber channel switch connecting the plurality of hosts and the plurality of RAID controllers to be connected to each other in a plurality; The plurality of RAID controllers may exchange messages or data with each other in order to maintain data consistency with each other, and each RAID controller may not disconnect communication between the other RAID controllers even if any one of the plurality of RAID controllers fails. A scalable coherence interface (SCI) switch for connecting the plurality of connections to each other; And a second optical channel switch configured to connect the plurality of storage devices and the plurality of RAID controllers shared by the plurality of RAID controllers to be connected to each other in multiple numbers.

상기 본 발명의 목적을 달성하기 위한 다중 레이드 제어기를 갖는 분산공유 레이드 시스템의 관리방법은, 복수의 호스트가 복수의 레이드 제어기와 연결된 제1광채널 스위치를 통해 각각의 레이드 제어기의 부하를 미리 검토하여 가장 부하가 적은 레이드 제어기로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달하는 단계와; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 락정보를 검색하여 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별하는 단계; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 읽기 요구이면 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에서 읽기 데이터를 읽어 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트에 전달하는 단계; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 쓰기 요구이면 쓰기 요구한 호스트로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에 전달하는 단계; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 읽기 요구가 아니면 SCI 스위치를 통하여 락정보를 검색하여 획득한 해당 읽기 요구 처리 레이드 제어기로 리모트 읽기 메시지를 전송한 후, 리모트 읽기 메시지를 수신한 레이드 제어기로부터 호스트가 요구한 읽기 데이터를 전달받아 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트에 전달하는 단계; 및 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 쓰기 요구가 아니면 SCI 스위치를 통하여 락정보를 검색하여 획득한 해당 쓰기 요구 처리 레이드 제어기로 리모트 쓰기 메시지를 전송하여 리모트 쓰기 메시지를 수신한 레이드 제어기가 쓰기 요구한 호스트로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에 전달하도록 하는 단계로 이루어진다.In order to achieve the object of the present invention, a method for managing a distributed shared RAID system having multiple RAID controllers may be performed by examining a load of each RAID controller in advance through a first optical channel switch connected to a plurality of RAID controllers. Transmitting data read and write requests to the plurality of storage devices to a load controller having a low load; Determining, by the RAID controller receiving the read and write request of the host, searching for lock information to determine whether the read and write request of the host is a request to be processed; As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be processed, if the request is a read request to be processed by the host controller, the lock information is transmitted through the second optical channel switch. Reading read data from a storage device accessible by the storage device, storing the read data in a read cache of its local memory, and transferring the read data to a host requesting read; As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be processed, if the request is a write request to be processed by the RAID controller, the write controller receives write data from the write requesting host. Receiving and storing the write cache in its own local memory and transferring the write data to a storage device accessible by the lock information through the second optical channel switch; As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be handled by the host, if the request is not a read request to be processed by the RAID controller, lock information is provided through the SCI switch. Processing the read request obtained by searching and sending the remote read message to the RAID controller, receiving the read data requested by the host from the RAID controller that received the remote read message, and storing it in the read cache of its local memory. Delivering the data to the host requesting read; And a RAID controller receiving the read and write request of the host determines whether the read and write request of the host is a request to be processed by the RAID controller, and if the request is not a write request to be processed by the host, the lock information through the SCI switch. Sends the remote write message to the RAID controller obtained by retrieving the data, receives the write data from the host that requested the write by the RAID controller that received the remote write message, and stores the write data in the write cache of its local memory. To the storage device accessible by the lock information through the second optical channel switch.

도 1은 종래의 다중 레이드 제어기를 갖는 레이드 시스템을 도시한 구성도,1 is a block diagram illustrating a RAID system having a conventional multiple RAID controller;

도 2는 본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템2 is a distributed shared RAID system having multiple RAID controllers according to the present invention.

을 도시한 구성도,Showing a configuration diagram,

도 3은 본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템3 is a distributed shared RAID system having multiple RAID controllers according to the present invention.

의 내부 블록도이다.Is an internal block diagram.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10: 호스트 11: 레이드 주제어기10: Host 11: Raid Master

12: 레이드 보조제어기 20∼20n: 호스트12: RAID auxiliary controller 20-20n: host

21: 제1광채널 스위치 22∼22n: 레이드 제어기21: first optical channel switch 22 to 22n: RAID controller

23: SCI스위치 24: 제2광채널 스위치23: SCI switch 24: second optical channel switch

이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2와 도 3을 참조하면, 복수의 호스트(20∼20n)는 각각 운영체제의 장치 드라이버 상에 레이드 제어기 부하 분산 기능을 수행하는 부하 분산 모듈을 구현하여 복수의 저장장치(예컨대, 디스크들)에 대한 데이터 읽기와 쓰기를 요구한다.2 and 3, each of the plurality of hosts 20 to 20n implements a load balancing module that performs a RAID controller load balancing function on a device driver of an operating system, respectively, to a plurality of storage devices (eg, disks). Requires reading and writing data.

상기 각각의 호스트(20∼20n)의 장치 드라이버 상에 구현되는 부하 분산 모듈은 아래의 제1광채널 스위치(21)에 의해 다중 접속되는 각각의 레이드 제어기(22∼22n)의 부하를 미리 검토하여 가장 부하가 적은 레이드 제어기(22∼22n)로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달하고 고장난 레이드 제어기(22∼22n)로부터 처리되지 못하고 되돌아온 읽기와 쓰기 요구를 다른 레이드 제어기(22∼22n)로 다시 전달하는 부하 분산 기능을 수행한다.The load balancing module implemented on the device driver of each of the hosts 20 to 20n is configured by examining the load of each of the RAID controllers 22 to 22n which are multiplexed by the first fiber channel switch 21 below. Delivers data read and write requests for a plurality of storage devices to the low load RAID controllers 22 to 22n, and transfers read and write requests that have not been processed and returned from the failed RAID controllers 22 to 22n. Performs load balancing that passes back to).

상기 부하 분산 모듈은 호스트로부터 저장장치로 전달될 입출력 요구를 처리할 레이드 제어기를 선택하기 위하여 각 호스트로부터 각 레이드 제어기의 부하를 결정짓는 여러 요소들인 처리 중인 읽기나 쓰기 요구들의 수, 각 요구들이 처리하는 데이터의 크기 등을 고려하여 가장 부하가 적은 레이드 제어기를 선택한다.The load balancing module is responsible for the number of read or write requests in processing, each of which is a number of factors that determine the load of each RAID controller from each host to select a RAID controller to handle input / output requests from the host to storage. The RAID controller with the least load is selected in consideration of the data size.

복수의 레이드 제어기(22∼22n)는 각각 상기 복수의 호스트(20∼20n)들 중 임의의 호스트로부터 전달되는 데이터 읽기와 쓰기 요구를 처리한다.The plurality of RAID controllers 22 to 22n respectively handle data read and write requests transmitted from any one of the plurality of hosts 20 to 20n.

상기 각각의 레이드 제어기(22∼22n)의 캐시관리모듈은 복수의 저장장치를 공유하고 복수의 공유 저장장치에 대하여 복수의 논리적 저장장치를 대응시켜 각각의 레이드 제어기(22∼22n)가 서로간에 동일한 데이터를 공유하면서 상기 복수의 호스트(20∼20n)의 읽기와 쓰기 요구를 처리하도록 읽기캐시와 쓰기캐시 및 백업 쓰기캐시로 구성되는 로컬 메모리를 관리한다.The cache management module of each of the RAID controllers 22 to 22n shares a plurality of storage devices and maps a plurality of logical storage devices to the plurality of shared storage devices so that each RAID controller 22 to 22n is identical to each other. Local memory, which consists of a read cache, a write cache and a backup write cache, is managed to handle read and write requests of the plurality of hosts 20 to 20n while sharing data.

상기 캐시 관리 모듈은 레이드 제어기(22∼22n) 오류 시 데이터 손실을 방지하고 데이터를 복구하기 위하여 캐시 미러링(cache mirroring) 기능을 제공하며, 읽기캐시와 쓰기캐시에 대해 캐시데이터 검색, 캐시데이터 할당 및 삭제 등의 기능을 수행한다.The cache management module provides a cache mirroring function to prevent data loss and recover data in case of a failure of the RAID controllers 22 to 22n. The cache management module retrieves cache data, allocates cache data for read cache and write cache, Delete, etc.

상기 캐시 관리 모듈은 한정된 로컬 메모리에서 미러링 데이터의 저장을 위한 메모리 낭비를 줄이기 위해 로컬 메모리를 읽기캐시, 쓰기캐시, 백업쓰기캐시로 구분하여 관리하며, 이미 로컬 메모리에 저장된 데이터에 대해서는 읽기 성능을 고려하여 동시에 여러 레이드 제어기(22∼22n)의 읽기캐시에 저장되는 것을 허락하지만 읽기 데이터에 대한 미러링 기능은 제공하지 않고 쓰기캐시 데이터만 백업하며, 상기 백업 쓰기캐시는 각 레이드 제어기(22∼22n)마다 데이터 백업 관계가 설정된 레이드 제어기(22∼22n)에 대하여 정의한다.The cache management module divides and manages local memory into a read cache, a write cache, and a backup write cache to reduce memory waste for storing mirrored data in a limited local memory, and considers read performance for data already stored in the local memory. Allow multiple RAID controllers 22 to 22n to be stored in the read cache at the same time, but do not provide a mirroring function for the read data and back up only the write cache data, and the backup write cache for each RAID controller 22 to 22n. The RAID controllers 22 to 22n for which data backup relationships are set are defined.

상기 백업 쓰기캐시는 데이터 백업관계가 설정된 레이드 제어기(22∼22n)의 쓰기캐시의 내용을 백업하는 것으로 해당 레이드 제어기(22∼22n)의 쓰기캐시와 동기화되어 관리된다.The backup write cache backs up the contents of the write caches of the RAID controllers 22 to 22n for which data backup relationships are established, and is managed in synchronization with the write caches of the corresponding RAID controllers 22 to 22n.

상기 논리적 저장장치가 사용할 읽기캐시 및 쓰기캐시 크기를 결정하면 로컬 메모리에는 각 캐시의 데이터 관리를 위해 필요한 캐시 관리 구조가 할당되고, 타 레이드 제어기(22∼22n)에 의해 사용된 백업 쓰기캐시까지 고려하여 캐시 버퍼로 사용되는 버퍼 풀이 할당된다.When the size of the read cache and the write cache to be used by the logical storage device is determined, the cache management structure necessary for data management of each cache is allocated to the local memory, and the backup write cache used by the RAID controllers 22 to 22n is considered. The buffer pool used as cache buffer is allocated.

상기 캐시 버퍼로 사용되는 버퍼 풀은 전체 로컬 메모리 크기만큼 할당되어 읽기캐시, 쓰기캐시, 백업 쓰기캐시가 공용으로 사용하는 공유 메모리로 정의되며,레이드 제어기(22∼22n)간의 메모리 복사에 의한 데이터 전송은 SCI 정합장치와 SCI 스위치(23)를 통해 수행된다.The buffer pool used as the cache buffer is defined as the shared memory shared by the read cache, the write cache, and the backup write cache by allocating the total local memory size, and transferring data by copying the memory between the RAID controllers 22 to 22n. Is performed through the SCI matching device and the SCI switch 23.

레이드 제어기(22∼22n)사이의 통신은 SCI 정합 장치인 SCI 서버 모듈과 SCI 클라이언트 모듈에 의한 메시지 전송 기능(message passing)으로 수행된다.Communication between the RAID controllers 22 to 22n is performed by a message passing function by the SCI server module and the SCI client module, which are SCI matching devices.

SCI 서버 모듈은 서로의 로컬 메모리를 공유하는 레이드 제어기들(22∼22n)로부터 전송되는 메시지를 수신하기 위하여 레이드 제어기(22∼22n)마다 독립적인 메시지 수신 버퍼를 할당하고, 수신된 메시지를 처리하는 메시지 수신 프로세스를 생성한다. 메시지 수신 프로세스는 수신된 메시지를 복사한 후 해당 레이드 제어기(22∼22n)에게 수신 버퍼가 비었으니 다음 메시지를 보내라는 응답을 보낸 후 복사한 메시지의 형식을 검색하여 그에 맞게 처리해 주는 일을 담당한다.The SCI server module allocates independent message receiving buffers for each of the RAID controllers 22 to 22n to process messages received from the RAID controllers 22 to 22n that share each other's local memory, and processes the received messages. Create a message receiving process. The message receiving process is responsible for copying the received message and sending the response message to the corresponding RAID controllers 22 to 22n to send the next message, and then searching for the format of the copied message and processing it accordingly. .

SCI 클라이언트 모듈은 타 레이드 제어기(22∼22n)로 메시지를 전달하고자 할 때 해당 레이드 제어기(22∼22n)에 할당된 자신의 메시지 수신 버퍼에 메시지를 저장하는 일을 담당한다.The SCI client module is responsible for storing a message in its own message receiving buffer allocated to the corresponding RAID controllers 22 to 22n when it wants to deliver the message to the slave controllers 22 to 22n.

상기 레이드 제어기(22∼22n)의 락정보 관리모듈은 각각의 레이드 제어기(22∼22n)가 복수의 저장장치를 공유하므로 동일한 데이터에 대해 여러 레이드 제어기(22∼22n)가 접근하는 경우 캐시 데이터의 일관성을 유지하기 위하여, 상기 로컬 메모리에 저장되는 복수의 공유 저장장치의 데이터 크기를 캐시라인 단위로 정의하고 해당 데이터가 어느 레이드 제어기(22∼22n)의 어느 캐시에 저장되어 있으며 접근가능한지를 나타내는 락정보(lock information)를 캐시라인 크기의 데이터마다 할당한다.The lock information management module of the RAID controllers 22 to 22n has a plurality of storage devices shared by each of the RAID controllers 22 to 22n. In order to maintain consistency, the data size of the plurality of shared storage devices stored in the local memory is defined in units of cache lines, and a lock indicating which cache of which RAID controllers 22 to 22n is stored and accessible Lock information is allocated for each data of the cache line size.

상기 락정보 관리모듈은 논리적 저장장치마다 락정보를 독립적으로 할당하여 관리한다.The lock information management module independently allocates and manages lock information for each logical storage device.

상기 레이드 제어기(22∼22n)의 락정보 관리모듈에 의해 할당되는 락 정보는 각각의 레이드 제어기(22∼22n)마다 분산되어 관리되는 데이터마다 할당되고, 해당 데이터를 관리하면서 락 서버(lock server) 역할을 하는 레이드 제어기(22∼22n)에만 존재하며, 동일한 논리적 저장장치에 대한 데이터를 공유하는 레이드 제어기(22∼22n)들 중 특정 레이드 제어기(22∼22n)의 로컬 메모리에 포함되는 캐시에 해당 데이터가 존재하면 할당되었다가 이 레이드 제어기(22∼22n)에 해당 데이터가 존재하지 않게 되면 삭제된다.The lock information allocated by the lock information management module of the RAID controllers 22 to 22n is allocated to the data distributed and managed for each RAID controller 22 to 22n, and the lock server is managed while managing the data. It exists only in the RAID controllers 22 to 22n serving as a role, and corresponds to a cache included in the local memory of a specific RAID controller 22 to 22n among the RAID controllers 22 to 22n sharing data for the same logical storage device. If data exists, it is allocated. If the data does not exist in the RAID controllers 22 to 22n, the data is deleted.

상기 락 서버란 각 레이드 제어기(22∼22n)마다 관리해야 할 논리적 저장장치를 할당할 때 할당된 데이터들에 대한 데이터 접근권한을 관리하는 레이드 제어기(22∼22n)를 말한다.The lock server refers to the RAID controllers 22 to 22n that manage data access rights for the allocated data when allocating logical storage devices to be managed for each RAID controller 22 to 22n.

상기 락 정보 관리모듈은 락정보 검색, 락정보 할당 및 삭제, 락정보를 요청한 프로세스 관리, 해당 데이터가 저장된 레이드 제어기(22∼22n) 및 로컬 메모리의 캐시와 관련된 정보, 해당 데이터에 대한 갱신이 진행 중인 동안 타 레이드 제어기(22∼22n)들에 의한 데이터 접근 금지 기능을 수행한다.The lock information management module searches for lock information, allocates and deletes lock information, manages a process for requesting lock information, information related to caches of the RAID controllers 22 to 22n in which the data is stored, and a cache of the local memory, and updates the data. The data access inhibit function is performed by the RAID controllers 22 to 22n while the data is in progress.

상기 락 정보 관리모듈은 호스트들(20∼20n)의 모든 읽기와 쓰기 요구를 처리하기에 앞서 락정보를 검색하고, 빠른 락정보 검색을 위하여 로컬 메모리에 락정보 관리 구조를 저장한다.The lock information management module retrieves lock information prior to processing all read and write requests of the hosts 20-20n, and stores the lock information management structure in a local memory for quick lock information retrieval.

제1광채널 스위치(21)는 상기 복수의 호스트(20∼20n)와 복수의 레이드 제어기(22∼22n)가 서로 다중으로 접속되도록 연결한다.The first optical channel switch 21 is connected so that the plurality of hosts 20 to 20n and the plurality of RAID controllers 22 to 22n are connected to each other multiplely.

SCI 스위치(23)는 상기 복수의 레이드 제어기(22∼22n)가 서로 데이터 일관성을 유지하기 위해 서로 메시지나 데이터를 주고받을 수 있도록 하고 복수의 레이드 제어기(22∼22n) 중에 임의의 제어기가 고장나더라도 나머지 다른 레이드 제어기간의 통신이 단절되지 않도록 각각의 레이드 제어기(22∼22n)가 서로 다중으로 접속되도록 연결한다.The SCI switch 23 allows the plurality of RAID controllers 22 to 22n to exchange messages or data with each other in order to maintain data consistency with each other, and any of the plurality of RAID controllers 22 to 22n has failed. Also, each of the RAID controllers 22 to 22n is connected to each other in multiple connections so that communication between the other RAID controllers is not interrupted.

제2광채널 스위치(24)는 상기 복수의 레이드 제어기(22∼22n)에 의해 공유되는 상기 복수의 저장장치와 복수의 레이드 제어기(22∼22n)가 서로 다중으로 접속되도록 연결한다.The second optical channel switch 24 is connected so that the plurality of storage devices and the plurality of RAID controllers 22 to 22n shared by the plurality of RAID controllers 22 to 22n are connected to each other multiplely.

상기와 같이 구성된 본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템은 도 4에 도시된 바와 같이 관리되어 다음과 같이 작동한다.The distributed shared RAID system having a multiple RAID controller according to the present invention configured as described above is managed as shown in FIG. 4 and operates as follows.

먼저, 복수의 호스트(20∼20n)는 복수의 레이드 제어기(22∼22n)와 연결된 제1광채널 스위치(21)를 통해 각각의 레이드 제어기(22∼22n)의 부하를 미리 검토하여(S10) 가장 부하가 적은 레이드 제어기(22∼22n)로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달한다(S20).First, the plurality of hosts 20 to 20n examine the load of each of the RAID controllers 22 to 22n in advance through the first optical channel switch 21 connected to the plurality of RAID controllers 22 to 22n (S10). The load controller 22-22n transmits data read and write requests for a plurality of storage devices (S20).

이때, 요구를 전달받은 레이드 제어기(22∼22n)가 고장남에 따라서 이 레이드 제어기(22∼22n)로부터 처리되지 못한 읽기와 쓰기 요구가 되돌아오면 상기 고장난 레이드 제어기(22∼22n)로 읽기와 쓰기 요구를 전달한 호스트(20∼20n)는 되돌아온 읽기와 쓰기 요구를 나머지 복수의 레이드 제어기(22∼22n) 중에서 부하가 가장 작은 다른 레이드 제어기(22∼22n)로 다시 전달한다.At this time, when the read controllers 22 to 22n that have received the request fail, the unread read and write requests from the slave controllers 22 to 22n are returned to the failed controllers 22 to 22n. The host 20 to 20n which has delivered the request transfers the read and write requests back to the other RAID controllers 22 to 22n having the least load among the remaining plurality of RAID controllers 22 to 22n.

상기와 같이 복수의 호스트(20∼20n)의 읽기와 쓰기 요구가 정상적으로 각각의 레이드 제어기(22∼22n)로 전달되면, 특정 호스트(20∼20n)의 읽기와 쓰기 요구를 전달받은 레이드 제어기(22∼22n)는 락정보를 검색하여 호스트(20∼20n)의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한다(S30).As described above, when the read and write requests of the plurality of hosts 20 to 20n are normally transmitted to each of the RAID controllers 22 to 22n, the RAID controller 22 that receives the read and write requests of the specific host 20 to 20n is transmitted. 22n) searches for lock information to determine whether the request for reading or writing the host 20 to 20n is a request to be processed (S30).

이때, 상기 호스트(20∼20n)의 읽기와 쓰기 요구를 전달받은 레이드 제어기(22∼22n)가 호스트(20∼20n)의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 읽기와 쓰기 요구이면 자신이 읽기와 쓰기 요구를 처리한다(S40).In this case, the RAID controllers 22 to 22n that have received the read and write requests of the host 20 to 20n determine whether the request to be read or written by the host 20 to 20n is a request to be processed by the host controller. If the request is a read and write request to be processed by itself, it processes the read and write request (S40).

실제로, 상기 호스트(20∼20n)가 요구한 읽기 요구가 특정 레이드 제어기(22∼22n) 자신이 처리할 읽기 요구이면 이 레이드 제어기(22∼22n)는 제2광채널 스위치(24)를 통하여 락정보에 의해 접근 가능한 저장장치에서 읽기 데이터를 읽어 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트(20∼20n)에 전달한 다음, 자신의 로컬 메모리의 읽기캐시에 호스트(20∼20n)가 요구한 읽기 데이터가 저장되었음을 락정보에 저장한다.In fact, if the read request requested by the host 20 to 20n is a read request to be processed by the specific RAID controller 22 to 22n itself, then the RAID controller 22 to 22n may lock information through the second optical channel switch 24. Reads data from a storage device accessible by the storage device, stores it in the read cache of its local memory, passes the read data to the host 20 to 20n that has requested a read, and then stores the read data in the local memory's read cache. The lock information stores that read data requested by -20n) has been stored.

또한, 상기 호스트(20∼20n)가 요구한 쓰기 요구가 특정 레이드 제어기(22∼22n) 자신이 처리할 쓰기 요구이면 이 레이드 제어기(22∼22n)는 쓰기 요구한 호스트(20∼20n)로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치(24)를 통하여 락정보에 의해 접근 가능한 저장장치에 전달한다.In addition, if the write request requested by the host 20 to 20n is a write request to be processed by the specific RAID controller 22 to 22n itself, the RAID controller 22 to 22n writes from the write request host 20 to 20n. After receiving the data and storing it in the write cache of its own local memory, the write data is transferred to the storage device accessible by the lock information through the second optical channel switch 24.

이때, 호스트(20∼20n)로부터 쓰기 데이터를 받아 쓰기캐시에 저장한 상기레이드 제어기(22∼22n)는 SCI 정합장치를 경유하고 SCI 스위치(23)를 통해 현재 자신이 쓰기 요구 처리를 하고자 하는 이전 데이터를 저장하고 있는 다른 레이드 제어기(22∼22n)들로 쓰기캐시 데이터 무효화 메시지를 전송하여 이들 다른 레이드 제어기(22∼22n)로부터 쓰기캐시 데이터 무효화 완료 메시지를 전달받은 후, 자신의 쓰기 데이터를 백업하여 관리하는 레이드 제어기(22∼22n)로 데이터 백업 메시지를 전송하여 데이터 백업 메시지를 전송받은 레이드 제어기(22∼22n)의 로컬 메모리의 백업 쓰기캐시에 자신의 쓰기 데이터를 백업한다.At this time, the RAID controllers 22 to 22n which have received the write data from the host 20 to 20n and store the write data in the write cache are transferred via the SCI matching device to the current SCI switch 23. After sending the write cache data invalidation message to the other RAID controllers 22 to 22n storing the data and receiving the write cache data invalidation completion message from these other RAID controllers 22 to 22n, backing up the own write data. The data backup message is sent to the RAID controllers 22 to 22n managing the backup data, and the write data is backed up to the backup write cache of the local memory of the RAID controllers 22 to 22n receiving the data backup message.

한편, 상기 호스트(20∼20n)가 요구한 읽기와 쓰기 요구가 특정 레이드 제어기(22∼22n) 자신이 처리할 읽기와 쓰기 요구가 아니면 이 레이드 제어기(22∼22n)는 다른 레이드 제어기(22∼22n)로 해당 호스트(20∼20n)의 읽기와 쓰기 요구를 전달하여 상기 다른 레이드 제어기(22∼22n)가 해당 호스트(20∼20n)의 읽기와 쓰기 요구를 처리하도록 한다(S50).On the other hand, if the read and write requests requested by the host 20 to 20n are not the read and write requests to be handled by the specific slave controllers 22 to 22n, the slave controllers 22 to 22n are used by other slave controllers 22 to 22n. 22n), the read and write requests of the hosts 20-20n are transmitted to the other RAID controllers 22-22n to process read and write requests of the hosts 20-20n (S50).

실제로, 상기 호스트(20∼20n)가 요구한 읽기 요구가 특정 레이드 제어기(22∼22n) 자신이 처리할 읽기 요구가 아니면 이 레이드 제어기(22∼22n)는 SCI 스위치(23)를 통하여 락정보를 검색하여 획득한 해당 읽기 요구 처리 레이드 제어기(22∼22n)로 리모트 읽기 메시지를 전송한 후, 리모트 읽기 메시지를 수신한 레이드 제어기(22∼22n)로부터 호스트(20∼20n)가 요구한 읽기 데이터를 전달받아 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트(20∼20n)에 전달한다. 이때, 리모트 읽기 메시지를 수신한 레이드 제어기(22∼22n)는 제2광채널 스위치(24)를 통하여 락정보에 의해 접근 가능한 저장장치에서 읽기 데이터를 읽어 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 리모트 읽기 메시지를 보낸 레이드 제어기(22∼22n)로 전달한 다음, 자신의 로컬 메모리의 읽기캐시에 해당 호스트(20∼20n)가 요구한 읽기 데이터가 저장되었음을 락정보에 저장한다.In fact, if the read request requested by the host 20 to 20n is not a read request to be handled by the specific RAID controller 22 to 22n itself, the RAID controller 22 to 22n receives lock information through the SCI switch 23. After transmitting the remote read message to the corresponding read request processing RAID controllers 22 to 22n obtained by searching, the read data requested by the host 20 to 20n is received from the slave controllers 22 to 22n that receive the remote read message. It receives the data, stores it in the read cache of its own local memory, and transfers the read data to the host 20 to 20n that has requested the read. At this time, the RAID controllers 22 to 22n receiving the remote read message read the read data from the storage device accessible by the lock information through the second optical channel switch 24 and store the read data in the read cache of the local memory. The read data is transferred to the RAID controllers 22 to 22n that have sent the remote read message, and then stored in the lock information indicating that the read data requested by the host 20 to 20n has been stored in the read cache of its local memory.

또한, 상기 호스트(20∼20n)가 요구한 쓰기 요구가 특정 레이드 제어기(22∼22n) 자신이 처리할 쓰기 요구가 아니면 이 레이드 제어기(22∼22n)는 SCI 스위치(23)를 통하여 락정보를 검색하여 획득한 해당 쓰기 요구 처리 레이드 제어기(22∼22n)로 리모트 쓰기 메시지를 전송하여 리모트 쓰기 메시지를 수신한 레이드 제어기(22∼22n)가 쓰기 요구한 호스트(20∼20n)로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치(24)를 통하여 락정보에 의해 접근 가능한 저장장치에서 전달하도록 한다.In addition, if the write request requested by the host 20 to 20n is not a write request to be processed by the specific RAID controller 22 to 22n itself, the RAID controller 22 to 22n receives lock information through the SCI switch 23. Sends a remote write message to the corresponding write request processing RAID controllers 22 to 22n obtained by receiving the write data from the host 20 to 20n requested by the write controllers 22 to 22n that receive the remote write message. After storing in the write cache of its own local memory, the write data is transferred from the storage device accessible by the lock information through the second optical channel switch 24.

이때, 리모트 쓰기 메시지를 수신한 레이드 제어기(22∼22n)는 SCI 정합장치를 경유하고 SCI 스위치(23)를 통해 현재 자신이 쓰기 요구 처리를 하고자 하는 이전 데이터를 저장하고 있는 다른 레이드 제어기(22∼22n)들로 쓰기캐시 데이터 무효화 메시지를 전송하여 이들 다른 레이드 제어기(22∼22n)로부터 쓰기캐시 데이터 무효화 완료 메시지를 전달받은 후, 자신의 쓰기 데이터를 백업하여 관리하는 레이드 제어기(22∼22n)로 데이터 백업 메시지를 전송하여 데이터 백업 메시지를 전송받은 레이드 제어기(22∼22n)의 로컬 메모리의 백업 쓰기캐시에 자신의 쓰기 데이터를 백업한다.At this time, the slave controllers 22 to 22n that have received the remote write message, via the SCI matching device, via the SCI switch 23, the other slave controllers 22 to 22 that are storing previous data that the current write request process is to be performed. 22n) sends the write cache data invalidation message to receive the write cache data invalidation completion message from these other RAID controllers 22 to 22n, and then to the RAID controllers 22 to 22n that back up and manage their own write data. A data backup message is transmitted to back up its own write data in the backup write cache of the local memory of the RAID controllers 22 to 22n that have received the data backup message.

상술한 바와 같이 본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법은 다중의 호스트들이 다중의 레이드 제어기를 통해 다중의 저장장치를 공유하도록 되어 있고, 특히 호스트와 레이드 제어기, 저장장치가 서로 독립성을 가지며 광 채널 스위치를 통해 연결하도록 되어 있기 때문에, 레이드 제어기나 저장장치의 추가를 통한 시스템 확장이 용이하다는 장점이 있다As described above, a distributed shared RAID system having a multiple RAID controller and a management method thereof according to the present invention allow multiple hosts to share multiple storage devices through multiple RAID controllers, and in particular, a host, a RAID controller, and a storage device. Are independent of each other and can be connected via a fiber channel switch, so it is easy to expand the system by adding RAID controllers or storage devices.

본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법은 임의의 호스트에서 임의의 레이드 제어기로도 공유 저장장치에 대한 입출력 요구가 가능하고, 호스트 운영체제의 장치 드라이버 상에 구현되는 부하 분산모듈을 통해 레이드 제어기들의 부하를 미리 검토하여 가장 부하가 적은 레이드 제어기를 선택하여 입출력 요구를 처리하도록 하는 부하 분산기능을 제공하기 때문에, 시스템의 입출력 성능을 개선시킬 수 있는 장점이 있다.The distributed shared RAID system having a multiple RAID controller and a management method thereof according to the present invention are capable of input / output request to the shared storage device from any host to any RAID controller, and load balancing implemented on a device driver of a host operating system. Through the module, the load of the RAID controllers is reviewed in advance, so that the load controller having the least load controller is selected to handle the input / output request, thereby improving the input / output performance of the system.

본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법은 각각의 레이드 제어기들이 공유 데이터를 분산 관리하는 락 서버 역할을 하도록 되어 있고, 이 락 서버에서 캐시 데이터마다 락 정보를 할당하도록 되어 있기 때문에, 동일한 데이터에 대해 여러 레이드 제어기에 의한 접근에 의해 데이터가 훼손되는 것을 방지할 수 있을 뿐만 아니라, 동일한 데이터의 복사본을 여러 레이드 제어기에 저장하고 이를 락 정보에서 관리해 줌으로써 동일한 데이터에 대한 읽기 요구가 빈번한 응용환경에서 동시에 여러 레이드 제어기들로부터 병렬처리가 가능하고, 대용량의 데이터 처리나 서로 다른 데이터에 대한 데이터 처리인 경우에도 동시에 여러 레이드 제어기들이 서로 다른 데이터들에 대해 처리해 줌으로써 보다 빠른 데이터 처리가 가능하다는 장점이 있다.The distributed shared RAID system having a multiple RAID controller and a management method thereof according to the present invention are configured to serve as a lock server in which each RAID controller distributes and manages shared data, and the lock server allocates lock information for each cache data. This prevents data corruption by access by multiple RAID controllers to the same data, and saves a copy of the same data in multiple RAID controllers and manages it in lock information so that read requests for the same data can be made. Parallel processing is possible from multiple RAID controllers at the same time in a frequent application environment, and even if a large amount of data processing or data processing for different data is performed simultaneously, multiple RAID controllers process different data for faster data. The advantage is that it can be processed.

본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법은 캐시 데이터에 대한 갱신이 해당 데이터의 락 정보를 관리하는 특정 레이드 제어기의 쓰기 캐시에만 저장되고 다른 레이드 제어기에서 관리하는 미러링 캐시에 동일한 데이터를 저장해 주기 때문에, 데이터가 손실되는 것을 방지할 수 있으며, 상기 특정 레이드 제어기가 고장나더라도 미러링 데이터를 저장하고 있는 다른 레이드 제어기를 통해 복구할 수 있는 장점이 있다.The distributed shared RAID system having a multiple RAID controller and a method of managing the same according to the present invention are stored in a write cache of a specific RAID controller managing update information of the cache data in a mirroring cache managed by another RAID controller. Since the same data is stored, data can be prevented from being lost, and even if the specific RAID controller fails, the data can be recovered through another RAID controller storing mirroring data.

이상에서 설명한 것은 본 발명에 따른 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 및 그 관리 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.What has been described above is only one embodiment for implementing a distributed shared RAID system having a multiple RAID controller and a management method thereof according to the present invention, the present invention is not limited to the above-described embodiment, Without departing from the gist of the present invention claimed in the scope, anyone of ordinary skill in the art will have the technical spirit of the present invention to the extent that various modifications can be made.

Claims (5)

운영체제의 장치 드라이버 상에 레이드 제어기 부하 분산 기능을 수행하는 부하 분산 모듈을 구현하여 복수의 저장장치에 대한 데이터 읽기와 쓰기를 요구하는 복수의 호스트와;A plurality of hosts implementing a load controller module performing a RAID controller load balancing function on a device driver of an operating system to request reading and writing of data to a plurality of storage devices; 상기 복수의 호스트들 중 임의의 호스트로부터 전달되는 데이터 읽기와 쓰기 요구를 처리하는 복수의 레이드 제어기;A plurality of RAID controllers for processing data read and write requests transmitted from any one of the plurality of hosts; 상기 복수의 호스트와 복수의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 제1광채널 스위치;A first optical channel switch connecting the plurality of hosts and the plurality of RAID controllers to be connected to each other in a plurality; 상기 복수의 레이드 제어기가 서로 데이터 일관성을 유지하기 위해 서로 메시지나 데이터를 주고받을 수 있도록 하고 복수의 레이드 제어기 중에 임의의 제어기가 고장나더라도 나머지 다른 레이드 제어기간의 통신이 단절되지 않도록 각각의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 SCI 스위치; 및The plurality of RAID controllers may exchange messages or data with each other in order to maintain data consistency with each other, and each RAID controller may not disconnect communication between the other RAID controllers even if any one of the plurality of RAID controllers fails. An SCI switch for connecting the plurality of connections to each other; And 상기 복수의 레이드 제어기에 의해 공유되는 상기 복수의 저장장치와 복수의 레이드 제어기가 서로 다중으로 접속되도록 연결하는 제2광채널 스위치A second optical channel switch for connecting the plurality of storage devices and the plurality of RAID controllers shared by the plurality of RAID controllers to be connected to each other in a plurality; 로 구성된 것을 특징으로 하는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템.Distributed sharing RAID system having a multiple RAID controller, characterized in that consisting of. 제 1 항에 있어서, 상기 각각의 호스트의 장치 드라이버 상에 구현되는 부하 분산 모듈은 상기 제1광채널 스위치에 의해 다중 접속되는 각각의 레이드 제어기의부하를 미리 검토하여 가장 부하가 적은 레이드 제어기로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달하고 고장난 레이드 제어기로부터 처리되지 못하고 되돌아온 읽기와 쓰기 요구를 다른 레이드 제어기로 다시 전달하는 부하 분산 기능을 수행하는 것을 특징으로 하는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템.The load balancing module of claim 1, wherein the load balancing module implemented on the device driver of each host is configured to review the load of each RAID controller multiplexed by the first fiber channel switch, and to load the plurality of RAID controllers with the least load. A distributed shared RAID with multiple RAID controllers that delivers data read and write requests for storage devices and load balances the unread and returned read and write requests back to the other RAID controllers. system. 제 1 항에 있어서, 상기 각각의 레이드 제어기는The method of claim 1, wherein each RAID controller is 복수의 저장장치를 공유하고 복수의 공유 저장장치에 대하여 복수의 논리적 저장장치를 대응시켜 각각의 레이드 제어기가 서로간에 동일한 데이터를 공유하면서 상기 복수의 호스트의 읽기와 쓰기 요구를 처리하도록 읽기캐시와 쓰기캐시 및 백업 쓰기캐시로 구성되는 로컬 메모리를 관리하는 캐시관리모듈과;Read cache and write to share multiple storage devices and to map multiple logical storage devices to multiple shared storage devices so that each RAID controller can handle the read and write requests of the plurality of hosts while sharing the same data with each other. A cache management module which manages a local memory consisting of a cache and a backup write cache; 서로의 로컬 메모리를 공유하는 레이드 제어기들로부터 전송되는 메시지를 수신하기 위하여 레이드 제어기마다 독립적인 메시지 수신 버퍼를 할당하고, 수신된 메시지를 처리하는 메시지 수신 프로세스를 생성한다. 메시지 수신 프로세스는 수신된 메시지를 복사한 후 해당 레이드 제어기에게 수신 버퍼가 비었으니 다음 메시지를 보내라는 응답을 보낸 후 복사한 메시지의 형식을 검색하여 그에 맞게 처리해 주는 일을 담당하는 SCI 서버 모듈;In order to receive messages transmitted from RAID controllers sharing local memory with each other, an independent message reception buffer is allocated to each RAID controller, and a message reception process for processing the received message is generated. The message receiving process includes: an SCI server module responsible for copying a received message and retrieving the format of the copied message after sending a response to send the next message to the corresponding RAID controller; 타 레이드 제어기로 메시지를 전달하고자 할 때 해당 레이드 제어기에 할당된 자신의 메시지 수신 버퍼에 메시지를 저장하는 일을 담당하는 SCI 클라이언트 모듈; 및An SCI client module responsible for storing a message in a message receiving buffer of the slave controller when the message is to be delivered to the slave controller; And 상기 로컬 메모리에 저장되는 복수의 공유 저장장치의 데이터 크기를 캐시라인 단위로 정의하고 해당 데이터가 어느 레이드 제어기의 어느 캐시에 저장되어 있으며 접근가능한지를 나타내는 락정보를 캐시라인 크기의 데이터마다 할당하여 복수의 저장장치를 공유하고 동일한 데이터에 접근하는 각각의 레이드 제어기에 대한 캐시 데이터의 일관성을 유지하는 락정보 관리모듈Define a data size of a plurality of shared storage devices stored in the local memory in cache line units, and allocate lock information for each cache line size data indicating which cache of which RAID controller the data is stored and accessible. Information management module that maintains the consistency of cache data for each RAID controller sharing the same storage device and accessing the same data. 로 구성되는 것을 특징으로 하는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템.Distributed sharing RAID system having a multiple RAID controller, characterized in that consisting of. 복수의 호스트가 복수의 레이드 제어기와 연결된 제1광채널 스위치를 통해 각각의 레이드 제어기의 부하를 미리 검토하여 가장 부하가 적은 레이드 제어기로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달하는 단계와;A plurality of hosts reviewing the load of each RAID controller in advance through a first optical channel switch connected to the plurality of RAID controllers and transferring data read and write requests for the plurality of storage devices to the least loaded RAID controller; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 락정보를 검색하여 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별하는 단계;Determining, by the RAID controller receiving the read and write request of the host, searching for lock information to determine whether the read and write request of the host is a request to be processed; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 읽기 요구이면 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에서 읽기 데이터를 읽어 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트에 전달하는 단계;As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be processed, if the request is a read request to be processed by the host controller, the lock information is transmitted through the second optical channel switch. Reading read data from a storage device accessible by the storage device, storing the read data in a read cache of its local memory, and transferring the read data to a host requesting read; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 쓰기 요구이면 쓰기 요구한 호스트로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에 전달하는 단계;As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be processed, if the request is a write request to be processed by the RAID controller, the write controller receives write data from the write requesting host. Receiving and storing the write cache in its own local memory and transferring the write data to a storage device accessible by the lock information through the second optical channel switch; 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 읽기 요구가 아니면 SCI 스위치를 통하여 락정보를 검색하여 획득한 해당 읽기 요구 처리 레이드 제어기로 리모트 읽기 메시지를 전송한 후, 리모트 읽기 메시지를 수신한 레이드 제어기로부터 호스트가 요구한 읽기 데이터를 전달받아 자신의 로컬 메모리의 읽기캐시에 저장한 후 이 읽기 데이터를 읽기 요구한 호스트에 전달하는 단계; 및As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be handled by the host, if the request is not a read request to be processed by the RAID controller, lock information is provided through the SCI switch. Processing the read request obtained by searching and sending the remote read message to the RAID controller, receiving the read data requested by the host from the RAID controller that received the remote read message, and storing it in the read cache of its local memory. Delivering the data to the host requesting read; And 상기 호스트의 읽기와 쓰기 요구를 전달받은 레이드 제어기가 호스트의 읽기와 쓰기를 요구가 자신이 처리할 요구인지를 판별한 결과, 해당 요구가 자신이 처리할 쓰기 요구가 아니면 SCI 스위치를 통하여 락정보를 검색하여 획득한 해당 쓰기 요구 처리 레이드 제어기로 리모트 쓰기 메시지를 전송하여 리모트 쓰기 메시지를 수신한 레이드 제어기가 쓰기 요구한 호스트로부터 쓰기 데이터를 받아 자신의 로컬 메모리의 쓰기캐시에 저장한 후 이 쓰기 데이터를 제2광채널 스위치를 통하여 락정보에 의해 접근 가능한 저장장치에 전달하도록 하는 단계As a result of the RAID controller receiving the read and write request of the host and determining whether the read and write request of the host is a request to be processed by the host, if the request is not a write request to be processed by the RAID controller, lock information is obtained through the SCI switch. Receive the write data from the host that requested the write request by sending the remote write message to the RAID controller by receiving the write request and storing the write data in the write cache of its local memory. Delivering to a storage device accessible by lock information through a second optical channel switch; 로 이루어진 것을 특징으로 하는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 관리 방법.Distributed sharing RAID system management method having a multiple RAID controller, characterized in that consisting of. 제 4 항에 있어서, 복수의 호스트가 복수의 레이드 제어기로 복수의 저장장치에 대한 데이터 읽기와 쓰기 요구를 전달하는 단계에서는The method of claim 4, wherein the plurality of hosts transmit data read and write requests for the plurality of storage devices to the plurality of RAID controllers. 요구 전달 후, 해당 레이드 제어기가 고장남에 따라서 이 레이드 제어기로부터 처리되지 못하고 되돌아오면 되돌아온 읽기와 쓰기 요구를 나머지 복수의 레이드 제어기 중에서 부하가 가장 작은 다른 레이드 제어기로 다시 전달하는 것을 특징으로 하는 다중 레이드 제어기를 갖는 분산공유 레이드 시스템 관리 방법.After the request is delivered, if the blade controller fails and is not processed from the blade controller, the returned read and write request is returned to another blade controller having the least load among the remaining blade controllers. A method for managing a distributed shared RAID system having a controller.
KR1020020081115A 2002-12-18 2002-12-18 Distributed and shared RAID system with multiple RAID controllers and management method thereof Ceased KR20040054267A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020081115A KR20040054267A (en) 2002-12-18 2002-12-18 Distributed and shared RAID system with multiple RAID controllers and management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020081115A KR20040054267A (en) 2002-12-18 2002-12-18 Distributed and shared RAID system with multiple RAID controllers and management method thereof

Publications (1)

Publication Number Publication Date
KR20040054267A true KR20040054267A (en) 2004-06-25

Family

ID=37347369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020081115A Ceased KR20040054267A (en) 2002-12-18 2002-12-18 Distributed and shared RAID system with multiple RAID controllers and management method thereof

Country Status (1)

Country Link
KR (1) KR20040054267A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827281B1 (en) * 2005-05-09 2008-05-07 인터내셔널 비지네스 머신즈 코포레이션 Convolution-encoded raid with trellis-decode-rebuild
WO2010062696A3 (en) * 2008-10-30 2010-07-22 Millenniata, Inc. Archival optical disc arrays
KR101139495B1 (en) * 2010-06-09 2012-05-02 주식회사 태진인포텍 Switch-based hybrid storage system and the providing method thereof
CN109358808A (en) * 2018-09-26 2019-02-19 郑州云海信息技术有限公司 A data processing method, system and related components

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827281B1 (en) * 2005-05-09 2008-05-07 인터내셔널 비지네스 머신즈 코포레이션 Convolution-encoded raid with trellis-decode-rebuild
WO2010062696A3 (en) * 2008-10-30 2010-07-22 Millenniata, Inc. Archival optical disc arrays
KR101139495B1 (en) * 2010-06-09 2012-05-02 주식회사 태진인포텍 Switch-based hybrid storage system and the providing method thereof
CN109358808A (en) * 2018-09-26 2019-02-19 郑州云海信息技术有限公司 A data processing method, system and related components
CN109358808B (en) * 2018-09-26 2021-06-29 郑州云海信息技术有限公司 A data processing method, system and related components

Similar Documents

Publication Publication Date Title
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
CN100565464C (en) Remote copy system
EP1179770B1 (en) File system
US7159150B2 (en) Distributed storage system capable of restoring data in case of a storage failure
JP4412989B2 (en) Data processing system having a plurality of storage systems
US7496718B2 (en) Data transfer and access control between disk array systems
US7415589B2 (en) Data processing system with multiple storage systems
US20110238625A1 (en) Information processing system and method of acquiring backup in an information processing system
JP4519563B2 (en) Storage system and data processing system
US6345368B1 (en) Fault-tolerant access to storage arrays using active and quiescent storage controllers
CN100524236C (en) Storage control device and data management method thereof
US6275897B1 (en) Remote cache utilization for mirrored mass storage subsystem
JP4170056B2 (en) Backup / restore management method between replicated volumes and storage control device used in this method
US7194590B2 (en) Three data center adaptive remote copy
JP4790372B2 (en) Computer system for distributing storage access load and control method thereof
US11194501B2 (en) Standby copies withstand cascading fails
JP4201447B2 (en) Distributed processing system
US8078904B2 (en) Redundant configuration method of a storage system maintenance/management apparatus
WO2019049224A1 (en) Distributed storage system and distributed storage control method
JPH05508506A (en) Fault-tolerant network file system
US20110196825A1 (en) Storage system and data duplication method in the same
US7133989B2 (en) Point in time copy between data storage systems
US11216204B2 (en) Degraded redundant metadata, DRuM, technique
KR20040054267A (en) Distributed and shared RAID system with multiple RAID controllers and management method thereof
JP4124374B2 (en) Storage system

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20021218

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20040827

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20050330

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20040827

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I