I'm exploring additional clustering options using iSCSI-SCST. After some
discussion on this list I found out that an Active/Active iSCSI setup
wouldn't work mainly due to SCSI PRs even if the data caching issues were
worked out.
After this discussion I started exploring whether SCST could work properly
in a failover clustering scenario. Ideally I would have two (sets of)
target portal addresses that would float between two nodes based on the
cluster infrastructure. iSCSI-SCST would have two sets of targets bound to
these IPs and each set of targets would be enabled on the node that is
actively holding that set of targets. IE: Under normal operation, node 1
would enable half the targets bound to cluster virtual address "A", and node
2 would enable half the targets bound to a cluster virtual address "B". All
these targets would be using (different) Cluster LVM volumes for backend
storage via FILEIO. Under a failover scenario, the Cluster Manager would
move the failed virtual address to the other node and the targets associated
with the iqn and portal would be enabled on the failover node.
Based on the documentation that I have read, this should in theory work.
The main outstanding issue is whether the other node will honor existing
SCSI PRs in a failover event. My understanding is that SCSI PRs are written
to files in /var/lib/scst/pr when created for "persistence through power
loss" events. My questions regarding SCST PRs are:
According to the documentation, "The 'Persistence Through Power Loss'
feature is not available in the procfs build, because the SCST proc
interface doesn't allow to keep persistent Relative Target IDs of each
target between reboots/reloads." What about separate systems? Will
different systems have the same Relative Target IDs if they use the same
(synced) configuration file? Both nodes should be using the same target
IQN, the same backend storage names (cLVM volumes), same portal IP, etc.
If the PR directory is located on a cluster filesystem (so that multiple
nodes can read/write data in the same directory without corruption), would
it be possible for a failover node to be able to read these files and
implement the proper SCSI PRs when it starts iSCSI Target services in a
failover event?
At what point in initialization are the PR files in /var/lib/scst/pr read?
Do they get read during daemon startup, or are they checked / read when a
particular target is enabled? Would I have to restart the iSCSI-SCST daemon
or will they get used/read when the sysfs parameters are modified (targets
added / enabled)?
Thanks in advance for any help in answering questions.
Best regards,
Calvin Morrow
|