서비스에 필요한 데이터가 클러스터에 정의된 노드들 간에 공유될 수 없는 경우, 즉 NAS 또는 DAS로 공유되지 못하면 페일오버할 때에 동일한 데이터로 서비스할 수 없습니다.
이런 경우에 로컬에서만 접근이 가능한 데이터를 대기 서버로 복제하여 대기 서버에서 동일한 데이터를 갖도록 할 수 있습니다.
미러 디스크 DR은 1:2로 복제 기능을 하는 DRBD 미러 볼륨에 대한 에이전트입니다.
미러 디스크 DR 에이전트는 미러 볼륨의 상태와 역할에 따라 동작이 결정됩니다.
미러 디스크 DR 리소스 상태, 역할과 같은 동적인 정보는 모두 시스템 이벤트 로그에 기록되며, MCCS의 이벤트 로그 모니터 모듈에 의해 MCCS로 전달됩니다.
MCCS 이벤트 모듈은 MCCS 서비스가 시작될 때에 기동됩니다. DRBD는 다른 두 서버 간의 볼륨에 대해서 미러를 생성함으로써 동작을 하게 됩니다.
소스 볼륨(Source Volume)은 주 서버(Primary)에 위치하고, 타깃 볼륨(Target Volume)은 보조 서버(Secondary))와 DR 서버에 위치합니다.
클라이언트는 소스 볼륨에서만 읽기/쓰기가 가능하고, 쓰여진 데이터들은 네트워크를 통해서 타깃 볼륨에 복제됩니다.
이 때, 타깃 볼륨은 읽기/쓰기가 모두 허용되지 않는 잠금 상태입니다. 이는 데이터 무결성을 보장하기 위해 타깃 볼륨을 사용하지 못하도록 하기 위함입니다.
다음 그림은 두 대의 서버에 Mirroring이 설정된 것을 나타냅니다.
미러 디스크 DR리소스는 미리 구성된 DRBD리소스를 등록만 가능합니다.
이 페이지의 주요 내용
[그림] 미러링 구성도
데이터 동기화
미러링 방식은 동기 모드와 비동기 모드로 나뉘어지며, 이는 저장 요청에 대한 응답이 언제 발생하는지에 따라 결정됩니다.
비동기(Async) 모드
미러 볼륨에 대한 쓰기 요청 응답은 소스 볼륨에 대한 저장이 완료되는 즉시 이루어집니다.
타깃 볼륨으로 데이터가 전송되고 저장되기를 기다리지 않기 때문에 응답이 빠른 반면에 장애가 발생할 경우에는 그 시점에 전송되지 못한 데이터만큼의 데이터 불일치가 발생할 수도 있습니다.
준동기(Semi-sync) 모드
미러 볼륨에 대한 쓰기 작업 완료는 상대 노드로 복제 패킷이 전달되는 시점에 이루어집니다.
한 노드 장애시 데이터 손실은 없지만, 양쪽 서버가 동시에 장애 발생 시 데이터 손실이 발생할 수도 있습니다.
동기(Sync) 모드
디스크에 대해 쓰기 요청이 발생하면 데이터는 소스 볼륨에 쓰여지는 동시에 타깃 볼륨에도 쓰여집니다.
쓰기 요청에 대한 최종적인 성공 응답은 소스와 타깃에 대한 쓰기가 모두 성공한 후에 이루어집니다. 응답속도는 느리지만 소스와 타깃 간의 데이터는 언제나 동일합니다.
추가
미러 디스크 DR 리소스를 그룹에 추가합니다.
DRBD 8.3 또는 8.4 버전이 사전에 설치 되어 있어야 합니다.
미러디스크로 생성할 디스크는 파일 시스템의 크기는 전체 파티션 크기에서 128MB 를 뺀 크기로 생성해야 합니다.
상기 128M 의 공간에는 복제 볼륨 서비스가 관리하는 메타데이터가 저장되기 위한 공간입니다.
DR 노드로 복제되는 미러 볼륨은 internal 메타데이터만 지원합니다.
리소스를 추가 하기전에 DR노드와 통신 할 수 있는 VIP가 필요합니다.
미러 볼륨의 사이즈에 따라 메타데이터의 저장공간 사이즈는 변동됩니다.
자세한 사이즈 계산 법은 다음 사이트를 참조하십시오. (DRBD 메타데이타 사이즈 계산법)
DRBD와 LVM을 같이 사용할 경우 DRBD ON LVM만 지원하며 LVM ON DRBD는 지원하지 않습니다.
미러링은 Virtual IP를 통해서 진행되기 때문에 DRBD 리소스에 클러스터 측 네트워크 주소가 네트워크 주소 리소스로 MCCS에 사전에 등록되어 있어야 합니다.
- 그룹 선택 -> 마우스 우 클릭 -> 리소스 추가를 선택합니다.
리소스 서비스를 선택하고 Next 버튼을 클릭합니다.
미리 구성한 MDR 볼륨 선택하면 자동으로 정보가 입력됩니다.
가상볼륨, 미러 네트워크 주소 그리고 미러 포트는 자동으로 입력됩니다.볼륨에 이미 DRBD 미러 볼륨이 구성되어 있는경우 "( mirrored )" 가 표시됩니다.
또한, 선택시에는 구성정보를 자동입력하며, 변경 할 수 없습니다.
[그림] 미러 디스크 DR 추가 화면- 완료 버튼을 클릭하면 미러 디스크 DR 리소스가 추가 됩니다.
삭제
해당 리소스 선택 -> 마우스 우 클릭 -> 리소스 삭제를 선택합니다.
- 리소스 삭제를 클릭하면 MCCS 에 구성된 미러디스크 리소스를 삭제할지 물어봅니다.
[그림] 리소스 확인 화면 - “OK” 를 클릭하면 미러디스크 DR 리소스 삭제됩니다.
상태
다음 테이블은 상태와 사용자 명령에 의해 발생되는 MCCS 리소스의 상태 변화에 대한 설명입니다.
미러 디스크 DR 에이전트: 미러 디스크를 관리하며, 복제 프로그램이 설치되어 있어야 합니다.
상태 | Agent 가능 명령 | 설명 | 비고 |
---|---|---|---|
온라인 소스 볼륨이 접근 가능하고 쓰기 테스트가 정상적으로 이루어지는 상태입니다. | 오프라인 | 미러 리소스의 역할이 온라인 상태인 경우, 미러 볼륨을 정의된 마운트 포인트에서 유마운트 후 DR노드와 미러링중인 볼륨을 Down 시킨 후 미러 볼륨이 없을 경우, 명령은 무시되어 실패한 것으로 처리됩니다. | |
모니터링 | MCCS 는 DRBD 데이터 복제 서비스의 이벤트를 지속적으로 핸들링합니다. | ||
오프라인 온라인, 장애 상황을 제외한 상황은 모두 오프라인 상태입니다. | 온라인 | 시작되는 노드 상에서의 미러 볼륨 역할에 따라 동작이 결정됩니다. 미러 볼륨이 정의되지 않은 경우 아무런 동작 없이 실패로 처리됩니다. | |
모니터링 | 위에 모니터링 명령 참조 | ||
장애 온라인 상태에서 쓰기 테스트가 실패하거나 온라인 시도가 실패하면 장애 상태로 표시됩니다. *페일오버 비활성상태 | 온라인 | 위에 온라인 명령 참조 | |
오프라인 | 미러 리소스의 역할이 온라인 상태인 경우, 미러 볼륨을 정의된 마운트 포인트에서 유마운트 후 DR노드와 미러링중인 볼륨을 Down 시킨 후 미러 볼륨이 없을 경우, 명령은 무시되어 실패한 것으로 처리됩니다. . |
*미러 볼륨이 정의되지 않은 경우 오프라인 상태로 판단합니다.
속성
리소스의 고유 속성을 표시 합니다.
속성 | 설명 | 타입 | 기본값 | 수정 | 비고 |
ConnectState | 미러 볼륨의 노드간 접속 상태를 표시합니다. | STRING | X | ||
DRConnectState | DR노드의 미러 볼륨과 로컬의 미러 볼륨간의 접속 상태를 표시합니다. | STRING | X | ||
DiskState | 미러 볼륨이 관리하는 디스크의 상태를 표시합니다. | STRING | X | ||
DRDiskState | DR노드로 미러링하는 미러볼륨의 디스크 상태를 표시합니다. | STRING | X | ||
DRMirrorIP | DR노드의 볼륨을 복제 하기 위해 사용하는 IP입니다. | STRING | X | ||
DRMirrorPort | DR노드로 DRBD 미러 볼륨 복제시 사용하는 통신 포트 번호입니다. | STRING | X | ||
DRRoleState | DR노드의 DRBD 볼륨에 대한 역할 상태를 표시합니다. | STRING | X | ||
DRTargetIP | DR노드에서 사용하는 Mirror IP 입니다. | STRING | X | ||
DRVritualDevice | MDR이 데이터 복제시 사용하는 가상 장치 이름입니다. | STRING | X | ||
MDRVolumeName | DRBD 가 미러 볼륨을 관리하기 위해 부여한 이름을 표시합니다. | STRING | X | ||
DRSynced | DR노드로 볼륨이 동기화 중일 경우 동기화 진행율 표시합니다. | INTEGER | 0 | X | |
GI | 미러 볼륨을 통해 복제되는 데이터의 최신 여부를 세대 별로 관리하기 위한 식별자입니다. | STRING | X | ||
GIStatus | 각 노드의 GI(Generation Identifier)를 비교한 상태 결과 값입니다. | STRING | X | ||
KillBusyApps | 미러 리소스가 오프라인 할 경우, 해당 미러 리소스를 참조하는 작업들의 강제 종료 여부를 결정합니다. | BOOLEAN | true | O | |
LastMirrorOnlineTime | 마지막으로 미러 디스크가 온라인 된 시점의 시스템 시간을 기록합니다. | STRING | X | ||
|
| ||||
MetaDisk | 메타데이터가 저장되는 디스크입니다. | STRING | X | ||
MirrorIP | 볼륨을 복제하기 위해 사용하는 IP입니다. | STRING | X | ||
MirrorNetConnectStatus | 물리적인 미러 네트워크의 연결 상태를 표시합니다. True: 미러 네트워크 연결 (사용자의 명령에 의한 Disconnect는 이 속성에 영향을 주지 않습니다.) | BOOLEAN | true | X | |
MirrorPort | DRBD 가 미러 볼륨 복제 시 사용하는 통신 포트 번호입니다. | STRING | 7789 | X | |
RoleState | 미러 볼륨이 관리하는 볼륨의 역할에 대해 표시합니다. | STRING | X | ||
MirrorVolume | DRBD 가 실제로 사용하는 블록 장치 이름입니다. | STRING | X | ||
MountPoint | 파일 시스템이 마운트 될 디렉토리입니다. 해당 디렉토리가 없거나 이미 사용 중인 디렉토리이면 활성화할 수 없습니다. | DIRECTORY | O | ||
OOS | 동기화가 필요한 OutOfSync 값을 의미합니다. 수치가 0이 아닐 경우 노드 간에 아직 복제 혹은 동기화 완료되지 않은 데이터가 존재하고 있음을 의미합니다. | STRING | 0 | X | |
ProtocolType | 데이터 전송 프로토콜 타입입니다. A = 비동기 모드 B = 반동기 모드 C = 동기 모드 | STRING | B | X | |
ResyncRate | 볼륨 간의 재동기 비율입니다. | INTEGER | X | ||
RoleState | DRBD볼륨의 역할 상태를 표시합니다. | STRING | X | ||
SB0Policy | 클러스터 내의 모든 맴버가 secondary일 경우 자동으로 실행되는 스플릿브레인 복구 정책입니다. | STRING | X | ||
SB1Policy | 클러스터 내의 하나의 맴버가 primary일 경우 자동으로 실행되는 스플릿브레인 복구 정책입니다. | STRING | X | ||
SB2Policy | 클러스터 내의 모든 맴버가 secondary일 경우 자동으로 실행되는 스플릿브레인 복구 정책입니다. | STRING | X | ||
SplitBrainStatus | 스플릿브레인 상태를 표시합니다. True: 스플릿브레인이 발생했음 이 속성은 네트워크 단절 상태와 GIStatus 속성이 다음과 같이 스플릿브레인이 발생했다는 상태 값을 갖을 때만 유효합니다. SplitbrainDisconnect 스플릿브레인이 해결되면 이 값은 false가 됩니다. | BOOLEAN | false | X | |
Synced | 볼륨이 동기화 중일 경우 동기화 진행율 표시합니다. | INTEGER | 0 | X | |
TotalSpace | 대상 미러 볼륨의 총 크기를 나타냅니다. | INTEGER | 0 | X | |
UsedSpace | 대상 미러 볼륨의 사용 크기를 나타냅니다. | INTEGER | 0 | X | |
VirtualDevice | DRBD 가 데이터 복제 시 사용하는 가상 장치 이름입니다. | STRING | X |
속성 값은 해당 리소스를 등록할 때에 입력된 값이며, '리소스 고유 속성'에서 값을 변경하거나 확인할 수 있습니다.
MCCS는 사용자의 입력필드에 대한 입력값 제한 기능이 존재하며, 사용자가 잘못 입력한 데이터에 대해 자동 점검기능을 제공합니다.