...
온라인 정합성 검사는 장치 운영 중에 노드 간의 블록별 데이터의 정합성을 확인하는 기능입니다. 정합성 검사는 중복 검사하지 않으며 네트워크 대역폭을 효율적으로 사용하고 파일시스템에 의해 사용하고 있는 영역에 대해서 대해서만 검사하는 것을 기본 동작으로 합니다. 온라인 정합성 검사는 지원하지 않는 파일시스템은 전체 검사 합니다.
동작방식은 다음과 같습니다. 한 쪽 노드에서(verification source) 특정 리소스 스토리지상의 모든 데이터 블럭을 순차적으로 암호화 요약(cryptographic digest)시키고, 요약된 내용을 상대 노드(verification target)로 전송하여 같은 블럭위치의 내용을 요약 비교 합니다. 만약 요약된 내용이 일치하지 않으면 , 해당 블럭은 out-of-sync로 표시되고 나중에 동기화대상이 됩니다. 여기서 블럭의 전체 내용을 전송하는 것이 아니라 최소한의 요약본만 전송하기 때문에 네트워크 대역을 효과적으로 효율적으로 사용하게 됩니다.
리소스의 정합성을 검증하는 작업은 운영 중에 검사하기 때문에 온라인 검사와 복제가 동시에 수행될 경우 약간의 복제성능 저하가 있을 수 있습니다. 하지만 서비스를 중단할 필요가 없고 검사를 하거나 검사 중이거나 검사 후 동기화 과정 중에서 시스템의 과정에서 서비스의 다운 타임이 발생하지 않는 장점이 있습니다.
보통 온라인 정합성 검사에 따른 작업은 OS에서 검사는 OS에 예약된 작업으로 등록하여 운영 I/O 부하가 적은 시간 대에 주기적으로 수행하는 것이 일반적인 사용법입니다일반적 입니다.
활성화
온라인 정합성 검사는 기본적으로 비활성화되어 있는데, bsr비활성화 되어 있으며 bsr.conf 내의 리소스 구성에 다음과 같은 내용을 추가하면 활성화할 수 있습니다추가하여 활성화 합니다.
Code Block |
---|
resource <resource> { net { verify-alg <algorithm>; } ... } |
algorithm 은 메시지 해싱 알고리즘을 말하며 Windows 말하며 OS 커널에서 제공하는 다양한 알고리즘을 사용할 수 있습니다.(Windows 에선 crc32c 만 지원합니다.)
온라인 검증을 활성화 하기 위해 양 노드의 리소스 구성을 똑같이 변경한 후, 양 노드에서 bsradm adjust <resource>를 실행하여 변경사항을 적용시킵니다.
...
Code Block |
---|
bsradm disconnect <resource>
bsradm connect <resource> |
정합성 검사는 수행 도중 때에 따라 취소할 수 있습니다.
Code Block |
---|
bsradm verify-stop <resource> |
자동 검사
정기적으로 정합성 검사를 할 필요가 있다면, 다음과 같은 방법으로 bsradm verify <resource> 명령을 작업 스케줄러에 등록합니다.
...