Hello,
TL;DR: I am quite sure that is expected / normal behavior.
Longer explanation: If I remember correctly our Proxmox plugin uses linstor resource-group query-size-info ${resource_group_name} internally to basically get an answer to the question “What is the largest size of a resource I could create”. This question is not bound to a specific node but rather to a resource-group. I have a very simple setup to demonstrate my point:
$ linstor sp l
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
┊ StoragePool ┊ Node ┊ Driver ┊ PoolName ┊ FreeCapacity ┊ TotalCapacity ┊ CanSnapshots ┊ State ┊ SharedName ┊
╞═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
┊ DfltDisklessStorPool ┊ lin2 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Ok ┊ lin2;DfltDisklessStorPool ┊
┊ DfltDisklessStorPool ┊ lin3 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Ok ┊ lin3;DfltDisklessStorPool ┊
┊ DfltDisklessStorPool ┊ lin4 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Ok ┊ lin4;DfltDisklessStorPool ┊
┊ lvmthinpool ┊ lin2 ┊ LVM_THIN ┊ scratch/thin ┊ 1 GiB ┊ 1 GiB ┊ True ┊ Ok ┊ lin2;lvmthinpool ┊
┊ lvmthinpool ┊ lin3 ┊ LVM_THIN ┊ scratch/thin ┊ 1 GiB ┊ 1 GiB ┊ True ┊ Ok ┊ lin3;lvmthinpool ┊
┊ lvmthinpool ┊ lin4 ┊ LVM_THIN ┊ scratch/thin ┊ 1 GiB ┊ 1 GiB ┊ True ┊ Ok ┊ lin4;lvmthinpool ┊
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
(Yes, very tiny storage pools, but it is enough for our purposes).
$ linstor rg qsi dfltrscgrp
╭────────────────────────────────────────────────────────────────╮
┊ MaxVolumeSize ┊ AvailableSize ┊ Capacity ┊ Next Spawn Result ┊
╞════════════════════════════════════════════════════════════════╡
┊ 20 GiB ┊ 1 GiB ┊ 1 GiB ┊ lvmthinpool on lin2 ┊
┊ ┊ ┊ ┊ lvmthinpool on lin3 ┊
╰────────────────────────────────────────────────────────────────╯
These numbers would be used by the Proxmox plugin to show the available storage.
Now if I shut down lin3 node for example:
$ linstor rg qsi dfltrscgrp
╭────────────────────────────────────────────────────────────────╮
┊ MaxVolumeSize ┊ AvailableSize ┊ Capacity ┊ Next Spawn Result ┊
╞════════════════════════════════════════════════════════════════╡
┊ 20 GiB ┊ 1 GiB ┊ 1 GiB ┊ lvmthinpool on lin2 ┊
┊ ┊ ┊ ┊ lvmthinpool on lin4 ┊
╰────────────────────────────────────────────────────────────────╯
The command still shows the same numbers, but please note that the second line changed from lin3 to lin4. That means that LINSTOR is running internally a “dry-run” autoplacement and uses its result to present the available storage.
Now if I also put lin4 offline, we do have your situation where fewer nodes are left online than configured in your resource-group (1 node online, but resource-group’s place-count is 2 - by default):
$ linstor rg qsi dfltrscgrp
╭──────────────────────────────────────────────────────────────╮
┊ MaxVolumeSize ┊ AvailableSize ┊ Capacity ┊ Next Spawn Result ┊
╞══════════════════════════════════════════════════════════════╡
┊ 0 KiB ┊ 0 KiB ┊ 0 KiB ┊ - ┊
╰──────────────────────────────────────────────────────────────╯
If we now think again at the original question “What is the largest resource we could spawn next?” the result above is actually the correct answer.
In case you still want to know the available space per node, regardless of any resource-group, you can always use linstor storage-pool list:
$ linstor sp l
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
┊ StoragePool ┊ Node ┊ Driver ┊ PoolName ┊ FreeCapacity ┊ TotalCapacity ┊ CanSnapshots ┊ State ┊ SharedName ┊
╞═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
┊ DfltDisklessStorPool ┊ lin2 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Ok ┊ lin2;DfltDisklessStorPool ┊
┊ DfltDisklessStorPool ┊ lin3 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Warning ┊ lin3;DfltDisklessStorPool ┊
┊ DfltDisklessStorPool ┊ lin4 ┊ DISKLESS ┊ ┊ ┊ ┊ False ┊ Warning ┊ lin4;DfltDisklessStorPool ┊
┊ lvmthinpool ┊ lin2 ┊ LVM_THIN ┊ scratch/thin ┊ 1 GiB ┊ 1 GiB ┊ True ┊ Ok ┊ lin2;lvmthinpool ┊
┊ lvmthinpool ┊ lin3 ┊ LVM_THIN ┊ scratch/thin ┊ ┊ ┊ True ┊ Warning ┊ lin3;lvmthinpool ┊
┊ lvmthinpool ┊ lin4 ┊ LVM_THIN ┊ scratch/thin ┊ ┊ ┊ True ┊ Warning ┊ lin4;lvmthinpool ┊
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
WARNING:
Description:
No active connection to satellite 'lin3'
Details:
The controller is trying to (re-) establish a connection to the satellite. The controller stored the changes and as soon the satellite is connected, it will receive this update.
WARNING:
Description:
No active connection to satellite 'lin4'
Details:
The controller is trying to (re-) establish a connection to the satellite. The controller stored the changes and as soon the satellite is connected, it will receive this update.
Hope this helps!