Data storage systems
Abstract
storage adapter for use in a data storage subsystem includes a controlling processor, a volatile memory, and a nonvolatile memory “dump device.” The storage adapter also includes a battery that can be used to provide sufficient power to the storage adapter to allow data from the volatile memory to be written to the nonvolatile memory of the storage adapter under the control of the processor in the event of an interruption or failure in the main power supply to the storage adapter, i.e. to preserve data stored in the volatile memory in that event. The processor uses the current state of charge of the battery to determine the amount of data that can be “dumped” to the nonvolatile dump device using the battery in its current state. The processor then uses that determined amount of data to control the storage of data in the volatile memory.
Claims
exact text as granted — not AI-modified1 . An apparatus for use in a data storage subsystem comprising:
a volatile memory; a nonvolatile memory; a temporary power supply for supplying temporary power to the apparatus after interruption of a main power supply to the apparatus; means for detecting an interruption in the power supply to the volatile memory; means for, in the event of such detection, writing data stored in the volatile memory to the nonvolatile memory using power supplied by the temporary power supply; means for determining the state of the temporary power supply; and means for determining the amount of data stored in the volatile memory that can be written to the nonvolatile memory using power supplied by the temporary power supply on the basis of the determined state of the temporary power supply.
2 . The apparatus of claim 1 , wherein the nonvolatile memory is a flash memory.
3 . The apparatus of claim 1 , wherein the nonvolatile memory is a micro disk drive.
4 . The apparatus of claim 1 , wherein the temporary power supply is a rechargeable battery.
5 . The apparatus of claim 1 , further comprising:
means for denoting data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power interruption.
6 . The apparatus of claim 1 , further comprising means for setting a permitted amount of data that can be stored in the volatile memory based on a real-time power capacity level of the temporary power supply.
7 . An apparatus for a data storage subsystem comprising:
a volatile memory; a nonvolatile memory; a temporary power supply for temporarily supplying power to the apparatus in the event of a main power supply interruption; means for determining the state of the temporary power supply; means for denoting data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of the main power supply interruption; and means for determining a permitted amount of data that can be stored in the volatile memory and that can be denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the determined state of the temporary power supply.
8 . The apparatus of claim 7 , further comprising:
means for comparing the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the set permitted amount of such data.
9 . The apparatus of claim 8 , further comprising:
means for, where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the permitted amount of such data that has been set, instructing a firmware client component of the storage subsystem to reduce the amount of data it has denoted in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption.
10 . An apparatus for a data storage subsystem, the apparatus comprising:
a volatile memory; a nonvolatile memory; a temporary power supply for temporarily supplying power to the apparatus in the event of a main power supply interruption; means for determining the state of the temporary power supply; means for denoting data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of the main power supply interruption; means for setting a permitted amount of data stored in the volatile memory that can be denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the determined state of the temporary power supply; means for comparing the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the set permitted amount of such data; and means for, where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the permitted amount of such data that has been set, instructing a firmware client component of the storage subsystem to reduce the amount of data it has denoted in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption.
11 . The apparatus of claim 10 , further comprising:
means for, where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the permitted amount of such data that has been set, preventing the writing of any new data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption, while the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption exceeds the set permitted amount of such data.
12 . An apparatus for a data storage subsystem comprising:
a volatile memory; a nonvolatile memory; a power supply for temporarily supplying power to the apparatus in the event of a main power supply interruption; means for determining the state of the temporary power supply; means for denoting data stored in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of the main power supply interruption; means for setting a permitted amount of data stored in the volatile memory that can be denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the determined state of the temporary power supply; means for comparing the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the set permitted amount of such data; and means for, where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the permitted amount of such data that has been set, preventing the writing of any new data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption, while the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption exceeds the set permitted amount of such data.
13 . The apparatus of claim 12 , further comprising:
means for controlling the storage in the volatile memory of data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
14 . The apparatus of claim 13 , further comprising:
means for allocating memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
15 . The apparatus of claim 14 , wherein access to memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is given preferentially to firmware client components of the storage subsystem that require such data storage to ensure data integrity.
16 . The apparatus of claim 15 , comprising:
means for controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the dependency of at least one of the client components on another client component or components for processing its input/output requests to the storage subsystem.
17 . The apparatus of claim 16 , comprising:
means for controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the ability of a or more than one of the client components to reduce the amount of data that it or they have stored in the volatile memory that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory.
18 . A method of operating a data storage subsystem comprising a volatile memory, a nonvolatile memory, and a temporary power supply for supplying temporary power to the storage subsystem after the interruption of the power supply to the subsystem, in which in the event of the detection of an interruption of the power supply to the volatile memory, data from the volatile memory is written to the nonvolatile memory using power supplied from the temporary power supply, the method comprising:
determining the state of the temporary power supply; and determining the amount of data stored in the volatile memory that can be written to the nonvolatile memory using power supplied by the temporary power supply on the basis of the determined state of the temporary power supply.
19 . The method of claim 18 , further comprising:
determining a permitted amount of data that can be stored in the volatile memory and denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the state of the temporary power supply.
20 . The method of claim 19 , further comprising:
comparing the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the determined permitted amount of such data.
21 . The method of claim 20 , further comprising:
where the amount of stored data denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the determined permitted amount of such data, instructing a firmware client component of the storage subsystem to reduce the amount of data it has denoted in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption.
22 . The method of claim 21 , further comprising:
where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the determined permitted amount of such data, preventing the writing of any new data in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption, while the amount of data in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption exceeds the permitted amount of such data.
23 . The method of claim 22 , further comprising:
controlling the storage in the volatile memory of data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
24 . The method of claim 23 , further comprising:
allocating memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
25 . The method of claim 24 , further comprising:
giving access to memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption preferentially to firmware client components of the storage subsystem that require such data storage to ensure data integrity.
26 . The method of claim 25 , further comprising:
controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the dependency of at least one of the client components on another client component or components for processing its input/output requests to the storage subsystem.
27 . The method of claim 26 , further comprising:
controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the ability of a or more than one of the client components to reduce the amount of data that it or they have stored in the volatile memory that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory.
28 . A computer program product, residing on a computer usable medium, for use with operating a data storage subsystem comprising a volatile memory, a nonvolatile memory, and a temporary power supply for supplying temporary power to the storage subsystem after the interruption of the power supply to the subsystem, in which in the event of the detection of an interruption of the power supply to the volatile memory, data from the volatile memory is written to the nonvolatile memory using power supplied from the temporary power supply, the computer program product comprising:
program code for determining the state of the temporary power supply; and program code for determining the amount of data stored in the volatile memory that can be written to the nonvolatile memory using power supplied by the temporary power supply on the basis of the determined state of the temporary power supply.
29 . The computer program product of claim 28 , further comprising:
program code for determining a permitted amount of data that can be stored in the volatile memory and denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the state of the temporary power supply.
30 . The computer program product of claim 29 , further comprising:
program code for comparing the amount of data stored in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption with the determined permitted amount of such data.
31 . The computer program product of claim 30 , further comprising:
program code for, where the amount of stored data denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the determined permitted amount of such data, instructing a firmware client component of the storage subsystem to reduce the amount of data it has denoted in the volatile memory as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption.
32 . The computer program product of claim 31 , further comprising:
program code for, where the amount of stored data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption is found to exceed the determined permitted amount of such data, preventing the writing of any new data in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption, while the amount of data in the volatile memory that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption exceeds the permitted amount of such data.
33 . The computer program product of claim 32 , further comprising:
program code for controlling the storage in the volatile memory of data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
34 . The computer program product of claim 33 , further comprising:
program code for allocating memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption on the basis of the nature of the data being stored and/or the nature of the client component requesting storage of the data in the volatile memory.
35 . The computer program product of claim 34 , further comprising:
giving access to memory capacity for data that is denoted as being data that should be written to the nonvolatile memory using power supplied by the temporary power supply in the event of a power supply interruption preferentially to firmware client components of the storage subsystem that require such data storage to ensure data integrity.
36 . The computer program product of claim 35 , further comprising:
controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the dependency of at least one of the client components on another client component or components for processing its input/output requests to the storage subsystem.
37 . The computer program product of claim 36 , further comprising:
controlling the storage in the volatile memory of data that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory by different firmware client components of the storage subsystem on the basis of the ability of a or more than one of the client components to reduce the amount of data that it or they have stored in the volatile memory that is denoted as being data that should be written to a nonvolatile memory using power supplied by the temporary power supply in the event of an interruption in the power supply to the volatile memory.
38 . A system comprising:
a host computer; a hard drive; and a storage adapter logically oriented between the host computer and the hard drive, the storage adapter composed of:
a controlling processor,
a volatile memory,
a temporary power supply, and
a non-volatile memory, wherein the storage adapter stores in the volatile memory a mirror image of data being sent from the host computer to the hard drive, and wherein, in response to the host computer experiencing a power interrupt, the controlling processor controls the writing of the mirror image from the volatile memory to the non-volatile memory using power from the temporary power supply.
39 . The system of claim 38 , wherein the temporary power supply is a battery.
40 . The system of claim 38 , wherein the amount of data stored in the volatile memory in the storage adapter, at any point in time, is set according to the amount of power stored in the temporary power supply, such that the amount of power stored in the temporary power supply is sufficient for providing power for the writing of the mirror image data from the volatile memory to the non-volatile memory.
41 . The system of claim 40 , wherein the non-volatile memory is a flash memory.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.