[DRBD-user] Create a third diskless node on an active 2-node cluster

Ferran Alchimia ferran.alchimia at gmail.com
Wed Mar 3 13:41:26 CET 2021


Hi,

Thank you for your help I reloaded de drbd so it now has the correct
version:

DRBDADM_BUILDTAG=GIT-hash:\ a7820b3c14497a34f955ba5ce56cf1bc9d2d353e\
build\ by\ @buildsystem\,\ 2021-02-09\ 09:27:27
DRBDADM_API_VERSION=2
DRBD_KERNEL_VERSION_CODE=0x09001c
DRBD_KERNEL_VERSION=9.0.28
DRBDADM_VERSION_CODE=0x091000
DRBDADM_VERSION=9.16.0

Now, when I try to create the test resource it fails with another message:

linstor resource create C test
INFO:
    Resource-definition property 'DrbdOptions/Resource/quorum' updated from
'off' to 'majority' by auto-quorum
INFO:
    Resource-definition property 'DrbdOptions/Resource/on-no-quorum'
updated from 'off' to 'io-error' by auto-quorum
SUCCESS:
Description:
    New resource 'test' on node 'C' registered.
Details:
    Resource 'test' on node 'C' UUID is:
25c11e12-d136-41fb-ad25-68049a7a6bac
SUCCESS:
Description:
    Volume with number '0' on resource 'test' on node 'C' successfully
registered
Details:
    Volume UUID is: 70309d61-bf39-43aa-a41f-532587031ccd
ERROR:
    (Node: 'C') An unknown exception occurred while processing the resource
test
Show reports:
    linstor error-reports show 603F7FA5-7AC40-000000
SUCCESS:
    Added peer(s) 'C' to resource 'test' on 'T'
SUCCESS:
    Added peer(s) 'C' to resource 'test' on 'H'


# drbdadm status
test role:Secondary
  disk:UpToDate
  C connection:*Connecting*
  H role:Secondary
    peer-disk:UpToDate

And the error in linstor-satellite:

ERROR REPORT 603F7FA5-7AC40-000004

============================================================

Application:                        LINBIT® LINSTOR
Module:                             Satellite
Version:                            1.11.1
Build ID:                           fe95a94d86c66c6c9846a3cf579a1a776f95d3f4
Build time:                         2021-01-13T08:34:55+00:00
Error time:                         2021-03-03 13:31:51
Node:                               C

============================================================

Reported error:
===============

Category:                           RuntimeException
Class name:                         NullPointerException
Class canonical name:               java.lang.NullPointerException
Generated at:                       Method 'normalizeAndCheck', Source file
'UnixPath.java', Line #75


Error context:
    An error occurred while processing resource 'Node: 'C', Rsc: 'test''

Call backtrace:

    Method                                   Native Class:Line number
    normalizeAndCheck                        N      sun.nio.fs.UnixPath:75
    <init>                                   N      sun.nio.fs.UnixPath:69
    getPath                                  N
sun.nio.fs.UnixFileSystem:279
    readObject                               N
com.linbit.linstor.layer.drbd.utils.MdSuperblockBuffer:73
    hasMetaData                              N
com.linbit.linstor.layer.drbd.DrbdLayer:906
    adjustDrbd                               N
com.linbit.linstor.layer.drbd.DrbdLayer:580
    process                                  N
com.linbit.linstor.layer.drbd.DrbdLayer:387
    process                                  N
com.linbit.linstor.core.devmgr.DeviceHandlerImpl:789
    processResourcesAndSnapshots             N
com.linbit.linstor.core.devmgr.DeviceHandlerImpl:335
    dispatchResources                        N
com.linbit.linstor.core.devmgr.DeviceHandlerImpl:145
    dispatchResources                        N
com.linbit.linstor.core.devmgr.DeviceManagerImpl:268
    phaseDispatchDeviceHandlers              N
com.linbit.linstor.core.devmgr.DeviceManagerImpl:924
    devMgrLoop                               N
com.linbit.linstor.core.devmgr.DeviceManagerImpl:627
    run                                      N
com.linbit.linstor.core.devmgr.DeviceManagerImpl:545
    run                                      N      java.lang.Thread:834


END OF ERROR REPORT.


