내용 목차
다양한 이유로 서버가 비정상 종료될 수 있지만 클러스터를 구성하여 서버가 비정상 종료되는 경우에 서비스의 문제를 최소화 할 수 있다. 본 장에서는 서버가 비정상 종료될 경우의 문제점과 극복 방안에 대해서 설명한다.
DAS가 비정상 종료되어도, Managed Server(MS)의 서비스는 영향을 받지 않고 동작한다. DAS가 위치한 머신에 장애가 발생하여 DAS가 비정상 종료된 상태라면, 그 머신에 함께 존재하는 MS들도 영향을 받아 비정상 종료될 가능성이 높다. 그러나 DAS 자체의 비정상 종료가 도메인 내에 존재하는 MS의 서비스에 영향을 주지는 않는다.
DAS가 비정상 종료된 경우에는 DAS의 역할이었던 설정의 변경이나, 애플리케이션의 추가 및 변경 등은 DAS가 다시 시작될 때까지 기능을 할 수 없다. DAS가 다시 시작되어 MS로 이벤트를 주면 MS는 다시 DAS의 관리를 받을 수 있다.
DAS와 연결이 안되는 상태에서 MS를 시작하려고 한다면 DAS의 설정으로 시작될 수 없고, MS가 가지고 있는 로컬 Cache를 사용하게 된다. 즉, 기존에 한 번 이상 DAS와 연결을 맺은 적이 있어, DAS로부터 받은 파일을 로컬에 가지고 있는 경우에만 해당된다. 로컬 Cache를 이용하여 MS를 시작한 뒤에 DAS가 다시 시작되었을 때 DAS의 파일과 동기화하게 된다. 물론 MS가 DAS와 같은 머신에 존재하여 도메인 디렉터리를 공유한다면 DAS가 종료되어 있을 때에도 DAS와 같은 설정으로 MS를 시작할 수 있다.
DAS가 비정상 종료되어도 서비스에는 지장이 없지만 몇 가지 기능이 제한된다. 따라서 DAS를 빨리 복구시켜야 하는데, DAS가 현 상태 그대로 다시 시작할 수 없는 경우가 있다. 예를 들면 머신 자체가 비정상 종료된 경우에는 머신이 복구되기 전까지는 DAS를 재시작할 수가 없다.
이런 경우를 대비하여 DAS가 가지고 있는 파일들 즉, DAS에서 유지해야 하는 설정과 애플리케이션을 평소에 백업해둘 수 있다. 미리 백업해 둔 DAS의 파일들을 다른 머신에 복사하여 새로운 머신에서 DAS를 시작할 수 있다. 단, 백업한 애플리케이션을 다른 머신에서 사용하기 위해서는 JEUS_HOME 경로가 기존 머신의 JEUS_HOME과 같아야 한다.
DAS의 설정 및 애플리케이션을 백업하는 방법은 크게 두 가지를 제공한다.
백업 설정을 통한 자동 백업은 DAS가 기동할 때에 자동으로 로컬, 혹은 리모트 노드에 백업 파일을 복사한다. 그리고 pack-domain 명령어는 원하는 때에 백업 파일을 만들 수 있는 기능이다. 이 경우에 만들어진 파일은 사용자가 관리해야 한다.
DAS가 시작할 때마다 자동으로 DAS의 설정 및 애플리케이션을 백업한다. 도메인 백업 설정은 WebAdmin을 통해서 혹은 콘솔 툴(jeusadmin)을 통하여 설정할 수 있다.
WebAdmin 사용
WebAdmin의 Domain 화면에서 도메인 백업에 대한 설정을 할 수 있다. 사용자는 도메인 백업을 사용할지 여부와 백업될 디렉터리, 저장될 노드를 설정할 수 있다. 노드가 설정된 경우에는 백업될 디렉터리는 해당 노드의 디렉터리를 의미하고, 설정되지 않은 경우에는 로컬 디렉터리를 의미한다. 만약 설정된 노드에 옮길 수 없는 경우에는 domains home에 위치시키게 된다.
[backup domain] 버튼은 도메인 자동 백업 설정 버튼이 아니라 명시적 백업을 수행한다.
콘솔 툴 사용
다음과 같이 set-domain-backup 명령어를 사용하여 DAS 시작 시점에 DAS 백업 파일을 만들 수 있도록 설정할 수 있다.
[DAS]domain1.adminServer>set-domain-backup -backupOnBoot true
Successfully performed the MODIFY operation for Domain Backup Policy.
Check the results using "set-domain-backup"
이렇게 백업된 파일은 기본적으로 pack-domain을 통하여 만든 파일과 동일하고, 설정된 node에서 혹은 로컬에 저장된 파일을 이용하여 원하는 node에서 unpack-domain을 통하여 사용할 수 있다.
DAS의 설정 및 애플리케이션의 백업
다음과 같이 pack-domain 명령어를 사용하여 DAS의 설정 및 애플리케이션을 백업한다.
offline>pack-domain domain1
Packing the domain [domain1] configuration completed successfully at the path [JEUS_HOME/domains/domain1_packed.zip].
같은 명령을 WebAdmin의 Domain 화면에서 backup domain 버튼을 통해서도 수행할 수 있다.
새로운 머신에 백업한 DAS의 설정 및 애플리케이션 적용
다음과 같이 unpack-domain 명령어를 사용하여 백업한 파일의 압축을 푼다. unpack-domain 명령어를 사용할 때 DAS의 IP, Port, Node 정보를 변경할 수 있다.
offline>unpack-domain domain1
The Domain Administration Server listener address is already set to [192.168.34.55]. Do you want to change it? (y/n): y
Enter the Domain Administration Server base listener address: 192.168.34.56
The Domain Administration Server listener port is already set to [9736]. Do you want to change it? (y/n): n
The Domain Administration Server nodename is already set to [node1]. Do you want to change it? (y/n): y
Enter the Domain Administration Server nodename: node2
The nodemanager of DAS machine listener address is already set to [192.168.34.56]. Do you want to change it? (y/n): n
The nodemanager of DAS machine listener port is already set to [7730]. Do you want to change it? (y/n): n
Unpacking the domain [domain1] configuration completed successfully.
새로운 머신에서 기존과 같은 설정으로 DAS가 시작되면, INDEPENDENT 모드로 있던 MS들이 DAS로부터 설정과 애플리케이션을 동기화하고, DAS의 관리를 받게 되어 INDEPENDENT 모드에서 해제된다.
pack-domain, unpack-domain, set-domain-backup 명령어에 대한 자세한 사용 방법은 각각 ????과 ????과 ????을 참고한다.
MS의 서비스가 DAS의 비정상 종료로 인한 영향을 받지 않기 위해 MS는 DAS의 존재 여부에 의존하지 않고 서비스를 수행한다.
MS의 설정과 애플리케이션의 로컬 Cache는 서버가 시작할 때 DAS로부터 동기화해서 가지고 있고, 변경될 때마다 DAS와 동기화한다. 그러나 MS가 시작될 때 DAS와 연결되지 않은 경우에는 로컬 Cache를 이용하여 시작되는데, 이것을 INDEPENDENT 모드라고 한다. 이 상태에서 MS는 DAS의 제어를 받을 수 없고, DAS 또한 해당 MS를 모니터링할 수 없다. 이는 DAS가 실제로 비정상 종료된 경우와 DAS의 주소를 잘못 설정했거나 네트워크 관련 오류로 연결에 문제가 발생한 경우가 해당된다.
DAS가 재시작되어 MS가 이벤트를 받게 되면 다시 DAS의 관리를 받게 되는 모드로 변경된다.