Hi Ilya,
yes, it has race conditions. However, it seems to address the specific case that is
causing us headaches.
About possible improvements. I tried to understand the documentation about rbd image
locks, but probably failed. I don't understand what the difference between an
exclusive lock and a shared lock is. As far as I understood, neither of these locks have
any influence on client IO, nor do they affect the exclusive write-lock transition.
Does omitting --shared make the rbd lock command an atomic operation, meaning that lock
operations become serialised and two clients cannot add the same lock in a race (only one
client will succeed in a race)? Or does it mean that only one client gets write access? If
it does have influence on client IO, how would the hand-over during live migration have to
happen?
Thanks for adding a note to the documentation and any further help!
Best regards,
=================
Frank Schilder
AIT Risø Campus
Bygning 109, rum S14
behaviour.