Note that the lvm storage is not defined on C, do I have to define some
dummy space for the diskless "allocations"?

regards,
Ferran

Missatge de Rene Peinthor <rene.peinthor at linbit.com> del dia dc., 3 de març
2021 a les 13:08:

> DRBD_KERNEL_VERSION_CODE=0x08040b
>
> Says you have the old DRBD8 kernel module loaded, Linstor only supports
> DRBD9 >=
>
> Btw. you don't need to create a diskless storage pool (until you want
> special properties on that pool), Linstor already has
> DfltDisklessStorPool.
> Also diskless-on-remaing is not really needed, as you will get a
> tiebreaker diskless resource anyway on a  3 node cluster, with auto-quorum
> enabled.
>
> Cheers,
> Rene
>
> On Wed, Mar 3, 2021 at 12:48 PM Gábor Hernádi <gabor.hernadi at linbit.com>
> wrote:
>
>> Hello,
>>
>> when you executed `linstor node create C ...` Linstor should have given
>> you a list of supported layers + providers or reasons why layers /
>> providers are not supported. You can recheck that list with
>>   linstor node info
>> That command should tell you why Linstor thinks that C does not support
>> DRBD.
>>
>> Best regards,
>> Gabor
>>
>> On Wed, Mar 3, 2021 at 12:29 PM Ferran Alchimia <
>> ferran.alchimia at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I currently have a 2 node (combined) cluster and I want to add an HA
>>> linstor-controller. I was following this guide
>>> https://www.linbit.com/drbd-user-guide/linstor-guide-1_0-en/#s-linstor_ha
>>>
>>> The first step asks for an AutoQuorum capable resource. So I think I
>>> have to add a third node to my cluster. This is my starting position:
>>>
>>> ╭─────────────────────────────────────────────────────╮
>>> ┊ Node  ┊ NodeType ┊ Addresses               ┊ State  ┊
>>> ╞═════════════════════════════════════════════════════╡
>>> ┊ H     ┊ COMBINED ┊ 10.0.7.106:3366 (PLAIN) ┊ Online ┊
>>> ┊ T     ┊ COMBINED ┊ 10.0.7.105:3366 (PLAIN) ┊ Online ┊
>>> ╰─────────────────────────────────────────────────────╯
>>>
>>> ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
>>> ┊ StoragePool          ┊ Node       ┊ Driver   ┊ PoolName        ┊
>>> FreeCapacity ┊ TotalCapacity ┊ CanSnapshots ┊ State ┊
>>>
>>> ╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
>>> ┊ DfltDisklessStorPool ┊ H          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ DfltDisklessStorPool ┊ T          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ drbdpool             ┊ H          ┊ LVM_THIN ┊ vgthc1/drbdpool ┊
>>>  3.13 TiB ┊      3.49 TiB ┊ True         ┊ Ok    ┊
>>> ┊ drbdpool             ┊ T          ┊ LVM_THIN ┊ vgthc1/drbdpool ┊
>>>  3.13 TiB ┊      3.49 TiB ┊ True         ┊ Ok    ┊
>>>
>>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
>>>
>>> Since my third node won't have any storage devices dedicated to drbd I
>>> presumed that I could add a DISKLESS node (I don't know if this is true),
>>> just for quorum and not for replica.
>>>
>>> linstor n create --node-type satellite C 10.100.1.3
>>>
>>> linstor n l
>>> ╭───────────────────────────────────────────────────────────╮
>>> ┊ Node       ┊ NodeType  ┊ Addresses               ┊ State  ┊
>>> ╞═══════════════════════════════════════════════════════════╡
>>> ┊ C          ┊ SATELLITE ┊ 10.100.1.3:3366 (PLAIN) ┊ Online ┊
>>> ┊ H          ┊ COMBINED  ┊ 10.0.7.106:3366 (PLAIN) ┊ Online ┊
>>> ┊ T          ┊ COMBINED  ┊ 10.0.7.105:3366 (PLAIN) ┊ Online ┊
>>> ╰───────────────────────────────────────────────────────────╯
>>> linstor sp create diskless C drbdpool
>>>
>>>
>>> ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
>>> ┊ StoragePool          ┊ Node       ┊ Driver   ┊ PoolName        ┊
>>> FreeCapacity ┊ TotalCapacity ┊ CanSnapshots ┊ State ┊
>>>
>>> ╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
>>> ┊ DfltDisklessStorPool ┊ C          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ DfltDisklessStorPool ┊ H          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ DfltDisklessStorPool ┊ T          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ drbdpool             ┊ C          ┊ DISKLESS ┊                 ┊
>>>         ┊               ┊ False        ┊ Ok    ┊
>>> ┊ drbdpool             ┊ H          ┊ LVM_THIN ┊ vgthc1/drbdpool ┊
>>>  3.13 TiB ┊      3.49 TiB ┊ True         ┊ Ok    ┊
>>> ┊ drbdpool             ┊ T          ┊ LVM_THIN ┊ vgthc1/drbdpool ┊
>>>  3.13 TiB ┊      3.49 TiB ┊ True         ┊ Ok    ┊
>>>
>>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
>>>
>>> I add the --diskless-on-remaining flag for the rg definition (I don't
>>> know if this is needed)
>>> linstor rg m drbdpoolvm --place-count 2 --diskless-on-remaining
>>>
>>> linstor rg l
>>> ╭──────────────────────────────────────────────────────────────────╮
>>> ┊ ResourceGroup ┊ SelectFilter              ┊ VlmNrs ┊ Description ┊
>>> ╞══════════════════════════════════════════════════════════════════╡
>>> ┊ DfltRscGrp    ┊ PlaceCount: 2             ┊        ┊             ┊
>>> ╞┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╡
>>> ┊ drbdpoolvm    ┊ PlaceCount: 2             ┊ 0      ┊             ┊
>>> ┊               ┊ StoragePool(s): drbdpool  ┊        ┊             ┊
>>> ┊               ┊ DisklessOnRemaining: True ┊        ┊             ┊
>>> ╰──────────────────────────────────────────────────────────────────╯
>>>
>>> And then I try to create a test resource
>>> linstor resource create T test
>>> SUCCESS:(...)
>>>
>>> linstor resource create H test
>>> WARNING:    Could not find suitable node to automatically create a tie
>>> breaking resource for 'test'.
>>> SUCCESS:(...)
>>>
>>> linstor resource create C test
>>> ERROR:Description:    Satellite 'C' does not support the following
>>> layers: [DRBD]Details:    Node(s): 'C', Resource: 'test'Show reports:
>>> linstor error-reports show 603F507D-00000-000005
>>>
>>> As you can see the resource creation fails on C node. I have installed
>>> drbd on that node just in case, here goes the output:
>>> drbdadm --version
>>> DRBDADM_BUILDTAG=GIT-hash:\ a7820b3c14497a34f955ba5ce56cf1bc9d2d353e\
>>> build\ by\ @buildsystem\,\ 2021-02-09\ 09:27:27
>>> DRBDADM_API_VERSION=1
>>> DRBD_KERNEL_VERSION_CODE=0x08040b
>>> DRBDADM_VERSION_CODE=0x091000
>>> DRBDADM_VERSION=9.16.0
>>>
>>> Overall my C node does not have any "storage" for the drbd cluster, I
>>> just want it to be a diskless node in order to achieve HA for the
>>> resources. It seems I have misunderstood something but I just don't know
>>> where to look for more info. Any hints/help would be appreciated.
>>>
>>> Regards,
>>> Ferran
>>> _______________________________________________
>>> Star us on GITHUB: https://github.com/LINBIT
>>> drbd-user mailing list
>>> drbd-user at lists.linbit.com
>>> https://lists.linbit.com/mailman/listinfo/drbd-user
>>>
>>
>>
>> --
>> Best regards,
>> Gabor Hernadi
>> _______________________________________________
>> Star us on GITHUB: https://github.com/LINBIT
>> drbd-user mailing list
>> drbd-user at lists.linbit.com
>> https://lists.linbit.com/mailman/listinfo/drbd-user
>>
> _______________________________________________
> Star us on GITHUB: https://github.com/LINBIT
> drbd-user mailing list
> drbd-user at lists.linbit.com
> https://lists.linbit.com/mailman/listinfo/drbd-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linbit.com/pipermail/drbd-user/attachments/20210303/8e649fd3/attachment-0001.htm>


More information about the drbd-user mailing list