KR20080079618A - 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20080079618A
KR20080079618A KR1020080017363A KR20080017363A KR20080079618A KR 20080079618 A KR20080079618 A KR 20080079618A KR 1020080017363 A KR1020080017363 A KR 1020080017363A KR 20080017363 A KR20080017363 A KR 20080017363A KR 20080079618 A KR20080079618 A KR 20080079618A
Authority
KR
South Korea
Prior art keywords
job
node
information
execution
calculation
Prior art date
Application number
KR1020080017363A
Other languages
English (en)
Other versions
KR100987746B1 (ko
Inventor
고이치 히라이
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20080079618A publication Critical patent/KR20080079618A/ko
Application granted granted Critical
Publication of KR100987746B1 publication Critical patent/KR100987746B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

Abstract

본 발명은 효율적인 처리에 의해 관리 노드의 고신뢰화를 도모하는 것을 목적으로 한다.
작업 실행 의뢰가 입력되면, 작업 실행 의뢰 접수 수단(1b)에 의해 작업 투입 정보(2a)가 스토리지 디바이스(2)에 저장된다. 다음으로, 작업 실행 지시 수단(1c)에 의해 작업 피배치 계산 노드에 대해 실행 자원 정보(3aa, 3ab, 4aa)를 부가한 작업 실행 지시가 송신된다. 또한, 작업 실행 지시 수단(1c)에 의해 작업 ID에 대응시켜 작업 배치 정보(2b)가 스토리지 디바이스(2)에 저장된다. 그리고, 재기동 처리에 의해 작업 DB(1a)의 내용이 손실된 경우, 작업 DB 재구축 수단(1d)에 의해 스토리지 디바이스(2)로부터 작업 투입 정보(2a)와 작업 배치 정보(2b)가 수집되고, 작업 피배치 계산 노드로부터 실행 자원 정보(3aa, 3ab)가 수집되어, 작업 DB(1a) 내에 작업 정보가 재구축된다.

Description

작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{JOB MANAGEMENT DEVICE, CLUSTER SYSTEM, AND COMPUTER-READABLE MEDIUM STORING JOB MANAGEMENT PROGRAM}
본 발명은 복수의 계산 노드에 작업 실행을 지시하는 작업 관리 장치, 그 작업 관리 장치로 작업을 관리하는 클러스터 시스템 및 작업 관리 장치의 기능을 컴퓨터에 실행시키기 위한 작업 관리 프로그램에 관한 것으로, 특히, 기능 정지에 대한 고신뢰화를 도모한 작업 관리 장치 및 그 작업 관리 장치로 작업을 관리하는 클러스터 시스템 및 기능 정지에 대한 고신뢰화를 도모하는 작업 관리 프로그램에 관한 것이다.
고도한 과학 기술계의 계산을 하는 경우, 복수의 컴퓨터를 하나로 묶어, 하나의 계산기 시스템으로서 운용한다. 이하, 이러한 계산기 시스템을 「클러스터 시스템」이라 칭하고, 계산기 시스템을 구성하는 컴퓨터를 「노드」라 칭한다. 이용자는 다른 컴퓨터를 이용하여, 클러스터 시스템에 대해 계산 의뢰를 입력한다. 이하, 이러한 계산 의뢰에 기초하여 실행되는 처리를 「작업」(job)이라 칭한다. 또, 작업에는 복수의 노드에서 병렬로 실행시키는 「병렬 작업」, 단일의 노드 상의 하 나의 프로세스로 실행시키는 「축차 작업」이 있다.
작업을 수취한 클러스터 시스템에서는 입력된 작업을 1대 또는 복수대의 노드에서 실행시켜야 한다. 따라서, 작업의 노드로의 할당이나, 각 노드에서의 작업의 실행 상황을 관리하기 위한 노드가 준비된다. 이하, 이 노드를 관리 노드라고 칭하고, 관리 노드 이외의 노드를 계산 노드라 칭한다.
클러스터 시스템에서는, 계산 노드의 할당이나 계산 노드로의 실황 상황을 관리 노드가 파악하고 있다. 이 때문에, 관리 노드가 다운(장해 등에 의한 기능 정지)되어 버리면, 작업의 할당이나 실황 상황을 파악할 수 없게 된다는 문제가 있다.
여기에서, 관리 노드의 다운을 상정한 고신뢰화 기능이 없는 경우, 관리 노드가 다운되면 작업이 존재하고 있었다는 정보까지도 손실되어 버린다. 이 때, 클러스터 시스템으로의 작업의 재투입이 필요하게 된다. 또한, 작업을 재투입하기 전에 계산 노드에서 가동 중인 작업을 종료시켜야 한다. 그런데, 고신뢰화 기능이 없으면 어떠한 작업이 의뢰되어 있었는지 알 수 없다. 따라서, 모든 계산 노드의 재기동이 필요해 진다.
따라서, 고신뢰화 기술이 이용된다. 종래의 고신뢰화 기술에서는, 작업 상태를 작업 데이타 베이스(DB) 상에 파일로 저장해 둔다. 작업 DB는 하드디스크에 구축된다. 그리고, 관리 노드가 다운된 때는, 관리 노드의 기동 시에 작업 DB로부터 작업 상태가 기록된 파일을 판독함으로써 처리 중인 작업을 인식한다.
그런데, 작업 상태에는 2단계의 상태가 있다. 즉, 다른 컴퓨터로부터의 의뢰 상태(작업 투입 상태)와, 계산 노드에 할당하여 실행시키고 있는 작업 상태(작업 실행 상태)이다.
작업 DB에 작업 투입 상태만을 관리하고 있던 경우, 관리 노드가 다운된 후에도 실행해야만 하는 작업은 인식할 수 있다. 따라서, 사용자로부터의 작업의 재투입은 불필요하다. 다만, 각 작업이 어떠한 상황으로 실행되고 있는지 불명료하다. 이 때문에, 계산 노드에서 실행하고 있는 작업을 일단 종료시키고, 처음부터 실행시켜야 한다.
이와 같이, 작업을 처음부터 실행하는 것은 시스템의 운용 효율이 저하되어 버린다. 더구나, 과학 기술 계산에서는 계산에 장시간이 필요한 작업도 존재하는데, 그러한 작업을 처음부터 다시 실행하는 것은 비효율적이다.
따라서, 작업 DB에 작업 투입 상태와 작업 실행 상태를 하드디스크 상의 파일로 관리하는 것이 행해진다. 이 경우, 관리 노드가 다운된 후에도 작업 투입 상태에 더하여 작업 실행 상태를 인식할 수 있다. 이 때문에, 작업을 재투입할 필요가 없고, 계산 노드에서 실행 중인 작업을 그대로 계속할 수 있다.
이에 따라 관리 노드가 다운되어도 작업을 처음부터 다시 실행할 필요가 없어진다. 다만, 작업 실행 상태를 보존하기 위해서는 정보 반영의 지연이라는 과제가 남는다.
즉, 통상의 OS(운영 체제)에서는 파일에 정보를 기록하여도, 시스템의 고속화를 위해 메모리 상에서 기록할 뿐이다. 그리고, 그 후 소정의 타이밍에서 갱신된 파일의 내용이 디스크에 기록된다. 이와 같이, 즉시 디스크에 반영되지 않으므로 정보 반영에 항상 지연이 발생한다. 그 결과, 작업 실행 상태가 최신 상태가 되지 않아, 고신뢰화에 방해가 된다.
또한, 기록 처리의 지연 대책으로서, 메모리 상에서의 파일 기록과 동시에 디스크로의 정보 반영을 즉시 실시하는 것을 생각할 수 있다. 다만, 이 경우 메모리로의 기록보다 하드디스크로의 기록이 훨씬 저속이기 때문에, 시스템 처리의 지연으로 이어진다.
따라서, 작업 DB를 이용하지 않고, 고신뢰화 하는 기술이 고려되고 있다. 예를 들면, 관리 노드가 보유하는 작업의 실행 상태나 환경 설정을 계산 노드에도 배치해 둔다. 그리고, 관리 노드가 다운된 경우, 계산 노드 중 하나가 관리 노드로 승격한다. 그리고, 관리 노드를 겸하게 된 계산 노드가 다른 계산 노드로부터 실행 상태나 환경 설정을 수집하고, 관리 노드의 기능을 실행한다(예를 들면, 특허문헌 1 참조).
[특허문헌 1] 일본특허공개 평 6-96041호 공보
그러나, 특허문헌 1에 도시된 고신뢰화 기술에서도 이하와 같은 문제가 있다.
(1) 병렬 작업으로의 대응이 고려되어 있지 않다.
병렬 작업에서는, 복수의 계산 노드가 연휴(連携)하여 작업을 실행해야 한다. 이 때문에, 병렬 작업을 실행하는 복수의 계산 노드 중 하나가 작업 마스터가 되어, 작업의 실행 상황의 상세를 관리한다. 어떤 계산 노드가 작업 마스터인가 라는 병렬 작업 특유의 정보가 복구될 수 있도록 하지 않으면, 병렬 작업에 대해서는 대응이 어렵다.
(2) 작업의 모든 정보를 계산 노드 측에서 보존해야 한다.
작업의 실행에 필요한 정보는 모두 계산 노드 측에서 보존해야 하며, 경우에 따라 방대한 정보를 전송해야만 하는 경우가 있다.
(3) 2중 다운에 대응할 수 없다.
관리 노드와 동시에 일부의 계산 노드가 정지해 버리면, 정지한 계산 노드에서 실행되고 있었던 작업의 존재가 없어지게 된다. 작업의 존재 자체가 없어지면, 해당하는 작업을 시스템 외부로부터 재투입할 필요가 생긴다. 이 때문에, 시스템 외부에서 투입한 작업이 손실되었는지 아닌지 확인해야 한다. 즉, 시스템 외부에서, 투입한 작업이 존속되고 있는지의 여부를 관리하지 않는 한, 손실된 작업을 재생할 수 없어, 클러스터 시스템의 신뢰성이 손상되어 있었다.
(4) 모든 계산 노드로 엑세스가 필요하다.
정보를 수집하기 위해 모든 계산 노드로 액세스해야 하여, 통신 처리가 비효율적이다. 특히, 과학 기술 계산에 이용하는 시스템에서는, 노드 수가 증가하는 경향이 있고, 모든 계산 노드의 관리 정보를 하나의 계산 노드에 전송하기 위해서는, 방대한 양의 데이터 전송이 발생한다.
(5) 계산 노드가 다운된 경우의 재실행을 할 수 없다.
계산 노드만으로 정보를 보호하도록 하고 있으므로, 계산 노드가 다운되어 버리면, 실행하고 있던 작업의 재실행도 할 수 없다.
이들 문제 중, 조금이라도 많은 문제를 해결하여, 클러스터 시스템의 신뢰성을 높이면서 처리 효율의 저하를 막을 수 있다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 효율적인 처리에 의해 관리 노드의 고신뢰화를 도모할 수 있는 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을 제공하는 것을 목적으로 한다.
본 발명에서는 상기 과제를 해결하기 위해 도 1에 도시한 바와 같은 클러스터 시스템이 제공된다. 이 클러스터 시스템은 관리 노드(1), 스토리지 디바이스(2) 및 복수의 계산 노드(3, 4)로 구성되고, 작업 투입 장치(5)로부터 투입된 작업 실행 의뢰에 따라 작업을 실행한다. 또한, 관리 노드(1)는 복수의 계산 노드에 작업 실행을 지시하는 작업 관리 장치로서 기능한다.
관리 노드(1)는 작업 DB(1a), 작업 실행 의뢰 접수 수단(1b), 작업 실행 지 시 수단(1c) 및 작업 DB 재구축 수단(1d)을 포함한다. 작업 DB(1a)는 메인 메모리 내에 설치되고, 작업마다 작업 정보를 기억한다. 작업 실행 의뢰 접수 수단(1b)은 작업 실행 의뢰가 입력되면, 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보(2a, 1aa)를 스토리지 디바이스(2)와 작업 DB(1a)에 저장한다. 작업 실행 지시 수단(1c)은 작업 실행 의뢰 접수 수단(1b)이 접수한 작업 실행 의뢰의 할당처가 되는 1대 이상의 계산 노드를 작업 피배치 계산 노드로 결정하고, 작업 피배치 계산 노드에 대하여 작업 실행에 사용하여야 할 자원을 나타내는 실행 자원 정보(3aa, 3ab, 4aa)를 부가한 작업 실행 지시를 송신하고, 작업 ID에 대응시켜 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보(1ab)와 작업 피배치 계산 노드 각각의 실행 자원 정보(1ac, 1ad)를 작업 DB(1a)에 저장하고, 작업 ID에 대응시켜 작업 배치 정보(2b)를 스토리지 디바이스(2)에 저장한다. 작업 DB 재구축 수단(1d)은 재기동 처리에 의해 작업 DB(1a)의 내용이 손실된 경우, 스토리지 디바이스(2)로부터 작업 투입 정보(2a)와 작업 배치 정보(2b)를 수집하고, 작업 피배치 계산 노드로부터 실행 자원 정보(3aa, 3ab)를 수집하고, 작업 DB(1a) 내에 작업 정보를 재구축한다.
이러한 클러스터 시스템에 의하면, 작업 투입 장치(5)로부터 작업 실행 의뢰가 입력되면, 작업 실행 의뢰 접수 수단(1b)에 의해 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보(2a, 1aa)가 스토리지 디바이스(2)와 작업 DB(1a)에 저장된다. 다음으로, 작업 실행 지시 수단(1c)에 의해 작업 실행 의뢰 접수 수단(1b)이 접수한 작업 실행 의 뢰의 할당처가 되는 1대 이상의 계산 노드가 작업 피배치 계산 노드로 결정되고, 작업 피배치 계산 노드에 대하여 작업 실행에 사용하여야 할 자원을 나타내는 실행 자원 정보(3aa, 3ab, 4aa)를 부가한 작업 실행 지시가 송신된다. 또한, 작업 실행 지시 수단(1c)에 의해 작업 ID에 대응시켜 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보(1ab)와 작업 피배치 계산 노드 각각의 실행 자원 정보(1ac, 1ad)가 작업 DB(1a)에 저장되고, 작업 ID에 대응시켜 작업 배치 정보(2b)가 스토리지 디바이스(2)에 저장된다. 그리고, 재기동 처리에 의해 작업 DB(1a)의 내용이 손실된 경우, 작업 DB 재구축 수단(1d)에 의해 스토리지 디바이스(2)로부터 작업 투입 정보(2a)와 작업 배치 정보(2b)가 수집되고, 작업 피배치 계산 노드로부터 실행 자원 정보(3aa, 3ab)가 수집되어, 작업 DB(1a) 내에 작업 정보가 재구축된다.
본 발명에서는, 작업 투입 정보와 작업 배치 정보를 스토리지 디바이스에 저장해 두고, 실행 자원 정보를 계산 노드에 전달해 두도록 하므로, 재기동 처리에 의해 작업 DB의 내용이 손실되어도, 이들 정보를 수집 하는 것으로 작업 정보의 재구축이 가능해진다.
이하, 본 발명의 실시 형태를 도면을 참조하여 설명한다.
도 1은 클러스터 시스템의 개요를 도시한 도면이다. 도 1에 도시하는 클러스터 시스템은 관리 노드(1), 스토리지 디바이스(2) 및 복수의 계산 노드(3,4)로 구성되고, 작업 투입 장치(5)로부터 투입된 작업 실행 의뢰에 따라 작업을 실행한다.
스토리지 디바이스(2)는 관리 노드(1)에 접속되어 있고, 작업 ID에 대응된 작업 투입 정보(2a)와 작업 배치 정보(2b)를 기억한다. 예를 들면, 작업 투입 정보(2a)와 작업 배치 정보(2b)는 각각 하나의 파일로서 스토리지 디바이스(2)에 저장된다.
계산 노드(3,4)는 관리 노드(1)로부터의 작업 실행 지시에 따라 작업을 실행한다. 또한, 실행 지시에서 나타낸 작업이 병렬 작업(6)이면, 2대의 계산 노드(3,4)가 협동하여 그 병렬 작업(6)을 실행한다. 병렬 작업(6)을 실행하는 경우, 한 쪽의 계산 노드(도 1의 예에서는 계산 노드(3))가 작업 마스터 노드로서 기능하고, 다른 쪽의 계산 노드(도 1의 예에서는 계산 노드(4))가 작업 슬레이브 노드로서 기능한다.
또한, 계산 노드(3, 4)는 각각의 메인 메모리 내에 작업 DB(3a, 4a)를 포함하고 있다. 그리고, 계산 노드(3)는 관리 노드(1)로부터 전달된 실행 자원 정보(3aa, 3ab)를 작업 DB(3a) 내에 기억한다. 이 때, 작업 마스터 노드인 계산 노드(3)에는 계산 노드(3) 자신의 실행 자원 정보(3aa)에 더하여, 작업 슬레이브 노드인 계산 노드(4)의 실행 자원 정보(3ab)도 동시에 전달된다. 마찬가지로, 계산 노드(4)는 관리 노드(1)로부터 전달된 실행 자원 정보(4aa)를 작업 DB(4a) 내에 기억한다. 이 때, 작업 슬레이브 노드인 계산 노드(4)에 전달되는 것은 계산 노드(4) 자신의 실행 자원 정보(4aa)이다.
그리고, 관리 노드(1)로부터 실행 자원 정보의 수집 의뢰를 수취하면, 각 계 산 노드(3, 4)는 작업 DB(3a, 4a) 내의 실행 자원 정보를 관리 노드(1)에 송신한다. 이 때, 병렬 작업(6)의 작업 마스터 노드인 계산 노드(3)는 병렬 작업(6)을 실행하는 모든 계산 노드에 관한 실행 자원 정보(3aa, 3ab)를 관리 노드(1)에 송신한다. 한편, 병렬 작업(6)의 작업 슬레이브 노드인 계산 노드(4)는 실행 자원 정보의 수집 의뢰를 무시하고, 실행 자원 정보를 송신하지 않는다.
관리 노드(1)는 작업 DB(1a), 작업 실행 의뢰 접수 수단(1b), 작업 실행 지시 수단(1c) 및 작업 DB 재구축 수단(1d)을 포함한다.
작업 DB(1a)는 메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억한다. 작업 정보는 작업 투입 정보(1aa), 작업 배치 정보(1ab) 및 작업을 실행하는 계산 노드에서 작업의 실행에 사용하는 자원을 나타내는 실행 자원 정보(1ac, 1ad)가 포함된다.
작업 실행 의뢰 접수 수단(1b)은, 작업 투입 장치(5)로부터 작업 실행 의뢰가 입력되면, 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보(2a, 1aa)를 스토리지 디바이스(2)와 작업 DB(1a)에 저장한다.
작업 실행 지시 수단(1c)은, 작업 실행 의뢰 접수 수단(1b)이 접수한 작업 실행 의뢰의 할당처가 되는 1대 이상의 계산 노드를 작업 피배치 계산 노드로 결정한다. 또한, 의뢰된 작업이 병렬 작업이면, 복수의 계산 노드가 작업 피배치 계산 노드로서 결정된다. 그 후, 작업 실행 지시 수단(1c)은 작업 피배치 계산 노드에 대하여 작업 실행에 사용해야 할 자원을 나타내는 실행 자원 정보(3aa, 3ab, 4aa) 를 부가한 작업 실행 지시를 송신한다. 또한, 작업 실행 지시 수단(1c)은 작업 ID에 대응시켜 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보(1ab)와 작업 피배치 계산 노드 각각의 실행 자원 정보(1ac, 1ad)를 작업 DB(1a)에 저장한다. 또한, 작업 실행 지시 수단(1c)은, 작업 ID에 대응시켜 작업 배치 정보(2b)를 스토리지 디바이스(2)에 저장한다.
작업 DB 재구축 수단(1d)은 재기동 처리에 의해 작업 DB(1a) 내용이 손실된 경우, 스토리지 디바이스(2)로부터 작업 투입 정보(2a)와 작업 배치 정보(2b)를 수집한다. 또한, 작업 DB 재구축 수단(1d)은 작업 피배치 계산 노드로부터 실행 자원 정보(3aa, 3ab)를 수집한다. 그리고, 작업 DB 재구축 수단(1d)은 수집한 작업 투입 정보(2a), 작업 배치 정보(2b) 및 실행 자원 정보(3aa, 3ab)에 의해 작업 DB(1a) 내에 작업 정보를 재구축한다.
이러한 클러스터 시스템에 의하면, 작업 투입 장치(5)로부터 작업 실행 의뢰가 입력되면, 작업 실행 의뢰 접수 수단(1b)에 의해 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보(2a, 1aa)가 스토리지 디바이스(2)와 작업 DB(1a)에 저장된다.
다음으로, 작업 실행 지시 수단(1c)에 의해 작업 실행 의뢰 접수 수단(1b)이 접수한 작업 실행 의뢰의 할당처가 되는 1대 이상의 계산 노드가 작업 피배치 계산 노드로 결정되고, 작업 피배치 계산 노드에 대하여 작업 실행에 사용해야 할 자원을 나타내는 실행 자원 정보(3aa, 3ab, 4aa)를 부가한 작업 실행 지시가 송신된다. 또한, 작업 실행 지시 수단(1c)에 의해 작업 ID에 대응시켜 작업 피배치 계산 노드 의 일람을 포함하는 작업 배치 정보(1ab)와 작업 피배치 계산 노드 각각의 실행 자원 정보(1ac, 1ad)가 작업 DB(1a)에 저장되고, 작업 ID에 대응시켜 작업 배치 정보(2b)가 스토리지 디바이스(2)에 저장된다.
그 후, 관리 노드(1)에 장해가 발생하면, 관리 노드(1)의 재기동 처리가 행해진다. 관리 노드(1)가 재기동되면, 작업 DB(1a)의 내용이 손실된다. 그러면, 작업 DB 재구축 수단(1d)에 의해, 스토리지 디바이스(2)로부터 작업 투입 정보(2a)와 작업 배치 정보(2b)가 수집되고, 작업 배치 정보(2b)에 나타낸 작업 피배치 계산 노드로부터 실행 자원 정보(3aa, 3ab)가 수집되어, 작업 DB(1a) 내에 작업 정보가 재구축된다.
이렇게 하여, 관리 노드(1)의 고신뢰화를 효율적인 처리에 의해 실현할 수 있다. 즉, 작업 투입 정보(2a)와 작업 배치 정보(2b)는 관리 노드(1)에 접속된 스토리지 디바이스(2)에 기억된다. 작업 투입 정보(2a)와 작업 배치 정보(2b)의 기록은 작업 실행 의뢰를 접수했을 때와, 계산 노드(3, 4)로의 작업 실행 지시를 송신한 때에 행하면 좋다. 게다가, 실행 자원 정보를 포함하여 스토리지 디바이스(2)에 저장하는 경우에 비해, 기록해야 하는 정보의 양이 적다. 따라서, 스토리지 디바이스(2)로의 기록의 지연을 최소한으로 억제할 수 있다.
또한, 실행 자원 정보의 복제가 계산 노드(3, 4)에서 관리된다. 그 결과, 관리 노드(1)가 다운되었을 때에, 실행 자원 정보를 계산 노드(3, 4)로부터 수집할 수 있다.
그런데, 도 1의 클러스터 시스템을 특허문헌 1에 기재한 발명(일본특허공개 평 6-96041호 공보)과 비교했을 때, 도 1의 클러스터 시스템에서는 일부 정보를 스토리지 디바이스(2)에 저장하고 있는 점이 크게 다르다. 즉, 도 1의 클러스터 시스템은 병렬 작업에도 적용 가능한 구성으로 되어 있다. 병렬 작업에 적용하기 위해서는, 병렬 작업이 어느 계산 노드에 할당한 것인지 인식하고 있을 필요가 있다. 특허문헌 1의 청구항 3을 참조하면, 시스템 상에서 공유되는 데이터에 관해서는, 복사가 각 계산기에 배치된다. 그러면, 관리 노드가 다운되었을 때에, 그 정보를 수집할 때에, 방대한 양의 낭비가 생기게 된다. 최근의 클러스터 시스템에서는, 수백대 혹은 그 이상의 노드가 접속되는 경우가 있다. 이들 노드 전부로부터 공유 정보를 수집하는 것은 통신 혼잡을 초래하여 관리 노드의 운용 재개를 지연시키는 원인이 된다.
도 1의 클러스터 시스템에서는, 작업 투입 정보(2a)나 작업 배치 정보(2b)라고 하는 정보(계산 노드 고유는 아니고, 시스템 관리상 공유하여야 할 정보)는 스토리지 디바이스(2)에 저장하고 있으므로, 정보 수집 시의 통신 부하가 경감된다. 게다가, 스토리지 디바이스(2)에 저장하는 정보를 최소한의 정보량으로 억제하고 있으므로, 정보의 기록 지연에 의한 신뢰성의 저하도 억제된다.
또한, 스토리지 디바이스(2)에 기억되는 작업 투입 정보(2a)나 작업 배치 정보(2b)는 작업의 투입·종료에 필요한 데이터이다. 이들 정보는 실행 중에는 불필요하다. 즉, 이들 정보를 계산 노드에 기억시키지 않아도, 작업 실행에 악영향은 없다. 게다가, 이들 정보를 메인 메모리에 기억시키지 않고서도 되므로, 메모리 자원의 유효 활용도 도모할 수 있다.
또한, 작업 투입 정보(2a)와 작업 배치 정보(2b)를 스토리지 디바이스(2)에 저장하므로, 관리 노드와 계산 노드가 동시에 정지하여도 작업의 존재 자체를 잊는 일이 없다는 효과를 더 갖는다. 즉, 작업 투입 장치(5)로부터의 작업 실행 의뢰를 재차 입력하지 않아도, 작업을 처음부터 실행하는 것이 가능하다.
또한, 도 1의 클러스터 시스템에서는 병렬 작업의 작업 마스터 노드에 대하여 작업 마스터 노드 분도 포함하여 실행 자원 정보를 전달한다. 그리고, 관리 노드(1)를 재기동한 경우에는, 작업 마스터 노드로부터만 실행 자원 정보를 수집한다. 이것에 의해, 정보 수집 시의 데이터 통신 횟수를 삭감할 수 있다.
즉, 병렬 작업의 경우, 복수의 계산 노드에 걸친 정보를 관리해야 한다. 이를 위한 간단한 방법은, 작업 전체의 정보를 관련된 모든 계산 노드에 전송하는 것이다. 그러나, 관리 노드(1)가 재기동된 경우에는, 모든 계산 노드로부터 정보를 수집하는 것은 비효율적이다. 이 때문에, 도 1의 클러스터 시스템에서는 작업 내의 복수의 계산 노드로부터 작업 마스터 노드를 결정해 두고, 작업 실행에 필요한 정보를 하나로 통합하여 둔다. 이에 의해, 고신뢰화 처리 시에는 작업 마스터 노드로부터만 정보를 취득하여, 관리 노드(1)의 작업 DB(1a)의 재구축이 가능해진다. 그 결과, 정보 수집 시의 통신 횟수를 삭감할 수 있다.
게다가, 관리 노드(1)가 다운된 경우, 조금이라도 빠른 관리 노드(1)의 복구가 요구된다. 이 때문에, 통신 횟수의 삭감에 의한 관리 노드(1) 복구의 신속화는 고신뢰화 처리에 있어 매우 중요하다.
다음으로, 본 실시 형태의 상세를 설명한다.
[제1 실시 형태]
도 2는 본 실시 형태의 클러스터 시스템의 구성예를 도시하는 도이다. 본실시 형태에 따른 클러스터 시스템은 1대의 관리 노드(100)와 복수의 계산 노드(200, 300, 400, 500, 600)로 구성되어 있다.
관리 노드(100)는 클러스터 시스템에 대하여 의뢰된 작업을 관리한다. 작업의 실행 의뢰는 관리 노드(100)에 네트워크(22)를 통해 접속된 작업 투입 장치(30)로부터 전송된다. 또한, 관리 노드(100)는 스토리지 디바이스(110)를 포함하고 있다. 스토리지 디바이스(110)는 의뢰된 작업의 내용을 기억하는 기억 장치이다. 스토리지 디바이스(110)로서는 하드디스크 장치 등의 비휘발성 기억 매체가 사용된다.
작업 투입 장치(30)는 클러스터 시스템의 이용자가 작업의 투입에 사용하는 컴퓨터이다.
복수의 계산 노드(200, 300, 400, 500, 600)는 네트워크(21)를 통해 상호 접속되어 있고, 관리 노드(100)에 접속되어 있다. 계산 노드(200, 300, 400, 500, 600)는 관리 노드(100)에 의해 할당된 작업을 실행한다.
본 실시 형태에서는 관리 노드(100)와 계산 노드(200, 300, 400, 500, 600)는 각각 멀티프로세서 컴퓨터이다.
도 3은 본 실시 형태에 이용하는 관리 노드의 하드웨어 구성예를 도시하는 도이다. 관리 노드(1OO)는 복수의 CPU(Central Processing Unit; 1O1a, 1O1b, …)에 의해 장치 전체가 제어되고 있다. CPU(101, 101b, …)에는 버스(109)를 통해 RAM(Random Access Memory; 102), 하드디스크 드라이브(HDD: Hard Disk Drive; 103), 그래픽 처리장치(104), 입력 인터페이스(105), 복수의 통신 인터페이스(106, 107) 및 스토리지 디바이스 인터페이스(108)가 접속되어 있다.
RAM(102)에는, 메인 메모리로서 사용되고, CPU(101a, 101b, …)에 실행시키는 OS(Operating System)의 프로그램이나 애플리케이션 프로그램의 적어도 일부가 일시적으로 저장된다. 또한, RAM(102)에는, CPU(101a, 101b, …)에 의한 처리에 필요한 각종 데이터가 저장된다. HDD(103)에는 OS나 애플리케이션 프로그램이 저장된다.
그래픽 처리 장치(104)에는 모니터(11)가 접속되어 있다. 그래픽 처리 장치(104)는 CPU(101a, 101b, …)로부터의 명령에 따라 화상을 모니터(11)의 화면에 표시시킨다. 입력 인터페이스(105)에는 키보드(12)와 마우스(13)가 접속되어 있다. 입력 인터페이스(105)는 키보드(12)나 마우스(13)로부터 전송되어 오는 신호를 버스(109)를 통해 CPU(101a, 101b, …)에 송신한다.
통신 인터페이스(106)는 네트워크(21)에 접속되어 있다. 통신 인터페이스(106)는 네트워크(21)를 통해 계산 노드와의 사이에서 데이터의 송수신을 행한다.
통신 인터페이스(107)는 네트워크(22)에 접속되어 있다. 통신 인터페이스(107)는 네트워크(22)를 통해 작업 투입 장치(30)와의 사이에서 데이터의 송수신을 행한다.
스토리지 디바이스 인터페이스(108)는 스토리지 디바이스(110)에 대한 데이 터의 기록이나, 스토리지 디바이스(110)부터의 데이터의 독출을 행하기 위한 통신 인터페이스이다.
이상과 같은 하드웨어 구성에 의해 관리 노드(100)는 작업 관리에 필요한 기능을 실현할 수 있다. 또한, 도 3에는 관리 노드(100)의 하드웨어 구성예를 도시하지만, 계산 노드(200, 300, 400, 500, 600)나 작업 투입 처리(30)도 같은 하드웨어로 실현할 수 있다.
도 4는 클러스터 시스템의 기능을 도시하는 블럭도이다. 관리 노드(100)는 작업 실행 의뢰 접수부(121), 작업 실행 지시부(122), 작업 DB 재구축부(123) 및 작업 DB(130)를 포함하고 있다.
작업 실행 의뢰 접수부(121)는 작업 투입 장치(30)로부터의 작업 실행 의뢰를 접수한다. 작업 실행 의뢰에는 작업 실행에 사용하는 프로그램의 지정이나, 그 프로그램에 인도하는 파라미터 등이 포함된다. 또한, 작업 실행 의뢰 접수부(121)는 접수한 작업 실행 의뢰를 작업 실행 지시부(122)에 전달하고, 작업 실행 의뢰의 내용을 나타내는 작업 투입 정보를 작업 DB(130)와 스토리지 디바이스(110)에 저장한다.
작업 실행 지시부(122)는 기동되고 있는 계산 노드(200, 300, 400, 500, 600)의 리스트를 포함하고 있고, 작업 실행 의뢰에 따른 작업의 할당을 행한다. 즉, 작업 실행 지시부는 작업 실행 의뢰 접수부(121)로부터 작업 실행 의뢰에 따라 작업 실행 지시를 계산 노드에 대하여 출력한다.
또한, 작업 실행 의뢰에는, 실행해야 할 작업이 병렬 작업인지 축차 작업인 지를 나타내는 정보가 포함되어 있다. 또, 병렬 작업이면, 병렬 수(실행에 필요한 계산 노드의 수)가 작업 실행 의뢰에 포함된다. 의뢰된 작업이 병렬 작업이면, 작업 실행 지시부(122)는 병렬 수에 따른 수의 계산 노드를 의뢰처로서 결정한다. 또, 의뢰된 작업이 축차 작업이면, 작업 실행 지시부(122)는 1대의 계산 노드를 의뢰처로서 결정한다. 그리고, 작업 실행 지시부(122)는 의뢰처의 계산 노드에 대해 작업 실행 지시를 출력한다.
병렬 작업의 작업 실행 지시를 내보내는 경우, 작업 실행 지시부(122)는 의뢰처의 계산 노드 중 하나를 작업 마스터로 지정하고, 작업 마스터 이외의 계산 노드를 작업 슬레이브로 지정한다. 작업 마스터의 계산 노드(작업 마스터 노드)에 작업 실행 지시를 내보내는 경우, 작업 실행 지시부(122)는 작업 마스터 노드에 대해 병렬 작업의 의뢰처가 되는 모든 계산 노드에 관한 실행 자원 정보를 전달한다. 실행 자원 정보는 작업 실행에 있어서 사용해야 할 자원(사용해야 할 CPU나 메모리 용량 등)에 관한 정보이다. 또, 작업 슬레이브의 계산 노드(작업 슬레이브 노드)에 작업 실행 지시를 내보내는 경우, 작업 실행 지시부(122)는 작업 슬레이브 노드에 대해 작업 슬레이브 노드 자신에 관한 실행 자원 정보를 전달한다.
또한, 작업 실행 지시부(122)는 작업 실행 의뢰에 따른 작업 실행 지시를 어느 계산 노드에 내보냈는지를 나타내는 작업 배치 정보를 스토리지 디바이스(110)에 저장한다. 또, 작업 실행 지시부(122)는 작업 실행 지시를 계산 노드에 대해 출력한 경우, 작업 배치 정보와 실행 자원 정보를 작업 DB(130)에 저장한다.
또한, 작업 실행 지시부(122)는, 관리 노드(100)의 재기동이 행해지면, 기동 하고 있는 계산 노드의 리스트를 재구축한다. 구체적으로는, 작업 실행 지시부(122)는 네트워크(21)를 통해 노드 삽입 의뢰를 모든 계산 노드(200, 300, 400, 500, 600)로 송신한다(예를 들면, 브로드캐스트 송신을 행함). 작업 실행 지시부(122)는 삽입 의뢰에 대한 응답을 회신한 계산 노드를 기동되어 있는 것으로 인식한다. 그리고, 작업 실행 지시부(122)는 기동되어 있는 계산 노드의 리스트를 작성한다.
또한, 작업 실행 지시부(122)는 계산 노드(200,300,…)로부터의 요구를 접수하고 그 요구에 따른 처리를 한다. 또한, 계산 노드(200,300,…)에서 작업이 종료되면, 처리 결과를 수취한다. 수취한 처리 결과는 작업 실행 의뢰 접수부(121)를 통해, 대응하는 작업의 작업 실행 의뢰를 출력한 작업 투입 장치(30)에 송신된다. 그 때, 작업 실행 지시부(122)는 스토리지 디바이스(110) 내로부터 종료된 작업에 대응하는 작업 데이터를 삭제하고, 종료된 작업의 작업 정보를 작업 DB(130)로부터 삭제한다.
작업 DB 재구축부(123)는 작업 DB(130)의 내용이 손실된 경우에 작업 DB(130)의 재구축을 행한다. 구체적으로는, 작업 DB 재구축부(123)는, 관리 노드(100)가 재기동되었을 때에, 스토리지 디바이스(110)로부터 작업 투입 정보와 작업 배치 정보를 취득한다. 또한, 작업 DB 재구축부(123)는 기동되어 있는 계산 노드 중, 축차 작업을 실행하고 있는 계산 노드와, 병렬 작업에서의 작업 마스터 노드로부터 실행 자원 정보를 취득한다. 그리고, 작업 DB 재구축부(123)는 실행 자원 정보를 작업 DB(130)에 저장한다.
계산 노드(200)는 작업 제어부(211), 계산 노드 내 작업 DB(220)를 포함하고 있다. 작업 제어부(211)는 작업 실행 지시부(122)로부터의 작업 실행 지시에 따라 병렬 작업 실행 프로세스(212)를 기동시킨다. 구체적으로는, 작업 실행 지시에서, 작업을 실행하기 위한 프로그램이나 필요한 파라미터나 실행 자원 정보가 지정된다.
작업 제어부(211)는 지정된 프로그램의 실행을 OS에 지시한다. 그 때, 작업 제어부(211)는 실행 자원 정보에서 지정된 자원의 이용을 OS에 지시한다. 이것에 의해, 0S는 지정된 CPU 상에 프로세스를 생성하고, 그 프로세스에 작업용 프로그램을 실행시킨다. 지정된 프로그램이 병렬 작업용 프로그램이면, 기동된 프로세스가 병렬 작업 실행 프로세스(212)로서 기능한다. 또한, 지정된 프로그램이 축차 작업용 프로그램이면, 기동된 프로세스는 축차 작업으로서 기능하게 된다.
또한, 작업 제어부(211)는 작업 실행 지시로 지정된 실행 자원 정보를 계산 노드 내 작업 DB(220)에 저장한다. 또한, 계산 노드(200)가 작업 마스터 노드로서 기능하는 경우, 작업 슬레이브 노드의 실행 자원 정보도 함께 계산 노드 내 작업 DB(220)에 저장한다.
작업 처리가 종료된 경우, 작업 제어부(211)는 작업의 처리 결과를 작업 실행 지시부(122)에 전달한다. 그 때, 작업 제어부(211)는 종료된 작업의 실행 자원 정보를 계산 노드 내 작업 DB(220)로부터 삭제한다.
또한, 작업 제어부(211)는 관리 노드(100)로부터 노드 삽입 의뢰를 수취한 경우, 노드 정보를 응답한다. 노드 정보란, 클러스터 내에서 계산 노드(200)를 일 의(一意)적으로 식별하기 위한 식별 정보나, 실장하고 있는 자원(CPU 수나 메모리 용량)의 정보이다.
또한, 작업 제어부(211)는 관리 노드(100)로부터 실행 자원 수집 의뢰를 수취하면, 자신이 병렬 작업의 작업 마스터 노드로서 기능하고 있는지, 혹은 축차 작업을 실행하고 있는 지를 판단한다. 작업 마스터 노드로서 기능하고 있는 경우, 작업 제어부(211)는 계산 노드 내 작업 DB(220) 내 모든 실행 자원 정보를 관리 노드(100)에 송신한다. 또, 축차 작업을 실행하고 있는 경우, 작업 제어부(211)는 실행 중인 축차 작업의 실행 자원 정보를 관리 노드(100)에 송신한다.
계산 노드 내 작업 DB(220)는 계산 노드(200)에서 실행하고 있는 작업의 실행 자원 정보를 기억한다. 예를 들면, 계산 노드(200)의 메인 메모리(RAM) 내 일부의 기억 영역이 계산 노드 내 작업 DB(220)로서 사용된다.
계산 노드(300)도 계산 노드(200)와 마찬가지로, 작업 제어부(311), 계산 노드 내 작업 DB(320)를 포함하고 있고, 병렬 작업의 작업 실행 지시를 받은 경우, 병렬 작업 실행 프로세스(312)가 기동된다. 계산 노드(300) 내의 각 요소는 계산 노드(200)의 동명의 요소와 동일한 기능을 갖고 있다.
여기에서, 계산 노드(200)와 계산 노드(300)에 대해 하나의 작업 실행 의뢰에 기초하는 병렬 작업의 실행 지시가 내보내진 경우, 계산 노드(200)의 병렬 작업 실행 프로세스(212)와 계산 노드(300)의 병렬 작업 실행 프로세스(312)는, 상호 연휴하여 처리를 실행한다. 예를 들면, 병렬 작업 실행 프로세스(312)의 연산 결과가 병렬 작업 실행 프로세스(212)에 전달되고, 병렬 작업 실행 프로세스(212)는 수취 한 연산 결과를 이용하여 별도의 연산을 행한다.
또한, 도시하지 않는 계산 노드(400, 500, 600)도 계산 노드(200, 300)와 같은 기능을 갖고 있다.
다음으로, 작업 DB(130)의 내용에 관해서 상세히 설명한다.
도 5는 작업 DB의 데이터 구조예를 도시하는 도이다. 작업 DB(130)에는 투입된 작업마다의 작업 정보(130a, 130b, …)가 저장되어 있다. 작업 정보(130a)에는 작업 투입 정보(131), 작업 배치 정보(132), 실행 자원 정보(133)가 포함되어 있다.
작업 투입 정보(131)는 작업 실행 의뢰에서 나타내는 작업의 내용을 나타내는 정보이다. 예를 들면, 작업 투입 정보(131)에는 작업 투입 머신, 투입 유저, 투입 디렉토리, 투입 옵션, 작업 ID(Job ID) 등의 정보가 포함된다.
작업 투입 머신은 작업 실행 의뢰를 출력한 장치(도 4의 예에서는 작업 투입 장치; 30)를 일의적으로 식별하기 위한 식별 정보이다. 작업 투입 머신의 정보를 참조하여 작업의 처리 결과를 송신해야 할 장치를 판단할 수 있다. 투입 유저는 작업을 투입한 유저를 일의적으로 식별하기 위한 정보이다. 투입 디렉토리는 작업의 처리 결과의 저장 장소(디렉토리)를 나타내는 정보이다. 작업 ID는 투입된 작업을 일의적으로 식별하기 위한 식별 정보이다. 작업 ID는 작업 실행 의뢰가 입력되었을 때에 작업 실행 의뢰 접수부(121)에 의해 부여된다.
작업 배치 정보(132)는 계산 노드에 작업의 실행 지시가 내보내진 때에 작업 실행 지시부(122)에 의해 작성되는 정보이다. 작업 배치 정보(132)에는 작업 ID, 노드 ID(Node ID) 일람 등의 정보가 포함된다. 작업 ID는 작업의 식별 정보이고, 작업 투입 정보(131)와 동일한 작업 ID가 설정된다. 노드 ID 일람은 작업 실행 지시를 내보낸 계산 노드의 식별 정보이다. 병렬 작업이면, 복수의 노드 ID가 노드 ID 일람에 설정된다. 축차 작업이면, 하나의 노드 ID가 노드 ID 일람에 설정된다. 또, 병렬 작업의 경우, 노드 ID 일람 내의 하나의 노드 ID에, 작업 마스터인 것을 나타내는 플래그가 설정된다.
실행 자원 정보(133)는 계산 노드에 작업의 실행 지시가 내보내진 때에 작업 실행 지시부(122)에 의해 작성되는 정보이다. 실행 자원 정보(133)에는 작업 ID, 실행 가능 경과 시간 제한값, 실행 가능 CPU 시간 제한값 등에 더하여, 작업 실행 지시처의 노드마다의 노드별 실행 자원 정보(133a, 133b, 133c)가 포함되어 있다.
실행 자원 정보(133)의 작업 ID는 작업 투입 정보(131)의 작업 ID와 동일하다. 실행 가능 경과 시간 제한값은 작업의 실행에 걸리는 시간의 제한값이다. 작업 실행이 개시되고 나서 실행 가능 경과 시간 제한값으로 표시된 시간을 경과하여도 작업이 종료되지 않는 경우, 해당 작업은 작업 실행 지시부(122)에 의해 강제로 종료된다. 실행 가능 CPU 시간 제한값은 작업의 실행에 사용 가능한 CPU 점유 시간의 제한값이다. 실행을 지시한 작업에 의한 각 노드에서의 CPU의 점유 시간의 합계가 실행 가능 CPU 시간 제한값을 초과한 경우, 해당 작업은 작업 실행 지시부(122)에 의해 강제로 종료된다.
노드별 실행 자원 정보(133a, 133b, 133c)에는 노드 ID, 작업 ID, 사용 가능 CPU 수, 사용 가능 메모리량 등의 정보나, 각 노드 내의 CPU 마다의 CPU 정보가 포 함되어 있다.
노드 ID는 작업 실행 지시가 내보내진 계산 노드의 식별 정보이다. 노드별 실행 자원 정보(133a, 133b, 133c)의 작업 ID는 작업 투입 정보(131)의 작업 ID와 동일하다.
사용 가능 CPU 수는 노드 ID로 나타낸 계산 노드에서 사용 가능한 CPU 수이다. 또한, 도 5에는 도시하고 있지 않지만, 계산 노드가 탑재하고 있는 CPU 수, 사용하고 있는 CPU 수, 작업 실행을 위해 예약되어 있는 CPU 수 등의 정보가 노드별 실행 자원 정보(133a, 133b, 133c)에 포함된다.
사용 가능 메모리량은, 노드 ID로 나타낸 계산 노드에서 사용 가능한 메인 메모리(RAM)의 기억 용량이다. 또한, 도 5에는 도시하고 있지 않지만, 계산 노드가 탑재하고 있는 모든 메모리 용량, 사용량(작업의 실행에 사용되고 있는 기억 용량), 예약량(작업의 실행을 위해 예약되어 있는 기억 용량) 등의 정보가 노드별 실행 자원 정보(133a, 133b, 133c)에 포함된다.
CPU 정보에는 CPU ID 등의 정보가 포함된다. CPU ID는 계산 노드에 실장되어 있는 CPU의 식별 정보이다. 또한, 도 5에는 도시되어 있지 않지만, CPU가 사용되고 있는지, 사용되고 있지 않는지를 나타내는 플래그가 각 CPU 정보에 포함된다.
또한, 작업 DB(130) 내의 각 작업 정보(130a, 130b, …)는 대응하는 작업의 처리가 종료되면, 작업 실행 지시부(122)에 의해 삭제된다.
이와 같이, 작업 DB(130)에는 클러스터 시스템에서의 작업 관리에 필요한 정보가 저장되어 있다. 이 작업 DB(130)에 저장된 정보의 일부가 하드디스크 상에 설 치된 스토리지 디바이스(110)에 저장된다.
도 6은 스토리지 디바이스의 데이터 구조예를 도시하는 도이다. 스토리지 디바이스(110)에는 투입된 작업(작업 실행 의뢰에 의해 의뢰된 작업)마다의 작업 데이터(111, 112, …)가 저장되어 있다.
작업 데이터(111)에는 작업 투입 정보(111a)와 작업 배치 정보(111b)가 저장되어 있다. 작업 투입 정보(111a)의 내용은 작업 DB(130) 내의 작업 투입 정보(131)와 동일하다. 작업 배치 정보(111b)의 내용은 작업 DB(130) 내의 작업 배치 정보(132)와 동일하다.
즉, 작업 DB(130) 내에 새롭게 작업 투입 정보(131)가 등록되는 때에는, 동기하여 스토리지 디바이스(110) 내에 작업 투입 정보(111a)가 저장된다. 마찬가지로, 작업 DB(130) 내에 새롭게 작업 배치 정보(132)가 등록되는 때에는, 동기하여 스토리지 디바이스(110) 내에 작업 배치 정보(111b)가 저장된다.
다음으로, 계산 노드(200, 300, 400, 500, 600)에 설치된 계산 노드 내 작업 DB의 데이터 구조예를 도시하는 도이다. 계산 노드 내 작업 DB의 내용은 해당되는 계산 노드가 작업 마스터 노드인지, 작업 슬레이브 노드인지에 따라 상이하다. 따라서, 계산 노드(200)가 작업 마스터 노드로서 기능하고, 계산 노드(300)가 작업 슬레이브 노드로서 기능하고 있는 경우를 상정하여, 각각의 계산 노드(200, 300)의 계산 노드 내 작업 DB(220,320)의 데이터 구조를 설명한다.
도 7은 작업 마스터 노드의 계산 노드 내 작업 DB의 데이터 구조예를 도시하는 도이다. 작업 마스터 노드의 계산 노드 내 작업 DB(220)에는 작업 마스터 노드 에서 실행되고 있는 병렬 작업의 실행 자원 정보(221)가 저장되어 있다. 실행 자원 정보(221)에는 병렬 작업이 할당된 각 계산 노드의 노드별 실행 자원 정보(221a, 221b, 221c)가 포함되어 있다. 실행 자원 정보(221)의 내용은 관리 노드(100)의 작업 DB(130)에 저장된 실행 자원 정보(133)와 동일하다. 즉, 작업 DB(130) 내에 새롭게 실행 자원 정보(133)가 등록되는 때에는, 동기하여 계산 노드(200)의 계산 노드 내 작업 DB(220)에 실행 자원 정보(221)가 저장된다.
도 8은 작업 슬레이브 노드의 계산 노드 내 작업 DB의 데이터 구조예를 도시하는 도이다. 작업 슬레이브 노드의 계산 노드 내 작업 DB(320)에는, 작업 슬레이브 노드에서 실행되고 있는 병렬 작업의 노드별 실행 자원 정보(321)가 저장되어 있다. 실행 자원 정보(321)의 내용은 관리 노드(100)의 작업 DB(130)에 저장된 노드별 실행 자원 정보(133a, 133b, 133c) 내의 계산 노드(300)에 대응하는 노드별 실행 자원 정보와 동일하다. 즉, 작업 DB(130) 내에 계산 노드(300)의 노드별 실행 자원 정보가 등록되는 때에는, 동기하여 계산 노드(300)의 계산 노드 내 작업 DB(320)에 실행 자원 정보(321)가 저장된다.
이상과 같은 구성의 클러스터 시스템에서, 신뢰성이 높은 작업 관리가 행해진다. 이하, 작업 관리의 처리 내용을 상세히 설명한다.
도 9는 작업의 실행예를 도시하는 도이다. 도 9의 예로는, 클러스터 시스템에서, 2개의 병렬 작업(31, 32)이 실행되고 있다.
병렬 작업(31)은 3대의 계산 노드(200, 300, 400)에 할당되어 있다. 즉, 3대의 계산 노드(200, 300, 400) 각각의 병렬 작업 실행용 프로세스가 상호 연휴하여, 병렬 작업(31) 처리를 실행하고 있다. 병렬 작업(31)의 실행시, 계산 노드(200)가 작업 마스터 노드로서 기능하고 있고, 계산 노드(300, 400)가 작업 슬레이브 노드로서 기능하고 있다. 또한, 병렬 작업(31)의 작업 ID는「JobID#0」이다.
병렬 작업(32)은 2대의 계산 노드(500, 600)에 할당되어 있다. 즉, 2대의 계산 노드(500, 600) 각각의 병렬 작업 실행용 프로세스가 상호 연휴하여, 병렬 작업(32)의 처리를 실행하고 있다. 병렬 작업(32)의 실행시, 계산 노드(500)가 작업 마스터 노드로서 기능하고 있고, 계산 노드(600)가 작업 슬레이브 노드로서 기능하고 있다. 또한, 병렬 작업(32)의 작업 ID는「JobID#1」이다.
이 경우, 관리 노드(100)의 작업 DB(130)에는 병렬 작업(31)에 대응하는 작업 정보(130a)와, 병렬 작업(32)에 대응하는 작업 정보(130b)가 저장된다. 작업 정보(130a)는 작업 ID「JobID#0」이 설정됨으로써, 병렬 작업(31)과 관련되어 있다. 마찬가지로, 작업 정보(130b)는 작업 ID「JobID#1」이 설정됨으로써, 병렬 작업(32)과 관련되어 있다.
작업 정보(130a)에는 3대의 계산 노드(200, 300, 400) 각각에 대응하는 노드별 실행 자원 정보(133a, 133b, 133c)가 포함되어 있다. 또한, 작업 정보(130b)에는 2대의 계산 노드(500, 600) 각각에 대응하는 노드별 실행 자원 정보(133d, 133e)가 포함되어 있다.
병렬 작업(31)의 작업 마스터 노드인 계산 노드(200)의 계산 노드 내 작업 DB(220)에는 계산 노드(200) 자신의 노드별 실행 자원 정보(221a)에 더하여, 작업 슬레이브 노드인 계산 노드(300, 400)의 노드별 실행 자원 정보(221b, 221c)가 저 장되어 있다. 각 노드별 실행 자원 정보(221a, 221b, 221c)는 대응하는 계산 노드(200, 300, 400)의 노드 ID가 설정되어 있다. 그 노드 ID에 의해 어느 계산 노드에 대응하는 노드별 실행 자원 정보인지 일의적으로 식별된다.
병렬 작업(31)의 작업 슬레이브 노드인 계산 노드(300)의 계산 노드 내 작업 DB(320)에는 계산 노드(300) 자신의 노드별 실행 자원 정보(321)가 저장되어 있다. 마찬가지로, 병렬 작업(31)의 작업 슬레이브 노드인 계산 노드(400)의 계산 노드 내 작업 DB(420)에는 계산 노드(400) 자신의 노드별 실행 자원 정보(421)가 저장되어 있다.
병렬 작업(32)의 작업 마스터 노드인 계산 노드(500)의 계산 노드 내 작업 DB(520)에는, 계산 노드(500) 자신의 노드별 실행 자원 정보(521a)에 더하여, 작업 슬레이브 노드인 계산 노드(600)의 노드별 실행 자원 정보(521b)가 저장되어 있다. 각 노드별 실행 자원 정보(521a, 521b)에는 대응하는 계산 노드(500, 600)의 노드 ID가 설정되어 있다. 그 노드 ID에 의해 어느 계산 노드에 대응하는 노드별 실행 자원 정보인지가 일의적으로 식별된다.
병렬 작업(32)의 작업 슬레이브 노드인 계산 노드(600)의 계산 노드 내 작업 DB(620)에는 계산 노드(600) 자신의 노드별 실행 자원 정보(621)가 저장되어 있다.
이러한 상황 하에서 관리 노드(100)가 기능 정지된(다운된) 경우를 생각해 본다.
도 10은 관리 노드가 다운된 경우의 상태를 도시하는 도면이다. 관리 노드(100)가 다운되면, 관리 노드(100)의 작업 DB(130) 내에 저장되어 있던 작업 정 보(130a, 130b)는 손실된다. 다만, 이 경우에도 계산 노드(200, 300, 400, 500, 600)에서는 병렬 작업(31, 32)이 계속하여 실행된다.
계산 노드(200, 300, 400, 500, 600)로부터 관리 노드(100)로 출력해야할 요구가 발생한 경우, 그 요구는 관리 노드(100)가 복구될 때까지 일시 정지(펜딩)의 상태가 된다. 예를 들면, 작업이 종료된 것을 나타내는 종료 통지도, 관리 노드(100)가 복구될 때까지 펜딩 된다.
도 11은 관리 노드의 재기동 후의 상태를 도시하는 도면이다. 관리 노드(100)의 장해가 복구되어 재기동하면, 관리 노드(100)는 스토리지 디바이스(110)와 작업 마스터 노드로서 기능하는 계산 노드(200, 500)로부터 정보를 수집하여, 작업 DB(130)를 재구축한다.
구체적으로는, 2개의 병렬 작업(31, 32) 각각의 작업 투입 정보(111a, 112a)와 작업 배치 정보(111b, 112b)가 스토리지 디바이스(110)로부터 수집된다. 또한, 병렬 작업(31)을 실행하고 있는 각 계산 노드(200, 300, 400) 각각의 노드별 실행 자원 정보(221a, 221b, 221c)가 병렬 작업(31)의 작업 마스터 노드인 계산 노드(200)로부터 수집된다. 또한, 병렬 작업(32)을 실행하고 있는 각 계산 노드(500, 600) 각각의 노드별 실행 자원 정보(521a, 521b)가 병렬 작업(32)의 작업 마스터 노드인 계산 노드(500)로부터 수집된다.
관리 노드(100)에서는, 수집한 정보를 작업 ID에 기초하여 동일 작업에 관한 정보를 모아, 작업 정보(130a, 130b)를 재구축한다. 관리 노드(100)가 다운되고 나서 재기동 및 작업 정보(130a, 130b)를 행하기까지 각 병렬 작업(31, 32)은 계속하 여 실행된다.
다음으로, 제1 실시 형태에서의 처리 순서를 구체적으로 설명한다.
도 12는 병렬 작업을 실행하기까지의 처리 순서를 도시하는 시퀀스도이다. 이하, 도 12에 도시하는 처리를 단계 번호에 따라 설명한다. 또한, 이하의 설명에서는, 병렬 작업의 작업 실행 의뢰에 따라 2대의 계산 노드(200, 300)에 작업을 실행시키게 한다.
[단계 S11] 관리 노드(100)의 작업 실행 의뢰 접수부(121)는 작업 투입 장치(30)로부터의 작업 실행 의뢰를 접수한다. 작업 실행 의뢰 접수부(121)는 접수한 작업 실행 의뢰를 작업 실행 지시부(122)에 전달한다. 또한, 작업 실행 의뢰 접수부(121)는 작업 실행 의뢰에 따른 작업 정보(130a)를 작업 DB(130) 내에 생성한다. 그리고, 작업 실행 의뢰 접수부(121)는 작업 실행 의뢰에 기초하여 작업 투입 정보(131)를 작성하고, 작업 DB(130)의 작업 정보(130a)에 저장하고, 스토리지 디바이스(110)에 파일 형식으로 저장한다.
[단계 S12] 작업 실행 지시부(112)는 작업 실행 의뢰에 따른 작업 할당처가 되는 계산 노드를 결정한다. 구체적으로는, 작업의 실행에 필요한 수의 계산 노드가 빈 상태(작업을 실행하지 않는 상태)가 되는 것을 대기하고, 빈 계산 노드를 할당처로서 결정한다. 또한, 필요한 수의 계산 노드가 빈 상태가 될 때까지, 작업 실행 지시는 대기 상태가 된다(실행 대기큐에 큐잉된다).
이 때, 작업 실행 지시부(112)에 의해 실행 자원 정보(133)가 작성된다. 실행 자원 정보(133)에서는 작업을 실행하기 위해 사용하는 자원이 지정된다. 예를 들면, 사용해야 할 CPU의 CPU ID 등이다. 작업 실행 지시부(112)는 작성한 실행 자원 정보(133)를 작업 DB(130)에 저장한다.
[단계 S13] 작업 실행 지시부(112)는 작업 실행 의뢰에 따라 결정된 작업의 할당처의 계산 노드에 작업 실행 의뢰를 송신한다. 이 때, 작업 실행 지시부(112)는 계산 노드(200)를 작업 마스터 노드로서 선택한다.
그리고, 작업 실행 지시부(112)는, 계산 노드(200)에 대해 작업 실행 의뢰에서 작업 마스터인 것을 지정하고, 계산 노드(200, 300) 각각의 노드별 실행 자원 정보를 포함하는 실행 자원 정보(133)를 송신한다. 또한, 작업 실행 지시부(112)는, 계산 노드(300)에 대해 작업 실행 의뢰에서 작업 슬레이브인 것을 지정하고, 계산 노드(300)의 노드별 실행 자원 정보를 송신한다.
이 때, 작업 실행 지시부(112)는 작업 배치 정보(132)를 생성하고, 작업 배치 정보(132)를 작업 DB(130)에 저장하고, 스토리지 디바이스(110)에 파일 형식으로 저장한다. 이 작업 배치 정보(132)에는 계산 노드(200, 300)에서 작업이 실행되고 있는 것 및 계산 노드(200)가 작업 마스터 노드인 것이 나타나 있다.
[단계 S14] 작업 실행 의뢰를 수취한 계산 노드(200)에서는, 작업 제어부(211)가 작업 실행 의뢰를 수신한다. 그리고, 작업 제어부(211)는 작업 실행 의뢰와 함께 전송된 실행 자원 정보를 계산 노드 내 작업 DB(220)에 저장한다.
[단계 S15] 작업 실행 의뢰를 수취한 계산 노드(300)에서는, 작업 제어부(311)가 작업 실행 의뢰를 수신한다. 그리고, 작업 제어부(311)는 작업 실행 의뢰와 함께 전송된 노드별 실행 자원 정보를 계산 노드 내 작업 DB(320)에 저장한 다.
[단계 S16] 계산 노드(200)의 작업 제어부(211)는 작업 실행 의뢰에 따른 병렬 작업 실행 프로세스(212)를 기동하고, 작업을 실행시킨다.
[단계 S17] 계산 노드(300)의 작업 제어부(311)는 작업 실행 의뢰에 따른 병렬 작업 실행 프로세스(312)를 기동하고, 작업을 실행시킨다. 이 후, 계산 노드(200)의 병렬 작업 실행 프로세스(212)와 계산 노드(300)의 병렬 작업 실행 프로세스(312)가 연휴하여, 처리를 실행한다.
이렇게 하여 병렬 작업을 실행하고 있을 때에, 관리 노드(100)가 다운되면, 관리 노드의 복구처리가 행해진다.
도 13은 관리 노드의 복구 처리 순서를 도시하는 시퀀스도이다. 이하, 도 13에 도시하는 처리를 단계 번호에 따라 설명한다. 이 예는 2대의 계산 노드(200, 300)에서 병렬 작업을 실행하는 중에, 관리 노드(100)가 다운됐을 때의 복구 처리를 도시하고 있다.
[단계 S21] 관리 노드(100)가 다운된 후에도 계산 노드(200)의 병렬 작업 실행 프로세스(212)는 처리를 계속한다.
[단계 S22] 마찬가지로, 계산 노드(300)의 병렬 작업 실행 프로세스(312)는 처리를 계속한다.
[단계 S23] 계산 노드(200)의 병렬 작업 실행 프로세스(212)에서 관리 노드(100)로의 요구가 발생하면, 병렬 작업 실행 프로세스(212)는 에러 처리로는 하지 않고 그 요구를 대기 상태로 한다. 대기하는 동안, 계산 노드(200)에서는, 처리 개시로부터의 경과 시간이나 CPU 사용 시간의 카운터를 정지시킨다. 클러스터 시스템에 의한 계산 서비스를 제공하고 있는 경우, 경과 시간이나 CPU 사용 시간에 따라 청구 금액이 상이할 경우가 있다. 시스템 장해에 의해 요구를 대기하고 있는 동안, 그러한 계측 시간의 카운터와 정지에 의해 공정한 요금 환산을 행할 수 있다.
[단계 S24] 계산 노드(300)의 병렬 작업 실행 프로세스(312)에서 관리 노드(100)로의 요구가 발생하면, 병렬 작업 실행 프로세스(312)는 에러 처리로는 하지 않고 그 요구를 대기 상태로 한다. 대기하는 동안, 계산 노드(200)에서는, 처리 개시로부터의 경과 시간이나 CPU 사용 시간의 카운터를 정지시킨다.
또한, 병렬 작업 실행 프로세스(212, 312)의 실행 도중에서 관리 노드(100)로의 요구가 불필요한 경우, 처리가 마지막까지 실행되고, 작업 마스터 노드의 병렬 작업 실행 프로세스(212)로부터 관리 노드(100)로의 결과 통지 처리가 대기 상태가 된다. 작업의 처리 결과에는, 연산 결과에 더하여, 소요 시간이나 CPU 사용 시간이 포함된다.
[단계 S25] 관리 노드(100)의 장해의 원인이 제거되면, 관리 노드(100)가 기동된다.
[단계 S26] 기동된 관리 노드(100)에서는, 작업 실행 지시부(122)가 계산 노드(200, 300)에 대해 노드 삽입 의뢰를 송신한다. 노드 삽입 의뢰는 클러스터를 구성하는 계산 노드로서 기능하는 것을 요구하는 메시지이다.
[단계 S27] 계산 노드(200)의 작업 제어부(211)는 관리 노드(100)로부터의 노드 삽입 의뢰를 수신한다.
[단계 S28] 계산 노드(300)의 작업 제어부(311)는 관리 노드(100)로부터의 노드 삽입 의뢰를 수신한다.
[단계 S29] 계산 노드(200)의 작업 제어부(211)는 관리 노드(100)에 대해 노드 정보를 통지한다. 이 노드 정보에는 계산 노드(200)의 노드 ID나, 계산 노드(200)가 갖는 자원 정보(하드웨어 자원과 소프트웨어 자원)가 포함된다.
[단계 S30] 계산 노드(300)의 작업 제어부(311)는 관리 노드(100)에 대해 노드 정보를 통지한다. 이 노드 정보에는 계산 노드(300)의 노드 ID나, 계산 노드(300)가 갖는 자원 정보(하드웨어 자원과 소프트웨어 자원)가 포함된다.
[단계 S31] 작업 실행 지시부(122)는 노드 정보를 수신한다.
[단계 S32] 작업 실행 지시부(122)는 기동 중인 계산 노드 정보를 구축한다. 구체적으로는, 작업 실행 지시부(122)는 기동되어 있는 계산 노드의 리스트를 작성하고, 그 계산 노드의 노드 ID에 대응시켜 자원 정보를 관리한다.
[단계 S33] 작업 DB 재구축부(123)는 실행 자원 정보 수집 의뢰를 계산 노드(200, 300)에 송신한다.
[단계 S34] 계산 노드(200)의 작업 제어부(211)는 실행 자원 정보 수집 의뢰를 수신한다.
[단계 S35] 계산 노드(300)의 작업 제어부(311)는 실행 자원 정보 수집 의뢰를 수신한다.
[단계 S36] 계산 노드(200)의 작업 제어부(211)는 실행 자원 정보를 관리 노드(100)에 통지한다. 구체적으로는, 작업 제어부(211)는 계산 노드 내 작업 DB(220)로부터 실행 자원 정보(221)를 취득한다. 이 실행 자원 정보(221)에는 계산 노드(200) 자신의 노드별 실행 자원 정보에 더하여, 병렬 작업의 작업 슬레이브 노드가 되는 계산 노드(300)의 노드별 실행 자원 정보도 포함되어 있다. 그리고, 작업 제어부(211)에 의해 실행 자원 정보(221)가 관리 노드(100)에 송신된다.
이 때, 계산 노드(300)는 자신이 작업 슬레이브 노드이므로, 실행 자원 정보의 송신은 행하지 않는다. 즉, 관리 노드(100)로부터 전송된 실행 자원 수집 의뢰는 계산 노드(300)의 작업 제어부(311)에서 무시된다. 이것에 의해, 실행 자원 정보의 수집을 위해 불필요한 데이터 전송이 발생하지 않게 된다.
[단계 S37] 관리 노드(100)의 작업 DB 재구축부(123)는 작업 마스터 노드로서 기능하는 계산 노드(200)로부터 전송된 실행 자원 정보를 수신한다.
[단계 S38] 작업 DB 재구축부(123)는 작업 DB(130)를 재구축한다. 즉, 스토리지 디바이스(110)로부터 작업 투입 정보(131)와 작업 배치 정보(132)를 취득하여, 작업마다의 작업 정보(130a)를 작성한다. 그리고, 작업 DB 재구축부(123)는 작성한 작업 정보(130a)에 대해 계산 노드(200)로부터 취득한 실행 자원 정보(133)를 등록한다.
[단계 S39] 작업 DB 재구축부(123)는 작업의 계속이 가능한지의 여부를 판단한다. 구체적으로는, 작업 DB 재구축부(123)는 작업 투입 정보(131)에 기초하여, 어떠한 작업 실행 의뢰를 접수하고 있는 것인지 인식한다. 또한, 작업 DB 재구축부(123)는 작업 배치 정보(132)에 기초하여, 작업이 어느 계산 노드에 할당된 것인지 인식한다. 그리고, 작업 배치 정보(132)는 단계 S32에서 구축된 노드 정보에 기 초하여, 할당처의 계산 노드가 전부 동작하고 있는 것 및 작업 마스터 노드로부터 할당처의 계산 노드에 관한 실행 자원 정보가 전송된 것을 확인한다. 이들의 확인이 정확하게 행해지면, 작업 배치 정보(132)는 작업이 계속 가능하다고 판단한다.
[단계 S40] 작업이 계속 가능하다고 판단한 경우, 작업 배치 정보(132)는 작업 운용 재개를, 병렬 작업을 실행하고 있는 각 계산 노드(200, 300)에 통지한다.
[단계 S41] 계산 노드(200)의 작업 제어부(211)는 작업 운용 재개의 통지를 받아, 관리 노드(100)와의 통신을 재개한다. 즉, 대기 상태의 요구가 있는 경우, 그 요구가 관리 노드(100)에 전송된다. 또한, 작업이 종료되어 있는 경우, 처리 결과가 관리 노드(100)에 전송된다.
[단계 S42] 계산 노드(300)의 작업 제어부(311)는 작업 운용 재개의 통지를 받아, 관리 노드(100)와의 통신을 재개한다.
이렇게 하여, 관리 노드(100)가 다운된 경우에도, 계산 노드(200, 300)에 대해 병렬 작업을 그대로 계속하여 실행시킬 수 있다. 또한, 관리 노드(100)로의 요구가 발생한 경우에는 대기가 되지만, 관리 노드(100)를 재기동시킨 후에 그 상태부터 처리를 속행할 수 있다. 그 결과, 병렬 작업을 처음부터 다시 실행할 필요가 없어져, 처리의 효율화가 도모된다.
다음으로, 관리 노드(100)와 일부의 계산 노드가 동시에 다운된 경우의 처리에 관해 설명한다.
도 14는 관리 노드와 작업 마스터 노드가 동시에 다운된 상태를 도시하는 도면이다. 이와 같이, 관리 노드(100)와 작업 마스터 노드로서 기능하는 계산 노 드(200)가 동시에 다운되면, 병렬 작업(31)의 일부 처리가 실행할 수 없게 되어, 병렬 작업(31)을 계속하여 실행할 수 없다.
도 15는 관리 노드와 작업 마스터 노드의 재기동 후의 상태를 도시하는 도면이다. 관리 노드(100)와 작업 마스터로서 기능하는 계산 노드(200)의 장해를 복구하고, 재기동한 직후에는, 관리 노드(100)의 작업 DB(130)와 계산 노드(200)의 계산 노드 내 작업 DB(220)는 빈 상태이다.
관리 노드(100)에서는 스토리지 디바이스(110)와, 다른 계산 노드(200, 300, 400)로부터 정보를 수집한다. 그러면, 스토리지 디바이스(110)로부터 작업 투입 정보(111a)와 작업 배치 정보(111b)를 취득하고, 작업 정보(130a) 내에 작업 투입 정보(131)와 작업 배치 정보(132)를 재구축할 수 있다. 그러나, 작업 마스터 노드로서 기능하는 계산 노드(200)의 계산 노드 내 작업 DB(220) 내의 데이터가 손실되어 있으므로, 병렬 작업(31)에 관한 실행 자원 정보는 취득할 수 없다. 따라서, 관리 노드(100)는 실행 중인 병렬 작업(31)을 제거(병렬 작업을 강제로 정지시키는 것)한다.
도 16은 제거 의뢰 상황을 도시하는 도면이다. 관리 노드(100)에서는 작업 배치 정보(132)와, 취득한 실행 자원 정보를 비교함으로써, 투입되어 있는 병렬 작업(31)을 실행 계속하는 것이 불가능하다는 것을 인식한다. 그래서, 작업 슬레이브 노드로서 기능하고 있는 계산 노드(300, 400)에 대해 병렬 작업(31)의 제거 의뢰를 송신한다. 계산 노드(300, 400)에서는 제거 의뢰에 따라 병렬 작업(31)을 제거한다.
도 17은 제거 후의 상태를 도시한 도면이다. 병렬 작업(31)이 제거됨으로써, 계산 노드(300, 400)에서 실행되고 있던 병렬 작업(31)의 프로세스가 정지한다. 또한, 계산 노드(300, 400)의 계산 노드 내 작업 DB(320, 420)의 내용도 삭제된다. 그 후, 관리 노드(100)로부터 작업 재실행 의뢰가 내보내진다.
도 18은 작업 재실행 의뢰의 상황을 도시하는 도면이다. 관리 노드(100)에서는 작업 투입 정보(131)와 작업 배치 정보(132)에 기초하여, 투입하여야 할 작업의 내용과, 할당처인 계산 노드(200, 300, 400)를 인식한다. 그리고, 관리 노드(100)는 작업 DB(130) 내의 작업 정보(130a)를 재구축하고, 계산 노드(200, 300, 400)에 대해 작업 재실행 의뢰가 송신된다. 이 작업 재실행 의뢰에는 노드별 실행 자원 정보가 포함된다. 작업 마스터 노드로서 기능하는 계산 노드(200)에는 모든 실효 자원 정보가 송신된다. 작업 슬레이브 노드로서 기능하는 계산 노드(300, 400)에는 각각 계산 노드(300, 400) 자신의 노드별 실효 자원 정보(321, 421)가 송신된다.
각 계산 노드(200, 300, 400)에서는 수취한 실효 자원 정보에 기초하여 각각의 작업 DB(220, 320, 420)를 재구축하여, 병렬 작업(31)의 실행을 개시한다.
이상과 같이 하여, 관리 노드(100)와 작업 마스터 노드로서 기능하는 계산 노드(200)가 동시에 다운되어도, 클러스터 시스템 내의 처리로 작업의 재실행이 가능하다. 즉, 작업 투입 장치(30)로부터 의뢰된 작업을 손실하지 않고 재실행하는 것이 가능하다. 다만, 병렬 작업(31)의 처리는 처음부터 다시 하게 된다.
도 19는 관리 노드와 작업 슬레이브 노드가 동시에 다운된 상태를 도시하는 도면이다. 이와 같이, 관리 노드(100)와 작업 슬레이브 노드로서 기능하는 계산 노 드(400)가 동시에 다운되면, 병렬 작업(31)의 일부 처리가 실행할 수 없게 되어, 병렬 작업(31)을 계속하여 실행할 수 없다.
도 20은 관리 노드와 작업 슬레이브 노드의 재기동 후의 상태를 도시하는 도면이다. 관리 노드(100)와 작업 슬레이브 노드로서 기능하는 계산 노드(400)의 장해를 복구하고, 재기동한 직후에는 관리 노드(100)의 작업 DB(130)와 계산 노드(400)의 계산 노드 내 작업 DB(420)는 빈 상태이다.
관리 노드(100)에서는 스토리지 디바이스(110)와, 다른 계산 노드(200, 300, 400)로부터 정보를 수집한다. 그러면, 스토리지 디바이스(110)로부터 작업 투입 정보 (111a)와 작업 배치 정보(111b)를 취득할 수 있고, 작업 마스터 노드로서 기능하는 계산 노드(200)로부터 실효 자원 정보를 취득할 수 있다. 그 결과, 작업 DB(130) 내의 작업 정보(130a)가 재구축된다. 그러나, 작업 슬레이브 노드로서 기능하는 계산 노드(400)가 재기동되고, 거기까지의 처리 내용이 손실되어 있으므로, 병렬 작업(31)을 실행할 수 없다. 그래서, 관리 노드(100)는 실행 중인 병렬 작업(31)을 제거(병렬 작업을 강제로 정지시키는 것)한다.
도 21은 제거 의뢰의 상황을 도시하는 도면이다. 관리 노드(100)에서는 작업 배치 정보(132)에서 나타낸 작업 할당처의 각 계산 노드(200, 300, 400)의 상태를 확인한다. 이 때, 재기동된 직후의 계산 노드(400)는 비액티브 상태를 나타낸다. 이것에 의해 관리 노드(100)는 이미 실행을 의뢰하고 있는 병렬 작업(31)의 속행이 불가능한 것을 인식한다. 따라서, 관리 노드(100)는 계산 노드(200, 300)에 대해 병렬 작업(31)의 제거 의뢰를 송신한다. 계산 노드(200, 300)에서는 제거 의뢰에 따라 병렬 작업(31)을 제거한다.
도 22는 제거 후의 상태를 도시하는 도면이다. 병렬 작업(31)이 제거됨으로써, 계산 노드(200, 300)에서 실행되고 있던 병렬 작업(31)의 프로세스가 정지한다. 또한, 계산 노드(200, 300)의 계산 노드 내 작업 DB(220, 320) 내용도 삭제된다. 그 후, 관리 노드(100)로부터 작업 재실행 의뢰가 내보내진다. 재실행 의뢰 상황은 도 18에 도시한 바와 같다.
이와 같이, 관리 노드(100)와 작업 슬레이브 노드로서 기능하는 계산 노드(400)가 동시에 다운된 경우에도, 클러스터 시스템 내의 처리에 의해 작업의 재실행이 가능하다.
도 23은 모든 노드가 동시에 다운된 상황을 도시하는 도면이다. 이와 같이, 모든 노드가 한번에 다운되면, 병렬 작업(31)이 손실되고, 실효 자원 정보도 소실된다.
도 24는 관리 노드와 작업 마스터 노드의 재기동 후의 상태를 도시하는 도면이다. 관리 노드(100)와 작업 슬레이브 노드로서 기능하는 계산 노드(300)의 장해를 복구하고, 재기동한 직후에는, 관리 노드(100)의 작업 DB(130)와 계산 노드(200, 300, 400)의 계산 노드 내 작업 DB(220, 320, 420)는 빈 상태이다.
관리 노드(100)에서는 스토리지 디바이스(110)와 다른 계산 노드(200, 300, 400)로부터 정보를 수집한다. 그러면, 스토리지 디바이스(110)로부터 작업 투입 정보(111a)와 작업 배치 정보(111b)를 취득하고, 작업 정보(130a) 내에 작업 투입 정보(131)와 작업 배치 정보(132)를 재구축할 수 있다. 그러나, 작업 마스터 노드로 서 기능하는 계산 노드(200)의 계산 노드 내 작업 DB(220) 내의 데이터가 손실되어 있으므로, 병렬 작업(31)에 관한 실행 자원 정보는 취득할 수 없다.
따라서, 관리 노드(100)에서는, 작업 배치 정보(132)에서 나타낸 작업 할당처의 각 계산 노드(200, 300, 400)의 상태를 확인한다. 이 때, 재기동된 직후의 계산 노드(200, 300, 400)는 비액티브 상태를 나타낸다. 이것에 의해 관리 노드(100)는 이미 실행을 의뢰하고 있는 병렬 작업(31)이 이미 존재하지 않는다는 것을 인식한다.
병렬 작업(31)이 존재하지 않으므로 제거할 필요가 없다. 따라서, 관리 노드(100)로부터 작업 재실행 의뢰가 내보내진다. 재실행 의뢰 상황은, 도 18에 도시한바와 같다.
도 25는 관리 노드와 계산 노드가 동시에 다운된 경우의 복구 처리 순서를 도시하는 시퀀스도이다. 이하, 도 25에 도시하는 처리를 단계 번호에 따라 설명한다. 이 예는 2대의 계산 노드(200, 300)에서 병렬 작업을 실행하는 중에, 관리 노드(100)와 계산 노드(200)가 다운됐을 때의 복구 처리를 나타내고 있다.
[단계 S51] 관리 노드(100)가 다운된 후에도, 계산 노드(300)의 병렬 작업 실행 프로세스(312)는 처리를 계속한다.
[단계 S52] 계산 노드(300)의 병렬 작업 실행 프로세스(312)에서 관리 노드(100)로의 요구가 발생하면, 병렬 작업 실행 프로세스(312)는 에러 처리로는 하지 않고 그 요구를 대기 상태로 한다.
[단계 S53] 관리 노드(100)의 장해의 원인이 제거되면, 관리 노드(100)가 기 동된다.
[단계 S54] 계산 노드(200)의 장해의 원인이 제거되면, 계산 노드(200)가 기동된다.
[단계 S55] 기동된 관리 노드(100)에서는 작업 실행 지시부(122)가 계산 노드(200, 300)에 대해 노드 삽입 의뢰를 송신한다. 노드 삽입 의뢰는 클러스터를 구성하는 계산 노드로서 기능할 것을 요구하는 메시지이다.
[단계 S56] 계산 노드(200)의 작업 제어부(211)는 관리 노드(100)로부터의 노드 삽입 의뢰를 수신한다.
[단계 S57] 계산 노드(300)의 작업 제어부(311)는 관리 노드(100)로부터의 노드 삽입 의뢰를 수신한다.
[단계 S58] 계산 노드(200)의 작업 제어부(211)는 관리 노드(100)에 대해 노드 정보를 통지한다. 이 노드 정보에는 계산 노드(200)의 노드 ID나, 계산 노드(200)가 갖는 자원 정보(하드웨어 자원과 소프트웨어 자원)가 포함된다. 또한, 계산 노드(200)는 재기동 직후이고, 클러스터 시스템에 참가하지 않으므로, 작업 제어부(211)는 비액티브인 것을 나타내는 정보를 노드 정보에 포함시킨다.
[단계 S59] 계산 노드(300)의 작업 제어부(311)는 관리 노드(100)에 대해 노드 정보를 통지한다. 이 노드 정보에는 계산 노드(300)의 노드 ID나, 계산 노드(300)가 갖는 자원 정보(하드웨어 자원과 소프트웨어 자원)가 포함된다.
[단계 S60] 작업 실행 지시부(122)는 노드 정보를 수신한다.
[단계 S61] 작업 실행 지시부(122)는 기동 중인 계산 노드 정보를 구축한다. 구체적으로는, 작업 실행 지시부(122)는 기동되어 있는 계산 노드의 리스트를 작성하고, 그 계산 노드의 노드 ID에 대응시켜 자원 정보를 관리한다.
[단계 S62] 작업 DB 재구축부(123)는 실행 자원 정보 수집 의뢰를 계산 노드(200, 300)에 송신한다.
[단계 S63] 계산 노드(200)의 작업 제어부(211)는 실행 자원 정보 수집 의뢰를 수신한다.
[단계 S64] 계산 노드(300)의 작업 제어부(311)는 실행 자원 정보 수집 의뢰를 수신한다.
[단계 S65] 계산 노드(200)의 작업 제어부(211)는 실행 자원 정보를 관리 노드(100)에 통지한다. 구체적으로는, 작업 제어부(211)는 계산 노드 내 작업 DB(220)로부터 실행 자원 정보의 취득을 시도한다. 그러나, 계산 노드 내 작업 DB(220) 내는 비어 있으므로, 작업 제어부(211)는 내용이 빈 정보를 실행 자원 정보로서 관리 노드(100)에 송신한다.
[단계 S66] 관리 노드(100)의 작업 DB 재구축부(123)는 작업 마스터 노드로서 기능하는 계산 노드(200)로부터 전송된 실행 자원 정보(빈 정보)를 수신한다.
[단계 S67] 작업 DB 재구축부(123)는 작업 DB(130)를 재구축한다. 즉, 스토리지 디바이스(110)로부터 작업 투입 정보(131)와 작업 배치 정보(132)를 취득하여, 작업마다의 작업 정보(130a)를 작성한다. 또한, 계산 노드(200)로부터는 빈 실행 자원 정보만 취득할 수 있으므로, 실효 자원 정보에 대해서는 재구축할 수 없다.
[단계 S68] 작업 DB 재구축부(123)는 작업의 계속이 가능한지의 여부를 판단한다. 이 예에서는, 계산 노드(200)가 비액티브인 것이 판단되고, 또한 실효 자원 정보가 재구축되어 있지 않으므로, 작업의 계속은 불가능하다고 판단된다.
[단계 S69] 작업의 계속이 불가능하다고 판단한 경우, 작업 DB 재구축부(123)는 계산 노드(300)에 대해 작업 ID를 지정하여 작업 제거를 지시한다. 이 때, 작업 ID는 작업 투입 정보(131)를 참조하여 판단된다. 또, 계산 노드(200)는 비액티브인 것을 알고 있는 계산 노드(200)에 대한 작업 제거 지시는 하지 않는다.
[단계 S70] 계산 노드(300)의 작업 제어부(311)는 작업 제거 지시에 따른 병렬 작업 실행 프로세스(312)를 정지한다. 또한, 작업 제어부(311)는 계산 노드 내 작업 DB(320)에 저장되어 있던 노드별 실행 자원 정보를 삭제한다.
[단계 S71] 관리 노드(100)의 작업 실행 지시부(122)는 작업 투입 정보(131)와 계산 노드(200, 300)로부터 취득한 노드 정보에 기초하여 실행 자원 정보(133)를 작성한다. 그리고, 작업 실행 지시부(122)는 작업 배치 정보(132)를 참조하여 작업의 할당처를 인식하고, 계산 노드(200, 300)에 대해 작업 실행 의뢰를 송신한다.
[단계 S72] 작업 실행 의뢰를 수취한 계산 노드(200)에서는 작업 제어부(211)가 작업 실행 의뢰를 수신한다. 그리고, 작업 제어부(211)는 작업 실행 의뢰와 함께 전송된 실행 자원 정보를 계산 노드 내 작업 DB(220)에 저장한다.
[단계 S73] 작업 실행 의뢰를 수취한 계산 노드(300)에서는 작업 제어부(311)가 작업 실행 의뢰를 수신한다. 그리고, 작업 제어부(311)는 작업 실행 의 뢰와 함께 전송된 노드별 실행 자원 정보를 계산 노드 내 작업 DB(320)에 저장한다.
[단계 S74] 계산 노드(200)의 작업 제어부(211)는 작업 실행 의뢰에 따른 병렬 작업 실행 프로세스(212)를 기동하고, 작업을 실행시킨다.
[단계 S75] 계산 노드(300)의 작업 제어부(311)는 작업 실행 의뢰에 따른 병렬 작업 실행 프로세스(312)를 기동하고, 작업을 실행시킨다. 이후, 계산 노드(200)의 병렬 작업 실행 프로세스(212)와 계산 노드(300)의 병렬 작업 실행 프로세스(312)가 연휴하여, 처리를 실행한다.
이상과 같이하여, 관리 노드(100)가 다운되어도 병렬 작업을 계속하여 실행시키는 것이 가능해진다. 그 결과, 관리 노드(100)가 다운됨에 따른 처리 지연을 최소한으로 억제할 수 있다.
또한, 관리 노드(100)와 계산 노드가 동시에 다운된 경우라도, 병렬 작업을 자동적으로 재실행시킬 수 있다. 즉, 계산 노드의 장해에 의해 병렬 작업이 중지되어도 작업 투입 장치(30)로부터 다시 작업 실행 의뢰를 입력할 필요가 없다. 그 결과, 시스템의 관리자의 부하를 경감할 수 있다.
[제2 실시 형태]
다음으로, 제2 실시 형태에 관해 설명한다. 제2 실시 형태는 복수의 관리 노드를 포함하는 클러스터 시스템에 있어서, 효율적인 장해 복구를 가능하게 한 것이다. 즉, 제1 실시 형태에서는 관리 노드가 1대 밖에 없기 때문에, 관리 노드를 재기동하고 나서 작업 DB의 재구축을 행하였다. 따라서, 관리 노드의 장해를 제거하 여 재기동하기까지의 시간, 계산 노드로부터의 요구의 대기가 발생하였다.
따라서, 제2 실시 형태에서는, 운용계의 관리 노드 외에 대기계의 관리 노드를 준비한다. 그리고, 운용계의 관리 노드가 다운된 경우, 신속히 대기계의 관리 노드가 운용계로 전환하여 작업 DB를 재구축한다. 그 결과, 계산 노드로부터의 요구의 대기 발생을 최소한으로 억제할 수 있다.
도 26은 제2 실시 형태에 따른 클러스터 시스템의 시스템 구성도이다. 제2 실시 형태는 제1 실시 형태에 관리 노드(700)를 추가한 것이다. 따라서, 관리 노드(700) 이외의 요소에는 제1 실시 형태와 동일한 부호를 붙이고, 설명을 생략한다.
관리 노드(700)는 네트워크(21)를 통해 다른 관리 노드(100)나 계산 노드(300, 400)에 접속되어 있다. 관리 노드(700)는 관리 노드(100)와 같은 기능을 갖추고 있다. 다만, 관리 노드(100)가 정상적으로 운용되고 있는 동안은, 관리 노드(700)는 작업 관리에 관한 처리를 하지 않는다. 따라서, 관리 노드(700) 내의 작업 DB(730)는 빈 상태이다.
장해가 발생하기 이전은 관리 노드(100)가 운용계로서 작업을 관리하고 있다. 이 때문에, 계산 노드(200, 300)에 투입되어 있는 병렬 작업(33)에 관한 작업 정보(130b)가 작업 DB(130)에 저장되어 있다. 작업 정보(130b) 내에는 병렬 작업(33)에 대응하는 작업 투입 정보(131a)와 작업 배치 정보(132a)가 저장되어 있다. 또한, 작업 정보(130b)에는 병렬 작업(33)을 실행하고 있는 각 계산 노드(200, 300)의 노드별 실행 자원 정보(133d, 133e)가 저장되어 있다.
또한, 스토리지 디바이스(110)는 2대의 관리 노드(100, 700)가 각각 접속되어 있다. 그리고, 작업 데이터 기억부(110) 내에는 병렬 작업(33)에 대응하는 작업 데이터(113)가 저장되어 있다. 작업 데이터(113)에는 작업 투입 정보(113a)와 작업 배치 정보(113b)가 포함된다.
이러한 시스템에서, 관리 노드(700)는 운용계의 관리 노드(100)가 정상적으로 동작하고 있는지 감시하고 있다. 그리고, 운용계의 관리 노드(100)가 다운되면, 대기계의 관리 노드(700)가 작업 관리 기능을 계속한다.
도 27은 운용계의 관리 노드가 다운된 상태를 도시하는 도면이다. 운용계의 관리 노드(100)가 다운되면, 계산 노드(200, 300)에서의 병렬 작업(33)의 처리는 속행되지만, 관리 노드(100)로의 요구가 발생하면, 그 요구의 대기 상태가 된다.
대기계의 관리 노드(700)는 운용계의 관리 노드(100)가 정상적으로 동작하고 있는 것을 소정의 타이밍으로 감시하고 있다. 예를 들면, 관리 노드(700)는 정기적으로 운용계의 관리 노드(100)에 대해 동작 확인 요구를 송신한다. 관리 노드(700)는 관리 노드(100)로부터 동작 확인 응답이 회신되면, 정상적으로 동작하고 있다고 판단한다. 그리고, 관리 노드(700)는 운용계의 관리 노드(100)가 다운된 것을 검출하면, 작업의 관리 기능을 계속한다.
도 28은 운용계의 전환 상황을 도시하는 도면이다. 운용계의 관리 노드(100)가 다운된 것을 검출한 관리 노드(700)는 스토리지 디바이스(110)와 작업 마스터 노드인 계산 노드(200)로부터 정보를 수집한다. 구체적으로는, 스토리지 디바이스(110)로부터 작업 투입 정보(113a)와 작업 배치 정보(113b)를 수집하고, 계산 노 드(200)로부터 실효 자원 정보(노드별 사항 자원 정보(221d, 221e)를 포함함)를 수집한다. 그리고, 관리 노드(700)는 수집한 정보에 기초하여 작업 DB(730) 내에 작업 정보(730a)를 구축한다. 작업 정보(730a)에는 작업 투입 정보(731), 작업 배치 정보(732), 계산 노드(200)에 대응하는 노드별 실효 자원 정보(733a) 및 계산 노드(300)에 대응하는 노드별 실행 자원 정보(733b)가 포함된다.
작업 DB(730) 내에 작업 정보(730a)를 구축한 관리 노드(700)는 운용계로서 작업을 관리한다. 즉, 운용계가 된 관리 노드(700)에서는 도 13 및 도 25에 도시한 재기동 후에 행해지는 관리 노드(100)의 처리와 마찬가지의 처리를 실행한다. 이것에 의해 계산 노드(200, 300)는 관리 노드(700)가 운용계가 된 것을 인식하고, 관리 노드(700)에 대해 각종 요구나 처리 결과를 송신하게 된다. 구체적으로는, 도 13의 단계 S26에 도시하는 노드 삽입 의뢰에 의해 관리 노드(700)가 운용계로 승격한 것을 계산 노드(200, 300)가 인식한다. 또한, 관리 노드(700)가 대기계로부터 운용계로 승격할 때 까지, 계산 노드(200, 300)는 병렬 작업(33)의 처리를 속행할 수 있다.
이와 같이 관리 노드를 이중화하는 것으로, 운용계의 관리 노드(100)가 다운된 경우, 관리 노드(700)에 의해 신속히 운용을 재개할 수 있다.
또한, 상기 예에서는, 대기계의 관리 노드(700)를 개별로 준비하고 있지만, 계산 노드 중 1대를 대기계의 관리 노드로서 사용할 수도 있다. 그 경우, 운용계의 관리 노드가 다운되면, 관리 노드로서의 기능을 갖는 계산 노드가, 관리 노드로서의 처리를 실행한다. 다운된 관리 노드가 재기동되면, 그 관리 노드를 운용계로 하 는 것으로, 원래의 상태로 복구할 수 있다. 이것에 의해, 계산 노드 내에 관리 노드로서의 기능을 병존시키는 기간을 최소한으로 억제할 수 있다.
또한, 상기한 처리 기능은 컴퓨터에 의해서 실현할 수 있다. 그 경우, 관리 노드나 계산 노드가 갖추어야 할 기능의 처리 내용을 기술한 프로그램이 제공된다. 그 프로그램을 컴퓨터에서 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다. 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는, 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등이 있다. 자기 기록 장치에는, 하드디스크 장치(HDD), 플렉서블 디스크(FD), 자기테이프 등이 있다. 광 디스크에는, DVD(Digital Versatile Disc), DVD-RAM(Random Access Memory), CD-ROM(Compact Disc Read Only Memory), CD-R(Recordable)/RW(ReWritable) 등이 있다. 광자기 기록 매체에는, M 0(Magneto-Optical disk) 등이 있다.
프로그램을 유통시키는 경우에는 예를 들면, 그 프로그램이 기록된 DVD, CD-ROM 등의 휴대형 기록 매체가 판매된다. 또한, 프로그램을 서버 컴퓨터의 기억 장치에 저장해 두고, 네트워크를 통해 서버 컴퓨터로부터 다른 컴퓨터로 그 프로그램을 전송할 수도 있다.
프로그램을 실행하는 컴퓨터는, 예를 들면, 휴대형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 자신의 기억 장치에 저장한다. 그리고, 컴퓨터는 자신의 기억 장치로부터 프로그램을 판독하고, 프로그램에 따른 처리를 실행한다. 또한, 컴퓨터는 휴대형 기록 매체로부터 직접 프로그램을 판독하 고, 그 프로그램에 따른 처리를 실행할 수도 있다. 또한, 컴퓨터는 서버 컴퓨터로부터 프로그램이 전송될 때 마다, 축차, 수취한 프로그램에 따른 처리를 실행할 수도 있다.
또한, 본 발명은 전술의 실시 형태에만 한정되는 것이 아니라, 본 발명의 요지를 일탈하지 않는 범위 내에서 여러 가지 변경을 가할 수 있다.
이상 설명한 실시 형태의 주된 기술적 특징은 이하에 부기한 바와 같다.
(부기 1) 복수의 계산 노드에 작업 실행을 지시하고, 스토리지 디바이스가 접속된 작업 관리 장치에 있어서,
메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 작업 DB와,
작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과,
상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단과,
재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단
을 포함하는 것을 특징으로 하는 작업 관리 장치.
(부기 2) 상기 작업 실행 지시 수단은 상기 작업 피배치 계산 노드 중 1대를 작업 마스터 노드, 상기 작업 마스터 노드 이외의 상기 계산 노드를 작업 슬레이브 노드로 하고, 상기 작업 마스터 노드에 대해 모든 상기 작업 피배치 계산 노드의 상기 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 슬레이브 노드에 대하여 상기 작업 슬레이브 노드 자신의 실행 자원 정보를 부가한 작업 실행 지시를 송신하고,
상기 작업 DB 재구축 수단은 재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 마스터 노드로부터 상기 작업 피배치 계산 노드의 모든 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 것을 특징으로 하는 부기 1에 기재한 작업 관리 장치.
(부기 3) 상기 작업 실행 지시 수단은 재기동 처리가 행해진 경우, 복수의 상기 계산 노드에 대해 노드 삽입 의뢰를 송신하고, 상기 노드 삽입 의뢰에 따라 상기 계산 노드로부터 통지되는 노드 정보를 취득하고, 상기 작업 배치 정보에 포함되는 모든 상기 작업 피배치 계산 노드로부터 상기 노드 정보를 취득할 수 있는 지 아닌지의 여부에 의해 상기 작업을 속행할 수 있는지 어떤지를 판단하고, 속행할 수 있는 경우, 작업 운용 재개를 상기 작업 피배치 계산 노드에 대해 송신하고, 속행할 수 없는 경우, 상기 작업 피배치 계산 노드에 대해 작업 중지를 지시하고, 상기 작업 피배치 계산 노드에 대해 상기 작업 피배치 계산 노드 자신의 상기 실행 자원 정보를 부가한 상기 작업 실행 지시를 송신하는 것을 특징으로 하는 부기 1에 기재한 작업 관리 장치.
(부기 4) 투입된 작업을 실행하는 클러스터 시스템에 있어서,
스토리지 디바이스와,
복수의 계산 노드와,
메인 메모리 내에 설치되고, 작업 마다의 작업 정보를 기억하는 작업 DB와, 작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과, 상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단과, 재 기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단을 구비하는 관리 노드
를 포함하는 것을 특징으로 하는 클러스터 시스템.
(부기 5) 상기 관리 노드의 상기 작업 실행 지시 수단은 상기 작업 피배치 계산 노드 중 1대를 작업 마스터 노드, 상기 작업 마스터 노드 이외의 상기 계산 노드를 작업 슬레이브 노드로 하고, 상기 작업 마스터 노드에 대해 모든 상기 작업 피배치 계산 노드의 상기 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 슬레이브 노드에 대해 상기 작업 슬레이브 노드 자신의 실행 자원 정보를 부가한 작업 실행 지시를 송신하고,
상기 관리 노드의 상기 작업 DB 관리 수단은 재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 마스터 노드로부터 상기 작업 피배치 계산 노드의 모든 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 것을 특징으로 하는 부기 4에 기재한 클러스터 시스템.
(부기 6) 상기 관리 노드의 작업 DB 관리 수단은 상기 작업 마스터 노드에 송신하는 상기 작업 실행 지시에 대해, 작업 마스터로서 기능하는 것을 나타내는 정보를 부가하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하는 경우, 실행 자원 정보 수집 의뢰를 상기 작업 피배치 계산 노드 각각에 송신 하고,
상기 계산 노드는 작업 마스터로서 지정되는 경우만, 실행 자원 정보 수집 의뢰에 응답하여 상기 계산 노드에 대해 상기 실행 자원 정보를 송신하는 것을 특징으로 하는 부기 5에 기재한 클러스터 시스템.
(부기 7) 투입된 작업을 실행하는 클러스터 시스템에 있어서,
스토리지 디바이스와,
복수의 계산 노드와,
메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 제1 작업 DB와, 작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 제1 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과, 상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 제1 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 제1 작업 실행 지시 수단을 포함하는 제1 관리 노드와,
메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 제2 작업 DB 와, 상기 제1 관리 노드의 기능이 정지한 것을 검출한 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하고, 상기 제2 작업 DB 내에 상기 작업 정보를 구축하는 작업 DB 재구축 수단과, 상기 제1 관리 노드의 기능이 정지한 것을 검출한 경우, 복수의 상기 계산 노드에 대해 노드 삽입 의뢰를 송신하는 제2 작업 실행 지시 수단을 포함하는 제2 관리 노드
를 포함하는 것을 특징으로 하는 클러스터 시스템.
(부기 8) 상기 제2 관리 노드의 상기 제2 작업 실행 지시 수단은 상기 노드 삽입 의뢰에 따라 상기 계산 노드로부터 통지되는 노드 정보를 취득하고, 상기 작업 배치 정보에 포함되는 모든 상기 작업 피배치 계산 노드로부터 상기 노드 정보를 취득할 수 있는지의 여부에 의해 상기 작업을 속행할 수 있는지 어떤지를 판단하여, 속행할 수 없는 경우, 상기 작업 피배치 계산 노드에 대해 작업 중지를 지시하고, 상기 작업 피배치 계산 노드에 대해 상기 작업 피배치 계산 노드 자신의 상기 실행 자원 정보를 부가한 상기 작업 실행 지시를 송신하는 것을 특징으로 하는 부기 7에 기재한 클러스터 시스템.
(부기 9) 복수의 계산 노드에 작업의 실행을 지시하고, 스토리지 디바이스가 접속된 작업 관리 프로그램에 있어서,
컴퓨터를,
메인 메모리 내에 설치하고, 작업마다의 작업 정보를 기억하는 작업 DB,
작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작 업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단,
상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단,
재기동 처리에 의해 상기 작업 DB 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단
으로서 기능시키는 것을 특징으로 하는 작업 관리 프로그램.
도 1은 클러스터 시스템의 개요를 도시하는 도면이다.
도 2는 본 실시 형태의 클러스터 시스템 구성예를 도시하는 도이다.
도 3은 본 실시 형태에 이용하는 관리 노드의 하드웨어 구성예를 도시하는 도이다.
도 4는 클러스터 시스템의 기능을 도시하는 블럭도이다.
도 5는 작업 DB의 데이터 구조예를 도시하는 도이다.
도 6은 스토리지 디바이스의 데이터 구조예를 도시하는 도이다.
도 7은 작업 마스터 노드의 계산 노드 내 작업 DB의 데이터 구조예를 도시하는 도이다.
도 8은 작업 슬레이브 노드의 계산 노드 내 작업 DB의 데이터 구조예를 도시하는 도이다.
도 9는 작업 실행예를 도시하는 도이다.
도 10은 관리 노드 다운 시의 상태를 도시한 도면이다.
도 11은 관리 노드 재기동 후의 상태를 도시한 도면이다.
도 12는 병렬 작업을 실행하기까지의 처리 순서를 도시하는 시퀀스도이다.
도 13은 관리 노드의 복구 처리 순서를 도시하는 시퀀스도이다.
도 14는 관리 노드와 작업 마스터 노드가 동시에 다운된 상태를 도시한 도면이다.
도 15는 관리 노드와 작업 마스터 노드의 재기동 후의 상태를 도시한 도면이 다.
도 16은 제거 의뢰 상황을 도시한 도면이다.
도 17은 제거 후의 상태를 도시한 도면이다.
도 18은 작업 재실행 의뢰의 상황을 도시한 도면이다.
도 19은 관리 노드와 작업 슬레이브 노드가 동시에 다운된 상태를 도시한 도면이다.
도 20은 관리 노드와 작업 마스터 노드의 재기동 후의 상태를 도시한 도면이다.
도 21은 제거 의뢰의 상황을 도시한 도면이다.
도 22는 제거 후의 상태를 도시한 도면이다.
도 23은 모든 노드가 동시에 다운된 상황을 도시한 도면이다.
도 24는 관리 노드와 작업 마스터 노드의 재기동 후의 상태를 도시한 도면이다.
도 25는 관리 노드와 계산 노드가 동시에 다운된 경우의 복구 처리 순서를 도시하는 시퀀스도이다.
도 26은 제2 실시 형태에 따른 클러스터 시스템의 시스템 구성도이다.
도 27은 운용계의 관리 노드가 다운된 상태를 도시한 도면이다.
도 28은 운용계의 전환 상황을 도시한 도면이다.
< 부호의 설명>
1: 관리 노드 1a, 3a, 4a: 작업 DB
1aa, 2a: 작업 투입 정보 1ab, 2b: 작업 배치 정보
1ac, 1ad, 3aa, 3ab, 4aa: 실행 자원 정보 1b: 작업 실행 의뢰 접수 수단
1c: 작업 실행 지시 수단 1d: 작업 DB 재구축 수단
2: 스토리지 디바이스 3, 4: 계산 노드
5: 작업 투입 장치 6: 병렬 작업

Claims (6)

  1. 복수의 계산 노드에 작업의 실행을 지시하고, 스토리지 디바이스가 접속된 작업 관리 장치에 있어서,
    메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 작업 DB와,
    작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과,
    상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단과,
    재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하여, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단
    을 포함하는 것을 특징으로 하는 작업 관리 장치.
  2. 제1항에 있어서, 상기 작업 실행 지시 수단은, 상기 작업 피배치 계산 노드 중 1대를 작업 마스터 노드, 상기 작업 마스터 노드 이외의 상기 계산 노드를 작업 슬레이브 노드로 하고, 상기 작업 마스터 노드에 대해 모든 상기 작업 피배치 계산 노드의 상기 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 슬레이브 노드에 대해 상기 작업 슬레이브 노드 자신의 실행 자원 정보를 부가한 작업 실행 지시를 송신하고,
    상기 작업 DB 재구축 수단은 재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 마스터 노드로부터 상기 작업 피배치 계산 노드의 모든 실행 자원 정보를 수집하고, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 것을 특징으로 하는 작업 관리 장치.
  3. 제1항에 있어서, 상기 작업 실행 지시 수단은 재기동 처리가 행해진 경우, 복수의 상기 계산 노드에 대해 노드 삽입 의뢰를 송신하고, 상기 노드 삽입 의뢰에 따라 상기 계산 노드로부터 통지되는 노드 정보를 취득하고, 상기 작업 배치 정보에 포함되는 모든 상기 작업 피배치 계산 노드로부터 상기 노드 정보를 취득할 수 있는지의 여부에 의해 상기 작업을 속행할 수 있는지 어떤지를 판단하고, 속행할 수 있는 경우, 작업 운용 재개를 상기 작업 피배치 계산 노드에 대해 송신하고, 속 행할 수 없는 경우, 상기 작업 피배치 계산 노드에 대해 작업 중지를 지시하고, 상기 작업 피배치 계산 노드에 대해 상기 작업 피배치 계산 노드 자신의 상기 실행 자원 정보를 부가한 상기 작업 실행 지시를 송신하는 것을 특징으로 하는 작업 관리 장치.
  4. 투입된 작업을 실행하는 클러스터 시스템에 있어서,
    스토리지 디바이스와,
    복수의 계산 노드와,
    메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 작업 DB와, 작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과, 상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단과, 재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스 로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하여, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단을 포함하는 관리 노드
    를 포함하는 것을 특징으로 하는 클러스터 시스템.
  5. 투입된 작업을 실행하는 클러스터 시스템에 있어서,
    스토리지 디바이스와,
    복수의 계산 노드와,
    메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 제1 작업 DB와, 작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 제1 작업 DB에 저장하는 작업 실행 의뢰 접수 수단과, 상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업의 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 제1 작업 DB에 저장하고, 상기 작업 ID에 대응시켜 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 제1 작업 실행 지시 수단을 포함하는 제1 관리 노드와,
    메인 메모리 내에 설치되고, 작업마다의 작업 정보를 기억하는 제2 작업 DB와, 상기 제1 관리 노드의 기능이 정지한 것을 검출한 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하여, 상기 제2 작업 DB 내에 상기 작업 정보를 구축하는 작업 DB 재구축 수단과, 상기 제1 관리 노드의 기능이 정지한 것을 검출한 경우, 복수의 상기 계산 노드에 대해 노드 삽입 의뢰를 송신하는 제2 작업 실행 지시 수단을 포함하는 제2 관리 노드
    를 포함하는 것을 특징으로 하는 클러스터 시스템.
  6. 복수의 계산 노드에 작업 실행을 지시하고, 스토리지 디바이스가 접속된 작업 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    컴퓨터를,
    메인 메모리 내에 설치하고, 작업마다의 작업 정보를 기억하는 작업 DB,
    작업 실행 의뢰가 입력되면, 상기 작업 실행 의뢰의 내용, 의뢰된 작업의 작업 ID 및 상기 작업 실행 의뢰의 투입원의 식별 정보를 포함하는 작업 투입 정보를 상기 스토리지 디바이스와 상기 작업 DB에 저장하는 작업 실행 의뢰 접수 수단,
    상기 작업 실행 의뢰 접수 수단이 접수한 상기 작업 실행 의뢰의 할당처가 되는 1대 이상의 상기 계산 노드를 작업 피배치 계산 노드로 결정하고, 상기 작업 피배치 계산 노드에 대해 상기 작업 실행에 사용해야 할 자원을 나타내는 실행 자원 정보를 부가한 작업 실행 지시를 송신하고, 상기 작업 ID에 대응시켜, 상기 작 업 피배치 계산 노드의 일람을 포함하는 작업 배치 정보와 상기 작업 피배치 계산 노드 각각의 상기 실행 자원 정보를 상기 작업 DB에 저장하고, 상기 작업 ID에 대응시켜, 상기 작업 배치 정보를 상기 스토리지 디바이스에 저장하는 작업 실행 지시 수단,
    재기동 처리에 의해 상기 작업 DB의 내용이 손실된 경우, 상기 스토리지 디바이스로부터 상기 작업 투입 정보와 상기 작업 배치 정보를 수집하고, 상기 작업 피배치 계산 노드로부터 상기 실행 자원 정보를 수집하여, 상기 작업 DB 내에 상기 작업 정보를 재구축하는 작업 DB 재구축 수단
    으로서 기능시키는 것을 특징으로 하는 작업 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020080017363A 2007-02-27 2008-02-26 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 KR100987746B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00046434 2007-02-27
JP2007046434A JP5018133B2 (ja) 2007-02-27 2007-02-27 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム

Publications (2)

Publication Number Publication Date
KR20080079618A true KR20080079618A (ko) 2008-09-01
KR100987746B1 KR100987746B1 (ko) 2010-10-18

Family

ID=39717413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080017363A KR100987746B1 (ko) 2007-02-27 2008-02-26 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체

Country Status (4)

Country Link
US (1) US8074222B2 (ko)
EP (1) EP2012234A3 (ko)
JP (1) JP5018133B2 (ko)
KR (1) KR100987746B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010071884A2 (en) * 2008-12-19 2010-06-24 Watchguard Technologies, Inc. Self-monitoring cluster of network security devices
KR101446723B1 (ko) * 2012-11-30 2014-10-06 한국과학기술정보연구원 작업 실행 관리 방법, 작업 실행 관리 장치, 및 작업 실행을 관리하는 프로그램을 저장하는 저장매체
KR20170073659A (ko) * 2014-10-20 2017-06-28 아브 이니티오 테크놀로지 엘엘시 계산적인 불확정 하에서의 결함 허용 및 복구

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832173B2 (en) * 2009-01-20 2014-09-09 Sap Ag System and method of multithreaded processing across multiple servers
JP5276456B2 (ja) * 2009-01-23 2013-08-28 アルパイン株式会社 データ処理システム
US20100333094A1 (en) * 2009-06-24 2010-12-30 Mark Restall Job-processing nodes synchronizing job databases
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
JP2011123817A (ja) * 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
JP5741595B2 (ja) * 2011-01-26 2015-07-01 富士通株式会社 管理装置、管理方法および管理プログラム
US8863133B2 (en) * 2011-06-02 2014-10-14 Microsoft Corporation License management in a cluster environment
US8621473B2 (en) 2011-08-01 2013-12-31 Honeywell International Inc. Constrained rate monotonic analysis and scheduling
US8875146B2 (en) * 2011-08-01 2014-10-28 Honeywell International Inc. Systems and methods for bounding processing times on multiple processing units
FR2980007B1 (fr) * 2011-09-13 2013-09-27 Bull Sas Procede, dispositif et programme d'ordinateur pour allouer dynamiquement des ressources d'un cluster a l'execution de processus d'une application
KR101827289B1 (ko) * 2011-11-08 2018-03-23 한국전자통신연구원 실시간 운영체제에서 태스크 스케줄링 방법
US9207977B2 (en) 2012-02-06 2015-12-08 Honeywell International Inc. Systems and methods for task grouping on multi-processors
JP2013243802A (ja) * 2012-05-18 2013-12-05 Mitsubishi Electric Corp 電力系統監視制御システム
US9612868B2 (en) 2012-10-31 2017-04-04 Honeywell International Inc. Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors
US8943353B2 (en) * 2013-01-31 2015-01-27 Hewlett-Packard Development Company, L.P. Assigning nodes to jobs based on reliability factors
JP6192423B2 (ja) * 2013-08-12 2017-09-06 キヤノン株式会社 情報処理装置及び情報処理方法、情報処理システム、プログラム
US9613094B2 (en) * 2013-10-29 2017-04-04 Sap Se Constant mapping optimization in a database
US9413849B2 (en) * 2013-12-05 2016-08-09 International Business Machines Corporation Distributing an executable job load file to compute nodes in a parallel computer
US9847918B2 (en) * 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
JP6067039B2 (ja) * 2015-01-28 2017-01-25 キヤノン株式会社 印刷に要する時間の予測値を求める画像処理装置、画像処理方法およびそのプログラム
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US20160275123A1 (en) * 2015-03-18 2016-09-22 Hitachi, Ltd. Pipeline execution of multiple map-reduce jobs
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
KR101968106B1 (ko) * 2015-04-14 2019-04-11 후아웨이 테크놀러지 컴퍼니 리미티드 프로세스 관리 방법, 장치, 및 디바이스
US10185647B2 (en) * 2015-09-25 2019-01-22 Microsoft Technology Licensing, Llc Debugging remote vertex code on test machine
US10437585B2 (en) * 2015-10-23 2019-10-08 Oracle International Corporation Managing highly scalable continuous delivery pipelines
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) * 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
WO2018005829A1 (en) * 2016-06-30 2018-01-04 Amazon Technologies, Inc. On-demand code execution using cross-account aliases
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
JP6546235B2 (ja) * 2017-09-15 2019-07-17 株式会社日立製作所 ストレージシステム
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11182209B2 (en) * 2018-09-21 2021-11-23 Google Llc Distributed job scheduling system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
KR102257012B1 (ko) * 2019-01-14 2021-05-27 (주) 익투스지노믹스 다양한 클라우드에 적용 가능한 대용량 데이터 처리용 분산 처리 시스템의 설치방법
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11948010B2 (en) * 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313584A (en) 1991-11-25 1994-05-17 Unisys Corporation Multiple I/O processor system
JPH0696041A (ja) * 1992-09-11 1994-04-08 Hitachi Ltd 高信頼型分散処理システム
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
JP3451415B2 (ja) 1996-03-29 2003-09-29 富士通株式会社 ネットワーク管理システムのデータベース同期方法
US6065018A (en) * 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
JP2003076660A (ja) * 2001-09-04 2003-03-14 Fujitsu Ltd サーバ及びクライアント・サーバシステム
JP2003345747A (ja) * 2002-05-27 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> 処理実行管理方法、処理実行管理装置、プログラム、及びプログラムを記録した記録媒体
JP4166056B2 (ja) * 2002-08-16 2008-10-15 富士通株式会社 データベース操作履歴管理装置、データベース操作履歴管理方法、およびデータベース操作履歴管理プログラム
KR100519453B1 (ko) * 2002-12-20 2005-10-06 유징테크주식회사 객체지향 응용프로그램에서 사용되는 데이터베이스 작업제어장치 및 방법
JP4345334B2 (ja) * 2003-03-28 2009-10-14 日本電気株式会社 耐障害計算機システム、プログラム並列実行方法およびプログラム
JP4294353B2 (ja) * 2003-03-28 2009-07-08 株式会社日立製作所 ジョブ管理機能を有するストレージ系障害管理方法及び装置
US7562254B2 (en) * 2003-07-01 2009-07-14 International Business Machines Corporation Checkpointing and restarting long running web services
JP2005031771A (ja) * 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US20050022202A1 (en) 2003-07-09 2005-01-27 Sun Microsystems, Inc. Request failover mechanism for a load balancing system
US7085962B1 (en) * 2003-09-08 2006-08-01 Veritas Operating Corporation Method and system for completing a backup job that was interrupted during a backup process
US7861246B2 (en) * 2004-06-17 2010-12-28 Platform Computing Corporation Job-centric scheduling in a grid environment
US20060089935A1 (en) 2004-10-26 2006-04-27 Microsoft Corporation Failover and load balancing for server clusters
US7933947B2 (en) 2004-12-28 2011-04-26 Sap Ag Connection manager that supports failover protection
US20060198386A1 (en) * 2005-03-01 2006-09-07 Tong Liu System and method for distributed information handling system cluster active-active master node
JP4533251B2 (ja) * 2005-06-09 2010-09-01 キヤノン株式会社 情報処理システムおよびジョブ割り当て方法
US8284423B2 (en) * 2006-04-07 2012-10-09 Ricoh Production Print Solutions LLC Customer-configurable print workflow system
US7840969B2 (en) * 2006-04-28 2010-11-23 Netapp, Inc. System and method for management of jobs in a cluster environment
US7669081B2 (en) * 2006-09-27 2010-02-23 Raytheon Company Systems and methods for scheduling, processing, and monitoring tasks
US7779298B2 (en) * 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010071884A2 (en) * 2008-12-19 2010-06-24 Watchguard Technologies, Inc. Self-monitoring cluster of network security devices
WO2010071884A3 (en) * 2008-12-19 2010-09-30 Watchguard Technologies, Inc. Self-monitoring cluster of network security devices
KR101446723B1 (ko) * 2012-11-30 2014-10-06 한국과학기술정보연구원 작업 실행 관리 방법, 작업 실행 관리 장치, 및 작업 실행을 관리하는 프로그램을 저장하는 저장매체
KR20170073659A (ko) * 2014-10-20 2017-06-28 아브 이니티오 테크놀로지 엘엘시 계산적인 불확정 하에서의 결함 허용 및 복구

