[libvirt-users] How is calculate the lock with lockd_manager

villeneu at kassis.univ-brest.fr villeneu at kassis.univ-brest.fr
Fri Apr 1 20:41:50 UTC 2016


  "Daniel P. Berrange" <berrange at redhat.com> a écrit :

> On Thu, Mar 31, 2016 at 12:05:07PM +0200, villeneu at kassis.univ-brest.fr
> wrote:
>> Hello
>>
>> I use lock_manager with libvirt 1.3 and
>> I would like to know how is exactly calculate the hash SHA256. I would
>> create a table
>> to retreive the name with the hash in case of crash to release manualy
>> the
>> lock.
>
> Do you mean in the case of a host crash, and if so what filesystem ?  If
> you are using NFS at lesat so you shouldn't need to know the file names,
> there is the ability to tell the NFS server to release all locks
> associated
> with a dead host.
>
> I am using NFS. I have many POOL on an NFS server and I use a special
> share NFS with all my hypervisors
> where I put my locks
>
> qemu-lock.conf
> ...
> lock file_lockspace_dir = "/var/lib/libvirt/images/POOL_ADMIN/lock"
>
> ...
> my POOL are
> lock file_lockspace_dir = "/var/lib/libvirt/images/POOL_ADMIN/lock"
> ....
> my POOL are
> /var/lib/libvirt/i/var/lib/libvirt/images/POOL_PROD1
> /var/lib/libvirt/i/var/lib/libvirt/images/POOL_PROD2
> ....
>
> In a first time,
> I tried sanlock with the same configuration but some old VMs often have
> crashed  and the qemu process were in an anormal state ( defunc ), and I
> wasn't be able to kill correctly the process. The virsh destroy command
> couldn't remove the VM.
> from the virsh list ... and I always got
> Failed to terminate process xxx with SIGTERM: Device or resource busy
> and the VM is still in the list
>
> I wasn't be able to freeing the resource with sanlock and the result was
> that I couldn't start a VM which crashed before because the lock was
> still present.
> I tried sanlock command to release the resource without success.
>
> ie
> sanlock client rem_lockspace -r
>
__LIBVIRT__DISKS__:b90b9c61e2d6413077205907ffb3281a:/var/lib/libvirt/images/POOL_ADMIN/sanlock/b90b9c61e2d6413077205907ffb3281a:0:4
-p
> 9383
>
> So I decided to try lock_manager , but there is no tools as sanlock to
> coupled vm name and lock. In a case of crash and if the lock isn't
> removed I  will be with the same problem, it 's one of the reason I want
> to create a datatable with sha256 checksum and the vm name.
>
>> I do an  sha256 hash from /var/lib/libvirt/images/lock/MyVM.img but I
>> don't get the same hash code form virtlockd ?
>
> It uses the sha256 has of the filename. How did you generate your hash ?
> If using shell make sure you don't include a newline
>
> ie you want
>
>   echo -n /var/lib/libvirt/images/lock/MyVM.img | sha256sum
>
> not a plain 'echo' as that includes a newline
>
> to test before a script with the python libvirt API
> I am using a very simple python script
>
> import hashlib
> hash_object =
> hashlib.sha256(b'/var/lib/libvirt/images/POOL_PROD4/WPAD.img')
> hex_dig = hash_object.hexdigest()
> print(hex_dig)
>>>> f52b8ebb9e2922831cf4ff7520ad51ab48af004dbb732155df5e02809a01654c
> and the lock in the directory when I start the VM is
> virsh start WPAD
> ls -alcrt -rw-------  1 root root    0 31 mars  15:02
> f12269eb8c7afd6551f2549d245e52182714ae43fd0212626593195a24349605
>
> so I am little confused ...
>
> Regards,
> Daniel
>
> Michel
> --
> |: http://berrange.com      -o-   
> http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org              -o-           
>  http://virt-manager.org :|
> |: http://autobuild.org       -o-       
>  http://search.cpan.org/~danberr/ :||: http://entangle-photo.org     
>  -o-       http://live.gnome.org/gtk-vnc :|
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20160401/38534108/attachment.htm>


More information about the libvirt-users mailing list