Automatic RAID storage allocation

The automatic assignment of RAID configurations addresses errors and complexities in existing RAID management systems by employing a model-based approach that automates partition template determination and RAID management, resulting in reduced errors and improved efficiency.

DE112017004173B4Active Publication Date: 2025-03-13WESTERN DIGITAL TECHNOLOGIES INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE112017004173
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-08-22
Filing Date
2017-06-13
Publication Date
2025-03-13
Estimated Expiration
2037-06-13

AI Technical Summary

Technical Problem

Existing solutions for assigning and managing RAID configurations are prone to errors, particularly during user input and when replacing storage devices with different sizes or models, leading to difficulties in maintaining efficient RAID arrangements.

Method used

The implementation of a system and procedure for automatic assignment of RAID configurations, utilizing a model-based approach that minimizes user intervention. This system includes a processor, memory, and software components that automatically determine partition templates based on device roles, apply these templates to storage devices, and manage RAID creation and recovery.

Benefits of technology

This solution reduces errors in RAID assignment and management, simplifies the replacement of storage devices, and ensures efficient use of storage space by automatically configuring RAID levels and managing partitions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Computer-implemented method (300) comprising the following: automatic determination (314) using one or more processors (104) that a first partition (122a1) allocated to a first storage device (106a) and a second partition (122b1) allocated to a second storage device (106b) are mapped to a common mount point; and automatic addition (316), using one or more processors (104), of the first partition (122a1) and the second partition (122b1) to a redundant arrangement of independent hard disks (RAID).
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION

[0001] The present disclosure relates to the allocation of digital storage devices. More particularly, the present disclosure relates to systems and methods for automatically allocating redundant arrays of independent disks (RAID). BACKGROUND

[0002] A redundant array of independent disks (RAID) combines multiple physical storage devices, or partitions thereof, into a single logical unit to provide redundancy, improved performance, improved availability, or a combination thereof.

[0003] The allocation of storage devices (e.g., hard disks) and the creation or modification of a RAID using existing solutions is error-prone. Errors, such as user errors entering static information, are not uncommon. Accordingly, a model-based approach that minimizes the amount of input and intervention a user must provide may be desirable.

[0004] Additionally, difficulties arise when a storage device that is part of a RAID is replaced, particularly when the replacement storage device is a different size and / or model type. Accordingly, a mechanism that reduces the difficulties associated with reassembling a RAID when a storage device is replaced may be desirable.

[0005] Furthermore, the disclosure of US 7 454 566 B1 and US 2013 / 0 304 705 A1 may be helpful for understanding the present invention.

[0006] US 7,454,566 B1 describes the determination of the optimal RAID level to be implemented for a given disk array and, where applicable, the provision of unallocated storage space to the user in the form of unprotected storage space. The method efficiently allocates suitable RAID volumes for the given disk array and, by providing the unallocated storage space to users, enables the effective use of hard disk drives of unequal size in the disk array. In another embodiment, an existing RAID array is reconfigured so that the storage space available on various hard disk drives in the disk array can be used in the most efficient manner.The alternative embodiment is particularly useful when upgrading an existing RAID array by adding a disk drive to the existing disk drive array or modifying it by replacing one or more disk drives therein.

[0007] US 2013 / 0 304 705 A1 discloses a Mirror File System (MFS) in the form of a virtual file system that links two or more folders (e.g., under Windows) or directories (e.g., under UNIX) to form a mirror pair. The folders or directories can be located on a local storage device of a computer system, on a portable storage device, or in a folder or directory shared by a remote system. A graphical user interface (GUI) or a user application creates or opens a file in the active folder, and the MFS software module creates or opens the same file in a passive folder that is not mounted at the same mount point as the active folder. The active folder receives a file operation directly from the computer's application. Once the file operation is received by the active folder, it is automatically replicated to the passive folder.The MFS software module provides update options for sequential, parallel, synchronous and asynchronous updates.

[0008] Disclosed herein are at least one system and method that address one or more of the problems mentioned above. SUMMARY

[0009] Systems and methods for automatic allocation of redundant arrays of independent disks (RAID) are disclosed. For example, in some implementations, a system includes one or more processors and memory storing instructions that cause the system to: automatically determines that a first partition associated with a first storage device and a second partition associated with a second storage device are associated with a common mount point; and automatically adds the first partition and the second partition to a RAID.

