Storage system, map generation device, and map generation method

The storage system facilitates flexible drive addition and fault tolerance by using integrated maps to manage parcel-drive correspondence, addressing inefficiencies in existing RAID configurations.

JP2026043977APending Publication Date: 2026-03-12HITACHI VANTARA LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-29
Publication Date
2026-03-12

AI Technical Summary

Technical Problem

Existing storage systems face challenges in efficiently adding drives one at a time while maintaining drive box fault tolerance, requiring complex and time-consuming configuration changes between distributed RAID and drive box fault tolerance functions.

Method used

A storage system with integrated maps that manage correspondence between parcels and drives, allowing seamless transition between configurations that support adding drives one at a time and enabling drive box fault tolerance, by distributing parcels across multiple drives and maintaining fault tolerance through dynamic mapping adjustments.

Benefits of technology

Enables easy and quick addition of drives with drive box fault tolerance, reducing recovery time and improving investment efficiency by simplifying configuration changes and minimizing data loss risks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026043977000001_ABST
    Figure 2026043977000001_ABST
Patent Text Reader

Abstract

To easily and quickly add drives one by one and to enable a drive box fault tolerance function for a predetermined number of drives. [Solution] The storage system 1 distributes and manages parcels of parcel groups containing parcels of user data and redundant data, and has a storage device 3 that stores an integrated map 8 including a map showing the correspondence between parcels and drives 7 corresponding to each number, and a first map corresponding to a first number where each drive box 6 has the same number of drives 7 has a fault-tolerant correspondence that has fault tolerance that prevents user data from being lost even if a failure occurs in a drive box 6 within a predetermined number, and the first map is configured to a relationship that can be realized by moving data of one parcel in each of some parcel groups from a storage state in parcels according to a second map corresponding to a number where the number of drives 7 is one less than the first number to a drive box where a drive is added.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a map that indicates the correspondence between parcels containing data and drives that store the parcels in a storage system that has a plurality of drive boxes that house drives. [Background technology]

[0002] In recent years, solid-state drives (SSDs) have become the norm for storage devices, with capacity increasing to 30 terabytes (TB). However, the increase in drive capacity has brought about the following two problems:

[0003] The first problem is the lengthy recovery process time required when a drive fails. To prevent data loss due to drive failure, storage devices are equipped with RAID (Redundant Array of Independent (or Inexpensive) Disks) functionality, which is used to recover data stored on the failed drive. The time required for this process is proportional to the drive capacity, so it takes longer as the capacity increases. If another drive failure occurs during this recovery process, the probability of data loss increases, so there is a need to reduce the recovery process time.

[0004] The second problem is that investment efficiency decreases. When the RAID function is enabled, drives must be added in units of the RAID stripe width. The stripe width is determined by the number of user data and the amount of redundant data, and is typically 4 or 8. For example, if the stripe width is 8 and the drive has a capacity of 30 TB, drives must be added in units of 8, or 240 TB. In other words, even if you want to add 50 TB of capacity, you will need to add 240 TB, and you will need to purchase more drives than the required capacity.

[0005] To solve these two problems, the distributed RAID technology described in Non-Patent Document 1 has attracted attention. Conventional RAID stores data by configuring a RAID group with the number of drives equal to the stripe width. In contrast, distributed RAID allows for the configuration of a RAID group with any number of drives, enabling data to be distributed and stored across a larger number of drives. In the case of drive failure, conventional RAID concentrates processing on a small number of drives, but distributed RAID allows for distributed processing across a large number of drives, reducing recovery processing time. Furthermore, when additional capacity is required, drives can be added one at a time, resulting in very good investment efficiency.

[0006] Some storage systems are equipped with drive boxes that house multiple drives. Some of these storage systems are equipped with RAID functionality to prevent data loss due to drive failure, as well as drive box fault tolerance functionality to prevent data loss due to drive box failure. For example, technology for providing drive box fault tolerance functionality in distributed RAID is disclosed in, for example, Patent Document 1. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] Japanese Patent Publication No. 2022-175427 [Non-patent literature]

