제2장 Java 타입 노드 매니저

내용 목차

2.1. 개요
2.2. 기능별 동작 방식
2.2.1. 원격 머신에 있는 ManagedServer 기동
2.2.2. 서버 모니터링
2.2.3. 비정상 상태의 서버 재기동
2.2.4. Rolling Patch
2.2.5. DAS와 연결
2.3. 환경설정
2.3.1. 설정 파일
2.3.2. 필수 파일
2.4. 노드 설정 및 삭제
2.4.1. Java 타입 노드 설정
2.4.2. Java 타입 노드 삭제
2.5. 노드 매니저 시작 및 종료
2.6. Java 타입 노드 매니저를 통한 서버 제어
2.7. 로그 파일

본 장에서는 Java 타입 노드 매니저를 사용하기 위한 설정 방법과 동작 방식에 대해서 설명한다.

2.1. 개요

Java 타입 노드 매니저는 SSH 타입 노드 매니저에 비해 빠르게 서버의 비정상 종료를 감지하여 재기동해 줄 수 있다는 장점이 있다. 또한 OS가 Windows인 경우에 SSH 타입 노드 매니저는 사용할 수 없지만, Java 타입 노드 매니저는 OS에 상관없이 사용할 수 있다. 그러나 다른 머신에 JEUS를 설치할 수 없다는 단점이 있다.

본 절에서는 Java 타입의 노드 매니저를 사용하기 위한 방법과 기본 지식에 대해서 살펴본다.

2.2. 기능별 동작 방식

본 절에서는 Java 타입 노드 매니저의 각 기능에 대한 동작 방식을 설명한다.

2.2.1. 원격 머신에 있는 ManagedServer 기동

노드 매니저를 통해 도메인 내의 원격 머신에 있는 서버를 기동시킬 수 있다. 노드 매니저를 통해 서버를 기동하는 과정은 다음와 같다.

[그림 2.1] 노드 매니저에서 원격 머신의 서버 기동

노드 매니저에서 원격 머신의 서버 기동


  1. 노드 매니저에서 서버의 lock 파일을 생성하여 FILE LOCK을 얻는다.

  2. 서버 기동을 성공한 뒤 pid 파일, state 파일을 생성하고 PID(프로세스 ID)와 서버의 상태를 기록한다.

  3. <serverName>.properties에 username, password, dasurl 등의 정보를 업데이트한다.

  4. 서버에서는 NodeManagerService를 시작하면서 address 파일을 생성하고 자신의 호스트 정보를 기록한다.

참고

서버를 재기동할 경우에도 동일한 과정으로 진행된다.

2.2.2. 서버 모니터링

Java 타입 노드 매니저는 서버 프로세스의 상태를 주기적으로 모니터링해서 state 파일에 업데이트하고, 비정상 상황이 발생할 경우 서버 프로세스를 재기동한다.

노드 매니저는 노드에 존재하는 모든 서버에 대해서 모니터링하는 것이 아니고, 노드 매니저를 통해 기동한 서버의 프로세스만 모니터링한다. 따라서 서버의 비정상 종료를 감지해서 바로 재기동하고 싶다면 노드 매니저를 사용해서 기동해야 한다. 노드 매니저가 재기동된 경우에도 자신이 기동한 서버에 대한 모니터링은 계속 유지된다.

다음은 Java 타입 노드 매니저가 서버를 모니터링하는 과정을 간략하게 나타낸 그림이다.

[그림 2.2] Java 타입 노드 매니저에서 서버 모니터링

Java 타입 노드 매니저에서 서버 모니터링

다음은 노드 매니저가 재기동된 경우에 자신이 기동한 서버를 찾아서 모니터링을 계속하는 과정에 대한 단계별 설명이다.

  1. 노드 매니저가 재기동될 때 다음 경로에서 해당 노드 매니저에서 관리되고 있는 도메인 이름을 조회한다.

    JEUS_HOME/domains
  2. 각 도메인의 다음 경로의 서버 디렉터리를 통해 해당 노드 매니저에서 관리되고 있는 서버 이름을 조회한다.

    JEUS_HOME/domains/<domain-name>/servers
  3. 서버 디렉터리에서 <serverName>.address, <serverName>.lck, <serverName>.state, <serverName>.pid 파일의 존재 여부를 확인한다. 나열한 모든 파일이 존재하는 경우 서버는 운용 중인 상태이다.

  4. lock 파일을 통해 FILE LOCK을 얻는다.

  5. state 파일에 기록된 서버의 상태를 확인하고 서비스 가능한 상태인지를 판단한다.

    • 서비스 가능 상태 : RUNNING, STANDBY, SUSPENDED, RESUMING, SUSPENDING, STARTING

    • 서비스 불가능 상태 : SHUTDOWN, SUNTTING_DOWN

  6. pid 파일에 기록된 서버 프로세스 ID로 프로세스가 운용 중인지 여부를 확인한다. 만약 서버가 다운된 것을 확인하면 노드 매니저는 해당 서버를 재기동한다.

  7. address 파일에 기록된 서버의 호스트 정보를 바탕으로 소켓 연결을 맺어보고 서버 프로세스가 정상적으로 운영되고 있는지를 확인한다. 만약 서버가 다운된 것을 확인하면 노드 매니저는 해당 서버를 재기동한다.

  8. 서버가 서비스 가능한 상태라고 판단되면 주기적으로 서버의 상태를 확인하면서 서버를 모니터링한다.

