Versions Compared

Key

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

...

bsr은 일반적으로 TCP/IP 프로토콜에 내장 된 데이터 무결성 검사에 의존하지만, 데이터 무결성 알고리즘이 구성된 경우 이 알고리즘을 사용하여 네트워크를 통해 수신 된 데이터가 발신자가 보낸 것과 일치하는지 확인합니다. 데이터 무결성 오류가 감지되면 bsr은 네트워크 연결을 닫고 다시 연결하여 재 동기화를 트리거합니다. data-integrity-alg는 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정 될 수 있습니다. /proc/crypto에 나열된 shash 알고리즘을 참조하십시오. 기본적으로이 메커니즘은 해제되어 있습니다. 관련된 CPU 오버 헤드로 인해 운영 환경에서는 이 옵션을 사용하지 않는 것이 좋습니다. 아래의 데이터 무결성에 대한 참고 사항도 참조하십시오.

fencing fencing_policy

펜싱은 두 노드가 연결이 끊어져서 모두 Primary 가 되는 상황을 방지하기위한 예방 조치입니다. 이것은 스플릿 브레인 상황 이라고도 합니다. bsr은 다음과 같은 펜싱 정책을 지원합니다.

...

온라인 검증 (drbdadm verify)은 디스크 블록 (즉, 해시 값)의 체크섬을 계산하고 비교하여 서로 다른지를 감지합니다. verify-alg 매개 변수는 이러한 체크섬에 사용할 알고리즘을 결정합니다. 온라인 검증을 사용하기 전에 커널이 지원하는 보안 해시 알고리즘 중 하나로 설정해야합니다. /proc/ crypto에 나열된 shash 알고리즘을 참조하십시오. 운영 부하가 적은 시점에 정기적으로(예 : 한 달에 한 번) 온라인 확인을 예약하는 것이 좋습니다. 아래의 데이터 무결성에 대한 참고 사항도 참조하십시오.

on 섹션

address [address-family] address: port

...

마지막으로 완료된 쓰기 요청 후에 만기 시간 동안 새로운 쓰기 요청이 발행되지 않으면 peer-ack 패킷이 전송됩니다. 타이머가 만료되기 전에 새로운 쓰기 요청이 발행되면 타이머는 만료 시간으로 재설정됩니다. (참고 : 멤버십 변경 또는 "peer-ack-window"옵션과 같은 다른 이유로 peer-ack 패킷이 전송 될 수도 있습니다) 이 매개 변수는 원격 노드의 재 동기화 동작에 영향을 줄 수 있습니다. 피어 노드는 AL 익스텐트에서 잠금을 해제하기 위해 peer-ack 을 받을 때까지 기다려야합니다. 피어 간의 재 동기화 작업이 이러한 잠금을 기다려야 할 수도 있습니다. peer-ack-delay의 기본값은 100 밀리 초이며 기본 단위는 밀리 초입니다.

startup 섹션

The parameters in this section define the behavior of DRBD at system startup time, in the DRBD init script. They have no effect once the system is up and running이 섹션의 매개 변수는 시스템 시작시 bsr init 스크립트에서 bsr의 동작을 정의합니다. 시스템이 시작되어 실행되면 아무런 영향을 미치지 않습니다.

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.

stacked-timeouts

On stacked devices, the wfc-timeout and degr-wfc-timeout parameters in the configuration are usually ignored, and both timeouts are set to twice the connect-int timeout. The stacked-timeouts parameter tells DRBD to use the wfc-timeout and degr-wfc-timeout parameters as defined in the configuration, even on stacked devices. Only use this parameter if the peer of the stacked resource is usually not available, or will not become primary. Incorrect use of this parameter can lead to unexpected split-brain scenarios.

wait-after-sb

This parameter causes DRBD 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 DRBD resources: when the cluster manager starts, the DRBD 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 DRBD 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.

volume 섹션

device /dev/drbdminor-number

Define the device name and minor number of a replicated block device. This is the device that applications are supposed to access; in most cases, the device is not used directly, but as a file system. This parameter is required and the standard device naming convention is assumed. In addition to this device, udev will create /dev/drbd/by-res/resource /volume and /dev/drbd/by-disk/lower-level-device symlinks to the device.

disk {[disk] | none}

Define the lower-level block device that DRBD will use for storing the actual data. While the replicated drbd device is configured, the lower-level device must not be used directly. Even read-only access with tools like dumpe2fs(8) and similar is not allowed. The keyword none specifies that no lower-level block device is configured; this also overrides inheritance of the lower-level device.

