Storage system and data control method

By reconfiguring data between semiconductor memories with different characteristics and reconfiguring the storage area according to the writing frequency, the problem of first exhausting the life of the storage device in the prior art is solved, and the effect of life extension and management cost reduction is achieved.

CN111736773BActive Publication Date: 2025-04-11HITACHI VANDALA CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202010541312.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2015-04-09
Publication Date
2025-04-11
Estimated Expiration
2035-04-09

AI Technical Summary

Technical Problem

When writing to multiple storage devices of the same type but different characteristics, the prior art does not consider the characteristics difference, resulting in the lifetime of the SSD with fewer upper limit times being exhausted first, increasing the replacement times and management costs.

Method used

By reconfiguring data between semiconductor memories with different characteristics, the processor allocates storage areas to the virtual volume provided to the host from the first storage device and the second storage device, and reconfigures the data in the appropriate storage device according to the write frequency.

Benefits of technology

The life of storage devices of the same types but different characteristics is extended, reducing application management costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111736773B_ABST
    Figure CN111736773B_ABST
Patent Text Reader

Abstract

The subject of the present invention is to provide a storage system and a data control method, which can extend the life of storage devices of the same type but different characteristics and reduce application management costs. The technical solution is to include: a first storage device; a second storage device having a smaller upper limit of write times than the first storage device but a larger storage capacity per unit area; and a processor, which allocates storage areas from the first storage device and the second storage device to a virtual volume provided to a host, and for a storage area in the storage area allocated to the virtual volume from the second storage device and for which the write frequency of the host is greater than a predetermined write threshold, the processor reconfigures the data stored in the storage area from the storage area of ​​the second storage device to the storage area of ​​the first storage device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a storage system and a data control method, and is particularly preferably applied to a storage system and a data control method that utilize a plurality of storage devices of the same type but different characteristics and automatically reconfigure data between the storage devices. Background Art

[0002] In recent years, the types of storage devices installed in storage systems have become more diverse due to the popularity of HDD (Hard Disk Drive) and SSD (Solid State Drive). In particular, SSDs have data storage methods such as SLC (Single Level Cell), 2bit MLC (Multi Level Cell) or TLC (Triple Level Cell), and even the same type of storage device has different lifespans (upper limit of write times) and bit costs.

[0003] Generally speaking, SLC has the longest lifespan, and it becomes shorter in the order of MLC and TLC. In addition, TLC has the lowest bit cost, and it increases in the order of MLC and SLC. Therefore, in a storage system equipped with SSD, it is important to appropriately configure data in consideration of this characteristic.

[0004] Patent Documents 1 and 2 disclose technologies for managing or controlling a storage system equipped with a plurality of storage devices. Specifically, Patent Document 1 discloses a technology for managing a plurality of storage devices as a pool and providing a virtual volume to a host device.

[0005] Patent document 2 discloses a technology for managing HDDs and SSDs as storage devices at different levels, automatically reallocating data according to the access frequency from the host device, and improving the data hit rate at the higher level, thereby improving the responsiveness to the host device.

[0006] Prior art literature

[0007] Patent Literature

[0008] Patent Document 1: U.S. Patent No. 7447832

[0009] Patent Document 2: U.S. Patent No. 8041682 Summary of the invention

[0010] Problems to be solved by the invention

[0011] However, in the technologies described in Patent Documents 1 and 2, when writing to a storage system in which a plurality of storage devices (eg, SSDs) of the same type but different characteristics (lifespan and bit cost) are mixed, data is written to each storage device without considering the characteristics.

[0012] When writing is performed without considering the characteristics of the SSD, the life of an SSD with a smaller write limit will be exhausted before that of an SSD with a larger write limit. This increases the number of times an SSD with exhausted life must be replaced, and the application management cost of the storage system increases.

[0013] The present invention is made in consideration of the above aspects and proposes a storage system and a data control method that can extend the life of storage devices of the same type but different characteristics and reduce application management costs.

[0014] Technical solutions to solve problems

[0015] In order to solve this problem, the present invention includes: a first storage device; a second storage device having a smaller upper limit of write times than the first storage device but a larger storage capacity per unit area; and a processor, which allocates storage areas from the first storage device and the second storage device to a virtual volume provided to a host; the processor reconfigures the data stored in the storage area allocated to the virtual volume from the second storage device and the write frequency of the host being greater than a predetermined write threshold into the storage area of ​​the first storage device.

[0016] In addition, in order to solve the problem, in the present invention, a data control method for a storage system includes a first storage device, a second storage device having a smaller write upper limit number than the first storage device but a larger storage capacity per unit area, and a processor for allocating storage areas from the first storage device and the second storage device to a virtual volume provided to a host, wherein the processor executes: a first step of reconfiguring data stored in a storage area in the first storage device for a storage area in the storage area allocated to the virtual volume from the second storage device and for which the write frequency of the host is greater than a predetermined write threshold; and a second step of reconfiguring data stored in the storage area in the second storage device for a storage area in the storage area allocated to the virtual volume from the first storage device and for which the write frequency of the host is less than the write threshold.

[0017] Effects of the Invention

[0018] According to the present invention, the life of storage devices of the same type but different characteristics can be extended, and application management costs can be reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 It is a diagram showing the overall configuration of the computer system in the first embodiment.

[0020] Figure 2 It is a logical structure diagram of the storage system.

[0021] Figure 3 This is a conceptual diagram of the page reconfiguration process performed between TLC and MLC.

[0022] Figure 4 This is a conceptual structural diagram of the page reconfiguration process performed between TLC-TLC.

[0023] Figure 5 This is a diagram of the internal structure of the shared memory.

[0024] Figure 6 This is the internal structure diagram of the local storage.

[0025] Figure 7 It is the logical structure diagram of each page monitoring table.

[0026] Figure 8 It is a logical structure diagram of each parity group monitoring table.

[0027] Fig. 9 This is a logical structure diagram of the reconfiguration management table for each parity group.

[0028] Fig.10 It is a logical structure diagram of each pool reconfiguration management table.

[0029] Fig.11 It is a flowchart of host I / O processing.

[0030] Fig.12 This is a flowchart of the destage process.

[0031] Fig.13 It is a flow chart of life information collection and processing.

[0032] Fig.14 This is a flowchart of the threshold determination process.

[0033] Fig.15 is a flowchart of the reconfiguration process.

[0034] Fig.16 This is a flowchart of the TLC-MLC reconfiguration process.

[0035] Fig.17 This is a flowchart of the write rebalance process.

[0036] Fig.18 is a flow chart of the performance rebalancing process.

[0037] Fig.19 is a flowchart of the new allocation decision process.

[0038] Fig. 20 This is a conceptual diagram of the recommended capacity calculation method.

[0039] Fig.21 This is an example of the screen structure of the parameter setting screen.

[0040] Fig. 22 This is an example of the screen structure of a warning screen.

[0041] Fig.23 It is a diagram showing the overall configuration of a computer system in the second embodiment.

[0042] Fig.24 It is a logical structure diagram of the storage system.

[0043] Fig.25 This is a conceptual block diagram of a page reallocation process performed using a write demotion process.

[0044] Fig.26 This is a logical structure diagram of the reconfiguration management table for each parity group.

[0045] Fig. 27 It is a logical structure diagram of each pool reconfiguration management table.

[0046] Fig.28 is a flowchart of the reconfiguration process.

[0047] Fig.29 This is a flowchart of the inter-layer (inter-level) reconfiguration process.

[0048] Fig.30 is a flowchart of write de-staging processing.

[0049] Fig.31 is a flowchart of the new allocation decision process.

[0050] Fig.32 This is a conceptual diagram of a method for calculating the write-addition amount and the write-reduction requirement amount. DETAILED DESCRIPTION

[0051] An embodiment of the present invention is described below with reference to the accompanying drawings. In addition, the embodiment described below is an example for implementing the present invention and does not limit the technical scope of the present invention. In addition, for the common structure in each figure, the same reference number is added and its description is omitted. In addition, in the case of multiple identical components illustrated in each figure, letters are added like "201A", "201B" to distinguish, and on the other hand, letters are omitted like "201" in the case of a general term. Furthermore, the embodiment of the present invention can be implemented as software running on a general-purpose computer, or as dedicated hardware. In addition, it can also be implemented as a combination of software and hardware. In the following description, the information for management is described in the form of a table, but the information for management can also be expressed in a data structure other than a table, and sometimes "list", "DB", "queue" and the like are also referred to as "information". In addition, sometimes "program" is used as the subject (action subject) to describe each process in the embodiment of the present invention. The program is executed by a processor and uses a memory and a communication port (communication control device) to perform a prescribed process, so it can also be described with a processor as the subject. Part or all of the program can be implemented with dedicated hardware, or modularized. Various programs can also be installed in each computer through a program distribution server or a storage medium.

[0052] (1) First Embodiment

[0053] In the first embodiment, in a storage system equipped with only a semiconductor memory (SSD) as a storage device, data is reconfigured between semiconductor memories with different characteristics (e.g., between TLC-MLC) to extend the life of the semiconductor memory and reduce the bit cost. Furthermore, data is reconfigured between semiconductor memories of the same type (e.g., between TLC-TLC) to achieve load distribution and extend the life.

[0054] (1-1) Overall structure of computer system

[0055] Figure 1 1 shows the overall structure of a computer system 1 in the first embodiment. The computer system 1 is composed of a host 101, a management server 102, a network 103, and a storage system 104. The host 101 is, for example, a general server, and is connected to a port 105 of the storage system 104 via the network 103. The host 101 issues a read request or a write request to the storage system 104 to read and write data.

[0056] The network 103 is a communication line such as SAN (Storage Area Network) or Ethernet (registered trademark). The management server 102 is connected to the maintenance I / F 106 or port 105 of the storage system 104 via the network 103. The storage manager operates the management server 102 to perform various settings and management required for using the storage system 104.

[0057] Next, the internal structure of the storage system 104 is described. The storage system 104 includes a port 105, a maintenance I / F 106, a processor package 107, a cache memory 108, a shared memory 109, a drive 111, a drive 112, etc. These are connected to each other via an internal network 110 so as to be communicable.

[0058] The cache memory 108 is a high-speed accessible memory used to temporarily store data as a cache in order to improve the throughput and responsiveness of the I / O processing of the storage system 104. The processor package 107 has a local memory 113 and a processor 114. Here, the processor package 107 is shown as having two, 107A and 107B, but the number is not limited to this.

[0059] The processor 114 performs data transfer processing between the drives 111 and 112 and the cache memory 108 in order to process read requests and write requests from the host 101. The shared memory 109 is a memory that stores control information necessary for the processor 114 to process read requests or write requests or to execute functions (volume copy function, etc.) of the storage system 104. The shared memory 109 stores information shared by the processors 114 of a plurality of memory packages 107 (here, 107A and 107B).