참고

state 파일에 기록되는 서버의 상태 중 SHUTDOWN_NEED_TO_RESTART 상태는 노드 매니저가 재기동될 때 이전에 노드에서 서비스 중이던 서버를 재기동해 주기 위해 사용되는 state이다. 주로 Windows 서비스와 같이 노드 매니저를 OS의 서비스로 등록한 경우 서버 shutdown 후 재기동될 때 기존에 서비스 중이던 서버를 다시 재기동하여 서비스할 수 있도록 하기 위해 사용된다.

2.2.3. 비정상 상태의 서버 재기동

Java 타입 노드 매니저는 서버 프로세스가 비정상 종료된 상황에서 재기동해주는 역할도 하지만 서버가 정의한 비정상 상태에 도달한 경우에도 서버를 재기동한다.

서버에서는 Memory Ratio를 설정해서 지정한 비율 이상으로 Heap Memory를 사용하면 자체적으로 프로세스를 종료한다. 노드 매니저는 서버가 비정상 상황에 의해 자체적으로 종료되는 상황도 감지해서 서버를 재기동한다.

[그림 2.3] Java 타입 노드 매니저의 서버 재기동

Java 타입 노드 매니저의 서버 재기동


2.2.4. Rolling Patch

Java 타입 노드 매니저를 통해 도메인에 Patch를 적용할 수 있다. 콘솔 툴을 사용해서 원격 머신에 있는 서버에 Patch 파일을 전송 또는 삭제뿐만 아니라 Patch 적용을 위해 서버의 재기동까지 진행한다.

DAS에서 도메인에 속한 서버가 존재하는 원격 머신의 노드 매니저에 접속해서 Patch 파일을 전달, 삭제, 적용할 수 있다.

  • Patch 파일 전달

    domain1.adminServer>apply-patch
  • Patch 파일 삭제

    domain1.adminServer>remove-patch
  • Patch 파일 적용

    -rolling 옵션을 통해 각 서버에 Patch를 적용시킬 수 있다. 이때 하나의 노드별로 순차적으로 수행하여 서비스가 이중화되어 있다면 장애 없이 서비스할 수 있도록 한다. 단, 같은 노드 안에 여러 대의 서버를 운영하고 있는 상황이라면 노드 전체의 서버를 하나씩 순차적으로 종료하고 Patch 파일을 전송 또는 삭제한 후 다시 서버를 하나씩 순차적으로 기동해야 한다.

    domain1.adminServer>apply-patch -rolling
    
    domain1.adminServer>remove-patch -rolling

  • Patch 적용에 실패한 경우 되돌리는 기능

    -action 옵션을 통해서 Patch 적용에 실패한 경우의 동작에 대해서 정의할 수 있다.

    domain1.adminServer>apply-patch -rolling -action CONTINUE|STOP|ROLLBACK

    다음의 CONTINUE, STOP, ROLLBACK 옵션 중 하나를 설정할 수 있다.

    옵션설명
    CONTINUEPatch 적용에 실패한 노드가 있더라도 무시하고 계속 진행한다.
    STOPPatch 적용에 실패한 노드가 있으면 Patch 적용을 멈추고 리턴한다.
    ROLLBACKPatch 적용에 실패한 노드가 있으면 Patch 적용을 멈추고 이전에 성공한 노드에도 모두 적용된 Patch를 rollback한다. 이때 Patch를 삭제하는 상황에서는 Patch 파일이 이미 삭제된 노드가 존재할 수 있기 때문에 이 옵션을 설정하더라도 STOP 옵션을 설정한 것과 동일하게 더 이상 Patch 삭제를 진행하지 않고 동작을 멈춘다.

2.2.5. DAS와 연결

