Persistent Reserve Out (5Fh)
Persistent Reserve Out (5Fh) uses service actions to create, manage, or remove a persistent reservation.
The application client provides a registered reservation key that identifies the initiator. An application client may use the Persistent Reserve In (5Eh) command to obtain the reservation key for the initiator holding a persistent reservation. The client may use the Persistent Reserve Out command to preempt that persistent reservation.
Note:
For more information on command processing when the library has a persistent reservation, see Reservation Handling.
- Service Action
-
00h = Register — registers or unregisters a reservation key.
01h = Reserve — creates a persistent reservation of the scope and type specified in Byte 2.
02h = Release — removes an active persistent reservation, if the initiator holds the persistent reservation.
03h = Clear — clears all persistent reservations for all initiators and reset all reservation keys to 0.
04h = Preempt — removes all reservations and registrations for the initiators associated with the service action reservation key in the parameter list.
05h = Preempt and Abort — perform a Preempt action and terminate all commands by initiators associated with the cleared service action reservation key. This also clears any CAP locks and contingent allegiance in effect for these initiators.
06h = Register and Ignore Existing Key — registers or unregisters a reservation key with the library.
07h = Register and Move — register a reservation key for another I_T nexus with the device server and move a persistent reservation to that I_T nexus.
- Scope
-
Indicates whether a persistent reservation applies to an entire logical unit or to an element.
0h = The persistent reservation applies to the logical unit (library or partition). This is the only valid value.
- Type
-
3h = Exclusive access. The initiator holding the persistent reservation has exclusive access. Some commands (such as Move Medium) are only allowed for the persistent reservation holder.
6h = Exclusive Access, Registrants Only. Any currently registered initiator has exclusive access. Some commands (such as Move Medium) are only allowed for registered initiators.
8h = Exclusive Access, All Registrants: Some commands (for example, Move Medium) are only allowed for registered I_T nexuses. Each registered I_T nexus is a persistent reservation holder.
- Parameter List Length
-
The parameter data for the Persistent Reserve Out command includes all fields, even when a field is not required for the specified service action.
Persistent Reserve Out Parameter List
- Reservation Key
-
An 8-byte value that identifies the initiator.
- Service Action Reservation Key
-
This field contains information needed for five service actions: Register, Register and Ignore Existing Key, Preempt, Preempt and Abort, and Register and Move.
- SPEC_I_PT (Specify Initiator Ports - not supported)
-
The Specify Initiator Ports bit is only applicable to the Register and Register and Ignore Service Actions:
0 = The library shall apply the registration only to the I_T nexus that sent the Persistent Reservation Out command.
1 = The additional parameter data shall include a list of Transport IDs and the library shall also apply the registration to the I_T nexus for each initiator port specified by a TransportID.
- ALL_TG_PT (All Target Ports - not supported)
-
The All Target Ports bit is not supported and must be set to 0.
- APTPL (Activate Persist Through Power Loss)
-
The Activate Persist Through Power Loss bit is only valid for the Register, Register and Ignore, and Register and Move service actions and is defined as follows:
0 = The library shall not preserve any persistent reservation and all registrations if power is lost and later returned.
1 = The library preserves any persistent reservation and all registrations if power is lost and later returned.
Table 2-1 Persistent Reserve Out Service Actions and Valid Parameters
Service Action | Scope | Type | Reservation Key | Service Action Res. Key | ALL_TG_PT, and APTPL | SPEC_I_PT |
---|---|---|---|---|---|---|
Register |
Ignored |
Ignored |
Valid |
Valid |
Valid |
Valid |
Register and Ignore |
Ignored |
Ignored |
Ignored |
Valid |
Valid |
Valid |
Reserve |
LU_SCOPE |
Valid |
Valid |
Ignored |
Ignored |
Ignored |
Release |
LU_SCOPE |
Valid |
Valid |
Ignored |
Ignored |
Ignored |
Clear |
Ignored |
Ignored |
Validy |
Ignored |
Ignored |
Ignored |
Preempt |
LU_SCOPE |
Valid |
Valid |
Valid |
Ignored |
Ignored |
Preempt Abort |
LU_SCOPE |
Valid |
Valid |
Valid |
Ignored |
Ignored. |
Register and Move |
LU_SCOPE |
Valid |
Valid |
Valid |
Valid |
Ignored |
Table 2-2 Service Action Reservation Key Information
If the service action is... | Then the information in the field is the... |
---|---|
Register |
New reservation key to be registered. |
Register and Ignore Existing Key |
New reservation key to be registered. |
Preempt |
Reservation key of the persistent reservation being preempted. |
Preempt and Abort |
Reservation key of the persistent reservation being preempted. |
Register and Move |
Reservation key to be registered on the specified I_T nexus. |