[0060] The local memory 113 is a memory that stores control information necessary for the processor 114 to process a read request or a write request or to execute the functions of the storage system 104. The local memory 113 stores information used by each processor 114. The local memory 113 stores, for example, a program executed by the processor 114.

[0061] Drivers 111 and 112 are storage devices composed of a plurality of semiconductor memories (SSD: Solid State Drive). Driver 111 is an MLC SSD (Multi Level Cell SSD) storing 2 bits of information in one cell, and driver 112 is a TLC (Triple Level Cell SSD) storing 3 bits of information in one cell.

[0062] The difference between MLC SSD and TLC SSD is that in addition to the different amount of information per cell as mentioned above, the lifespan (upper limit of write times) and bit cost are also different. Generally speaking, the more information per cell, the shorter the lifespan. Therefore, the lifespan of MLC SSD is longer than that of TLC SSD. In addition, the bit cost is suppressed to a lower level as the amount of information per unit area increases, so the bit cost of MLC SSD is higher than that of TLC SSD.

[0063] That is, MLC SSD has a long life but a high bit cost, while TLC SSD has a short life but a low bit cost. In addition, here, MLC SSD and TLC SSD are used to form the drives 111 and 112, but this is not limited to this, and SLC SSD (Single Level Cell SSD) can also be used.

[0064] Regarding the drives 111 and 112, in the following description, when emphasizing storage devices of the same type but different characteristics, the drive 111 is sometimes referred to as an MLC SSD, and the drive 112 is sometimes referred to as a TLC SSD. In addition, a parity group composed of a plurality of MLC SSDs is sometimes referred to as an MLC PG, and a parity group composed of a plurality of TLC SSDs is sometimes referred to as a TLC PG.

[0065] (1-2) Logical structure of storage system

[0066] Figure 2 1 shows the logical structure of the storage system 104. The virtual volumes 202A and 202B provided by the processor 114 to the host 101 are logical storage areas recognized by the host 101 and are storage areas to which the host 101 issues read or write requests.

[0067] The pool 204 is composed of one or more pool volumes 206A to 206E. The pool volumes 206A to 206E are each composed of a storage area of ​​either an MLC SSD or a TLC SSD. One or more pool volumes 206A to 206E form a parity group (PG: Parity Group) 205A or 205B.

[0068] In addition, the parity group 205A is composed of only MLC SSDs and the parity group 205B is composed of only TLC SSDs, but the present invention is not limited thereto and a parity group may be composed of a mixture of MLC SSDs and TLC SSDs. The pool volume 206 is divided into a part or all of the parity group 205 for use.

[0069] For example, when the host 101 issues a write request to the virtual volume 202A, the processor 114 allocates a predetermined unit (page) of unused real storage area from the pool 204 to the virtual storage area of ​​the virtual volume 202A that is the target of the write request.

[0070] A page is a minimum unit of storage area when writing data. Here, virtual pages allocated to the virtual volume 202A or 202B are shown as 201A to 201E, and actual pages in the pool volumes 206A to 206E allocated to these pages 201A to 201E are shown as 207A to 207F.

[0071] Next time the host 101 issues a read request or a write request for the same page 201A, the processor 114 performs I / O processing on the storage area 207A of the allocated pool volume 206A, thereby performing processing as if the host 101 performed I / O processing on the virtual volume 202A.

[0072] That is, by using the virtual volume 202A or 202B, the storage areas (pages) 207A to 207F of the pool volumes 206A to 206E are allocated only to the used portion, thereby making it possible to effectively use the limited storage capacity.

[0073] Here, the number of writes per unit time (referred to as write frequency) from the host 101 is different for each page 201 constituting each virtual volume 202A or 202B. Therefore, for example, by arranging the page 201A with a high write frequency in the parity group 205A composed of MLC SSDs with a large write upper limit in terms of characteristics, the life of a storage device with a small write upper limit such as a TLC SSD can be extended.

[0074] Specifically, the above relocation is performed by copying the data stored in the page 207C to the unused page 207B, thereby changing the association between the page 201C of the virtual volume 202A and the page 207C of the pool volume 206B to the association between the page 201C of the virtual volume 202A and the page 207B of the pool volume 206A.

[0075] (1-3) Conceptual Structure of Page Configuration Processing

[0076] Figure 3 The conceptual structure of the page reconfiguration process performed between TLC and MLC is shown. Here, the page 301 is reconfigured between the parity group (hereinafter referred to as MLC PG) 205A composed of MLC SSD and the parity group (hereinafter referred to as TLC PG) 205B composed of TLC SSD. The reconfiguration target of the page 301 is determined based on the monitoring information collected for each page 301 in the MLC PG 205A and the TLC 205B.

[0077] Specifically, the number of writes is collected for each page 301 during a certain period, and after the period ends, the relocation target of the page 301 is determined based on the write frequencies of the MLC PG 205A and TLC PG 205B calculated from the monitoring information and the TLC-MLC write threshold 302.

[0078] Figure 3 In the example, the page 301 with a write load of more than 2000 for the TLC-MLC write threshold 302 is reallocated in the MLCPG 205A (arrow 303A), and the page 301 with a write load of less than 2000 is reallocated in the TLC PG (arrow 303B).

[0079] In this way, between MLC PG205A and TLC PG205B composed of SSDs with different lifespans, pages with high write frequency are reallocated in MLC PG205A composed of SSDs with a large write upper limit, and pages with low write frequency are reallocated in TLC PG205B composed of SSDs with a small write upper limit.

[0080] As a result, the number of writes in the TLC PG205B formed by an SSD with a small upper limit of write times can be reduced, and the life of the SSD with a small upper limit of write times (here, the TLC SSD) can be extended.

[0081] Figure 4 The conceptual structure of the page reallocation process performed between drives with the same characteristics (between TLC-TLC or between MLC-MLC). The page reallocation process performed between drives with the same characteristics is performed to adjust the write frequency between parity check groups composed of SSDs with the same write upper limit number.

[0082] Actually, two types of rebalancing processes are performed: write rebalancing for adjusting the write frequency between parity groups, and performance rebalancing for adjusting the I / O frequency between parity groups that has become unbalanced due to the write rebalancing.

[0083] Here, the write rebalancing and performance rebalancing between TLC PGs are described. First, in write rebalancing, the write frequency that needs to be reduced to ensure the life (called the write reduction requirement) or the write frequency that can be added within the range that can ensure the life (called the write addable amount) is calculated for each parity group.

[0084] At this time, the parity group with a positive write reduction requirement is used as write reduction PG 205B, and the parity group with a positive write addable amount is used as write add PG 205C. Then, the page 401A with a high write load of write reduction PG 205B and the page 401B with a low write load of write add PG 205C are moved relative to each other (arrow 403) to adjust the write frequency between the parity groups.

[0085] The pages to be moved during write rebalancing are determined based on the thresholds obtained from the monitoring information. The thresholds include a threshold for determining pages with high write load (referred to as write reduction threshold) 405 and a threshold for determining pages with low write load (referred to as write addition threshold) 406. During write rebalancing, in the write reduction PG 205B, pages 401A with a write frequency exceeding the write reduction threshold 405 are moved, and in the write addition PG 205C, pages 401B with a write frequency below the write addition threshold 406 are moved. Then, the write frequency is adjusted by moving each page.

[0086] The number of pages to be moved is determined by calculating the frequency of writing in one page move and calculating in advance the number of pages to be moved to meet the target write reduction requirement (referred to as the planned number of pages to be moved). Then, the number of pages corresponding to the calculated planned number of pages to be moved (relocation) is moved.

[0087] Next, in performance rebalancing, the I / O frequency obtained by summing the read frequency and the write frequency of each parity group is adjusted between parity groups by moving the read frequency in the opposite direction to the write rebalancing in accordance with the write frequency moved by the write rebalancing. Specifically, the page 402B with a low read load of the write reduction PG 205B and the page 402A with a high read load of the write addition PG 205C are moved (arrow 404) to adjust the read frequency between parity groups.

[0088] The pages to be moved during performance rebalancing are determined based on thresholds obtained from monitoring information. The thresholds include a threshold for determining pages with high read load (referred to as a read reduction threshold) 407 and a threshold for determining pages with low read load (referred to as a read addition threshold) 408.

[0089] During performance rebalancing, in the write reduction PG 205B, the page 402B with a read frequency below the read addition threshold 408 is used as the moving object, and in the write addition PG 205C, the page 402A with a read frequency above the read reduction threshold 407 is used as the moving object. Then, the read frequency is adjusted by moving each page. The number of pages to be moved is determined by precalculating the planned number of pages to be moved, similar to the write rebalancing. Then, the number of pages equivalent to the planned number of pages to be moved is moved (reconfigured).

[0090] (1-4) Internal structure of memory

[0091] Figure 5 1 shows the internal structure of the shared memory 109. In the shared memory 109, each page monitoring table 501, each parity group monitoring table 502, each parity group reconfiguration management table 503, each pool reconfiguration management table 504, cache management table 505, dynamic mapping table 506 and logical-physical address conversion table 507 are stored.

[0092] Each page monitoring table 501 is a table for managing monitoring information of each page including the number of I / Os, and each parity group monitoring table 502 is a table for managing monitoring information of each parity group including the number of I / Os. In addition, each parity group reconfiguration management table 503 is a table for managing control information about page reconfiguration of each parity group.

[0093] The pool relocation management table 504 is a table for managing control information on page relocation for each pool, and the cache management table 505 is a table for managing the dirty / clean state of data existing in the cache memory 108 when the data is stored in the cache memory 108 .

[0094] The pool relocation management table 504 is a table that manages, when data to be written to the virtual volume 202 is cached, the address of the cache memory 108 and the address of the page 201 that identifies (specifies) the corresponding virtual volume 202 in association with each other.

[0095] The dynamic mapping table 506 is a table that manages the correspondence between each page 201 of the virtual volume 202 , the page 207 of the pool volume 206 allocated to each page 201 , and the monitoring information of each page 201 .

[0096] The logical-physical address conversion table 507 is a table that manages the correspondence between the parity group, the pool volume, and the address of the parity group corresponding to the physical disk storing the data of the pool volume.

[0097] Figure 61 shows the internal structure of the local memory 113. The local memory 113 stores a host I / O processing program 601, a destage processing program 602, a life information collection processing program 603, a threshold determination processing program 604, a relocation processing program 604A, and a new allocation determination processing program 605. The processor 114 executes these various programs.