노드 매니저를 통하지 않고 기동된 서버는 노드 매니저의 관리를 받을 수 없기 때문에 모니터링 기능이나 Patch 기능을 제공하지 않는다. 그러나 DAS는 예외적으로 노드 매니저를 통하지 않고 기동되어도 프로세스 모니터링 기능과 Patch 전달이 가능하다. DAS는 기동이 완료되면 노드 매니저에 연결해서 자신의 정보를 전송하므로 노드 매니저에서는 이 정보를 바탕으로 DAS를 모니터링할 수 있다.

Rolling Patch 기능은 DAS와 노드 매니저가 연결되어 있는 상태에서만 사용이 가능하다. DAS가 노드 매니저를 통해 기동되지 않았더라도 DAS와 노드 매니저가 연결된 상태이므로 자신의 노드뿐만 아니라 다른 노드에도 Patch 전달 및 적용이 가능하다.

참고

노드 매니저를 통하지 않고 기동된 서버는 모니터링하지 않는다. Java 타입 노드 매니저를 사용하면 노드 매니저를 통해 기동된 서버인 경우에 서버가 FAILED 상태가 되기 전에 노드 매니저가 서버의 비정상 종료를 감지하여 재기동할 수있다.

2.3. 환경설정

Java 타입 노드 매니저를 사용하기 위해 필요한 환경을 설정해야 한다.

2.3.1. 설정 파일

Java 타입 노드 매니저를 사용하려면 다음의 설정 파일에 필요한 사항을 설정해야 한다. Java 타입 노드 매니저는 nodes.xml에 노드가 정의되는 것 이외에도 별도의 설정이 필요하다.

nodes.xml

nodes.xml 파일에 어떤 타입의 노드 매니저를 사용할 것인지 설정한다.

파일은 다음 경로에 위치한다.

JEUS_HOME/domains

nodes.xml은 DAS에서 참조하는 노드의 설정으로 노드의 물리적인 주소를 정의하고 도메인 설정에서는 각 MS가 운영될 노드 정보를 설정해야 한다. 이 파일은 하나의 도메인에 국한된 파일이 아니라 머신에 설치된 JEUS에 존재하는 여러 도메인에서 모두 공유된다. 각 도메인의 DAS에서는 node.xml에 설정된 노드 정보에 따라 각 노드의 노드 매니저에 접속해서 필요한 명령을 수행한다.

WebAdmin이나 콘솔 툴을 통해서 노드를 추가, 삭제할 수 있다. 노드 추가, 삭제에 대한 자세한 방법은 “2.4. 노드 설정 및 삭제”를 참고한다.

참고

Java 타입 노드 매니저는 nodes.xml에 설정된 머신 정보와 jeusnm.xml에 설정된 'host', 'port' 정보가 일치하도록 주의해서 설정해야 한다.

jeusnm.xml

jeusnm.xml는 머신에서의 노드 매니저의 동작 방식을 설정하는 설정 파일로 다음 경로에 위치한다.

JEUS_HOME/nodemanager

jeusnm.xml에서 설정할 수 있는 항목들은 다음과 같다. jeusnm.xml 파일은 직접 수정해야 한다.

항목설명
useNodeManagerJava 타입 노드 매니저를 사용할지 여부를 설정한다. (기본값: true)
host노드 매니저의 listen address를 설정한다. (기본값: localhost)
port노드 매니저의 listen port를 설정한다. (기본값: 7730)
serverMonitoringPeriod노드 매니저에서 서버 프로세스의 상태를 모니터링하는 주기를 설정한다. (기본값: 500, 단위: ms)
serverAutoRestart서버 프로세스가 비정상 종료된 경우 자동으로 해당 서버를 재기동해줄지 여부를 설정한다. (기본값: true)
serverRestartTryCount

서버 재기동을 시도할 횟수를 설정한다. (기본값: 5)

'serverRestartDurationTime'에 설정한 주기 안에 이 값에 설정한 횟수 이상의 서버 재기동이 시도되면 서버 프로세스에 문제가 있는 것으로 판단하고 서버 재기동을 진행하지 않는다.

serverRestartDurationTime

서버 재기동을 시도할 주기를 설정한다. (기본값: 120000, 단위: ms)

설정한 주기 안에 'serverRestartTryCount'에 설정한 횟수 이상의 서버 재기동이 시도되면 서버 프로세스에 문제가 있는 것으로 판단하고 서버 재기동을 진행하지 않는다.

serverRetryRestart서버 재기동이 실패하는 경우 재시도해줄지 여부를 설정한다. 이 값을 true로 설정하면 서버 재기동에 성공할 때까지 재시도한다. (기본값: false)
useSSLListener노드 매니저가 SSL을 사용할지 여부를 설정한다. (기본값: false)
keystoreFile

SSL을 사용할 때 인증에 사용될 Keystore 파일 경로를 설정한다.

(기본값: NODEMANAGER_HOME/keystore)