[0010] These and other implementations may optionally each include one or more of the following features, such as: receiving a role of the first storage device, determining a first partition template based on the role of the first storage device, and applying the first partition template to the first storage device; receiving a role of a second storage device, determining a second partition template based on the role of the second storage device, and applying the second partition template to the second storage device; wherein the first partition template defines one or more partitions and a mount point associated with each of the one or more partitions; automatically determining that a third partition associated with a third storage device is associated with the common mount point and automatically adding the third partition to the RAID;wherein the third storage device replaces either the first storage device or the second storage device, and adding the third partition to the RAID reassembles the RAID; wherein the third storage device is in addition to the first storage device and the second storage device.

[0011] Further implementations of one or more of these aspects include corresponding systems, devices, methods, and computer programs configured to perform the operations of the methods encoded on computer storage devices. It is understood that the above is not all-inclusive, and many additional steps, features, and advantages are contemplated and fall within the scope of the present disclosure. Furthermore, it is understood that the language used in the present disclosure was chosen principally for readability and instructional purposes and does not limit the scope of the subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The techniques introduced herein are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals are used to designate similar elements. Fig. 1 is a block diagram illustrating an exemplary system configured to automatically allocate a redundant array of independent disks (RAID). Fig. Figure 2 is a block diagram illustrating an example automatic RAID assignment according to one implementation. Fig. 3 is a flowchart illustrating an exemplary method for automatic RAID assignment according to the techniques described herein. Fig. 4 is a flowchart illustrating an exemplary method for automatically reassembling a RAID array according to the techniques described herein. DETAILED DESCRIPTION

[0013] Various systems and methods for automatic allocation of redundant arrays of independent disks (RAID) are disclosed. While the systems and methods of the present disclosure are described in the context of a particular system architecture, it should be understood that the systems and methods may be applied to other architectures and hardware organizations.

[0014] Fig. 1 is a block diagram illustrating an exemplary system 100 configured to implement the techniques introduced herein. System 100 may be any computing device including one or more memories and one or more processors (e.g., a server computer, a laptop computer, a desktop computer, etc.).

[0015] The system 100 may include a network interface (I / F) module 102, a processor 104, a storage system 105, and a memory 108. The components of the system 100 are communicatively coupled to a bus or software communication mechanism 120 for communication with each other.

[0016] In some implementations, the software communication mechanism 120 may be an object bus (e.g., Common Object Request Broker Architecture (CORBA)), direct socket communication (e.g., Transmission Control Protocol / Internet Protocol (TCP / IP) sockets) between software modules, remote procedure calls, User Datagram Protocol (UDP) transmissions and receptions, Hypertext Transfer Protocol (HTTP) connections, function or procedure calls, etc. Furthermore, the communication may be individually or entirely secure (Secure Shell (SSH), HTTP Secure (HTTPS), etc.). The software communication mechanism 120 may be implemented on any underlying hardware (e.g., a network, the Internet, a bus, a combination thereof, etc.).

[0017] The network interface (I / F) module 102 is configured to connect the system 100 to a network and / or another system. For example, the network interface module 102 may enable communication over one or more internet, cable, and wired networks.

[0018] The network interface module 102 connects the processor 104 to a network, which in turn may be coupled to other processing systems (e.g., a client device, a server device). Of course, the network interface module 102 also provides other conventional connections to the network for distribution and / or retrieval of files and / or media objects using standard network protocols, such as, but not limited to, TCP / IP, HTTP, HTTPS, and Simple Mail Transfer Protocol (SMPT). In some implementations, the network interface module 102 includes a transceiver for transmitting and receiving signals using Wi-Fi, Bluetooth®, or cellular communication for wireless communication.

[0019] The network interface module 102 may enable a client and / or server device to store data and retrieve data from the storage system 105 (e.g., over a network). For example, the network interface module 102 may enable one or more components of the system 100 to act as network-accessible storage or as an array of storage devices.

[0020] The network may be of a conventional type, wired or wireless, and may have numerous different configurations, including a star configuration, token ring configuration, or other configurations. Furthermore, the network may include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and / or other interconnected data paths over which multiple devices may communicate. In some implementations, the network may be a peer-to-peer network. The network may also be coupled to, or include portions of, a telecommunications network for sending data using a variety of different communication protocols.In some implementations, the network may include Bluetooth (or Bluetooth Low Energy) communications networks or a cellular communications network for sending and receiving data, including Short Message Service (SMS), Multimedia Messaging Service (MMS), HTTP, direct data connection, Wireless Application Protocol (WAP), email, etc.

