...
미러 디스크 속성에 대한 수정 가능한 값 및 설명은 "챕터 9. 속성 - 리소스 타입 속성값" 편을 참조해 주십시오.
미러 디스크 에이전트
미러 디스크를 관리하며, 복제 프로그램이 설치되어 있어야 합니다.
기능
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 명령을 실행합니다. 백업 또는 데이터 정합성을 테스트하기 위해 타깃 볼륨의 잠금 상태를 해제하는 경우는 사전에 리소스 그룹에 대해 잠금 설정을 하지 않으면 에이전트가 타깃 볼륨을 자동으로 다시 잠금 상태로 하게 됩니다. 따라서 타깃 볼륨에 대한 잠금을 해제하려면 사전에 반드시 그룹에 대해 잠금 설정을 해야 합니다.
미러 볼륨이 정의되지 않은 경우
오프라인 상태로 판단합니다.