미러디스크 장애


이 페이지의 주요 내용



소스 디스크 장애

MCCS는 미러 디스크에 접속이 불가능한 상황이 되면 장애로 인식합니다.
운영 서버의 미러 디스크 리소스에 장애가 발생하면 미러 디스크 리소스 아이콘에 장애가 표시됩니다.
그리고 장애가 일어난 미러 디스크 리소스를 포한한 그룹은 대기 서버로 페일오버를 진행합니다. 

 

[그림] 미러 디스크 장애 발생 화면


  1. MCCS에서 디스크에 대한 장애 감지 방식은 다음과 같습니다.
    아래 사항을 확인했을 때 실행이 안된다면 장애로 판단합니다.
    • 해당 디스크가 마운트 되어 있는지 확인합니다. 
    • 해당 디스크에 읽고 쓰기가 가능한지 확인합니다.
  2. 디스크 장애 발생 요인은 다음과 같은 경우가 있을 수 있습니다.
    • 디스크 컨트롤러 문제: 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.
    • 물리적인 디스크 문제: 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.

    위의 문제가 해결된 후에 운영 체제는 디스크를 다시 인식합니다.
    이후 복제 소프트웨어에서 동기화를 진행합니다.
  3. 미러 디스크 리소스에서 동기화가 진행되지 않으면 미러 디스크 리소스를 삭제한 후에 다시 생성해야 합니다.
    단, 삭제 시 미러 디스크 리소스만 삭제하는 것이 아니라 데이터 복제 프로그램에 생성된 미러 설정까지 삭제하고 다시 생성해야 합니다. 


타깃 디스크 장애 

대기 서버의 미러 디스크에 장애가 발생하면 미러 디스크 리소스 아이콘에 (Pause)가 표시됩니다. 소스 서버에서 운영 중인 서비스에는 영향을 미치지 않습니다.


[그림] 타깃 디스크 장애 발생 화면


  1. MCCS에서 대기 서버의 미러 디스크에 대한 장애 감지는 해당 디스크의 드라이브 문자가 있는지 없는지 만을 ��단합니다.

  2. 디스크 장애 발생 요인은 다음과 같은 경우가 있을 수 있습니다.
    • 디스크 컨트롤러 문제: 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.
    • 물리적인 디스크 문제: 하드웨어 자체의 문제는 해당 업체에서 해결해야 합니다.

    위의 문제가 해결된 후에 운영 체제는 디스크를 다시 인식합니다.
    이후 복제 소프트웨어에서 동기화를 진행합니다.

  3. 미러 디스크 리소스에서 동기화가 진행되지 않으면 미러 디스크 리소스를 삭제한 후에 다시 생성해야 합니다.
    단, 삭제 시 미러 디스크 리소스만 삭제하는 것이 아니라 데이터 복제 프로그램에 생성된 미러 설정까지 삭제하고 다시 생성해야 합니다. 

미러 디스크 리소스의 Split Brain

Split Brain 이란 두 서버에서 미러 디스크 역할이 모두 소스로 인식되는 경우입니다.
이러한 상황은 타깃이였던 미러 디스크가 소스로 변경되는 시점에 기존에 소스였던 미러 디스크가 타깃으로 변경되지 못해서 생기는 상황입니다.
이 때는 서로 자신의 데이터를 동기화하려 하지만 데이터를 받는 상대 서버 역시 자신이 소스 서버인 상태이므로 역할 변경을 거부하게 됩니다.


미러 디스크에서 Split Brain이 발생하는 구체적인 상황 순서는 다음과 같습니다.

  1. A 서버(소스 서버) 장애로 인해 페일오버가 발생합니다.
  2. MCCS에서 "SWITCHOVERVOLUME" 명령을 실행합니다. 이 명령을 실행하면 A 서버(소스 서버)의 볼륨 역할이 소스에서 타깃으로 변경되고 기존에 타깃이었던 B 서버의 역할이 타깃에서 소스로 변경됩니다.
  3. 어떤 이유에서 A 서버(기존 소스)의 볼륨 역할이 삭제되지 않고 그대로 소스 역할이고 B 서버(기존 타깃)의 역할은 명령대로 소스로 변경됩니다.
  4. A 서버(기존 소스)를 재부팅합니다.
  5. A 서버(기존 소스)가 부팅하면서 B 서버(새로 소스)의 역할을 확인합니다.
  6. B 서버가 소스이면 A 서버는 이미 정상적으로 페일오버 되었다고 판단하고 자신을 타깃으로 변경하는 것이 정상입니다. 하지만 
    미러 네트워크 이상 또는 다른 오류로 인하여 부팅 시점에 이 역할을 확인할 수 없게 됩니다. (5번 과정 확인 실패)
  7. 양 서버의 미러 역할이 모두 소스가 됩니다.
  8. Split Brain 발생

    이러한 상태가 되면 MCCS 웹 콘솔상에 미러 디스크 리소스 아이콘에  ()표시가 겹쳐서 나타나며, MirrorRole 속성 값이 두 서버 모두 소스 역할입니다.
    미러 디스크 역할을 수동으로 변경해야 하며, 변경한 후에는 재동기화 과정이 발생합니다.
    미러 디스크 역할을 수동으로 변경하는 방법은 MCCS 웹 콘솔을 이용하면 됩니다.

 

MCCS 웹 콘솔을 사용해서 스플릿브레인을 해결하는 방법

  1. 리소스 속성창을 확인합니다.

    [그림] 미러디스크 스플릿 브레인 확인


  2. 미러 관리창을 확인합니다.


    [그림] 미러디스크 스플릿 브레인 확인



    1번, 2번 UI에서 볼 수 있듯이 Split Brain 상황이 일어나면
    양 노드의 MirrorRole은 Source, MirrorState은 MIRROR_PAUSED 상태가 됩니다.
    미러 디스크의 TimeAquiredSourceRole을 확인하여 Split Brain이 일어난 시점을 확인합니다. TimeAquiredSourceRole은 시스템의 시간이므로 최신 데이터의 유무를 결정할 수 있는 절대값이 아닙니다.
    TimeAquiredSourceRole을 참고하여 스플릿 브레인이 발생했을 때 출력되는 로그를 확인합니다. 
    미러 관리창에서 미러 상태가 "SPLIT" 상태입니다.

  3. 미러디스크를 선택하고 오른쪽 버튼을 클릭하여 [스플릿 브레인 해결]을 클릭합니다.



  4. 스플릿브레인에 대한 설명창이 출력됩니다.

    아래 설명 창의 설명에서와 같이 타깃 역할로 변경된 디스크 쪽의 정보는 모두 소스 역할로 선택된 정보로 덮어써지게 됩니다.


     
    [그림] 소스 노드 선택에 대한 내용 확인

  5. 소스노드를 선택합니다.

    [그림] 소스 롤 노드 선택

  6. 선택한 소스노드에 대해 다시 한번 확인합니다.

    [그림] 소스 노드 선택 다시 확인

  7. 스플릿해결 중인 화면입니다.

    [그림] 스플릿 브레인 해결 화면

  8. 스플릿해결 완료 화면입니다.

    [그림] 스플릿 브레인 해결 완료 화면

  9. 선택한 노드가 소스노드가 되고 미러디스크의 상태는 "MIRRORING" 상태로 바뀌게 됩니다. 

    [그림] 스플릿 브레인 해결