KR20000045488A - Supervision and control method for disperse management system's obstruction - Google Patents

Supervision and control method for disperse management system's obstruction Download PDF

Info

Publication number
KR20000045488A
KR20000045488A KR1019980062047A KR19980062047A KR20000045488A KR 20000045488 A KR20000045488 A KR 20000045488A KR 1019980062047 A KR1019980062047 A KR 1019980062047A KR 19980062047 A KR19980062047 A KR 19980062047A KR 20000045488 A KR20000045488 A KR 20000045488A
Authority
KR
South Korea
Prior art keywords
client
failure
server
processor
connection request
Prior art date
Application number
KR1019980062047A
Other languages
Korean (ko)
Inventor
홍성주
여경진
권은희
Original Assignee
이계철
한국전기통신공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이계철, 한국전기통신공사 filed Critical 이계철
Priority to KR1019980062047A priority Critical patent/KR20000045488A/en
Publication of KR20000045488A publication Critical patent/KR20000045488A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare

Abstract

PURPOSE: A supervision and control method for disperse management system's obstruction is disclosed to minimize the use of process resources and monitor each processor's daemon processor's behavior and to maintain normal service operation in case of a LAN disruption. CONSTITUTION: A supervision and control method for disperse management system's obstruction is composed of acception, execution, determination, and registration. Client requests connection to the server and the server accepts the request. The server operates the routine, executes obstacle supervision, returns the result to the client, and disconnects from the server. The failure of client's connection request indicates a problem with LAN or server process, therefore client process performs LAN disruption discrimination routine to determine whether the LAN disruption or the problem with server process caused connection failure. When finished, connection attempt is made to other server processes, the described process is repeated, and error messages of all processes of disperse management system is collected, analyzed, and registered.

Description

분산 처리 시스템의 장애 감시 및 그 제어방법Fault monitoring and control method of distributed processing system

본 발명은 분산 처리 시스템의 장애 감시 및 그 제어방법에 관한 것으로, 보다 구체적으로 말하자면, 여러 대의 프로세서들이 이중화된 LAN으로 연결되어 하나의 시스템을 구성하여 서비스를 제공하는 분산 처리 시스템에서 발생하는 장애를 효율적으로 감시하고, 장애 발생 시 분산 시스템을 구성하는 모든 프로세서에 장애 발생 부위를 통지하여 장애가 발생한 프로세서로는 서비스 처리를 요구하지 않도록 제어하는 분산 처리 시스템의 장애 감시 및 그 제어방법에 관한 것이다.The present invention relates to fault monitoring of a distributed processing system and a control method thereof. More specifically, the present invention relates to a fault occurring in a distributed processing system in which a plurality of processors are connected to a redundant LAN to form a system and provide a service. The present invention relates to a failure monitoring and control method of a distributed processing system that efficiently monitors and notifies all processors constituting a distributed system in the event of a failure so that the failed processor does not require service processing.

보통, LAN으로 연결되어 있는 분산 처리 시스템은 외관상으로는 분리되어 있는 시스템처럼 보인다. 그렇지만 서비스 측면에서는 하나의 서비스를 처리하기 위하여 여러 대의 프로세서가 LAN으로 연결되어 있는 것이므로 하나의 시스템으로 보아야 한다.Normally, distributed processing systems connected by LAN appear to be separate systems in appearance. On the service side, however, multiple processors are connected to the LAN to process a single service.

하나의 분산 처리 시스템을 구성하는 각 프로세서들에서 요구되는 조건중 하나는 LAN 장애, 프로세스 장애, 프로세서 장애 등의 장애를 극복하기 위하여 분산처리 시스템을 구성하는 각 프로세서는 다른 프로세서에서 발생하는 장애를 정확하고 일관성 있게 인지하고 있어야 한다. 다시 말해, 분산 처리 시스템을 구성하는 각 프로세서에는 장애를 실시간으로 감시하는 감시 프로세스와, 각 프로세서에서 발생한 모든 장애메시지를 수집/분석하고, 장애 발생 또는 해지 사실을 분산 처리 시스템을 구성하는 다른 프로세서에 실시간으로 알려주는 프로세스가 필요하다. 이런 기능을 갖춘 분산처리 시스템을 구현하면, 장애 발생 시에도 프로세서간 통신에서 데이터 유실 없이 안정적으로 서비스를 처리할 수 있다.One of the conditions required for each processor constituting one distributed processing system is to overcome failures such as LAN failure, process failure, and processor failure. And be consistently aware of it. In other words, each processor constituting the distributed processing system includes a monitoring process that monitors failures in real time, collects / analyzes all failure messages generated by each processor, and reports the failure or termination to other processors constituting the distributed processing system. You need a real-time notification process. Implementing a distributed processing system with this capability ensures that services can be handled reliably without data loss in interprocessor communications even in the event of a failure.

또한 분산 처리 시스템의 주임무는 서비스를 처리하는 것이고, 장애 감시는 전체 임무의 일부이므로, 장애 감시를 담당하는 프로세스는 프로세서의 자원(resource)을 가능한 적게 사용하여 서비스 처리에 영향을 미치지 않도록 구현되어야 한다.In addition, since the main task of distributed processing systems is to handle services, and fault monitoring is part of the overall task, the process responsible for fault monitoring should be implemented so as not to affect service processing by using as little of the processor's resources as possible. .

본 발명에서는 분산 처리 시스템에서 발생하는 각종 장애를 감시하기 위해 효율적으로 사용할 수 있는 클라이언트/서버(client/server)구조를 구비하여, 프로세서의 자원을 최소로 사용하면서 각 프로세서에서 동작하는 daemon 프로세스들의 동작 상태를 감시하는 방법을 제공하는 것을 제 1목적으로 한다.The present invention has a client / server structure that can be efficiently used to monitor various failures occurring in a distributed processing system, and operates daemon processes operating in each processor while minimizing processor resources. Its primary purpose is to provide a method for monitoring status.

