Versions Compared

Key

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

...

In case of primary node failure, special mechanism through AL will match the consistency of the block device. Please refer to the activity log of BSR Internals for details on this.

Permanent failure

...

The following is an example of a configuration file with SB auto recovery.

Code Block
resource <resource> {
    handlers {
        split-brain "C:/Tools/script/split-brain.bat";
        ...
    }
    net {
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        ...
    }
    ...
}
Info

The files used in the configuration file of the SB handler must be described as absolute paths.

Compatibility

Describes compatibility issues that arise from working with third-party products. Most compatibility issues in BSR appear as errors because the functionality or behavior of another program or module affects the operation of BSR.

Volume references

BSR maintains dereferencing of volumes internally during resource operations. Volume reference count is used to manage the lifecycle of BSR volumes by incrementing when a reference is acquired and decrementing when a reference is de-referenced.

If the reference count for a volume is non-zero at the time of a resource DOWN, the DOWN will fail with the following type of error log output.

Info

bsr volume(r0) Secondary failed (error=0: State change failed: (-12) Device is held open by someone

To resolve this issue, you must identify the process or module that is referencing the BSR volume and take steps to reduce the number of references to the volume, such as disabling the behavior of that module.

For example, on Ubuntu 20.04 and later, multipath-tools (0.8.3) must be prevented from making references to the bsr volume through the following exception in multipath.conf. Otherwise, multipath-tools will continue to reference the bsr volume, making it impossible to down.

Code Block
blacklist {
        devnode "^(sd)[a-z]"
        devnode "^(bsr)[0-9]"
        }