[ClusterLabs] Antw: [EXT] Re: Preventing multiple resources from moving at the same time.
Ulrich Windl
Ulrich.Windl at rz.uni-regensburg.de
Thu Apr 22 03:41:49 EDT 2021
>>> Matthew Schumacher <matt.s at aptalaska.net> schrieb am 21.04.2021 um 18:27 in
Nachricht <3dab41c0-d56e-72fa-8a61-70e268a0fa22 at aptalaska.net>:
> On 4/21/21 12:48 AM, Klaus Wenninger wrote:
>> Just to better understand the issue ...
>> Does the first resource implement storage that is being used
>> by the resource that is being migrated/moved?
>> Or is it just the combination of 2 parallel moves that is
>> overcommitting storage or network?
>> Is it assured that there are no load-scenarios inside these
>> resources that create the same issues as if you migrate/move
>> them?
>>
>> Klaus
>
> Thanks for the help Klaus, I'll spell it out more clearly.
>
> I'm using a group resource sets up a failover-ip address, then mounts a
> ZFS dataset (which exports a configuration directory as NFS), then a
> custom resource called ZFSiSCSI that exports all virtual machine disks
> as iSCSI.
>
> Like this:
>
> * Resource Group: IP-ZFS-iSCSI:
> * fence-datastore (stonith:fence_scsi): Started node1
> * failover-ip (ocf::heartbeat:IPaddr): Started node1
> * zfs-datastore (ocf::heartbeat:ZFS): Started node1
> * ZFSiSCSI (ocf::heartbeat:ZFSiSCSI): Started node1
>
> Then I create a virtual machine with
>
> primitive vm-testvm VirtualDomain params
> config="/nfs/vm/testvm/testvm.xml" meta allow-migrate=true op monitor
> timeout=30 interval=10
>
> This works fine because the ZFS storage can be mounted/exported on node1
> or node2 which will have an iSCSI target for each VM bound to the shared
> IP address. I can move the storage to either node and while there is a
> pause in the storage it works fine as things move around faster than the
> iscsi timeout. I can also migrate the VM to either node because when
> it's started on the target node, it can immediately access it's iscsi
> storage regardless if the storage is local or not.
>
> The problem is monitoring with VirtualDomain. The
> /usr/lib/ocf/resource.d/heartbeat/VirtualDomain script goes to check to
> see if /nfs/vm/testvm/testvm.xml is available with this line:
>
> if [ ! -r $OCF_RESKEY_config ]; then
> if ocf_is_probe; then
> ocf_log info "Configuration file
> $OCF_RESKEY_config not readable during probe."
>
> That causes bash to stat the config file which if we are in the middle
> of a IP-ZFS-iSCSI move, will return -1 which then causes VirtualDomain
> to view the VM as dead and hard resets it.
I think it's unsafe to move an iSCSI target between nodes assuming the initiator won't notice, specifically as iSCSI uses TCP.
Don't the initiators see a "connection reset" when the target moved?
(When if your target ran in a VM that is life-migrated, it might succeed if migration is fast enough)
>
> If I set the stickiness to 100 then it's a race condition, many times we
> get the storage layer migrated without VirtualDomain noticing, but if
> the stickiness is not set, then moving a resource causes the cluster to
> re-balance and will cause the VM to fail every time because validation
> is one of the first things we do when we migrate the VM, and it's at the
> same time as a IP-ZFS-iSCSI move so the config file goes away for 5 seconds.
>
> I'm not sure how to fix this. The nodes don't have local storage that
> isn't the ZFS pool, otherwise I'd just create a local config directory
> and glusterfs them together.
>
> I suppose the next step is to see if NFS has some sort of retry mode so
> that bash stating the config file is blocked until a timeout. That would
NFS (at least before version 4) always had a mode to wait for the server; see "bg" (background) option.
> certainly fix my issue as that's how the iscsi stuff works, retry until
> timeout. Another option is to rework VirtualDomain as stating a config
> file isn't really a good test to see if the domain is working. It makes
> more sense to have it make a virsh call to see if it's working and only
> care about the config file if it's starting the domain.
>
> Ideas welcome!!!!
>
> Matt
>
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
>
> ClusterLabs home: https://www.clusterlabs.org/
More information about the Users
mailing list