Skip to end of metadata
Go to start of metadata

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

Compare with Current View Version History

« Previous Version 12 Next »

 

이 페이지의 주요 내용

 

정의

서비스에 필요한 데이터가 클러스터에 정의된 노드들 간에 공유될 수 없는 경우, 즉 NAS 또는 DAS로 공유되지 못할 경우에는 페일오버할 때에 동일한 데이터로 서비스할 수 없습니다.

이런 경우에 로컬에서만 접근이 가능한 데이터를 대기 서버로 복제하여 대기 서버에서 동일한 데이터를 갖도록 할 수 있습니다. 미러 디스크는 이러한 기능을 하는 복제 소프트웨어 미러 볼륨에 대한 에이전트입니다.

미러 디스크 에이전트는 미러 볼륨의 상태와 역할에 따라 동작이 결정됩니다. 미러 디스크 상태, 역할과 같은 동적인 정보는 모두 시스템 이벤트 로그에 기록되며, MCCS의 이벤트 로그 모니터 모듈에 의해 MCCS로 전달됩니다.

MCCS 이벤트 모듈은 MCCS 서비스가 시작될 때에 기동됩니다.

복제 소프트웨어는 다른 두 서버간의 볼륨에 대해서 미러를 생성함으로써 동작을 하게 됩니다.

소스 볼륨(Source Volume)은 주 서버(Primary) 에 위치하고, 타깃 볼륨(Target Volume)은 보조 서버(Secondary)에 위치합니다.

클라이언트는 소스 볼륨에서만 읽기/쓰기가 가능하고, 쓰여진 데이터들은 네트워크를 통해서 타깃 볼륨에 복제됩니다. 이 때, 타깃 볼륨은 읽기/쓰기가 모두 허용되지 않는 잠금 상태입니다. 이는 데이터 무결성을 보장하기 위해 타깃 볼륨을 사용하지 못하도록 하기 위함입니다.

다음 그림은 두 대의 서버에 Mirroring이 설정된 것을 나타냅니다.

[그림] 미러링 구성도

데이터 동기화

미러링 방식은 동기 모드와 비동기 모드로 나뉘어지며, 이는 저장 요청에 대한 응답이 언제 발생하는지에 따라 결정됩니다.

비동기(Async) 모드

미러 볼륨에 대한 쓰기 요청 응답은 소스 볼륨에 대한 저장이 완료되는 즉시 이루어집니다. 타깃 볼륨으로 데이터가 전송되고 저장되기를 기다리지 않기 때문에 응답이 빠른 반면에 장애가 발생할 경우에는 그 시점에 전송되지 못한 데이터만큼의 데이터 불일치가 발생할 수도 있습니다.

동기(Sync) 모드

디스크에 대해 쓰기 요청이 발생하면 데이터는 소스 볼륨에 쓰여지는 동시에 타깃 볼륨에도 쓰여집니다. 쓰기 요청에 대한 최종적인 성공 응답은 소스와 타깃에 대한 쓰기가 모두 성공한 후에 이루어집니다. 응답속도는 느리지만 소스와 타깃 간의 데이터는 언제나 동일합니다.

추가

그룹에서 추가 할 경우
  1. 그룹 - 마우스 우 클릭 - 리소스 추가를 선택합니다.
     
    [그림] 리소스 위자드 리소스추가 화면
     
  2. 리소스 위자드에서 미러 디스크를 선택하고 Next 버튼을 클릭합니다.
     
    [그림] 리소스 위자드 선택화면

  3. 나머지 과정은 아래의 리소스 타입에서 추가 할 경우와 같습니다.

