Hi Sage,
the recommended way to protect rbd from multiple simultaneous mapping is
just as the follows:
- identify old rbd lock holder
- blacklist old owner
- break the old rbd lock through "rbd lock remove"
- map rbd image on new host
However, i am wondering how do we handle the situation as the below
timeline sequences:
1. node1 locks the rbd image, doing the IO request, the IO is
outstanding in the osds and
not commit and reply to client yet
2. node2 takes over the corresponding IO service due to some network
partition issue,
add node1 into the blacklist to all osds successfully and resume
the IO.
3. assuming the step-1 outstanding IO and step-2 IO targeted the same
area of the fs metadata
on the rbd devices. step-2 successfully persist the data and reply
to client.
then, the following laggy IO from step-1 might override and corrupt
what we have written in step-2.
so, how do we prevent this kind of corruption happening?
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html