Sun Java System Application Server Enterprise Edition 8.1 2005Q2 고가용성 관리 설명서

HADB 설정 준비

이 절에서는 다음 항목에 대해 설명합니다.

필수 사항

HADB를 설정 및 구성하기 전에 작업 환경이 다음 요구 사항을 만족하는지 확인하십시오.

네트워크 중복 구성

중복 네트워크를 구성하면 단일 네트워크 장애가 발생해도 HADB가 사용 가능한 상태를 유지합니다. 다음의 두 가지 방식으로 중복 네트워크를 구성할 수 있습니다.

네트워크 다중 경로 설정

네트워크 다중 경로를 설정하기 전에 IP Network Multipathing Administration Guide의 Administering Network Multipathing 절을 참조하십시오.

Procedure이미 IP 다중 경로를 사용하는 HADB 호스트 시스템 구성

  1. 네트워크 인터페이스 실패 감지 시간을 설정합니다.

    HADB가 다중 경로 페일오버를 제대로 지원하기 위해서는 네트워크 인터페이스 실패 감지 시간이 /etc/default/mpathdFAILURE_DETECTION_TIME 매개 변수에 지정된 대로 1초(1000밀리초)를 초과해서는 안 됩니다. 원래 값이 큰 경우 파일을 편집하여 이 매개 변수의 값을 1000으로 변경합니다.


    FAILURE_DETECTION_TIME=1000

    변경 내용을 적용하려면 다음 명령을 사용하십시오.


    pkill -HUP in.mpathd
  2. HADB에서 사용하도록 IP 주소를 설정합니다.

    IP Network Multipathing Administration Guide에 설명된 대로 다중 경로는 물리적 네트워크 인터페이스를 다중 경로 인터페이스 그룹으로 그룹화하는 것입니다. 해당 그룹 내의 물리적 인터페이스는 물리적 인터페이스 주소와 테스트 주소 등

    • 데이터 전송에 사용되는 물리적 인터페이스 주소

    • Solaris 내부용으로 사용되는 테스트 주소

    hadbm create --hosts를 사용할 때는 다중 경로 그룹에서 물리적 인터페이스 주소를 하나만 지정합니다.


예 2–1 다중 경로 설정

이름이 host1 및 host2인 두 개의 호스트 시스템이 있고 각 시스템에 두 개의 물리적 네트워크 인터페이스가 있는 경우 두 인터페이스를 다중 경로 그룹으로 설정합니다. 각 호스트에서 ifconfig -a를 실행합니다.

host1에서 다음과 같은 결과가 출력됩니다.


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255

host2에서 다음과 같은 결과가 출력됩니다.


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255

이 예에서는 두 호스트의 물리적 네트워크 인터페이스가 bge0bge1 뒤에 나열됩니다. bge0:1bge1:1 뒤에 나열되는 인터페이스는 IP Network Multipathing Administration Guide에 설명된 대로 다중 경로 테스트 인터페이스(ifconfig 출력에 DEPRECATED로 표시됨)입니다.

이 환경에서 HADB를 설정하려면 각 호스트에서 물리적 인터페이스 주소 하나를 선택합니다. 이 예에서 HADB는 host1의 IP 주소 129.159.115.10과 host2의 129.159.115.20을 사용합니다. 호스트당 데이터베이스 노드가 하나인 데이터베이스를 만들려면 hadbm create --host 명령을 사용합니다. 예를 들면 다음과 같습니다.


hadbm create --host 129.159.115.10,129.159.115.20

각 호스트에 데이터베이스 노드가 두 개인 데이터베이스를 만들려면 다음 명령을 사용합니다.


hadbm create --host 129.159.115.10,129.159.115.20,
129.159.115.10,129.159.115.20

두 가지 경우에 별도의 매개 변수를 사용하여 host1 및 host2의 에이전트가 사용할 시스템의 인터페이스를 지정하도록 에이전트를 구성해야 합니다. 따라서 host1에서는 다음을 사용합니다.


ma.server.mainternal.interfaces=129.159.115.10

또한 host2에서는 다음을 사용합니다.


ma.server.mainternal.interfaces=129.159.115.20

ma.server.mainternal.interfaces 변수에 대한 자세한 내용은 구성 파일을 참조하십시오.


이중 네트워크 구성