[0098] The host I / O processing program 601 is a program that processes a read request or a write request to the virtual volume 202 when an I / O request is received from the host 101. The destage processing program 602 is a program that saves data in the cache memory 108 that is not reflected in the physical disk in the physical disk. This processing is performed asynchronously with the processing of the I / O request from the host 101.

[0099] The life information collection processing program 603 is a program that issues commands to the drivers 111 and 112 at a predetermined period to collect life information and reflects the collected information in the shared memory 109. The threshold value determination processing program 604 is a program that calculates a threshold value for page reallocation based on the monitoring information collected at a predetermined period and the life information of the drivers 111 and 112.

[0100] The relocation processing program 604A is a program called by the threshold determination processing program 604, and is a program for relocation of pages based on various thresholds determined by the threshold determination processing program 604. The new allocation determination processing program 605 is a program executed synchronously with the host I / O processing program 601, and is a program for determining the parity group 205 of the allocation destination of the actual page for a new virtual page in the virtual volume 202 based on the threshold.

[0101] (1-5) Table structure

[0102] Figure 7 7 shows the logical structure of each page monitoring table 501. Each page monitoring table 501 is composed of a page number column 701, a write I / O count column 702, a read I / O count column 703, a total I / O count column 704, and a new write flag column 705.

[0103] The page number column 701 stores the page number for identifying the page 201, and the write I / O count column 702 stores the number of writes in a certain cycle. In addition, the read I / O count column 703 stores the number of reads in a certain cycle, and the total I / O count column 704 stores the total number of reads and writes in a certain cycle.

[0104] The cycle is the same as the cycle at which the threshold value determination processing program 604 collects monitoring information, and the threshold value determination processing program 604 takes the monitoring information of the certain period as the processing object. In addition, the new write flag column 705 stores a flag indicating whether the page is a newly allocated page.

[0105] Figure 8 The logical structure of each parity group monitoring table 502 is shown. Each parity group monitoring table 502 is composed of a parity group number column 801, a maximum write frequency column 802, a minimum write frequency column 803, a maximum read frequency column 804, a minimum read frequency column 805, a read / write ratio column 806, a write addable amount column 807, a write reduction required amount column 808, a new write I / O count column 809, a new write ratio column 810, an average I / O frequency column 811, and an allocated page number column 812.

[0106] The parity group number column 801 stores the parity group number for identifying the parity group 205, and the maximum write frequency column 802 stores the maximum write frequency of the pages in the parity group. The minimum write frequency column 803 stores the minimum write frequency of the pages in the parity group.

[0107] The maximum read frequency column 804 stores the maximum read frequency of pages in the parity group, and the minimum read frequency column 805 stores the minimum read frequency of pages in the parity group. In addition, the read / write ratio column 806 stores the ratio of the number of reads and the number of writes for the parity group.

[0108] The write frequency that can be added to the parity group within the range that can guarantee the life is stored in the write additional amount column 807, and the write frequency that needs to be reduced from the parity group to ensure the life is stored in the write reduction required amount column 808. The write additional amount column 807 and the write reduction required amount column 808 store values ​​calculated based on the write frequency of the parity group and the life information of the SSD, and they are all positive values.

[0109] The values ​​stored in the write-addition amount column 807 and the write-reduction requirement column 808 can be calculated by calculating the following equations 1 and 2 when the life information that can be collected from the SSD is the write-addition rate and the write-reduction requirement rate.

[0110] The write-addition rate is the ratio of the write frequency that can be added when the current write frequency is 100%, and the write-reduction request rate is the ratio of the write frequency that should be reduced to maintain the life when the current write frequency is 100%.

[0111] [Formula 1]

[0112] Write additional amount [IOPH (Input Output Per Hour]

[0113] =Min(write-addition rate of all SSDs constituting the parity group [%)

[0114] ×Parity group write frequency [IOPH]

[0115] ……(1)

[0116] [Formula 2]

[0117] Write reduction request amount [IOPH]

[0118] =Max(write reduction request rate of all SSDs constituting the parity group [%)

[0119] ×Parity group write frequency [IOPH]

[0120] ……(2)

[0121] The number of new writes to the parity group is stored in the new write I / O count column 809, and the ratio of updated writes to new writes in the write process in the parity group is stored in the new write ratio column 810. In addition, the average I / O frequency column 811 stores the average I / O frequency of each page in the parity group, and the number of pages allocated to the parity group is stored in the allocated page number column 812.

[0122] Fig. 9 1 shows the logical structure of each parity group reconfiguration management table 503. Each parity group reconfiguration management table 503 is composed of a parity group number column 901, a medium type column 902, a move source PG type column 903, a move target (destination) PG column 904, a write reduction threshold column 905, a write addition threshold column 906, a read reduction threshold column 907, a read addition threshold column 908, planned move page number columns 909A and 909B, actual move page number columns 910A and 910B, and a newly writable amount column 911.

[0123] The parity group number identifying the parity group is stored in the parity group number column 901, and the information on the characteristics of the SSD constituting the parity group is stored in the medium type column 902. In addition, information indicating either a write reduction PG or a write addition PG is stored in the migration source PG type column 903. The migration source PG type is determined based on the information stored in the write addable amount 807 or the write reduction required amount 808 of each parity group monitoring table 502.

[0124] Specifically, when a positive value is stored in the write additional amount column 807, information indicating that the write additional PG is stored in the mobile source PG type column 903 of the parity group. In addition, when a positive value is stored in the write reduction required amount column 808, information indicating that the write reduction PG is stored in the mobile source PG type column 903 of the parity group.

[0125] The parity group number of the movement target when the page relocation is executed is stored in the movement target PG column 904. For the parity group number of the movement target, the parity group with the lowest relocation progress can be determined as the movement target. The relocation progress can be calculated by using the planned movement page number columns 909A and 909B and the actual movement page number columns 910A and 910B to calculate the following formula 3.

[0126] [Formula 3]

[0127] Reconfiguration progress = actual number of pages moved / planned number of pages moved...(3)

[0128] The write reduction threshold column 905 stores a threshold for determining a page to be moved during write rebalancing in the write reduction PG, and the write addition threshold column 906 stores a threshold for determining a page to be moved during write rebalancing in the write addition PG.

[0129] The threshold for determining the page to be moved when rebalancing the performance in the write-addition PG is stored in the read reduction threshold column 907, and the threshold for determining the page to be moved when rebalancing the performance in the write-reduction PG is stored in the read addition threshold column 908. The write reduction threshold, the write addition threshold, the read reduction threshold, and the read addition threshold can be calculated by using the following formula 4.

[0130] [Formula 4]

[0131] Write reduction threshold [IOPH] = maximum write frequency [IOPH] × 0.7

[0132] Write additional threshold [IOPH] = minimum write frequency [IOPH] × 1.3

[0133] Read reduction threshold [IOPH] = maximum read frequency [IOPH] × 0.7

[0134] Read additional threshold [IOPH] = minimum read frequency [IOPH] × 1.3

[0135] ……(4)

[0136] The planned page movement number (write rebalancing) column 909A stores the number of pages required to adjust the write frequency between the parity groups composed of SSDs with the same characteristics, and the planned page movement number (performance rebalancing) column 909B stores the number of pages required to adjust the I / O frequency including the read frequency between the parity groups composed of SSDs with the same characteristics. The planned page movement number for write rebalancing can be calculated by calculating the following formula 5.

[0137] [Formula 5]

[0138] Number of pages planned to be moved for write rebalancing [pages]

[0139] = Target movement amount [IOPH] ÷ I / O frequency changed by one page movement [IOPH / page]

[0140] Target movement amount [IOPH]

[0141] =Min(write additional amount [IOPH], write reduction required amount [IOPH])

[0142] I / O frequency that changes due to one page movement [IOPH / page]

[0143] =(Average I / O frequency of pages to be moved to the additional PG [IOPH])

[0144] - Write the average I / O frequency of the pages to be moved to reduce the PG [IOPH]) ÷ 2

[0145] ……(5)

[0146] In addition, the planned number of pages to be moved for performance rebalancing can be calculated by using the following formula 6.

[0147] [Formula 6]

[0148] Number of pages planned to be moved for performance rebalancing [pages]

[0149] = Target movement amount [IOPH] ÷ I / O frequency changed by one page movement [IOPH / page]

[0150] Target movement amount [IOPH]

[0151] =((write frequency moved during write rebalancing [IOPH] × 2) +

[0152] (Average I / O frequency of writing additional PG [IOPH])

[0153] -Write reduces the average I / O frequency of PG [IOPH])) ÷ 2

[0154] I / O frequency that changes due to one page movement [IOPH]

[0155] =(Average I / O frequency of pages to be moved to the additional PG [IOPH])

[0156] - Write the average I / O frequency of the pages to be moved to reduce the PG [IOPH]) ÷ 2

[0157] ……(6)

[0158] The number of pages moved to other parity groups for write rebalancing is stored in the actual number of moved pages (write rebalancing) column 910A, and the number of pages moved to other parity groups for performance rebalancing is stored in the actual number of moved pages (performance rebalancing) column 910B. The number of new writes that can be processed in the parity group is stored in the available new write amount column 912. The available new write amount can be calculated by calculating the following formula 7.

[0159] [Formula 7]

[0160] New write capacity [I / O]

[0161] = Write frequency after parity group movement [IOPH]

[0162] × New allocation ratio [%] × Reconfiguration period [H]

[0163] ……(7)

[0164] Fig.10 1004 shows the logical structure of each pool reconfiguration management table 504. Each pool reconfiguration management table 504 is composed of a pool number column 1001, a life control reconfiguration cycle column 1002, a TLC-MLC write threshold column 1003, a new write threshold column 1004, a workload type column 1005, a new allocation strategy column 1006 between similar drives, a new allocation buffer column 1007, and a reconfiguration buffer column 1008.

[0165] The pool number for identifying the pool is stored in the pool number column 1001, and the cycle of page reconfiguration performed by executing the life control in the pool is stored in the life control reconfiguration cycle column 1002. In addition, the threshold value for determining in which parity group to configure the page when reconfiguring the page between the TLC PG and the MLC PG is stored in the TLC-MLC write threshold value column 1003. The TLC-MLC write threshold value can be calculated by calculating the following formula 8.

[0166] [Formula 8]

[0167] TLC-MLC write threshold [IOPH]

[0168] =Ave(maximum write threshold value [IOPH] of all TLC PGs)

[0169] TLC PG write limit threshold [IOPH]

[0170] =IF (Is the migration source PG type of this parity group a write-addition PG?)

[0171] Write frequency of this parity group [IOPH] + write additional amount [IOPH]

