Versions Compared

Key

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

...

bsr은 로컬 노드의 데이터를 클러스터의 모든 다른 노드로 복제하는 블록 장치를 구현합니다. 여기서 실제 데이터 및 이와 관련한 메타 데이터는 각 클러스터 노드의 "일반"블록 장치 볼륨에 (일반적으로 외부메타일 경우)개별적으로 저장됩니다. 복제 블록 장치는 기본적으로 /dev/bsr<minor>형식으로 명명하거나 또는 장치의 심볼릭 링크(레터)로 직접 지정해야 합니다. 리소스 당 하나 이상의 장치들이 그룹화 되고 각각의 장치들을 병렬적으로 복제합니다. 리소스 내부의 장치를 volume으로 규정하며 두 개 이상의 클러스터 노드간에 리소스를 복제 할 수 있습니다. 클러스터 노드 간 연결은 지점 간 링크이며 TCP 프로토콜을 사용합니다. bsr은 구성파일을 이해하고 처리하는 기본 구성요소 bsradm 과 저수준의 구성요소 bsrsetup, bsrmeta, bsrcon으로 구성됩니다. 기본적인 bsr 구성은 /etc/bsr.conf 및 여기에 포함 된 추가 파일들(일반적으로 global_common.conf 및 /etc 경로의 안에 있는 모든 * .res 파일)로 구성됩니다. 보통 각 리소스를 etc/bsr.d/. 경로에서 별도의 * .res 파일들로 정의하는 것이 유용합니다. 구성 파일은 각 클러스터 노드가 전체 클러스터 구성의 동일한 사본을 포함하도록 설계되었습니다. 그러나 때로는 노드 별로 각기 다른 구성파일의 내용을 가져야 할 수도 있어서 절대적인 것은 아닙니다.

Code Block
resource r0 {
        net {
               protocol C;
        }
       disk {
              resync-rate 10M;
              c-plan-ahead 0;
              resync-ratio "1:1";
       }
       on alice {
              volume 0 {
                       	device e minor 2;
						disk e;
						meta-disk f;
              }
             address 10.1.1.31:7789;
             node-id 0;
      }
      on bob {
            volume 0 {
                     disk e;
                     meta-disk f;
            }
           address 10.1.1.32:7789;
           node-id 1;
      }
}

이 예에서는 e 레터의 볼륨을 단일 복제 장치가 포함 된 리소스 r0로 정의합니다. 이 리소스는 각각 IPv4 주소 10.1.1.31 및 10.1.1.32와 노드 식별자 0 및 1을 가진 호스트 alice 및 bob 간의 복제를 수행합니다. 실제 데이터는 e 볼륨이지만 및 메타 데이터는 f 볼륨에 저장됩니다. 호스트 간 연결에는 프로토콜 C가 사용됩니다.

...

아래에 기술한 섹션이 정의됩니다. 들여 쓰기된 섹션이 하위 섹션임을 표시합니다.

Code Block
common
   [disk]
   [handlers]
   [net]
   [options]
   [startup]
global
resource
   connection
      path
      net
        volume
           peer-device-options
      [peer-device-options]
   connection-mesh
      net
   [disk]
   floating
   handlers
   [net]
   on
      volume
         disk
         [disk]
   options
   stacked-on-top-of
   startup
 

괄호 안의 섹션은 구성의 다른 부분에 영향을 줍니다. common 섹션의 내용은 모든 리소스에 적용됩니다. resource 또는 resource 섹션의 disk 섹션은 해당 자원의 모든 볼륨에 적용되며 resource 섹션의 network 섹션은 해당 자원의 모든 connection에 적용됩니다. 이를 통해 각 자원, 연결 또는 볼륨에 대해 동일한 옵션을 반복하지 않아도됩니다. 리소스, 연결, 볼륨 또는 볼륨 섹션에서 보다 구체적인 옵션을 재정의 할 수 있습니다. peer-device 옵션은 resync-ratio, resync-rate, c-plan-ahead, c-delay-target, c-fill-target, c-max-rate 및 c-min-rate 로 정의되며 이전 버전과의 호환성을 위해 모든 disk 섹션에서도 지정할 수 있습니다. 그것들은 모든 관련 연결로 상속됩니다. connection 섹션에 부여 된 경우 해당 connection의 모든 볼륨에 상속됩니다. "peer-device-options"섹션은 "disk"키워드로 시작됩니다.

...

리소스에 허용될 수 있는 처리 중(inflight)인 쓰기 I/O 요청 최대 회수 입니다. 기본 값은 100000 입니다.

accelbuf-size size

비동기 복제에서 로컬 쓰기 성능 향상을 위한 쓰기 데이터를 버퍼링하는 버퍼 크기 입니다. 기본 값은 10mb 입니다. accelbuf은 하나의 전체 버퍼를 할당하고 쓰기 발생 시 쓰기 크기의 버퍼 공간을 얻어서 쓰기 데이터를 복사 합니다. accelbuf에서 버퍼 공간을 얻어오는 쓰기 데이터 크기 제한을 max_accelbuf_blk_size으로 설정할 수 있습니다. 쓰기 발생 시 버퍼 공간을 얻고 복제 데이터 전송 완료 후 얻은 버퍼를 반환합니다. 설정은 동적이 가능합니다.

  • 지원 버전은 bsr 1.7.0.0 입니다.

max-accelbuf-blk-size size

비동기 복제에서 로컬 쓰기 성능 향상을 위한 accelbuf 버퍼를 얻어오는 쓰기 크기 입니다. 기본 값은 4kb으로 4kb 이하의 쓰기 크기에 대해서만 accelbuf에서 버퍼 공간을 얻어옵니다. 성능 향상을 위해서는 accelbuf의 크기도 맞는 크기를 설정해야 합니다. 설정은 동적이 가능합니다.

  • 지원 버전은 bsr 1.7.0.0 입니다.

startup 섹션

이 섹션의 매개 변수는 시스템 시작시 bsr init 스크립트에서 bsr의 동작을 정의합니다. 시스템이 시작되어 bsr 이 실행되고 난 후엔 아무런 영향을 미치지 않습니다. 다만 이 섹션의 속성들은 하위 호환을 위해 존재하며 bsr에선 대부분 지원하지 않습니다.

...