클러스터 컴포넌트
클러스터 관리자, 클러스터 데이터베이스 디렉토리, 디렉토리 데이터베이스 디렉토리 관리자, 클러스터 관리자 및 클러스터 복제자 등의 여러 컴포넌트가 함께 작동하여 클러스터링이 올바르게 작동하도록 합니다. 또한 인터넷 클러스터 관리자가 인터넷 프로토콜을 실행하는 HCLDomino® 서버를 클러스터링합니다.
클러스터 관리자
클러스터 관리자는 클러스터에 있는 각 서버에서 실행되며, 클러스터에 있는 다른 모든 서버의 상태를 추적합니다. 클러스터에 있는 서버 중 현재 사용 가능한 서버 목록이 있으며, 각 서버 상의 워크로드에 대한 정보를 관리합니다.
클러스터에 서버를 추가할 때, Domino®는 해당 서버에서 클러스터 관리자를 자동으로 시작합니다. 서버가 클러스터의 일부일 경우, 서버를 시작할 때마다 클러스터 관리자가 시작됩니다.
각 클러스터 관리자는 "프로브" 메시지를 클러스터에 있는 다른 서버와 서로 교환하면서 클러스터를 모니터합니다. 이런 프로브 메시지를 통해, 클러스터 관리자는 다른 클러스터 서버의 워크로드와 가용성을 확인합니다. 사용자 요청을 다른 복제본으로 전송해야 하는 경우, 클러스터 관리자는 요청된 데이터베이스의 복제본이 들어 있는 클러스터 서버를 결정하기 위해 클러스터 데이터베이스 디렉토리를 찾습니다. 그런 다음 클러스터 관리자는 복제본이 들어 있는 서버와 해당 서버의 가용성에 대해 클라이언트에 알립니다. 이것으로 클라이언트는 복제본이 포함된 사용 가능성이 가장 높은 서버에 요청을 리디렉션할 수 있습니다.
클러스터 관리자 태스크에는 다음 항목이 포함됩니다.
- 클러스터에 속해 있는 서버 결정. 서버 문서 및 클러스터 멤버십 목록에 있는 ClusterName 필드에 대한 변경 여부는 Domino® 디렉토리를 정기적으로 모니터링하여 수행됩니다.
- 클러스터의 서버 가용성과 워크로드 모니터
- 클러스터 서버 가용성의 변경사항을 다른 클러스터 관리자에게 알림
- 클라이언트에게 사용 가능한 복제본과 클러스터 서버의 가용성에 대해 알려서 클라이언트는 클러스터 서버의 가용성에 따라 데이터베이스 요청을 리디렉션할 수 있습니다(장애 복구).
- 클러스터 서버의 가용성을 기반으로 클러스터의 서버 태스크량 분산
- 서버 로그 파일에 장애 복구 및 워크로드 분산 이벤트 로깅
시작할 때, 클러스터 관리자는 Domino® 디렉토리를 검사하여 클러스터에 속한 서버를 판별합니다. 이 정보는 서버의 클러스터 이름 캐시 메모리에 보관됩니다. 클러스터 관리자는 이 정보를 사용하여 다른 클러스터 관리자와 프로브 메시지를 교환하며, 클러스터 이름 캐시를 사용하여 프로브 메시지로부터 수신하는 가용성 정보도 저장합니다. 이 정보는 클러스터 관리자가 장애 복구 및 워크로드 조정과 같은 앞에서 나열한 기능을 수행하는 데 유용합니다.
클러스터 이름 캐시에 있는 정보를 보려면, 서버 콘솔에 show cluster를 입력하십시오.
클러스터 데이터베이스 디렉토리
클러스터 데이터베이스 디렉토리(cldbdir.nsf)의 복제본은 클러스터에 있는 모든 서버에 있습니다. 클러스터 데이터베이스 디렉토리에는 클러스터에 있는 각 데이터베이스 및 복제본에 대한 문서가 들어 있습니다. 이 문서에는 데이터베이스 이름, 서버 이름, 경로, 복제본 ID 및 기타 복제 및 액세스 정보와 같은 정보가 들어 있습니다. 클러스터 컴포넌트는 이 정보를 사용하여 장애 복구 경로 결정, 데이터베이스에 대한 액세스 제어 및 복제할 이벤트와 복제 위치 결정과 같은 작업을 수행합니다.
클러스터 데이터베이스 디렉토리 관리자
각 서버의 클러스터 데이터베이스 디렉토리 관리자는 클러스터 데이터베이스 디렉토리를 작성하여 최신 데이터베이스 정보로 업데이트된 상태를 유지합니다. 서버를 처음 클러스터에 추가할 때, 클러스터 데이터베이스 디렉토리 관리자는 해당 서버에 클러스터 데이터베이스 디렉토리를 작성합니다. 데이터베이스를 클러스터된 서버에 추가할 때, 클러스터 데이터베이스 디렉토리 관리자는 새 데이터베이스 관련 정보가 포함된 클러스터 데이터베이스 디렉토리에 문서를 작성합니다. 클러스터된 서버에서 데이터베이스를 삭제할 때, 클러스터 데이터베이스 디렉토리 관리자가 클러스터 데이터베이스 디렉토리에서 이 문서를 삭제합니다. 또한 클러스터 데이터베이스 디렉토리 관리자는 클러스터에서 각 데이터베이스(예: 서비스 중이 아님(사용자가 액세스할 수 없음) 또는 삭제 지연으로 표시된 데이터베이스)의 상태를 추적합니다.
클러스터 데이터베이스 디렉토리가 변경되면, 클러스터 복제자는 클러스터에 있는 각 서버의 클러스터 데이터베이스 디렉토리에 해당 변경사항을 즉시 복제합니다. 이렇게 하면 각 클러스터 구성원은 클러스터의 데이터베이스에 대한 최신 정보를 항상 가질 수 있습니다.
클러스터 관리자
클러스터 관리자는 클러스터에 관련된 많은 하우스키핑(housekeeping) 태스크를 수행합니다. 예를 들어, 클러스터에 서버를 추가할 때, 클러스터 관리자는 클러스터 데이터베이스 디렉토리 관리자와 클러스터 복제자를 시작합니다. 아직 실행하지 않은 경우, 클러스터 관리자는 또한 관리 프로세스를 시작합니다. 클러스터에서 서버를 제거할 때, 클러스터 관리자는 클러스터 데이터베이스 디렉토리 관리자와 클러스터 복제자를 시작합니다. 또한 서버에서 클러스터 데이터베이스 디렉토리를 삭제한 후 다른 서버의 클러스터 데이터베이스 디렉토리에서 이 서버의 기록을 삭제합니다.
클러스터 복제자
클러스터 복제자는 클러스터의 복제본 간에 데이터를 계속 동기화합니다. 클러스터의 데이터베이스가 변경될 때마다, 클러스터 복제자는 변경사항을 클러스터의 다른 복제본에 신속하게 적용(push)합니다. 이렇게 하면 사용자가 데이터베이스에 액세스할 때마다 최신 버전의 내용을 볼 수 있습니다. 클러스터 복제자는 또한 데이터베이스에 저장된 개인 폴더에 변경사항을 복제합니다. 클러스터에서 많은 활동이 있을 경우 더 많은 클러스터 복제자를 실행할 수 있지만, 클러스터에 있는 각 서버는 기본적으로 한 개의 클러스터 복제자를 실행합니다.
클러스터 복제자는 다른 클러스터 구성원에 복제본을 가진 데이터베이스를 확인하기 위해 클러스터 데이터베이스 디렉토리를 찾습니다. 클러스터 복제자는 이 정보를 메모리에 저장하고, 이 정보를 사용하여 다른 서버에 대한 변경사항을 복제합니다. 주기적으로(기본적으로 15분마다), 클러스터 복제자는 클러스터 데이터베이스 디렉토리의 변경사항을 점검합니다. 추가 또는 삭제된 데이터베이스나 현재 클러스터 복제가 사용 불가능한 데이터베이스와 같이 클러스터 복제자가 클러스터 데이터베이스 디렉토리의 변경사항을 발견할 때, 메모리에 저장된 정보를 업데이트합니다.
클러스터 복제자는 클러스터에 있는 서버에만 변경사항을 적용(push)합니다. 표준 복제자 태스크(REPLICA)는 클러스터 외부에 있는 서버 간에 변경사항을 서로 복제합니다.