keystorePass

SSL을 사용할 때 인증에 사용될 Keystore 파일의 패스워드를 설정한다.

(기본값: jeuskeypass)

truststoreFile

SSL을 사용할 때 인증에 사용될 Truststore 파일 경로를 설정한다.

(기본값: NODEMANAGER_HOME/truststore)

truststorePass

SSL을 사용할 때 인증에 사용될 Truststore 파일의 패스워드를 설정한다.

(기본값: jeustruststorepass)

logFileName

노드 매니저의 로그 파일 위치를 설정한다. 파일의 절대 경로를 준 경우 해당 경로에 로그 파일을 만들고, 상대 경로를 준 경우 기본 로그 디렉터리에 설정한 이름으로 로그 파일을 만든다.

(기본값: JEUS_HOME/nodemanager/logs/JeusNodeManager.log)

standbyPort노드 매니저의 standby 프로세스를 돌려서 노드 매니저가 이상 종료될 때에 standby 프로세스가 자동으로 대체하게 할 수 있다. 사용할 포트를 설정함으로써 기능을 켤 수 있다. 자세한 내용은 “5.3. 이중화된 노드 매니저 사용 방법”"Standby 노드 매니저"를 참고한다.
processListRQS 프로세스들의 정보를 리스트의 형태로 설정한다. 자세한 설정 방법은 “4.3.1. 설정 파일”을 참고한다.

<serverName>.properties

<serverName>.properties 파일은 노드 매니저에서 서버를 기동할 때 필요한 정보들에 대한 캐시 파일이다. 노드 매니저에서 서버를 기동한 뒤 다음 경로에 해당 파일을 생성한다.

SERVER_HOME/nodemanager

노드 매니저는 서버를 기동할 때 필요한 옵션들을 기록해서 다음 번에 옵션을 설정하지 않더라도 이 파일에 캐싱된 정보를 바탕으로 서버를 기동시킬 수 있다. 이 정보들은 콘솔 툴을 통해 노드 매니저에 직접 접속해서 서버를 기동시킬 때만 사용되고 DAS로 MS를 기동시킬 때는 해당 정보를 사용하지 않는다.

캐시되는 정보들은 다음과 같다.

항목설명
dasurlDAS의 호스트 정보를 나타낸다. MS의 경우에만 dasurl을 캐시한다.
username서버를 기동할 때 필요한 서버의 계정을 나타낸다.
password서버를 기동할 때 필요한 서버의 패스워드를 나타낸다.
sslArgumentsSSL을 사용하도록 설정된 서버의 경우 노드 매니저에서 서버에 접속할 때 SSL 인증에 필요한 SSL properties 정보를 설정한다.

2.3.2. 필수 파일

다음은 설정 파일 외에 노드 매니저가 서버를 기동하고 모니터링하는 데 필요한 파일의 설명으로 각 파일은 다음 경로에 위치한다.

JEUS_HOME/domains/<domain_name>/servers/<server_name>/nodemanager
파일설명
<serverName>.lck

서버 프로세스를 기동할 때 서버가 여러 번 기동되는 것을 방지하기 위해 노드 매니저에서 생성하는 파일이다. 이 파일은 노드 매니저에서 서버 프로세스를 시작시키기 전에 생성되고 서버 프로세스가 정상 종료되면 삭제된다.

노드 매니저가 재기동되었을 때 해당 파일의 유무에 따라 서버를 계속 모니터링할지 여부를 결정한다.

<serverName>.pid

서버 프로세스가 성공적으로 기동된 후에 노드 매니저에서 생성하는 서버의 프로세스 ID를 기록한 파일이다. 이 파일은 노드 매니저에서 서버 프로세스를 정상적으로 기동시킨 뒤에 생성되고 서버 프로세스가 정상 종료되면 삭제된다.

노드 매니저가 재기동되었을 때 해당 파일의 유무에 따라 서버를 계속 모니터링할지 결정한다. 또한 파일에 기록된 PID에 해당하는 프로세스의 존재 여부에 따라 서버의 비정상 종료를 판단해서 노드 매니저가 재기동된 후에도 서버를 재기동하여 계속 모니터링할 수 있다.

<serverName>.state

서버 프로세스의 기동이 성공적으로 완료된 후 노드 매니저에서 생성하는 서버의 상태를 기록한 파일이다. 이 파일은 노드 매니저에서 서버 프로세스를 정상적으로 기동시킨 뒤에 생성되고 서버 프로세스가 정상 종료되면 삭제된다. 노드 매니저에서는 주기적으로 서버의 상태를 체크하면서 해당 파일에 서버의 상태를 업데이트한다.