[0021] The processor 104 may include an arithmetic logic unit, a microprocessor, a general-purpose controller, or any other processor arrangement to perform calculations and provide electronic display signals to a display device. In some implementations, the processor 104 is a hardware processor with one or more processing cores. The processor 104 is coupled to the bus 120 for communication with the other components of the system 100. The processor 104 processes data signals and may include various computing architectures, including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture that implements a combination of instruction sets. Although in the example of Fig. While only a single processor is shown in Figure 1, multiple processors and / or processing cores may be included. It is understood that other processor configurations are possible.

[0022] Memory 108 stores instructions and / or data executable by processor 104. Memory 108 is coupled to bus 120 for communication with the other components of system 100. The instructions and / or data stored in memory 108 may include code for performing any and / or all of the techniques described herein. Memory 108 may, for example, be a volatile memory such as a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, or some other volatile memory device.In some implementations, the memory 108 also includes a non-volatile memory or similar persistent storage device and media (e.g., a hard disk drive, a floppy disk drive, a compact disc read-only memory (CD-ROM) device, a digital versatile disc read-only memory (DVD-ROM) device, a digital versatile disc random access memory (DVD-RAM) device, a digital versatile disc rewritable (DVD-RW) device, a flash memory device, or any other non-volatile storage device). In some implementations, the memory 108 stores a disk manager 110. In the illustrated implementation, the disk manager 110 includes an automatic RAID provider 152.

[0023] The storage system 105 is a data storage system that can store information via any type of connected array of writable storage media, sometimes referred to herein as a "storage device" in the singular or "storage devices" in the plural. Examples of storage devices include, but are not limited to, a magnetic disk or tape, an optical disk (e.g., CD-ROM or DVD), flash memory, a solid-state drive (SSD), electronic random access memory (RAM), microelectromechanical, and / or other similar media configured to store information, including data and parity information. However, as illustratively described herein, the information is stored on hard disks of hard disk drives (HDDs). Fig. 1 illustrates a first storage device 106a and a second storage device 106b. Reference to a storage device 106 or storage devices 106 (without the 'a' or 'b' identifier appended to 106 and / or without a preceding "first" or "second") refers to a general instance or instances of a storage device 106. The storage system 105 may include one or more enclosures co-located or physically distributed at different locations across a storage area network. The storage devices 106 are divided into one or more partitions 122.

[0024] Fig. Figure 2 is a block diagram illustrating an exemplary automatic RAID provider 152 according to one implementation. In the illustrated implementation, the automatic RAID provider 152 includes a model module 202, a template-based partitioner 204, and a RAID generator 206. However, it should be recognized that Fig. 2 is merely an implementation. Other implementations may include different components or organizations.

[0025] The model module 202 manages one or more models. Managing a model may include one or more of the steps of creating a model, receiving a role, identifying a model associated with that role, and identifying a template associated with that role based on the model.

[0026] In one implementation, a model defines a template associated with a role of a storage device 106 in the system 100. A template, also referred to below as a "partition template," defines one or more partitions to be assigned to a storage device 106 when the template is applied. In some implementations, a model may be created and / or modified by the user. For example, in one implementation, the model module 202 may receive user input (e.g., via a command-line interface or a graphical user interface (GUI)) to generate a model defining a template with the partitions "grub," "root," "swap," "var," and "meta," as well as the mount point and size of each partition, associated with an "operating system disk with an additional partition for metadata." In some implementations, a model may be preset (e.g.,hard-coded or as a default).

[0027] In some implementations, the template defines a size for one or more of the partitions to be allocated. In some implementations, a size of a partition may be proportional (e.g., a percentage of the total size of the storage device 106 being allocated). In some implementations, a size of a partition may be absolute (e.g., a given number of bytes). In some implementations, a size of a partition may be constrained (e.g., the partition may have a minimum size, a maximum size, or both).