[0172] ELSE IF (Is the migration source PG type of this parity group a write-reduction PG?)

[0173] Write frequency of this PG [IOPH] - write reduction request amount [IOPH]

[0174] ……(8)

[0175] The new write threshold column 1004 stores a threshold for determining whether to allocate a new page from TLC PG or MLC PG when allocating a new page in the pool. The new write threshold can be specified by the penalty (=1 page data size) of the storage system 104 when moving a page.

[0176] Information on the characteristics of I / O requests issued from the host 101 to the virtual volumes associated with the pool is stored in the workload type column 1005. Examples of workload types include Write intensive, Read intensive, and Unknown.

[0177] Write intensive means that the write ratio is high in the I / O requests from the host 101, Read intensive means that the read ratio is high in the I / O requests from the host 101, and Unknown means that the read / write ratio is unknown in the I / O requests from the host 101. The workload type can be specified by the user or automatically determined by the storage system 104.

[0178] The new allocation strategy column 1006 between similar drives stores information for determining from which parity group the actual page allocation of the new page is performed in the TLC PG or MLC PG in the new allocation process. The new allocation strategy includes, for example, round-robin for sequential allocation between parity groups, capacity priority for allocation from a parity group with a large capacity, or life priority for allocation from a parity group with a large amount of write appendable capacity. The new allocation strategy may be specified by the user or automatically determined by the storage system 104.

[0179] The ratio of the buffer used in the pool for the new allocation process to the pool capacity is stored in the new allocation buffer column 1007. The ratio of the buffer used in the pool for the page relocation process to the pool capacity is stored in the relocation buffer column 1008. In addition, in the per-pool relocation management table 504, there is an entry storing the default value of the relocation control information, and the default value is stored in the control information not specified by the user.

[0180] (1-6) Flowchart

[0181] Fig.11Flowchart showing host I / O processing. The host I / O processing is executed in response to the storage system 104 receiving an I / O request from the host 101, through the cooperation of the processor 114 and the host I / O processing program 601. For ease of description, the processing subject is regarded as the host I / O processing program 601.

[0182] First, when the host I / O processing program 601 receives an I / O processing request from the host 101, it determines whether the received I / O processing request is a write request to write data to the virtual volume 202 (S1101).

[0183] In the case of a write request (S1101: Yes), the host I / O processing program 601 refers to the dynamic mapping table 506 to determine whether an actual page has been allocated to the virtual page of the write target. Then, if it has not been allocated, a new allocation decision process (S1109) is executed to allocate an unused actual page. The details of the new allocation decision process are described later ( Fig.19 ).

[0184] After executing the new allocation determination process, the host I / O processing program 601 checks whether the area corresponding to the address of the write target in the virtual volume 202 has been acquired in the cache memory 108. If not, the host I / O processing program 601 acquires the area in the cache memory 108 (S1110).

[0185] Next, the host I / O processing program 601 notifies the host 101 of the data to be written. When the host I / O processing program 601 sends data from the host 101, the host I / O processing program 601 writes the data into the acquired area in the cache memory 108 (S1111). Then, the host I / O processing program 601 sets the dirty flag indicating that the write to the drive 111 or 112 is not completed in the cache management table 505 to ON.

[0186] Here, the dirty flag is information indicating that data is stored only in the cache memory 108 and has not yet been stored in the drive 111 or 112. The dirty flag is set to ON or OF in the cache management table 505 that manages the area of ​​the cache memory 108. The cache management table 505 is used in the destage process ( Fig.12 ) is referenced in .

[0187] Then, when the dirty flag is ON, the data stored in the area in the cache memory 108 is written to the drive 111 or 112. After writing to the drive 111 or 112, the dirty flag is set to OFF, including the case where the data read from the drive 111 or 112 is stored in the cache memory 108 corresponding to the read process, and the clean flag is set to ON in the cache management table 505.

[0188] In this way, the cache management table 505 manages at least the address of the virtual volume 202 corresponding to the address in the cache memory 108 and the state of the data in the cache memory 108. The address of the virtual volume 202 corresponding to the address of the cache memory 108 stores a valid value, that is, the address of the virtual volume 202, only when an area in the cache memory 108 is acquired to place the data of the virtual volume 202.

[0189] After performing the above processing, the host I / O processing program 601 notifies the host 101 that the I / O processing (write processing) has been completed (S1112), and ends the present processing.

[0190] Returning to step S1101, when the I / O request received from the host 101 is a read request to read data from the virtual volume 202 (S1101: No), the host I / O handler 601 refers to the cache management table 505 to determine whether the data corresponding to the address in the virtual volume 202 corresponding to the read request is stored in the cache memory 108 (S1102).

[0191] The case where the data corresponding to the address in the virtual volume 202 corresponding to the read request is stored in the cache memory 108 is called a cache hit. In the case of a cache hit (S1102: Yes), the host I / O processing program 601 transfers the data in the cache memory 108 to the host 101 (S1108), notifies the host 101 that the I / O processing (read processing) is completed, and ends this processing.

[0192] On the other hand, in the case of a cache miss (S1102: No), the host I / O processing program 601 reserves an area for storing data corresponding to the address of the virtual volume 202 to be read in the cache memory 108 (S1103). Next, the host I / O processing program 601 refers to the dynamic mapping table 506 to confirm whether an actual page is allocated from the pool 204 to the address of the virtual volume 202 to be read.

[0193] When no actual page is allocated to the virtual volume 202, the host I / O processing program 601 refers to the dynamic mapping table 506, uses the page storing the default value to calculate the address of the driver 111 or 112 storing the default value, and transfers the default value from the driver 111 or 112 to the area of ​​the cache memory 108 (S1105).

[0194] Here, in the case of the default value, the pool volume number and logical address corresponding to the virtual volume 202 and the logical address of the dynamic mapping table 506 are set to the pool volume number and logical address where the default value saving page exists. It is sufficient that there are at least one default value saving page in the pool 204. If capacity efficiency is considered, there are one or two default value pages in the pool 204.

[0195] When data is newly written from the host 101 , the logical address of the virtual volume 202 associated with the address of the default value saving page is newly associated with an unused page that is not yet associated with any address of the virtual volume 202 among pages for writing data in the host 101 .

[0196] In contrast, when actual pages have been allocated to the virtual volume 202, the host I / O processing program 601 refers to the dynamic mapping table 506 to obtain the pool volume number and the logical address, and then refers to the logical-physical address conversion table 507 to calculate the physical drive number and the physical start address, thereby calculating the address of the drive 111 or 112 that stores the data corresponding to the address of the virtual volume 202 to be read (S1104).

[0197] Next, the host I / O processing program 601 transfers data from the calculated address to the area in the cache memory 108 (S1105). Then, when reading, the page monitoring table 501 is referenced and the value of the read I / O count is increased (S1106).

[0198] Then, the host I / O processing program 601 transfers the data stored in the cache memory 108 from the drive 111 or 112 to the host 101 ( S1107 ), notifies the host 101 that the I / O processing (read processing) is completed, and ends this processing.

[0199] Through the above processing, host I / O processing can be performed and necessary monitoring information can be collected.

[0200] Fig.12 Flow chart showing destage processing. The destage processing is similar to the host I / O processing ( Fig.11 ) is appropriately executed asynchronously by the cooperation of the processor 114 and the destage processing program 602. For the sake of convenience, the processing subject is regarded as the destage processing program 602 for description.

[0201] First, the destage processing program 602 refers to the cache management table 505, confirms whether the dirty flag is ON or OFF, and determines whether there is unreflected data in the cache memory 108 that has not been written to the drive 111 or 112 (S1201).

[0202] When there is unreflected data in the cache memory 108, the destage processing program 602 obtains the virtual volume number and the logical address from the cache management table 505. Then, based on the virtual volume number and the logical address, the dynamic mapping table 506 is referenced to obtain the pool volume number and the logical address.

[0203] At this time, if the pool volume number and the logical address are the addresses of the default value storage page, the destage processing program 602 allocates a new blank page from the dynamic mapping table 506 to write new data. Then, the pool volume number and the logical address of the allocated page are associated with the corresponding virtual volume number and the logical address of the dynamic mapping table 506 and stored.

[0204] If the page has been allocated, the pool volume number and the logical address values ​​different from the default values ​​are associated with the logical address of the virtual volume and stored. After obtaining the pool volume number and the logical address, the destage processing program 602 refers to the logical-physical address conversion table 507 to calculate the address of the drive 111 or 112 (S1202).

[0205] Next, the destage processing program 602 writes the unreflected data in the cache memory 108 to the calculated address of the drive 111 or 112 (S1203). Then, the page monitoring table 501 corresponding to the page number of the dynamic mapping table 506 is referenced and the value of the write I / O count is increased (S1204).

[0206] Next, the destage processing program 602 refers to the newly written flag column 705 of each page monitoring table 501 to determine whether the page to be destaged is a newly allocated page (S1205). If it is a newly allocated page (S1205: Yes), the destage processing program 602 refers to each parity group monitoring table 502 corresponding to the parity group of the storage destination of the page, and increases the value of the new write I / O count (S1206).

[0207] On the other hand, if the page to be destaged is not a newly allocated page (S1205: No), the destage processing program 602 proceeds to step S1201. In step S1201, the destage processing program 602 determines whether there is any further unreflected data in the cache memory 108. If there is no unreflected data (S1201: No), the present processing ends.

[0208] Through the above processing, the data in the cache memory 108 can be asynchronously stored in the drive 111 or 112 and necessary monitoring information can be collected.

[0209] Fig.13 6 is a flowchart of the life information collection process. The life information collection process is executed at a certain period through the cooperation of the processor 114 and the life information collection processing program 603. For the sake of convenience, the processing subject is regarded as the life information collection processing program 603 for description.

[0210] First, the life information collection processing program 603 issues a life collection command to the driver 111 or 112 (S1301). Next, the life information collection processing program 603 receives the write-addition rate or the write-reduction request rate as life information (S1302). Then, the received life information is saved in the local memory 113 (S1303), and this process ends.

[0211] Through the above processing, life information can be collected from the driver 111 or 112.

[0212] Fig.14 1 is a flowchart of the threshold determination process. The threshold determination process is executed at a fixed period by the cooperation of the processor 114 and the threshold determination processing program 604. The fixed period information is stored in the life control reconfiguration cycle column 1002 of the pool reconfiguration management table 504. For the sake of convenience, the processing subject is regarded as the threshold determination processing program 604 for description.

[0213] First, the threshold determination processing program 604 determines whether the statistics of the monitoring information of each page for all parity groups have been completed (S1401), that is, it determines whether the information is stored in each column of the monitoring table 502 of each parity group.

