Hello.
I came across commit https://github.com/torvalds/linux/commit/8522104f75bf1ce33d76ea425185da2a7fba5a70 indicating that support for the crct10dif algorithm was removed from the Linux kernel. Consequently, I decided to test the crc32c algorithm. During testing of verification algorithms in LINSTOR, I encountered ambiguous behavior regarding property inheritance and how values are displayed across different levels.
OS: Ubuntu 24.04
LINSTOR Controller/Satellite: 1.33.1
DRBD version: 9.3
I attempted to change the verification algorithm at the Resource Group level using the following command: linstor rg opt --verify-alg crc32c test
As expected, the new value is visible at the Resource Group level:
root@test-node2:~# linstor rg lp test
+-----------------------------------------------------------+
| Key | Value |
|-----------------------------------------------------------|
| DrbdOptions/Net/verify-alg | crc32c |
+-----------------------------------------------------------+
However, when checking the Resource Definition properties, I still see a different key with the old value:
root@test-node2:~# linstor rd lp test
+---------------------------------------------------+
| Key | Value |
|---------------------------------------------------|
| DrbdOptions/auto-verify-alg | crct10dif |
+---------------------------------------------------+
Interestingly, the actual DRBD configuration correctly reflects the new setting. In the DRBD config, I see the new algorithm that I assigned to the Resource Group:
root@test-node3:~# drbdsetup show test
...
net {
verify-alg "crc32c";
}
...
I can see that DRBD receives the correct configuration, but after changing the verification algorithm on the Resource Group, I expected this change to be reflected in the Resource Definition as well. The simultaneous coexistence of auto-verify-alg and verify-alg creates confusion from an administrative perspective.
I would appreciate a clarification on the proper way to change the verification algorithm in LINSTOR.
Is it possible to change the default algorithm for auto-verify-alg?
Why is this property not updated or hidden when verify-alg is explicitly defined at the Resource Group level?
Aside: have you found this option documented anywhere? I see it in the linstor source code, but I don’t see it in the linstor manual. (I’m sure it’s valid - linstor does validate the property names - but I’d like to understand the semantics)
Also, I’m not sure if resource-definition list-properties shows properties which are inherited from the resource group - and if it does, whether it’s possible to distinguish between inherited and explicitly-set properties.
Could you please explain how the parameter DrbdOptions/auto-verify-algo-allowed-user-list works?
Does it restrict the selection of the verification algorithm from the list DrbdOptions/auto-verify-algo-allowed-list for the parameter DrbdOptions/auto-verify-alg?
the auto-verify-algo-allowed-user-list allows additional shash algorithms to be considered by Linstor, so it doesn’t override the linstor list, just expand it.