Also Published As

Publication number Publication date
JP2008210164A (ja) 2008-09-11
EP2012234A3 (en) 2009-09-30
EP2012234A2 (en) 2009-01-07
US8074222B2 (en) 2011-12-06
JP5018133B2 (ja) 2012-09-05
US20080209423A1 (en) 2008-08-28
KR100987746B1 (ko) 2010-10-18

Similar Documents

Publication Publication Date Title
KR100987746B1 (ko) 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
JP4378335B2 (ja) ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US7523345B2 (en) Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US6622259B1 (en) Non-disruptive migration of coordinator services in a distributed computer system
JP4855355B2 (ja) フェールオーバにおける引き継ぎ先を自律的に変更する計算機システム及び方法
US20060212668A1 (en) Remote copy method and storage system
US20090106323A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
JP2005275829A (ja) ストレージシステム
JP5217966B2 (ja) ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
JP4141875B2 (ja) リカバリ処理方法及びその実施システム並びにその処理プログラム
CN101137984A (zh) 用于分布加载数据库的系统、方法和软件
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP4322240B2 (ja) 再起動方法、システム及びプログラム
US7743381B1 (en) Checkpoint service
JP2008090798A (ja) データ処理システムのバックアップ制御装置及びシステム
US6848037B2 (en) Data processing arrangement and method
CN101999113A (zh) 存储复制的方法和系统
JP5067075B2 (ja) 疎結合システム、待機系排他制御装置、疎結合システムのリカバリ方法、プログラムおよび記憶媒体
US9753682B2 (en) Information processing apparatus, information processing method, and computer-readable storage medium
JP4193754B2 (ja) データ二重化方法とプログラム
US20130311430A1 (en) Computer, data storage method, and information processing system
Swanson et al. MVS/ESA coupled-systems considerations

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: 20130924

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160920

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee