How to correctly set up io suspend?

Hi everyone! Can someone explain me how to correctly set up IO suspend policy for my resources? I executed the commands below:

linstor rg sp DrbdOptions/auto-quorum suspend-io cloudstack
linstor rg opt --on-no-data-accessible suspend-io cloudstack

first command executed with an error, so I made corrections like this:

linstor rg sp cloudstack DrbdOptions/auto-quorum suspend-io

This worked but displayed a warning:

WARNING: DrbdOptions/auto-quorum is deprecated, please use DrbdOptions/Resource/quorum.

So, I decided to execute:

linstor rg opt --on-no-quorum suspend-io cloudstack

second command executed without any problems.

Now I have:

linstor rg lp cloudstack
╭─────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────────────────────────────────────────────┤
│ DrbdOptions/Resource/on-no-data-accessible │ suspend-io │
│ DrbdOptions/Resource/on-no-quorum │ suspend-io │
│ DrbdOptions/auto-quorum │ suspend-io │
╰─────────────────────────────────────────────────────────╯

In the command output, it says that all resources were adjusted and all definitions were updated. But when I checked my resource definition, I saw:

linstor rd lp cs-90713c19-e8c6-4883-beaf-dc10f9860baf
╭─────────────────────────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────────────────────────────────────────────────────────────────┤
│ Aux/cs-name │ ROOT-658 │
│ Aux/cs-vm-name │ i-61-658-VM │
│ DrbdOptions/Resource/on-no-quorum │ io-error │
│ DrbdOptions/Resource/quorum │ majority │
│ DrbdOptions/auto-verify-alg │ crct10dif │
│ DrbdPrimarySetOn │ NODE4 │
│ cloned-from │ cs-2f3eb050-a213-40a8-a828-3a34a283d0d2 │
╰─────────────────────────────────────────────────────────────────────────────╯

Okay, I thought that maybe the settings aren’t applied to already created resources, so I decided to create a new one, and again:
linstor rd lp cs-f021d147-8ba9-4f65-8718-76b5470371c2
╭─────────────────────────────────────────────────────────────────────────────╮
│ Key │ Value │
├─────────────────────────────────────────────────────────────────────────────┤
│ Aux/cs-name │ ROOT-1003 │
│ Aux/cs-vm-name │ i-2-1003-VM │
│ DrbdOptions/Resource/on-no-quorum │ io-error │
│ DrbdOptions/Resource/quorum │ majority │
│ DrbdOptions/auto-verify-alg │ crct10dif │
│ DrbdPrimarySetOn │ NODE3 │
│ cloned-from │ cs-8b51f712-da5f-4abb-9a43-1b4faad214a3 │
╰─────────────────────────────────────────────────────────────────────────────╯

So, what am I doing wrong? Or maybe I don’t understand something? How can I correctly set up these properties, and apply it to all my old and new resources?
Any assistance would be greatly appreciated.

As stated you shouldn’t use DrbdOptions/auto-quorum anymore.

So:

linstor rg sp cloudstack DrbdOptions/auto-quorum

I would have thought that inherited quorum properties should have been removed, but it looks like it didn’t on your setup:

for rsc in $(linstor -m rd l | jq -r '.[][].name' | grep cs-); do linstor rd sp $rsc DrbdOptions/Resource/on-no-quorum ; done

this will remove all directly set on-no-quorum settings and should inherit it from the resource-group.

Also to verify what setting is really currently in place you should check the drbd resource itself with

drbdsetup show cs-.....

Hi @rp9 ! And thanks for your reply. I have unset DrbdOptions/auto-quorum and remove on-no-quorum directly from resource-groups following your commads.
Now my rg options looks like this:
╭─────────────────────────────────────────────────────────╮
┊ Key ┊ Value ┊
╞═════════════════════════════════════════════════════════╡
┊ DrbdOptions/Resource/on-no-data-accessible ┊ suspend-io ┊
┊ DrbdOptions/Resource/on-no-quorum ┊ suspend-io ┊
╰─────────────────────────────────────────────────────────╯

I have create a new resource and his rd looks like this
╭────────────────────────────────────────────╮
┊ Key ┊ Value ┊
╞════════════════════════════════════════════╡
┊ Aux/cs-name ┊ ROOT-1043 ┊
┊ Aux/cs-vm-name ┊ i-61-1043-VM ┊
┊ DrbdOptions/Resource/quorum ┊ majority ┊
┊ DrbdOptions/auto-verify-alg ┊ crct10dif ┊
┊ DrbdPrimarySetOn ┊ NODE1 ┊
╰────────────────────────────────────────────╯

the same for all old recources. So it seems like now all options must be inherited from rg.
So if I trying to verify. it shows:
drbdsetup show cs-e3919d73-3b3d-4c42-bb47-603a0f3fbe05
resource “cs-e3919d73-3b3d-4c42-bb47-603a0f3fbe05” {
options {
on-no-data-accessible suspend-io;
quorum majority;
}
_this_host {
node-id 2;
volume 0 {
device minor 1003;
disk none;
disk {
diskless yes;
}
}
}

the same for old recources. I noticed on-no-data-accessible suspend-io; but I don’t see second parameter on-no-quorum suspend-io. How can I set it up?

on-no-quorum suspend-io is already the default that is why it isn’t shown.

You can display all options with the argument –show-defaults

@rp9 Thank you very much for your help, it seems everything is working as it should.

resource “cs-12a28c3b-ad36-4a07-8995-a052f415efdb” {
options {
cpu-mask “”; # default
on-no-data-accessible suspend-io;
auto-promote yes; # default
peer-ack-window 4096s; # bytes, default
peer-ack-delay 100; # milliseconds, default
twopc-timeout 300; # 1/10 seconds, default
twopc-retry-timeout 1; # 1/10 seconds, default
auto-promote-timeout 20; # 1/10 seconds, default
max-io-depth 8000; # default
quorum majority;
on-no-quorum suspend-io; # default
quorum-minimum-redundancy off; # default
on-suspended-primary-outdated disconnect; # default
}

For both old and new resources.