리소스 타입에서 추가 할 경우
  1. 리소스타입 - 마우스 우 클릭 - 리소스 추가를 선택합니다.

      [그림] 리소스 타입 리소스추가 화면

  2. 미러디스크 리소스를 추가할 정보를 가져오는 중입니다.
     
    [그림] 미러디스크 리소스 정보 취합화면    

  3. 정보를 모두 가져오게 되면 미러디스크 소스 롤을 가지는 서버를 선택할 수 있고, 리소스로 사용 할 드라이브 문자를 선택하면 권장 이름(ex: Mirror_Y)을 제공해 줍니다. (이미지수정)

    미러 디스크로 사용될 드라이브 문자는 양쪽 서버에서 같은 드라이브 문자로 되어있어야 합니다.

    [SAN 환경의 드라이브 문자(공유디스크)도 목록에 보여지므로 정확한 드라이브 문자를 선택하시기 바랍니다.]

    데이터는 소스로 지정 된 노드에서 타겟으로 지정 된 노드로 복제됩니다.

    데이터가 존재하는 드라이브 문자를 선택하실 때 주의 하시기 바랍니다.

        

    [그림] 정보 취합 후 미러디스크 리소스 추가 화면

     

  4. 추가 설정을 클릭하여 동기화 모드와 디스크 검사 옵션을 정의 합니다.

    <동기화 모드>

    동기화 모드는 한번 선택하면 변경 할 수 없으므로 주의해서 선택합니다.

    동기모드 : 느리지만 데이터 손실이 없습니다. 

    비동기모드 : 동기모드보다 상대적으로 빠르지만 데이터 손실이 발생 할 수 있습니다.

     

    <디스크 검사 옵션>

    디스크 검사 명령 실행 옵션을 지정합니다. 자세한 기능은 MSDN을 참고하시면 됩니다.

    [그림] 미러디스크 추가설정 화면

     

  5. 미러디스크 리소스 추가 완료 버튼을 누르면 아래와 같은 경고창이 출력됩니다. 선택한 서버가 소스서버가 맞는지 다시 한번 확인합니다.  
    잘못 설정했다면 '취소' 버튼을 누르고 다시 설정합니다.
     
    [그림] 미러디스크 리소스 추가 완료 버튼을 클릭 했을 때 출력되는 경고창    

  6. 완료를 클릭하면 미러디스크 리소스가 생성됩니다.
     
    [그림] 미러디스크 리소스 추가 완료 화면

 

삭제

리소스타입 - 마우스 우 클릭 - 리소스 삭제 선택합니다.

  1. 삭제 메뉴를 선택합니다.
     
    [그림] 미러디스크 리소스 삭제 화면    

  2. 리소스 삭제를 클릭하면 MCCS 에 구성된 미러디스크 리소스를 삭제할지 물어봅니다.
     
    [그림] 리소스 확인 화면    

  3. 확인을 클릭하면 MCCS 에 구성된 미러디스크 리소스 뿐만 아니라 복제 프로그램에 구성된 미러도 삭제할지 다시 한번 확인합니다.
     
    [그림] 물리적 미러 디스크 삭제 화면    

  4. 확인을 클릭하면 모두 삭제, 취소를 클릭하면 MCCS 에 구성된 미러디스크 리소스만 삭제하게 됩니다.

상태

온라인

소스 볼륨이 접근 가능하고 쓰기 테스트가 정상적으로 이루어지는 상태입니다.

오프라인

온라인, 장애 상황을 제외한 상황은 모두 오프라인 상태입니다.

장애

온라인 상태에서 쓰기 테스트가 실패하거나 또는 온라인 시도가 실패하면 장애 상태로 표시됩니다.

페일오버비활성상태

미러 네트워크 통신 장애, 타깃 노드 또는 타깃 디스크 이상 등의 장애가 발생하면 미러 상태는 MIRRORING이 아닌 다른 상태, 즉 MIRROR_PAUSED와 같은 상태가 됩니다. 미러 상태가 MIRRORING이 아닌 경우는 페일오버가 발생하게 되면 데이터 소실 또는 데이터 손상을 야기할 수 있습니다.

이를 방지하기 위해 에이전트는 미러 상태가 MIRRORING이 아닌 상태로 변경되면 페일오버 모드를 비활성화합니다. 페일오버 모드가 비활성화되면 수동 페일오버 및 장애가 발생해도 페일오버를 실행하지 않습니다.

