Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel7
minLevel1

...

  • 초기 동기화(강제 승격)의 절차를 다시 수행합니다.

Note

구성 해제 시 주의할 점

운영 노드의 볼륨을 다시 소스로 하여 재구성하게 될 경우라면 소스였던 볼륨을 그대로 사용하면 되므로 별 다르게 주의할 점은 없습니다.

그러나 타깃 측 볼륨을 소스로 재구성해야 할 경우에는 구성을 해제하기 전에 반드시 다음의 과정을 통해 타깃이 최신 데이터가 확보될 수 있도록 해야 합니다.

  • 복제 연결을 수립합니다.

    • 복제 연결이 해제된 경우 타깃이 UpToDate 또는 Outdate 인 경우가 있는데, 이 때 소스 측의 OOS 를 반영하지 않으면 이를 최신 데이터로 간주하면 안됩니다.

  • 연결 후 OOS가 있을 경우 자동 동기화 하고 동기화를 완료합니다.

  • 소스 측 리소스를 중지(down) 하고, down 이 완료되면 이 때 타깃 노드는 최신데이터가 확보된 상태 입니다.

  • 구성 해제 작업을 시작합니다.

...

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

혼잡 모드는 설정에 따라 다음과 같이 동작합니다다음의 3 가지 모드가 있습니다.

  • Blocking 모드

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

  • disconnect 모드

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

  • Ahead 모드

    • 복제 연결은 유지한 채 primary 노드의 I/O를 로컬 디스크에 우선 기록해 두었다가(해당 영역은 out-of-sync로 기록) 혼잡 해제 후 재동기화를 자동으로 수행하는 pull-ahead 모드로 설정할 수 있습니다. Ahead 상태가 된 Primary 노드는 Secondary 노드에 비해 앞서 있는(Ahead) 데이터 상태가 됩니다. 그리고 이 시점에 Secondary는 뒤 쳐진(Behind) 예전 데이터

    상태이지만 가용한
    • 이지만 쓸 수는 있는 가용 상태입니다. 혼잡이 해제되면, 세컨더리로의 복제는

    자동으로
    • 자동 재개되고 Ahead 상태에서 복제되지 못했던 out-of-sync 블럭에 대해 백그라운드 동기화를

    자동으로
    • 이어서 수행합니다. 혼잡모드는 일반적으로 데이터센터 또는 클라우드 인스턴스간의 광역 복제 환경과 같은 가변 대역폭을 가진 네크워크 링크 환경에서 유용합니다.

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

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

...

  • congestion-fill은 sndbuf-size 크기의 약 90% 로 설정합니다. 복제 가속기(DRX)를 연동하는 경우 DRX 버퍼의 90% 로 설정합니다.

    • 단, 버퍼의 크기가 10GB 이상 수준으로 크게 할당될 경우 90% 수준의 임계치가 혼잡을 감지하기에는 과도하게 큰 값일 수 있으므로 이는 튜닝을 통해 적정 수치로 조정할 필요가 있습니다.

  • congestion-extents의 권장 값은 al-extents 설정값의 90%입니다.

  • congestion-highwater 는 패킷 개수 기반으로 혼잡을 감지하는 기능입니다. 특히 용량 기반으로 복제 혼잡을 감지하기에 적합하지 않은 DR 환경에서 사용하기에 적당합니다. 기본값 20000 으로 설정되어 있으며 기본 활성화 됩니다. 0으로 설정시 비활성화 되며 최대값은 1000000 입니다.

Info

송신버퍼(sndbuf)와 DRX 버퍼

bsr 에 설정하는 송신버퍼(sndbuf) 는 커널 메모리에서 직접 할당하기 때문에 크게 할당하기 어렵습니다. 시스템에 따라 차이는 있지만 보통 1GB 내에서 크기를 지정하는 것으로 제한할 필요가 있습니다. 그렇지 않을 경우 송신버퍼 할당으로 인해 시스템 커널 메모리가 부족해지면 시스템 동작과 성능에 영향을 줄 수 있습니다.

따라서 대용량 버퍼를 구성해야 할 경우는 DRX 버퍼로 구성할 것을 권장합니다.

디스크 플러시

복제 중 타깃 노드가 전원장애로 인해 갑자기 다운된다면 디스크 캐쉬 영역이 배터리 백업 장치(BBWC)에 의해 백업되어 있지 않을 경우 데이터 유실이 발생할 수 있습니다. 복제에선 이를 미연에 방지하기 위해 데이터를 타깃의 디스크에 쓰는 과정에서 데이터를 미디어에 기록하고 난 후 flush 동작을 항상 수행하여 데이터 유실을 예방 합니다.

...