[0214] When the statistics are not completed (S1401: No), the threshold determination processing program 604 calls the life information collection processing program 603 to collect life information from the drive 111 or 112 (S1402), and counts the monitoring information of each page for each parity group (S1403). When the statistics are completed (S1401: Yes), the threshold determination processing program 604 calculates various thresholds for page reconfiguration (S1404).

[0215] The various thresholds calculated here are stored in the columns of each parity group monitoring table 502, each parity group reconfiguration management table 503, and each pool reconfiguration management table 504. Then, the threshold determination processing program 604 calls the reconfiguration processing program 604A to execute the reconfiguration processing (S1405), and then ends the processing.

[0216] Through the above process, it is possible to collect statistics of monitoring information for each parity group, calculate various thresholds based on the collected statistics of monitoring information, and then perform reconfiguration processing using the calculated thresholds.

[0217] Fig.15 1 is a flowchart of the reconfiguration process. The reconfiguration process is executed by the cooperation of the processor 114 and the reconfiguration processing program 604A called by the threshold value determination processing program 604. For the sake of convenience, the processing subject is assumed to be the reconfiguration processing program 604A.

[0218] First, the relocation processing program 604A executes a TLC-MLC relocation process (S1501) for relocating pages between TLC PG and MLC PG based on the TLC-MLC write threshold value calculated by the threshold determination processing program 604.

[0219] This TLC-MLC relocation process can extend the life of the TLC SSD (drive 112) and reduce bit costs.

[0220] Next, the reconfiguration processing program 604A refers to the reconfiguration management table 503 of each parity group, and based on the planned number of pages to be moved for write rebalancing, performs write rebalancing processing (S1502) of reconfiguring pages between parity groups (between TLC PGs or between MLC PGs) composed of SSDs with the same characteristics.

[0221] This write rebalancing process can distribute the write load among the parity groups composed of SSDs with the same characteristics, thereby leveling the lifespan.

[0222] Next, the reconfiguration processing program 604A refers to the reconfiguration management table 503 for each parity group, and determines whether the planned number of pages to be moved for write rebalancing of the write reduction PG is less than 0 (S1503). If the planned number of pages to be moved for write rebalancing of the write reduction PG is less than 0 (S1503: Yes), the reconfiguration processing program 604A determines that the adjustment of the write frequency has been completed, and then performs the performance rebalancing process (S1504).

[0223] In contrast, when the planned number of pages to be moved for write rebalancing of the write reduction PG is greater than 0 (S1503: No), the reconfiguration processing program 604A cannot adjust the write frequency in the current parity group structure and cannot maintain the lifespan, so a warning screen is displayed to notify the user of the capacity of the TLC SSD or MLC SSD that should be added to ensure the lifespan (S1505).

[0224] Through the above processing, the write frequency and the read frequency between the parity check groups can be adjusted. In addition, when the write frequency and the read frequency cannot be adjusted, the user can be informed of the capacity of the TLC SSD or MLC SSD required to maintain the life.

[0225] Fig.16 6 is a flowchart of a TLC-MLC reconfiguration process. The TLC-MLC reconfiguration process is executed by cooperation between the processor 114 and the reconfiguration processing program 604A. For the sake of convenience, the processing subject is considered to be the reconfiguration processing program 604A.

[0226] First, the relocation processing program 604A relocates each page in all parity groups in TLC PG or MLC PG based on the TLC-MLC write threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there are pages that have not been determined for relocation (S1601).

[0227] When there is an undetermined page (S1601: Yes), the relocation processing program 604A refers to the parity group relocation management table 503 to determine whether the medium type of the parity group to which the undetermined target page belongs is TLC (S1602). When the medium type is TLC (S1602: Yes), the relocation processing program 604A determines whether the write frequency of the target page is above the TLC-MLC write threshold (S1603).

[0228] When the write frequency of the target page is greater than the TLC-MLC write threshold (S1603: Yes), the relocation processing program 604A moves the page from the TLC PG to the MLC PG (S1604). On the other hand, when the write frequency of the target page is less than the TLC-MLC write threshold (S1603: No), the relocation processing program 604A does not perform any processing and transfers to step S1601.

[0229] Returning to step S1602, if the medium type is MLC (S1602: No), it is determined whether the write frequency of the target page is less than the TLC-MLC write threshold (S1605). If the write frequency of the target page is less than the TLC-MLC write threshold (S1605: Yes), the relocation processing program 604A moves the page from the MLC PG to the TLC PG (S1606).

[0230] On the other hand, if the write frequency of the target page is above the write threshold between TLC and MLC (S1605: No), the reconfiguration processing program 604A does not perform any processing and transfers to step S1601. When the reconfiguration processing program 604A completes the determination for each page in all parity check groups, it ends this processing. Through the above processing, pages can be reconfigured between TLC and MLC, the life of the TLC SSD (drive 112) can be extended, and the bit cost can be reduced.

[0231] Fig.17 6 is a flowchart of the write rebalancing process. The write rebalancing process is executed by the cooperation of the processor 114 and the reconfiguration process 604A. For the sake of convenience, the main body of the process is described as the reconfiguration process program 604A.

[0232] First, the relocation processing program 604A relocates pages between parity groups (between TLC PGs or between MLC PGs) formed by SSDs of the same characteristics based on the planned moving page number for write rebalancing, the write reduction threshold, and the write addition threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there are pages that have not been determined for relocation (S1701).

[0233] If there is no undetermined page (S1701: No), the relocation processing program 604A ends the present processing. On the other hand, if there is an undetermined page (S1701: Yes), the relocation processing program 604A refers to the parity group relocation management table 503 to determine whether the migration source PG type of the parity group to which the undetermined target page belongs is written into the reduction PG (S1702).

[0234] When the migration source PG type of the parity group to which the target page belongs is a write reduction PG (S1702: Yes), the relocation processing program 604A obtains the write frequency of the target page by referring to the write I / O count of the page monitoring table 501. Then, it is determined whether the obtained write frequency is greater than the write reduction threshold (S1703).

[0235] If the write frequency of the target page is less than the write reduction threshold (S1703: No), the relocation processing program 604A moves to step S1701. On the other hand, if the write frequency of the target page is greater than the write reduction threshold (S1703: Yes), the relocation processing program 604A determines the parity group to which the target page is to be moved.

[0236] When determining the parity group of the moving target, the reconfiguration processing program 604A refers to the reconfiguration management table 503 of each parity group to determine whether there is a parity group in the write-addition PG whose actual number of pages moved for write rebalancing is less than the planned number of pages moved for write rebalancing (S1704).

[0237] When there is a parity group in the write-addition PG in which the actual number of pages moved for write rebalancing is less than the planned number of pages moved for write rebalancing (S1704: Yes), the reconfiguration processing program 604A determines that the life span can be maintained even if the object page with a high write load is moved to the parity group, registers the parity group as the move target PG in the reconfiguration management table 503 of each parity group, and moves the object page to the parity group (S1705).

[0238] On the other hand, when there is no parity group in the write-addition PG where the actual number of pages moved for write rebalancing is less than the planned number of pages moved for write rebalancing (S1704: No), the relocation processing program 604A ends the determination on the target page and moves to step S1701.

[0239] Returning to step S1702, when the migration source PG type of the parity group to which the target page belongs is not a write reduction PG (S1702: No), that is, when the migration source PG type of the parity group to which the target page belongs is a write addition PG, the relocation processing program 604A obtains the write frequency of the target page by referring to the write I / O count column 702 of the page monitoring table 501. Then, it is determined whether the obtained write frequency is less than the write addition threshold (S1706).

[0240] If the write frequency of the target page is greater than the write-addition threshold (S1706: No), the relocation processing program 604A moves to step S1701. If the write frequency of the target page is less than the write-addition threshold (S1706: Yes), the relocation processing program 604A determines the parity group to which the target page is to be moved.

[0241] The process of determining the parity group to be moved is the same as steps S1704 and S1705 above, so the description is omitted. Through the above process, pages can be reallocated between different parity groups composed of SSDs with the same characteristics to distribute the write load and level the life.

[0242] Fig.18 6 is a flowchart of the performance rebalancing process. The performance rebalancing process is executed by the cooperation of the processor 114 and the reconfiguration processing program 604A. For the sake of convenience, the processing subject is regarded as the reconfiguration processing program 604A.

[0243] In addition, the performance rebalancing process makes the write rebalancing process ( Fig.17 ) is different from the write rebalance processing in that pages with the same read frequency as the write frequency adjusted in the write rebalance processing are moved in the direction opposite to the direction of movement in the write rebalance processing, but the other basic processing contents are the same.

[0244] First, the relocation processing program 604A relocates pages between parity groups (between TLC PGs or between MLC PGs) composed of SSDs with the same characteristics based on the planned number of pages to be moved for performance rebalancing, the write reduction threshold, and the write addition threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there are pages that have not been determined for relocation (S1801).

[0245] If there is no undetermined page (S1801: No), the relocation processing program 604A ends the present processing. On the other hand, if there is an undetermined page (S1801: Yes), the relocation processing program 604A refers to the parity group relocation management table 503 to determine whether the migration source PG type of the parity group to which the undetermined target page belongs is written into the reduction PG (S1802).

[0246] When the migration source PG type of the parity group to which the target page belongs is a write reduction PG (S1802: Yes), the relocation processing program 604A obtains the read frequency of the target page by referring to the read I / O count of the page monitoring table 501. Then, it is determined whether the obtained read frequency is less than the read addition threshold (S1803).

[0247] If the read frequency of the target page is greater than the read addition threshold (S1803: No), the relocation processing program 604A moves to step S1801. If the read frequency of the target page is less than the read addition threshold (S1803: Yes), the relocation processing program 604A determines the parity group to which the target page is to be moved.

[0248] When determining the parity group of the moving target, the reconfiguration processing program 604A refers to the reconfiguration management table 503 of each parity group to determine whether there is a parity group in the write additional PG where the actual number of pages moved for performance rebalancing is less than the planned number of pages moved for performance rebalancing (S1804).

[0249] When there is a parity group in the write-addition PG in which the actual number of pages moved for performance rebalancing is less than the planned number of pages moved for performance rebalancing (S1804: Yes), the reconfiguration processing program 604A determines that even if the object page with a low read load is moved to the parity group, a high load will not be reached, and registers the parity group as the moving target PG in the reconfiguration management table 503 of each parity group, and moves the object page to the parity group (S1805).

[0250] On the other hand, when there is no parity group in which the actual number of pages moved for performance rebalancing is less than the planned number of pages moved for performance rebalancing in the write additional PG (S1804: No), the relocation processing program 604A ends the determination on the target page and moves to step S1801.

