Java Enterprise System 배포의 가용성 전략은 다음과 같습니다.
로드 균형 조정.프로세싱 로드를 공유하려면 중복 하드웨어 및 소프트웨어 구성 요소를 사용합니다. 로드 밸런서는 모든 서비스 요청을 서비스의 다중 대칭 인스턴스 중 하나에 전달합니다. 만약 한 인스턴스가 실패하는 경우 보다 과중한 로드로 가정되어 다른 인스턴스가 사용 가능합니다.
페일오버.어떤 구성 요소가 실패하는 경우 서비스의 지속적인 액세스 및 중요한 데이터를 위한 보안을 제공하는 중복 하드웨어 및 소프트웨어 관리가 포함됩니다.
Sun Cluster 소프트웨어는 Messaging Server를 위한 메시지 저장소 및 Calendar Server를 위한 달력 데이터 등 백엔드 구성 요소에 의해 관리되는 주요 데이터를 위한 페일오버 솔루션을 제공합니다.
서비스 복제.서비스 복제는 동일한 데이터에 대한 다중 소스를 제공합니다. Directory Server는 LDAP 디렉토리 액세스를 위해 여러 개의 복제 및 동기화 전략을 제공합니다.
다음 절에서는 다양한 수준의 로드 균형 조정, 페일오버 및 서비스 복제를 제공하는 가용성 솔루션의 예를 설명합니다.
서비스를 위한 모든 컴퓨팅 자원을 단일 서버에 배치합니다. 서버에 오류가 발생할 경우 전체 서비스가 실패합니다.
Sun에서는 다음 이점을 제공하는 고성능 서버를 제공합니다.
시스템 실행 중에 하드웨어 구성 요소의 교체 및 재구성
서버의 무결함 도메인에서 다중 응용 프로그램을 실행하는 능력
시스템을 다시 부팅하지 않고도 용량, 성능 속도 및 I/O 구성을 업그레이드하는 능력
고성능 서버는 일반적으로 비슷한 다중 서버 시스템보다 비용이 더 많이 듭니다. 그러나 단일 서버인 경우 데이터 센터의 서버에 대한 관리, 모니터링 및 호스팅 비용을 절약할 수 있습니다. 로드 균형 조정, 페일오버 및 단일 실패 지점 제거는 다중 서버 시스템에서 더 유연합니다.
로드 균형 조정과 페일오버를 제공하는 병렬로 중복된 서버의 가용성을 늘릴 수 있는 몇 가지 방법이 있습니다. 다음 그림에서는 N+1 페일오버 시스템을 제공하는 두 개의 복제 서버를 설명합니다. N+1 시스템에는 한 서버가 실패할 경우 100% 용량을 제공하는 추가 서버가 있습니다.
위 수평으로 중복된 시스템에서 각 서버의 컴퓨팅 성능은 동일합니다. 하나의 서버만 성능 요구 사항을 처리합니다. 다른 서버는 백업으로 서비스에 호출된 경우 100%의 성능을 제공합니다.
N+1 페일오버 설계의 장점은 페일오버 상황에서 100%의 성능을 유지하는 것입니다. 단점은 하드웨어 비용은 증가하면서도 그에 따른 성능을 모두 얻지 못한다는 것입니다(왜냐하면 한 서버는 오직 페일오버 상황에서만 사용하기 위해 대기하고 있기 때문입니다).
다음 그림은 두 서버 간 성능을 분산하도록 로드 균형 조정에 페일오버를 더하여 구현한 시스템을 보여줍니다.
위 수평으로 중복된 시스템에서 설명한 시스템에서 한 서버가 실패하더라도 전체 용량의 일부이긴 하지만 모든 서비스가 여전히 사용 가능합니다. 남은 서버에서 10개 CPU 요구 사항의 60%인 6개 CPU의 컴퓨팅 성능을 제공합니다.
이 설계의 장점은 두 서버를 모두 사용할 수 있는 경우 추가로 2개의 CPU 잠재 용량이 있다는 점입니다.
다음 그림에서는 성능 및 로드 균형 조정을 위한 여러 서버 간의 배포를 보여줍니다.
수평으로 중복된 시스템과 같이 이 설계에 다섯 개의 서버가 있기 때문에 한 서버가 실패할 경우 나머지 서버에서 10개 CPU 성능 요구 사항의 80%인 총 8개 CPU의 컴퓨팅 성능을 제공합니다. 설계에 2개 CPU 용량을 가진 서버를 추가할 경우 결과적으로 N+1 설계가 됩니다. 한 서버가 실패하면 나머지 서버에서 성능 요구 사항의 100%를 충족시킵니다.
이 설계에는 다음과 같은 장점이 있습니다.
단일 서버가 실패할 경우 성능 추가
둘 이상의 서버가 중단될 경우에도 가용성 제공
유지 보수 및 업그레이드를 위해 서버의 서비스를 교대할 수 있음
복수의 저성능 서버가 일반적으로 하나의 고성능 서버보다 비용이 덜 듬
그러나 서버를 추가할 경우 관리 및 유지 보수 비용이 상당히 늘어날 수 있습니다. 또한 데이터 센터에 서버를 호스팅하는 비용을 고려해야 합니다. 일정 시점이 되면 서버 추가에 따른 수익이 줄어들기 시작합니다.
높은 수준의 가용성이 필요한 경우(예: 4개 또는 5개의 9) Sun Cluster 소프트웨어를 가용성 설계의 일부로 고려할 수 있습니다. 클러스터 시스템은 저장소 및 기타 네트워크 자원이 있는 중복 서버를 연결한 것입니다. 클러스터의 서버들은 서로 계속해서 통신합니다. 한 서버가 오프라인이 될 경우 클러스터의 나머지 장치에서 해당 서버를 격리하고 실패한 노드의 응용 프로그램이나 데이터를 다른 노드로 페일오버합니다. 이 페일오버 프로세스는 시스템 사용자의 서비스를 방해하지 않고 비교적 빠르게 수행됩니다.
Sun Cluster 소프트웨어는 추가 전용 하드웨어와 구성, 관리 및 유지 보수를 위한 특수 기술이 필요합니다.