KR100361076B1 - Method of mimory sharing and duplicate server system thereof - Google Patents

Method of mimory sharing and duplicate server system thereof Download PDF

Info

Publication number
KR100361076B1
KR100361076B1 KR1020000018557A KR20000018557A KR100361076B1 KR 100361076 B1 KR100361076 B1 KR 100361076B1 KR 1020000018557 A KR1020000018557 A KR 1020000018557A KR 20000018557 A KR20000018557 A KR 20000018557A KR 100361076 B1 KR100361076 B1 KR 100361076B1
Authority
KR
South Korea
Prior art keywords
memory
area
data
reflective
reflective memory
Prior art date
Application number
KR1020000018557A
Other languages
Korean (ko)
Other versions
KR20010090636A (en
Inventor
신현섭
Original Assignee
주식회사 로커스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 로커스 filed Critical 주식회사 로커스
Priority to KR1020000018557A priority Critical patent/KR100361076B1/en
Publication of KR20010090636A publication Critical patent/KR20010090636A/en
Application granted granted Critical
Publication of KR100361076B1 publication Critical patent/KR100361076B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D53/00Separation of gases or vapours; Recovering vapours of volatile solvents from gases; Chemical or biological purification of waste gases, e.g. engine exhaust gases, smoke, fumes, flue gases, aerosols
    • B01D53/34Chemical or biological purification of waste gases
    • B01D53/74General processes for purification of waste gases; Apparatus or devices specially adapted therefor
    • B01D53/86Catalytic processes
    • B01D53/88Handling or mounting catalysts
    • B01D53/885Devices in general for catalytic purification of waste gases
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61LMETHODS OR APPARATUS FOR STERILISING MATERIALS OR OBJECTS IN GENERAL; DISINFECTION, STERILISATION OR DEODORISATION OF AIR; CHEMICAL ASPECTS OF BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES; MATERIALS FOR BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES
    • A61L9/00Disinfection, sterilisation or deodorisation of air
    • A61L9/16Disinfection, sterilisation or deodorisation of air using physical phenomena
    • A61L9/18Radiation
    • A61L9/20Ultraviolet radiation
    • A61L9/205Ultraviolet radiation using a photocatalyst or photosensitiser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D2255/00Catalysts
    • B01D2255/20Metals or compounds thereof
    • B01D2255/207Transition metals
    • B01D2255/20707Titanium
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D2255/00Catalysts
    • B01D2255/80Type of catalytic reaction
    • B01D2255/802Photocatalytic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D2259/00Type of treatment
    • B01D2259/80Employing electric, magnetic, electromagnetic or wave energy, or particle radiation
    • B01D2259/804UV light
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01JCHEMICAL OR PHYSICAL PROCESSES, e.g. CATALYSIS OR COLLOID CHEMISTRY; THEIR RELEVANT APPARATUS
    • B01J21/00Catalysts comprising the elements, oxides, or hydroxides of magnesium, boron, aluminium, carbon, silicon, titanium, zirconium, or hafnium
    • B01J21/06Silicon, titanium, zirconium or hafnium; Oxides or hydroxides thereof
    • B01J21/063Titanium; Oxides or hydroxides thereof
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01JCHEMICAL OR PHYSICAL PROCESSES, e.g. CATALYSIS OR COLLOID CHEMISTRY; THEIR RELEVANT APPARATUS
    • B01J35/00Catalysts, in general, characterised by their form or physical properties
    • B01J35/30Catalysts, in general, characterised by their form or physical properties characterised by their physical properties
    • B01J35/39Photocatalytic properties

Landscapes

  • Chemical & Material Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Veterinary Medicine (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Animal Behavior & Ethology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Epidemiology (AREA)
  • Biomedical Technology (AREA)
  • Analytical Chemistry (AREA)
  • General Chemical & Material Sciences (AREA)
  • Oil, Petroleum & Natural Gas (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 서버 이중화 시스템 및 방법에 관한 것으로, 특히, 네트워크에 연결된 다수 개의 호스트 사이에 빠른 시간으로 메모리 내용을 공유하여 액세스할 수 있는 방법 및 시스템을 제공한다.The present invention relates to a server redundancy system and method, and more particularly, to a method and system that can share and access memory contents in a fast time between a plurality of hosts connected to a network.

본 발명은 실시간으로 업데이트되는 리플렉티브 메모리를 구비한 다수 개의 호스트가 리플렉티브 메모리 데이터 전송 수단을 통해 서로 연결되어 네트워크를 구성하고, 리플렉티브 메모리 라이브러리를 사용하여 각 호스트가 구비한 리플렉티브 메모리의 메모리 영역에 네트워크로 연결된 호스트들이 참조할 수 있는 로컬 데이터 영역을 할당한 후, 할당된 로컬 데이터 영역에 리플렉티브 메모리 라이브러리를 사용하여 메시지 또는 데이터를 기입, 저장, 독출함으로써, 네트워크에 연결된 호스트들은 마치 자신의 메인 메모리에서 데이터를 독출하는 것과 같은 효과를 얻을 수 있다. 그 결과, 이중화된 호스트들의 메모리 사이에 데이터 공유를 위한 통신시에 네트워크 트래픽 양에 무관하게 빠르고 일정한 네트워크 전송 속도를 보장할 수 있다.According to the present invention, a plurality of hosts having a reflective memory updated in real time are connected to each other through a reflective memory data transfer means to form a network, and each reflective host includes a reflective memory library. After allocating a local data area that can be referenced by networked hosts in the memory area of the creative memory, the user can write, store, or read a message or data in the allocated local data area by using a reflective memory library. Connected hosts have the same effect as reading data from their main memory. As a result, it is possible to guarantee a fast and constant network transmission speed regardless of the amount of network traffic in communication for data sharing between the memory of the redundant hosts.

Description

이중화 시스템의 메모리 공유 방법 및 이를 이용한 이중화 시스템{METHOD OF MIMORY SHARING AND DUPLICATE SERVER SYSTEM THEREOF}MEMORY OF MIMORY SHARING AND DUPLICATE SERVER SYSTEM THEREOF}

본 발명은 서버 이중화 방법 및 시스템에 관한 것으로, 특히, 네트워크에 연결된 이중화 호스트들이 실시간으로 동일한 데이터를 공유하여 호스트를 액세스할 수 있는 메모리 공유 방법 및 시스템을 제공한다.The present invention relates to a server redundancy method and system, and more particularly, to a memory sharing method and system in which redundant hosts connected to a network share the same data in real time to access a host.

최근 들어 네트워크 기술이 발전함에 따라서, 화상 회의, 원격 학습, 네트워크 게임 등, 실시간으로 사용자들이 네트워크에 연결되어 상호 간에 음성 및 화상 데이터를 전송하고 공유하는 멀티미디어 네트워킹 (multimedia networking) 기술이 소개되어 점차 확산되어 가고 있다.In recent years, as network technology has evolved, multimedia networking technology has been introduced, which allows users to connect to a network in real time, such as video conferencing, distance learning, and network games, to transmit and share voice and video data with each other. Is going.

그런데, 멀티미디어 네트워킹 응용분야는 화상 및 음성, 정보 처리에서 발생하는 방대한 데이터를 고속으로 전송할 것을 요구하고 있으며, 과중한 네트워크 트래픽에도 불구하고 요구 수준 이상의 일정 전송 속도를 요구하고 있다. 또한, 네트워크에 연결되어 있는 다수의 호스트들이 동시에 실시간으로 데이터를 신속히 공유하는 것이 요구되고 있다.음성 메일 서버(VMS; voice mail system) 또는 통합 메일 서버 시스템(UMS; unified message system)은 기본적으로 중단없는 서비스를 지향한다. 이를 위해 호스트를 두대로 구성하여 서로 감시하고, 이상 또는 장애가 발생한 경우 빠른 시간 내에 절체를 수행하여 서비스를 복구하여야 한다.즉, 개념적으로 하나의 이중화된 서버 시스템을 구성하도록 하여, 활성(active) 비활성(standby) 구조로 구성한다. 즉, 두대의 서버 중에서 하나는 활성(active) 상태에 있고, 다른 하나는 스탠바이(standby) 상태에 놓여지게 된다. 그런데, 활성 상태에 있는 서버와 스탠바이 상태에 있는 서버는 모두 부팅되어 운영 체계(OS; operating system)가 동작하고 있는 상태란 점에서는 차이가 없으나, 기능적인 측면에서 본다면 활성(active) 상태에 있는 서버의 MCU/MFU(main control unit/multi-function unit)에만 필요한 프로세스가 기동되어 있고 서비스를 제공하기 때문에 스탠바이 상태의 MCU/MFU와는 차이가 있다.즉, 스탠바이 상태의 MCU/MFU는 평소에는 스탠바이 상태로 있으면서 상대편 활성 상태의 MCU/MFU를 계속적으로 감시한다. 물론, 스탠바이 MCU/MFU에도 활성 MCU/MFU의 감시를 위한 프로세스들은 기동되어 있어야 한다.그러나, 스탠바이 서버 측의 프로세스들은 대부분이 기동되어 있지 않다가, 액티브 측 MCU/MFU가 다운되었다는 것을 감지하면 절체된 직후 가동되어 액티브로서의 기능을 대신 수행한다. 일반적으로, 이중화된 서버 시스템에서 MCU(main control unit)는 가입자 정보, 서비스 정보, 시스템/서비스 구성 데이터 베이스(configuration database)를 관리하게 되므로 액티브/스탠바이 절체 시에 데이터베이스 관리 서버(DBMS; database management server)의 안전한 절체가 필요하다. 더욱이 액티브/스탠바이 절체시에 신속한 절체 프로세스의 진행이 요구된다.더욱이, 액티브 측의 MCU/MFU가 기록하는 데이터 내용을 실시간으로 절체된 스탠바이 서버가 동기화하여 인식할 수 있는 동기화된 메모리 공유 방법이 요구된다.However, multimedia networking applications are demanding high-speed transmission of a large amount of data generated from video, audio, and information processing, and require a certain transmission speed higher than a required level despite heavy network traffic. In addition, it is required that a large number of hosts connected to a network share data in real time at the same time. The voice mail system (VMS) or unified message system (UMS) is basically stopped. We aim for a service that is not available. To this end, two hosts should be configured to monitor each other, and in the event of an abnormality or failure, a switchover must be performed to recover the service in a short time. It consists of a (standby) structure. In other words, one of the two servers is in an active state and the other is in a standby state. However, there is no difference in that both the server in the active state and the server in the standby state are booted and the operating system (OS) is operating, but from a functional point of view, the server is in the active state. This is different from the MCU / MFU in standby state because the process required only for the MCU's main control unit / multi-function unit (MFU) is started and provides services. Monitor the MCU / MFU of the opponent's active state. Of course, the standby MCU / MFU must also have processes running for monitoring the active MCU / MFU; however, most of the processes on the standby server side are switched off when they detect that the active MCU / MFU is down. Immediately afterwards, it is activated and performs the function as an active one. In general, in a redundant server system, the main control unit (MCU) manages subscriber information, service information, and a system / service configuration database. In an active / standby switchover, a database management server (DBMS) Safe transfer of) is required. In addition, a rapid transfer process is required for active / standby switching. Furthermore, a synchronized memory sharing method is required in which a standby server, which is transferred in real time, recognizes data contents recorded by an active MCU / MFU. do.

따라서, 본 발명의 제1 목적은 네트워크화 되어 있는 이중화 서버 시스템에 있어서, 액티브 서버와 스탠바이 서버가 데이터 내용을 거의 실시간을 동기화하여 공유할 수 있는 통신 방법 및 시스템을 제공하는데 있다.Accordingly, a first object of the present invention is to provide a communication method and system in which an active server and a standby server can share data contents in synchronization in real time in a redundant server system that is networked.

본 발명의 제2 목적은 상기 제1 목적에 부가하여, 네트워크화 되어 있는 이중화 서버 시스템에 있어서, 액티브/스탠바이 절체시에 신속하고 안정성 있게 절체가 이루어 질 수 있는 통신 방법 및 시스템을 제공하는데 있다.A second object of the present invention is to provide a communication method and system that can be switched quickly and stably in an active / standby switchover in a networked redundant server system in addition to the first object.

도1은 본 발명에 따른 이중화 서버 시스템을 구성하는 호스트 컴퓨터의 구성도.1 is a block diagram of a host computer constituting a redundant server system according to the present invention.

도2a는 본 발명에 따른 이중화 서버 시스템을 구성하는 호스트 컴퓨터가 구비하고 있는 리플렉티브 메모리의 메모리 영역을 나타내는 도면.Fig. 2A is a diagram showing a memory area of a reflective memory included in a host computer constituting a redundant server system according to the present invention.

도2b는 본 발명에 따른 리플렉티브 메모리의 메모리 영역을 할당하는 일 실시예를 나타낸 도면.Figure 2B illustrates one embodiment of allocating a memory region of a reflective memory in accordance with the present invention.

도3a는 본 발명의 제1 실시예에 따른 이중화 서버 시스템의 시스템 구성도.3A is a system configuration diagram of a redundant server system according to a first embodiment of the present invention.

도3b는 본 발명의 제1 실시예에 따른 서버 이중화를 위한 초기 동작을 나타낸 도면.Figure 3b illustrates an initial operation for server redundancy according to the first embodiment of the present invention.

도3c는 본 발명에 따른 리플렉티브 메모리 라이브러리 내의 리플렉티브 메모리 장치를 초기화하는 함수의 작업 흐름을 나타낸 흐름도.Figure 3C is a flow diagram illustrating the workflow of a function to initialize a reflective memory device in a reflective memory library in accordance with the present invention.

도3d는 본 발명에 따른 리플렉티브 메모리 라이브러리를 이용하여 리플렉티브 메모리에 로컬 데이터 영역을 할당하는 흐름을 나타낸 흐름도.FIG. 3D is a flow diagram illustrating a flow of allocating a local data area to a reflective memory using a reflective memory library in accordance with the present invention. FIG.

도3e는 본 발명에 따른 리플렉티브 메모리 라이브러리를 이용하여 리플렉티브 메모리에 할당된 로컬 데이터 영역에 데이터를 저장 또는 독출하는 작업 흐름을 나타낸 흐름도.3E is a flow diagram illustrating a workflow for storing or reading data in a local data area allocated to the reflective memory using the reflective memory library in accordance with the present invention.

도3f는 본 발명의 제1 실시예에 따른 서버 이중화 방법을 나타낸 흐름도.3F is a flowchart showing a server redundancy method according to the first embodiment of the present invention.

도4a는 본 발명의 제2 실시예에 따른 이중화 서버 시스템의 시스템 구성도.4A is a system configuration diagram of a redundant server system according to a second embodiment of the present invention.

도4b는 본 발명의 제2 실시예에 따른 이중화 서버 시스템에서 사용될 수 있는 리플렉티브 메모리의 메모리 영역 할당의 양호한 실시 방법을 나타낸 도면.Fig. 4B shows a preferred method of allocating a memory area of a reflective memory that can be used in a redundant server system according to a second embodiment of the present invention.

도4c는 본 발명의 제2 실시예에 따른 이중화 서버 시스템에서 사용될 수 있는 리플렉티브 메모리의 메모리 영역 할당의 또 다른 실시 방법을 나타낸 도면.FIG. 4C illustrates another embodiment of the memory area allocation of the reflective memory that can be used in the redundant server system according to the second embodiment of the present invention. FIG.

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

100, 200 : 호스트 컴퓨터100, 200: host computer

110, 210 : 마이크로 프로세서110, 210: Microprocessor

120, 220 : 메인 메모리120, 220: main memory

130, 230 : 로컬 기억 수단(하드디스크)130, 230: Local storage means (hard disk)

140, 240 : 리플렉티브 메모리(reflective memory; RFM)140 and 240: reflective memory (RFM)

300 : 리플렉티브 메모리 데이터 송수신 수단(광 케이블)300: reflective memory data transmission and reception means (optical cable)

400 : 리플렉티브 메모리의 메모리 영역400: memory area of reflective memory

410 : 리플렉티브 메모리 장치 드라이버 사용 영역410: Reflective memory device driver usage area

420 : 베이스 레지스터(base register) 영역420: base register area

430 : 메타 데이터베이스(meta database) 영역430 meta database area

440 : 사용자 데이터 영역440: user data area

480 : 리플렉티브 메모리의 메모리 주소480: memory address of reflective memory

상기 목적을 달성하기 위하여, 본 발명은 『액티브 또는 스탠바이 상태로 동작하고 네트워크를 통해 서로 접속된 복수 개의 호스트로 구성된 이중화 시스템에 있어서, 상기 각각의 호스트는 데이터 송수신 포트를 구비하고, 하드웨어적으로 데이터를 저장 또는 독출하는 기능을 구비한 리플렉티브 메모리(RFM)와: 상기 호스트에 구비된 상기 호스트에 구비된 상기 리플렉티브 메모리의 데이터 송수신 포트에 연결되어 상기 복수개의 리플렉티브 메모리에 저장된 내용을 실시간으로 동일하게 동기화시키는 리플렉티브 메모리 데이터 전송 수단을 구비하고, 상기 복수개의 호스트 중 액티브 호스트에서 기동 중인 프로세스가 생성하는 데이터는 상기 액티브 호스트의 리플렉티브 메모리와 상기 리플렉티브 메모리 데이터 전송 수단에 의해 동기화 접속된 스탠바이 호스트의 리플렉티브 메모리에 함께 기입됨으로써 액티브/스탠바이 절체 시에 메모리 내용을 공유함을 특징으로 하는 이중화 시스템 』을 제공한다.In order to achieve the above object, the present invention is directed to a &quot; redundant system composed of a plurality of hosts operating in an active or standby state and connected to each other via a network, wherein each host has a data transmission / reception port, A reflective memory (RFM) having a function of storing or reading the data; and connected to a data transmission / reception port of the reflective memory provided in the host and stored in the plurality of reflective memories Reflective memory data transfer means for synchronizing the contents in real time in the same manner, wherein data generated by a process running in an active host among the plurality of hosts includes the reflective memory and the reflective memory data of the active host. Synchronously connected by transmission means By being written with the reflective memory of a tan by the host provides a redundant system ", characterized in that the shared memory contents during active / standby switching.

본 발명의 또 다른 목적을 달성하기 위하여, 『액티브 또는 스탠바이로 동작하는 복수 개의 호스트로 구성된 이중화 시스템의 액티브 호스트에 기동 중인 프로세스가 생성하는 데이터를 스탠바이 호스트와 공유하기 위한 데이터 통신을 하는 방법에 있어서, 상기 호스트에 서버 프로세스 또는 클라이언트 프로세스를 생성하는 단계; 상기 호스트에 장착된 리플렉티브 메모리의 메모리 영역에 리플렉티브 메모리 라이브러리를 이용하여 로컬 데이터 영역을 할당하는 단계; 상기 클라이언트 프로세스는 상기 할당된 로컬 데이터 영역에 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계; 상기 서버 프로세스는 상기 할당된 로컬 데이터 영역에서 상기 클라이언트 프로세스의 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하고, 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계; 및 상기 클라이언트 프로세스는 상기 할당된 로컬 데이터 영역에서 상기 서버 프로세스의 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하는 단계를 포함하는 데이터 통신 방법』을 제공한다.In order to achieve another object of the present invention, "In a method of performing data communication for sharing data generated by a running process with a standby host in an active host of a redundant system consisting of a plurality of hosts operating in an active or standby mode Creating a server process or client process on the host; Allocating a local data area to a memory area of the reflective memory mounted in the host by using a reflective memory library; The client process writing a message to the allocated local data area using a reflective memory library; The server process reads a message of the client process from the allocated local data area using a reflective memory library and writes a response message using the reflective memory library; And reading, by the client process, a response message of the server process using the reflective memory library in the allocated local data area.

이하, 첨부 도면 도1 내지 도4를 참조하여 본 발명에 따른 이중화 서버의 실시간 통신 방법 및 이를 이용한 시스템의 양호한 실시예를 상세히 설명한다.Hereinafter, a preferred embodiment of a real-time communication method of a redundant server and a system using the same according to the present invention will be described in detail with reference to FIGS. 1 to 4.

도1은 본 발명에 따른 이중화 서버 시스템을 구성하는 호스트 컴퓨터의 구성도이다. 도1을 참조하면, 본 발명에 따른 네트워크 통신 시스템을 구성하는 호스트 컴퓨터(100)는 각종 프로세스를 생성하는 마이크로 프로세서(110)와 프로세스가 생성하는 데이터를 저장할 수 있는 메인 메모리(120), 전송 받은 데이터 또는 전송해야 할 데이터를 저장하고 있는 로컬 기억 수단으로서 하드디스크(130)를 구비하고 있다.1 is a block diagram of a host computer constituting a redundant server system according to the present invention. Referring to FIG. 1, the host computer 100 constituting the network communication system according to the present invention includes a microprocessor 110 for generating various processes and a main memory 120 for storing data generated by the process. The hard disk 130 is provided as a local storage means for storing data or data to be transmitted.

또한, 본 발명에 따른 이중화 서버 시스템을 구성하는 호스트 컴퓨터(100)는 마이크로 프로세서(110), 메인 메모리(120), 하드디스크(130) 이외에 리플렉티브 메모리(reflective memory; RFM; 140)를 구비하는 것을 특징으로 한다.In addition, the host computer 100 constituting the redundant server system according to the present invention includes a reflective memory (RFM; 140) in addition to the microprocessor (110), the main memory (120), and the hard disk (130). Characterized in that.

본 발명의 바람직한 실시예로 사용되는 RFM(140)은 호스트 컴퓨터(100)의 PCI 슬롯에 장착되어 사용될 수 있으며, 데이터를 송수신할 수 있는 송수신 포트를 구비하여 데이터 송수신 수단(300)과 연결될 수 있다. 또한, 송수신 포트에 연결된 데이터 송수신 수단(300)을 이용하여, 하드웨어적으로 액티브 서버의 RFM(140)에 연결된 다른 스탠바이 서버의 RFM과 동일한 메모리 구조를 가질 수 있다.본 발명에 따른 이중화 서버 시스템은 MCU/MFU(main control unit; multi-function unit)을 두 대로 구성하여 서로 감시하고, 이상 또는 장애가 발생한 경우 신속히 절체하여 서비스를 복구하도록 한다.액티브(active) 측 MCU/MFU에는 pnr.tab이라는 구성 테이블(configuration table)에 기술되어 있는 모든 프로세스가 기동되게 된다. 반면에, 스탠바이 측 MCU/MFU에는 PNR(process and resource)과 DNP(dual guardian process) 이외에 다른 프로세스는 모두 작동하지 않음을 특징으로 한다.본 발명에 따른 PNR은 프로세스를 관리하여 주는 프로세스로서, MCU/MFU가 처음 부팅될 때 반드시 기동시켜 주도록 되어 있다. 따라서, MCU/MFU가 부팅 완료되어 운용 중인 상태가 되면, PNR프로세스는 반드시 기동되어 있는 상태라 보면 된다.즉, 본 발명에 따른 PNR 프로세스는 자신이 기동되고 나면 가장 먼저 프로세스 관리 테이블(pnr.tab)을 읽어온다. 즉, 정해진 구성 파일(configuration file)로부터 프로세스의 구동에 관한 정보를 얻어내어 프로세스를 구동시켜 주는데, 기동시킨 프로세스(PNR에 대해서는 자식 프로세스가 된다)가 정상적인 경우이건, 비정상적인 경우이건 종료되었을 경우에는 이를 알아내어 해당 프로세스를 프로세스 관리 테이블에 있는 설정값을 참조하여 다시 기동시켜 주는 역할을 수행한다.즉, 본 발명에 따른 PNR은 MCU/MFU 내의 모든 프로세스의 부모 프로세스이며, PNR이 종료되면 자식 프로세스들은 모두 죽게 된다. 또한, PNR은 네트워크 이중화를 위하여 자신의 시스템에 설치되어 있는 네트워크 인터페이스 카드(NIC)의 상태를 감시하고 관리한다. 여기에서, 완전한 이중화를 위해서는 프로세스 각각이 관리하는 정보 또한 이중화 되어야 한다.만약, 이 정보가 메인 메모리에 있는 공유 메모리(shared memory) 또는 로컬 메모리 영역에 보관되어 있다면, 갑작스런 MCU/MFU 절체가 발생하였을 경우, 즉 자동 절체로 인한 MCU/MFU의 전이가 일어났을 경우 기존의 정보를 새로 액티브가 된 MCU/MFU에서 알아낼 수 있는 방법이 없게 된다. 이를 해결하기 위하여, 본 발명은 리플렉티브 메모리(reflective memory; RFM)를 사용한다.본 발명에 따른 RFM은 MCU/MFU의 메인 메모리 외에 별도로 부가하여 장착하는 메모리 보드이다. 현재, MCU/MFU에서 채택하고 있는 버스 방식이 PCI 방식이므로, 본 발명에 따른 RFM도 PCI 버스 방식을 사용할 수 있다. 본 발명에 따른 PCI용 RFM 보트는 액티브와 스탠바이 상태의 두 MCU/MFU 각각에 설치되며, 두 메모리 보드 사이에 광케이블(fiber optic cable)로 연결될 수 있다.본 발명의 양호한 실시예에 따라, MCU/MFU 내의 프로세스들은 만약 어느 한 쪽에서 기입(write)을 하는 경우, 상대편 RFM에도 같은 내용이 기입되므로, 양측 RFM에 기록되는 내용은 항상 일치성과 동기성(synchronization)이 유지된다.이와 같은 양측 서버 사이의 데이터 전송에는 소프트웨어적인 동작(operation)이 전혀 개입되지 않는 장점이 있다. 즉, 두 개의 RFM 노드 중에서 어느 한 노드의 레지스터에 데이터가 기록되면 광케이블을 통해 자동적으로 상대편 노드의 같은 레지스터에 같은 내용이 전송되어 기입된다. 따라서, 이를 적용하는 경우 거의 실시간으로 메모리 내용의 동기화를 구현할 수 있게 되어, MCU/MFU의 이중화에 유용하게 사용될 수 있다.The RFM 140 used as a preferred embodiment of the present invention may be mounted and used in a PCI slot of the host computer 100, and may be connected to the data transmission / reception means 300 having a transmission / reception port for transmitting and receiving data. . In addition, by using the data transmission and reception means 300 connected to the transmission and reception port, it may have the same memory structure as the RFM of another standby server connected to the RFM 140 of the active server in hardware. Two MCU / MFUs (main control unit; multi-function unit) are configured to monitor each other, and in the event of an abnormality or failure, quickly switch to recover the service.The active side MCU / MFU is configured as pnr.tab. All processes described in the configuration table will be started. On the other hand, the standby MCU / MFU is characterized in that all processes other than the process and resource (PNR) and dual guardian process (DNP) does not work. PNR according to the present invention is a process that manages the process, MCU / MFU must be started when it first boots up. Therefore, when the MCU / MFU is booted and is in a running state, the PNR process must be started. That is, the PNR process according to the present invention is the first process management table (pnr.tab) once it is started. Read). In other words, it obtains information about the process's operation from the specified configuration file and starts the process. When the started process (which becomes a child process for the PNR) is normal or abnormal or terminates, It finds and starts the process again by referring to the setting value in the process management table. That is, the PNR according to the present invention is the parent process of all processes in the MCU / MFU. Everybody dies. The PNR also monitors and manages the status of network interface cards (NICs) installed in its systems for network redundancy. Here, for complete redundancy, the information managed by each process must also be duplicated. If this information is stored in shared memory or local memory in main memory, a sudden MCU / MFU switchover would have occurred. In other words, when the MCU / MFU transition due to automatic switching occurs, there is no way to find the existing information from the newly active MCU / MFU. In order to solve this problem, the present invention uses a reflective memory (RFM). The RFM according to the present invention is a memory board which is additionally mounted in addition to the main memory of the MCU / MFU. Currently, since the bus scheme adopted by the MCU / MFU is a PCI scheme, the RFM according to the present invention may also use the PCI bus scheme. The RFM boat for PCI according to the present invention is installed in each of the two MCU / MFU in the active and standby state, and can be connected by a fiber optic cable between the two memory boards. According to a preferred embodiment of the present invention, MCU / Processes in the MFU are written to either side of the RFM if either side writes, so that the contents of both RFMs are always consistent and synchronized. The advantage of data transfer is that no software operation is involved. That is, when data is written to a register of one of two RFM nodes, the same contents are automatically transferred and written to the same register of the opposite node through the optical cable. Therefore, in case of applying this, synchronization of memory contents can be realized in near real time, which can be usefully used for dualizing MCU / MFU.

