Feature request: Do not skip initial resync
LINSTOR have smart logic to preserving and set DrbdCurrentGi for each newly created replica.
The fact is that this feature is working bad.
We have hundreds cases, even with data loss, which could be solved by initial full DRBD synchronization but it is never runs because LINSTOR disables it, and try to sync only changed data.
We already tired of fixing all our DRBD devices manually, we spending a lot of time just for doing that. Some cases like https://github.com/LINBIT/linstor-server/issues/216 still remains unsolved.
We decided that we could avoid a lot problems just by always using full resync. Thus it would be really nice to have an opportunity to disable fast resync for certain resources or on cluster level.
Full syncing is used with fat-provisioned storage, not sure if it works with thin-provisioned storage, because writing to any of the blocks of a thin-provisioned volume normally allocates that block, even if you're only writing null characters. That is why the LINSTOR folks were told by the DRBD folks to reset the current generation ID in the DRBD meta data. I believe that LINSTOR does that according to the specification, so the actual problem is probably either one in DRBD, and in that case it should be fixed in DRBD, or the whole idea of working with a modified initial current GI does not really work by design, e.g. because it is incomplete and does not handle some situations correctly, and in that case, DRBD would have to provide some other means of handling thin-provisioned storage which LINSTOR could then support once it is available in DRBD.
Either way, I think the only thing that LINSTOR could provide right now - without waiting for things to change in DRBD - would be a flag that just always full syncs initially, even on thin-provisioned storage. You will probably have to configure the rs-discard-granularity option in DRBD to avoid allocation of zeroed blocks (which would effectively make your thin-provisioned storage fat-provisioned).