Automatic recreation of lost storage volume
By storing volume metadata in a less volatile storage solution and using it to automatically recreate SCM volumes, the challenge of data loss due to persistence loss in SCM is addressed, enhancing efficiency and reducing manual intervention.
Patent Information
- Application Number
- JP2023544553
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-02-13
- Filing Date
- 2022-01-11
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2042-01-11
AI Technical Summary
Existing intermediate storage solutions like storage class memory (SCM) can lose persistence, leading to potential data loss and requiring manual, time-consuming volume recreation and reassignment.
Utilizing a less volatile storage solution, such as non-volatile random access memory (NvRAM), to store volume metadata, which is then retrieved and used to automatically recreate and reassign volumes after persistence loss in SCM devices.
Automatically recreating and reassigning lost SCM volumes significantly reduces the time and effort required compared to manual processes.
Smart Images

Figure 0007702203000001 
Figure 0007702203000002 
Figure 0007702203000003
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to storage devices, and more particularly, to systems and methods for automatically recreating lost storage volumes.
Background Art
[0002] Various intermediate storage solutions, such as those including storage class memory (SCM), are designed to address the cost / performance tradeoff between dynamic random-access memory (DRAM) and flash memory. Generally, these intermediate storage solutions use lower latency transfer technologies and are accessed / used like the RAM of a computer system. For example, some of the intermediate storage solutions can be directly mapped into memory to facilitate normal CPU read / write cycles (i.e., as part of the main page table). Advantageously, the intermediate storage solutions are persistent. As a result, systems using intermediate storage solutions can typically restart / resume more quickly while maintaining the contents of the memory (compared to, for example, flash memory).
Summary of the Invention
Means for Solving the Problems
[0003] According to various embodiments of the present disclosure, a computing device, a non-transitory computer-readable storage medium, and a method are provided for automatically recreating a lost storage volume.
[0004] Volume commands, such as those described above that include volume metadata associated with a storage volume of a storage class memory (SCM) storage device, are received (e.g., from a program or from a user through a user interface). The volume metadata is stored in another storage device that is less volatile than the SCM storage device. The storage volume is configured according to the volume command that includes transferring the volume command to an SCM device driver.
[0005] A notification of permanent loss in the SCM storage device is received following the transfer of the volume command. Following the notification of permanent loss in the SCM storage device, the stored volume metadata is retrieved from the other storage device. The storage volume is automatically reconfigured according to the volume command that includes presenting the retrieved volume metadata to the SCM device driver.
[0006] These and other features will become apparent from the following detailed description of exemplary embodiments to be read in conjunction with the accompanying drawings.
[0007] The drawings are of exemplary embodiments. They do not illustrate all embodiments. Other embodiments may be added or used instead. Explicit or unnecessary details may be omitted to save space or for a more effective explanation. Some embodiments may be implemented using additional components or steps and / or without using all of the illustrated components or steps. When the same numeral appears in different drawings, it refers to the same or similar components or steps.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
[0009] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the relevant teachings. It should be apparent, however, that the present teachings may be practiced without such details. In other instances, well-known methods, procedures, components, and / or circuits have been described at a relatively high level without detail in order to avoid obscuring aspects of the present teachings.
[0010] The present disclosure generally relates to systems and methods for automatically recreating a lost storage volume. By the concepts discussed herein, volumes in a storage device can be automatically (re)created / (re)configured after a loss of persistence in the storage device.
[0011] Storage class memory (SCM) as well as other intermediate storage device solutions have varying degrees of stability and may not be able to maintain persistence under certain conditions. When this occurs, (potentially all) data on the device can be lost. Data loss can include the erasure of a (for example, SCM) volume and corresponding volume metadata. An SCM device can include a significant number of volumes (for example, hundreds or thousands). Manually recreating the volumes and then reassigning them to their partitions (for example, virtual machines) can be quite time-consuming. In one aspect, when an intermediate storage solution, such as an SCM storage solution, loses persistence, the volumes of the intermediate storage solution are automatically recreated.
[0012] To facilitate volume recreation, another storage solution that is less volatile (i.e., more stable) than the intermediate storage solution is utilized. In one example, non-volatile random access memory (NvRAM) is utilized. However, any storage solution that is substantially less volatile (i.e., more stable), such as the above storage solutions including types of flash memory, can be used.
[0013] When a volume is created or modified in the intermediate storage solution, volume metadata corresponding to the volume creation or volume modification is stored in another (less volatile, more stable) storage solution. After a loss of persistence, the stored metadata is retrieved and used to automatically recreate the volume on the intermediate storage solution and reassign the volume to the previous partition (e.g., virtual machine) that owned the volume. The user or administrator does not need to worry about remembering and recreating the previous (e.g., SCM) volume configuration. Thus, automatically recreating and reassigning the volume can significantly save time compared to manually recreating and reassigning the volume.
[0014] In more specific examples, requests to create, modify, or destroy an SCM volume in an SCM device are created via a user interface and passed to request management software. The request can include volume metadata, such as a volume ID (e.g., a Universally Unique Identifier (UUID)), a volume name, a volume location, a volume size, the partition (e.g., a virtual machine) that owns the volume. The request management software accesses (e.g., extracts) the volume metadata from the request and stores the volume metadata in non-volatile storage, such as NvRAM. The request management software can continuously update the volume metadata when a user or administrator changes the SCM volume configuration.
[0015] After saving the volume metadata associated with the request, the request manager transfers the request to the SCM device driver, and the requested action (create a volume, modify a volume, destroy a volume, etc.) can be performed on the SCM device. If the SCM device loses or has lost persistence, the SCM device driver notifies the request management software of the loss. In response to the notification, the request manager analyzes the previously saved volume metadata. Using the saved volume metadata, the request manager software can automatically create / duplicate one or more requests. The request manager software can send the one or more requests to the SCM device driver. The SCM device driver can execute one or more requests to recreate and reassign the volume, including restoring the SCM device to its pre-loss-of-persistence configuration.
[0016] Accordingly, using the stored volume metadata, the claim manager software can automatically recreate the lost SCM volume and automatically reassign the lost SCM volume to the previously owned partition (e.g., virtual machine). The aspects of the present invention can be applied to various SCM storage solutions, such as non-volatile dual in-line memory modules (NvDIMMs), Intel Optane, 3D Xpoint, resistive RAM (RRAM or ReRAM), magnetoresistive RAM (MRAM), spin-transfer torque MRAM (STT-MRAM), and nanotube RAM, including the above SCM storage solutions.
[0017] Aspects of the present disclosure are also generally applicable to other combinations of storage solutions. Metadata associated with a more volatile (less stable) storage device can be stored in a less volatile (more stable) storage device. The stored metadata can be retrieved from the less volatile storage device and used to automatically (re)configure the volume of the more volatile storage device in response to a loss of persistence in the more volatile storage device. The volatility of a storage device can be considered in relation to how frequently or under what conditions or combinations thereof the storage device may lose persistence. A storage device that loses persistence more frequently or under more conditions or combinations thereof can be considered to be more volatile (i.e., less stable) compared to a storage device that loses persistence less frequently or under fewer conditions or combinations thereof. On the other hand, a storage device that loses persistence less frequently or under fewer conditions or combinations thereof can be considered to be less volatile (i.e., more stable) compared to a storage device that loses persistence more frequently or under more conditions or combinations thereof.
[0018] As used herein and in the appended claims, a "partition" is defined as a group of interoperable computing resources assigned to perform a function. Various types of resources, such as processors, memory, networks, storage, etc., can be assigned to a partition. As used in the appended claims herein, a partition may also be referred to as a "virtual machine." When computing resources are assigned to a partition or virtual machine, the partition or virtual machine can be considered to "own" the computing resources. For example, a partition or virtual machine can "own" a storage volume.
[0019] To better understand the features of the present disclosure, it may be useful to discuss an exemplary architecture. To that end, FIG. 1 illustrates an exemplary computer architecture 100 that facilitates automatically recreating a lost storage volume.
[0020] Exemplary architecture
[0021] Referring now to FIG. 1, FIG. 1 is an exemplary computer architecture 100 that facilitates automatically recreating a lost storage volume, consistent with an exemplary embodiment. Architecture 100 includes a storage device manager 101, storage 102, a device driver 103, an SCM device 104, a program 106, and a user interface 107. Storage 102 (e.g., NvRAM) can be a less volatile (more stable) storage solution compared to SCM device 104.
[0022] Generally, a user via program 106 or user interface 107 can send volume commands to change the volume configuration in SCM device 104. The volume commands can be directed to device driver 103. As shown, storage device manager 101 is disposed between program 106 / user interface 107 and device driver 103. Storage device manager 101 can receive the volume commands prior to device driver 103.
[0023] The storage device manager 101 can extract the metadata included in the volume command and store the metadata in the storage 102. Next, the storage device manager 101 can transfer the volume command (including the metadata) to the device driver 103. The device driver 103 can perform a volume configuration change on the SCM device 104 according to the volume command and the included metadata.
[0024] Following the implementation of the configuration change, the SCM device 104 may lose its persistence. Persistence can be lost for various reasons, such as firmware errors, hardware errors, sudden power loss, capacitor discharge before data storage, and error correction code (ECC) failures. The device driver 103 can detect the loss of persistence in the SCM device 104 and notify the storage device manager 101 of the loss of persistence.
[0025] In response to the notification of the loss of persistence, the storage device manager 101 can access the extracted metadata from the storage 102. The storage device manager 101 can automatically form a volume command (or another similar volume command) from the extracted metadata or from the (previously received) volume command that includes it or a combination thereof. The storage device manager 101 can send the automatically formed volume command to the device driver 103. The device driver 103 can perform another volume configuration change on the SCM device 104 according to the automatically formed volume command and the extracted metadata. By performing another volume configuration change, the SCM device 104 returns to a volume configuration that matches the volume configuration before the loss of persistence.
[0026] FIG. 2 illustrates a flowchart diagram of an exemplary method 200 for automatically recreating a lost storage volume. The method 200 is described with respect to the components of the computer architecture 100.
[0027] Method 200 includes receiving (201) a volume command that includes volume metadata associated with a storage volume of an SCM storage device. For example, the storage device manager 101 can receive a command 111 that includes metadata 112 from the program 106 or the user interface 107. The metadata 112 can include, for example, one or more of a volume ID (e.g., a Universally Unique Identifier (UUID)) in the SCM device 104, a volume name in the SCM device 104, a volume location in the SCM device 104, a volume size in the SCM device 104, a partition (virtual machine) that owns the volume in the SCM device 104, etc.
[0028] Method 200 includes storing (202) the volume metadata in another storage device that is less volatile than the SCM storage device. For example, the storage device manager 101 can extract the metadata 112 from the command 111 and store the metadata 112 in the storage 102.
[0029] Method 200 includes configuring the storage volume according to the volume command, which includes transferring the volume command to the SCM device driver (203). For example, the storage device manager 101 can send a command 111 including metadata 112 to the device driver 103. The device driver 103 can receive the command 111 including metadata 112 from the storage device manager 101. The device driver 103 can configure a storage volume in the SCM device 104 according to the command 111 and the metadata 112. For example, the device driver 103 can formulate a configuration 116 from the command 111 and the metadata 112. The device driver 103 can implement the configuration 116 in the SCM device 104, including one or more of, for example, volume creation, volume modification (e.g., size change, location change, etc.), volume destruction, and assigning a volume to a partition (virtual machine).
[0030] Following the implementation of the configuration 116, the SCM device 104 can operate according to the command 111 and the metadata 112 as intended for a period of time. At a later time, the SCM device 104 may lose persistence, for example, due to one or more of a firmware error, a hardware error, a sudden loss of power, a capacitor discharge before data storage, an error correction code (ECC) failure, etc., in or associated with the SCM device 104 or a combination thereof (represented by the persistent loss 117).
[0031] Method 200 includes receiving a notification of persistent loss in the SCM storage device (204) following the transfer of a volume command. For example, device driver 103 can detect persistent loss 117 in SCM device 104. Device driver 103 can notify storage device manager 101 of persistent loss 117. In another aspect, storage device manager 101 directly detects persistent loss 117.
[0032] Method 200 includes obtaining the volume metadata from another storage device (205) following receipt of the notification of the persistent loss. For example, following receipt (or detection) of a notification of persistent loss 117, storage device manager 101 can submit query 113 to storage 102. Query 113 can be a query about the metadata associated with SCM device 104. In response to query 113, storage 102 can return metadata 112 to storage device manager 101.
[0033] Method 200 includes automatically reconfiguring the storage volume according to the volume command that includes submitting the obtained volume metadata to the SCM device driver (206). For example, storage device manager 101 can automatically form command 114 from and including metadata 112. Command 114 can be similar to command 111 (even if not an exact copy). Storage device manager 101 can automatically send command 114 including metadata 112 to device driver 103. Device driver 103 can receive command 114 including metadata 112 from storage device manager 101.
[0034] The device driver 103 can configure volumes in the SCM device 104 according to the command 114 and the metadata 112. For example, the device driver 103 can formulate a reconfiguration 118 from the command 114 and the metadata 112. The device driver 103 can implement a reconfiguration 118 in the SCM device 104, including, for example, one or more of volume creation, volume change (e.g., size change, location change, etc.), volume destruction, and assignment of a volume to a partition (virtual machine).
[0035] Subsequent to implementing the reconfiguration 118, the SCM device 104 can operate according to the command 114 and the metadata 112 as intended for a period of time. The operation of the SCM device 104 according to the reconfiguration 118 can be (if not identical) substantially similar to the operation of the SCM device 104 according to the configuration 116. For example, volume configuration operations associated with the command 111 can be automatically re-executed through the command 114.
[0036] In one aspect, the storage 102 is used to store volume metadata for a plurality of other storage devices that are more volatile (less stable) and may include one or more SCM devices. Each of the plurality of storage devices can be associated with a unique (e.g., hardware) device identifier. When a user or program formulates a volume command, the user or program can include a unique device identifier in the volume command and, optionally, in the metadata included therein. When a device driver (e.g., 103) notifies the storage device manager 101 of a loss of persistence in an SCM device (or another storage device), the device driver can include a unique device identifier in the notification.
[0037] Accordingly, the volume commands and the persistence loss notifications received at the storage device manager 101 can include a unique device identifier. The storage device manager 101 can utilize the received unique device identifier to distinguish metadata associated with different storage devices. For example, the storage device manager can store and access volume metadata by the received device identifier. The received volume commands as well as the persistence loss notifications can include / indicate a device identifier. The storage device manager 101 can use the device identifier to link the received, stored or accessed volume metadata to a more volatile (lower stability) appropriate storage device. For example, the storage device manager 101 can query the storage 102 with the device identifier to access volume metadata associated with the storage device corresponding to the device identifier.
[0038] Figure 3 illustrates a specially configured computer hardware platform 300. The computer hardware platform can be used to implement a computer system having the components of the computer architecture 100.
[0039] The computer platform 300 may include a central processing unit (CPU) 304, a hard disk drive (HDD) 306, a random access memory (RAM) or a read only memory (ROM) 308 or a combination thereof, a keyboard 310, a mouse 312, a display 314, and a communication interface 316, which are connected to the system bus 302.
[0040] The HDD 306 can include a function for storing programs to be executed, such as the storage device manager 101. The storage device manager 101 can include various modules configured to perform different functions, such as the volume command processor 342, the metadata storage and query module 346, and the persistence detector 348. The volume command processor 342 can be configured to process volume commands including extracting volume metadata from received volume commands, transferring volume commands to device drivers, and forming volume commands from stored metadata used when reconstructing volumes that have lost persistence. The metadata storage and query module 346 can be configured to store volume metadata in a (e.g., by device identifier) (e.g., less volatile) storage device and access volume metadata therefrom. The persistence detector 348 can be configured to monitor the persistence in any of a plurality of (e.g., more volatile) storage devices and detect a loss of persistence in any of a plurality of (e.g., more volatile) storage devices.
[0041] Exemplary Operating Platform
[0042] The implementation can or may utilize special-purpose or general-purpose computers, as will be discussed in more detail below, which include computer hardware, e.g., one or more computers or processors of hardware or combinations thereof (central processing unit (CPU), or graphical processing unit (GPU) or combinations thereof, general-purpose GPU (GPGPU), field programmable gate array (FPGA), application specific integrated circuit (ASIC), tensor processing unit (TPU)), and system memory. The implementation also includes physical and other computer-readable media for carrying or storing computer-executable instructions or data structures or combinations thereof. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system. The computer-readable media that stores computer-executable instructions is computer storage media (device). The computer-readable media that carries computer-executable instructions is transmission media. Thus, by way of example and not limitation, the implementation can include at least two distinctly different types of computer-readable media, namely computer storage media (devices) and transmission media.
[0043] Computer storage media (devices) can include SCM (and other intermediate storage solutions), RAM, ROM, EEPROM, CD-ROM, solid state drives (SSDs: Solid State Drive) (e.g., RAM-based or flash-based), shingled magnetic recording (SMR) devices, flash memory, phase-change memory (PCM: phase-change memory), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired program code means in the form of computer-executable instructions or data structures and that can be accessed by a general purpose or special purpose computer.
[0044] In one aspect, one or more processors are configured to execute instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) for performing any of the described plurality of operations. One or more processors can access information from, or store information in, the system memory, or perform combinations thereof. One or more processors can (e.g., automatically) convert information between different formats, such as between any of volume commands, volume metadata, queries, volume configurations, volume reconfigurations, persistent loss notifications, persistent loss detections, etc.
[0045] The system memory can be connected to one or more processors and can store instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) to be executed by one or more processors. The system memory can also be configured to store any of a plurality of other types of data generated or transformed or generated and transformed by the components described herein, such as volume commands, volume metadata, queries, volume configurations, volume reconfigurations, persistent loss notifications, persistent loss detections, etc.
[0046] "Network" is defined as one or more data links that enable the transmission of electronic data between computer systems and / or modules and / or other electronic devices. When information is transferred or provided to a computer via a network or other communication connection (either hardwired, wireless, or a combination of hardwired or wireless), the computer appropriately recognizes the connection as a transmission medium. The transmission medium can be used to transmit the desired program code means in the form of computer-executable instructions or data structures, and may comprise a network or data link accessible by a general-purpose or special-purpose computer, or a combination thereof. The above combination should also be included within the scope of computer-readable media.
[0047] Furthermore, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be automatically transferred from the transmission medium to a computer storage medium (device) (or vice versa). For example, computer-executable instructions or data structures received via a network or data link are buffered in RAM within a network interface module (e.g., "NIC"), and then, ultimately, can be transferred to the RAM of the computer system or a non-volatile computer storage medium (device) in the computer system or a combination thereof. Accordingly, it should be understood that a computer storage medium (device) can be provided in a computer system component that also (or primarily) utilizes the transmission medium.
[0048] Computer-executable instructions include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a function or functions in response to execution in a processor. The computer-executable instructions may be, for example, intermediate format instructions such as binary or assembly language, or source code. The subject matter has been described in a language specific to structural features or methodological acts or combinations thereof, but it should be understood that the subject matter defined in the appended claims is not necessarily limited to the features or acts described above. Rather, the features and acts described herein are disclosed as exemplary forms for carrying out the claims.
[0049] One of ordinary skill in the art will understand that the described embodiments may be implemented in a network computing environment having many types of computer system configurations, such as personal computers, desktop computers, laptop computers, message processors, handheld devices, wearable devices, multi-core processor systems, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, cellular telephones, PDAs, tablets, routers, switches, etc. The aspects described herein may also be implemented in a distributed system environment where local and remote computer systems, linked via a network (either by any hardwired data link, wireless data link, or a combination of hardwired and wireless data links), both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
[0050] Furthermore, where appropriate, the functions described herein can be executed in one or more of hardware components, software components, firmware components, digital components, or analog components. For example, one or more field programmable gate arrays (FPGAs) and / or one or more application specific integrated circuits (ASICs) and / or one or more tensor processing units (TPUs) can be programmed to execute one or more of the systems and procedures described herein. Hardware components, software components, firmware components, digital components, or analog components can be tailor-designed to (re)configure volumes in more volatile storage devices in response to a loss of persistence. In another example, computer code can be configured for execution in one or more processors and can include hardware logic / electrical circuits controlled by the computer code. These exemplary devices are provided for purposes of illustration herein and are not intended to be limiting. Embodiments of the present disclosure can be implemented within additional types of devices.
[0051] The aspects described herein can also be implemented in a cloud computing environment. As used herein and in the appended claims, "cloud computing" is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing can be used in the marketplace to provide ubiquitous and convenient on-demand access to a shared pool of configurable computing resources (e.g., computing resources, network resources, and storage resources). The shared pool of configurable computing resources can be provisioned via virtualization, released with little effort or interaction with a service provider, and then scaled accordingly.
[0052] A cloud computing model can have various features, such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc. The cloud computing model can also expose various service models, such as software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). The cloud computing model can also be deployed using different deployment models, such as private cloud, community cloud, public cloud, and hybrid cloud. In this specification and the appended claims, a "cloud computing environment" is an environment in which cloud computing is used.
[0053] Conclusion
[0054] The descriptions of the various embodiments of the present teachings are presented for purposes of illustration and are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the embodiments described herein. The terms used herein have been chosen to best explain the principles of the embodiments, the practical application or technical improvement of technologies found in the marketplace, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0055] The foregoing has described what is considered to be the best mode or other examples or combinations thereof, but various modifications can be made thereto, the subject matter disclosed herein can be implemented in various forms and examples, these teachings can be applied in numerous applications, and it will be understood that only some of them are described herein. Any and all applications, modifications, and variations that fall within the true scope of the teachings are intended by the appended claims.
[0056] The components, steps, features, objectives, benefits, and advantages discussed herein are merely illustrative. None of these or the discussions related to them are intended to limit the scope of protection. Although various advantages are described herein, it will be understood that not all embodiments necessarily have all the advantages. Unless otherwise stated, all measurements, values, ratings, positions, magnitudes, sizes, and other specifications described herein, including the claims, are approximate and not exact. They are intended to have a reasonable range consistent with the functions they relate to and common practice in the art.
[0057] Numerous other embodiments are also contemplated. These include embodiments having fewer, additional, or distinct components, steps, features, objectives, benefits, and advantages, or combinations thereof. These also include embodiments in which the components or steps or combinations thereof are in different arrangements or orders or combinations thereof.
[0058] Aspects of the present disclosure are described herein in connection with call flow illustrations, block diagrams, or combinations thereof, of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each step of the flowchart illustrations or block diagrams, or combinations thereof, and combinations of blocks in the call flow illustrations or block diagrams, can be implemented by computer readable program instructions.
[0059] These computer readable program instructions are provided to a computer processor or other programmable data processing apparatus's processor for creating means for implementing the specified functions / operations in one or more blocks of the call flow process or block diagrams or combinations thereof by executing instructions via the processor of the computer or other programmable data processing apparatus, thereby creating a machine. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer programmable data processing apparatus or other device or combinations thereof to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises a manufacture including instructions for implementing aspects of the specified functions / operations in the call flow process or one or more block diagrams or combinations thereof.
[0060] These computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device such that the instructions executed on the computer, other programmable apparatus, or other device implement the specified functions / operations in one or more blocks of the flowchart or block diagrams or combinations thereof, thereby creating a process implemented on the computer.
[0061] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the call flow process or block diagram can represent a module, segment, or portion of instructions, and these instructions include one or more executable instructions for implementing a particular one or more logical functions. In some alternative implementations, the functions described in these blocks can be performed in an order different from that shown in the figure. For example, depending on the functions involved, two blocks shown consecutively may actually be executed substantially simultaneously, or these blocks may be executed in the reverse order in some cases. It should also be noted that combinations of blocks in one or more block diagrams or call flow diagrams, or combinations of these, can be implemented by a system based on special-purpose hardware that implements a particular function or operation, or a combination of special-purpose hardware and computer instructions.
[0062] Although the above has been described in relation to exemplary embodiments, it is understood that the word "exemplary" means not the best or optimal, but merely one example. Except as described above, nothing described or illustrated is intended to, or should be construed as, a general disclosure of any component, step, feature, object, benefit, advantage, or equivalent.
[0063] As used herein, unless a particular meaning is otherwise set forth herein, words and expressions have the ordinary meaning given to such words and expressions in the respective fields of search and study to which they pertain. Words indicating relationships such as first and second can be used solely to distinguish entities or acts from one another, and do not necessarily require or imply any actual such relationship or order between such entities or acts. The terms "comprises," "comprising," or any other variant thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed or inherent to such process, method, article, or apparatus. Elements following an indefinite article "a" or "an" are not, without further limitation, excluded from the presence of additional identical elements in the process, method, article, or apparatus that includes that element.
[0064] The abstract of the present disclosure is provided to enable the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Additionally, in the description of the embodiments for carrying out the above invention, it can be seen that various features are grouped together in various embodiments for the purpose of simplifying the disclosure. This method of disclosure should not be construed as reflecting an intention that the claimed embodiments have more features than are expressly recited in each claim. Rather, as reflected in the separate claims, the subject matter of the present invention is not in all features of the single disclosed embodiment. Thus, the separate claims are incorporated into the description of the embodiments for carrying out the invention herein, and each claim exists independently as a separately claimed subject matter.
Claims
1. A computing device, the computing device comprising: a processor; a storage class memory (SCM) storage device connected to the processor; another storage device less volatile than the SCM storage device connected to the processor; an SCM device driver for managing the volume of the SCM storage device; a storage device manager stored in the another storage device wherein the computing device is configured to perform the following operations: executing, by the processor, the storage device manager to receive a volume command including volume metadata associated with the storage volume of the SCM storage device; storing the volume metadata in the another storage device; transferring the volume command to the SCM device driver to configure the storage volume according to the volume command, including: after transferring the volume command, receiving a notification of persistent loss in the SCM storage device; after receiving the notification of persistent loss, obtaining the volume metadata from the another storage device; and submitting the obtained volume metadata to the SCM device driver to automatically reconfigure the storage volume according to the volume command. The computing device according to claim 1, wherein the operations further include: configuring the storage volume according to the volume command includes allocating the storage volume to a partition or a virtual machine. The computing device according to claim 1, wherein the operations further include: configuring the storage volume according to the volume command includes creating the storage volume. The computing device according to claim 1, wherein receiving a volume command including volume metadata includes receiving one or more of a volume identifier, a volume name, a volume size, a volume location, or a volume owner.
2. The computing device according to claim 1, wherein configuring the storage volume according to the volume command includes allocating the storage volume to a partition or a virtual machine.
3. The computing device according to claim 1, wherein configuring the storage volume according to the volume command includes creating the storage volume.
4. The computing device according to claim 1, wherein receiving a volume command including volume metadata includes receiving one or more of a volume identifier, a volume name, a volume size, a volume location, or a volume owner.
5. The computing device according to claim 1, wherein storing the volume metadata in the another storage device includes storing the volume metadata in a non-volatile random access memory (NvRAM) device.
6. The computing device according to claim 1, wherein automatically reconfiguring the storage volume according to the volume command includes automatically allocating the storage volume to a partition or a virtual machine.
7. The computing device according to claim 1, wherein automatically reconfiguring the storage volume according to the volume command includes automatically creating the storage volume.
8. The computing device according to claim 1, wherein receiving the volume command includes one of receiving the volume command from a user interface or receiving the volume command from loading a program.
9. A computer program for configuring a storage device, receiving a volume command including volume metadata associated with a storage volume of a storage class memory (SCM) storage device; storing the volume metadata in another storage device that is less volatile than the SCM storage device; configuring the storage volume according to the volume command, including transferring the volume command to an SCM device driver; receiving a notification of persistent loss in the SCM storage device after transferring the volume command; after receiving the notification of the persistent loss, obtaining the volume metadata from the another storage device; and automatically reconfiguring the storage volume according to the volume command, including submitting the obtained volume metadata to the SCM device driver The computer program that causes a user device to execute each step of the method including.
10. The computer program according to claim 9, wherein configuring the storage volume according to the volume command includes allocating the storage volume to a partition or a virtual machine.
11. The computer program according to claim 9, wherein configuring the storage volume according to the volume command includes creating the storage volume.
12. The computer program according to claim 9, wherein obtaining the volume metadata from the other storage device includes receiving one or more of a volume identifier, a volume name, a volume size, a volume location, or a volume owner.
13. The computer program according to claim 9, wherein automatically reconfiguring the storage volume according to the volume command includes automatically allocating the storage volume to a partition or a virtual machine.
14. The computer program according to claim 9, wherein automatically reconfiguring the storage volume according to the volume command includes automatically creating the storage volume.
15. A computer-implemented method for configuring a storage device, comprising: Receiving a volume command including volume metadata associated with a storage volume of a storage class memory (SCM) storage device; Storing the volume metadata in another storage device that is less volatile than the SCM storage device; Configuring the storage volume according to the volume command, including transferring the volume command to an SCM device driver; Receiving a notification of persistent loss in the SCM storage device after transferring the volume command; After receiving the notification of the persistent loss, obtaining the volume metadata from the other storage device; and Automatically reconfiguring the storage volume according to the volume command, including submitting the obtained volume metadata to the SCM device driver Including the above method.
16. The computer-implemented method according to claim 15, wherein configuring the storage volume according to the volume command includes allocating the storage volume to a partition or a virtual machine.
17. The computer-implemented method according to claim 16, wherein automatically reconfiguring the storage volume according to the volume command includes automatically allocating the storage volume to the partition or the virtual machine.
18. The computer-implemented method according to claim 15, wherein configuring the storage volume according to the volume command includes creating the storage volume.
19. The computer-implemented method according to claim 18, wherein automatically reconfiguring the storage volume according to the volume command includes automatically creating the storage volume again.
20. Receiving a volume command including the volume metadata includes receiving one or more of a volume identifier, a volume name, a volume size, a volume location, or a volume owner, and Obtaining the volume metadata from the other storage device includes receiving one or more of the volume identifier, the volume name, the volume size, the volume location, or the volume owner. The computer-implemented method according to claim 15.
Citation Information
Patent Citations
Method for managing information processing system and information processing system
JP2003316526A
Storage system, volume allocation method, and management device
JP2009230381A
Storage class memory configuration command
JP2014517411A
Apparatus and method for recovering destroyed data volumes
US20060107103A1
Storage system with storage volume undelete functionality
US20200142627A1