Solaris OS용 Sun Cluster 개념 안내서

장애 방지를 위한 페일패스트 기법

장애가 발생한 노드가 다시 부트되어 공유 저장소에 쓰지 못하도록 하기 위하여 클러스터 프레임워크에서 사용하는 기법을 페일패스트라고 합니다.

클러스터를 구성하는 노드는 쿼럼 디스크를 포함하여 액세스할 수 있는 디스크에 대하여 특정 ioctl, MHIOCENFAILFAST를 계속 사용할 수 있도록 합니다. ioctl은 디스크 드라이버에 대한 지시어입니다. ioctl은 다른 노드에서 예약된 디스크이기 때문에 디스크에 액세스할 수 없는 경우 노드가 자체적으로 중단(패닉)할 수 있는 기능을 제공합니다.

MHIOCENFAILFAST ioctl을 사용하면 드라이브는 노드가 디스크에 대해 실행하는 모든 읽기 및 쓰기 작업에서 반환되는 오류에서 Reservation_Conflict 오류 코드를 검사합니다. ioctl은 백그라운드에서 주기적으로 디스크에 테스트 작업을 실행하여 Reservation_Conflict 오류 코드를 검사합니다. Reservation_Conflict 오류 코드가 반환되면 포그라운드 및 백그라운드 제어 흐름 경로가 모두 중단됩니다.

SCSI-2 디스크의 경우에는 예약이 지속되지 않습니다. 즉, 노드를 재부트하면 예약이 취소됩니다. PGR (Persistent Group Reservation)이 있는 SCSI-3 디스크의 경우에는 예약 정보가 디스크에 저장되어 노드를 재부트한 후에도 유지됩니다. 페일패스트 기법은 SCSI-2 디스크를 사용했는지 또는 SCSI-3 디스크를 사용했는지 여부에 관계없이 동일하게 작동합니다.

노드가 클러스터의 다른 노드와 연결이 끊어지고 쿼럼을 채울 수 있는 분할 영역에 포함되지 않은 경우에는 다른 노드에 의해 강제로 클러스터에서 제거됩니다. 분할 영역에 포함되고 쿼럼을 채울 수 있는 또 다른 노드가 공유 디스크를 예약할 수 있습니다. 쿼럼이 없는 노드에서 공유 디스크에 액세스를 시도하면 페일패스트 기법이 작동하여 예약 충돌이 발생하고 시스템이 중단(패닉)됩니다.

패닉 후에는 노드가 재부트되어 클러스터에 다시 연결될 수도 있고, 클러스터가 SPARC 기반 시스템으로 구성된 경우에는 OpenBootTM PROM (OBP) 프롬프트가 표시될 수도 있습니다. auto-boot? 매개 변수 설정에 따라 수행할 작업이 결정됩니다. SPARC 기반 클러스터의 OpenBoot PROM ok 프롬프트에서 eeprom(1M)을 사용하여auto-boot?를 설정할 수 있습니다. 또한 x86 기반 클러스터에서는 이 매개 변수를 BIOS가 부트된 후에 선택적으로 실행하는 SCSI 유틸리티를 사용하여 설정할 수 있습니다.