Sun Java System Application Server 9.1 빠른 시작 설명서

5장 고가용성 페일오버 설정

이전 장에서 사용된 구성을 사용하면 서버 인스턴스가 다운될 경우 세션 상태가 손실될 수 있습니다. 두 고급 항목 중 두 번째인 이 절에서는 고가용성 데이터베이스(HADB) 설치, 고가용성 클러스터 만들기 및 HTTP 세션 지속성 테스트를 위한 절차를 제공합니다.

GlassFish v2는 HADB를 제공하지 않습니다. GlassFish에서는 고가용성과 페일오버를 위해 메모리 내 복제 기능을 제공합니다.

Application Server에서는 HTTP 세션 지속성과 Stateful Session Bean의 지속성을 모두 지원합니다. 이 장의 절차에서는 메모리 내 복제 또는 HADB를 이용한 고가용성에 대해 설명합니다.

이러한 절차는 이 빠른 시작의 앞부분에 설명된 단계를 이미 수행한 것으로 가정합니다. 각 단계는 마쳐야 하는 순서 순으로 표시되어 있습니다. HADB 기능을 사용하려면 엔터프라이즈 프로필을 사용하여 도메인을 실행 중이어야 합니다.


주 –

이 절의 절차를 마치려면 하드웨어 자원이 추가로 필요할 수 있습니다.


이 항목은 다음 내용으로 구성됩니다.

고가용성 클러스터와 HADB

Sun Java System Application Server의 고가용성 클러스터는 상태 복제 서비스를 앞서 만든 클러스터 및 로드 밸런서와 통합하여 HTTP 세션의 페일오버를 가능하게 합니다.

HttpSession 객체와 Stateful Session Bean 상태는 세션 상태를 저장하기 위한 고가용성 데이터베이스인 HADB에 저장됩니다. 수평 확장이 가능한 이 상태 관리 서비스는 Application Server 계층과 별도로 관리할 수 있으며 로드 균형 조정, 페일오버 및 상태 복구 기능을 통해 최고 99.999%의 서비스 및 데이터 가용성을 지원하도록 설계되었습니다.

Application Server와 별도로 상태 관리를 수행하면 큰 이점을 얻을 수 있습니다. Application Server 인스턴스는 외부 고가용성 상태 서비스에 상태 복제를 위임하는 확장 가능하고 성능이 뛰어난 JavaTM Platform, Enterprise Edition 5(Java EETM 5 플랫폼) 컨테이너의 역할을 수행합니다. 이와 같이 구조가 느슨하게 결합되어 있으므로 Application Server 인스턴스를 클러스터에서 쉽게 추가 또는 삭제할 수 있습니다. HADB 상태 보존형 복제 서비스는 최적의 가용성 및 성능을 위해 독립적으로 확장될 수 있습니다. 또한 Application Server 인스턴스가 복제를 수행하면 J2EE 응용 프로그램의 성능이 저하될 수 있으며 가비지 모음이 더 오랫동안 중단될 수 있습니다.

각 HADB 노드에는 512MB의 메모리가 필요하므로 같은 시스템에서 두 개의 HADB 노드를 실행하려면 1GB의 메모리가 있어야 합니다. 메모리가 부족하면 노드를 각각 다른 시스템에 설치합니다. 내결함성이 없으므로 하나의 호스트에서 2노드 데이터베이스를 실행하여 배포하는 것은 권장하지 않습니다.

HADB 사전 설치 절차

이 절차에서는 가장 일반적인 사전 설치 작업을 설명합니다. HADB 설치, 네트워크 중복 구성 및 파일 시스템 지원을 위한 필수 항목 등 다른 사전 설치 항목에 대한 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서의 2 장, 고가용성 데이터베이스 설치 및 설정을 참조하십시오.

이 절의 권장 시스템 구성 값은 최대 6개의 HADB 노드를 실행하는 데 충분한 값으로, 공유 메모리를 함께 사용하는 시스템의 다른 응용 프로그램은 고려하지 않았습니다.

