Versions Compared

Key

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

...

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

...

구성 파일은 섹션으로 구성되며, 섹션 유형에 따라 다른 섹션과 매개변수가 포함됩니다. 각 섹션은 하나 이상의 키워드, 섹션 이름, 여는 중괄호(“{”), 섹션의 내용, 닫는 중괄호(“}”)로 구성됩니다. 섹션 내의 매개변수는 키워드와 그 뒤에 하나 이상의 키워드 또는 값, 세미콜론(“;”)으로 구성됩니다. 일부 매개 변수 값에는 일반 숫자를 지정할 때 적용되는 기본 스케일이 있습니다 (예 : Kilo). 이러한 기본 스케일은 접미사 (예 : M의 경우 Mega)를 사용하여 재정의 할 수 있습니다. 공통 접미사는 K = 2 ^ 10 = 1024, M = 1024 K 및 G = 1024 M이 지원됩니다.

주석은 해시 기호( "#"“#”)로 시작하여 해당 줄 끝까지 기술할 수 있습니다인식됩니다. 또한 , 모든 섹션에 키워드 skip을 접두어로 붙여서 섹션과 하위 섹션을 무시할 수 있습니다. 추가 파일은 include 파일 패턴 명령문에 포함될 수 있습니다섹션 앞에 키워드 skip 을 붙이면 해당 섹션과 모든 하위 섹션이 무시됩니다. include “파일 패턴 “문에 추가 파일을 포함할 수 있습니다(파일 패턴에서 지원되는 표현식은 glob(7)을 참조하세요). include 문은 섹션 외부에서만 허용됩니다.

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

Code Block
global
common
   [disk]
   [handlers]
   [net]
   [options]
   [startup]

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

괄호 위에서 대괄호 안의 섹션은 구성의 다른 부분에 영향을 줍니다. common 섹션의 내용은 모든 리소스에 적용됩니다. resource 또는 resource 섹션의 disk 리소스 또는 on 내의 디스크 섹션은 해당 자원의 리소스의 모든 볼륨에 적용되며 resource 섹션의 network , 리소스 섹션 내부의 net 섹션은 해당 자원의 리소스의 모든 connection에 연결에 적용됩니다. 이를 통해 이렇게 하면 자원resource, 연결 connection 또는 볼륨에 volume 에 대해 동일한 옵션을 반복하지 않아도됩니다. 리소스, 연결, 볼륨 또는 볼륨 섹션에서 보다 구체적인 옵션을 재정의 할 옵션이 반복되는 것을 방지할 수 있습니다. 보다 구체적인 옵션은 resource, connection, on 또는 volume 섹션에서 재정의할 수 있습니다. 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"키워드로 시작됩니다.

섹션

global

전역 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다. 구성에서 하나의 global 섹션만 허용됩니다.

...

호스트 이름의 별칭을 지정할 수 있습니다. 지정한 hostname-alias 를 on 섹션의 hostname 으로 사용하면 됩니다.

common

이 섹션에는 각 disk, handler, network, options 및 startup 섹션이 포함될 수 있습니다. 모든 리소스들은 이 섹션의 매개 변수를 기본값으로 상속합니다.

startup

이 섹션의 매개 변수는 시스템 시작시 bsr init 스크립트에서 bsr의 동작을 정의합니다. 시스템이 시작되어 bsr 이 실행되고 난 후엔 더이상 아무런 영향을 미치지 않습니다.

...

모든 피어가 연결될 때까지 init 스크립트가 대기하는 시간을 정의 합니다. 이는 리소스를 관리 할 수 없는 클러스터 관리자와 결합하여 유용할 수 있습니다. 클러스터 관리자가 시작되면 리소스가 이미 실행 중입니다. 시간 초과는 초 단위로 지정됩니다. 기본 값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.

resource

resource [name]

리소스를 정의합니다. 일반적으로 두 개 이상의 섹션과 하나 이상의 connection 섹션이 있습니다.

options

리소스에 대한 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.

...

리소스 역할 유지 속성입니다. yes 일 경우 리소스가 재시작되는 모든 시점에 명령줄에 의해 명시적으로 지정된 역할을 계속 유지 합니다. (기본값은 no, bsr 1.7.3 이상 지원)

on

on host-name [...]

특정 호스트 또는 호스트 집합에 있는 리소스의 속성을 정의합니다. 예를 들어 IP 주소 장애 조치와 같은 설정에서는 호스트 이름을 두 개 이상 지정하는 것이 유용할 수 있습니다. host-name 인수는 시스템의 호스트 이름(Linux 예, uname -n)과 일치해야 합니다. 일반적으로 하나 이상의 volume 섹션을 포함하거나 상속합니다. node-idaddress 매개 변수는 이 섹션에서 정의해야 합니다. device, diskmeta-disk 매개 변수는 이 섹션에 정의되거나 이 섹션에서 상속되어야 합니다. 일반 구성 파일에는 각 리소스에 대한 On 섹션이 2개 이상 포함됩니다. ip 주소 기반의 구성이 필요한 경우 floating 섹션으로 대체하여 작성합니다.

...

yes 이면 타깃 전용 노드로 지정됩니다. 타깃 전용 노드는 항상 타깃의 역할만 수행하며 소스역할의 수행은 거부됩니다. (bsr 1.7.3 이상)

volume

volume volume-number

리소스 내에서 볼륨을 정의합니다. 리소스의 volume 섹션들에 있는 볼륨 번호는 호스트에서 어떤 장치가 복제 장치를 구성하는지 정의합니다.

...

복제 블록 장치의 메타 데이터가 있는 위치를 정의합니다. 메타 데이터는 하위 수준 장치에 데이터와 메타 데이터가 모두 포함되거나 별도의 장치에 있을 수 있습니다. 이 매개 변수의 index 형식을 사용하면 여러 개의 복제 된 장치가 각각 별도의 인덱스를 사용하여 동일한 메타 데이터 장치를 공유 할 수 있습니다. 각 인덱스는 128MiB의 데이터를 차지하며, 이는 2개의 클러스터 노드가있는 최대 4TiB의 복제 된 장치 크기에 해당합니다. 그러나 볼륨확장 등 flexible 한 메타를 요구하는 기능을 사용해야 할 경우 제약이 될 수 있기 때문에 메타 데이터 장치를 공유하지 말고 lvm 볼륨 관리자를 사용하여 필요에 따라 메타 데이터 장치를 작성하는 것이 좋습니다. 이 매개 변수의 색인 형식을 사용하지 않으면 하위 장치의 크기에 따라 메타 데이터의 크기가 결정됩니다. 필요한 크기는 36 KiB + (하위 장치 크기) / 32K * (노드 수-1)입니다. 메타 데이터 장치가 이보다 큰 경우 추가 공간은 사용되지 않습니다. 이 매개 변수는 "none"이외의 "disk"가 지정된 경우에 필요하며 "disk"가 "none"으로 설정된 경우 무시됩니다.

floating

floating [address-family] addr:port

on 섹션과 마찬가지로 호스트 이름 대신 네트워크 주소가 floating 섹션과 일치하는지 확인합니다. node-id 매개 변수가 필요하고 주소 매개 변수가 제공되지 않으면 기본적으로 피어에 대한 연결이 생성되지 않습니다. device, diskmeta-disk 매개 변수를 반드시 이 섹션에서 정의하거나 상위로부터 상속해야 합니다.

connection

connection [name]

두 호스트 간의 연결을 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수 또는 여러 경로 섹션이 포함되어야합니다. 선택적으로 사용할 수 있는 "name"은 시스템 로그 및 기타 다른 메시지들의 연결을 나타내는 데 사용됩니다. 이름을 지정하지 않으면 피어의 호스트 이름이 대신 사용됩니다.

...

연결에 대한 엔드포인트를 정의합니다. 각 host 구문은 리소스의 on 섹션을 나타냅니다. 포트 번호가 정의되면 이 엔드 포인트는 on 섹션에 정의 된 포트 대신 지정된 포트를 사용합니다. 각 connection 섹션에는 정확히 두 개의 host 매개 변수가 포함되어야합니다. 두 개의 host 매개 변수 대신 connection에 다중 path 섹션이 포함될 수 있습니다.

path

두 호스트 간의 path를 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수가 포함되어야합니다.

...

연결에 대한 엔드포인트를 정의합니다. 각 host 구문은 리소스의 on 섹션을 나타냅니다. 포트 번호가 정의되면 이 엔드 포인트는 on섹션에 정의 된 포트 대신 지정된 포트를 사용합니다. 각 path 섹션에는 정확히 두 개의 host 매개 변수가 포함되어야합니다.

connection-mesh

여러 호스트들 간의 mesh 연결을 정의합니다. 이 섹션에는 호스트 이름을 인수로 갖는 "hosts"매개 변수가 포함되어야합니다. 이 섹션은 동일한 네트워크 옵션을 공유하는 많은 연결을 손쉽게 정의하는 방법입니다.

...

메쉬의 모든 노드를 정의합니다. 각 이름은 자원의 on 섹션을 나타냅니다. on 섹션에 정의 된 포트가 사용됩니다.

disk

볼륨의 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.

...

write same I/O 를 지원하지 않는 디스크 장치의 경우 yes 로 설정하여 bsr 이 해당 I/O의 유형을 오류로 처리하지 않도록 합니다.

peer-device-options

peer-device-options 섹션 이지만 disk 키워드로 이 섹션을 기술합니다. (예전 버전에서 사용하던 방식을 취하여 하위 호환을 유지하기 위함)

...

  • resync-ratio 설정은 동기화 최소 대역폭 비율 이므로 resync-ratio보다 실제 동기화 대역이 높을 경우 동기화 대역을 낮추지 않고 현 상태를 유지합니다.

  • resync-ratio 설정으로 얻은 동기화 대역폭 비율의 크기가 c-min-rate 설정보다 작다면 c-min-rate로 동기화 대역폭이 설정됩니다.

  • resync-ratio 설정은 복제 중 동기화 속도가 c-min-rate 보다 낮을 때 적용됩니다.

handlers

특정 이벤트가 발생할 때 호출 될 핸들러를 정의합니다. 커널은 핸들러의 첫 번째 명령 줄 인수에서 리소스 이름을 전달하고 이벤트 문맥에 따라 다음 환경 변수를 설정합니다.

...

bsr이 자동으로 해결할 수 없는 스플릿 브레인 상황임을 감지했으며 수동 복구가 필요합니다. 이 핸들러는 관리자에게 주의를 주는 데 사용될 수 있습니다.

net

연결의 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.

...

온라인 검증 (bsradm verify)은 디스크 블록 (즉, 해시값)의 체크섬을 계산하고 비교하여 서로 다른 지를 감지합니다. verify-alg 매개 변수는 이러한 체크섬에 사용할 알고리즘을 결정합니다. 온라인 검증을 사용하기 전에 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정해야 합니다. /proc/ crypto에 나열된 shash 알고리즘을 참조하십시오.

stacked-on-top-of 

3-4 개의 노드로 스택 된 리소스를 구성하기 위해 on 섹션 대신 사용됩니다. bsr에선 더 이상 사용하지 않습니다.

...