노드 매니저가 재기동되었을 때 해당 파일의 유무에 따라 서버를 계속 모니터링할지 결정하고, 파일에 기록된 서버의 상태를 확인하고 서버의 비정상 종료를 판단해서 노드 매니저가 재기동된 후에도 서버를 재기동하여 계속 모니터링할 수 있다.

<serverName>.address

서버가 기동하면서 생성하는 파일로 서버의 Listen Address와 Listen Port가 기록된다. 이 파일은 서버가 기동될 때 생성되고 정상 종료되면 삭제된다. 노드 매니저가 재기동되었을 때 해당 파일의 유무에 따라 서버를 계속 모니터링할지 결정하고, 파일에 기록된 호스트 정보로 서버를 계속 모니터링할 수 있다.

노드 매니저가 재기동되었을 때는 서버로의 MBean 요청을 통해 서버 상태를 주기적으로 모니터링하여 서버의 비정상 종료 여부를 확인한다.

2.4. 노드 설정 및 삭제

Java 타입의 노드는 WebAdmin과 콘솔 툴을 사용해서 설정하고 삭제할 수 있다.

2.4.1. Java 타입 노드 설정

본 절에서는 WebAdmin과 콘솔 툴을 사용해서 Java 타입 노드를 설정하는 방법에 대해 설명한다.

참고

WebAdmin이나 콘솔 툴을 사용해서 서버를 기동하려면 서버에 노드의 이름(Node Name)이 설정되어 있어야 한다.

WebAdmin 사용

다음은 WebAdmin을 사용해서 Java 타입 노드를 설정하는 방법이다.

  1. 노드와 관련된 모든 사항은 [Node 설정] 메뉴를 통해 편집 및 동작이 가능하다. WebAdmin의 메인 화면에서 [Node 설정]을 선택한다.

  2. Nodes 화면에서는 노드 목록을 조회할 수 있다. 사용자가 노드를 추가하지 않았더라도 JEUS를 설치할 때 기본적으로 생성되는 노드가 노드 목록에 조회된다. 노드 추가를 위해 [ADD] 버튼을 클릭한다.

    참고

    노드 설정은 [LOCK & EDIT] 버튼을 클릭하여 설정변경 모드로 전환하거나 [Activate Changes] 버튼을 클릭하여 변경 반영과 같은 동작을 필요로 하지 않는다.

  3. Node 화면에서 설정할 노드의 이름, 호스트 정보를 입력한다. 노드의 타입으로 'Java'를 선택하고 관련 항목을 입력한 뒤 [확인] 버튼을 클릭한다.

  4. Nodes 화면 상단에 노드가 성공적으로 추가되었다는 메시지와 함께 노드 목록에 추가한 노드 정보가 조회된 것을 확인할 수 있다.

콘솔 툴 사용

다음은 콘솔 툴을 사용해서 노드를 설정하는 방법이다.

  1. add-java-node 명령을 사용해서 'node1'이라는 노드를 추가한다.

    [DAS]domain1.adminServer>add-java-node node1 -host 192.168.34.65 -port 7730
    The node [node1] was successfully added.
  2. show-node 명령을 사용해서 추가된 노드의 설정을 조회한다. Java 타입의 'node1'이 조회되는 것을 확인할 수 있다.

    [DAS]domain1.adminServer>show-node node1
    ============================================================
    +------------------------------------------+---------------+
    |                 Property                 |     Value     |
    +------------------------------------------+---------------+
    | Node Name                                | node          |
    | Host                                     | 192.168.34.65 |
    | Mapped Servers                           |               |
    | Node Type                                | JAVA          |
    | NodeManager Port                         |          7730 |
    | Use SSL                                  | false         |
    +------------------------------------------+---------------+
    ============================================================

    또한, list-nodes 명령을 사용해서 도메인의 노드들을 조회할 수 있다.

    [DAS]domain1.adminServer>list-nodes
    =========================================================================
    +-----------+------+-------------------------------------+--------------+
    | Node name | Type |            Under control            | JEUS version |
    +-----------+------+-------------------------------------+--------------+
    | node1     | JAVA | N                                   | -            |
    +-----------+------+-------------------------------------+--------------+
    =========================================================================
  3. modify-java-node 명령이나 modify-node 명령을 사용해서 노드를 변경할 수 있다.

    [DAS]domain1.adminServer>modify-java-node node1 -port 7731
    The node [node1] was modified successfully. Check the results using "show-node"
    [DAS]domain1.adminServer>modify-node node1 -port 7732
    The node [node1] was modified successfully. Check the results using "show-node"
    
  4. 변경된 노드 정보를 확인하려면 show-node 명령을 사용해서 해당 노드의 설정을 조회한다.

    [DAS]domain1.adminServer>show-node node1
    ============================================================
    +------------------------------------------+---------------+
    |                 Property                 |     Value     |
    +------------------------------------------+---------------+
    | Node Name                                | node          |
    | Host                                     | 192.168.34.65 |
    | Mapped Servers                           |               |
    | Node Type                                | JAVA          |
    | NodeManager Port                         |          7732 |
    | Use SSL                                  | false         |
    +------------------------------------------+---------------+
    ============================================================