도2a는 본 발명에 따른 이중화 서버 시스템을 구성하는 호스트 컴퓨터에 장착된 RFM의 메모리의 구조를 나타낸 도면이다. 도2a를 참조하면, RFM(140)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다.Figure 2a is a view showing the structure of the memory of the RFM mounted to the host computer constituting the redundant server system according to the present invention. Referring to FIG. 2A, a memory area 400 and a memory address 480 of the RFM 140 are shown.

RFM(140)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터(base register) 영역(420), 메타 데이터베이스(metadatabase) 영역(430), 사용자 데이터 영역(440)으로 구성될 수 있다.The memory area 400 of the RFM 140 may include an RFM device driver use area 410, a base register area 420, a metadatabase area 430, and a user data area 440. Can be.

본 발명의 바람직한 실시예로서, RFM 장치 드라이버 사용 영역(410)은 RFM(140)의 메모리 영역(400) 0x0000번지부터 0x0040번지까지의 64 바이트(byte) 영역이 될 수 있으며, RFM 장치 드라이버가 RFM(140)의 구동을 위해 사용하는 데이터를 저장할 수 있다.In a preferred embodiment of the present invention, the RFM device driver usage area 410 may be a 64 byte area from 0x0000 to 0x0040 of the memory area 400 of the RFM 140, and the RFM device driver may be an RFM. Data used for driving the 140 may be stored.