[0028] The model module 202 receives a role of a storage device 106 and, using a model, determines a predefined partition template associated with that role. In some implementations, the model module 202 receives a role of a storage device 106 from a user. For example, in some implementations, the model module 202 receives input (e.g., via a command-line interface or GUI) that identifies the first storage device 106a as having a role of "operating system disk with an additional partition for metadata." In some implementations, the model module 202 receives a role of a storage device 106 by automatically determining (e.g., via heuristics or rules) the role of the storage device 106. For example, assume that the first storage device 106a is an empty HDD.In some implementations, the model module 202 determines that the role of the first storage device 106a is an "operating system disk with an additional partition for metadata" associated with a template (e.g., the template with the partitions described above).

[0029] The template-based partitioner 204 applies a template to a storage device 106. For example, assume that the first storage device 106a and the second storage device 106b are two empty HDDs to be allocated. Also assume that the model module 202 determines that the role of the first storage device 106a is an "operating system disk with an additional partition for metadata" and the role of the second storage device 106b is an "operating system disk with an additional partition for metadata." In one implementation, the template-based partitioner 204 applies a template that includes 'grub', 'root', 'swap', 'var', and 'meta' partitions, as well as the mount point and size of each partition. For example, the template-based partitioner 204 populates a disk partition layout for the first storage device 106a as follows:

[0030] And the template-based partitioner 204 populates a disk partition layout for the second storage device 106b as follows:

[0031] RAID Creator 206 determines whether two partitions share a common mount point and creates a RAID for those partitions, rather than reporting an error like existing systems. For example, RAID Creator 206 detects that several partitions in the above example share the same mount point, so RAID Creator 206 creates a Level 1 RAID for those partitions and updates the disk layout to remove duplicate mount points. For example, RAID Creator 206 creates a RAID 'md0' for mount point ' / ' on the second partition of both disks:

[0032] The RAID generator 206 creates a RAID 'md1', which is created for mount point ' / var' on the fourth partition of both hard disks:

[0033] The RAID generator 206 creates a RAID 'md2' for a mirrored swap for mount point 'swap' on the third partition of both disks:

[0034] Disk resources:

[0035] In one implementation, after automatic modeling via the RAID generator 206, the RAID user can modify or remove the proposed RAIDs before the actual system is assigned. The assignment first unfolds the partition layout on the disks (using the template-based partitioner 204) and then creates the modeled RAIDs (using the RAID generator 206).

[0036] The above example is merely one example of the automatic generation of an array and is provided for clarity and simplicity. It should be recognized that other examples exist and are within the scope of this disclosure.

[0037] In some implementations, the automatic RAID provider 152 can add additional hard disks or partitions thereof to an existing RAID. For example, continuing the example discussed above, assume that a new storage device 106 (e.g., a third HDD) is added to the system 100 (not shown). It is also assumed that the model module 202 determines that the new storage device may have an "operating system disk" role, and based on the model, the partition template defines the following partition layout, which is implemented by the template-based partitioner 204:

[0038] In some implementations, RAID creator 206 again detects a duplicate mount point (i.e., ' / '), but now between an existing RAID (e.g., md0) and a storage device 106 not currently in the RAID (e.g., sdc), rather than between two storage devices 106 not in a RAID (e.g., prior to RAID md0 creation). RAID creator 206 automatically adds the partition associated with the duplicate mount point to the existing RAID.

[0039] RAID resource:

[0040] Disk resource: Mount point ' / ' is removed from the second partition of disk 'sdc'

[0041] In some implementations, the automatic RAID provider 152 may reassemble a RAID when a storage device 106 (e.g., a hard disk) is replaced, even if the new storage device does not exactly match the original storage device 106 being replaced in one or more sizes and model types. In some implementations, reassembling a RAID is similar to adding an additional storage device 106, except that a storage device 106 that was already allocated and included in the array is physically removed from the system and the one or more RAIDs to which the storage device 106 belonged.

[0042] Fig. 3 and Fig. 4 are exemplary procedures that are implemented by the system of Fig. 1 and Fig. 2 may be executed according to an implementation. However, it should be recognized that the methods of Fig. 3 and Fig. 4 are merely examples and the disclosure herein is applicable to other methods that may include additional, fewer or different steps and may perform these steps in a different order.

