Solaris OS용 Sun Cluster 개념 안내서

데이터 서비스

데이터 서비스는 Sun Java System Web Server 또는 Oracle과 같이 단일 서버가 아닌 클러스터에서 실행되도록 구성된 응용 프로그램을 가리키는 용어입니다. 데이터 서비스는 응용 프로그램, 특수 Sun Cluster 구성 파일 및 다음과 같은 응용 프로그램 작업을 제어하는 Sun Cluster 관리 메소드 등으로 구성됩니다.

데이터 서비스 유형에 대한 자세한 내용은 Solaris OS용 Sun Cluster 개요데이터 서비스를 참조하십시오.

그림 3–4 에서는 단일 응용 프로그램 서버에서 실행되는 응용 프로그램(단일 서버 모델)과 클러스터에서 실행 중인 동일한 응용 프로그램(클러스터 서버 모델)을 비교합니다. 두 구성 간의 유일한 차이점은 클러스터 응용 프로그램이 보다 빠르게 실행되고 가용성이 더 높다는 점입니다.

그림 3–4 표준 대 클러스터 클라이언트 서버 구성

그림: 그래픽에 대한 설명은 다음 컨텍스트를 참조하십시오.

단일 서버 모델에서는 특정의 공용 네트워크 인터페이스(호스트 이름)를 통해 서버에 액세스하도록 응용 프로그램을 구성합니다. 따라서 호스트 이름이 물리적 서버와 연결됩니다.

클러스터 서버 모델에서 공용 네트워크 인터페이스는 논리 호스트 이름 또는 공유 주소입니다. 네트워크 자원이라는 용어는 논리 호스트 이름과 공유 주소를 모두 가리킬 때 사용합니다.

일부 데이터 서비스에서는 논리 호스트 이름이나 공유 주소를 네트워크 인터페이스로 지정해야 합니다. 논리 호스트 이름과 공유 주소는 서로 호환되지 않습니다. 그 외의 데이터 서비스에서는 논리 호스트 이름이나 공유 주소를 지정할 수 있습니다. 지정해야 하는 인터페이스 유형에 대한 자세한 내용은 각 데이터 서비스의 설치 및 구성을 참조하십시오.

네트워크 자원이 특정의 물리적 서버에 연결되어 있지 않습니다. 네트워크 자원은 물리적 서버 간에 마이그레이션할 수 있습니다.

네트워크 자원은 먼저 기본 노드에 연결됩니다. 기본 노드에 장애가 발생하면 네트워크 자원과 응용 프로그램 자원을 다른 클러스터 노드(보조 노드)로 페일오버합니다. 네트워크 자원이 페일오버하면 잠시 지연된 후에 응용 프로그램 자원이 보조 노드에서 계속 실행됩니다.

그림 3–5에서는 단일 서버 모델과 클러스터 서버 모델을 비교합니다. 클러스터 서버 모델에서는 네트워크 자원(이 예에서는 논리 호스트 이름)이 둘 이상의 클러스터 노드 사이에 이동할 수 있습니다. 응용 프로그램은 특정 서버와 연결된 호스트 이름 대신 논리 호스트 이름을 사용하도록 구성됩니다.

그림 3–5 고정 호스트 이름과 논리 호스트 이름 비교

그림: 그래픽에 대한 설명은 이전 컨텍스트를 참조하십시오.

공유 주소 역시 처음에는 한 개의 노드에 연결됩니다. 이 노드를 GIN(Global Interface Node)이라고 합니다. 공유 주소(일명 전역 인터페이스)는 클러스터에 대한 단일 네트워크 인터페이스로 사용됩니다.

논리 호스트 이름 모델과 확장 가능한 서비스 모델 간의 차이점은 확장 가능한 서비스 모델에는 각 노드에도 루프백 인터페이스에 활성 상태로 구성된 공유 주소가 있다는 것입니다. 이러한 구성에서는 데이터 서비스의 여러 인스턴스를 여러 노드에서 동시에 활성화할 수 있습니다. “확장 가능 서비스”는 클러스터 노드를 추가하여 응용 프로그램에 CPU 기능을 추가하는 방법으로 성능을 확장할 수 있는 기능입니다.

