BACKGROUND

In typical data storage systems, storage processors perform data storage operations on behalf of host computers. Such data storage systems typically include caches that sit between the storage processors and secondary (or backend) storage.

Such a cache may be formed from non-volatile random-access memory (NVRAM). Compared to ordinary solid state disk (SSD) storage, NVRAM may provide higher performance/lower latency.

SUMMARY

In a particular data storage system, the cache may include fixed physically paired NVRAM disks (i.e., fixed disk pairs) which hold a logger tier. Data that is en route from a storage processor to secondary storage is cached within the logger tier.

When each fixed disk pair is healthy, the data storage system is in an optimal mode because each fixed disk pair is able to store mirroring copies of data for redundancy. Accordingly, if one NVRAM disk of a particular fixed disk pair fails, the logger tier remains intact and the data storage system is able to continue operation in a degraded mode where the other NVRAM disk of the particular fixed disk pair continues to store data.

However, if the other NVRAM disk of the particular fixed disk pair fails, the data storage system must be brought offline. In particular, the portion of the logger tier formed by that particular fixed disk pair is now inaccessible thus preventing the data storage system from performing further data storage operations. Unfortunately, the data storage system must remain offline until the particular fixed disk pair is repaired.

In contrast to the above-described situation, improved techniques are directed to maintaining availability of a non-volatile cache by utilizing virtual NVRAM drive sets (e.g., virtual drive pairs). Here, NVRAM drives may be configured into initial virtual drive sets that form the non-volatile cache. However, if all of the NVRAM drives of an initial virtual drive set were to fail, the remaining NVRAM drives may be reconfigured into new virtual drive sets that form the non-volatile cache (e.g., where each new virtual drive set includes at least one NVRAM drive). Accordingly, non-volatile cache availability is maintained even if all of the NVRAM drives of an initial virtual drive set are lost.

One embodiment is directed to a method of maintaining availability of a non-volatile cache. The method includes arranging a plurality of NVRAM drives into initial drive sets that form the non-volatile cache. The method further includes detecting a failed initial drive set among the initial drive sets. The plurality of NVRAM drives now includes failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives. The method further includes, in response to detecting the failed initial drive set, re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache.

Another embodiment is directed to data storage equipment including memory and control circuitry coupled to the memory. The memory stores instructions which, when carried out by the control circuitry, cause the control circuitry to perform a method of:(A) arranging a plurality of NVRAM drives into initial drive sets that form a non-volatile cache,(B) detecting a failed initial drive set, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives, and(C) in response to detecting the failed initial drive set, re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache.

Yet another embodiment is directed to a computer program product having a non-transitory computer readable medium which stores a set of instructions to maintain availability of a non-volatile cache. The set of instructions, when carried out by computerized circuitry, causes the computerized circuitry to perform a method of:(A) arranging a plurality of NVRAM drives into initial drive sets that form the non-volatile cache;(B) detecting a failed initial drive set, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives; and(C) in response to detecting the failed initial drive set, re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache.

In some arrangements, arranging the plurality of NVRAM drives into the initial drive sets includes creating a number of initial drive sets from the plurality of NVRAM drives. Additionally, rearranging the remaining non-failed NVRAM drives includes creating a number of new drive sets from the remaining non-failed NVRAM drives that equals the number of initial drive sets created from the plurality of NVRAM drives.

In some arrangements, the failed initial drive set includes a pair of NVRAM drives. Additionally, detecting the failed initial drive set includes sensing that each NVRAM drive of the pair of NVRAM drives has failed.

In some arrangements, the plurality of NVRAM drives includes a first group of NVRAM drives that receives power from a first battery backup unit (BBU) and a second group of NVRAM drives that receives power from a second BBU. Additionally, arranging the plurality of NVRAM drives into the initial drive sets includes creating each initial drive set from an NVRAM drive of the first group and an NVRAM drive of the second group.

In some arrangements, the method further includes, prior to detecting the failed initial drive set, copying data from a buffer of a storage processor into each NVRAM drive of the failed initial drive set. Additionally, the method further includes, in response to detecting the failed initial drive set, copying the data from the buffer of the storage processor into standby storage.

In some arrangements, the method further includes, after re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into the new drive sets, loading the copied data from the standby storage into one of the new drive sets.

In some arrangements, the method further includes, after re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into the new drive sets, reloading the copied data into the buffer of the storage processor.

In some arrangements, the method further includes, prior to detecting the failed initial drive set, performing data storage operations from the storage processor, the data storage operations caching data within log-structured storage provided by the non-volatile cache.

In some arrangements, the method further includes, in response to detecting the failed initial drive set, halting a datapath that includes the log-structured storage. Additionally, the method further includes, after the copied data is loaded from the standby storage into the one of the new drive sets and after the copied data is reloaded into the buffer of the storage processor, resuming the datapath that includes the log-structured storage.

In some arrangements, arranging the plurality of NVRAM drives into initial drive sets that form the non-volatile cache includes constructing initial virtual NVRAM storage objects from the plurality of NVRAM drives. Each initial virtual NVRAM storage object includes a pair of NVRAM drives operating as a mirror to store mirroring copies of data.

In some arrangements, rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives includes constructing new virtual NVRAM storage objects from the remaining non failed NVRAM drives of the plurality of NVRAM drives. Each new virtual NVRAM storage object includes a pair of NVRAM drives operating as a mirror to store mirroring copies of data.

In some arrangements, the failed initial drive set includes a pair of NVRAM drives. Additionally, the method further includes, prior to detecting the failed initial drive set, operating the pair of NVRAM drives in an optimal state in which each of a first NVRAM drive and a second NVRAM drive of the pair of NVRAM drives stores a respective copy of data to form a mirror.

In some arrangements, the method further includes, after the pair of NVRAM drives operates in the optimal state and prior to detecting the failed initial drive set, operating the pair of NVRAM drives in a degraded state in which one of first and second NVRAM drives has failed and another of the first and second NVRAM drives continues to store a respective copy of the data.

In some arrangements, detecting the failed initial drive set includes detecting that each of the first NVRAM drive and the second NVRAM drive of the pair of NVRAM drives has failed. Since the initial drive set is virtual (e.g., a software defined virtual pair instead of a fixed/physical pair), another virtual drive set may be created to replace the initial drive set.

It should be understood that, in the cloud context, at least some electronic circuitry (e.g., hosts, backup sites, etc.) is formed by remote computer resources distributed over a network. Such an electronic environment is capable of providing certain advantages such as high availability and data protection, transparent operation and enhanced security, big data analysis, etc.

Other embodiments are directed to electronic systems and apparatus, processing circuits, componentry, computer program products, and so on. Some embodiments are directed to various methods, electronic components and circuitry which are involved in maintaining availability of a non-volatile cache.