[0008] [Non-Patent Document 1] Non-standard RAID levels, Internet (URL: https: / / en.wikipedia.org / wiki / Non-standard_RAID_levels#Declustered_RAID) Summary of the Invention [Problem to be solved by the invention]

[0009] For example, in the technology disclosed in Patent Document 1, the drive box fault tolerance function requires that all drive boxes have the same number of drives. Therefore, when using the drive box fault tolerance function, drives cannot be added one at a time. On the other hand, when using a function to add drives one at a time in a storage system, the drive box fault tolerance function cannot be used because it is not guaranteed that all drive boxes will have the same number of drives. Therefore, users must select one of the functions to configure a distributed RAID in their storage system.

[0010] Furthermore, once a distributed RAID is configured in a storage system, for the reasons mentioned above, it is not possible to change from a configuration with drive box failure tolerance enabled to one in which drives can be added one at a time, and vice versa, unless the distributed RAID configuration is deleted. For example, when the data capacity is small, backup is easy, so data loss due to drive box failure is tolerated, and investment efficiency is prioritized, allowing drives to be added one at a time, but as the data capacity increases, the drive box failure tolerance function is enabled to prioritize measures against data loss. This makes it difficult to use the system flexibly.

[0011] For example, one procedure that can make it possible to change a storage system from a configuration that allows drives to be added one at a time to a configuration that allows drive box fault tolerance to be enabled is to back up all data, delete the distributed RAID configuration, enable the drive box fault tolerance function, recreate the distributed RAID configuration, and store the backed up data in the recreated distributed RAID.However, this procedure has the problem of being complex and requiring a long period of work.

[0012] The present invention has been made in consideration of the above circumstances, and its purpose is to provide technology that allows drives to be easily and quickly added in units of one drive in a storage system, and that enables the drive box fault tolerance function when a specified number of drives are added. [Means for solving the problem]

[0013] In order to achieve the above object, a storage system according to one aspect is a storage system having a plurality of drive boxes each accommodating one or more drives, the storage system distributing and managing a plurality of parcel groups each including a parcel containing user data and a parcel containing redundant data for recovering the user data so that parcels included in the same parcel group are not allocated to the same drive, the storage system has a storage device for storing a group of maps including maps indicating a correspondence between each parcel and a drive storing the parcel, the number of which corresponds to a predetermined number range of the drives that can be installed in the storage system, and the drives accommodated in the plurality of drive boxes. The first map corresponding to a first number when the number of drives is the same has a drive box failure tolerance correspondence relationship, which is a correspondence relationship between the parcel and the drive in which the parcel is placed, that has drive box failure tolerance that prevents user data from being lost even if a failure occurs in a drive box within a specified number of drive boxes, and the first map has a correspondence relationship that can be realized for some parcel groups by moving data of one parcel included in the parcel group to a drive box to which a drive is added, from the storage state of the parcel in the drive according to the correspondence relationship between the parcel and the drive in a second map corresponding to a second number in which the number of drives is one less than the first number. [Effects of the Invention]

[0014] According to the present invention, when one drive is added and the number of drives accommodated in multiple drive boxes becomes the same, it is possible to easily and quickly identify the correspondence between parcels and the drives storing the parcels, which has drive box failure tolerance. Problems, configurations, and effects other than those described above will become clear from the following description of the embodiment of the invention. [Brief explanation of the drawings]

[0015] [Figure 1] FIG. 1 is a diagram showing the overall configuration of a computer system according to one embodiment. [Figure 2] FIG. 2 is a diagram illustrating parcel mapping according to one embodiment. [Figure 3] FIG. 3 is a diagram illustrating the configuration of an integrated map according to an embodiment. [Figure 4] FIG. 4 is a diagram showing the configuration of a drive adding / removing operation screen according to one embodiment. [Figure 5] FIG. 5 is a diagram showing the configuration of a state transition table according to an embodiment. [Figure 6] FIG. 6 is a diagram illustrating a configuration of a transition permission list according to an embodiment. [Figure 7] FIG. 7 is a diagram illustrating a change in mapping when a drive is added according to one embodiment. [Figure 8] FIG. 8 is a flowchart of an integrated map generation process according to an embodiment. [Figure 9] FIG. 9 is a flowchart of a state transition process according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0016] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment is an example for explaining the present invention, and for clarity of explanation, appropriate omissions and simplifications have been made. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.

[0017] In order to facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings.

[0018] Although various types of information may be described using expressions such as "table," "list," and "queue" as examples, various types of information may also be expressed using data structures other than these. For example, various types of information such as "AA table," "AA list," and "AA queue" may also be referred to as "AA information."

[0019] When describing identification information, expressions such as "identification information," "identifier," "name," "ID," and "number" are used, and these are interchangeable.

[0020] When there are multiple components with the same or similar functions, they may be described using the same reference numeral with different subscripts. When there is no need to distinguish between these multiple components, the subscripts may be omitted.

[0021] In the embodiments, processing may be described with a "program" as the operating entity. However, since a program is executed by a processor to perform a predetermined process while appropriately using at least one of a storage unit and an interface unit, the processing entity may be the processor (or a computer or computer system having a processor). The program may be installed on a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable recording medium. Furthermore, in the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs. Furthermore, at least a part of the processing realized by executing a program may be realized by a hardware circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)).

[0022] FIG. 1 is a diagram showing the overall configuration of a computer system according to one embodiment.

[0023] The computer system 100 includes a server 11 and a storage system 1. The storage system 1 manages data (user data) used by the server 11 for processing. The server 11 performs various processes by writing data to the storage system 1 and reading data from the storage system 1. In this embodiment, the server 11 is an example of a map generating device, and performs a process of generating an integrated map 8 of the storage system 1.

[0024] The server 11 is, for example, a computer such as a PC (Personal Computer) or a general-purpose server, and includes a CPU (Central Processing Unit) 12, a storage device 13, a memory 14, an input device 15, a communication interface (I / F) 16, and a display device 17.

[0025] The communication I / F 16 is, for example, an interface such as a wired LAN card or a wireless LAN card, and communicates with the storage system 1.

[0026] The CPU 12 is an example of a processor, and executes various processes according to programs stored in the memory 14 and / or the storage device 13. In this embodiment, the CPU 12 writes data used for processing to the storage system 1 and reads data from the storage system 1.

[0027] The memory 14 is, for example, a RAM (random access memory), and stores programs executed by the CPU 12 and necessary information.

[0028] The storage device 13 is, for example, a hard disk or a flash memory, and stores programs executed by the CPU 12 and data used by the CPU 12. In this embodiment, the storage device 13 stores a state transition table 30 and a transition permission list 31. Details of the state transition table 30 and the transition permission list 31 will be described later.

[0029] The input device 15 is, for example, a mouse, a keyboard, etc., and accepts information input by a user. The display device 17 is, for example, a display, and displays and outputs a user interface including various types of information.

[0030] The storage system 1 includes a CPU 2, a storage device 3, a memory 4, a communication I / F 5, and a plurality of drive boxes 6.