GIF 노드에 장애가 발생하면 응용 프로그램 인스턴스를 실행하는 다른 노드에서 공유 주소를 시작하고 변경한 노드를 새 GIF 노드로 만들 수 있습니다. 아니면 이전에 응용 프로그램을 실행하지 않던 다른 클러스터 노드로 페일오버할 수 있습니다.

그림 3–6에서는 단일 서버 구성과 확장 가능한 클러스터 서비스 구성을 비교합니다. 확장 가능한 서비스 구성에서는 모든 노드에 대한 공유 주소가 있습니다. 페일오버 데이터 서비스에 논리 호스트 이름을 사용하는 방법과 유사한 방법으로 특정 서버와 연결된 호스트 이름 대신 이 공유 주소를 사용하도록 응용 프로그램이 구성됩니다.

그림 3–6 고정 호스트 이름과 공유 주소 비교

그림: 그래픽에 대한 설명은 이전 컨텍스트를 참조하십시오.

데이터 서비스 메소드

Sun Cluster 소프트웨어는 일련의 서비스 관리 메소드를 제공합니다. 이 메소드는 Resource Group Manager(RGM)의 제어에 따라 실행되어 클러스터 노드의 응용 프로그램을 시작하고 중지하고 모니터합니다. 이 메소드는 클러스터 프레임워크 소프트웨어, 멀티 호스트 장치와 함께 사용하여 응용 프로그램이 페일오버 또는 확장 가능 데이터 서비스가 되도록 합니다.

또한 RGM은 응용 프로그램의 인스턴스와 네트워크 자원(논리 호스트이름 및 공유 주소)과 같은 클러스터 내의 자원도 관리합니다.

Sun Cluster 소프트웨어에서 제공하는 메소드 외에 Sun Cluster 시스템에서도 API와 여러 가지 데이터 서비스 개발 도구를 제공합니다. 응용 프로그램 개발자는 이 도구를 사용하여 다른 응용 프로그램을 Sun Cluster 소프트웨어에서 가용성이 높은 데이터 서비스로 실행시키는 데이터 서비스 메소드를 개발할 수 있습니다.

페일오버 데이터 서비스

데이터 서비스가 실행되는 노드가 실패할 경우, 서비스는 사용자 간섭 없이 다른 작업 노드로 이주됩니다. 페일오버 서비스는 페일오버 자원 그룹을 사용합니다. 이 자원 그룹은 응용 프로그램 인스턴스 자원 및 네트워크 자원(논리 호스트 이름)을 위한 컨테이너입니다. 논리 호스트 이름은 하나의 노드에서 구성될 수 있는 IP 주소로, 나중에 기존 노드는 자동으로 구성이 중지되고 다른 노드에서 구성이 시작됩니다.

페일오버 데이터 서비스의 경우, 응용 프로그램 인스턴스는 단일 노드에서만 실행됩니다. 오류 모니터가 오류를 감지하면 동일한 노드에서 인스턴스를 다시 시작하거나 다른 노드에서 인스턴스를 시작하려고 시도합니다(페일오버). 데이터 서비스가 구성되는 방법에 따라 결과가 달라집니다.

확장 가능 데이터 서비스

확장 가능 데이터 서비스는 여러 노드에서 인스턴스가 사용되고 있을 가능성을 수반합니다. 확장 가능 서비스에서는 다음 두 가지의 자원 그룹을 사용합니다.

확장 가능 자원 그룹은 여러 노드에서 온라인 상태로 있을 수 있으므로 서비스의 여러 인스턴스가 한 번에 실행될 수 있습니다. 공유 주소를 호스트하는 페일오버 자원 그룹은 한 번에 한 노드에서만 온라인 상태입니다. 확장 가능 서비스를 호스트하는 모든 노드는 동일한 공유 주소를 사용하여 서비스를 호스트합니다.

