Table of Contents |
---|
...
동작 단계에서는 제일 먼저 동기화(검사)에 따른 소요 예상시간을 계산합니다. 파일 목록 비교 단계에서 생성해 둔 차이점 목록을 순환하고 각 파일의 용량을 전부 합산하여 최대치를 추산합니다. 단 각 파일의 로컬/원격지 용량이 서로 다른 경우 큰 용량을 기준으로 합산합니다. 파일 블럭의 크기는 파일의 크기에 따라 적정 크기를 구하는데 최소 128KB에서 최대 16MB 크기로 하며 보통 1MB 단위로 구분합니다. 계산이 끝나면 파일 블럭들을 순차적으로 비교하면서 블럭별 데이터를 타깃 측으로 다운로드하여 적용하거나 속성의 차이점들을 일치시켜 나갑니다.
동작모드가 정합성 검사일 경우에는 이 시점에 파일 블럭들을 비교하는 절차만 수행합니다.
정합성 검사의 advanced-verify 모드는 리소스가 온라인 되어 데이터가 변경분(복제)이 있는 상태에서 정합성 검사를 할 경우에 사용할 수 있는 옵션입니다. 이 동작 모드에선 정합성 검사를 수행하는 도중 동시에 복제가 발생하는 검사 대상 파일에 대해선 복제 블럭이 완료될 때 까지 대기 한 후 검사가 진행됩니다.
복제와 동기화
동기화를 수행하는 도중에도 소스 측 데이터에 변경 분 I/O 가 발생할 수 있으므로 동기화와 복제가 동시에 처리될 수 있어야 합니다. 동기화가 예정된 블럭 구간에서 복제 데이터가 수신 되면 해당 구간은 동기화 대상 구간에서 제외합니다. 그리고 타깃에서 동기화 데이터 처리 중 복제가 수신되면 해당 정보는 큐에 추가되고 이 데이터는 로컬/원격의 해시 또는 데이터가 수신될 때 같이 처리하여 파일 블럭에 대한 접근이 동시에 발생하지 않도록 합니다. 만약 동기화 데이터 수신 대기 중 앞서 전달된 복제 데이터가 같은 영역에 먼저 쓰고 동기화 데이터가 나중에 써지면 최종적으로 예전 데이터가 쓰여져서 문제가 될 수 있는데, 이런 경우를 대비하여 복제가 나중에 써 지도록 지연 처리 합니다. 동기화 블럭 보다는 복제 데이터가 항상 최신이기 때문에 복제를 나중에 처리하는 게 데이터 순서에 맞습니다.
...
그림과 같이 n 노드 복제에서는 실시간 복제 중 Primary 노드 가 전원 차단 등으로 갑자기 중단 되었을 때 복제 데이터를 수신하는 Secondary 노드 간의 데이터 정합성 문제가 발생할 수 있습니다. Primary 노드에서 복제 데이터가 실시간 전달된다 하더라고 데이터는 각각의 노드에게 비동기적으로 전달되어서 노드 간 데이터 불일치는 피할 수 없습니다. 문제는 남겨진 노드들이 모두 데이터 상태가 UpToDate 라는 점 입니다.
이 상황에서 FSR 은 남겨진 노드들 중 최신의 최신 데이터를 보유하고 있는 노드를 결정하고 해당 노드를 소스로 기준으로 동기화 하여 클러스터 상에 남겨진 모든 노드의 데이터를 일치 시킵니다. 이것을 조정 동기화라고 합니다.
...