[0031] The communication I / F 5 is an interface such as a wired LAN card or a wireless LAN card, and communicates with the server 11.

[0032] The drive box 6 can accommodate one or more drives 7 and has a function of supplying power to the drives 7. The drives 7 are, for example, hard disks or flash memories, and store parcels containing user data and parcels containing redundant data for recovering the user data.

[0033] The CPU 2 is an example of a processor and executes various processes in accordance with programs stored in the memory 4 and / or the storage device 3. In this embodiment, the CPU 2 executes data read and write processes in accordance with user data read and write requests from the server 11. In this embodiment, the CPU 2 creates parcel groups including parcels containing user data and parcels containing redundant data for recovering the user data, manages the parcel groups in the virtual storage area 20 (see FIG. 2 ), and has a distributed RAID function that distributes and manages parcels from the same parcel group across multiple drives 7. The distributed RAID function may handle, for example, a 3D (data) 1P (parity) configuration in which a parcel group includes three parcels of user data and one parcel of redundant data, a 6D2P configuration in which a parcel group includes six parcels of user data and two parcels of redundant data, or other configurations. The CPU 2 identifies the storage location of each parcel in the virtual storage area 20 by referring to an integrated map 8 (described later). In addition, when adding one drive 7, the CPU 2 refers to the integrated map 8, refers to the map corresponding to the total number of drives to be added, and adjusts (moves) the position of the parcel so that it is arranged according to this map.

[0034] The memory 4 is, for example, a RAM, and stores the programs executed by the CPU 2 and necessary information.

[0035] The storage device 3 is, for example, a hard disk or flash memory, and stores programs executed by the CPU 2 and data used by the CPU 2. In this embodiment, the storage device 3 stores an integrated map 8 that has multiple maps indicating the correspondence between parcels and the storage locations where the parcels are stored.

[0036] The integrated map 8 includes maps corresponding to each number of drives 7 within a predetermined range (for example, from the minimum number to the maximum number in the storage system 1) that can be installed in the storage system 1, and each map indicates the correspondence between a parcel and the location where the parcel is located (drive information, for example, drive number and chunk number). For example, if multiple configurations such as 3D1P and 6D2P can be set as the RAID configuration in the storage system 1, the integrated map 8 includes multiple maps for each configuration.

[0037] In the integrated map 8, a map (first map) corresponding to the number of drives 7 arranged in the drive boxes 6 where the number is the same (first number: for example, 8, 12, 16, etc. when the RAID configuration is 6D2P) has a drive box fault tolerance correspondence relationship, which is a correspondence relationship between parcels and drives storing the parcels, that has drive box fault tolerance that prevents user data from being lost even if a failure occurs in up to a predetermined number of drive boxes (one in the case of 6D2P). The first map has a correspondence relationship that can be realized by moving, for some parcel groups, data of one parcel included in the parcel group to a drive box where a drive is added, from the storage state of parcels in the drives 7 according to the parcel-to-drive correspondence relationship in a map (second map) corresponding to the number (second number) that is one less than the number of drives 7 stored in the drive boxes 6 where the number of drives 7 is the same. A method for generating the integrated map 8 will be described later.

[0038] For example, in a conventional storage system, to add drives 7 one at a time, a single-drive expansion map was prepared to manage the correspondence between parcels and drives for each drive, and to enable drive box fault tolerance, a drive box fault tolerance map was prepared to manage the correspondence between parcels and drives for each drive number that would enable drive box fault tolerance. Because the single-drive expansion map and the drive box fault tolerance map are created independently, the correspondence between parcels and drives in the single-drive expansion map for a given total number of drives is completely different from the correspondence between parcels and drives in the drive box fault tolerance map. In contrast, the integrated map 8 is created so that maps corresponding to the number of drives 7 stored in the drive boxes 6 have a correspondence that satisfies drive box fault tolerance. Therefore, unlike the conventional system, it is not necessary to store a single-drive expansion map and a drive box fault tolerance map for the same number of drives, thereby reducing the capacity required to store the maps.

[0039] Figure 2 is a diagram illustrating parcel mapping according to one embodiment, showing an example of a 6D2P configuration.

[0040] In the storage system 1, data is managed in a virtual storage area 20. In the virtual storage area 20, data is managed in units of parcels 21 each having a predetermined fixed length.

[0041] In the 6D2P configuration, eight parcels, including a parcel 21 that stores six pieces of user data and a parcel 21 that stores redundant data (parity data) for recovering two pieces of user data, are grouped into a parcel group 22. Here, a parcel can be said to be a stripe in RAID, and the stripe width can be said to be eight.

[0042] The first number in the ID (parcel ID) assigned to the parcel 21 in Fig. 2 indicates the parcel group number, D indicates user data, P indicates redundant data, and the number after D or P indicates the number of the user data or redundant data within the parcel group. For example, 1-D0 indicates user data number 0 in the first parcel group, and 3-P1 indicates redundant data number 1 in the third parcel group.

[0043] A parcel 21 in the virtual storage area 20 is mapped to and stored on one of a plurality of drives 7. In this embodiment, the mapping between the parcel and the parcel's storage location is managed by an integrated map 8. In this embodiment, the drives 7 are arranged in ascending order of drive box number 6 so that the number of drives 7 housed in each drive box 6 is as uniform as possible, and each drive 7 is assigned a number according to the order in which it is arranged.

[0044] In the example of FIG. 2, for example, the parcel 21 of 1-D1 is stored at address 0 of the drive 7 of #5, and the parcel 21 of 1-D4 is stored at address 0 of the drive 7 of #7.

