...
bsradm은 bsrsetup의 대부분 옵션을 알고 있으며 모든 이중 대시 옵션 또는 이중 대시 없는 옵션을 지정된 하위 수준 유틸리티에 전달합니다.
OPTIONS
-V, --version
bsr 의 버전 정보를 출력합니다.
-d, --dry-run
bsradm -d up resource와 같이 실제로 실행하지 않고 실행할 명령을 표시합니다. 이것은 bsrsetup 및 bsrmeta 사용법을 배우는 유용한 방법이 될 수 있습니다.
...
하위 장치의 현재 디스크 상태를 출력합니다.
dump {resource}
구성파일은 구성파일을 파싱하여 stdout 으로 출력합니다.
dump-md {device}
장치의 메타데이터를 텍스트 형식으로 덤프합니다. 비트맵과 액티비트 로그도 activity log도 포함됩니다.
get-gi {peer_device}
...
new-current-uuid {device}
새로운 current UUID 를 생성합니다.
new-current-uuid --no-rotate-bitmap {device}
새로운 current UUID 를 생성하지만 bitmap UUID 는 rotate 하지 않습니다. 로컬에서 I/O가 발생된 효과를 줍니다.
outdate {device}
하위 장치의 데이터를 outdated 로 지정합니다.
...
--al-extents extents
bsr은 최근 디스크 쓰기 작업을 근거로 쓰여진(active) 영역과 쓰여진 영역에 최근 다시 쓰여진(hot) 영역에 대해 관리합니다. 쓰기 I/O가 발생하면 active 영역은 디스크에 즉시 쓰면 되지만 inactive 디스크 영역은 먼저 activated 해야 하기 때문에 여기서 메타 데이터 쓰기가 필요합니다. 이 active 디스크 영역을 activity log 라고 합니다. activity log에 메타 데이터 쓰기를 저장하지만 실패한 노드를 복구할 경우 전체 activity log에 대해 다시 동기화 해야 합니다. 따라서 activity log의 크기는 primary 크래쉬 후 재 동기화에 얼마나 오래 걸릴지, 얼마나 빨리 복제 디스크의 일관성을 맞출지의 주요 요인이 됩니다. activity log는 여러 개의 4MiB 단위 세그먼트로 구성됩니다. al-extents 매개 변수는 동시에 활성화 할 수있는 세그먼트 수를 결정합니다. al-extents의 기본값은 6001이며 최소 7과 최대 65536입니다. 장치 메타 데이터를 생성한 방법에 따라 유효한 최대 값이 더 작을 수도 있습니다 (bsrmeta 참조).
유효 최대 값은 919 * (사용 가능한 온 디스크 activity log 링 버퍼 영역 / 4kB -1)이며, 기본 32KB 링 버퍼에서 최대 6433 (25GiB 이상의 데이터 포함)이 됩니다. 백엔드 스토리지 및 복제 링크가 약 5 분 이내에 재 동기화 될 수있는 양 이내에서 activity log의 크기를 유지하는 게 좋습니다. al-extents 의 크기를 변경하려면 리소스 중지(down)가 필요합니다.
--al-updates {yes | no}
이 매개 변수를 no 로 설정하면 activity log를 완전히 끌 수 있습니다. 메타 데이터 쓰기가 더 적게 필요하기 때문에 쓰기 속도가 빨라지지만, 실패한 기본 노드의 복구시 전체 장치를 재 동기화해야합니다동기화 해야 합니다. al-updats updates 의 기본값은 yes 입니다.
--disk-barrier, --disk-flushes, --disk-drain bsr에는 쓰기 요청의 순서를 처리하는 세 가지 방법이 있습니다.
disk-flushes
디스크에 쓰기 I/O 를 수행한 후 flush 를 강제하여 모든 데이터를 디스크에 기록하도록 조치합니다. 플랫폼에 따라 또는 드라이브 공급 업체에 따라 flush의 구현이 다를 수 있습니다. 예전 방식으로는 'force unit access'라고 명명되는 디스크 캐쉬를 우회하는 기술로 사용되기도 했으나 최근에은 기본적으로 디스크이 캐쉬를 비우는 작업을 통해 최근에는 기본적으로 디스크 캐쉬의 내용을 디스크에 기록하여 디스크 쓰기를 보장하는 방식으로 구현되고 있습니다. 이 옵션은 기본적으로 활성화 되어 있습니다.
disk-barrier
이 옵션을 사용하여 요청이 올바른 순서로 디스크에 기록되도록합니다. barrier는 barrier 이전에 제출 된 모든 요청이 이후에 제출 된 요청보다 앞서서 모두 디스크에 요청하도록 보장 합니다. 이는 SCSI 장치의 'tagged command queuing'과 SATA 장치의 'native command queuing'을 사용하여 구현됩니다. 일부 장치 및 장치 스택 만이 이 방법을 지원합니다. device mapper (LVM)는 일부 구성에서만 barrier를 지원합니다. disk-barrier을 지원하지 않는 시스템에서 이 옵션을 사용하면 데이터가 손실되거나 손상 될 수 있습니다. 이 옵션은 예전 리눅스 커널에서는 지원했지만 linux-2.6.36 (또는 2.6.32 RHEL6) 이후의 커널은 더 이상 disk-barrier가 지원되는지 지원 되는지 감지할 수 없습니다. 이 옵션은 기본적으로 해제되어 있으며 명시적으로 활성화 해야 합니다.
disk-drain
쓰기 요청을 제출하기 전에 요청 큐가 "드레인"될 때까지(즉, 요청이 완료 될 때까지) 기다립니다. 이 방법을 사용하려면 요청이 완료될 떄 까지 요청들이 디스크에서 안정적이어야 합니다. 예전에는 이 옵션을 기본 활성화 하였지만 지금은 기본 옵션이 아닙니다.
...
--after-sb-0pri policy
스플릿 브레인 시나리오가 감지되고 두 노드 중 어느 것도 Primary 역할을 수행하지 않는 경우 대응 방법을 정의합니다. 스플릿 브레인은 항상 두 노드 사이에서 결정되며 두 노드가 연결될 때 감지합니다. 정의 된 정책은 다음과 같습니다.
disconnect 단순히 연결을 끊습니다.
discard-younger-primary,
discard-older-primary 먼저 Primary 가 됬던 노드(discard-younger-primary) 또는 마지막으로 Primary 가 됬던 노드(discard-older-primary)를 폐기합니다. 만일 두 노드가 독립적으로 Primary 가 됬었다면 discard-least-changes 정책을 사용합니다.
discard-zero-changes 하나의노드에서만 데이터를 쓴 경우 이 노드를 기준으로 재 동기화 합니다. 두 노드가 모두 데이터를 쓴 경우 연결을 끊습니다.
discard-least-changes 많은 데이터를 쓴 노드를 기준으로 동기화 합니다.
discard-node-nodename 명명된 노드를 항상 폐기합니다.
--after-sb-1pri policy
Primary 노드 1 개와 Secondary 노드 1 개로 스플릿 브레인이 감지되는 경우 대처 방법을 정의합니다. (두 노드가 연결될 때 스플릿 브레인 시나리오를 감지하므로 스플릿 브레인 결정은 항상 두 노드 중 하나입니다.) 정의 된 정책은 다음과 같습니다.
disconnect 단순히 연결을 끊습니다.
consensus 희생노드가 선택될 수 있다면 자동으로 해결합니다. 그렇지 않으면, disconnect처럼 동작합니다.
discard-secondary Secondary 의 노드를 폐기합니다.
--after-sb-2pri policy
스플릿 브레인 시나리오가 감지되고 두 노드가 모두 Primary 역할을 하는 경우 대응 방법을 정의합니다. (두 노드가 연결될 때 스플릿 브레인 시나리오를 감지하므로 스플릿 브레인 결정은 항상 두 노드 중 하나 입니다.) 정의 된 정책은 다음과 같습니다. 2 primary 스플릿 브레인의 경우 disconnect 를 통한 수동 복구만 사용할 수 있습니다.
disconnect 단순히 연결을 끊습니다.
--connect-int time
bsrsetup connect로 두 노드 간 연결이 구성되는 즉시 연결 설정을 시도합니다. 이것이 실패하면 bsr은 connect-int초 동안 기다렸다가 반복합니다. connect-int의 기본값은 3초입니다.
--csums-alg hash-algorithm
일반적으로 두 노드가 다시 동기화되면 동기화 대상은 동기화 소스로부터 out-of-sync 데이터를 요청하고 동기화 소스는 데이터를 전송합니다.
많은 사용 패턴에서 볼 때 상당수의 블록이 실제로 동일합니다. csums-alg 알고리즘이 지정되면 동기화되지 않은 데이터를 요청할 때 동기화 대상도 현재 보유한 데이터의 해시를 전송합니다. 동기화 소스는이 해시를 자기의 데이터와 비교합니다. 해시가 다르면 동기화 대상에 새 데이터를 보내고 해시가 같으면 데이터가 동일하다는 것을 알려줍니다. 이렇게 하면 필요한 네트워크 대역폭이 줄어들지만 CPU 사용률이 높아지고 SyncTarget의 읽기 I/O가 증가합니다 . csums-alg는 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정 될 수 있습니다. /proc/crypto에 나열된 shash 알고리즘을 참조하십시오. 기본적으로 csums-alg는 설정되어 있지 않습니다.
--data-integrity-alg alg
bsr은 일반적으로 TCP/IP 프로토콜에 내장 된 데이터 무결성 검사에 의존하지만, 데이터 무결성 알고리즘이 구성된 경우 이 알고리즘을 사용하여 네트워크를 통해 수신 된 데이터가 발신자가 보낸 것과 일치하는지 확인합니다. 데이터 무결성 오류가 감지되면 bsr은 네트워크 연결을 닫고 다시 연결하여 재 동기화를 트리거합니다. data-integrity-alg는 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정 될 수 있습니다. /proc/crypto에 나열된 shash 알고리즘을 참조하십시오. 기본적으로이 메커니즘은 해제되어 있습니다. 관련된 CPU 오버 헤드로 인해 운영 환경에서는 이 옵션을 사용하지 않는 것이 좋습니다.
--fencing fencing_policy
펜싱은 두 노드가 연결이 끊어져서 모두 Primary 가 되는 상황을 방지하기위한 예방 조치입니다. 이것은 스플릿 브레인 상황 이라고도 합니다. bsr은 다음과 같은 펜싱 정책을 지원합니다.
dont-care 펜싱 조치가 수행되지 않습니다. 이것이 기본 정책입니다.
resource-only 노드가 연결이 끊긴 Primary 노드가 되면 피어를 차단하려고 합니다. 이것은 "fence-peer" 핸들러를 호출하여 수행됩니다. 핸들러는 대체 통신 경로를 통해 피어에 도달하여 'bsradm outdate minor'를 호출해야 합니다.
resource-and-stonith 노드가 연결이 끊긴 Primary 노드가 되면 모든 IO 작업을 중지하고 fence-peer 핸들러를 호출합니다. fence-peer 핸들러는 대체 통신 경로를 통해 피어에 도달하여 'bsradm outdate minor'를 호출해야 합니다. 그렇게 할 수없는 경우에는 상대방을 (전원 제어)차단해야 합니다. 상황이 해결 되자마자 IO가 재개됩니다. 펜스 피어 핸들러가 실패한 경우 잠재적으로 스플릿 브레인이 발생했다고 판단하고 수동으로 복구해야 합니다.
--ko-count number
송신 버퍼링 시 TX 노드 측의 송신 재시도 회수를 정의합니다.
--max-buffers number
수신 측 peer-request의 최대 버퍼 크기를 정의합니다. 단위는 PAGE_SIZE(대부분의 시스템에서 4KiB)입니다. 가능한 최소 설정은 32(= 128 KiB)로 하드 코딩되어 있습니다. 이 버퍼는 디스크에 쓰거나 디스크에서 읽는 동안 데이터 블록을 보유하는 데 사용됩니다. max-buffers 페이지 이상이 사용 중이면 이 풀의 추가 할당이 제한됩니다. 수신 측에서 I/O 부하를 감당할 수 없는 경우 max-buffers를 늘려야 합니다.
--max-epoch-size number
쓰기 barrier을 발행하기 전에 bsr이 발행 할 수있는 최대 쓰기 요청 수를 정의합니다. 기본값은 2048이며 최소 1과 최대 20000입니다.이 매개 변수를 10 미만의 값으로 설정하면 성능이 저하 될 수 있습니다.
--on-congestion policy,
--congestion-fill threshold,
--congestion-extents threshold
기본적으로 bsr은 TCP 송신 큐가 가득 찬 경우 대기합니다. 이럴 경우 송신 큐를 다시 사용할 수있을 때까지 응용 프로그램에서 추가 쓰기 요청을 생성 할 수 없습니다. bsr을 프록시와 함께 사용하는 경우 전송 대기열이 가득 차기 전에 bsr을 Ahead/Behind 모드로 전환 할 수있는 Pull-ahead 혼잡 정책을 사용하는 것이 좋습니다. 그런 다음 bsr은 비트 맵에 자신과 피어의 차이점을 기록하지만 더 이상 피어에 복제하지 않습니다. 충분한 버퍼 공간이 다시 사용 가능 해지면 노드는 피어와 재 동기화되고 정상 복제로 다시 전환됩니다. 이는 대기열이 가득 차더라도 응용 프로그램 I/O를 차단하지 않는 이점이 있지만 피어 노드가 원본에 비해 훨씬 더 뒤쳐 질 수 있다는 단점이 있습니다. 그리고 재 동기화하는 동안은 피어 노드가 Inconsistent 상태입니다. 사용 가능한 혼잡 정책은 blocking(기본값), disconnect, pull-ahead 입니다. congestion-fill 매개 변수는이 연결에서 복제 중인 데이터가 허용되는 양을 정의합니다. 기본값은 0(혼잡 제어 메커니즘을 사용하지 않도록 설정합니다)이며 최대 1TB입니다. congestion-extents 매개 변수는 Ahead/Behind 모드로 전환하기 전에 활성화 될 수있는 비트 맵 범위의 수를 정의합니다. congestion-extents 매개 변수는 al-extents 보다 작은 값으로 설정 한 경우에만 유효합니다.
--ping-int interval
피어에 대한 TCP/IP 연결이 1 초 이상 유휴 상태 인 경우 bsr은 ping 패킷을 보내 실패한 피어 또는 네트워크 연결이 빨리 감지 되도록 합니다. 기본값은 3초이며 최소 1과 최대 120 초입니다. 단위는 초입니다.
--ping-timeout timeout
ping 패킷에 대한 회신 시간 초과를 정의합니다. 피어가 ping 시간 초과 내에 응답하지 않으면 bsr이 연결을 닫고 다시 연결하려고 시도합니다. 기본값은 3초이며 최소 0.1 초와 최대 3 초입니다. 단위는 10분의 1초입니다.
--protocol name
복제 연결에 지정된 프로토콜을 정의합니다. 지원되는 프로토콜은 다음과 같습니다.
A 로컬 디스크 및 TCP/IP 전송 버퍼에 복사한 즉시 로컬 I/O 를 완료합니다.
B 로컬 디스크에 기록하고 피어에서 복제 데이터를 수신하는 즉시 ACK 를 반환합니다. 로컬에서 ACK 를 수신하면 I/O 를 완료 합니다.
C 로컬 디스크에 기록하고 피어에서 복제 데이터를 디스크에 기록한 후 쓰기 ACK 를 반환합니다. 로컬에서 쓰기 ACK 를 수신하면 I/O 를 완료합니다.
--rcvbuf-size size
TCP/IP 수신 버퍼의 크기를 구성합니다. 값이 0(기본값)이면 버퍼 크기가 동적으로 조정됩니다. 이 매개 변수는 일반적으로 설정하지 않아도 되지만 최대 10MiB의 값으로 설정할 수 있습니다. 기본 단위는 바이트이며 윈도우즈에선 지원하지 않습니다.
--sndbuf-size size
송신 작업자 쓰레드에서 할당하는 TX 버퍼의 크기를 설정합니다. 최대 1TB 까지 설정할 수 있습니다.
--tcp-cork
기본적으로 bsr은 tcp-cork 옵션을 사용하여 커널이 작은 메시지를 작게 보내지 못하게 않도록 억제 합니다. 이로 인해 네트워크 상에서 패킷의 상의 패킷 크기가 커집니다. 이 최적화로 일부 네트워크 스택의 성능이 저하 될 수 있으며 패킷을 모으는 시간 동안의 지연이 발생합니다. tcp-cork 매개 변수를 사용하여 이 최적화를 해제 할 수 있습니다.
--timeout time
네트워크를 통한 응답 시간 초과를 정의합니다. 피어 노드가 지정된 시간 초과 내에 예상 응답을 보내지 않으면 응답이없는 것으로 간주하고 TCP/IP 연결을 닫습니다. 시간 초과 값은 connect-int보다 낮아야 하고 ping-int보다 작아야 합니다. 기본값은 5초이고 10분의 1초로 단위로 지정됩니다.
--use-rle
use-rle 는 run length encoding 을 사용해야 하는지 결정합니다. 클러스터 노드의 각 복제 된 장치에는 각 피어 장치에 대한 별도의 비트 맵이 있습니다. 비트 맵은 로컬 장치와 피어 장치의 차이점을 추적하는 데 사용됩니다. 클러스터 상태에 따라 장치의 비트 맵, 피어 장치의 비트 맵 또는 두 비트 맵에서 디스크 범위가 피어와 다른 것으로 표시 될 수 있습니다. 두 클러스터 노드가 연결되면 서로의 비트 맵을 교환하고 각각 로컬 및 피어 비트 맵의 합집합을 계산하여 전체 차이를 결정합니다. 매우 큰 장치의 경우 비트맵이 비교적 크기 때문에 일반적으로 run length encoding을 사용하여 압축률을 높이고 이를 통해 비트 맵 전송에 필요한 시간과 대역폭을 절약 할 수 있습니다. 기본적으로 활성화 되어 있습니다.
--verify-alg hash-algorithm
온라인 검증 (bsradm verify)은 디스크 블록 (즉, 해시 값)의 체크섬을 계산하고 비교하여 서로 다른지를 감지합니다. verify-alg 매개 변수는 이러한 체크섬에 사용할 알고리즘을 결정합니다. 온라인 검증을 사용하기 전에 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정해야합니다. /proc/ crypto에 나열된 shash 알고리즘을 참조하십시오. 운영 부하가 적은 시점에 정기적으로(예 : 한 달에 한 번) 온라인 확인을 예약하는 것이 좋습니다.
...
모든 볼륨, 연결 및 리소스 자체를 제거하여 리소스를 중지합니다.
bsrsetup dstate minor
Show the current disk state of a lower-level device하위 장치의 현재 디스크 상태를 표시합니다.
bsrsetup events2 {resource | all}
Show the current state of all configured bsr objects, followed by all changes to the state. The output format is meant to be human as well as machine readable. The line starts with a word that indicates the kind of event: exists for an existing object; create, destroy, and change if an object is created, destroyed, or changed; or call or response if an event handler is called or it returns. The second word indicates the object the event applies to: resource, device, connection, peer-device, helper, or a dash (-) to indicate that the current state has been dumped completely. The remaining words identify the object and describe the state that he object is in. Available options:
--now Terminate after reporting the current state. The default is to continuously listen and report state changes.
--statistics Include statistics in the output.
bsrsetup get-gi resource peer_node_id volume
Show the data generation identifiers for a device on a particular connection. The device is identified by its volume number. The connection is identified by its endpoints; see the bsrsetup connect command. The output consists of the current UUID, bitmap UUID, and the first two history UUIDS, folowed by a set of flags. The current UUID and history UUIDs are device specific; the bitmap UUID and flags are peer device specific. This command only shows the first two history UUIDs. Internally, bsr maintains one history UUID for each possible peer device.
bsrsetup invalidate minor
Replace the local data of a device with that of a peer. All the local data will be marked out-of-sync, and a resync with the specified peer device will be initialted구성된 모든 BSR 개체의 현재 상태와 상태의 모든 변경 사항을 표시합니다.
각 줄은 옵션 출력형식에 따라 표기하고 이벤트가 다음 줄에서 계속되면 별표가 표시됩니다. 각 줄은 이벤트의 종류(기존 개체가 있는 경우 존재, 개체가 생성, 삭제 또는 변경된 경우 생성, 삭제, 변경, 이벤트 핸들러가 호출되거나 반환된 경우 호출 또는 응답), 리소스, 장치, 연결, 피어-장치, 도우미 또는 현재 상태가 완전히 덤프 되었음을 나타내는 대시(-) 등 이벤트가 적용되는 개체를 나타냅니다. 다음의 사용 가능한 옵션이 있습니다.
--now 현재 상태를 보고 한 후 종료합니다. 기본값은 지속적으로 상태 변경을 보는 것입니다.
--statistics 상세한 정보를 출력합니다.
--timestamp (--t) 발생 시간을 출력 합니다.
--diff(-d) 상태 변경 시 이전 상태를 출력합니다.
--sync(-S) 동기화 이벤트를 출력합니다.
--json json 형식으로 출력합니다.
bsrsetup get-gi resource peer_node_id volume
특정 연결에서 장치의 데이터 생성 식별자를 표시합니다. 장치는 볼륨 번호로 식별되고 연결은 엔드 포인트로 식별됩니다. "bsrsetup connect"명령을 참조하십시오. 출력은 현재 UUID, 비트 맵 UUID 및 플래그 세트로 구성된 처음 두 개의 히스토리 UUIDS로 구성됩니다. 현재 UUID 및 히스토리 UUID는 장치마다 다릅니다. 비트 맵 UUID 및 플래그는 피어 장치마다 다릅니다. 이 명령은 처음 두 개의 히스토리 UUID 만 표시합니다. bsr은 내부적으로 가능한 각 피어 장치마다 하나의 히스토리 UUID를 유지합니다.
bsrsetup invalidate minor
장치의 로컬 데이터를 피어의 데이터로 동기화 합니다. 피어의 파일시스템에서 사용하는 모든 공간이 동기화되지 않은 것으로 표시되고 지정된 로컬 데이터로 재 동기화 합니다.
bsrsetup invalidate-remote resource peer_node_id volume
Replace a peer device's data of a resource with the local data. The peer device's data will be marked out-of-sync, and a resync from the local node to the specified peer will be initiated.
bsrsetup new-피어의 데이터를 로컬 데이터로 동기화 합니다. 로컬의 파일시스템에서 사용하는 모든 공간이 동기화되지 않은 것으로 표시되고 지정된 피어 데이터로 재 동기화 합니다.
bsrsetup new-current-uuid minorGenerate a new current UUID and rotates all other UUID values. This has at least two use cases, namely to skip the initial sync, and to reduce network bandwidth when starting in a single node configuration and then later (re-)integrating a remote site. Available option:
새로운 현재 UUID를 생성하고 다른 모든 UUID 값을 회전시킵니다. 사용 가능한 옵션은 다음과 같습니다.
--clear-bitmap
...
새로운 현재 UUID를 생성하고 동기화 비트맵을 지웁니다. 비트맵 GI를 제거하여 초기 동기화를 건너뛰는 데 사용할 수 있습니다. 이 방식은 이제 막 생성된 메타 데이터에서 만 작동합니다.
bsrsetup new-minor resource minor volume
Create a new replicated device within a resource. The command creates a block device inode for the replicated device (by default, /dev/bsr minor). The volume number identifies the device within the resource리소스 내에 새로운 복제 장치를 만듭니다. 이 명령은 복제 장치(기본적으로 /dev/bsr minor)에 대한 블록 장치 inode를 만듭니다. 볼륨 번호는 리소스 내의 장치를 식별합니다.
bsrsetup new-resource resource node_id,
bsrsetup resource-options resource
The new-resource command creates a new resource. The resource-options command changes the resource options of an existing resource. Available options:명령은 새로운 리소스를 만듭니다. resource-options 명령은 생성된 리소스의 리소스 옵션을 변경합니다. 사용 가능한 옵션은 다음과 같습니다.
--auto-promote bool-value A resource must be promoted to primary role before any of its devices can be mounted or opened for writing. Before bsr 9, this could only be done explicitly ("bsradm primary"). Since bsr 9, the auto-promote parameter allows to automatically promote a resource to primary role when one of its devices is mounted or opened for writing. As soon as all devices are unmounted or closed with no more remaining users, the role of the resource changes back to secondary. Automatic promotion only succeeds if the cluster state allows it (that is, if an explicit bsradm primary command would succeed). Otherwise, mounting or opening the device fails as it already did before bsr 9: the mount(2) system call fails with errno set to EROFS (Read-only file system); the open(2) system call fails with errno set to EMEDIUMTYPE (wrong medium type). Irrespective of the auto-promote parameter, if a device is promoted explicitly ( bsradm primary), it also needs to be demoted explicitly (bsradm secondary). The auto-promote parameter is available since bsr 9.0.0, and defaults to yes.
--cpu-mask cpu-mask Set the cpu affinity mask for bsr kernel threads. The cpu mask is specified as a hexadecimal number. The default value is 0, which lets the scheduler decide which kernel threads run on which CPUs. CPU numbers in cpu-mask which do not exist in the system are ignored.
--on-no-data-accessible policy Determine how to deal with I/O requests when the requested data is not available locally or remotely (for example, when all disks have failed). The defined policies are:
io-error System calls fail with errno set to EIO.
suspend-io The resource suspends I/O. I/O can be resumed by (re)attaching the lower-level device, by connecting to a peer which has access to the data, or by forcing bsr to resume I/O with bsradm resume-io res. When no data is available, forcing I/O to resume will result in the same behavior as the io-error policy. This setting is available since bsr 8.3.9; the default policy is io-error.
--peer-ack-window value On each node and for each device, bsr maintains a bitmap of the differences between the local and remote data for each peer device. For example, in a three-node setup (nodes A, B, C) each with a single device, every node maintains one bitmap for each of its peers. When nodes receive write requests, they know how to update the bitmaps for the writing node, but not how to update the bitmaps between themselves. In this example, when a write request propagates from node A to B and C, nodes B and C know that they have the same data as node A, but not whether or not they both have the same data. As a remedy, the writing node occasionally sends peer-ack packets to its peers which tell them which state they are in relative to each other. The peer-ack-window parameter specifies how much data a primary node may send before sending a peer-ack packet. A low value causes increased network traffic; a high value causes less network traffic but higher memory consumption on secondary nodes and higher resync times between the secondary nodes after primary node failures. (Note: peer-ack packets may be sent due to other reasons as well, e.g. membership changes or expiry of the peer-ack-delay timer.) The default value for peer-ack-window is 2 MiB, the default unit is sectors. This option is available since 9.0.0.
--peer-ack-delay expiry-time If after the last finished write request no new write request gets issued for expiry-time, then a peer-ack packet is sent. If a new write request is issued before the timer expires, the timer gets reset to expiry-time. (Note: peer-ack packets may be sent due to other reasons as well, e.g. membership changes or the peer-ack-window option.) This parameter may influence resync behavior on remote nodes. Peer nodes need to wait until they receive an peer-ack for releasing a lock on an AL-extent. Resync operations between peers may need to wait for for these locks. The default value for peer-ack-delay is 100 milliseconds, the default unit is milliseconds. This option is available since 9.0.0.
bsrsetup outdate minor
Mark the data on a lower-level device as outdated. This is used for fencing, and prevents the resource the device is part of from becoming primary in the future. See the --fencing disk option.
bsrsetup pause-sync resource peer_node_id volume
Stop resynchronizing between a local and a peer device by setting the local pause flag. The resync can only resume if the pause flags on both sides of a connection are cleared.
bsrsetup primary resource
Change the role of a node in a resource to primary. This allows the replicated devices in this resource to be mounted or opened for writing. Available options:
--overwrite-data-of-peer This option is an alias for the --force option.
--force Force the resource to become primary even if some devices are not guaranteed to have up-to-date data. This option is used to turn one of the nodes in a newly created cluster into the primary node, or when manually recovering from a disaster. Note that this can lead to split-brain scenarios. Also, when forcefully turning an inconsistent device into an up-to-date device, it is highly recommended to use any integrity checks available (such as a filesystem check) to make sure that the device can at least be used without crashing the system. Note that bsr usually only allows one node in a cluster to be in primary role at any time; this allows bsr to coordinate access to the devices in a resource across nodes. The --allow-two-primaries network option changes this; in that case, a mechanism outside of bsr needs to coordinate device access.
bsrsetup resize minor
Reexamine the size of the lower-level devices of a replicated device on all nodes. This command is called after the lower-level devices on all nodes have been grown to adjust the size of the replicated device. Available options:
--assume-peer-has-space Resize the device even if some of the peer devices are not connected at the moment. bsr will try to resize the peer devices when they next connect. It will refuse to connect to a peer device which is too small.--assume-cleanDo not resynchronize the added disk space; instead, assume that it is identical on all nodes. This option can be used when the disk space is uninitialized and differences do not matter, or when it is known to be identical on all nodes. See the bsrsetup verify command.
--size val This option can be used to online shrink the usable size of a bsr device. It's the users responsibility to make sure that a file system on the device is not truncated by that operation.
--al-stripes val These options may be used to change the layout of the activity log online. In case of internal meta data this may invovle shrinking the user visible size at the same time (unsing the --size) or increasing the avalable space on the backing devices.
bsrsetup resume-io minor
Resume I/O on a replicated device. See the --fencing net option.
bsrsetup resume-sync resource peer_node_id volume
Allow resynchronization to resume by clearing the local sync pause flag.
bsrsetup role resource
Show the current role of a resource.
bsrsetup secondary resource
Change the role of a node in a resource to secondary. This command fails if the replicated device is in use.
bsrsetup show {resource | all}
Show the current configuration of a resource, or of all resources. Available options:
--show-defaults Show all configuration parameters, even the ones with default values. Normally, parameters with default values are not shown.
bsrsetup show-gi resource peer_node_id volume
Show the data generation identifiers for a device on a particular connection. In addition, explain the output. The output otherwise is the same as in the bsrsetup get-gi command.
bsrsetup state
This is an alias for bsrsetup role. Deprecated.
bsrsetup status {resource | all}
Show the status of a resource, or of all resources. The output consists of one paragraph for each configured resource. Each paragraph contains one line for each resource, followed by one line for each device, and one line for each connection. The device and connection lines are indented. The connection lines are followed by one line for each peer device; these lines are indented against the connection line. Long lines are wrapped around at terminal width, and indented to indicate how the lines belongs together. Available options:
--verbose Include more information in the output even when it is likely redundant or irrelevant.
--statistics Include data transfer statistics in the output.
--color={always | auto | never} Colorize the output. With --color=auto, bsrsetup emits color codes only when standard output is connected to a terminal.
For example, the non-verbose output for a resource with only one connection and only one volume could look like this:
Code Block |
---|
bsr0 role:Primary
disk:UpToDate
host2.example.com role:Secondary
disk:UpToDate |
With the --verbose option, the same resource could be reported as:
Code Block |
---|
bsr0 node-id:1 role:Primary suspended:no
volume:0 minor:1 disk:UpToDate blocked:no
host2.example.com local:ipv4:192.168.123.4:7788
peer:ipv4:192.168.123.2:7788 node-id:0 connection:WFReportParams
role:Secondary congested:no
volume:0 replication:Connected disk:UpToDate resync-suspended:no |
bsrsetup suspend-io minor
Suspend I/O on a replicated device. It is not usually necessary to use this command.
bsrsetup verify resource peer_node_id volume
Start online verification, change which part of the device will be verified, or stop online verification. The command requires the specified peer to be connected. Online verification compares each disk block on the local and peer node. Blocks which differ between the nodes are marked as out-of-sync, but they are not automatically brought back into sync. To bring them into sync, the resource must be disconnected and reconnected. Progress can be monitored in the output of bsrsetup status --statistics. Available options:
--start position Define where online verification should start. This parameter is ignored if online verification is already in progress. If the start parameter is not specified, online verification will continue where it was interrupted (if the connection to the peer was lost while verifying), after the previous stop sector (if the previous online verification has finished), or at the beginning of the device (if the end of the device was reached, or online verify has not run before). The position on disk is specified in disk sectors (512 bytes) by default.
--stop position Define where online verification should stop. If online verification is already in progress, the stop position of the active online verification process is changed. Use this to stop online verification. The position on disk is specified in disk sectors (512 bytes) by default. Also see the notes on data integrity in the bsr.conf(5) manual page.
bsrsetup wait-connect-volume resource peer_node_id volume,
bsrsetup wait-connect-connection resource peer_node_id,
bsrsetup wait-connect-resource resource,
bsrsetup wait-sync-volume resource peer_node_id volume,
bsrsetup wait-sync-connection resource peer_node_id,
bsrsetup wait-sync-resource resource
The wait-connect-* commands waits until a device on a peer is visible. The wait-sync-* commands waits until a device on a peer is up to date. Available options for both commands:
--degr-wfc-timeout timeout Define how long to wait until all peers are connected in case the cluster consisted of a single node only when the system went down. This parameter is usually set to a value smaller than wfc-timeout. The assumption here is that peers which were unreachable before a reboot are less likely to be reachable after the reboot, so waiting is less likely to help. The timeout is specified in seconds. The default value is 0, which stands for an infinite timeout. Also see the wfc-timeout parameter.
--outdated-wfc-timeout timeout Define how long to wait until all peers are connected if all peers were outdated when the system went down. This parameter is usually set to a value smaller than wfc-timeout. The assumption here is that an outdated peer cannot have become primary in the meantime, so we don't need to wait for it as long as for a node which was alive before. The timeout is specified in seconds. The default value is 0, which stands for an infinite timeout. Also see the wfc-timeout parameter.
--wait-after-sb This parameter causes bsr to continue waiting in the init script even when a split-brain situation has been detected, and the nodes therefore refuse to connect to each other.
--wfc-timeout timeout Define how long the init script waits until all peers are connected. This can be useful in combination with a cluster manager which cannot manage bsr resources: when the cluster manager starts, the bsr resources will already be up and running. With a more capable cluster manager such as Pacemaker, it makes more sense to let the cluster manager control bsr resources. The timeout is specified in seconds. The default value is 0, which stands for an infinite timeout. Also see the degr-wfc-timeout parameter.
bsrsetup forget-peer resource peer_node_id
The forget-peer command removes all traces of a peer node from the meta-data. It frees a bitmap slot in the meta-data and make it avalable for futher bitmap slot allocation in case a so-far never seen node connects. The connection must be taken down before this command may be used. In case the peer re-connects at a later point a bit-map based resync will be turned into a full-sync.
bsrmeta
bsrmeta [--force] [--ignore-sanity-checks] { device} {v06 minor | v07 meta_dev index | v08 meta_dev index | v09 meta_dev index} { command} [cmd args...]
DESCRIPTION
The bsrmeta utility is used for creating, displaying, and modifying bsr's on-disk metadata. Users usually interact with the bsradm utility, which provides a more high-level interface to bsr than bsrmeta. (See bsradm's --dry-run option to see how bsradm uses bsrmeta.)This utility can only be used on devices which are not currently in use by the kernel.The first argument ( device) specifies the bsr device associated with a volume, or “-” if no device is associated with that volume. If the bsr device is specified, the bsrmeta utility makes sure that the bsr device does not currently have a volume attached to prevent meta-data of an active volume from being destroyed.The second argument specifies the metadata version to use (v06, v07, v08, v09). In most metadata versions, the third argument ( meta_dev) specifies the device which contains the metadata; this argument can be the same as device. The fourth argument ( index) can be one of the keywords internal (for internal metadata), flex-internal (in v07 for variable-sized metadata; v07 otherwise defaults to fixed-size internal metadata), flex-external (for variable-sized external metadata), or a numeric matadata index (for fixed-size external metadata). See the meta-disk parameter in bsr.conf(5).
OPTIONS
--force
Assume yes as the answer to all questions bsrmeta would ask.
--ignore-sanity-checks
Normally, bsrmeta performs some sanity checks before writing to the metadata device: for example, if the device appears to contain a file system, it refuses to destroy the file system by writing into it. Use this option to ignore these checks.
COMMANDS
create-md [--peer-max-bio-size=val] (metadata versions v06, v07, and v08),
create-md {number-of-bitmap-slots} [--peer-max-bio-size=val] [ --al-stripes=val] [--al-stripe-size-kB= val] (metadata version v09)
Initialize the metadata. This is necessary before a bsr resource can be attached. If bsrmeta finds an older version of bsr metadata on the device, it asks if the format should be converted. When bsradm calls bsrmeta's create-md command for a device, it sets the number-of-bitmap-slots argument to the number of peers in the resource. To reserve additional bitmap slots (which allows to add more peers in the future), call bsrmeta directly instead. When a device is used before being connected to its peers the first time, bsr assumes that peers can only handle 4 KiB requests by default. The --peer-max-bio-size option allows to set more optimistic values; use this if the versions of bsr that this device will connect to are known. bsr supports a maximum bio size of 32 KiB since version 8.3.8, of 128 KiB since version 8.3.9, and of 1 MiB since version 8.4.0. If you want to use more than 6433 activity log extents, or live on top of a spriped RAID, you may specify the number of stripes ( --al-stripes, default 1), and the stripe size ( --al-stripe-size-kB, default 32). To just use a larger linear on-disk ring-buffer, leave the number of stripes at 1, and increase the size only:
bsrmeta 0 v08 /dev/vg23/lv42 internal create-md --al-stripe-size 1M To avoid a single "spindle" from becoming a bottleneck, increase the number of stripes, to achieve an interleaved layout of the on-disk activity-log transactions. What you give as "stripe-size" should be what is a.k.a. "chunk size" or "granularity" or "strip unit": the minimum skip to the next "spindle".
bsrmeta 0 v08 /dev/vg23/lv42 internal create-md --al-stripes 7 --al-stripe-size 64
get-gi [--node-id=id]
Show the data generation identifiers for a device on a particular connection. bsr version 9.0.0 and beyond support multiple peers; use the node-id option to define which peer's data generation identifiers to show.
show-gi [--node-id=id]
Similar to get-gi, but with explanatory information.
dump-md
Dump the metadata of a device in text form, including the bitmap and activity log.
outdate
Mark the data on a lower-level device as outdated. See bsrsetup(8) for details.
dstate
Show the current disk state of a lower-level device.
check-resize
Examine the device size of a lower-level device and its last known device size (saved in /var/lib/bsr/bsr-minor-minor.lkbd by bsrsetup check-resize). For internal metadata, if the size of the lower-level device has changed and the metadata can be found at the previous position, move the metadata to the new position at the end of the block device.
apply-al
Apply the activity log of the specified device. This is necessary before the device can be attached by the kernel again.
EXPERT COMMANDS
The bsrmeta utility can be used to fine tune metdata. Please note that this can lead to destroyed metadata or even silent data corruption; use with great care only.
set-gi gi [--node-id=id]
Set the generation identifiers. The gi argument is a generation counter for the v06 and v07 formats, and a set of UUIDs for v08 and beyond. Accepts the same syntax as in the get-gi output. bsr version 9.0.0 and beyond support multiple peers; use the --node-id option to define which peer's data generation identifiers to set.
restore-md dump_file
Replace the metadata on the device with the contents of dump_file. The dump file format is defined by the output of the dump-md command.
bsrcon
bsrcon command {argument...}
DESCRIPTION
COMMANDS
/nodelayedack [ip|guid]
...
bsr 에선 지원하지 않습니다.
--cpu-mask cpu-mask
bsr 에선 지원하지 않습니다.
--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 밀리 초이며 기본 단위는 밀리 초입니다.
bsrsetup outdate minor
하위 장치의 데이터를 outdated 로 표시합니다. 펜싱에 사용되며 향후 장치가 Primary 리소스가 되는 것을 방지합니다.
bsrsetup pause-sync resource peer_node_id volume
로컬 일시 정지 플래그를 설정하여 로컬 장치와 피어 장치 간의 재 동기화를 중지 합니다. 재 동기화는 연결의 양쪽에있는 일시 정지 플래그가 지워진 경우에만 재개 할 수 있습니다.
bsrsetup primary resource
리소스에서 노드의 역할을 primary로 변경합니다. 이를 통해 이 리소스의 복제 장치를 쓰기 위해 마운트하거나 열 수 있습니다. 사용 가능한 옵션:
--overwrite-data-of-peer 이 옵션은 --force option의 alias 입니다.
--force 장치에 최신 데이터가 있다고 보장되지 않더라도 리소스를 Primary 리소스로 설정합니다. 이 옵션은 새로 작성된 클러스터의 노드 중 하나를 Primary 노드로 바꾸거나 재해에서 수동으로 복구 할 때 사용됩니다. 이는 스플릿 브레인 시나리오로 이어질 수 있습니다. 또한 Inconsistent한 장치를 최신 장치로 강제 승격 할 때는 최소한 무결성 검사(예: 파일 시스템 검사)를 미리 하는 것이 좋습니다. bsr은 일반적으로 클러스터에서 하나의 노드 만 Primary 역할을 수행 할 수 있도록 합니다. 이를 통해 bsr은 노드의 자원에서 장치에 대한 액세스를 제한할 수 있습니다.
bsrsetup resize minor
모든 노드에서 복제 된 장치의 하위 장치 크기를 다시 조정합니다. 이 명령은 모든 노드의 하위 수준 장치가 커져서 복제 된 장치의 크기를 조정 한 후에 호출합니다. 사용 가능한 옵션은 다음과 같습니다.
--assume-peer-has-space
현재 피어 장치 중 일부가 연결되지 않은 경우에도 장치 크기를 조정합니다. bsr은 다음에 연결할 때 피어 장치의 크기를 조정하려고합니다. 너무 작은 피어 장치에 대한 연결은 거부합니다 .
--size val
이 옵션을 사용하면 bsr 장치의 사용 가능한 크기를 온라인으로 줄일 수 있습니다. 해당 작업으로 인해 장치의 파일 시스템이 잘리지 않도록하는 것은 사용자의 책임입니다.
--al-stripes val
이 옵션은 activity log의 온라인 레이아웃을 변경하는 데 사용될 수 있습니다. 내부 메타 데이터의 경우 사용자가 볼 수있는 크기를 동시에 줄이거나(크기를 조절하지 않음) 백업 장치의 사용 가능한 공간을 늘릴 수 있습니다.
bsrsetup resume-io minor
복제 장치에서 I/O를 재개 합니다.
bsrsetup resume-sync resource peer_node_id volume
로컬 동기화 일시 정지 플래그를 지워서 재 동기화가 재개 되도록 합니다.
bsrsetup role resource
리소스의 현재 역할을 보여줍니다.
bsrsetup secondary resource
리소스에서 노드의 역할을 secondary로 변경합니다. 리눅스의 경우 복제장치가 사용 중이면 명령이 실패합니다. 윈도우즈에선 사용 여부에 관계 없이 Secodary 로 강등합니다.
bsrsetup show {resource | all}
리소스 또는 모든 자원의 현재 구성 설정을 표시합니다. 사용 가능한 옵션은 다음과 같습니다.
--show-defaults 모든 구성 매개 변수 및 기본값이있는 구성 매개 변수를 표시합니다. 일반적으로 기본값을 가진 매개 변수는 표시되지 않습니다.
bsrsetup show-gi resource peer_node_id volume
특정 연결에서 장치의 데이터 생성 식별자를 표시하고 출력을 설명합니다. 설명만 빼면 "bsrsetup get-gi"명령과 동일합니다.
bsrsetup state
bsrsetup role의 alias입니다. 더 이상 사용되지 않습니다.
bsrsetup status {resource | all}
리소스 또는 모든 리소스의 상태를 표시합니다. 출력은 구성된 각 자원에 대해 하나의 단락으로 구성됩니다. 각 단락에는 각 리소스에 대해 한 줄, 각 장치에 대해 한 줄, 각 연결에 대해 한 줄이 있습니다. 장치 및 연결 라인이 들여 쓰기 됩니다. 연결 라인 다음에는 각 피어 장치 마다 한 개의 라인이 있습니다. 이 라인들은 연결 라인에 들여 쓰기 됩니다. 긴 라인은 터미널 너비로 wrapping 되어 있으며 라인이 어떻게 결합되어 있는지 표시하기 위해 들여 쓰기 됩니다. 사용 가능한 옵션은 다음과 같습니다.
--verbose 출력에 추가 정보를 포함합니다.(중복되거나 관련이 없는 경우에도)
--statistics 통계 정보를 포함하여 출력합니다.
--color={always | auto | never} 출력물에 색상을 표시합니다. --color = auto를 사용하면 bsrsetup은 표준 출력이 터미널에 연결된 경우에만 색상을 표시합니다.
bsrsetup suspend-io minor
복제 장치에서 I/O를 일시 중단하는 명령으로 bsr 에선 이 명령을 지원하지 않습니다.
bsrsetup verify resource peer_node_id volume
온라인 정합성 검사를 시작하거나 장치의 특정 부분을 확인할 경우 변경하거나 검사를 중지 합니다. 명령은 지정된 피어가 연결되어 있어야 합니다. 온라인 검사는 로컬 및 피어 노드의 각 디스크 블록을 비교합니다. 노드 간에 다른 블록은 OOS로 기록되지만 자동으로 다시 동기화되지는 않습니다. 동기화 하려면 리소스의 연결을 끊었다가 다시 연결해야합니다. bbsrsetup status --statistics의 출력에서 진행 상황을 모니터링 할 수 있습니다. 사용 가능한 옵션:
--start position
온라인 검사를 시작할 위치를 정의하십시오. 온라인 검사가 이미 진행중인 경우 이 매개 변수는 무시됩니다. 시작 매개 변수가 지정되지 않은 경우 온라인 검사는 이전에 중단 됐었다면 중단 된 위치 이후로 시작되고, 시작된 적이 없었다면 처음부터 시작합니다. 디스크의 위치는 기본적으로 디스크 섹터 (512 바이트)로 지정됩니다.
--stop position
온라인 검사를 중지 할 위치를 정의합니다. 온라인 확인이 이미 진행중인 경우 활성 온라인 확인 프로세스의 중지 위치가 변경됩니다. 온라인 검사를 중지하려면 이 옵션을 사용하십시오. 디스크의 위치는 기본적으로 디스크 섹터 (512 바이트)로 지정됩니다.
bsrsetup wait-connect-volume resource peer_node_id volume,
bsrsetup wait-connect-connection resource peer_node_id,
bsrsetup wait-connect-resource resource,
bsrsetup wait-sync-volume resource peer_node_id volume,
bsrsetup wait-sync-connection resource peer_node_id,
bsrsetup wait-sync-resource resource
wait-connect-* 명령은 피어의 장치가 나타날 때까지 기다립니다. wait-sync-* 명령은 피어의 장치가 최신 상태가 될 때까지 기다립니다. bsr 에선 잘 사용하지 않는 명령으로 사용을 권장하지 않습니다.
bsrsetup forget-peer resource peer_node_id
forget-peer 명령은 메타 데이터에서 피어 노드의 모든 흔적을 제거합니다. 메타 데이터에서 비트맵 슬롯을 비우고 지금까지 본 적이 없는 노드가 연결될 경우 추가 비트맵 슬롯 할당에 사용할 수 있습니다. 이 명령을 사용하려면 연결을 해제해야 합니다. 피어가 나중에 다시 연결하는 경우 비트맵 기반 재 동기화가 전체 동기화로 바뀝니다.
bsrmeta
bsrmeta [--force] [--ignore-sanity-checks] { device} {v06 minor | v07 meta_dev index | v08 meta_dev index | v09 meta_dev index} { command} [cmd args...]
DESCRIPTION
bsrmeta 유틸리티는 bsr의 온 디스크 메타 데이터를 생성, 표시 및 수정하는 데 사용됩니다. 사용자는 일반적으로 bsrarm보다 bsr에 더 높은 수준의 인터페이스를 제공하는 bsradm 유틸리티와 상호 작용합니다. (bsradm의 사용 방법은 bsramm의 dry-run 옵션을 참조하십시오.)이 유틸리티는 현재 커널에서 사용하지 않는 장치에서만 사용할 수 있습니다. 첫 번째 인수 (device)는 볼륨과 연결된 bsr 장치를 지정하거나 해당 볼륨과 연결된 장치가없는 경우 "-"를 지정합니다. bsr 장치가 지정된 경우 bsr 유틸리티는 bsr 장치에 현재 활성 볼륨의 메타 데이터가 손상되는 것을 방지하기 위해 먼저 연결된 볼륨이 있는지 확인합니다.두 번째 인수는 사용할 메타 데이터 버전 (v06, v07, v08, v09)을 지정합니다. 대부분의 메타 데이터 버전에서 세 번째 인수 (meta_dev)는 메타 데이터가 포함 된 장치를 지정합니다. 이 인수는 장치와 동일 할 수 있습니다. 네 번째 인수 (index)는 키워드 internal(내부 메타 데이터의 경우), flex-internal variable (가변 크기의 메타 데이터의 경우 v07, v07은 기본적으로 고정 크기의 내부 메타 데이터), flex-external (가변 크기의 경우) 중 하나 일 수 있습니다. 외부 메타 데이터 또는 숫자 matadata 인덱스(고정 크기 외부 메타 데이터의 경우) bsr.conf의 메타 디스크 매개 변수를 참조하십시오.
OPTIONS
--force
bsrmeta가 요청할 모든 질문에 대한 대답으로 yes로 가정하고 수행합니다.
--ignore-sanity-checks
일반적으로 bsrmeta는 메타 데이터 장치에 쓰기 전에 일부 결함 검사를 수행합니다. 예를 들어, 장치에 파일 시스템이 포함되어있는 경우 파일 시스템이 손상되지 않도록 보호하기 위해 메타 쓰기를 거부합니다. 이 결함 검사를 무시하려면 이 옵션을 사용하십시오.
COMMANDS
create-md [--peer-max-bio-size=val] (metadata versions v06, v07, and v08),
create-md {number-of-bitmap-slots} [--peer-max-bio-size=val] [ --al-stripes=val] [--al-stripe-size-kB= val] (metadata version v09)
메타 데이터를 초기화합니다. 이것은 bsr 리소스를 attach하기 전에 필요합니다. bsrmeta가 장치에서 이전 버전의 bsr 메타 데이터를 찾으면 형식을 변환해야하는지 묻습니다. bsradm은 장치에 대한 bsrmeta의 create-md 명령을 호출 할 때 비트맵 슬롯 수 인수를 리소스의 피어 수로 설정합니다. 추가 비트맵 슬롯을 예약하려면 (향후에 더 많은 피어를 추가 할 수 있도록) 대신 bbsrmeta를 호출하십시오. 피어에 처음 연결되기 전에 장치를 사용하는 경우 bsr은 피어가 기본적으로 4KiB 요청만 처리 할 수 있다고 가정합니다. "peer-max-bio-size"옵션을 사용하면 보다 낙관적인 값을 설정할 수 있습니다. 이 장치가 연결될 bsr 버전이 알려진 경우 이를 사용하십시오. 6433개 이상의 activity log 범위를 사용하거나 stripe RAID 위에 구성하고 싶다면 스트라이프 수 (--al-stripes, 기본값 1) 및 스트라이프 크기 (--al-stripe- size-kB, 기본값 32)를 지정해야 합니다. 더 큰 선형 온 디스크 링 버퍼를 사용하려면 스트라이프 수를 1로 유지하고 크기 만 늘리십시오.
get-gi [--node-id=id]
특정 연결에서 장치의 데이터 생성 식별자를 표시합니다. bsr 에선 여러개의 피어를 지원합니다. node-id 옵션을 사용하여 표시할 피어의 데이터 생성 식별자를 정의하십시오.
show-gi [--node-id=id]
get-gi와 유사하지만 설명 정보가 있습니다.
dump-md
비트맵 및 activity log를 포함하여 장치의 메타 데이터를 텍스트 형식으로 덤프합니다.
outdate
하위 장치의 데이터를 outdated 로 표시 합니다.
dstate
하위 장치의 현재 디스크 상태를 표시 합니다.
check-resize
하위 장치의 장치 크기와 마지막으로 알려진 장치 크기를 확인합니다((/var/lib/bsr/bsr-minor-minor.lkbd by bsrsetup check-resize로 저장). 내부 메타 데이터의 경우 하위 수준 장치의 크기가 변경되고 이전 위치에서 메타 데이터를 찾을 수있는 경우 블록 장치 끝에서 새 위치로 메타 데이터를 이동하십시오.
apply-al
지정된 장치의 activity log를 적용합니다. 커널에 의해 장치가 다시 attach 되기 전에 필요합니다.
EXPERT COMMANDS
bsrmeta 유틸리티는 메타 데이터를 미세하게 조정하는 데 사용될 수 있습니다. 이로 인해 메타 데이터가 손상되거나 데이터가 자동으로 손상 될 수 있습니다. 주의해서 사용 하십시오.
set-gi gi [--node-id=id]
생성 식별자를 설정합니다. bsr은 여러 피어를 지원하고 get-gi 출력에서와 동일한 구문으로 기술하여 설정합니다. --node-id 옵션을 사용하여 설정할 피어의 데이터 생성 식별자를 정의할 수 있습니다.
restore-md dump_file
장치의 메타 데이터를 dump_file의 내용으로 바꿉니다. 덤프 파일 형식은 dump-md 명령의 출력에 의해 정의됩니다.
bsrcon
bsrcon command {argument...}
DESCRIPTION
bsr 의 네트워크, 로그, 볼륨, 핸들러 등 과 관련한 설정을 합니다.
COMMANDS
/get_log_info
로그 정보를 출력합니다.
Code Block |
---|
# bsrcon /get_log_info
Current log level.
system-lv : err(3)
debug-lv : info(6)
The maximum size of cli log file is 5M.
Number of log files that can be saved.
bsradm : 2
bsrsetup : 2
bsrmeta : 2
The maximum size of driver log file is 48M or 100000 log count.
Number of log files that can be saved.
bsrdriver : 15
Output category during debug log.
category : VOLUME IO IO_ERROR BITMAP LRU REQUEST PEER_REQUEST RESYNC_OV REPLICATION CONNECTION UUID TWOPC THREAD SEND_BUFFER STATE SOCKET DRIVER NETLINK GENL PROTOCOL MEMORY LOG ETC
Logging status command to the CLI log : disable (0) |
/maxlogfile_cnt [LogFileMaxCount : 0 ~ 1000]
백업할 커널 로그파일의 최대 저장 개수를 지정합니다. 기본값은 15입니다.
/climaxlogfile_cnt [adm, setup, meta] [LogFileMaxCount : 0 ~ 255]
백업할 CLI 로그파일의 최대 저장 개수를 지정합니다. 기본값은 2 입니다.
/minlog_lv [sys, dbg] [Level : 0~7] level info, emerg(0) alert(1) criti(2) err(3) warning(4) notice(5) info(6) debug(7)
로그 수준을 지정합니다. 기본값은 시스템(이벤트) 로그는 err, 디버그 로그는 info 입니다.
/minlog_lv feature [flag : 0,1,2,4] level info, none(0) oos(1) latency(2) verify(4)
용도별 로그의 활성화를 지정합니다. 디버깅 용도입니다.
/set_log_path [log file path]
로그 저장 경로를 변경합니다.
/handler_use [0,1]
bsr 의 핸들러를 비활성화 하거나 활성화 합니다. 기본값은 비활성화 입니다.
/nodelayedack [ip|guid]
TCP/IP 의 지연된 ACK 동작을 비활성화 합니다. 윈도우즈 전용입니다.
bsr 설치 과정에서 현재 리소스의 복제 네트워크 어댑터에 대해 자동 수행되므로 구성 절차에서 배제되지만, 네트워크 어댑터가 교체되어 새로운 복제 인터페이스로 재구성 할 경우 이 명령어를 필수적으로 다시 수행해야 합니다.
/delayedack_enable [ip|guid]
TCP/IP 의 지연된 ACK 동작을 활성화 합니다. 윈도우즈 전용입니다.
/release_vol [letter]
윈도우즈 볼륨을 컨트롤하는 볼륨락을 완전히 해제하는 명령입니다. 리소스를 삭제하는 최종 단계에서 반드시 수행해야 하는 명령이며 윈도우즈 전용입니다.
이 명령을 수행할 경우 리소스를 반드시 재구성하고 전체 동기화를 다시 수행해야 합니다. bsr 1.7 이후 부터 해당 명령을 수행할 경우 메타디스크를 자동으로 wipe-md 처리 합니다.
/bsrlock_use
볼륨의 락을 임시로 활성화하거나 비활성화 할 수 있는 디버깅용도의 명령입니다. 윈도우즈 전용입니다.
/bsrlock_status
볼륨의 락 상태를 볼 수 있는 명령입니다. 윈도우즈 전용입니다.
/info
볼륨의 파티션, 마운트 포인트 등 관련 정보를 출력합니다. 윈도우즈 전용입니다.
/force_panic
강제 메모리 덤프를 수집합니다.