CN106557268B - Method for storing data - Google Patents

Method for storing data Download PDF

Info

Publication number
CN106557268B
CN106557268B CN201510633264.5A CN201510633264A CN106557268B CN 106557268 B CN106557268 B CN 106557268B CN 201510633264 A CN201510633264 A CN 201510633264A CN 106557268 B CN106557268 B CN 106557268B
Authority
CN
China
Prior art keywords
data storage
data
storage device
parity
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510633264.5A
Other languages
Chinese (zh)
Other versions
CN106557268A (en
Inventor
G·D·卡达克
A·罗伯特斯
L·M·杜
C·J·哈德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Global Technologies International Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Priority to CN201510633264.5A priority Critical patent/CN106557268B/en
Publication of CN106557268A publication Critical patent/CN106557268A/en
Application granted granted Critical
Publication of CN106557268B publication Critical patent/CN106557268B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

Embodiments of the present application relate to merging RAID1 mirroring into a coexisting RAID 5 parity stream. A method includes storing an operating system in a secondary tape on a first data storage device forming a first logical storage unit, and storing data in a primary tape across a plurality of data storage devices forming a second logical storage unit. Each primary band includes a plurality of secondary bands storing data and a parity band. The method also includes calculating a parity stripe from a plurality of secondary stripes within the primary stripe and a corresponding secondary stripe of the secondary stripes on the first data storage device, wherein the secondary stripe on the first data storage device matches a size of the secondary stripe on the array of data storage devices.

Description

Method for storing data
Technical Field
The present invention relates to the management of data storage, including in particular the use of redundant arrays of independent disks.
Background
In modern computer systems, the need for data reliability and input/output performance has resulted in the development of a range of data storage schemes that divide and replicate data among multiple data storage devices. Such a storage scheme is often referred to as a Redundant Array of Independent Disks (RAID). RAID systems combine physical data storage devices (such as hard disk drives) into a single logical unit using special hardware or software. The hardware solution will typically be designed to present itself to the attached system as a single logical device or driver, making the operating system unaware of the technical workings of the underlying array. Alternatively, the software solution may be implemented in an operating system and will similarly present the RAID drives to the application as a single device or drive. The minimum number of drives and the level of data reliability depends on the type of RAID scheme being implemented.
The original five RAID levels, with different RAID levels using one or more techniques known as mirroring, striping, and error correction. Mirroring involves copying data to more than one disk, banding involves spreading the data across more than one disk, and error correction involves storing redundant data (parity) to allow problems to be detected and possibly repaired.
A RAID 0 array spreads data evenly across two or more disks without parity. Thus, RAID 0 may be considered to provide striping without any redundancy. RAID 0 is suitable for high performance with little or no data integrity concerns.
A RAID1 array provides a complete and exact copy of data on two or more disks. Thus, RAID1 includes full redundancy or mirroring. RAID1 performs well and may optionally include duplexing that enables independent reading of different sectors of the disk to further increase speed. The data integrity of RAID1 is also good due to the complete copy maintained in the mating disk.
In general, RAID 3 provides dedicated parity disks for byte-level striping, RAID 4 provides dedicated parity disks for block-level striping, and RAID 5 provides parity data distributed across all member disks for block-level striping. RAID 5 has gained popularity due to its low redundancy cost. In general, RAID 5 is implemented with hardware support for parity computation. A minimum of three disks are typically required for a complete RAID 5 configuration. RAID 5 offers a balance between price and performance for most commercial server workloads and provides single drive fault tolerance by implementing a technique called single equation, single unknowns. The checksum information is evenly distributed across all drives and the checksum update operation is evenly balanced within the array.
During a read operation, the parity block is typically not read, as this would be unnecessary overhead and would impair performance. However, when a read of a data sector causes a CRC error (each sector is also protected by a CRC), the parity block is read. In this case, sectors in the same relative positioning within each remaining data block in the stripe (stripe) and within the parity block in the stripe are used to reconstruct the erroneous sectors. Thus hiding CRC errors from the host computer. Likewise, if a disk fails in the array, the parity blocks from the surviving disk are mathematically combined with the data blocks from the surviving disk to reconstruct the data on the failed drive "on the fly". However, in RAID 5, the failure of the second drive causes all data to be lost, each with a single parity block. The foregoing discussion of RAID levels is intended to provide a general example of the features included in different RAID levels and is not intended to be a comprehensive listing or description of RAID levels.
Disclosure of Invention
One embodiment of the present invention provides a method comprising storing an operating system in a secondary band on a first data storage device forming a first logical storage unit, and storing data in a primary band across a plurality of data storage devices forming a second logical storage unit, wherein each primary band comprises a plurality of secondary bands storing data and a parity band. The method also includes calculating a parity stripe from a plurality of secondary stripes within the primary stripe and a corresponding secondary stripe of the secondary stripes on the first data storage device, wherein the secondary stripe on the first data storage device matches a size of the secondary stripe on the array of data storage devices.
Drawings
FIG. 1 is a diagram of a computer that may be utilized in accordance with one embodiment of the present invention.
FIG. 2 is a diagram of a configuration of a first logical data storage unit and a second logical data storage unit, according to one embodiment of the present invention.
Fig. 3 is a flow diagram of a method according to an embodiment of the invention.
Detailed Description
One embodiment of the present invention provides a method comprising storing an operating system in a secondary band on a first data storage device forming a first logical storage unit, and storing data in a primary band across a plurality of data storage devices forming a second logical storage unit, wherein each primary band comprises a plurality of secondary bands storing data and a parity band. The method also includes calculating a parity stripe from a plurality of secondary stripes within the primary stripe and a corresponding secondary stripe of the secondary stripes on the first data storage device, wherein the secondary stripe on the first data storage device matches a size of the secondary stripe on the array of data storage devices.
The first data storage device forms a first logical storage unit and stores an operating system in the secondary band. Since the operating system is completely stored on the first data storage device, the computer can boot from the operating system on the first data storage device without accessing the plurality of data storage devices. There is preferably no data stripe or parity stripe stored on the first data storage device, and the computer system is optionally the only software stored on the first data storage device. In a preferred embodiment, the first data storage device is a first direct-attached storage subsystem of the computer and the plurality of data storage devices are a second direct-attached storage subsystem of the computer.
The plurality of data storage devices form a second logical data storage unit comprising at least three data storage devices. The computer is capable of accessing data on the plurality of data storage devices independent of access to the first data storage device. Data is stored as a primary band including a plurality of secondary bands storing data and a parity band storing parity. The parity strip is preferably distributed across the plurality of data storage devices of the second logical data storage unit. The plurality of data storage devices may be controlled and used consistent with a RAID 5 (redundant array of independent disks level 5) configuration, except that parity is calculated from a plurality of secondary bands within the primary band and also from corresponding ones of the secondary bands on the first data storage device. This is facilitated when the size of the secondary bands on the first data storage device match the size of the secondary bands on the plurality of data storage devices.
A primary benefit of including a secondary band of a first data storage device (first logical data storage unit) in calculating parity to be stored on a plurality of data storage devices (second logical data storage units) is to provide redundancy to the first data storage device without requiring a separate data storage device to mirror the first data storage device. Additionally, embodiments of the present invention allow a first logical data storage unit for an operating system and a second logical data storage unit for data. In a large data center, providing redundancy to a first data storage device without a dedicated data storage device to mirror the first data storage device would eliminate a large number of data storage devices.
In one option, the method may include, in response to a failure of an identified data storage device of the plurality of data storage devices, re-creating the data bands and parity bands stored on the identified data storage device using the first data storage device and the data and parity bands on the other data storage devices. In other words, the not-yet-failed data storage device, including the first data storage device, is used to compute the secondary bands on the failed data storage device. When the failed data storage device has been replaced, the calculated secondary bands are written to the new data storage device. Once the calculated secondary bands have been written to the new data storage device, redundancy has been restored to both the first data storage device and the plurality of data storage devices.
In another option, the method may include, in response to a failure of the first data storage device, recreating an operating system on the new data storage device using the data and parity subbands on the plurality of data storage devices. Once the calculated secondary bands of the operating system have been written to the new data storage device, redundancy has been restored to the first data storage device. Advantageously, failure of the first data storage device does not result in loss of redundancy in the plurality of data storage devices.
In yet another option, the method may include generating and storing new parity data to be stored in the parity strip in response to replacing an operating system on the first data storage device. The operating system may be replaced, for example, when updated to a new or patched version. As another example, the operating system may be replaced by replacing the first data storage device with a new data storage device stored on a new or patched version of the operating system. Thus, the parity strip determined and stored using the old version must be recalculated. Once the parity subbands have been recalculated and stored, redundancy has been restored to both the first data storage device and the plurality of data storage devices.
Another embodiment of the invention provides a computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the program instructions are executable by a processor to cause the processor to perform a method. The method includes storing an operating system in a secondary zone on a first data storage device forming a first logical storage unit, and storing data in a primary zone across a plurality of data storage devices forming a second logical storage unit, wherein each primary zone includes a plurality of secondary zones storing data and a parity zone. The method also includes calculating a parity stripe from a plurality of secondary stripes within the primary stripe and a corresponding secondary stripe of the secondary stripes on the first data storage device, wherein the secondary stripe on the first data storage device matches a size of the secondary stripe on the array of data storage devices.
The aforementioned computer program product may also comprise computer readable program code for implementing or initiating any one or more aspects of the methods described herein. Thus, a separate description of the method will not be repeated in the context of a computer program product.
FIG. 1 is a diagram of a computer 10 that may be used in accordance with one embodiment of the present invention. Computer 10 includes a processor unit 12 coupled to a system bus 14. Processor unit 12 may utilize one or more processors, each having one or more processor cores. A video adapter 16 that drives/supports a display 22 is also coupled to system bus 14. System bus 14 is coupled via a bus bridge 18 to an input/output (I/O) bus 20. An I/O interface 21 is coupled to I/O bus 20 and provides communication with various I/O devices, including a keyboard 23 and a mouse 24. The I/O devices may optionally include storage devices (such as CD-ROM drives) and multimedia interfaces, other printers, and external USB ports. Although the format of the ports connected to the I/O interface 21 may be known to those skilled in the art of computer architecture, in a preferred embodiment, some or all of the ports are Universal Serial Bus (USB) ports. As depicted, computer 10 is capable of communicating over a network 38 using network interface 30. Network 38 may be an external network, such as a global communication network, and may also be an internal network, such as an ethernet LAN or a Virtual Private Network (VPN).
Also coupled to system bus 14 are a first logical data storage unit 40 comprising a hard disk drive 42 and a second logical data storage unit 50 comprising a hard disk drive 52. In a preferred embodiment, the hard disk drive 42 stores an operating system and populates a system memory 32 that is also coupled to the system bus 14. The system memory is the lowest level of volatile memory in the computer 10. The volatile memory may include additional higher level volatile memory (not shown) including, but not limited to, cache memory, registers, and buffers. The data that populates system memory 32 includes an Operating System (OS)34 and various application programs 39.
The operating system 34 includes a shell (shell)36 for providing transparent user access to resources, such as application programs 39. Generally, shell 36 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, the shell 36 executes commands entered into a command line user interface or from a file. Thus, shell 36, also referred to as a command processor, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides the system to prompt, interpret commands entered by a keyboard, mouse, or other user input medium, and send the interpreted commands to the appropriate lowest level of the operating system (e.g., kernel 37) for processing. Note that although the shell 36 is a text-based, line-oriented user interface, the present invention will support other user interface modes as well (e.g., graphics, voice, gestures, etc.).
As depicted, OS 34 also includes kernel 37, which kernel 37 includes lower level functionality for OS 34, including providing basic services required by OS 34 and other portions of applications 39, including memory management, process and task management, disk management, and mouse and keyboard management.
The hardware elements depicted in computer 10 are not intended to be exhaustive, but rather are representative to provide suitable means for carrying out the processes of the present invention. For example, computer 10 may include alternative memory storage devices, such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the scope of the present invention.
Fig. 2 is a diagram of a data storage system 600, such as a direct-attached data storage system. The data storage system 60 includes a first logical data storage unit 40 and a second logical data storage unit 50. Both the first and second logical data storage units 40, 50 may be independently accessed for read and write operations, such as by instructions from the processor 12 to the respective controllers 44, 54.
The first logical data storage unit 40 includes a controller 44 that handles read and write operations to the hard disk drive 42. As shown, the operating system is stored on the hard disk drive 42 in bands. Although many bands will be used, hard disk drive 42 illustrates only four bands (bands 1-4) for purposes of providing an example.
The second logical data storage unit 50 includes a controller 54 that handles read and write operations to a plurality of hard disk drives 52. In this example, the plurality of hard disk drives 52 includes a first disk 51, a second disk 53, and a third disk 55. When the controller 54 receives an instruction to write data to the plurality of hard disk drives 52, the data is written in the main zone across the three disks 51, 53, 55. In fig. 2, the first primary band is illustrated as the highest row of blocks and the subsequent primary bands are illustrated as subsequent rows of blocks, where each block represents a secondary band. The first main tape comprises a first data sub tape a on disc 1, a second sub tape B on disc 2 and a sub tape P on disc 3 (AB 1). The secondary tape P (AB1) includes parity calculated using secondary tape A and secondary tape B from disks 51, 53 on the second logical data storage unit 50 and secondary tape 1 from disk 42 of the first logical data storage unit 40. This calculation of parity is facilitated by allowing the controller 54 of the second logical data storage unit 40 to communicate directly with the controller 44 of the first logical data storage unit 50 to obtain the contents of the corresponding subband 1. Thus, controller 54 may use standard circuitry or logic to determine the parity that will be stored in the secondary tape P (AB1) on disk 3. For example, one parity calculation takes a bitwise exclusive-OR (XOR) of each subband included (i.e., subbands A, B and 1). Alternatively, the parity calculation may implement even parity or odd parity (i.e., each bit in the parity subband is a 0 or 1 to provide an even or odd number of 1's in the subband including the parity subband). To facilitate parity computation, the sub-bands of the disk 42 storing the operating system are preferably the same size as the sub-bands of the disks 51, 53, 55 storing the data or applications. In creating a new primary stripe along the disks, the positioning of the secondary parity stripe will shift locations in such a way that the burden of parity reading or writing is distributed more or less evenly across the disks 51, 53, 55 in order to improve performance. The correspondence between the secondary bands of disks 42 of the first logical data storage unit 40 and the primary bands of the second logical data storage unit 50 may be stored by one of the controllers 44, 54 as a table or standard rule that correlates addresses of one band to each other.
In the configuration of FIG. 2, the system provides redundancy to the disk 42 storing the operating system, but does not require a separate disk dedicated to mirroring the disk 42. The operating system may still be stored completely on the disk 42 of the first logical data storage unit 40 and the data may be stored completely on the disks 51, 53, 55 of the second logical data storage unit 50. The disk 42 containing the operating system does not store any parity data, so that the second logical data storage unit is a separate entity and can be removed from the computer (such as a server) without compromising the boot capability of the computer. The operating system disk may be removed from the system without compromising the ability to provide data to the user.
The configuration of FIG. 2 may be described as a promiscuous asymmetric mix of RAID1 mirrors 40 and parity-based RAID arrays 50 (such as RAID 5 arrays). This configuration is asymmetric because the parity-based RAID array utilizes data from the OSRAID mirror for its parity computation. In the event that the OS driver 40 is about to fail, the system can recreate any data on the disk by utilizing the contents in the parity-based array 50. The OS driver does not contain data from the parity-based data array, so the OS driver can be detached from the server or even replaced with a new image at any time and is fully bootable.
If the OS drive 40 is replaced with a new image, both the OS drive 40 and the RAID array 50 will be in critical mode until a parity-based RAID array has been recreated using data from the new OS disk to generate new parity. If the data array 50 is removed from the system, the OS driver can operate as a separate unit without even replacing the data array, unless the user requires redundancy at a later time. If the user decides to combine an existing OS drive with a parity-based RAID array into this type of configuration, both can be combined with the configuration tool so they are logically bound together, and then the parity is reconstructed on the data array.
Fig. 3 is a flow diagram of a method 70 according to one embodiment of the invention. Step 72 stores the operating system in a secondary tape on the first data storage device forming the first logical storage unit. Step 74 stores data in primary bands across a plurality of data storage devices forming a second logical data storage unit, wherein each primary band includes a plurality of secondary bands storing data and a parity band. In step 76, a parity strip is calculated from a plurality of secondary strips within the primary strip and a corresponding secondary strip of the secondary strips on the first data storage device, wherein the secondary strips on the first data storage device match the size of the secondary strips on the array of data storage devices.
The present invention may be a system, method and/or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to perform aspects of the present invention.
The computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch cards or raised structures in slots having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein are not to be interpreted as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical waves traveling through a fiber optic cable), or electrical signals transmitted through wiring.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a corresponding computing/processing device or to an external computer or external storage device via a network (e.g., the internet, a local area network, a wide area network, and/or a wireless network). The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language, or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, an electronic circuit, for example comprising a programmable logic circuit device, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), can execute computer-readable program instructions to perform aspects of the invention by utilizing state information of the computer-readable program instructions to personalize the electronic circuit.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having the instructions stored therein comprise an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, components, and/or groups, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The terms "preferably," "preferred," "prefer," "optionally," "may," and similar terms are used to indicate that an item, condition or step being referred to is an optional (not required) feature of the invention.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims (13)

