Access control in a flash 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;
responsive to generating a current heartbeat, issue a lease based on an extension calculated from a prior heartbeat;
determine that a lease is invalid based on the lease extension calculated from the prior heartbeat being smaller than a takeover window calculated from the prior heartbeat;
responsive to determining that the lease is invalid, operate as a secondary storage controller instead of a primary storage controller, wherein the first storage controller, operating as the secondary storage controller, is not allowed to perform a state-changing operation on the one or more storage devices;
determine that the lease is valid based on the lease extension not being smaller than the takeover window; and
responsive to determining that the lease is valid, perform a number of pending state-changing operations, wherein the number is less than or equal to a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism;
recheck if the lease is valid responsive to performing the number of pending state-changing operations; and
perform a second number of state-changing operations responsive to determining the lease is valid, wherein the second number is less than or equal to the maximum number.
2 Assignments
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
20 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;
responsive to generating a current heartbeat, issue a lease based on an extension calculated from a prior heartbeat;
determine that a lease is invalid based on the lease extension calculated from the prior heartbeat being smaller than a takeover window calculated from the prior heartbeat;
responsive to determining that the lease is invalid, operate as a secondary storage controller instead of a primary storage controller, wherein the first storage controller, operating as the secondary storage controller, is not allowed to perform a state-changing operation on the one or more storage devices;determine that the lease is valid based on the lease extension not being smaller than the takeover window; and
responsive to determining that the lease is valid, perform a number of pending state-changing operations, wherein the number is less than or equal to a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism;recheck if the lease is valid responsive to performing the number of pending state-changing operations; and perform a second number of state-changing operations responsive to determining the lease is valid, wherein the second number is less than or equal to the maximum number. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A plurality of storage controllers:
-
wherein each of the storage controllers are configured to couple to one or more client computer systems via one or more data communications links and each of the storage controllers are also coupled to one or more storage devices via one or more data communications links, wherein a first storage controller is configured to; generate heartbeats on intervals of a first period of time;
responsive to generating a current heartbeat, issue a lease based on an extension calculated from a prior heartbeat;
determine that a lease is invalid based on the lease extension calculated from the prior heartbeat being smaller than a takeover window calculated from the prior heartbeat;
responsive to determining that the lease is invalid, operate as a secondary storage controller instead of a primary storage controller, wherein the first storage controller, operating as the secondary storage controller, is not allowed to perform a state-changing operation on the one or more storage devices;determine that the lease is valid based on the lease extension not being smaller than the takeover window; and
responsive to determining that the lease is valid, perform a number of pending state-changing operations, wherein the number is less than or equal to a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism recheck if the lease is valid responsive to performing the number of pending state-changing operations; andperform a second number of state-changing operations responsive to determining the lease is valid, wherein the second number is less than or equal to the maximum number. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method comprising:
-
generating, by a first storage controller in storage system that includes a plurality of storage controllers, heartbeats on intervals of a first period of time, wherein the first storage controller and a second storage controller are each configured to couple to one or more client computer systems via one or more data communications links and also coupled to one or more storage devices via one or more data communications links, and wherein the first storage controller operates as a primary storage controller and the second storage controller operates as a secondary storage controller; responsive to generating a current heartbeat, issuing, by the first storage controller, a lease based on an extension calculated from a prior heartbeat; and determining that a lease is invalid based on the lease extension calculated from the prior heartbeat being smaller than a takeover window calculated from the prior heartbeat; responsive to determining that the lease is invalid, operating as the secondary storage controller instead of the primary storage controller, wherein the first storage controller, operating as the secondary storage controller, is not allowed to perform a state-changing operation on the one or more storage devices, and wherein the first storage controller of the plurality of storage controllers and a second storage controller of the plurality of storage controllers are configured to perform non-state-changing operations on the one or more storage devices; determining that the lease is valid based on the lease extension not being smaller than the takeover window; responsive to determining that the lease is valid, performing a number of pending state-changing operations, wherein the number is less than or equal to a maximum number of state-changing operations that can be performed without causing data loss due to a failure of a fencing mechanism; recheck if the lease is valid responsive to performing the number of pending state-changing operations; and perform a second number of state-changing operations responsive to determining the lease is valid, wherein the second number is less than or equal to the maximum number. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification