...
bsr은 가변대역 동기화를 기본 설정으로 합니다.
온라인 정합성 검사
온라인 정합성 검사는 장치 장치 운영 중에 노드 중 노드 간의 블록 별 데이터의 정합성을 확인하는 기능입니다. 무결성 검사는 네트워크 대역폭을 효율적으로 사용하고 중복된 검사를 하지 않습니다.
온라인 정합성 검사는 한 쪽 노드에서(verification source) 특정 리소스 스토리지상의 모든 데이터 블럭을 순차적으로 암호화 요약(cryptographic digest)시키고, 요약된 내용을 상대 노드(verification target)로 전송하여 같은 블럭위치의 내용을 요약 비교 합니다. 만약 요약된 내용이 일치하지 않으면, 해당 블럭은 out-of-sync로 표시되고 나중에 동기화대상이 동기화 대상이 됩니다. 비교할 때에는 블럭의 전체 내용이 아니라 최소한의 요약본만 전송하여 네트워크 대역을 효과적으로 사용합니다.
정합성 검사는 온라인 중에 하기 때문에 온라인 검사와 복제가 동시에 수행될 경우 약간의 복제 성능 저하가 있을 수 있습니다. 하지만 서비스를 중단할 필요가 없고 검사를 하거나 검사 이후 검사 중 또는 검사 후 동기화 과정 중에 시스템의 다운 타임이 발생하지 않는 장점이 있습니다. 그리고
bsr은 FastSync 를 기본 로직으로 동작으로 수행하기 때문에 파일시스템이 사용하고 있는 디스크 영역에 대해서만 온라인 검사를 수행하여 보다 더 빠르고 효율적입니다.
온라인 정합성 검사에 따른 작업은 OS 수준에서 예약된 작업으로 등록하여 운영 I/O 부하가 적은 시간 대에 주기적으로 수행하는 것이 일반적인 사용법입니다. 온라인 정합성 검사를 구성하는 법에 대한 자세한 내용은 https://mantech.jira.com/wiki/spaces/BSRUG/pages/1185382476#%EC%98%A8%EB%9D%BC%EC%9D%B8-%EC%A0%95%ED%95%A9%EC%84%B1-%EA%B2%80%EC%82%AC를 참고하세요.
...
bsr 은 스플릿 브레인을 자동으로 감지하고 이를 복구하는 기능을 제공합니다. 이에 대한 자세한 내용은 문제해결의 스플릿 브레인 항목을 참고하세요.
디스크 상태
bsr의 디스크 상태는 상황에 동기화 상태에 따라 대표적으로 다음의 상태들 상태 중 1가지로 표기 됩니다.
Diskless 백킹디바이스가 복제 디스크로 장착되기(Attach) 전 상태 이거나, I/O 장애가 발생하여 디스크가 분리된(Detach) 상태입니다.
UpToDate 디스크 데이터가 최신의 데이터로 유지되고 있는 상태 입니다. 타깃의 디스크가 UpToDate 이면 절체 가능한 상태임을 의미 합니다상태입니다.
Outdated 특정시점의 데이터 정합성은 보유하고 있으나 최신의 데이터는 아닐 수 있습니다. 미러 연결이 명시적으로 단절될 경우 기본적으로 타깃의 디스크 상태는 Outdated 입니다.
Inconsistent 동기화가 완료되지 않아 데이터 정합성이 보장되지 않는 불일치 한 깨진 데이터를 말합니다. 타깃의 디스크가 Inconsistent 이면 기본적으로 절체가 불가한 불가능한 상태입니다.
bsr은 Inconsistent 데이터와 Outdated 데이터를 구분합니다. Inconsistent 데이터란 어떤 방식으로든 접근이 불가능하거나 사용할 수 없는 데이터를 말합니다. 대표적으로 동기화 진행 중인 타겟 타깃 쪽 데이터가 Inconsistent 상태 입니다. 동기화가 진행 중인 타깃 데이터는 일부는 최신 이지만 일부는 지난 시점의 데이터 이므로 이를 한 시점의 데이터로 간주할 수 없습니다. 또한 이 때에는 장치에 적재 되었을 적재된 파일시스템이 마운트(mount)될 수 없거나 파일시스템 자동 체크 조차도 할 수 없는 상태 일 수 있습니다.
Outdated 디스크 상태는 데이터의 일관성은 보장되지만 Primary 노드와 최신의 데이터로 동기화되지 않았거나 이를 암시하는 데이터 입니다. 이런 경우는 데이터 일관성은 보장되지만 최신이 아닌 데이터일 수 있습니다. 임시적이든 영구적이든 복제 링크가 중단할 경우 중단될 때 발생합니다. 연결이 끊어진 Oudated 데이터는 결국 지난 시점의 데이터 이기 때문에 이러한 상태의 데이터에서 서비스가 되는 것을 막기 위해 bsr은 Outdated 데이터를 가진 노드에 대해 승격이므로 승격(promoting a resource)하는 것을 기본적으로 허용하지 않습니다. 그러나 필요하다면필요에 따라(긴급한 상황에서) Outdated 데이터를 강제로 승격할 수는 있습니다. 이와 관련하여 bsr은 네트워크 단절이 발생하자마자 응용프로그램이 측에서 즉시 Secondary노드를 Outdated 상태가 되도록 만들 수 있는 인터페이스를 제공하고 있습니다. Outdated 상태가 된 리소스에서 해당 복제링크가 다시 연결된다면 Outdated 상태 플래그는 자동으로 지워지며 백그라운드로 동기화(background synchronization)가 완료되어 최종 최신 데이터(UpToDate)로 갱신됩니다. Primary 가 Crash 되었거나 연결이 단절된 Secondary 노드는 디스크 상태가 Outdated 일 수 있습니다.
디스크 I/O 오류 처리
디스크 장비에서 장애가 발생할 경우 bsr은 디스크 장애 정책의 사전 설정을 통해 해당 I/O 오류를 상위 계층(대부분 파일시스템)으로 단순히 전달해서 처리하거나 복제 디스크를 detach 하여 복제를 중단하도록 합니다.
...