Distributed management of a storage system
First Claim
1. A storage system comprising:
- a plurality of storage controllers configured to couple to one or more client computer systems via one or more data communications links; and
one or more storage devices coupled to the plurality of storage controllers;
wherein a first storage controller of the plurality of storage controllers is configured to;
generate heartbeats on intervals of a first period of time;
issue, for a first portion of the storage devices, a lease responsive to generating a current heartbeat;
determine if a lease is valid;
responsive to determining that the lease is valid, perform a state-changing operation on the first portion of the storage devices;
detect a plurality of pending state-changing operations targeting the first portion of the storage devices;
determine a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism; and
perform a first number of state-changing operations on the first portion of the storage devices responsive to determining the particular lease is valid, wherein the first number is less than or equal to the maximum number; and
wherein a second storage controller of the plurality of storage controllers is configured to;
generate heartbeats on intervals of a second period of time;
issue, for a second portion of the storage devices, a lease responsive to generating a current heartbeat;
determine if a lease is valid; and
responsive to determining that the lease is valid, perform a state-changing operation on the second portion of the storage devices; and
wherein the first storage controller and the second storage controller are configured to perform non-state-changing operations on both portions of the storage devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, apparatuses, methods, and computer-readable storage mediums for performing lease-based fencing using a time-limited lease window. During the time-limited lease window, writes to a shared storage medium are permitted, while writes are denied for expired leases. When a successful heartbeat is generated for a primary storage controller, the lease window is extended for the primary storage controller from the time of a previous heartbeat. Accordingly, a prolonged stall between successive heartbeats by the primary storage controller will result in the newly extended lease being expired at the time it is granted. This scheme prevents a split brain scenario from occurring when a secondary storage controller takes over as the new primary storage controller in response to detecting the stall.
-
Citations
17 Claims
-
1. A storage system comprising:
-
a plurality of storage controllers configured to couple to one or more client computer systems via one or more data communications links; and one or more storage devices coupled to the plurality of storage controllers; wherein a first storage controller of the plurality of storage controllers is configured to; generate heartbeats on intervals of a first period of time; issue, for a first portion of the storage devices, a lease responsive to generating a current heartbeat; determine if a lease is valid; responsive to determining that the lease is valid, perform a state-changing operation on the first portion of the storage devices; detect a plurality of pending state-changing operations targeting the first portion of the storage devices; determine a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism; and perform a first number of state-changing operations on the first portion of the storage devices responsive to determining the particular lease is valid, wherein the first number is less than or equal to the maximum number; and wherein a second storage controller of the plurality of storage controllers is configured to; generate heartbeats on intervals of a second period of time; issue, for a second portion of the storage devices, a lease responsive to generating a current heartbeat; determine if a lease is valid; and responsive to determining that the lease is valid, perform a state-changing operation on the second portion of the storage devices; and wherein the first storage controller and the second storage controller are configured to perform non-state-changing operations on both portions of the storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A plurality of storage controllers:
-
wherein each storage controller is configured to couple to one or more client computer systems via one or more data communications links and each storage controller is coupled to a plurality of storage devices; wherein a first storage controller is configured to; generate heartbeats on intervals of a first period of time; issue, for a first portion of the storage devices, a lease responsive to generating a current heartbeat; determine if a lease is valid; responsive to determining that the lease is valid, perform a state-changing operation on the first portion of the storage devices; detect a plurality of pending state-changing operations targeting the first portion of the storage devices; and determine a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism; and perform a first number of state-changing operations on the first portion of the storage devices responsive to determining the particular lease is valid, wherein the first number is less than or equal to the maximum number; and wherein a second storage controller is configured to; generate heartbeats on intervals of a second period of time; issue, for a second portion of the storage devices, a lease responsive to generating a current heartbeat; determine if a lease is valid; and responsive to determining that the lease is valid, perform a state-changing operation on the second portion of the storage devices; and wherein the first storage controller and the second storage controller are configured to perform non-state-changing operations on both portions of the storage devices. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method comprising:
-
generating, by a first storage controller, heartbeats on intervals of a first period of time; issuing, by the first storage controller for a first portion of the storage devices, a lease responsive to generating a current heartbeat; determining, by the first storage controller, if a lease is valid; responsive to determining that the lease is valid, perform by the first storage controller, a state-changing operation on the first portion of the storage devices; generating, by a second storage controller, heartbeats on intervals of a second period of time; issuing, by the second storage controller for a second portion of the storage devices, a lease responsive to generating a current heartbeat; determining, by the second storage controller, if a lease is valid; responsive to determining that the lease is valid, perform by the second storage controller, a state-changing operation on the second portion of the storage devices; detecting, by the first storage controller, a plurality of pending state-changing operations targeting the first portion of the storage devices; determining, by the first storage controller, a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism; and performing, by the first storage controller, a first number of state-changing operations on the first portion of the storage devices responsive to determining the particular lease is valid, wherein the first number is less than or equal to the maximum number; wherein the first storage controller and the second storage controller are configured to perform non-state-changing operations on both portions of the storage devices. - View Dependent Claims (14, 15, 16, 17)
-
Specification