[0045] Next, the configuration of the integrated map 8 that manages the mapping of parcels shown in FIG. 2 will be described.

[0046] Fig. 3 is a diagram showing the configuration of an integrated map according to an embodiment. An integrated map 8 in Fig. 3 is an integrated map corresponding to a 6D2P configuration.

[0047] The integrated map 8 is a group of maps including maps 9 (···, 9-11, 9-12, ···) that indicate the correspondence between each number of units within a predetermined range that is expected to be used in the storage system 1. Maps 9-12 correspond to the state in FIG.

[0048] Map 9 (9-11, 9-12) includes an entry for each parcel. The entry includes fields for parcel 9a and storage location 9b. Parcel 9a stores the parcel ID of parcel 21. Storage location 9b stores information (drive number and address) of the drive on which parcel 21 with the parcel ID corresponding to the entry is stored. For example, #2-0 indicates that the parcel is stored at address 0 of drive 7 #2. As shown in Figure 3, each parcel in the same parcel group 9c is distributed and stored on different drives 7.

[0049] Next, we will explain how to write and read data using map 9 in integrated map 8.

[0050] When saving data in the storage system 1, the CPU 2 refers to the virtual storage area 20 to find free space where no data is saved, divides the data to be saved into parcel group sizes, and sequentially allocates each parcel in the free space. Next, the CPU 2 refers to the map 9 corresponding to the total number of drives 7 in the storage system 1, and writes the data of the parcel allocated in the free space to the corresponding address of the drive 7 with the corresponding drive number. On the other hand, when reading data, the CPU 2 searches the virtual storage area 20 for the parcel of the data to be read, refers to the map 9 to obtain the drive number and address corresponding to the parcel, and reads the parcel data from the obtained address of the drive 7 with the obtained drive number.

[0051] FIG. 4 is a diagram showing the configuration of a drive adding / removing operation screen according to one embodiment.

[0052] The drive expansion / reduction operation screen 41 is a screen (proposal screen) that is displayed on the display device 17 of the server 11 by the CPU 2 of the storage system 1 when the server 11 transmits a drive expansion / reduction request to the storage system 1.

[0053] The drive expansion / reduction operation screen 41 includes a current drive number display area 42, an operable drive number display area 43, and an operation instruction input area 44.

[0054] The current drive number display area 42 displays information about the drives 7 currently held by the storage system 1. In the example of Fig. 4, the current drive number display area 42 displays the number of drives 7, the number of drive boxes 6, and the number of drives 7 housed in each drive box 6.

[0055] The operable drive number display area 43 displays the number of drives that can be selected to change (add or remove) the current number of drives to the number of drives that enables drive box fault tolerance.

[0056] The operation instruction input area 44 is an area where the administrator can input instructions for adding or removing drives. The operation instruction input area 44 allows the administrator to input the type of addition or removal, indicating whether to add or remove drives, and the number of drives to be added or removed. For example, by selecting and inputting one of the drive numbers displayed in the operable drive number display area 43 into the operation instruction input area 44, an instruction to enable the drive box fault tolerance function can be easily given. Furthermore, by inputting the number of drives not displayed in the operable drive number display area 43 into the operation instruction input area 44, the number of drives input can be easily added or removed.

[0057] Next, the state transition table 30 will be described.

[0058] FIG. 5 is a diagram showing the configuration of a state transition table according to an embodiment.

[0059] The state transition table 30 in Figure 5 corresponds to a 6D2P RAID configuration, and is an example in which there are four drive boxes 6, each parcel group has eight parcels, and the number of parcel groups that can be stored in one drive 7 is 16. The state transition table 30 shows how the parcel group arrangement pattern changes when the total number of drives 7 is increased by one. The state transition table 30 includes an entry for each arrangement pattern that indicates the drive box 6 in which each parcel in the parcel group is arranged (stored). The entry in the state transition table 30 includes fields for a pattern number 30a, an arrangement pattern 30b, and a number of drives 30c.

[0060] The pattern number 30a stores a number indicating the allocation pattern corresponding to the entry. The allocation pattern 30b stores an allocation pattern indicating the drive box in which each parcel in the parcel group is allocated. The allocation pattern is represented by [A, B, C, D]. A, B, C, and D are numbers from 0 to 8, and the sum of A+B+C+D is 8. Here, A indicates the number of parcels stored in drive box #1, B indicates the number of parcels stored in drive box #2, C indicates the number of parcels stored in drive box #3, and D indicates the number of parcels stored in drive box #4. For example, [2, 2, 2, 2] indicates an allocation pattern in which two parcels in one parcel group are stored in drive box #1, two parcels are stored in drive box #2, two parcels are stored in drive box #3, and two parcels are stored in drive box #4. The arrangement pattern [2,2,2,2] is a pattern that allows each parcel to be restored even if a failure occurs in any of the drive boxes 6, that is, a pattern that has drive box failure resistance. In this embodiment, in FIG. 5, only eight arrangement patterns are shown among the possible arrangement patterns.

[0061] The multiple drive counts 30c are associated with a predetermined range of total numbers of drives (for example, from the minimum number of drives to the maximum number of drives) installed in the storage system 1. In the example of FIG. 5, the drive counts 30c are provided corresponding to numbers of drives ranging from 8 to 24. The drive count 30c stores the number of parcel groups to be stored as the allocation pattern corresponding to the entry when the total number of drives is the corresponding number. Note that if there is no parcel group of the allocation pattern corresponding to the entry, "-" indicating that there is none is stored in the drive count 30c.