1. A method of storing data, comprising:
storing an operating system in a secondary tape on a first data storage device forming a first logical storage unit;
storing data in primary bands across a plurality of data storage devices forming a second logical data storage unit, wherein each primary band comprises a plurality of secondary bands storing data and a parity band; and
calculating the parity strip from the plurality of secondary strips within the primary strip and corresponding ones of the secondary strips on the first data storage device, wherein the secondary strips on the first data storage device match the size of the secondary strips on the data storage device array.
2. The method of claim 1, wherein the parity strip is distributed across the plurality of data storage devices.
3. The method of claim 1, wherein there is no data stored on the first data storage device.
4. The method of claim 1, wherein the operating system is the only software stored on the first data storage device.
5. The method of claim 1, wherein the first data storage device is a first direct-attached storage subsystem of a computer and the array of data storage devices is a second direct-attached storage subsystem of the computer.
6. The method of claim 1, wherein the plurality of data storage devices comprises at least three data storage devices.
7. The method of claim 1, wherein the first data storage device does not contain any parity data for the plurality of data storage devices.
8. The method of claim 1, wherein a computer can boot from the operating system on the first data storage device without access to the plurality of data storage devices.
9. The method of claim 1, wherein the plurality of data storage devices are capable of providing access to the data without access to the first data storage device.
10. The method of claim 1, further comprising:
in response to a failure of an identified data storage device of the plurality of data storage devices, the data bands and parity bands stored on the identified data storage device are recreated using the first data storage device and the data and parity bands on the other data storage devices.
11. The method of claim 1, further comprising:
in response to a failure of the first data storage device, the operating system is recreated on a new data storage device using the data and parity strips on the plurality of data storage devices.
12. The method of claim 1, further comprising:
generating and storing new parity data to be stored in the parity strip in response to replacing the operating system on the first data storage device.
13. The method of claim 1, further comprising:
in response to replacing the first data storage device, generating and storing new parity data to be stored in the parity strip.
CN201510633264.5A 2015-09-29 2015-09-29 Method for storing data Active CN106557268B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510633264.5A CN106557268B (en) 2015-09-29 2015-09-29 Method for storing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510633264.5A CN106557268B (en) 2015-09-29 2015-09-29 Method for storing data