참고

add-java-node 명령과 list-nodes 명령에 대한 자세한 사용 방법은 JEUS Reference Book”의 “4.2.15. 노드 관리 관련 명령어”를 참고한다.

2.4.2. Java 타입 노드 삭제

본 절에서는 WebAdmin과 콘솔 툴을 사용해서 Java 타입 노드를 삭제하는 방법에 대해 설명한다.

WebAdmin 사용

다음은 WebAdmin을 사용해서 노드를 삭제하는 방법이다.

  1. WebAdmin의 메인 화면에서 [Node 설정]을 선택한다. Nodes 화면에 조회된 노드 목록에서 삭제할 노드의 [delete] 버튼을 클릭한다.

  2. 노드 삭제에 대한 확인 메시지가 나타나고, [확인] 버튼을 클릭하면 해당 노드는 삭제된다.

  3. Nodes 화면 상단에 노드가 성공적으로 삭제되었다는 메시지와 함께 노드 목록에서 해당 노드 정보가 조회되지 않는 것을 확인할 수 있다.

콘솔 툴 사용

다음은 콘솔 툴을 사용해서 노드를 삭제하는 방법이다.

  1. remove-node 명령을 사용해서 'node1'이라는 노드를 삭제한다.

    [DAS]domain1.adminServer>remove-node node1
    The node [node1] was successfully removed.
  2. 추가된 노드를 확인하려면 list-nodes 명령을 사용해서 노드 목록을 조회한다. 노드 목록에 Java 타입의 'node1'이 조회되지 않는 것을 확인할 수 있다.

    [DAS]domain1.adminServer>list-nodes
    =========================================================================
    +-----------+------+-------------------------------------+--------------+
    | Node name | Type |            Under control            | JEUS version |
    +-----------+------+-------------------------------------+--------------+
    (No data available)
    =========================================================================

참고

remove-node 명령과 list-node 명령에 대한 자세한 사용 방법은 JEUS Reference Book”의 “4.2.15. 노드 관리 관련 명령어”를 참고한다.

2.5. 노드 매니저 시작 및 종료

Java 타입의 노드 매니저는 SSH 타입의 노드 매니저와 달리 별도의 시작 및 종료 프로세스가 필요하다.

Java 타입 노드 매니저 시작

Java 타입의 노드 매니저는 스크립트를 통해서 실행시킨다. JEUS_HOME/bin 하위에 존재하는 startNodeManager를 실행시키면 다음과 같이 노드 매니저가 DAS나 콘솔 툴로부터 명령을 받아 서버를 제어할 준비를 한다.

JEUS_HOME/bin$ startNodeManager
**************************************************************
  - JEUS Home         : /home/jeus/jeus8
  - Added Java Option :
  - Java Vendor       : Sun
**************************************************************
...
[2016.07.28 13:55:32][2] [nodemanager-1] [NodeManager-0101] The node manager is starting.
[2016.07.28 13:55:32][2] [nodemanager-1] [NodeManager-0102] Initializing the node manager configuration.
[2016.07.28 13:55:32][2] [nodemanager-1] [NodeManager-0108] Beginning to listen: localhost/127.0.0.1:7730.
[2016.07.28 13:55:32][2] [nodemanager-10] [NodeManager-0109] Processing the request......

노드 매니저가 서버를 모니터링하는 중에 종료되어 다시 기동되었다면 이전에 모니터링하던 서버를 계속 모니터링하기 위한 작업을 한다. 이때는 다음과 같은 로그가 발생한다.

JEUS_HOME/bin$ startNodeManager
**************************************************************
  - JEUS Home         : /home/jeus/jeus8
  - Added Java Option :
  - Java Vendor       : Sun
