Solaris OS용 Sun Cluster 개요

쿼럼 장치

쿼럼 장치란 두 개 이상의 노드가 공유하고 클러스터 실행에 필요한 쿼럼 계산에 포함되는 디스크입니다. 투표 쿼럼이 충족될 경우에만 클러스터가 작동합니다. 쿼럼 장치는 클러스터가 별도의 노드 세트로 분할되어 새 클러스터를 구성하는 노드 세트를 설정할 때 사용됩니다.

클러스터 노드와 쿼럼 장치가 모두 투표하여 쿼럼을 채웁니다. 기본적으로, 클러스터 노드는 부트하여 클러스터 구성원이 될 때 하나의 쿼럼 투표 수를 확보합니다. 노드가 설치되거나 관리자가 노드를 유지 보수 상태에 둘 경우 노드는 0의 투표 수를 확보하지 못할 수 있습니다.

쿼럼 장치는 장치에 대한 노드 연결 수를 기초로 쿼럼 투표 수를 확보할 수 있습니다. 쿼럼 장치를 설정하면 최대 N-1의 투표 수를 얻게 됩니다. 여기서 N은 해당 쿼럼 장치에 연결된 투표 수입니다 . 예를 들어, 투표 수가 0이 아닌 두 노드에 연결된 쿼럼 장치는 쿼럼이 1입니다(2 - 1).

데이터 무결성

Sun Cluster 시스템은 데이터 손상을 방지하고 데이터 무결성을 보장하려고 합니다. 클러스터 노드는 데이터와 자원을 공유하기 때문에 클러스터가 동시에 작동하는 별도의 분할 영역으로 분리되지 않습니다. CMM은 언제라도 하나의 클러스터만 작동하도록 보장합니다.

클러스터 분할 영역에서 발생할 수 있는 두 가지 유형의 문제는정보 분리와 정보 유실입니다. 정보 분리는 노드 사이의 클러스터 상호 연결이 끊기고 클러스터가 서브 클러스터로 분할될 경우에 발생합니다. 이 때 각 서브 클러스터는 자신을 유일한 분할 영역으로 간주합니다. 다른 하위 클러스터를 인식하지 못하는 하위 클러스터는 중복된 네트워크 주소와 데이터 통신 등 공유 자원에서 충돌을 유발할 수 있습니다.

정보 유실은 모든 노드가 일제히 클러스터에서 제거될 때 발생합니다. 한 가지 예로 노드 A와 노드 B로 구성된 2-노드 클러스터가 있습니다. 노드 A가 다운되면 CCR의 구성 데이터는 노드 A가 아니라 노드 B에서만 업데이트됩니다. 이후에 노드 B가 다운되고 노드 A가 재부트되면 노드 A는 CCR의 기존 내용을 사용하여 실행됩니다. 이 상태를 정보 유실이라 부르며, 부정확한 구성 정보로 클러스터를 실행하는 결과를 초래할 수 있습니다.

각 노드에 한 표만 부여하고 대부분의 표가 작동 클러스터에 참여하도록 지시하면 정보 분리 및 정보 유실 문제를 방지할 수 있습니다. 다수표를 받은 분할 영역은 쿼럼이 충족되기 때문에 작동할 수 있습니다. 다수표 기법은 셋 이상의 노드가 클러스터에 존재할 때 효과적입니다. 노드가 두 개인 클러스터에서는 다수가 둘입니다. 이러한 클러스터가 분할된 경우 분할 영역이 쿼럼을 얻으려면 외부 표가 필요합니다. 외부 표는 쿼럼 장치에서 제공합니다. 두 노드 사이에 공유되는 디스크라면 쿼럼 장치가 될 수 있습니다.

표 2–1에서는 Sun Cluster 소프트웨어에서 쿼럼을 사용하여 정보 분리 및 정보 유실을 방지하는 방법을 설명합니다.

표 2–1 클러스터 쿼럼과 정보 분리 및 정보 유실 문제

분할 영역 유형 

쿼럼 해결 방법 

정보 분리 

다수표를 받은 분할 영역(서브 클러스터)만 클러스터로 실행되게 합니다(다수표 분할 영역은 하나만 존재함). 쿼럼 경합에서 진 노드는 중지됩니다.  

정보 유실 

클러스터가 부트될 경우, 최근 클러스터 구성원이었던 최소한 하나의 노드가 있습니다(그러므로 최근 구성 데이터를 수반함).  

장애 차단

클러스터에서 가장 중요한 문제는 클러스터를 분할하는 장애(정보 분리)입니다. 이러한 상황이 발생하면 모든 노드가 통신할 수 있는 것은 아니므로 개인 노드나 노드 서브 세트가 개인 또는 서브 세트 클러스터를 형성할 수도 있습니다. 각 서브 세트 또는 분할 영역은 멀티 호스트 디스크에 대해 단독 액세스 및 소유권을 가지고 있는 것으로 “인식”할 수 있습니다. 여러 노드가 멀티 호스트 디스크에 쓰기를 시도하면 데이터가 손상될 수 있습니다.

장애 차단은 디스크에 대한 액세스를 금지하여 멀티 호스트 디스크에 대한 노드 액세스를 제한합니다. 실패 또는 분할이 발생하여 노드가 클러스터에서 제외될 경우 장애 차단은 해당 노드가 디스크에 더 이상 액세스할 수 없도록 합니다. 현재 구성원 노드만 디스크에 대해 액세스할 수 있으므로 데이터 무결성이 보장됩니다.

Sun Cluster 시스템은 SCSI 디스크 예약 기능을 사용하여 장애 차단을 구현합니다. SCSI 예약 기능을 사용하면 실패한 노드가 멀티호스트 디스크로부터 “금지”되어 디스크에 액세스할 수 없습니다.

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

장애 차단을 위한 페일패스트 메커니즘

페일패스트 메커니즘은 실패한 노드를 중단시키지만, 실패한 노드가 재부트되는 것을 막지는 않습니다. 중단된 노드가 재부트하여 클러스터에 다시 포함되려고 시도할 수 있습니다.

노드가 클러스터의 다른 노드와 연결이 끊어지고 쿼럼을 채울 수 있는 분할 영역에 포함되지 않은 경우에는 다른 노드에 의해 강제로 클러스터에서 제거됩니다. 쿼럼을 채울 수 있는 분할 영역에 포함되는 다른 노드가 공유 디스크를 예약합니다. 쿼럼을 채우지 못한 노드는 페일패스트 메커니즘의 결과로 중단됩니다.