[0251] Returning to step S1802, when the migration source PG type of the parity group to which the target page belongs is not a write reduction PG (S1802: No), that is, when the migration source PG type of the parity group to which the target page belongs is a write addition PG, the relocation processing program 604A obtains the read frequency of the target page by referring to the read I / O count column 703 of the page monitoring table 501. Then, it is determined whether the obtained read frequency is above the read reduction threshold (S1806).

[0252] If the read frequency of the target page is less than the read reduction threshold (S1806: No), the relocation processing program 604A moves to step S1801. On the other hand, if the read frequency of the target page is greater than the read reduction threshold (S1806: Yes), the relocation processing program 604A determines the parity group to which the target page is to be moved.

[0253] The process of determining the parity group of the migration destination is the same as the above steps S1804 and S1805, so the description is omitted. Through the above process, pages can be reallocated between different parity groups composed of SSDs with the same characteristics to distribute the read load and level the I / O frequency.

[0254] Fig.19 Flowchart showing the new allocation decision process. The new allocation decision process is executed by the cooperation of the processor 114 and the new allocation decision process program 605 in response to receiving a write request for a new virtual page from the host 101. For ease of explanation, the process is described as being mainly performed by the new allocation decision process program 605.

[0255] First, the new allocation determination processing program 605 refers to the pool reallocation management table 504 to determine whether the workload type of the pool 204 that provides the storage area to the virtual volume 202 to which the new page is allocated is "Unknown" (S1901).

[0256] When the workload type of the pool 204 is not "Unknown" (S1901: No), the new allocation determination processing program 605 further determines whether it is "Write intensive" (S1906). When the workload type is "Write intensive" (1906: Yes), the new allocation determination processing program 605 predicts that the frequency of writing to the new page is high, and sets the MLC PG with a relatively high write upper limit as the parity check group of the actual page allocation target for the new page (S1907).

[0257] In contrast, when the workload type is "Read intensive" (S1906: No), the new allocation determination processing program 605 predicts that the frequency of writing to the new page is low, and sets the TLC PG with a small write upper limit as the parity group of the actual page allocation target for the new page (S1904).

[0258] Returning to step S1901, if the workload type is "Unknown" (S1901: Yes), the new allocation determination processing program 605 does not know the I / O characteristics from the host 101, so it predicts the future write frequency to the new page and determines the allocation target. First, the predicted write frequency of the new page is calculated (S1902).

[0259] For example, the new allocation determination processing program 605 collects the average write frequency per page from the host 101 as monitoring information, performs estimation, and calculates the predicted write frequency.

[0260] Next, the new allocation decision processing program 605 refers to the pool reconfiguration management table 504 to determine whether the predicted write frequency is less than the new write threshold (S1903). If the predicted write frequency is less than the new write threshold (S1903: Yes), the new allocation decision processing program 605 sets the TLC PG with a smaller write upper limit as the parity group of the allocation target (S1904).

[0261] On the other hand, when the predicted write frequency is equal to or greater than the new write threshold (S1903: No), the new allocation determination processing program 605 sets the MLC PG with a large write upper limit as the parity group of the allocation target (S1907).

[0262] Next, the new allocation decision processing program 605 refers to the parity group monitoring table 502 and the parity group reconfiguration management table 503 to determine whether a new page can be allocated for the parity group of the characteristic set as the allocation target, and determines whether the new write amount is greater than the new write I / O count for each parity group of the characteristic set as the allocation target (S1905).

[0263] When there is a parity group whose newly writeable amount is greater than the new write I / O count (S1905: Yes), the new allocation determination processing program 605 refers to the page monitoring table 501 to allocate new pages from the parity group, sets a new write flag for some pages in the parity group (S1909), and ends this processing.

[0264] On the other hand, when there is no parity group whose new writeable amount is larger than the new write I / O count (S1905: No), the new allocation determination processing program 605 notifies the user of the recommended capacity because the new write frequency allowed for maintaining the life has exceeded (S1908).

[0265] Then, the new allocation determination processing program 605 sets a new write flag for some pages in some parity groups in order to allocate new pages from the parity group to be determined (S1909), and ends this processing.

[0266] Through the above processing, when a write request to write data to a new page is received from the host 101 , a real page can be allocated to the new page from a parity group composed of SSDs having suitable life characteristics in consideration of the write frequency to the new page.

[0267] (1-7) Conceptual structure of the recommended capacity calculation method

[0268] Fig. 20 The principle of a method for calculating the capacity ratio of storage devices having different upper limits of the number of writes recommended to ensure the life of the storage devices with respect to the write frequency from the host 101 is shown. Fig. 20 The graph 2007 shows the distribution of the write frequency of each page 207 in the pool 204 (or each page 201 in the virtual volume 202). The graph 2007 shows the write frequency of each page 207 when all pages 207 are arranged in order of the most frequent write frequency on the left. The vertical axis is the write frequency and the horizontal axis is the number of pages.

[0269] The TLC-MLC write threshold 2005 is a threshold for determining whether to allocate a page in TLC PG or MLC PG. The intersection of the TLC-MLC write threshold 2005 and the curve 2007 is the recommended capacity ratio (2006) of TLC and MLC. The TLC-MLC write threshold 2005 can be specified by the user or calculated by the storage system 104.

[0270] When calculated by the storage system 104, the recommended capacity ratio can be calculated by using the relationship curves 2001 and 2002 between the write frequency required by the customer (=Whost), the pool 204 (or virtual volume 202) capacity (=C) and the write frequency that can be allowed to ensure the life of each SSD, and calculating the following formula 9.

[0271] Here, the curve 2001 shows the relationship between the capacity of a TLC SSD and the allowable write frequency, with the write frequency per unit capacity (=Wtlc) being the slope. In addition, the curve 2002 shows the relationship between the capacity of an MLC SSD and the allowable write frequency, with the write frequency per unit capacity (=Wmlc) being the slope.

[0272] [Formula 9]

[0273] TLC SSD recommended capacity

[0274] =(((Wmlc×C)-Whost)÷(Wmlc-Wtlc))÷C)

[0275] MLC SSD recommended capacity

[0276] =((C-TLC recommended capacity)÷C)

[0277] ……(9)

[0278] Through the above, the capacity ratio of TLC SSD to MLC SSD that meets the customer's required write frequency and pool capacity can be calculated.

[0279] (1-8) Screen structure

[0280] Fig.21 An example of the screen configuration when setting parameters for each pool is shown. The pool-by-pool GUI screen 2101 is composed of an area 2102 for displaying the pool number that can identify the pool 204 to be set, an area 2103 for setting life control reconfiguration ON / OFF, an area 2104 for setting detailed settings ON / OFF when life control reconfiguration is set to ON, and an area 2105 for setting the content of the detailed settings. The information set on this screen is stored in each column of the pool reconfiguration management table 504.

[0281] When the setting of the life control reconfiguration area 2103 is OFF, the threshold determination processing program 604 does not perform the threshold determination processing, so the reconfiguration processing program 604A does not perform page reconfiguration, but in order to prevent the accuracy of life control from being reduced, monitoring information is collected regardless of the life control reconfiguration ON / OFF.

[0282] When the setting of the life control reconfiguration area 2103 is ON, the page is reconfigured as described above. In this case, the item setting area 2105 of the detailed setting area 2104 is displayed as input. When the setting of the detailed setting area 2104 is OFF, the various parameters of the item setting area 2105 are set to default values ​​or values ​​automatically calculated in the storage system 104.

[0283] The period for executing the reconfiguration for life control is set in the reconfiguration period area 2106. The period can be specified by the user. For example, if the user specifies "7 days", the page reconfiguration is executed in a 7-day period.

[0284] The I / O characteristics from the host 101 are set in the workload type area 2107. The I / O characteristics can be specified by the user. If the I / O characteristics from the host 101 are known in advance, the characteristics of the SSD of the new allocation target can be clearly specified by specifying the I / O characteristics by the user.

[0285] Specifically, when "Write intensive" is designated, the I / O characteristic of the host 101 is that the write load is high, so the actual page is allocated to the new page from the MLC PG with a relatively large write upper limit number of times.

[0286] Furthermore, when "Read intensive" is designated, the I / O characteristic of the host 101 is that the write load is low, so the actual page is allocated to the new page from the TLC PG with a small write upper limit number.

[0287] If the user does not know the I / O characteristics of the host 101, the user specifies “Unknown.” In this case, the storage system 104 automatically determines the parity group of the actual allocation destination of the new page.

[0288] In the new allocation policy area 2108 between similar drives, a policy is set to determine from which parity group of TLCPG or MLC PG the page is allocated when allocating an actual page to a new page.

[0289] For example, if the user specifies "round robin", pages are allocated equally from each parity group. If "capacity priority" is specified, pages are allocated preferentially from parity groups with smaller capacity. If "lifetime priority" is specified, pages are allocated preferentially from parity groups with longer lifespans.

[0290] The ratio of the buffer to the capacity of the parity group whose characteristic is MLC PG is set in the buffer size areas 2109 and 2110. The buffer used when allocating a new page from the parity group whose characteristic is MLC PG is set in the new allocation area 2109. This has the effect of preventing a page with a high write load that should be allocated from MLC PG in a new allocation from being allocated from TLC PG due to insufficient remaining capacity of MLC PG.

[0291] The newly allocated buffer is re-acquired every reconfiguration cycle. Therefore, the newly allocated buffer can estimate the optimal size based on the amount of data expected to be written to new pages from the host 101 during the cycle.

[0292] The buffer used for page relocation is set in the relocation buffer area 2110. The relocation buffer is used to adjust the size of data that can be moved per unit time during relocation. Therefore, by increasing the relocation buffer, the throughput rate during relocation can be increased.

[0293] Fig. 22 This shows an example of the screen structure of a warning screen notified to the user by the storage system 104. The warning screen can notify the user that the writing frequency from the host 101 is high, that the life of the SSD is shorter than the target period under the current configuration, or that an SSD with a life exceeding the guaranteed period is installed.

[0294] The screen may be displayed automatically by the storage system 104 after the periodically executed page reallocation process is completed, or may be displayed at any time by a user's operation on the storage system 104. In the latter case, the recommended capacity is calculated based on monitoring information when any operation is performed.

[0295] The pool-based GUI screen 2201 is composed of an area 2202 for displaying a pool number that can identify the pool 204 to be set, and an area 2203 for notifying the warning content. The area 2203 for notifying the warning content is composed of an area 2204 for notifying the capacity of TLC or MLC that needs to be added or can be reduced from the current drive structure, and an area 2205 for notifying the capacity of MLC and TLC recommended based on the current information of the I / O request from the host 101. The notified capacity information can also be expressed as a ratio of the capacity of TLC to MLC.

