Solaris OS용 Sun Cluster 개념 안내서

장애 차단 정보

클러스터에서 가장 중요한 문제는 클러스터를 분할하는 장애(정보 분리)입니다. 정보 분리 현상이 발생하면 일부 노드에서는 통신을 할 수 없으므로 개별 노드나 일부 노드가 개별 클러스터나 하위 집합 클러스터를 형성하려고 할 수 있습니다. 각 하위 집합 또는 분할 영역은 멀티 호스트 장치를 단독으로 액세스하고 소유하고 있다고 “인식”할 수 있습니다. 여러 노드에서 디스크에 쓰기를 시도하면 데이터가 손상됩니다.

장애 차단 기능은 디스크에 대한 액세스를 물리적으로 막음으로써 멀티 호스트 장치에 대한 노드 액세스를 제한합니다. 노드가 클러스터에서 나갈 경우(실패하거나 분할되어), 실패 방지는 그 노드가 더이상 디스크에 액세스할 수 없게 만듭니다. 현재 구성원 노드들만 디스크에 대한 액세스를 갖게 되므로, 데이터 무결성이 유지됩니다.

디스크 장치 서비스는 멀티 호스트 장치를 사용하는 서비스에 대한 페일오버 기능을 제공합니다. 현재 디스크 장치 그룹의 기본 노드(소유자) 역할을 하는 클러스터 구성원에 장애가 발생하거나 연결할 수 없으면 새 기본 노드가 선택됩니다. 새 기본 노드를 사용하면 잠시 중단되었던 디스크 장치 그룹에 대한 액세스를 계속 수행할 수 있습니다. 이 프로세스 중에 기존의 기본 노드에 있는 장치에 대한 액세스 권한을 제거한 다음 새 기본 노드를 시작해야 합니다. 그러나 구성원이 클러스터에서 이탈하여 도달할 수 없게 되면 클러스터는 기본 노드였던 장치를 해제하도록 해당 노드에 알릴 수 없습니다. 그러므로 남아있는 구성원이 실패한 구성원의 전역 장치를 제어하고 액세스할 수 있도록 하는 수단이 필요합니다.

Sun Cluster 시스템은 SCSI 디스크 예약 기능을 사용하여 실패 방지를 구현합니다. SCSI 예약 기능을 사용하면 장애가 발생한 노드가 멀티 호스트 디스크에 액세스하지 못하도록 멀티 호스트 장치가 해당 노드를 “차단”합니다.

SCSI-2 디스크 예약 기능은 디스크에 연결된 모든 노드에 대한 액세스 권한을 부여하는 예약 형식을 지원합니다(예약이 없는 경우). 또한 액세스를 단일 노드로 제한합니다(예약이 있는 노드).

클러스터 상호 연결을 통해 다른 노드가 더 이상 통신할 수 없다는 것을 발견한 클러스터 구성원은 장애 차단 절차를 시작하여 다른 노드가 공유 디스크에 액세스하지 못하도록 합니다. 장애 차단이 발생하면 차단된 노드는 중단(패닉)되고 “예약 충돌” 메시지가 콘솔에 나타납니다.

노드가 더 이상 클러스터 구성원이 아닌 경우에는, 이 노드와 다른 노드가 공유하는 모든 디스크에 대한 SCSI 예약이 트리거됩니다. 차단된 노드는 차단된 사실을 “인식”하지 못할 수도 있으며, 공유 디스크 중 하나에 액세스를 시도하면 예약이 감지되어 작동이 중단(패닉)됩니다.