Publications (2)

Publication Number Publication Date
CN106557268A CN106557268A (en) 2017-04-05
CN106557268B true CN106557268B (en) 2020-05-15

Family

ID=58414709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510633264.5A Active CN106557268B (en) 2015-09-29 2015-09-29 Method for storing data

Country Status (1)

Country Link
CN (1) CN106557268B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947847B (en) * 2019-12-11 2023-12-29 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for storing data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032070B2 (en) * 2001-07-13 2006-04-18 Hitachi, Ltd. Method for partial data reallocation in a storage system
US7136964B2 (en) * 2003-11-19 2006-11-14 Hitachi, Ltd. Disk array with spare logic drive created from spare physical drives
CN104205059A (en) * 2012-04-27 2014-12-10 株式会社日立制作所 Storage system and storage control apparatus
CN104615381A (en) * 2015-01-18 2015-05-13 浙江宇视科技有限公司 Redundancy array of independent disks of video monitoring system
CN105022587A (en) * 2014-04-24 2015-11-04 中国移动通信集团设计院有限公司 Method for designing magnetic disk array and storage device for magnetic disk array

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032070B2 (en) * 2001-07-13 2006-04-18 Hitachi, Ltd. Method for partial data reallocation in a storage system
US7136964B2 (en) * 2003-11-19 2006-11-14 Hitachi, Ltd. Disk array with spare logic drive created from spare physical drives
CN104205059A (en) * 2012-04-27 2014-12-10 株式会社日立制作所 Storage system and storage control apparatus
CN105022587A (en) * 2014-04-24 2015-11-04 中国移动通信集团设计院有限公司 Method for designing magnetic disk array and storage device for magnetic disk array
CN104615381A (en) * 2015-01-18 2015-05-13 浙江宇视科技有限公司 Redundancy array of independent disks of video monitoring system

