BSR(Block Sync & Replication)은 DRBD(http://www.drbd.org)를 fork 한 WDRBD(https://github.com/mantechnology/wdrbd) 를 기반으로 하며, Windows 와 Linux 플랫폼을 모두 지원하도록 공통 엔진으로 구현한 오픈소스 프로젝트 입니다. BSR은 WDRBD의 기본적인 개념과 기능들을 모두 계승하였으며, 원본 DRBD의 문제점들을 보완하고 기능적으로 강화하여 보다 안정적이고 유연한 복제 환경을 구축할 수 있는 솔루션을 제공합니다.
기본
BSR은 호스트 상의 블록장치들(하드디스크, 파티션, 논리 볼륨 등)을 네트워크를 통해 소프트웨어적으로 실시간 복제하는 솔루션입니다.
BSR은
응용 프로그램이 블록장치에 데이터를 쓰는 동시에 실시간 복제합니다.
실시간 복제를 수행 하더라도 다른 응용 서비스나 시스템 요소에 영향을 주지 않습니다.
동기 또는 비동기적으로 복제합니다
동기 방식은 복제 데이터를 로컬디스크와 타겟 호스트의 디스크에 쓰기 완료했을 때 복제를 완료한 것으로 처리합니다.
비동기 방식은 복제 데이터를 로컬디스크에 쓰고 타겟 호스트로 데이터 전송을 했을 때 복제를 완료한 것으로 처리합니다.
BSR는 오픈소스이며 GPL v2 라이선스를 준수하여 배포합니다. BSR은 WDRBD 1.5.x 배포 버전을 기준으로 작업하여 윈도우즈와 리눅스를 공통으로 지원하는 크로스플랫폼 지원 엔진 체계를 갖추었으며, 1.6.x 을 초기버전으로 배포합니다.
커널 드라이버
BSR의 핵심 엔진은 커널 드라이버로 개발되었습니다.
커널 드라이버는 디스크 볼륨 매니저의 상위 또는 하부에 위치하여 파일시스템으로 부터 발생하는 쓰기 I/O에 대해 블럭(block) 단위로 통제할 수 있습니다. 파일시스템의 하부 계층에서 복제를 수행함에 따라 파일시스템과 응용프로그램에 관계없이 투명한 복제 환경을 제공하여 고가용성을 구현하기에 적합합니다. 그러나 BSR은 파일 시스템의 하위 계층에 위치하기 때문에 파일과 관련한 일반적인 연산에 대해선 통제할 수 없습니다. 예를 들어, BSR은 파일시스템의 손상을 감지할 수 없으며, 파일의 순수한 데이터와 파일 시스템의 메타 데이터를 구분할 수 없습니다.
BSR 은 기본적으로 Active-Passive 클러스터링을 제공하고, Active-Active 클러스터링은 제공하지 않습니다.
[그림]
사용자 명령어
BSR은 리소스를 구성하고 관리하기 위한 용도의 관리 유틸리티를 제공합니다. 다음의 bsradm, bsrsetup, bsrmeta, bsrcon 입니다. (Windows 에선 관리 명령어를 사용하기 위해 관리자 권한으로 실행한 명령줄이 필요합니다.)
bsradm
세부 기능들에 대해 추상화한 상위 수준 명령어를 제공하는 유틸리티입니다. bsradm 에서 제공하는 명령만으로 BSR의 대부분 동작을 제어할 수 있습니다.
bsradm은 구성파일 etc\drbd.conf로부터 모든 구성 파라미터를 얻으며, bsrsetup 및 bsrmeta에 적절한 옵션을 주어 명령을 수행시킵니다.
bsradm은 –d 옵션을 통해 dry-run모드로 실행시킬 수 있습니다. 이는 bsradm이 bsrsetup 및 bsrmeta 명령을 실제 호출하지 않고, 어떤 옵션 조합으로 실행되는지 미리 확인할 수 있는 방법을 제공합니다.
bsradm 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsradm을 참고하십시요.
bsrsetup
BSR 커널엔진에 필요한 값들을 설정할 수 있습니다. bsrsetup에 대한 모든 파라미터는 텍스트 인자로 전달해야 합니다.
bsradm과 bsrsetup의 분리를 통해 유연한 명령 체계를 제공합니다.
bsradm에서 받아들인 파라미터는 보다 복잡한 파라미터로 치환하여 bsrsetup을 호출합니다.
bsradm은 리소스 구성파일의 문법적 오류 등을 확인하여 사용자 실수를 방지하지만, bsrsetup은 이러한 문법적 오류를 확인하지 않습니다.
대부분의 경우에선 bsrsetup을 직접 사용할 필요가 없습니다.
bsrsetup 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsrsetup 을 참고하십시요.
bsrmeta
복제 구성을 위한 메타 데이터 파일을 생성하거나, 덤프, 복원 및 수정할 수 있도록 해 줍니다. bsrsetup처럼 대부분의 경우에선 직접 bsrmeta를 사용할 필요가 없고 bsradm에서 제공하는 명령을 통해 메타 데이터를 제어합니다.
bsrsetup 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsrmeta 를 참고하십시요.
bsrcon
BSR 관련 정보를 확인하거나 기타 필요한 설정을 조정할 수 있습니다.
bsrcon 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsrcon 을 참고하십시요.