Versions Compared

Key

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

...

bsrsetup net-options resource peer_node_id

The new-peer 명령은 리소스 내에 연결을 만듭니다. 리소스는 command creates a connection within the resource. Resources must be created with bsrsetup new-resource로 생성되어야 합니다resource. The net-options 명령은 기존 연결의 네트워크 옵션을 변경합니다. connect 명령으로 연결을 활성화하기 전에 new-path 명령으로 하나 이상의 경로를 추가해야 합니다. 사용 가능한 옵션은 다음과 같습니다.command changes the network options of an existing connection. Before activating a connection with the connect command, you must add at least one path with the new-path command. The available options are:

  • --after-sb-0pri policy

    • 스플릿 브레인 시나리오가 감지되고 두 노드 중 어느 것도 Primary 역할을 수행하지 않는 경우 대응 방법을 정의합니다. 스플릿 브레인은 항상 두 노드 사이에서 결정되며 두 노드가 연결될 때 감지합니다. 정의 된 정책은 다음과 같습니다.

      disconnect 단순히 연결을 끊습니다

      Defines how to respond when a split brain scenario is detected and neither of the two nodes plays the Primary role. The split brain is always determined between two nodes and detects when two nodes are connected. The policies defined are:

      • disconnect Simply disconnect.

      • discard-younger-primary,

      • discard-older-primary 먼저 Primary 가 됬던 노드primary Discard the node that became primary lately(discard-younger-primary) 또는 마지막으로 Primary 가 됬던 노드or the node that became primary first(discard-older-primary)를 폐기합니다. 만일 두 노드가 독립적으로 Primary 가 됬었다면 . If both nodes have become Primary independently, the discard-least-changes 정책을 사용합니다policy is used.

      • discard-zero-changes 하나의노드에서만 데이터를 쓴 경우 이 노드를 기준으로 재 동기화 합니다. 두 노드가 모두 데이터를 쓴 경우 연결을 끊습니다If data is written on only one node, resynchronization is performed based on this node. If both nodes have written data, they disconnect.

      • discard-least-changes 많은 데이터를 쓴 노드를 기준으로 동기화 합니다Synchronize based on the node that wrote more data.

      • discard-node-nodename 명명된 노드를 항상 폐기합니다Always discard named nodes.

  • --after-sb-1pri policy

    • Primary 노드 1 개와 Secondary 노드 1 개로 스플릿 브레인이 감지되는 경우 대처 방법을 정의합니다. (두 노드가 연결될 때 스플릿 브레인 시나리오를 감지하므로 스플릿 브레인 결정은 항상 두 노드 중 하나입니다.) 정의 된 정책은 다음과 같습니다.

    • disconnect 단순히 연결을 끊습니다.

    • consensus 희생노드가 선택될 수 있다면 자동으로 해결합니다. 그렇지 않으면, disconnect처럼 동작합니다.

    • discard-secondary Secondary 의 노드를 폐기합니다

      Define what to do if a split brain is detected with one primary node and one secondary node. (The split brain decision is always one of the two nodes because it detects a split brain scenario when two nodes are connected.) The policies defined are:

      • disconnect Simply disconnect.

      • consensus If a victim node can be selected, it is automatically resolved. Otherwise, it works like disconnect.

      • discard-secondary Discard the secondary node.

  • --after-sb-2pri policy

    • 스플릿 브레인 시나리오가 감지되고 두 노드가 모두 Primary 역할을 하는 경우 대응 방법을 정의합니다. (두 노드가 연결될 때 스플릿 브레인 시나리오를 감지하므로 스플릿 브레인 결정은 항상 두 노드 중 하나 입니다.) 정의 된 정책은 다음과 같습니다. 2 primary 스플릿 브레인의 경우 disconnect 를 통한 수동 복구만 사용할 수 있습니다.

      disconnect 단순히 연결을 끊습니다

      Define how to react when a split brain scenario is detected and both nodes act as primary. (The split brain decision is always one of the two nodes because it detects a split brain scenario when two nodes are connected.) The policy defined is: 2 For primary split brain, only manual recovery via disconnect is available.

      • disconnect Simply disconnect.

  • --connect-int time

    • bsrsetup connect로 두 노드 간 연결이 구성되는 즉시 연결 설정을 시도합니다. 이것이 실패하면 bsr은 connect-int초 동안 기다렸다가 반복합니다. connect-int의 기본값은 3초입니다As soon as a connection between two nodes is configured with bsrsetup connect, the connection is attempted to be established. If this fails, bsr waits for connect-int seconds and repeats. The default value of connect-int is 3 seconds.

  • --csums-alg hash-algorithm

    • 일반적으로 두 노드가 다시 동기화되면 동기화 대상은 동기화 소스로부터 Typically, when two nodes are resynchronized, the synchronization target requests out-of-sync 데이터를 요청하고 동기화 소스는 데이터를 전송합니다.많은 사용 패턴에서 볼 때 상당수의 블록이 실제로 동일합니다. csums-alg 알고리즘이 지정되면 동기화되지 않은 데이터를 요청할 때 동기화 대상도 현재 보유한 데이터의 해시를 전송합니다. 동기화 소스는이 해시를 자기의 데이터와 비교합니다. 해시가 다르면 동기화 대상에 새 데이터를 보내고 해시가 같으면 데이터가 동일하다는 것을 알려줍니다. 이렇게 하면 필요한 네트워크 대역폭이 줄어들지만 CPU 사용률이 높아지고 SyncTarget의 읽기 I/O가 증가합니다 . csums-alg는 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정 될 수 있습니다. /proc/crypto에 나열된 shash 알고리즘을 참조하십시오. 기본적으로 csums-alg는 설정되어 있지 않습니다data from the synchronization source, and the synchronization source sends the data.

      In many usage patterns, many of the blocks are actually the same. When the --csums-alg algorithm is specified, when requesting unsynchronized data, the synchronization target also sends a hash of the data currently held. The synchronization source compares this hash to its own data. If the hashes are different, new data is sent to the synchronization target and if the hashes are the same, the data is the same. This reduces the required network bandwidth, but increases CPU utilization and increases SyncTarget's read I/O. csums-alg can be set to one of the secure hash algorithms supported by the kernel. See the shash algorithm listed in /proc/crypto. By default, csums-alg is not set.

  • --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 알고리즘을 참조하십시오. 운영 부하가 적은 시점에 정기적으로(예 : 한 달에 한 번) 온라인 확인을 예약하는 것이 좋습니다.

...