단일 네트워크 장애를 허용하도록 HADB를 활성화하려면 운영 체제(예: Solaris)에서 지원할 경우 IP 다중 경로를 사용합니다. Windows Server 2003의 경우 이중 네트워크에서 제대로 작동하지 않으므로 이 운영 체제에서는 이중 네트워크를 사용하여 HADB를 구성하지 않도록 합니다.

운영 체제가 IP 다중 경로에 대해 구성되지 않았으며 HADB 호스트에 두 개의 NIC가 장착되어 있으면 이중 네트워크를 사용하도록 HADB를 구성할 수 있습니다. 모든 호스트에 대해 각 네트워크 인터페이스 카드(NIC)의 IP 주소가 별도의 IP 서브넷에 있어야 합니다.

데이터베이스 내에서 모든 노드가 단일 네트워크에 연결되어 있거나 모든 노드가 두 개의 네트워크에 연결되어 있어야 합니다.


주 –

서브넷 간 라우터는 서브넷 간에 UDP 멀티캐스트 메시지를 전달하도록 구성되어야 합니다.


HADB 데이터베이스를 만들 때 –hosts 옵션을 사용하여 각 노드, 즉 각 NIC IP 주소에 대해 하나씩 두 개의 IP 주소나 호스트 이름을 지정합니다. 노드마다 첫 번째 IP 주소는 net-0에 있고 두 번째 주소는 net-1에 있습니다. 구문은 다음과 같습니다. 이 경우 동일한 노드에 대한 호스트 이름을 플러스 기호(+)로 구분해서 입력합니다.

--hosts=node0net0name+node0net1name
,node1net0name+node1net1name
,node2net0name+node2net1name
, ...

예를 들어, 다음 인수는 각각 두 개의 네트워크 인터페이스를 갖는 두 개의 노드를 만듭니다. 이러한 노드를 만드는 데 다음 호스트 옵션이 사용됩니다.

--hosts 10.10.116.61+10.10.124.61,10.10.116.62+10.10.124.62

따라서 네트워크 주소는 다음과 같이 지정됩니다.

10.10.116.6110.10.116.62가 동일한 서브넷에 있고, 10.10.124.6110.10.124.62가 동일한 서브넷에 있습니다.

이 예에서 관리 에이전트는 동일한 서브넷을 사용해야 합니다. 따라서 구성 변수 ma.server.mainternal.interfaces 10.10.116.0/24 등으로 설정해야 합니다. 이러한 설정은 이 예의 두 에이전트에 사용될 수 있습니다.

공유 메모리 및 세마포 구성

HADB를 설치하기 전에 공유 메모리 및 세마포를 구성해야 합니다. 절차는 운영 체제에 따라 다릅니다.

ProcedureSolaris에서 공유 메모리 및 세마포 구성

  1. 루트로 로그인합니다.

  2. 공유 메모리를 구성합니다.

    shmmax 값을 HADB 호스트 시스템의 실제 메모리 크기로 설정합니다. 최대 공유 메모리 크기는 HADB 데이터베이스 버퍼 풀의 크기보다 커야 합니다. 예를 들어, 기본 메모리가 2GB(16진수 0x8000000)인 시스템의 경우 /etc/system 파일에 다음을 추가합니다.


    set shmsys:shminfo_shmmax=0x80000000
     set shmsys:shminfo_shmseg=20

    Solaris 9 이상에서는 shmsys:shminfo_shmseg가 더 이상 사용되지 않습니다.

    shminfo_shmmax를 시스템의 전체 메모리로 설정합니다(16진수 표기 형식으로 표시된 값 0x80000000은 2GB 메모리에 해당).


    주 –

    16진수 메모리 값을 사용하여 shmsys:shminfo_shmmax 값을 지정합니다. 호스트 메모리를 결정하려면 다음 명령을 사용합니다.


    prtconf | grep Memory

  3. 세마포를 구성합니다.

    /etc/system 파일에서 세마포 구성 항목을 확인합니다. 이 파일에는 semmni, semmnssemmnu 항목이 포함되어 있을 수 있습니다. 예를 들면 다음과 같습니다.


    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    이러한 항목이 있으면 각각 16, 128, 1000을 추가하여 값을 늘립니다. 이 예에서는 항목이 다음과 같이 변경될 수 있습니다.


    set semsys:seminfo_semmni=26
    set semsys:seminfo_semmns=188
    set semsys:seminfo_semmnu=1030

    /etc/system 파일에 이러한 항목이 없으면 파일 끝에 추가합니다.


    set semsys:seminfo_semmni=16
    set semsys:seminfo_semmns=128
    set semsys:seminfo_semmnu=1000

    시스템에서 최대 16개의 HADB 노드를 실행하면 충분합니다. 16개가 넘는 노드를 설정하는 방법은 Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Performance Tuning Guide의 HADB 장을 참조하십시오.

  4. 시스템을 재부트합니다.