[0296] (1-9) Effects of the First Embodiment

[0297] As described above, according to the storage system 104 in the first embodiment, by reconfiguring pages between TLC-MLC, the write frequency can be adjusted between parity check groups composed of SSDs with different lifespans. In addition, by performing write rebalancing processing, the write frequency can be adjusted between parity check groups composed of SSDs with the same characteristics. As a result, pages with a high write frequency to an SSD with a severely degraded lifespan can be moved to an SSD with a slightly degraded lifespan, thereby reducing the number of maintenance and replacement times for the SSD. In addition, the cost of the storage system 104 can be reduced.

[0298] (2) Second Embodiment

[0299] The second embodiment is different from the first embodiment in that, in a storage system that is equipped with not only a semiconductor memory (SSD) but also a hard disk drive (HDD) as a storage device, the storage devices (SSD and HDD) are classified into levels corresponding to performance, and hierarchical control is performed to configure data in the storage device of the appropriate level according to the access frequency from the host.

[0300] (2-1) Overall structure of computer system

[0301] Fig.23The overall structure of the computer system 1A in the second embodiment is shown. The computer system 1A is different from the first embodiment in that a SAS (Serial Attached SCSI) standard HDD (driver 2301) is installed, the SSD (drivers 111 and 112) is set as layer 1, the SAS standard HDD (driver 2301) is set as layer 2, and data is relocated between layers according to the I / O frequency of each page.

[0302] For example, pages with an I / O frequency of 100 [IOPS] are allocated from tier 1, and pages with an I / O frequency of 10 [IOPS] are allocated from tier 2. On the other hand, pages with an I / O frequency of 50 [IOPS] are allocated from tier 2, and pages with an I / O frequency of 20 [IOPS] are allocated from tier 1.

[0303] In this case, the storage system 104A as a whole can only achieve a performance of 10 (the upper limit IOPH of tier 2) + 20 = 30 [IOPS]. Therefore, when a page with an I / O frequency of 50 [IOPH] is moved (reconfigured) from tier 2 to tier 1, the storage system 104A as a whole can achieve a performance of 50 + 20 = 70 [IOPS].

[0304] (2-2) Logical structure of storage system

[0305] Fig.24 1 shows the logical structure of the storage system 104A. In the storage system 104A, the pool volumes 206A to 206C are formed of MLC SSDs or TLC SSDs, the pool volumes 206D and 206E are formed of SAS HDDs, and each of the pool volumes 206A to 206E is classified into tier 1 or 2, which is different from the first embodiment.

[0306] Then, in addition to the page relocation described in the first embodiment, the storage system 104A of the second embodiment performs write destaging processing of moving, for example, page 207D with high write load to layer 2 when the write load from the host 101 becomes high in layer 1 composed of SSDs and the life of the SSD cannot be guaranteed, thereby preventing the life of the SSD from being deteriorated.

[0307] (2-3) Conceptual Structure of Page Configuration Processing

[0308] Fig.25The conceptual structure of the page reconfiguration process performed by the write destaging process is shown. Here, the page 301 is reconfigured between the layer 1 composed of the MLCPG 205A or TLC PG 205B and the layer 2 composed of the parity group (hereinafter referred to as SAS PG) 205C composed of the SAS HDD. The write destaging process is executed when it is determined during the threshold determination process that the life of the SSD cannot be maintained only by the page reconfiguration in the layer 1.

[0309] Specifically, after the planned moving number of pages for write rebalancing is calculated in the threshold determination process, if the pages that meet the write reduction requirement of the write reduction PG cannot be moved, the planned moving number of pages for write destaging is calculated based on the write frequency of the part that cannot be moved. Then, when executing write rebalancing, pages whose write frequency is greater than the write destaging threshold 2501 and are equivalent to the planned moving number of pages for write destaging are moved from the MLC PG 205A or TLC PG 205B to the SAS PG 205C.

[0310] (2-4) Table structure

[0311] Fig.26 503A shows the logical structure of each parity group reconfiguration management table 503A in the second embodiment. Each parity group reconfiguration management table 503A is composed of each parity group reconfiguration management table 503 ( Fig. 9 ) columns, as well as a write destaging threshold column 2601, a write destaging planned migration page number column 2602, a write destaging actual migration page number column 2603, and a tier column 2604.

[0312] The threshold value for determining the page to be processed for write demotion is stored in the write demotion threshold column 2601, and the number of pages to be moved due to the write demotion is stored in the write demotion planned movement page number column 2602. In addition, the number of pages that have been moved due to the write demotion is stored in the write demotion actual movement page number column 2603. The layer order (e.g., layer 1, layer 2, layer 3) to which the parity check group belongs is stored in the layer order column 2604. Here, the layer with a smaller layer order value is composed of a higher performance drive.

[0313] Fig. 27 504A shows the logical structure of the pool reconfiguration management table 504A in the second embodiment. The pool reconfiguration management table 504A is composed of the pool reconfiguration management table 504 ( Fig.10 ) and an inter-layer I / O threshold value column 2701. The inter-layer I / O threshold value column 2701 stores a threshold value for determining in which layer a page is to be arranged.

[0314] (2-5) Flowchart

[0315] Fig.28This is a flowchart showing the relocation process in the second embodiment. This relocation process is executed by the cooperation between the processor 114 and the relocation processing program 604A called by the threshold value determination processing program 604. For the sake of convenience, the processing subject is assumed to be the relocation processing program 604A.

[0316] In addition, as a premise, the threshold value determination processing program 604 is in the threshold value determination processing ( Fig.14 ) calculates the inter-tier I / O threshold and the planned number of pages to be moved for write destaging, and stores the various thresholds in each parity group reconfiguration management table 503A and each pool reconfiguration management table 504A.

[0317] First, the relocation processing program 604A executes inter-tier relocation processing (S2801). Here, the relocation processing program 604A refers to the inter-tier I / O threshold column 2701 of the pool-by-pool relocation management table 504A to determine the tier of the page to be allocated.

[0318] After that, the reconfiguration processing program 604A is the same as the reconfiguration processing in the first embodiment ( Fig.15 ) Similarly, the TLC-MLC reconfiguration process (S1501) is performed, and then the write rebalancing process (S1502) is performed. After the write rebalancing process is performed, the reconfiguration processing program 604A refers to the reconfiguration management table 503A of each parity group to determine whether the number of pages to be moved for write demotion is 0 (S2802).

[0319] If the number of pages moved for write destaging plan is not 0 (S2802: No), the reconfiguration processing program 604A cannot completely adjust the write frequency by only performing the write rebalancing process, so the write destaging process is performed (S2803). After that, the reconfiguration processing program 604A performs performance rebalancing (S1504) and ends this process.

[0320] On the other hand, when the number of pages to be moved for write destaging is 0 (S2802: Yes), the reconfiguration processing program 604A does not need to perform write destaging processing, so it performs performance rebalancing (S1504) and ends this processing. Through the above processing, when the life of the SSD constituting the layer 1 cannot be maintained due to excessive write frequency from the host 101, the pages with high write load can be moved to the layer 2, and the life of the SSD in the layer 1 can be maintained.

[0321] Fig.29 A flowchart showing the inter-layer reconfiguration process. The inter-layer reconfiguration process is executed by the cooperation of the processor 114 and the reconfiguration process program 604A. For the sake of convenience, the process subject is assumed to be the reconfiguration process program 604A.

[0322] First, the relocation processing program 604A relocates each page in all parity groups to tier 1 or 2 based on the inter-tier I / O threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there are any pages that have not been determined for relocation (S2901).

[0323] When there is an undetermined page (S2901: Yes), the relocation processing program 604A refers to the parity group relocation management table 503A to determine whether the tier described by the undetermined target page is tier 2 (S2902).

[0324] When the tier to which the target page belongs is tier 2 (S2902: YES), the relocation processing program 604A refers to the pool-by-pool relocation management table 504A to determine whether the I / O frequency of the target page is equal to or greater than the inter-tier I / O threshold (S2903).

[0325] When the I / O frequency of the target page is greater than or equal to the inter-tier I / O threshold (S2903: Yes), the relocation processing program 604A moves the target page from tier 2 to tier 1 (S2904). On the other hand, when the I / O frequency of the target page is less than the inter-tier I / O frequency (S2903: No), the relocation processing program 604A does not perform any processing and transfers to step S2901.

[0326] Returning to step S2902, when the tier to which the target page belongs is tier 1 (S2902: No), the relocation processing program 604A refers to the pool-by-pool relocation management table 504A to determine whether the I / O frequency of the target page is less than the inter-tier I / O threshold (S2905).

[0327] When the I / O frequency of the target page is less than the inter-tier I / O threshold (S2905: Yes), the relocation processing program 604A moves the target page from tier 1 to tier 2 (S2906). On the other hand, when the I / O frequency of the target page is greater than the inter-tier I / O frequency (S2905: No), the relocation processing program 604A does not perform any processing and transfers to step S2901.

[0328] The relocation processing program 604 ends this processing when the determination is completed for each page in all parity groups. Through the above processing, pages can be relocated in each layer according to the I / O frequency from the host 101 and the performance of each layer.

[0329] Fig.30 Flowchart showing the write destaging process. The write destaging process is executed by the cooperation between the processor 114 and the reconfiguration processing program 604A. For the sake of convenience, the processing subject is assumed to be the reconfiguration processing program 604A.

[0330] First, the relocation processing program 604A relocates pages between different tiers based on the write destaging planned migration page number, the write reduction threshold, and the write destaging threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there are pages that have not been determined for relocation (S3001).

[0331] If there is no undetermined page (S3001: No), the relocation processing program 604A ends the present processing. On the other hand, if there is an undetermined page (S3001: Yes), the relocation processing program 604A refers to the parity group relocation management table 503A to determine whether the migration source PG type of the parity group to which the undetermined target page belongs is a write reduction PG (S3002).

[0332] When the migration source PG type of the parity group to which the target page belongs is not a write-reduction PG (S3002: No), that is, a write-addition PG, the relocation processing program 604A determines that it is not necessary to perform write destaging processing on the target page and transfers to step S3001.

[0333] On the other hand, when the migration source PG type of the parity group to which the target page belongs is a write reduction PG (S3002: YES), the relocation processing program 604A refers to the write I / O count column 702 of the page monitoring table 501 to obtain the write frequency of the target page.

[0334] Then, the relocation processing program 604A refers to the write reduction threshold column 905 and the write destaging threshold column 2601 of each parity group relocation management table 503A to obtain the write reduction threshold and the write destaging threshold.