meta-disk internal,

meta-disk device,

meta-disk device [index]

Define where the metadata of a replicated block device resides: it can be internal, meaning that the lower-level device contains both the data and the metadata, or on a separate device. When the index form of this parameter is used, multiple replicated devices can share the same metadata device, each using a separate index. Each index occupies 128 MiB of data, which corresponds to a replicated device size of at most 4 TiB with two cluster nodes. We recommend not to share metadata devices anymore, and to instead use the lvm volume manager for creating metadata devices as needed. When the index form of this parameter is not used, the size of the lower-level device determines the size of the metadata. The size needed is 36 KiB + (size of lower-level device) / 32K * (number of nodes - 1). If the metadata device is bigger than that, the extra space is not used. This parameter is required if a disk other than none is specified, and ignored if disk is set to none. A meta-disk parameter without a disk parameter is not allowed.

데이터 무결성 관련

DRBD supports two different mechanisms for data integrity checking: first, the data-integrity-alg network parameter allows to add a checksum to the data sent over the network. Second, the online verification mechanism ( drbdadm verify and the verify-alg parameter) allows to check for differences in the on-disk data.Both mechanisms can produce false positives if the data is modified during I/O (i.e., while it is being sent over the network or written to disk). This does not always indicate a problem: for example, some file systems and applications do modify data under I/O for certain operations. Swap space can also undergo changes while under I/O.Network data integrity checking tries to identify data modification during I/O by verifying the checksums on the sender side after sending the data. If it detects a mismatch, it logs an error. The receiver also logs an error when it detects a mismatch. Thus, an error logged only on the receiver side indicates an error on the network, and an error logged on both sides indicates data modification under I/O.The most recent example of systematic data corruption was identified as a bug in the TCP offloading engine and driver of a certain type of GBit NIC in 2007: the data corruption happened on the DMA transfer from core memory to the card. Because the TCP checksum were calculated on the card, the TCP/IP protocol checksums did not reveal this problem클러스터가 단일 노드로 구성된 경우 시스템이 다운 될 때 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서는 리부팅 전에 도달 할 수없는 피어가 리부팅 후에 도달 할 가능성이 적으므로 대기하는 것이 도움이되지 않는다고 가정합니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. "wfc-timeout"매개 변수도 참조하십시오.

outdated-wfc-timeout timeout

시스템이 다운 될 때 모든 피어가 outdated 이면 모든 피어가 연결될 때까지 대기하는 시간을 정의합니다. 이 매개 변수는 일반적으로 wfc-timeout보다 작은 값으로 설정됩니다. 여기서 outdated 피어는 그 동안 Primary 노드가 될 수 없으므로 이전에 존재 했던 노드 만큼 기다릴 필요가 없습니다. 시간 초과는 초 단위로 지정됩니다. 기본값은 0이며 무한 시간 초과를 나타냅니다. "wfc-timeout"매개 변수도 참조하십시오.

stacked-timeouts

bsr 에선 지원하지 않습니다.

wait-after-sb

이 매개 변수는 스플릿 브레인 상황이 감지 된 경우에도 bsr이 init 스크립트에서 계속 대기하도록 하여 노드가 서로 연결을 거부하게 합니다.

wfc-timeout timeout

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

volume 섹션

device /dev/drbdminor-number

복제 된 블록 장치의 장치 이름과 부 번호를 정의합니다. 이것은 응용 프로그램이 액세스 해야 하는 장치입니다. 대부분의 경우 장치는 직접 사용되지 않고 파일 시스템으로 사용됩니다. 이 매개 변수는 필수이며 표준 장치 이름 지정 규칙이 전제됩니다.

disk {[disk] | none}

DRBD가 실제 데이터를 저장하는 데 사용할 하위 레벨 블록 장치를 정의하십시오. 복제 된 drbd 장치가 구성되어있는 동안 하위 장치를 직접 사용해서는 안됩니다. dumpe2fs(8) 및 이와 유사한 도구를 사용한 읽기 전용 액세스도 허용되지 않습니다. 키워드 none은 하위 블록 장치가 구성되지 않았음을 나타냅니다. 이것은 또한 하위 수준 장치의 상속을 무시합니다.

meta-disk internal,

meta-disk device,

meta-disk device [index]

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