[0062] For example, if the total number of drives is 8, the number of parcel groups corresponding to allocation pattern #1 ([2,2,2,2]) is 128. Also, if the total number of drives is 9, the number of parcel groups corresponding to allocation pattern #1 is 48, the number of parcel groups corresponding to allocation pattern #2 ([3,1,2,2]) is 32, the number of parcel groups corresponding to allocation pattern #3 ([3,2,1,2]) is 32, and the number of parcel groups corresponding to allocation pattern #4 ([3,2,2,1]) is 32.

[0063] In this example, when the number of drives 7 in each drive box 6 is the same, i.e., when the total number of drives is a multiple of 4 such as 8, 12, etc., the arrangement pattern of all parcel groups is determined to be [2, 2, 2, 2], thereby enabling the drive box fault tolerance function.

[0064] For example, let us consider the case where the total number of drives is increased by one from 11 to 12. When the total number of drives is 11, the number of parcel groups corresponding to arrangement pattern #1 is 80, the number of parcel groups corresponding to arrangement pattern #4 ([3,2,2,1]) is 32, the number of parcel groups corresponding to arrangement pattern #6 ([2,3,2,1]) is 32, and the number of parcel groups corresponding to arrangement pattern #7 ([2,2,3,1]) is 32. Here, arrangement pattern #1 is the second arrangement pattern, and arrangement patterns #4, #6, and #7 are first arrangement patterns.

[0065] Here, if one drive 7 is added to drive box #4, bringing the total number of drives to 12, the total number of parcel groups becomes 192. In this case, for each of the 32 parcel groups corresponding to allocation pattern #4, one parcel is moved from drive box #1 to drive box #4 to form allocation pattern #1, and similarly, for each of the 32 parcel groups corresponding to allocation pattern #6, one parcel is moved from drive box #2 to drive box #4 to form allocation pattern #1, and for each of the 32 parcel groups corresponding to allocation pattern #7, one parcel is moved from drive box #3 to drive box #4 to form allocation pattern #1, and the 16 parcel groups corresponding to the added capacity become allocation pattern #1.

[0066] This allows all 192 parcel groups to be allocated to allocation pattern #1. In other words, the drive box fault tolerance function can be enabled in storage system 1. In this case, for some parcel groups, i.e., parcel groups corresponding to allocation patterns #4, #6, and #7, it is only necessary to move the data of one parcel from each group to be stored in drive box #4 to which drive 7 has been added, thereby reducing the amount of data to be transmitted.

[0067] Here, the state transition table 30 is used to generate a map corresponding to each number of vehicles, as described below, but since the number of arrangement patterns when distributing and storing the eight parcels in each parcel group can be limited to a small number (eight in this example), the amount of calculation and calculation time required to generate the map can be reduced.

[0068] Fig. 6 is a diagram showing the configuration of a transition permission list according to one embodiment. The transition permission list 31 in Fig. 6 is a list showing possible transition arrangement patterns when one drive is added to the state transition table 30 shown in Fig. 5.

[0069] In the transition permission list 31, N represents the total number of drives, and k represents a natural number equal to or greater than 2. When N=4k, i.e., when the total number of drives is a multiple of 4, and one drive 7 is added, the parcel group of allocation pattern #1 can transition to any one of allocation patterns #2, #3, or #4. When N=4k+1, i.e., when the total number of drives is a multiple of 4+1, and one drive 7 is added, the parcel group of allocation pattern #1 can transition to any one of allocation patterns #5 or #6, the parcel group of allocation pattern #2 can transition to allocation pattern #1, the parcel group of allocation pattern #3 can transition to any one of allocation patterns #3 or #8, and the parcel group of allocation pattern #4 can transition to any one of allocation patterns #4 or #8.

[0070] Furthermore, if N=4k+2, i.e., the total number of drives is a multiple of 4+2, and one drive 7 is added, the parcel group of placement pattern #1 can transition to either placement pattern #1 or #7, the parcel group of placement pattern #3 can transition to placement pattern #1, the parcel group of placement pattern #4 can transition to either placement pattern #4 or #7, the parcel group of placement pattern #5 can transition to either placement pattern #1 or #6, the parcel group of placement pattern #6 can transition to either placement pattern #6 or #7, and the parcel group of placement pattern #8 can transition to either placement pattern #4, #6, or #7. Furthermore, if N=4k+3, i.e., the total number of drives is a multiple of 4+3, and one drive 7 is added, the parcel group of placement pattern #1 can transition to placement pattern #1, the parcel group of placement pattern #4 can transition to placement pattern #1, the parcel group of placement pattern #6 can transition to placement pattern #1, and the parcel group of placement pattern #7 can transition to placement pattern #1.

[0071] Next, the change of mapping when a drive is added will be described.

[0072] 7 is a diagram illustrating how mapping changes when a drive is added according to one embodiment. Fig. 7 shows how mapping changes when a drive #7 is added to increase the total number of drives from eight to nine.

[0073] When drive #9 is added, the area of ​​the parcel group set 23 including 16 parcel groups 22 corresponding to the capacity of the added drive 7 is increased in the virtual storage area 20.

[0074] In this example, the numbers of the new parcel groups 22 added to the parcel group set 23 are 129 to 144. First, the parcels 21 of each parcel group 22 of the parcel group set 23 are stored on drive #9. For convenience, only the parcels of the 129th parcel group are shown in FIG. 7.

