Bug 616114

Summary: [RFE] Ability to add new LUNs to registration for a node w/o needing to restart cluster
Product: Red Hat Enterprise Linux 6 Reporter: Perry Myers <pmyers>
Component: fence-agentsAssignee: Ryan O'Hara <rohara>
Status: CLOSED CURRENTRELEASE QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: cluster-maint, snagar
Target Milestone: rcKeywords: FutureFeature, TestOnly
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
: 616138 (view as bug list) Environment:
Last Closed: 2010-11-23 21:43:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 616138    

Description Perry Myers 2010-07-19 17:28:42 UTC
Description of problem:
Presently LUN registration/reservation is done by either the unfencing functionality of fence-scsi during node startup (RHEL6) or the scsi-reserve init script during node startup (in RHEL5)

Because these scripts are only run at node startup, the set of LUNs that can be fenced via fence_scsi are fixed.

Need to be able to dynamically add new storage (LUNs) to a cluster w/o needing to restart the entire cluster or reboot nodes.

One possibility here is to restrict the use case to clusters where clvm is used to detect the available LUNs for fencing.  This way there is no static list of block devices that need to be edited in cluster.conf.

So the procedure for adding a new LUN to a running cluster node could be:

1. Add the LUN to all nodes in the cluster from storage management UI
2. Create a new VG and enable the cluster bit so that the VG is controlled by clvm
3. On each node in the cluster, run a command that registers that new LUN with the key for the specific host.  This would need to be repeated on each node in the cluster
4. Step 2 should be done quickly enough across all hosts so that the chances of fencing occurring while doing this storage addition are minimized

Once all nodes have the new LUN and have registered on that LUN, a fencing operation should automatically pick that LUN and issue the preempt and abort command on it.

Comment 1 Ryan O'Hara 2010-07-19 17:54:00 UTC
Just run 'scsi_reserve start'. You can run this command at any time (assuming the cluster is up). It will get a new list of devices and issue a registration and reservation (if needed) command to all devices, including the new one.

Comment 2 Perry Myers 2010-07-19 18:06:34 UTC
Ah, ok.  And you just mentioned to me on irc that this can also be done w/ fence_node -U to do unfencing operation.

I'm going to leave this bz open though both for doc impact and to make sure we get testing of this specific use case.

Comment 3 Ryan O'Hara 2010-07-19 18:28:24 UTC
(In reply to comment #2)
> Ah, ok.  And you just mentioned to me on irc that this can also be done w/
> fence_node -U to do unfencing operation.

The fence_node -U is specific to RHEL6. In RHEL5, running 'scsi_reserve start' or 'scsi_reserve restart' will re-register all devices. The list of devices is determined at run-time, so any new devices should be detected.

By "re-register" I mean that all devices that are found will be registered, even if they are already registered. This works by using the sg_persist register-ignore command, which will overwrite any existing registration key for that particular I_T nexus.

Comment 4 Ryan O'Hara 2010-09-15 22:08:24 UTC
Can we close this bug? Not sure what expected output is.

Comment 5 Siddharth Nagar 2010-11-23 21:43:46 UTC
This functionality already exists in RHEL 6. Closing this BZ.