Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

혼잡이 감지 되면 복제는 일시 중단되고 로컬의 I/O를 OOS 로 기록하면서 버퍼링 된 데이터를 서서히 타깃으로 전송합니다. 이 과정에서 Primary 는 Secondary 에 비해 앞선(Ahead) 데이터 상태이며 버퍼링 되었던 데이터를 다 전송하고 나면 자동으로 동기화 모드로 전환하여 복제 되지 못한 OOS 영역을 동기화 합니다.

혼잡 모드는 설정에 따라 다음과 같이 동작합니다.

  • 아무 설정도 하지 않을 경우 기본적으로 Blocking 모드입니다. Blocking 모드에서는 TX 송신버퍼에 복제 데이터를 전송할 여유 공간이 생길 때 까지 대기(Blocking)합니다.

  • 복제 연결을 단절하여 로컬 I/O 부하를 일시적으로 해소하도록 disconnect 모드로 설정할 수 있습니다.

  • 복제 연결은 유지한 채 primary 노드의 I/O를 로컬 디스크에 우선 기록해 두었다가(해당 영역은 out-of-sync로 기록) 혼잡 해제 후 재동기화를 자동으로 수행하는 pull-ahead 모드로 설정할 수 있습니다. Ahead 상태가 된 Primary 노드는 Secondary 노드에 비해 앞서 있는(Ahead) 데이터 상태가 됩니다. 그리고 이 시점에 Secondary는 뒤 쳐진(Behind) 예전 데이터 상태이지만 가용한 상태입니다. 혼잡이 해제되면, 세컨더리로의 복제는 자동으로 재개되고 Ahead 상태에서 복제되지 못했던 out-of-sync 블럭에 대해 백그라운드 동기화를 자동으로 수행합니다. 혼잡모드는 일반적으로 데이터센터 또는 클라우드 인스턴스간의 광역 복제 환경과 같은 가변 대역폭을 가진 네크워크 링크 환경에서 유용합니다.

다음은 혼잡 정책을 설정하는 예 입니다.

리소스 구성파일에 on-congestion 옵션 항목으로 혼잡모드를 설정하고, congestion-fill 항목으로 혼잡 감지 임계치를 설정합니다.

...

정합성 검증은 복제 수행 도중 복제 트래픽을 블럭 단위로 실시간 검증하거나 전체 디스크 볼륨 단위로 (사용된 영역에 대해서) 소스와 타깃의 데이터가 완전히 일치하는지 해쉬 요약 기반으로 비교하는 기능입니다.

트래픽 검사

bsr 은 블럭 계층에서 데이터를 전송하지만 데이터를 전송하는 다른 계층의 구성요소에서 예기치 않은 오류가 발생할 경우 이에 대응할 있어야 합니다있습니다. 만약 이와 같은 상황들에 대응하지 못하면 잠재적으로 데이터 손상이 야기될 수 있습니다다음과 같은 상황들이 자주 발생하지는 않지만 대비해야 합니다.

  • 전송노드의 주 메모리에서 네트워크 인터페이스로 전달된 데이터에서 발생하는 비트플립 오류

    • 최근 랜카드에서 제공하는 TCP 체크섬 오프로드 기능이 활성화 될 경우 비트플립 오류가 하드웨어 수준에서 발생할 수 있습니다.

  • 수신노드의 네트워크 인터페이스에서 주 메모리로 전송된 데이터에서 발생하는 비트플립 오류

  • 네트워크 인터페이스 펌웨어 또는 드라이버 내에서의 버그 또는 경합상태로 인한 데이터 손상

  • 노드간 재조합 네트워크 구성 요소(라우터나 스위치)에 의해 주입 된 비트 플립 또는 임의적 손상(직접 연결, 백투백 연결을 사용하지 않는 경우).

bsr 은 암호화 메시지 요약 알고리즘을 사용하여 양 노드 간의 메시지 정합성을 검증할 수 있습니다검증합니다. 이 기능을 사용하게 되면 bsr 은 모든 데이터 블록의 메시지 요약본을 생성하고 그것을 상대 노드에게 전달한 후 상대편 노드에서 복제 패킷의 정합성을 확인합니다. 만약 요약된 블럭이 서로 일치하지 않으면 재전송을 요청합니다.

...