**************************************************************
...
[2016.07.28 13:59:16][2] [nodemanager-1] [NodeManager-0101] The node manager is starting.
[2016.07.28 13:59:16][2] [nodemanager-1] [NodeManager-0102] Initializing the node manager configuration.
[2016.07.28 13:59:16][2] [nodemanager-1] [NodeManager-0108] Beginning to listen:localhost/127.0.0.1:7730.
[2016.07.28 13:59:16][2] [nodemanager-1] [NodeManager-0115] Domain=[domain1], Server=[adminServer]
[2016.07.28 13:59:16][2] [nodemanager-10] [NodeManager-0109] Processing the request......
[2016.07.28 13:59:16][2] [nodemanager-1] [NodeManager-0115] Domain=[domain1], Server=[server1]
[2016.07.28 13:59:16][2] [nodemanager-11] [NodeManager-0137] Beginning to monitor the server[adminServer] in the domain[domain1].
[2016.07.28 13:59:16][2] [nodemanager-12] [NodeManager-0137] Beginning to monitor the server[server1] in the domain[domain1].
[2016.07.28 13:59:16][2] [nodemanager-11] [NodeManager-0145] The process is alive(Server=adminServer, Process ID=4856).
[2016.07.28 13:59:17][2] [nodemanager-12] [NodeManager-0145] The process is alive(Server=server1, Process ID=5376).

참고

노드 매니저를 기동할 때 DAS를 같이 기동할 수도 있다. 도메인을 구성하고 처음으로 노드 매니저를 띄우려고 할 때 DAS 기동 옵션을 준 경우 해당 노드에 DAS를 기동시켜준다.

startNodeManager -h로 사용할 수 있는 옵션을 확인할 수 있다.

Java 타입 노드 매니저 종료

Java 타입의 노드 매니저를 종료하는 방법은 스크립트를 사용하거나 콘솔 툴을 사용할 수 있다.

  • 스크립트 사용

    기동할 때와 마찬가지로 스크립트를 통해 노드 매니저를 종료할 수 있다. stopNodeManager를 실행하면 Java 타입 노드 매니저가 종료된다.

    JEUS_HOME/bin$ stopNodeManager -host localhost -port 7730
    ******************************************************************
      - Usage : stopNodeManager -host host -port port
    ******************************************************************
    Succeed to stop the node manager.

    노드 매니저를 종료할 때 -properties 옵션을 통해 jeusnm.xml 파일의 경로를 줄 수도 있다. 노드 매니저 설정 파일로부터 host와 port 정보를 읽어 노드 매니저를 종료시켜준다.

    JEUS_HOME/bin$ stopNodeManager -properties JEUS_HOME/nodemanager/jeusnm.xml
    ******************************************************************
      - Usage : stopNodeManager -host host -port port
    ******************************************************************
    Succeed to stop the node manager.
  • 콘솔 툴 사용

    콘솔 툴을 통해 nm-stop 명령을 실행하면 노드 매니저가 종료된다. nm-stop 명령에 대한 자세한 사용법은 JEUS Reference Book”의 “4.2.16.6. stop-nodemanager”를 참고한다.

    JEUS_HOME/bin$ jeusadmin
    JEUS8 Administration Tool
    To view help, use the 'help' command.
    offline>nm-stop -host localhost -port 7730
    Succeed to stop the node manager.

2.6. Java 타입 노드 매니저를 통한 서버 제어

Java 타입 노드 매니저를 통해 서버를 제어할 수 있다. 본 절에서는 WebAdmin과 콘솔 툴을 사용한 서버 제어 방법에 대해 설명한다.

WebAdmin 사용

WebAdmin을 통해 서버를 기동하면 DAS가 서버를 기동하려는 머신의 노드 매니저에 접속해서 서버 기동 명령을 보내주고, 노드 매니저는 서버를 해당 머신에 기동시킨다.

  1. WebAdmin의 메인 화면에서 [Servers]를 선택하면 서버 목록이 조회된다.

    참고

    서버를 기동하는 방법은 [Servers] 메뉴 외의 [Monitoring] > [Servers] 메뉴를 이용할 수도 있다. 해당 메뉴를 사용하는 방법은 “제3장 SSH 타입 노드 매니저”를 참고한다.

  2. 기동할 서버의 [start] 버튼을 클릭하면 Start Server 화면에서 서버 기동에 대한 옵션을 설정할 수 있다. 필요한 사항을 설정하고 [확인] 버튼을 클릭해서 서버를 기동시킨다.

  3. Servers 화면 상단에 서버가 성공적으로 기동되었다는 메시지와 함께 서버 목록에서 서버의 상태가 RUNNING으로 변경된 것을 확인할 수 있다.

콘솔 툴 사용

노드 매니저가 서버를 기동/종료시키고 서버의 상태를 확인하는 등의 제어는 콘솔 툴을 사용할 수도 있다.