[0043] Fig. 3 is a flowchart of an example method 300 for automatic RAID assignment, according to one implementation. At 302, the model module 202 of the automatic RAID provider 152 receives a role of a first storage device 106a. At 304, the model module 202 receives a role of a second storage device 106b. At 306, the model module 202 determines a partition template based on the role of the first storage device 106a. At 308, the model module 202 determines a partition template based on the role of the second storage device 106b. At 310, the template-based partitioner 204 applies the partition template determined based on the role of the first storage device 106a to the first storage device 106a. At 312, the template-based partitioner 204 applies the partition template determined based on the role of the second storage device 106b to the second storage device 106b.At 314, the RAID creator 206 determines that a first partition associated with the first storage device (e.g., partition A1 122a1) and a second partition associated with the second storage device (e.g., partition B1 122b1) are associated with a common mount point. At 316, the RAID creator 206 automatically adds the first partition associated with the first storage device (e.g., partition A1 122a1) and the second partition associated with the second storage device (e.g., partition B1 122b1) associated with a common mount point to a RAID.

[0044] Fig.4 is a flowchart of an exemplary method 400 for automatically reassembling a RAID according to one implementation. At 402, the model module 202 of the automatic RAID provider 152 receives a role associated with a first storage device 106a. At 404, the model module 202 determines a partition template based on the role of the first storage device 106a. At 406, the template-based partitioner 204 applies the partition template determined based on the role of the first storage device 106a to the first storage device 106a. At 408, the RAID builder 206 automatically determines that a partition associated with the first storage device includes a mount point common to a partition of a second storage device, where the second storage device and a third storage device previously belonged to a RAID, where the third storage device has been physically removed from the system.At 410, the RAID builder 206 automatically reassembles the RAID with the first storage device replacing the third storage device such that the reassembled RAID includes the partition of the first storage device and the partition of the second storage device.

[0045] Some sections of the above detailed descriptions can be presented in terms of processes and symbolic representations of operations on data bits within a computer memory. A process can generally be thought of as a discrete sequence of steps leading to a result. The steps may involve physical manipulation of physical quantities. These quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated. These signals may be described as being in the form of bits, values, elements, symbols, characters, terms, numbers, or the like.

[0046] These and similar expressions may be associated with the appropriate physical quantities and may be considered labels applied to those quantities. Unless the preceding discussion expressly indicates otherwise, it is understood that throughout this specification, discussions using terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like may refer to the workflow and processes of a computer system or similar electronic computing device that manipulates and converts data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage, transmission, or display devices.

[0047] The disclosed technologies may also relate to a device for performing the operations herein. This device may be specifically designed for the required purposes, or it may include a general-purpose computer that is selectively activated or reconfigured by a computer program stored in the computer.Such a computer program may be stored in a computer-readable storage medium, for example, but not limited to, any type of hard disk, including floppy disks, optical disks, CD-ROMs and magnetic disks, read-only memories (ROMs), random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory including USB sticks with non-volatile memory, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.

[0048] The disclosed technologies may take the form of a complete hardware implementation, a complete software implementation, or an implementation that includes both hardware and software elements. In some implementations, the technology is implemented in software, including, but not limited to, firmware, resident software, microcode, etc.

[0049] Furthermore, the disclosed technologies may be in the form of a computer program product accessible from a non-transitory computer-usable or computer-readable medium that provides program code for use by or in connection with a computer or any instruction execution system. For the purposes of this specification, a computer-usable or computer-readable medium may be any device that can contain, store, communicate, distribute, or transport the program for use by or in connection with the instruction execution system, device, or apparatus.

[0050] A computer system or data processing system suitable for storing and / or executing the program code includes at least one processor (e.g., a hardware processor) coupled directly or indirectly to storage elements via a system bus. The storage elements may include local memory used during actual execution of the program code, mass storage, and cache memory that provides temporary storage of at least one piece of program code to reduce the frequency with which the code must be retrieved from mass storage during execution.

[0051] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intermediate I / O controllers.

[0052] Network adapters may also be coupled to the system to enable the data processing system to connect to other data processing systems or remote printers or storage devices across intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the types of network adapters currently available.

[0053] Finally, the processes and displays presented herein need not be inherently related to any particular computer or other device. Various general-purpose systems may be used with programs according to the teachings herein, or it may prove convenient to construct specialized devices to perform the required method steps. The structure required for a variety of these systems will be apparent from the above description. Furthermore, the disclosed technologies have not been described with reference to any particular programming language. It is understood that a variety of programming languages ​​may be used to implement the teachings of the technologies described herein.

Claims

