...
|
괄호 안의 섹션은 구성의 다른 부분에 영향을 줍니다. 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"키워드로 시작됩니다.
섹션
global
전역 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다. 구성에서 하나의 global 섹션만 허용됩니다.
common
이 섹션에는 각 disk, handler, network, options 및 startup 섹션이 포함될 수 있습니다. 모든 리소스들은 이 섹션의 매개 변수를 기본값으로 상속합니다.
connection [name]
두 호스트 간의 연결을 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수 또는 여러 경로 섹션이 포함되어야합니다. 선택적으로 사용할 수 있는 "Name"은 시스템 로그 및 기타 다른 메시지들의 연결을 나타내는 데 사용됩니다. 이름을 지정하지 않으면 피어의 호스트 이름이 대신 사용됩니다.
path
두 호스트 간의 path를 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수가 포함되어야합니다.
connection-mesh
여러 호스트들 간의 mesh 연결을 정의합니다. 이 섹션에는 호스트 이름을 인수로 갖는 "hosts"매개 변수가 포함되어야합니다. 이 섹션은 동일한 네트워크 옵션을 공유하는 많은 연결을 손쉽게 정의하는 방법입니다.
disk
볼륨의 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.
handlers
특정 이벤트가 발생할 때 호출 될 핸들러를 정의합니다. 커널은 핸들러의 첫 번째 명령 줄 인수에서 리소스 이름을 전달하고 이벤트 문맥에 따라 다음 환경 변수를 설정합니다.
특정 device와 관련된 이벤트의 경우: 장치의 부 번호는 BSR_MINOR, 장치의 볼륨 번호는 BSR_VOLUME 에 있습니다.
특정 peer의 특정 device와 관련된 이벤트의 경우: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS 및 BSR_PEER_AF에 connection 엔드 포인트가 있습니다; BSR_MINOR에 있는 장치의 로컬 부 번호 및 BSR_VOLUME에 장치의 볼륨 번호가 있습니다.
특정 connection과 관련된 이벤트의 경우: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS 및, BSR_PEER_AF에 connection 엔드 포인트; 그리고 해당 connection에 대해 정의된 각 device의 장치 부 번호가 BSR_MINOR_volume-number에 있습니다.
장치를 식별하는 이벤트의 경우 하위 장치가 연결되어 있으면 하위 장치의 장치 이름이 BSR_BACKING_DEV (또는 BSR_BACKING_DEV_volume-number)로 전달됩니다.
이 섹션의 모든 매개 변수는 선택 사항입니다. 각 이벤트에 대해 단일 핸들러만 정의 할 수 있습니다. 핸들러가 정의되어 있지 않으면 아무 일도 일어나지 않습니다.
net
연결 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.
on host-name [...]
특정 호스트 또는 호스트 세트에서 리소스의 특성을 정의하십시오. 예를 들어, IP 주소 failover 설정에서 둘 이상의 호스트 이름을 지정하는 경우에 의미가 있습니다. host-name 인수는 OS에 설정된 호스트 이름 (uname -n)과 일치해야합니다. 일반적으로 하나 이상의 볼륨 섹션을 포함하거나 상속합니다. 이 섹션에서 node-id 및 address 매개 변수를 정의해야합니다. device, disk 및 meta-disk 매개 변수는이 섹션에서 반드시 정의하거나 상속해야합니다. 일반적인 구성 파일에서는 각 리소스에 대한 둘 이상의 on 섹션이 있습니다. floating 섹션의 내용을 참고하세요
floating [address-family] addr:port
on 섹션과 마찬가지로 호스트 이름 대신 네트워크 주소가 floating 섹션과 일치하는지 확인합니다. 이 섹션의 node-id 매개 변수가 필요합니다. 주소 매개 변수가 제공되지 않으면 기본적으로 피어에 대한 연결이 생성되지 않습니다. device, disk 및 meta-disk 매개 변수는 반드시 이 섹션에서 정의하거나 상위로부터 상속해야 합니다.dialog-refresh time
bsr 초기화 스크립트를 사용하여 장치를 구성하고 시작할 수 있습니다. 여기에는 다른 클러스터 노드 대기와 관련 될 수 있습니다. 기다리는 동안 init 스크립트는 남은 대기 시간을 보여줍니다. 대화 상자 새로 고침은 해당 카운트 다운 업데이트 사이의 시간 (초)을 정의하고 기본값은 1입니다. 값이 0이면 카운트 다운이 꺼집니다.
disable-ip-verification
일반적으로 bsr은 구성의 IP 주소가 호스트 이름과 일치하는지 확인합니다. disable-ip-verification 매개 변수를 사용하여 이러한 검사를 비활성화할 수 있습니다.
usage-count {yes | no | ask}
사용 통계를 취합하는 기능이지만 bsr 에서는 사용되지 않습니다.
hostname hostname-alias
호스트 이름의 별칭을 지정할 수 있습니다. 지정한 hostname-alias 를 on 섹션의 hostname 으로 사용하면 됩니다.
common
이 섹션에는 각 disk, handler, network, options 및 startup 섹션이 포함될 수 있습니다. 모든 리소스들은 이 섹션의 매개 변수를 기본값으로 상속합니다.
startup
이 섹션의 매개 변수는 시스템 시작시 bsr init 스크립트에서 bsr의 동작을 정의합니다. 시스템이 시작되어 bsr 이 실행되고 난 후엔 더이상 아무런 영향을 미치지 않습니다.
다만 이 섹션의 속성들은 하위 호환을 위해 존재하며 bsr에선 대부분 폐기되었습니다.
degr-wfc-timeout timeout
클러스터가 단일 노드로 구성된 경우 시스템이 다운 될 때 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서는 리부팅 전에 도달 할 수없는 피어가 리부팅 후에 도달 할 가능성이 적으므로 대기하는 것이 도움이되지 않는다고 가정합니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
outdated-wfc-timeout timeout
시스템이 다운 될 때 모든 피어가 outdated 이면 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서 outdated 피어는 그 동안 Primary 노드가 될 수 없으므로 이전에 존재 했던 노드 만큼 기다릴 필요가 없습니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
stacked-timeouts
지원하지 않습니다.
wait-after-sb
이 매개 변수는 스플릿 브레인 상황이 감지 된 경우에도 bsr이 init 스크립트에서 계속 대기하도록 하여 노드가 서로 연결을 거부하게 합니다.
wfc-timeout timeout
모든 피어가 연결될 때까지 init 스크립트가 대기하는 시간을 정의 합니다. 이는 리소스를 관리 할 수 없는 클러스터 관리자와 결합하여 유용할 수 있습니다. 클러스터 관리자가 시작되면 리소스가 이미 실행 중입니다. 시간 초과는 초 단위로 지정됩니다. 기본 값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
resource
resource [name]
리소스를 정의합니다. 일반적으로 두 개 이상의 섹션과 하나 이상의 connection 섹션이 있습니다.
options
리소스에 대한 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.
resource name
리소스를 정의합니다. 일반적으로 두 개 이상의 섹션과 하나 이상의 connection 섹션이 있습니다.
stacked-on-top-of resource
3-4 개의 노드로 스택 된 리소스를 구성하기 위해 on 섹션 대신 사용됩니다. bsr에선 스태킹이 더 이상 사용되지 않으며, 1:N 복제 구성으로 사용하는 것이 좋습니다.
startup
이 섹션의 매개 변수는 리소스 시작 시 리소스의 동작을 결정합니다.
volume volume-number
리소스 내에서 볼륨을 정의합니다. 리소스의 volume 섹션들에 있는 볼륨 번호는 호스트에서 어떤 장치가 복제 장치를 구성하는지 정의합니다.
global
dialog-refresh time
bsr 초기화 스크립트를 사용하여 장치를 구성하고 시작할 수 있습니다. 여기에는 다른 클러스터 노드 대기와 관련 될 수 있습니다. 기다리는 동안 init 스크립트는 남은 대기 시간을 보여줍니다. 대화 상자 새로 고침은 해당 카운트 다운 업데이트 사이의 시간 (초)을 정의하고 기본값은 1입니다. 값이 0이면 카운트 다운이 꺼집니다.
disable-ip-verification
일반적으로 bsr은 구성의 IP 주소가 호스트 이름과 일치하는지 확인합니다. disable-ip-verification 매개 변수를 사용하여 이러한 검사를 비활성화할 수 있습니다.
usage-count {yes | no | ask}
사용 통계를 취합하는 기능이지만 bsr 에서는 사용되지 않습니다.
hostname hostname-alias
호스트 이름의 별칭을 지정할 수 있습니다. 지정한 hostname-alias 를 on 섹션의 hostname 으로 사용하면 됩니다.
options(resource options)
auto-promote bool-value
지원하지 않습니다.
cpu-mask cpu-mask
지원하지 않습니다.
on-no-data-accessible policy
요청 된 데이터를 로컬에서 접근할 수 없는 경우(예 : 모든 디스크에 장애가 발생한 경우) I/O 요청을 처리하는 방법을 결정합니다. bsr 에선 지원하지 않습니다.
peer-ack-window value
각 노드와 각 장치에서 bsr은 각 피어 장치에 대한 로컬 데이터와 원격 데이터의 차이점에 대한 비트맵을 유지합니다. 예를 들어, 단일 장치가 있는 3노드 설정(노드 A, B, C)에서 모든 노드는 각 피어에 대해 하나의 비트맵을 유지합니다. 노드가 쓰기 요청을 받으면 쓰기 노드에 대한 비트맵을 업데이트하는 방법을 알고 있지만 다른 노드들 간의 비트맵을 업데이트하는 방법은 알지 못합니다. 예를 들어 쓰기 요청이 노드 A에서 B와 C로 전파 될 때 노드 B와 C는 노드 A와 동일한 데이터를 가지고 있지만 둘 다 동일한 데이터를 가지고 있는지 여부는 알지 못합니다. 이에 대한 해결책으로, 쓰기 노드는 때때로 peer-ack 패킷을 피어로 보내 서로에게 어떤 상태인지 알려줍니다. peer-ack-window 매개 변수는 peer-ack 패킷을 보내기 전에 Primary 노드가 전송할 수 있는 데이터의 양을 지정합니다. 값이 낮으면 네트워크 트래픽이 증가합니다. 값이 크면 네트워크 트래픽은 줄어들지 만 Secondary 노드의 메모리 소비는 증가하고 Primary 노드 장애 후 Secondary 노드 간의 재 동기화 시간이 길어집니다. 참고로 peer-ack 패킷은 다른 이유로 인해 전송 될 수도 있습니다(예 : 멤버쉽 변경 또는 “peer-ack-delay 타이머"의 만료). peer-ack-window의 기본 값은 2MiB이며, 기본 단위는 섹터입니다.
peer-ack-delay expiry-time
마지막으로 완료된 쓰기 요청 후에 만기 시간 동안 새로운 쓰기 요청이 발행되지 않으면 peer-ack 패킷이 전송됩니다. 타이머가 만료되기 전에 새로운 쓰기 요청이 발행되면 타이머는 만료 시간으로 재 설정됩니다. (참고 : 멤버십 변경 또는 "peer-ack-window"옵션과 같은 다른 이유로 peer-ack 패킷이 전송 될 수도 있습니다) 이 매개 변수는 원격 노드의 재 동기화 동작에 영향을 줄 수 있습니다. 피어 노드는 AL 익스텐트에서 잠금을 해제하기 위해 peer-ack 을 받을 때까지 기다려야 합니다. 피어 간의 재 동기화 작업이 이러한 잠금을 기다려야 할 수도 있습니다. peer-ack-delay의 기본 값은 100 밀리 초이며 기본 단위는 밀리 초입니다.
max-req-write-count
리소스에 허용될 수 있는 처리 중(inflight)인 쓰기 I/O 요청 최대 회수 입니다. 기본 값은 100000 입니다.
on-req-write-congestion
max-req-write-count 를 넘어서는 쓰기 req 가 발생할 경우 혼잡으로 간주하고 이에 대응하기 위한 정책을 지정합니다. disconnect, block 정책이 있으며 기본 disconnect 입니다.
accelbuf-size size
비동기 복제에서 로컬 쓰기 성능 향상을 위한 버퍼 크기 입니다. 기본 값은 10MB 입니다. accelbuf 하나의 버퍼를 할당하고 발생된 쓰기 버퍼 공간으로 부터 데이터를 복사하여 송신버퍼 측으로 복사하기 전에 빠르게 I/O 를 완료할 수 있습니다. (bsr 1.7 이후 지원)
max-accelbuf-blk-size size
accelbuf 버퍼의 대상 I/O 블럭 크기입니다. 기본 값은 4KB이며 4KB 이하의 쓰기 I/O에 대해서만 accelbuf를 적용합니다. (bsr 1.7 이 지원)
persist-role
리소스 역할 유지 속성입니다. yes 일 경우 리소스가 재시작되는 모든 시점에 명령줄에 의해 명시적으로 지정된 역할을 계속 유지 합니다. (기본값은 no, bsr 1.7.3 이상 지원)
connection
host name [address [address-family] address] [port port-number]
연결에 대한 엔드포인트를 정의합니다. 각 host 구문은 리소스의 on 섹션을 나타냅니다. 포트 번호가 정의되면 이 엔드 포인트는 on 섹션에 정의 된 포트 대신 지정된 포트를 사용합니다. 각 auto-promote bool-value
지원하지 않습니다.
cpu-mask cpu-mask
지원하지 않습니다.
on-no-data-accessible policy
요청 된 데이터를 로컬에서 접근할 수 없는 경우(예 : 모든 디스크에 장애가 발생한 경우) I/O 요청을 처리하는 방법을 결정합니다. bsr 에선 지원하지 않습니다.
peer-ack-window value
각 노드와 각 장치에서 bsr은 각 피어 장치에 대한 로컬 데이터와 원격 데이터의 차이점에 대한 비트맵을 유지합니다. 예를 들어, 단일 장치가 있는 3노드 설정(노드 A, B, C)에서 모든 노드는 각 피어에 대해 하나의 비트맵을 유지합니다. 노드가 쓰기 요청을 받으면 쓰기 노드에 대한 비트맵을 업데이트하는 방법을 알고 있지만 다른 노드들 간의 비트맵을 업데이트하는 방법은 알지 못합니다. 예를 들어 쓰기 요청이 노드 A에서 B와 C로 전파 될 때 노드 B와 C는 노드 A와 동일한 데이터를 가지고 있지만 둘 다 동일한 데이터를 가지고 있는지 여부는 알지 못합니다. 이에 대한 해결책으로, 쓰기 노드는 때때로 peer-ack 패킷을 피어로 보내 서로에게 어떤 상태인지 알려줍니다. peer-ack-window 매개 변수는 peer-ack 패킷을 보내기 전에 Primary 노드가 전송할 수 있는 데이터의 양을 지정합니다. 값이 낮으면 네트워크 트래픽이 증가합니다. 값이 크면 네트워크 트래픽은 줄어들지 만 Secondary 노드의 메모리 소비는 증가하고 Primary 노드 장애 후 Secondary 노드 간의 재 동기화 시간이 길어집니다. 참고로 peer-ack 패킷은 다른 이유로 인해 전송 될 수도 있습니다(예 : 멤버쉽 변경 또는 “peer-ack-delay 타이머"의 만료). peer-ack-window의 기본 값은 2MiB이며, 기본 단위는 섹터입니다.
peer-ack-delay expiry-time
마지막으로 완료된 쓰기 요청 후에 만기 시간 동안 새로운 쓰기 요청이 발행되지 않으면 peer-ack 패킷이 전송됩니다. 타이머가 만료되기 전에 새로운 쓰기 요청이 발행되면 타이머는 만료 시간으로 재 설정됩니다. (참고 : 멤버십 변경 또는 "peer-ack-window"옵션과 같은 다른 이유로 peer-ack 패킷이 전송 될 수도 있습니다) 이 매개 변수는 원격 노드의 재 동기화 동작에 영향을 줄 수 있습니다. 피어 노드는 AL 익스텐트에서 잠금을 해제하기 위해 peer-ack 을 받을 때까지 기다려야 합니다. 피어 간의 재 동기화 작업이 이러한 잠금을 기다려야 할 수도 있습니다. peer-ack-delay의 기본 값은 100 밀리 초이며 기본 단위는 밀리 초입니다.
max-req-write-count
리소스에 허용될 수 있는 처리 중(inflight)인 쓰기 I/O 요청 최대 회수 입니다. 기본 값은 100000 입니다.
on-req-write-congestion
max-req-write-count 를 넘어서는 쓰기 req 가 발생할 경우 혼잡으로 간주하고 이에 대응하기 위한 정책을 지정합니다. disconnect, block 정책이 있으며 기본 disconnect 입니다.
accelbuf-size size
비동기 복제에서 로컬 쓰기 성능 향상을 위한 버퍼 크기 입니다. 기본 값은 10MB 입니다. accelbuf 하나의 버퍼를 할당하고 발생된 쓰기 버퍼 공간으로 부터 데이터를 복사하여 송신버퍼 측으로 복사하기 전에 빠르게 I/O 를 완료할 수 있습니다. (bsr 1.7 이후 지원)
max-accelbuf-blk-size size
accelbuf 버퍼의 대상 I/O 블럭 크기입니다. 기본 값은 4KB이며 4KB 이하의 쓰기 I/O에 대해서만 accelbuf를 적용합니다. (bsr 1.7 이 지원)
persist-role
리소스 역할 유지 속성입니다. yes 일 경우 리소스가 재시작되는 모든 시점에 명령줄에 의해 명시적으로 지정된 역할을 계속 유지 합니다. (기본값은 no, bsr 1.7.3 이상 지원)
connection
connection [name]
두 호스트 간의 연결을 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수 또는 여러 경로 섹션이 포함되어야합니다. 선택적으로 사용할 수 있는 "name"은 시스템 로그 및 기타 다른 메시지들의 연결을 나타내는 데 사용됩니다. 이름을 지정하지 않으면 피어의 호스트 이름이 대신 사용됩니다.
host name [address [address-family] address] [port port-number]
연결에 대한 엔드포인트를 정의합니다. 각 host 구문은 리소스의 on 섹션을 나타냅니다. 포트 번호가 정의되면 이 엔드 포인트는 on 섹션에 정의 된 포트 대신 지정된 포트를 사용합니다. 각 connection 섹션에는 정확히 두 개의 host 매개 변수가 포함되어야합니다. 두 개의 host 매개 변수 대신 connection에 다중 path 섹션이 포함될 수 있습니다.
path
두 호스트 간의 path를 정의합니다. 이 섹션에는 두 개의 호스트 매개 변수가 포함되어야합니다.
host name [address [address-family] address] [port port-number]
연결에 대한 엔드포인트를 정의합니다. 각 host 구문은 리소스의 on 섹션을 나타냅니다. 포트 번호가 정의되면 이 엔드 포인트는 on섹션에 정의 된 포트 대신 지정된 포트를 사용합니다. 각 path 섹션에는 정확히 두 개의 host 매개 변수가 포함되어야합니다.
connection-mesh
hosts name여러 호스트들 간의 mesh 연결을 정의합니다. 이 섹션에는 호스트 이름을 인수로 갖는 "hosts"매개 변수가 포함되어야합니다. 이 섹션은 동일한 네트워크 옵션을 공유하는 많은 연결을 손쉽게 정의하는 방법입니다.
hosts name…
메쉬의 모든 노드를 정의합니다. 각 이름은 자원의 on 섹션을 나타냅니다. on 섹션에 정의 된 포트가 사용됩니다.
disk
볼륨의 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.
al-extents extents
bsr은 최근 디스크 쓰기 작업을 근거로 쓰여진(active) 영역과 쓰여진 영역에 최근 다시 쓰여진(hot) 영역에 대해 관리합니다. 쓰기 I/O가 발생하면 active 영역은 디스크에 즉시 쓰면 되지만 inactive 디스크 영역은 먼저 activated 해야 하기 때문에 여기서 메타 데이터 쓰기가 필요합니다. 이 active 디스크 영역을 activity log 라고 합니다.
...
write same I/O 를 지원하지 않는 디스크 장치의 경우 yes 로 설정하여 bsr 이 해당 I/O의 유형을 오류로 처리하지 않도록 합니다.
peer-device-options
peer-device-options 섹션 이지만 disk 키워드로 이 섹션을 기술합니다. (예전 버전에서 사용하던 방식을 취하여 하위 호환을 유지하기 위함)
...
복제 수행 중 동기화가 병행 될 경우의 동기화 최소 대역폭 비율을 정의합니다. 만약 이 값이 높은 비율로 설정된다면 복제 대역의 비율이 상대적으로 낮아지고 그에 따라 응용 I/O 의 성능이 저하될 수 있으므로 이에 유의해야 합니다.
resync-ratio 설정은 동기화 최소 대역폭 비율 이므로 resync-ratio보다 실제 동기화 대역이 높을 경우 동기화 대역을 낮추지 않고 현 상태를 유지합니다.
resync-ratio 설정으로 얻은 동기화 대역폭 비율의 크기가 c-min-rate 설정보다 작다면 c-min-rate로 동기화 대역폭이 설정됩니다.
resync-ratio 설정은 복제 중 동기화 속도가 c-min-rate 보다 낮을 때 적용됩니다.
handlers
합니다.
resync-ratio 설정은 동기화 최소 대역폭 비율 이므로 resync-ratio보다 실제 동기화 대역이 높을 경우 동기화 대역을 낮추지 않고 현 상태를 유지합니다.
resync-ratio 설정으로 얻은 동기화 대역폭 비율의 크기가 c-min-rate 설정보다 작다면 c-min-rate로 동기화 대역폭이 설정됩니다.
resync-ratio 설정은 복제 중 동기화 속도가 c-min-rate 보다 낮을 때 적용됩니다.
handlers
특정 이벤트가 발생할 때 호출 될 핸들러를 정의합니다. 커널은 핸들러의 첫 번째 명령 줄 인수에서 리소스 이름을 전달하고 이벤트 문맥에 따라 다음 환경 변수를 설정합니다.
특정 device와 관련된 이벤트의 경우: 장치의 부 번호는 BSR_MINOR, 장치의 볼륨 번호는 BSR_VOLUME 에 있습니다.
특정 peer의 특정 device와 관련된 이벤트의 경우: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS 및 BSR_PEER_AF에 connection 엔드 포인트가 있습니다; BSR_MINOR에 있는 장치의 로컬 부 번호 및 BSR_VOLUME에 장치의 볼륨 번호가 있습니다.
특정 connection과 관련된 이벤트의 경우: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS 및, BSR_PEER_AF에 connection 엔드 포인트; 그리고 해당 connection에 대해 정의된 각 device의 장치 부 번호가 BSR_MINOR_volume-number에 있습니다.
장치를 식별하는 이벤트의 경우 하위 장치가 연결되어 있으면 하위 장치의 장치 이름이 BSR_BACKING_DEV (또는 BSR_BACKING_DEV_volume-number)로 전달됩니다.
이 섹션의 모든 매개 변수는 선택 사항입니다. 각 이벤트에 대해 단일 핸들러만 정의 할 수 있습니다. 핸들러가 정의되어 있지 않으면 아무 일도 일어나지 않습니다.
after-resync-target cmd
재 동기화가 완료 될 때 노드 상태가 "Inconsistent"에서 "Consistent"로 변경되면 SyncTarget에서 호출됩니다. 예를 들어, 이 핸들러는 before-resync-target 핸들러에서 작성된 스냅 샷을 제거하는 데 사용할 수 있습니다.
...
bsr이 자동으로 해결할 수 없는 스플릿 브레인 상황임을 감지했으며 수동 복구가 필요합니다. 이 핸들러는 관리자에게 주의를 주는 데 사용될 수 있습니다.
net
연결의 매개 변수를 정의합니다. 이 섹션의 모든 매개 변수는 선택 사항입니다.
after-sb-0pri policy
스플릿 브레인이 감지되고 두 노드 중 어느 것도 Primary 역할이 아닐 경우의 대응 방법을 정의합니다. 스플릿 브레인은 항상 두 노드 사이에서 결정되며 두 노드가 연결될 때 감지합니다. 정의 된 정책은 다음과 같습니다.
...
use-rle 매개 변수는 run length encoding 을 사용해야 하는지 결정합니다. 클러스터 노드의 각 복제 된 장치에는 각 피어 장치에 대한 별도의 비트맵이 있습니다. 비트맵은 로컬 장치와 피어 장치의 차이점을 추적하는 데 사용됩니다. 클러스터 상태에 따라 장치의 비트맵, 피어 장치의 비트맵 또는 두 비트맵에서 디스크 범위가 피어와 다른 것으로 표시 될 수 있습니다. 두 클러스터 노드가 연결되면 서로의 비트맵을 교환하고 각각 로컬 및 피어 비트맵의 합집합을 계산하여 전체 차이를 결정합니다. 매우 큰 장치의 경우 비트맵이 비교적 크기 때문에 일반적으로 run length encoding을 사용하여 압축률을 높이고 이를 통해 비트맵 전송에 필요한 시간과 대역폭을 절약 할 수 있습니다. 기본적으로 활성화 되어 있습니다.
verify-alg hash-algorithm
온라인 검증 (bsradm verify)은 디스크 블록 (즉, 해시값)의 체크섬을 계산하고 비교하여 서로 다른 지를 감지합니다. verify-alg 매개 변수는 이러한 체크섬에 사용할 알고리즘을 결정합니다. 온라인 검증을 사용하기 전에 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정해야 합니다. /proc/ crypto에 나열된 shash 알고리즘을 참조하십시오.
on
address [address-family] address: port
connection 엔드 포인트의 주소 패밀리, 주소 및 포트를 정의합니다. 주소 제품군 ipv4, ipv6 가 지원됩니다. 주소 패밀리를 지정하지 않으면 "ipv4"로 인식 됩니다. ipv6을 제외한 모든 주소 계열의 경우 주소는 IPV4 주소 표기법 (예 : 1.2.3.4)으로 지정됩니다. ipv6의 경우 주소는 괄호로 묶고 IPv6 주소 표기법을 사용합니다 (예 : [fd01 : 2345 : 6789 : abcd :: 1]). 포트는 항상 1에서 65535 사이의 10진수로 지정합니다. 각 호스트에서 포트 번호는 각 주소마다 고유해야 하고 포트를 공유 할 수 없습니다.
node-id value
클러스터에서 노드의 고유 노드 식별자를 정의합니다. 노드 식별자는 네트워크 프로토콜에서 개별 노드를 식별하고 메타 데이터의 노드에 비트맵 슬롯을 할당하는 데 사용됩니다. 클러스터가 작동 중지 된 경우에만 클러스터에서 노드 식별자를 재 지정할 수 있습니다. 구성 및 장치 메타 데이터의 노드 식별자는 모든 호스트에서 일관되게 변경 되어야 합니다. 메타 데이터를 변경하려면, bsrmeta dump-md로 현재 상태를 덤프하고 비트맵 슬롯 할당을 조정 한 다음, bsrmeta restore-md로 메타 데이터를 업데이트 하십시오. node-id 파라미터는 필수적으로 설정해야 합니다. 값의 범위는 0에서 16입니다. 기본 값은 없습니다.
options (on options)
svc-auto-up
bsr 서비스가 시작될 때 리소스를 자동으로 기동합니다. 기본 값은 yes 입니다.
svc-auto-down
bsr 서비스가 종료될 때 리소스를 자동으로 중지합니다. 기본 값은 yes 입니다.
target-only
yes 이면 타깃 전용 노드로 지정됩니다. 타깃 전용 노드는 항상 타깃의 역할만 수행하며 소스역할의 수행은 거부됩니다. (bsr 1.7.3 이상)
startup
이 섹션의 매개 변수는 시스템 시작시 bsr init 스크립트에서 bsr의 동작을 정의합니다. 시스템이 시작되어 bsr 이 실행되고 난 후엔 아무런 영향을 미치지 않습니다. 다만 이 섹션의 속성들은 하위 호환을 위해 존재하며 bsr에선 대부분 지원하지 않습니다.
degr-wfc-timeout timeout
클러스터가 단일 노드로 구성된 경우 시스템이 다운 될 때 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서는 리부팅 전에 도달 할 수없는 피어가 리부팅 후에 도달 할 가능성이 적으므로 대기하는 것이 도움이되지 않는다고 가정합니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
outdated-wfc-timeout timeout
시스템이 다운 될 때 모든 피어가 outdated 이면 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서 outdated 피어는 그 동안 Primary 노드가 될 수 없으므로 이전에 존재 했던 노드 만큼 기다릴 필요가 없습니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
stacked-timeouts
지원하지 않습니다.
wait-after-sb
이 매개 변수는 스플릿 브레인 상황이 감지 된 경우에도 bsr이 init 스크립트에서 계속 대기하도록 하여 노드가 서로 연결을 거부하게 합니다.
wfc-timeout timeout
모든 피어가 연결될 때까지 init 스크립트가 대기하는 시간을 정의 합니다. 이는 리소스를 관리 할 수 없는 클러스터 관리자와 결합하여 유용할 수 있습니다. 클러스터 관리자가 시작되면 리소스가 이미 실행 중입니다. 시간 초과는 초 단위로 지정됩니다. 기본 값은 0이며 무한 시간 초과를 나타냅니다. bsr에선 지원하지 않습니다.
volume
기본적으로 활성화 되어 있습니다.
verify-alg hash-algorithm
온라인 검증 (bsradm verify)은 디스크 블록 (즉, 해시값)의 체크섬을 계산하고 비교하여 서로 다른 지를 감지합니다. verify-alg 매개 변수는 이러한 체크섬에 사용할 알고리즘을 결정합니다. 온라인 검증을 사용하기 전에 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정해야 합니다. /proc/ crypto에 나열된 shash 알고리즘을 참조하십시오.
on
on host-name [...]
특정 호스트 또는 호스트 집합에 있는 리소스의 속성을 정의합니다. 예를 들어 IP 주소 장애 조치와 같은 설정에서는 호스트 이름을 두 개 이상 지정하는 것이 유용할 수 있습니다. host-name 인수는 시스템의 호스트 이름(Linux 예, uname -n)과 일치해야 합니다. 일반적으로 하나 이상의 volume 섹션을 포함하거나 상속합니다. node-id 및 address 매개 변수는 이 섹션에서 정의해야 합니다. device, disk 및 meta-disk 매개 변수는 이 섹션에 정의되거나 이 섹션에서 상속되어야 합니다. 일반 구성 파일에는 각 리소스에 대한 On 섹션이 2개 이상 포함됩니다. ip 주소 기반의 구성이 필요한 경우 floating 섹션으로 대체하여 작성합니다.
address [address-family] address: port
connection 엔드 포인트의 주소 패밀리, 주소 및 포트를 정의합니다. 주소 제품군 ipv4, ipv6 가 지원됩니다. 주소 패밀리를 지정하지 않으면 "ipv4"로 인식 됩니다. ipv6을 제외한 모든 주소 계열의 경우 주소는 IPV4 주소 표기법 (예 : 1.2.3.4)으로 지정됩니다. ipv6의 경우 주소는 괄호로 묶고 IPv6 주소 표기법을 사용합니다 (예 : [fd01 : 2345 : 6789 : abcd :: 1]). 포트는 항상 1에서 65535 사이의 10진수로 지정합니다. 각 호스트에서 포트 번호는 각 주소마다 고유해야 하고 포트를 공유 할 수 없습니다.
node-id value
클러스터에서 노드의 고유 노드 식별자를 정의합니다. 노드 식별자는 네트워크 프로토콜에서 개별 노드를 식별하고 메타 데이터의 노드에 비트맵 슬롯을 할당하는 데 사용됩니다. 클러스터가 작동 중지 된 경우에만 클러스터에서 노드 식별자를 재 지정할 수 있습니다. 구성 및 장치 메타 데이터의 노드 식별자는 모든 호스트에서 일관되게 변경 되어야 합니다. 메타 데이터를 변경하려면, bsrmeta dump-md로 현재 상태를 덤프하고 비트맵 슬롯 할당을 조정 한 다음, bsrmeta restore-md로 메타 데이터를 업데이트 하십시오. node-id 파라미터는 필수적으로 설정해야 합니다. 값의 범위는 0에서 16입니다. 기본 값은 없습니다.
options
svc-auto-up
bsr 서비스가 시작될 때 리소스를 자동으로 기동합니다. 기본 값은 yes 입니다.
svc-auto-down
bsr 서비스가 종료될 때 리소스를 자동으로 중지합니다. 기본 값은 yes 입니다.
target-only
yes 이면 타깃 전용 노드로 지정됩니다. 타깃 전용 노드는 항상 타깃의 역할만 수행하며 소스역할의 수행은 거부됩니다. (bsr 1.7.3 이상)
volume
volume volume-number
리소스 내에서 볼륨을 정의합니다. 리소스의 volume 섹션들에 있는 볼륨 번호는 호스트에서 어떤 장치가 복제 장치를 구성하는지 정의합니다.
device /dev/bsr minor-number
...
복제 블록 장치의 메타 데이터가 있는 위치를 정의합니다. 메타 데이터는 하위 수준 장치에 데이터와 메타 데이터가 모두 포함되거나 별도의 장치에 있을 수 있습니다. 이 매개 변수의 index 형식을 사용하면 여러 개의 복제 된 장치가 각각 별도의 인덱스를 사용하여 동일한 메타 데이터 장치를 공유 할 수 있습니다. 각 인덱스는 128MiB의 데이터를 차지하며, 이는 2개의 클러스터 노드가있는 최대 4TiB의 복제 된 장치 크기에 해당합니다. 그러나 볼륨확장 등 flexible 한 메타를 요구하는 기능을 사용해야 할 경우 제약이 될 수 있기 때문에 메타 데이터 장치를 공유하지 말고 lvm 볼륨 관리자를 사용하여 필요에 따라 메타 데이터 장치를 작성하는 것이 좋습니다. 이 매개 변수의 색인 형식을 사용하지 않으면 하위 장치의 크기에 따라 메타 데이터의 크기가 결정됩니다. 필요한 크기는 36 KiB + (하위 장치 크기) / 32K * (노드 수-1)입니다. 메타 데이터 장치가 이보다 큰 경우 추가 공간은 사용되지 않습니다. 이 매개 변수는 "none"이외의 "disk"가 지정된 경우에 필요하며 "disk"가 "none"으로 설정된 경우 무시됩니다)입니다. 메타 데이터 장치가 이보다 큰 경우 추가 공간은 사용되지 않습니다. 이 매개 변수는 "none"이외의 "disk"가 지정된 경우에 필요하며 "disk"가 "none"으로 설정된 경우 무시됩니다.
floating
floating [address-family] addr:port
on 섹션과 마찬가지로 호스트 이름 대신 네트워크 주소가 floating 섹션과 일치하는지 확인합니다. node-id 매개 변수가 필요하고 주소 매개 변수가 제공되지 않으면 기본적으로 피어에 대한 연결이 생성되지 않습니다. device, disk 및 meta-disk 매개 변수를 반드시 이 섹션에서 정의하거나 상위로부터 상속해야 합니다.
stacked-on-top-of
3-4 개의 노드로 스택 된 리소스를 구성하기 위해 on 섹션 대신 사용됩니다. bsr에선 더 이상 사용하지 않습니다.