Versions Compared

Key

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

...

  • 응용 프로그램이 블록장치에 데이터를 쓰는 동시에 실시간 복제합니다.

  • 실시간 복제를 수행 하더라도 다른 응용 서비스나 시스템 요소에 영향을 주지 않습니다.

  • 동기 또는 비동기적으로 복제합니다

    • 동기 방식은 복제 데이터를 로컬디스크와 타겟 호스트의 디스크에 쓰기 완료했을 때 복제를 완료한 것으로 처리합니다.

    • 비동기 방식은 복제 데이터를 로컬디스크에 쓰고 타겟 호스트로 데이터 전송을 데이터를 전송 했을 때 복제를 완료한 것으로 처리합니다.

커널 드라이버

bsr의 핵심 엔진은 커널 드라이버로 개발되었습니다드라이버 구현합니다.

커널 드라이버는 디스크 볼륨 계층에 위치하여 파일시스템으로 부터 발생하는 쓰기 I/O에 대해 블럭(block) 단위로 제어합니다. 그리고 파일시스템의 하부 계층에서 복제를 수행함에 따라 계층에 위치하기 때문에 파일시스템과 응용프로그램에 관계없는 관계없이 투명한 복제 환경을 제공하여 고가용성을 구현하기에 구축하기에 적합합니다. 그러나 파일 시스템의 하위 계층에 위치하기 때문에 파일과 관련한 일반적인 연산에 대해선 통제할 수 없습니다. 예를 들어, 파일시스템의 손상을 감지하거나 순수 파일 데이터에 대한 통제는 할 수 없습니다. 단지 디스크에 쓰여지는 블럭 단위로 복제합니다.

...

bsr은 리소스를 구성하고 관리하기 위한 용도의 관리 도구를 제공합니다. 다음에서 다음에 설명하는 bsradm, bsrsetup, bsrmeta, bsrcon 으로 구성됩니다. 관리 명령어를 사용하기 위해 관리자 수준의 권한이 요구됩니다.

...

  • bsr의 세부 기능들에 대해 추상화한 상위 수준 명령어를 제공하는 유틸리티입니다. bsradm 을 통해 bsr 대부분의 동작을 제어할 수 있습니다.

  • bsradm은 구성파일 etc\bsr.conf로부터 모든 구성 파라미터를 얻으며, bsrsetup 및 bsrmeta에 적절한 옵션을 주어 명령을 전달하는 역할을 합니다. 즉 실제 동작은 bsrsetup, bsrmeta 에서 수행됩니다.

  • bsradm은 –d 옵션을 통해 dry-run모드로 실행시킬 수 있습니다. 이는 bsradm이 bsrsetup 및 bsrmeta 명령을 실제 호출하지 않고, 어떤 옵션 조합으로 실행되는지 실행되는 지 미리 확인할 수 있는 방법을 제공합니다.

  • bsradm 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsradm을 참고하십시요.

...

  • bsr 커널엔진에 필요한 값들을 설정할 수 있습니다. bsrsetup에 대한 모든 파라미터는 텍스트 인자로 전달해야 합니다.

  • bsradm과 bsrsetup의 분리를 통해 유연한 명령 체계를 제공합니다.

    • bsradm에서 받아들인 파라미터는 보다 복잡한 파라미터로 치환하여 bsrsetup을 호출합니다.

    • bsradm은 리소스 구성파일의 문법적 오류 등을 확인하여 사용자 실수를 방지하지만, 방지합니다. bsrsetup은 이러한 문법적 오류를 확인하지 않습니다.

  • 대부분의 경우에선 대부분은 bsrsetup을 직접 사용할 필요는 필요가 없으나 노드 간 개별제어 라든지 필요할 경우 또는 특수한 기능을 수행하기 위해 사용합니다.

  • bsrsetup 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsrsetup 을 참고하십시요.

bsrmeta

  • 복제 구성을 위한 메타 데이터 파일을 생성하거나생성, 메타에 대한 덤프, 복원 및 수정 기능을 제공합니다. bsrsetup처럼 대부분의 경우에 있어선 대부분은 직접 bsrmeta를 사용할 필요가 없고 bsradm에서 제공하는 명령을 통해 메타 데이터를 제어합니다.

  • bsrmeta 명령 옵션에 대한 자세한 사항은 Appendix B. 시스템 매뉴얼의 bsrmeta 를 참고하십시요. 