본 발명에 따른 RFM(140)의 베이스 레지스터 영역(420)은 RFM 장치 드라이버 영역(410) 이후 0x0044 번지까지의 영역으로, RFM(140)의 메모리 영역 중 사용자가 사용 가능한 영역의 시작 주소를 저장할 수 있다.The base register area 420 of the RFM 140 according to the present invention is an area from the RFM device driver area 410 to the address 0x0044, and may store a start address of a user available area of the memory area of the RFM 140. have.

또한, 메타데이터베이스 영역(430)은 베이스 레지스터 영역(420) 이후 0x04B4 바이트만큼의 크기를 점유하는 영역으로, 사용자 데이터 영역(440) 내에 저장될 데이터에 할당되는 로컬 데이터 영역의 정보를 저장할 수 있다. 본 발명의 바람직한 실시예로서, 로컬 데이터 영역 정보는 해당 데이터를 RFM(140)에 저장하기 위하여 할당되는 로컬 데이터 영역의 시작 주소(reflective memory address identifier; RfmID)와 할당된 로컬 데이터 영역의 사이즈(reflective memory size; RfmSize), 해당 데이터를 구분할 수 있도록 해주는 구분자(reflective memory key; RfmKey) 등을 포함 할 수 있다.In addition, the metadata area 430 is an area occupying a size of 0x04B4 bytes after the base register area 420 and may store information of a local data area allocated to data to be stored in the user data area 440. In a preferred embodiment of the present invention, the local data area information includes a reflective memory address identifier (RfmID) of the local data area allocated for storing the corresponding data in the RFM 140 and the size of the allocated local data area. memory size; RfmSize), and a delimiter to distinguish the data.

본 발명에 따른 RfmKey의 바람직한 실시예로서, 마이크로 프로세서(110)에서 생성된 프로세스가 데이터를 RFM(140)저장할 경우에 결정할 수 있으며, '0'부터 RFM(140)의 메모리 영역(400)에 할당할 수 있는 로컬 데이터 영역의 최대 개수를 나타내는 정수 사이에서 결정될 수 있다.As a preferred embodiment of the RfmKey according to the present invention, a process generated in the microprocessor 110 may determine when the data is stored in the RFM 140, and is allocated from '0' to the memory area 400 of the RFM 140. Can be determined between integers representing the maximum number of local data areas that can be.

도2b는 본 발명에 따른 RFM의 메모리 영역을 할당하는 일 실시예를 나타낸 도면이다. 도2b를 참조하면, 사용자 데이터 영역(440) 중 0x04f8 번지부터 0x09AC번지는 이미 데이터 저장을 위한 할당된 로컬 데이터 영역(441)이며, 0x09AD 번지 이후는 미할당 영역(442)이다. 따라서, 베이스 레지스터 영역(420)에는 RFM(140) 메모리 영역(400) 중 사용 가능한 메모리 영역의 시작 주소(425)인 0x09AD 값이 저장되어 있다.2B illustrates an embodiment of allocating a memory area of an RFM according to the present invention. Referring to FIG. 2B, addresses 0x04f8 to 0x09AC in the user data area 440 are already allocated local data areas 441 for data storage, and after address 0x09AD, they are unallocated areas 442. Accordingly, the base register region 420 stores a value of 0x09AD, which is a start address 425 of an available memory region of the RFM 140 memory region 400.

