Re: Linux Cluster using shared scsi

James Bottomley
2001-05-01T20:54:53Z

Eric.Ayers@intec-telecom-systems.com said:
> Does this package also tell the kernel to "re-establish" a reservation
> for all devices after a bus reset, or at least inform a user level
> program? Finding out when there has been a bus reset has been a
> stumbling block for me.

alan@lxorguk.ukuu.org.uk said:
> You cannot rely on a bus reset. Imagine hot swap disks on an FC
> fabric. I suspect the controller itself needs to call back for
> problem events

Essentially, there are many conditions which cause a quiet loss of a SCSI-2
reservation. Even in parallel SCSI: Reservations can be silently lost because
of LUN reset, device reset or even simple powering off the device.

The way we maintain reservations for LifeKeeper is to have a user level daemon
ping the device with a reservation command every few minutes. If you get a
RESERVATION_CONFLICT return you know that something else stole your
reservation, otherwise you maintain it. There is a window in this scheme
where the device may be accessible by other initiators but that's the price
you pay for using SCSI-2 reservations instead of the more cluster friendly
SCSI-3 ones. In a kernel scheme, you may get early notification of
reservation loss by putting a hook into the processing of
CHECK_CONDITION/UNIT_ATTENTION, but it won't close the window entirely.

James