본 장에서는 노드 매니저의 기본적인 사항과 공통 기능에 대해서 설명한다.
본 절에서는 노드 매니저의 기본 개념, 목적, 종류, 노드 매니저를 구성할 때의 제약사항 등 기본적인 사항에 대해 설명한다.
도메인 환경에서는 도메인을 구성하는 서버들이 여러 머신에 존재할 수 있고 하나의 머신에 여러 도메인이 존재할 수도 있다. 하나의 머신에는 하나의 JEUS가 설치되고, 설치된 JEUS에 하나의 노드 매니저가 존재할 수 있다. 이러한 환경에서 도메인에 국한되지 않고 하나의 머신에서 서버 프로세스를 관리하는 주체가 노드 매니저(Node Manager)이다. 즉, 도메인 단위가 아닌 머신 단위로 서버를 관리하고 해당 머신에 존재하는 서버들을 시작, 종료, 재기동해서 서버가 정상 상태로 서비스할 수 있게 한다. 노드 매니저는 JEUS마다 하나씩 존재한다.
서버가 실제 실행되는 머신에 설치된 JEUS를 노드(Node)라고 정의한다. 노드는 해당 머신의 주소, JEUS 설치 디렉터리 경로 등의 정보로 유일한 노드를 설정할 수 있다.
다음은 노드(머신에 설치된 JEUS)와 도메인, 노드 매니저의 관계를 나타낸 그림이다.
노드 매니저의 주요 목적은 하나의 노드에서 동작하는 서버 프로세스들을 관리하는 것이다.
노드 매니저는 Domain Administration Server(이하 DAS)와 다른 원격 머신에서 동작하는 서버를 시작할 수 있다. 또한 서버가 비정상 종료되거나 사용자가 설정한 비정상 상태가 되었을 때 서버를 재기동할 수 있다. 서버가 갑자기 다운된 경우에는 DAS가 GMS(GroupManagementService)를 통해 이를 감지하여 자동으로 재시작하는 기능을 제공하고 있다.
노드당 하나의 인스턴스가 존재하고, 서버에 적용할 Patch 파일을 전달받아서 적용시켜 줄 수 있다. 또한 노드 매니저를 통해 DAS에 의해 관리되는 서버를 콘솔 툴(jeusadmin)의 start-server 명령어나 JEUS WebAdmin(이하 WebAdmin)을 사용하여 간편하게 실행할 수 있다. 또한 서버 프로세스들의 관리와 더불어 외부 프로세스를 관리할 수 있는 기능을 하는 데, 현재는 RQS 프로세스를 관리할 수 있다. RQS 프로세스의 기동이나 정지 또는 이상 종료하는 경우 재시작을 할 수 있도록 도와준다. 이 기능들은 서버 프로세스 관리와는 독립된 기능으로, 설정 파일의 설정 정보만을 가지고 프로세스의 관리를 하게 된다.
노드 매니저는 부가적인 기능이므로 사용하지 않더라도 서버가 서비스하는 데 아무런 영향을 주지 않는다. 그러나 도메인의 안정적인 운영을 위해서 노드 매니저의 사용을 권장한다.
JEUS에서 제공하는 노드 매니저는 다음과 같이 2가지 종류로 구분된다.
Java로 구현된 노드 매니저로 OS에 상관없이 실행될 수 있다.
DAS와 다른 노드에 존재하는 Managed Server(이하 MS)를 시작시킬 수 있다. 노드 매니저는 주체적으로 서버의 상태와 비정상 종료를 감지해서 문제가 발생한 서버의 재기동 동작이 SSH 타입 노드 매니저보다 빠르고 간결하게 진행된다. 또한 도메인에 Patch 파일을 적용할 수 있다. 그러나 Java 타입 노드 매니저는 JEUS가 설치되어 있어야 설정해서 사용할 수 있으므로 SSH 타입 노드 매니저와는 달리 다른 머신에 JEUS를 설치할 수 없다. Java 타입의 노드 매니저에 대한 자세한 내용은 “제2장 Java 타입 노드 매니저”를 참고한다.
OS에서 제공하는 SSH를 사용하는 노드 매니저로 OS가 Windows인 경우에는 사용할 수 없다. Windows가 설치된 머신에서 노드 매니저 기능을 사용하려면 Java 타입 노드 매니저를 사용해야 한다.
SSH 타입 노드 매니저는 Java 타입 노드 매니저와 마찬가지로 원격 머신에 있는 서버를 시작시키고, 비정상 종료를 감지하여 재기동시켜주는 기능을 한다. 단, SSH 타입 노드 매니저는 직접 서버 프로세스를 모니터링하지 않기 때문에 DAS에서 GMS를 통해서 서버의 비정상 상태를 감지하고 SSH 타입 노드 매니저를 통해 원격 서버를 재기동한다. SSH 타입 노드 매니저가 Java 타입 노드 매니저와 다른 점은 SSH 타입 노드 매니저를 통해 다른 머신에 JEUS를 설치할 수 있다는 것이다. SSH 타입의 노드 매니저에 대한 자세한 내용은 “제3장 SSH 타입 노드 매니저”를 참고한다.
JEUS는 WebAdmin과 콘솔 툴을 사용해서 노드 매니저를 설정할 수 있다. 본 절에서는 WebAdmin을 사용한 설정 방법에 대해서만 간략하게 설명한다.
노드와 관련된 모든 사항은 WebAdmin의 메인 화면의 [Node 설정] 메뉴를 통해 편집 및 동작이 가능하다.
Node 화면에서 사용하려는 노드에 따라 'Ssh'나 'Java'를 선택해서 설정한다.
SSH 타입 노드 매니저 설정
Node 화면에서 'Ssh'를 선택한다. 설정할 노드의 이름, 호스트 정보를 입력하고 타입에 따라 필요한 항목을 설정한다. SSH 타입 노드 매니저 설정 방법에 대한 자세한 내용은 “3.3.1. SSH 타입 노드 설정”을 참고한다.
Java 타입 노드 매니저 설정
Node 화면에서 'Java'를 선택한다. 설정할 노드의 이름, 호스트 정보를 입력하고 타입에 따라 필요한 항목을 설정한다. Java 타입 노드 매니저 설정 방법에 대한 자세한 내용은 “2.4.1. Java 타입 노드 설정”을 참고한다.
다음은 2가지 타입의 노드 매니저에서 공통으로 제공하는 기능이다.
원격 머신에서 서버 기동
노드 매니저를 통해서 도메인에 속한 서버를 기동할 수 있다.
노드 매니저를 사용하지 않을 경우 서버를 기동하려는 원격 머신에 접속해서 스크립트를 통해 서버를 기동해야 한다. 그러나 노드 매니저를 사용한다면 원격 머신에 있는 서버도 DAS에서 간단한 명령으로 기동시킬 수 있다. DAS가 기동된 상태에서 도메인에 속하는 모든 MS를 기동시킬 수도 있고, 클러스터를 기동시킬 수도 있다.
노드 매니저로 서버를 기동하려면 다음의 조건이 충족되어야 한다.
서버를 기동하려는 노드 정보가 nodes.xml에 등록되어 있어야 한다.
어떤 노드에서 기동할 것인지에 대한 정보가 기동하려는 서버에 설정되어 있어야 한다.
노드 매니저에 접속할 수 있는 상태여야 한다.
Java 타입의 노드 매니저를 사용하는 경우에는 노드 매니저가 기동되어 있는 상태여야 하고, SSH 타입의 노드 매니저를 사용하는 경우에는 OS에 SSH Port가 열려있어야 한다.
Java 타입의 노드 매니저를 사용하는 경우 jeusnm.xml에 노드 매니저 설정이 되어 있어야 한다.
비정상 상태의 서버 재기동
Java 타입의 노드 매니저에서는 모니터링하고 있는 서버가 비정상 종료할 경우 프로세스를 재기동해준다. SSH 타입의 노드 매니저의 경우는 도메인의 GMS 서비스에 의해 서버가 비정상(FAILED) 상태가 되면 DAS의 GMS에서는 서버가 속한 노드 매니저에 서버에 대한 재기동 명령을 보내 서버가 재기동될 수 있도록 한다. 이 동작은 해당 서버에 노드가 반드시 설정되어 있어야 하고 Java 타입 노드 매니저의 경우는 노드 매니저가 기동되어 있는 상태여야 한다.
Java 타입의 노드 매니저와 SSH 타입의 노드 매니저에서 제공하는 각 기능들에 대해서는 “제2장 Java 타입 노드 매니저”와 “제3장 SSH 타입 노드 매니저”를 참고한다.
노드 매니저에서 추가적으로 다른 프로세스를 관리할 수 있는 기능이 있다. 현재 RQS 프로세스들의 상태를 체크하고 이상 종료되었다고 판단되면 이를 다시 시작시키는 역할을 한다.
해당 노드에 설정된 RQS 프로세스 실행, 관리
노드 매니저에서는 설정된 RQS의 정보를 가지고 RQS를 구동할 수 있다. 또한 설정된 port를 통하여 RQS 프로세스의 상태를 지속적으로 체크할 수 있고, 혹시 이상 종료가 되었다고 판단되었을 경우에는 이를 인지한 후 RQS 프로세스를 재시작하도록 하여 지속적인 서비스가 가능하도록 할 수 있다.
노드 매니저로 RQS 프로세스를 기동하려면 다음의 조건이 충족되어야 한다.
RQS 프로세스에 대한 정보가 jeusnm.xml 파일에 등록되어 있어야 한다.
RQS 프로세스의 기동에 필요한 설정 파일이 정상적인 위치에 존재하고, 노드 매니저에 설정된 설정 값(path, port 등)들이 제대로 설정되어 있어야 한다. 설정 파일의 위치는 RQS 프로세스에서 RQSDIR 환경변수를 기반으로 추산하기 때문에 환경변수 설정도 중요하다.
노드 매니저에 접속할 수 있는 상태여야 한다.
비정상 상태의 프로세스 재기동
노드 매니저가 RQS 프로세스를 관리하는 주요 역할은 RQS 프로세스가 이상 종료되었을 때에 이를 체크하고 재시작시킬 수 있다는 것이다. 이를 위하여 지정된 port로 접근하여 서로 메시지를 주고받게 된다.
RQS가 이상 종료되었다고 판단하면 노드 매니저는 설정된 값들을 가지고 다시 RQS를 재기동하게 되며, RQS에서 구동한 shared 리소스의 정리를 위하여 -r 옵션을 사용하여 RQS를 구동하게 된다.
RQS 프로세스의 관리에 대해서는 “제4장 RQS 프로세스 관리”를 참고한다.