Also Published As

Publication number Publication date
CN106557268A (en) 2017-04-05

Similar Documents

Publication Publication Date Title
US9335940B2 (en) RAID 1 mirror meshed into a co-existing RAID 5 parity stream
US9804939B1 (en) Sparse raid rebuild based on storage extent allocation
US8996804B2 (en) Optimizing and enhancing performance for parity based storage
US20190163587A1 (en) Shared storage parity on raid
US8583984B2 (en) Method and apparatus for increasing data reliability for raid operations
US9740440B2 (en) Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array
US9690651B2 (en) Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device
JP2007265409A (en) Computer implementation method, data processing system and computer program (amorphous raid)
US11074130B2 (en) Reducing rebuild time in a computing storage environment
CN110413208B (en) Method, apparatus and computer program product for managing a storage system
US10372368B2 (en) Operating a RAID array with unequal stripes
CN110058787B (en) Method, apparatus and computer program product for writing data
US10013171B2 (en) Reducing stress on RAIDS under rebuild
JP2007524932A (en) Method, system, and program for generating parity data
US11269745B2 (en) Two-node high availability storage system
US11144409B2 (en) Recovering from a mistaken point-in-time copy restore
US10768822B2 (en) Increasing storage capacity in heterogeneous storage arrays
CN106557268B (en) Method for storing data
US10585764B2 (en) Data storage system comprising primary and secondary storage systems
JP2015501491A (en) Triple parity encoding for easy data recovery
CN111857560A (en) Method, apparatus and computer program product for managing data
US10210063B2 (en) Disk array storage controller
US11650737B2 (en) Disk offset-distance awareness data placement for storage system data protection
US11249667B2 (en) Storage performance enhancement
US10719399B2 (en) System combining efficient reliable storage and deduplication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210610

Address after: 23 / F, Lincoln building, 979 King's road, Quarry Bay, Hong Kong, China

Patentee after: Lenovo Global Technology International Co.,Ltd.

Address before: Singapore City

Patentee before: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.