[0075] In this state, all parcels 21 in the new parcel group 22 are located on the added drive #9, so if the added drive #9 were to fail, the data would become inaccessible. To prevent this, seven of the eight parcels 21 in each parcel group are moved to a different drive 7.

[0076] Here, since there is no free space on the existing drive 7, the new parcels will be replaced with existing parcels 21. In other words, for each new parcel group 22, a process is performed in which seven parcels 21 are replaced with existing parcels 21 stored on different drives 7. This process of replacing the new parcels with the existing parcels is performed by referring to the map 9 for eight vehicles. Specifically, a map with the same content as the map 9 for eight vehicles is prepared as the map 9 for nine vehicles, and by replacing the new parcels with the existing parcels on this map, the content of the replaced portion corresponds to the map 9 for nine vehicles, and when all the replacements are complete, the map 9 for nine vehicles is complete.

[0077] Therefore, a map 9 for nine drives can be generated to represent the state after processing has been performed to replace seven parcels 21 with existing parcels 21 stored on different drives. Similarly, by sequentially generating maps 9 for each additional drive, it is possible to generate a map for any number of drives. However, when generating map 9 in this manner, it is necessary to create in advance an initial state map, i.e., a map for when the total number of drives is the minimum. In this embodiment, since the minimum number is eight drives, it is sufficient to create a map for all parcel groups that stores one parcel on each of drives #1 to #8.

[0078] Next, the integrated map generation process by the server 11 for generating the integrated map 8 will be described in detail.

[0079] Fig. 8 is a flowchart of an integrated map generation process according to an embodiment. Fig. 8 shows an example of the integrated map generation process when the state transition table 30 is in the state shown in Fig. 5 and the transition permission list 31 is in the state shown in Fig. 6.

[0080] The integrated map generation process is a process that repeatedly executes a process to generate a map for a total number of drives of N+1 by adding correspondence relationships for new parcel groups 23 that are added by adding one drive based on a map for a total number of drives of N and correcting the correspondence relationships.

[0081] In this embodiment, the capacity of one drive 7 can store 16 parcel groups, and an example will be described in which the number of parcels in a parcel group, ie, the stripe width, is 8.

[0082] The CPU 12 of the server 11 executes the integrated map generation process by executing a program for the integrated map generation process. First, the CPU 12 executes an initial process for setting variables, constants, arrays, etc. (S11). Specifically, CPU 12 sets the number of drives (N) indicating the total number of drives to an initial value of 8, sets the maximum number of drives (N_MAX) indicating the maximum total number of drives in storage system 1 to 24, sets the total number of parcel groups (NumPGs) indicating the total number of parcel groups in storage system 1 to 8 x 16 = 128, sets the stripe width (STRIPE) indicating the number of parcels in parcel group 22 to 8, sets the number of parcel groups per drive (PGperDrive) indicating the number of parcel groups that can be stored in one drive to 16, sets the array (ArrngPtn) indicating the number of parcel groups for each arrangement pattern (the eight arrangement patterns shown in FIG. 5) indicating the arrangement of parcels in a parcel group to [128,0,0,0,0,0,0,0,0], and sets the map for the case where the number of drives is eight in array PGs. Note that the map for the case where the number of drives is eight is created in advance before the integrated map generation process.

[0083] Next, the CPU 12 determines whether the number of drives N is smaller than the maximum number of drives N_MAX (S12). As a result, if the number of drives N is smaller than the maximum number of drives N_MAX (S12: Yes), this means that maps corresponding to each number of drives up to the maximum number of drives have not been created, and the CPU 12 executes the processing from step S13. On the other hand, if the number of drives N is not smaller than the maximum number of drives N_MAX (S12: No), this means that the processing from step S13 onwards has been repeated 16 times in this example until the number of drives N reaches the maximum number of drives N_MAX, and maps (PGs) corresponding to each number of drives up to the maximum number of drives have been created, and the CPU 12 ends the processing.

[0084] In step S13, the CPU 12 adds 1 to the number of drives N, and initializes the array AddedPGs, which holds the placement positions of each parcel in the new parcel group set 23, as an empty list.

[0085] Next, the CPU 12 determines whether the number of elements in the array AddedPGs is smaller than the number of parcel groups per drive, PGperDrive (S14). As a result, if the number of elements in the array AddedPGs is smaller than the number of parcel groups per drive, PGperDrive (S14: Yes), this means that the storage locations of each parcel for all parcel groups of the added drive 7 have not been determined, and the CPU 12 executes the processing from step S15. On the other hand, if the number of elements in the array AddedPGs is not smaller than the number of parcel groups per drive, PGperDrive (S14: No), this means that elements have been created for all added parcel groups, and the CPU 12 adds the elements of the array AddedPGs to the array PGs (S19) and proceeds to step S12.

[0086] In step S15, the CPU 12 initializes an array NewPG, which holds information about the drive on which each parcel of the new parcel group 24 is to be placed. In this embodiment, the CPU 12 initializes the array NewPG as a list in which the first element is set to N and the rest are set to empty. This reduces the processing for determining the elements of the array NewPG in step S16 and thereafter by one element. Here, the fact that NewPG has N as an element means that for the new parcel group 24, one parcel 21 is always placed on the added Nth drive 7, and this parcel does not need to be replaced with a parcel on another drive 7. Note that in step S15, the array NewPG may be initialized as an empty list.