또한, LAN에 장애가 발생했을 때 어떤 프로세서의 어떤 LAN에서 장애가 발생했는지를 정확하게 찾아내는 방법과, 클라이언트 프로세스가 서버 프로세스가 동작하는 프로세서 상에서 발생한 장애 데이터를 수집/분석한 후, 발생한 장애가 서비스 처리에 영향을 미치는 경우 장애 발생 부위를 다른 프로세서에 통지하여 장애 시에도 정상적으로 서비스 처리를 할 수 있는 방법을 제공하는 것을 제 2목적으로 한다.In addition, how to pinpoint which processor failed on which LAN when a LAN failed, and after the client process collects / analyzes the failure data on the processor running the server process, the failure affects service processing. In this case, the second object of the present invention is to notify another processor of a failure area and to provide a method for normal service processing even in the case of a failure.

도 1은 분산 처리 시스템의 구성도,1 is a configuration diagram of a distributed processing system,

도 2는 분산 처리 시스템의 장애 감시 순회도,2 is a failure monitoring circuit diagram of a distributed processing system;

도 3는 LAN 장애 감시 및 장애메시지 수집/분석 흐름도,3 is a LAN failure monitoring and failure message collection / analysis flow chart,

도 4은 프로세스 장애 감시 흐름도,4 is a process failure monitoring flowchart;

도 5는 형상테이블 전달 흐름도.5 is a shape table transfer flowchart.

이러한 본 발명의 목적에 따르는 장애 감시 방법은, 분산 처리 시스템을 구성하는 다른 프로세서에 장애 사실을 통지하는 유지보수를 구현하는 때, 장애 메시지를 수집/분석하는 단계; 장애 메시지를 수집/분석하여 상태테이블을 유지하는 단계와; 클라이언트의 접속요구가 실패했을 때에는 LAN 장애 부위를 정확하게 판별하기 위하여 접속시스템 콜이 세팅하는 errno와 ICMP 프로토콜의 ICMP_ECHO 메시지를 이용하여 장애 발생 부위를 정확하게 구별하는 단계와; 다음 서버에 접속요구를 시도하여 위와 같은 과정을 반복하여 장애메시지를 수집하는 단계를 포함하여 프로세서의 부하 상태에 따라 클라이언트의 장애감시 주기에 따라 프로세서의 자원 사용을 조절한다.The failure monitoring method according to the object of the present invention comprises the steps of: collecting / analyzing a failure message when implementing maintenance to notify the other processors of the distributed processing system of the failure; Collecting / analyzing fault messages to maintain a state table; When the client's connection request fails, using the errno set by the access system call and the ICMP_ECHO message of the ICMP protocol to accurately identify the LAN failure site; It attempts to connect to the next server and collects the failure message by repeating the above process, and adjusts the processor's resource usage according to the failure monitoring cycle of the client according to the load condition of the processor.

또한, 본 발명에 따라 분산 처리 시스템의 장애를 제어하는 방법에 있어서, 장애 메시지를 수집/분석하여 상태테이블을 유지하는 단계와; 서비스 처리에 영향을 미치는 부위에 장애가 발생하여 상태테이블이 변경된 경우에는 분산 처리 시스템을 구성하는 모든 프로세서에 이 테이블을 전달하여 장애가 발생한 부위로는 서비스가 수행되지 않도록 제어하는 단계와; LAN2을 이용하여 장애메시지를 수집/분석한 후, 유지 및 제어단계를 반복하는 단계를 포함한다.Also, according to the present invention, there is provided a method of controlling a failure of a distributed processing system, the method comprising: collecting / analyzing a failure message to maintain a state table; If a state table is changed due to a failure in a part that affects service processing, transferring the table to all processors constituting the distributed processing system to control the service not to be performed to the failed part; After collecting / analyzing fault messages using LAN2, repeating the maintenance and control steps.

또한, 서버가 각 프로세서에서 동작하는 데몬 프로세스를 감시하는 방법에 있어서, 서버가 클라이언트의 접속요구를 수령하는 단계와; 데몬 프로세스의 동작 상태를 감시하기 위하여 UNIX 시스템이 제공하는 시스템 콜 kill()을 사용하여 신호 0를 감시하고자 하는 프로세스에 전달하는 단계와; 상기 감시 프로세스 전달 단계에서 해당 프로세스가 동작 중일 때는 kill() 시스템 콜이 0으로 복귀하고, 해당 프로세스가 다운된 경우에는 1으로 복귀하는 특징을 이용하여 프로세스의 동작여부를 감시하는 단계;를 포함한다.In addition, the server monitors the daemon process running on each processor, the method comprising: the server receiving a connection request of the client; Passing a signal 0 to a process to be monitored by using a system call kill () provided by a UNIX system to monitor an operation state of a daemon process; And monitoring the operation of the process by using a feature in which the kill () system call returns to 0 when the process is running in the monitoring process delivery step and returns to 1 when the process is down. .

또한, 형상 테이블을 갖는 분산처리 방법에 있어서, 클라이언트 프로세스가 분산 처리 시스템을 구성하는 각 프로세서를 한차례 순회하는 단계와; 상기 수집한 장애메시지를 분석하여 서비스 처리에 영향을 미치는 부위의 상태가 변경(장애->정상, 정상->장애)된 경우 공유 메모리에 유지하고 있는 상태테이블을 업데이트시키는 단계와; 그 후 이 테이블을 분산 처리 시스템을 구성하는 모든 프로세서에 전달하는 단계를 포함한다.A distributed processing method having a shape table, the method comprising the steps of: a client process traversing each processor constituting a distributed processing system once; Analyzing the collected fault messages and updating a state table maintained in shared memory when the state of the part affecting service processing is changed (fault-> normal, normal-> fault); And then forwarding this table to all the processors that make up the distributed processing system.