미러 네트워크 통신 장애인 경우에 통신이 재개되면 자동으로 RESYNC를 수행하며, 미러 상태가 MIRRORING으로 변경되면 페일오버 모드 또한 자동으로 활성화됩니다.

속성

[그림] 미러 디스크 속성 화면

 

ArgList 인수

설명

데이터타입

필수여부

SourceIP

메인 서버(소스 볼륨이 위치한 서버)의 미러 네트워크의 IP 주소입니다.
DK에서 CREATEVOLUME 명령에서 소스 시스템에 지정한 IP 값을 입력합니다

IP ADDRESS

 

TargetIP

보조 서버(타깃 볼륨이 위치한 서버)의 미러 네트워크의 IP 주소입니다.
CREATEVOLUME 명령에서 타깃 시스템에 지정한 IP 값을 입력합니다.

IP ADDRESS

 

DriveLetter

미러 볼륨이 할당된 드라이버 문자입니다.
소스, 타깃 시스템에서 동일한 값을 갖도록 미리 구성해야 합니다. 드라이버 문자 뒤에 콜론(':')은 생략할 수 있습니다.

STRING

필수

LastMirrorOnlineTime

마지막으로 미러디스크가 온라인 된 시점의 시스템 시간을 기록합니다.

시스템의 시간을 기준으로 기록되므로 최신 데이터의 유무를 결정할 수 있는 절대값이 아닙니다.

 

DATE 

Chkdsk

True로 설정될 경우에 온라인시에 볼륨에 더티 비트가 설정되어 있으면 ChkdskArg 옵션으로 체크 디스크를 실행합니다.

체크디스크 실행 전에는 미러의 복제상태가 자동으로 중지가 되고, 완료 후에 자동으로 재동기화 됩니다.

기본값=false

STRING

 

ChkdskArg

Chkdsk가 true일 때 체크 디스크 명령 옵션을 지정합니다.

기본값=/F

STRING

 

MirrorRole

미러 볼륨의 미러 역할입니다.
이벤트 로그로부터 갱신됩니다.

STRING

 

MirrorState

미러 볼륨의 미러 상태입니다.
이벤트 로그로부터 갱신됩니다.

STRING

 

MirrorTimeout

볼륨 페일오버, 스위치 등의 과정에서 미러 롤(Role) 또는 상태 업데이트에 대한 시간 제한 값입니다.

이 시간 내에 상태 또는 롤에 대한 갱신이 없을 경우는 타임아웃 에러가 발생합니다.

기본값=120(초)

INTEGER

 

MirrorType

미러 동기화 모드를 결정합니다. A 또는 S. A - 비동기모드. S - 동기모드
* 비동기모드로 설정할 경우 데이터 손실이 발생할 수 있습니다.

STRING

 

ArgList 인수들에 대한 속성값은 해당 리소스를 등록할 때에 입력된 값이며, '리소스 고유 속성'에서 값을 변경하거나 확인할 수 있습니다.

  

 

미러 디스크 에이전트

미러 디스크를 관리하며, 복제 프로그램이 설치되어 있어야 합니다. 

기능

Online

시작되는 노드 상에서의 미러 볼륨 역할에 따라 동작이 결정됩니다.

소스볼륨

볼륨에 대한 잠금 상태만 해제합니다. 잠금 해제는 복제프로그램의 'UNLOCKVOLUME'으로 이루어집니다. 

타깃볼륨

미러 역할이 타깃인 노드에서 온라인 하려면 미러 상태가 Mirroring이 아닌 경우는 실패한 것으로 처리됩니다. 미러 볼륨이 완전히 동기화된 상태라면 미러 역할을 바꿀 수 있으며, 그 과정은 소스 노드(A) 상태에 따라 결정됩니다.