...

리소스는 복제 데이터 세트를 구성하기 위해 필요한 모든 것을 추상화한 대상입니다. 사용자는 리소스를 구성한 후 구성하고 이를 제어함으로써 제어하여 복제 환경을 운영합니다.

리소스를 구성하기 위해서 다음의 기본적인 내용들사항들(리소스 이름, 볼륨, 네크워크 연결)을 지정해야 합니다.

...

  • 리소스는 공통의 복제 스트림을 공유하는 하나 이상의 볼륨으로 구성된 복제 그룹이며 리소스내의 리소스 내의 모든 볼륨의 쓰기 정합성을 보장합니다.

  • 볼륨은 하나의 장치로 기술하며 윈도우즈의 경우 드라이브 레터(drive letter)로 지정합니다.

  • 하나의 복제 셋에는 데이터 복제를 위한 볼륨 한 개와 볼륨과 연계된 메타데이터를 저장하는 별도의 볼륨이 필요합니다. 메타 볼륨은 복제를 위한 내부 정보를 저장하고 관리하는 용도로 사용합니다.

    • 메타데이터는 저장하는 위치에 따라 외부 메타 형식(External Meta Type)과 내부 메타 형식(Internal Meta Type)으로 구분합니다. 예를 들어, 복제 대상 볼륨의 디스크내에 메타 데이터가 위치하면 내부 메타이고, 다른 장치 또는 다른 디스크에 위치하면 외부 메타가 됩니다.

    • bsr은 운영 중 복제 I/O 와 메타 데이터 쓰기가 동시에 수행될 수 있기 때문에 성능적인 측면에서 성능면에서 외부 메타 형식이 내부 메타에 비해 유리합니다. 그리고 메타 디스크의 I/O성능은 복제 성능에 직접적으로 영향을 주기 때문에 , 되도록 이면 좋은 성능의 디스크로 구성하는게 좋습니다.

    • 주의할 점은, 메타를 위한 볼륨은 NTFS같은 파일시스템으로 포맷하지 않고 포맷해선 안되며 RAW 상태로 구성해야 한다는 것 입니다합니다.

네트워크 연결(Connection)

  • Connection은 두 호스트 사이의 복제 데이터 세트를 위한 통신 링크입니다.

  • 각 리소스들은 다중 호스트들 간에 완전 메시(full-mesh) 연결 설정을 포함한 다중 호스트로 정의합니다.

  • 연결 Name은 특별히 지정되지 않았을 지정하지 않을 경우 bsradm 수준에서 리소스 Name으로 자동 지정됩니다.

...

리소스의 역할은 bsr유틸리티 명령을 통해 변경할 수 있습니다. 리소스 역할을 Secondary에서 Primary로 변경할 때는 승격때 승격(Promotion)이라고 하고 반대는 강등(Demotion)입니다.

...

bsr은 복제를 위한 노드들의 집합을 복제 클러스터로 정의하며 기본적으로 복제 클러스터 멤버 중 하나의 노드에서만 프라이머리 리소스 역할을 할 수 있는 단일 프라이머리 모드를 지원합니다. 이중 또는 다중 프라이머리 모드는 지원하지 않습니다. 단일 프라이머리 모드 즉, Active-Passive 모델은 페일오버를 위한 고 가용 클러스터에서 데이터 저장매체를 다루는 표준적인 접근 방식입니다.

...

비동기 방식은 Primary 노드에서 로컬 디스크에 쓰기를 마치고 동시에 TCP의 송신 버퍼에 쓰기가 완료되었을 완료 되었을 때 복제 완료로 간주합니다. 따라서 이 방식은 절체(Fail-over)를 할 경우 로컬에는 썼지만 버퍼에 있던 데이터가 대기노드로 완전히 넘어가지 못할 수 있습니다. 절체 후 대기노드의 데이터는 일관성은 가지지만, 절체 시 발생한 쓰기의 일부 전송되지 못한 업데이트 내용은 손실될 수 있습니다. 이 방식은 로컬 I/O 응답성능이 좋으며 원거리 복제 환경에 적합한 방식입니다.

...