또한, 메타 데이터베이스 영역(430)에는 데이터를 위해 이미 할당된 로컬 데이터 영역(441)의 로컬 데이터 영역 정보(450)인 RfmKey(451), RfmID(452), RfmSize(453)가 저장되어 있다. 즉, RfmID(452)값으로는 데이터 저장을 위해 할당된 로컬 데이터 영역(441)의 시작 주소인 0x04F8 값이 저장되어 있으며, 또한RfmSize(452)값으로는 로컬 데이터 영역(441)의 크기인 0x04B4 값이 저장되어 있다.In addition, the meta database area 430 stores RfmKey 451, RfmID 452, and RfmSize 453, which are local data area information 450 of the local data area 441, which is already allocated for data. That is, the RfmID 452 value stores 0x04F8, which is the start address of the local data area 441 allocated for data storage, and the RfmSize 452 value, 0x04B4, which is the size of the local data area 441. The value is stored.

따라서, 마이크로 프로세서(110)가 생성한 프로세스에 의해 정해진 RfmKey(451) 값만 알면, RfmKey(451) 값을 가지고 메타데이터베이스 영역(430)을 검색하여 해당 RfmID(452)와 RfmSize(453)를 얻어 RFM(140)의 로컬 데이터 영역(441)에 데이터를 저장 또는 독출할 수 있다.Accordingly, if only the RfmKey 451 value determined by the process generated by the microprocessor 110 is known, the metadata area 430 is searched with the RfmKey 451 value to obtain the corresponding RfmID 452 and RfmSize 453 to obtain the RFM. Data may be stored or read in the local data area 441 of 140.

도3a는 본 발명의 제1 실시예에 따른 네트워크 통신 시스템의 시스템 구성도이다. 도3a를 참조하면, 본 발명의 제1 실시예에 따른 네트워크 통신 시스템을 구성하는 제1 호스트(100)와 제2 호스트(200)는 각각 PCI 슬롯에 RFM(140,240)을 장착하고 있으며, RFM(140, 240)의 송수신 포트에 데이터 송수신 수단(300)을 연결하므로 서로 접속하고 있다.3A is a system configuration diagram of a network communication system according to a first embodiment of the present invention. Referring to FIG. 3A, the first host 100 and the second host 200 constituting the network communication system according to the first embodiment of the present invention are equipped with RFMs 140 and 240 in PCI slots, respectively. Since the data transmission and reception means 300 are connected to the transmission and reception ports of the 140 and 240, the connection is performed.

본 발명의 바람직한 실시예로서, 데이터 송수신 수단(300)은 광 케이블(300)이 사용될 수 있으며, 사용된 광 케이블(300)은 나노초(nano-second) 이하의 빠른 전송 속도로 데이터를 전송할 수 있다. 따라서, 제1 호스트(100)에 장착된 RFM(140)에 기입되는 데이터는 기입됨과 동시에 자동으로 광 케이블(300)을 통하여 제2 호스트(200)에 장착된 RFM(240)에 전송되어 기입되므로, 거의 실시간(real time)으로 RFM(140,240)의 데이터가 동기화(synchronize)될 수 있다.As a preferred embodiment of the present invention, the data transmission and reception means 300 may be an optical cable 300, the optical cable 300 used can transmit data at a high transmission rate of less than nanoseconds (nano-second) . Therefore, data written to the RFM 140 mounted on the first host 100 is written and automatically transmitted to the RFM 240 mounted on the second host 200 through the optical cable 300. The data of the RFMs 140 and 240 can be synchronized in near real time.

도3b는 본 발명의 제1 실시예에 따른 서버 이중화를 위한 초기 동작을 나타낸 도면이다. 도3b를 참조하면, 제1 호스트(100)와 제2 호스트(200)가 도시되어 있으며, 각 호스트(100, 200)에 장착된 RFM(140, 240)은 광 케이블(300)을 통해 접속되어 있다. 본 발명에 따른 바람직한 실시예로서, 제1 호스트(100)는 서버가 될 수 있으며, 제2 호스트(200)는 클라이언트가 될 수 있다.3B is a diagram illustrating an initial operation for server redundancy according to the first embodiment of the present invention. Referring to FIG. 3B, a first host 100 and a second host 200 are illustrated, and RFMs 140 and 240 mounted on each host 100 and 200 are connected through an optical cable 300. have. In a preferred embodiment according to the present invention, the first host 100 may be a server and the second host 200 may be a client.

본 발명에 따른 바람직한 실시예를 따르면, 각 호스트(100, 200)의 마이크로 프로세서(110, 210)는 각각 서버 프로세스(115)와 클라이언트 프로세스(215)를 생성하고, RFM 라이브러리를 이용하여 RFM(140, 240)에 RfmKey 값을 가지고, RFM(140, 240)의 메모리 영역(400) 해당 RfmKey에 대한 로컬 데이터 영역을 할당한다.MCU/MFU가 처음 부팅될 때 반드시 기동되는 PNR(process and resource manager) 프로세스는 DGP(duplication guardian process)를 기동시키게 된다. 본 발명에 따른 DGP 프로세스는 하트 비트(heart beat) 네트워크를 통해 상대편 DGP와 주기적으로 통신을 하고 있다가 상대편이 절체되었는지를 감지하여 절체 작업이 이루어지도록 한다. 즉, DGP는 액티브/스탠바이 MFU 사이의 이중화를 위한 감시 기능을 맡고 있으며, 서비스 네트워크와 별도로 분리되어 있는 하트 비트 네트워크를 통하여 주기적으로 상대편 DGP와 통신을 함으로써 상대편 MFU의 장애 유무를 판단토록 할 수 있다.본 발명에 따른 RFM에 데이터를 읽고 쓰기 위해서는 RFM 라이브러리를 사용하면 된다. 만약, 두 개 이상의 프로세스가 동일한 RFM 영역을 접근해야 할 필요가 있으면, 세마퍼(semaphore)를 사용하여 잠김 상태(locking)를 걸어 주도록 한다.각각의 프로세스는 RFM 내에 일정 영역을 할당받아 공유 메모리(shared memory)를 쓰는 것과 같이 RFM 내에 자신이 할당받은 영역을 가리키는 포인터를 얻어내게 된다.According to a preferred embodiment of the present invention, the microprocessors 110 and 210 of each host 100 and 200 generate a server process 115 and a client process 215, respectively, and use an RFM library using the RFM library. And a RfmKey value at 240, and allocates a local data area for the corresponding RfmKey in the memory area 400 of the RFM 140 and 240. A process and resource manager (PNR) that is always started when the MCU / MFU is first booted. The process will start a duplication guardian process (DGP). The DGP process according to the present invention periodically communicates with the other party's DGP via a heart beat network, and detects whether the other party is transferred so that the transfer operation is performed. In other words, DGP is in charge of the monitoring function for redundancy between active / standby MFU, and can communicate with other DGP periodically through heartbeat network that is separate from service network. The RFM library can be used to read and write data to the RFM according to the present invention. If two or more processes need to access the same RFM area, use a semaphore to lock them.Each process is allocated a certain area within the RFM and shared memory ( You can get a pointer to the allocated area of the RFM, like using shared memory.

본 발명에 따른 바람직한 실시예로서, RFM 라이브러리는 RFM(140, 240) 장치를 오픈하는(RfmOpen) 함수, RFM(140, 240) 장치를 클로즈하는(RfmClose) 함수, RFM(140, 240) 장치를 초기화하는(RfmInit) 함수, 프로세스가 설정한 RfmKey 값을 가지고 RFM(140, 240)의 메모리 영역의 RfmID 값을 얻어내는(RfmGet) 함수, RfmID 값을 가지고 RfmID 값을 시작 주소로 하는 RFM(140, 240)의 메모리 영역을 가리키는 메인 메모리(120) 상의 포인터를 얻어내는(RfmAttach) 함수, 특정 RfmKey 값의 세마퍼(semaphore) 잠금 상태를 설정하는(RfmSemLock) 함수, 특정 RfmKey 값의 세마퍼 잠금 상태를 해제하는(RfmSemUnlock) 함수, RFM(140, 240)에 저장된 데이터의 내용을 강제적으로 동기화시키는(RfmSync) 함수를 포함할 수 있다.In a preferred embodiment of the present invention, the RFM library includes a function of opening the RFM 140, 240 device (RfmOpen), a function of closing the RFM 140, 240 device (RfmClose), an RFM 140, 240 device. Function to initialize (RfmInit), get RfmID value of memory area of RFM (140, 240) with RfmKey value set by process (RfmGet), RFM (140, with RfmID value as starting address) A function that obtains a pointer on main memory 120 pointing to a memory area of 240 (RfmAttach), sets a semaphore lock state for a specific RfmKey value, and sets the semaphore lock state for a specific RfmKey value. The RfmSemUnlock function may include a function of forcibly synchronizing the contents of data stored in the RFMs 140 and 240 (RfmSync).

본 발명의 양호한 실시예로서, RfmSync 함수는 서버(100)에 장착된 RFM(140)의 메모리 영역(400)에 저장된 데이터를 다시 한번 RFM(140)에 기입하므로, 각각의 RFM(140, 240)의 메모리 영역(400)에 저장된 데이터를 강제적으로 동기화 시킬 수 있다.In a preferred embodiment of the present invention, the RfmSync function writes data stored in the memory area 400 of the RFM 140 mounted on the server 100 to the RFM 140 once again, so that the respective RFMs 140, 240 The data stored in the memory area 400 may be forcibly synchronized.

본 발명의 양호한 실시예로서, RfmSemLock 함수와 RfmSemUnlock 함수는 세마퍼의 상태를 변화시키는 함수로, 각 호스트(100, 200)의 마이크로프로세서(110, 210)가 동시에 RFM(140,240)의 동일한 메모리 영역을 액세스하는 것을 방지하고, 데이터를 저장 또는 독출할 경우 이벤트 신호를 발생시키기 위하여 사용될 수 있다.In a preferred embodiment of the present invention, the RfmSemLock function and the RfmSemUnlock function are functions for changing the state of the semaphore, so that the microprocessors 110 and 210 of each host 100 and 200 simultaneously share the same memory area of the RFM 140 and 240. It can be used to prevent access and to generate event signals when storing or reading data.

즉, 제1 호스트(100)에서 RFM(140, 240)에 데이터를 저장 또는 독출하기 전에 RfmSemLock 함수를 실행하여 해당 데이터의 RfmKey에 대한 세마퍼(semaphore)를 잠금 상태로 설정한 후 데이터를 저장 또는 독출하여, 제2 호스트(200)가 해당 RfmKey 값을 가지고 RFM(140, 240)의 동일한 메모리 영역에 액세스하는 것을 방지하여 데이터의 오류가 발생하지 않도록 한다.That is, before the first host 100 stores or reads data in the RFMs 140 and 240, the RfmSemLock function is executed to set a semaphore for the RfmKey of the corresponding data and then store the data. The second host 200 is prevented from accessing the same memory area of the RFMs 140 and 240 with the corresponding RfmKey value so that no data error occurs.

또한, 제1 호스트(100)가 데이터의 저장 또는 독출이 끝나면 RfmSemUnlock 함수를 실행하여 세마퍼(semaphore) 잠금 상태를 해제하며, 제2 호스트(200)가 RFM(140, 240)의 해당 영역을 액세스할 수 있게 한다. 또한, 제2 호스트(200)는 특정 RfmKey에 대한 세마퍼(semaphore)의 잠금 상태가 변화하는 것을 감지하여, 제1 호스트가 RFM(140, 240)을 액세스 한 것을 인식할 수 있다.In addition, when the first host 100 finishes storing or reading data, the RfmSemUnlock function is executed to release the semaphore lock state, and the second host 200 accesses a corresponding area of the RFMs 140 and 240. Make it possible. In addition, the second host 200 may detect that the lock state of the semaphore for the specific RfmKey changes, and recognize that the first host has accessed the RFMs 140 and 240.