ProcedureHADB를 위한 시스템을 구성하는 방법

  1. 루트로 액세스합니다.

  2. 공유 메모리 및 세마포와 관련된 변수를 정의합니다.

    • Solaris의 경우:

      1. /etc/system 파일에 다음 줄을 추가합니다. 다음 줄이 파일에 주석으로 포함되어 있는 경우에는 주석 처리를 제거하고 값이 일치하는지 확인합니다.

        set shmsys:shminfo_shmmax=0x80000000

        set shmsys:shminfo_shmseg=36

        set semsys:seminfo_semmnu=600

        shminfo_shmmax를 시스템의 전체 메모리로 설정합니다(16진수로 표시된 0x80000000 값은 2GB의 메모리를 나타냄).

        이미 seminfo_* 변수가 정의되어 있는 경우에는 표시된 양만큼 증분합니다. seminfo_semmniseminfo_semmns의 기본값은 변경할 필요가 없습니다. shminfo_shmeg 변수는 Solaris 8 이후에 더 이상 사용되지 않습니다.

      2. 다음 명령을 사용하여 재부트합니다.

        sync; sync; reboot

    • Linux의 경우:

      1. /etc/sysctl.conf 파일에 다음 줄을 추가합니다. 다음 줄이 파일에 주석으로 포함되어 있는 경우에는 주석 처리를 제거합니다. 값을 시스템의 실제 메모리 크기로 설정합니다. 값을 십진 바이트 값으로 지정합니다. 예를 들어 실제 메모리가 2GB인 시스템의 경우에는 다음과 같습니다.

        echo 2147483648 > /proc/sys/shmmax

        echo 2147483648 > /proc/sys/shmall

      2. 다음 명령을 사용하여 재부트합니다.

        sync; sync; reboot

    • Windows의 경우: 특별한 시스템 설정이 필요하지 않습니다.

  3. 독립 실행형 Application Server를 설치할 때 기존 JDK 소프트웨어를 사용한 경우에는 JDK 버전을 확인합니다.

    HADB를 사용하려면 Sun JDK 1.4.1_03 이상이 필요합니다(JDK 버전에 대한 최신 정보는 Sun Java System Application Server 9.1 릴리스 노트 참조). 설치된 버전을 확인하고 아직 설정하지 않은 경우 JAVA_HOME 환경 변수를 JDK가 설치된 디렉토리로 설정합니다.

  4. 필요한 경우 재부트한 후 도메인, Web Server 및 노드 에이전트를 다시 시작합니다.

    도메인을 다시 시작하려면 asadmin start-domain domain1 명령을 사용합니다.

    Web Server를 다시 시작하려면 web_server_install_dir/https- hostname에서 시작 프로그램을 실행합니다.

    노드 에이전트를 다시 시작하려면 asadmin start-node-agent hostname 명령을 사용합니다. hostname 변수를 Application Server가 실행 중인 호스트의 이름으로 바꿉니다.

HADB 설치

이 절에서는 고가용성 데이터베이스(HADB)를 설치하는 절차를 제공합니다.


주 –

Application Server 시스템에서 고가용성 데이터베이스를 실행하려고 하거나 Application Server를 설치할 때 HADB를 설치한 경우 HADB 시작으로 건너뜁니다.


2GB의 메모리와 1~2개의 CPU가 있으면 Application Server 시스템과 동일한 시스템에 HADB 구성 요소를 설치할 수 있습니다. 그렇지 않은 경우 추가 하드웨어를 사용합니다. 예를 들면 다음과 같습니다.

ProcedureHADB를 설치하는 방법

  1. Application Server 또는 Java Enterprise System 설치 프로그램을 실행합니다.

  2. HADB를 설치할 옵션을 선택합니다.

  3. 호스트에서 설치를 완료합니다.

HADB 시작

이 절에서는 대부분의 경우에 ma-initd 스크립트를 실행하여 HADB 관리 에이전트를 시작하는 방법에 대해 설명합니다. 프로덕션 배포의 경우 가용성 확보를 위해 관리 에이전트를 서비스로 시작합니다. 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서HADB 관리 에이전트 시작을 참조하십시오.

여러 호스트에 있는 HADB 노드를 사용하여 데이터베이스를 시작하는 경우에는 각 호스트에서 관리 에이전트를 시작합니다.

ProcedureSolaris 또는 Linux의 Java Enterprise System 설치에서 HADB를 시작하는 방법

  1. /etc/init.d 디렉토리로 이동합니다.

    cd /etc/init.d

  2. 다음 명령을 실행하여 에이전트를 시작합니다.

    ./ma-initd start

ProcedureWindows의 Java Enterprise System 설치에서 HADB를 시작하는 방법

Sun Java System이 구성되어 실행 중이면 HADB가 기본적으로 시작됩니다. 그러나 수동으로 시작해야 할 경우에는 다음 절차를 수행합니다.

  1. 시작 ⇒ 설정 ⇒ 제어판으로 이동하여 관리 도구를 두 번 누릅니다.

  2. 서비스 바로 가기를 두 번 누릅니다.

  3. 서비스 목록에서 HADBMgmtAgent 서비스를 선택합니다.

  4. 동작 메뉴에서 시작을 선택합니다.

ProcedureSolaris 또는 Linux의 독립 실행형 설치에서 HADB를 시작하는 방법

  1. Application Server 설치에서 HADB bin 디렉토리로 이동합니다: install-dir/hadb/4/bin

  2. 다음 명령을 실행하여 에이전트를 시작합니다.

    ./ma-initd start

ProcedureWindows의 독립 실행형 설치에서 HADB를 시작하는 방법

  1. 단말기 창에서 Application Server 설치의 HADB bin 디렉토리로 이동합니다: install-dir\hadb\4. x\bin

    x는 HADB의 릴리스 번호를 나타냅니다.

  2. 다음 명령을 실행하여 에이전트를 시작합니다.

    ma -i ma.cfg

