CPC G06F 3/0617 (2013.01) [G06F 3/0635 (2013.01); G06F 3/0653 (2013.01); G06F 3/067 (2013.01)] | 20 Claims |
1. A computer-implemented method comprising:
generating a representation of a set of components associated with a storage system, the representation comprising information corresponding to one or more data mirrors in the set of components and one or more paths associated with the set of components, wherein the one or more paths comprise one or more of: at least one data path and at least one control path;
obtaining a plurality of requests from a component in the set of components, wherein each request is a request for permission to perform a corresponding action;
determining, in response to obtaining respective ones of the plurality of requests, whether the corresponding action is designated as critical or non-critical;
in response to determining the corresponding action is designated as critical:
determining, based at least in part on the generated representation, whether performing the corresponding action will result in a first unavailability state, wherein the first unavailability state comprises an unavailability of a last remaining data mirror and/or an unavailability of a last remaining data path in the storage system;
providing, to the component, a first reply, in response to determining that performing the corresponding action would result in the first unavailability state, or a second reply, in response to determining that performing the corresponding action would not result in the first unavailability state, wherein the first reply comprises a negative acknowledgement to indicate that the corresponding action should not be performed and the second reply comprises the second reply comprises an acknowledgement to indicate that the corresponding action can be performed;
in response to determining the corresponding action is designated as non-critical:
determining, based at least in part on the generated representation, whether performing the corresponding action would result in a second unavailability state, where the second unavailability state comprises an unavailability of the one or more data mirrors below a data mirror threshold level and/or an unavailability of the one or more data paths below a data path threshold level in the storage system, wherein the data mirror threshold level is greater than one data mirror and the data path threshold level is greater than one data path;
providing, to the component, the first reply, in response to determining that performing the corresponding action would result in the second unavailability state, or the second reply, in response to determining that performing the respective action would not result in the second unavailability state;
wherein the plurality of requests comprises a first request for permission to perform an action designated as critical and a second request for permission to perform an action designated as non-critical, and wherein performance of the corresponding action by the component is allowed or prevented based at least in part on the first reply or the second reply;
wherein the method is performed by at least one processing device comprising a hardware processor.
|