도3c는 본 발명에 따른 RFM 라이브러리 내의 RFM 장치를 초기화는 함수의 작업 흐름을 나타낸 흐름도이다. 도3c를 참조하면, RFM(140, 240) 장치를 초기화하는 RfmInit 함수는 RFM(140, 240)의 메모리 영역(400)을 각 호스트(100, 200)의 메인 메모리(120, 220)의 메모리 영역에 매핑시키고(단계 S501), RFM(140, 240)에 베이스 레지스터 영역(420)을 할당한다(단계 S502).3C is a flow diagram illustrating the workflow of a function of initializing an RFM device in an RFM library in accordance with the present invention. Referring to FIG. 3C, the RfmInit function for initializing the RFM 140, 240 device may include a memory area 400 of the RFM 140, 240 and a memory area of the main memory 120, 220 of each host 100, 200. (Step S501), the base register area 420 is allocated to the RFMs 140 and 240 (step S502).

이어서, RFM(140, 240)메모리 영역에 대한 세마퍼를 생성하고, 초기 값을 설정한다(단계 S503). 세마퍼의 생성 및 초기값 설정이 끝나면 이어서, 메타 데이터베이스 영역(430)을 할당하고(단계 S504), 메타 데이터베이스 영역(430)이후 사용자가 사용 가능한 사용자 데이터 영역(440)의 시작 주소를 베이스 레지스터(420) 값으로 업데이트한다(단계 S505).Subsequently, a semaphore is generated for the RFM 140, 240 memory area, and an initial value is set (step S503). After the generation of the semaphore and the initial value setting are completed, the meta database area 430 is allocated (step S504), and the start address of the user data area 440 available to the user after the meta database area 430 is assigned to the base register ( 420) update to a value (step S505).

도3d는 본 발명에 따른 RfmKey 값과 RFM 라이브러리를 이용하여 RFM에 로컬 데이터 영역을 할당하는 흐름을 나타낸 흐름도이다. 도3d를 참조하면 각 호스트(100, 200)의 서버 프로세스(115) 및 클라이언트 프로세스(215)는 RfmOpen 함수를 실행하여 RFM(140, 240)장치를 오픈한다(단계 S601).3d is a flowchart illustrating a flow of allocating a local data area to an RFM using an RfmKey value and an RFM library according to the present invention. Referring to FIG. 3D, the server process 115 and the client process 215 of each host 100, 200 execute the RfmOpen function to open the RFM 140, 240 device (step S601).

또한, RfmInit 함수를 실행하여, 베이스 레지스터(420), 메타 데이터베이스 영역(430)을 할당한다(단계 S602). 이어서, 서버 프로세스(115) 또는 클라이언트 프로세스(215)는 RfmKey 값을 결정하고, 베이스 레지스터(420)로부터 사용자 데이터 영역(440) 중 사용 가능한 영역의 시작 주소를 RFM 라이브러리를 이용하여 독출하고, RfmSize 값만큼 사용자 데이터 영역(440) 상에 RfmKey 값에 대한 로컬 데이터 영역을 확보한다(단계 S603).Further, the RfmInit function is executed to allocate the base register 420 and the meta database area 430 (step S602). The server process 115 or client process 215 then determines the RfmKey value, reads from the base register 420 the start address of the available area of the user data area 440 using the RFM library, and reads the RfmSize value. As much as the local data area for the RfmKey value is reserved on the user data area 440 (step S603).

이어서, 베이스 레지스터로(420)부터 독출된 사용 가능한 영역의 시작 주소를 RfmID로 하여, RfmKey, RfmID, RfmSize 등의 로컬 데이터 영역 정보를 메타 데이터베이스 영역(430)에 RFM 라이브러리를 이용하여 저장한다(단계 S604).Subsequently, local data area information such as RfmKey, RfmID, and RfmSize is stored in the meta database area 430 using the RFM library, with the start address of the usable area read out from the base register 420 as RfmID (step Sfm). S604).

도3e는 본 발명에 따른 RFM 라이브러리를 이용한 데이터 저장 또는 독출 방법을 나타낸 흐름도이다. 도3e를 참조하면, RfmKey 값을 가지고 RfmGet 함수를 실행하여 RfmID를 독출하고(단계 S701), 독출된 RfmID를 가지고, RfmAttach함수를 실행하여 RfmID를 시작 주소로 하는 영역을 가리키는 메인 메모리 상의 포인터를 얻어낸다(단계 S702).3E is a flowchart illustrating a data storage or reading method using an RFM library according to the present invention. Referring to FIG. 3E, the RfmGet function is executed to read the RfmID by using the RfmKey value (step S701), and the RfmID is executed to execute the RfmAttach function to obtain a pointer in the main memory indicating the region having the RfmID as the starting address. (Step S702).

이어서, RfmKey 값에 대한 세마퍼를 RfmSemLock 함수를 실행하여 세마퍼 잠금 상태를 설정하고(단계 S703), RfmAttach 함수로 얻은 포인터가 가리키는 영역에 데이터를 저장 또는 독출하고(단계 S704), 다시 RfmKey 값을 가지고 RfmSemUnlock 함수를 실행하여 해당 세마퍼 잠금 상태를 해제한다(단계 S705).Subsequently, the semaphore for the RfmKey value is executed by executing the RfmSemLock function to set the semaphore lock state (step S703), and the data is stored or read in the area pointed to by the pointer obtained by the RfmAttach function (step S704), and the RfmKey value is again obtained. The RfmSemUnlock function is executed to release the semaphore lock state (step S705).

본 발명에 따르면, RFM 라이브러리에 포함되어 있는 RfmGet 함수와 RfmAttach 함수를 사용하여, 각 호스트(100, 200)의 마이크로 프로세서(110, 210)는 마치 메인 메모리에 데이터를 저장 또는 독출하는 것과 같이 RFM의 메모리 영역에 데이터를 저장 또는 독출할 수 있다.According to the present invention, by using the RfmGet function and the RfmAttach function included in the RFM library, the microprocessors 110 and 210 of each host 100 and 200 store the RFM as if the data is stored or read in main memory. Data can be stored or read in the memory area of the memory.

본 발명의 바람직한 실시예로서, 특정한 데이터 값을 저장 또는 독출하기 위해 선정된 RfmKey 값을 사용할 수 있다. 즉, 베이스 레지스터 영역(420)에 데이터를 저장 또는 독출하기 위한 RfmKey 값은 '0'을 사용할 수 있으며, 또한, 메타 데이터베이스 영역(430)에 데이터를 저장 및 독출하기 위한 RfmKey 값은 '1'을 사용할 수 있다.As a preferred embodiment of the present invention, a predetermined RfmKey value may be used for storing or reading specific data values. That is, the RfmKey value for storing or reading data in the base register area 420 may use '0', and the RfmKey value for storing and reading data in the meta database area 430 may read '1'. Can be used.

도3f는 본 발명의 제1 실시예에 따른 이중화 서버의 통신 방법을 나타낸 흐름도이다. 도3f를 참조하면, 서버 프로세스(115) 및 클라이언트 프로세스(215)가 RFM(140, 240)을 오픈하고, 초기화하면(단계 S801), 서버 프로세스(115)는 RfmKey값을 결정하고, 데이터 저장 영역을 할당하여, 메타 데이터베이스 영역(430)에 데이터 영역 정보를 저장한다(단계 S802).3F is a flowchart illustrating a communication method of a redundant server according to the first embodiment of the present invention. Referring to FIG. 3F, when the server process 115 and the client process 215 open and initialize the RFMs 140 and 240 (step S801), the server process 115 determines the RfmKey value and the data storage area. To store the data area information in the meta database area 430 (step S802).

이어서, 클라이언트 프로세스(215)는 서버 프로세스(115)로부터 RfmKey 값을 통지 받고, 통지 받은 RfmKey 값을 가지고 메타 데이터베이스 영역(430)을 검색하여 RfmID를 얻는다. 또한, 얻은 RfmID를 가지고, 할당된 데이터 영역을 가리키는 메인 메모리(120, 220) 상의 포인터를 얻는다(단계 S803). RfmID로 얻은 포인터를 이용하여 RFM(140, 240) 영역에 데이터 요청 메시지를 기입한다(단계 S804).Subsequently, the client process 215 is notified of the RfmKey value from the server process 115, searches the meta database area 430 with the notified RfmKey value, and obtains an RfmID. Further, with the obtained RfmID, a pointer on main memory 120, 220 indicating the allocated data area is obtained (step S803). The data request message is written to the RFMs 140 and 240 using the pointer obtained as the RfmID (step S804).

서버 프로세스(115)는 데이터 요청 메시지 기입에 따른 세마퍼 잠금 상태의 변화를 인식하여, 클라이언트 프로세스(215)의 데이터 요청 메시지를 RFM(140)으로 부터 독출하고(단계 S805), 데이터 요청 메시지에 상응하는 데이터를 제1 호스트(100)의 하드디스크(130)로부터 독출하여 제1 호스트(100)의 RFM(140)에 기입한다(단계 S806).The server process 115 recognizes the change in the semaphore lock state according to the writing of the data request message, reads the data request message of the client process 215 from the RFM 140 (step S805), and corresponds to the data request message. The data to be read is read from the hard disk 130 of the first host 100 and written to the RFM 140 of the first host 100 (step S806).

또한, 클라이언트 프로세스(215)는 서버 프로세스(115)가 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 제1 호스트(100)의 RFM(140)에 기입하므로 발생하는 세마퍼 잠금 상태의 변화를 인식하여, 실시간으로 업데이트된 제2 호스트(200)의 RFM(240)으로부터 요청한 데이터를 독출하여 하드디스크(230)로 저장한다.In addition, the client process 215 is a semaphore lock that occurs because the server process 115 reads data from the hard disk 130 of the first host 100 and writes the data to the RFM 140 of the first host 100. Recognizing a change in state, the requested data is read from the RFM 240 of the second host 200 updated in real time and stored in the hard disk 230.

한편, 클라이언트 프로세스(215)가 서버 프로세스(115)로부터 RfmKey 값을 통지 받는 단계는 서버 프로세스(115)가 선정된 RfmKey 값을 이용하여 클라이언트 프로세스(215)에 부여할 RfmKey 값을 RFM(140, 240)에 저장하고, 클라이언트 프로세스(215)는 상기 선정된 RfmKey 값을 가지고 RfmGet 함수와 RfmAttach 함수를 실행하여 제2 호스트(200)의 클라이언트 프로세스(215)에 할당된 RfmKey 값을 독출하는 단계로 할 수 있다.Meanwhile, in the step in which the client process 215 is notified of the RfmKey value from the server process 115, the RFM 140, 240 may assign the RfmKey value to the client process 215 using the selected RfmKey value. ), And the client process 215 executes the RfmGet function and the RfmAttach function with the selected RfmKey value to read the RfmKey value assigned to the client process 215 of the second host 200. Can be.

