Oracle® Solaris 11.2 시스템을 라우터 또는 로드 밸런서로 구성

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

ILB에서 상태 검사 모니터링

    ILB는 다음과 같은 선택적 유형의 서버 상태 검사를 제공합니다.

  • 내장 핑 프로브

  • 내장 TCP 프로브

  • 내장 UDP 프로브

  • 상태 검사로 실행할 수 있는 사용자 제공 사용자 정의 테스트

기본적으로 ILB는 상태 검사를 수행하지 않습니다. 로드 균형 조정 규칙을 만들 때 각 서버 그룹에 대해 상태 검사를 지정할 수 있습니다. 로드 균형 조정 규칙당 하나의 상태 검사만 구성할 수 있습니다. 가상 서비스가 사용으로 설정된 동안, 사용으로 설정된 가상 서비스와 연관된 서버 그룹에서 상태 검사가 자동으로 시작되고 정기적으로 반복됩니다. 가상 서비스를 사용 안함으로 설정하면 즉시 상태 검사가 중지됩니다. 가상 서비스를 다시 사용으로 설정하면 이전 상태 검사 상태는 보존되지 않습니다.

상태 검사를 실행하기 위해 TCP, UDP 또는 사용자 정의 테스트 프로브를 지정할 때 ILB는 기본적으로 핑 프로브를 보내 지정된 TCP, UDP 또는 사용자 정의 테스트 프로브를 서버로 보내기 전에 서버에 연결할 수 있는지 확인합니다. 핑 프로브가 실패하면 해당 서버가 사용 안함으로 설정되고 상태 검사 상태가 unreachable이 됩니다. 핑 프로브는 성공하지만 TCP, UDP 또는 사용자 정의 테스트 프로브가 실패하면 서버가 사용 안함으로 설정되고 상태 검사 상태는 dead가 됩니다.

UDP 프로브를 제외한 기본 핑 프로브를 사용 안함으로 설정할 수 있습니다. 핑 프로브는 항상 UDP 상태 검사에 대한 기본 프로브입니다.

상태 검사 생성

상태 검사를 만들고 로드 균형 조정 규칙을 만들 때 서버 그룹에 상태 검사를 지정할 수 있습니다. 다음 예에서는 2개의 상태 검사 객체, hc1hc-myscript가 생성됩니다. 첫번째 상태 검사는 내장 TCP 프로브를 사용합니다. 두번째 상태 검사는 사용자 정의 테스트인 /var/tmp/my-script를 사용합니다.

# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=tcp hc1
# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=/var/tmp/my-script hc-myscript

인수는 다음과 같습니다.

hc-timeout

상태 검사가 완료되지 않은 경우 실패한 것으로 간주되는 시간 초과를 지정합니다.

hc-count

hc-test 상태 검사 실행 시도 횟수를 지정합니다.

hc-interval

연속 상태 검사 사이의 간격을 지정합니다. 모든 서버에 동시에 프로브를 보내는 것을 피하기 위해 실제 간격은 0.5 * hc-interval1.5 * hc-interval 사이에서 무작위로 설정됩니다.

hc-test

상태 검사 유형을 지정합니다. 내장 상태 검사(예: tcp, udpping) 또는 전체 경로 이름으로 지정해야 하는 외부 상태 검사를 지정할 수 있습니다.


주 -  hc-test의 포트 사양은 create-rule 하위 명령의 hc-port 키워드로 지정됩니다. 자세한 내용은 ilbadm(1M) 매뉴얼 페이지를 참조하십시오.

사용자가 제공한 사용자 정의 테스트는 바이너리 또는 스크립트일 수 있습니다.

  • 테스트는 시스템의 어느 위치에나 있을 수 있습니다. create-healthcheck 하위 명령을 사용할 때는 절대 경로를 지정해야 합니다.

    create-rule 하위 명령에서 상태 검사 사양의 일부로 테스트를 지정하는 경우(예: /var/tmp/my-script) 다음과 같이 ilbd 데몬이 프로세스를 포크하고 테스트를 실행합니다.

    /var/tmp/my-script $1 $2 $3 $4 $5

    인수는 다음과 같습니다.

    $1

    VIP(리터럴 IPv4 또는 IPv6 주소)

    $2

    서버 IP(리터럴 IPv4 또는 IPv6 주소)

    $3

    프로토콜(UDP, TCP를 문자열로)

    $4

    숫자 포트 범위(hc-port에 대한 사용자 지정 값)

    $5

    테스트에서 실패를 반환하기 전에 대기해야 하는 최대 시간(초) 지정된 시간을 넘어 테스트를 실행하면 테스트가 중지될 수 있고 실패로 간주됩니다. 이 값은 사용자 정의 값으로 hc-timeout에 지정됩니다.

    • 사용자 제공 테스트는 모든 인수를 사용할 필요가 없지만, 반드시 다음 중 하나를 반환해야 합니다.

    • 마이크로초 단위의 RTT(라운드 트립 시간)

    • 테스트에서 RTT를 계산하지 않는 경우 0

    • 실패한 경우 -1

기본적으로 상태 검사 테스트는 PRIV_PROC_FORK, RIV_PROC_EXECRIV_NET_ICMPACCESS 권한으로 실행됩니다.

더 광범위한 권한 세트가 필요한 경우 테스트에 setuid를 구현해야 합니다. 권한에 대한 자세한 내용은 privileges(5) 매뉴얼 페이지를 참조하십시오.

상태 검사 나열

구성된 상태 검사에 대한 자세한 정보를 얻으려면 다음 명령을 실행합니다.

# ilbadm show-healthcheck
HCNAME      TIMEOUT COUNT   INTERVAL DEF_PING TEST
hc1         3       2       8        Y        tcp
hc2         3       2       8        N        /var/usr-script

상태 검사 결과 표시

ilbadm list-hc-result 명령을 사용하여 상태 검사 결과를 얻을 수 있습니다. 규칙이나 상태 검사가 지정되지 않은 경우 모든 상태 검사가 나열됩니다.

다음 예에는 rule1이라는 규칙과 연관된 상태 검사 결과가 표시되어 있습니다.

# ilbadm show-hc-result rule1
RULENAME   HCNAME     SERVERID   STATUS   FAIL LAST      NEXT      RTT
rule1      hc1        _sg1:0     dead     10   11:01:19  11:01:27  941
rule1      hc1        _sg1:1     alive    0    11:01:20  11:01:34  1111 

주 -  show-hc-result 명령은 규칙에 연관된 상태 검사가 있을 경우에만 상태 검사 결과를 표시합니다.

출력의 LAST 열에는 서버에서 상태 검사가 수행된 시간이 표시됩니다. NEXT 열에는 다음 상태 검사가 수행될 시간이 표시됩니다.

상태 검사 삭제

ilbadm delete-healthcheck 명령을 사용하여 상태 검사를 삭제합니다. 다음 예에서는 hc1이라는 상태 검사를 삭제합니다.

# ilbadm delete-healthcheck hc1