[0087] Next, CPU 12 determines whether the number of elements in array NewPG is smaller than the stripe width STRIPE (S16). As a result, if the number of elements in array NewPG is smaller than the stripe width STRIPE (S16: Yes), it means that the placement positions for all parcels in the parcel group have not been determined, so CPU 12 executes state transition processing (see FIG. 9) to determine the placement positions of the parcels, i.e., the existing parcels to be replaced with the new parcels (S17), and proceeds to step S16. On the other hand, if the number of elements in array NewPG is not smaller than the stripe width STRIPE (S16: No), it means that the placement positions for all parcels in the parcel group have been determined, so CPU 12 adds array NewPG for the new parcel group 22 to array AddedPGs for the parcel group set 23 (S18), and proceeds to step S14.

[0088] Next, the state transition process in step S17 will be described.

[0089] FIG. 9 is a flowchart of a state transition process according to an embodiment.

[0090] The state transition process is a process of determining the existing parcel 21 that will be replaced with one new parcel 21. Specifically, based on the state transition table 30 and the transition permission list 31, it determines the placement pattern to which the parcel group 28 to be replaced will change, and within the range of that change, it determines the existing parcel 21 to be replaced with.

[0091] The CPU 12 searches the transition permission list 31 based on the number of drives N, identifies possible changes in the allocation pattern (state transitions), and creates a candidate list by listing the identified changes in the allocation pattern (S21).

[0092] Next, the CPU 12 sets all existing parcel groups 22 in the PG list (S22).

[0093] Next, the CPU 12 selects one placement pattern change from the candidate list, and refers to the state transition table 30 to obtain the number of allowable parcel groups, which is the number of parcel groups that are allowable as a placement pattern after a state transition that satisfies the selected placement pattern change (S23).

[0094] Next, the CPU 12 determines whether or not a change in the placement pattern has been obtained from the candidate list (S24), and if a change in the placement pattern has not been obtained (S24: No), it notifies the user that the map generation has failed (S25) and terminates the integrated map generation process.

[0095] On the other hand, if a change in the arrangement pattern can be acquired from the candidate list (S24: Yes), the CPU 12 determines whether the number of parcel groups in the arrangement pattern after the state transition is within the allowable number of parcel groups (S26).

[0096] As a result, if the number of parcel groups in the placement pattern after the state transition is not within the allowable number of parcel groups (S26: No), this means that no further changes to the acquired placement pattern are allowed, so the CPU 12 proceeds to step S23 and processes changes to other placement patterns in the candidate list.

[0097] On the other hand, if the number of parcel groups in the arrangement pattern after the state transition is within the allowable number of parcel groups (S26: Yes), the CPU 12 determines whether the PG list is empty (S27). As a result, if the PG list is empty (S27: Yes), this means that there is no target parcel group, and the CPU 12 proceeds to step S22.

[0098] On the other hand, if the PG list is not empty (S27: No), the CPU 12 selects one parcel group to be processed from the PG list, for example, randomly (S28). The CPU 12 deletes the selected parcel group from the PG list. Here, in the description of this process, the selected parcel group is referred to as a candidate parcel group.

[0099] Next, CPU 12 determines whether the placement pattern of the candidate parcel group matches the selected state transition (S29). Specifically, CPU 12 determines whether the placement pattern matches the selected state transition when any one parcel in the candidate parcel group is replaced with a parcel in the Nth drive 7. If CPU 12 determines that the placement pattern of the candidate parcel group does not match the selected state transition (S29: No), this means that the parcel in the candidate parcel group will not be the parcel to be replaced, and CPU 12 proceeds to step S27.

[0100] On the other hand, if it is determined that the placement pattern of the candidate parcel group matches the selected state transition (S29: Yes), the CPU 12 selects a drive box number in the candidate parcel group that will result in a placement pattern after the state transition of the selected placement pattern, and selects one drive number of a drive contained in that drive box (S30).

[0101] Next, the CPU 12 determines whether or not a drive number was selected in step S30 (S31). As a result, if a drive number could not be selected (S31: No), the CPU 12 advances the process to step S27.

[0102] On the other hand, if a drive number can be selected (S31: Yes), the CPU 12 determines whether the selected drive number exists in the array NewPG (S32). As a result, if the selected drive number exists in the array NewPG (S32: Yes), multiple parcels within a parcel group cannot be allocated to the same drive, so the CPU 12 proceeds to step S30 and selects another drive number.

[0103] On the other hand, if the selected drive number does not exist in the array NewPG (S32: No), the CPU 12 replaces the current drive in the array PGs of the parcel that is a candidate to be moved to the selected drive of the candidate parcel group with the Nth drive, and adds the selected drive number to the array NewPG of the new parcel group 22 (S33).

[0104] Next, the CPU 12 determines whether the candidate parcel group satisfies the configuration condition of the distributed RAID, i.e., whether parcels allocated to the same drive number do not exist within the same parcel group (S34). As a result, if the configuration condition is satisfied (S34: Yes), the CPU 12 ends the state transition process and proceeds to step S16 of FIG.

[0105] On the other hand, if the configuration condition is not satisfied (S34: No), the CPU 12 cancels the process of step S33 and proceeds to step S30.

[0106] The present invention is not limited to the above-described embodiment, and can be modified appropriately without departing from the spirit of the present invention.

[0107] For example, in the above embodiment, the server 11 is configured to store the transition permission list 31, but it may not be provided with the transition permission list 31 and the information in the transition permission list 31 may be identified from the information in the state transition table 30.

[0108] Furthermore, in the above embodiment, an example has been shown in which the server 11 generates the integrated map 8, but the present invention is not limited to this, and for example, the storage system 1 may generate the integrated map 8 by a process similar to that of the server 11. In this case, the integrated map 8 may not be stored in the storage system 1 in advance, but may be dynamically generated while the storage system 1 is operating. [Explanation of symbols]

