Table of Contents |
---|
기본
bsr 은 장애극복(fail-over) 클러스터 내의 호스트 볼륨들을 네트워크를 통해 실시간 복제하여 이중화합니다.
동기화와 복제
복제를 하려면 먼저, 양측 호스트 상의 볼륨 데이터를 모두 일치 시켜야 합니다. 이를 위해 디스크 블럭 단위로 데이터를 소스에서 타깃 측으로 네트워크를 통해 복사하는 복사하는데 이 과정을 수행하는데 이를 동기화(Synchronization)라고 합니다. 동기화가 완료되어야 복제 상태로 이행합니다.
복제(Replication)는 소스 측의 데이터가 쓰기 I/O 에 의해 변경될 때 해당 변경 분을 타깃 측으로 실시간 반영하는 동작입니다. 동기화는 백그라운드에서 천천히 동작하지만 복제는 로컬 I/O 의 문맥에서 빠르게 처리됩니다.
동기화와 복제는 개별적으로 동작하지만 한 시점에 동시에 수행될 수 있습니다. 즉 동기화가 수행되는 도중에 복제가 같이 처리될 수 있기 때문에(실제 운영하고 있는 노드가 동기화를 하고 있다면 운영 중 쓰기 I/O 에 의해 항상 이 두 동작이 동시에 처리된다고 생각해야 됩니다) 서로 간의 처리 대역을 최대 네트워크 대역의 범위 안에서 적절히 조절하는 것이 중요합니다. 동기화 대역을 설정하는 방법은 동기화 속도 조정을 참고하세요.복제는 다음과 같은 방식으로 동작합니다.
응용 프로그램이 블록장치에 데이터를 쓰는 동시에 실시간 복제합니다.
실시간 복제를 수행 하더라도 다른 응용 서비스나 시스템 요소에 영향을 주지 않습니다.
동기 또는 비동기적으로 복제합니다
동기 방식은 복제 데이터를 로컬디스크와 타겟 호스트의 디스크에 쓰기 완료했을 때 복제를 완료한 것으로 처리합니다.
비동기 방식은 복제 데이터를 로컬디스크에 쓰고 타겟 호스트로 데이터를 전송 했을 때 복제를 완료한 것으로 처리합니다.
동기화와 복제는 bsr 내부에서 개별적으로 동작하지만 한 시점에 동시에 수행될 수 있습니다. 즉 동기화가 수행되는 도중에 복제가 같이 처리될 수 있기 때문에(운영 중인 노드의 동기화 수행 중에서 운영 중 발생하는 쓰기 I/O 에 의해 동시에 처리) 서로 간의 처리량을 최대 네트워크 대역의 범위 안에서 적절히 조절하는 것이 중요합니다. 동기화 대역을 설정하는 방법은 동기화 속도 조정을 참고하세요.
커널 드라이버
bsr의 핵심 엔진은 커널 드라이버로 구현합니다.
...