Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

스플릿 브레인

개요

복제 클러스터의 관리자 또는 관리(HA) 소프트웨어에 의해 특정 시점에 소스 노드가 2 노드 이상 되는 상태를 스플릿 브레인(이하 SB) 이라고 합니다. SB는 복제 연결이 단절될 때 발생하며 양 노드가 서로의 역할과 상태를 알 수 없는 상태에서 동시에 소스노드가 되는 상황입니다. 이렇게 SB가 발생하면 복제 클러스터가 2개의 복제 SET으로 분할되어 잠재적으로 데이터가 유실될 수 있는 상태에 놓입니다. SB 발생을 인지하면 관리자는 다음의 절차에 따라 SB를 해결하고 복제를 정상화 시켜야 합니다.

감지

FSR 은 엔진 내부적으로 양 노드가 SB 상태인지를 식별할 수 있습니다. SB 에 대한 식별은 복제 연결이 수립되는 시점에 RID교환을 통해 수행하며 그 결과 SB 로 인식될 경우 복제 연결을 즉시 끊어서 연결 중립(standalone) 상태로 대기하게 됩니다. 다음은 SB 가 발생 되었을 때의 출력 로그 입니다.

2019-12-19 14:50:03.629 WRN establishing error=split-brain compare=newer key=1 peer=node3 resource=r0 state=connected

해결

SB 를 해결하는 방법은 SB가 발생한 두 노드 중 희생할 노드를 결정하는 것으로 시작합니다. 희생할 노드가 결정되면 희생노드 상에서 다음의 명령을 통해 희생노드의 데이터를 폐기하는 옵션으로 상대노드와 연결하여 최종 SB를 해결합니다.

fsradm connect --discard-my-data <res-id> <peer-node>

--discard-my-data 로 연결을 수립하여 SB를 해결하면 희생노드는 상대노드를 기준으로 재 동기화하여 최신 복제 데이터 셋으로 복구 합니다.

다중 SB가 발생한 경우, 희생노드 간 동기화는 발생하지 않으므로 모든 희생 노드에서 --discard-my-data 로 연결을 수립하여 해결할 수 있습니다.

장애 대응

FSR 은 다음의 오류 상황들을 장애로 정의하고 이에 대한 후속 대응과 정책을 제공합니다.

I/O 오류

복제 중 파일 쓰기 I/O 는 실패할 수 있습니다. 파일 쓰기에 대한 권한이 변경되어 권한 오류가 발생하거나 파일시스템 수준에서 오류가 발생하는 등 다양한 상황이 있습니다. 이렇게 되면 소스의 파일 쓰기는 성공하지만 타깃이 실패하거나 아니면 그 반대의 상황이 되기 때문에 복제를 운영할 수 없습니다. 이런 경우에 FSR 은 복제를 우선 중단하고 사용자에게 오류 발생을 통보 합니다. 다음은 I/O 오류가 발생했을 때의 로그 입니다.


파일 I/O 가 실패하면 FSR 은 다음과 같이 failed 상태가 됩니다.


파일 I/O 오류의 문제는 관리자가 오류 상황을 파악하고 문제가 해소되도록 별도로 조치를 취해야 합니다. 이 오류가 해결되어야 복제를 다시 정상화 시킬 수 있습니다.

별도 조치로 오류가 해결되면 정합성 검사 기능을 이용해 복제를 정상화 합니다. 보통 I/O 오류가 발생하면 전체 복제 파일셋에서 일부 파일들에 대해서만 오류가 발생할 경우가 많습니다. 그래서 소스와 타깃 간의 정합성 검사를 통해 일부의 불일치 파일들을 확인하고 재동기화를 시켜서 복제가 정상화되도록 합니다. 만일 많은 양의 데이터와 파일들에서 오류가 발생했다면 전체 동기화를 다시 하는게 좋습니다.

정합성 검사에 대한 자세한 내용은 작업의 정합성 검사를 참고하세요.

디스크 오류

디스크 오류가 발생하는 상황은 다음과 같습니다.

  • OS 커널의 스토리지 드라이버 계층에서 I/O 오류가 발생할 수 있습니다. 이 오류가 일시적으로 발생한 오류라면 앞 단락의 I/O 와 동일하게 취급하여 처리하면 됩니다. 오류가 영구적일 경우에는 관련 드라이버를 다시 설치하거나 스토리지 환경에서 발생하는 문제에 대해 조사해야 합니다.
  • 디스크 미디어의 배드섹터 또는 물리적 파손으로 인한 I/O 오류가 발생하면 영구적인 장애로서 디스크 교체가 요구됩니다. 
    • 앞 단락의 I/O 오류는 소프트웨어적인 오류로서 일시적인 I/O 오류로 분류합니다.
  • 볼륨이 마운트 해제(umount) 되었을 경우(시스템 종료 시 umount 제외)에도 영구적인 장애로 간주 합니다. 마운트 해제를 기본적으로 영구적 장애로 간주하는 이유는 마운트 해제 이후의 파일의 데이터가 보존되는 지 FSR 이 알수 없기 때문입니다. 만약 마운트 해제 이후의 파일 데이터가 변경되지 않는 것이 보장된다면 해당 볼륨을 다시 마운트 하여 FSR attach 를 통해 복구하면 됩니다.

영구적인 디스크 오류가 발생한 경우에 대해 FSR 복제를 정상화하기 위해서는 전체 재구성으로 대응해야 합니다. 재구성 절차는 작업의 재구성을 참고하세요.

  • No labels