데이터 서비스 만들기의 첫 번째 단계는 대상 응용 프로그램이 고가용성 및 확장성에 대한 요구 사항을 충족시키는지 확인하는 것입니다. 응용 프로그램이 모든 요구 사항을 충족시키지 못할 경우 응용 프로그램 소스 코드를 수정하여 요구 사항을 충족시킬 수 있습니다.
다음 목록에는 확장 가능한 고가용성의 응용 프로그램을 만들기 위한 요구 사항이 요약되어 있습니다. 더 자세한 내용이 필요하거나 응용 프로그램 소스 코드를 수정해야 할 경우 부록 B를 참조하십시오.
확장 가능 서비스는 일부 추가 기준뿐만 아니라 고가용성에 대한 다음 조건을 모두 충족시켜야 합니다.
네트워크 인식(클라이언트-서버 모델) 및 네트워크 비인식(클라이언트 없는) 응용 프로그램은 모두 Sun Cluster 환경에서 가용성이 높거나 확장 가능한 잠재적인 후보입니다. 그러나 Sun Cluster는 telnet 또는 rlogin을 통해 액세스하는 서버에서 응용 프로그램이 실행되는 시간 공유 환경에 향상된 가용성을 제공할 수 없습니다.
응용 프로그램은 충돌을 허용해야 합니다. 즉, 노드가 예기치 않게 사용 불능이 된 후 응용 프로그램을 시작하면 필요한 경우 디스크 데이터를 복구해야 합니다. 또한 충돌 후 복구 시간을 바인드해야 합니다. 디스크 복구 및 응용 프로그램 다시 시작 기능은 데이터 무결성 관련 문제이므로 충돌 허용은 고가용성 응용 프로그램을 만들기 위한 필수 조건입니다. 데이터 서비스에서 연결 복구 기능은 필요하지 않습니다.
응용 프로그램은 응용 프로그램이 실행 중인 노드의 물리적 호스트 이름에 의존해서는 안 됩니다. 자세한 내용은 호스트 이름를 참조하십시오.
여러 IP 주소가 활성으로 구성된 환경에서 응용 프로그램이 제대로 작동해야 합니다. 예를 들어, 둘 이상의 공용 네트워크에 노드가 있는 다중 홈 호스트 환경 및 하나의 하드웨어 인터페이스에 여러 논리 인터페이스가 활성으로 구성되어 있는 노드 환경입니다.
고가용성이 되게 하려면 응용 프로그램 데이터가 클러스터 파일 시스템에 상주해야 합니다. 멀티 호스트된 데이터를 참조하십시오.
응용 프로그램에서 데이터 위치에 하드 연결된 경로 이름을 사용한 경우 응용 프로그램 소스 코드를 변경하지 않고 해당 경로를 클러스터 파일 시스템의 위치를 가리키는 심볼릭 링크로 변경할 수 있습니다. 자세한 내용은 멀티 호스트된 데이터 배치에 심볼릭 링크 사용를 참조하십시오.
응용 프로그램 이진과 라이브러리는 각 노드나 클러스터 파일 시스템에 로컬로 상주할 수 있습니다. 클러스터 파일 시스템에 상주하는 이점은 한 번 설치만으로 충분하다는 것이며, 단점은 응용 프로그램이 RGM의 제어 하에 실행되는 동안 이진을 사용하기 때문에 롤링 업그레이드가 문제가 된다는 것입니다.
클라이언트에는 첫 번째 시도가 시간 초과된 경우 자동으로 조회를 다시 시도할 수 있는 용량이 있어야 합니다. 응용 프로그램과 프로토콜에서 이미 단일 서버 충돌 및 재부트를 처리한 경우에는 페일오버되거나 스위치오버될 자원 그룹이 포함된 경우도 처리합니다. 자세한 내용은 클라이언트 재시도를 참조하십시오.
응용 프로그램은 해당 클러스터 파일 시스템에 Unix 도메인 소켓이나 명명된 파이프가 없어야 합니다.
또한 확장 가능 서비스는 다음 요구 사항을 충족시켜야 합니다.
응용 프로그램에 여러 인스턴스를 실행할 수 있는 기능이 있어야 합니다. 이 인스턴스는 모두 클러스터 파일 시스템의 동일한 응용 프로그램 데이터에서 작동합니다.
응용 프로그램에서는 여러 노드에서 동시에 액세스하기 위해 데이터 일관성을 제공해야 합니다.
응용 프로그램에서는 클러스터 파일 시스템 같이 전역적으로 볼 수 있는 기법이 있는 충분한 잠금을 구현해야 합니다.
확장 가능 서비스의 경우 응용 프로그램 특성에서 로드 균형 조정 정책도 결정합니다. 예를 들어, 모든 인스턴스가 클라이언트 요청에 응답할 수 있도록 허용하는 로드 균형 조정 정책 LB_WEIGHTED는 클라이언트 연결을 위해 서버에서 메모리 내장 캐시를 사용하는 응용 프로그램에는 작동하지 않습니다. 이 경우 지정된 클라이언트의 트래픽을 응용 프로그램의 한 인스턴스로 제한하는 로드 균형 조정 정책을 지정해야 합니다. 로드 균형 조정 정책 LB_STICKY 및 LB_STICKY_WILD에서는 클라이언트의 모든 요청을 동일한 응용 프로그램 인스턴스로 반복적으로 전송합니다. 여기에서 메모리 내장 캐시를 사용할 수 있습니다. 서로 다른 클라이언트에서 여러 클라이언트 요청이 올 경우 RGM은 서비스 인스턴스 간에 요청을 분산시킵니다. 확장 가능한 데이터 서비스에 대한 로드 균형 조정 정책에 대한 자세한 내용은 페일오버 자원 구현를 참조하십시오.