또한, 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 RFM (140, 240)에 기입하는 단계(단계 S806)는 제1 호스트(100)가 제2 호스트(200)의 요청 메시지에 대한 답신 메시지를 RFM(140)에 기입하는 것으로 대신할 수 있다. 제2 호스트(200)가 RFM(240)에 기입된 데이터를 독출하여 하드디스크(230)에 저장하는 것(단계 S807)은 제2 호스트(200)가 제1 호스트(100)의 답신 메시지를 RFM(140, 240)으로부터 독출하는 것으로 대신할 수 있다.In addition, the step of reading data from the hard disk 130 of the first host 100 and writing the data to the RFMs 140 and 240 (step S806) is performed by the first host 100 requesting a message from the second host 200. This can be done by writing a reply message to RFM 140. When the second host 200 reads the data written in the RFM 240 and stores the data in the hard disk 230 (step S807), the second host 200 transmits the reply message of the first host 100 to the RFM. It can be substituted by reading from 140 and 240.

또한, 본 발명의 바람직한 실시예로서, 제1 호스트(100)의 하드디스크(130)로부터 데이터를 독출하여 RFM(140)에 기입하는 단계(단계 S806)와 제2 호스트(200)의 RFM(240)으로부터 데이터를 독출하여 하드디스크(230)로 저장하는 단계(단계 S807)는 데이터의 크기에 따라 한번 또는 그 이상 반복될 수 있다.In addition, as a preferred embodiment of the present invention, the step of reading data from the hard disk 130 of the first host 100 to write to the RFM 140 (step S806) and the RFM 240 of the second host 200 In step S807, the data is read out and stored in the hard disk 230 (step S807), and may be repeated once or more depending on the size of the data.

본 발명은 실시간으로 업데이트되는 RFM(140, 240)을 통하여 회선에 의한 지연 없이 곧바로 원거리 호스트에 있는 데이터를 빠른 시간 내에 자신이 장착하고 있는 RFM으로부터 독출할 수 있다. 또한, 본 발명에 따른 RFM 라이브러리를 사용하면 사용자는 메인 메모리 상에 데이터 저장 또는 독출하는 것과 같은 효과를 얻을 수 있다.According to the present invention, the RFMs 140 and 240 that are updated in real time can immediately read data in the remote host from the RFM that they are equipped with in a short time without delay by the circuit. In addition, by using the RFM library according to the present invention, the user can obtain an effect such as storing or reading data on the main memory.

도4a는 본 발명에 따른 제2 실시예에 따른 다중화 서버 시스템의 구성도이다. 도4a를 참조하면, 제1 호스트(100)와 링 타입으로 광 케이블(300)에 연결되어 있는 각 호스트(200)가 도시되어 있다. 본 발명의 바람직한 실시예로서, 제1 호스트(100)는 서버(100)일 수 있으며, 각 호스트(200)는 클라이언트 호스트(200)가 될 수 있다.4A is a block diagram of a multiplexing server system according to a second embodiment of the present invention. Referring to FIG. 4A, each host 200 connected to the optical cable 300 in a ring type with the first host 100 is illustrated. In a preferred embodiment of the present invention, the first host 100 may be a server 100, and each host 200 may be a client host 200.

본 발명에 따른 서버(100) 및 클라이언트 호스트(200)는 RFM 라이브러리를 이용하여 RFM(140, 240)을 오픈하고 초기화한다. 또한, 클라이언트 호스트(200)는 서버(100)에서 부여하는 RfmKey 값을 이용하여 네트워크 통신을 위한 RFM(140, 240)의 메모리 영역(400)을 할당받는다. 즉, RFM(140, 240)의 메모리 영역(400)에 로컬 데이터 영역 할당받아 각 호스트(100, 200)는 메시지 또는 데이터를 주고받을 수 있다.The server 100 and the client host 200 according to the present invention open and initialize the RFMs 140 and 240 using the RFM library. In addition, the client host 200 is allocated a memory area 400 of the RFMs 140 and 240 for network communication using the RfmKey value assigned by the server 100. That is, each host 100 or 200 may receive a local data area in the memory area 400 of the RFMs 140 and 240 so as to exchange a message or data.

본 발명의 제2 실시예는 실시간으로 업데이트되는 RFM(140, 240)을 통하여 각 클라이언트 호스트(200)는 빠른 시간 내에 서버(100)로부터 데이터를 얻을 수 있도록 항상 일정한 네트워크 전송 속도를 보장할 수 있다.According to the second embodiment of the present invention, each client host 200 may guarantee a constant network transmission speed so that each client host 200 may obtain data from the server 100 in a short time through the RFMs 140 and 240 updated in real time. .

도4b는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에 적용될 수 있는 RFM 메모리 영역 할당 방법의 일 실시예를 나타낸 도면이다. 도4b를 참조하면, RFM(140, 240)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다. RFM(140, 240)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터 영역(420), 메타 데이터 베이스 영역(430), 사용자 데이터 영역(440) 등으로 구분될 수 있다.4B is a diagram illustrating an RFM memory area allocation method that can be applied to a network communication system according to a second embodiment of the present invention. Referring to FIG. 4B, the memory area 400 and the memory address 480 of the RFMs 140 and 240 are shown. The memory area 400 of the RFMs 140 and 240 may be divided into an RFM device driver use area 410, a base register area 420, a meta database area 430, a user data area 440, and the like.

본 발명에 따라 서버(100)에 접속한 다수의 클라이언트 호스트(200)는 서버(100)로부터 서로 다른 RfmKey 값(901, 902, 903)을 부여받아 서로 다른 로컬 데이터 영역(911, 912, 913)을 할당받을 수 있다. 따라서, 각 클라이언트호스트(200)는 서로 독립적으로 서버(100)와 네트워크 통신을 수행할 수 있다.According to the present invention, a plurality of client hosts 200 accessing the server 100 receive different RfmKey values 901, 902, and 903 from the server 100, and thus, different local data areas 911, 912, and 913. Can be assigned. Accordingly, each client host 200 may perform network communication with the server 100 independently of each other.

도4c는 본 발명의 제2 실시예에 따른 네트워크 통신 시스템에서 사용될 수 있는 RFM 메모리 영역 할당 방법의 또 다른 실시예를 나타낸 도면이다. 도4c를 참조하면, RFM(140, 240)의 메모리 영역(400)과 메모리 주소(480)가 도시되어 있다. RFM(140, 240)의 메모리 영역(400)은 RFM 장치 드라이버 사용 영역(410), 베이스 레지스터 영역(420), 메타 데이터 베이스 영역(430), 사용자 데이터 영역(440) 등으로 구분될 수 있다.4C is a diagram illustrating another embodiment of an RFM memory area allocation method that may be used in a network communication system according to a second embodiment of the present invention. Referring to FIG. 4C, the memory area 400 and the memory address 480 of the RFMs 140 and 240 are shown. The memory area 400 of the RFMs 140 and 240 may be divided into an RFM device driver use area 410, a base register area 420, a meta database area 430, a user data area 440, and the like.

본 발명의 바람직한 실시예로서, 서버(100)에 접속한 다수의 클라이언트 호스트(200)는 서버(100)로부터 동일한 RfmKey(904) 값을 부여받아 동일한 로컬 데이터 영역(914)을 할당받을 수 있다. 따라서, 각 클라이언트 호스트(200)는 각 호스트(200)에 장착된 RFM(140, 240)의 메모리 영역(400) 중 동일한 로컬 데이터 영역(914)을 참조하여 서로 데이터를 동시에 공유할 수 있다. 즉, 서버(100)에 의하여 로컬 데이터 영역(914)의 데이터가 변경되는 경우, 모든 클라이언트 호스트(200)는 동일한 데이터를 자신이 장착하고 있는 RFM(200)에서 곧바로 참조하게 된다.As a preferred embodiment of the present invention, a plurality of client hosts 200 accessing the server 100 may be assigned the same RfmKey 904 value from the server 100 and may be assigned the same local data area 914. Accordingly, each client host 200 may simultaneously share data with each other by referring to the same local data area 914 among the memory areas 400 of the RFMs 140 and 240 mounted in each host 200. That is, when the data of the local data area 914 is changed by the server 100, all the client hosts 200 directly refer to the same data in the RFM 200 to which they are mounted.

전술한 내용은 후술할 발명의 특허 청구 범위를 보다 잘 이해할 수 있도록 본 발명의 특징과 기술적 장점을 다소 폭넓게 개설하였다. 본 발명의 특허 청구 범위를 구성하는 부가적인 특징과 장점들이 이하에서 상술될 것이다. 개시된 본 발명의 개념과 특정 실시예는 본 발명과 유사 목적을 수행하기 위한 다른 구조의 설계나 수정의 기본으로서 즉시 사용될 수 있음이 당해 기술 분야의 숙련된 사람들에 의해 인식되어야 한다.The foregoing has outlined rather broadly the features and technical advantages of the present invention to better understand the claims of the invention which will be described later. Additional features and advantages that make up the claims of the present invention will be described below. It should be appreciated by those skilled in the art that the conception and specific embodiments of the invention disclosed may be readily used as a basis for designing or modifying other structures for carrying out similar purposes to the invention.

또한, 본 발명에서 개시된 발명 개념과 실시예가 본 발명의 동일 목적을 수행하기 위하여 다른 구조로 수정하거나 설계하기 위한 기초로서 당해 기술 분야의 숙련된 사람들에 의해 사용되어질 수 있을 것이다. 또한, 당해 기술 분야의 숙련된 사람에 의한 그와 같은 수정 또는 변경된 등가 구조는 특허 청구 범위에서 기술한 발명의 사상이나 범위를 벗어나지 않는 한도 내에서 다양한 변화, 치환 및 변경이 가능하다.In addition, the inventive concepts and embodiments disclosed herein may be used by those skilled in the art as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. In addition, such modifications or altered equivalent structures by those skilled in the art may be variously changed, substituted, and changed without departing from the spirit or scope of the invention described in the claims.

이상과 같이, 본 발명은 다중화 서버 시스템을 구성하고 있는 복수 개의 호스트 컴퓨터가 실시간으로 업데이트되는 리플렉티브 메모리를 구비하고, 리플렉티브 메모리 상에 호스트 컴퓨터 사이에 참조할 수 있는 고유한 메모리 영역을 할당하고, 할당된 메모리 영역에 메시지 또는 데이터를 기입함으로써, 기존 네트워크 방식의 회선 지연에 의한 전송 지연 없이 빠른 시간 안에 메시지 또는 데이터를 주고받을 수 있으며, 네트워크 트래픽에 관계없이 데이터 및 메시지를 주고받는데 항상 일정한 속도를 유지할 수 있다.As described above, the present invention provides a unique memory area having a reflective memory in which a plurality of host computers constituting the multiplexing server system are updated in real time, and which can be referred to between host computers on the reflective memory. By allocating and writing a message or data in the allocated memory area, it is possible to send and receive a message or data in a short time without transmission delay caused by a conventional network delay, and to send and receive data and messages regardless of network traffic. Can maintain a constant speed.

또한, 메시지 또는 데이터를 주고받는데 있어서, RFM 라이브러리를 사용함으로써, 각 호스트들은 마치 자신의 메인 메모리에 데이터를 기입하고, 독출하는 것과 같은 효과를 얻을 수 있다.In addition, by using the RFM library to send and receive messages or data, each host can achieve the same effect as writing and reading data into its main memory.