ProcedureLinux에서 공유 메모리 구성

  1. 루트로 로그인합니다.

  2. /etc/sysctl.conf 파일을 편집합니다.

  3. kernel.shmaxkernel.shmall 매개 변수를 설정합니다.

    kernel.shmax 매개 변수는 공유 메모리 세그먼트의 최대 크기(바이트)를 정의합니다. kernel.shmall 매개 변수는 시스템에서 한 번에 사용될 수 있는 페이지의 총 공유 메모리 양을 설정합니다. 이러한 매개 변수 값을 시스템의 실제 메모리 양으로 설정합니다. 값을 십진 바이트 값으로 지정합니다. 예를 들어, 실제 메모리가 512MB 있는 시스템의 경우는 다음과 같습니다.


    kernel.shmmax=536870912
     kernel.shmall=536870912
  4. 시스템을 재부트합니다. 시스템을 재부트합니다.

    sync; sync; reboot

Windows 절차

Windows에는 특수한 시스템 설정이 필요하지 않습니다. 그러나 기존 J2SE 설치를 사용하려면 JAVA_HOME 환경 변수를 J2SE가 설치된 위치로 설정합니다.

시스템 클럭 동기화

HADB는 시스템 클럭을 기반으로 하는 타임스탬프를 사용하므로 HADB 호스트의 클럭을 동기화해야 합니다. HADB는 시스템 클럭을 사용하여 시간 초과를 관리하고 내역 파일에 기록된 이벤트에 시간을 표시합니다. HADB는 분산 시스템이므로 문제 해결을 위해서는 모든 내역 파일을 함께 분석해야 합니다. 따라서 모든 호스트의 클럭을 동기화하는 것이 중요합니다.

HADB 시스템이 실행 중인 상태에서는 시스템 클럭을 조정하지 마십시오. 클럭을 조정하면 운영 체제 또는 기타 소프트웨어 구성 요소에서 문제가 발생할 수 있으며 이로 인해 HADB 노드의 중단 또는 다시 시작과 같은 문제가 발생할 수 있습니다. 클럭을 거꾸로 조정하면 클럭이 조정될 때 일부 HADB 서버 프로세스가 중단될 수 있습니다.

클럭 동기화

HADB에서 클럭이 2초 이상 조정되었음을 감지하면 다음과 같이 노드 내역 파일에 기록합니다.

NSUP INF 2003-08-26 17:46:47.975 Clock adjusted.
 Leap is +195.075046 seconds.

파일 시스템 지원

이 절에서는 특정 파일 시스템에서의 일부 HADB 제한 사항에 대해 설명합니다.

Red Hat Enterprise Linux

HADB는 Red Hat Enterprise Linux 3.0에서 ext2 및 ext3 파일 시스템을 지원하고 Red Hat Enterprise Linux 2.1의 경우에는 ext2 파일 시스템을 지원합니다.

Veritas 파일 시스템

Solaris에서 Veritas 파일 시스템을 사용할 경우 HADB는 내역 파일에 메시지 WRN: Direct disk I/O mapping failed를 기록합니다. 이 메시지는 HADB가 데이터 및 로그 장치에 대해 직접 입출력(I/O)을 설정할 수 없음을 나타냅니다. 직접 I/O가 설정되면 디스크 페이지를 기록하는 데 드는 CPU 비용이 줄어듭니다. 또한 운영 체제에서 "사용된" 데이터 페이지를 관리하는 오버헤드를 줄일 수 있습니다.

직접 I/O를 Veritas 파일 시스템과 함께 사용하려면 다음 중 한 가지 작업을 수행합니다.


주 –

이러한 구성은 Sun Java System Application Server에서 테스트되지 않았습니다.