이하 본 발명의 분산 처리 시스템의 장애 감시 및 그 제어방법을 도 1 - 도5을 이용하여 구체적으로 설명한다.Hereinafter, fault monitoring and a control method of the distributed processing system of the present invention will be described in detail with reference to FIGS. 1 to 5.

도 1은 부하분담방식(load sharing)으로 지능망 서비스를 처리하는 프로세서(B,B`,C,C')와 서비스 데이터를 관리하는 프로세서(D) 그리고 분산 처리 시스템의 장애 감시 및 운용을 지원하는 프로세서(A)가 이중화된 LAN으로 연결되어 있는 분산 처리 시스템의 구성도이다.1 is a diagram illustrating a processor (B, B`, C, C ') for processing an intelligent network service, a processor (D) for managing service data, and a failure monitoring and operation of a distributed processing system through load sharing. It is a block diagram of the distributed processing system in which the processor A is connected by the duplex LAN.

도 1에서 프로세서 A는 장애데이터를 수집/분석하는 클라이언트 프로세스가 동작하는 프로세서이고, 그 이외의 다른 프로세서(B,B`,C,C`,D)는 클라이언트의 요구로 각 프로세서에서 발생하는 장애를 감시하는 서버가 동작하는 프로세서이다.In FIG. 1, processor A is a processor in which a client process for collecting / analyzing fault data is operated, and other processors B, B, C, C, and D are faults occurring in each processor at the request of a client. The server that monitors the server is running.

도 2는 본 발명에서 사용하는 기본적인 장애 감시 방법으로 장애메시지를 수집/분석하는 클라이언트 프로세스가 서버 프로세스에 장애 감시를 요구했을 때에만 장애 감시루틴(routine)을 수행시켜 그 결과를 클라이언트로 전달하는 클라이언트/서버 구조의 장애 감시 방법을 나타낸다. 즉 클라이언트가 서버에 접속(connect)을 요구했을 때, 서버는 클라이언트의 접속요구를 수령(accept; 외부에서 받아들인 데이터를 분석, 판단에 의해 원하는 데이터인지를 판단하는 것)한 후, 장애 감시 루틴을 구동하여 장애 감시 대상에 대한 장애 감시 활동을 수행하여 그 결과를 클라이언트로 전달한 후 접속을 끊는다. 만약 클라이언트 프로세스의 접속요구가 실패하면 LAN에 장애가 발생했거나 서버 프로세스가 다운된 것이므로 클라이언트 프로세스는 LAN 장애 판별 루틴을 수행하여 LAN에 장애가 발생하여 접속이 실패한 것인지 아니면 서버 프로세스가 다운되어 접속이 실패한 것인지를 구분한다. 이때 다른 프로세서들에서 동작하는 서버 프로세스들은 클라이언트의 접속요구가 있을 때까지 수령() 시스템 콜에 블럭(block)되어 있는다.2 is a basic failure monitoring method used in the present invention, the client process collecting / analyzing a failure message performs a failure monitoring routine only when the server process requests failure monitoring, and delivers the result to the client. / How to monitor the failure of the server structure. That is, when a client requests a connection to the server, the server accepts the client's connection request (analyzes the data received from the outside and determines whether it is the desired data by judgment), and then executes a failure monitoring routine. It executes the fault monitoring activity on the fault monitoring target by transmitting the result to the client and disconnects. If the connection request of the client process fails, the LAN has failed or the server process is down. Therefore, the client process executes the LAN failure determination routine to determine whether the connection failed because the LAN failed or the server process went down. Separate. At this time, server processes running on other processors are blocked in the receiving system call until the client requests a connection.

이와 같은 방식으로 클라이언트 프로세스가 한 프로세서에 대한 장애메시지 수집/분석을 마치면, 다음 서버 프로세스에 접속을 시도하여 위와 같은 과정을 반복하면서 분산 처리 시스템을 구성하는 모든 프로세서에 발생하는 장애메시지를 수집한다. 클라이언트는 이렇게 수집한 장애 메시지를 분석하여 형상테이블에 등록한다. 이 형상테이블은 분산처리 시스템의 모든 장애 감시 대상들의 현재 상태를 표시하는 테이블로 분산처리 시스템에서 동작하는 모든 데몬 프로세스들은 이 테이블을 참조하여 분산처리 시스템의 상태를 파악한다.In this way, when a client process finishes collecting / analyzing a failure message for one processor, it attempts to connect to the next server process, repeats the above process, and collects the failure messages that occur in all processors constituting the distributed processing system. The client analyzes the collected fault messages and registers them in the shape table. This shape table displays the current state of all fault monitoring targets in the distributed processing system. All daemon processes operating in the distributed processing system refer to this table to determine the state of the distributed processing system.

클라이언트는, 도 2와 같이 먼저 LAN1을 통하여 각 프로세서의 서버에 1 > 2 > 3 > 4 > 5 순서로 접속을 시도하여 장애메시지를 수집/분석하여 형상테이블을 업데이트시킨 후, 형상테이블이 변경되었을 경우에는 분산 처리 시스템을 구성하는 모든 프로세서에 이 형상테이블을 전달하여 장애가 발생한 부위로는 서비스가 처리되지 않도록 제어한다. 다음에는 LAN2를 이용하여 6 > 7 > 8 > 9 > 10 순서로 접속을 시도하여 장애메시지를 수집/분석한 후 위와 같은 처리 절차를 반복한다.The client first attempts to connect to the server of each processor through LAN1 in the order of 1> 2> 3> 4> 5, collects / analyzes the fault message, updates the shape table, and then changes the shape table. In this case, the shape table is transmitted to all the processors constituting the distributed processing system, so that the service is not processed to the failed part. Next, try to connect in order of 6> 7> 8> 9> 10 using LAN2 to collect / analyze the fault message and repeat the above process.

이러한 구조로 장애 감시 프로세스를 구현하면 클라이언트가 서버에 접속을 요청하는 주기를 조정함으로서 컴퓨터의 자원 사용을 자유롭게 조정할 수 있을 뿐 아니라 클라이언트가 장애메시지를 수집하기 위하여 서버에 접속을 시도하면서 LAN 상태를 감시할 수 있으므로 효율적으로 장애 감시 활동을 수행할 수 있다.Implementing a fault monitoring process with this structure allows you to adjust the frequency at which the client requests a connection to the server, allowing you to freely adjust the computer's resource usage, as well as monitor the LAN state as the client attempts to connect to the server to collect failure messages As a result, fault monitoring can be carried out efficiently.

도 3은 클라이언트 프로세스가 서버 프로세스에 접속하면서 분산 처리 시스템의 LAN에서 발생하는 장애를 실시간으로 감시하고, 접속성공시 장애데이터를 수집하는 방법이다.3 is a method of monitoring a failure occurring in a LAN of a distributed processing system in real time as a client process accesses a server process and collects failure data when the connection is successful.

먼저 프로세서(A)에서 동작하고 있는 클라이언트 프로세스는 분산처리 시스템에서 발생하는 장애데이터를 수집하기 위하여 다른 프로세서(B,B',C,C',D)에서 클라이언트의 접속요구를 가다리며 수령 시스템 콜에 블럭되어 있는 서버 프로세스에 블럭 모드로 접속을 할 수 있는 환경을 설정한다(스텝 30).First, the client process running on the processor (A) receives the call of the receiving system by intercepting the client's connection request from other processors (B, B ', C, C', D) to collect failure data generated in the distributed processing system. Set an environment in which the server process blocked in block mode can connect in block mode (step 30).

다음으로 클라이언트는 LAN1을 통하여 프로세서(B)의 서버에 접속을 시도하기 전에 2초 후에 SIGALRM 신호가 발생하도록 신호를 장전하고 접속을 시도한다. 이는 LAN 상에 장애가 발생하여 클라이언트가 서버에 접속을 할 수 없는 경우, 블럭(블럭)모드로 접속을 시도한 클라이언트가 장시가 동안 접속시스템 콜에 블럭되어 있는 것을 방지하기 위함이다(스텝 31).Next, the client loads the signal and attempts to connect so that a SIGALRM signal is generated 2 seconds after attempting to connect to the server of the processor B through LAN1. This is to prevent a client attempting to connect in block (block) mode from being blocked in the access system call for a long time when a failure occurs on the LAN and the client cannot connect to the server (step 31).

만약 2초안에 접속이 성공하면 장전되어 있는 SIGALRM 신호를 해지하고 프로세서(B)의 LAN1 상태가 형상테이블에 장애로 표시되어 있는지 확인하여 장애 상태로 표시되어 있다면 이를 정상 상태로 변경시키고(접속이 성공했으므로 프로세서(A)와 프로세서(B)의 LAN 상태는 모두 정상임) 프로세서(B)의 LAN1 장애복구 메시지를 만든다(스텝 32).If the connection is successful within 2 seconds, cancel the loaded SIGALRM signal and check if the LAN1 status of processor B is indicated as fault in the shape table. Since the LAN state of processor A and processor B are all normal, a LAN1 failover message of processor B is generated (step 32).

클라이언트와 서버의 접속이 성공한 후, 서버 프로세스는 장애감시루틴을 수행하여 장애데이터를 클라이언트 프로세스에 전달하고, 장애감시루틴을 마치면 NULL 메시지를 클라이언트로 전달하여 장애감시루틴이 끝났음을 알리도록 되어있다. 클라이언트는 서버로부터 NULL 메시지가 수신될 때까지 장애메시지를 수집/분석하여 형상테이블을 업데이트시킨다. 서버로부터 NULL 메시지가 수신되면 클라이언트는 프로세서(B)에서 동작하는 서버와의 접속을 끊고 다음 프로세서(B')에서 동작하는 서버에 접속을 시도하여 접속이 성공하면 위와 같은 방법으로 장애 감시루틴을 수행하여 장애데이터를 수집한다(스텝 33).After a successful connection between the client and the server, the server process executes the fault monitoring routine to deliver fault data to the client process, and when the fault monitoring routine is finished, a NULL message is sent to the client to indicate that the fault monitoring routine is over. The client updates the configuration table by collecting and analyzing fault messages until a NULL message is received from the server. If a NULL message is received from the server, the client disconnects from the server running in processor B and attempts to connect to the server running in the next processor B '. If the connection is successful, the failure monitoring routine is executed as above. The failure data is collected (step 33).

위와 같은 방법으로 모든 프로세서에 대한 장애감시 활동을 1회 수행하는 과정에서, 형상테이블이 변경되면 분산 처리 시스템을 구성하는 모든 프로세서로 이 형상테이블을 전달하여 분산 처리 시스템을 구성하는 모든 프로세서가 장애 발생 사실을 인지할 수 있도록 한다(스텝 34).In the same way as above, if the shape table is changed, all the processors that make up the distributed processing system fail by passing the shape table to all the processors that make up the distributed processing system. Make the facts recognizable (step 34).

만약 클라이언트의 LAN1을 통한 접속시도가 실패하면 LAN 장애 판별루틴을 수행한다. 클라이언트의 접속시도가 실패하는 경우는 프로세서(B)의 서버 프로세스가 다운된 경우와 프로세서(A)나 프로세서(B)의 LAN1에 발생한 장애로 인하여 클라이언트가 수행한 접속() 시스템 콜이 2초 이상 블록 되어 있는 경우로 위에서 장전한 SIGALRM 시그널이 클라이언트로 전달되어 접속() 시스템 콜이 실패한 경우이다. 접속시도가 실패하면 클라이언트는 먼저 장전된 SIGALRM을 해지하고 errno가 ECONNREFUSED(239)인지 검사한다(스텝 300).If the client attempts to connect via LAN1, the LAN failure determination routine is executed. If the client's connection attempt fails, the client system's connection () system call is more than 2 seconds due to the server process of processor B being down and the failure of processor A or LAN1 of processor B. In this case, the SIGALRM signal loaded above is delivered to the client and the connection () system call fails. If the connection attempt fails, the client first revokes the loaded SIGALRM and checks if errno is ECONNREFUSED (239) (step 300).

errno가 ECONNREFUSED(239)인 경우에는 클라이언트의 접속요구를 수령하는 서버 프로세스가 다운된 경우이므로 서버 프로세스 장애에 해당하는 장애메시지를 발생시킨다(스텝 301).If errno is ECONNREFUSED (239), since the server process receiving the client's connection request is down, a failure message corresponding to the server process failure is generated (step 301).

만약 errno가 ECONNREFUSED(239)가 아닌 경우는 접속시 이용된 LAN1 상에 장애가 발생한 경우로 아직 클라이언트 프로세스가 동작하는 프로세서(A)의 LAN1에 장애가 발생한 것인지 아니면 서버 프로세스가 동작하는 프로세서(B)의 LAN1에 장애가 발생한 것인지 구분할 수 없다. 본 발명에서는 이 문제를 해결하기 위하여 TCP/IP 프로토콜 스택(stack)의 ICMP 프로토콜을 사용하였다. ICMP 프로토콜은 IP 통신을 할 때 에러를 발견한 프로세서나 라우터(router)가 그 에러의 원인이 되는 패킷을 전송한 프로세서로 ICMP 패킷을 전송하여 에러의 원인을 알려주는 프로토콜로 network 검사에 사용하는 ping 명령어도 이 프로토콜을 이용하여 LAN 상태를 검사하는 것이다. 장애가 발생한 LAN를 구별하기 위하여 클라이언트 프로세스는 접속을 시도하다 실패한 프로세서(B)를 제외한 다른 프로세서(B`)의 ICMP 프로토콜로 ICMP_ECHO 메시지를 전달하고 이에 대한 응답 메시지인 ICMP_ECHOREPLY 메시지가 수신되기를 기다린다(스텝 302).If errno is not ECONNREFUSED (239), a failure has occurred on LAN1 used at the time of connection, and LAN1 of processor (A) on which the client process still operates has failed or LAN1 of processor (B) on which the server process operates. It is not possible to tell whether a fault has occurred. In the present invention, the ICMP protocol of the TCP / IP protocol stack is used to solve this problem. The ICMP protocol is a ping that is used to check the network by sending ICMP packets to the processor that found the error or the router that sent the packet that caused the error. The command also uses this protocol to check the LAN state. To distinguish from a failed LAN, the client process attempts to connect and forwards the ICMP_ECHO message to the ICMP protocol of the other processor (B`) except the failed processor (B) and waits for an ICMP_ECHOREPLY message, which is a response message (step 302). ).

클라이언트 프로세스가 전달한 ICMP_ECHO 메시지를 수신한 프로세서(B`)의 ICMP 프로토콜은 ICMP_ECHO 메시지를 전송한 프로세서(A)의 클라이언트 프로세스로 ICMP_ECHOREPLY 메시지를 전송한다. 만약 클라이언트 프로세스가 ICMP_ECHOREPLY 메시지를 수신하면 클라이언트 프로세스가 동작하고 있는 프로세서(A)의 LAN1 상태는 정상이고, 접속시도에 실패한 프로세서(B)의 LAN1에 장애가 발생한 것을 의미한다. 따라서 클라이언트 는 프로세서(B)의 LAN1 장애 메시지를 만들고 LAN 장애 판별 루틴을 종료한다(스텝 303).The ICMP protocol of the processor B` that receives the ICMP_ECHO message delivered by the client process transmits the ICMP_ECHOREPLY message to the client process of the processor A that sent the ICMP_ECHO message. If the client process receives the ICMP_ECHOREPLY message, it means that the LAN1 state of the processor A in which the client process is operating is normal, and that LAN1 of the processor B that fails the connection attempt has failed. Accordingly, the client generates a LAN1 failure message of the processor B and terminates the LAN failure determination routine (step 303).

클라이언트 프로세스가 ICMP_ECHOREPLY 메시지를 수신하지 못한 경우에는 프로세서 B와 B`를 제외한 다른 프로세서(C)의 ICMP 프로토콜로 ICMP_ECHO 메시지를 다시 전송하고 ICMP_ECHOREPLY 메시지가 수신되는지 확인한다. 이는 프로세서(B)를 제외한 다른 한 프로세서(B')에만 ICMP_ECHO 메시지를 전달하고 이에 대한 응답 여부로 클라이언트가 동작하는 프로세서(A)의 LAN1에 장애가 발생한 것인지 아니면 서버가 동작하는 프로세서(B)의 LAN1에 장애가 발생한 것인지를 판별하는 것은 프로세서 B의 LAN1에 장애가 발생한 상황에서 공교롭게 프로세서(B`)의 LAN1에도 장애가 발생한 경우에는 프로세서(A)의 LAN1 상태가 정상임에도 불구하고 장애가 발생(프로세서(B)에는 접속에 실패하고, 프로세서(B')로부터 ICMP_ECHOREPLY 메시지를 수신하지 못했기 때문)한 것으로 잘못 판단할 수 있기 때문이다(스텝 304).If the client process does not receive the ICMP_ECHOREPLY message, it transmits the ICMP_ECHO message again to the ICMP protocol of the processor C other than the processors B and B` and checks whether the ICMP_ECHOREPLY message is received. It transmits ICMP_ECHO message to only one processor (B ') except processor (B), and responds to it whether LAN1 of processor (A) in which client operates or LAN1 of processor (B) in which server operates. Determining whether a failure has occurred in the failure of LAN1 of processor B occurs when LAN1 of processor B` fails, even though LAN1 state of processor A is normal (processor B). This is because it is incorrectly determined that the connection has failed and the ICMP_ECHOREPLY message has not been received from the processor B '(step 304).

만약 클라이언트 프로세스가 프로세서(C)에서도 ICMP_ECHOREPLY 메시지를 수신하지 못하면, 클라이언트 프로세스는 프로세서(A)의 LAN1에 장애가 발생한 것으로 간주하고 프로세서(A) LAN1 장애 메시지를 생성한다(스텝 305).If the client process does not receive the ICMP_ECHOREPLY message even in the processor C, the client process considers that LAN1 of the processor A has failed and generates a processor A LAN1 failure message (step 305).

만약 클라이언트 프로세스가 프로세서(C)로부터 ICMP_ECHOREPLY 메시지를 수신하면 프로세서(B)의 LAN1에 장애가 발생한 것으로 간주하고 프로세서(B)의 LAN1 장애 메시지를 생성한다(스텝 306).If the client process receives the ICMP_ECHOREPLY message from the processor C, it considers that LAN1 of the processor B has failed and generates a LAN1 failure message of the processor B (step 306).

만약 이러한 방법을 사용하지 않고 클라이언트의 접속시도가 실패하면 무조건 서버 가 동작하는 프로세서(B) 의 LAN1에 장애가 발생한 것으로 간주한다면 클라이언트 가 동작하는 프로세서의 LAN1에 장애가 발생했을 경우 서버가 동작하는 모든 프로세서의 LAN1에 장애가 발생한 것으로 잘못 감시할 것이다If the client's connection attempt fails without using this method, it is assumed that LAN1 of the processor (B) in which the server is operating has failed. Will incorrectly monitor LAN1 for failure

도 4는 서버 프로세스가 클라이언트 프로세스의 접속요구를 수령한 후 수행하는 여러 가지 장애감시 루틴 중 하나인 "데몬 프로세스 감시"에 관한 것으로 서버가 감시 대상 daemon 프로세스를 감시하여 그 결과를 클라이언트 프로세스로 전달하는 절차를 플로차트로 표현한 순서도 이다.FIG. 4 relates to "daemon process monitoring", which is one of various fault monitoring routines performed after a server process receives a client process connection request. The server monitors a monitored daemon process and delivers the result to the client process. This is a flowchart that expresses the procedure as a flowchart.

본 발명에서는 데몬 프로세스의 동작 상태를 감시하기 위하여 UNIX 시스템이 제공하는 시스템 콜 kill()을 사용하였다. kill() 시스템 콜을 이용하여 신호 0(실제로는 존재하지 않는 신호 임)를 감시하고자 하는 프로세스에 전달했을 때 해당 프로세스가 동작 중일 때는 kill() 시스템 콜이 0으로 복귀하고, 해당 프로세스가 다운된 경우에는 1으로 복귀하는 성질을 이용하여 프로세스의 동작여부를 감시하는 방법이다. 참고로 신호 0을 프로세스에 전달했을 때 동작 중인 프로세스에는 어떤 영향도 미치지 않는다. 만약 kill() 시스템 콜을 사용하지 않고 ps, grep등 시스템이 제공하는 명령어와 popen() 함수를 이용하여 감시할 수도 있으나 이 경우에는 kill() 시스템 콜을 사용하는 것보다 프로세서 자원을 더 많이 사용한다.In the present invention, the system call kill () provided by the UNIX system is used to monitor the operation status of the daemon process. When the kill () system call is sent to a process that wants to monitor signal 0 (which is a nonexistent signal) and the process is running, the kill () system call returns to 0 and the process is down. In this case, the method returns to 1 to monitor the operation of the process. Note that passing signal 0 to a process has no effect on the running process. If you don't use the kill () system call, you can also use the system-provided commands, such as ps and grep, and the popen () function, but this uses more processor resources than using the kill () system call. do.

도 5는 클라이언트 프로세스가 분산 처리 시스템을 구성하는 각 프로세서를 한차례 순회하여 수집한 장애메시지를 분석하여 서비스 처리에 영향을 미치는 부위의 상태가 변경(장애->정상, 정상->장애)된 경우 공유 메모리(shared memory)에 유지하고 있는 상태테이블을 업데이트 시킨 후 이 테이블을 분산 처리 시스템을 구성하는 모든 프로세서에 전달하여 분산 처리 시스템 상에서 동작하는 모든 프로세스들이 분산처리 시스템의 동작 상태를 정확하게 파악하고 서비스를 처리할 수 있도록 형상테이블을 전달하는 절차이다.FIG. 5 is a diagram illustrating failure messages collected by a client process by circulating each processor constituting a distributed processing system once and sharing when a state of a part affecting service processing is changed (fault-> normal, normal-> fault). After updating the state table held in shared memory, the table is sent to all the processors constituting the distributed processing system so that all processes running on the distributed processing system can accurately understand the operating state of the distributed processing system and provide services. This is the procedure to deliver the shape table for processing.

이상의 설명으로부터 본 발명은 다음의 효과를 나타낼 수 있다.From the above description, the present invention can exhibit the following effects.

본 발명에 따르면, 분산 처리 시스템의 장애 감시를 위하여 클라이언트/서버(도 2참조)구조를 사용하여 수령 시스템 콜에 블럭 되어 있는 서버 프로세스에 클라이언트프로세스가 주기적으로 접속을 요청하여 접속이 성공하면 서버가 장애를 감시하여 클라이언트에 보고하게 함으로서, 클라이언트의 접속요청 주기를 조절하여 프로세서의 자원 사용을 조절할 수 있도록 하였고, 클라이언트의 접속요구가 실패했을 때에는 LAN 장애 판별 기능(도 3 참조)을 수행하도록 하였다.According to the present invention, a client process periodically requests a connection to a server process blocked in a receiving system call by using a client / server (see FIG. 2) structure for failure monitoring of a distributed processing system. By monitoring the failure to report to the client, it is possible to control the resource usage of the processor by adjusting the client's connection request cycle, and to perform the LAN failure determination function (see Figure 3) when the client's connection request fails.

접속실패는 클라이언트와 서버가 통신할 수 없다는 사실만 알려줄 뿐 구체적으로 서버 프로세스 다운인지, 클라이언트쪽 LAN 장애인지, 서버쪽 LAN 장애인지는 구별할 수 없다. 본 발명에서는 접속실패 시, 접속() 시스템 콜이 return하는 errno와 ICMP 프로토콜의 ICMP_ECHO 메시지와 ICMP_ECHOREPLY 메시지를 이용하여 장애 발생 부위를 정확하게 구분할 수 있도록 하였다.The connection failure only tells the client and the server that it is unable to communicate. Specifically, it cannot distinguish between server process down, client-side LAN failure, and server-side LAN failure. In the present invention, in case of a connection failure, an error occurrence part can be accurately identified by using errno returned by a connection () system call and ICMP_ECHO and ICMP_ECHOREPLY messages of the ICMP protocol.

또한 각 프로세서에서 동작하는 daemon 프로세스 감시하는데 UNIX가 제공하는 kill() 시스템 콜의 특징을 사용하여 프로세서의 자원을 적게 사용하면서도 효율적으로 프로세스의 동작 상태를 감시할 수 있도록 하였다(도 4참조).In addition, the kill () system call provided by UNIX is used to monitor the daemon process running on each processor so that the process status of the process can be monitored efficiently while using less processor resources (see FIG. 4).

Claims (8)

분산처리 시스템의 장애 감시방법에 있어서,In the failure monitoring method of the distributed processing system, 분산 처리 시스템을 구성하는 다른 프로세서에 장애 사실을 통지하여 유지보수를 구현하는 때, 장애 메시지를 수집/분석하는 단계;Collecting / analyzing a failure message when notifying failure of another processor constituting the distributed processing system to implement maintenance; 장애 메시지를 수집/분석하여 상태테이블을 유지하는 단계와;Collecting / analyzing fault messages to maintain a state table; 클라이언트의 접속요구가 실패했을 때에는 LAN 장애 부위를 정확하게 판별하기 위하여 접속시스템 콜이 세팅하는 errno와 ICMP 프로토콜의 ICMP_ECHO 메시지를 이용하여 장애 발생 부위를 정확하게 구별하는 단계와;When the client's connection request fails, using the errno set by the access system call and the ICMP_ECHO message of the ICMP protocol to accurately identify the LAN failure site; 다음 서버에 접속요구를 시도하여 위와 같은 과정을 반복하여 장애메시지를 수집하는 단계를 포함하여 프로세서의 부하 상태에 좌우되는 클라이언트의 장애감시 주기에 따라 프로세서의 자원 사용을 조절하는 것을 특징으로 하는 장애 감시 방법.Failure monitoring characterized by adjusting the resource usage of the processor according to the failure monitoring cycle of the client depending on the load status of the processor, including the step of collecting the failure message by repeating the above process by attempting a connection request to the next server Way. 제 1 항에 있어서,The method of claim 1, 클라이언트가 서버에 접속요구를 했을 때, 서버는 클라이언트의 접속요구를 수령한 후, 장애감시를 수행하여 장애메시지를 클라이언트로 전달하는 단계와;When the client makes a connection request to the server, after the server receives the client's connection request, the server performs a failure monitoring to deliver a failure message to the client; 접속요구가 실패하면 LAN 장애 판별 루틴을 수행하여 LAN 장애인지 서버 프로세스에 장애인지를 구분하는 단계를 포함하는 것을 특징으로 하는 장애 감시 방법.And performing a LAN failure determination routine to distinguish the disabled person from the LAN disabled server process if the connection request fails. 제 1 항 또는 제 2항에 있어서,The method according to claim 1 or 2, 다른 프로세서들에서 동작하는 서버들은 클라이언트의 접속요구가 있을 때까지 수령() 시스템 콜에서 블록되어 있는 단계를 포함하는 것을 특징으로 하는 장애 감시 방법.Servers operating on different processors comprise the step of blocking at the receiving () system call until there is a client connection request. 제 1 항 또는 제 2항에 있어서,The method according to claim 1 or 2, 클라이언트의 접속요구가 성공했을 때에만 서버가 장애 감시 활동을 수행하여 장애메시지를 클라이언트로 전달하는 단계를 포함하는 단계를 포함하는 것을 특징으로 하는 장애 감시 방법.And the server performing a failure monitoring activity only when the client's connection request is successful, and forwarding the failure message to the client. 분산 처리 시스템의 장애를 제어하는 장애 제어 방법에 있어서,In the failure control method for controlling a failure of a distributed processing system, 장애 메시지를 수집/분석하여 상태테이블을 유지하는 단계와;Collecting / analyzing fault messages to maintain a state table; 서비스 처리에 영향을 미치는 부위에 장애가 발생하여 상태테이블이 변경된 경우에는 분산 처리 시스템을 구성하는 모든 프로세서에 상태테이블을 전달하여 장애가 발생한 부위로는 서비스가 수행되지 않도록 제어하는 단계와;If a failure occurs in a part affecting the service processing and the state table is changed, controlling the service not to be performed to the failed part by transferring the state table to all processors constituting the distributed processing system; LAN2을 이용하여 장애메시지를 수집/분석한 후, 유지 및 제어단계를 반복하는 단계를 포함하는 것을 특징으로 하는 장애 제어 방법.And collecting and analyzing fault messages using LAN2, and repeating the maintenance and control steps. 제 5 항에 있어서,The method of claim 5, 클라이언트는, 먼저 LAN1을 통하여 각 프로세서의 서버에 1 > 2 > 3 > 4 > 5 순서로 접속요구를 시도하여 장애메시지를 수집/분석하고, 다음에는 LAN2를 통하여 각 프로세서의 서버에 6 > 7 > 8 > 9 > 10 순서로 접속요구를 시도하여 장애메시지를 수집/분석하는 단계를 포함하는 것을 특징으로 하는 장애 제어 방법.The client first attempts to connect to the server of each processor via LAN1 in the order of 1> 2> 3> 4> 5 to collect / analyze the failure message, and then to the server of each processor via LAN2 6> 7> And collecting / analyzing a fault message by attempting a connection request in order of 8> 9> 10. 서버가 각 프로세서에서 동작하는 데몬 프로세스를 감시하는 방법에 있어서,In the way the server monitors the daemon process running on each processor, 서버가 클라이언트의 접속요구를 수령하는 단계와;The server receiving a connection request from the client; 데몬 프로세스의 동작 상태를 감시하기 위하여 UNIX 시스템이 제공하는 시스템 콜 kill()을 사용하여 신호 0를 감시하고자 하는 프로세스에 전달하는 단계와;Passing a signal 0 to a process to be monitored by using a system call kill () provided by a UNIX system to monitor an operation state of a daemon process; 상기 감시 프로세스 전달 단계에서 해당 프로세스가 동작 중일 때는 kill() 시스템 콜이 0으로 복귀하고, 해당 프로세스가 다운된 경우에는 1으로 복귀하는 특징을 이용하여 프로세스의 동작여부를 감시하는 단계;를 포함하는 것을 특징으로 하는 장애 감시 방법.Monitoring the operation of the process by using a feature in which the kill () system call returns to 0 when the process is running in the monitoring process delivery step and returns to 1 when the process is down; Disability monitoring method, characterized in that. 형상 테이블을 갖는 분산처리 방법에 있어서,In the dispersion processing method having a shape table, 클라이언트 프로세스가 분산 처리 시스템을 구성하는 각 프로세서를 한차례 순회하는 단계와;The client process traversing each processor constituting the distributed processing system once; 상기 수집한 장애메시지를 분석하여 서비스 처리에 영향을 미치는 부위의 상태가 변경된 경우 공유 메모리에 유지하고 있는 상태테이블을 업데이트시키는 단계와;Analyzing the collected fault messages and updating a state table held in shared memory when the state of the site affecting the service processing is changed; 그 후 이 테이블을 분산 처리를 구성하는 모든 프로세서에 전달하는 단계를 포함하는 것을 특징으로 하는 장애 감시 방법.And then forwarding this table to all processors constituting distributed processing.
KR1019980062047A 1998-12-30 1998-12-30 Supervision and control method for disperse management system's obstruction KR20000045488A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980062047A KR20000045488A (en) 1998-12-30 1998-12-30 Supervision and control method for disperse management system's obstruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980062047A KR20000045488A (en) 1998-12-30 1998-12-30 Supervision and control method for disperse management system's obstruction

Publications (1)

Publication Number Publication Date
KR20000045488A true KR20000045488A (en) 2000-07-15

Family

ID=19568742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980062047A KR20000045488A (en) 1998-12-30 1998-12-30 Supervision and control method for disperse management system's obstruction

Country Status (1)

Country Link
KR (1) KR20000045488A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460509B1 (en) * 2000-12-22 2004-12-08 엘지전자 주식회사 A method of loading between dualized host and client
US7135353B2 (en) 2003-09-09 2006-11-14 Samsung Electronics Co., Ltd. Apparatus for stacking semiconductor chips, method for manufacturing semiconductor package using the same and semiconductor package manufactured thereby
KR100887874B1 (en) * 2002-06-28 2009-03-06 주식회사 케이티 System for managing fault of internet and method thereof
US11064156B2 (en) 2014-01-13 2021-07-13 Hanwha Techwin Co., Ltd. Camera control method, camera, and surveillance system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460509B1 (en) * 2000-12-22 2004-12-08 엘지전자 주식회사 A method of loading between dualized host and client
KR100887874B1 (en) * 2002-06-28 2009-03-06 주식회사 케이티 System for managing fault of internet and method thereof
US7135353B2 (en) 2003-09-09 2006-11-14 Samsung Electronics Co., Ltd. Apparatus for stacking semiconductor chips, method for manufacturing semiconductor package using the same and semiconductor package manufactured thereby
US11064156B2 (en) 2014-01-13 2021-07-13 Hanwha Techwin Co., Ltd. Camera control method, camera, and surveillance system

Similar Documents

Publication Publication Date Title
US5996001A (en) High availability on-line transaction processing system
US5408649A (en) Distributed data access system including a plurality of database access processors with one-for-N redundancy
US6343320B1 (en) Automatic state consolidation for network participating devices
US7370223B2 (en) System and method for managing clusters containing multiple nodes
KR100617344B1 (en) Reliable fault resolution in a cluster
US7296268B2 (en) Dynamic monitor and controller of availability of a load-balancing cluster
US6859830B1 (en) Method and system for detecting a dead server
US6912534B2 (en) Web service
US6701449B1 (en) Method and apparatus for monitoring and analyzing network appliance status information
US7581006B1 (en) Web service
US8892737B2 (en) Network sniffer for performing service level management
WO2005109227A2 (en) System and method for managing a network
JP2004021549A (en) Network monitoring system and program
US8634321B2 (en) Proxy agents in a network
JPH09186688A (en) Improved node discovery and network control system with monitoring
US7313735B1 (en) In-line server health checking
WO2005081473A1 (en) Communication processing system, packet processing load dispersion device, and packet processing load dispersion method used for the same
Vogels World wide failures
KR20000045488A (en) Supervision and control method for disperse management system's obstruction
JPH09293059A (en) Decentralized system and its operation management method
US20050259572A1 (en) Distributed high availability system and method
GB2362230A (en) Delegated fault detection in a network by mutual node status checking
Cisco Monitoring Cisco Sever Load Balancing Devices
Cisco Monitoring Cisco Server Load Balancing Devices
KR100279660B1 (en) Redundancy Monitoring of Fault Monitoring Devices Using Internet Control Message Protocol (ICMP)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application