Claims (20)

액티브 또는 스탠바이 상태로 동작하고 네트워크를 통해 서로 접속된 복수 개의 호스트로 구성된 이중화 시스템에 있어서, 상기 각각의 호스트는In a redundant system consisting of a plurality of hosts operating in an active or standby state and connected to each other via a network, each host is 데이터 송수신 포트를 구비하고, 하드웨어적으로 데이터를 저장 또는 독출하는 기능을 구비한 리플렉티브 메모리(RFM)와: 상기 호스트에 구비된 상기 호스트에 구비된 상기 리플렉티브 메모리의 데이터 송수신 포트에 연결되어 상기 복수개의 리플렉티브 메모리에 저장된 내용을 실시간으로 동일하게 동기화시키는 리플렉티브 메모리 데이터 전송 수단A reflective memory (RFM) having a data transmission / reception port and having a function of storing or reading data in hardware; and a data transmission / reception port of the reflective memory provided in the host. Reflective memory data transfer means connected to synchronize the contents stored in the plurality of reflective memories in the same manner in real time 을 구비하고, 상기 복수개의 호스트 중 액티브 호스트에서 기동중인 프로세스가 생성하는 데이터는 상기 액티브 호스트의 리플렉티브 메모리와 상기 리플렉티브 메모리 데이터 전송 수단에 의해 동기화 접속된 스탠바이 호스트의 리플렉티브 메모리에 함께 기입됨으로써 액티브/스탠바이 절체 시에 메모리 내용을 공유함을 특징으로 하는 이중화 시스템.And data generated by a process running in an active host among the plurality of hosts are provided in the reflective memory of the standby host synchronously connected by the reflective memory of the active host and the reflective memory data transfer means. Redundancy system characterized by sharing the memory contents during active / standby switching by writing together. 제1항에 있어서, 상기 리플렉티브 메모리는 상기 호스트의 피씨아이(PCI)슬롯에 장착되는 것을 특징으로 하는 이중화 시스템.The redundancy system of claim 1, wherein the reflective memory is mounted in a PCI slot of the host. 제1항에 있어서, 상기 리플렉티브 메모리의 송수신 포트에 연결되는 상기 리플렉티브 메모리 데이터 전송 수단은 광 케이블을 포함하는 이중화 시스템.The redundancy system of claim 1, wherein the reflective memory data transmission means connected to the transmission / reception port of the reflective memory comprises an optical cable. 제1항에 있어서, 상기 리플렉티브 메모리는The method of claim 1, wherein the reflective memory 리플렉티브 메모리 장치 드라이버가 상기 리플렉티브 메모리를 동작시키기 위해 생성한 데이터를 저장하는 영역;An area for storing data generated by a reflective memory device driver to operate the reflective memory; 상기 리플렉티브 메모리의 메모리 영역 중 사용자가 사용 가능한 영역의 시작 메모리 주소를 저장하는 영역;An area storing a start memory address of an area available to a user among the memory areas of the reflective memory; 상기 네트워크 통신을 위한 데이터를 저장하는 영역; 및An area for storing data for the network communication; And 상기 네트워크 통신을 위한 데이터가 저장되는 영역의 로컬 데이터 영역 정보를 저장하는 영역An area for storing local data area information of an area where data for the network communication is stored 으로 구성됨을 특징으로 하는 이중화 시스템.Redundancy system, characterized in that consisting of. 제4항에 있어서, 상기 네트워크 통신을 위한 데이터가 저장되는 영역의 로컬 데이터 영역 정보는The method of claim 4, wherein the local data area information of the area where the data for network communication is stored 상기 네트워크 통신을 위한 데이터가 저장되는 영역의 로컬 데이터 영역의 시작 메모리 주소;A starting memory address of a local data area of an area in which data for the network communication is stored; 상기 네트워크 통신을 위한 데이터가 저장되는 영역의 로컬 데이터 영역의 메모리 사이즈; 및A memory size of a local data area of an area in which data for the network communication is stored; And 상기 네트워크 통신을 위한 데이터를 구분할 수 있는 구분자Separator to distinguish data for network communication 를 포함하는 이중화 시스템.Redundancy system comprising a. 제4항에 있어서, 상기 리플렉티브 메모리의 메모리 영역은 상기 네트워크 통신을 위한 데이터를 구분할 수 있는 상기 구분자를 유추할 수 있는 데이터를 저장하는 영역을 더 포함하는 이중화 시스템.The redundancy system of claim 4, wherein the memory area of the reflective memory further includes an area for storing data capable of inferring the delimiter capable of distinguishing data for the network communication. 액티브 또는 스탠바이로 동작하는 복수 개의 호스트로 구성된 이중화 시스템의 액티브 호스트에 기동 중인 프로세스가 생성하는 데이터를 스탠바이 호스트와 공유하기 위한 데이터 통신을 하는 방법에 있어서,In a method for performing data communication for sharing data generated by a running process with a standby host in an active host of a redundant system consisting of a plurality of hosts operating in an active or standby mode, 상기 호스트에 서버 프로세스 또는 클라이언트 프로세스를 생성하는 단계;Creating a server process or client process on the host; 상기 호스트에 장착된 리플렉티브 메모리의 메모리 영역에 리플렉티브 메모리 라이브러리를 이용하여 로컬 데이터 영역을 할당하는 단계;Allocating a local data area to a memory area of the reflective memory mounted in the host by using a reflective memory library; 상기 클라이언트 프로세스는 상기 할당된 로컬 데이터 영역에 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계;The client process writing a message to the allocated local data area using a reflective memory library; 상기 서버 프로세스는 상기 할당된 로컬 데이터 영역에서 상기 클라이언트 프로세스의 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하고, 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입하는 단계; 및The server process reads a message of the client process from the allocated local data area using a reflective memory library and writes a response message using the reflective memory library; And 상기 클라이언트 프로세스는 상기 할당된 로컬 데이터 영역에서 상기 서버 프로세스의 응답 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하는 단계The client process reading a response message of the server process from the allocated local data area using a reflective memory library 를 포함하는 데이터 통신 방법.Data communication method comprising a. 제7항에 있어서, 상기 호스트에 장착된 리플렉티브 메모리의 메모리 영역에 로컬 데이터 영역을 할당하고 상기 할당된 로컬 데이터 영역에 데이터를 독출 또는 저장하기 위해 이용되는 상기 리플렉티브 메모리 라이브러리는The reflective memory library of claim 7, wherein the reflective memory library is used to allocate a local data area to a memory area of the reflective memory mounted to the host and to read or store data in the allocated local data area. 상기 리플렉티브 메모리 장치를 오픈하는 함수;A function of opening the reflective memory device; 상기 리플렉티브 메모리 장치를 클로즈하는 함수;A function of closing the reflective memory device; 상기 리플렉티브 메모리의 메모리 영역을 초기화하는 함수;A function of initializing a memory area of the reflective memory; 상기 네트워크 통신을 위한 데이터를 구분할 수 있는 구분자를 가지고, 상기 할당된 로컬 데이터 영역의 시작 주소를 독출해 내는 함수;A function for reading out a start address of the allocated local data area, having a delimiter for distinguishing data for the network communication; 상기 독출된 로컬 데이터 영역의 시작 주소를 가지고, 상기 독출된 로컬 데이터 영역을 가리키는 메인 메모리 상의 포인터를 얻어내는 함수;A function for obtaining a pointer on a main memory having a starting address of the read local data area and pointing to the read local data area; 상기 구분자의 세마퍼 잠금 상태를 설정하는 함수;Setting a semaphore locked state of the delimiter; 상기 구분자의 세마퍼 잠금 상태를 해제하는 함수; 및A function for releasing the semaphore lock state of the delimiter; And 상기 복수 개의 호스트에 장착된 리플렉티브 메모리에 저장된 데이터의 내용을 강제적으로 동기화시키는 함수Forcibly synchronizing contents of data stored in the reflective memory mounted in the plurality of hosts; 중 어느 하나 또는 이들의 조합을 포함하는 데이터 통신 방법.A data communication method comprising any one or a combination thereof. 제8항에 있어서, 상기 리플렉티브 메모리의 메모리 영역을 초기화하는 함수는The method of claim 8, wherein the function of initializing a memory area of the reflective memory comprises: 상기 복수 개의 호스트 각각에 장착된 상기 리플렉티브 메모리의 메모리 영역을 메인 메모리에 매핑하는 단계;Mapping a memory area of the reflective memory mounted on each of the plurality of hosts to a main memory; 상기 리플렉티브 메모리의 메모리 영역 중 사용자가 사용 가능한 영역의 시작 메모리 주소를 저장하는 영역을 할당하는 단계;Allocating an area for storing a start memory address of an area available to a user among the memory areas of the reflective memory; 상기 리플렉티브 메모리의 메모리 영역에 대한 세마퍼(semaphore)를 생성하고 초기값을 설정하는 단계;Creating a semaphore for a memory area of the reflective memory and setting an initial value; 상기 네트워크 통신을 위한 데이터가 저장되는 영역의 로컬 데이터 영역 정보를 저장하는 영역을 할당하는 단계; 및Allocating an area for storing local data area information of an area in which data for the network communication is stored; And 상기 네트워크 통신을 위한 데이터를 저장하는 영역의 시작 메모리 주소를 사용자가 사용 가능한 영역의 시작 메모리 주소를 저장하는 영역에 저장하는 단계Storing a start memory address of an area storing data for the network communication in an area storing a start memory address of an area available to a user; 를 포함하는 데이터 방법.Data method comprising a. 제8항에 있어서, 상기 복수 개의 호스트에 장착된 리플렉티브 메모리에 저장된 데이터의 내용을 강제적으로 동기화시키는 함수는 상기 복수 개의 호스트 중 어느 하나의 리플렉티브 메모리에 저장된 내용을 재기입하여 상기 복수개의 호스트에 장착된 리플렉티브 메모리에 저장된 내용을 동기화시키는 것을 특징으로 하는 데이터 통신 방법.The method of claim 8, wherein the function of forcibly synchronizing contents of data stored in the reflective memory mounted in the plurality of hosts rewrites the contents stored in the reflective memory of any one of the plurality of hosts. And synchronizing the contents stored in the reflective memory mounted in the two hosts. 제7항에 있어서, 상기 복수 개의 호스트에 장착된 리플렉티브 메모리의 메모리 영역에 리플렉티브 메모리 라이브러리를 이용하여 로컬 데이터 영역을 할당하는 단계는The method of claim 7, wherein the allocating a local data area using a reflective memory library to a memory area of the reflective memory mounted in the plurality of hosts comprises: 상기 복수 개의 호스트에 장착된 리플렉티브 메모리의 메모리 영역을 초기화하는 단계;Initializing a memory area of a reflective memory mounted in the plurality of hosts; 상기 서버 프로세스가 상기 네트워크 통신을 위해 상기 서버 프로세스 및 클라이언트 프로세스가 생성하는 데이터를 구분할 수 있는 구분자를 생성하는 단계;Generating, by the server process, a separator capable of distinguishing data generated by the server process and a client process for the network communication; 상기 서버 프로세스가 상기 구분자를 상기 클라이언트 프로세스에 부여하는 단계; 및The server process assigning the delimiter to the client process; And 상기 서버 프로세스 및 클라이언트 프로세스는 상기 구분자를 이용하여 상기 네트워크 통신을 위해 상기 서버 프로세스 및 클라이언트 프로세스가 생성하는 데이터를 저장할 수 있는 로컬 데이터 영역을 상기 리플렉티브 메모리의 메모리 영역에 할당하고, 로컬 데이터 영역 정보를 상기 리플렉티브 메모리의 메모리 영역에 저장하는 단계The server process and the client process allocate a local data area to the memory area of the reflective memory to store data generated by the server process and the client process for the network communication by using the delimiter. Storing information in a memory area of the reflective memory 를 포함하는 데이터 통신 방법.Data communication method comprising a. 제11항에 있어서, 상기 복수 개의 호스트에 장착된 리플렉티브 메모리의 메모리 영역을 초기화하는 단계는 상기 리플렉티브 메모리 라이브러리에 포함된 상기 초기화 함수를 이용하는 것을 특징으로 하는 데이터 통신 방법.The data communication method of claim 11, wherein the initializing a memory area of the reflective memory mounted in the plurality of hosts uses the initialization function included in the reflective memory library. 제11항에 있어서, 상기 서버 프로세스가 상기 네트워크 통신을 위해 상기 서버 프로세스 및 클라이언트 프로세스가 생성하는 데이터를 구분할 수 있는 구분자를 생성하는 단계는 선정된 구분자를 이용하는 것을 포함하는 데이터 통신 방법.12. The method of claim 11, wherein the step of generating, by the server process, a delimiter capable of distinguishing data generated by the server process and the client process for the network communication comprises using a selected delimiter. 제11항에 있어서, 상기 서버 프로세스가 상기 네트워크 통신을 위해 상기 서버 프로세스 및 클라이언트 프로세스가 생성하는 데이터를 구분할 수 있는 구분자를 생성하는 단계는 상기 리플렉티브 메모리의 메모리 영역에 할당할 수 있는 상기 로컬 데이터 영역의 최대 개수를 나타내는 정수와 '0' 사이의 정수로 결정하는 것을 포함하는 데이터 통신 방법.12. The method of claim 11, wherein the step of generating, by the server process to distinguish data generated by the server process and the client process for the network communication, the delimiter may be allocated to the memory area of the reflective memory. And determining an integer between '0' and an integer representing the maximum number of data areas. 제11항에 있어서, 상기 서버 프로세스가 상기 구분자를 클라이언트 프로세스에 부여하는 단계는 상기 클라이언트 프로세스가 구동되고 있는 각각의 호스트마다 다른 구분자를 부여하는 것을 포함하는 데이터 통신 방법.12. The method of claim 11, wherein the step of assigning the identifier to the client process by the server process includes assigning a different identifier to each host on which the client process is running. 제11항에 있어서, 상기 서버 프로세스가 상기 구분자를 클라이언트 프로세스에 부여하는 단계는 상기 클라이언트 프로세스가 구동되고 있는 모든 호스트에 동일한 구분자를 부여하는 것을 포함하는 데이터 통신 방법.12. The method of claim 11, wherein the step of assigning the separator to a client process by the server process includes assigning the same separator to all hosts on which the client process is running. 제11항에 있어서, 상기 서버 프로세스가 상기 구분자를 클라이언트 프로세스에 부여하는 단계는 상기 리플렉티브 메모리의 메모리 영역에 상기 구분자를 기입하는 것을 포함하는 데이터 통신 방법.12. The method of claim 11, wherein the step of assigning the separator to a client process by the server process comprises writing the separator to a memory area of the reflective memory. 제7항에 있어서, 상기 리플렉티브 메모리의 메모리 영역에 데이터 또는 메시지를 리플렉티브 메모리 라이브러리를 이용하여 기입 또는 저장하는 단계는8. The method of claim 7, wherein writing or storing data or a message in a memory area of the reflective memory by using a reflective memory library 상기 기입 또는 저장하려는 데이터에 대한 구분자를 가지고, 상기 할당된 로컬 데이터 영역의 시작 주소를 독출해 내는 함수를 실행하여 상기 할당된 로컬 데이터 영역의 시작 주소를 독출해 내는 단계;Reading a start address of the allocated local data area by executing a function of reading a start address of the allocated local data area with a delimiter for the data to be written or stored; 상기 독출된 로컬 데이터 영역의 시작 주소를 가지고, 상기 독출된 로컬 데이터 영역을 가리키는 상기 메인 메모리 상의 포인터를 얻어내는 함수를 실행하여 상기 독출된 로컬 데이터 영역을 가리키는 상기 메인 메모리 상의 포인터를 얻어내는 단계;Obtaining a pointer on the main memory pointing to the read local data area by executing a function having a start address of the read local data area and obtaining a pointer on the main memory pointing to the read local data area; 상기 기입 또는 저장하려는 데이터에 대한 구분자에 대한 세마퍼 잠금 상태를 설정하는 함수를 실행하여 상기 세마퍼 잠금 상태를 설정하는 단계;Setting the semaphore lock state by executing a function of setting a semaphore lock state for the delimiter for the data to be written or stored; 상기 독출된 로컬 데이터 영역의 시작 주소를 가지고 얻은 메인 메모리 상의 포인터를 가지고, 상기 로컬 데이터 영역에 메시지 또는 데이터를 기입 또는 저장하는 단계; 및Writing or storing a message or data in the local data area with a pointer on main memory obtained with a start address of the read local data area; And 상기 기입 또는 저장하려는 데이터에 대한 구분자에 대한 세마퍼 잠금 상태를 해제하는 함수를 실행하여 상기 세마퍼 잠금 상태를 해제하는 단계Releasing the semaphore lock state by executing a function to release a semaphore lock state for the delimiter for the data to be written or stored 를 포함하는 데이터 통신 방법.Data communication method comprising a. 제7항에 있어서, 상기 리플렉티브 메모리의 메모리 영역에 데이터 또는 메시지를 리플렉티브 메모리 라이브러리를 이용하여 독출하는 단계는The method of claim 7, wherein the reading of the data or the message to the memory area of the reflective memory using the reflective memory library is performed. 상기 기입 또는 저장하려는 데이터에 대한 구분자를 가지고, 상기 할당된 로컬 데이터 영역의 시작 주소를 독출해 내는 함수를 실행하여 상기 할당된 로컬 데이터 영역의 시작 주소를 독출해 내는 단계;Reading a start address of the allocated local data area by executing a function of reading a start address of the allocated local data area with a delimiter for the data to be written or stored; 상기 독출된 로컬 데이터 영역의 시작 주소를 가지고, 상기 독출된 로컬 데이터 영역을 가리키는 상기 메인 메모리 상의 포인터를 얻어내는 함수를 실행하여 상기 독출된 로컬 데이터 영역을 가리키는 상기 메인 메모리 상의 포인터를 얻어내는 단계;Obtaining a pointer on the main memory pointing to the read local data area by executing a function having a start address of the read local data area and obtaining a pointer on the main memory pointing to the read local data area; 상기 기입 또는 저장하려는 데이터에 대한 구분자에 대한 세마퍼 잠금 상태를 설정하는 함수를 실행하여 상기 세마퍼 잠금 상태를 설정하는 단계;Setting the semaphore lock state by executing a function of setting a semaphore lock state for the delimiter for the data to be written or stored; 상기 독출된 로컬 데이터 영역의 시작 주소를 가지고 얻은 메인 메모리 상의 포인터를 가지고, 상기 로컬 데이터 영역에 메시지 또는 데이터를 독출하는 단계; 및Reading a message or data into the local data area with a pointer on main memory obtained with a start address of the read local data area; And 상기 기입 또는 저장하려는 데이터에 대한 구분자에 대한 세마퍼 잠금 상태를 해제하는 함수를 실행하여 상기 세마퍼 잠금 상태를 해제하는 단계Releasing the semaphore lock state by executing a function to release a semaphore lock state for the delimiter for the data to be written or stored 를 포함하는 데이터 통신 방법.Data communication method comprising a. 제7항에 있어서, 상기 서버 프로세스 또는 클라이언트 프로세스가 상기 할당된 로컬 데이터 영역에서 메시지 또는 데이터를 저장, 기입, 독출하는 단계는 상기 구분자에 대한 세마퍼의 상태 변화를 인식하는 것을 더 포함하는 데이터 통신 방법.8. The method of claim 7, wherein storing, writing, or reading a message or data in the allocated local data area by the server process or client process further comprises recognizing a state change of the semaphore for the delimiter. Communication method.
KR1020000018557A 2000-04-10 2000-04-10 Method of mimory sharing and duplicate server system thereof KR100361076B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000018557A KR100361076B1 (en) 2000-04-10 2000-04-10 Method of mimory sharing and duplicate server system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000018557A KR100361076B1 (en) 2000-04-10 2000-04-10 Method of mimory sharing and duplicate server system thereof

