Removing persistent reserves for Tru64 UNIX 5.x

In the clustered environment, Hewlett-Packard Tru64 5.x hosts place a persistent reserve whenever you assign a LUN. If you complete a FlashCopy® or Remote Mirror and Copy operation on a LUN that has persistent reserve, it fails. If you want to complete a FlashCopy or Remote Mirror and Copy operation, remove the persistent reserve on the target LUN before you assign the LUN.

For example, assume that there are two Tru64 5.x hosts that are called Alpha1 and Alpha2 that can access storage unit LUNs with Fibre Connections. One Fibre Connection goes from the KGPSA-xx/FCA2xxx in Alpha1 to the switch. One Fibre Connection goes from Alpha2 to the switch. Another Fibre Connection goes from the switch to the storage unit.

Use a storage unit volume, for example 000-02112, as a target LUN to complete a FlashCopy. There are two hosts and four connections: two from Alpha1 and two from Alpha2. The storage unit volume 000-02112 has four registrants. One registrant is reserved. Use the essvol script to find the devices that are associated with storage unit volume 000-02112 on each Trucluster node.

The following example shows how to remove a persistent reserve using the essvol script:

alpha1> essvol
DS vol, H/W ID 176:
  phys_location = bus-9-targ-0-lun-0
  dev_base_name = dsk46
  capacity = 3906304
  serial_number = SCSI-WWID:01000010:6005-0763-09FF-C7B8-0000-0000-0000-2111

DS vol, H/W ID 177:
  phys_location = bus-9-targ-0-lun-7
  dev_base_name = dsk47
  capacity = 3906304
  serial_number = SCSI-WWID:01000010:6005-0763-09FF-C7B8-0000-0000-0000-2112

alpha2> essvol
DS vol, H/W ID 176:
  phys_location = bus-4-targ-0-lun-0
  dev_base_name = dsk46
  capacity = 3906304
  serial_number = SCSI-WWID:01000010:6005-0763-09FF-C7B8-0000-0000-0000-2111

DS vol, H/W ID 177:
  phys_location = bus-3-targ-0-lun-1
  dev_base_name = dsk47
  capacity = 3906304
  serial_number = SCSI-WWID:01000010:6005-0763-09FF-C7B8-0000-0000-0000-2112

Use the scu command to see the reservations on these devices. The following examples show what you see when you use the scu command. You can associate dsk47 on Alpha1 and Alpha2 with storage unit volume 000-02112.

alpha1> scu –f /dev/rdisk/dsk47c show reservations
Persistent Reservation Header:

                  Generation Value: 49
                 Additional Length: 16

Reservation Descriptors:

                   Reservation Key: 0x30001
            Scope-Specific Address: 0
                  Reservation Type: 0x5 (Write Exclusive Registrants Only)
                 Reservation Scope: 0 (LU - full logical unit)
                     Extent Length: 0
alpha2> scu –f /dev/rdisk/dsk47c show reservations
Persistent Reservation Header:

                  Generation Value: 49
                 Additional Length: 16

Reservation Descriptors:

                   Reservation Key: 0x30001
            Scope-Specific Address: 0
                  Reservation Type: 0x5 (Write Exclusive Registrants Only)
                 Reservation Scope: 0 (LU - full logical unit)
                     Extent Length: 0

Each device shows 0x30001 as a reservation key. You must issue the scu command again to remove the persistent reserve using reservation key 0x30001 on each node. Tru64 places a unique reservation key on each LUN whenever the storage unit assigns the LUN. The reservation key can be removed only from that specific host to which it is assigned. Because it is not possible to tell exactly which registrant on the host holds the reservation, you must issue an scu clear command on each node in the cluster. The following example shows the output. One of the two commands that you see in this example clears the persistent reserve on storage unit volume 000-02112.

alpha1> scu –f /dev/rdisk/dsk47c press clear key 0x30001
alpha2> scu –f /dev/rdisk/dsk47c press clear key 0x30001

Use the sic command to check reservations. The following example shows the output. One of the two commands you see in this example clears the persistent reserves on storage unit volume 000-02112.

alpha1> scu -f /dev/rdisk/dsk47c show reservations 

Persistent Reservation Header:

                  Generation Value: 50
                  Additional Length: 0
Reservation Descriptors:

Alpha2> scu -f /dev/rdisk/dsk47c show reservations

Persistent Reservation Header:

                  Generation Value: 50
                  Additional Length: 0
Reservation Descriptors:

After removing the persistent reserve from a storage unit volume, you can use it as a target LUN for FlashCopy or Remote Mirror and Copy.