C-min-rate Protocol A

I’m trying to understand what happens when i set c-min-rate 0 for Protocol A DRBD Proxy.
When setting to 0 would that mean to the controller to not have any limits, and when setting to 1M for example, then i’m telling the controller to not fall below that speed.
The difference i see when using the 0 and 1M is that 0 it syncs really quick but 1M it has a variable speed not maintaining very well, can drop low to almost nothing.

Thanks

You are correct, a c-min-rate value of 0 means that there is no limit on the resync I/O bandwidth. This can slow down the I/O of applications running on the node significantly, so this is not reccomended. The dynamic resync controller allows DRBD to stay out of the way of your running applications and consume I/O to perform syncronization when the system has enough of it to spare. Setting the c-min-rate value at 0 could potentially mean that this does not happen, and your application performance may suffer while DRBD is performing resync operations.

To further clarify what the parameter is doing-- the c-min-rate doesn’t define a minimum synchronization speed, but rather a limit below which DRBD will not slow down further on purpose.

Whether you manage to reach that synchronization rate depends on your network and storage speed, network latency (which might be highly variable for shared links), and application I/O (which you might not be able to do anything about).

I’d suggest this knowledgebase article for reccomendations on ways to tune the resync controller appropriately based on your environment: