...
Info |
---|
고려사항 절체 시 타깃노드의 리소스 파일상태는 UpToDate 상태일 때 복제 정합성이 보장됩니다. 만약 복제 연결이 단절되어 타깃이 최신 데이터를 가지지 못한 경우 이거나 타깃노드의 리소스가 동기화 중인 Inconsistent 상태일 경우에는 소스와 정합하지 않은 상태이므로 절체를 제한해야 합니다. |
조회
상태 조회
FSR의 상태를 fsradm status 명령을 통해 조회할 수 있습니다.
...
파일잠금
타깃에 복제된 파일들은 소스로부터 수신하는 미러링 데이터 이외의 쓰기 I/O 로 부터 보호되어야 합니다. 그렇지 않을 경우 복제 사본을 유지하기 위한 데이터 일관성이 훼손됩니다. 특히 HA를 운영하는 경우 Secondary의 파일 잠금은 항상 활성화 시켜서 데이터를 보호할 수 있어야 합니다.
파일잠금은 리소스의 역할에 따라 Secondary에서 활성화 되고 Primary에서 비활성화 되어 통상 타깃 파일보호 기능으로서 제공됩니다.
파일잠금은 리소스의 nodes 섹션내의 file_lock 옵션을 통해 설정할 수 있으며 fsradm lock 또는 unlock 명령을 통해 활성화하거나 비활성화 할 수 있습니다.
파일잠금 절체
파일 잠금이 리소스 역할에 따라 다르게 작용되어야 하는 만큼 기존 절체 과정에서도 고려되어야 합니다. 이것은 단순하게 강등을 하기 전 잠금하는 절차를 먼저 수행하는 것으로 처리합니다.
Code Block |
---|
c:\>fsradm lock r0
done
c:\>fsradm secondary r0
done |
반대로 승격하기 전에는 잠금을 해제하고 승격해야 합니다.
Code Block |
---|
c:\>fsradm unlock r0
done
c:\>fsradm primary r0
done |
Info |
---|
파일 잠금이 활성화 되면 해당 복제 파일 셋에 대한 쓰기 I/O가 차단 되므로 관련된 애플리케이션 및 서비스들을 모두 종료하여 해당 파일로 I/O 가 더이상 발생하지 않게 한 후 잠금이 수행되도록 해야 합니다. 만약 이렇게 하지 않으면 I/O 가 발생하는 도중 쓰기가 차단되어 I/O 에러가 유발되거나 애플리케이션이 가지고 있는 캐쉬 영역에 대한 Flush 가 실패되어 중요한 데이터의 기록이 누락될 수 있습니다. 절체 시에는 반드시 애플리케이션이 완전히 종료된 후 파일잠금이 수행되도록 보장해야 합니다. |
조회
상태 조회
FSR의 상태를 fsradm status 명령을 통해 조회할 수 있습니다.
Code Block |
---|
λ fsradm status all
r0 role:primary file:up_to_date pending:0 locked:false
node2 state:repl_source peer-state:repl_target role:secondary file:up_to_date
last-synced:2019-10-24T15:30:12+09:00
node3 state:connecting peer-state:unknown role:secondary file:unknown
last-synced:none
r1 role:secondary file:inconsistent pending:0 locked:false
node2 state:connecting peer-state:unknown role:secondary file:unknown
last-synced:none |
...
Code Block |
---|
λ fsradm result r0 { "id": "r0", "result": { "summary": { "start_time": "2019-09-09T06:22:26.6958913Z", "end_time": "2019-09-09T06:22:27.4653424Z", "peer_node": "node2" }, "totals": { "diff_dir": "3", "diff_file": "1", "diff_bytes": "14", "orphaned_dir": "0", "orphaned_file": "0", "orphaned_bytes": "0", "missing_dir": "0", "missing_file": "0", "missing_bytes": "0", "synced_bytes": "0" }, "files": [ { "type": "different", "name": "G:\\Temp\\test1\\conf\\drbd.d", "is_dir": true, "out_of_sync": "0", "synced": "0", "flags": 4, "properties": { "mod_time": { "local": "2019-09-06T13:26:59.1427926+09:00", "remote": "2019-09-02T07:24:39.161996Z" } } }, { "type": "different", "name": "G:\\Temp\\test1\\conf\\drbd.d\\1", "is_dir": true, "out_of_sync": "0", "synced": "0", "flags": 4, "properties": { "mod_time": { "local": "2019-09-06T13:26:54.0042751+09:00", "remote": "2019-09-02T07:24:39.3341577Z" } } }, { "type": "different", "name": "G:\\Temp\\test1\\conf", "is_dir": true, "out_of_sync": "0", "synced": "0", "flags": 4, "properties": { "mod_time": { "local": "2019-09-06T13:26:59.0677748+09:00", "remote": "2019-08-07T02:15:58.4057437Z" } } }, { "type": "different", "name": "G:\\Temp\\test1\\contributors.txt", "out_of_sync": "14", "synced": "0", "flags": 5, "properties": { "mod_time": { "local": "2019-09-09T14:00:05.6379239+09:00", "remote": "2018-12-12T04:42:50.6605579Z" }, "size": { "local": 9, "remote": 15 } "local": 9, } } "remote": 15 ], "file_count": 4 } } |
파일잠금
타깃에 복제된 파일들은 소스로부터 수신하는 미러링 데이터 이외의 쓰기 I/O 로 부터 보호되어야 합니다. 그렇지 않을 경우 복제 사본을 유지하기 위한 데이터 일관성이 훼손됩니다. 특히 HA를 운영하는 경우 Secondary의 파일 잠금은 항상 활성화되어 있을 필요가 있습니다.
통상 파일 잠금은 리소스의 역할에 따라 Secondary에서 활성화 되고 Primary에서 비활성화 되어 타깃 파일보호 기능으로서 제공됩니다.
...
}
}
],
"file_count": 4
}
} |
재구성
복제 운영 중 물리적인 디스크의 손상이 발생하는 등 환경적으로 예기치 않은 문제가 발생할 경우 이에 대응하고 복제를 정상화 하기 위한 절차가 필요로 합니다. 기본적으로는 이러한 문제가 발생하게 되면 디스크를 교체하고 복제 구성을 다시 해야 합니다.
...