[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20030066331A - Flexible remote data mirroring - Google Patents

Flexible remote data mirroring Download PDF

Info

Publication number
KR20030066331A
KR20030066331A KR1020027016613A KR20027016613A KR20030066331A KR 20030066331 A KR20030066331 A KR 20030066331A KR 1020027016613 A KR1020027016613 A KR 1020027016613A KR 20027016613 A KR20027016613 A KR 20027016613A KR 20030066331 A KR20030066331 A KR 20030066331A
Authority
KR
South Korea
Prior art keywords
data
mirroring
local
remote
unit
Prior art date
Application number
KR1020027016613A
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 미라링크 코포레이션
Publication of KR20030066331A publication Critical patent/KR20030066331A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/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/2058Error 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 more than 2 mirrored copies
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

플렉서블 데이터 미러링을 위한 방법, 시스템, 및 이를 형성하기 위한 저장 매체가 제공된다. 보다 상세히는, 본 발명은, 로컬-리모트 역할 교대(1506), "매체가 준비되지 않음" 신호를 통한 핫 스탠바이 서버 상태의 충족(1508), 여러 대체 버퍼 컨텐츠 및 버퍼링 방식, 트랜잭션(1516), "가상" 리모트 미러링 유닛의 사용을 통한 다 대 1 미러링(1520), 특정 애플리케이션 지식 대신에 애플리케이션의 로그 및 분석에 기초한 빈번히 접속되는 데이터의 식별(1522), 및 인증되지 않은 방식의 2차 서버 이용(1526)을 제공한다.A method, system, and storage medium for forming the same are provided for flexible data mirroring. More specifically, the present invention relates to a local-remote role shift 1506, meeting a hot standby server state via a "media not ready" signal (1508), various alternative buffer contents and buffering schemes, transactions (1516), Many-to-one mirroring 1520 through the use of "virtual" remote mirroring units, identification of frequently accessed data 1522 based on log and analysis of applications instead of specific application knowledge, and use of unauthorized secondary servers Provide (1526).

Description

플렉서블 리모트 데이터 미러링{FLEXIBLE REMOTE DATA MIRRORING}Flexible remote data mirroring {FLEXIBLE REMOTE DATA MIRRORING}

미국특허 제5,537,533호는 1차(primary) 네트워크 서버에서 리모트 네트워크 서버로의 디지털 데이터의 리모트 미러링을 위한 툴 및 기술을 개시한다. 이 특허에 따른 시스템은 1차 서버 인터페이스 및 1차 링크 인터페이스를 갖는 1차 데이터 전송 유닛과, 리모트 링크 인터페이스 및 리모트 서버 인터페이스를 갖는 리모트 데이터 전송 유닛을 포함한다. 1차 링크 인터페이스는 1차 네트워크 서버를 위한 사전 통지(pre-acknowledgement)를 생성할 수 있는 스푸프(spoof) 패킷 발생기를 포함한다. 즉, 상기 시스템은, 미러링된 데이터가 1차 링크 인터페이스의 비휘발성 버퍼에 저장된 후와, 상기 리모트 서버에 의해 상기 미러링된 데이터가 저장되었음을 알리는 통지가 도달되기 전에, 1차 서버에 사전 통지 즉, "스푸프"를 제공하는 "스마트 버퍼"를 갖는다.U. S. Patent 5,537, 533 discloses tools and techniques for remote mirroring of digital data from a primary network server to a remote network server. The system according to this patent comprises a primary data transmission unit having a primary server interface and a primary link interface, and a remote data transmission unit having a remote link interface and a remote server interface. The primary link interface includes a spoof packet generator that can generate pre-acknowledgement for the primary network server. That is, the system may notify the primary server in advance, i.e., after the mirrored data is stored in the non-volatile buffer of the primary link interface, and before a notification indicating that the mirrored data has been stored by the remote server is reached. It has a "smart buffer" that provides a "spoof".

유타주 설트 레이크시의 미라링크 코포레이션은 미국특허 제5,537,533호의특허권자이다. 미라링크는 상기 발명의 출원일의 1년보다 이전에 상업적으로 이용 가능한 오프-사이트서버 제품(OFF-SITESEVER는 미라링크의 상표임)을 제조하였다. 오프-사이트서버 제품은 저 대역폭 리모트 통신 링크를 통해 지형학적으로 원거리의 지역에서 노벨 네트웨어(NETWARE는 노벨사(Novell, Inc.)의 상표임)의 디스크를 다른 서버에 리모트 미러링하는 기술을 포함한다.Miralink Corporation of Salt Lake City, Utah is a patent owner of US Patent No. 5,537,533. Miralink manufactured off-site server products commercially available (OFF-SITESEVER is a trademark of Miralink) prior to one year prior to the filing date of the invention. Off-site server products include technology for remote mirroring Novell Netware (NETWARE is a trademark of Novell, Inc.) to other servers in geographically remote locations over low bandwidth remote communication links. .

데이터 미러링을 사용하여 데이터를 1차 네트워크 서버로부터 리모트 대체 네트워크 서버로 리모트 미러링하는 것은 데이터를 백업하는 데 강력하고 효율적인 방법이다. 리모트 미러링은 원 데이터의 저장과 실질적으로 동시에 원 데이터로부터의 안전한 거리에서 데이터의 복사본을 생성한다. 원격으로 저장된 데이터가, "웜(warm)" 리모트 네트워크 서버 즉, 실제의 혹은 모의의 재난이 있는 수분 내에 새로운 1차 서버로서 시동하여 동작할 수 있는 리모트 서버에 복사되었다면, 이 데이터는 재난의 거의 직후에도 이용 가능하다.Remote mirroring of data from the primary network server to a remote alternate network server using data mirroring is a powerful and efficient way to back up data. Remote mirroring creates a copy of the data at a safe distance from the original data substantially simultaneously with the storage of the original data. If the remotely stored data has been copied to a "warm" remote network server, i.e. a remote server that can start up and operate as a new primary server within minutes of actual or simulated disasters, this data can Even immediately available.

통상의 인스톨 시에, 오프-사이트서버 제품에는 로컬 박스와 리모트 박스를 포함하는 한 쌍의 사이트서버 박스가 사용된다. 오프-사이트서버 박스는, 일반적으로 미국특허 제5,537,533호에 개시된 바와 같이, 소정의 하드웨어, 펌웨어, 및/또는 다른 소프트웨어로서 구성된다. 전용의 시리얼 라인은 로컬 네트웨어 서버를 이 박스들 중 하나에 접속시킨다. 네트웨어 서버 자체는 빈카 카드(VINCA는 빈카사(Vinca Corporation)의 상표임)를 사용한다. 이 카드는 디스크-드라이버 요청을 가로채 데이터를 로컬 오프-사이트서버 박스에 시리얼 라인 다운으로 전송한다.In a typical installation, off-site server products use a pair of site server boxes, including local boxes and remote boxes. The off-site server box is generally configured as certain hardware, firmware, and / or other software, as disclosed in US Pat. No. 5,537,533. A dedicated serial line connects the local network server to one of these boxes. The NetWare server itself uses a Vinca card (VINCA is a trademark of Vinca Corporation). The card intercepts disk-driver requests and sends the data down the serial line to a local off-site server box.

로컬 오프-사이트서버 박스는 IDE 디스크 드라이브와 같은 4GB의 비휘발성버퍼를 갖는다. 데이터는 오프-사이트서버 버퍼로 사전 통지된다. 로컬 서버의 운영 시스템이 관련되는 한, 제2 "미러링" 기입이 국부적으로 발생된다. 실제로, 오프-사이트서버 제품은 NLM으로부터 데이터를 수신하여 로컬 버퍼에 저장한다. 로컬 오프-사이트서버 박스는 원격지에 있는 리모트 오프-사이트서버 박스를 안전하게 전송할 때까지 섹터 및 트랙 (또는 블럭 레벨) 데이터 변경을 저장한다. 또한, 로컬 오프-사이트서버 박스에서의 버퍼는 리모트 통신 링크가 국부적으로 다룰 수 있는 상기 임의의 데이터를 저장한다는 점에서 "스마트(smart)"하다. 이 데이터는 리모트 오프-사이트서버 박스가 리모트 2차 서버에 성공적으로 기입되어 로컬 (1차) 오프-사이트서버 박스에 통지를 재전송할 때까지 로컬 오프-사이트서버 박스에 저장된다. 상기 통지가 수신되면, 로컬 오프-사이트서버 박스는 섹터/트랙/블럭 데이터의 성공적인 전송 부분이 차지하는 로컬 비휘발성 버퍼의 공간을 비운다.The local off-site server box has a 4GB nonvolatile buffer like the IDE disk drive. Data is notified in advance to the off-site server buffer. As long as the operating system of the local server is involved, a second "mirror" write occurs locally. In practice, off-site server products receive data from the NLM and store it in local buffers. The local off-site server box stores sector and track (or block level) data changes until the remote off-site server box is securely transferred. In addition, the buffer in the local off-site server box is "smart" in that it stores any of the above data that the remote communication link can handle locally. This data is stored in the local off-site server box until the remote off-site server box is successfully written to the remote secondary server and resends the notification to the local (primary) off-site server box. When the notification is received, the local off-site server box frees up the local non-volatile buffer occupied by the successful transmission portion of the sector / track / block data.

오프-사이트서버 제품은 로컬 (1차) 사이트에서 데이터 출력용 V.35 인터페이스를 사용한다. V.35는 채널 서비스 유닛/데이터 서비스 유닛("CSU/DSU")에 접속하는 일련의 리모트 통신 표준이며, 채널 서비스 유닛/데이터 서비스 유닛은 리모트 통신 링크와 인터페이스한다. 리모트 (2차) 위치는 섹터/트랙/블럭 정보를 리모트 2차 오프-사이트서버 박스의 V.35 입력 인터페이스에 중계하는 제2 CSU/DSU를 갖는다. 2차 오프-사이트서버 박스는 2차 (리모트) 서버의 리모트 빙카 카드에 접속된 시리얼 케이블을 사용하여, 전용 시리얼 접속을 통해 섹터/트랙/블럭 데이터를 출력한다. 그 후, 리모트 서버의 데이터 미러링 및 시스템 소프트웨어는 섹터/트랙/블럭 정보를 리모트 서버의 디스크 드라이브에 기입하고, 상기 기입은 로컬 오프-사이트서버 박스에 다시 통지된다. 이 시스템은 1시간 내에 약 300MB의 변경 데이터를 처리할 수 있다.Off-site server products use the V.35 interface for data output at the local (primary) site. V.35 is a set of remote communication standards that connect to a channel service unit / data service unit (“CSU / DSU”), which interface with the remote communication link. The remote (secondary) location has a second CSU / DSU that relays sector / track / block information to the V.35 input interface of the remote secondary off-site server box. The secondary off-site server box outputs sector / track / block data via a dedicated serial connection using a serial cable connected to the remote bincar card of the secondary (remote) server. The data mirroring and system software of the remote server then writes sector / track / block information to the disk drive of the remote server, which is notified back to the local off-site server box. The system can handle about 300MB of change data in less than an hour.

오프-사이트서버 제품은 대역폭에서의 감소 혹은 증가가 있는지의 여부 및/또는 리모트 통신 링크가 다운되었는지의 여부를 감지할 정도로 지능적이다. 링크 다운타임 동안, 오프-사이트서버 박스는 서버로부터의 데이터 변경을 로컬 비휘발성 스마트 버퍼에 저장한다. 링크가 다시 활성화되면, 오프-사이트서버 제품은 자동으로 전송을 시작한다. 오프-사이트서버 제품은 대역폭이 더 이용 가능하거나 덜 이용 가능함에 따라 그 대역폭 출력을 변화할 수 있다. 또한, 상술된 전송 모두는 표준 소프트웨어 체크섬(checksum) 에러 검출 및 정정, 및/또는 하드웨어 에러 정정 코드(error correcting code : ECC) 에러 처리를 포함한다.Off-site server products are intelligent enough to detect whether there is a reduction or increase in bandwidth and / or whether the remote communication link is down. During link downtime, the off-site server box stores data changes from the server in a local nonvolatile smart buffer. When the link is reactivated, the off-site server product automatically starts transmitting. Off-site server products may change their bandwidth output as more or less bandwidth is available. In addition, all of the transmissions described above include standard software checksum error detection and correction, and / or hardware error correcting code (ECC) error processing.

로컬 (1차) 네트웨어 서버 상의 디스크 혹은 서버 실패(failure)의 경우, 방금 설명했던 바와 같은 방법으로 리모트 (2차) 오프-사이트서버 박스에 연결된 2차 (리모트) 서버는 로컬 (1차) 서버 상의 모든 데이터의 완전 미러링된 디스크 복사본을 갖는다. 이 리모트 백업 복사본은 로컬 (1차) 서버에 재저장될 수 있다. 또한, 2차 리모트 서버는 재난 발생 시 로컬 1차 서버를 대신할 수 있다. 이러한 2차 재저장 및/또는 대체는 간단한 커맨드 라인 세트를 이용하면 비교적 고속으로 실행될 수 있다.In the case of a disk or server failure on a local (primary) network server, the secondary (remote) server connected to the remote (secondary) off-site server box in the same manner as just described is the local (primary) server. Have a fully mirrored disk copy of all data on the disk. This remote backup copy can be restored to the local (primary) server. In addition, the secondary remote server can replace the local primary server in the event of a disaster. Such secondary resave and / or replacement can be performed relatively quickly using a simple set of command lines.

요약하면, 오프-사이트서버 제품 및 다른 리모트 데이터 미러링 기술은 과제 중심의(mission-critical) 데이터 및 다른 컨텍스트(context) 둘 다에, 가치있는 장애 허용성과 재난 복구 능력을 제공한다. 그럼에도 불구하고, 이 기존의 방법들은 불필요하게 제한된 유연성을 갖고 있다.In summary, off-site server products and other remote data mirroring technologies provide valuable fault tolerance and disaster recovery capabilities for both mission-critical data and other contexts. Nevertheless, these existing methods have unnecessarily limited flexibility.

예를 들어, 오프-사이트서버 제품은 빈카사로부터 특정 버전의 하드웨어 및 소프트웨어를 요구한다. 이와 같이 요구되는 버전의 빙카 제품은 노벨 네트웨어 플랫폼 외에는 다른 어떠한 운영 시스템/파일 시스템 플랫폼도 지원하지 않는다. 또한, 필요한 빈카 패키지 중 하드웨어 컴포넌트는 보다 최신의 고속 서버와 보다 큰 디스크 볼륨을 이용하여 작동하지 않는다.For example, off-site server products require specific versions of hardware and software from Vinca. This required version of Bingka does not support any operating system / file system platform other than the Novell NetWare platform. Also, the hardware components of the required binka packages do not work with newer, higher speed servers and larger disk volumes.

또한, 원래의 오프-사이트서버 제품은 하나의 로컬 서버가 하나의 리모트 서버에 접속하도록 설계된다. 단일 서버만이 소정 시간에 리모트 서버에 미러링할 수 있을 뿐이다. 서로 다른 위치에서 복수의 서버가 단일의 리모트 사이트에 쉽게 미러링될 수 없다. 마찬가지로, 기업이 서로 다른 운영 시스템 및/또는 파일 시스템을 실행하는 복수의 로컬 서버를 갖는 경우, 각각의 플랫폼을 동작시키는 각 서버는 매칭(matching) 리모트 서버에 미러링되어야 한다.In addition, the original off-site server product is designed such that one local server connects to one remote server. Only a single server can mirror to a remote server at any given time. Multiple servers at different locations cannot be easily mirrored to a single remote site. Similarly, if an enterprise has multiple local servers running different operating systems and / or file systems, each server running each platform should be mirrored to a matching remote server.

또한, 원래의 오프-사이트서버 제품은 로컬 서버 상의 NLM을 필요로 하며, 전용 리모트 통신 링크를 사용하도록 설계되어 있다. 또한, 종래의 미러링은 원격 지에서 부팅 가능한 포맷으로 미러링된 정보를 유지하기 위해 리모트 서버를 필요로 한다.In addition, the original off-site server product requires NLM on the local server and is designed to use a dedicated remote communication link. In addition, conventional mirroring requires a remote server to maintain the mirrored information in a remotely bootable format.

상기의 한계점들과 다른 점들은 모출원이 되는 미국특허출원 제09/438,184호에서 지적하였다. 본 발명은 상기 출원에서 논의된 기술에서의 장점과 다른 이점을 얻기 위해 리모트 데이터 미러링에 대하여 부가적인 툴 및 기술을 제공한다.The differences from the above limitations are pointed out in US patent application Ser. No. 09 / 438,184, which is a parent application. The present invention provides additional tools and techniques for remote data mirroring to obtain advantages and other advantages over the techniques discussed in this application.

본 발명은 보다 바람직한 장애 허용성(fault tolerance) 및/또는 재난 복구(disaster recovery)를 제공하기 위해 서버 혹은 다른 컴퓨터로부터의 디지털 데이터의 리모트 미러링(remote mirroring)에 관한 것으로서, 특히 리모트 데이터 미러링의 유연성(flexibility)을 증가시키기 위한 툴 및 기술에 관한 것이다.The present invention relates to remote mirroring of digital data from a server or other computer to provide more desirable fault tolerance and / or disaster recovery, in particular the flexibility of remote data mirroring. A tool and technique for increasing flexibility.

도 1은 본 발명에 사용되도록 적용될 수 있는 컴퓨터 네트워크에서의 종래의 미러링을 도시하는 도면.1 illustrates conventional mirroring in a computer network that may be applied for use with the present invention.

도 2는 리모트 서버 없이, 보다 큰 버퍼를 구비하는 리모트 미러링 유닛을 포함하는 본 발명에 따른 컴퓨터 시스템을 도시하는 도면.2 shows a computer system according to the invention comprising a remote mirroring unit with a larger buffer, without a remote server.

도 3은 비교적 소형의 버퍼를 구비하는 리모트 미러링 유닛 및 핫 스와핑 가능(hot-swappable) RAID 유닛과 함께 리모트 서버를 포함하는 본 발명에 따른 컴퓨터 시스템을 도시하는 도면.3 shows a computer system according to the invention comprising a remote server with a remote mirroring unit having a relatively small buffer and a hot-swappable RAID unit.

도 4는 리모트 서버 없이, 핫 스와핑 가능 RAID 유닛 및 비교적 소형의 버퍼를 구비하는 리모트 미러링 유닛을 포함하는 본 발명에 따른 컴퓨터 시스템을 도시하는 도면.4 illustrates a computer system in accordance with the present invention including a remote swapping unit having a hot swappable RAID unit and a relatively small buffer, without a remote server.

도 5는 리모트 서버 없이, 수개의 핫 스와핑 가능 RAID 유닛 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛 및 각각의 로컬 미러링 유닛과 함께 소정의 플랫폼을 동작시키는 여러 로컬 서버들을 포함하는 본 발명에 따른 다 대 1 미러링의 컴퓨터 시스템을 도시하는 도면.5 illustrates a single remote mirroring unit having several hot swappable RAID units and a relatively small buffer and several local servers operating a given platform with each local mirroring unit, without a remote server. Diagram illustrating a computer system of many-to-one mirroring.

도 6은 리모트 서버 없이, 수개의 개별 외부 저장 볼륨 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛 및 각각의 로컬 미러링 유닛과 함께 소정의 플랫폼을 동작시키는 수개의 로컬 서버들을 포함하는 본 발명에 따른 또 다른 다 대 1 컴퓨터 시스템을 도시하는 도면.FIG. 6 illustrates a single remote mirroring unit having several separate external storage volumes and a relatively small buffer, and several local servers operating a given platform with each local mirroring unit, without a remote server. Showing another many-to-one computer system according to the drawings.

도 7은 리모트 서버 없이, 수개의 파티션을 갖는 것과 유사하게 핫 스와핑 가능 RAID 유닛, 여러 파티션을 갖는 외부 저장 볼륨, 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛과 각각의 로컬 미러링 유닛과 함께 소정의 플랫폼을 동작시키는 수개의 로컬 서버들을 포함하는 본 발명에 따른 또 다른 다 대 1 컴퓨터 시스템을 도시하는 도면.FIG. 7 shows a single remote mirroring unit and each local mirroring unit having a hot swappable RAID unit similar to having several partitions, an external storage volume having multiple partitions, and a relatively small buffer, without a remote server; Diagram showing another many-to-one computer system in accordance with the present invention comprising several local servers operating a given platform.

도 8은 리모트 서버 없이, 핫 스와핑 가능 RAID 유닛 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛과 각각의 로컬 미러링 유닛과 함께 상이한 플랫폼들을 동작시키는 수개의 로컬 서버들을 포함하는 본 발명에 따른 또 다른 다 대 1 컴퓨터 시스템을 도시하는 도면.8 illustrates a single remote mirroring unit having a hot swappable RAID unit and a relatively small buffer and several local servers operating different platforms with each local mirroring unit, without a remote server. A diagram illustrating another many-to-one computer system.

도 9는 리모트 서버 없이, 수개의 외부 저장 볼륨 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛과 각각의 로컬 미러링 유닛과 함께 상이한 플랫폼들을 동작시키는 수개의 로컬 서버들을 포함하는 본 발명에 따른 또 다른 다 대 1 컴퓨터 시스템을 도시하는 도면.9 shows a single remote mirroring unit having several external storage volumes and a relatively small buffer and several local servers operating different platforms with each local mirroring unit, without a remote server. A diagram illustrating another many-to-one computer system.

도 10은 리모트 서버 없이, 수개의 파티션을 갖는 것과 유사하게 핫 스와핑 가능 RAID 유닛, 여러 파티션을 갖는 외부 저장 볼륨, 및 비교적 소형의 버퍼를 구비하는 단일의 리모트 미러링 유닛과 각각의 로컬 미러링 유닛과 함께 상이한 플랫폼들을 동작시키는 수개의 로컬 서버들을 포함하는 본 발명에 따른 또 다른 다 대 1 컴퓨터 시스템을 도시하는 도면.FIG. 10 shows a single remote mirroring unit and each local mirroring unit having a hot swappable RAID unit, an external storage volume having multiple partitions, and a relatively small buffer, similar to having several partitions, without a remote server. Diagram showing another many-to-one computer system according to the present invention comprising several local servers operating different platforms.

도 11은 로컬 서버가 수개의 원격지로의 데이터 미러링을 위해 수개의 로컬 미러링 유닛에 접속되는 본 발명에 따른 1 대 다 미러링 컴퓨터 시스템을 도시하는 도면.11 shows a one-to-many mirroring computer system according to the present invention in which a local server is connected to several local mirroring units for data mirroring to several remotes.

도 12는 로컬 서버가 수개의 원격지로의 데이터 미러링을 위해 하나의 멀티 포트(multi-ported) 로컬 미러링 유닛에 접속되는 본 발명에 따른 1 대 다 미러링 컴퓨터 시스템의 대체예를 도시하는 도면.12 shows an alternative example of a one-to-many mirroring computer system according to the invention in which a local server is connected to one multi-ported local mirroring unit for data mirroring to several remotes.

도 13은 본 발명의 방법을 도시하는 흐름도.13 is a flow chart illustrating the method of the present invention.

도 14는 본 발명에 따른 전환(switchover)을 수행하는 데 사용될 수 있는 리모트 미러링 유닛, 리모트 서버, 및 RAID 유닛 사이의 듀얼(dual) 호스트 구성을 도시하는 도면.Figure 14 illustrates a dual host configuration between a remote mirroring unit, a remote server, and a RAID unit that can be used to perform a switchover in accordance with the present invention.

도 15는 본 발명의 방법을 도시하는 흐름도.15 is a flow chart illustrating a method of the present invention.

본 발명은 모출원의 발명과의 조합 혹은 다른 실시예들에서 사용될 수 있는 미러링 툴 및 기술을 제공한다. 미국정규(non-provisional)특허출원 제09/438,184호는 본 발명에 포함되며, 본 발명의 간단한 요약은 이전에 강조하지 않았던 툴 및 기술의 편리성에 초점을 둔 것이다. 예를 들어, 본 발명은 로컬-리모트 역할 교대(local-remote role reversal), "매체가 준비되지 않음" 신호를 이용한 핫 스탠바이(hot stand-by) 서버의 구현, 여러 대체 버퍼 컨텐츠 및 버퍼링 방식, 트랜잭셔닝(transactioning), "가상(virtual)" 리모트 미러링 유닛을 사용한 다 대 1 미러링, 특정 애플리케이션 지식은 없지만 대신에 애플리케이션의 로그되어 분석된 행위(behavior)에 기초한 빈번히 접속된 데이터의 식별, 및 인증되지 않은 방식의 2차 서버 사용 등의 툴 및 기술을 제공한다.The present invention provides mirroring tools and techniques that can be used in combination with other inventions or in other embodiments. US non-provisional patent application 09 / 438,184 is included in the present invention, a brief summary of the present invention focuses on the convenience of tools and techniques not previously highlighted. For example, the present invention provides local-remote role reversal, implementation of a hot stand-by server using a "media not ready" signal, various alternative buffer contents and buffering schemes, Transactional, many-to-one mirroring using a "virtual" remote mirroring unit, identification of frequently accessed data based on the logged and analyzed behavior of the application, but without specific application knowledge, and It provides tools and techniques such as the use of unauthorized secondary servers.

본 발명은 플렉서블 데이터 미러링을 위한 컴퓨터 시스템, 방법 및 이를 형성하는 저장 매체에 관한 것이다. 주지하듯이, 본 출원은 미국정규특허출원 제09/438,184호를 포함한 수개의 출원을 우선권 주장하고 포함하며, 본 출원에서 청구하는 발명은 모출원에서 청구한 발명으로부터 이득이 되는 실시예에 또는 다른 실시예에 사용될 수 있다. 여기서 "발명"이란 용어는 청구항이 각 출원에서의 발명을 정의하는 것을 이해하면서, 모출원과 일관된 방식으로 사용된다. 달리 언급된 것을 제외하고는, 본 출원과 모출원 모두에서 사용된 여러 용어들은 본 출원에서도 모출원에서 사용된 것과 일관된 방식으로 사용되는 것으로 의도되었다.The present invention relates to a computer system, a method for flexible data mirroring and a storage medium forming the same. As is well known, this application claims and encompasses several applications, including US patent application Ser. No. 09 / 438,184, the invention claimed in this application being directed to embodiments or other embodiments which would benefit from the invention claimed in the parent application. Can be used in the examples. The term "invention" is used herein in a manner consistent with the parent application, with the understanding that the claims define the invention in each application. Except where noted, the various terms used in both this application and the parent application are intended to be used in this application in a manner consistent with that used in the parent application.

모출원에서 주지하듯이, 본 발명은 비침략식(non-invasive) 미러링과, 전용 통신 링크를 갖는 혹은 갖지 않는 미러링과, 리모트 미러링 유닛을 돕기 위하여 목적지에서 전용 서버 또는 다른 서버를 갖는 또는 갖지 않는 미러링을 제공한다. 또한, 본 발명은 둘 이상의 지리적으로 분산된 위치에서 동일한 또는 다른 오퍼레이팅 시스템 및/또는 파일 시스템을 실행하는 로컬 서버로부터의 미러링을 포함하는 다 대 1 데이터 미러링을 제공한다. 또한, 본 발명은 미러링된 데이터를 유지하기 위하여 하나 이상의 외부 저장 유닛 및/또는 RAID 유닛의 다양한 조합을 사용할 수 있게 함으로써 유연성을 제공한다. 이러한 논제들은 특히 모출원에서 다루어졌으며, 그 논의가 이하에서 재현된다.As is well known in the present application, the present invention provides for non-invasive mirroring, with or without a dedicated communication link, and with or without a dedicated server or other server at the destination to assist the remote mirroring unit. Provide mirroring. In addition, the present invention provides many-to-one data mirroring, including mirroring from local servers running the same or different operating systems and / or file systems at two or more geographically dispersed locations. In addition, the present invention provides flexibility by allowing the use of various combinations of one or more external storage units and / or RAID units to maintain mirrored data. These topics have been addressed in particular in the parent application, and the discussion is reproduced below.

또한, 본 발명은 모출원과 동일하게 다루지 않는 툴과 기술을 제공한다. 실시예는 미러링 유닛 역할 교대; 서버 핫 스탠드바이 모드 구현; 미러링 데이터의 저장을 위한 옵션; 변경된 데이터에 관련된 SCSI 커맨드의 저장 및 응답; 트랜잭셔널리티(transactionality); 가상 리모트 미러링 유닛; 애플리케이션 상태 복구; 및데이터 볼륨 재동기화를 포함한다. 이러한 논제들은 도 15(모 출원에는 도시되지 않은 도면임)를 참조하며 설명할 것이며, 소정의 논제에 대하여 제공되는 관련 정보가 도 15 및 이에 대한 직접적인 설명에만 있는 것은 아니라는 것을 주의한다.In addition, the present invention provides tools and techniques that do not address the same as the parent application. Embodiments include mirroring unit role shifts; Server hot standby mode implementation; An option for storing mirroring data; Storing and responding to SCSI commands related to modified data; Transactionality; Virtual remote mirroring unit; Application state recovery; And resynchronizing data volumes. These topics will be described with reference to FIG. 15 (which is not shown in the parent application), and it is noted that the relevant information provided for a given topic is not limited to FIG. 15 and a direct description thereof.

본 발명은 방법, 시스템, 및/또는 이를 형성하는 저장 매체로 구현될 수 있다. 특별히 언급하지 않더라도, 임의의 한 실시예에 대한 논의가 다른 실시예에도 적용될 수 있다. 예를 들어, 본 발명의 시스템에 대한 논의는 데이터를 미러링하고, 역으로 하기 위하여 이러한 시스템을 통하여 데이터를 전송하는 시스템 및/또는 방법을 구성하는 본 발명의 방법을 이해하는 것을 도울 것이다. 특히, 도 15는 흐름도를 도시하지만, 이는 방법을 한정하는 것이 아니라 본 발명에 따라 구성되는 매체와 시스템을 설명하는 것을 돕기 위한 것이다.The invention may be embodied as a method, a system, and / or a storage medium forming the same. Although not specifically mentioned, a discussion of any one embodiment may apply to other embodiments. For example, a discussion of the system of the present invention will help to understand the method of the present invention that constitutes a system and / or method of transmitting data through such a system to mirror and vice versa. In particular, although FIG. 15 shows a flow diagram, it is not intended to limit the method but to help illustrate the media and systems constructed in accordance with the present invention.

컴퓨터 및 일반적인 네트워크Computer and general network

도 1은 로컬 서버(102)가 리모트 서버(106)에 대한 종래의 루트(104)에 걸쳐서 미러링되는 네트워크(100)를 도시한다. 종래의 루트(104)는 텔레커뮤니케이션 링크 자체에 한정되지 않고, 모뎀, 데이터 전송 유닛, 및 이러한 링크 상에서의 데이터의 전송 및/또는 이렇게 전송된 데이터를 수신하는 데 사용되는 다른 종래의 도구 및 기술을 포함한다. 특히, 한정없이, 종래의 루트(104)는 서버 인터페이스, 링크 인터페이스, 및 미국특허 제5,537,533호의 도 1에 도시되고 그 특허에서 논의된 DTU를 포함할 수 있다.1 shows a network 100 in which a local server 102 is mirrored across a conventional route 104 to a remote server 106. The conventional route 104 is not limited to the telecommunications link itself, but rather to a modem, a data transmission unit, and other conventional tools and techniques used to transmit and / or receive data transmitted on such a link. Include. In particular, and without limitation, conventional route 104 may include a server interface, a link interface, and a DTU shown in FIG. 1 of US Pat. No. 5,537,533 and discussed in that patent.

또한, 종래의 루트(104)는 소형 컴퓨터 시스템 인터페이스("SCSI", Small Computer System Interface) 성능 익스텐더(extender), 또는 표준 기억 액세스 네트워크("SAN", Standard Storage Access Network) 커넥터를 포함할 수 있다. 이러한 장치는 매우 높은 대역폭 링크 및 최소 레이턴시를 요구한다. 이들은 거리가 레이턴시를 도입하기 때문에 약 10 또는 20 마일의 거리 제한을 갖도록 하는 경향이 있다. 예를 들어, 단일 모드 섬유(fiber) 구성에서 주어진 SCSI 익스텐더 상의 레이턴시는 데이터 소스와 목적지 사이의 거리가 약 15 킬로미터가 되도록 할 수 있다. 멀티 모드 섬유의 사용이 레이턴시 때문에 거리를 약 2/3으로 줄일 것이다. 이러한 연결은 지연 또는 방해가 1초의 수 소부분 이하만을 허용하거나, 기껏해야 수 초의 지연만을 적절하게 처리할 수 있다. 이들 동일한 문제는 메인프레임 채널 익스텐더에 적용된다.In addition, conventional root 104 may include a small computer system interface (“SCSI”) performance extender, or a standard storage access network (“SAN”) connector. . Such devices require very high bandwidth links and minimum latency. They tend to have a distance limit of about 10 or 20 miles because the distance introduces latency. For example, the latency on a given SCSI extender in a single mode fiber configuration can cause the distance between the data source and the destination to be about 15 kilometers. The use of multimode fibers will reduce the distance to about 2/3 because of latency. Such a connection may allow only delays or disturbances of less than a few fractions of a second, or at most handle only a few seconds of delay as appropriate. These same problems apply to mainframe channel extenders.

도시된 바와 같이 네트위크(100)는 종래의 도구 및 기술에 따른 미러링을 위한 구성이지만, 이는 또한 본 발명에 따른 다양한 적용 및 사용에 적합한 많은 가능한 네트워크 중 하나이다. 이러한 적용은 사용될 본 발명의 특정한 실시예에 따른, 다양한 단계를 포함할 것이다. 예를 들어, 적용은, 더이상 필요하지 않다면 리모트 서버(106)를 단절하고, 종래의 미러링 루트(104)를 본 발명에 따라 링크된 미러링 유닛을 보충하거나 교체하고, 로컬 서버(102)로부터 미러링 NLMs 또는 다른 특별 소프트웨어를 언로딩하고, 또한 미러링될 로컬 서버를 더 추가하고, 및/또는 외부 기억 볼륨 및/또는 독립적 디스크의 리던던트 어레이(Redundant Array of Independent Disk, "RAID") 유닛의 형식의 리모트 기억을 추가하는 것을 포함할 수 있다. 그러나, 최소한, 적용은 정상적으로 본 발명에 따른 오퍼레이션에 대하여 서로에 링크될 수 있는 리모트 미러링 유닛과 함께, 적어도 하나의 로컬 미러링 유닛과 적어도 하나의 리모트 미러링 유닛의 추가와 관련된다.As shown, network 100 is a configuration for mirroring according to conventional tools and techniques, but it is also one of many possible networks suitable for various applications and uses in accordance with the present invention. Such application will include various steps, according to the particular embodiment of the invention to be used. For example, the application disconnects the remote server 106 if no longer needed, replaces or replaces the conventional mirroring route 104 with the linked mirroring unit in accordance with the present invention, and mirrors the NLMs from the local server 102. Or unload other special software, further add a local server to be mirrored, and / or remote storage in the form of an external storage volume and / or a redundant array of independent disk ("RAID") units. It may include adding a. However, at least, the application involves the addition of at least one local mirroring unit and at least one remote mirroring unit, with remote mirroring units which can normally be linked to each other for the operation according to the invention.

그 적용의 이전 및/또는 이후에, 네트워크(100)는 게이트웨이 또는 유사한 기구를 통하여 LAN 또는 WAN 또는 인터넷 또는 인트라넷의 부분을 포함하는 다른 네트워크(108)에 접속될 수 있다. 도시된 네트워크(100)에서 로컬 서버(102)가 커뮤니케이션 링크 또는 네트워크 신호 라인(110)에 의해 하나 이상의 네트워크 클라이언트(112)에 접속된다. 다른 적합한 네트워크는 멀티 서버 네트워크 및 피어-투-피어 네트워크를 포함한다. 특정 네트워크에서 서버(102) 및 클라이언트 (112)는 단일 프로세서, 멀티 프로세서, 또는 클러스터된 프로세서 장치일 수 있다. 서버(102) 및 클라이언트(112) 각각은 랜덤 억세스 메모리와 같은 어드레스블 기억 매체를 포함한다.Before and / or after its application, the network 100 may be connected to another network 108 including a LAN or WAN or part of the Internet or intranet through a gateway or similar mechanism. In the network 100 shown, the local server 102 is connected to one or more network clients 112 by a communication link or network signal line 110. Other suitable networks include multiserver networks and peer-to-peer networks. In a particular network, server 102 and client 112 may be uniprocessor, multiprocessor, or clustered processor devices. Each of server 102 and client 112 includes an addressable storage medium, such as a random access memory.

적합한 네트워크 클라이언트(112)는, 제한하는 것은 아니고, 개인용 컴퓨터; 랩탑(114); 개인 휴대 정보 단말기(PDA), 및 다른 이동 장치; 및 워크스테이션(116)을 포함한다. 신호 라인(110)은 트위스트된 쌍, 동축 케이블, 또는 광섬유 케이블, 전화 라인, 위성, 마이크로파 릴레이, 변조된 AC 파워 라인, RF 접속, 네티워크 링크, 다이얼-업 링크, 적외선 링크와 같은 휴대형 링크, 및/또는 본 기술의 당업자에게 공지된 다른 데이터 전송 "와이어" 또는 커뮤니케이션 링크를 포함할 수 있다. 링크(110)는 종래의 또는 신규한 신호을 구현할 수 있고, 특히, 여기서 논의된 데이터를 미러링하기 위한 시로운 일련의 커맨드 및/또는 데이터 구조를 구현할 수 있다. 리모트 서버(106)는 외부 하드 디스크 및/또는 RAID 서브시스템(118)과 같은 부착된 기억 수단 상에서 종래의 루트(104)에 대하여 얻어진 미러링된 데이터를 저장한다.Suitable network clients 112 include, but are not limited to, personal computers; Laptop 114; Personal digital assistants (PDAs), and other mobile devices; And workstation 116. Signal line 110 may be a twisted pair, coaxial cable, or a portable link such as a fiber optic cable, telephone line, satellite, microwave relay, modulated AC power line, RF connection, network link, dial-up link, infrared link, And / or other data transmission “wires” or communication links known to those skilled in the art. Link 110 may implement a conventional or novel signal, and in particular may implement a series of commands and / or data structures for mirroring the data discussed herein. The remote server 106 stores the mirrored data obtained for the conventional root 104 on attached storage means such as an external hard disk and / or RAID subsystem 118.

플렉서블 미러링 유닛 시스템의 예Example of Flexible Mirroring Unit System

도 2는 본 발명에 따른 시스템에서 본 발명을 도시한다. 상술된 종래의 접근과 달리, 이 도면에 따른 시스템은 리모트 서버를 필요로 하지 않는다. 로컬 서버(200) 또는 몇몇 다른 호스트(200)는 로컬 미러링 유닛(204)으로 로컬 링크(202)에 걸쳐 커뮤니케이션한다. 로컬 미러링 유닛(204)은 리모트 미러링 유닛(208)을 갖는 저니 링크(journey link)(206)에 걸쳐 통신한다. 로컬 미로링 유닛은 로컬 서버(200)에 데이터를 사전 승인하기 위한 스푸핑 패킷 발생기, 및 원격지에 저장되기 전에 미러링된 데이터를 유지하기 위한 불휘발성 데이터 버퍼(210)를 포함할 수 있다. 리모트 미러링 유닛은 저니 링크(206)에 걸쳐서 로컬 미러링 유닛(204)으로브투 수신된 미러링된 데이터에 대하여 목적지 불휘발성 기억 장치를 갖는다. 리모트 미러링 유닛은 10 마일 이하, 적어도 10 마일, 또는 적어도 100 마일과 같은 다양한 거리 만큼 로컬 서버(200)로부터 물리적으로 분리될 수 있다. 이들 거리는 단순한 예일 뿐이다; 왜냐하면 본 발명은 저니 링크9206)의 잇점을 완전히 이용할 수 있기 때문에, 본 발명에 따른 시스템은 고유의 거리 제한이 없다. 개별적인 미러링 유닛이, 도 2 내지 12에 도시된 예시적인 시스템에서의 유연성에 대한 설명과, 일반적인 구성요소 및 동작과 결합하여, 이하에 상술될 것이다.2 shows the invention in a system according to the invention. Unlike the conventional approach described above, the system according to this figure does not require a remote server. Local server 200 or some other host 200 communicates over local link 202 to local mirroring unit 204. Local mirroring unit 204 communicates over a journal link 206 with a remote mirroring unit 208. The local mirroring unit may include a spoofed packet generator for pre-approving data to the local server 200, and a nonvolatile data buffer 210 for maintaining mirrored data before being stored remotely. The remote mirroring unit has a destination nonvolatile memory for mirrored data received via local linking unit 204 into local mirroring unit 204. The remote mirroring unit may be physically separated from the local server 200 by various distances such as 10 miles or less, at least 10 miles, or at least 100 miles. These distances are merely examples; Because the present invention can take full advantage of the Journey link 9206, the system according to the present invention has no inherent distance limitation. Individual mirroring units will be described in detail below in conjunction with the description of flexibility in the exemplary system shown in FIGS. 2-12 and general components and operations.

그러나, 로컬 미러링 유닛(204)의 몇몇 실시예는, SCSI 디스크 또는 다른 종래의 SCSI 장치로서 로컬 서버(200) 또는 다른 호스트(200)로 보이는 로컬 미러링 유닛(204)을 통해 로컬 링크(202)가 SCSI 접속이 되도록 하는 SCSI 에뮬레이션 소프트웨어 및/또는 하드웨어를 포함한다. 이는 보다 일반적인 개시자(initiator) 모드 대신에 타겟 모드에서 수행하는 SCSI 호스트 어댑터를 로컬 미러링 유닛(204) 내에서 사용함으로써 실행될 수 있다. 이러한 타겟 모드를 갖는 적합한 SCSI 호스트 어댑터는 적어도 Adaptec 2942940UW 어댑터, 및 QLogic QLA-1040 어댑터를 포함한다. 유사한 방식으로, 로컬 링크(202)는 섬유 채널 접속, USB 접속, 메인프러임 채널 익스텐더, V.35 CSU/DSU 접속, Fire Wire(IEEE 1394) 접속, 메모리 타입(예를 들어, 디스크가 아닌 AS/400 미러 메모리), IDE 버스, PCMCIA 접속, 직렬 접속, 이더넷 접속, FDDI(Fiber Distributed Data Interface) 접속, 또는 디스크를 접속하기 위한 다른 표준 버스 및/또는 서버에의 RAID 서브시스템일 수 있다. 따라서, 마치 미러링된 데이터가 원격지에 저니 링크(206)를 통하여 전송되는 대신에 다른 로컬 디스크에 전송되는 것처럼, 종래의 미러링(다른 로컬 디스크로 복사하는 관점에서) 하드웨어 및/또는 소프트웨어가 로컬 서버(200) 내에서 사용될 수 있다.However, some embodiments of the local mirroring unit 204 may be implemented by the local link 202 via the local mirroring unit 204, which appears to be a local server 200 or another host 200 as a SCSI disk or other conventional SCSI device. It includes SCSI emulation software and / or hardware to make a SCSI connection. This can be done by using within the local mirroring unit 204 a SCSI host adapter running in the target mode instead of the more common initiator mode. Suitable SCSI host adapters with this target mode include at least an Adaptec 2942940UW adapter, and a QLogic QLA-1040 adapter. In a similar manner, the local link 202 may be connected to a fiber channel connection, a USB connection, a mainframe channel extender, a V.35 CSU / DSU connection, a Fire Wire (IEEE 1394) connection, a memory type (e.g., AS, not disk / 400 mirror memory), IDE bus, PCMCIA connection, serial connection, Ethernet connection, Fiber Distributed Data Interface (FDDI) connection, or RAID subsystem to other standard buses and / or servers for connecting disks. Thus, conventional mirroring (in terms of copying to another local disk) allows hardware and / or software to be executed on a local server (as if the mirrored data is sent remotely to another local disk instead of being transmitted via the Journey Link 206). 200).

상술된 종래의 접근에서의 원거리 링크와 달리, 저니 링크(206)는 전용 비밀 텔레커뮤니케이션 링크일 필요는 없다. 이러한 링크(206)는 몇몇 실시예에서 여전히 사용되지만, 본 발명은 또한 프로토콜의 라우터빌리티 또는 비-라우터빌리티를 고려하지 않고, 이더넷, FDDI, V3.5, 또는 다른 데이터 링크 프로토콜, 인터넷 프로토콜(IP) 또는 다른 네트워크 프로토콜, 및/또는 사용자 데이터그램 프로토콜(UDP), 트랜스미션 제어 프로토콜(TCP), 또는 다른 전송 프로토콜을 사용하여, 네트워크, 또는 인터넷과 같은 일련의 네트워크에 걸쳐 커뮤니케이션하는 미러링 유닛(204, 208)을 제공한다. 따라서, 두 미러링 유닛(204, 208)이 필요하다면 수십 또는 수백 마일 만큼 분리될 수 있다.Unlike the far link in the conventional approach described above, the jonny link 206 need not be a dedicated secret telecommunication link. Although this link 206 is still used in some embodiments, the present invention also does not take into account the router's routerability or non-routerability, and does not take into account Ethernet, FDDI, V3.5, or other data link protocol, Internet protocol (IP). Or other network protocol, and / or mirroring unit 204 that communicates over a network, or a series of networks such as the Internet, using a user datagram protocol (UDP), a transmission control protocol (TCP), or another transport protocol, 208). Thus, the two mirroring units 204, 208 can be separated by tens or hundreds of miles if desired.

저니 링크(206)는 종래의 링크(104) 및 스푸핑 로컬 미러링 유닛(204)를 통해 데이터 취득 지점으로서 공급한다. 그러나, 저니 링크(206)는 종래의 링크(104)에 의해 자주 부과되는 고 대역폭 및 저 레이턴시의 요구사항을 필수적으로 부과하지 않는다. SAN과 달리, 예를 들어, 저니 링크(206)를 사용하는 시스템이 소소로부터 한정되지 않은 거리만큼 떨어진 목적지에 미러링된 데이터를 전송할 수 있다. 또한 저니 링크(206)는 인터넷 또는 광역 네트워크를 가로지를 때 일반적인 바와 마찬기지로, 공유 대역폭을 제공한다. 또한, 저니 링크(206) 및/또는 미러링 유닛은 방해 및 단절에 대한 상대적으로 높은 허용 오차의 이점을 갖는 발명의 시스템을 제공한다.Journey link 206 serves as a data acquisition point through conventional link 104 and spoofing local mirroring unit 204. However, the Journey link 206 does not necessarily impose the requirements of high bandwidth and low latency that are frequently imposed by conventional links 104. Unlike a SAN, for example, a system using the Journey Link 206 can send mirrored data to a destination that is not limited to an element by a distance. Journey link 206 also provides shared bandwidth, as is common when traversing the Internet or wide area network. In addition, the Journey Link 206 and / or mirroring unit provide a system of the invention that has the advantage of a relatively high tolerance for interference and disconnection.

설명된 리모트 미러링 장치(208)는 큰 버퍼(212)를 갖는다. 그 결과, 리모트 미러링 유닛(208)은 로컬 서버(200) 또는 다른 호스트(200)의 오나전한 볼륨을 버퍼할 수 있다. 몇몇 실시예에서 또한 로컬 미러링 유닛(204)은 큰 버퍼를 포함한다. 일실시예에서, 예를 들어, 로컬 서버(200) 볼륨 및 큰 버퍼(로컬 및 리모트)가 불휘발성 기억 장치에서 1 테라바이트의 데이터로 각각 유지할 수 있다. 이 버퍼링은, 예를 들어, 실질적인 변경을 필요로 하지 않고 1 테라바이트의 데이터를 제어하기 위하여 리모트 미러링 유닛(208) 또는 로컬 미러링 유닛 내의 QLogic QLA-1040 어댑터를 사용함으로써 실행될 수 있다. 로컬 서버(200)의 완전한 볼륨 이미지는 그러므로 미러링 유닛 내의 버퍼 상에 저장될 수 있다The described remote mirroring device 208 has a large buffer 212. As a result, the remote mirroring unit 208 can buffer the obtuse volume of the local server 200 or another host 200. In some embodiments the local mirroring unit 204 also includes a large buffer. In one embodiment, for example, the local server 200 volume and large buffers (local and remote) may each hold one terabyte of data in a nonvolatile memory. This buffering can be implemented, for example, by using the QLogic QLA-1040 adapter in the remote mirroring unit 208 or in the local mirroring unit to control one terabyte of data without requiring substantial modification. The complete volume image of the local server 200 can therefore be stored on a buffer in the mirroring unit

부가된 데이터 복구 능력에 대하여, 선택적인 로컬 미러(230)가 생성될 수있다; 이는 일반적으로 일관되고 적용가능하지만 완전히 갱신될 필요는 없는 관점에서 "완전한" 로컬 미러이다. 이 로컬 미라는 다양한 방식으로 수행될 수 있다. 이는, 한정하지는 않고, 실질적으로 지리적으로 로컬 호스트(200)에 가까운 "리모트" 디스크 서브시스템에 데이터를 미러링하기 위하여 멀티 포트된 로컬 미러링 유닛(204)의 제2 포트 또는 제2 로컬 미러링 유닛(204)를 사용하고; 유닛(204)의 디스크 에뮤레이션 층 아래의 로컬 미러링 유닛(204) 내의 데이터를 포킹(forking)하여 SCSI 또는 유사한 버스에 걸쳐 디스크 서브시스템에 부착된 로컬에 전송된 다른 카피를 생성하고; 로컬 미러(230)를 생성하고 관리하기 위하여 로컬 미러링 유닛9204)을 갖는 다른 종래의 도구 및 기술을 사용하는 것을 포함한다.For added data recovery capability, an optional local mirror 230 can be created; This is generally a "complete" local mirror in the sense of being consistent and applicable but not necessarily fully updated. This local mummy can be performed in a variety of ways. This is not limiting, but the second port or second local mirroring unit 204 of the multi-ported local mirroring unit 204 for mirroring data to a “remote” disk subsystem that is substantially geographically close to the local host 200. ); Forking data in the local mirroring unit 204 below the disk emulation layer of the unit 204 to generate another locally transferred copy attached to the disk subsystem over a SCSI or similar bus; And using other conventional tools and techniques with local mirroring unit 9304 to create and manage local mirror 230.

미러(230)는 하드웨어 또는 소프트웨어 오류의 경우에 복구를 허용하기 위한 서버(200) 볼륨의 복사본을 포함한다. 그러나, 로컬 미러(230)는 리모트가 아닌 로컬이기 때문에, 자연 재앙, 시민의 불안, 테러범의 공격, 물리적 파괴, 및 다른 기하학적으로 국부화된 위험들에 대한 실질적인 보호를 서버(200)에게 제공하지 않는다. 따라서, 로컬 미러(230)는 심지어 다른 미러링 유닛(204)을 포함하거나 다른 방법으로 본발명을 실시한다고 하더라도, 리모트 미러링과 동일한 정도의 데이터 보호를 제공하지 않는다. 로컬 미러(230)는, 경로(104) 등의 종래의 링크 또는 본 발명에 따른 신규한 링크를 포함할 수도 있는 경로(232)에 의해 미러링 유닛(204)에 접속되어 있다. 비록 로컬 미러(230)가 다른 도면들에 명확하게 도시되어 있지는 않지만, 하나 이상의 로컬 미러들은 다른 도면에 도시된 시스템들 및 본 발명에 따른 다른 시스템들에 역시 이용될 수 있다.Mirror 230 includes a copy of the server 200 volume to allow recovery in the event of a hardware or software failure. However, because the local mirror 230 is local, not remote, it does not provide the server 200 with substantial protection against natural disasters, civil unrest, terrorist attacks, physical destruction, and other geometrically localized risks. Do not. Thus, local mirror 230 does not provide the same degree of data protection as remote mirroring even if it includes other mirroring units 204 or otherwise implements the present invention. The local mirror 230 is connected to the mirroring unit 204 by a path 232 which may include a conventional link such as path 104 or a novel link according to the present invention. Although the local mirror 230 is not clearly shown in the other figures, one or more local mirrors may also be used in the systems shown in the other figures and other systems in accordance with the present invention.

예를 들어, 한가지 접근은 두 서버 사이에서 미러링하는 Nonstop Networks Limited의 기술 또는 다른 기술을 이용하며, 로컬 미러링 유닛은 2차 서버의 단독의 (1차) 디스크 서브시스템으로써 이용된다. 다른 접근은 호스트(200)에 대해 단독의 디스크 서브시스템으로써 로컬 미러링 유닛을 사용함으로써 미러링 유닛 쌍에 내재하는 모든 미러링을 행하는 것이며, 로컬 미러(230)는 1차 디스크가 되고, 리모트 미러는 유일한 본래의 미러로써 기능한다. 이 다른 접근은 확실성이 낮은 구성이지만, 낮은 비용으로 높은 성능을 제공할 수 있다.For example, one approach utilizes Nonstop Networks Limited's or other technique of mirroring between two servers, and the local mirroring unit is used as the sole (primary) disk subsystem of the secondary server. Another approach is to do all the mirroring inherent in the pair of mirroring units by using the local mirroring unit as the sole disk subsystem to the host 200, with the local mirror 230 becoming the primary disk and the remote mirror being the only original. Functions as a mirror of This other approach is a less reliable configuration, but can provide high performance at low cost.

도 3은 로컬 서버(200)가 로컬 링크(202)를 통해 로컬 미러링 유닛(204)과 통신하는 시스템을 도시한다. 로컬 미러링 유닛(204)은 저니 링크(206)를 통해 리모트 미러링 유닛(308)과 통신한다. 전체적인 로컬 서버(200) 볼륨으로부터 데이터를 보유할 수 있는 큰 비휘발성 버퍼(212)를 갖는 리모트 미러링 유닛(208)과는 다르게, 리모트 미러링 유닛(308)은 예를 들어 4 기가바이트의 적은 기가바이트를 보유하는 버퍼(310)와 같은 상대적으로 작은 비휘발성 버퍼(310)만을 갖는다.3 shows a system in which a local server 200 communicates with a local mirroring unit 204 over a local link 202. The local mirroring unit 204 communicates with the remote mirroring unit 308 via the journey link 206. Unlike the remote mirroring unit 208, which has a large nonvolatile buffer 212 that can hold data from the entire local server 200 volume, the remote mirroring unit 308 is for example 4 gigabytes less gigabytes. It has only a relatively small non-volatile buffer 310, such as buffer 310 that holds.

그러나, 도 3에 따른 시스템은 연관되는 비휘발성 내부 또는 외부 기억장치를 갖는 리모트 서버(300)를 포함한다. 이것을 도시하기 위하여, 도 3은 일부 시점에 리모트 서버(300)에 의해 제어될 수 있는 RAID 유닛(312)을 도시한다. RAID 유닛(312)은 "핫 스와핑 가능(hot-swappable)"하며, 이것은 컴퓨터(300)가 구동되고 있는 도중에 RAID 유닛(312)에서 고장난 드라이브를 가져가 교체한다는 것을 의미하며, 그 다음에 교체 드라이브의 파일 시스템 구조와 다른 데이터들은 자동적으로 구축될 것이다. RAID 유닛(312)은 어떤 경우에는 서버(300)의 일부분으로써 보아질 수도 있으며, 도 3에서 RAID 유닛(312)으로부터 서버(300)로 화살표로 표시되어진것 처럼, 서버(300) 상에서 전용 미러링 소프트웨어를 포함하는 수단과 같은 종래의 수단에 의해 접속될 수도 있다.However, the system according to FIG. 3 includes a remote server 300 with associated nonvolatile internal or external storage. To illustrate this, FIG. 3 shows a RAID unit 312 that can be controlled by the remote server 300 at some point in time. RAID unit 312 is "hot-swappable", which means that a failed drive is taken from the RAID unit 312 and replaced while the computer 300 is running, and then the replacement drive File system structure and other data will be built automatically. The RAID unit 312 may in some cases be viewed as part of the server 300 and dedicated mirroring software on the server 300, as indicated by arrows from the RAID unit 312 to the server 300 in FIG. 3. It may be connected by conventional means, such as means comprising.

그러나, RAID 유닛(312)은 구성(1400)에서 듀얼 호스트 접속에 의해 리모트 미러링 유닛(308) 및 서버(300)에 접속될 수도 있으며, 이것에 대해서는 이하에서 더욱 상세히 설명될 것이고 도 14에 도시되어 있다. 듀얼 호스트 접속은 제1 "일반적인 미러링(normal mirroring)" 상태로부터의 전환이 수동의 리모트 서버(300), 오직 미러링에만 이용되는 리모트 RAID 유닛(312) 또는 다른 리모트 디스크 서브시스템, 판독 요청을 서비스하는데 능동적으로 이용되는 리모트 미러 및/또는 로컬 호스트(200) 디스크가, 리모트 RAID 유닛(312) 또는 다른 리모트 디스크 서브시스템의 미러링된 데이터로부터 판독 요청을 서비스하는 능동 리모트 서버(200)를 갖는 제2 "복구" 상태로 되게 한다.However, RAID unit 312 may be connected to remote mirroring unit 308 and server 300 by dual host connectivity in configuration 1400, which will be described in more detail below and shown in FIG. 14. have. The dual host connection may be used to service read requests from the first " normal mirroring " state where the switch from the passive remote server 300, the remote RAID unit 312 or other remote disk subsystem, is used only for mirroring. A second " " " " " second active " server having an active remote server 200 that serves a read request from the mirrored data of the remote RAID unit 312 or other remote disk subsystem. "Recovery" state.

제1 (일반적 미러링) 상태에 있어서, 리모트 미러링 유닛(308)은 예를 들어 이더넷(Ethernet) 및/또는 TCP/IP 접속(206)을 이용하여 로컬 미러링 유닛(204)으로부터 데이터를 수신한다. 도 2와 관련하여 언급되어 있는 바와 같이, 로컬 링크(202)는 SCSI 버스, USB, 파이버 채널, 또는 유사한 접속일 수 있다. 리모트 미러링 유닛(308)은 즉각적으로 백업가능한 RAID 유닛(312)의 이후의 기억 용량을 위해 리모트 링크(302)와 리모트 미러링 유닛(308)을 통하여 데이터를 리모트 서버(300)에 전송하거나, 혹은 듀얼 호스트 접속(1400)을 이용하고 있다면 리모트 미러링 유닛(308)으로부터 RAID 유닛(312)으로 직접 전송한다. 리모트 링크(302)는 SCSI 버스 접속일 수 있으므로, 예를 들어 리모트 미러링 유닛(308)이 리모트 서버(300)에 나타나서, 예를 들어, 리모트 서버(300)에 의해 다른 "디스크", RAID 유닛(312)으로 미러링되는 SCSI 디스크가 된다. 또한, 리모트 링크(302)는 시리얼(serial), 이더넷, FDDI, USB, 파이버 채널, 또는 다른 범용성의 접속일 수 있다.In the first (general mirroring) state, the remote mirroring unit 308 receives data from the local mirroring unit 204 using, for example, Ethernet and / or TCP / IP connection 206. As mentioned in connection with FIG. 2, local link 202 may be a SCSI bus, USB, Fiber Channel, or similar connection. The remote mirroring unit 308 transfers data to the remote server 300 via the remote link 302 and the remote mirroring unit 308, or dual for the subsequent storage capacity of the RAID unit 312 that can be immediately backed up. If a host connection 1400 is being used, the transfer is directly from the remote mirroring unit 308 to the RAID unit 312. Since the remote link 302 may be a SCSI bus connection, for example, a remote mirroring unit 308 may appear on the remote server 300, for example, another "disk", RAID unit 312 by the remote server 300. SCSI disks are mirrored. Remote link 302 may also be a serial, Ethernet, FDDI, USB, Fiber Channel, or other general purpose connection.

로컬 미러링 유닛(204)은 리모트 미러링 유닛의 작은 버퍼(310)와 유사하거나 동일한(그안에 저장된 특정 데이터에 대해서만 제외하면) 비휘발성 버퍼를 갖는다. 로컬 서버(200)로부터의 데이터는 로컬 미러링 유닛(204) 버퍼로 사전 통지된다. 1차 서버(200)에 관한한, 제2 "미러링" 기입은 국부적으로 발생해왔다. 실제로, 로컬 미러링 유닛(204)은 저니 링크(206)를 통해 데이터를 리모트 미러링 유닛(308)으로 안전하게 전송할 수 있을 때까지, 이 섹터와 트랙에 변경 데이터(또는 유사한 블럭 레벨 데이터)를 저장한다. 로컬 미러링 유닛(204)의 스마트 버퍼는 저니 링크(206)가 국부적으로 취급할 수 있는 상술한 임의의 데이터를 저장한다. 이러한 데이터는 리모트 미러링 유닛(308)이 리모트 서버(300)에 성공적으로 기입하고 그 확인을 로컬 미러링 유닛(204)에 회송할 때까지 로컬 미러링 유닛(204)에 저장된다. 이 확인을 수신하면, 로컬 미러링 유닛(204)은 성공적으로 전송된 로컬 비휘발성 버퍼로부터의 섹터/트랙/블럭 데이터를 소거한다. 종래의 시스템과는 다르게, 어떠한 서버(200, 300)도, 표준 파일 시스템과 운영 시스템 소프트웨어와는 반대로, NLM 또는 데이터 미러링을 위해 특정적으로 설계된 다른 소프트웨어를 필수적으로 필요로 하지 않는다.The local mirroring unit 204 has a nonvolatile buffer that is similar to or identical to the small buffer 310 of the remote mirroring unit (except for specific data stored therein). Data from the local server 200 is notified in advance to the local mirroring unit 204 buffer. As far as the primary server 200 is concerned, the second "mirror" write has occurred locally. Indeed, the local mirroring unit 204 stores change data (or similar block level data) in these sectors and tracks until it can securely transmit data to the remote mirroring unit 308 via the Journey Link 206. The smart buffer of the local mirroring unit 204 stores any of the data described above that the Journey link 206 can handle locally. This data is stored in the local mirroring unit 204 until the remote mirroring unit 308 successfully writes to the remote server 300 and sends its confirmation to the local mirroring unit 204. Upon receiving this confirmation, local mirroring unit 204 erases the sector / track / block data from the successfully transmitted local nonvolatile buffer. Unlike conventional systems, no server 200, 300 necessarily requires NLM or other software specifically designed for data mirroring, as opposed to standard file system and operating system software.

도 4는 도면에서 동일한 식별번호를 사용하여 표시되어진 바와 같이, 위에서 논의된 몇개의 구성요소를 갖는 시스템을 도시한다. 그러나, 도 4의 시스템에서, 리모트 미러링 유닛(408)은 작은 비휘발성 버퍼(310)와 큰 비휘발성 버퍼 모두를 포함하며, 큰 버퍼는 리모트 미러링 유닛(408)에 직접 접속되는 즉각적으로 백업가능한 RAID 유닛(312)으로써 구현된다. 작은 버퍼(310)는 저니 링크(206)를 통해 수신된 버퍼 데이터에 이용되어, 데이터가 로컬 미러링 유닛(204)으로 응답확인하게 하고, 데이터가 리모트 미러링 유닛(408)에 의해 큰 버퍼(312)에 저장될 때까지 데이터를 버퍼링한다. 리모트 서버는 필요없다.4 shows a system with several components discussed above, as indicated using the same identification numbers in the figures. However, in the system of FIG. 4, the remote mirroring unit 408 includes both a small nonvolatile buffer 310 and a large nonvolatile buffer, the large buffer being immediately backable RAID directly connected to the remote mirroring unit 408. Implemented as unit 312. The small buffer 310 is used for buffer data received via the Journey link 206, causing the data to acknowledge to the local mirroring unit 204, and the data being sent to the large buffer 312 by the remote mirroring unit 408. Buffer the data until it is stored in. You do not need a remote server.

도 5는 2개 이상의 로컬 서버(200)가 리모트 미러링 유닛(508)에 기입하는 시스템을 도시한다. 이 도면 및 다른 도면들에서, 일반적으로 서버들이 아닌 호스트들(200)을 포함하기 위해 로컬 서버(200)에 대해 참조해야만 한다. 즉, 본 발명은 미러링 유닛(204)에 접속할 임의의 호스트 컴퓨터 시스템(200)을 미러링하는데 이용될 수 있다. 서버들은 널리 인정된 적합한 호스트들(200)의 예이지만 다른 적합한 호스트들(200)은 클러스터, 서버가 아닌 컴퓨터, 메인 프레임, 및 Storage Access Network("SAN") 또는 Networked Attached Storage("NAS") 데이터 소스들이다. 로컬 서버(200) 또는 다른 호스트들(200)은 다양한 거리만큼 예를 들어 10 마일 이하, 적어도 10마일, 또는 적어도 1백마일 정도로 서로 물리적으로 떨어져 있을 수 있다. 이 도면에 대한 해당 시스템에 있어서, 특정 시스템의 각 로컬 서버(200)는 동일한 운영 시스템 및 파일 시스템 플랫폼을 이용하지만, 도 5에 따른 다른 시스템들은 다른 플랫폼을 이용할 수도 있다. 예를 들어, 각 서버(200)는그러한 일 시스템의 Novell NetWare 서버일 수 있으며, 각 서버(200)는 그러한 다른 시스템에서 NT File System("NTFS")을 이용하는 Microsoft Windows NT 서버일 수 있다.5 illustrates a system in which two or more local servers 200 write to the remote mirroring unit 508. In this and other figures, reference should generally be made to the local server 200 to include hosts 200 rather than servers. That is, the present invention can be used to mirror any host computer system 200 that will connect to the mirroring unit 204. Servers are well-known examples of suitable hosts 200, while other suitable hosts 200 are clusters, non-server computers, mainframes, and Storage Access Network ("SAN") or Networked Attached Storage ("NAS"). Data sources. The local server 200 or other hosts 200 may be physically separated from each other by various distances, such as 10 miles or less, at least 10 miles, or at least 100 miles. In the corresponding system for this figure, each local server 200 of a particular system uses the same operating system and file system platform, although other systems according to FIG. 5 may use different platforms. For example, each server 200 may be a Novell NetWare server on one such system, and each server 200 may be a Microsoft Windows NT server using the NT File System (“NTFS”) on such another system.

시스템의 각 호스트(200)는 SCSI, 파이버 채널, USB, 시리얼 라인 또는 다른 표준 기억장치 서브시스템 또는 다른 주변 접속(202)에 의해 그 자신의 로컬 미러링 유닛(204)에 접속된다. 로컬 미러링 유닛(204)은 저니 링크(206)에 의해 단일 리모트 미러링 유닛(508)에 접속된다. 리모트 미러링 유닛(508)은 각각의 로컬 미러링 유닛(204)에 대해 SCSI, 파이버 채널, USB 또는 유사한 제어기 카드를 가진다.Each host 200 of the system is connected to its own local mirroring unit 204 by SCSI, Fiber Channel, USB, serial line or other standard storage subsystem or other peripheral connection 202. The local mirroring unit 204 is connected to the single remote mirroring unit 508 by the journey link 206. Remote mirroring unit 508 has a SCSI, Fiber Channel, USB or similar controller card for each local mirroring unit 204.

각 리모트 미러링 유닛(204)으로부터의 데이터는 SCSI, 파이버 채널, USB, 또는 리모트 미러링 유닛(508) 내의 유사한 접속에 의해 RAID 유닛들 그룹(512)의 개별적인 즉각적으로 백업가능한 RAID 기억장치 유닛(312)에 직접적으로(즉, 리모트 서버를 통하지 않고) 전송될 수 있다. RAID 유닛(312)은 리모트 미러링 유닛(508)의 적어도 일부분, 예를 들어 저니 링크(206)에 접속하기 위한 이더넷을 포함하는 부분 등에 물리적으로 외부에 있을 수 있다. 그러나, 리모트 미러링 유닛(508)은 패키지성 보다는 기능성에 의해 정의된다. 특히, RAID 유닛(312)은 다르게 표시되지 않으면(예를 들어, 도 14에서 논의됨) 리모트 미러링 유닛의 부분으로써 고려된다. 각 RAID 기억 유닛(312)은 리모트 부팅가능한 볼륨을 가지며, 섹터/트랙 또는 블럭 방식으로 데이터를 기입한다. 또한, 도시된 리모트 미러링 유닛(508)은 작은 버퍼를 포함하여 저니 링크(206)를 통해 수신된 데이터의 응답 및버퍼링을 가능하게 한다.Data from each remote mirroring unit 204 can be individually instantaneously backed up in a RAID storage unit 312 of a group of RAID units 512 by SCSI, Fiber Channel, USB, or similar connections within the remote mirroring unit 508. Can be sent directly (ie, not via a remote server). The RAID unit 312 may be physically external to at least a portion of the remote mirroring unit 508, such as a portion that includes Ethernet for connecting to the Journey Link 206. However, the remote mirroring unit 508 is defined by functionality rather than packageability. In particular, the RAID unit 312 is considered part of the remote mirroring unit unless otherwise indicated (eg, discussed in FIG. 14). Each RAID storage unit 312 has a remote bootable volume and writes data in a sector / track or block manner. In addition, the illustrated remote mirroring unit 508 includes a small buffer to enable response and buffering of data received via the Journey Link 206.

도 6은 도 5에 도시된 것과 유사한 시스템을 도시하지만 리모트 미러링 유닛(608)은 그 볼륨 그룹(616)에 외부적으로 부팅가능한 기억 볼륨(614)을 기입한다. 동일한 플랫폼 상에서 구동하는 로컬 서버(200)는, 실제적으로 로컬 미러링 유닛(204)인 "디스크들"에 기입하며, 차례로 데이터를 리모트 미러링 유닛(608)에 기입한다. 리모트 미러링 유닛(608)은 각 로컬 미러링 유닛(204)에 대응하는 SCSI, 파이버 채널, USB 또는 유사한 제어기 카드 및 부팅가능한 기억 볼륨(614)을 갖는다. 각 로컬 미러링 유닛(204)로부터의 데이터는 SCSI 버스 또는 다른 데이터 라인을 이용하여 리모트 미러링 유닛(608)으로부터 대응하는 기억 볼륨(614)으로 직접 전송될 것이다. 각 볼륨(614)은 리모트 부팅가능한 볼륨이며, 섹터/트랙 또는 블럭 방식으로 데이터를 기입한다.FIG. 6 shows a system similar to that shown in FIG. 5, but the remote mirroring unit 608 writes an externally bootable storage volume 614 to its volume group 616. The local server 200 running on the same platform actually writes to the "disks" which are the local mirroring unit 204, and in turn writes data to the remote mirroring unit 608. The remote mirroring unit 608 has a SCSI, Fiber Channel, USB or similar controller card and bootable storage volume 614 corresponding to each local mirroring unit 204. Data from each local mirroring unit 204 will be transferred directly from the remote mirroring unit 608 to the corresponding storage volume 614 using a SCSI bus or other data line. Each volume 614 is a remote bootable volume and writes data in a sector / track or block manner.

일반적으로 도 6에 따른 시스템의 대체예 또는 마찬가지로 다른 시스템에 있어서, 각 로컬 서버(200)의 미러링된 데이터를 보유하기 위해 미러링된 데이터를 대응하는 별도의 디스크(614)(예를 들어, 도 6에서 처럼) 또는 별도의 RAID 유닛(312)(예를 들어 도 5에서 처럼)에 보유하는 것 대신에, 별도의 분할이 이용될 수 있다. 다양한 다-대-일(many-to-one) 시스템에서, 새로운 접속을 행하는 것처럼 그 자신을 분기하고, IPC 또는 다른 메카니즘을 이용하여 다중 미러 시도들로부터 볼륨 미러를 고정시키는 프로세스를 시작할 필요가 있다.In general, in an alternative to the system according to FIG. 6, or in another system as well, a separate disk 614 (eg, FIG. 6) corresponding to the mirrored data to hold the mirrored data of each local server 200. Instead of retaining in a separate RAID unit 312 (as in FIG. 5, for example) or a separate partition may be used. In various many-to-one systems, it is necessary to branch itself as if making a new connection and start the process of fixing the volume mirror from multiple mirror attempts using IPC or other mechanism. .

도 7은 리모트 미러링 유닛(708)이 개별적인 외부 기억 볼륨(614) 및 RAID 유닛(312) 모두를 포함하는 시스템을 도시한다. 미러링된 데이터는 리모트 미러링유닛(708)에 의해 기억 서브시스템(312, 614) 양측에 저장되어, 필요할 때 데이터가 이용가능하다는 추가의 확신을 제공한다.7 illustrates a system in which the remote mirroring unit 708 includes both individual external storage volumes 614 and RAID units 312. The mirrored data is stored on both sides of the storage subsystems 312 and 614 by the remote mirroring unit 708, providing additional assurance that the data is available when needed.

도 7은 2개 이상의 로컬 미러링 유닛(204)이 하나의 리모트 미러링 유닛(708)에 기입하는 시스템을 도시하며, 이 때 도 5 및 6에 각각 도시된 바와 같이 수개의 리모트 기억 유닛(312 또는 614) 중에서 미러링된 데이터를 분할하는 것 대신에, 수개의 로컬 서버들(200)에 대한 모든 미러링된 데이터는 리모트 미러링 유닛(708) 상에 직접 탑재되는 하나의 큰 기억 볼륨(다양한 실시예에서 312 또는 614 또는 둘다)으로 된다. 리모트 미러링 유닛(708)에 의해 사용되는 볼륨은 각 로컬 미러링 유닛(204) 마다 분할을 갖는다. 각 분할은 리모트 부팅가능한 "볼륨"을 제공하며, 평소대로 섹터/트랙 또는 블럭 방식으로 데이터를 기입한다.FIG. 7 illustrates a system in which two or more local mirroring units 204 write to one remote mirroring unit 708, with several remote storage units 312 or 614 as shown in FIGS. 5 and 6, respectively. Instead of dividing the mirrored data among all the mirrored data, all the mirrored data for several local servers 200 are mounted on one large storage volume (312 or in various embodiments) directly mounted on the remote mirroring unit 708. 614 or both). The volume used by the remote mirroring unit 708 has a split for each local mirroring unit 204. Each partition provides a remote bootable "volume" and writes data in sector / track or block fashion as usual.

도 7에 예시된 대체 시스템에 있어서, 미러링된 데이터는 리모트 미러링 유닛(708)에 직접 접속되어 있는 2개 이상의 기억 유닛 사이에서 분할되며, 소정의 기억 유닛은 소정의 로컬 미러링 유닛(204)에 대해 미러링된 데이터를 보유한다. 그러나, RAID 유닛만을 사용하거나(도 5) 외부 디스크만을 사용하는(도 6) 시스템들과는 다르게, 외부 디스크(614)와 RAID 유닛(312)의 혼합이 이용된다. 예를 들어, 외부 디스크(614)는 제1 로컬 미러링 유닛(204)으로부터의 데이터를 보유하며, RAID 유닛(312)은 제2 로컬 미러링 유닛(204)으로부터의 데이터를 보유한다. 그러한 시스템에서, 리모트 미러링 유닛(708)은 SCSI, 파이버 채널, USB, 또는 각 로컬 미러링 유닛(204)에 대응하는 유사한 제어기 카드를 가지며, 각 로컬 미러링 유닛(204)으로부터의 데이터는 개별적으로 외부의 즉각적으로 백업가능한 RAID 유닛(312) 또는 외부 부팅가능한 드라이브(614)에 SCSI, 파이버 채널, USB, 또는 유사한 통신 라인을 통해 직접(서버(300)와 같은 서버 없이) 전송될 것이다.In the alternative system illustrated in FIG. 7, the mirrored data is divided between two or more storage units that are directly connected to the remote mirroring unit 708, where a given storage unit is for a given local mirroring unit 204. Holds mirrored data. However, unlike systems that use only RAID units (FIG. 5) or only external disks (FIG. 6), a mix of external disks 614 and RAID units 312 is used. For example, external disk 614 holds data from first local mirroring unit 204, and RAID unit 312 holds data from second local mirroring unit 204. In such a system, the remote mirroring unit 708 has a SCSI, Fiber Channel, USB, or similar controller card corresponding to each local mirroring unit 204, with data from each local mirroring unit 204 being individually external. It will be sent directly (without a server, such as server 300) directly to SCSI, Fiber Channel, USB, or similar communication lines to RAID unit 312 or external bootable drive 614 that can be immediately backed up.

도 8은 도 5와 관련되어 논의되는 것과 같은 시스템을 도시한다. 그러나, 도 8의 시스템에서, 몇개의 번호들(822, 824, 826)을 표시한 것과 같이 로컬 서버들(200)은 다양한 플랫폼에 의존한다. 물론, 이 도면 또는 다른 도면들에 따른 시스템은 정확히 3개의 로컬 서버들(200) 및 대응하는 로컬 미러링 유닛(204)을 가지며, 이들은 단지 각 쌍이 서버(200) 및 대응하는 로컬 미러링 유닛(204)으로 되어 있는 2개 이상의 쌍을 갖는다. 예를 들어, 도 8에 따른 일 시스템은 Novell NetWare 서버(822) 및 Microsoft Windows NT 서버(824)를 포함하며, 도 8에 따른 다른 시스템은 2개의 Novell NetWare 서버들(822, 826) 및 Microsoft Windows NT 서버(824)를 포함한다.FIG. 8 illustrates a system as discussed in connection with FIG. 5. However, in the system of FIG. 8, local servers 200 depend on various platforms, as indicated by some numbers 822, 824, 826. Of course, the system according to this or other figures has exactly three local servers 200 and corresponding local mirroring units 204, which are each paired with only the server 200 and corresponding local mirroring units 204. It has two or more pairs. For example, one system according to FIG. 8 includes a Novell NetWare server 822 and a Microsoft Windows NT server 824, while another system according to FIG. 8 includes two Novell NetWare servers 822 and 826 and a Microsoft Windows. NT server 824 is included.

도 9는 도 5 및 도 8과 관련되어 논의된 것과 같은 시스템을 도시한다. 그러나, 도 5와는 달리, 로컬 서버들(200)은 다양한 플랫폼에 의존하며, 도 8과는 달리 리모트 미러링 유닛은 RAID 유닛들(312)의 그룹(512) 대신에 외부 디스크들(614)의 그룹(616)을 이용하는 유닛(608)이다.9 illustrates a system such as discussed in connection with FIGS. 5 and 8. However, unlike FIG. 5, local servers 200 depend on various platforms, and unlike FIG. 8, a remote mirroring unit is a group of external disks 614 instead of a group 512 of RAID units 312. Unit 608 using 616.

도 10은 도 7과 관련되어 논의된것과 같은 시스템을 도시한다. 그러나, 도 10에 따른 시스템에서의 로컬 서버들(200)은 다양한 플랫폼에 의존한다. 도 7에서와 같이, 로컬 미러링 유닛(204)은 일부 시스템에서 분할부 또는 기억 유닛에 매핑될 수 있다. 분할부에 매핑될 때, 로컬 미러링 유닛(204)은 RAID 유닛(312) 내의 분할부, 외부 드라이브(614) 내의 분할부, 또는 외부 드라이브(614)로 미러링될,RAID 유닛(312) 내의 분할부에 매핑될 수 있다. 로컬 미러링 유닛(204)을 기억 유닛에 매핑할 때, 하나 이상의 로컬 미러링 유닛(204)은 그들의 데이터를 리모트 미러링 유닛(708)을 통해 대응하는 외부 드라이브(들)(614)로 전송하는 한편, 하나 이상의 로컬 미러링 유닛(204)은 그들의 데이터를 리모트 미러링 유닛(708)을 통해 대응하는 RAID 유닛(들)(312)로 전송한다.FIG. 10 shows a system as discussed in connection with FIG. 7. However, local servers 200 in the system according to FIG. 10 depend on various platforms. As in FIG. 7, the local mirroring unit 204 may be mapped to a partition or storage unit in some systems. When mapped to a partition, the local mirroring unit 204 may be partitioned within the RAID unit 312, partitioned within the external drive 614, or partitioned within the RAID unit 312 to be mirrored to the external drive 614. Can be mapped to. When mapping the local mirroring unit 204 to a storage unit, one or more local mirroring units 204 transfer their data through the remote mirroring unit 708 to the corresponding external drive (s) 614, while one The above local mirroring unit 204 transfers their data through the remote mirroring unit 708 to the corresponding RAID unit (s) 312.

도 11은 하나 이상의 원경 위치로 데이터를 미러링하는 시스템을 도시한다. 도 5-도 10이 "다-대-일" 미러링 시스템(하나 이상의 로컬 서버가 하나의 리모트 목적지로 미러링됨)을 도시하는 반면 도 11은 "일-대-다(one-to-many)" 미러링 시스템(하나의 로컬 서버가 하나 이상의 리모트 목적지로 미러링됨)을 도시한다는 의미에서, 이러한 시스템들은 도 5-도 10에 도시된 시스템들의 대응물이다. 일반적으로, 로컬 미러링 유닛들(204)은 모두 동일한 데이터를 미러링할 것이지만, 다양한 로컬 미러링 유닛(204)을 이용하는 것은 적어도 하나의 저니 링크(206)를 가로지르는 미러링이 소정의 로컬 미러링 유닛(204)을 이용가능하지 않음에도 불구하고 계속해서 방해하지 않게 한다. 로컬 링크(202)는 모두 동일한 타입의 접속을 이용할 수 있고 또는 다른 접속들을 사용할 수도 있다. 예를 들어 하나의 로컬 링크(202)는 SCSI 접속일 수 있는 한편, 다른 로컬 링크(202)는 USB 접속일 수 있다. 저니 링크(206)는 균일하거나 또는 변화할 수 있다. 유사하게, 리모트 미러링 유닛은 각각 동일한 구성요소를 가질 수 있거나(예를 들어, 각각 RAID 유닛(312)을 이용할 수 있음), 다른 위치에서 다른 구성요소들을 이용할 수 있다.11 illustrates a system for mirroring data to one or more remote locations. Figures 5-10 show a "many-to-one" mirroring system (one or more local servers are mirrored to one remote destination) while Figure 11 shows a "one-to-many". In the sense of showing a mirroring system (one local server is mirrored to one or more remote destinations), these systems are the counterparts of the systems shown in FIGS. In general, the local mirroring units 204 will all mirror the same data, but using various local mirroring units 204 means that the mirroring across at least one Journey link 206 may be defined by the local mirroring unit 204. Do not continue to disturb even though is not available. The local link 202 may all use the same type of connection or may use other connections. For example, one local link 202 may be a SCSI connection while the other local link 202 may be a USB connection. Journey link 206 may be uniform or variable. Similarly, the remote mirroring units may each have the same components (eg, each may use a RAID unit 312) or may use other components at different locations.

도 12는 데이터가 2개 이상의 원격지에서 다시 미러링된다는 점에서 도 11에의해 도시된 것과 닮은 시스템을 도시한다. 그러나, 도 12의 로컬 미러링 유닛(204)은 다중 포트 미러링 유닛이다. 즉, 종래의 다중 포트 서버의 동지 접속과 유사한 방식으로 하나 이상의 저니 링크(206)에 동시에 접속할 수 있다. 다중 포트 미러링 유닛(204)은 미러 데이터를 호스트(200)로부터 각각의 접속(206)을 통해 전송함으로써, 호스트(200)가, 서로 수마일 떨어져 있을 수 있는 수개의 원격지로 미러링하는 것을 돕는다. 다중 포트 로컬 미러링 유닛(204)은 오직 하나의 로컬 버퍼를 필요로 하고, 다른 시스템의 미러링 유닛들(204)처럼 완전 로컬 미러(230)를 선택적으로 포함한다.FIG. 12 illustrates a system similar to that shown by FIG. 11 in that data is mirrored again at two or more remote locations. However, the local mirroring unit 204 of FIG. 12 is a multiport mirroring unit. In other words, one or more Journey Links 206 can be simultaneously connected in a manner similar to the conventional connections of a multi-port server. The multi-port mirroring unit 204 transfers mirror data from the host 200 over each connection 206, thereby helping the host 200 to mirror to several remotes that may be miles apart from each other. The multi-port local mirroring unit 204 requires only one local buffer and optionally includes a full local mirror 230 like the mirroring units 204 of other systems.

미러링 유닛에 대한 추가사항Additional Notes on Mirroring Units

미러링 유닛의 구성 요소 및 동작에 대해 위에서 도 2 내지 도 12를 통해 설명되었다. 이하에서 제공되는 소정의 추가 정보는 본 발명에 따른 모든 시스템의 모든 미러링 유닛에 필수적으로 관련되지는 않지만, 그럼에도 불구하고 이 추가의 정보는 미러링 유닛들이 데이터를 정확하게 미러링하는 것을 보증해야 할 책임이 있는 기업들과 사람들에게 좀더 많은 유연성을 허용하는 방법을 이해하 수 있다는 점에서 도움이 된다.The components and operation of the mirroring unit have been described with reference to FIGS. 2 to 12 above. Certain additional information provided below is not necessarily related to every mirroring unit of every system according to the invention, but nevertheless this additional information is responsible for ensuring that the mirroring units accurately mirror the data. It is helpful to understand how to allow more flexibility for companies and people.

적어도 일부의 미러링 유닛들은 Novell NetWare 및/또는 Microsoft Windows NT 플랫폼에서 구동되는 SCSI, 파이버 채널, USB, 또는 표준 서버 드라이버들을 통한 유사한 접속에 의해 접속된 디스크 드라이브들을 신뢰성있게 에뮬레이트할 수 있다. 다른 운영 시스템에서의 SCSI, 파이버 채널, USB, 또는 유사한 에뮬레이션 또한 제공될 수 있다.At least some mirroring units can reliably emulate connected disk drives by similar connections via SCSI, Fiber Channel, USB, or standard server drivers running on Novell NetWare and / or Microsoft Windows NT platforms. SCSI, Fiber Channel, USB, or similar emulation in other operating systems may also be provided.

로컬 및 리모트 미러링 유닛들 각각은 바람직하게는 모니터, 키보드, 및 여기에 플러그된 마우스를 통해 I/O를 지원하도록 구성된다. 일부 미러링 유닛들은 네트워크 어드레스를 가지지만, 그렇지 않은 것들은 네트워크 관리자가 리모트 스테이션(116) 상의 웹 브라우저 또는 다른 수단을 통해, 적응된 네트워크(100) 상의 특정 미러링 유닛을 액세스할 수 있게 한다.Each of the local and remote mirroring units is preferably configured to support I / O via a monitor, a keyboard, and a mouse plugged into it. Some mirroring units have a network address, but others do not allow a network administrator to access a particular mirroring unit on the adapted network 100 via a web browser or other means on the remote station 116.

미러링 유닛은 바람직하게는 성능좋은 Simple Network Management Protocol("SNMP")이다. 네트워크 관리자는 로컬 및 리모트 미러링 양측에 대한 리모트 액세스를 갖는다. 미러링 유닛(204) 소프트웨어는 유틸리티들을 모니터링하는 인터페이스를 제공한다. 특히, 각 로컬 미러링 유닛(204)은 그 유닛(204)이 로컬 서버에 대한 기입/판독의 수, 각 로컬 서버(200)의 상태, 각 로컬 서버(200)의 재시작/웜 개시의 수 등을 트래킹한다는 점에서 네트워크 중개인처럼 작용하고, 필요할 때는 SNMP 트랩을 생성한다. 로컬 미러링 유닛(204)에 의해 다음의 데이터, 즉 현재 버퍼(210)의 블럭들의 수, 버퍼(210)를 채우거나 및/또는 버퍼가 일부 특정 임계치를 넘어갈 때의 경보, 서버(200)가 시동걸링 이후에 전송되어진 블럭의 수, 및 서버가 시동걸린 이후에 수신되어진 블럭의 수를 관리자에 제공할 수 있다.The mirroring unit is preferably a good Simple Network Management Protocol ("SNMP"). The network administrator has remote access to both local and remote mirroring. The mirroring unit 204 software provides an interface for monitoring the utilities. In particular, each local mirroring unit 204 may be configured to determine the number of writes / reads to the local server, the state of each local server 200, the number of restarts / warm starts of each local server 200, and the like. It acts like a network broker in terms of tracking and generates SNMP traps when needed. By the local mirroring unit 204 the next data, ie the number of blocks of the current buffer 210, an alarm when the buffer 210 fills and / or when the buffer crosses some specific threshold, the server 200 starts up The number of blocks transmitted after the galling and the number of blocks received since the server is started can be provided to the manager.

또한, 일부 로컬 미러링 유닛(204)은 증분하는 다이얼-업(dial-up) 옵션을 갖는다, 고객이 다이얼-업 접속을 갖는 미러링 유닛(204)을 사용하고, 전혀 접속하기를 원하지 않으면, 유닛(204)은 특정 시간에 저니 링크(206)를 통해 데이터를 전송하기 위한 옵션을 제공한다. 또한, 로컬 미러링 유닛(204)은 적응된 네트워크(100) 또는 저니 링크(206)의 다른 부분에서 높은 트래픽의 기간 동안에는데이터를 전송하지 않을 수 있게 하는 설정을 가질 수 있다. 로컬 미러링 유닛(204)의 버퍼(210)는 이 비전송 주기 동안에 로컬 서버(200)로부터 수신된 데이터를 버퍼링항 만큼 충분한 크기이어야 한다.In addition, some local mirroring units 204 have an incremental dial-up option. If a customer uses the mirroring unit 204 with a dial-up connection and does not want to connect at all, the unit ( 204 provides an option for transmitting data over the jonny link 206 at a particular time. In addition, the local mirroring unit 204 may have a setting to disable transmission of data during periods of high traffic in the adapted network 100 or other portions of the journey link 206. The buffer 210 of the local mirroring unit 204 should be large enough to buffer the data received from the local server 200 during this non-transmission period.

더욱 일반적으로, 로컬 미러링 유닛(204)은 데이터 전송 속도, 신뢰성, 서버(200) 상의 기존의 플랫폼과의 호환성의 면에서, 바람직하게는 높은 속도의 RAID 디스크 서브 시스템의 성능에 일치한다. 주로 소프트웨어에서의 구현이 이러한 성능 목표를 만족시킬 가능성이 없기 때문에, 로컬 미러링 유닛(204)은 바람직하게는 특수 목적의 하드웨어를 포함한다. 임의의 필요한 펌웨어를 포함하는 적합한 하드웨어와 소프트웨어의 설계 및 구성은, 종래의 미러링 경로(104); 여기에서 식별되는 SCSI 제어기들, 또는 유사한 제어기들, 파이버 채널, USB, 또는 다른 제어기들; 버퍼들(210, 212, 310), 디스크(614), 및 RAID 유닛(312) 등의 개별적인 공지의 서브시스템, 및 그들의 인터페이스; FreeBSD 드라이버들 등의 소프트웨어; 이더넷 및 다른 개별적인 공지의 Network Interface Card("NIC")들; 이더넷 및 TCP/IP 프로토콜 등의 네트워크 프로토콜들; 본 명세서에서 제공되는 설명 및 예시들; 및 당업자들에게 현재 또는 이후에 이용가능한 다른 툴 및 기술들에 특별한 관심을 가지면, 당업자들에 의해 달성될 수 있다.More generally, the local mirroring unit 204 matches the performance of the high speed RAID disk subsystem, preferably in terms of data transfer rate, reliability, and compatibility with existing platforms on the server 200. Local mirroring unit 204 preferably includes special purpose hardware, since implementation in software is unlikely to meet this performance goal. Design and configuration of suitable hardware and software, including any necessary firmware, may include conventional mirroring path 104; SCSI controllers, or similar controllers, Fiber Channel, USB, or other controllers identified herein; Individual known subsystems, such as buffers 210, 212, 310, disk 614, and RAID unit 312, and their interfaces; Software such as FreeBSD drivers; Ethernet and other known Network Interface Cards (“NICs”); Network protocols such as Ethernet and TCP / IP protocols; Description and examples provided herein; And other tools and techniques now or later available to those skilled in the art, can be accomplished by those skilled in the art.

로컬 미러링 유닛(204)에 대한 기입은 일반적으로 응답확인되고 로컬 버퍼(210)에 기입되어야만 하며, 비록 이러한 로컬 미러링이 도 3 내지 도 12에 명확하게 도시되지는 않았지만 종래의 경로(104) 또는 다른 경로를 통해 완전 로컬 미러링된 볼륨(230)에 기입될 수 있다. 성능을 위하여, 로컬 미러링 유닛(204)의RAM 캐시 또는 로컬 서버를 통해, 또는 양 측을 모두 통해 기입들을 버퍼링하는 것은 일반적으로 인정된다. 특히, 구현은 이용가능한 하드웨어 RAID 유닛(312) 캐시 또는 다른 SCSI, 파이버 채널, USB, 또는 유사한 캐시를 이용할 수도 있다. 로컬 미러링 유닛(204)으로부터의 판독은 일반적으로 로컬 미러(230)로부터의 적합한 데이터로 서비스되어야 한다.Writes to the local mirroring unit 204 should generally be acknowledged and written to the local buffer 210, although such local mirroring is not clearly shown in FIGS. The path may be written to a fully local mirrored volume 230. For performance, it is generally accepted to buffer writes either through the RAM cache of the local mirroring unit 204 or through a local server, or both. In particular, implementations may use the available hardware RAID unit 312 cache or other SCSI, Fiber Channel, USB, or similar caches. Reads from the local mirroring unit 204 should generally be serviced with the appropriate data from the local mirror 230.

충돌 또는 리부팅 또는 임의의 다른 종류의 서비스 방해 후에, 로컬 미러링 유닛(204)이 온라인으로 돌아올 때, 로컬 미러링 유닛(204)은 그의 로컬 버퍼(210)로부터 리모트 미러링 유닛(208, 308, 408, 508, 608 또는 708)으로 데이터를 전송하는 것을 자동적으로 시작할 것이다. 로컬 미러링 유닛의 버퍼(210)에 기입된 데이터는 네트워크 또는 다른 저니 링크(206)를 통해 선입선출(first in first out) 방식으로 리모트 미러링 유닛에 송신되어져야만 한다. 이것은 TCP/IP 또는 다른 저니 링크 프로토콜을 이용하여 행해질 수 있다. 리모트 미러링 유닛은 바람직하게는 완전한 일치되는 미러를 유지하여, 리모트 볼륨은 미러 동기 상태에 상관없이 항상 운영 시스템에 의해 사용하기 좋고 탑재가능하다.After a crash or reboot or any other kind of service interruption, when the local mirroring unit 204 comes back online, the local mirroring unit 204 is moved from its local buffer 210 to the remote mirroring unit 208, 308, 408, 508. , 608 or 708 will automatically begin transmitting data. Data written to the buffer 210 of the local mirroring unit must be transmitted to the remote mirroring unit in a first in first out manner via a network or other Journey link 206. This can be done using TCP / IP or other Journey link protocol. The remote mirroring unit preferably maintains a perfectly matched mirror so that the remote volume is always usable and mountable by the operating system, regardless of mirror synchronization status.

적어도, FreeBSD 기반 소프트웨어를 이용하는 실시예에서, 하드웨어 또는 소프트웨어의 본질적인 미러링의 실패가 없다면, 로컬 미러링 유닛(204) 상에서 커널 패닉(kernel panics)은 발생하지 않아야 한다. 로컬 미러링 유닛(204) 소프트웨어의 운영상의 실수는 바람직하게는 시스템 셧다운(shutdown)을 야기시키지 않아야 하며, 호스트 서버(200)의 임의의 행동도 야기시키지 않아야 한다. 바람직하게는 리부팅 없이 미러링 유닛 소프트웨어를 재구성하는 것이 가능하며, 고유한 버젼의수는 각 소프트웨어의 변경을 수반한다. 따라서, 소프트웨어는 바람직하게 모든 초기화 정보를 판독하고, 이에 따라 미러링 유닛에 의해 데이터 처리를 방해하지 않으면서 관리자가 이용가능한 시스템 콜을 통해 그 자신을 구성한다 . 호스트 서버(200)를 방해하지 말아야 한다. 로컬 미러링 유닛(204)은, 로컬 버퍼(210)가 채워지지 않았다면, 호스트 시스템(200)으로부터 리모트 미러링 유닛이 온라인인지의 여부, 및 네트워크 또는 다른 저니 링크(206) 대역폭(bandwidth)이 이용가능한지의 여부를 바람직하게 기입을 승인한다.At least, in embodiments using FreeBSD based software, kernel panics should not occur on the local mirroring unit 204 unless there is an inherent failure of the hardware or software to mirror inherently. Operational errors in the local mirroring unit 204 software should preferably not cause system shutdown and should not cause any behavior of the host server 200. Preferably it is possible to reconfigure the mirroring unit software without rebooting, the number of unique versions entails changing each software. Thus, the software preferably reads all the initialization information and thus configures itself through system calls available to the administrator without disturbing the data processing by the mirroring unit. It should not interfere with the host server 200. The local mirroring unit 204 determines whether the remote mirroring unit is online from the host system 200 if the local buffer 210 is not filled and whether the network or other Journey link 206 bandwidth is available. Whether to approve the entry preferably.

로컬 버퍼(210)가 채워지면, 로컬 미러링 유닛(204)은 바람직하게는 로컬 미러(230)(존재한다면)를 계속해서 유지시키고, 바람직하게는 로컬 버퍼(210)로부터 원형 큐(queue)를 계속해서 데큐(dequeue)한다. 그러나, 로컬 미러링 유닛(204)은 바람직하게는 사용자(통상적으로 관리자)에 의해 프로세스를 다시 큐잉하는 것을 시작하라고 지시받을 때까지 큐에 추가하는 것을 멈춘다. 리부트보다는 시스템 콜이 바람직하게는 사용자-스페이스 프로세스가 로컬 버퍼(210) 큐잉을 할 수 없게 한다.Once the local buffer 210 is filled, the local mirroring unit 204 preferably continues to maintain the local mirror 230 (if present), and preferably continues the circular queue from the local buffer 210. Dequeue. However, the local mirroring unit 204 preferably stops adding to the queue until instructed by the user (usually an administrator) to begin queuing the process again. System calls rather than reboots preferably prevent the user-space process from queuing the local buffer 210.

미러링 유닛은 바람직하게는 네트워크 또는 다른 저니 링크(206) 대역폭의 소멸 및 재접속을 자동검지한다. 예를 들어, 로컬 미러링 유닛(204)이 접속해제한 동안에 축적된 데이터 변경들을 보유할 만큼 로컬 버퍼(210)에 충분한 공간이 있다면, 로컬 미러링 유닛의 이더넷 케이블을 접속해제하고 그 후 그다음날 그것을 재접속하는 것은 바람직하게는 제로 데이터 손실을 야기시키고 네트워크 운영자의 부분에서의 중재를 필요로 하지 않는다.The mirroring unit preferably autodetects the disappearance and reconnection of the network or other Journey link 206 bandwidth. For example, if there is enough space in the local buffer 210 to hold data changes accumulated while the local mirroring unit 204 disconnected, disconnect the Ethernet cable of the local mirroring unit and reconnect it the next day. Doing so preferably causes zero data loss and does not require arbitration at the part of the network operator.

미러링 유닛 또는 이 유닛들과 관련한 모니터링 소프트웨어는 바람직하게는 사전 부트 후에 시스템이 명료하게 셧다운되었는지의 여부를 판정함으로써, 모니터링 소프트웨어는 리모트 미러가 동기에서 벗어날 가능성을 판정한다. 로컬 미러링 유닛(204)은 전력 고장의 경우에 바람직하게는 가능한한 작은 데이터를 손실한다. 따라서 일부 미러링 유닛은 Uninterruptible Power Supply("UPS")를 포함한다. 전력 손실의 경우에 로컬 미러(존재한다면) 및/또는 로컬 버퍼(210)에 RAM-버퍼된 기입들을 보낼 시간이 있을 것이라고 가정한다.The mirroring unit or monitoring software associated with these units preferably determines whether the system has been shut down cleanly after preboot, so that the monitoring software determines the likelihood that the remote mirror is out of sync. The local mirroring unit 204 preferably loses as little data as possible in the case of a power failure. Thus, some mirroring units include an Uninterruptible Power Supply ("UPS"). Assume that there will be time to send RAM-buffered writes to the local mirror (if present) and / or to the local buffer 210 in case of power loss.

일 실시예에서, 미러링 유닛 운영 시스템(예를 들어, FreeBSD)은 FreeBSD 자체가 갖는 파일시스템을 피하기 위해, 하드 디스크로부터 판독 전용 모드로 부팅시킨다. 구성 데이터를 작은 부분에 기입하고, 미러링 유닛 피어(mirroring unit peer) 상의 동일한 정보로부터나, 혹은 미러링 유닛이 구성 데이터를 손실했으며 복구될 때까지 오프라인이 될 것이라는 SNMP 경보를 송출하는 것에 의해서 저장될 수 있다. 피어 미러링 유닛에 도달할 수 없으면 경보를 사용할 수 있다. 일부 실시예에서는, 디스크 드라이브가 예를 들어 버스 리세트를 피하기 위해 그 자신을 수행하지 않는 제어기 카드 초기화 루틴을 피한다. 또한, 미러링 유닛 버퍼가 채워지면, 기입을 단순히 응답확인하고, 버퍼가 채워지고 리모트 미러가 로컬 미러와의 동기로부터 벗어났다는 경보를 전송하는 동안 국부적으로 기입을 미러링하는 것이 바람직하다.In one embodiment, the mirroring unit operating system (eg, FreeBSD) boots in read-only mode from the hard disk to avoid the filesystem that FreeBSD itself has. The configuration data can be stored in small portions and sent from the same information on the mirroring unit peer or by sending an SNMP alert that the mirroring unit has lost the configuration data and will be offline until it is recovered. have. If the peer mirroring unit cannot be reached, an alert can be used. In some embodiments, a disk drive avoids a controller card initialization routine that does not perform itself, for example to avoid bus reset. Also, if the mirroring unit buffer is filled, it is desirable to simply acknowledge the write and mirror the write locally while sending the alert that the buffer is full and the remote mirror is out of sync with the local mirror.

상술한 바와 같이, 호스트 시스템(200)을 특히 SCSI, 파이버 채널, USB, 또는 유사한 주고받기(handshaking)에 대해 간섭하지 않고 로컬 미러링 유닛(204)을콜드-리부트(cold-reboot)하는 것이 바람직하게 가능하다. 로컬 미러링 유닛의 버퍼(210)는 기입 요청의 순서를 유지하고, 이들을 리모트 미러링 유닛으로, 로컬 미러링 유닛(204)이 수신한 동일한 순서대로 전송하여, 항상 데이터 일관성을 보존한다.As noted above, it is desirable to cold-reboot the local mirroring unit 204 without interfering with the host system 200, particularly with respect to SCSI, Fiber Channel, USB, or similar handshaking. It is possible to. The buffer 210 of the local mirroring unit maintains the order of the write requests and sends them to the remote mirroring unit in the same order received by the local mirroring unit 204, thus always preserving data consistency.

리모트 미러링 유닛은 TCP Protocol Data Unit(이하에서는 TCP 패킷으로 참조됨)을 예를 들어 로컬 미러링 유닛(204)으로부터 수신하고, 이들을 디스크 서브시스템(외부 드라이브(614) 또는 RAID 유닛(312) 등)에 기입하여 드라이브가 적어도 논리적으로, 만약에 있으면 로컬 미러(230)와 그리고 이전의 호스트(200) 볼륨과 동일하게 블럭 당 블럭(block-for-block)된다. 미러링된 데이터는 낡은 것일 수 있으나, 이것은 일관되어야 한다.The remote mirroring unit receives a TCP Protocol Data Unit (hereinafter referred to as a TCP packet) from, for example, the local mirroring unit 204 and sends them to the disk subsystem (external drive 614 or RAID unit 312, etc.). The drive is write-at least logically, if any, block-for-block as if it were the local mirror 230 and the previous host 200 volume. The mirrored data may be out of date, but this must be consistent.

데이터 복구의 목적을 위하여, 리모트 미러링 유닛 소프트웨어는 바람직하게는 사용자-공간에 대한 인터페이스를 가져서, 사용자-공간 프로그램은 미러링 유닛 소프트웨어에 의해서 판독, 기입 및/또는 리모트 미러의 검색을 억제하거나 또는 재기능할 수 있도록 하고, 리모트 디스크 서브시스템이-따라서 미러링된 데이터가- 동일한 체인 상의 제2 SCSI 호스트에 의해 액세스될 수 있게 한다. 리모트 사이트에서, 리모트 미러링 유닛과 백업 호스트 서버는 공유된 디스크 서브시스템에 부속될 것이다. 예를 들어, 리모트 미러링 유닛은 SCSI ID(6)을 이용할 수 있으며, 복원에 이용된 리모트 서버는 SCSI ID(7)을 이용한다. 리모트 미러링 유닛이 미러링하는 동안, 리모트 호스트는 공유된 드라이브를 탑재하지 않은 상태로 남겨둘 것이다. 데이터 복구를 위해, 전환의 일부로써, 리모트 미러링 유닛은 공유 드라이브를 액세싱하는 것을 멈추고 백업 호스트 서버는 그것을 탑재할 수 있다.For the purpose of data recovery, the remote mirroring unit software preferably has an interface to user-space such that the user-space program is inhibited or refunctioned by the mirroring unit software for reading, writing and / or retrieval of the remote mirror. Enable the remote disk subsystem, and thus mirrored data, to be accessed by a second SCSI host on the same chain. At the remote site, the remote mirroring unit and backup host server will be attached to the shared disk subsystem. For example, the remote mirroring unit may use the SCSI ID 6, and the remote server used for the restoration uses the SCSI ID 7. While the remote mirroring unit is mirroring, the remote host will leave the shared drive unmounted. For data recovery, as part of the switchover, the remote mirroring unit stops accessing the shared drive and the backup host server can mount it.

리모트 미러링 유닛은 바람직하게는 로컬 미러링 유닛(204)으로부터 수신된 블럭의 수를 사용자-공간 프로그램에 통지한다. 리모트 미러링 유닛은 디스크 서브시스템으로 미러링하여 볼륨이 로컬 서버(200)와 동일한 운영시스템을 갖는 호스트 시스템에 의해 탑재될 수 있도록 한다. 리모트 미러링 유닛이 로컬 미러링 유닛(204)으로부터 요청을 수신하여 논리적 블럭 번호 N에 기입하면, 데이터는 리모트 미러링 유닛의 디스크 서브시스템(312 또는 614) 상의 논리적 블럭 번호 N에 기입되어야만 한다. 리모트 미러링 유닛의 디스크 서브시스템(312 또는 614)에 로컬 미러링 유닛(204)에 의해 수신된 순서대로 로컬 미러링 유닛(204)으로부터의 기입 요청을 기입하여 데이터 일관성을 보존한다.The remote mirroring unit preferably informs the user-space program of the number of blocks received from the local mirroring unit 204. The remote mirroring unit mirrors to the disk subsystem so that the volume can be mounted by a host system having the same operating system as the local server 200. When the remote mirroring unit receives a request from local mirroring unit 204 and writes to logical block number N, data must be written to logical block number N on disk subsystem 312 or 614 of the remote mirroring unit. Write requests from the local mirroring unit 204 to the disk subsystem 312 or 614 of the remote mirroring unit in the order received by the local mirroring unit 204 to preserve data consistency.

저니 링크(206)에 있어서, 로컬 미러링 유닛(204)과 리모트 미러링 유닛 사이의 통신은, 이들이 에러 복구 및 전송 보증을 특징으로 하기 때문에 TCP 프로토콜을 이용할 수 있다. 리모트 미러링 유닛 소프트웨어는 TCP 서버로 동작하는데, 리모트 미러링 유닛(204)은 리모트 유닛의 클라이언트로 동작한다. 네트워크 대역폭 또는 접속도의 손실은 바람직하게 로컬 미러링 유닛(204) 또는 리모트 미러링 유닛을 인터럽트하지 않는다. 마찬가지로, 원격지에서의 데이터 복구는 바람직하게 로컬 미러링 유닛(204)을 인터럽트하지 않는다. 로컬 미러링 유닛(204)과 리모트 미러링 유닛 간의 접속이 만료되거나 끊어지는 경우, 로컬 미러링 유닛(204)은 바람직하게 접속이 다시 이루어질 때까지 재접속을 시도한다. 그리고 나서 로컬 미러링 유닛(204)은 바람직하게 중지한 미러 데이터의 전송을 계속하며, 그렇지 않은 경우 정상 동작을 재개한다.In the Journey Link 206, the communication between the local mirroring unit 204 and the remote mirroring unit can use the TCP protocol because they feature error recovery and transmission guarantees. The remote mirroring unit software operates as a TCP server, and the remote mirroring unit 204 operates as a client of the remote unit. Loss of network bandwidth or connectivity preferably does not interrupt the local mirroring unit 204 or the remote mirroring unit. Likewise, data recovery at a remote location preferably does not interrupt local mirroring unit 204. If the connection between the local mirroring unit 204 and the remote mirroring unit expires or is lost, the local mirroring unit 204 preferably tries to reconnect until the connection is reestablished. The local mirroring unit 204 then continues the transmission of the mirrored data, preferably stopped, otherwise resumes normal operation.

본 발명의 미러링 유닛은 FreeBSD UNIX 운영체제에 기초한 개량된 운영체제를 실행하는 곳인 원래의 Off-SiteServer 제품보다 더 "지능적"이다. 개량은 QLogic SCSI 제어기용의 드라이버를 개조하여 카드가 호스트가 아니라 SCSI 타겟으로 동작하도록 함으로써 디스크 드라이브를 에뮬레이션하게 하는 것을 포함하는데, 다른 제어기들도 적당한 드라이버들과 함께 사용될 수 있다. 부트 프로세스는 또한 로그인 프롬프트 대신에 콘솔 상에 미러링 유닛 구성 유틸리티를 보이도록 개조되었으며, 커널은 리컴파일되었다. 소스에서 각 미러링 유닛(204)은 호스트 서버(200)에 대해 완전히 독립적으로 실행하는 것을 허용하는 운영체제를 실행하고 있다. 결과적으로 제공되는 플렉시블 미러링 특성 중 하나는 미러링 유닛(204)이 호스트 서버(200) 상에 초기화 또는 접속 소프트웨어를 필요로 하지 않는다는 것이다(오리지날 Off-SiteServer 제품에서 이 소프트웨어는 Vinca NLM의 형태를 취한다).The mirroring unit of the present invention is more "intelligent" than the original Off-SiteServer product, which is an implementation of an improved operating system based on the FreeBSD UNIX operating system. Improvements include adapting the driver for the QLogic SCSI controller to emulate the disk drive by allowing the card to operate as a SCSI target rather than as a host, although other controllers can also be used with the appropriate drivers. The boot process has also been modified to show the mirroring unit configuration utility on the console instead of the login prompt, and the kernel has been recompiled. Each mirroring unit 204 at the source is running an operating system that allows it to run completely independently of the host server 200. One of the resulting flexible mirroring features is that the mirroring unit 204 does not require initialization or connection software on the host server 200 (in the original Off-SiteServer product, this software takes the form of Vinca NLM). ).

대신에, 미러링 유닛(204) 운영체제는 SCSI 또는 다른 표준 디스크 또는 데이터 취득 포인트를 에뮬레이트한다. 그래서 미러링 유닛(204)은 적어도 마이크로소프트 윈도우 95, 마이크로소프트 윈도우 98, 마이크로소프트 윈도우 NT, 노벨 네트웨어, FreeBSD, 및 리눅스 운영체제를 포함하는 임의의 SCSI 지원 운영 체제 하에서 예컨대 미러링된 SCSI 디스크로서 장착될 수 있다. 디스크 에뮬레이션은 바람직하게 디스크 판독 및 기록 외에 디스크 포맷팅, 디스크 분할, 스캔 디스크와 같은 디스크 결함 검사 등에 대한 핸들링 서버(200) 요구들을 포함하는 임의의 표준 디스크 동작이 (적어도 서버(200) 견지에서) 행해질 수 있는 포인트에 대해 수행된다.Instead, the mirroring unit 204 operating system emulates a SCSI or other standard disk or data acquisition point. The mirroring unit 204 may thus be mounted as a mirrored SCSI disk, for example, under any SCSI supported operating system including at least Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows NT, Novell Netware, FreeBSD, and Linux operating systems. have. Disk emulation should preferably be performed (at least in terms of server 200) in addition to disk reading and writing, in addition to any standard disk operations including handling server 200 requests for disk formatting, disk partitioning, disk defect checking such as scan disks, and the like. Is performed for the possible points.

본 발명에 따른 시스템은 또한 결함 허용 한계에 대해 국부적으로 전체 미러링된 볼륨(230)을 유지할 수 있다. 이러한 미러링 동작은 미러링 유닛(204)에서 데이터를 소프트웨어의 에뮬레이션 층 아래로 분기함으로써(또는 2번의 기록을 행함으로써) 발생할 수 있기 때문에, 미러링 유닛(204)은 또한 이러한 로컬 볼륨(230)을 순차 데이터 변경 버퍼와 함께 유지할 수 있다. 이는 미러링 유닛(204)이 과다 지연 없이 서버(200)에 의한 로컬 판독을 서비스할 수 있도록 해주며, 이에 따라 시스템은 디스크 핸디캡 및 노우 스플릿 검색 소프트웨어 없이 실행할 수 있게 되어 잠재적인 소프트웨어 호환 문제를 없앨 수 있다. 이것은 또한 본 발명의 시스템이 져니 링크(journey link; 206)를 통과하는 대신 로컬 디스크 미러링 중에 서버(200)의 로컬 디스크로 데이터를 역 미러링하는 것을 가능하게 한다. 또한, 로컬 미러(230)가 유지되는 경우, 로컬 미러(230)는 미러링된 데이터를 져니 링크(206)를 통해 전송하는 것과 관련된 지연 및 위험을 겪지 않기 때문에, 로컬 미러링 유닛(204)은 호스트(200)에 대한 역 기록을 미리 확인시키기 위한 속임수 발생기(spoof generator)를 포함할 필요가 없다.The system according to the present invention may also maintain a locally full mirrored volume 230 against fault tolerance. Since this mirroring operation may occur by mirroring unit 204 by branching the data down the emulation layer of software (or by performing two writes), mirroring unit 204 may also cause this local volume 230 to be sequential data. It can be kept with a change buffer. This allows the mirroring unit 204 to service local reads by the server 200 without excessive delay, thereby allowing the system to run without disk handicap and no split detection software, eliminating potential software compatibility issues. have. This also allows the system of the present invention to reverse mirror data to the local disk of the server 200 during local disk mirroring instead of going through the journal link 206. Also, if local mirror 230 is maintained, local mirror 230 does not suffer from the delays and risks associated with transmitting mirrored data over the Johnny link 206, so that local mirroring unit 204 is responsible for the host ( There is no need to include a spoof generator to pre-check the reverse record for 200).

본 발명에 따른 미러링 유닛은 통상적으로 운영체제 소프트웨어를 포함한다. 따라서, 적어도 몇몇 미러링 유닛은 취득한 미러링 데이터를 조작하기 위해 다수의 "호스트" 애플리케이션을 실행할 수 있다. 시스템은 또한 드라이버 및/또는 다른 적당한 소프트웨어 및/또는 하드웨어를 이용하여, 특정 환경에서의 요건을 만족시키기 위하여 스케일 업 또는 다운될 수 있다. 예컨대, 더 많은 액티비티 및 작업 부하를 처리하기 위하여 프로세스들은 다수의 프로세서, SCSI 카드 및/또는 다른 "지능형" 장치들에 분배될 수 있다. 마찬가지로, 시스템은 더 낮은 성능 환경의 필요성을 만족시키면서 비용을 줄이기 위해 스케일 다운될 수 있다. 적당한 소프트웨어와 함께 로컬 미러링 유닛(204)은 독립된 지능형 디스크 서브시스템으로서 동작할 수 있거나, 로컬 결함 허용 한계에 대한 페일-오버(fail-over)로서 호스트(200) 운영체제의 에뮬레이션을 행할 수 있다. 로컬 디스크 볼륨(230)은 호스트(200) 디스크 서브시스템이 고장난 경우 로컬 결함 허용 한계에 대한 로컬 미러링 교체의 역할을 할 수 있다.The mirroring unit according to the invention typically comprises operating system software. Thus, at least some mirroring units may execute multiple "host" applications to manipulate the acquired mirroring data. The system may also be scaled up or down using drivers and / or other suitable software and / or hardware to meet the requirements in a particular environment. For example, processes can be distributed among multiple processors, SCSI cards, and / or other "intelligent" devices to handle more activity and workload. Similarly, the system can be scaled down to reduce costs while satisfying the need for a lower performance environment. The local mirroring unit 204 with appropriate software can operate as a separate intelligent disk subsystem or can emulate the host 200 operating system as a fail-over to a local fault tolerance. Local disk volume 230 may serve as a local mirroring replacement for local fault tolerance in the event that host 200 disk subsystem fails.

시스템은 선입선출 방식으로 데이터를 유지하고 전송하는 지능형 버퍼(210)에 의해 부분적으로 원격지에서의 일관성 및 가용성을 유지한다. 이러한 방식으로 데이터 블럭들은 로컬 미러링 유닛(204)에서 에뮬레이션 층을 통해 수신되는 정확한 순서대로 원격지로 전송된다. 패킷 데이터는 전송된 것과 동일한 순서로 목적지에 도착될 필요는 없기 때문에 순차 번호 및/또는 타임 스탬프도 사용될 수 있다.The system maintains consistency and availability at the remote location in part by an intelligent buffer 210 that maintains and transmits data in a first-in, first-out manner. In this way, the data blocks are sent to the remote in the exact order they are received via the emulation layer at the local mirroring unit 204. Since the packet data does not have to arrive at the destination in the same order in which they were sent, sequential numbers and / or time stamps may also be used.

몇몇 실시예는 원형 버퍼 및 셧다운 시에 데이터를 보호하기 위한 다른 수단과 함께 아래의 접근법을 이용한다. 디스크 타겟 에뮬레이터로서 사용되는 QLogic 카드 외에 로컬 미러링 유닛은 로컬 SCSI 디스크 제어기를 통해 부착되는 2개의 디스크 시스템을 구비한다. 하나의 디스크는 관련 유틸리티 및 미러링 유닛 관리 소프트웨어와 함께 호스트 운영체제(예컨대 FreeBSD 3.1)를 구비한다. 이 디스크는또한 버퍼(210) 디스크의 역할을 한다. 미러링 유닛에 부착된 다른 디스크 시스템은 적어도 미러링되고 있는 호스트(200) 디스크만큼 크며, 호스트(200) 디스크의 로컬 미러(230)의 역할을 한다.Some embodiments use the following approach with circular buffers and other means for protecting data in shutdown. In addition to the QLogic card used as a disk target emulator, the local mirroring unit has two disk systems attached via a local SCSI disk controller. One disk has a host operating system (eg FreeBSD 3.1) with associated utilities and mirroring unit management software. This disk also serves as a buffer 210 disk. The other disk system attached to the mirroring unit is at least as large as the host 200 disk being mirrored, and serves as a local mirror 230 of the host 200 disk.

SCSI 데이터는 QLogic 카드로부터 판독되어 판독 또는 기록 요구에 따라 커널에서 에뮬레이션된다. QLogic 카드로부터 나오는 판독 요구는 바람직하게 로컬 미러 디스크(230)를 이용하여 수행되며 네트워크(206)를 통해 전송되지 않는다. 기록 명령은 로컬 미러 디스크(230)로 직접 복사되며, 버퍼 디스크 또는 불휘발성 RAM의 순환 큐에 추가되는 것은 물론 가능한 한 빨리 호스트 시스템(200)으로 수신확인된다(그러나 미리 수신확인될 필요는 없다).SCSI data is read from the QLogic card and emulated in the kernel upon read or write request. Read requests coming from QLogic cards are preferably performed using local mirror disk 230 and are not transmitted over network 206. The write command is copied directly to the local mirror disk 230 and added to the circular queue of a buffer disk or nonvolatile RAM as well as acknowledged to the host system 200 as soon as possible (but need not be acknowledged in advance). .

한 블럭이 순환 큐에 기록될 때마다 2개의 블럭은 실제로 순차적으로 기록되는데, 하나는 전송될 실제 데이터 블럭이고, 다른 하나는 큐에 대한 현재의 태일(tail) 포인터용의, 가능하다면 LBN(논리 블럭수)과 같은 다른 데이터를 갖춘 타임스탬프이다. 이 두번째 블럭은 소위 메타 데이터 블럭이다. 이러한 방식은 공간 효율적은 아니지만, 큐 포인터를 유지하는 데 필요한 디스크 기록 횟수를 감소시킨다. 큐 포인터는 또한, 이용가능한 불휘발성 RAM이 있는 경우 이 불휘발성 RAM에 그 복사본 및 가능하다면 전체 순환 큐를 유지함으로써 유지될 수 있다. 공간 및 시간을 아끼기 위한 하나의 방법은 한 번에 더 큰 덩어리를 원형 버퍼에 기록하여 기록을 행할 수 있도록 충분히 축적될 때까지 메모리에 블럭을 버퍼링하는 것이다. 이것은 메타 데이터 블럭이 많은 데이터 블럭에 사용되어 디스크 기록 동작 횟수를 줄이고 디스크 공간을 절약하는 것을 가능하게 한다.Each time one block is written to the circular queue, two blocks are actually written sequentially, one is the actual data block to be transmitted, and the other is the LBN (logical if possible) for the current tail pointer to the queue. Timestamp with other data, such as number of blocks). This second block is the so-called metadata block. This approach is not space efficient, but it reduces the number of disk writes needed to maintain the queue pointer. The queue pointer may also be maintained by keeping a copy of this nonvolatile RAM and possibly the entire circular queue if there is available nonvolatile RAM. One way to save space and time is to write a larger chunk at a time to a circular buffer and buffer the block in memory until it has accumulated enough to be able to write. This makes it possible for meta data blocks to be used for many data blocks, reducing the number of disk write operations and saving disk space.

시스템 셧다운 및 재시작의 경우, 큐의 헤드는 그 메타 데이터 세그먼트에 가장 최근의 타임 스탬프를 가진 블럭을 검색하여 이 메타 데이터 세그먼트를 태일 포인트를 찾는 데 이용함으로써 발견된다. 이것은 예컨대 2진 검색을 행함으로써 이루어질 수 있다. 버퍼 구현은 순환적이기 때문에 전송된 블럭을 버퍼로부터 물리적으로 (즉 블럭을 지우거나 제로화함으로써) 제거할 필요는 없는데, 태일 포인터의 증분은 이것을 효과적으로 행한다. 헤드 포인터가 태일 포인터보다 1 작을 때 버퍼 풀 조건이 검출된다. 포인터는 원형 버퍼 내의 위치를 참조하며 버퍼 자체 내의 데이터를 참조하지 않는다(즉, 어레이가 아니라 링크된 리스트임).In the case of system shutdown and restart, the head of the queue is found by searching for the block with the most recent time stamp in that metadata segment and using that metadata segment to find the tail point. This can be done, for example, by doing a binary search. Since the buffer implementation is circular, there is no need to physically remove the transmitted block from the buffer (ie by erasing or zeroing the block), and the increment of the tail pointer does this effectively. A buffer pool condition is detected when the head pointer is one less than the tail pointer. A pointer refers to a location in the circular buffer and does not refer to data in the buffer itself (ie it is a linked list, not an array).

가장 최근의 초를 갖는 것은 시스템 셧다운 전에 기록된 최종 블럭을 결정하기에 충분할 수 있기 때문에 64 비트 타임 스탬프를 유지할 필요는 없을 수 있다. 예컨대, 4개의 블럭이 동일 초에 기록되었고 동일 타임 스탬프를 갖는 것으로 가정하자. 그러면, 타임 스탬프에 따른 최종 블럭은 순서화된 리스트이므로 최종 기록된 블럭이다. 타임 스탬프가 너무 연산적으로 비싼 경우, 간단한 증분 카운터는 2038년도보다 더 빨리 롤-오버(roll-over)될 수 있지만 충분할 것이다. 큐 버퍼 크기는 최종 사용자의 데이터 변경 속도, 및 고객이 네트워크(206)의 정지에 대항하는 데 필요한 시간의 길이에 따라 변한다. 큐 버퍼는 수백 메가 비트 정도로 작거나 미러링되고 있는 호스트 볼륨 정도로 클 수 있다. 버퍼의 최소 또는 최대 크기에 대한 고유의 제한은 없으며, 높은 데이터 변경 속도 및 져니 링크(206)의 빈번한 긴 인터럽션이 예상되는 경우에 버퍼는 미러링되고 있는 호스트 볼륨보다 클 필요가 있을 수 있다.Having the most recent seconds may not be necessary to maintain a 64-bit time stamp because it may be sufficient to determine the last block written before system shutdown. For example, suppose four blocks were written in the same second and have the same time stamp. Then, the last block according to the time stamp is an ordered list and thus the last written block. If the time stamp is too computationally expensive, a simple incremental counter may roll over over faster than 2038, but will be enough. The queue buffer size varies with the rate of change of the end user's data and the length of time the customer needs to resist the outage of the network 206. The queue buffer can be as small as a few hundred megabits or as large as the host volume being mirrored. There is no inherent limitation on the minimum or maximum size of the buffer, and the buffer may need to be larger than the host volume being mirrored if high data change rates and frequent long interruptions of the Johnny Link 206 are expected.

사용자 공간 또는 시스템 공간에서 실행될 수 있는 개별 프로세스가 순환 큐로부터 블럭들을 판독하여 이들을 네트워크(206)를 통해 리모트 미러링 유닛으로 전송한다. 이러한 전송 프로세스는 프로세스의 현재 포인터 위치에 관하여 시시각각으로 큐잉 프로세스를 전할 수 있고 타임 스탬프를 감시하여 큐가 언제 비게 되는지를 결정할 수 있다. 더 나쁜 경우에 시스템 재시작의 경우 재전송 횟수가 과다한 크기로 증가하지 않는다면, 시스템은 이미 전송한 다수의 블럭의 재전송을 종료하게 되므로, 메타 데이터에 저장되고 있는 태일 포인터가 다소 구식인 경우에 좋을 수 있다. 바람직하게도 전송 프로세스는 서버 시동 이후의 블럭의 수를 결정할 수도 있다. 어떠한 경우에는 버퍼가 전체 호스트 볼륨을 버퍼링할 수 있는 것으로 가정할 수 있다. "무해(do no harm)" 사상 하에 SCSI 버스를 느리게 하는 모험을 하지 말고 이미 채워진 큐에 맞지 않는 데이터를 단순히 덤프하고 사용자 공간 모니터링 프로세스에 이 이벤트를 알리는 것이 더 좋을 것이다.Individual processes, which can run in user space or system space, read the blocks from the circular queue and send them over the network 206 to the remote mirroring unit. This transfer process can convey the queuing process at a time instant relative to the current pointer position of the process and monitor the time stamp to determine when the queue is empty. In worse cases, if the number of retransmissions does not increase excessively in the case of a system restart, the system will terminate retransmission of a number of blocks that have already been transmitted, which may be good if the tail pointers stored in the metadata are somewhat outdated. . Preferably the transfer process may determine the number of blocks after server startup. In some cases, it can be assumed that the buffer can buffer the entire host volume. Instead of taking the risk of slowing down the SCSI bus under the "do no harm" idea, it would be better to simply dump data that does not fit in the already filled queue and notify the user space monitoring process of this event.

재전송 블럭의 수를 줄이기 위하여 시스템은 로컬 미러에 대한 기록을 검사하고, 이들이 정말 다른 경우 임의의 지연 기록 문제를 피하면서 단지 이들을 원형 버퍼에 추가할 수 있다. 이것은 디스크 상의 각 LBN에 대한 체크섬의 해쉬 테이블을 유지함으로써 달성될 수 있는데, 하나의 트레이드오프는 체크섬과 메모리 대 추가 디스크 동작을 계산하는 프로세서 타임일 것이다.To reduce the number of retransmission blocks, the system can check the writes to the local mirror and, if they are really different, just add them to the circular buffer, avoiding any lazy write problems. This can be achieved by maintaining a hash table of checksums for each LBN on the disk, one tradeoff will be processor time computing the checksum and memory versus additional disk operation.

일반적인 방법Common way

도 13 및 15는 리모트 데이터 미러링에 대한 본 발명의 방법을 나타낸다. 몇몇 방법은 미러링 유닛을 설치하는 단계를 포함하는데, 편의를 위해 이들 단계는설치 단계(1300) 내의 단계들로 집합적으로 식별된다. 예컨대 시스템 통합기, 미러링 장비 벤더 및 관리기는 도 2 내지 12에 도시된 것과 같은 시스템을 설치할 때 단계 1300에 도시된 단계들의 일부 또는 전부를 행하도록 허가 받을 수 있다. 본 발명의 다른 방법은 데이터를 하나 이상의 미러링 유닛에 전송하기 위한 단계들을 포함하는데, 편의를 위해 이들 단계는 단계 1302 내의 단계들로 집합적으로 식별된다. 이들 전송 단계는 설치 단계(1300)의 일부로서 설치기에 의해 테스트 데이터와 함께 허가하에 행해질 수 있지만, 본 발명에 따라 시스템의 정규 사용자의 명령에 의해 미션-크리티컬 데이터와 함께 일상적으로 수행될 수도 있다.13 and 15 illustrate the method of the present invention for remote data mirroring. Some methods include installing mirroring units, for convenience, these steps are collectively identified as steps within installation step 1300. For example, the system integrator, mirroring equipment vendor, and manager may be authorized to perform some or all of the steps shown in step 1300 when installing a system such as those shown in FIGS. Another method of the present invention includes steps for transmitting data to one or more mirroring units, for convenience these steps are collectively identified as steps in step 1302. These transfer steps may be performed under the permission with test data by the installer as part of the installation step 1300, but may also be routinely performed with mission-critical data at the command of a regular user of the system in accordance with the present invention.

접속 단계(1304) 동안, 적어도 하나의 서버(200)가 적어도 하나의 로컬 미러링 유닛(204)에 접속된다. 전술한 바와 같이, 이러한 접속은 SCSI 버스, 광섬유 채널 접속, USB 접속 또는 몇몇 다른 표준 디스크 서브시스템 버스의 형태일 수 있다. 하나의 로컬 미러링 유닛(204)이 디스크 서브시스템을 에뮬레이션하기 때문에 단계 1304 동안의 접속은 적어도 서버(200)의 관점에서는 서버(200)에 대한 종래의 디스크 서브시스템의 접속과 기본적으로 동일하다. 특히 특수 미러링 NLM 또는 다른 미러링 소프트웨어 설치가 필요하지 않다.During the attach step 1304, at least one server 200 is connected to at least one local mirroring unit 204. As mentioned above, this connection may be in the form of a SCSI bus, a fiber channel connection, a USB connection, or some other standard disk subsystem bus. Since one local mirroring unit 204 emulates a disk subsystem, the connection during step 1304 is basically the same as the connection of a conventional disk subsystem to the server 200, at least in terms of the server 200. In particular, no special mirroring NLM or other mirroring software installation is required.

접속 단계(1306) 동안 적어도 하나의 미러링 유닛(204)이 적어도 하나의 대응 져니 링크(206)에 접속된다. 상황에 따라 이것은 각종 동작을 수반할 수 있다. 예컨대 져니 링크(206)가 구내망을 포함하는 경우 로컬 미러링 유닛(204)은 다른 네트워크 노드와 같은 네트워크에 접속될 수 있는데, SNMP 지원이 구성될 수도 있다. 져니 링크(206)가 로컬 미러링 유닛(204)으로부터 다이얼 업 접속을 포함하는경우 다이얼 업 파라미터들이 구성된다. 마찬가지로 져니 링크(206)가 T1 라인과 같은 전용 개인 통신을 포함하는 경우 접속을 이루기 위한 친숙한 동작이 행해진다.At least one mirroring unit 204 is connected to at least one corresponding Johnny Link 206 during the attaching step 1306. Depending on the situation, this may involve various actions. For example, if the Johnny Link 206 includes a local area network, the local mirroring unit 204 may be connected to the same network as other network nodes, and SNMP support may be configured. Dial-up parameters are configured when the Johnny Link 206 includes a dial-up connection from the local mirroring unit 204. Similarly, when the Johnny Link 206 includes a dedicated personal communication such as a T1 line, a familiar operation is made to establish a connection.

접속 단계(1308) 동안 적어도 하나의 리모트 미러링 유닛(208, 308, 408, 508, 608 또는 708)이 적어도 하나의 대응 져니 링크(206)에 접속된다. 이것은 일반적으로 단계 1306 동안의 로컬 미러링 유닛(204)의 접속과 동일한 방식으로 달성될 수 있다. 그러나, 리모트 미러링 유닛이 주어진 환경에서 TCP 서버로 동작할 때, 로컬 미러링 유닛(204)은 리모트 미러링 유닛의 클라이언트로 동작한다. 따라서 본 실시예에서 접속 단계(1306)는 TCP 클라이언트를 접속하며 접속 단계(1308)는 TCP 서버를 접속한다.At least one remote mirroring unit 208, 308, 408, 508, 608, or 708 is connected to at least one corresponding jonny link 206 during the attach step 1308. This may generally be accomplished in the same manner as the connection of the local mirroring unit 204 during step 1306. However, when the remote mirroring unit operates as a TCP server in a given environment, the local mirroring unit 204 acts as a client of the remote mirroring unit. Thus, in this embodiment, connection step 1306 connects a TCP client and connection step 1308 connects a TCP server.

테스트 단계(1310) 동안 미러링 유닛에 대한 테스트가 행해진다. 이들 테스트는 예컨대 로컬 미러링 유닛(204)의 처리 성능을 RAID 유닛의 성능과 비교하고, 리모트 사이트로부터의 데이터를 로컬 사이트로 역으로 다시 미러링하고, 부정확한 구성 정보를 로컬 미러링 유닛(204)에 넣고, 이 정보를 수정하며, 로컬 미러링 유닛(204)을 다시 부팅하고, 져니 링크(206)의 접속을 끊으며, 로컬 미러링 유닛(204)에 대한 전력을 인터럽트하고, 리모트 미러링 유닛에 대한 전력을 인터럽트하며, 로컬 미러링 유닛(204)의 버퍼(210)를 오버플로우하고, 다른 테스트를 행하는 것을 포함할 수 있다. 구체적으로, 제한 없이, 테스트 단계(1310)는 이 명세서의 "테스트 스위트" 섹션에 기술된 하나 이상의 테스트를 행하는 것을 포함한다. 테스트(1310)는 또한 단계 1302와 관련하여 아래에 설명되는 바와 같이 데이터를전송하는 것을 포함하지만, 테스트는 설명을 명확히 하기 위하여 도 13에서 개별 단계로서 도시된다.During the test phase 1310 a test is made on the mirroring unit. These tests, for example, compare the processing performance of the local mirroring unit 204 with the performance of the RAID unit, mirror data back from the remote site back to the local site, and insert incorrect configuration information into the local mirroring unit 204. Modify this information, reboot the local mirroring unit 204, disconnect the Johnny Link 206, interrupt power to the local mirroring unit 204, and interrupt power to the remote mirroring unit. And overflowing the buffer 210 of the local mirroring unit 204 and performing another test. Specifically, without limitation, test step 1310 includes performing one or more tests described in the "Test Suites" section of this specification. Test 1310 also includes transmitting data as described below in connection with step 1302, but the test is shown as a separate step in FIG. 13 for clarity.

송신 단계 1302는 서버(200)로부터의 데이터를 표준 버스를 통해 로컬 미러링 유닛(204)으로 송신하는 송신 단계 1312를 포함할 수 있다. 이것은 본원 발명이 종래의 경로(104)와 달리 디스크 또는 RAID 서브시스템을 에뮬레이트하는 미러링 유닛을 제공하기 때문이다.The transmission step 1302 may include a transmission step 1312 of transmitting data from the server 200 to the local mirroring unit 204 via a standard bus. This is because the present invention provides a mirroring unit that emulates a disk or RAID subsystem unlike the conventional path 104.

송신 단계 1314 동안, 미러링되는 데이터는 저니 링크(206)를 통해 송신된다. 이것은 종래의 경로(104)의 경우와 같이 전용 링크로 행해질 수 있으나, 이더넷 및/또는 TCP 및/또는 다른 개방 표준 프로토콜과 같은 표준 프로토콜과 근거리 통신망 및/또는 인터넷과 같은 그들과 관련된 종래의 네트워킹 기반 시설을 사용하여 행해질 수 있다.During the transmission step 1314, the mirrored data is transmitted over the Journey link 206. This may be done with a dedicated link as in the case of conventional path 104, but with standard protocols such as Ethernet and / or TCP and / or other open standard protocols and conventional networking infrastructure associated with them such as local area networks and / or the Internet. Can be done using the facility.

실시예에 있어서, 미러링된 데이터는, 데이터의 블럭들이 미러링된 순서의 기록을 유지하기 위해 그리고 이 데이터를 특정한 시점에 연계하기 위해 로컬 미러링 유닛(204)에 의해 타임-스탬프된다. 이것은 미러링된 볼륨의 현재 카피를 단순히 유지하는 대신, 미러링된 볼륨의 하나 이상의 스냅숏과 그 볼륨에 대한 섹터/트랙/블럭 레벨에서의 증분 변화를 유지하기에 충분히 큰 리모트 및/또는 로컬 데이터스토리지와 연계된다. 바람직한 실시예에서는, 단지 하나의 스냅숏이 필요로 된다. 싱글 스냅숏은 베이스라인을 제공하고, 후속의 변화들은, 임의의 원하는 포인트(journaling granularity로 될)에서 볼륨의 상태가 복원될 수 있도록 저널된다. 저널은 그것을 유지하기에 필요한 만큼 부가된 추가의 스토리지 공간을 가지면서임의적으로 클 수 있고, 혹은 어떤 고정적인 사이즈의 FIFO 원형 버퍼 내에 유지되어, 저널 버퍼가 초기에 채워진 후 구 저널 엔트리들이 신 저널 엔트리들로 오버라이트될 수 있다. 보다 일반적으로는, 적당한 리미러링 소프트웨어와 스냅솟과 (필요하다면) 증분적인 변화들이 특정한 이전 시간에 존재했던 바와 같이 미러드 디스크 볼륨을 재구성하기 위에 나중에 사용될 수 있다.In an embodiment, the mirrored data is time-stamped by the local mirroring unit 204 to maintain a record of the order in which the blocks of data are mirrored and to associate this data to a specific point in time. Instead of simply maintaining a current copy of the mirrored volume, the remote and / or local data storage is large enough to maintain one or more snapshots of the mirrored volume and incremental changes at the sector / track / block level for that volume. Linked. In a preferred embodiment, only one snapshot is needed. The single snapshot provides a baseline and subsequent changes are journaled so that the state of the volume can be restored at any desired point (which will be journaling granularity). The journal can be arbitrarily large, with additional storage space added as needed to maintain it, or maintained in a fixed size FIFO circular buffer, so that old journal entries are replaced by new journal entries after the journal buffer is initially filled. Can be overwritten. More generally, the appropriate remirring software and snap-tos and (if necessary) incremental changes can be used later on to reconstruct the mirrored disk volume as it existed at a particular previous time.

송신 단계 1316 동안, 미러링된 데이터는 서버가 없는 리모트 미러링 유닛에 송신된다. 이 구성은 도 2에 예시되어 있다. 리모트 미러링 유닛은 종래의 서버와 공통적인 하드웨어 및 기능성을 갖지만, 종래의 서버는 아니다. 서버는 미러링 유닛보다 더 일반적인 기능을 제공한다. 미러링 유닛은 실질적으로 연속한 거의 실시간적인 리모트 데이터 미러링을 효율적으로 제공하는 것에 집중한다. 리모트 미러링 유닛은 저널 링크(206)를 통해 데이터의 획득에 관해 리모트 미러링 서버와 유사하게 기능하나, 그외에는 마운트된 디스크와 매우 유사하다. 특히, 리모트 미러링 유닛은 보조 서버가 부착된 경우 이에 대해 디스크 또는 RAID 유닛과 유사하게 기능한다. 리모트 미러링 유닛이 저널 링크(206)를 통해 모든 데이터를 로컬 서버(200)로 다시 리-미러링하는 것이 필요하다면, 이에 대해 보조 서버는 필요치 않다.During the transmission step 1316, the mirrored data is transmitted to a remote mirroring unit without a server. This configuration is illustrated in FIG. The remote mirroring unit has hardware and functionality common to conventional servers, but not conventional servers. Servers provide more general functionality than mirroring units. The mirroring unit concentrates on efficiently providing substantially continuous near real time remote data mirroring. The remote mirroring unit functions similarly to the remote mirroring server with respect to the acquisition of data via the journal link 206, but otherwise very similar to the mounted disk. In particular, the remote mirroring unit functions similarly to a disk or RAID unit in this case where a secondary server is attached. If the remote mirroring unit needs to re-mirror all data back to the local server 200 via the journal link 206, then no secondary server is needed for this.

데이터가 로컬 미러링 유닛(204)으로부터 목적지의 리모트 미러링 유닛에 송신된 후, 리모트 미러링 유닛은 여러가지 일을 할 수 있다. 예를 들어, 리모트 미러링 유닛은 수신된 데이터 패킷을 단일 외부 디스크(614)에 기록되는 데이터 블럭들로 변환할 수 있다. 리모트 미러링 유닛은 이 데이터 패킷들을 디스크 블럭들로변환하고 이들을 내부 디스크 서브시스템 및/또는 디스크 파티션에 기록할 수 있다. 리모트 미러링 유닛은 패킷 데이터를 수신하고, 이를 디스크 데이터 블럭들로 변환하고, 이를 외부 데이터 서브시스템의 형태로 RAID 유닛(312)에 기록하는데, 이때 데이터를 "비지능적인" 디스크 서브시스템 상의 다수의 디스크들에 걸쳐 데이터를 스트라이프하기 위해 내부 스트라이핑(RAID) 소프트웨어를 이용한다. 패킷들로부터 디스크 블럭 데이터로 그리고 스트라이프드(RAID) 데이터로의 이러한 변환은 외부 "비지능적" 디스크 서브시스템에 대한 스토리지와 함께 하드웨어 제어기와 관련 드라이버를 통해서도 역시 일어난다. 리모트 미러링 유닛은 외부의 지능적인 RAID 서브시스템(312)에도 역시 기록할 수 있는데, 디스크 블럭들은 데이터 스트림으로 디스크 서브시스템에 기록되고 지능적인 RAID 서브시스템에 의해 스트라이프된다.After data is sent from the local mirroring unit 204 to the remote mirroring unit of the destination, the remote mirroring unit can do various things. For example, the remote mirroring unit may convert the received data packet into data blocks written to a single external disk 614. The remote mirroring unit can convert these data packets into disk blocks and write them to an internal disk subsystem and / or disk partition. The remote mirroring unit receives the packet data, converts it into disk data blocks, and writes it to the RAID unit 312 in the form of an external data subsystem, where the data is stored on a plurality of " intelligent " disk subsystems. Use internal striping (RAID) software to stripe data across the disks. This conversion from packets to disk block data and to striped (RAID) data also takes place through the hardware controller and associated drivers, along with storage for the external “intelligent” disk subsystem. The remote mirroring unit can also write to an external intelligent RAID subsystem 312, where the disk blocks are written to the disk subsystem as data streams and striped by the intelligent RAID subsystem.

수신 데이터를 즉각적으로 리모트 미러(312 혹은 614)에 기록하기보다는, 리모트 미러링 유닛은 데이터를 먼저 리모트 버퍼에 기록한 다음 데이터의 "서명"의 타입 (체크썸이나 순환 잉여 검사(Cyclic Redundancy Check) 값)으로 로컬 미러링 유닛에 다시 송신할 수 있다. 그러면, 로컬 미러링 유닛은 데이터를 ACK-ACK 또는 NAK-ACK (서명의 확인에 기초하여) 하고, 로컬 미러링 유닛으로부터 ACK-ACK를 수신한 때에만, 리모트 미러링 유닛은 데이터를 리모트 버퍼로부터 리모트 미러에 넘길 것이다. 이러한 실시예들에 있어서, 리모트 미러링 유닛이 로컬 미러링 유닛으로부터 데이터 뿐만 아니라 원래의 서명을 수신한다면, 리모트 미러링 유닛은 원래 서명이 정확하게 확인되지 않는 경우 원래의 데이터 전송을 NAK할 것이다.Rather than writing the received data to the remote mirror 312 or 614 immediately, the remote mirroring unit first writes the data to the remote buffer and then the type of "signature" of the data (checksum or cyclic redundancy check value). Can be sent back to the local mirroring unit. The local mirroring unit then ACK-ACKs or NAK-ACKs the data (based on the confirmation of the signature), and only when receiving the ACK-ACK from the local mirroring unit, the remote mirroring unit transfers the data from the remote buffer to the remote mirror. Will pass. In such embodiments, if the remote mirroring unit receives the original signature as well as data from the local mirroring unit, the remote mirroring unit will NAK the original data transmission if the original signature is not correctly verified.

보다 일반적으로, 데이터를 ACK하기 위한 여러가지 방법들이 가능하다. 예를 들어, 어떤 사람은 리모트 미러링 유닛과 로컬 미러링 유닛을 대등한 것으로 볼 수도 있고, 그렇지 않고 하나를 다른 하나의 서브시스템으로 볼 수 있다. 이 경우, 리모트 미러링 유닛 상에서, ACK는 리모트 미러 디스크 자체로부터 (아마도 그의 캐쉬로부터) 나오고, 로컬 미러링 유닛 상에서는, ACK가 로컬 미러 디스크 자체로부터 (아마도 그의 캐쉬로부터) 나오게 될 것이다. 그러나, 로컬 미러링 유닛 상에서는, ACK는 호스트를 ACK하기 전에 리모트 미러링 유닛으로부터, 단지 저니 링크의 로컬 말단으로부터는 필요로 되지 않을 것이다. 로컬 미러링 유닛 상에서는 로컬 버퍼로부터의 블럭들을 제거하기 전에 리모트 미러링 유닛으로부터의 ACK를 기다리는 것이 현명할 것이나, 이것은 호스트를 ACK한 오랜 후에 행해질 수 있다.More generally, several methods for ACKing data are possible. For example, one person may consider the remote mirroring unit and the local mirroring unit to be equivalent, or may view one as another subsystem. In this case, on the remote mirroring unit, the ACK will come from the remote mirror disk itself (possibly from its cache), and on the local mirroring unit, the ACK will come from the local mirror disk itself (possibly from its cache). However, on a local mirroring unit, ACK will not be needed from the remote mirroring unit, only from the local end of the Journey link before ACKing the host. On the local mirroring unit it would be wise to wait for an ACK from the remote mirroring unit before removing the blocks from the local buffer, but this can be done after a long ACK of the host.

적어도 하나의 보조 서버(300)가 시스템 내에 존재한다면 추가의 단계들이 가능하다. 예를 들어, 리모트 미러링 유닛은 데이터를 서버의 네트워크 운영 시스템을 통해 리모트 서버(300)에 직접 중계할 수 있다. 이 운영 시스템은 액티브 또는 패시브 상태에 있을 수 있다. 어느 경우라도, 접속(302)을 통해 수신된 데이터는 서버(300) 운영 시스템을 통해 내부 로컬 디스크 서브시스템에 기록될 수 있다. 이 방법은 리모트 지점에서 각 운영 시스템에 대해 특별한 소프트웨어를 필요로 한다. 리모트 미러링 유닛은 또한 리모트 미러링 유닛과 보조 서버(300) 간의 데이터 송수신을 하기 위해 인터넷-기반 데이터 윈도우를 사용할 수 있다. 이 데이터 윈도우는, 브라우저 인터페이스에 대한 플러그-인 익스텐젼 혹은 MicrosoftActiveX 익스텐젼과 같은, 코어 운영 시스템에 대한 인터넷 콤포넌트 익스텐젼을 통한 것일 수 있다.Additional steps are possible if at least one secondary server 300 is present in the system. For example, the remote mirroring unit may relay data directly to the remote server 300 through the server's network operating system. This operating system can be in an active or passive state. In either case, data received via connection 302 may be written to an internal local disk subsystem via server 300 operating system. This method requires special software for each operating system at the remote point. The remote mirroring unit can also use an internet-based data window to send and receive data between the remote mirroring unit and the secondary server 300. This data window may be through an Internet component extension to the core operating system, such as a plug-in extension to the browser interface or a MicrosoftActiveX extension.

상기의 설명에 있어서, 로컬 미러링 유닛은 미러링된 데이터를 하나의 또는 다수의 리모트 미러링 유닛에 중계하기에 충분히 "지능적"일 수 있다. 도 12에 도시된 바와 같은 1 대 다 시스템은 제각기의 저니 링크(206)에 의해 싱글 멀티-포트형 로컬 미러링 유닛(204)에 접속된 세개의 리모트 미러링 유닛들을 갖고, 멀티-포트 미러링 유닛은 본 발명에 따른 다른 시스템에서 단독으로나 또는 싱글-포트 미러링 유닛과 결합하여 유사하게 사용될 수 있다. 소정의 시스템에서 리모트 미러링 유닛의 개수에 대한 심한 제약은 없다.In the above description, the local mirroring unit may be “intelligent” enough to relay the mirrored data to one or multiple remote mirroring units. A one-to-many system as shown in FIG. 12 has three remote mirroring units connected to a single multi-ported local mirroring unit 204 by respective Journey Links 206, the multi-port mirroring unit being shown here. In other systems according to the invention it may be used similarly or in combination with single-port mirroring units. There is no severe limitation on the number of remote mirroring units in a given system.

리모트 미러링 유닛은 또한 더 큰 오류 허용성을 위해 근거리의 미러링 유닛 및/또는 다른 더 원거리의 리모트 미러링 유닛에게 미러링된 데이터를 중계할 수 있다. 리모트 미러링 유닛은 데이터 미러의 연속적인 일정성과 완결성에 대해 적절히 주시하면서, 부하를 분산하고 오류 허용성을 제공하기 위해 두개 이상의 다음의 리모트 미러링 유닛들 간의 부하 평형을 조율하는 조정 중계소와 같은 역할을 할 수 있다. N개의 리모트 미러링 유닛들은 보다 향상된 오류 허용성을 제공하기 위해 서로 접속될 수 있고, 동일한 네트워크 어드레스 또는 도메인 네이밍 시스템(Domain Naming System, "DNS") 이름을 가질 수 있다. 이 여러 방법들의 조합도 역시 사용될 수 있다.The remote mirroring unit can also relay the mirrored data to the near-field mirroring unit and / or other farther remote mirroring unit for greater error tolerance. The remote mirroring unit acts as a coordination relay that coordinates the load balance between two or more of the following remote mirroring units to balance the load and provide error tolerance, with proper attention to the continuous consistency and completeness of the data mirrors. Can be. The N remote mirroring units may be connected to each other to provide improved error tolerance and may have the same network address or domain naming system ("DNS") name. Combinations of these various methods can also be used.

리모트 미러링 유닛에 접속된 하나 이상의 분리된 원전히 독립적인 리모트 디스크 서브시스템을 갖는 실시예에서, 리모트 미러링 유닛은 SCSI 마스터(예를 들어) 처럼 기능하고 데이터를 리모트 디스크에 기록한다. 보조 서버(300)가 존재한다면, 이 서버(300)는 SCSI 체인 내의 리모트 미러링 유닛과 리모트 디스크 서브시스템 모두를 따른다. 데이터 미러링 동안, 보조 서버(300)는 전형적으로 슬레이브 및/또는 패시브 상태이다. 미러링된 로컬 서버(200)의 오류의 이벤트에서, 리모트 서버(300)는 외부 볼륨을 마운트하고 SCSI 마스터가 된다. 이와 동시에 리모트 미러링 유닛은 그의 리모트 디스크 서브시스템 드라이버를 디스마운트하고 패시브(슬레이브) 상태로 간다.In an embodiment having one or more separate nuclearly independent remote disk subsystems connected to the remote mirroring unit, the remote mirroring unit functions like a SCSI master (for example) and writes data to the remote disk. If there is a secondary server 300, the server 300 follows both the remote mirroring unit and the remote disk subsystem in the SCSI chain. During data mirroring, secondary server 300 is typically slave and / or passive. In the event of an error of the mirrored local server 200, the remote server 300 mounts the external volume and becomes the SCSI master. At the same time, the remote mirroring unit dismounts its remote disk subsystem driver and goes into a passive (slave) state.

특히, 이것은 도 14에 도시된 것과 같은 구성을 사용하여 달성될 수 있는데, 이 구성은 "이중 호스트" 접속(1400)을 포함한다. 많은 종래의 방법들에서는, 오직 하나의 호스트 어댑터가 전형적으로 LUN(7)과 같은 SCSI 체인 상에 있다. 파워 업 또는 리셋 동안, 호스트는 무엇이 접속되어 있는지를 판정하기 위해 모든 다른 LUN들을 통해 사이클한다. 시스템이 듀얼 호스트 어댑터를 사용한다면, 제2 호스트는 전형적으로 LUN(6)에 있고, 이것은 LUN(0-5)만을 리셋하거나 질의할 것이다. 따라서, LUN(7)은 주 호스트로 여겨지고 LUN(6)은 보조 호스트로 여겨진다. 임의의 이벤트에서 두 호스트들은 도 14에 도시된 바와 같이 접속된 경우 하위의 타겟들에 대한 "액세스"를 갖는다.In particular, this may be accomplished using a configuration such as shown in FIG. 14, which includes a “dual host” connection 1400. In many conventional methods, only one host adapter is typically on a SCSI chain such as LUN 7. During power up or reset, the host cycles through all the other LUNs to determine what is connected. If the system uses dual host adapters, the second host is typically on LUN 6, which will only reset or query LUN 0-5. Thus, LUN 7 is considered the primary host and LUN 6 is considered the secondary host. In any event both hosts have "access" to underlying targets when connected as shown in FIG.

이중 호스트 접속 자체는 신규한 것은 아니다. 특히, BusLogic EISA 카드들과 Novell NetWare 서버와의 이중 호스트 접속은 공지되어 있다. 그러나, 이 Novell 서버가 요구에 따라 그의 파일 할당 테이블을 리프레시하지 못하는 무능은 이 경우에 이중 호스트 접속에 의해 제공된 기능을 실제적으로 의미없게 만든다.이중 호스트 접속에 관한 일반적인 정보는 온라인 SCSI FAQ을 포함하는 소스들로부터 공개되어 있다. 이중 호스트 접속이 사용되지 않는다면, 리모트 서버(300)는 드라이버, NLM, 및/또는 미러링 전용의 다른 소프트웨어를 필요로 하여 리모트 서버(300)는 미러링된 데이터를 리모트 미러링 유닛으로부터 직접 수신하여 이를 가능한 차후의 사용을 위해 저장할 수 있다.The dual host connection itself is not new. In particular, dual host connectivity between BusLogic EISA cards and Novell NetWare servers is known. However, the inability of this Novell server to refresh its file allocation table on demand makes the functionality provided by the dual host connection in this case practically meaningless. General information about dual host connections includes an online SCSI FAQ, including It is open to the public. If dual host connectivity is not used, the remote server 300 requires a driver, NLM, and / or other software dedicated to mirroring so that the remote server 300 can receive the mirrored data directly from the remote mirroring unit and possibly do so later. Can be saved for use.

이중 호스트 구성(1400)을 사용하는 본 발명에 따른 실시예에 있어서, 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)은 전환이 행해지기 위해 중단하라는 명령을 받을 때까지 RAID 유닛(312) 또는 다른 리모트 디스크 서브시스템을 제어한다. 이 시간 동안, 리모트 미러링 유닛은 리모트 데이터 미러링을 수행하고 SCSI 마스터처럼 데이터를 본 명세서에서 설명하고 있는 바와 같이 RAID 유닛(312)에게 보낸다. 이 시간 동안, Novell 또는 다른 보조 서버(300)는 패시브 (디스마운트) 상태에 있다. 이것은 그렇지 않으면 도 14에 도시된 이 대 일 방식으로 서버(300), 리모트 미러링 유닛, 및 RAID(312) 또는 다른 리모트 디스크 서브시스템을 함께 기록함에 의해 발생하게 될 피해를 방지한다.In an embodiment in accordance with the present invention using dual host configuration 1400, remote mirroring unit 208, 308, 408, 508, 608, or 708 is a RAID unit until commanded to abort for the switchover to take place. 312 or other remote disk subsystem. During this time, the remote mirroring unit performs remote data mirroring and sends data to the RAID unit 312 as described herein as the SCSI master. During this time, Novell or another secondary server 300 is in a passive (dismounted) state. This avoids the damage that would otherwise be caused by writing the server 300, remote mirroring unit, and RAID 312 or other remote disk subsystem together in this one-way manner shown in FIG.

전환하기 위해, 리모트 미러링 유닛은 RAID 유닛(312)을 디스마운트하고 서버(300)는 RAID 유닛(312)을 마운트한다. 그런 다음 서버(300)는 SCSI 마스터가 된다. 반드시 보조 서버 SCSI 카드 선택을 기대할 수 있거나 실시할 수 있는 것은 아니므로, 리모트 미러링 유닛은 바람직하게 보조 호스트 포지션(LUN(6))을 갖는다. 두개의 머신들이 나타날 때, 리모트 미러링 유닛은 그의 드라이버가 파워업될 때 제2 리셋을 경험할 것이다. 이것은 정상적이지만, 리모트 미러링 유닛은 디바이스 드라이버 레벨에서 복원 가능해야 한다. 이중 호스팅 (이중 채널이 아님) 방법을 이용함으로써, 케이블링은 정상적으로 종단된 SCSI 체인이 되고, 더 이상의 하드웨어가 필요치 않다. 전환은 스토리지 서브시스템 및/또는 드라이버 디스마운트, 마운트, 및 관련 작동을 통해 소프트웨어에 의해 완전히 달성될 수 있다.To switch, the remote mirroring unit dismounts the RAID unit 312 and the server 300 mounts the RAID unit 312. The server 300 then becomes a SCSI master. The remote mirroring unit preferably has a secondary host position (LUN (6)) because it may not necessarily be expected or feasible to select a secondary server SCSI card. When two machines appear, the remote mirroring unit will experience a second reset when its driver is powered up. This is normal, but the remote mirroring unit must be recoverable at the device driver level. By using the dual hosting (not dual channel) method, cabling becomes a normally terminated SCSI chain and no more hardware is required. The switchover can be fully accomplished by software through storage subsystem and / or driver dismounting, mounting, and related operations.

이전의 논의는 묵시적으로 리모트 미러링 유닛과 보조 서버(300) 간의 일 대 일 관계를 가정한 것으로 볼 수 있다. 그러나, 소프트웨어 또는 기계적 SCSI 스위치(예를 들어)는 리모트 미러링 유닛을 몇개의 잠정적인 호스트 서버들(300)에 접속할 수 있도록 채용될 수 있다. 광섬유 채널과 같은 프로토콜에서 그리고/또는 SAN 아키텍쳐에서는, 전통적인 SCSI 마스터/슬레이브 관계가 없다. 그 대신 DNS 및/또는 뉴메릭 어드레스를 통해 발생하는 어드레스 관계이다. 이러한 시스템에서, 전환은 어드레스 변화를 통해 발생하고, 리모트 미러링 유닛은 여전히 패시브 상태로 갈 것이다.The previous discussion can be seen to implicitly assume a one-to-one relationship between the remote mirroring unit and the secondary server 300. However, a software or mechanical SCSI switch (e.g.) may be employed to connect the remote mirroring unit to some potential host servers 300. In protocols such as fiber optic channels and / or in SAN architectures, there is no traditional SCSI master / slave relationship. Instead it is an address relationship that occurs through DNS and / or numeric addresses. In such a system, the transition occurs via an address change and the remote mirroring unit will still go passive.

리모트 미러링 유닛은 완전한 네트워크 운영 시스템을 운영하도록 만들어질 수 있다. 재난 발생 시, 리모트 미러링 유닛이 액티브 상태로 될 수 있고 리모트 미러링 유닛이 미러링된 데이터를 보내는 디스크 서브시스템들에 관한 정보를 위하여 완전한 기능적인 서버로 될 수 있다. 리모트 미러링 유닛은 또한 로컬 사이트에서 특정한 호스트 운영 시스템 하에서 서버를 에뮬레이트할 수 있도록 해주는 에뮬레이션 프로그램을 운영할 수 있다. 리모트 미러링 유닛은 또한 미러링 하에서 채택했던 운영 시스템을 셧다운하기 위한 프로그램과, 임의의 관련 프로그램들을 운영할 수 있고, 그런 다음 특정한 호스트 운영 시스템 하에서 별개의 내부 디스크또는 별개의 파티션으로부터 재시작할 수 있다.The remote mirroring unit can be made to operate a complete network operating system. In the event of a disaster, the remote mirroring unit can be active and become a fully functional server for information about the disk subsystems that send the mirrored data. The remote mirroring unit can also run an emulation program that allows the local site to emulate a server under a particular host operating system. The remote mirroring unit may also run a program for shutting down the operating system adopted under mirroring, and any related programs, and then restart from a separate internal disk or separate partition under a particular host operating system.

리모트 미러링 유닛은 또한 정상적으로는 데이터 미러링에만 전용이기보다는 보조 서버로서 계속적으로 실행하도록 강화될 수 있다. 그러나, 이렇게 하는 것은 미러링 성능을 심각하게 감소시킬 수 있을 뿐만 아니라, 미러링이 완전히 실패하는 위험이 증가할 수 있다.The remote mirroring unit can also be enhanced to continue running as a secondary server rather than normally dedicated only to data mirroring. However, doing so can seriously reduce mirroring performance, as well as increase the risk of mirroring failing completely.

리모트 미러링 유닛이 로컬 미러링 유닛(204)과 본질적으로 동일한 소프트웨어를 갖고 있다면, 리모트 미러링 유닛은 로컬 미러링 유닛(204)으로서 기능할 수 있다. 예를 들어, 사이트 A로부터 사이트 B로 사이트 C로 미러링할 때, 사이트 B의 미러링 유닛은 사이트 A에 대해서는 리모트 미러링 유닛이고, 사이트 C에 대해서는 로컬 미러링 유닛이다. 리모트 미러링 유닛은 또한 리모트 지점으로부터 다시 소스로의 복원에 있어서 로컬 미러링 유닛(204)으로서 기능할 수 있다. 즉, 사이트 A로부터 사이트 B로 미러링할 때, 사이트 A의 미러링 유닛은 로컬이고, 사이트 B의 미러링 유닛은 리모트이지만, 데이터를 사이트 B로부터 사이트 A로 복원시에는 사이트 A의 미러링 유닛은 리모트이고 사이트 B의 미러링 유닛은 로컬이다.If the remote mirroring unit has essentially the same software as the local mirroring unit 204, the remote mirroring unit can function as the local mirroring unit 204. For example, when mirroring from site A to site B from site A, the mirroring unit of site B is a remote mirroring unit for site A and a local mirroring unit for site C. The remote mirroring unit can also function as the local mirroring unit 204 in restoring from the remote point back to the source. That is, when mirroring from site A to site B, the mirroring unit of site A is local, and the mirroring unit of site B is remote, but when restoring data from site B to site A, the mirroring unit of site A is remote and site The mirroring unit of B is local.

마지막으로, 일부 발명 시스템들은 다중 사용자 세션을 수용할 수 있는데, 사용자 세션은 미러링된 데이터 릴레이 혹은 저장 세션이 될 수 있다. 상기 시나리오의 다중 조합과 예들은 따라서 적절한 환경에서 동시에 일어나거나 별개로 일어날 수 있다. 특정 조합을 만들기 위해서는 더 많은 프로세서, 디스크, 메모리 등을 포함할 필요가 있다.Finally, some inventive systems can accommodate multiple user sessions, which can be mirrored data relay or storage sessions. Multiple combinations and examples of the above scenarios can thus occur simultaneously or separately in a suitable environment. To make a specific combination, you need to include more processors, disks, memory, and so on.

이러한 다양한 수단과 기술들은 또한 본발명에 따라 1 대 다수 미러링 시스템 혹은 다 대 1 미러링 시스템에 사용될 수 있다. 같은 방법으로, 패킷에 관련된 수단과 기술들에 대한 논의가 IP, 이더넷, 토큰 링, 혹은 다른 패킷화된 데이터 환경과 관련하여 이루어질 수 있으며, 다른 지원 환경에서도 패킷을 사용하는 대신 데이터 스트림으로 기록할 수 있을 것이라는 것을 이해할 것이다.These various means and techniques can also be used in one to many mirroring systems or many to one mirroring systems in accordance with the present invention. In the same way, discussions of the means and techniques associated with packets can be made with respect to IP, Ethernet, Token Ring, or other packetized data environments, where other supported environments can write data streams instead of using packets. Will understand.

이상과 본 명세서의 다른곳에 언급한 단계들은 한 단계의 결과가 다른 단계의 입력이 되는 경우들을 제외하고는 다양한 순서로 그리고/또는 동시에 수행될 수 있을 것이다. 예를 들어, 서로 연결되는 단계들 1034, 1036, 1038은 다양한 순서로 그리고/또는 동시에 수행될 수 있을 것이지만, 테스트 단계 1310의 많은 동작들은 적어도 명목상으로는 일부 혹은 전부가 연결되어 있다는 것을 전제로 하고 있다. 데이터를 단계 1312 동안 로컬 미러링 유닛에 전송하기 위해서는 단계 1314 동안 데이터를 링크(206)를 통해 또는 로컬 미러(230)에 전송하는 것이 선행되어야 할 필요가 있다. 반면, 전송단계 1316은 서버가 없는 리모트 미러링 유닛에 전송을 한다면 전송단계 1314를 실행함으로써(혹은 전용 링크(private dedicated link)(206)를 사용함으로써) 수행될 것이다. 도시된 단계들은 해당 청구항에 기재되지 않았다면, 본 상세한 설명에서 선택적인 것으로 기재되었는가와 상관없이 생략될 수도 있다. 전술한 단계들을 반복, 결합하거나, 다르게 명명할 수도 있다.The steps mentioned above and elsewhere in this specification may be performed in various orders and / or concurrently except when the result of one step is input to another step. For example, steps 1034, 1036, and 1038 that are connected to each other may be performed in various orders and / or concurrently, but many of the operations of test step 1310 are premised at least in part or in whole. have. In order to transmit data to the local mirroring unit during step 1312, transmitting data over the link 206 or to the local mirror 230 during step 1314 needs to be preceded. On the other hand, transmission step 1316 may be performed by executing transmission step 1314 (or by using a private dedicated link 206) if transmitting to a remote mirroring unit without a server. The steps shown may be omitted, whether or not described as optional in the present description, unless otherwise indicated in the claims. The above-described steps may be repeated, combined, or otherwise named.

이제 도 15와 그와 직접 관련한 기술을 주목하면서 본 발명의 실시예에 따라 (개별적으로 혹은 다양한 조합으로) 사용될 부가적인 도구들과 기술들, 즉, 로컬-리모트 역할 교대, 핫 스탠드바이 서버 상태 구현, 몇몇 교대 버퍼 콘텐츠와 버퍼링 스킴, 트랜잭션닝, 다대일 미러링(도 5-10에서 이미 기술), 빈번히 액세스되는데이터의 식별, 권한없는 방식으로 제2 서버등을 사용하는 것을 논의한다.15, now and directly related technologies, additional tools and techniques to be used (individually or in various combinations) in accordance with an embodiment of the present invention, namely local-remote role shift, hot standby server state implementation. Some alternate buffer content and buffering schemes, transactionalization, many-to-one mirroring (as already described in Figures 5-10), the identification of frequently accessed data, the use of a second server in an unauthorized manner, and the like are discussed.

역할 교대Role shift

서버(200)과 같은 주서버가 작동하지 않게 되고 변경 데이터가 완전히 리모트 사이트로 흘러들어 오게되면, 유닛(204 및 208)과 같은 미러링 유닛들은 역할을 바꾸고, WAN상의 서버(300)과 같은 리모트 서버가, 예컨대 네트워크 동료들에게 재난 복구를 할 수 있도록 한다. 미라링크의 첫번째 미국특허 제5,537,533호의 양수인은 지속적으로 유효하고 리모트에서 미러링되는 교체 네트워크 서버에 관한 논의를 하였다. 그러나, 역할 교대의 유효성은 명시적으로 논의되지 못했다. 역할 교대에 있어서, 전체 미러링 유닛 아키텍쳐가 사실상 반전된다. 어떤 이벤트가 재난 복구를 요구하더라도 로컬 및 리모트 미러링 유닛들이 살아남는다면, 로컬-리모트 역할 교대 후 원래 리모트 측은 로컬 측으로 보일 것이고 그 데이터 변화는 기존의 로컬, 이제 리모트로 바뀐 측으로 다시 미러링된다.If the main server, such as server 200, becomes inoperative and change data flows completely to the remote site, mirroring units such as units 204 and 208 switch roles, and remote servers such as server 300 on the WAN. For example, it allows disaster recovery to network colleagues. The assignee of Miralink's first US Pat. No. 5,537,533 discussed a replacement network server that is continuously valid and remotely mirrored. However, the validity of role shifts has not been explicitly discussed. In role shift, the entire mirroring unit architecture is inverted in effect. If any event requires disaster recovery, if the local and remote mirroring units survive, the original remote side will appear to be the local side after the local-remote role shift, and the data change is mirrored back to the existing local, now remote side.

일실시예에서, 역할 교대 단계(1506)은 이하와 같이 구현된다. 먼저, "박스" 쌍(유닛(204, 208)과 같은 미러링 유닛)이 동작 변환을 촉진시키기에 이상적으로 구성된다. 다음으로, SCSI 에뮬레이션을 다루는 커넬 모듈이 로컬 박스내에서 활성화되고 리모트 박스내에서는 비활성된다. 이하 논의될 "매체가 준비되지 않음(이하, 매체 동작 불가라고도 함)" 특성은 실질적으로 이 소프트웨어 상태로부터 나온다. 로컬 박스가 그의 모든 변화 데이터를 리모트 박스에 넘겼다면 사용자는 역할 교대를 명령할 수 있다. 이는 로컬 막스의 미러링을 비활성화시키고 리모트 SCSI 에뮬레이션 층을 활성화시켜 리모트 서버가 이제 리모트 미러링 유닛을 설치하도록 명령을 내릴 수 있다. 따라서 미러링 유닛은 각 사이트에서 역할을 교대하고, 거기에 서버의 참여가 영향을 미친다. 미러링 유닛의 현재 역할은 비트플래그나 다른 변수에 의해 내부적으로 표시될 수 있다.In one embodiment, role change step 1506 is implemented as follows. First, "box" pairs (mirror units, such as units 204 and 208) are ideally configured to facilitate motion conversion. Next, the kernel module that handles SCSI emulation is activated in the local box and deactivated in the remote box. The “medium not ready” (hereinafter also referred to as media inoperable) feature to be discussed below substantially comes from this software state. If the local box has handed over all of its change data to the remote box, the user can order a role change. This disables the local max mirroring and enables the remote SCSI emulation layer so that the remote server can now command the remote mirroring unit to be installed. Thus, mirroring units alternate roles at each site, and the participation of servers affects them. The current role of the mirroring unit can be indicated internally by bit flags or other variables.

로컬 역할로 동작하는 미러링 유닛의 전송 버퍼로 사용되는 물리적인 디스크는 미러링 유닛이 1506 역할들을 교대하고 리모트 역할로 동작을 개시할 때 수신 버퍼로 사용된다. 유닛(204)와 같은 로컬 미러링 유닛에서, 이 디스크는 저니 링크(206)에 대한 변경 데이터를 저장하는 전송 버퍼이다. 리모트 미러링 유닛에서, 이 동일 디스크는 수신한 1504 변경 데이터를 확인하여 리모트 측 미러 버퍼 디스크나 다른 비활성 자장장치로 전달할 때까지 유지하는 수신 버퍼이다. 확인 레벨과 전달 시간 레이턴시는 일부 실시예에서 프로그램가능할 것이다.The physical disk used as the transmission buffer of the mirroring unit operating in the local role is used as the reception buffer when the mirroring unit alternates 1506 roles and starts operation in the remote role. In a local mirroring unit, such as unit 204, this disk is a transmit buffer that stores change data for the Journey link 206. In the remote mirroring unit, this same disk is a receive buffer which holds the received 1504 change data until it is delivered to the remote side mirror buffer disk or other inactive magnetic field device. Confirmation level and propagation time latency may be programmable in some embodiments.

매체 동작 불가 상태에서 2차 서버로From medium unavailable to secondary server

"매체 동작 불가" 상태를 이용하면(1508) 2차 서버가 "핫" 스탠드바이 모드에 있게 된다. 그렇지 않으면 리모트 미러링 유닛(308)이 온라인 상에 연결되어 2차 서버가 리모트 미러링 유닛(308)의 존재에 대한 SCSI 체인에 신호를 보낼 수 있게 된 후 2차 서버를 이용할 필요가 없을 것이다. 단계(1508)동안, 리모트 미러링 유닛의 SCSI 에뮬레이션 층은 리모트 서버(300)로부터 데이터 크기와 데이터 유효성과 같은 데이터 특성에 대한 교청에 응답하나, 리모트 서버(300)의 데이터 컨텐츠로의 액세스는 부정된다. 서버(300)에 대한 이러한 제한된 응답 조회는 표준 SCSI 응답 포맷을 이용하여 유닛(308)에 의해 제공된다.Using the "media unavailable" state (1508), the secondary server is in "hot" standby mode. Otherwise, there will be no need to use the secondary server after the remote mirroring unit 308 is online to enable the secondary server to signal the SCSI chain for the presence of the remote mirroring unit 308. During step 1508, the SCSI emulation layer of the remote mirroring unit responds to requests for data characteristics such as data size and data validity from the remote server 300, but access to the data content of the remote server 300 is denied. . This limited response query to server 300 is provided by unit 308 using a standard SCSI response format.

대안적으로, 연결된 리모트 미러링 유닛(308)없이 2차 서버(300)를 가져올수 있다. 결과적으로 장애 후에, 케이블이 연결되면 장치 체인의 SCSI 탐침이 새 하드웨어를 검지해야 한다. 서버(300)은 이후에 장치(308)을 장착한다. 반대로, 1508 매체 동작불가 모드를 이용하는 바람직한 접근으로 볼륨(308)에는 전원이 인가되고 검지되나 장애극복이 요구될 때까지 장착되지 않은 상태로 남는다.Alternatively, the secondary server 300 can be brought without the connected remote mirroring unit 308. As a result, after a failure, when the cable is connected, the SCSI probe of the device chain must detect the new hardware. Server 300 then mounts device 308. Conversely, with a preferred approach using the 1508 medium inoperable mode, the volume 308 remains powered and detected but not mounted until failover is required.

원형 버퍼Circular buffer

두 개의 부가적인 동작모드가 주어진 시간 및/또는 대역폭에서 복구할 수 있는 "불일치" 미러 모드(즉, 더 이상 완전한 시간 지연 미러)를 허용함으로써 "버퍼내의 순환 데이터 큐의 유용성을 확장한다. 이 원형 큐는 또한 "확장가능한 지능형 버퍼(scalable intelligent buffer)", "원형 버퍼 큐", 혹은 "CBQ"로 불린다. 이것은 일반 모드에서 디스크 공간을 FIFO(First In First Out)구조로 사용하며, 고수위에 달할 EO까지 변화 블럭을 저장하는데, 고 수위점에서 미러링 유닛은 실제 변경 데이터를 저장하는 대신 변경도니 LBN(Logical Block Numbers)을 저장한다(1510). 이는 저장 크기의 감소로 CBQ(128 LBN[각 4 바이트] 대 하나의 변경 데이터 블럭[각 512 바이트])를 만들고, 그로 인해 CBQ가 채워지는 속도를 줄이고, 더 많은 시간이 저니 링크(206)의 복구에 주어진다는 것을 나타낸다. 저니 링크(206)가 CBQ가 완전히 채워질만큼 충분히 다운으로 유지된다면, 완전한 재미러가 요구된다. 그러나, 시스템은 단지 변화된 블럭을 한번만 복구하기를 요구하는 것이므로, CBQ는 가상 FAT(File Allocation Table) 또는 유사한 블럭(즉, 클러스터나 섹터) 할당 구조로 들어갈 수 있는데, 체크섬 혹은 순환 리던던시 체크(Cyclic Redunduncy Check)값을 각 블럭에 대해 CBQ로 저장한다. 저니 링크(206)가 복구될때, 리모트 미러링 유닛이 재미러를 필요로 하는 로컬 미러링 유닛에 의해 통지를 받게되며 (예컨대) 디스크의 어느 클러스터를 보낼지를 결정하도록 하기 위하여 CRC 블럭 등을 로컬 미러링 유닛과 교환하게 된다. 예를 들어, 로컬 드라이브와 리모트 드라이브 사이에 데이터가 100% 다르다고 가정한 초기 미러와 달리 하드 드라이브의 90% 이상이 변하지 않아서 링크(206)로 전송시킬 필요가 없을 수도 있다.Two additional modes of operation extend the usefulness of circular data queues in a "buffer" by allowing a "mismatched" mirror mode (i.e., no longer a complete time delay mirror) that can recover at a given time and / or bandwidth. Queues are also called “scalable intelligent buffers”, “circular buffer queues”, or “CBQs.” They use disk space as a FIFO (First In First Out) structure in normal mode and can reach high levels. Instead of storing the actual change data, the mirroring unit stores the change block Logical Block Numbers (LBNs) (1510) at a high water level (1510), which reduces CBQ (128 LBN [4 each). Bytes] versus one change data block [each 512 bytes], thereby reducing the rate at which the CBQ is filled, indicating that more time is given to the recovery of the Journey link 206. If the knee link 206 is kept down enough to completely fill the CBQ, a full fun is required, but since the system only needs to recover changed blocks once, CBQ is a virtual file allocation table (FAT) or A similar block (i.e. cluster or sector) allocation scheme can be entered, storing checksums or cyclic redunduncy check values as CBQs for each block. You will be notified by local mirroring units that need fun, and you will exchange CRC blocks, etc., with local mirroring units to determine which cluster of disks to send (for example). Unlike the initial mirror, which assumes that the data is 100% different between the rings, more than 90% of the hard drives are unchanged. It may not be necessary to send to ch 206.

SCSI 스누프 버퍼링SCSI snoop buffering

일부 실시예에서는, 일반 모드에서 확장가능한 지능형 버퍼(예컨대, 원형 버퍼 큐)가 미러링 유닛이 실제 변경 데이터 대신 변경 LBN을 저장하는 임계값에 도달할 대까지 변경 블럭을 저장한다(1510). "SCSI 스누프 버퍼링"을 이용하는 변형에 있어서, 데이터 미러링 시스템은 블럭 데이터를 자르지 않고 실제의 SCSI 명령을 버퍼링하고, 이들 SCSI 명령을 버퍼링한다. 이는 이하와 같이 이루어지는데, 도 15에 도시한 단계(1512)의 다른 실시예에서는 본 명세서에 공통으로 1512로 표시된 하나 이상의 특정 동작을 생략하거나 포함할 수 있다.In some embodiments, an expandable intelligent buffer (eg, circular buffer queue) in normal mode stores the change block until the mirroring unit reaches a threshold that stores the change LBN instead of the actual change data (1510). In a variant using "SCSI snoop buffering", the data mirroring system buffers the actual SCSI commands without truncating the block data and buffers these SCSI commands. This is accomplished as follows, in another embodiment of step 1512 shown in FIG. 15, one or more specific operations, denoted 1512 in common herein, may be omitted or included.

미러링 장치(204)의 타겟 어뎁터는 수동적인 방식으로 SCSI 버스를 청취한다. 여기서 "수동적"이라 함은 물리적 장치(204)가 전기적으로 버스에 접속되지 않는다는 것을 의미하는 것이 아니라, 버스에 보이는 것을 기록한다는 것(1512)을 의미한다. 타겟 어뎁터는 실질적으로 유사하나, SCSI 분석기에 사용하도록 의도하지 않은 물리적 하드웨어를 이용할 것이다. SCSI 분석기는 분석적인 도구로 사용자가 SCSI 버스의 활동성을 실질적으로 간섭하지 않고 모니터할 수 있다. 본 발명의 타겟 어댑터에 의해 SCSI 버스로부터 수집된 데이터(1512)는 이후에 실제의 특정 개입자나 SCSI 버스의 "타겟"에서 나오거나 들어가는 활동을 위해 해석된다. 이러한 데이터는 SCSI 버스의 1412에 도시된 밀폐형 SCSI 커맨드 세트를 포함한다.The target adapter of the mirroring device 204 listens to the SCSI bus in a passive manner. “Passive” here does not mean that the physical device 204 is not electrically connected to the bus, but rather records 1512 what is seen on the bus. The target adapter is substantially similar, but will use physical hardware not intended for use with a SCSI analyzer. The SCSI analyzer is an analytical tool that allows the user to monitor the activity of the SCSI bus without substantially interfering with it. The data 1512 collected from the SCSI bus by the target adapter of the present invention is then interpreted for activity in or out of a particular target or actual "target" of the SCSI bus. This data includes the hermetic SCSI command set shown at 1412 of the SCSI bus.

1512 필터 기준을 만족하는 커맨드 즉, 관련 참여 SCSI 버스 만을 포함하는 커맨드는, 이후 큐가 되어 적절한 버퍼링 알고리즘을 사용하여 관찰할 수 있다. SCSI 버스로부터 수집된 (1512) 데이터는 커맨드를 인지하거나(1512) 버스의 특정 참가자로부터 응답하는 것 이상으로 분석되거나 해석될 필요는 없다. 그러나, (a) 버스상의 호스트 제어기로부터의 판독성 요청을 (b) 버스상의 호스트 제어기로부터의 기입성 커맨드로부터 나누는(1512) 동작이 취해질 수 있다. 기입성 커맨드를 버퍼링함으로써(1512), 버퍼는 데이터 변경, 혹은 SCSI 버스에 타겟 참여자의 상태를 변경하는 것과 관련된 트랜잭션만을 포함할 것이다.Commands that meet the 1512 filter criteria, i.e., commands that only include the associated participating SCSI buses, can then be queued and observed using the appropriate buffering algorithm. 1512 data collected from the SCSI bus need not be analyzed or interpreted beyond acknowledging the command or responding from a particular participant on the bus. However, operation 1512 may be taken to (a) divide the readability request from the host controller on the bus (b) from the writable command from the host controller on the bus. By buffering the writable command 1512, the buffer will only contain transactions that involve changing data, or changing the state of the target participant on the SCSI bus.

버퍼링된 SCSI 커맨드 데이터는 저니 링크(206)과 같은 통신 링크를 가로질러 제2 미러링 유닛(208, 308 등)으로 전달된다(1502). 수신된 후(1504), 커맨드는 제2 물리적으로 분리된 SCSI 버스와 동일하거나 유사한 참여자에 반복됨으로써 "재실행"되는데(1014), 이는 제1 버스에서 상대와 동일 상태에서 시작한다. 이러한 방법으로 제2 SCSI 버스상의 복제 타겟 참가자는 동일 상태에 놓일 것이고, 원래의 SCSI 버스로부터 커맨드가 판독될 때 동시에 원래의 타겟과 같이 동일 데이터를 포함하게 될 것이다. SCSI 버스가 아닌 버스가 커맨드 수취와 재생, 그리고 본 발명의 다른 양상에서 이용될 수 있을 것이다.The buffered SCSI command data is passed 1502 to a second mirroring unit 208, 308, etc. across a communication link, such as the jonny link 206. After being received (1504), the command is “replayed” by repeating on a participant that is the same or similar to the second physically separated SCSI bus (1014), which starts in the same state as its counterpart on the first bus. In this way the replication target participant on the second SCSI bus will be in the same state and will contain the same data as the original target at the same time as the command is read from the original SCSI bus. A bus other than the SCSI bus may be used for command receipt and playback and other aspects of the present invention.

본 미러링 시스템을 구현할 때, 판독 요청과 기입 요청간에 바람직하지 못한 미세한 상호작용을 관찰하는 것이 중요하다. 관찰되는 SCSI 버스 참가자가 보이지는 않지만 은연중에 이전의 기입 동작에 따른 이후의 판독 동작에 대한 행동을 변화시키는 내부 상태를 유지하고 있다면 특히 그러하다.When implementing the present mirroring system, it is important to observe undesirable fine interactions between the read request and the write request. This is especially true if the observed SCSI bus participant is invisible, but is stealthily maintaining an internal state that changes the behavior for subsequent read operations following the previous write operation.

부가적으로, 커맨드가 수취되는 모니터되는 SCSI 버스의 참가자로부터 보고되는 에러는 일관성있게 제2 SCSI 버스에서 다루어질 필요가 있는데, 동일 에러를 발생시킬 필요는 없을 것이다. 또한, 제2 SCSI 버스에서 발생되는 에러 조건은 제2 SCSI 버스를 제1 SCSI 버스와 불일치시킨다.In addition, errors reported from participants of the monitored SCSI bus from which commands are received need to be handled consistently on the second SCSI bus, but will not necessarily cause the same error. In addition, an error condition that occurs on the second SCSI bus makes the second SCSI bus inconsistent with the first SCSI bus.

일시적 트랜잭셔닝(Temporal Transactioning)Temporal Transactioning

일시적 트랜잭셔닝(1516)은 미러링 유닛(204, 208 등) 버퍼를 이용하여 트랜잭션 파일시스템 기능성을 제공한다. 단계(1516)의 다른 실시예에는 본 명세서에 1516으로 공통적으로 표시한 하나 이상의 특정 활동이 포함되거나 생략될 수 있다는 것을 주의한다. 동작 시스템 에이전트 및/또는 커넬 웨지로 트랜잭션을 지원하지 않는 파일시스템의 동작의 후퇴(1516)를 지원하기 위하여 파일 개폐, 파일 동작 타임스탬프를 추적할 것이다.Temporary transactional 1515 provides transaction filesystem functionality using mirroring unit 204, 208, etc. buffers. Note that other embodiments of step 1516 may include or omit one or more specific activities, commonly referred to herein as 1516. File opening and closing, and file operation timestamps will be tracked to support regression 1516 of file system operations that do not support transactions with operating system agents and / or kernel wedges.

여기서, "커넬 웨지"는 동작 시스템을 수정하기 위하여 존재하는 2진 코드나 소스 코드로 고정되는 2진 패치나 소스 코드 패치이다. 이는 커넬 웨지 삽입이 부가적으로 소프트웨어가 링크되거나 삽입되도록 특별히 설계되지 않은 동작 시스템에서 일어나기 때문에, 장치 드라이버나 에이전트와 다르다. 이러한 동작들이 파일 개폐와 함께 발생하는 지점에서 동작 시스템으로 코드를 삽입함으로써, 이들 이벤트에 근거한 활동이 취해질 수 있다.Here, a "kernel wedge" is a binary patch or source code patch that is fixed to binary code or source code that exists to modify the operating system. This differs from device drivers or agents because kernel wedge insertion occurs in operating systems that are not specifically designed to additionally link or insert software. By inserting code into the operating system at the point where these actions occur with file opening and closing, actions based on these events can be taken.

이러한 접근은 미러링과 복제의 혼합으로 보일 수 있을 것인데, 여기서 복제는 가까울 때 파일을 복사하는 것이고 미러링은 기록될 때 열린 파일을 복사하는 것이다. 이 접근은 기록용 파일이 개폐되는 때를 기초로 타임스탬프 혹은 다른 표지를 미러된 데이터에 부착하는 것이다. 따라서, 프로그램에 의해 열린 후 파일에 일어나는 모든 변화는 개폐 사이클과 관련된 것이며 파일이 다시 열린 이후의 변화는 현 사이클과 관련없을 것이다.This approach can be seen as a mixture of mirroring and replication, where replication is copying files when they are close and mirroring is copying open files when they are written. This approach attaches a timestamp or other marker to the mirrored data based on when the recording file is opened and closed. Thus, all changes to the file after being opened by the program are related to the open / close cycle and changes after the file is opened again will not be related to the current cycle.

공간 또는 다른 팩터들의 부족으로 인해, 개/폐 동작이 수행되는 경우 파일과 관련된 특정 블럭을 기억(1516)하는 것이 어려워질 수 있으나, 특정 개/폐 이벤트가 발생하는 정확한 시간을 쉽게 기억(1516)할 수 있고, 블럭이 버퍼로 진입하는 정확한 시간도 쉽게 기억할 수 있다(1516). 따라서, 시간이 지난 후에 시스템 관리자는 웨지에 의해 제공되는 개/폐 로그를 관망(1516)할 수 있고, 특정 주기에 정합하는 변경된-데이터 블럭을 선택적으로 제거할 수 있다.Due to lack of space or other factors, it may be difficult to remember 1516 a particular block associated with a file when an open / close operation is performed, but easily remember 1515 the exact time at which a particular open / close event occurs. The exact time the block enters the buffer can be easily remembered (1516). Thus, after a time, the system administrator can network 1516 the open / close log provided by the wedge and selectively remove modified-data blocks that match a particular period.

이러한 접근법은, 데이터 베이스에서와 같이, 장시간 동안 파일을 오픈하고 장시간동안 데이터를 파일에 기록하는 어플리케이션에서만 사용되는 경우에는 비교적 적은 장점을 제공함을 알아야 한다. 그러나, 이러한 접근법은, 이러한 동작들이 단시간내에 최대한 빨리 발생하므로, 파일 시스템을 보호하거나 우발적으로 중복 기록된 워드 프로세서 파일을 복구하는데(1516) 상당히 유용하다. 파일 시스템 변경은, 워드 프로세서로부터의 파일 세이브 동작에서와 같이, 발생하는 경우 시간내에 정확한 지점에서 적절하게 탐지될 수 있다(1516). 다음에, 이러한 시간에 대응하는 데이터 변경 미러링 동작은 확인될 수 있고(1516), 선택된 데이터 변경 동작은, 미러링을 수행하는 데이터 변경 동작의 스트림으로부터 편집될 수있다(1516).It should be noted that this approach provides a relatively small advantage when used only in applications that open files for long periods of time and write data to files for long periods of time, such as in a database. However, this approach is quite useful for protecting the file system or recovering accidentally overwritten word processor files (1516) as these operations occur as soon as possible within a short time. File system changes may be properly detected (1516) at the correct point in time when they occur, such as in a file save operation from a word processor. Next, the data change mirroring operation corresponding to this time can be confirmed (1516), and the selected data change operation can be edited (1516) from the stream of the data change operation performing mirroring.

트랜잭셔닝(1516)은 리모트 시스템 관리자 또는 버퍼내의 데이터 로그의 변경을 유지하고(1516) 일정 시간동안의 변경을 롤백(roll-back)할 수 있는 다른 프로그램에 의해 성취될 수 있다. 리모트 시스템 관리자는 유닛(208)과 같은 리모트 데이터 미러링 유닛상에 주재하여 통신 링크(206)를 통해 로컬 데이터 미러링 유닛(204)으로부터 데이터 변경 정보를 수신한다(1504, 1516).Transactioning 1516 may be accomplished by a remote system administrator or other program that may maintain changes in the data log in the buffer (1516) and roll back the changes for a period of time. The remote system manager resides on a remote data mirroring unit, such as unit 208, and receives data change information from local data mirroring unit 204 over communication link 206 (1504, 1516).

몇몇 실시예에서, 시스템은 로컬 및 리모트측에 미러 디스크 및 버퍼 디스크를 갖지만, 버퍼(310)과 같이 리모트측의 버퍼 디스크는 리모트 시스템이 어떤 이유로든 더이상 리모트측에 존재할 필요가 없고 로컬용이 되지 않는 한 실제로 사용되지 않으며, 리모트/로컬 역할이 교체되면(1506), 리모트로 미러링된 데이터는 그것이 미러링된 위치로부터 복구될 수 있다. 따라서, 리모트측 버퍼 디스크는 트랜잭션 로그를 유지하는데 이용될 수 있다(1516).In some embodiments, the system has mirror disks and buffer disks on the local and remote sides, but the buffer disks on the remote side, such as buffer 310, need no longer exist on the remote side for any reason and are not local. As long as it is not actually used and the remote / local role is replaced (1506), the remotely mirrored data can be recovered from where it was mirrored. Thus, the remote buffer disk may be used to maintain a transaction log (1516).

로그(들)는 전송 큐와 유사한 구조로 구성될 수 있어서, 데이터 블럭이 세이브되고(1516), 그것(LBN 및 타임스탬프)에 관한 정보도, 순서대로 세이브된다. 디스크에 데이터를 즉시 기록하는 대신에, 본 발명은 데이터를, 버퍼 공간 이용성 및/또는 관리자 선호도에 의해 결정되는 시간동안 버퍼에 저장한다(1516). 그 시간이 다 지나가면, 데이터가 버퍼로부터 제거되어(1516) 미러 이미지에 기록된다(1500). 이 지점에서 관리자는 기록을 취소하는 선택권을 갖지 못한다. 리모트 유닛(208)이 로컬 유닛(204)으로 될 필요가 있으면, 전체 리모트 버퍼(310)는, 동일한 버퍼 공간(310)이 데이터 전송(1500)에 이용되기 전에, RAID 유닛(312)과 같은, 디스크에 위탁될 필요가 있다.The log (s) can be organized in a structure similar to a transmission queue, in which data blocks are saved 1516, and information about them (LBN and timestamps) is also saved in order. Instead of writing data immediately to disk, the present invention stores the data in a buffer for a time determined by buffer space availability and / or manager preference (1516). When that time has passed, data is removed from the buffer (1516) and written to the mirror image (1500). At this point, the administrator does not have the option to cancel the record. If the remote unit 208 needs to be a local unit 204, the entire remote buffer 310 may be replaced by a RAID unit 312, such as before the same buffer space 310 is used for the data transfer 1500. Need to be charged to disk.

더욱 일반적으로, 타임 스탬프 정보를 가진 버퍼를 사용하여 미러된 서버(200) 및 미러된 데이터를 수신하는 리모트 시스템의 버퍼(310)상에서 이미 발생한 사건을 효과적으로 취소(1516)할 수 있으나, 예컨대, RAID 유닛(312)상에서의 미러 이미지에 대해서는 버퍼(310)를 할당하지 못한다. 취소 동작은 관리자에 의해 단지 문제의 블럭을 리모트측의 큐상으로부터, 관리 유틸리티를 사용하여 제거함으로써 수행된다.More generally, a buffer with time stamp information may be used to effectively cancel (1516) events that have already occurred on the mirrored server 200 and the buffer 310 of the remote system receiving the mirrored data, but, for example, RAID The buffer 310 cannot be allocated for the mirror image on the unit 312. The canceling operation is performed by the administrator only by removing the problem block from the queue on the remote side using a management utility.

대안적인 버퍼링 기법Alternative buffering technique

다른 버퍼링 기법이 몇몇 미러링 유닛(204)에서 단순한 순환 큐와 비교되는 버퍼 공간 및 시간을 세이브하기 위해 사용될 수 있다. 블럭들이 수신되는대로 로컬 미러(230)에 기록되고, LBN 번호가 정렬된 큐에 의해서만 세이브되는 것으로 가정한다. 여기에 사용된 바와 같이, "정렬된 큐"는 임의의 큐, 리스트, FIFO, 테이블, 또는 전술한 구조에 따르는 동일한 순서로 아이템을 복구하도록 하는 하나 이상의 데이터 구조의 다른 세트를 지시한다. 특히, 순환 큐는 정렬된 큐의 일례이다.Other buffering techniques can be used to save buffer space and time compared to a simple circular queue in some mirroring units 204. Assume that blocks are written to the local mirror 230 as they are received, and that the LBN numbers are saved only by the ordered queue. As used herein, “sorted queue” refers to any queue, list, FIFO, table, or other set of one or more data structures that allow items to be recovered in the same order according to the structure described above. In particular, a circular queue is an example of an ordered queue.

미러된 블럭이 이미 큐내에 있는 블럭위에 기록되고 리모트 사이트에는 복사(1302)되지 않은 경우에, 이전-존재 블럭은 이전에 기술된 실시예에서 수행되는 것과 동일한 방식(예컨대, 블럭 자체가 스웝 공간에 저장되는 동안, 블럭에 대한 포인터만이 실제 큐에 위치함)으로 버퍼 공간내에 복사된다. 현재의 대안적인 버퍼링 기법은 전체 버퍼가 "컴팩트 모드"에 있도록 하고, 아직까지는 동일한 시간에는 안정적이다. 변경의 변경만이 버퍼링될 수 있다.If a mirrored block is written over a block that is already in the queue and not copied 1302 to the remote site, the pre-existing block is the same way as performed in the previously described embodiment (e.g., the block itself is placed in the swap space). During storage, only pointers to blocks are placed in the buffer space). Current alternative buffering techniques ensure that the entire buffer is in "compact mode" and is still stable at the same time. Only changes in the change can be buffered.

"컴팩트 모드" 및 "통상 모드"는 버퍼링 모드를 나타낸다. 컴팩트 모드는 버퍼 충만과 같은 플레이로 되는 "최선을 다함(do your best)" 전략을 구현한다. 통상 모드는 관리자-정의 또는 다른 프리 버퍼 공간 스레쉬홀드가 도달할 때까지 통상적으로 사용되는 버퍼링 접근법이다. 은유적으로, 스레쉬홀드는 간혹 "고-수위 마크"로 불리는데, 왜냐하면, 수위가 너무 높으면 그것에 대해 무엇인가를 해야 하기 때문이다. 스레쉬홀드가 컴팩트 모드내의 버퍼링 동작에 도달하면, 모든 경우에 있어서 데이터 통합을 더 이상 보장할 수 없는데, 그 이유는 LBN 및 데이터가 아니라, 별경된 LBN 만을 기억할 수 있기 때문이다. 데이터는 로컬 미러(230)에 통상적으로 기록되는데, LBN이 큐로부터 판독되면, 전송될 데이터는 로컬 미러(230)으로부터 판독된다. 여러 경우에, 이것은 잘 수행되고, 모든 데이터는 미러된다."Compact mode" and "normal mode" indicate the buffering mode. Compact mode implements a "do your best" strategy with play like buffer fullness. Normal mode is a commonly used buffering approach until a manager-defined or other free buffer space threshold is reached. Metaphorically, Threshold is sometimes called the "high-water mark" because if the water level is too high, you have to do something about it. Once the threshold reaches the buffering operation in compact mode, data integration can no longer be guaranteed in all cases, because only the LBN and the modified LBN can be stored, not the LBN and data. Data is typically written to the local mirror 230. When the LBN is read from the queue, the data to be transmitted is read from the local mirror 230. In many cases this is well done and all data is mirrored.

그러나, 어떤 경우에는, 파일이 기록되고, 더욱 변경되어 재기록된다. 이러한 변경 양자는 모두 큐에 반영되지만, 제1 변경이 큐로부터 제거되면 전송될 데이터는 실제로는 제2 (또는 후속)변경으로부터의 데이터이고, 따라서 이것은 시간전에 디스크(310/312)상의 리모트 미러에서 나타나게 된다. 이것은, 파일시스템 오브젝트가 종종 중복 기록되기 때문에, 사용자가 개개의 워드 프로세서 파일 보다는 파일 시스템을 미러링하면 상당한 문제가 된다. 그러나, 이것은 "일정 시간에는 동작할 수 있음(might work some of the time)" 기법으로서 아직까지는 어느 정도의 프로텍션을 제공하여, 버퍼로부터 단순하게 동작하는 것보다는 낫다.In some cases, however, the file is recorded, further modified and rewritten. Both of these changes are reflected in the queue, but if the first change is removed from the queue, the data to be transmitted is actually data from the second (or subsequent) change, so that this is the time before the remote mirror on the disk 310/312. Will appear. This is a significant problem if the user mirrors the file system rather than individual word processor files, since file system objects are often overwritten. However, this is a "might work some of the time" technique, which still provides some protection and is better than simply operating from a buffer.

이러한 접근법을 개선하는, 현재의 대안적인 버퍼링 기법은, 많은 부분에서 동일한 방식으로 동작한다. 그러나, 주어진 데이터 블럭으로의 후속적인 기록상에서, 로컬 미러(230)상의 블럭은 복사되어 버퍼 이외의 장소에 저장되어, 버퍼내의 LBN 번호는 후속 데이터 대신에 정정 데이터를 지시하게 된다. 이러한 데이터를 큐의 후미에서 삽입하는 것을 불가능하고; 일반적으로 너무 많은 큐 엘리먼트가 공간을 만들기 위해 이동될 필요가 있다. 그러나, 특정 LBN에 대한 각각의 엔트리는 적절하게 변경될 수 있어 시스템상의 다른 위치에서 테이터 블럭을 참조한다. 예컨대, 제2 저장 영역은 이러한 블럭을 유지하기 위해 로컬 미러링 유닛(204)에 의해 이용될 수 있다.Current alternative buffering techniques, which improve this approach, operate in much the same way. However, on subsequent writes to a given data block, the block on local mirror 230 is copied and stored somewhere other than the buffer, so that the LBN number in the buffer will point to correction data instead of subsequent data. It is impossible to insert such data at the tail of the queue; In general, too many queue elements need to be moved to make room. However, each entry for a particular LBN can be changed as appropriate to reference the data block at another location on the system. For example, the second storage area can be used by the local mirroring unit 204 to maintain this block.

대안적인 버퍼링 기법의 장점은 대부분의 시간중 하나의 동작만이 필요하다는 것이다. 수시로 판독/기록/기록 동작이 발생할 필요가 있는데 즉, 로컬 미러(230)으로부터 블럭 판독, 그것을 임시 저장소내에 기록, 미러내 대신에 임시 저장소내의 블럭에 대한 포인트에 대한 큐내의 LBN 엔트리를 갱신, 이전 데이터 복사분이 저장된 미러(230)에 새로운 블럭을 기록, 및 새로운 블럭의 LBN 엔트리를 큐에 부가하는 것이다.The advantage of an alternative buffering technique is that only one operation is needed most of the time. Read / write / write operations need to occur from time to time, that is, reading blocks from local mirror 230, writing them to temporary storage, updating LBN entries in queues for points to blocks in temporary storage instead of in mirror, and transferring The new block is written to the mirror 230 in which the data copy is stored, and the LBN entry of the new block is added to the queue.

리모트 다 대 1 미러링Remote many-to-one mirroring

이러한 혁신은 여기에 개시된 기술을 포함하는데, 이것은, 개시된 바와 같은 중앙 백업 사이트 또는 서비스 제공자를 갖는 다 대 1 솔루션내의 하드웨어/소프트웨어 플랫폼을 제공하도록 더 적용된다. 로컬 시스템은 전술한 바와 같이 일반적으로 동작한다. 로컬 미러링 유닛(204)은 SCSI 버스를 통해 호스트 서버시스템(200)에 접속하고, 그 후, 예컨대 RAID-1 미러의 일부분과 같이 사용되는 고정 디스크 드라이브로 나타난다. 데이터는 여기서 개시된 바와 같은 동작 상태로 ,로컬 버퍼(210)로부터의 로컬 미러링 유닛(204) 전송 프로토콜을 통해 리모트 사이트로 전송된다(1500). 관리 인터페이스는, 로컬 시스템과 유닛(508, 608 또는 708)과 같은 미러링 유닛내의 리모트 다 대 1 솔루션간의 일 대 일 뷰(로컬 미러링 시스템의 시각으로부터)를 지원한다.This innovation includes the technology disclosed herein, which is further applied to provide a hardware / software platform in a many-to-one solution with a central backup site or service provider as disclosed. The local system generally operates as described above. The local mirroring unit 204 connects to the host server system 200 via the SCSI bus and then appears as a fixed disk drive used as part of a RAID-1 mirror, for example. The data is transmitted 1500 to the remote site via the local mirroring unit 204 transmission protocol from the local buffer 210 in an operating state as disclosed herein. The management interface supports a one-to-one view (from the perspective of the local mirroring system) between the local system and a remote many-to-one solution in a mirroring unit such as unit 508, 608, or 708.

리모트 다 대 1 솔루션은 복수의 경우의 미러링 시스템의 트랜스포트 및 버퍼 관리 소프트웨어, 즉, 이전에 기술된 리모트 미러링 유닛(208, 308, 408)소프트웨어와 유사한 복수의 경우의 소프트웨어를 실행할 수 있다(1520). 그러나, 이러한 실시예에서, 커널 모듈은, 이전에 기술된 시스템의 커널 인터페이스를 에뮬레이트하는(1520) 사용자-공간 제어 모듈로 교체된다. 복수의 "가상 리모트 미러링 유닛"(여기서는 "가상 시스템" 또는 "가상 1.1 시스템"으로 명칭됨)은 서버(300) 또는 수정된 미러링 유닛(208, 308, 408)내의 하나의 하드웨어 플랫폼상에서 호스트될 수 있다(1520). 하드웨어 플랫폼은, 통상적으로 사용가능한 Posix/Unix/SRV4 환경을 제공할 수 있는 임의의 하이 엔드(high end) 서버 시스템일 수 있다. 이러한 예는, 제한 없이, Sun 서버 또는 Solaris/Linux 또는 AIX/Linux를 각각 구동하는 IBM 서버를 포함한다.The remote many-to-one solution can run the transport and buffer management software of multiple mirroring systems, i.e., multiple cases of software similar to the previously described remote mirroring unit 208, 308, 408 software (1520). ). However, in this embodiment, the kernel module is replaced with a user-space control module that emulates 1520 the kernel interface of the system described previously. A plurality of "virtual remote mirroring units" (herein referred to as "virtual systems" or "virtual 1.1 systems") may be hosted on one hardware platform within the server 300 or modified mirroring units 208, 308, 408. There is (1520). The hardware platform may be any high end server system capable of providing a commonly available Posix / Unix / SRV4 environment. Examples include, without limitation, Sun servers or IBM servers running Solaris / Linux or AIX / Linux, respectively.

원하는 대로 동작하는 가상 시스템 트랜스포트 소프트웨어를 구현을 용이하게 하기 위해서는, 소프트웨어는, 예컨대, 로컬 버퍼, 리모트 버퍼, 로컬 미러, 리모트 미러, 및 커널을 포함하는 디바이스에 있어서, 디바이스에서 디바이스로 데이털가 전송되는 방식에 관한 어떤 가정도 하지 않고 모듈로 방식으로 기록되어야 한다. 어디서부터 데이터가 흐르는지 및 어디로 보내야하는지에 대한 제어는, 미러 및 사용자-유발 상태 변경의 조건에 관한 상태 정보를 유지하는 커널 인터페이스를 통해 수행된다.To facilitate implementation of virtual system transport software that behaves as desired, the software may, for example, in a device comprising a local buffer, a remote buffer, a local mirror, a remote mirror, and a kernel, where data is transferred from device to device. It should be written in a modular fashion without making any assumptions about how it is done. Control of where data flows from and where to send it is done through a kernel interface that maintains state information about the conditions of mirror and user-induced state changes.

몇몇 실시예에서는, 하드웨어 플랫폼은, 다양한 동작 상태를 구현하는데 필요한 로컬 디바이스에(버퍼 디바이스, 미러 디바이스, 변경 미러 디바이스 등에 대해) SAN 저장소상의 라우팅 디바이스에서와 같은 기능을 제공하기 위해 미러링 유닛 관리 층과 인터페이스하는 SAN 관리 소프트웨어를 구동한다. 다수-대-일 시스템상의 관리 인터페이스는 MIB 확장 및 월드 와이드 웹-스타일의 GUI 확장을 통해 SNMP를 사용하여 이미 기술된 미러링 유닛상의 관리 인터페이스로부터 도출될 수 있다. 관리층내에서, 일 대 일 관계는, 리모트 시스템상에서 요구되는 상태 동작을 여전히 허용하는 동안 주된(로컬) 미러링 시스템에 제공된다. SAN 관리 패키지는, 실시예의 관리층내에서, 체크포인트를 셋팅하고, 미러링된 데이터의 복수의 복사본을 만들고, 미러링되는 장치를 변경하는 것과 같은 태스크를 자동화하기 위해 사용자가 이용할 수 있는 유사한 인터페이스에 대한 모델로서 사용될 수 있다.In some embodiments, the hardware platform includes a mirroring unit management layer to provide the local devices (for buffer devices, mirror devices, change mirror devices, and the like) with the mirroring unit management layer to provide the same functionality as the routing devices on the SAN storage. Run the SAN management software that interfaces. The management interface on the many-to-one system can be derived from the management interface on the mirroring unit already described using SNMP through the MIB extension and the world wide web-style GUI extension. Within the management layer, a one-to-one relationship is provided to the main (local) mirroring system while still allowing for the required state operation on the remote system. Within the management layer of an embodiment, a SAN management package is a model for a similar interface that a user can use to automate tasks such as setting checkpoints, making multiple copies of mirrored data, and changing mirrored devices. Can be used as.

특정 애플리케이션 지식 없이 빈번히 액세스되는 데이터 엘리먼트를 식별Identify data elements that are frequently accessed without specific application knowledge

본 섹션 및 다음 두 섹션에서, 데이터의 블럭은 "데이터 엘리먼트(data element)"의 일례이고, 디스크 섹터는 "저장 엘리먼트"의 일례이다. "커런트 셋"은 디스크 드라이브의 추출로서 간주될 수 있다.In this section and the next two sections, a block of data is an example of a “data element” and a disk sector is an example of a “storage element”. A "current set" can be considered as an extraction of a disk drive.

결함 허용 데이터 시스템의 통상적인 문제는, 어플리케이션이 종료되기 전에데이터 저장 동작 세트의 일부 만이 완료되면, 어플리케이션을 이용하는 것은 복구 방법을 채용하지 않는다는 것이다. 결함 허용을 위해 설계된 어플리케이션은 전형적으로 하나의 세트의 데이터 저장 동작을 수행하는 몇몇 방법을 갖지만, 이러한 동작이 최종 동작이 수행될 때까지 유효한 것으로 간주하지는 않아서, 동작중의 하나가 이어지지 않으면, 전체 동작은 유효한 것으로 간주되지 않는다. 그러나, 다수의 어플리케이션은 이와 같이 설계되지 않는다.A common problem with fault-tolerant data systems is that if only a portion of the data storage operation set is completed before the application terminates, using the application does not employ a recovery method. Applications designed for fault tolerance typically have several ways of performing a set of data storage operations, but such operations are not considered valid until the last operation is performed, so if one of the operations does not continue, Is not considered valid. However, many applications are not designed like this.

결함 허용을 위해 확실하게 설계되지 않은 어플리케이션에 대해 결함 허용을 제공하는 하나의 방법은, 수행될 필요가 있고 어플리케이션 외부의 어플리케이션의 상태를 기억할 필요가 있는 동작에 대한 상세한 정보를 포함하는 어플리케이션-특정 정보를 갖는 것이다. 완전한 트랜잭션은, 어플리케이션을 모니터링하는 외부 관리자를 통해 수행되지 않으면, 액티브 데이터 세트로부터 제거될 수 있다. 그러나 이것은 모니터링 관리자가 어플리케이션의 행위에 대한 특정 정보를 요구하여 어플리케이션 자체 외부에서의 데이터 변경에 민감해진다는 문제가 있다.One method of providing fault tolerance for an application that is not specifically designed for fault tolerance is application-specific information that includes detailed information about the actions that need to be performed and need to remember the state of the application outside of the application. To have. Complete transactions can be removed from the active data set unless they are performed through an external manager monitoring the application. However, this has a problem that the monitoring manager is sensitive to data changes outside the application itself by requesting specific information on the application's behavior.

여기에 개시된 접근법은 전술한 어플리케이션 특정 정보를 갖지 않는 모니터링 관리자를 사용하여 빈번하게 액세스되는 데이터를 식별한다(1522). 관리자는, 어플리케이션에 의한 하나의 셋트의 저장 트랜잭션이 임시로 관련 클러스터에서 발생하고, 이것은 전형적으로 인접 데이터 엘리먼트의 제1 그룹에 대한 하나의 셋트의 동작을 포함하고, 저장 동작은 인접 데이터 엘리먼트의 제1 그룹에 대한 하나의 셋트의 동작 전 및/또는 후에 발생하고, 저장 동작은 제1 그룹외의 다른 곳에 위치하고 상이한 트랜잭션에 대해 공통적인 인접 데이터 엘리먼트의 제2 그룹 에서 또는 근처에서 발생하는 것으로 가정한다(1522). 이러한 공통적인 엘리먼트들은 여기서 "상태 블럭"이라 명칭된다.The approach disclosed herein uses a monitoring manager that does not have the application specific information described above to identify frequently accessed data (1522). The administrator is responsible for the fact that one set of storage transactions by an application temporarily occurs in the associated cluster, which typically includes the operation of one set for the first group of neighboring data elements, and the storing operation comprises It occurs before and / or after the operation of one set for one group, and the storage operation is assumed to occur in or near a second group of adjacent data elements that are located somewhere other than the first group and are common for different transactions ( 1522). These common elements are referred to herein as "state blocks."

일례로서, 파일 시스템 기록 동작을 고려해보자. 데이터 파일은 물리적 저장 매체상에서 인접하는 하나의 셋트의 인접하는 저장 엘리먼트를 전형적으로 포함하는 하나 이상의 세트의 동작으로 갱신된다. 그러면 파일 시스템 테이블에 대한 갱신이 이루어지고, 이것은 상이하지만 일관된 기준 위치에 그리고 물리적으로 연관된 제한된 개수의 저장 엘리먼트 세트 내에 저장될 것이다. 파일의 사용자 데이터를 홀딩하고 있는 섹터 또는 클러스터는 제1 그룹의 인접한 데이터 엘리먼트에 대응하고, 파일 시스템 테이블, 비트맵 또는 유사한 파일 시스템 데이터 구조를 홀딩하고 있는 섹터 또는 클러스터는 제2 그룹의 인접한 데이터 엘리먼트에 대응한다.As an example, consider a file system write operation. The data file is updated with one or more sets of operations that typically include one set of contiguous storage elements on a physical storage medium. An update is then made to the file system tables, which will be stored at different but consistent reference locations and within a limited number of storage element sets that are physically associated. Sectors or clusters holding user data in the file correspond to adjacent data elements in the first group, and sectors or clusters holding file system tables, bitmaps or similar file system data structures are adjacent data elements in the second group. Corresponds to.

많은 애플리케이션이 이와 유사한 기록 전략을 지원한다. 기록 성능을 향상시키기 위해, 소정의 운영 시스템이 클러스터 비관련 기록 동작을 하나의 기록 동작에 클러스터링시키려할 수도 있다. 그 결과, 운영 시스템에 따라 데이터 파일이 갱신될 수 있다.Many applications support similar recording strategies. In order to improve write performance, certain operating systems may attempt to cluster cluster unrelated write operations into one write operation. As a result, the data file can be updated according to the operating system.

본 발명에 따르면, (1522)을 식별하기 위한 한가지 방법으로서, 이러한 특수한 상태 블럭에 대한 갱신들 사이에 저장 기록 동작의 진로를 기억하는 트랜잭션(transaction)이 있다. 트랜잭션은 두개의 상태 블럭 갱신 정보 사이에 데이터 파일에 기록된 모든 데이터를 포함한다. (1522) 상태 블럭 식별은 모든 정상적인 동작 범위에서 애플리케이션을 훈련함으로써 및 (1522)의 저장 동작이 얼마나 자주 그리고 어떤 순서로 기록되는지를 기억함으로써 행해질 수 있다. 신경 회로망, 통계학적 분석 또는 그외 익숙한 기술 및 툴들이 결과의 로그로부터의 (1522) 상태 블럭 식별을 추출해내는 데 사용될 수 있다. 시간이 경과함에 따라 로그 집합은 어떤 저장 엘리먼트가 다른 것들보다 훨씬 더 많이 액세스되고 기록된 것인지 나타내고 따라서 (1522) 상태 블럭을 고려해야 한다. 통계학적 관련 패턴을 분명하게 발견하지 않는다면, 이러한 방법을 논의중의 애플리케이션에 적용할 수 없다. 상기 방법은 모든 저장-활용 애플리케이션마다 필수적인 작업은 아니다.According to the present invention, as one method for identifying 1522, there is a transaction that stores the course of the save write operation between updates to this particular state block. A transaction includes all data written to a data file between two status block update information. State block identification can be done by training the application in all normal operating ranges and by remembering how often and in what order the storage operations of 1522 are recorded. Neural networks, statistical analysis or other familiar techniques and tools can be used to extract the state block identification from the log of results. Over time, the log set indicates which storage elements are accessed and written much more than others and should therefore consider (1522) status blocks. This method cannot be applied to the application under discussion unless a statistically relevant pattern is clearly found. This method is not necessary for every storage-utilizing application.

상기 방법을 적절하게 채용하면, 애플리케이션이 실패하여 복구될 수 없다면, 언-커미팅(un-commiting)(1524) 연속 데이터 블럭에 의해 복구가 지원될 수 있고, 애플리케이션이 그 상태를 복구할 때까지 언-커미팅(1524) 상태 블럭 갱신이 상태 블럭 갱신 간에 기록된다. 이러한 발명의 언-커미트 특성을 지원하기 위해 일부 비휘발성 스토리지 형태에서, 데이터 엘리먼트가 상태 블럭 갱신들 간에 재기록된다. 대안적으로, 본 발명은 이것들을 디스크에 기억시키기 이전에 버퍼 저장 동작을 할 수 있고, 다음 세트의 상태 블럭 저장 동작을 검출하여 프로세스한 후 문제의 버퍼 공간을 릴리즈한다. 판독 동작은 관련된 카피로부터가 아니라 버퍼링된 스토리지로부터 판독되어야 한다. 버퍼 또는 커미트된 스토리지 내의 소정 데이터 엘리먼트의 위치를 나타내기 위한 테이블이 유지될 수 있다.If the method is properly employed, if the application fails and cannot be recovered, recovery can be supported by un-commiting 1524 contiguous data blocks, until the application recovers its state. Uncommitted 1524 status block updates are written between status block updates. In some form of nonvolatile storage, data elements are rewritten between state block updates to support the uncommitted nature of this invention. Alternatively, the present invention may perform a buffer storage operation before storing these on disk, and releases the buffer space in question after detecting and processing the next set of state block storage operations. Read operations must be read from the buffered storage, not from the associated copy. A table may be maintained to indicate the location of certain data elements in the buffer or committed storage.

1차 데이터 볼륨으로부터 인증되지 않은 2차 데이터를 재동기화Resynchronize unauthorized secondary data from the primary data volume

본 발명은 또한 보조 데이터 볼륨을 시간 주기 동안에 대한 주 데이터 볼륨으로서 사용한 후 재난 복구를 위한 로컬 미러(210) 등의 주 데이터 볼륨으로부터리모트 미러 디스크 서브시스템(312 또는 614) 등의 비허가 보조 데이터 볼륨을 재동기화시키기 위한 툴 및 기술을 제공한다.The present invention also uses an auxiliary data volume as the primary data volume for a period of time and then unlicensed auxiliary data volume such as remote mirror disk subsystem 312 or 614 from the primary data volume such as local mirror 210 for disaster recovery. Tools and techniques for resynchronizing

정상 동작에서, 데이터 엘리먼트가 주 데이터 볼륨으로 기록된 다음 미러링 유닛(204, 208) 등의 어떤 수단에 의해 보조 데이터 볼륨으로 기록된다. 주 데이터 볼륨 상의 데이터는 허가된 것으로 고려됨으로써 데이터 엘리먼트가 액세스될 필요가 있을 경우 참고된다. 주 데이터 볼륨이 비파계적으로 고장난 경우 (예를들어, 전원이 나가거나 또는 저장된 데이터 엘리먼트의 사용 애플리케이션에서 일시적으로 절연된 경우), 사용 애플리케이션이 새로운 데이터 엘리먼트 저장 및 데이터 엘리먼트 판독을 위해 보조 데이터 볼륨으로 전환될 수 있다. 주 볼륨을 이용할 수 없는 한편 보조 볼륨 내의 데이터 엘림너트 변화를 나타내는 리스트 (또는 테이블, 또는 다른 데이터 구조)를 유지한다(1526). 이 리스트는 주 볼륨이 이용가능하게 되는 경우, 주 볼륨의 콘텐츠와 보조 데이터 볼륨의 콘텐츠를 재동기시킨다(1526). 재동기(1526) 프로세스는 주 데이터 볼륨으로부터 해당 데이터 엘리멘트를 판독하고 이를 보조 데이터 볼륨에 기록한다.In normal operation, data elements are written to the primary data volume and then written to the auxiliary data volume by some means, such as mirroring units 204 and 208. Data on the primary data volume is considered to be authorized and is referenced when data elements need to be accessed. If the primary data volume has failed non-disruptively (for example, when it is powered off or temporarily isolated from the using application of the stored data element), the using application is moved to the auxiliary data volume for storing new data elements and reading data elements. Can be switched. While the primary volume is unavailable, it maintains a list (or table, or other data structure) indicating data element change in the secondary volume (1526). This list resynchronizes the contents of the primary volume with the contents of the secondary data volume when the primary volume becomes available (1526). Resynchronization 1526 process reads the corresponding data element from the primary data volume and writes it to the secondary data volume.

이러한 시나리오에서는 허가되지 않을 것으로 가정되는 보조 데이터 볼륨에 대한 변경이 이루어져 재동기화(1526)에 의해 정상적으로 재기록된다. 이것은 예를들면 사용 애플리케이션에 대해 독특한 경우이기 때문이다.In such a scenario a change is made to the auxiliary data volume that is supposed to be disallowed and rewritten normally by resynchronization 1526. This is because, for example, it is a unique case for a using application.

적절한 상황에서 본 발명은 두개의 데이터 볼륨 간에 주-보조 관계를 재정립하기 위한 간단한 방법을 제공한다. 이러한 재동기화(1526)는 역할 전도(1506)(역할 전도에서 보조 데이터 볼륨은 주 허가 볼륨이 되는 반면 재동기화(1526)에서 주데이터 볼륨은 허가받은 것으로 존재한다)와는 다르다.Where appropriate, the present invention provides a simple method for reestablishing a master-subsidiary relationship between two data volumes. This resynchronization 1526 is different from role inversion 1506 (in role inversion the secondary data volume becomes the primary grant volume while in resynchronization 1526 the primary data volume exists as authorized).

순서화된 큐 및 현재의 복사본을 동일한 물리적인 저장 시스템에 유지Keep ordered queues and current copies on the same physical storage system

본원에서 그 외 논의된 바와 같이, 일부 실시예들에서 데이터 엘리먼트 기록은 수신되는 순서의 순차 큐로 미러링 유닛(204)에 의해 저장됨으로써 반대 순서로도 판독될 수 있다. 일부 실시예들에서, 한 세트의 데이터 스토리지 엘리먼트를 "커런트 카피"로 정의하고, 데이터 엘리먼트는 커런트 카피로부터 전부 거꾸로 판독될 수 있다(1528). 스토리지 디바이스의 소정 데이터 엘리먼트에 대한 새로운 스토리지 동작이 커런트 카피(current copy)에서 데이터 엘리먼트를 갱신할 것이고(1528), 데이터 엘리먼트는 초기의 시스템 상태를 복구하기 위해 (1528)을 이용할 수 있을 것이다.As discussed elsewhere herein, in some embodiments the data element record may be read in the reverse order by being stored by mirroring unit 204 in a sequential queue of the order in which it is received. In some embodiments, a set of data storage elements is defined as a “current copy,” and the data elements can all be read backwards from the current copy (1528). A new storage operation for a given data element of the storage device will update the data element in a current copy (1528), and the data element may use 1528 to restore the initial system state.

이것은 커런트 카피에 대한 스토리지 엘리먼트 위치 테이블 (또는 다른 데이터 구조)를 유지(1528)함으로써 관리된다. 테이블은 커런트 카피에서 소정의 스토리지 엘리먼트에 대한 가장 최근의 데이터 엘리먼트의 어드레스를 확인한다. 판독 요청이 프로세싱됨에 따라 데이터 엘리먼트를 테이블(1528)에서 찾고 테이블이 참조된 포인트에서 순차 큐로부터 판독된다. 순차 판독 요청은 큐 포워드 방식에 따라 순차 큐에서 공지된 위치로부터 판독함으로써 핸들링된다(1528).This is managed by maintaining 1528 a storage element location table (or other data structure) for the current copy. The table identifies the address of the most recent data element for a given storage element in the current copy. As the read request is processed, data elements are found in table 1528 and the table is read from the sequential queue at the point referenced. The sequential read request is handled (1528) by reading from a known location in the sequential queue in a queue forward manner.

이러한 방식에서, 물리적으로 분할된 2 카피의 동일한 데이터 엘리먼트를 유지해야만 할 강제적인 이유는 없다. 본 발명은 물리적으로 분할된 시스템을 구현하기 위해 동일한 데이터 엘리먼트를 운영 시스템에 두번 기록할 필요가 없다. 스텝(1528)의 다른 실시예들은 본원에서 참조 부호(1528)로 공동으로 표시된 하나 이상의 특정한 액션을 포함하거나 생략할 수 있다.In this way, there is no compelling reason to keep two copies of the same data element physically divided. The present invention does not require writing the same data element twice to the operating system to implement a physically partitioned system. Other embodiments of step 1528 may include or omit one or more specific actions jointly indicated by reference numeral 1528 herein.

물리적 운영 시스템을 순차 큐 데이터로 충전함에 따라, 가장 오래된 순차 큐 엘리먼트가 종료되고(1528) 그 스토리지가 새로운 순차 큐 엘리먼트를 위해 비어질 것이다. 커런트 세트에서의 오래된 순서의 큐 엘리먼트가 종료된다면, 보조 스토리지 장치로 카피될 수 있고(1528) 이러한 새로운 위치를 언급하기 위해 순차 세트가 갱신된다(1528). 이러한 것이 공통된 시나리오든 어떻든 응용 주문형이지만 많은 시나리오에서 본 발명(1528)의 이러한 양태는 커런트 세트 및 데이터 엘리먼트 세트의 순차 큐를 유지할 필요가 있는 기록 동작 수를 감소시키는 경향이 있다.As the physical operating system is charged with sequential queue data, the oldest sequential queue element is terminated (1528) and the storage will be empty for the new sequential queue element. If the oldest queued elements in the current set are terminated, they can be copied to the secondary storage device (1528) and the sequential set is updated (1528) to refer to these new locations. Although this is an application-on-demand, whether in common or common scenarios, in many scenarios this aspect of the invention 1528 tends to reduce the number of write operations that need to maintain a sequential queue of current sets and data element sets.

순차 큐를 유지한 결과로서, 이전의 커런트 세트가 재구성(1528)용으로 이용가능하다. 이전의 커런트 세트는 순차 큐가 새로운 커런트 세트가 될 시점을 선택하고(1528), 선택된 시점에서보다 새로운 순차 큐의 엘리먼트에 대한 참조용의 기준 테이블을 스캐닝(1528)하고, 커런트 세트의 정확한 부분을 언급하는 오래된 순차 큐 엘리먼트를 언급하는 기준 테이블을 갱신한다(1528).As a result of maintaining the sequential queue, the previous current set is available for reconstruction 1528. The previous current set selects a point in time when the sequential queue is to be a new current set (1528), scans the reference table for reference to the elements of the new sequential queue than at the selected time point (1528), and retrieves the correct portion of the current set Update the criteria table referring to the old sequential queue elements that are mentioned (1528).

많은 상황에서, 일부 상황에서 연속적인 스토리지 엘리먼트에 대해서는 행해지지 않을 것이기 때문에, 본 발명의(1528)의 이러한 실시예들에 의한 판독 동작에 대해 성능 페널티(performance penalty)가 행해질 것이다. 바람직하게는 예를들어 순차 큐가 스토리지 시스템의 스토리지 엘리먼트들에 대해 선형 어레이로서 구현된다면 순차 규 구성에서 연속적인 저장 엘리먼트에 대한 저장 동작이 항상 있기 때문에 저장 동작은 어떠한 순서로도 효율적이어야 한다.In many situations, a performance penalty will be made for the read operation by these embodiments of 1528 of the present invention, since in some situations it will not be done for consecutive storage elements. Preferably, for example, if the sequential queue is implemented as a linear array for the storage elements of the storage system, the storage operations must be efficient in any order because there is always a storage operation for consecutive storage elements in the sequential rules configuration.

저장 매체 배치, 신호Storage media layout, signal

본 발명의 범주 내의 제조 품목은 컴퓨터 판독가능 저장 매체의 기판의 구체적 물리적 구성과 조합한 컴퓨터 판독가능 저장 매체를 포함한다. 기판 구성은 컴퓨터로 하여금 본원에 기술된 바와 같은 구체적이고 미치 정의된 방법으로 동작될 수 있도록 하는 데이터 및 명령어를 나타낸다. 적합한 저장 장치로서 플로피 디스크, 하드 디스크, 테이프, CD-ROM, RAM, 플래시 메모리, 및 하나 이상의 컴퓨에 의해 판독가능한 다른 매체를 포함한다. 각 매체는 머신에 의해 실행가능한 프로그램, 함수 및/또는 명령어를 확실하게 구현하여, 도 13에 도시된 몇개의 또는 모든 공정을 행하는 방법 및 도 2 내지 도 12에 도시된 시스템을 설치 및/또는 사용하는 방법을 제한없이 포함하여 본원에 기술된 바와 같이 실질적으로 플렉시블한 미러링 방법 공정을 행한다. 본 발명은 또한 이러한 프로그램에서 또는 이러한 프로그램에 의해 사용되는 신규한 신호를 제공한다. 이 신호는 "배선", RAM, 디스크 또는 다른 저장 매체 또는 데이터 캐리어에 구현될 수 있다.Articles of manufacture within the scope of the present invention include computer readable storage media in combination with the specific physical configuration of the substrate of the computer readable storage media. Substrate configuration represents data and instructions that allow a computer to be operated in a specific and defined way as described herein. Suitable storage devices include floppy disks, hard disks, tapes, CD-ROMs, RAM, flash memory, and other media readable by one or more computers. Each medium reliably implements programs, functions, and / or instructions executable by a machine to install and / or use a method of performing any or all of the processes shown in FIG. 13 and the systems shown in FIGS. A method of mirroring method that is substantially flexible, as described herein, is performed, including, without limitation. The invention also provides novel signals for use in or by such programs. This signal may be implemented in "wiring", RAM, disk or other storage medium or data carrier.

추가 정보More information

발명을 이해하고 적절하게 실행하는 데 있어 사람과 기업을 지원하기 위해 추가의 인식과 상세 정보가 이하에 제공된다. 이러한 설명은 달리 명확하게 나타내어지지 않는다면 실시예 종류(방법, 시스템, 구성 저장 매체) 중 어느 하나가 다른 실시예들에도 적용된다는 가정하에서 주어진다.Further recognition and detailed information are provided below to assist people and businesses in understanding and properly implementing the invention. This description is given on the assumption that any of the kind of embodiment (method, system, configuration storage medium) also applies to other embodiments, unless clearly indicated otherwise.

발명자가 개량한 구체예Embodiment improved by inventor

(테이프 백업, 로컬 클러스터링, 복사, 새도잉, 리모트 본체 채널 확장 등)의 데이터 보호 문제점에 대한 많은 다른 솔루션들이 호스트(200) 조작 시스템에 몇가지 방식으로 직접 접속되고 좌우된다. 이러한 의존성은 고객에게 문제를 발생시킬 수 있는 데, 본 발명을 사용함으로써 해소될 수 있다. 예를들어, 소프트웨어가 커런트 호스트 조작 시스템 또는 조작 시스템에 대한 갱신으로 완전히 동작하지 않는 경우 의존적 전용 소프트웨어에 대한 의존은 호환성 문제와 버그를 야기시킬 수 있다. 전용 호스트 미러링 소프트웨어에 의존하는 소프트웨어 솔루션은 호스트에 대해 추가 작업을 부가하기 때문에 성능 문제를 나타낼 수도 있다. 의존적 소프트웨어 솔루션은 불안전할수도 있다. 디스크 볼륨이 커지게 되고 소프트웨어 및 조작 시스템이 좀 더 복잡해짐에 따라 의존적 소프트웨어를 요구하는 접근 방식에 대한 문제가 증가한다. 더우기, 호스트(200) 조작 시스템이 정지하면 그 조작 시스템에 의존하는 솔루션도 조작을 멈춘다.Many other solutions to the data protection problem of tape backup, local clustering, copying, shadowing, remote body channel expansion, etc., are directly connected and dependent on the host 200 operating system in some manner. This dependency can cause problems for the customer, which can be resolved by using the present invention. For example, if the software does not fully work with the current host operating system or an update to the operating system, the dependency on the dependent dedicated software can cause compatibility problems and bugs. Software solutions that rely on dedicated host mirroring software may present performance problems because they add extra work to the host. Dependent software solutions can be insecure. As disk volumes grow and software and operating systems become more complex, the problem of approaches requiring dependent software increases. Moreover, when the host 200 operating system stops, the solution that depends on the operating system also stops operating.

이와는 대조적으로, 적어도 일부 실시예들에서 본 발명은 호스트 컴퓨터(예를들어, 로컬 서버(200))에 대한 부하인 어떠한 소프트웨어도 갖지 않음으로써 전술한 문제를 감소시키거나 피할 수 있다. 호스트 조작 시스템이 미러링 유닛을 정지시키고 이어서 동작시킨다면 미러링 유닛이 자신의 운영 시스템을 실행시키기 때문에 미러링된 데이터가 이용가능하다. 디스크 볼륨이 증가하고 소프트웨어가 좀 더 복잡해짐에 따라 자신의 코어에서 실질적으로 변형될 필요가 있는 솔루션과는 달리 발명은 좀 더 쉽게 조절된다. 좀 더 빠른 프로세서가 나온다면 원하는 데로 미러링 유닛에서 이 프로세서를 간단히 사용한다. 디스크 사이즈가 커진다면, 미러링 유닛에 좀 더 큰 디스크를 삽입한다. 데이터 변화율이 디스크에 기록할 현재용량을 초과한다면, 캐싱 제어기를 사용하고 메모리를 시스템에 추가한다. 그 외 다른 솔루션은 집적하고 버그없이 적절하게 동작하기 위해 운영 시스템 제작자로부터 협조를 요청한다. 모든 동작 시스템은 SCSI 및 당분간 예를들어, 피브리 채널(fibre channel)을 지원하기 때문에, 이러한 협조는 발명을 실시하고 사용하는 데 필요치 않다.In contrast, in at least some embodiments, the present invention can reduce or avoid the aforementioned problems by having no software that is a load on the host computer (eg, local server 200). If the host operating system stops and subsequently operates the mirroring unit, the mirrored data is available because the mirroring unit executes its operating system. Unlike solutions that need to be substantially modified in their cores as disk volumes grow and software becomes more complex, the invention is more easily controlled. If a faster processor is available, simply use it in the mirroring unit as desired. If the disk size increases, insert a larger disk into the mirroring unit. If the rate of change of data exceeds the current capacity to write to disk, use a caching controller and add memory to the system. Other solutions require cooperation from the operating system manufacturer to integrate and work properly without bugs. Since all operating systems support SCSI and, for example, fiber channels for the time being, this cooperation is not necessary to practice and use the invention.

다른 솔루션이 실패하는 경우 앞서 강조된 밀접한 상호작용 때문에 호스트(200)가 이들을 취할 수 있다. 본 발명은 호스트(200)에 관계없이 동작할 수 있기 때문에, 실패한다하더라도 호스트 컴퓨터에 심각한 영향을 미치지는 않는다. 종래의 디스크 미러링은 원래 로컬 고장 톨로런스용으로 설계된다. 두개의 디스크가 병렬로 기록되어, 하나의 디스크가 고장나더라도 컴퓨터는 계속하여 동작한다. 고장난 디스크는 배경에서 운영 시스템으로부터 떼어내진다. 운영 시스템 및 컴퓨터는 종종 계속하여 동작한다. 독창적인 미러링 유닛이 SCSI 디스크와 유사하고 미러링 디스크로서 장착될 수 있기 때문에, 유사한 장점을 제공한다. 또한, 미러링 유닛이 소멸하면 떼어진다. 예를들어, 운영 시스템 또는 미러링 유닛의 다른 소프트웨어가 고장난다면 미러링 유닛은 디스크 에뮬레이팅을 멈춘다. 그 결과, 호스트(200) 상의 운영 시스템은 더 이상 미러링 유닛을 인식하지 않는다. 이에 응답하여, 호스트(200) 상의 운영 시스템은 미러링 유닛(204)을 간단히 떼어내고 계속하여 동작한다.If other solutions fail, the host 200 may take them because of the close interaction highlighted above. Since the present invention can operate regardless of the host 200, even if it fails, it does not seriously affect the host computer. Conventional disk mirroring was originally designed for local fault tolerance. Two disks are written in parallel so that the computer continues to run even if one disk fails. The failed disk is removed from the operating system in the background. Operating systems and computers often continue to operate. Since the original mirroring unit is similar to a SCSI disk and can be mounted as a mirroring disk, it provides similar advantages. Also, if the mirroring unit expires, it is detached. For example, if the operating system or other software in the mirroring unit fails, the mirroring unit stops disk emulation. As a result, the operating system on the host 200 no longer recognizes the mirroring unit. In response, the operating system on host 200 simply detaches mirroring unit 204 and continues to operate.

적어도 몇개의 이전의 미러링 시스템 구현은 하나의 디스크 IDE 버퍼에 사용된다. 스푸핑의 경우에서도, 이러한 스마트 버퍼는 하드웨어 스트립핑과 함께 고속의 SCSI RAID 유닛을 고속으로 유지할 수 없다. 원격지로 송신되는 가장 크리티컬한 데이터는 스마트 버퍼 레벨에서 폴트 톨러런스를 일으키지 않는 하나의 디스크에 맡겨진다. 본 발명에 따르면 이와는 반대로, 로컬 및 원격지 미러링 유닛 둘다 미러일 수 있고 하나의 디스크 버퍼는 폴트 톨러런스에 해당하여 다수개의 디스크에 걸쳐 하드웨어 RAID 스트리핑을 행할 수 있다. 이것은 서버 상에서 새로운 고속 스토리지 서브시스템과 좀 더 나은 고장 톨러런스를 유지할 능력을 제공한다. 서버(200)에서의 개별 디스크 고장의 경우 볼륨 또는 미러링 유닛 디스크(210, 310) 또한 버퍼 데이터의 손실 리스크를 감소시킨다.At least some previous mirroring system implementations are used for one disk IDE buffer. Even in the case of spoofing, these smart buffers cannot keep fast SCSI RAID units at high speed with hardware stripping. The most critical data sent remotely is left on a single disk that does not cause fault tolerance at the smart buffer level. In contrast, according to the present invention, both local and remote mirroring units can be mirrors and one disk buffer can perform hardware RAID striping across multiple disks corresponding to a fault tolerance. This provides the ability to maintain a new high speed storage subsystem and better fault tolerance on the server. In case of an individual disk failure in the server 200, the volume or mirroring unit disks 210 and 310 also reduce the risk of loss of buffer data.

종래 기술에서의 제한된 데이터 입력 능력으로는 마켓 인수를 얻는 새로운 기술을 설명하기에는 매우 어려운 것이다. 예를들어, 적어도 일부 종래 기술에서 스토리지 액세스 네트워크("SAN") 또는 네트워크 어태치 스토리지("NAS") 지원이 없다. 서버(300) 등의 표준 리모트 서버를 요구하는 것은 점점 일반화되고 있는 SAN 및 NAS 디스크 서브시스템을 백업하고 미러링하기 어렵게 하거나 불가능하게 한다. 그런, 이들 모든 서브시스템이 이더넷, 피브리 채널, 및/또는 SCSI를 통해 로컬 미러를 행할 수 있다. 본 발명의 미러링 유닛은 SCSI, 이더넷 및 피브리 채널 입력 을 포함하는 다수개의 입력 형태를 수용할 수 있다.Limited data entry capabilities in the prior art make it very difficult to describe a new technique for obtaining market acquisitions. For example, there is no storage access network ("SAN") or network attach storage ("NAS") support in at least some prior art. Requiring a standard remote server, such as server 300, makes it difficult or impossible to back up and mirror the SAN and NAS disk subsystems that are becoming increasingly common. However, all these subsystems can do local mirrors via Ethernet, Fibri Channel, and / or SCSI. The mirroring unit of the present invention can accommodate a number of input types including SCSI, Ethernet, and Fibre Channel inputs.

본 발명은 또한 좀 더 큰 스토리지 서브시스템을 지원한다. 많은 이전의 폴트 톨러런스 솔루션은 6개의 가가바이트 스토리지 볼륨이 매우 큰 것으로 생각되는 환경에서 설계되었다. 스토리지 비용이 떨어짐에 따라, 디스크 서브시스템은 매우 급속도로 그 사이즈가 증가하고 있다. 서버가 100 기가바이트의 용량을 갖는 것은일반적이다. 본 발명은 이러한 거대 용량의 일부를 백그라운드 즉, 미러링 유닛에서 호스트 서버(200)에 대한 동기화를 핸들링함으로써 수용한다. 호스트 서버로부터 미러링 유닛으로 이러한 태스크를 분담하는 것은 주 호스트 서버(200)의 트루 미러의 성능을 크게 감소시키지 않을 수 있다. 이와는 대조적으로, 대안적인 "클러스터링" 및/또는 미러에 대해 요구되는 동기화를 핸들링하기 위해 로컬 서버를 필요로 하는 미러링 솔루션은 둘다 주 서버를 느리게 하거나 파괴할 수 있다.The present invention also supports a larger storage subsystem. Many previous fault tolerance solutions were designed in environments where six gigabyte storage volumes were considered very large. As storage costs drop, disk subsystems are growing in size very rapidly. It is common for a server to have a capacity of 100 gigabytes. The present invention accommodates some of this huge capacity by handling synchronization to the host server 200 in the background, ie the mirroring unit. Sharing this task from the host server to the mirroring unit may not significantly reduce the performance of the true mirror of the primary host server 200. In contrast, mirroring solutions that require a local server to handle alternative “clustering” and / or synchronization required for the mirror can both slow or destroy the primary server.

미러링된 디스크의 재동기화(리미러링)를 피하기 위해 많은 실행이 있다하더라도 로컬 버퍼가 전체 로컬 볼륨을 지원할 수 없다면, 적어도 어떤 이전의 미러링의 실행은 로컬 서버가 전화 통신 링크를 통하여 개재하도록 요구한다. 리미러링은 메인/주/호스트 서버(200)를 느리게 하여 정지 상태로 하는 데 수일 걸린다. 따라서 리미러링은 일반적으로 사용자가 적기 때문에 네트워크르 천천히 운영할 수 있는 주말에만 행해진다. 그러나 디스크 서브시스템이 커짐에 따라 더 이상 수용할 수도 없다. 본 발명은 원격지에서 뿐아니라 로컬 미러링 유닛(204)에서 원격지로 미러링되는 전체 볼륨을 유지하기에 충분히 큰 비휘발성 스토리지를 지원한다. 이것은 로컬 미러링 유닛(204)으로 하여금 전체 로컬 디스크 스토리지 볼륨을 국한된 스마트 버퍼 내에 미리 확인할 수 있게 하고 서버(200)로부터의 "백그라운드"에 리미러와 관련된 태스크를 명료하게 행한다.At least some previous execution of mirroring requires the local server to intervene over the telephony link, even if there are many implementations to avoid resynchronization of the mirrored disks, even if the local buffer cannot support the entire local volume. Remirring takes several days to slow down the main / main / host server 200 and bring it to a stopped state. Remirring is therefore usually done only on weekends when there are few users and the network can run slowly. However, as the disk subsystem grows, it can no longer be accommodated. The present invention supports non-volatile storage that is large enough to maintain the entire volume being remotely mirrored at the local mirroring unit 204 as well as at the remote location. This allows the local mirroring unit 204 to check the entire local disk storage volume in advance in a localized smart buffer and to clearly do the tasks associated with the mirror in the "background" from the server 200.

적어도 일부 종래 기술에서, 로컬 또는 원격지에서의 T1 최대 출력률을 제한하여, 프레임 렐레이 네트워크, ATM 및/또는 VSAT 네트워크가 이용가능하다 하더라도 리미러링을 늦춘다. 이와는 대조적으로, 본 발명은 I/O 파이프 용량을 더 크게할 수 있고 리미러링이 좀 더 빨라질 수 있기 때문에 성능을 향상시킬 수 있고 데이터 배치(data deployment)도 좀 더 효율적이다. 원격 저장된 미러링된 데이터가 이용할 수 없게 되면, 이용불가한 사이트에 저장된 데이터는 고속 개인 데이터망을 사용하여 다른 퍼실러티로 고속으로 이동할 수 있다. 이러한 데이터망은 통상 OC48 레이트 (초당 2.488-기가바이트)까지의 대역을 지원한다. 이러한 예는 고객이 자신의 데이터를 시카고까지 미러링하여 뉴욕에서 회수할 퍼실러티를 사용할 필요를 가질 수 있다. 이러한 종류의 필요는 원래 실현되는 것보다 훨씬 더 일반적이다.In at least some prior art, limiting the T1 maximum output rate locally or remotely slows remirror even if a frame relay network, ATM and / or VSAT network is available. In contrast, the present invention can improve the performance and data deployment more efficiently because the I / O pipe capacity can be made larger and the mirroring can be faster. When remotely stored mirrored data becomes unavailable, data stored at unavailable sites can be moved to other facilities at high speed using a high speed personal data network. Such data networks typically support up to OC48 rates (2.488-gigabyte per second). This example may require a customer to mirror their data to Chicago and use facilities to retrieve from New York. This kind of need is much more common than it is originally realized.

원시 오프-사이트 서버 제품은 오픈 애플리케이션 프로그래머 인터페이스("API")를 제공하는 데 실패한다. 클로즈된 독점 하드웨어(MiraLink's) 및 클로즈된 독점 소프트웨어(Vinca's)에 대해서만 독점으로 대신 기록된다. 기업 고객이 제품 스코프 이상 요구한다면 주문 변경 또는 수정이 쉽지는 않다. 이와는 대조적으로, 본 발명에서는 오픈 API를 허가함으로써 사용자 스페이스 프로세스로부터의 조정이 이루어져 특정 고객 및/또는 이머징 마켓을 지정한다. 특히, 본 발명은 바람직하게는 서버(200)를 인터럽트시키지 않고 미러링 유닛을 재구성하기 위해 하나 이상의 콜을 제공하고 또한 서버(200)를 인터럽트시키지 않고 미러링 유닛을 재부팅시키기 위한 콜을 제공한다.Native off-site server products fail to provide an open application programmer interface (“API”). Only closed proprietary hardware (MiraLink's) and closed proprietary software (Vinca's) are recorded exclusively instead. If an enterprise customer needs more than a product scope, changing or modifying an order is not easy. In contrast, in the present invention, by allowing open APIs, adjustments are made from the user space process to designate specific customers and / or emerging markets. In particular, the present invention preferably provides one or more calls for reconfiguring the mirroring unit without interrupting the server 200 and also provides a call for rebooting the mirroring unit without interrupting the server 200.

구성 데이터(Configuration Data)Configuration data

시스템 구성 데이터는 바람직하게는 분산됨으로써, 미러링 유닛 중 하나가 컨피겨레이션 데이터를 손실한다면 컨피겨레이션 데이터는 유닛의 피어 중 하나로부터 복구될 수 있다. 망 정보와 같은 기본 구성 데이터는 바람직하게는 비휘발성 스토리지 (예를들면, 디스크 상에 또는 배터리 지원 반도체 메모리)에 기억됨으로써, 디스크 상의 구성 데이터가 손실되더라도 구성 데이터는 아직 피어 미러링 유닛으로부터 재저장될 수 있다.System configuration data is preferably distributed such that configuration data can be recovered from one of the unit's peers if one of the mirroring units loses the configuration data. Basic configuration data, such as network information, is preferably stored in non-volatile storage (e.g., on disk or in battery-backed semiconductor memory), so that configuration data can still be restored from the peer mirroring unit even if the configuration data on the disk is lost. Can be.

월드 와이드 웹(WWW) 인터페이스는 바람직하게는 최소 다음의 구성 옵션 도는 그와 등가인 IP 어드레스(리모트/로컬); 게이트웨이(리모트/로컬); 네트 마스크(리모트/로컬); 관리자 패스워드(공용); 버퍼 사이즈(로컬); 버퍼 하이 워터 마크(수용 한도를 초과하도록 채워진 버퍼); 볼륨 사이즈(공장에서 도안한 하드 마스크까지 구성가능함); SCSI 타겟 로직 유닛 넘버("LUN"); 및 SNMP 구성(리모트/로컬)을 제공한다.The World Wide Web (WWW) interface preferably comprises at least the following configuration options or equivalent IP addresses (remote / local); Gateway (remote / local); Net mask (remote / local); Administrator password (public); Buffer size (local); Buffer high water mark (buffer filled to exceed capacity limit); Volume size (configurable to factory-designed hard masks); SCSI target logic unit number ("LUN"); And SNMP configuration (remote / local).

SNMP 구성 자체는 바람직하게는 가산/삭제 SNMP 모니터링 호스트(리모트/로컬); 이벤트 폴링 간격; 버퍼 충전 통과 수용가능 한도(buffer filled past acceptable limits); 네트워크 접속 실패; 버퍼 풀; 리모트 동기화 탈퇴; e-메일 수신 추가/삭제를 포함한다.The SNMP configuration itself is preferably an add / delete SNMP monitoring host (remote / local); Event polling interval; Buffer filled past acceptable limits; Network connection failure; Buffer pool; Opting out of remote synchronization; Includes add / delete e-mail receipts.

웹 인터페이스는 바람직하게는 이러한 유닛이 원격지이든 로컬이든 최소한 다음의 상태 정보: 버퍼 블럭; 블럭 송신; 블럭 수신; 미러링 유닛 버젼; 미러링 유닛 시리얼 넘버; 볼륨 사이즈를 포함한다. 웹 인터페이스는 바람직하게는 탑재되지 않은 리모트 유틸리티를 제공한다. 웹 인터페이스는 바람직하게는 로그 덤프 리포트(log dump report)를 제공한다. SNMP 및 SMTP 트랩은 통상 버퍼 충전 수용가능 한도; 버퍼 풀; 네트워크 접속 실패; 리모트 동기화 탈퇴와 같은 이벤트에 대해 사용된다.The web interface preferably comprises at least the following state information whether the unit is remote or local: a buffer block; Block transmission; Block reception; Mirroring unit version; Mirroring unit serial number; Contains volume size. The web interface preferably provides an unmounted remote utility. The web interface preferably provides a log dump report. SNMP and SMTP traps typically have buffer fillable limits; Buffer pool; Network connection failure; Used for events such as remote sync leave.

관리 툴이 e-메일, 페이징 또는 다른 수단에 의해 통지를 제공한다. 통지는 실시간 및/또는 자동 로그 또는 자동 생성된 리포트와 조합될 수 있다. 통지는 시스템 관리자 및/또는 벤더로 송신될 수 있다. 인터페이스로서 웹 서버/메일 서버 패키지를 실행하는 실시예들에서 웹 서버의 특성을 이용가능하다. 예를들어, 사용자는 모니터링 유닛을 로컬 또는 리모트 액세스하고 관리할 수 있다. 허가에 따라 사용자는 회사 내부적으로 및/또는 세계 어느곳으로/로부터 미러링 유닛을 액세스하고 관리할 수 있다. 미러링 유닛은 SNMP를 통해서 뿐아니라 e-메일을 통해 미러링 유닛에서의 문제나 심각한 이벤트를 사용자 (및 미러링 유닛 벤더)에 통지한다. 이러한 e-메일에 대해 커스텀 스크립트를 기록할 수 있으므로 다른 사용자 또는 사용자 군들에 통지된다. 리포트 출력들이 정적(static)일 필요는 없다. 고객이 매달 필요한 정보를 카피하는 대신 관리를 위한 커스텀 리포트를 요구하고 그 리포트를 여러번 반복해서 기록한다면, 고객 또는 인증된 개발자는 HTML, JAVA, 및/또는 다른 잘 알려진 툴 및 기술을 사용하여 미러링 유닛을 생성할 수 있고 원하는 포맷으로 필요할 때 마다 e-메일을 발송할 수 있다.The management tool provides the notification by e-mail, paging or other means. Notifications can be combined with real-time and / or automatic logs or automatically generated reports. The notification may be sent to the system administrator and / or vendor. Features of the web server are available in embodiments that implement the web server / mail server package as an interface. For example, a user can locally and remotely access and manage the monitoring unit. The authorization allows the user to access and manage the mirroring unit internally and / or from anywhere in the world. The mirroring unit notifies users (and mirroring unit vendors) of problems or serious events in the mirroring unit via e-mail as well as via SNMP. Custom scripts can be recorded for these emails so other users or groups of users are notified. Report outputs do not need to be static. If a customer requires a custom report for management and records the report multiple times, instead of copying the required information each month, the customer or a certified developer can use the HTML, JAVA, and / or other well-known tools and techniques to mirror the unit. You can create an email and send an email whenever you need it in the format you want.

기본 하드웨어Basic hardware

통상, 본 발명에 따른 시스템은 표준 펜티업 Ⅱ, 펜티엄 Ⅲ, AMD K6-3 또는 AMD K7 클라스 PC-호환용 컴퓨터(각 소유자를 나타냄) 등의 기본 하드웨어를 포함한다. 다양한 구성에서 머신은 바람직하게는 적어도 64, 128, 또는 256 메가바이트 RAM이고, 랙-장착된(rack-mounted) 케이스를 갖는다. 또한 바람직하게는 하나의 100Mb 이더넷 카드, FDDI 카드 등을 포함한다. 디스크 인터페이스로서, 머신은 바람직하게는 디스크 에뮬레이션용 LgicSCSI 카드 및 버퍼 및 미러 제어용의 Adaptec 2940UW 어댑터 또는 FreeBSD 지원 DPT 브랜드 RAID 카드를 갖는다. RAID 또는 SCSI 제어 캐싱을 포함하는 캐싱, 미러링 유닛의 휘발성 RAM의 캐싱, 미러링 유닛의 비휘발성 RAM (예를들어, 정적 RAM 또는 배터리-백업 RAM)의 캐싱 등을 사용할 수 있다. 당업자에게 친숙한 캐싱 툴 및 기술이 본 발명에 따라 사용하기 위해 적합하게 적응될 수 있다.Typically, the system according to the invention comprises basic hardware such as a standard Pentium II, Pentium III, AMD K6-3 or AMD K7 class PC-compatible computer (indicating each owner). In various configurations the machine is preferably at least 64, 128, or 256 megabytes of RAM and has a rack-mounted case. Also preferably include one 100Mb Ethernet card, FDDI card and the like. As a disk interface, the machine preferably has a LgicSCSI card for disk emulation and an Adaptec 2940UW adapter for buffer and mirror control or a FreeBSD supported DPT brand RAID card. Caching including RAID or SCSI control caching, caching of volatile RAM in the mirroring unit, caching of nonvolatile RAM (eg, static RAM or battery-backup RAM) of the mirroring unit, and the like. Caching tools and techniques familiar to those skilled in the art may be suitably adapted for use in accordance with the present invention.

일부 실시예들에서, N이 미러링될 볼륨의 사이즈라면, 로컬 미러링 유닛(204)은 로컬 미러를 갖는 적어도 N의 저장 용량을 갖는 로컬 미러(230)를 포함한다. 일부 실시예들에서, (로컬 미러를 갖거나 갖지 않는) 로컬 버퍼(210)로서 기능하는 디스크 시스템은 적어도 6/5 N, 즉, N의 1.2배 용량을 갖는다. 리모트 미러링 유닛은 적어도 하나의 디스크 시스템을 갖고, 적어도 리모트 미러에 대해 적어도 사이즈 N이다. 모든 시나리오에서, 로컬 미러링 유닛 버퍼(210)는 리모트 미러링 유닛과 데이터 용량이 같아질 필요가 있고, 버퍼 및 핫-스와퍼블(hot-swappable) RAID 서브시스템을 포함하고, 로컬 리미러를 허가할 수 있다.In some embodiments, if N is the size of the volume to be mirrored, local mirroring unit 204 includes a local mirror 230 having a storage capacity of at least N with a local mirror. In some embodiments, a disk system serving as local buffer 210 (with or without a local mirror) has a capacity of at least 6/5 N, i.e. 1.2 times N. The remote mirroring unit has at least one disk system and is at least size N for at least the remote mirror. In all scenarios, the local mirroring unit buffer 210 needs to have the same data capacity as the remote mirroring unit, includes a buffer and a hot-swappable RAID subsystem, and can accept local limiters. have.

테스트 슈트Test suit

본 발명에 따른 시스템의 성능을 측정하기 위해 사용되는 테스트가 바람직하게는 임계 함수 규격 등각 경계(critical functional specification conformance criteria)를 커버하는 상대 성능 및 불 (통과/실패) 테스트를 측정하기 위해 사용될 수 있다. 모든 문제들에 대해 특정한 답이 테스트 결과에 정확하게 매칭된다면불 테스트가 통과된 것이다. 불 테스트는 배달 적합가능성을 결정하기 위해 사용될 수 있다.The test used to measure the performance of the system according to the invention can preferably be used to measure the relative performance and failure (pass / fail) tests covering critical functional specification conformance criteria. . If all questions have specific answers that match the test results correctly, then the test is passed. Fire testing can be used to determine delivery suitability.

테스트는 바람직하게는 (저니 링크(206)가 하나의 로컬 에리어 네트워크 내에 있는) 로컬 네트워크 구성 및 (로컬 미러링 유닛(204) 및 리모트 미러링 유닛이 서로 지정학적으로 거리를 두고 있는) 로컬 및 리모트 구성 둘다 통과되어야 한다. 예를 들어, 리모트 네트워크 구성은 T1 링크(206)와 같이 접속되는 두개의 사이트 또는 저니 링크(206)와 같은 동일량의 공중 인터넷 대역으로 구성될 수 있다.The test preferably includes both local network configuration (where the Journey link 206 is within one local area network) and local and remote configuration (locally distanced from the local mirroring unit 204 and the remote mirroring unit). Must be passed. For example, the remote network configuration may consist of two sites connected with the T1 link 206 or an equal amount of public Internet band, such as the Journey link 206.

분석적 테스트는 바람직하게는 보니(유닉스용) 또는 PC 툴(윈도우 NT 및 노벨 클라이언트용) 등의 표준 디스크 하드웨어 테스트 슈트를 사용한다. 테스트는 (모델, 사이즈 및 특성들이 표기된) 네이티브 디스크 드라이브와 플렉시블 미러링 유닛(204)의 성능을 비교한다. 성능 출력들은 후에 참조용으로 기록된다.Analytical tests preferably use standard disk hardware test suites such as Bonnie (for Unix) or PC tools (for Windows NT and Novell clients). The test compares the performance of the native disk drive (specified model, size and characteristics) with the flexible mirroring unit 204. The performance outputs are later recorded for reference.

바람직하게는 다음과 같은 의문사항들이 질문되고, 표시된 바와 같은 답이 나올때 까지 어떤 필요한 정정이 이루어진다.Preferably the following questions are asked, and any necessary corrections are made until the answer as indicated.

호스트(200) 운영 시스템에 의해 인식된 미러링 유닛(204)이 정확하게 구성된 사이즈를 갖는 디스크로서 인식되는가? (예)Is the mirroring unit 204 recognized by the host 200 operating system recognized as a disk with a correctly configured size? (Yes)

미러링 유닛(24)에 손실없이 데이터가 기록되고 판독될 수 있는가? (예)Can data be written and read without loss in the mirroring unit 24? (Yes)

호스트 시스템(200)이 48 시간 에러없이 미러링 유닛(204)에 임의의 데이터 파일 동작을 행할 수 있는가? (예)Can host system 200 perform any data file operation on mirroring unit 204 without a 48 hour error? (Yes)

100 메가바이트 호스트 볼륨으로 구성된 로컬 미러링 유닛(204)과 리모트 네트워크 구성이 적어도 시간당 300 메가바이트 바람직하게는 FDDI보다 높은 데이터레이트로 리모트 미러링 유닛으로 데이터를 성공적으로 미러할 수 있는가 또는 다른 지원이 있는가? (예) 시간당 300 메가바이트 레이트는 T1 접속의 최대 반송 용량의 대략 50% 이하인지 주지하기 바란다 (T1 용량은 대략 시간당 617 메가바이트이다).Is there a local mirroring unit 204 consisting of a 100 megabyte host volume and a remote network configuration that can successfully mirror data to the remote mirroring unit at a data rate of at least 300 megabytes per hour, preferably higher than FDDI? (Example) Note that the 300 megabyte per hour rate is approximately 50% or less of the maximum carry capacity of the T1 connection (T1 capacity is approximately 617 megabytes per hour).

로컬 미러링 유닛(204)은 어태치된 호스트 시스템(200) 없이 정상적인 방법으로 동작하는 데 실패하지 않고 완전히 재부팅될 수 있는지 즉, 호스트(200)가 상당한 성능 저하없이 계속하여 예정된 목적을 달성할 수 있을까? (예)Whether the local mirroring unit 204 can be completely rebooted without failing to operate in the normal manner without the attached host system 200, ie, can the host 200 continue to achieve its intended purpose without significant performance degradation? ? (Yes)

로컬 미러링 유닛(204)이 라인 상에 복귀한다면 자동 개시되어 네트워크 또는 (예를 들어, TCP 소켓을 사용하는)다른 저니 링크(206)를 통하여 로컬 미러링 유닛(204) 큐 상에 남겨진 데이터를 이송하고, 그 데이터를 손실없이 리모트 미러링 유닛으로 송신할 수 있을까? (예) 이것은 호스트 시스템(200)에 어태치하면서 로컬 미러링 유닛(204)을 재부팅하기 전 및 후에 호스트 시스템(200) 상에서 리모트 미러링 유닛의 드라이브를 장착함으로써 확인됨을 주지하기 바란다. 파일 시스템 복구를 위한 상당한 요구없이도 이러한 이벤트 후에 리모트 미러가 장착가능하다. 데이터는 손실되어서는 안되고 이것을 생성하는 애플리케이션 프로그램에 맞아야 한다. 로컬 호스트 시스템(200) 상에 물리적으로 리모트 미러를 장착한 후, 호스트 시스템(200)은 미러를 장착할 수 있고 호스트(200) 상의 애플리케이션 프로그램 및 그 클라이언트가 미러 상에 데이터를 연속하여 사용할 수 있을까? (예)If the local mirroring unit 204 returns on the line, it is automatically initiated to transfer the data left on the local mirroring unit 204 queue via the network or other Journey link 206 (eg using TCP sockets) and Can the data be sent to the remote mirroring unit without loss? (Example) Note that this is confirmed by attaching a drive of the remote mirroring unit on the host system 200 before and after rebooting the local mirroring unit 204 while attaching to the host system 200. The remote mirror can be mounted after such an event without a significant need for file system recovery. The data must not be lost and must fit the application program that generates it. After physically mounting the remote mirror on the local host system 200, the host system 200 can mount the mirror and can the application program on the host 200 and its client use data continuously on the mirror? ? (Yes)

잘못된 리모트 IP 어드레스 또는 무효 SCSI ID (0보다 적거나 또는 15보다큰) 등의 부적절한 정보의 입력에 응답하여, 미러링 시스템이 파손되거나 불안전한 상태에 있는가? (아니오) 사용자는 정보를 정정할 수 있고, 소프트웨어를 재가동하여 미러링 유닛을 재부팅할 필요없이 정상적으로 행할 수 있는가? (예) 모든 소프트웨어가 정확한 버젼 번호 및 저작권 상태를 표시할 수 있는가? (예)Is the mirroring system broken or insecure in response to input of inappropriate information, such as a bad remote IP address or an invalid SCSI ID (less than 0 or greater than 15)? (No) Can the user correct the information and do it normally without restarting the software and rebooting the mirroring unit? (E.) Can all software display the correct version number and copyright status? (Yes)

30분 바람직하게는 더 긴 기간 동안 네트워크 케이블(206)에 비접속하면서 미러링 동작 또는 다른 디스크 I/O 인텐시브 동작이 호스트 시스템(200)에 의해 행해지는 데 응답하여, 로컬 미러링 유닛(204)이 계속하여 동작하는가? (예) 호스트 오퍼레이팅 시스템은 로컬 미러링 유닛을, 정확하게 형성된 사이즈를 가진 디스크로서 인식하는가? (예) 데이터가 로컬 미러링 유닛(204)에 손실(loss) 없이 판독되고 기록될 수 있는가? (예)The local mirroring unit 204 continues in response to the mirroring operation or other disk I / O intensive operation being performed by the host system 200 while being disconnected from the network cable 206 for 30 minutes and preferably for a longer period of time. Does it work? (Example) Does the host operating system recognize the local mirroring unit as a disk with a correctly formed size? (Yes) Can data be read and written to the local mirroring unit 204 without loss? (Yes)

초기의 미러가 설립된 이후, 네트워크 케이블을 24시간 동안 접속을 끊어 놓고(disconnect), 주기적인 재실행(re-run) 검사를 수행하라. 호스트(200) 오퍼레이팅 시스템은 여전히 로컬 미러링 유닛(204)을 정확하게 형성된 사이즈를 가진 디스크로서 인식하는가? (예) 데이터가 여전히 로컬 미러링 유닛(204)에 손실 없이 판독되고 기록될 수 있는가? (예)After the initial mirror was established, disconnect the network cable for 24 hours and perform periodic re-run checks. Does the host 200 operating system still recognize the local mirroring unit 204 as a disk with a correctly formed size? (Yes) Can data still be read and written to the local mirroring unit 204 without loss? (Yes)

마찬가지로, 호스트 시스템(200)이 (예컨대, 복수회 재미러링함(re-mirroring)으로써) 버퍼(210)가 오버플로우(overflow)되게 한 이후에도, 로컬 미러링 유닛(204)이 여전히 가능한 범위에서 적절하게 동작하는지를 확인하라. 호스트(200) 오퍼레이팅 시스템은 여전히 로컬 미러링 유닛(204)을 정확하게 형성된 사이즈를 가진 디스크로서 인식하는가? (예) 데이터가 여전히 로컬 미러링 유닛(204)에 손실 없이 판독되고 기록될 수 있는가? (예) 사용자가 큐에 입력하는 프로세스(en-queuing process)를 정지시킨 후에 로컬 미러링 유닛(204)을 재부팅(rebooting)할 필요 없이 재시동(restart)시킬 수 있는가? (예) 만일 데이터가 한 번 이상 적어도 일부 재미러링된다면 사용자가 풀(full) 미러를 플러시(flush)하지 않고도 버퍼의 소정의 일부, 예컨대 중단된 미러를 선택적으로 플러시할 수 있는가? (예)Similarly, after the host system 200 causes the buffer 210 to overflow (eg, by re-mirroring multiple times), the local mirroring unit 204 is still appropriately available to the extent possible. Make sure it works. Does the host 200 operating system still recognize the local mirroring unit 204 as a disk with a correctly formed size? (Yes) Can data still be read and written to the local mirroring unit 204 without loss? (Example) Can the user restart the local mirroring unit 204 without having to reboot after stopping the en-queuing process? (Example) If the data is at least partially interesting more than once, can the user selectively flush some portion of the buffer, such as a broken mirror, without having to flush the full mirror? (Yes)

미러링 동작 또는 다른 디스크 O/I 집중(intensive) 동작이 호스트 시스템(200)에 의해 수행되는 동안에는, 네트워크 케이블 또는 다른 저니 링크(206)를 30분 동안 접속을 끊어 놓아라. 로컬 미러링 유닛(204)은 물리적 네트워크 접속을 재설립한 이후에 데이터를 큐로부터 리모트 미러링 유닛으로 송신하는 것을 개시할 수 있는가? (예) 버퍼의 상태(예를 들면, 풀 상태인지 풀 상태가 아닌지, 버퍼 내의 블럭 수, 버퍼로부터 전송되어 리모트 측에서 수신한 블럭 수)에 관한 로컬 미러링 유닛(204)으로부터의 유효 통계는 이용 가능한가? (예)While the mirroring operation or other disk O / I intensive operation is being performed by the host system 200, disconnect the network cable or other Journey link 206 for 30 minutes. Can local mirroring unit 204 begin transmitting data from the queue to the remote mirroring unit after reestablishing the physical network connection? (Example) Valid statistics from the local mirroring unit 204 regarding the state of the buffer (e.g., full or not, number of blocks in the buffer, number of blocks transmitted from the buffer and received at the remote side) are used. Is it possible? (Yes)

로컬 미러링 유닛(204)의 플러그를 뽑고(unplug)(UPS), 호스트 시스템(200)을 셧 다운한 다음, 로컬 미러링 유닛(204)이 작동하지 않도록 전력을 대기시켜라. 로컬 미러링 유닛(204)에 전력을 복구시키고 나서, 호스트 시스템(200)에 전력을 복구시켜라. 호스트 시스템이 적절히 동작하는가? (예) 로컬 미러링 유닛(204)은 연결된 호스트 시스템(200)이 정상적으로 동작하지 않는 일 없이 완전히 재부팅될 수 있는가? (예) 로컬 미러링 유닛(204)은 온라인으로 복원되면, 데이터 손실 없이 로컬 미러링 유닛(204)의 버퍼(210)에 남아 있는 데이터를 네트워크 또는 다른저니 링크(206)를 통해서 자동으로 전송 개시할 수 있는가? (예) 이러한 리모트 미러링 유닛 장착 테스트들 중에서 최후의 두 가지 테스트는 상기의 모의 전력 실패 전후에 수행되어야 함을 주의한다. 이들은 합격(pass)인가? (예)Unplug the local mirroring unit 204 (UPS), shut down the host system 200, and then wait for power so that the local mirroring unit 204 does not operate. Restore power to local mirroring unit 204 and then restore power to host system 200. Is the host system working properly? (Example) Can the local mirroring unit 204 be completely rebooted without the connected host system 200 operating normally? (Example) When the local mirroring unit 204 is restored online, the data remaining in the buffer 210 of the local mirroring unit 204 may automatically start transmission through the network or another jog link 206 without data loss. Is there? (Example) Of these remote mirroring unit mounting tests, note that the last two tests should be performed before and after the simulated power failure. Are these passes? (Yes)

또한, 이전의 모든 테스트는 200 기가바이트의 호스트 용량 사이즈를 사용하여도 성공인가? (예)Also, are all previous tests successful using a host capacity size of 200 gigabytes? (Yes)

리모트 미러링 유닛이 디스에이블(disable) 상태이고 이 리모트 미러는 1차 호스트 시스템(200)으로서 동일한 오프레이팅 시스템을 실행시키는 스탠바이 서버에 의해 장착될 수 있는가? (예)Can the remote mirroring unit be disabled and this remote mirror can be mounted by a standby server running the same offending system as the primary host system 200? (Yes)

다음으로, 리모트 호스트가 정상적으로, 그리고 그 성능에 역효과 없이 동작하는가? (예) 리므토 미러링 유닛과 동일한 SCSI 체인에 연결된 리모트 백업 호스트 및 그 리모트 미러 디스크 서브시스템(312 또는 614)을 구비함으로써 이전의 두 가지 테스트의 동작이 지원된다는 것을 주목한다.Next, does the remote host behave normally and without adversely affecting its performance? (Example) Note that the operation of the previous two tests is supported by having a remote backup host and its remote mirror disk subsystem 312 or 614 connected to the same SCSI chain as the Rimto mirroring unit.

요약summary

본 발명은 로컬 및/또는 리모트 데이터 미러링을 위한 툴 및 기법을 제공한다. 특히, 본 발명에 따른 리모트 데이터 미러링을 위한 컴퓨터 시스템은 하나 이상의 플렉서블 미러링 특성을 포함한다. 또한, 로컬 미러링(예를 들면, 소스와 데스티네이션이 10 마일 이내에 있는 경우)을 위한 시스템도 이러한 플렉서블 미러링 특성을 포함할 수 있다.The present invention provides tools and techniques for local and / or remote data mirroring. In particular, a computer system for remote data mirroring in accordance with the present invention includes one or more flexible mirroring features. In addition, systems for local mirroring (eg, where the source and destination are within 10 miles) can also include this flexible mirroring feature.

예를 들어, 본 시스템은 서버 없는 데스티네이션을 갖는 점을 특징으로 할 수 있다. 즉, 이러한 실시예의 시스템은, 리모트 미러링 유닛에 연결된 리모트 서버를 사용하지 않고도, 소스인 로컬 서버(200)로부터 로컬 미러링 유닛(204)을 통해서 데스티네이션인 리모트 미러링 유닛(208, 408, 508, 608, 또는 708)으로 데이터를 미러링한다.For example, the system can be characterized as having a serverless destination. That is, the system of this embodiment is a destination remote mirroring unit 208, 408, 508, 608 through the local mirroring unit 204 from the source local server 200 without using a remote server connected to the remote mirroring unit. Or 708 to mirror the data.

또한, 본 시스템은, 리모트 데이터 미러링을 위해 특별히 설계된 소프트웨어가 로컬 서버(200)에 인스톨될 필요가 없다는 점에서 비침략적이라는 점을 특징으로 할 수 있다. 마찬가지로, 이러한 소프트웨어는 서버(300)를 포함하는 시스템 내의 2차 서버(300)에 인스톨될 필요가 없다. 대신, 각각의 미러링 유닛은 오퍼레이팅 시스템과 (스레드(thread), 프로세스, 태스크(task) 등을 포함하는) 하나 이상의 리모트 데이터 미러링 애플리케이션 프로그램을 실행한다. 예를 들면, 미러링될 서버(들) 버퍼 데이터보다는 미러링 유닛이 생성되고, 저니 링크(206)를 통한 접속을 모니터링하며, 미러링된 데이터를 저니 링크(206)를 통해서 송수신함으므로, 서버(들)에서 이러한 태스크들을 경감시킨다. 마찬가지로, 본 시스템은, 시스템이 데이터를 로컬 서버(200)로부터 표준 저장 서브시스템 버스를 통해서 로컬 미러링 유닛(204)로 미러링하는 디스크 에뮬레이션(disk emulation)하는 점을 특징으로 할 수 있다. 적절한 표준 저장 서브시스템 버스는 SCSI, 광섬유 채널, USB, 및 기타 범용 버스들을 포함한다. 이러한 버스들은 본 명세서에서 로컬 미러링 유닛(204)로의 "접속"이라고 언급되기도 하였다.The system may also be characterized as non-invasive in that software designed specifically for remote data mirroring does not need to be installed on the local server 200. Likewise, such software need not be installed on the secondary server 300 in the system including the server 300. Instead, each mirroring unit executes an operating system and one or more remote data mirroring application programs (including threads, processes, tasks, and the like). For example, rather than the server (s) buffer data to be mirrored, a mirroring unit is created, monitors the connection over the Journey link 206, and transmits and receives mirrored data over the Journey link 206, thus the server (s) Alleviate these tasks. Similarly, the system may be characterized by a disk emulation in which the system mirrors data from the local server 200 to the local mirroring unit 204 via a standard storage subsystem bus. Suitable standard storage subsystem buses include SCSI, Fiber Channel, USB, and other general purpose buses. These buses have also been referred to herein as "connections" to the local mirroring unit 204.

본 시스템은 TCP 저니 라인 특성 및/또는 이더넷 저리 라인 특성을 특징으로 할 수 있다. 예를 들면, 한 가지 경우로, 본 시스템은 데이터를 로컬 서버(200)로부터 로컬 미러링 유닛(204)을 통해서 미러링하는데, 본 시스템은 저니 라인(206)을 통해서 TCP 클라이언트로서 동작하고, 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)은 TCP 서버로서 동작한다. 보다 일반적으로 말하자면, 저리 라인 특성은, SCSI, 원래의 오프사이트서버 시리얼 접속, SAN 접속 등에 의해 정해지는 고대역폭 저지연 요건이 로컬 미러링 유닛(204)과 리모트 미러링 유닛 사이의 접속에 존재하지 않는다는 것을 가리키는 것이다.The system may be characterized by TCP Journey line characteristics and / or Ethernet Journey line characteristics. For example, in one case, the system mirrors data from the local server 200 through the local mirroring unit 204, which operates as a TCP client via the journey line 206, and the remote mirroring unit. 208, 308, 408, 508, 608, or 708 acts as a TCP server. More generally, the low line characteristic is that there is no high bandwidth low latency requirement imposed by SCSI, original offsite server serial connection, SAN connection, etc. in the connection between the local mirroring unit 204 and the remote mirroring unit. Is pointing.

또한, 본 시스템은 다양성을 특징으로 할 수 있다. 즉, 본 시스템은 2 이상의 로컬(1차) 서버(200)로부터 단일의 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)로의 다 대 1 미러링을 제공할 수 있다. 그러면, 리모트 미러링 유닛 비휘발성 저장의 데이터 미러링 시스템은 각각의 1차 미러링 유닛에 대한 하나의 디스크 파티션, 각 서버(200)에 대한 하나의 외부 하드디스크(614), 각 서버(200)에 대한 하나의 RAID 유닛(312), 또는 그의 임의의 조합을 포함할 수 있는데, 각각의 디스크 파티션은 각 서버(200)에 대한 미러링 데이터를 보유한다. 다양한 1차 (로컬) 서버(200)들은 모두 동일한 오퍼레이팅 시스템을 사용할 수도 있고 또는 다른 오퍼레이팅 시스템들의 임의의 조합을 사용할 수도 있다. 어떤 경우에는, 데스티네이션 비휘발성 저장부는 모든 1차 서버(200)의 조합된 현재의 비휘발성 데이터를 보유할 정도로 충분히 크다. 또 다른 다양성으로는, 시스템은 소정의 로컬 (1차) 서버(200)로부터 2 이상의 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)으로의 1 대 다 미러링을 제공할 수 있다.The system may also be characterized by variety. That is, the system can provide many-to-one mirroring from two or more local (primary) servers 200 to a single remote mirroring unit 208, 308, 408, 508, 608, or 708. Then, the data mirroring system of the remote mirroring unit nonvolatile storage includes one disk partition for each primary mirroring unit, one external hard disk 614 for each server 200, and one for each server 200. RAID unit 312, or any combination thereof, each disk partition holding mirroring data for each server 200. The various primary (local) servers 200 may all use the same operating system or may use any combination of other operating systems. In some cases, the destination nonvolatile storage is large enough to hold the combined current nonvolatile data of all primary servers 200. In another variety, the system may provide one-to-many mirroring from a given local (primary) server 200 to two or more remote mirroring units 208, 308, 408, 508, 608, or 708. .

또한, 본 발명은 플렉서블 미러링 유닛을 인스톨하는 방법, 상기 유닛을 사용하는 방법, 및 둘 다를 행하는 방법을 제공한다. 예를 들면, 플렉서블 데이터미러링을 용이하게 하는 방법은 인스톨 단계 그룹(1300)에서 적어도 두 단계를 포함한다. 플렉서블 데이터 미러링의 또 다른 방법은 하나 이상의 전송 단계(1302)를 포함한다.The present invention also provides a method of installing a flexible mirroring unit, a method of using the unit, and a method of performing both. For example, a method for facilitating flexible data mirroring includes at least two steps in the installation step group 1300. Another method of flexible data mirroring includes one or more transmission steps 1302.

인스톨 단계들 중 한 단계는 표준 저장 서브시스템 버스(202)를 이용하여 로컬 서버(200)를 로컬 미러링 유닛(204)에 접속시켜, 로컬 미러링 유닛(204)이 링크(202)를 통해서 통신하고 있는 디스크 서브시스템을 에뮬레이션할 수 있게 하는 단계를 포함한다. 단계(1306)는 이더넷 접속과 TCP 접속 중 적어도 한 가지 접속에 의해서 로컬 미러링 유닛(204)을 저니 링크(206)에 접속시켜 데이터를 전송하는 단계를 포함한다. 단계(1308)는 이더넷 접속과 TCP 접속 중 적어도 한 가지 접속에 의해서 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)을 저니 링크(206)에 접속시켜 전송된 데이터를 수신하는 단계를 포함한다. 테스트 단계(1310)는 상기의 접속 단계들 중 적어도 한 단계가 적어도 일부 완료된 후에 적어도 하나의 미러링 유닛(204, 208, 308, 408, 508, 608, 또는 608)을 테스트한다.One of the installation steps connects the local server 200 to the local mirroring unit 204 using the standard storage subsystem bus 202 so that the local mirroring unit 204 is communicating over the link 202. Enabling emulation of the disk subsystem. Step 1306 includes connecting the local mirroring unit 204 to the Journey Link 206 to transmit data by at least one of an Ethernet connection and a TCP connection. Step 1308 is to connect the remote mirroring unit 208, 308, 408, 508, 608, or 708 to the Journey Link 206 by at least one of an Ethernet connection and a TCP connection to receive the transmitted data. It includes. The test step 1310 tests the at least one mirroring unit 204, 208, 308, 408, 508, 608, or 608 after at least one of the above connection steps is at least partially completed.

전송 단계들(1302) 중 한 단계는 데이터를 표준 저장 서브시스템 버스(202)을 통해서 로컬 서버(200)로부터 로컬 미러링 유닛(204)으로 전송하는 한편, 로컬 미러링 유닛(204)이 디스크 서브시스템을 에뮬레이션하는 단계(1312)이다. 단계(1314)는 데이터를 로컬 미러링 유닛(204)으로부터 저니 링크(206)를 통해서 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)으로 전송한다. (단계 (1314)와 동일한 데이터 전송을 수행할 수 있는) 단계(1316)는 리모트 미러링 유닛이 무서버일 때 즉, 리모트 미러링 유닛이 2차 서버(300)에 연결되지 않을 때 데이터를 로컬 미러링 유닛(204)으로부터 저니 링크(206)를 통해서 리모트 미러링 유닛(208, 308, 408, 508, 608, 또는 708)으로 전송한다.One of the transmitting steps 1302 transfers data from the local server 200 to the local mirroring unit 204 via the standard storage subsystem bus 202, while the local mirroring unit 204 sends the disk subsystem. Emulating step 1312. Step 1314 transfers data from the local mirroring unit 204 to the remote mirroring unit 208, 308, 408, 508, 608, or 708 over the jorn link 206. Step 1316 (which may perform the same data transfer as step 1314) is performed when the remote mirroring unit is a serverless, i.e., when the remote mirroring unit is not connected to the secondary server 300. From 204 to the remote mirroring unit 208, 308, 408, 508, 608, or 708 over the journey link 206.

상기의 실시예들과 그 외의 다른 실시예들에 있어서, 본 발명은 역할 교대(1506), 핫 스탠바이 서버 구현(1508), 다양한 버퍼링과 기타 다른 저장 방식(1510, 1518, 1528), 커맨드 캡쳐(1512), 및 SCSI나 그 외의 다른 버스 상에서의 재생(1514), 단일 하드웨어 플랫폼에서의 복수의 리모트 머리링 유닛 소프트웨어의 실행(1520), 애플리케이션 상태 복구(1524)를 지원하기 위해서 소정의 애플리케이션의 저장 동작에 관한 보다 상세한 고급 지식보다는 시간에 따른 관찰에 기초한 빈번히 접속하는 데이터의 식별(1522), 및 인증되지 않은 2차 서버의 사용(1526)에 관한 추가의 특징들을 가질 수 있다.In the above and other embodiments, the present invention provides a role shift (1506), a hot standby server implementation (1508), various buffering and other storage schemes (1510, 1518, 1528), command capture ( 1512), and playback on SCSI or other buses (1514), execution of multiple remote heading unit software (1520) on a single hardware platform, and storage of certain applications to support application state recovery (1524). It may have additional features regarding the identification of frequently accessed data 1522 based on observation over time, and the use of an unauthorized secondary server 1526, rather than more advanced knowledge of operation.

본 발명의 실시예들은 리모트 미러링 유닛에 상대적으로 낮은 대역폭 접속의 저니 링크(206) 지연 시간을 마스크(mask)함으로써, 이전에는 전용 광섬유를 이용하여도 미러링이 실행 가능하지 않은 상태에서 장거리로 오프-사이트 미러링을 용이하게 하고, 저가의 네트워크 접속을 통해서 미러링을 용이하게 할 수 있다는 등의 이익을 제공한다. 이러한 저가의 접속은 피크 레이트를 지원하기 보다는 평균 디스크 데이터 변경 레이트를 지원하는 것으로도 충분한 대역폭을 갖더라도 사용될 수 있는 것이다. 본 실시예들은 백업 및 복구에 사용될 뿐만 아니라 높은 가용성의 1차 저장 시스템에도 사용될 수 있다. 리모트 다 대 1 실시예에 있어서, 커널 모듈, 또는 버퍼와 SCSI 또는 다른 트랜스포트 프로토콜에 대한 소프트웨어 인터페이스는 실제의 SCSI 또는 다른 트랜스포트 프로토콜 처리층이 필요 없이 시스템의 인터페이스를 에뮬레이션하는 보다 일반적인 유저-스페이스(user-space) 제어 모듈로 대체될 수 있다. 기기들은 예컨대, 로컬 버퍼, 리모트 버퍼, 로컬 미러, 리모트 미러, 및 SCSI 또는 다른 트랜스포트 프로토콜층을 포함할 수 있다. SAN 운영 소프트웨어를 실행시키는 하드웨어 플랫폼은 중앙 집중 방식일 수 있다.Embodiments of the present invention mask the low link bandwidth of the Journey Link 206 delay time to the remote mirroring unit, thereby enabling long-distance off-mirror previously in which mirroring is not feasible even with a dedicated fiber. Benefits include facilitating site mirroring, facilitating mirroring over low cost network connections, and the like. These low cost connections can be used even if they have enough bandwidth to support the average disk data change rate rather than the peak rate. The embodiments can be used not only for backup and recovery, but also for high availability primary storage systems. In a remote many-to-one embodiment, a kernel module, or software interface to buffers and SCSI or other transport protocols, is a more general user-space that emulates the interface of a system without the need for an actual SCSI or other transport protocol processing layer. Can be replaced with a (user-space) control module. The devices may include, for example, a local buffer, a remote buffer, a local mirror, a remote mirror, and a SCSI or other transport protocol layer. The hardware platform running the SAN operating software may be centralized.

본 발명의 특정한 실시예들(방법, 저장 매체, 및 시스템)은 본 명세서에서 특별히 예시되고 설명된 것이다. 불필요한 반복을 피하기 위해서, 한 실시예에 적용 가능한 개념과 상세한 설명은 다른 실시예들에 있어서는 거의 특별히 서술하지 않았다. 그러나, 그렇지 않고 특별히 언급하고 있다고 하여도, 본 발명의 특정한 실시예들의 본 명세서의 설명은 다른 실시예에도 확장하여 적용될 수 있다. 예를 들면, 본 발명의 시스템에 대해 논의된 것은 그 방법에도 관련되며, 그 역도 성립하고, 또한 본 발명의 방법에 대한 설명은 그에 대응하는 저장 매체에 관련되며, 그 역도 성립한다.Particular embodiments (methods, storage media, and systems) of the present invention are specifically illustrated and described herein. In order to avoid unnecessary repetition, the concept and detailed description applicable to one embodiment are hardly particularly described in the other embodiments. However, even if mentioned otherwise, the description herein of specific embodiments of the present invention may be extended to other embodiments. For example, what is discussed about the system of the present invention also relates to the method, and vice versa, and the description of the method of the present invention relates to the corresponding storage medium and vice versa.

본 명세서에서 사용된 바와 같이, "한(a)"나 "그(the)"와 같은 용어 및 "미러링 유닛"과 같은 항목의 호칭은 일반적으로 하나 이상의 지시된 항목을 포함한다. 본 발명은 본질적인 특성을 벗어나지 않는 한 다른 특정한 형태로도 구현될 수 있다. 상술된 실시예들은 단지 예시적인 것이지 제한되는 것이 아니다. 표제는 단지 편의를 위한 것이다. 본 발명의 범위는 상술된 설명에 의해서 라기보다는 첨부된 특허청구범위에 의해 정해진다. 특허청구범위의 등가물의 의미 및 범위 내에 있는 모든 변경은 특허청구범위의 범위 내에 포함되는 것이다.As used herein, terms such as "a" or "the" and titles of items such as "mirror unit" generally include one or more indicated items. The invention may be embodied in other specific forms without departing from its essential characteristics. The above-described embodiments are illustrative only and not limiting. Headings are for convenience only. The scope of the invention is defined by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (44)

데이터 미러링(data mirroring) 방법에 있어서,In a data mirroring method, 데이터를 미러링하는 단계; 및Mirroring the data; And 미러링 유닛들에 대해 로컬-리모트 역할 교대(local-remote role reversal)를 수행하는 단계Performing local-remote role reversal on mirroring units 를 포함하는 데이터 미러링 방법.Data mirroring method comprising a. 데이터 미러링 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data mirroring method, comprising: 상기 데이터 미러링 방법은The data mirroring method 데이터를 미러링하는 단계; 및Mirroring the data; And 미러링 유닛들에 대해 로컬-리모트 역할 교대를 수행하는 단계Performing a local-remote role shift for the mirroring units 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 데이터 미러링 시스템에 있어서,In a data mirroring system, 적어도 2개의 미러링 유닛 - 상기 미러링 유닛들 각각은 상기 시스템 내의 상기 미러링 유닛들의 로컬-리모트 역할 교대를 수행하기 위한 수단을 포함함 -At least two mirroring units, each of the mirroring units comprising means for performing a local-remote role shift of the mirroring units in the system 을 포함하는 데이터 미러링 시스템.Data mirroring system comprising a. 데이터 미러링 방법에 있어서,In the data mirroring method, 데이터를 미러링하는 단계; 및Mirroring the data; And 변경된 데이터를 버퍼에 저장하기 보다는, 변경된 논리적인 블럭 번호를 버퍼에 저장하는 단계Rather than storing the changed data in the buffer, storing the changed logical block number in the buffer 를 포함하는 데이터 미러링 방법.Data mirroring method comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 논리적인 블럭 번호에 대응하는 블럭이 오버라이트(overwrite)된 경우에 제1 위치의 데이터를 참조하기 보다는 제2 위치의 데이터를 참조하도록 상기 버퍼의 소정의 위치의 논리적인 블럭 번호를 변경하는 단계 - 상기 제1 위치에는 상기 블럭이 오버라이트되기 이전의 상기 블럭에 대한 데이터가 보유되며, 상기 제2 위치에는 상기 블럭이 오버라이트된 이후의 상기 블럭에 대한 데이터가 보유됨 -Changing the logical block number of a predetermined position of the buffer so as to refer to the data of the second position rather than to the data of the first position when the block corresponding to the logical block number is overwritten. The first position holds data for the block before the block is overwritten, and the second position holds data for the block after the block is overwritten. 를 더 포함하는 데이터 미러링 방법.Data mirroring method further comprising. 데이터 미러링 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data mirroring method, comprising: 상기 방법은The method is 데이터를 미러링하는 단계; 및Mirroring the data; And 변경된 데이터를 원형 버퍼(circular buffer)에 저장하기 보다는, 변경된 논리적인 블럭 번호를 원형 버퍼에 저장하는 단계Rather than storing the changed data in a circular buffer, storing the changed logical block number in the circular buffer 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 제6항에 있어서,The method of claim 6, 상기 데이터 미러링 방법은The data mirroring method 상기 논리적인 블럭 번호에 대응하는 블럭이 오버라이트된 경우에 제1 위치의 데이터를 참조하기 보다는 제2 위치의 데이터를 참조하도록 상기 버퍼의 소정의 위치의 논리적인 블럭 번호를 변경하는 단계 - 상기 제1 위치에는 상기 블럭이 오버라이트되기 이전의 상기 블럭에 대한 데이터가 보유되며, 상기 제2 위치에는 상기 블럭이 오버라이트된 이후의 상기 블럭에 대한 데이터가 보유됨 -Changing the logical block number of the predetermined position of the buffer to refer to the data of the second position rather than to the data of the first position when the block corresponding to the logical block number is overwritten; Data is stored for the block before the block is overwritten at position 1, and data for the block after the block is overwritten at the second position. 를 더 포함하는 컴퓨터 저장 매체.Computer storage media further comprising. 미러링 유닛에 있어서,In the mirroring unit, 버퍼; 및buffer; And 변경된 데이터를 상기 버퍼에 저장하기 보다는, 변경된 논리적인 블럭 번호를 상기 버퍼에 저장하는 수단Means for storing a changed logical block number in the buffer rather than storing changed data in the buffer 을 포함하는 미러링 유닛.Mirroring unit comprising a. 제8항에 있어서,The method of claim 8, 상기 저장 수단은 가상 블럭 할당 구조를 포함하는 미러링 유닛.And said storage means comprises a virtual block allocation structure. 제9항에 있어서,The method of claim 9, 상기 가상 블럭 할당 구조는 블럭 데이터라기 보다는 블럭 체크섬(checksum)을 포함하는 미러링 유닛.The virtual block allocation structure includes a block checksum rather than block data. 제10항에 있어서,The method of claim 10, 상기 미러링 유닛은, 블럭 데이터를 저니 링크(journey link)를 통해서 2개의 미러링 유닛의 재동기화 기간에 전송하기 보다는, 블럭 체크섬을 저니 링크를 통해서 또 다른 미러링 유닛으로 전송하는 미러링 유닛.And the mirroring unit transmits block checksums to another mirroring unit via the Journey Link, rather than transmitting block data in the resynchronization period of the two mirroring units via the Journey link. 2차 서버(secondary server)를 핫 스탠바이(hot stand-by) 모드에 두는 방법에 있어서,In a method of putting a secondary server in hot stand-by mode, 상기 2차 서버를 부팅(booting)하는 단계; 및Booting the secondary server; And 2차 역할을 하는 미러링 유닛으로부터 "매체가 준비되지 않음" 신호를 상기 2차 서버에 제공함으로써, 에뮬레이션층(emulation layer)은 데이터의 사이즈와 가용성(availability)에 관한 상기 2차 서버로부터의 요청에 응답하지만, 상기 미러링 유닛의 역할이 변경될 때까지는 데이터 컨텐트로의 상기 2차 서버의 액세스를 거부하는 단계By providing the secondary server with a "media not ready" signal from the mirroring unit acting as the secondary, the emulation layer responds to requests from the secondary server regarding the size and availability of the data. Reply, but denying access of the secondary server to data content until the role of the mirroring unit is changed 를 포함하는 방법.How to include. 제12항에 있어서,The method of claim 12, 데이터 미러링 시스템 내의 상기 미러링 유닛과 또 다른 미러링 유닛 간의 로컬-리모트 역할 교대를 수행함으로써 각 미러링 유닛의 역할을 변경하는 단계Changing the role of each mirroring unit by performing a local-remote role shift between the mirroring unit and another mirroring unit in the data mirroring system 를 더 포함하는 방법.How to include more. 2차 서버를 핫 스탠바이 모드에 두는 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a method for placing a secondary server in hot standby mode, the computer storage medium comprising: 상기 방법은The method is 상기 2차 서버로부터 질의 신호를 수신하는 단계; 및Receiving a query signal from the secondary server; And 상기 2차 서버에 응답 신호를 제공함으로써, 미러링 유닛의 에뮬레이션층은 적어도 미러링 유닛 데이터의 사이즈에 관한 정보를 제공하지만 미러링 유닛 데이터 컨텐트로의 상기 2차 서버의 액세스를 거부함으로써 상기 2차 서버로부터의 요청에 응답하는 단계By providing a response signal to the secondary server, the emulation layer of the mirroring unit provides at least information about the size of the mirroring unit data but rejects the secondary server's access to mirroring unit data content from the secondary server. Responding to requests 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 제14항에 있어서,The method of claim 14, 상기 방법은The method is 데이터 미러링 시스템 내의 상기 미러링 유닛과 또 다른 미러링 유닛 간의 로컬-리모트 역할 교대를 수행하는 단계Performing a local-remote role shift between the mirroring unit and another mirroring unit in a data mirroring system 를 더 포함하는 컴퓨터 저장 매체.Computer storage media further comprising. 미러링 유닛에 있어서,In the mirroring unit, 데이터 저장 매체; 및Data storage media; And 에뮬레이션층Emulation layer 을 포함하고,Including, 상기 에뮬레이션층은 상기 저장 매체에 저장된 데이터의 특성을 제공하고, 상기 데이터의 컨텐트로의 2차 서버의 액세스를 거부함으로써 2차 서버로부터의 요청에 응답하는 수단을 구비하는 미러링 유닛.And said emulation layer comprises means for responding to a request from a secondary server by providing characteristics of data stored on said storage medium and denying access of said secondary server to content of said data. 데이터 미러링 방법에 있어서,In the data mirroring method, 데이터를 미러링하는 단계;Mirroring the data; 버스를 스누핑(snooping)하는 단계; 및Snooping the bus; And 상기 스누핑 단계에서 얻은 적어도 하나의 커맨드를 버퍼링하는 단계Buffering at least one command obtained in the snooping step 를 포함하는 데이터 미러링 방법.Data mirroring method comprising a. 제17항에 있어서,The method of claim 17, 판독 속성 커맨드를 기록 속성 커맨드와 구분하는 단계 - 상기 판독 속성 커맨드는 판독 속성의 상기 스누핑된 버스 상에서의 호스트 컨트롤러로부터의 요청이고, 상기 기록 속성 커맨드는 기록 속성의 상기 버스 상에서의 호스트 컨트롤러로부터의 커맨드임 -Distinguishing a read attribute command from a write attribute command, wherein the read attribute command is a request from the host controller on the snooped bus of the read attribute, and the write attribute command is a command from the host controller on the bus of the write attribute Im- 를 더 포함하고,More, 상기 버퍼링 단계는 기록 속성 커맨드를 버퍼링하는 데이터 미러링 방법.The buffering step buffers a write attribute command. 제17항에 있어서,The method of claim 17, 버퍼링된 커맨드를 통신 링크를 통해서 제1 미러링 유닛으로부터 제2 미러링 유닛으로 전송하는 단계Transmitting the buffered command from the first mirroring unit to the second mirroring unit via the communication link 를 더 포함하는 데이터 미러링 방법.Data mirroring method further comprising. 제17항에 있어서,The method of claim 17, 제1 미러링 유닛에 의해 버퍼링된 제2 미러링 유닛 커맨드로부터 재생(replay)하는 단계Replaying from a second mirroring unit command buffered by the first mirroring unit 를 더 포함하는 데이터 미러링 방법.Data mirroring method further comprising. 데이터 미러링 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data mirroring method, comprising: 상기 방법은The method is 데이터를 미러링하는 단계;Mirroring the data; SCSI 버스를 스누핑하는 단계; 및Snooping the SCSI bus; And 상기 스누핑 단계에서 얻은 적어도 하나의 SCSI 커맨드를 버퍼링하는 단계Buffering at least one SCSI command obtained in the snooping step 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 제21항에 있어서,The method of claim 21, 상기 버퍼링 단계는 적어도 하나의 기록 커맨드로 버퍼링하는 컴퓨터 저장 매체.And wherein said buffering buffers at least one write command. 제21항에 있어서,The method of claim 21, 제1 미러링 유닛에 의해 버퍼링된 제2 미러링 유닛 커맨드로부터 재생하는 단계Reproducing from a second mirroring unit command buffered by the first mirroring unit 를 더 포함하는 컴퓨터 저장 매체.Computer storage media further comprising. 데이터 미러링 시스템에 있어서,In a data mirroring system, SCSI 버스; 및SCSI bus; And 데이터를 미러링하고, 상기 SCSI 버스를 스누핑하며, 스누핑에 의해 얻은 SCSI 커맨드를 버퍼링하는 적어도 하나의 수단At least one means for mirroring data, snooping the SCSI bus, and buffering SCSI commands obtained by snooping 을 포함하는 데이터 미러링 시스템.Data mirroring system comprising a. 데이터 미러링 방법에 있어서,In the data mirroring method, 데이터를 미러링하는 단계; 및Mirroring the data; And 커널 웨지(kernel wedge)를 이용하여 트랜잭션 파일시스템 기능성(transactional filesystem functionality)을 제공하는 단계Providing transactional filesystem functionality using kernel wedges 를 포함하는 데이터 미러링 방법.Data mirroring method comprising a. 데이터 미러링 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data mirroring method, comprising: 상기 방법은The method is 데이터를 미러링하는 단계; 및Mirroring the data; And 커널 웨지를 사용하여 트랜잭션 파일시스템 기능성을 제공하는 단계Steps to Provide Transaction Filesystem Functionality Using Kernel Wedges 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 데이터 미러링 시스템에 있어서,In a data mirroring system, 미러링하기 위한 데이터의 소스; 및A source of data for mirroring; And 데이터 미러링 동안 트랜잭션 파일시스템 기능성을 제공하는 커널 웨지Kernel wedges provide transactional filesystem functionality during data mirroring 를 포함하는 데이터 미러링 시스템.Data mirroring system comprising a. 제27항에 있어서,The method of claim 27, 로컬 시스템; 및Local system; And 리모트 시스템Remote system 을 포함하고,Including, 상기 리모트 시스템은 상기 로컬 시스템으로부터 데이터 변경 정보를 수신하는 소프트웨어를 포함하고, 상기 리모트 시스템에 버퍼링된 데이터 변경 로그를 유지하며, 관리자의 요청에 따라 역할 변경 복원을 지원하는 데이터 미러링 시스템.The remote system includes software for receiving data change information from the local system, maintains a data change log buffered in the remote system, and supports role change restoration at the request of an administrator. 데이터 미러링 방법에 있어서,In the data mirroring method, 로컬 미러로부터 일 블럭의 데이터를 판독하는 단계;Reading a block of data from the local mirror; 상기 일 블럭의 데이터를 새로운 블럭으로서 일시 저장부에 기록하는 단계;Writing the data of one block into a temporary storage unit as a new block; 큐에 논리적인 블럭 번호 입력을 갱신하는 단계;Updating the logical block number input to the queue; 상기 새로운 블럭을 미러 데이터 모음에 기록하는 단계; 및Writing the new block to a mirror data collection; And 새로운 블럭의 논리적인 블럭 번호 입력을 큐에 부가하는 단계Adding the logical block number input of the new block to the queue 를 포함하는 데이터 미러링 방법.Data mirroring method comprising a. 데이터 미러링 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data mirroring method, comprising: 상기 방법은The method is 로컬 미러로부터 일 블럭의 데이터를 판독하는 단계;Reading a block of data from the local mirror; 상기 일 블럭의 데이터를 새로운 블럭으로서 일시 저장부에 기록하는 단계;Writing the data of one block into a temporary storage unit as a new block; 데이터 구조에서 논리적인 블럭 번호 입력을 갱신하는 단계;Updating the logical block number input in the data structure; 상기 새로운 블럭을 미러 데이터 모음에 기록하는 단계; 및Writing the new block to a mirror data collection; And 새로운 블럭의 논리적인 블럭 번호 입력을 상기 데이터 구조에 부가하는 단계Adding a logical block number input of a new block to the data structure 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 데이터 미러링 시스템에 있어서,In a data mirroring system, 로컬 미러로부터 일 블럭의 데이터를 판독하고, 상기 일 블럭의 데이터를 새로운 블럭으로서 일시 저장부에 기록하며, 데이터 구조에서 논리적인 블럭 번호 입력을 갱신하고, 상기 새로운 블럭을 미러 데이터 모음에 기록하며, 새로운 블럭의 논리적인 블럭 번호 입력을 상기 데이터 구조에 부가하는 적어도 하나의 수단Read a block of data from the local mirror, write the block of data as a new block to the temporary storage, update the logical block number input in the data structure, write the new block to the mirror data collection, At least one means for adding a logical block number input of a new block to the data structure 을 포함하는 데이터 미러링 시스템.Data mirroring system comprising a. 데이터 저장 관리 방법에 있어서,In the data storage management method, 데이터를 판독하는 단계; 및Reading data; And 가상 리모트 미러 유닛을 제공하는 단계Providing a virtual remote mirror unit 를 포함하는 데이터 저장 관리 방법.Data storage management method comprising a. 데이터 저장 관리 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data storage management method, the method comprising: 상기 방법은The method is 데이터를 판독하는 단계; 및Reading data; And 단일 하드웨어 플랫폼 상에서 복수의 가상 리모트 미러링 유닛을 실행하는 단계Executing a plurality of virtual remote mirroring units on a single hardware platform 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 데이터 미러링 시스템에 있어서,In a data mirroring system, 단일 하드웨어 플랫폼 상에서 적어도 2개의 가상 리모트 미러링 유닛At least two virtual remote mirroring units on a single hardware platform 을 포함하는 데이터 미러링 시스템.Data mirroring system comprising a. 데이터 저장 관리 방법에 있어서,In the data storage management method, 데이터를 판독하는 단계;Reading data; 애플리케이션에 의한 저장 동작의 순서와 빈도에 관한 이전의 특정 애플리케이션 지식 없이 빈번히 접속되는 데이터 엘리먼트(data element)를 식별하는 단계Identifying frequently accessed data elements without prior specific application knowledge regarding the order and frequency of storage operations by the application. 를 포함하는 데이터 저장 관리 방법.Data storage management method comprising a. 데이터 저장 관리 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data storage management method, the method comprising: 상기 방법은The method is 데이터를 판독하는 단계; 및Reading data; And 애플리케이션에 의한 저장 동작에 관한 특정 애플리케이션 지식 없이 빈번히 접속되는 데이터 엘리먼트를 식별하는 단계Identifying data elements that are frequently accessed without specific application knowledge about the storage operation by the application 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 개선된 데이터 저장 관리 시스템에 있어서,In the improved data storage management system, 특정 애플리케이션 지식 없이 빈번히 접속되는 데이터 엘리먼트를 식별하는 수단Means for identifying data elements that are frequently accessed without specific application knowledge 을 포함하는 데이터 저장 관리 시스템.Data storage management system comprising a. 제37항에 있어서,The method of claim 37, 특정 애플리케이션 지식 없이 빈번히 접속되는 데이터 엘리먼트를 식별하는 상기 수단은 부동(un-committing) 연속 데이터 블럭 및 애플리케이션 상태가 복원될 때까지 상태 블럭 갱신들 사이에 기록된 부동 상태 블럭 갱신에 의해서 애플리케이션의 상태의 복원을 돕는 수단과 함께 조정되는 데이터 미러링 유닛The means for identifying data elements that are frequently accessed without specific application knowledge is determined by the state of the application by floating state block updates written between un-committing contiguous data blocks and state block updates until the application state is restored. Data mirroring unit coordinated with means to help restore 을 포함하는 데이터 저장 관리 시스템.Data storage management system comprising a. 데이터 저장 관리 방법에 있어서,In the data storage management method, 데이터를 판독하는 단계; 및Reading data; And 1차 데이터 볼륨(data volume) 대신에 2차 데이터 볼륨을 이용한 후에 1차 데이터 볼륨으로부터 인증되지 않은 2차 데이터 볼륨을 재동기화시키는 단계Resynchronizing the unauthorized secondary data volume from the primary data volume after using the secondary data volume instead of the primary data volume 를 포함하는 데이터 저장 관리 방법.Data storage management method comprising a. 데이터 저장 관리 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data storage management method, the method comprising: 상기 방법은The method is 데이터를 판독하는 단계; 및Reading data; And 1차 데이터 볼륨 대신에 2차 데이터 볼륨을 이용한 후에 1차 데이터 볼륨으로부터 인증되지 않은 2차 데이터 볼륨을 재동기화시키는 단계Resynchronizing an unauthorized secondary data volume from the primary data volume after using the secondary data volume instead of the primary data volume 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 개선된 데이터 저장 관리 시스템에 있어서,In the improved data storage management system, 1차 데이터 볼륨으로서 2차 데이터 볼륨을 이용한 후에 1차 데이터 볼륨으로부터 인증되지 않은 2차 데이터 볼륨을 재동기화시키는 소프트웨어Software that resynchronizes unauthorized secondary data volumes from the primary data volume after using the secondary data volume as the primary data volume 를 포함하는 데이터 저장 관리 시스템.Data storage management system comprising a. 데이터 저장 관리 방법에 있어서,In the data storage management method, 데이터를 판독하는 단계; 및Reading data; And 미러링된 데이터 엘리먼트들의 순서화된 큐와 미러링된 데이터 엘리먼트들의 현재 복사본을 동일한 물리적 저장 시스템에 유지함으로써, 물리적으로 분할(partition)된 시스템을 구현하는 데에 동일한 데이터 엘리먼트를 상기 저장 시스템에 2번 기록할 필요가 없는 단계By maintaining an ordered queue of mirrored data elements and a current copy of the mirrored data elements in the same physical storage system, the same data element may be written to the storage system twice to implement a physically partitioned system. Steps not necessary 를 포함하는 데이터 저장 관리 방법.Data storage management method comprising a. 데이터 저장 관리 방법을 수행하도록 형성된 컴퓨터 저장 매체에 있어서,A computer storage medium configured to perform a data storage management method, the method comprising: 상기 방법은The method is 데이터를 판독하는 단계; 및Reading data; And 미러링된 데이터 엘리먼트들의 순서화된 큐와 미러링된 데이터 엘리먼트들의 현재 복사본을 동일한 물리적 저장 시스템에 유지하는 단계Maintaining an ordered queue of mirrored data elements and a current copy of the mirrored data elements on the same physical storage system. 를 포함하는 컴퓨터 저장 매체.Computer storage media comprising a. 개선된 데이터 저장 관리 시스템에 있어서,In the improved data storage management system, 미러링된 데이터 엘리먼트들의 순서화된 큐와 미러링된 데이터 엘리먼트들의 현재 복사본을 동일한 물리적 저장 시스템에 유지하는 소프트웨어Software that maintains an ordered queue of mirrored data elements and a current copy of the mirrored data elements on the same physical storage system. 를 포함하는 데이터 저장 관리 시스템.Data storage management system comprising a.
KR1020027016613A 2000-06-05 2001-06-02 Flexible remote data mirroring KR20030066331A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US20946900P 2000-06-05 2000-06-05
US60/209,469 2000-06-05
US22393400P 2000-08-09 2000-08-09
US60/223,934 2000-08-09
US26214301P 2001-01-16 2001-01-16
US60/262,143 2001-01-16

Publications (1)

Publication Number Publication Date
KR20030066331A true KR20030066331A (en) 2003-08-09

Family

ID=27395378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027016613A KR20030066331A (en) 2000-06-05 2001-06-02 Flexible remote data mirroring

Country Status (10)

Country Link
EP (1) EP1305711A4 (en)
JP (1) JP4945047B2 (en)
KR (1) KR20030066331A (en)
CN (1) CN1256672C (en)
AU (2) AU2001265335B2 (en)
BR (1) BR0111422A (en)
CA (1) CA2449984A1 (en)
IL (2) IL153163A0 (en)
MX (1) MXPA02012065A (en)
WO (1) WO2001097030A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150068556A (en) 2013-12-11 2015-06-22 주식회사 알티캐스트 System and method of providing a related service using still image or moving picture
KR20150071975A (en) 2013-12-19 2015-06-29 주식회사 알티캐스트 System and method of providing a related service using consecutive query images

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0227786D0 (en) * 2002-11-29 2003-01-08 Ibm Improved remote copy synchronization in disaster recovery computer systems
US7219201B2 (en) 2003-09-17 2007-05-15 Hitachi, Ltd. Remote storage disk control device and method for controlling the same
US7162551B2 (en) * 2003-10-31 2007-01-09 Lucent Technologies Inc. Memory management system having a linked list processor
JP4401895B2 (en) * 2004-08-09 2010-01-20 株式会社日立製作所 Computer system, computer and its program.
US7464124B2 (en) * 2004-11-19 2008-12-09 International Business Machines Corporation Method for autonomic data caching and copying on a storage area network aware file system using copy services
US7568056B2 (en) * 2005-03-28 2009-07-28 Nvidia Corporation Host bus adapter that interfaces with host computer bus to multiple types of storage devices
US9195397B2 (en) 2005-04-20 2015-11-24 Axxana (Israel) Ltd. Disaster-proof data recovery
US7707453B2 (en) 2005-04-20 2010-04-27 Axxana (Israel) Ltd. Remote data mirroring system
DE602006020709D1 (en) * 2005-04-20 2011-04-28 Axxana Israel Ltd REMOTE DATA MIRROR SYSTEM
WO2009047751A2 (en) 2007-10-08 2009-04-16 Axxana (Israel) Ltd. Fast data recovery system
US8037240B2 (en) * 2007-10-24 2011-10-11 International Business Machines Corporation System and method for using reversed backup operation for minimizing the disk spinning time and the number of spin-up operations
EP2286343A4 (en) 2008-05-19 2012-02-15 Axxana Israel Ltd Resilient data storage in the presence of replication faults and rolling disasters
US8289694B2 (en) 2009-01-05 2012-10-16 Axxana (Israel) Ltd. Disaster-proof storage unit having transmission capabilities
CN101997902B (en) * 2009-08-28 2015-07-22 云端容灾有限公司 Remote on-line backup system and method based on posthouse segmentation transmission
WO2011067702A1 (en) 2009-12-02 2011-06-09 Axxana (Israel) Ltd. Distributed intelligent network
CN108156265B (en) * 2010-11-22 2019-03-26 杭州硕文软件有限公司 A kind of application control method and mobile device
US8909996B2 (en) * 2011-08-12 2014-12-09 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging
US9135164B2 (en) * 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US10769028B2 (en) 2013-10-16 2020-09-08 Axxana (Israel) Ltd. Zero-transaction-loss recovery for database systems
US10379958B2 (en) 2015-06-03 2019-08-13 Axxana (Israel) Ltd. Fast archiving for database systems
US10003835B2 (en) * 2015-06-24 2018-06-19 Tribune Broadcasting Company, Llc Device control in backup media-broadcast system
CN107015887A (en) * 2017-02-21 2017-08-04 深圳市中博睿存信息技术有限公司 Object stores remote copy method and system
US10592326B2 (en) 2017-03-08 2020-03-17 Axxana (Israel) Ltd. Method and apparatus for data loss assessment
RU2726318C1 (en) * 2020-01-14 2020-07-13 Юрий Иванович Стародубцев Method for backing up complex object state
CN113742129B (en) * 2020-05-28 2024-05-28 珠海信核数据科技有限公司 Data backup method and device
JP7556593B1 (en) 2023-03-13 2024-09-26 Necプラットフォームズ株式会社 Control system, control device, control method, and program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994000816A1 (en) * 1992-06-18 1994-01-06 Andor Systems, Inc. Remote dual copy of data in computer systems
JPH07146810A (en) * 1993-09-27 1995-06-06 Toshiba Corp Computer system
KR0128271B1 (en) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 Remote data duplexing
US5574950A (en) * 1994-03-01 1996-11-12 International Business Machines Corporation Remote data shadowing using a multimode interface to dynamically reconfigure control link-level and communication link-level
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
US5870537A (en) * 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
JPH1139273A (en) * 1997-07-17 1999-02-12 Chubu Nippon Denki Software Kk Remote backup system
JPH1185594A (en) * 1997-09-01 1999-03-30 Hitachi Ltd Information processing system for remote copy
US6065018A (en) * 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
JPH11305947A (en) * 1998-04-17 1999-11-05 Fujitsu Ltd Remote transfer method for magnetic disk controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150068556A (en) 2013-12-11 2015-06-22 주식회사 알티캐스트 System and method of providing a related service using still image or moving picture
KR20150071975A (en) 2013-12-19 2015-06-29 주식회사 알티캐스트 System and method of providing a related service using consecutive query images

Also Published As

Publication number Publication date
AU6533501A (en) 2001-12-24
EP1305711A4 (en) 2007-05-02
BR0111422A (en) 2004-02-10
CN1256672C (en) 2006-05-17
IL153163A (en) 2008-11-26
JP4945047B2 (en) 2012-06-06
JP2004523017A (en) 2004-07-29
CN1457457A (en) 2003-11-19
CA2449984A1 (en) 2001-12-20
WO2001097030A1 (en) 2001-12-20
EP1305711A1 (en) 2003-05-02
AU2001265335B2 (en) 2007-01-25
MXPA02012065A (en) 2003-04-25
IL153163A0 (en) 2003-06-24

Similar Documents

Publication Publication Date Title
US10003647B2 (en) Flexible remote data mirroring
US7941501B2 (en) Flexible remote data mirroring
KR20030066331A (en) Flexible remote data mirroring
US6363462B1 (en) Storage controller providing automatic retention and deletion of synchronous back-up data
US10191677B1 (en) Asynchronous splitting
AU2001265335A1 (en) Flexible remote data mirroring
US5537533A (en) System and method for remote mirroring of digital data from a primary network server to a remote network server
US7020669B2 (en) Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption
US9256605B1 (en) Reading and writing to an unexposed device
CA2746416C (en) Method and system for managing replicated database data
EP2159680B1 (en) Secure virtual tape management system with balanced storage and multi-mirror options
US10185583B1 (en) Leveraging snapshots
US20060136685A1 (en) Method and system to maintain data consistency over an internet small computer system interface (iSCSI) network
US7831550B1 (en) Propagating results of a volume-changing operation to replicated nodes
US9378101B2 (en) Automatic failure recovery using snapshots and replicas
US8095828B1 (en) Using a data storage system for cluster I/O failure determination
Xiang et al. Storage virtualization based asynchronous remote mirror
WO2001082078A9 (en) Method and apparatus for maintaining the integrity of configuration data in redundant, fault tolerant network appliances

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee