미러 디스크 장애 (내장 스토리지)
소스 디스크 장애
운영 서버의 미러 디스크 리소스에 장애가 발생하면 MCCS 웹 콘솔에 장애가 표시됩니다.
MCCS는 해당 디스크에 Read/Write가 불가능한 상황이므로 장애로 인식하여 대기 서버로 페일오버를 진행합니다.[그림] 미러 디스크 장애 발생 화면
- MCCS에서 디스크에 대한 장애 감지 방식은 다음과 같습니다.
- 해당 디스크가 마운트 되어 있는지 확인 합니다.
- 해당 디스크에 대해서 Read/Write를 실행합니다.
- 디스크 장애 발생 요인은 다음과 같은 경우가 있을 수 있습니다. 위의 문제가 해결 된 후에 운영 체제는 변경된 디스크를 다시 인식합니다.이후 복제 소프트웨어에서 동기화를 진행합니다.
- 디스크 컨트롤러 문제 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.
- 물리적인 디스크 문제 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.
- 미러 리소스에서 동기화가 진행되지 않으면 미러디스크 리소스를 삭제한 후에 다시 생성해야 합니다. 단, 삭제 시 리소스만 삭제가 아니라 생성된 미러까지 삭제하고 다시 생성해야 합니다.
타깃 디스크 장애
대기 서버의 디스크에 장애가 발생하면 MCCS 웹 콘솔의 디스크 리소스 아이콘에 "Pause"가 표시됩니다. 그러나 소스 서버에서 운영중인 서비스에는 영향을 미치지 않습니다.
[그림] 타깃 디스크 장애 발생 화면
- MCCS에서 타깃 디스크에 대한 장애 감지는 해당 디스크의 드라이브 문자가 있는지 없는지 만을 판단합니다.
- 디스크 장애 발생 요인은 다음과 같은 경우가 있을 수 있습니다.위의 문제가 해결 된 후에 운영 체제는 변경된 디스크를 다시 인식합니다.이후 복제 소프트웨어에서 동기화를 진행합니다.
- 디스크 컨트롤러 문제 하드웨어 자체 문제는 해당 업체에서 해결해야 합니다.
- 물리적인 디스크 문제 하드웨어 자체 문제는 해당 업체에서 해결해야 합니다.
- 미러 리소스에서 동기화가 진행되지 않으면 미러디스크 리소스를 삭제한 후에 다시 생성해야 합니다. 단, 삭제 시 리소스만 삭제가 아니라 생성된 미러까지 삭제하고 다시 생성해야 합니다.
미러 디스크 리소스의 Split Brain
매우 드문 경우이지만 두 서버상에서 미러 디스크 역할이 모두 소스로 인식되는 경우입니다.
이러한 상황은 타깃이 소스로 변경되는 시점에 기존 소스가 타깃으로 변경되지 못한 결과이며, 이 때는 서로 자신의 데이터를 동기화하려 하지만 데이터를 받는 상대 서버 역시 자신이 소스 서버인 상태이므로 역할 변경을 거부하게 됩니다.
미러 디스크에서 Split Brain이 발생하는 상황은 다음과 같습니다.
- 소스 서버(A) 장애로 인해 페일오버가 발생합니다.
- MCCS에서 SWITCHOVERVOLUME 명령을 실행합니다.
- 기존 소스 볼륨이 삭제되지 않고 타깃 서버(B)의 역할이 소스로 변경됩니다. (미러 디스크 역할 변경)
- 최초의 소스 서버(A)를 재부팅합니다.
- 최초의 소스 서버(A)가 부팅된 후에 타깃 서버(B)의 역할을 확인합니다.
- 타깃 서버(B)가 소스이면 최초의 소스 서버(A)는 이미 정상적으로 페일오버 되었다고 판단하고 자신을 타깃으로 변경합니다.
- 미러 네트워크 이상 또는 다른 오류로 인하여 부팅 시점에 이 역할을 확인할 수 없게 됩니다. (5, 6번 과정 확인 실패)
- 양 서버의 미러 역할이 모두 소스가 됩니다. (Split Brain 발생)
이러한 상태가 되면 MCCS 웹 콘솔상에서 미러 디스크 리소스의 아이콘 표시가 겹쳐서 나타나며(), MirrorRole 속성값이 두 서버에 대해 모두 "Source"로 표시됩니다.
이러한 경우에는 미러 디스크 역할을 수동으로 변경해야 하며, 변경한 후에는 재동기화 과정이 발생합니다.
미러 디스크 역할을 수동으로 변경하는 방법은 MCCS 웹 콘솔을 이용하면 됩니다.
MCCS 웹 콘솔을 사용해서 스플릿브레인을 해결하는 방법
리소스 속성창을 확인합니다.
[그림] 미러디스크 스플릿 브레인 확인미러 관리창을 확인합니다.
[그림] 미러디스크 스플릿 브레인 확인1) 양 노드의 MirrorRole은 Source, MirrorState은 MIRROR_PAUSED 상태가 됩니다.
2) 미러디스크의 TimeAquiredSourceRole을 확인합니다. (TimeAquiredSourceRole은 시스템의 시간이므로 최신 데이터의 유무를 결정할 수 있는 절대값이 아닙니다.)
3) 스플릿 브레인이 발생했을 때 발생하는 로그가 출력됩니다.
(윈도우즈 이벤트 오류: An invalid attempt to establish a mirror occurred. Both systems were found to be Source.
Local Volume: F Remote system: 200.200.124.49 Remote Volume: F The mirror has been paused, or left in its current non-mirroring state.
Use the DataKeeper User Inteface to resolve this Split Brain condition.)
4) 미러 관리창에서 미러 상태가 "SPLIT" 상태입니다.- 미러디스크를 선택하고 오른쪽 버튼을 클릭하여 [스플릿 브레인 해결]을 클릭합니다.
- 스플릿브레인에 대한 설명창이 출력됩니다.
[그림] 소스 노드 선택에 대한 내용 확인 - 소스노드를 선택합니다.
[그림] 소스 롤 노드 선택 - 선택한 소스노드에 대해 다시 한번 확인합니다.
[그림] 소스 노드 선택 다시 확인 - 스플릿해결 중인 화면입니다.
[그림] 스플릿 브레인 해결 화면 - 스플릿해결 완료 화면입니다.
[그림] 스플릿 브레인 해결 완료 화면 선택한 노드가 소스노드가 되고 미러디스크의 상태는 MIRRORING 상태로 바뀌게 됩니다.
[그림] 스플릿 브레인 해결노드 B 의 변경된 정보는 모두 덮어써지게 됩니다
공유 디스크 장애 (외장 스토리지)
외장 디스크의 연결 경로 및 디스크에 장애가 발생하면 해당 디스크의 Read/Write가 불가능하므로 MCCS는 장애를 표시하고 페일오버를 진행합니다.
[그림] 공유 디스크 장애 발생 화면
- 외장 스토리지 장애는 MCCS 로그, 시스템 로그에서 장애 내역을 확인할 수 있습니다.
외장 스토리지 자체에 문제가 생기면 스토리지를 복구 할 때까지 서버 운영이 중단 됩니다. 따라서 빠른 시간 내에 스토리지를 복구하거나 임시 스토리지(백업 스토리지)로 교체해서 사용해야 합니다.
외장 스토리지와 관련된 장애는 해당 스토리지 업체에 문의하시기 바랍니다.
장애가 발생한 서버의 외장 스토리지 연결 및 디스크가 정상화 되면 MCCS 커널 드라이버가 복구된 환경을 다시 인식할 수 있도록 서버를 재부팅 해야 합니다.
또한 해당 스토리지 벤더를 통해 스토리지의 이중화 대책을 마련해야 합니다.