US8738701B2

Arbitration of disk ownership in a storage pool

Summary by NHIP

Network Partition Disk Ownership

The method defends a cluster node's persistent reservation by detecting a challenger's key change during a network partition. The defender updates its own key in the registration data structure without removing the challenger's key until partition notification arrives.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

The present invention extends to methods, systems, and computer program products for implementing persistent reservation techniques for establishing ownership of one or more physical disks. These persistent reservation techniques can be employed to determine ownership of physical disks in a storage pool as well as in any other storage configuration. Using the persistent reservation techniques of the present invention, when a network partition occurs, a defender of a physical disk does not remove a challenger's registration key until the defender receives notification that the challenger is no longer in the defender's partition. In this way, pending I/O from applications executing on the challenger will not fail due to the challenger's key being removed until the proper ownership of the physical disk can be resolved.

US8738701B2, drawing sheet 1
Sheet 1 of 15

Term

Projected expiry 7 June 2032.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 51, average(NHIP)At a first node of a cluster, the first node owning a persistent reservation on a storage device shared by nodes of the cluster, a method for the first node to defend against another node's attempt to preempt the first node's persistent reservation, the method comprising:after a network partition that prevents the first node from communicating with another node in the cluster, and prior to the first node being notified of the network partition, the first node detecting that another node comprising a challenger node in the cluster has attempted to reserve the storage device shared by nodes of the cluster, the detection comprising identifying that the challenger node has changed the challenger node's registration key in a registration data structure;and the first node changing the first node's registration key which was registered in the registration structure to a new registration key that the challenger node is unaware of, registering the new registration key in the registration data structure, and reserving the new registration key in a reservation data structure rather than removing any registration key associated with the challenger node from the registration data structure prior to being notified of the network partition.
  2. 12
    At a second node of a cluster, the cluster sharing a storage device for which a first node in the cluster has a persistent reservation, a method for the second node to attempt to remove the first node's persistent reservation so as to obtain a persistent reservation for the second node, the method comprising:the second node receiving a notification that a network partition has occurred that prevents the second node from communicating with the first node;and the second node attempting to reserve the second node's registration key so as to obtain a persistent reservation on the storage device, the attempt to reserve comprising: the second node reading the registration key of the first node that is stored in a reservation data structure and storing the first node's registration key;the second node changing the second node's registration key in a registration data structure and registering the changed registration key in the registration data structure;and the second node sleeping for a specified duration of time prior to issuing a preempt command to remove the first node's registration key from the reservation data structure.
  3. 20
    A cluster of nodes comprising:a first node that owns a persistent reservation on each of a plurality of storage devices in a pool of storage devices shared by the nodes of the cluster, the first node performing the following to defend its persistent reservation on each storage device in the pool: after a network partition that prevents the first node from communicating with a second node in the cluster, and prior to the first node being notified of the network partition, detecting that the second node in the cluster comprising a challenger node intends to take ownership of each storage device in the pool, the detection comprising identifying that the challenger node has added an incremented version of the challenger node's registration key to a registration data structure for each storage device;and for each storage device, changing the first node's registration key which was registered in the registration structure to a new registration key that the challenger node is unaware of, registering the incremented registration key in the registration data structure, and reserving the incremented registration key in a reservation data structure;the challenger node that performs the following to attempt to obtain a persistent reservation on each storage device in the pool upon being notified of the network partition: for each storage device, reading the registration key of the first node that is stored in the reservation data structure and storing the first node's registration key;for each storage device, incrementing the second node's registration key in the registration data structure, and registering the incremented registration key in the registration data structure;and sleeping for a specified duration of time prior to issuing a preempt command on each of the storage devices to attempt to preempt the first registration key from the reservation data structure on each storage device.