콘솔 툴을 통해 서버를 제어하려면 먼저 콘솔 툴과 노드 매니저가 연결된 상태여야 하고 필요한 작업이 완료되면 접속을 종료한다.

  • 노드 매니저에 접속

    nm-connect 명령을 사용해서 노드 매니저에 접속한다.

    JEUS_HOME/bin$ jeusadmin
    JEUS8 Administration Tool
    To view help, use the 'help' command.
    offline>nm-connect -host localhost -port 7730 -domain domain1
    The connection to the node manager domain1 has been established.
    [NodeManager]domain1>

  • 노드 매니저를 통한 서버 기동

    nm-start-server 명령을 사용해서 서버를 기동한다.

    [NodeManager]domain1>nm-start-server -server adminServer -u jeus -p jeus
    succeed to start server[adminServer].
      RUNNING
    [NodeManager]domain1>nm-start-server -server server1 -u jeus -p jeus 
    -dasurl 192.168.0.4:9736
    succeed to start server[server1].
      RUNNING

    다음과 같이 nm-start-server 명령으로 노드 매니저에 접속하는 것까지 한 번에 수행할 수도 있다.

    JEUS_HOME/bin$ jeusadmin
    offline>nm-start-server -host localhost -port 7730 -domain domain1 -server adminServer -u jeus -p jeus
    succeed to start server[adminServer].
      RUNNING
  • 스크립트로 노드 매니저의 제어를 받는 DAS 기동

    DAS에 한해서는 노드 매니저를 통해 서버를 기동하지 않아도 노드 매니저와 연결하고 노드 매니저의 제어를 받게 할 수 있다. startDomainAdminServerNM 스크립트를 사용하면 노드 매니저로 연결하고 DAS 기동 명령을 내려 노드 매니저가 DAS를 기동시키게 된다. 콘솔 툴에서 노드 매니저로 접속하고 서버를 기동하는 두 번의 명령을 하나의 스크립트로 제공하는 것이다.

    참고

    startDomainAdminServer 스크립트를 통해 DAS를 기동한 경우에도 노드 매니저의 관리를 받을 수 있다. DAS는 기동된 후 노드 매니저에 연결을 시도해서 자신의 정보를 등록한다. 노드 매니저에 DAS의 정보가 등록되면 노드 매니저에서 DAS의 비정상 상태를 파악하고 재기동하는 등의 제어가 가능해진다.
    JEUS_HOME/bin$ startDomainAdminServerNM -host 192.168.0.26 -port 7730 -domain domain1 -server adminServer -u jeus -p jeus
    ********************************************************************************
      - Usage : startDomainAdminServerNM -host host -port port -domain domain -server 
    server1 -u username -p password
    ********************************************************************************
    
    succeed to start server[adminServer].
      RUNNING

  • 노드 매니저를 통한 서버 상태 확인

    nm-state-server 명령을 사용해서 서버 상태를 확인할 수 있다.

    [NodeManager]domain1>nm-state-server -server adminServer -u jeus -p jeus
    server[adminServer] :  RUNNING
    [NodeManager]domain1>nm-state-server -server server1 -u jeus -p jeus
    server[server1] :  RUNNING

  • 노드 매니저를 통한 서버 종료

    nm-stop-server 명령을 사용해서 서버를 종료할 수 있다.

    [NodeManager]domain1>nm-stop-server -server server1 -u jeus -p jeus
    succeed to stop server[server1].
    [NodeManager]domain1>nm-stop-server -server adminServer -u jeus -p jeus
    succeed to stop server[adminServer].

  • 노드 매니저와 접속 종료

    nm-disconnect 명령을 사용해서 노드 매니저와 접속을 종료한다.

    [NodeManager]domain1>nm-disconnect
    disconnect to node manager.
    offline>

  • DAS 접속 모드에서 서버 기동

    start-server 명령을 통해 MS를 기동할 때 노드 매니저를 통해서 서버를 기동한다.

    [DAS]domain1.adminServer>start-server server1
    The server [server1] was successfully started.

참고

콘솔 툴에서 Java 타입 노드 매니저에 접속/종료 명령과 Java 타입 노드 매니저를 통한 서버 제어 명령에 대한 자세한 사용 방법은 JEUS Reference Book”의 “4.2.15. 노드 관리 관련 명령어”를 참고한다.

2.7. 로그 파일

노드 매니저의 로그는 JEUS_HOME/nodemanager/logs 하위에 JeusNodeManager.log라는 파일에 남겨진다. 노드 매니저에서 서버를 기동하거나 모니터링하면서 발생하는 로그 메시지들을 기록한다. 또한 서버가 기동되면서 서버에서 발생하는 부팅 로그 메시지도 기록된다.

노드 매니저의 로그 레벨을 설정하려면 노드 매니저를 기동하는 스크립트에 다음과 같이 설정할 수 있다.

-Djeus.nodemanager.log.level=FINEST

로그와 로그 레벨에 대한 자세한 내용은 JEUS Server 안내서”의 “제8장 Logging”을 참고한다.