노드 A의 미러 드라이버에 연결이 되는 경우는 DELETEMIRROR 명령에 의해 기존 미러 볼륨 구성을 삭제한 후에 타깃을 소스로 소스를 타깃으로 변경해서 CREATEMIRROR 명령으로 역방향 미러 볼륨을 만듭니다.

이 때, 옵션은 0x1을 지정하여 전체 동기화를 하지 않습니다. 만일 노드 A의 미러 드라이버에 연결할 수 없는 경우는 DELETELOCALMIRRORONLY 명령으로 노드 B의 미러 구성만 삭제한 후, CREATEMIRROR 명령으로 역방향 미러 볼륨을 구성합니다.

이 때는 노드 A가 응답을 하지 않기 때문에 타깃 미러 볼륨이 만들어지기를 기다리지 않도록 0x2 옵션이 추가됩니다.

최종적으로 볼륨이 잠금 상태일 경우는 잠금을 해제합니다.

미러볼륨이 정의되지 않은 경우

아무런 동작 없이 실패로 처리됩니다.

Offline

미러 역할에 관계없이 LOCKVOLUME 명령으로 볼륨을 잠급니다. 미러 볼륨이 정의되지 않은 경우, LOCKVOLUME 명령은 무시되어 실패한 것으로 처리됩니다.

Monitor

모니터 과정 또한 미러 볼륨의 상태와 역할에 따라 결정됩니다. 복제프로그램 커널 드라이버는 미러 볼륨의 상태가 변경될 경우에 시스템 이벤트 로그에 이벤트를 기록합니다.

MCCS 이벤트 모니터는 MCCS 서비스를 시작할 때에 이벤트 수신자로 등록하고 시스템 이벤트가 발생하면 자동으로 통보를 받아 미러 볼륨의 상태와 역할 변경 여부를 감지합니다. 상태와 역할이 결정된 상태에서 디스크 쓰기 테스트를 통해 최종적인 리소스 상태를 결정합니다.

소스 볼륨

쓰기 테스트가 성공하면 온라인 상태인 것으로 간주합니다.

단, 소스 볼륨인 상태에서 처음으로 모니터링이 실행되는 경우는 LastSource 값을 검사합니다. 만일 LastSource에 등록된 값이 로컬 노드가 아니면 SPLIT-BRAIN을 검사합니다.

대기 노드의 미러 역할이 소스가 아니면 LastSource를 로컬 노드로 설정합니다. 만일 상대 노드의 역할이 소스 볼륨이면 SPLIT-BRAIN 상황으로 판단하고, 로컬 노드에서 PREPARETOBECOMETARGET 명령을 실행하여 로컬을 타깃으로 변경하고 동기화를 계속하도록 CONTINUEMIRROR 명령을 실행합니다.

상대 노드 역할을 알 수 없는 경우는 상대 노드가 장애 상태이면 LastSource를 로컬로 설정합니다. 장애 상태도 아니며 Resynchronizing이나 Mirroring이 아니면 원본 데이터가 어떤 쪽인지 판단할 수 없는 상황으로서 볼륨을 잠금 상태로 설정하고 PAUSEMIRROR 명령으로 동기화 또한 중지합니다.

타깃 볼륨

디스크에 대한 쓰기 테스트를 하여 실패하면 오프라인 상태인 것으로 판단합니다. 쓰기가 가능한 경우 그룹이 잠금 상태이면 오프라인 상태로 간주하지만, 그렇지 않은 경우는 볼륨에 대해 LOCKVOLUME 명령을 실행합니다. 백업 또는 데이터 정합성을 테스트하기 위해 타깃 볼륨의 잠금 상태를 해제하는 경우는 사전에 리소스 그룹에 대해 잠금 설정을 하지 않으면 에이전트가 타깃 볼륨을 자동으로 다시 잠금 상태로 하게 됩니다. 따라서 타깃 볼륨에 대한 잠금을 해제하려면 사전에 반드시 그룹에 대해 잠금 설정을 해야 합니다.

미러 볼륨이 정의되지 않은 경우

오프라인 상태로 판단합니다.

 

  • No labels