본 장에서는 노드 매니저의 개념, 목적, 종류 등의 기본적인 사항과 2가지 타입 노드 매니저의 공통 기능에 대해서 설명한다.
본 절에서는 노드 매니저의 기본 개념, 목적, 종류, 노드 매니저를 구성할 때의 제약사항 등 기본적인 사항에 대해 설명한다.
도메인 환경에서는 도메인을 구성하는 서버들이 여러 머신에 존재할 수 있고 하나의 머신에 여러 도메인이 존재할 수도 있다. 하나의 머신에는 하나의 JEUS가 설치되고, 설치된 JEUS에 하나의 노드 매니저가 존재할 수 있다.
이러한 환경에서 도메인에 국한되지 않고 하나의 머신에서 서버 프로세스를 관리하는 주체가 노드 매니저(Node Manager)이다. 즉, 도메인 단위가 아닌 머신 단위로 서버를 관리하고 해당 머신에 존재하는 서버들을 시작, 종료, 재기동해서 서버가 정상 상태로 서비스할 수 있게 한다. 노드 매니저는 JEUS마다 하나씩 존재한다.
서버가 실제 실행되는 머신에 설치된 JEUS를 노드(Node)라고 정의한다. 노드는 해당 머신의 주소, JEUS 설치 디렉터리 경로 등의 정보로 유일한 노드를 설정할 수 있다.
다음은 노드(머신에 설치된 JEUS)와 도메인, 노드 매니저의 관계를 나타낸 그림이다.
노드 매니저의 주요 목적은 하나의 노드에서 동작하는 서버 프로세스들을 관리하는 것이다.
노드 매니저는 Domain Administration Server(이하 DAS)와 다른 원격 머신에서 동작하는 서버를 시작할 수 있다. 또한 서버가 비정상 종료되거나 사용자가 설정한 비정상 상태가 되었을 때 서버를 재기동할 수 있다. 서버가 갑자기 다운된 경우에는 DAS가 GMS를 통해 이를 감지하여 자동으로 재시작하는 기능을 제공하고 있다.
노드당 하나의 인스턴스가 존재하고, 서버에 적용할 patch 파일을 전달받아서 적용시켜 줄 수 있다. 또한 노드 매니저를 통해 DAS에 의해 관리되는 서버를 콘솔 툴(jeusadmin)의 start-server 명령이나 JEUS WebAdmin(이하 WebAdmin)을 사용하여 간편하게 실행할 수 있다.
노드 매니저는 부가적인 기능이므로 사용하지 않더라도 서버가 서비스하는 데 아무런 영향을 주지 않는다. 그러나 도메인의 안정적인 운영을 위해서 노드 매니저의 사용을 권장한다.
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에서 GroupManagementService(이하 GMS)를 통해서 서버의 비정상 상태를 감지하고 SSH 타입 노드 매니저를 통해 원격 서버를 재기동한다.
SSH 타입 노드 매니저가 Java 타입 노드 매니저와 다른 점은 SSH 타입 노드 매니저를 통해 다른 머신에 JEUS를 설치할 수 있다는 것이다. SSH 타입의 노드 매니저에 대한 자세한 내용은 “제3장 SSH 타입 노드 매니저”를 참고한다.
JEUS에서 제공하는 2가지 타입의 노드 매니저는 WebAdmin과 콘솔 툴을 사용해서 설정할 수 있다.
본 절에서는 WebAdmin에서의 타입별 설정 방법에 대해서만 간략하게 설명한다.
노드와 관련된 모든 사항은 [Node 설정] 메뉴를 통해 편집 및 동작이 가능하다. 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.properties에 노드 매니저 설정이 되어 있어야 한다.
비정상 상태의 서버 재기동
Java 타입의 노드 매니저에서는 모니터링하고 있는 서버가 비정상 종료할 경우 프로세스를 재기동 해준다. Ssh 타입의 노드 매니저의 경우는 도메인의 GMS 서비스에 의해 서버가 비정상(FAILED) 상태가 되면 DAS의 GMS에서는 서버가 속한 노드 매니저에 서버에 대한 재기동 명령을 보내 서버가 재기동 될 수 있도록 한다.
이 동작은 해당 서버에 노드가 반드시 설정되어 있어야 하고 Java 타입 노드 매니저의 경우는 노드 매니저가 기동되어 있는 상태여야 한다.
Java 타입의 노드 매니저와 SSH 타입의 노드 매니저에서 제공하는 각 기능들에 대해서는 “제2장 Java 타입 노드 매니저”와 “제3장 SSH 타입 노드 매니저”를 참고한다.