서비스 요청은 단일 네트워크 인터페이스(전역 인터페이스)를 통해 클러스터에 보내집니다. 이러한 요청은 로드 균형 조정 정책에 따라 설정한 몇 가지 사전 정의 알고리즘 중 하나를 기준으로 각 노드에 분산됩니다. 클러스터는 로드 균형 조정 정책을 사용하여 몇몇 노드 사이의 서비스 부하 균형을 맞추는 로드 균형 조정 정책을 사용할 수 있습니다. 서로 다른 공유 주소를 호스트하는 노드에는 전역 인터페이스가 여러 개 있을 수 있습니다.

확장 가능 서비스의 경우 응용 프로그램 인스턴스는 여러 노드에서 동시에 실행됩니다. 전역 인터페이스를 호스트하는 노드가 실패할 경우, 전역 인터페이스는 다른 노드로 페일오버합니다. 실행 중인 응용 프로그램 인스턴스가 실패할 경우, 인스턴스는 동일한 노드에서 다시 시작하려고 시도합니다.

응용 프로그램 인스턴스는 동일한 노드에서 재시작될 수 없으며, 사용되지 않는 다른 노드는 서비스를 실행하도록 구성된 경우, 서비스는 사용되지 않는 노드로 페일오버됩니다. 그렇지 않은 경우에는 나머지 노드에서 서비스가 계속 실행되므로 서비스 처리 능력이 저하될 수 있습니다.


주 –

각 응용 프로그램 인스턴스에 대한 TCP 상태는 GIF 노드가 아니라 인스턴스가 있는 노드에 보존됩니다. 그러므로 GIF 노드의 실패는 연결에 영향을 주지 않습니다.


그림 3–7에서는 페일오버 자원 그룹 및 확장 가능 자원 그룹과, 확장 가능 서비스에 대한 이 둘 사이의 종속성에 대한 예를 보여줍니다. 이 예에는 세 가지 자원 그룹이 있습니다. 페일오버 자원 그룹에는 고가용성 DNS에 대한 응용 프로그램 자원과 고가용성 DNS 및 고가용성 Apache Web Server(SPARC 기반 클러스터 전용)에서 사용하는 응용 프로그램 자원이 포함됩니다. 확장 가능 자원 그룹에는 Apache Web Server의 응용 프로그램 인스턴스만 포함됩니다. 확장 가능 자원 그룹과 페일오버 자원 그룹 간에는 자원 그룹 종속성이 존재합니다(실선). 또한 모든 Apache 응용 프로그램 자원은 공유 주소인 네트워크 자원 schost-2에 종속됩니다(실선).

그림 3–7 SPARC: 페일오버 및 확장 가능 자원 그룹의 예

그림: 그래픽에 대한 설명은 이전 컨텍스트를 참조하십시오.

로드 균형 조정 정책

로드 균형 조정은 응답 시간과 처리량의 두 가지 측면 모두에서 확장 가능 서비스의 성능을 향상시킵니다. 확장 가능 데이터 서비스에는 두 가지 클래스가 있습니다.

pure 서비스에서는 모든 인스턴스가 클라이언트의 요청에 응답할 수 있습니다. sticky 서비스에서는 클라이언트가 동일한 인스턴스에 요청을 보낼 수 있습니다. 그러한 요청은 다른 인스턴스에 보내지 않아도 됩니다.

pure 서비스는 가중된 로드 균형 조정 정책을 사용합니다. 이 로드 균형 조정 정책에서 클라이언트 요청은 기본적으로 클러스터의 서버 인스턴스에서 일정하게 분산됩니다. 예를 들어 3-노드 클러스터에서 각 노드의 가중치가 1이라고 가정합니다. 각 노드는 해당 서비스대신 클라이언트의 요청 중 1/3을 처리합니다. 관리자는 scrgadm(1M) 명령 인터페이스 또는 SunPlex Manager GUI를 통해 언제든지 가중치를 변경할 수 있습니다.

Sticky 서비스에는 일반 sticky 와일드카드 sticky라는 두 가지 종류가 있습니다. Sticky 서비스를 사용하면 여러 TCP 연결을 통해 동시 응용 프로그램 수준 세션에서 in-state 메모리(응용 프로그램 세션 상태)를 공유할 수 있습니다.