Publications (2)

Publication Number Publication Date
KR20010090636A KR20010090636A (en) 2001-10-19
KR100361076B1 true KR100361076B1 (en) 2002-11-18

Family

ID=19662959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018557A KR100361076B1 (en) 2000-04-10 2000-04-10 Method of mimory sharing and duplicate server system thereof

Country Status (1)

Country Link
KR (1) KR100361076B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102032238B1 (en) * 2016-12-13 2019-10-15 중원대학교 산학협력단 A computer system for data sharing between computers
CN111880433A (en) * 2020-07-02 2020-11-03 上海机电工程研究所 System and method for automatically realizing remote heterogeneous semi-physical simulation test task

Also Published As

Publication number Publication date
KR20010090636A (en) 2001-10-19

Similar Documents

Publication Publication Date Title
US6295575B1 (en) Configuring vectors of logical storage units for data storage partitioning and sharing
US6421711B1 (en) Virtual ports for data transferring of a data storage system
US9900397B1 (en) System and method for scale-out node-local data caching using network-attached non-volatile memories
US6799255B1 (en) Storage mapping and partitioning among multiple host processors
US6493825B1 (en) Authentication of a host processor requesting service in a data processing network
US8612561B2 (en) Virtual network storage system, network storage device and virtual method
KR100995466B1 (en) Methods and apparatus for implementing virtualization of storage within a storage area network
US6173374B1 (en) System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network
US6594698B1 (en) Protocol for dynamic binding of shared resources
US6148349A (en) Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US7272674B1 (en) System and method for storage device active path coordination among hosts
US8938604B2 (en) Data backup using distributed hash tables
US20020161983A1 (en) System, method, and computer program product for shared device of storage compacting
JP2006508470A (en) Heartbeat mechanism for cluster systems
US6785742B1 (en) SCSI enclosure services
JPH11316748A (en) Data transfer method in parallel processing computer system
JPH11316749A (en) Method for identifying redundant data in data storage system
CN103257941B (en) Multi-protocol storage controller and system
US7003645B2 (en) Use of a storage medium as a communications network for liveness determination in a high-availability cluster
KR20010092154A (en) Method and system for duplication of servers
JP4653490B2 (en) Clustering system and method having interconnections
US20090234982A1 (en) Method of identifying and dynamically updating storage device status at target
KR100361076B1 (en) Method of mimory sharing and duplicate server system thereof
CN110880986A (en) High-availability NAS storage system based on Ceph
US20030182479A1 (en) Implementing clustering in raid controllers

Legal Events

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

Payment date: 20111031

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee