KR20040022433A - 가상의 저장영역 네트워크를 설정하기 위한 네트워크데이터의 미러링 - Google Patents

가상의 저장영역 네트워크를 설정하기 위한 네트워크데이터의 미러링 Download PDF

Info

Publication number
KR20040022433A
KR20040022433A KR10-2003-7016806A KR20037016806A KR20040022433A KR 20040022433 A KR20040022433 A KR 20040022433A KR 20037016806 A KR20037016806 A KR 20037016806A KR 20040022433 A KR20040022433 A KR 20040022433A
Authority
KR
South Korea
Prior art keywords
server
data
network
storage device
mass storage
Prior art date
Application number
KR10-2003-7016806A
Other languages
English (en)
Other versions
KR100577314B1 (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 KR20040022433A publication Critical patent/KR20040022433A/ko
Application granted granted Critical
Publication of KR100577314B1 publication Critical patent/KR100577314B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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/2071Error 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 using a plurality of controllers
    • 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/2071Error 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 using a plurality of controllers
    • G06F11/2079Bidirectional techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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
    • 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/2064Error 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 while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

물리적인 공유 기억장치 노드가 없이 치안 프로토콜 모듈(311, 321)과 미러 엔진(317 및 327)을 사용하여 가상의 저장영역 네트워크(340)를 제공하도록 데이터를 미러링하는 것. 미러 엔진(317 및 327)은 서버가 쓰기 작동을 수신하고 실행할 때 서버의 대용량 기억장치(319, 320) 사이에서 데이터를 미러링 하여 각 대용량 기억장치가 동일한 저장된 데이터를 포함하도록 네트워크(301)상의 각 서버 컴퓨터(310, 320)에 존재한다. 치안 프로토콜(311, 321)은 하나 이상의 서버(310 및 320)가 한꺼번에 데이터 파일을 쓰는 것을 허용하지 않음으로써 데이터 손상을 방지한다. 하나의 서버(310 및 320)가 고장나고 네트워크 데이터에 접속을 제공할 수 없다면, 다른 서버 또는 서버들이 모든 읽기 요구를 서비스할 수 있는데, 이는 모든 네트워크 데이터가 모든 서버에 의해 접속가능하기 때문이다. 종래의 저장영역 네트워크와는 달리, 어떠한 물리적인 공유 기억장치 노드가 존재하지 않고, 따라서, 가상의 저장영역 네트워크(340)를 얻고 작동하는 비용이 상대적으로 저렴하다.

Description

가상의 저장영역 네트워크를 설정하기 위한 네트워크 데이터의 미러링{MIRRORING NETWORK DATA TO ESTABLISH VIRTUAL STORAGE AREA NETWORK}
네트워크 서버 컴퓨터 시스템에서는, 둘 이상의 서버에 의해 통상적으로 지원되는 다수의 개인용 컴퓨터 또는 사용자 워크스테이션이 존재한다. 이러한 컴퓨터 시스템의 연속적인 작동을 제공하기 위해서는, 컴퓨터 시스템은 네트워크 서버 컴퓨터 시스템 내에서 흔히 발생하는 장애 또는 고장을 극복하는 방법을 제공하는 것이 필요하다. 이는 주 서버 컴퓨터 또는 디스크 드라이브의 장애 또는 고장의 경우에 인계 받도록 즉시 이용할 수 있는 백업 서버 컴퓨터 또는 백업 디스크 드라이버와 같은 여분의 컴퓨터 또는 대용량 기억장치를 구비함으로써 일반적으로 행해진다.
고장 허용(fault-tolerable) 컴퓨터 시스템을 이행하는 기법은 Major 등의 미국 특허 No. 5,157,663에 기재되어 있다. 특히, Major는 파일서버들 중 한 서버의 컴퓨터 또는 대용량 기억장치의 고장을 복구할 수 있는 여분의 네트워크 파일서버 시스템을 제공한다. 파일서버 작동 시스템은 네트워크 파일서버에 있는 각 컴퓨터 시스템에서 실행되는데, 각 컴퓨터 시스템이 여분의 네트워크 파일서버를 생성하도록 상호 작용한다. 이 기법은 SFT-Ⅲ 고장 허용 파일서버 제품을 이행하기 위하여, Provo, UT의 Novell에 의해 사용되어 왔다.
더욱 최근에는, "저장영역 네트워크(storage area network; SAN)"로 알려진 고장 허용 네트워크가 개발되어 왔다. 저장영역 네트워크("SAN")는 기업 네트워크의 다중 서버를 공용 또는 공유 저장 노드와 연결하여 네트워크 데이터를 저장하고 접속한다. 서버들 중 한 서버가 고장나는 경우에는, 고장난 서버에 의해 제공되었을 네트워크 서비스를 다른 서버가 이행할 수 있다.
도1은 종래의 저장영역 네트워크를 포함하는 전형적인 네트워크 시스템의 구조를 도시한다. 도1은 네트워크(101)를 위한 네트워크 서비스를 제공하는 세 개의 서버 컴퓨터(110 120, 130)를 도시한다. 비록 세 개의 서버가 도1에 도시되었지만, 네트워크(101)는 두 개의 서버를 포함하거나, 도1에 도시된 것보다 많은 서버를 포함할 수 있다. 이러한 서버 컴퓨터의 가변적인 수는 공급될 네트워크의 개별적 필요성에 의존한다. 예를 들어, 큰 조직은 수 개의 서버 컴퓨터의 사용을 필요로 할 것이나, 보다 작은 조직은 단지 두 개의 서버 컴퓨터만을 필요로 할 수도 있다.
이 구조에서, 사용자 워크스테이션(또는 개인용 컴퓨터)(102)은 네트워크(101)에 연결되고 서버 컴퓨터(110, 120, 130)에 접속을 갖는다. 비록, 저장영역 네트워크를 포함하는 네트워크 시스템에서는, 필요할 때마다 임의의 서버가 임의의 워크스테이션에 대한 임의의 네트워크 서비스를 실질적으로 제공할 수 있지만, 각 사용자 워크스테이션은 일반적으로 특정 서버 컴퓨터와 연관된다. 워크스테이션(102)에 있는 사용자는 읽기, 쓰기 등의 작동 요구를 하고, 이는 연관된 서버 컴퓨터(110, 120, 130)로 전송된 다음, 입출력 드라이버(113, 123, 133)를 이용하여 요구된 작동을 수행한다. 서버(110, 120, 130)는 공유 기억장치 노드(140)의 디스크(142)에 저장되어 있는 네트워크 데이터에 대한 데이터 작동을 수행한다. 각 서버(110, 120, 130)는 공유 기억장치 노드(140)에 저장된 임의의 네트워크 데이터에 접속을 갖으며, 후술될 치안 프로토콜(policing protocol)의 지배를 받는다. 도1의 저장영역 네트워크는 물리적인 통신 인프라구조와, 서버 컴퓨터(110, 120, 130)를 공유 기억장치 노드(140)와 함께 작동할 수 있게 하는 프로토콜을 포함한다.
각 서버 컴퓨터는 치안 프로토콜 모듈(111, 121, 131)을 표현하는 소프트웨어를 포함하며, 이 소프트웨어는 치안 프로토콜을 이행하기 위하여 다른 서버 컴퓨터의 치안 프로토콜 모듈과 협력한다. 치안 프로토콜은 요구된 작동의 수행을 제어함으로써 데이터 손상을 방지한다. 예를 들면, 모듈(111, 121, 131)에 의해 이행된 치안 프로토콜은 서버가 어떤 시간에서의 읽기 작동 요구에도 응답하도록 할 수 있으나, 한 번에 하나의 서버 컴퓨터만이 쓰기 작동 요구를 실행할 수 있게 한다.
SAN의 한 가지 장점은 모든 서버 컴퓨터가 공유 기억장치 노드를 통하여 모든 네트워크 데이터와 접속한다는 점이다. 만약 하나의 서버가 고장나면, 워크스테이션은 그 고장난 서버를 지나가고 다른 서버에 작동 요구를 할 수 있다. 공유 기억장치 노드는 다른 서버들과 연관된 여러 기억장치 노드들 사이에 데이터를 미러링할 필요를 제거한다. 그러나, 저장영역 네트워크는 이들이 시장에서 완전히 수용될 수 없게 하고, 많은 고객에 대하여 부적합하게 만드는 적어도 두 가지의 현저한 단점을 가진다.
첫째로, SAN은 특정 하드웨어 즉, 공유 기억장치 노드를 필요로 한다. 저장영역 네트워크의 많은 잠재적인 사용자들은 공유 기억장치 노드를 구매하고 유지하는 비용이 터무니없음을 알게 된다. 실용적으로, SAN의 많은 사용자들은 다수의 서버를 구비한 비교적 큰 네트워크를 가진 대기업 또는 다른 기업들이다. 단지 두 개 또는 세 개의 서버에 대한 필요성만을 가진 기업은 저장영역 네트워크를 이행하는 것이 비용-효과적이라고 생각하지 않을 수도 있다.
둘째로, 비록 SAN이 네트워크 서버의 고장에 견딜 수 있지만, 이들은 다른 하드웨어 고장에 대해 반응하거나 보호하는 데에는 적합하지 않다. 예를 들면, 저장영역 네트워크는 하나의 공유 기억장치 노드를 사용하기 때문에, 공유 기억장치 노드와 연관된 고장 또는 문제점이 SAN을 오프라인으로 되게 할 수 있고, 공유 기억장치 노드에 저장되어 왔던 데이터를 잠재적으로 손실하게 할 수 있다. 따라서, 기본적인 SAN 구조는 고도의 무결성을 제공하지 못하고, 데이터 손실의 위험이 허용될 수 없는 조직에서 사용하기에 적절하지 않을 수 있다.
본 발명은 일반적으로 네트워크 서버 컴퓨터 시스템에 관한 것이며, 구체적으로는 여러 서버 컴퓨터가 동일한 네트워크 데이터에 접속하는 가상 저장영역 네트워크를 제공하는 시스템에서 컴퓨터 고장을 복구하기 위하여 사용되는 방법의 개선점에 관한 것이다.
본 발명의 상기 언급한 그리고 기타의 이점 및 특징이 얻어질 수 있는 방식을 기재하기 위하여, 간략하게 상술된 본 발명의 보다 구체적인 기재는 첨부한 도면에 도시된 본 발명의 특정 실시예를 참조하여 주어질 것이다. 이러한 도면이 본 발명의 전형적인 실시예를 도시하고 그러므로 본 발명의 범위를 한정하도록 의도되지 않음을 이해하면서, 본 발명은 다음과 같은 첨부 도면을 이용하여 보다 구체적이고 상세하게 기재되고 설명될 것이다.
도1은 물리적으로 공유된 기억장치 노드를 구비한 종래의 저장영역 네트워크를 포함하는 네트워크 시스템의 도시;
도2는 본 발명에 대한 적당한 작동 환경을 제공하는 예시적인 시스템의 도시;
도3은 본 발명에 따른 고장 허용 네트워크를 도시하며, 가상 저장영역 네트워크를 보이고 있는 개략도;
도4는 도3의 고장 허용 네트워크를 도시하며, 도3의 가상의 공유 기억장치 노드의 기능을 제공하는 하드웨어 및 구성요소를 보이고 있는 개략도;
도5는 세 개의 서버를 갖는 본 발명에 따른 네트워크를 도시하는 개략도;
도6 및 도7은 두 개의 서버와 연관되어 있는 디스크들 사이에 네트워크 데이터를 미러링하고, 이에 의해 각 서버에 네트워크 데이터에 대한 접속을 제공하는 방법의 도시;
도8은 두 개의 서버와 연관되어 있는 디스크들 사이에 데이터를 미러링하고, 이에 의해 각 서버에 네트워크 데이터에 대한 접속을 제공하는 방법을 도시하는 흐름도이다.
본 발명은 물리적인 공유 기억장치 노드를 사용하지 않고 가상의 저장영역네트워크를 제공하는 컴퓨터 네트워크에 관한 것이다. 본 발명에 따르면, 네트워크는 두 개 이상의 서버를 포함하며, 각 서버는 네트워크 데이터를 저장하는 자신의 디스크를 가지고 있다. 다음의 논의에서, 두 개의 서버를 갖는 네트워크가 고려된다. 그러나, 두 개의 서버를 참조하여 기재된 원리는 두 개 이상의 서버를 갖는 네트워크에 추론될 수 있다.
네트워크상의 사용자 워크스테이션이 서버 중 하나에 쓰기 작동 요구를 발부할 때, 요구를 수신하는 서버는 쓰기 요구를 그 디스크에서 실행하고 미러 엔진과 전용 링크를 사용하여 쓰기 작동 요구를 다른 서버에 전송한다. 머리링된 쓰기 작동 요구를 수신하면, 다른 서버는 쓰기 작동 요구를 그 디스크에서 실행한다. 이러한 방법으로, 한 서버의 디스크에 쓰여진 데이터는 또한 다른 서버의 디스크에 쓰여지고, 이에 의해 네트워크 데이터가 양 디스크에 미러링되고 저장된다.
동일한 네트워크 데이터가 양 서버의 디스크상에 존재하기 때문에, 어느 하나의 서버는 임의의 사용자 워크스테이션으로부터의 쓰기 작동 요구에 응답할 수 있다. 각 서버에 있는 치안 프로토콜 모듈은 치안 프로토콜을 실행하도록 협동하며, 이 프로토콜이 각 서버가 네트워크 데이터에 접속하는 타이밍과 우선권을 발생시킨다. 예를 들어, 치안 프로토콜은 한번에 하나의 서버만이 쓰기 요구를 네트워크 데이터의 특정한 부분에서 실행할 수 있음을 특징지을 수 있고, 이에 의해 데이터가 손상되는 것을 방지한다.
데이터는 네트워크상의 각 서버의 디스크에서 미러링되고 저장되므로, 네트워크는 서버 중 하나의 고장에 쉽게 견딜 수 있다. 예를 들어, 제1의 서버가 고장난다면, 다른 서버가 그 디스크에 저장되어 있는 모든 네트워크 데이터에 접속을 갖고 자신의 디스크를 이용하여 모든 작동 요청을 서비스할 수 있다. 동일한 네트워크 데이터가 네트워크 상의 각 서버의 디스크에 저장되어 있기 때문에, 서버들의 관점에서, 데이터는 공유 기억장치 노드에 저장되었던 것처럼 보인다. 그러므로, 본 발명은 각 서버가 모든 네트워크 데이터에 즉각적인 접속을 가진다는 점에서, 실제의 저장영역 네트워크가 고장에 대응하는 방법과 유사한 방법으로 작동 요청 및 네트워크 서버의 고장에 대응하는 가상의 저장영역 네트워크를 제공한다.
본 발명의 가상의 저장영역 네트워크와 가상의 공유 기억장치 노드는 종래의 저장영역 네트워크와 비교하여 중요한 이점을 가진다. 예를 들어, 본 발명의 네트워크는 물리적인 공유 기억장치 노드를 요하지 않는다. 따라서, 종래의 저장영역 네트워크와 관련된 많은 비용이 제거된다. 본 발명의 감소된 비용의 네트워크 작동은 이를 적어도 두 개의 서버를 구비하는 네트워크를 갖는 기업과 호환가능하도록 해준다.
또한, 동일한 네트워크 데이터를 다수의 서버의 디스크에 미러링하고 저장하는 것은, 물리적인 공유 기억장치 노드를 사용하는 것과 대비하여, 본 발명의 네트워크가 종래의 저장영역 네트워크보다 디스크 고장에 훨씬 더 잘 견디게 한다. 예를 들어, 본 발명에 따라 작동되는 네트워크 서버 중 하나의 디스크가 고장난다면, 네트워크상의 다른 서버의 디스크가 모든 네트워크 데이터를 저장했을 것이다. 반대로, 종래의 저장영역 네트워크의 물리적인 공유 기억장치 노드가 고장난다면, 이에 저장된 데이터는 손실될 수 있거나, 적어도 그 데이터는 일시적으로 접속할 수없을 것이다.
본 발명의 부가적인 특징 및 이점은 다음의 기재에서 제시될 것이고, 일부는 기재로부터 자명하거나 본 발명을 실행함으로써 알 수 있을 것이다. 본 발명의 특징 및 이점은 첨부된 특허청구범위에서 구체적으로 지적된 기구와 그 조합을 이용하여 실현되고 얻어질 수 있다. 본 발명의 이러한 특징 및 다른 특징은 다음의 기재와 첨부된 특허청구범위로부터 보다 완전히 명백해지거나, 이하 제시될 본 발명의 실행에 의해 알 수 있다.
본 발명은, 다중 서버가 물리적인 공유 기억장치 노드 없이 가상 저장영역 네트워크를 제공하여, 네트워크 데이터가 다중 서버의 디스크 상에 미러링되고 저장되는 네트워크에 관한 것이다. 네트워크에 있는 각 다중 서버는 네트워크 데이터가 저장되는 디스크와 서버를 네트워크상의 다른 서버와 통신할 수 있게 해주는 미러 엔진을 구비한다. 서버가 쓰기 작동 요구를 수신할 때, 서버는 디스크에서 쓰기 작동을 실행하고 쓰기 작동 요구를 미러 엔진과, 전용선 또는 다른 통신수단을 이용하여 네트워크 상의 다른 서버에 전송한다. 다른 서버는 쓰기 작동 요구를 수신하고 이들의 대응 서버의 디스크에서 쓰기 작동을 실행한다. 이런 방법으로, 동일한 네트워크 데이터가 다중 서버의 각각의 디스크에 저장된다. 서버 중 하나 또는 임의의 서버와 연관된 디스크 중 하나가 고장나는 경우에, 네트워크 상에 남아 있는 다른 서버 또는 서버들은 그 서버에 대응하는 디스크에 저장되어 있는 네트워크 데이터를 이용하여 네트워크에 있는 임의의 사용자 워크스테이션에 네트워크 서비스를 제공한다.
A. 예시적인 작동환경
본 발명의 실시예는 이하 상술될 것처럼, 여러 컴퓨터 하드웨어를 포함하는 특수목적용 또는 범용의 컴퓨터를 포함할 수 있다. 본 발명의 범위내에 있는 실시예는 컴퓨터로 실행가능한 명령을 실행 또는 내장하는 컴퓨터로 읽을 수 있는 매체 또는 이에 저장되어 있는 데이터 구조도 포함할 수 있다. 그러한 컴퓨터로 읽을 수 있는 매체는 범용 또는 특수목적용 컴퓨터에 의해 접속될 수 있는 임의의 이용가능한 매체이어도 좋다. 그러한 컴퓨터로 읽을 수 있는 매체는 이에 제한되지 않으면서 예시적으로 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 기억장치, 자기 디스크 기억장치 또는 다른 자기 기억장치, 또는 목적하는 프로그램 코드 수단을 컴퓨터로 읽을 수 있는 명령어 또는 데이터 구조의 형태로 이동 또는 저장하는 데 사용될 수 있고, 범용 또는 특수목적용 컴퓨터에 의해 접속될 수 있는 임의의 기타 매체를 포함할 수 있다. 정보가 네트워크 또는 다른 통신 연결(배선, 무선, 또는 이들의 조합)을 통하여 컴퓨터로 전송될 때, 컴퓨터는 그 연결을 컴퓨터로 읽을 수 있는 매체로 올바르게 간주한다. 그러므로, 임의의 그러한 연결은 컴퓨터로 읽을 수 있는 매체라고 적절히 호칭된다. 상기 매체의 조합도 컴퓨터로 읽을 수 있는 매체의 범위내에 포함되어야 한다. 컴퓨터로 실행할 수 있는 명령어는 예를 들면, 범용 컴퓨터, 특수목적용 컴퓨터, 또는 특수 목적용 처리장치가 일정한 기능 또는기능군을 수행하도록 하는 명령어 또는 데이터를 포함한다.
도2 및 다음의 논의는 본 발명이 실행되는 적절한 컴퓨터 환경의 간략하고, 일반적인 기재를 제공하려는 것이다. 비록 요구되는 것은 아니나, 본 발명은 프로그램 모듈과 같이 네트워크 환경에서 컴퓨터에 의해 실행되는, 가령 프로그램 모듈과 같은 컴퓨터 실행 명령어의 일반적인 문장으로 기재될 것이다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정의 추상 데이터형을 실행하는, 루틴, 프로그램, 객체, 요소, 데이터 구조 등을 포함한다. 컴퓨터로 실행할 수 있는 명령어, 관련된 데이터 구조, 및 프로그램 모듈은 본원에 개시된 방법의 단계들을 실행하는 프로그램 부호 수단의 예를 나타낸다. 그러한 실행할 수 있는 명령어 또는 관련된 데이터 구조의 특정 시퀀스는 그러한 단계에 기재된 기능을 수행하는 대응 행동의 예를 나타낸다.
기술분야에서 숙달된 자는 본 발명이 네트워크 컴퓨터 환경에서 개인용 컴퓨터, 핸드헬드 기기, 멀티 프로세서 시스템, 마이크로프로세서 기반의 또는 프로그램 가능한 소비자 전자제품, 네트워크 피씨, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 여러 형태의 컴퓨터 시스템 구조와 함께 실행될 수 있음을 이해할 것이다. 본 발명은 작업이 통신 네트워크를 통해 (배선, 무선, 또는 이들의 조합 중 어느 하나에 의해) 링크된 국부 및 원격 처리 장치에 의해 실행되는 분산 컴퓨터 환경에서도 실행될 수 있다.
도2를 참조하면, 본 발명을 수행하는 예시적인 시스템은 종래 컴퓨터 형태의 범용 컴퓨터 장치를 포함하며, 이러한 컴퓨터는 처리 장치(21), 시스템메모리(22), 및 처리 장치(21)에 시스템 메모리(22)를 비롯한 여러 시스템 요소를 결합하는 시스템 버스(23)를 포함하고 있다. 시스템 버스(23)는 메모리 버스나 메모리 제어기, 주변장치 버스, 및 여러 버스 구조 중 임의의 것을 사용하는 로컬 버스를 포함하는 버스 구조의 여러 형태 중 어느 것이 되어도 무방하다. 시스템 메모리는 ROM(read only memory; 24) 및 RAM(random access memory; 25)을 포함한다. 시동 중에 컴퓨터(20)내에서 요소들 사이의 정보 전달을 돕는 기본 루틴을 포함하는 기본적인 입출력 시스템(BIOS; 26)이 ROM(24)안에 포함되어도 무방하다.
컴퓨터(20)는 자기 하드디스크(39)에 읽고 쓰는 자기 하드디스크 드라이브(27)와, 분리성 자기 디스크(29)에 읽고 쓰는 자기 디스크 드라이브(28)와, CD-ROM 또는 다른 광 매체와 같은 분리성 광 디스크(31)에 읽고 쓰는 광 디스크 드라이브(30)를 포함할 수도 있다. 전술한 구조는 본원에 기재된 가상 저장영역 네트워크를 구성하기 위하여 사용될 수 있는 기억장치 또는 기억 볼륨의 예를 나타낸다. 자기 하드디스크 드라이브(27), 자기 디스크 드라이브(28), 및 광 디스크 드라이브(30)는 하드디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광 디스크 인터페이스(34)에 의해 시스템 버스(23)에 각각 연결된다. 드라이브 및 이와 관련된 컴퓨터로 읽을 수 있는 매체는 컴퓨터로 실행할 수 있는 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터용의 기타 데이터의 비휘발성 저장을 제공한다. 비록 본원에 기재된 예시적인 환경이 자기 하드디스크(39), 분리성 자기 디스크(29), 및 분리성 광 디스크(31)를 채용하고 있지만, 자기 카세트, 플래시메모리 카드, 디지털 비디오 디스크(DVD), 베르누이 카트리지, RAM, ROM등을 포함하여, 데이터를 저장하기 위한 다른 형태의 컴퓨터로 읽을 수 있는 매체가 사용될 수 있다.
하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 운영시스템(35), 하나 이상의 응용 프로그램(36), 기타 프로그램 모듈(37), 및 프로그램 데이터(38)를 포함하고 있는 하드디스크(39), 자기디스크(29), 광디스크(31), ROM(24) 또는 RAM(25)에 저장되어도 좋다. 사용자는 명령 및 정보를 키보드(40), 위치 지정 도구(42), 또는 가령 마이크로폰, 조이스틱, 게임패드, 위성 디시, 스캐너 등의 기타 입력 수단(비도시)을 통하여 컴퓨터(20)에 입력할 수 있다. 이러한 입력장치 및 기타의 입력장치는 종종 시스템 버스(23)에 결합된 직렬 포트 인터페이스(46)를 통하여 처리 장치(21)에 연결된다. 대안적으로, 입력장치는 가령 병렬포트, 게임포트, 또는 유니버설 시리얼 버스(USB)와 같은 기타의 인터페이스에 의해 결합되어도 무방하다. 모니터(47) 또는 다른 디스플레이 장치도 비디오 어댑터(48)와 같은 인터페이스를 통하여 시스템 버스(23)에 연결된다. 모니터에 부가하여, 개인용 컴퓨터는 일반적으로 스피커 및 프린터와 같은 기타의 주변 출력장치(비도시)를 포함한다.
컴퓨터(20)는 원격 컴퓨터(49a 및 49b)와 같은 하나 이상의 원격컴퓨터에 대한 논리 결합을 이용하여 네트워크된 환경에서 동작한다. 원격 컴퓨터(49a 및 49b)는 각각 다른 개인용 컴퓨터, 서버, 라우터, 네트워크 피씨, 피어 장치(peer device) 또는 기타 공통 네트워크 노드이어도 무방하고, 비록 메모리 저장장치 (50a, 50b) 및 이와 관련된 응용 프로그램(36a, 36b)만이 도2에 도시되었지만, 일반적으로 컴퓨터(20)에 관하여 상술된 요소들 중 여러 개 또는 모두를 포함한다. 도2에 도시된 논리결합은 본원에 예시적인 방법으로 제시된 근거리 통신망(LAN; 51) 및 광역 통신망(WAN; 52)을 포함하나 이에 제한되지 않는다. 이러한 네트워크 환경은 사무소간 또는 기업간 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(20)는 네트워크 인터페이스 또는 어댑터(53)를 통해 근거리 통신망(51)에 연결된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(20)는 모뎀(54), 무선링크, 또는 광역 통신망(52)에 대하여 통신을 설정할 수 있는 인터넷과 같은 기타의 수단을 포함해도 좋다. 모뎀(54)(내장형이든 외장형이든 무관)은 직렬 포트 인터페이스(46)를 통하여 시스템 버스(23)에 결합된다. 네트워크 환경에서, 컴퓨터(20)에 관하여 도시된 프로그램 모듈 또는 그 일부는 원격 메모리 저장 장치에 저장되어도 좋다. 도시된 네트워크 결합은 예시적인 것이고 광역 통신망(52)에 대하여 통신을 설정하는 다른 수단이 사용될 수 있음이 이해될 것이다.
B. 가상 저장 영역 네트워크
도3은 본 발명의 가상 저장영역 네트워크의 대표적인 구성을 도시한다. 설명을 위하여, 도3의 예에서, 두 개의 서버 컴퓨터(310 및 320)가 네트워크(301)에 대한 네트워크 서비스를 제공한다. 그러나, 본 발명의 네트워크의 구성은 세 개 이상의 서버를 갖는 네트워크로 용이하게 스케일링될 수 있으며, 이는 도5를 참조하여 이하에 논의된다. 네트워크(301)도 임의의 수의 사용자 워크스테이션(302)을포함하며, 워크스테이션은 서버(310 및 320)로부터 네트워크 서비스를 받는 개인용 컴퓨터나 기타의 컴퓨터 장치가 될 수 있다.
각 서버(310 및 320)는 치안 프로토콜 모듈(311, 321) 및 입출력 장치 드라이버(313, 323)를 포함한다. 서버A(310) 및 서버B(320)는 가상의 공유 기억장치 노드(340)를 설정하도록 함께 작동된다. 가상의 공유 기억장치 노드(340)는 도1의 공유 기억장치 노드(140) 같은 물리적인 공유 기억장치 노드가 아니다. 대신, 가상의 공유 기억장치 노드(340)는 도4를 참조하여 후술될 다양한 하드웨어와 소프트웨어 소자를 포함하며, 이는 입출력 드라이버(313 및 323)의 관점에서 실제의 공유 기억장치 노드와 연관된 것처럼 보이는 기능성을 제공한다. 그러므로, 이런 의미에서, 네트워크(301)는 가상의 공유 기억장치 노드(340)를 포함하고, 서버(310 및 320)가 가상의 공유 기억장치 노드(340)에 접속할 수 있게 해주는 네트워크(301)의 일부는 가상 저장영역 네트워크를 나타낸다.
또한, 가상의 공유 기억장치 노드(340)로 지정된 도3의 영역 외부에 있는 네트워크(301)의 하드웨어와 소프트웨어를 포함하는 구성은 존재하는 네트워크의 대응 구성요소와 유사하거나 실질적으로 동일할 수 있고, 도1에 도시된 네트워크(101)와 같은 종래의 실제 저장영역 네트워크의 대응 구성요소와 유사하거나 실질적으로 동일할 수 있음을 주의하여야 한다. 본 발명에 따라 작동되는 네트워크의 한 가지 이점은 이들이 존재하는 치안 프로토콜 소프트웨어 및 종래의 저장영역 네트워크와 함께 사용하기 위하여 현존하는 다른 소프트웨어와 호환될 수 있다는 것이다.
도4를 참조하면, 가상의 공유 기억장치 노드(340)의 물리적인 구성요소가 도1의 종래의 저장영역 네트워크의 실제 공유 기억장치 노드(140)의 구성요소와 현저히 다르다는 것을 알 수 있다. 예를 들어, 도4의 네트워크(301)는 물리적인 공유 기억장치 노드를 포함하지 않아서, 저장영역 네트워크를 얻고 작동시키는 데 관련된 많은 비용을 제거할 수 있다. 대신, 서버(310)는 자신의 디스크(319)를 갖고 있고, 서버(320)는 자신의 디스크(329)를 갖고 있다. 그러므로, 서버(310 및 320)는 통상의 또는 종래의 네트워크 서버일 수 있고, 각각은 그 자신의 디스크를 갖고 있다. 다시 말해서, 서버(310 및 320)의 하드웨어는 실제 저장영역 네트워크와는 다른 기업체 네트워크에서 현재 사용되는 대다수의 서버의 하드웨어와 유사하거나 동일할 수 있다. 본원에 사용된 것처럼, "디스크"와 "대용량 기억장치"는 본원에 기재된 방법을 수행하도록 데이터를 저장하는 임의의 장치 또는 구조를 포함하도록 넓게 해석되어야 한다.
그러한 서버(310 및 320)가 가상 저장영역 네트워크의 기능성을 제공할 수 있게 해주는 구성요소는 미러 엔진(317 및 327)과 전용 링크(315)를 포함한다. 미러 엔진(317 및 327)은 대용량 기억장치들 또는 다른 서버의 디스크들 사이에서 데이터를 미러링하는 수단의 예를 나타낸다. 데이터를 미러링하는 수단에 대응하는 다른 구조가 본원에 기재된 기능을 수행하기 위하여 본 발명과 함께 사용될 수도 있다. 게다가, 전술한 것처럼, 치안 프로토콜 모듈(311, 321)과, 가상의 공유 기억장치 노드(340)로 지정된 도4의 영역 외부에 있는 서버(310 및 320)에서 작동하는 다른 소프트웨어는, 치안 프로토콜과, 실제 저장영역 네트워크의 다른 기능을작동시키기 위하여 종래에 사용되어 왔던 존재하는 소프트웨어와 유사하거나 동일할 수 있다.
도6 및 도7은 미러 엔진(317 및 327)과 전용 링크(315)가 디스크(319 및 329)에 데이터를 미러링하기 위해 사용되어, 각 서버(310 및 320)가 모든 네트워크 데이터에 접속할 수 있는 방법을 도시한다. 도6에 도시된 것처럼, 사용자 워크스테이션(302a)의 사용자는 사용자 워크스테이션이 네트워크(301)와 관련된 디스크에 데이터 블록A(350)를 기록하기 위한 쓰기 작동 요구를 발부하도록 한다.
도6에 도시된 것처럼, 쓰기 작동 요구는 네트워크(301)를 통하여 서버A(310)에 전송된다. 네트워크(301)의 임의의 서버(서버A-310 및 서버B-320)는 임의의 사용자 워크스테이션으로부터의 모든 작동 요구를 처리할 수 있는데, 특정 서버(310 및 320)가 이 작동을 처리하도록 선택되는 방법은 본 발명에 중요하지 않다. 서버들(310 및 320) 사이의 부하를 균형잡기 위하여, 임의의 원하는 부하 균형 알고리즘이 실행될 수 있다. 대안적으로, 특정의 서버들이 기본값으로 특정 사용자 워크스테이션에 할당될 수 있다.
이 예에서, 서버A(310)는 쓰기 작동 요구를 수신하고 그 요구를 입출력 드라이버(313)로 통과시킨다. 다음, 입출력 드라이버(313)는 쓰기 작동 요구를 입출력 드라이버(313)의 관점에서 가상의 공유 기억장치 노드로 인식될 수 있는 것(즉, 도4의 가상의 공유 기억장치 노드(340))에 전송한다.
치안 프로토콜 모듈(311)은 서버B(320)의 치안 프로토콜 모듈(321)과 함께 작동하여 서버A(310)가 현재 디스크(319 및 329)에 쓰기 접속을 향유하고 있는가를결정한다. 치안 프로토콜 모듈(311, 321)의 한가지 주된 목적은 단지 하나의 단일 서버만이 어떤 단일 시간에 디스크(319 및 329)에 있는 특정 섹터 또는 데이터 블록에 쓰기 접속을 가지는 것을 보장하는 것이다. 각 서버(310 및 320)는 일반적으로 모든 네트워크 데이터에 접속을 가지므로, 치안 프로토콜을 실행하지 않고 임의의 서버가 언제나 디스크에 쓰기 접속을 가지도록 허용한다면 데이터 손상에 이르게 될 수도 있다. 입출력 드라이버(313 및 323)와 치안 프로토콜 모듈(311 및 321)의 관점에서, 서버A(310)와 서버B(320)는 가상의 공유 기억장치 노드를 사용하는 것처럼 보이기 때문에, 본 발명과 함께 사용되는 치안 프로토콜은, 실제 저장영역 네트워크에서 통상적으로 함께 사용되는 치안 프로토콜과 유사하거나 동일할 수 있다. 다시 말해서, 전술했던 것처럼, 서버A(310)와 서버B(320)에서의 많은 소프트웨어 작동은 실제 저장영역 네트워크와 함께 사용되는 대응 소프트웨어와 유사하거나 동일할 수 있다.
종래의 치안 프로토콜이 본 발명과 함께 사용될 수 있으므로, 치안 프로토콜의 본성은 기술분야에서 숙달된 자에게 이해될 것이다. 일반적으로, 치안프로토콜은, 종래의 저장영역 네트워크와 사용되든지 본 발명의 가상 저장영역 네트워크와 함께 사용되든지, 현재 입출력 요구를 수신한 서버가 네트워크에 있는 다른 서버들에 대하여 접속 우선권을 가지고 있는가 여부를 결정한다. 예를 들어, 만약 서버A(310)가 쓰기 작동 요구를 수신하려고 한다면, 서버A(310)와 서버B(320)는 네트워크(301)의 네트워크 인프라구조를 통해 서로 통신하고 치안 프로토콜 모듈(311 및 321)을 사용하여 어느 서버가 쓰기 작동을 수신하게 될 섹터 또는 디스크의 다른 부분에 쓰기 접속 우선권을 가지는가를 결정한다. 여러 형태의 치안 프로토콜이 본 발명과 함께 사용될 수 있지만, 많은 치안 프로토콜은 여러 서버들 사이에 분포되고 여러 서버들이 서로와 통신할 때 프로토콜이 실행된다는 공통적인 특징을 가진다.
이제 도6으로 돌아오면, 입출력 드라이버는 쓰기 작동 요구를 입출력 드라이버(313)에 의해 가상의 공유 기억장치 노드라고 인식되는 것에 전송한다. 그러나, 물리적으로 쓰기 작동 요구는 미러 엔진(317)에 의해 수신된다. 쓰기 작동 요구는 미러 엔진(317)으로부터 디스크(319)로 전송되며, 여기서 실행되어 데이터A(350)가 특정 섹터나 디스크의 다른 영역에 쓰여진다. 데이터A를 디스크(329)에 미러링하기 위하여, 미러 엔진(317)은 또한 쓰기 작동 요구를 서버B(320)의 대응 미러 엔진(327)으로 전송한다. 쓰기 작동 요구는 전용 링크(315)에 의해 전송되거나 다른 통신용 수단에 의해 전송된다. 다른 통신용 수단은 임의의 무선 또는 배선 통신 수단 또는 이들의 조합을 포함한다. 만약 전용 링크(315)가 사용되면, 물리적인 전용 링크는 네트워크(301)와 종래의 네트워크 사이의 한가지 물리적인 차이점을 나타낸다. 본 발명의 다른 실시예는 전용 링크(315) 없이 미러 엔진(317 및 327)을 이용하여 데이터를 미러링할 수 있다. 예를 들어, 사용자 워크스테이션(302)과 서버(310 및 320) 사이에 데이터를 전송하기 위하여 사용되는 네트워크(301)의 네트워크 인프라구조는 하나의 서버에서 다른 서버로 미러링된 쓰기 작동 요구를 전송하기 위해서도 사용될 수 있다. 전용 링크(315), 네트워크(301)의 네트워크 인프라구조, 및 기타의 통신 수단은 서버와 대용량 기억장치 사이 또는 이들의 디스크들 사이에서 통신하는 수단의 예를 나타낸다.
아무튼, 미러 엔진(327)은 미러링된 쓰기 작동 요구를 수신하고 이를 디스크(329)로 전송하며, 여기서 실행되어 데이터A(350)가 디스크(329)에 쓰여진다. 이런 방법으로, 사용자 워크스테이션(302a)이 쓰기 작동 요구를 발부한 후, 쓰기 작동 요구와 관련된 데이터가 디스크(319 및 329)에 쓰여져서, 양 디스크가 동일한 네트워크 데이터의 미러링된 사본을 포함하게 된다. 사용자 워크스테이션(302a-302n) 중 하나가 데이터를 파일로부터 지워지게 하거나 디스크(319)로부터 지워지게 하는 쓰기 작동 요구를 발부할 때, 동일한 처리과정이 수행됨에 주의하여야 한다. 다시 말해서, 만약 데이터가 디스크(319)로부터 지워진다면, 동일한 데이터는 디스크(329)로부터 지워지므로, 동일한 네트워크 데이터는 양 디스크에서 미러링되고 저장된다.
도7은 디스크들(319 및 329) 사이에서 미러링되고 있는 데이터의 또 다른 예를 도시한다. 이 경우, 사용자 워크스테이션(302n)은 데이터B(352)를 디스크(329)에 쓰기 위한 쓰기 작동 요구를 전송한다. 쓰기 작동 요구는 서버B(320)로 전송되고, 여기서 입출력 드라이버(323)와 치안 프로토콜 모듈(321)에 의해 도6의 데이터A(350)에 대한 쓰기 작동 요구를 참조로 상술된 것과 유사한 방법으로 처리된다. 도7에서, 미러 엔진(327)은 쓰기 작동 요구를 디스크(329)로 전송하며, 여기서 실행되어 데이터B가 디스크(329)에 쓰여진다. 또한, 미러 엔진(327)은 쓰기 작동 요구를 전용 링크(315)에 의해 또는 네트워크(301)와 연관하여 통신하는 다른 수단에 의해 서버A(310)의 대응 미러 엔진(317)으로 전송한다. 미러 엔진(317)은다음 미러링 된 쓰기 작동 요구를 디스크(319)로 전송하며, 여기서 실행되어 데이터B(352)가 디스크(319)에 쓰여진다 그러므로, 도6 및 도7은 네트워크(301)상의 임의의 서버(310 및 320)가 쓰기 작동 요구와 관련된 데이터를 네트워크상의 서버들의 각 디스크(319, 329)에 저장되고 미러링되도록 할 수 있는 방법을 도시한다.
도8은 쓰기 작동 요구가 처리되고 관련된 데이터가 네트워크상의 각 디스크로 미러링 되는 방법을 요약한다. 단계710에서 사용자 워크스테이션은 쓰기 작동 요구를 발부한다. 단계720에서, 요구는 네트워크를 통해 특정 서버로 전송된다. 단계730에서, 특정 서버는 치안 프로토콜을 실행하여 서버가 현재 네트워크 상의 디스크에 쓰기 접근을 갖는지 여부를 결정한다. 결정 블록(732)에 따라서, 만약 서버가 쓰기 접근을 갖지 않는다면, 작동 요구는 단계751에서 거부되고 단계753에서 중단된다. 선택적으로, 만약 결정 블록(732)에 따라서, 서버가 쓰기 접근을 갖지 않는다면, 작동은 쓰기 요구가 서버에 허락될 때까지 대기할 수 있다.
만약, 결정 블록(732)에 따라서, 서버가 쓰기 접근을 갖는다면, 작동요구는 단계741에서 허용된다. 미러 엔진은 다음 쓰기 작동 요구를 단계743에서 복사하고, 네트워크상의 하나 이상의 다른 서버로 이를 전송한다. 쓰기 작동 요구를 수신한 특정 서버는 단계749에서 그 디스크에 쓰기 작동을 실행한다. 단계749와 동시에 또는 바로 그 전이나 후에, 단계750이 실행되고, 여기서 쓰기 작동 요구의 미러링된 사본을 수신한 네트워크 상의 다른 서버나 서버들은 미러링된 쓰기 작동 요구를 실행하여, 동일한 네트워크 데이터가 또한 다른 서버 또는 서버들과 연관된 디스크에도 저장된다. 단계 743, 749, 750이 실행되는 순서는 본 발명에서 중요하지 않다.
네트워크(301)가 서버 또는 디스크의 고장에 대응하고 견딜 수 있는 방법이 도7을 참조하여 설명된다. 이 예에서, 데이터(350)와 데이터B(352)는 이미 전술한 것처럼 양 디스크(319 및 329)에 미러링되어 있다고 가정한다. 서버A(310)가 오프라인 되기 전에, 서버A는 도4의 340에서 설명된 가상의 공유 기억장치 노드로 워크스테이션에 대한 접속을 제공할 수 있다는 사실을 통지한다. 통상적인 작동에서, 서버A(310)는 디스크(319)를 사용하여 가상의 공유 기억장치 노드에 접속을 제공한다. 이 예에서, 서버A(310)는 작동상태로 남아있으나, 그 관련된 디스크(319)는 오프라인 되고 어떤 이유로든 이용할 수 없게 되었다고 가정하자. 서버A(310)는 워크스테이션에 디스크(319)를 포함하여, 가상의 공유 기억장치 노드로 접속을 제공할 수 있다는 사실을 계속하여 통지하는데, 왜냐하면, 서버A(310)의 관점에서, 가상의 공유 기억장치 노드와 이에 저장된 데이터는 이용할 수 있도록 남아있기 때문이다.
디스크(319)의 고장 후에, 워크스테이션(302a-d)은 서버A(310)를 통해 가상의 공유 기억장치 노드에 의해 처리될 읽기 작동 요구를 계속해서 발부한다. 이 예에서, 워크스테이션(302a)이 데이터A(350)에 대한 읽기 작동 요구를 발부한다고 가정한다. 읽기 작동 요구가 서버A(310)에 의해 수신될 때, 읽기 작동 요구는 입출력 드라이버(313)에 의해 수신되어, 도4에 도시된 것처럼, 가상의 공유 기억장치 노드(340)내에 존재하는 미러 엔진(317)으로 전송된다.
이 점에서, 읽기 작동 요구는 서버A(310)의 관점에서 공유 기억장치 노드로인식된 기억장치로 전형적인 방법으로 전송되었다. 그러나, 전술한 바와 같이, 디스크(319)는 접속할 수 없고, 읽기 작동 요구를 서비스할 수 없다. 따라서, 읽기 작동 요구는 전용 링크(315)를 통해 서버B(320)로 전송된다. 다음에, 읽기 작동 요구는 데이터A(350)를 포함하는 네트워크 데이터의 완전한 사본을 가진 디스크(329)에 접속하기 위하여 사용된다. 그러므로, 네트워크(301)는 서버A(310)에 수신된 읽기 작동 요구를 재발송하기 위하여 미러 엔진(317 및 327)을 사용하여 디스크(319)의 접속불가능에 끊이지 않고 대응할 수 있다. 네트워크(301)의 작동은 디스크(319)의 고장에도 불구하고 중단없이 계속된다. 게다가, 서버A(310)는 가상의 공유 기억장치 노드를 이용하여 디스크(319)의 고장 후에도 유사한 방법으로 쓰기 작동 요구와 같은 다른 네트워크 작동 요구에 대응할 수 있다.
전술한 디스크 고장에 대응하는 방법에 의해, 네트워크 활동은 디스크의 고장시에 부분적으로 완결될 수도 있었던 어떠한 네트워크 활동의 중단 없이도 계속될 수 있다. 이런 방법으로 디스크 고장에 대응하려면 서버A(310)의 조작가능한 입출력 드라이버(313)와 미러 엔진(317)이 필요하다.
만약 이러한 서버A(310)의 기능적 구성요소들이 작동할 수 없게 된다면, 네트워크(301)는 일 실시예에 따라 네트워크 데이터에 계속하여 접속을 제공하는 두 번째 방법을 취한다. 두 번째 시나리오에서, 만약 사용자 워크스테이션(302a)이 서버A(310)에 의해 처리되었어야 할 읽기 작동 요구를 발부한다면, 읽기 작동 요구는 서버B(320)에 의해 서비스될 수 있는데, 이는 서버B(320)가 그 디스크(329) 상에 모든 네트워크 데이터에 대한 접속을 가지고 있기 때문이다. 설명을 목적으로,사용자 워크스테이션(302)에 의해 발부된 읽기 작동 요구가 데이터A(350)로 향한다고 가정한다. 서버A(310)가 오프라인이므로, 서버B(320)가 읽기 작동 요구를 처리한다. 서버B(320)는 읽기 작동 요구를 서비스하기 위하여 디스크(329)상에 저장되어 있는 네트워크 데이터의 미러링된 사본을 사용하여, 사용자 워크스테이션에 데이터A(350)에 대한 읽기 접속을 제공한다. 종래의 기억장치 네트워크도 네트워크의 서버 중 하나가 고장나거나 오프라인으로 되는 경우에 모든 네트워크 데이터에 대한 읽기 접속을 모든 서버로 제공할 수 있음을 유념할 필요가 있다. 그러나, 종래의 저장영역 네트워크와 달리, 본 발명의 네트워크는 임의의 서버를 통하여 모든 네트워크 데이터에 대한 접속을 제공하기 위하여 물리적인 공유 기억장치 노드를 사용하지 않는다.
디스크 또는 서버 고장 이후에 계속해서 작동되도록 하는 본 발명의 네트워크의 능력에 관한 전술한 예는 종래의 저장영역 네트워크를 이용해서는 가능하지 않은 중요한 이점을 제공한다. 일반적으로, 종래의 저장영역 네트워크는 단일의 구성요소를 가지므로 고장난 경우에 데이터를 접속 불가능하게 할 수 있다. 예를 들어, 일반적인 종래의 저장영역 네트워크는 공유 기억장치 노드로 접속을 제공하기 위하여 사용 가능해야 하는 SAN 연결카드 또는 디스크 드라이버를 포함한다.
또한, 종래의 저장영역 네트워크의 공유 기억장치 노드에 있는 디스크가 물리적으로 고장나면, 데이터에 대한 접속의 손실을 일으킬 수 있다. 사실, 도1의 공유 기억장치 노드(140)가 물리적으로 손상되거나 이에 저장된 데이터가 물리적으로 손실된다면, 종래의 저장영역 네트워크에서는 고장난 공유 기억장치 노드(140)와 관련된 중단과 더불어 영구적이고 복구 불가능한 손실을 겪게 될 것이다. 이러한 가능성을 제거하기 위하여, 종래의 저장영역 네트워크의 관리자는 공유 기억장치 노드에 여분의 독립 디스크 열(redundant arrays of independent disks; RAIDs)을 구매하여 유지할 수 있으나, 이는 시스템의 비용과 복잡성을 증가시키게 된다. 전술한 것처럼, 본 발명은 여분의 독립 디스크 열(RAIDs)을 요하지 않고, 가상의 공유 기억장치 노드에서 디스크의 고장 허용을 가능하게 한다.
두 개의 서버를 참조하여, 도3, 4, 6, 7에 도시된 본 발명의 방법은 둘 이상의 서버를 갖는 네트워크로 확장될 수 있다. 예를 들어, 도5는 세 개의 서버, 즉, 서버A(510), 서버B(520), 서버C(530)를 갖는 본 발명에 따른 네트워크를 도시한다. 도5의 네트워크(501)의 작동은 도6 및 도7을 참조하여 상술된 네트워크(301)의 것과 유사하다. 예를 들어, 서버A가 사용자 워크스테이션(502)으로부터 쓰기 작동 요구를 수신할 때, 쓰기 작동 요구는 입출력 드라이버(513)에 의해 처리된다. 치안 프로토콜 모듈(511)과 서버A(510)는 치안 프로토콜 모듈(521)과 서버A(520) 및 치안 프로토콜 모듈(531)과 서버A(530)와 결합하여 작동한다.
서버A(510)의 미러 엔진(517)은 쓰기 작동 요구의 사본을 전용 링크(515) 또는 다른 통신 링크를 통하여 서버B(520)의 미러 엔진(527)으로 전송한다. 미러 엔진(517)은 또한 쓰기 작동 요구의 사본을 전용 링크(555) 또는 다른 통신 링크를 통하여 서버C(530)의 미러 엔진(537)으로 전송한다. 다시, 임의의 다른 통신 링크가 네트워크상의 다른 서버의 여러 미러 엔진으로 쓰기 작동 요구의 사본을 송신하기 위하여 사용될 수 있음을 유념할 필요가 있다. 예를 들어, 네트워크(501)의 네트워크 인프라구조는 그러한 쓰기 작동 요구를 전송하기 위하여 사용될 수 있다. 선택적으로, 쓰기 작동 요구는 전용 링크(515), 미러 엔진(527) 및 전용 링크(525)를 통하여 연속적으로 작동 요구를 전송함으로써 미러 엔진(517)으로부터 미러 엔진(537)으로 전송될 수 있다. 중요한 것은 미러 엔진(517, 527, 537)이 서로와 통신할 수 있다는 것이다. 전술한 방법으로, 디스크(519, 529, 539) 중 하나에 쓰여진 데이터는 모든 디스크에 저장된다. 서버(510, 520, 530) 중 하나가 고장나는 경우에, 나머지 서버들은 임의의 네트워크 데이터에 대한 임의의 사용자 워크스테이션으로부터의 모든 요구를 서비스할 수 있다.
본 발명은 본 발명의 사상 또는 필수적인 특징을 일탈함이 없이 다른 특정한 형태로 구현될 수 있다. 기재된 실시예는 예시적인 것이며 한정하지 않는 것으로써만 모든 측면에서 고려되어야 한다. 본 발명의 범위는, 그러므로, 전술한 기재에 의해서가 아닌 첨부된 청구범위에 의해 지시되어야 한다. 특허청구범위의 균등물의 의미와 범위 안에 드는 모든 변경은 본 발명의 범위에 포함되어야 한다.

Claims (27)

  1. 제1의 대용량 기억장치를 갖는 제1의 서버와 제2의 대용량 기억장치를 갖는 제2의 서버를 포함하는 네트워크에서, 가상 저장영역 네트워크를 설정하도록 제1의 대용량 기억장치에 저장되어 있는 데이터를 제2의 대용량 기억장치로 미러링하는 방법으로서,
    제1의 서버에서 쓰기 요구를 수신하는 단계;
    제1의 대용량 기억장치에 데이터를 쓰도록 제1의 서버에서 쓰기 요구를 실행하는 단계;
    제1의 서버의 미러 엔진을 사용하여 쓰기 요구의 사본을 제2의 서버로 전송하는 단계; 및,
    제2의 대용량 기억장치에 데이터를 쓰도록 제2의 서버에서 쓰기 요구의 사본을 실행하여, 제2의 대용량 기억장치에 데이터를 미러링하는 단계를 포함하며,
    제1의 서버와 제2의 서버의 관점에서, 가상적으로 데이터가 저장영역 네트워크의 공유 기억장치 노드에 저장되었던 것처럼 보이는 방법.
  2. 제1항에 있어서, 쓰기 요구의 사본을 전송하는 단계가, 쓰기 요구의 사본을 제1의 서버와 제2의 서버 사이의 전용 링크를 이용하여 전송하는 단계를 포함하는 데이터를 미러링하는 방법.
  3. 제1항에 있어서, 쓰기 요구의 사본을 전송하는 단계가, 쓰기 요구의 사본을 네트워크의 인프라구조를 이용하여 전송하는 단계를 포함하고, 상기 인프라구조는 워크스테이션과 서버 사이에 데이터를 전송하기 위하여 네트워크에 의해 이용되기도 하는, 데이터를 미러링하는 방법.
  4. 제1항에 있어서,
    데이터가 제1의 대용량 기억장치로부터 접속할 수 없을 정도의 고장을 경험하는 단계; 및,
    제2의 대용량 기억장치에 미러링 되었던 데이터에 접속함으로써 제1의 대용량 기억장치에 쓰여졌던 데이터에 대한 읽기 요구을 실행하는 단계를 더 포함하는 데이터를 미러링하는 방법.
  5. 제4항에 있어서, 상기 고장이 제1서버가 오프라인 되는 것을 포함하는 데이터를 미러링하는 방법.
  6. 제4항에 있어서, 상기 고장이 제1의 대용량 기억장치의 고장을 포함하는 데이터를 미러링하는 방법.
  7. 제1항에 있어서, 제1의 서버가 쓰기 접속을 갖는지 여부를 결정하기 위하여,제1의 서버에서 쓰기 요구를 실행하는 단계 전에, 치안 프로토콜을 사용하는 단계를 더 포함하는 데이터를 미러링하는 방법.
  8. 제3항에 있어서, 제1의 서버에서 쓰기 요구를 실행하는 단계가 쓰기 요구의 실행을 개시하기 위하여 제1의 서버에서 입출력 드라이버를 사용하는 단계를 포함하며, 입출력 드라이버의 관점에서, 가상적으로 쓰기 요구가 저장영역 네트워크의 공유 기억장치 노드에 저장되었던 것처럼 보이는, 데이터를 미러링하는 방법.
  9. 제1의 대용량 기억장치를 갖는 제1의 서버와 제2의 대용량 기억장치를 갖는 제2의 서버를 포함하는 네트워크에서, 가상 저장영역 네트워크를 통하여 데이터가 제1의 서버와 제2의 서버에 접속할 수 있도록 제1의 대용량 기억장치에 저장되어 있는 데이터를 제2의 대용량 기억장치로 미러링하는 방법으로서,
    제1의 서버와 제2의 서버의 관점에서, 가상의 공유 기억장치 노드를 포함하는 것처럼 보이는 가상 저장영역 네트워크를 설정하는 단계로서, 상기 가상의 공유 기억장치 노드는 제1의 대용량 기억장치와, 제2의 대용량 기억장치와, 상기 제1 및 제2의 대용량 기억장치간에 데이터를 미러링하는 수단과, 제1의 서버 및 제2의 서버 사이의 통신 수단을 물리적으로 포함하는 단계;
    데이터가 가상의 공유 기억장치 노드에 쓰여져야 하는지를 특징짓는 쓰기 요구를 수신하는 단계;
    제1의 대용량 기억장치에 데이터를 쓰는 단계로서, 제1의 대용량 기억장치에있는 데이터가 제1의 서버에 의해 접속가능한 단계; 및,
    데이터가 제2의 대용량 기억장치로 미러링될 수 있도록 제2의 서버에 쓰기 요구의 사본을 전송하는 단계로서, 제2의 대용량 기억장치에 있는 데이터가 제2의 서버에 의해 접속가능한 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 데이터를 미러링하는 수단이 제1의 서버와 관련된 제1의 미러 엔진과, 제2의 서버와 관련된 제2의 미러 엔진을 포함하는 데이터를 미러링하는 방법.
  11. 제9항에 있어서, 쓰기 요구의 사본을 전송하는 단계가 제2의 미러 엔진으로의 쓰기 요구의 사본의 전송을 개시하기 위하여 제1의 미러 엔진을 사용하는 단계를 포함하는 데이터를 미러링하는 방법.
  12. 제9항에 있어서, 통신 수단은 제1의 서버와 제2의 서버 사이에 데이터를 전송하는 전용 링크를 포함하는 데이터를 미러링하는 방법.
  13. 제9항에 있어서, 통신 수단은 네트워크의 인프라구조를 포함하고, 상기 인프라구조는 워크스테이션과 서버 사이에 데이터를 전송하기 위하여 네트워크에 의해 이용되기도 하는, 데이터를 미러링하는 방법..
  14. 제9항에 있어서,
    데이터가 제2의 대용량 기억장치로부터 접속할 수 없을 정도의 고장을 경험하는 단계; 및,
    다른 데이터에 대한 읽기 요구를 실행하는 단계로서, 상기 다른 데이터는 그 다른 데이터가 가상의 공유 기억장치 노드에 쓰여질 것임을 특징짓는 쓰기 요구를 수신한 제2의 서버에 반응하여 가상의 공유 기억장치 노드에 저장되었고, 상기 읽기 요구는 가상의 공유 기억장치 노드로부터 데이터에 접속함으로써 실행됨을 특징으로 하는 단계를 더 포함하는 데이터를 미러링하는 방법.
  15. 제14항에 있어서, 가상의 공유 기억장치 노드로부터 데이터에 접속함으로써 읽기 요구를 실행하는 단계는 제1의 대용량 기억장치로부터 데이터에 접속하는 단계를 포함하는 데이터를 미러링하는 방법.
  16. 제1의 대용량 기억장치를 가지는 서버로서, 제2의 대용량 기억장치를 갖는 제2의 서버를 포함하는 네트워크에도 포함된 제1의 서버에서, 가상 저장영역 네트워크를 설정하도록 제1의 대용량 기억장치에 저장되어 있는 데이터를 제2의 대용량 기억장치로 미러링하는 방법으로서,
    제1의 서버에서 쓰기 요구를 수신하는 단계;
    제1의 서버와 관련된 치안 프로토콜 모듈을 사용하여, 제2의 서버가 제1의대용량 기억장치의 일부 또는 제2의 대용량 기억장치의 일부에 이를 가진다면 데이터 손상에 이르게 될 수 있는 쓰기 접속 우선권을 현재 가지고 있지 않음을 결정하는 단계;
    상기 제1의 대용량 기억장치의 일부에 데이터를 쓰도록 제1의 서버에서 쓰기 요구를 실행하는 단계;
    제1의 서버의 미러 엔진을 사용하여, 데이터가 제2의 대용량 기억장치에 쓰여질 수 있도록 제2의 서버에 쓰기 요구의 사본을 전송하고, 이에 의해 제1의 서버와 제2의 서버가 데이터에 접속할 수 있게 하는 단계로서, 제1의 서버와 제2의 서버의 관점에서, 데이터가 저장영역 네트워크의 공유 기억장치 노드에 저장되었던 것처럼 보이는 것을 특징으로 하는 단계를 포함하는 방법.
  17. 제16항에 있어서, 치안 프로토콜 모듈을 사용하는 단계가 제2의 서버가 쓰기 접속 우선권을 현재 가지고 있지 않음을 결정하도록 제1의 서버가 제2의 서버와 통신하는 단계를 포함하는 데이터를 미러링하는 방법.
  18. 제17항에 있어서, 통신하는 단계가 네트워크의 인프라구조를 통해 통신함으로써 실행되고, 상기 인프라구조는 워크스테이션과 서버 사이에 데이터를 전송하기 위하여 네트워크에 의해 이용되기도 하는, 데이터를 미러링하는 방법.
  19. 제16항에 있어서,
    데이터가 제2의 대용량 기억장치로부터 접속할 수 없을 정도의 고장을 경험하는 단계; 및,
    다른 데이터에 대한 읽기 요구를 실행하는 단계로서, 상기 다른 데이터는 그 다른 데이터가 저장될 것임을 특징짓는 또 다른 쓰기 요구를 수신한 제2의 서버에 반응하여 제1의 대용량 기억장치에 미러링 되었고, 상기 읽기 요구는 제1의 대용량 기억장치로부터 데이터에 접속함으로써 실행됨을 특징으로 하는 단계를 더 포함하는 데이터를 미러링하는 방법.
  20. 제1의 서버와 제2의 서버가 동일한 데이터를 물리적으로 다른 대용량 기억장치로부터 접속할 수 있게 하는 가상 저장영역 네트워크로서,
    제1의 대용량 기억장치; 및,
    제1의 미러 엔진;
    을 갖는, 네트워크 클라이언트로부터 쓰기 요구와 읽기 요구를 수신할 수 있는 제1의 서버:
    제2의 대용량 기억장치; 및,
    제2의 미러 엔진;
    을 갖는, 네트워크 클라이언트로부터 쓰기 요구와 읽기 요구를 수신할 수 있는 제2의 서버: 및,
    제1의 미러 엔진이 제1의 대용량 기억장치에도 쓰여질 제1의 데이터를 제2의 대용량 기억장치에 미러링할 수 있도록 해주고, 추가적으로 제2의 미러 엔진이 제2의 대용량 기억장치에도 쓰여질 제2의 데이터를 제1의 대용량 기억장치에 미러링할 수 있도록 해주는, 제1의 미러 엔진과 제2의 미러 엔진 사이의 통신 수단을 포함하는 가상 저장영역 네트워크.
  21. 제20항에 있어서, 통신 수단이 제1의 미러 엔진과 제2의 미러 엔진 사이의 전용 링크를 포함하는 가상 저장영역 네트워크.
  22. 제20항에 있어서, 통신 수단이 네트워크의 인프라구조에 포함되고, 상기 인프라구조는 워크스테이션과 서버 사이에 데이터를 전송하기 위하여 네트워크에 의해 이용되기도 하는, 가상 저장영역 네트워크.
  23. 제20항에 있어서, 네트워크 클라이언트로부터 쓰기 요구와 읽기 요구를 수신할 수 있는 제3의 서버를 더 포함하고, 상기 제3의 서버는:
    제3의 대용량 기억장치; 및,
    제3의 미러 엔진;
    을 가지며, 상기 제3의 미러 엔진은 제3의 대용량 기억장치에 쓰여질 데이터를 제1의 대용량 기억장치와 제2의 대용량 기억장치에 미러링할 수 있는, 가상 저장영역 네트워크.
  24. 제23항에 있어서, 제3의 서버와 제1의 서버 사이 및 제3의 서버와 제2의 서버 사이에도 통신하는 수단을 더 포함하는 가상 저장영역 네트워크.
  25. 제20항에 있어서, 제1의 서버와 제2의 서버는, 쓰기 요구를 수신할 때 서버가 데이터를 제1의 대용량 기억장치와 제2의 대용량 기억장치에 쓰는 쓰기 접속 우선권을 가지는 지 여부를 결정하기 위하여, 치안 프로토콜을 실행하는, 가상 저장영역 네트워크.
  26. 제25항에 있어서, 치안 프로토콜은, 쓰기 요구가 제1의 대용량 기억장치와 제2의 대용량 기억장치의 특정한 일부에 대하여 계류중일 수 있는 어떤 다른 쓰기 요구에 대하여 우선권을 가지고 있기만 하면, 그 쓰기 요구에 대응하여 제1의 서버와 제2의 서버가 제1의 대용량 기억장치와 제2의 대용량 기억장치의 특정한 일부에 데이터를 쓸 수 있게 해주는, 가상 저장영역 네트워크.
  27. 제25항에 있어서, 제1의 서버가 제1의 치안 프로토콜 모듈을 더 가지며, 제2의 서버가 제2의 치안 프로토콜 모듈을 더 가지고, 상기 제1의 치안 프로토콜 모듈과 제2의 치안 프로토콜 모듈은 치안 프로토콜을 실행하기 위하여 함께 사용되는, 가상 저장영역 네트워크.
KR1020037016806A 2001-06-26 2002-06-25 가상의 저장영역 네트워크를 설정하기 위한 네트워크 데이터의 미러링 방법 및 가상 저장영역 네트워크 KR100577314B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/892,161 2001-06-26
US09/892,161 US7389312B2 (en) 1997-04-28 2001-06-26 Mirroring network data to establish virtual storage area network
PCT/US2002/020079 WO2003003153A2 (en) 2001-06-26 2002-06-25 Mirroring network data to establish virtual storage area network

Publications (2)

Publication Number Publication Date
KR20040022433A true KR20040022433A (ko) 2004-03-12
KR100577314B1 KR100577314B1 (ko) 2006-05-10

Family

ID=25399477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037016806A KR100577314B1 (ko) 2001-06-26 2002-06-25 가상의 저장영역 네트워크를 설정하기 위한 네트워크 데이터의 미러링 방법 및 가상 저장영역 네트워크

Country Status (9)

Country Link
US (1) US7389312B2 (ko)
EP (1) EP1402420B1 (ko)
JP (1) JP2004535012A (ko)
KR (1) KR100577314B1 (ko)
CN (1) CN100403300C (ko)
AT (1) ATE431946T1 (ko)
CA (1) CA2449850A1 (ko)
DE (1) DE60232414D1 (ko)
WO (1) WO2003003153A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759700B1 (ko) * 2005-08-03 2007-09-17 조창국 플래시메모리카드의 미러인터페이스 방법
US7636592B2 (en) 2006-01-03 2009-12-22 Samsung Electronics Co., Ltd. Mobile communication terminal having two keypads

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725393B1 (en) * 2000-11-06 2004-04-20 Hewlett-Packard Development Company, L.P. System, machine, and method for maintenance of mirrored datasets through surrogate writes during storage-area network transients
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
WO2002088961A1 (en) * 2001-05-01 2002-11-07 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Distributed raid and location independence caching system
US20040158687A1 (en) * 2002-05-01 2004-08-12 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Distributed raid and location independence caching system
US7558264B1 (en) 2001-09-28 2009-07-07 Emc Corporation Packet classification in a storage system
US7404000B2 (en) * 2001-09-28 2008-07-22 Emc Corporation Protocol translation in a storage system
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
US7707304B1 (en) 2001-09-28 2010-04-27 Emc Corporation Storage switch for storage area network
US7864758B1 (en) 2001-09-28 2011-01-04 Emc Corporation Virtualization in a storage system
US7185062B2 (en) * 2001-09-28 2007-02-27 Emc Corporation Switch-based storage services
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US20070094466A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc., A Corporation Of California Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
US9009427B2 (en) 2001-12-26 2015-04-14 Cisco Technology, Inc. Mirroring mechanisms for storage area networks and network based virtualization
US20070094465A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc., A Corporation Of California Mirroring mechanisms for storage area networks and network based virtualization
US20090259817A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Mirror Consistency Checking Techniques For Storage Area Networks And Network Based Virtualization
US20030149750A1 (en) * 2002-02-07 2003-08-07 Franzenburg Alan M. Distributed storage array
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
JP2004054721A (ja) * 2002-07-23 2004-02-19 Hitachi Ltd ネットワークストレージ仮想化方法
US20040181496A1 (en) * 2002-08-21 2004-09-16 Mechtronix Systems Inc. Networked metered parking system
US7742473B2 (en) * 2002-11-12 2010-06-22 Mark Adams Accelerator module
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
EP1561306B1 (en) * 2002-11-12 2007-03-07 Zetera Corporation Communication protocols, systems and methods
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
US7747660B1 (en) * 2003-03-24 2010-06-29 Symantec Operating Corporation Method and system of providing access to a virtual storage device
JP4150854B2 (ja) * 2003-06-27 2008-09-17 日本電気株式会社 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント
US7028156B1 (en) 2003-07-01 2006-04-11 Veritas Operating Corporation Use of read data tracking and caching to recover from data corruption
US7028139B1 (en) 2003-07-03 2006-04-11 Veritas Operating Corporation Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
TWI225205B (en) * 2003-07-16 2004-12-11 Via Tech Inc Object management system and method thereof
US7640316B2 (en) * 2003-09-05 2009-12-29 International Business Machines Corporation Apparatus and method to write information to two virtual tape servers
AU2004275083B2 (en) 2003-09-19 2010-08-12 Koninklijke Philips Electronics N.V. Optical record carrier recording method, optical record carrier and apparatus for writing information
JP4684605B2 (ja) * 2004-09-17 2011-05-18 株式会社日立製作所 情報伝達方法及びホスト装置
JP2006092124A (ja) * 2004-09-22 2006-04-06 Fujitsu Ltd 記憶装置、記憶制御方法および記憶制御プログラム
US7814273B2 (en) 2004-11-05 2010-10-12 Data Robotics, Inc. Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
CN100409195C (zh) * 2005-01-18 2008-08-06 英业达股份有限公司 建立储域网络系统的方法
US7620981B2 (en) * 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7356573B2 (en) * 2005-07-08 2008-04-08 Cisco Technology, Inc. Apparatus and methods for data tapping in a storage area network
US8239477B2 (en) * 2005-07-08 2012-08-07 Cisco Technology, Inc. Apparatus and methods for controlling a data tapping session in a storage area network
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US8161134B2 (en) * 2005-09-20 2012-04-17 Cisco Technology, Inc. Smart zoning to enforce interoperability matrix in a storage area network
US20090043922A1 (en) * 2005-11-04 2009-02-12 David Aaron Crowther Method and Apparatus for Managing Media Storage Devices
US20070214384A1 (en) * 2006-03-07 2007-09-13 Manabu Kitamura Method for backing up data in a clustered file system
CN100353330C (zh) * 2006-03-10 2007-12-05 四川大学 一种基于ip网络的磁盘镜像方法
US7933993B1 (en) * 2006-04-24 2011-04-26 Hewlett-Packard Development Company, L.P. Relocatable virtual port for accessing external storage
US7725764B2 (en) 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US9306975B2 (en) 2006-09-19 2016-04-05 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US8607336B2 (en) * 2006-09-19 2013-12-10 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8601104B2 (en) 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US8984579B2 (en) * 2006-09-19 2015-03-17 The Innovation Science Fund I, LLC Evaluation systems and methods for coordinating software agents
US8627402B2 (en) 2006-09-19 2014-01-07 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8224930B2 (en) * 2006-09-19 2012-07-17 The Invention Science Fund I, Llc Signaling partial service configuration changes in appnets
US8055797B2 (en) * 2006-09-19 2011-11-08 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US7752255B2 (en) * 2006-09-19 2010-07-06 The Invention Science Fund I, Inc Configuring software agent security remotely
US8601530B2 (en) 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US20080072032A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Configuring software agent security remotely
US8281036B2 (en) 2006-09-19 2012-10-02 The Invention Science Fund I, Llc Using network access port linkages for data structure update decisions
US20080077638A1 (en) * 2006-09-21 2008-03-27 Microsoft Corporation Distributed storage in a computing environment
US8874746B1 (en) * 2010-05-24 2014-10-28 Datacore Software Corporation Collaboration between discrete systems and a shared system to consolidate shared storage-related services
CN102014153A (zh) * 2010-10-19 2011-04-13 浪潮(北京)电子信息产业有限公司 一种数据存储系统及其数据存储方法
CN102360481A (zh) * 2011-09-26 2012-02-22 北京金马甲产权网络交易有限公司 网络竞价的镜像模拟方法及系统
CN103108005A (zh) * 2011-11-11 2013-05-15 上海聚力传媒技术有限公司 在分布式存储系统中实现数据共享的方法、设备与系统
US10061534B2 (en) 2011-12-01 2018-08-28 Intel Corporation Hardware based memory migration and resilvering
WO2013108351A1 (ja) * 2012-01-16 2013-07-25 株式会社日立製作所 計算機システム及び論理記憶領域管理方法
KR20140015857A (ko) 2012-07-26 2014-02-07 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치가 가상 장치를 제어하는 가상 장치 제어 방법
CN103942112B (zh) * 2013-01-22 2018-06-15 深圳市腾讯计算机系统有限公司 磁盘容错方法、装置及系统
CN104104648A (zh) * 2013-04-02 2014-10-15 杭州信核数据科技有限公司 一种访问存储设备中的数据的方法、应用服务器和网络
CN103595799B (zh) * 2013-11-18 2017-01-04 北京中创信测科技股份有限公司 一种实现分布式共享数据库的方法
CN113190495A (zh) 2014-12-08 2021-07-30 安博科技有限公司 从远程网络区域进行内容检索的系统及方法
WO2016110785A1 (en) 2015-01-06 2016-07-14 Umbra Technologies Ltd. System and method for neutral application programming interface
EP3251301A4 (en) 2015-01-28 2018-10-10 Umbra Technologies Ltd. System and method for a global virtual network
EP4325804A2 (en) 2015-04-07 2024-02-21 Umbra Technologies Ltd. Multi-perimeter firewall in the cloud
ES2931177T3 (es) 2015-12-11 2022-12-27 Umbra Tech Ltd Sistema y método para lanzamiento de información a través de un tapiz de red y granularidad de una marca
WO2017187263A1 (en) * 2016-04-26 2017-11-02 Umbra Technologies Ltd. Sling-routing logic and load balancing
US10691504B2 (en) * 2017-08-14 2020-06-23 International Business Machines Corporation Container based service management
US11436113B2 (en) * 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
JP7179810B2 (ja) * 2020-10-27 2022-11-29 株式会社日立製作所 クラスタシステム、クラスタシステムのフェイルオーバー制御方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792896A (en) 1983-12-07 1988-12-20 516277 Ontario Limited Storage controller emulator providing transparent resource sharing in a computer system
JPS6458013A (en) * 1987-08-20 1989-03-06 Ibm Method and data processing system for guaranteeing large area identification and management of data memory
US5005122A (en) 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
US5276867A (en) 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
CA2032067A1 (en) * 1989-12-22 1991-06-23 Douglas E. Jewett Fault-tolerant computer system with online reintegration and shutdown/restart
US5307481A (en) 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
DE69121973T2 (de) 1990-05-30 1997-01-30 Fujitsu Ltd Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel
JPH04126423A (ja) 1990-09-17 1992-04-27 Omron Corp データ処理システム
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5633999A (en) 1990-11-07 1997-05-27 Nonstop Networks Limited Workstation-implemented data storage re-routing for server fault-tolerance on computer networks
US5241672A (en) * 1991-04-01 1993-08-31 Xerox Corporation System using the storage level of file updates in nonvolatile memory to trigger saving of RAM to disk and using the file updates to reboot after crash
WO1993009494A1 (en) 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
JPH05314075A (ja) 1992-05-07 1993-11-26 Nec Corp オンラインコンピュータ装置
US5987627A (en) * 1992-05-13 1999-11-16 Rawlings, Iii; Joseph H. Methods and apparatus for high-speed mass storage access in a computer system
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
US5530855A (en) 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US5555371A (en) 1992-12-17 1996-09-10 International Business Machines Corporation Data backup copying with delayed directory updating and reduced numbers of DASD accesses at a back up site using a log structured array data storage
US5408649A (en) 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
AU7211194A (en) * 1993-06-23 1995-01-17 Vinca Corporation Method for improving disk mirroring error recovery in a computer system including an alternate communication path
US5812748A (en) * 1993-06-23 1998-09-22 Vinca Corporation Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system
US5432922A (en) * 1993-08-23 1995-07-11 International Business Machines Corporation Digital storage system and method having alternating deferred updating of mirrored storage disks
US5515502A (en) 1993-09-30 1996-05-07 Sybase, Inc. Data backup system with methods for stripe affinity backup to multiple archive devices
EP0731945B1 (en) 1993-12-01 2000-05-17 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5537585A (en) 1994-02-25 1996-07-16 Avail Systems Corporation Data storage management for network interconnected processors
US6047356A (en) * 1994-04-18 2000-04-04 Sonic Solutions Method of dynamically allocating network node memory's partitions for caching distributed files
US5623599A (en) * 1994-07-29 1997-04-22 International Business Machines Corporation Method and apparatus for processing a synchronizing marker for an asynchronous remote data copy
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
US5764903A (en) * 1994-09-26 1998-06-09 Acer America Corporation High availability network disk mirroring system
EP0707267A3 (en) * 1994-10-12 1996-07-03 Ibm Redundant arrangement of disk drives with asymmetrical mirroring and data processing methods for asymmetrical mirroring
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5659704A (en) * 1994-12-02 1997-08-19 Hewlett-Packard Company Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5933653A (en) * 1996-05-31 1999-08-03 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
US5917998A (en) * 1996-07-26 1999-06-29 International Business Machines Corporation Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
JPH10307783A (ja) 1997-05-07 1998-11-17 N T T Data:Kk サイトアクセス制御システム及び記録媒体
US6112257A (en) * 1997-09-24 2000-08-29 Emc Corporation Dynamic adjustment of mirror service policy for logical volumes in a disk drive system based on collected statistics
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6115752A (en) * 1998-05-21 2000-09-05 Sun Microsystems, Inc. System and method for server selection for mirrored sites
US6167531A (en) * 1998-06-18 2000-12-26 Unisys Corporation Methods and apparatus for transferring mirrored disk sets during system fail-over
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
TW454120B (en) * 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759700B1 (ko) * 2005-08-03 2007-09-17 조창국 플래시메모리카드의 미러인터페이스 방법
US7636592B2 (en) 2006-01-03 2009-12-22 Samsung Electronics Co., Ltd. Mobile communication terminal having two keypads

Also Published As

Publication number Publication date
WO2003003153A3 (en) 2003-08-14
CN100403300C (zh) 2008-07-16
EP1402420A4 (en) 2008-01-09
CA2449850A1 (en) 2003-01-09
DE60232414D1 (de) 2009-07-02
KR100577314B1 (ko) 2006-05-10
JP2004535012A (ja) 2004-11-18
ATE431946T1 (de) 2009-06-15
US7389312B2 (en) 2008-06-17
WO2003003153A2 (en) 2003-01-09
US20010037371A1 (en) 2001-11-01
EP1402420B1 (en) 2009-05-20
CN1520564A (zh) 2004-08-11
EP1402420A2 (en) 2004-03-31

Similar Documents

Publication Publication Date Title
KR100577314B1 (ko) 가상의 저장영역 네트워크를 설정하기 위한 네트워크 데이터의 미러링 방법 및 가상 저장영역 네트워크
US6363462B1 (en) Storage controller providing automatic retention and deletion of synchronous back-up data
US8312236B2 (en) Apparatus and program storage device for providing triad copy of storage data
US7020669B2 (en) Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption
US7028078B1 (en) System and method for performing virtual device I/O operations
US6766470B1 (en) Enhancing reliability and robustness of a cluster
US20130346532A1 (en) Virtual shared storage in a cluster
US20040098458A1 (en) Distributed computing infrastructure including multiple collaborative sessions
US7203801B1 (en) System and method for performing virtual device I/O operations
US20050160312A1 (en) Fault-tolerant computers
US7634601B1 (en) Method and apparatus for providing continuous communications between computers
US20100169661A1 (en) Simultaneous state-based cryptographic splitting in a secure storage appliance
US20100162032A1 (en) Storage availability using cryptographic splitting
US8135980B2 (en) Storage availability using cryptographic splitting
US20100169662A1 (en) Simultaneous state-based cryptographic splitting in a secure storage appliance
US8683258B2 (en) Fast I/O failure detection and cluster wide failover
US7711978B1 (en) Proactive utilization of fabric events in a network virtualization environment
US20100082793A1 (en) Server-Embedded Distributed Storage System
US8160257B1 (en) Tape failover across a cluster
JP2011253400A (ja) 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム
AU2002320151A1 (en) Mirroring network data to establish virtual storage area network
Murphy Iscsi-Based Storage Area Networks for Disaster Recovery Operations
JP2005196531A (ja) システム間通信処理方法及びシステム間通信処理システム並びにシステム間通信処理プログラム

Legal Events

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

Payment date: 20130410

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140409

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160412

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170414

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 14