[1] A computer-implemented method (300) comprising: automatically determining (314) using one or more processors (104) that a first partition (122a1) associated with a first storage device (106a) and a second partition (122b1) associated with a second storage device (106b) are associated with a common mount point; and automatically adding (316), using the one or more processors (104), the first partition (122a1) and the second partition (122b1) to a redundant array of independent disks (RAID). [2] The computer-implemented method (300) of claim 1, further comprising: receiving (302) a role of the first storage device (106a); Determining (306) a first partition template based on the role of the first storage device (106a); and Applying (310) the first partition template to the first storage device (106a). [3] The computer-implemented method (300) of claim 2, further comprising: receiving (304) a role of a second storage device (106b); Determining (308) a second partition template based on the role of the second storage device (106b); and Applying (312) the second partition template to the second storage device (106b). [4] The computer-implemented method (300) of claim 2, wherein the partition template defines one or more partitions and corresponding mount points associated with the one or more partitions. [5] The computer-implemented method (300) of claim 1, further comprising: automatically determining that a third partition associated with a third storage device is associated with the common mount point; and automatically adding the third partition to the RAID. [6] The computer-implemented method (300) of claim 5, wherein the third storage device replaces one of the first storage device (106a) or the second storage device (106b) and adding the third partition to the RAID reassembles the RAID. [7] The computer-implemented method (300) of claim 5, wherein the third storage device is in addition to the first storage device (106a) and the second storage device (106b). [8] System (100), comprising: a processor (104); and a non-transitory computer-usable medium (108) storing instructions that, when executed by the processor (104), cause the system (100): automatically determines that a first partition (122a1) associated with a first storage device (106a) and a second partition (122b1) associated with a second storage device (106b) are associated with a common mount point; and automatically adds the first partition (122a1) and the second partition (122b1) to a redundant array of independent disks (RAID). [9] The system (100) of claim 8, wherein the instructions, when executed by the processor (104), further cause the system to: receives a role of the first storage device (106a); determines a first partition template based on the role of the first storage device (106a); and applies the first partition template to the first storage device (106a). [10] The system (100) of claim 9, wherein the instructions, when executed by the processor (104), further cause the system to: receives a role of a second storage device (106b); determines a second partition template based on the role of the second storage device (106b); and applies the second partition template to the second storage device (106b). [11] The system (100) of claim 9, wherein the partition template defines one or more partitions and corresponding mount points associated with the one or more partitions. [12] The system (100) of claim 8, wherein the instructions, when executed by the processor (104), further cause the system to: automatically determines that a third partition associated with a third storage device is associated with the common mount point; and the third partition is automatically added to the RAID. [13] The system (100) of claim 12, wherein the third storage device replaces one of the first storage device (106a) or the second storage device (106b) and adding the third partition to the RAID reassembles the RAID. [14] The system (100) of claim 12, wherein the third storage device is in addition to the first storage device (106a) and the second storage device (106b). [15] A computer program product comprising a non-transitory computer-usable medium enclosing a computer-readable program, the computer-readable program, when executed on a computer, causing the computer to perform operations comprising: automatically determining that a first partition (122a1) associated with a first storage device (106a) and a second partition (122b1) associated with a second storage device (106b) are associated with a common mount point; and Automatically adding the first partition (122a1) and the second partition (122b1) to a redundant array of independent disks (RAID). [16] The computer program product of claim 15, wherein the computer-readable program, when executed on a computer, further causes the computer to perform operations comprising: Receiving a role of the first storage device (106a); Determining a first partition template based on the role of the first storage device (106a); and Applying the first partition template to the first storage device (106a). [17] The computer program product of claim 16, wherein the computer-readable program, when executed on a computer, further causes the computer to perform operations comprising: Receiving a role of a second storage device (106b); Determining a second partition template based on the role of the second storage device (106b); and Applying the second partition template to the second storage device (106b). [18] The computer program product of claim 16, wherein the partition template defines one or more partitions and corresponding mount points associated with the one or more partitions. [19] The computer program product of claim 15, wherein the computer-readable program, when executed on a computer, further causes the computer to perform operations comprising: automatically determining that a third partition associated with a third storage device is associated with the common mount point; and automatically adding the third partition to the RAID. [20] The computer program product of claim 19, wherein the third storage device replaces one of the first storage device (106a) or the second storage device (106b) and adding the third partition to the RAID reassembles the RAID.

Citation Information

Patent Citations

  • Mirror file system

    US20130304705A1

  • System and method for adaptive RAID configuration

    US7454566B1