[0335] Then, it is determined whether the acquired write frequency of the target page is greater than the write destaging threshold and less than the write reduction threshold (S3003). If the write frequency of the target page is not greater than the write destaging threshold and less than the write reduction threshold (S3003: No), the relocation processing program 604A transfers to step S3001.

[0336] In contrast, when the write frequency of the target page is above the write destaging threshold and less than the write reduction threshold (S3003: Yes), the reconfiguration processing program 604A determines whether the actual number of pages moved for write destaging of the parity group to which the target page belongs is less than the planned number of pages moved for write destaging (S3004).

[0337] When the actual number of pages to be moved for write destaging of the parity group to which the target page belongs is not less than the planned number of pages to be moved for write destaging (S3004: No), the relocation processing program 604A proceeds to step S3001.

[0338] On the other hand, if the actual number of pages moved for write destaging of the parity group to which the target page belongs is less than the planned number of pages moved for write destaging (S3004: Yes), the relocation processing program 604A moves the target page from tier 1 to tier 2 (S3005). The relocation processing program 604A ends the present processing when the determination is completed for all undetermined pages.

[0339] Fig.31 A flowchart showing a new allocation determination process is shown. The new allocation determination process is executed by the cooperation of the processor 114 and the new allocation determination process program 605 in response to receiving a write request for a new page from the host 101. For ease of explanation, the process is described as being mainly performed by the new allocation determination process program 605.

[0340] Steps S1901 to S1905 are similar to the new allocation determination process in the first embodiment ( Fig.19 In step S1905, the new allocation determination processing program 605 determines whether the new write amount is greater than the new write I / O count for the parity group of layer 1 set as the characteristic of the allocation target (S1905).

[0341] When there is no parity group whose newly writable amount is greater than the newly written I / O count (S1905: No), the reconfiguration processing program 604A determines that further allocating pages from layer 1 cannot maintain the life of the SSD, and sets the actual page allocation target for the new page to layer 2 (S3101).

[0342] Step S1909 is similar to the new allocation determination process in the first embodiment ( Fig.19 ) are the same, so the description is omitted. Through the above processing, the writing frequency required to maintain the life can be reduced from layer 1. In addition, when the write request from the host 101 is a sequential write during new allocation, the new allocation determination processing program can be omitted, and the page can be allocated from layer 2.

[0343] (2-6) Effects of the Second Embodiment

[0344] As described above, according to the storage system 104A in the second embodiment, the lifetime degradation of the SSD that exceeds the allowable write frequency for a certain period can be alleviated by moving the write frequency from the host 101 to the layer 1 to the layer 2. This can reduce the number of times the SSD needs to be maintained and replaced, and can reduce the cost of the storage system 104A.

[0345] (3) Third Embodiment

[0346] In the third embodiment, calculation of the write-addition amount and the write-reduction requirement amount ( Figure 8In the first embodiment, the write-appendable rate and the write-reduction request rate are collected from the SSD, and the above-mentioned formulas 1 and 2 are used to calculate the write-appendable amount and the write-reduction request amount. However, when the write-appendable rate and the write-reduction request rate cannot be directly collected from the SSD, the write-appendable amount and the write-reduction request amount can be calculated by the following method.

[0347] Fig.32 The graph shows the principle of obtaining the wear out indicator as the life information of the SSD and calculating the amount of write addition and write reduction request based on the wear out indicator. The vertical axis of the graph is the wear out indicator (life rate) 3201 of the SSD, and the horizontal axis is the number of years (elapsed time rate) 3202 since the SSD was first used.

[0348] The life rate 3201 indicates a wear index calculated based on the number of times the SSD is erased, and is generally known to be acquired as SMART information. When the wear index reaches a value of 100 (= L e ), it means that the SSD has reached the end of its life and needs maintenance and replacement. The elapsed time rate is expressed with the target life period (for example, 3 or 5 years) as 100% (= T e )’s ratio of elapsed time.

[0349] The straight line 3215 represents the change ΔL1 (= L1 - L0) in the life rate in the interval Δt1 (= T1 - T0), and the slope of the straight line represents the writing frequency (= W0) in the interval Δt1. If the writing frequency of the straight line 3215 continues, the life of the SSD will be exhausted before reaching the target life period.

[0350] Therefore, the writing frequency is reduced to the writing frequency (= W1) indicated by the straight line 3216, and the speed of life degradation is adjusted so that the interval Δt2 (= T e -T1) is ΔL (=L e -L1). In addition, it is known that the write frequency to the SSD is generally greater than the number of write requests issued by the host 101 to the SSD due to WA (Write Amplification). The WA value of the SSD is calculated by (the number of writes to the flash memory chip ÷ the number of write requests from the host 101).

[0351] The storage system 104 calculates the required amount of write reduction required to maintain the life using the above numerical values. The required amount of write reduction can be calculated by calculating the following formula 10.

[0352] [Formula 10]

[0353] Write reduction request amount [IOPH]

[0354] =W0×WA×(1-((Δt1÷ΔL1)×(ΔL2÷Δt2)))

[0355] ……(10)

[0356] In addition, when the write frequency has a margin for reaching the target life span, the storage system 104 calculates the write-additional amount. The write-additional amount can be calculated by calculating the following formula 11.

[0357] [Formula 11]

[0358] Write appendable amount [IOPH]

[0359] =W0×WA×(((Δt1÷ΔL1)×(ΔL2÷Δt2))-1)

[0360] ……(11)

[0361] As described above, the amount of additional writes and the amount of write reductions required for SSD PG can be calculated based on the generally available SSD life information ( Figure 8 ). Then, by reallocating pages based on the calculated write-addition amount and write-reduction requirement amount, the cost of the storage system 104 can be reduced.

[0362] In addition, in the above-described embodiment, a structure is described in which the pages are reconfigured in a manner that reduces the number of writes of an SSD with a small "write" upper limit, thereby extending the life of the SSD with a small write upper limit. The life of an SSD with a small "rewrite" upper limit can also be extended by adopting the above structure. Rewriting in an SSD is a series of processes in which a block consisting of multiple pages is first erased, and then data is written to each page in the block. Therefore, when one rewrite is performed, both erasure and writing are performed. That is, by treating an SSD with a small rewrite upper limit in the same way as an SSD with a small write upper limit, the life of the SSD with a small rewrite upper limit can be extended.

[0363] In addition, in the above-described embodiment, a structure is described in which the pages are reconfigured in a manner to reduce the "write frequency" (write count) of the SSD with a small write upper limit, thereby extending the life of the SSD with a small write upper limit. However, the life of the SSD with a small write upper limit can also be extended by reconfiguring the pages in a manner to reduce the "amount of data" written. This is because when the amount of data to be written is large, data needs to be written to multiple pages, so the write count also increases.

[0364] Description of Reference Numerals

[0365] 1.1A Computer System

[0366] 104, 104A Storage System

[0367] 114 Processor

[0368] 111 MLC SSD

[0369] 112 TLC SSD

[0370] 2301 SAS HDD

[0371] 202 Virtual Volume

[0372] Pages 201, 301, 401, 207

[0373] 206 Pool Volume

[0374] 205 Parity Group

[0375] 302 TLC-MLC write threshold.

Claims

1. A storage system, characterized in that: include: a plurality of semiconductor memory devices storing data; and a processor that allocates a storage area to a virtual volume from a pool formed by the plurality of semiconductor storage devices, The plurality of semiconductor storage devices include a plurality of types of semiconductor storage devices having different upper limits of write times and storage capacities per unit area, wherein a semiconductor storage device having a large storage capacity per unit area has a small upper limit of write times, the processor, The write frequency is recorded for each storage area of ​​the virtual volume. The processor changes the type of semiconductor storage device assigned to the storage area based on the write frequency of the storage area of ​​the virtual volume, When the type of the semiconductor storage device is changed, a storage area with a high write frequency is allocated to a type of semiconductor storage device with a large write upper limit number of times, and a storage area with a low write frequency is allocated to a type of semiconductor storage device with a small write upper limit number of times, the processor calculating information on each of the plurality of types of semiconductor storage devices as a basis for the pool allocated to the storage area based on the capacity of the pool or the virtual volume, the frequency of writes requested to the pool or the virtual volume, and the allowable frequency of writes for each of the plurality of types of semiconductor storage devices per unit capacity, The information about each of the multiple types of semiconductor storage devices that serve as the basis for the pool allocated to the storage area is the ratio of the semiconductor storage devices of the respective types, or the amount of the semiconductor storage devices of the respective types used to provide use for a predetermined period.

2. The storage system according to claim 1, wherein: When the semiconductor storage device is insufficient for use during a predetermined period, the insufficient amount of the semiconductor storage device is notified.

3. The storage system according to claim 1, wherein: For the storage area having a write frequency higher than a predetermined threshold, the allocation of semiconductor storage devices is moved from semiconductor storage devices of a type with a smaller write upper limit to semiconductor storage devices of a type with a larger write upper limit, The predetermined threshold value is changed based on the writing frequency in the semiconductor storage device of the type having a small upper limit number of writing times.

4. A method for controlling a storage system, The storage system comprises: a plurality of semiconductor memory devices storing data; and a processor that allocates a storage area to a virtual volume from a pool formed by the plurality of semiconductor storage devices, The control method is characterized in that: The plurality of semiconductor storage devices include a plurality of types of semiconductor storage devices having different upper limits of write times and storage capacities per unit area, wherein a semiconductor storage device having a large storage capacity per unit area has a small upper limit of write times, Wherein, using the processor: The write frequency is recorded for each storage area of ​​the virtual volume. Based on the writing frequency of the storage area of ​​the virtual volume, the type of the semiconductor storage device allocated to the storage area is changed; When the type of the semiconductor storage device is changed, a storage area with a high write frequency is allocated to a type of semiconductor storage device with a large write upper limit number of times, and a storage area with a low write frequency is allocated to a type of semiconductor storage device with a small write upper limit number of times, calculating, using the processor, information on each of the plurality of types of semiconductor storage devices serving as a basis for the pool allocated to the storage area based on the capacity of the pool or the virtual volume, the frequency of writes requested to the pool or the virtual volume, and the allowable frequency of writes per unit capacity for each of the plurality of types of semiconductor storage devices, The information about each of the multiple types of semiconductor storage devices that serve as the basis for the pool allocated to the storage area is the ratio of the semiconductor storage devices of the respective types, or the amount of the semiconductor storage devices of the respective types used to provide use for a predetermined period.

Citation Information

Patent Citations

  • Automated on-line capacity expansion method for storage device

    US7447832B2

  • Storage control system and method

    US8041682B2

  • Storage apparatus provided with a plurality of nonvolatile semiconductor storage media and storage control method

    US20130205070A1