일반 sticky 서비스를 사용하면 클라이언트가 여러 개의 동시 TCP 연결 간에 상태를 공유할 수 있습니다. 클라이언트는 단일 포트를 수신하는 서버 인스턴스에 대해 “sticky”라고 합니다. 해당 서버 인스턴스가 활성 상태이고 액세스 가능하며, 서비스가 온라인 상태인 동안 로드 균형 조정 정책이 변경되지 않는 경우 클라이언트의 모든 요청은 동일한 서버 인스턴스로 가도록 보장됩니다.

예를 들어 클라이언트의 웹 브라우저는 세 개의 서로 다른 TCP 연결을 사용하여 포트 80의 공유 IP 주소로 연결됩니다. 그러나 이들 연결 간에 서비스에서 캐시된 세션 정보가 교환됩니다.

sticky 정책을 일반화하면 동일한 인스턴스에서 백그라운드로 세션 정보를 교환하는 여러 확장 가능 서비스까지 범위를 확장할 수 있습니다. 이러한 서비스가 세션 정보를 동일한 인스턴스에서 백그라운드로 교환할 때 클라이언트는 서로 다른 포트를 수신하는 동일한 노드의 여러 서버 인스턴스에 대해 “sticky”라고 합니다. .

예를 들어, 전자 상거래 사이트에서 고객이 장바구니에 상품을 채울 때는 포트 80에서 HTTP를 사용하지만 고객이 장바구니의 상품 대금을 신용 카드로 지불하기 위해 보안 데이터를 보낼 때는 포트 443에서 SSL로 전환합니다.

와일드 카드 sticky 서비스는 동적으로 할당된 포트 번호를 사용하지만 클라이언트 요청은 여전히 동일한 노드로 전달합니다. 클라이언트는 IP 주소가 동일한 포트에 대해 “sticky 와일드 카드”입니다.

이 정책의 좋은 예는 수동 모드 FTP입니다. 예를 들어, 클라이언트가 포트 21의 FTP 서버에 연결되면 서버에서 해당 클라이언트를 동적 포트 범위에 있는 수신 포트 서버로 다시 연결하라는 지시를 내보냅니다. 이 IP 주소에 대한 모든 요청동일한 노드로 전달됩니다. 서버에서 제어 정보를 통해 클라이언트에게 알립니다. .

이러한 각 sticky 정책마다 가중치가 적용된 로드 균형 조정 정책이 기본값으로 사용됩니다. 따라서, 클라이언트의 초기 요청은 로드 균형 조정기에서 지정한 인스턴스로 보내집니다. 클라이언트가 인스턴스를 실행 중인 노드에 대해 유사성을 설정한 이후에 들어온 요청은 조건에 따라 해당 인스턴스로 보내집니다. 노드에 액세스할 수 있어야 하며 로드 균형 조정 정책은 변경되지 않아야 합니다.

특정 로드 균형 조정 정책에 대한 추가 세부 정보는 다음과 같습니다.

페일백 설정

자원 그룹은 한 노드에서 다른 노드로 페일오버됩니다. 페일오버가 발생하면 기존의 보조 노드가 새 기본 노드가 됩니다. 페일백 설정은 기존의 기본 노드가 다시 온라인 상태가 될 때 발생할 작업을 지정합니다. 기존 기본 노드가 다시 기본 노드가 되는 페일백 옵션 또는 현재 기본 노드를 그대로 유지하는 옵션이 있습니다. Failback 자원 그룹 등록 정보 설정을 사용하여 원하는 옵션을 지정합니다.

자원 그룹을 호스트하는 기존 노드에서 장애가 발생하고 재부트되는 일이 반복될 때 페일백을 설정하면 자원 그룹의 가용성이 감소될 수 있습니다.

데이터 서비스 결함 모니터

각 Sun Cluster 데이터 서비스는 정기적으로 데이터 서비스를 규명하여 상태를 판별하는 오류 모니터를 제공합니다. 오류 모니터는 응용 프로그램 데몬이 실행 중인지 그리고 클라이언트 서비스가 제공되고 있는지 확인합니다. 프로브에 의해 반환된 정보를 기초로 데몬을 다시 시작하거나 페일오버를 야기하는 것과 같은 사전에 정의된 조치가 시작될 수 있습니다.