고가용성을 위한 클러스터 및 응용 프로그램 구성

HTTP 세션 지속성을 확인하기 위해서는 FirstCluster 클러스터에서 HADB를 사용하도록 구성해야 하고 clusterjsp 응용 프로그램에 대해 고가용성을 활성화해야 합니다. asadmin configure-ha-cluster 명령을 사용하여 기존 클러스터에서 고가용성을 사용하도록 구성합니다. 이 명령을 사용하는 방법에 대한 자세한 내용은 asadmin 명령 프롬프트에서 configure-ha-cluster --help를 입력하거나 configure-ha-cluster(1) 설명서 페이지를 참조하십시오.

클러스터 다시 시작

이전 절의 변경 사항을 적용하기 위해 클러스터 인스턴스를 다시 시작해야 합니다.

Procedure클러스터를 다시 시작하는 방법

  1. 관리 콘솔 트리에서 클러스터 노드를 확장합니다.

  2. FirstCluster를 누릅니다.

  3. 오른쪽 영역에서 인스턴스 중지를 누릅니다.

  4. 인스턴스가 중지되면 인스턴스 시작을 누릅니다.

HTTP 세션 페일오버 확인

세션 데이터 페일오버를 테스트하는 절차는 로드 균형 조정 확인 항목에 설명된 로드 균형 조정 테스트 절차와 비슷합니다. 오류가 발생한 후에 해당 시간 세션 데이터가 보존됩니다. 샘플 응용 프로그램은 오류가 발생한 후 자동으로 재시도하도록 구성되어 있으므로 페일오버가 사용자에게 투명합니다.

ProcedureHTTP 세션 페일오버를 확인하는 방법

  1. clusterjsp 응용 프로그램의 첫 페이지를 표시하기 위해 브라우저에 다음 URL을 입력합니다.

    http://localhost :web_server_port /clusterjsp

    localhost 변수를 Web Server가 실행되고 있는 시스템 이름으로 바꿉니다.

    web_server_port 변수를 web_server_install_dir /https-hostname/config/server.xml에 있는 LS 요소의 포트 속성 값으로 바꿉니다. 이 예에서는 포트 38000이 사용됩니다.

    응용 프로그램 배포를 확인하는 방법에 표시된 것과 비슷한 페이지가 나타납니다.

  2. 표시된 세션 및 호스트 정보를 검토합니다. 예를 들면 다음과 같습니다.

    • Executed From Server: localhost

    • Server Port Number: 38000

    • Executed Server IP Address: 192.18.145.133

    • Session ID: 41880f618e4593e14fb5d0ac434b1

    • Session Created: Wed Feb 23 15:23:18 PST 2005

  3. 서버 액세스 로그 파일에서 응용 프로그램을 처리하는 응용 프로그램 서버 인스턴스를 확인합니다. 로그 파일은 다음 위치에 있습니다.

    • Solaris Java Enterprise System 설치:

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /i1/logs/access/server_access_log

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /i2/logs/access/server_access_log

    • Linux Java Enterprise System 설치:

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/i1/logs/access/server_access_log

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/i2/logs/access/server_access_log

    • Windows Java Enterprise System 설치:

      install-dir \nodeagents\nodeagent_name\i1\logs\access\server_access_log

      install-dir\nodeagents\nodeagent_name \i2\logs\access/server_access_log

    • 독립 실행형 Application Server 설치:

      install-dir /nodeagents/nodeagent_name/i1/logs/access/server_access_log

      install-dir/nodeagents/nodeagent_name /i2/logs/access/server_access_log

  4. 페이지를 처리하고 있는 Application Server 인스턴스를 중지합니다.

    1. 관리 콘솔의 왼쪽 영역에서 클러스터를 확장합니다.

    2. FirstCluster를 누릅니다.

    3. 오른쪽 영역에서 인스턴스 탭을 누릅니다.

    4. 요청을 처리한 서버 인스턴스 옆에 있는 확인란을 누르고 중지 버튼을 누릅니다.

  5. clusterjsp 샘플 응용 프로그램 페이지를 다시 로드합니다.

    세션 ID와 세션 속성 데이터가 보존됩니다.

  6. 다른 Application Server 인스턴스의 액세스 로그를 확인해 보면 해당 인스턴스가 요청을 처리하고 있음을 알 수 있습니다.

    HTTP 세션이 HADB에 영구적으로 저장되기 때문에 상태 페일오버 기능이 작동합니다. Application Server에서는 HTTP 세션 상태뿐만 아니라 HADB에 EJB 상태를 저장할 수도 있습니다.

다음 순서

축하합니다. Application Server 빠른 시작을 마쳤습니다.

이 절에서는 HADB를 설치, 구성 및 시작했고 고가용성을 사용하도록 클러스터와 응용 프로그램을 구성했습니다. Application Server에 대한 자세한 내용은 다음 작업을 참조하십시오.