[0109] 1...storage system, 2...CPU, 3...storage device, 4...memory, 5...communication I / F, 6...drive box, 7...drive, 8...integrated map, 11...server, 12...CPU, 13...storage device, 14...memory, 30...state transition table, 31...transition permission list, 100...computer system

Claims

1. A storage system having a plurality of drive boxes each containing one or more drives, the storage system manages a plurality of parcel groups, each of which includes a parcel containing user data and a parcel containing redundant data for recovering the user data, in a distributed manner such that the parcels contained in the same parcel group are not located on the same drive; a storage device for storing a group of maps including maps indicating a correspondence between each parcel and a drive storing the parcel, the maps corresponding to each number of drives within a predetermined range of the number of drives that can be installed in the storage system; a first map corresponding to a first number when the plurality of drive boxes accommodate the same number of drives has a drive box fault tolerance correspondence relationship that is a correspondence relationship between the parcels and the drives that store the parcels, and that has drive box fault tolerance that prevents user data from being lost even if a failure occurs in a predetermined number of drive boxes; The first map has a correspondence relationship that can be realized by moving, for some parcel groups, data of one parcel included in a parcel group to a drive box where a drive is added, from a storage state of the parcels in the drives according to a correspondence relationship between the parcels and the drives in a second map corresponding to a second number where the number of drives is one less than the first number. Storage system.

2. When adding one drive, the storage system adjusts the placement positions of the parcels in the parcel group based on the correspondence relationship in the map corresponding to the addition of one drive. The storage system according to claim 1 .

3. The predetermined range of the number of units is from the minimum number to the maximum number that can be arranged in the storage system. The storage system according to claim 1 .

4. The storage system includes: A proposal screen is displayed that proposes the number of drives that need to be added or removed to achieve a drive box fault tolerance correspondence relationship based on the number of drives that are actually installed. The storage system according to claim 1 .

5. A map generating device for a storage system having a plurality of drive boxes accommodating one or more drives, which manages a plurality of parcel groups each including a parcel containing user data and a parcel containing redundant data for recovering the user data in a distributed manner so that parcels included in the same parcel group are not allocated to the same drive, the map generating device generating a map showing a correspondence relationship between each parcel and a drive storing the parcel, the map generating device comprising: a processor; the processor generates a map corresponding to each of a predetermined range of the number of drives that can be installed in the storage system by gradually generating a map for when the number of drives is increased one by one based on a map corresponding to the minimum number of drives in the range of the number, and a first map corresponding to a first number when the plurality of drive boxes accommodate the same number of drives has a drive box fault tolerance correspondence relationship that is a correspondence relationship between the parcels and the drives that store the parcels, and that has drive box fault tolerance that prevents user data from being lost even if a failure occurs in a predetermined number of drive boxes; The first map has a correspondence relationship that can be realized by moving, for some parcel groups, data of one parcel included in a parcel group to a drive box where a drive is added, from a storage state of the parcels in the drives according to a correspondence relationship between the parcels and the drives in a second map corresponding to a second number where the number of drives is one less than the first number. Map generator.

6. the map generating device has a storage device; The storage device is storing a state transition table that stores arrangement patterns of parcels of parcel groups to drive boxes for each number of drives within a predetermined range of the number of drives that can be installed in the storage system, and the number of parcel groups in the arrangement patterns; In the state transition table, for a first number when the number of drives accommodated in the plurality of drive boxes is the same, the number of all parcel groups is associated with an arrangement pattern in which the same number of parcels of the parcel groups are stored in each drive box; For a second number of drives that is one less than the first number, a portion of the parcel groups are associated with one or more first arrangement patterns in which the same number of parcels of the parcel group are stored in each drive box by moving one parcel of the parcel group, and the remaining number of parcel groups are associated with a second arrangement pattern in which the same number of parcels of the parcel group are stored in each drive box, The processor generates the first map corresponding to the first number by adding an area for one drive to the second map corresponding to the second number and adjusting the correspondence between the parcels and the drives storing the parcels so that the parcel group corresponding to the second arrangement pattern in the state transition table becomes the first arrangement pattern. The map generating device according to claim 5 .

7. A map generating method for a storage system having a plurality of drive boxes accommodating one or more drives, and distributing and managing a plurality of parcel groups each including a parcel containing user data and a parcel containing redundant data for recovering the user data so that parcels included in the same parcel group are not allocated to the same drive, the map generating method being performed by a map generating device that generates a map showing a correspondence relationship between each parcel and a drive that stores the parcel, the map generating method comprising: the map generating device generates a map corresponding to each of a predetermined range of the number of drives that can be installed in the storage system by gradually generating a map for when the number of drives is increased one by one based on a map corresponding to the minimum number of drives in the range of the number, a first map corresponding to a first number when the plurality of drive boxes accommodate the same number of drives has a drive box fault tolerance correspondence relationship that is a correspondence relationship between the parcels and the drives that store the parcels, and that has drive box fault tolerance that prevents user data from being lost even if a failure occurs in a predetermined number of drive boxes; The first map has a correspondence relationship that can be realized by moving, for some parcel groups, data of one parcel included in a parcel group to a drive box where a drive is added, from a storage state of the parcels in the drives according to a correspondence relationship between the parcels and the drives in a second map corresponding to a second number where the number of drives is one less than the first number. Map generation method.

Citation Information

Patent Citations

  • Storage system and storage management method

    JP2022175427A