WO2016163016A1 - ストレージシステム及びデータ制御方法 - Google Patents

ストレージシステム及びデータ制御方法 Download PDF

Info

Publication number
WO2016163016A1
WO2016163016A1 PCT/JP2015/061165 JP2015061165W WO2016163016A1 WO 2016163016 A1 WO2016163016 A1 WO 2016163016A1 JP 2015061165 W JP2015061165 W JP 2015061165W WO 2016163016 A1 WO2016163016 A1 WO 2016163016A1
Authority
WO
WIPO (PCT)
Prior art keywords
write
storage
storage device
page
host
Prior art date
Application number
PCT/JP2015/061165
Other languages
English (en)
French (fr)
Inventor
貴大 山本
藤本 和久
弘明 圷
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2017511430A priority Critical patent/JP6510635B2/ja
Priority to US15/554,537 priority patent/US10452302B2/en
Priority to CN201580077883.9A priority patent/CN107408017B/zh
Priority to CN202010541312.9A priority patent/CN111736773A/zh
Priority to PCT/JP2015/061165 priority patent/WO2016163016A1/ja
Publication of WO2016163016A1 publication Critical patent/WO2016163016A1/ja
Priority to US16/594,762 priority patent/US11150829B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Definitions

  • the present invention relates to a storage system and a data control method, and in particular, to a storage system and a data control method for automatically rearranging data between storage devices using a plurality of storage devices of the same type and different characteristics. Therefore, it is suitable.
  • the lifetime is generally the longest in SLC, and decreases in the order of MLC and TLC.
  • the bit cost is the lowest in TLC and increases in the order of MLC and SLC. Therefore, in a storage system equipped with an SSD, it is important to appropriately arrange data in consideration of the characteristics.
  • Patent Documents 1 and 2 disclose techniques for managing or controlling a storage system equipped with a plurality of storage devices. Specifically, Patent Document 1 discloses a technique for managing a plurality of storage devices as a pool and providing a virtual volume to a host device.
  • HDD and SSD are managed as storage devices of different tiers, and data is automatically rearranged according to the access frequency from the host device, thereby improving the data hit rate in the higher tier.
  • a technique for improving response performance with respect to a host device is disclosed.
  • the present invention has been made in consideration of the above points, and proposes a storage system and a data control method capable of extending the lifetime of storage devices of the same type and having different characteristics and reducing operation management costs.
  • a first storage device a second storage device having a smaller number of write upper limits than the first storage device, and having a larger storage capacity per unit area
  • a processor that allocates a storage area from the first storage device and the second storage device to the virtual volume provided to the host, and the processor is a storage area that is allocated from the second storage device to the virtual volume Among them, the data stored in the storage area where the write frequency from the host is higher than a predetermined write threshold value is rearranged in the storage area of the first storage device.
  • a first storage device and a second storage device having a smaller number of write upper limits and a larger storage capacity per unit area than the first storage device
  • a data control method for a storage system comprising a processor for allocating a storage area from a first storage device and a second storage device to a virtual volume provided to a host, wherein the processor Of the storage areas allocated from the second storage device, the data stored in the storage area in which the write frequency from the host is higher than a predetermined write threshold value is rearranged in the storage area of the first storage device. Of the storage areas allocated from the first storage device to the virtual volume in the first step, the write frequency from the host is the write threshold value. And a second step of relocating data stored in a is a storage area below the storage area of the second storage device.
  • the lifetime of storage devices of the same type and different characteristics can be extended, and the operation management cost can be reduced.
  • 1 is an overall configuration diagram of a computer system according to a first embodiment.
  • 1 is a logical configuration diagram of a storage system. It is a conceptual block diagram of the page rearrangement process performed between TLC-MLC. It is a conceptual block diagram of the page rearrangement process performed between TLC-TLC. It is an internal block diagram of a shared memory. It is an internal block diagram of a local memory. It is a logic block diagram of a monitor table for every page. It is a logic block diagram of a monitor table for every parity group. It is a logical block diagram of the relocation management table for every parity group. It is a logical block diagram of a per-pool relocation management table. It is a flowchart of a host I / O process.
  • FIG. 1 is a logical configuration diagram of a storage system. It is a conceptual block diagram of the page rearrangement process by a light demotion process. It is a logical block diagram of the relocation management table for every parity group. It is a logical block diagram of a per-pool relocation management table. It is a flowchart of a rearrangement process. It is a flowchart of the rearrangement process between tiers. It is a flowchart of a light demotion process. It is a flowchart of a new allocation determination process. It is a conceptual diagram of the calculation method of the light addition possible amount and the light reduction request amount.
  • the management information does not necessarily have to be expressed in a data structure using a table. For “list”, “DB”, “queue”, etc. Sometimes referred to as “information”.
  • Each process in the embodiment of the present invention may be described using “program” as a subject (operation subject). Since the program performs processing defined by being executed by the processor while using the memory and the communication port (communication control device), the description may be given with the processor as the subject. Part or all of the program may be realized by dedicated hardware or may be modularized. Various programs may be installed in each computer by a program distribution server or a storage medium.
  • FIG. 1 shows the overall configuration of a computer system 1 according to the first embodiment.
  • the computer system 1 includes a host 101, a management server 102, a network 103, and a storage system 104.
  • the host 101 is a general server, for example, and is connected to the 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 / write data.
  • the network 103 is a communication line such as a SAN (Storage Area Network) or Ethernet (registered trademark).
  • the management server 102 is connected to the maintenance I / F 106 or the port 105 of the storage system 104 via the network 103.
  • the storage administrator operates the management server 102 to perform various settings and management necessary for operating the storage system 104.
  • 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, and the like. These are connected to be communicable with each other via the internal network 110.
  • the cache memory 108 is a high-speed accessible memory for storing data as a temporary cache in order to improve the throughput and response of the I / O processing of the storage system 104.
  • the processor package 107 includes a local memory 113 and a processor 114.
  • processor packages 107A and 107B are illustrated, the number is not limited to this.
  • the processor 114 executes 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 for storing control information necessary for the processor 114 to process a read request or a write request and to execute a function (such as a volume copy function) of the storage system 104.
  • the shared memory 109 stores information shared by the processors 114 of the plurality of processor packages 107 (here 107A and 107B).
  • the local memory 113 is a memory for storing control information necessary for the processor 114 to process a read request or a write request and to execute a function of the storage system 104.
  • the local memory 113 stores information occupied by each processor 114.
  • a program executed by the processor 114 is stored in the local memory 113.
  • the drives 111 and 112 are storage devices composed of a plurality of semiconductor memories (SSD: Solid State Drive).
  • the drive 111 here is an MLC SSD (Multi Level Cell SSD) that stores 2-bit information in one cell
  • the drive 112 is a TLC (Triple Level Cell SSD) that stores 3-bit information in one cell. ).
  • MLC SSD The difference between MLC SSD and TLC SSD is that the amount of information per cell is different as described above, as well as the life (upper limit number of writes) and bit cost.
  • the lifetime generally decreases as the amount of information per cell increases. Therefore, MLC SSD is longer than TLC SSD.
  • bit cost is kept lower as the amount of information per unit area is larger, the MLC SSD is higher than the TLC SSD.
  • MLC SSD has a long life and high bit cost
  • TLC SSD has a short life and low bit cost
  • the drives 111 and 112 are configured using MLC SSD and TLC SSD.
  • SLC SSD Single Level Cell SSD
  • the drive 111 when emphasizing that the drives 111 and 112 are storage devices of the same type and different characteristics, the drive 111 may be referred to as an MLC SSD and the drive 112 may be referred to as a TLC SSD.
  • a parity group composed of a plurality of MLC SSDs may be referred to as an MLC PG, and a parity group composed of a plurality of TLC SSDs may be referred to as a TLC PG.
  • FIG. 2 shows the logical configuration of the storage system 104.
  • the virtual volumes 202A and 202B provided to the host 101 by the processor 114 are logical storage areas recognized by the host 101, and are storage areas to which a read request or a write request from the host 101 is issued.
  • the pool 204 is composed of one or more pool volumes 206A to 206E.
  • Each of the pool volumes 206A to 206E includes a storage area of either MLC SSD or TLC SSD.
  • a parity group (PG) 205A or 205B is formed by one or a plurality of pool volumes 206A to 206E.
  • the parity group 205A is composed of only MLC SSD
  • the parity group 205B is composed of only TLC SSD.
  • the present invention is not limited to this, and one parity group is formed by mixing MLC SSD and TLC SSD. It may be configured.
  • the pool volume 206 is used after a part or all of the parity group 205 is cut out.
  • the processor 114 creates an unused real storage area in the pool 204 for the virtual storage area targeted for the write request in the virtual volume 202A. To a predetermined unit (page).
  • a page is a storage area of the smallest unit when writing data.
  • virtual pages allocated to the virtual volume 202A or 202B are illustrated as 201A to 201E
  • real pages in the pool volumes 206A to 206E allocated to these pages 201A to 201E are illustrated as 207A to 207F. ing.
  • the processor 114 executes I / O processing on the storage area 207A of the pool volume 206A that has already been allocated, Processing can be performed as if the host 101 is executing I / O processing on the virtual volume 202A.
  • the limited storage capacity can be used efficiently.
  • the number of writes from the host 101 per unit time (this is called the write frequency) differs for each page 201 constituting each virtual volume 202A or 202B. Therefore, for example, a page 201A with a high write frequency may be placed in a parity group 205A composed of MLC SSDs with a large number of write upper limits as a characteristic, thereby extending the life of a storage device with a small number of write upper limits such as TLC SSD. it can.
  • the above rearrangement copies the data stored in the page 207C to the unused page 207B, and associates the page 201C of the virtual volume 202A and the page 207C of the pool volume 206B with the page of the virtual volume 202A. This is executed by changing the correspondence between 201C and the page 207B of the pool volume 206A.
  • FIG. 3 shows a conceptual configuration of page rearrangement processing performed between TLC and MLC.
  • the page 301 is rearranged between a parity group (hereinafter referred to as MLC PG) 205A configured with MLC SSD and a parity group (hereinafter referred to as TLC PG) 205B configured with TLC SSD.
  • MLC PG parity group
  • TLC PG parity group
  • the relocation destination of the page 301 is determined based on the monitor information collected for each page 301 on the MLC PG 205A and the TLC 205B.
  • the number of writes for each page 301 is collected for a certain period, and after the expiration of the cycle, the write frequency for each MLC PG 205A and TLC PG 205B calculated based on the monitor information, and the TLC-MLC write threshold 302 are set. Based on this, the rearrangement destination of the page 301 is determined.
  • a page 301 with a write load with a TLC-MLC write threshold 302 of 2000 or more is relocated to the MLC PG 205A (arrow 303A), and a page 301 with a write load of less than 2000 is relocated to the TLC PG (arrow 303B). ).
  • the pages with high write frequency are relocated to the MLC PG205A configured with SSDs with a high write limit, and pages with low write frequencies are relocated. Relocate to TLC PG205B configured with SSD with a small number of write upper limit times.
  • the number of writes in the TLC PG 205B configured with an SSD with a small number of write upper limit times can be reduced, and the life of an SSD with a small number of write upper limit numbers (here, TLC SSD) can be extended.
  • FIG. 4 shows a conceptual configuration of page relocation processing performed between drives having the same characteristics (between TLC-TLC or between MLC-MLC).
  • the page rearrangement process performed between drives having the same characteristics is performed for the purpose of adjusting the write frequency between parity groups configured by SSDs having the same upper limit number of writes.
  • a write rebalance that adjusts the write frequency between parity groups
  • a performance rebalance that adjusts the I / O frequency between parity groups corrupted by the write rebalance.
  • write rebalancing and performance rebalancing between TLC and PG are explained.
  • the write frequency that needs to be reduced to guarantee the lifetime referred to as the light reduction requirement
  • the write frequency that can be added within the range that can guarantee the lifetime this can be added as a write
  • a parity group having a positive write reduction request amount is referred to as a write reduction PG 205B
  • a parity group having a positive write addition amount is referred to as a write addition PG 205C.
  • the write high load page 401A of the write reduction PG 205B and the write low load page 401B of the write addition PG 205C are moved to each other (arrow 403) to adjust the write frequency between parity groups.
  • the page to be moved during the write rebalance is determined based on a threshold value based on the monitor information.
  • the threshold includes a threshold for determining a light high load page (referred to as a light reduction threshold) 405 and a threshold for determining a light low load page (referred to as a light addition threshold) 406.
  • the write reduction PG 205B sets the page 401A with the write frequency equal to or higher than the write reduction threshold 405 as the movement target
  • the write addition PG 205C sets the page 401B with the write frequency equal to or lower than the write addition threshold 406 as the movement target.
  • the write frequency is adjusted by moving each page.
  • the number of pages to be moved is calculated by calculating the write frequency for moving by one page move, and calculating in advance the number of pages to be moved to satisfy the target write reduction request amount (referred to as the number of movement planned pages). Is determined by Then, pages are moved (rearranged) by the calculated number of movement plan pages.
  • the read frequency is moved in the direction opposite to the write rebalance by the amount of the write frequency moved by the write rebalance, thereby adding up the read frequency and the write frequency of each parity group. Adjust the frequency between parity groups. Specifically, the read low load page 402B of the write reduction PG 205B and the read high load page 402A of the write addition PG 205C are moved (arrow 404) to adjust the read frequency between parity groups.
  • the page to be moved during performance rebalancing is determined based on a threshold based on monitor information.
  • the threshold includes a threshold for determining a page with a high read load (referred to as a read reduction threshold) 407 and a threshold for determining a page with a low read load (referred to as a read addition threshold) 408.
  • the write reduction PG 205B sets the read frequency page 402B with the read addition threshold 408 or lower as the movement target, and the write addition PG 205C sets the page 402A with the read frequency of the read reduction threshold 407 or higher as the movement target. Then, the read frequency is adjusted by moving each page.
  • the number of pages to be moved is determined by calculating the number of movement planned pages in advance as in the case of write rebalance. Then, the pages are moved (rearranged) by the number of movement planned pages.
  • FIG. 5 shows the internal configuration of the shared memory 109.
  • a per-page monitor table 501 In the shared memory 109, a per-parity group monitor table 502, a per-parity group relocation management table 503, a per-pool relocation management table 504, a cache management table 505, a dynamic mapping table 506, and a logical physical address conversion A table 507 is stored.
  • the per-page monitor table 501 is a table for managing monitor information of each page including the I / O count
  • the per-parity group monitor table 502 is a table for managing monitor information of each parity group including the I / O count. is there.
  • the per-parity group rearrangement management table 503 is a table for managing control information related to page rearrangement for each parity group.
  • the pool relocation management table 504 is a table for managing control information related to page relocation for each pool.
  • the cache management table 505 is used to store data in the cache memory 108 when the data is stored in the cache memory 108. This table holds clean state management.
  • the per-pool relocation management table 504 manages the address of the cache memory 108 in association with the address specifying the page 201 of the corresponding virtual volume 202. It is a table to do.
  • the dynamic mapping table 506 is a table for managing 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 monitor information of each page 201.
  • the logical-physical address conversion table 507 is a table for managing the correspondence between the parity group, the pool volume, and the address of the parity group corresponding to the physical disk storing the pool volume data.
  • FIG. 6 shows the internal configuration of the local memory 113.
  • the local memory 113 stores a host I / O processing program 601, a destage processing program 602, a lifetime information collection processing program 603, a threshold value determination processing program 604, a rearrangement processing program 604A, and a new allocation determination processing program 605. These various programs are executed by the processor 114.
  • the host I / O processing program 601 is a program for processing a read request or a write request for the virtual volume 202 when an I / O request from the host 101 is received.
  • the destage processing program 602 is a program for storing data not reflected in the physical disk on the cache memory 108 in the physical disk. This process is executed asynchronously with the process for the I / O request from the host 101.
  • the lifetime information collection processing program 603 is a program that issues commands to the drives 111 and 112 at predetermined intervals to collect lifetime 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 rearrangement based on monitor information collected at a predetermined cycle and life information of the drives 111 and 112.
  • the rearrangement processing program 604A is a program called by the threshold determination processing program 604, and is a program for rearranging pages based on various threshold values determined by the threshold determination processing program 604.
  • the new allocation determination processing program 605 is executed in synchronization with the host I / O processing program 601, and determines a parity group 205 that is an allocation destination of a real page for a new virtual page in the virtual volume 202 based on a threshold value. It is a program.
  • FIG. 7 shows the logical configuration of the page-by-page monitor table 501.
  • the per-page monitor table 501 includes a page number column 701, a write I / O counter column 702, a read I / O counter column 703, a total I / O counter column 704, and a new write flag column 705.
  • the page number column 701 stores a page number that identifies the page 201
  • the write I / O counter column 702 stores the number of writes in a fixed cycle.
  • the read I / O counter column 703 stores the number of reads in a fixed cycle
  • the total I / O counter column 704 stores the total number of reads and writes in a fixed cycle.
  • the cycle is the same as the cycle in which the above threshold determination processing program 604 collects monitor information, and the threshold determination processing program 604 sets the monitor information for a certain period as a processing target.
  • the new write flag column 705 stores a flag indicating whether the page is a newly assigned page.
  • FIG. 8 shows a logical configuration of the monitor table 502 for each parity group.
  • the parity table monitor table 502 includes 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, and a write addable amount column. 807, a write reduction request amount column 808, a new write I / O counter column 809, a new write ratio column 810, an average I / O frequency column 811, and an allocated page number column 812.
  • the parity group number column 801 stores a parity group number that identifies the parity group 205
  • the maximum write frequency column 802 stores the maximum write frequency of pages in the parity group.
  • the minimum write frequency field 803 stores the minimum write frequency of pages in the parity group.
  • the maximum read frequency column 804 stores the maximum read frequency of pages in the parity group
  • the minimum read frequency column 805 stores the minimum read frequency of pages in the parity group.
  • the read / write ratio column 806 stores the ratio between the number of reads and the number of writes for the parity group.
  • the write addable amount column 807 stores the write frequency that can be added to the parity group within a range in which the lifetime can be guaranteed, and the write reduction request amount column 808 reduces from the parity group in order to guarantee the lifetime. Is stored in the required write frequency. A value calculated based on the write frequency of the parity group and the life information of the SSD is stored in the write addable amount column 807 and the write reduction request amount column 808, and any of them becomes a positive value.
  • the values stored in the write addable amount column 807 and the write reduction request amount column 808 are calculated by calculating the following formulas 1 and 2 when the life information that can be collected from the SSD is the write addable rate and the write reduction request rate. can do.
  • the write addability rate is the ratio of the write frequency that can be added with the current write frequency as 100%, and the write reduction request rate is reduced to maintain the life with the current write frequency as 100%. This is the ratio of the write frequency.
  • the new write I / O counter column 809 stores the number of new writes for the parity group
  • the new write ratio column 810 stores the ratio between the update write and the new write in the write processing in the parity group.
  • the average I / O frequency column 811 stores the average I / O frequency of each page in the parity group
  • the allocated page number column 812 stores the number of pages allocated to the parity group.
  • FIG. 9 shows a logical configuration of the relocation management table 503 for each parity group.
  • the relocation management table 503 for each parity group includes a parity group number column 901, a media type column 902, a migration source PG type column 903, a migration destination PG column 904, a write reduction threshold column 905, a write addition threshold column 906, and a read reduction threshold column. 907, a read addition threshold value column 908, movement plan page number columns 909A and 909B, movement result page number columns 910A and 910B, and a new writable amount column 911.
  • the parity group number column 901 stores a parity group number for specifying a parity group
  • the media type column 902 stores information on characteristics of SSDs constituting the parity group.
  • the movement source PG type field 903 stores information indicating either the light reduction PG or the light addition PG.
  • the migration source PG type is determined based on information stored in the write addition possible amount column 807 or the write reduction request amount column 808 of the parity table monitoring table 502.
  • the movement destination PG column 904 stores the parity group number of the movement destination at the time of page relocation execution.
  • the parity group with the lowest rearrangement progress may be determined as the migration destination.
  • the rearrangement progress degree can be calculated by calculating Equation 3 below using the movement plan page number fields 909A and 909B and the movement result page number fields 910A and 910B.
  • the write reduction threshold value column 905 stores a threshold value for determining a movement target page at the time of write rebalancing with the light reduction PG, and the write addition threshold value column 906 stores at the time of write rebalancing with the write addition PG.
  • a threshold for determining a page to be moved is stored.
  • the read reduction threshold value column 907 stores a threshold value for determining a movement target page at the time of performance rebalancing in the write addition PG, and the read addition threshold value column 908 is moved at the time of performance rebalancing in the write reduction PG.
  • a threshold value for determining the target page is stored.
  • the write reduction threshold, the write addition threshold, the read reduction threshold, and the read addition threshold can be calculated by calculating Equation 4 below.
  • the number of migration planned pages (write rebalance) column 909A stores the number of page migrations necessary for adjusting the write frequency between parity groups composed of SSDs having the same characteristics.
  • the balance field 909B stores the number of page movements necessary for adjusting the I / O frequency including the read frequency between parity groups configured by SSDs having the same characteristics.
  • the number of movement plan pages for write rebalancing can be calculated by calculating the following equation (5).
  • the number of migration plan pages for performance rebalancing can be calculated by calculating the following equation (6).
  • the movement actual page number (write rebalance) column 910A stores the number of pages moved to another parity group for write rebalancing
  • the movement actual page number (performance rebalance) column 910B stores performance rebalance. Therefore, the number of pages moved to another parity group is stored.
  • the new writable amount column 912 stores the number of new writes that can be processed by the parity group. The new writable amount can be calculated by calculating Equation 7 below.
  • FIG. 10 shows a logical configuration of the per-pool relocation management table 504.
  • the per-pool relocation management table 504 includes a pool number column 1001, a life control relocation cycle column 1002, a TLC-MLC write threshold column 1003, a new write threshold column 1004, a workload type column 1005, and a new allocation policy policy column between similar drives. 1006, a new allocation buffer column 1007 and a relocation buffer column 1008.
  • the pool number column 1001 stores a pool number for identifying a pool
  • the life control relocation cycle column 1002 stores a cycle for executing page relocation by life control in the pool.
  • the TLC-MLC write threshold value column 1003 stores a threshold value for deciding which kind of parity group to place a page when rearranging the page between the TLC PG and the MLC PG. .
  • the TLC-MLC write threshold can be calculated by calculating the following formula 8.
  • the new write threshold value column 1004 stores a threshold value for determining whether to allocate a real page to a new page from TLC PG or MLC PG when assigning a new page in the pool.
  • the workload type column 1005 stores information on the characteristics of the I / O request issued from the host 101 to the virtual volume associated with the pool.
  • the workload type includes, for example, Write intense, Read intense, Unknown, and the like.
  • Write intense means that the write ratio is high in the I / O request from the host 101
  • Read intense means that the read ratio is high in the I / O request from the host 101
  • Unknown is In the I / O request from the host 101, this means that the read / write ratio is unknown.
  • the workload type may be specified by the user, or may be automatically determined by the storage system 104.
  • the same type drive new allocation policy column 1006 stores information for determining from which parity group the real page is allocated to the new page in the TLC PG or MLC PG in the new allocation process.
  • the new allocation policy includes, for example, round robin that is sequentially allocated between parity groups, capacity priority that is allocated from a parity group with a large capacity, or life priority that is allocated from a parity group that has a large write-addable amount.
  • the new allocation policy may be specified by the user, or may be automatically determined by the storage system 104.
  • the new allocation buffer column 1007 stores the ratio of the buffer used for new allocation processing in the pool to the pool capacity.
  • the rearrangement buffer column 1008 stores the ratio of the buffer used for page rearrangement processing in the pool to the pool capacity.
  • the per-pool relocation management table 504 has one entry for storing a default value of relocation control information, and a default value is stored in control information not designated by the user.
  • FIG. 11 shows a flowchart of host I / O processing.
  • This host I / O processing is executed in cooperation with the processor 114 and the host I / O processing program 601 when the storage system 104 receives an I / O request from the host 101.
  • the processing subject will be described as the host I / O processing program 601.
  • the host I / O processing program 601 determines whether the received I / O processing request is a write request for writing data to the virtual volume 202. (S1101).
  • the host I / O processing program 601 refers to the dynamic mapping table 506 to determine whether a real page has been allocated to the write target virtual page. . If it is not allocated, new allocation determination processing for allocating an unused real page is executed (S1109). Details of the new assignment determination process will be described later (FIG. 19).
  • the host I / O processing program 601 After executing the new allocation determination process, the host I / O processing program 601 then checks whether or not an area corresponding to the write target address on the virtual volume 202 is secured on the cache memory 108 and secured. If not, an area on the cache memory 108 is secured (S1110).
  • the host I / O processing program 601 notifies the host 101 to transmit write data.
  • the host I / O processing program 601 writes this data in a reserved area on the cache memory 108 (S1111). Then, the host I / O processing program 601 sets the dirty flag indicating that the area has not been written to the drive 111 or 112 to ON in the cache management table 505.
  • the dirty flag is information indicating that data is stored only in the cache memory 108 and not yet 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 referred to in destage processing (FIG. 12) described later.
  • the dirty flag is ON, the data stored in the area on 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, and the data read from the drive 111 or 112 corresponding to the read process is stored in the cache memory 108, including the case where the data is stored in the cache memory 108.
  • the clean flag is set to ON.
  • the cache management table 505 manages at least the address of the virtual volume 202 corresponding to the address on the cache memory 108 and the state of the data on the cache memory 108. Note that the address of the virtual volume 202 corresponding to the address of the cache memory 108 stores the address of the virtual volume 202, which is a valid value only when an area on the cache memory 108 is reserved for placing the data of the virtual volume 202. Is done.
  • the host I / O processing program 601 After performing the above processing, the host I / O processing program 601 notifies the host 101 that the I / O processing (write processing) is completed (S1112), and ends this processing.
  • step S1101 if the I / O request received from the host 101 is a read request for reading data from the virtual volume 202 (S1101: N), the host I / O processing program 601 refers to the cache management table 505. Then, it is determined whether or not the data corresponding to the address on the virtual volume 202 corresponding to the read request is stored in the cache memory 108 (S1102).
  • the host I / O processing program 601 transfers the data on the cache memory 108 to the host 101 (S1108) and confirms that the I / O processing (read processing) has been completed. This is notified to the host 101 and this processing is terminated.
  • the host I / O processing program 601 secures an area in the cache memory 108 for storing data corresponding to the address of the virtual volume 202 to be read. (S1103).
  • the host I / O processing program 601 refers to the dynamic mapping table 506 to check whether a real page is allocated from the pool 204 to the address of the virtual volume 202 to be read.
  • the host I / O processing program 601 refers to the dynamic mapping table 506, and uses the page for storing the default value to drive the default value storage page drive 111 or 112. And the default value is transferred from the drive 111 or 112 to the area of the cache memory 108 (S1105).
  • the pool volume number and logical address with the default value storage page are set in the pool volume number and logical address corresponding to the virtual volume 202 and logical address of the dynamic mapping table 506. .
  • the logical address of the virtual volume 202 associated with the address of the default value storage page is the address of which virtual volume 202 is still on the data write page of the host 101 when data is newly written from the host 101.
  • the host I / O processing program 601 refers to the dynamic mapping table 506, acquires a pool volume number and a logical address, and further converts a logical physical address.
  • the address of the drive 111 or 112 storing the data corresponding to the address of the virtual volume 202 to be read is calculated (S1104).
  • the host I / O processing program 601 transfers data from the calculated address to an area on the cache memory 108 (S1105). Then, the read I / O counter is incremented with reference to the page-by-page monitor table 501 at the time of reading (S1106).
  • 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) and informs the host 101 that the I / O processing (read processing) has been completed. This is notified and the process is terminated.
  • FIG. 12 shows a flowchart of the destage processing.
  • This destage process is asynchronous with the host I / O process (FIG. 11) and is appropriately executed in cooperation with the processor 114 and the destage process program 602.
  • the processing subject will be described as the destage processing program 602.
  • the destage processing program 602 refers to the cache management table 505 to check whether the dirty flag is ON or OFF, and whether or not unreflected data that has not been written to the drive 111 or 112 exists in the cache memory 108. Is determined (S1201).
  • the destage processing program 602 acquires a virtual volume number and a logical address from the cache management table 505 when there is unreflected data on the cache memory 108.
  • the pool volume number and logical address are obtained by referring to the dynamic mapping table 506 based on the virtual volume number and logical address.
  • the destage processing program 602 allocates a new free page from the dynamic mapping table 506 in order to write new data.
  • the pool volume number and logical address of this allocation page are stored in association with the corresponding virtual volume number and logical address in the dynamic mapping table 506.
  • the destage processing program 602 refers to the logical physical address conversion table 507 and calculates the address of the drive 111 or 112 (S1202).
  • the destage processing program 602 writes unreflected data on the cache memory 108 to the calculated address of the drive 111 or 112 (S1203). Then, referring to the per-page monitor table 501 corresponding to the page number of the dynamic mapping table 506, the numerical value of the write I / O counter is counted up (S1204).
  • the destage processing program 602 refers to the new write flag column 705 of the per-page monitor table 501 and determines whether or not the page to be destaged is a newly assigned page (S1205). If the page is a newly assigned page (S1205: Y), the destage processing program 602 refers to the parity group monitor table 502 corresponding to the parity group of the storage destination of this page, and sets the value of the new write I / O counter. Count up (S1206).
  • step S1201 the destage processing program 602 proceeds to step S1201 when the page to be tage processing is not a newly assigned page (S1205: N).
  • step S1201 the destage processing program 602 determines whether there is more unreflected data on the cache memory. If there is no further unreflected data (S1201: N), this process is terminated.
  • the data on the cache memory 108 can be asynchronously stored in the drive 111 or 112 and necessary monitor information can be collected.
  • FIG. 13 is a flowchart of the life information collection process. This life information collection process is executed at a constant period in cooperation with the processor 114 and the life information collection process program 603. For convenience of explanation, the processing subject will be described as a life information collection processing program 603.
  • the life information collection processing program 603 issues a life collection command to the drive 111 or 112 (S1301).
  • the lifetime information collection processing program 603 receives a write addition possibility rate or a write reduction request rate as lifetime information (S1302).
  • the received life information is stored in the local memory 113 (S1303), and this process is terminated.
  • life information can be collected from the drive 111 or 112.
  • FIG. 14 is a flowchart of threshold value determination processing. This threshold value determination process is executed at regular intervals in cooperation with the processor 114 and the threshold value determination process program 604. Information of a certain period is stored in the life control rearrangement period column 1002 of the per-pool rearrangement management table 504. For convenience of explanation, the processing subject will be described as a threshold value determination processing program 604.
  • the threshold value determination processing program 604 determines whether or not the aggregation of monitor information for each page has been completed for all parity groups (S1401). That is, it is determined whether or not information is stored in each column of the parity table monitor table 502.
  • the threshold value determination processing program 604 calls the life information collection processing program 603 to collect life information from the drive 111 or 112 (S1402), and sets the monitor information for each page as parity. The data is totaled for each group (S1403).
  • the threshold value determination processing program 604 calculates various threshold values for page rearrangement (S1404).
  • the various threshold values calculated here are stored in each column of the parity group monitor table 502, the parity group relocation management table 503, and the pool relocation management table 504. Then, the threshold value determination processing program 604 calls the rearrangement processing program 604A and executes the rearrangement processing (S1405), and then ends this processing.
  • monitor information can be aggregated for each parity group, and various threshold values can be calculated based on the aggregated monitor information. Then, the rearrangement process can be executed using the calculated threshold value.
  • FIG. 15 is a flowchart of the rearrangement process. This rearrangement processing is executed in cooperation with the processor 114 and the rearrangement processing program 604A called by the threshold value determination processing program 604. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the rearrangement processing program 604A executes TLC-MLC rearrangement processing for rearranging pages between the TLC PG and the MLC PG based on the TLC-MLC write threshold calculated by the threshold determination processing program 604. (S1501).
  • This TLC-MLC relocation process can extend the life of the TLC SSD (drive 112). In addition, the bit cost can be reduced.
  • the relocation processing program 604A refers to the relocation management table for each parity group 503, and based on the number of write rebalancing migration plan pages, between the parity groups configured between SSDs with the same characteristics (TLC PG or A write rebalance process for rearranging pages between MLC PGs is executed (S1502).
  • This write rebalancing process can distribute the write load among parity groups made up of SSDs with the same characteristics and level the life.
  • the relocation processing program 604A refers to the relocation management table for each parity group 503, and determines whether or not the number of migration plan pages for write rebalance of the write reduction PG is 0 or less (S1503). If the number of migration plan pages for write rebalance of the write reduction PG is 0 or less (S1503: Y), the rearrangement processing program 604A determines that the write frequency adjustment has been completed, and then performs the performance reduction. A balance process is executed (S1504).
  • the relocation processing program 604A cannot adjust the write frequency with the current parity group configuration. Since the lifetime cannot be maintained, a warning screen is displayed to notify the user of the capacity of the TLC SSD or MLC SSD to be added to guarantee the lifetime (S1505).
  • the write frequency and read frequency between parity groups can be adjusted.
  • the user can be notified of the capacity of the TLC SSD or MLC SSD necessary for maintaining the life.
  • FIG. 16 is a flowchart of the TLC-MLC rearrangement process. This TLC-MLC rearrangement process is executed in cooperation with the processor 114 and the rearrangement processing program 604A. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the rearrangement processing program 604A rearranges each page in all parity groups to the 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 is an undetermined page for rearrangement (S1601).
  • the rearrangement processing program 604A refers to the per-parity group rearrangement management table 503, and the media type of the parity group to which the undetermined target page belongs is TLC. It is determined whether or not there is (S1602). When the media type is TLC (S1602: Y), the rearrangement processing program 604A determines whether or not the write frequency of the target page is equal to or higher than the TLC-MLC write threshold (S1603).
  • the rearrangement processing program 604A moves this page from the TLC PG to the MLC PG (S1604).
  • the rearrangement processing program 604A proceeds to step S1601 without doing anything.
  • step S1602 if the media type is MLC (S1602: N), it is determined whether the write frequency of the target page is less than the TLC-MLC write threshold (S1605). When the write frequency of the target page is less than the TLC-MLC write threshold (S1605: Y), the rearrangement processing program 604A moves this page from the MLC PG to the TLC PG (S1606).
  • the rearrangement processing program 604A proceeds to step S1601 without doing anything.
  • the rearrangement processing program 604A finishes the determination for each page in all the parity groups, this processing ends.
  • FIG. 17 is a flowchart of the write rebalance process. This write rebalancing process is executed in cooperation with the processor 114 and the rearrangement processing program 604A. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the rearrangement processing program 604A uses a write rebalancing migration planned page number, a write reduction threshold value, and a write addition threshold value calculated by the threshold value determination processing program 604, between parity groups (TLCs) composed of SSDs having the same characteristics. Rearrange pages between PGs or MLC PGs). At this time, it is determined whether there is an undetermined page for rearrangement (S1701).
  • TLCs parity groups
  • the rearrangement processing program 604A ends this processing.
  • the relocation processing program 604A refers to the relocation management table for each parity group 503 and moves the parity group to which the undetermined target page belongs. It is determined whether or not the original PG type is a light reduction PG (S1702).
  • the rearrangement processing program 604A refers to the write I / O counter of the per-page monitor table 501 to refer to this target. Get page write frequency. Then, it is determined whether or not the acquired write frequency is equal to or higher than a write reduction threshold (S1703).
  • the rearrangement processing program 604A proceeds to step S1701.
  • the relocation processing program 604A determines the parity group to which the target page is moved.
  • the relocation processing program 604A refers to the relocation management table 503 for each parity group, and among the write addition PGs, the number of transfer actual pages for write rebalance is the number of write rebalance. It is determined whether or not there is a parity group that is less than the number of migration planned pages (S1704).
  • the relocation processing program 604A executes this parity group. It is determined that the lifetime can be maintained even if the target page with a high write load is moved to the destination, and this parity group is registered in the relocation management table 503 for each parity group as the destination PG, and the target page is registered in this parity group. (S1705).
  • the relocation processing program 604A when there is no parity group in which the actual number of movement pages for write rebalance is less than the number of movement planned pages for write rebalance (S1704: N), the relocation processing program 604A The determination is finished for the target page, and the process proceeds to step S1701.
  • step S1702 if the source PG type of the parity group to which the target page belongs is not a write reduction PG (S1702: N), that is, if the source PG type of the parity group to which the target page belongs is a write addition PG,
  • the rearrangement processing program 604A refers to the write I / O counter column 702 of the per-page monitor table 501 and acquires the write frequency of the target page. Then, it is determined whether or not the acquired write frequency is less than the write addition threshold (S1706).
  • the rearrangement processing program 604A proceeds to step S1701. On the other hand, when the write frequency of the target page is less than the write addition threshold (S1706: Y), the rearrangement processing program 604A determines the parity group to which the target page is moved.
  • the processing for determining the destination parity group is the same as steps S1704 and S1705 described above, and a description thereof will be omitted.
  • pages can be rearranged between different parity groups configured with SSDs having the same characteristics, the write load can be distributed, and the life can be leveled.
  • FIG. 18 is a flowchart of the performance rebalancing process. This performance rebalancing process is executed in cooperation with the processor 114 and the rearrangement processing program 604A. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the performance rebalancing process is a write rebalancing process in which a page having a read frequency similar to the write frequency adjusted in the write rebalance process (FIG. 17) is moved in a direction opposite to the direction in which the page is moved by the write rebalance process. Unlike the balance processing, other basic processing contents are the same.
  • the rearrangement processing program 604A uses the number of performance rebalancing movement plan pages calculated by the threshold determination processing program 604, the write reduction threshold, and the write addition threshold between parity groups configured with SSDs having the same characteristics ( Rearrange pages between TLC PGs or MLC PGs. At this time, it is determined whether there is an undetermined page for rearrangement (S1801).
  • the rearrangement processing program 604A ends this processing.
  • the relocation processing program 604A refers to the relocation management table for each parity group 503 and moves the parity group to which the undetermined target page belongs. It is determined whether or not the original PG type is a light reduction PG (S1802).
  • the rearrangement processing program 604A refers to the read I / O counter of the per-page monitor table 501 to determine this target. Get the read frequency of the page. Then, it is determined whether or not the acquired read frequency is less than the lead addition threshold (S1803).
  • the rearrangement processing program 604A proceeds to step S1801.
  • the rearrangement processing program 604A determines the parity group to which the target page is moved.
  • the relocation processing program 604A refers to the relocation management table 503 for each parity group, and among the write addition PGs, the number of performance rebalance pages is the performance rebalance page. It is determined whether there is a parity group that is less than the number of migration plan pages (S1804).
  • the relocation processing program 604A executes this parity group. It is determined that even if the target page with a low read load is moved, the load is not increased, and this parity group is registered in the relocation management table 503 for each parity group as the movement destination PG, and the target page is moved to this parity group. (S1805).
  • the relocation processing program 604A when there is no parity group in which the number of movement performance pages for performance rebalancing is less than the number of movement plan pages for performance rebalancing (S1804: N), the relocation processing program 604A The determination is finished for the target page, and the process proceeds to step S1801.
  • step S1802 if the movement source PG type of the parity group to which the target page belongs is not a write reduction PG (S1802: N), that is, if the movement source PG type of the parity group to which the target page belongs is a write addition PG,
  • the reallocation processing program 604A refers to the read I / O counter column 703 of the per-page monitor table 501 and acquires the read frequency of the target page. Then, it is determined whether or not the acquired read frequency is equal to or higher than a read reduction threshold (S1806).
  • the rearrangement processing program 604A proceeds to step S1801.
  • the rearrangement processing program 604A determines the parity group to which the target page is moved.
  • FIG. 19 shows a flowchart of the new assignment determination process.
  • This new allocation determination process is executed in cooperation with the processor 114 and the new allocation determination processing program 605 when a write request for a new virtual page is received from the host 101.
  • the processing subject will be described as a new allocation determination processing program 605.
  • the new allocation determination processing program 605 refers to the per-pool relocation management table 504 and determines whether or not the workload type of the pool 204 that provides a storage area to the virtual volume 202 to be allocated a new page is “Unknown”. Is determined (S1901).
  • the new allocation determination processing program 605 When the workload type of the pool 204 is not “Unknown” (S1901: N), the new allocation determination processing program 605 further determines whether or not it is “Write intense” (S1906). When the workload type is “Write intense” (1906: Y), the new allocation determination processing program 605 predicts that the write frequency for the new page is high, and sets the MLC PG having a relatively high write upper limit count for the new page. It is set to the parity group to which the real page is allocated (S1907).
  • the new allocation determination processing program 605 predicts that the write frequency for the new page is low, and selects a TLC PG with a low write upper limit count.
  • a parity group to which a real page is assigned for a new page is set (S1904).
  • step S1901 if the workload type is “Unknown” (S1901: Y), the new allocation determination processing program 605 does not know the I / O characteristics from the host 101, and therefore determines the future write frequency for the new page. Predict and decide where to assign. First, the predicted write frequency of a new page is calculated (S1902).
  • the new allocation determination processing program 605 calculates the predicted write frequency by collecting and estimating the average write frequency per page from the host 101 as monitor information.
  • the new allocation determination processing program 605 refers to the per-pool relocation management table 504 and determines whether or not the predicted write frequency is less than the new write threshold (S1903).
  • the new allocation determination processing program 605 sets a TLC PG with a smaller number of write upper limits to the allocation destination parity group (S1904).
  • the new allocation determination processing program 605 sets an MLC PG having a large number of write upper limits to the allocation destination parity group (S1907).
  • the new allocation determination processing program 605 determines whether or not a new page can be allocated to the parity group having the characteristics set as the allocation destination, and stores the parity group monitor table 502 and the parity group relocation management table 503. Referring to this, it is determined for each parity group having the characteristic set as the allocation destination whether the new writable amount is larger than the new write I / O counter (S1905).
  • the new allocation determination processing program 605 assigns a new page from this parity group to the per-page monitor table 501. Referring to, a new write flag is set for any page in this parity group (S1909), and this process ends.
  • the new allocation determination processing program 605 creates a new allowable write frequency for maintaining the lifetime. Therefore, the recommended capacity is notified to the user (S1908).
  • the new allocation determination processing program 605 sets a new write flag for any page in any parity group in order to allocate a new page from the parity group to be determined (S1909), and ends this process.
  • FIG. 20 shows the concept of a method for calculating the capacity ratio of storage devices with different number of write upper limits recommended for guaranteeing the life against the write frequency from the host 101.
  • FIG. 20 shows the write frequency distribution of each page 207 in the pool 204 (or each page 201 in the virtual volume 202).
  • a graph 2007 shows the write frequency of each page 207 when all pages 207 are arranged from the left in the order of the write frequency.
  • the vertical axis is the write frequency
  • the horizontal axis is the number of pages.
  • the TLC-MLC write threshold 2005 is a threshold for deciding whether to place the page in TLC PG or MLC PG.
  • the intersection of the TLC-MLC write threshold 2005 and the graph 2007 is the recommended capacity of TLC and MLC.
  • the ratio is (2006).
  • the TLC-MLC write threshold value 2005 may be specified by the user or calculated by the storage system 104.
  • FIG. 21 shows an example of the screen configuration when setting parameters for each pool.
  • the pool unit GUI screen 2101 includes an area 2102 that displays a pool number that can identify the pool 204 to be set, an area 2103 that sets ON / OFF of life control relocation, and a life control relocation ON.
  • An area 2104 for setting ON / OFF of the detailed setting and an area 2105 for setting the content of the detailed setting are configured.
  • Information set on this screen is stored in each column of the per-pool relocation management table 504.
  • the threshold value determination processing program 604 When the setting of the life control rearrangement area 2103 is OFF, the threshold value determination processing program 604 does not execute the threshold value determination processing, and thus the rearrangement processing program 604A does not execute page rearrangement. Monitor information is collected regardless of ON / OFF of the life control rearrangement.
  • a cycle for executing rearrangement for life control is set. This period can be specified by the user. For example, when the user designates “7 days”, page rearrangement is executed in a cycle of 7 days.
  • I / O characteristics from the host 101 are set. This I / O characteristic can be specified by the user.
  • the user can explicitly specify the characteristics of the new allocation destination SSD by designating the I / O characteristics.
  • the I / O characteristic of the host 101 is a high write load, so an actual page is allocated to a new page from the MLC PG with a relatively high write limit. Done.
  • the I / O characteristic of the host 101 is a write low load, so that a real page is allocated to a new page from a TLC PG with a small number of write upper limit times.
  • the storage system 104 automatically determines the parity group to which the real page is allocated for the new page.
  • a policy for determining which characteristic of the parity group to be allocated from TLC PG or MLC PG is set when a real page is allocated to a new page.
  • pages are allocated equally from each parity group.
  • capacity priority pages are allocated with priority from a parity group with a small capacity.
  • lifetime priority pages are assigned with priority from a parity group having a long lifetime.
  • the ratio of the buffer to the capacity of the parity group whose characteristic is MLC PG is set.
  • the new allocation area 2109 a buffer used when a new page is allocated from a parity group whose characteristic is MLC PG is set.
  • the new allocation buffer is re-allocated every relocation cycle. Therefore, the optimum size of the new allocation buffer can be estimated based on the amount of data written to the new page from the host 101 that is expected within the cycle.
  • a buffer used for page rearrangement is set.
  • the relocation buffer adjusts the data size that can be moved per unit time during relocation. For this reason, taking a large number of relocation buffers has the effect of increasing the throughput during relocation.
  • FIG. 22 shows an example of a screen configuration of a warning screen that the storage system 104 notifies the user.
  • the warning screen has a high write frequency from the host 101 and may notify the user that the SSD life span is shorter than the target period in the current configuration or that the SSD is excessively installed to guarantee the life span. it can.
  • the opportunity to display the screen may be displayed automatically by the storage system 104 after completion of the periodically executed page rearrangement processing, or may be displayed at an arbitrary timing by the user operating the storage system 104. Good. In the latter case, the recommended capacity is calculated based on the monitor information at the timing when an arbitrary operation is performed.
  • the pool unit GUI screen 2201 includes an area 2202 for displaying a pool number for identifying the pool 204 to be set, and an area 2203 for notifying the content of the warning.
  • the area 2203 for notifying the content of the warning is recommended from the area 2204 for notifying the capacity of the TLC or MLC that can be added or reduced from the current drive configuration and the information on the I / O request from the current host 101.
  • the area 2205 is configured to notify the capacity of MLC and TLC. Note that the notified capacity information may be represented by the ratio of the TLC and MLC capacity.
  • the storage system 104 in the first embodiment is configured from SSDs having different lifetimes by rearranging pages between TLC-MLC.
  • the write frequency can be adjusted between parity groups. Further, by performing the write rebalancing process, the write frequency can be adjusted between parity groups configured with SSDs having the same characteristics. Therefore, it is possible to reduce the number of SSD maintenance replacements by moving a page having a write frequency for an SSD having a severe life deterioration to an SSD having a slow life deterioration. Further, the cost of the storage system 104 can be reduced.
  • Second Embodiment not only a semiconductor memory (SSD) but also a hard disk drive (HDD) is installed as a storage device.
  • the second embodiment is different from the first embodiment in that hierarchical control is performed in which data is classified into a hierarchy according to the storage and data is arranged in a storage device of an appropriate hierarchy according to the access frequency from the host.
  • FIG. 23 shows the overall configuration of the computer system 1A in the second embodiment.
  • a SAS (Serial Attached SCSI) standard HDD (drive 2301) is mounted and the SSDs (drives 111 and 112) are set to tier 1, and a SAS standard HDD (drive 2301) is set to tier 2.
  • a SAS standard HDD (drive 2301) is set to tier 2.
  • data is rearranged between tiers according to the I / O frequency of each page.
  • tier 1 is set to allocate a page with an I / O frequency of 100 [IOPS]
  • tier 2 is set to allocate a page with an I / O frequency of 10 [IOPS].
  • a page with an I / O frequency of 50 [IOPS] is allocated from tier 2
  • a page with an I / O frequency of 20 [IOPS] is allocated from tier 1.
  • FIG. 24 shows a logical configuration of the storage system 104A.
  • pool volumes 206A to 206C are configured from MLC SSD or TLC SSD
  • pool volumes 206D and 206E are configured from SAS HDD
  • each pool volume 206A to 206E is classified as tier 1 or 2. This is different from the first embodiment.
  • the storage system 104A has a high write load from the host 101 in the tier 1 including the SSD.
  • a write demotion process for moving for example, the page 207D having a high write load to the tier 2 is executed. This can prevent the life of the SSD from deteriorating.
  • FIG. 25 shows a conceptual configuration of page rearrangement processing by write demotion processing.
  • the page 301 is rearranged between the tier 1 configured by the MLC PG 205A or the TLC PG 205B and the tier 2 configured by the parity group (hereinafter referred to as SAS PG) 205C configured by the SAS HDD.
  • the write demotion process is executed when it is determined that the life of the SSD cannot be maintained only by the page rearrangement within the tier 1 during the threshold determination process.
  • the page can be moved. Based on the write frequency of the amount that has not been, the number of movement planned pages by the write demotion process is calculated.
  • pages having a write frequency equal to or higher than the write demotion threshold 2501 are moved from the MLC PG 205A or the TLC PG 205B to the SAS PG 205C by the number of movement planned pages by the write demotion process.
  • FIG. 26 shows a logical configuration of the parity group rearrangement management table 503A in the second embodiment.
  • the relocation management table for each parity group 503A includes a write demotion threshold value column 2601, a write demotion migration planned page number column 2602, a write demotion in addition to the respective columns of the relocation management table for each parity group 503 (FIG. 9). It consists of a movement result page number field 2603 and a tier level field 2604.
  • the write demotion threshold value column 2601 stores a threshold value for determining a page for write demotion processing
  • the write demotion movement plan page number column 2602 stores the number of pages moved by the write demotion processing. Is done.
  • the number of pages moved by the write demotion process is stored in the write demotion movement result page number column 2603.
  • the tier level column 2604 stores the hierarchical order to which the parity group belongs (for example, tier 1, tier 2, tier 3). In this case, the tier with the smaller value of the hierarchical order is composed of higher performance drives.
  • FIG. 27 shows a logical configuration of the per-pool relocation management table 504A in the second embodiment.
  • the per-pool relocation management table 504A includes an inter-tier I / O threshold value column 2701 in addition to the respective columns of the per-pool relocation management table 504 (FIG. 10).
  • the inter-tier I / O threshold value column 2701 stores a threshold value for determining in which hierarchy a page is arranged.
  • FIG. 28 shows a flowchart of the rearrangement process in the second embodiment.
  • This rearrangement processing is executed in cooperation with the processor 114 and the rearrangement processing program 604A called by the threshold value determination processing program 604.
  • the processing subject will be described as the rearrangement processing program 604A.
  • the threshold value determination processing program 604 calculates the inter-tier I / O threshold value and the number of write demotion movement plan pages in the threshold value determination processing (FIG. 14), and sets various threshold values for each parity group relocation management table 503A and pool. Assume that each relocation management table 504A stores the information.
  • the rearrangement processing program 604A executes inter-tier rearrangement processing (S2801).
  • the rearrangement processing program 604A refers to the inter-tier I / O threshold value column 2701 of the per-pool rearrangement management table 504A and determines a tier for allocating the target page.
  • the rearrangement processing program 604A executes the TLC-MLC rearrangement processing in the same manner as the rearrangement processing (FIG. 15) in the first embodiment (S1501), and then executes the write rebalance processing (S1502). .
  • the rearrangement processing program 604A refers to the per-parity group rearrangement management table 503A and determines whether or not the number of write demotion movement planned pages is zero (S2802). .
  • the relocation processing program 604A executes the write demotion processing because the write frequency cannot be adjusted only by executing the write rebalance processing. (S2803). Thereafter, the rearrangement processing program 604A executes performance rebalancing (S1504) and ends this processing.
  • the rearrangement processing program 604A does not need to execute the light demotion processing, and therefore performs performance rebalancing ( S1504), the process is terminated.
  • the life of the SSD constituting the tier 1 cannot be maintained because the write frequency from the host 101 is excessive, a page with a high write load is moved to the tier 2 and the SSD in the tier 1 is moved. Lifespan can be maintained.
  • FIG. 29 shows a flowchart of inter-tier relocation processing. This inter-tier rearrangement process is executed in cooperation with the processor 114 and the rearrangement processing program 604A. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the rearrangement processing program 604A rearranges each page in all parity groups to the 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 is an undetermined page for rearrangement (S2901).
  • the relocation processing program 604A refers to the relocation management table 503A for each parity group, and whether or not the tier to which the undetermined target page belongs is tier 2. Is determined (S2902).
  • the relocation processing program 604A refers to the per-pool relocation management table 504A, and the I / O frequency of the target page is the inter-tier I / O. It is determined whether or not the threshold value is exceeded (S2903).
  • the relocation processing program 604A moves the target page from tier 2 to tier 1 (S2904).
  • the relocation processing program 604A proceeds to step S2901 without doing anything.
  • the relocation processing program 604A refers to the per-pool relocation management table 504A and the I / O frequency of the target page is tiered. It is determined whether it is less than the inter-I / O threshold (S2905).
  • the relocation processing program 604A moves the target page from tier 1 to tier 2 (S2906).
  • the rearrangement processing program 604A proceeds to step S2901 without doing anything.
  • the relocation processing program 604A finishes the determination for each page in all parity groups, the relocation processing program 604A ends this processing.
  • pages can be rearranged in each tier according to the I / O frequency from the host 101 and the performance of each tier.
  • FIG. 30 shows a flowchart of the light demotion process. This write demotion processing is executed in cooperation with the processor 114 and the rearrangement processing program 604A. For convenience of explanation, the processing subject will be described as the rearrangement processing program 604A.
  • the rearrangement processing program 604A rearranges pages between different tiers based on the number of write demotion movement plan pages, the light reduction threshold, and the write demotion threshold calculated by the threshold determination processing program 604. At this time, it is determined whether there is an undetermined page for rearrangement (S3001).
  • the rearrangement processing program 604A ends this processing.
  • the relocation processing program 604A refers to the relocation management table for each parity group 503A and moves the parity group to which the undetermined target page belongs. It is determined whether the PG type is a light reduction PG (S3002).
  • the relocation processing program 604A executes the write demotion process for the target page. Since it is determined that it is not necessary, the process proceeds to step S3001.
  • the rearrangement processing program 604A sets the write I / O counter column 702 of the per-page monitor table 501. By referring to this, the write frequency of this target page is acquired.
  • the relocation processing program 604A refers to the write reduction threshold value column 905 and the write demotion threshold value column 2601 of the per-parity group relocation management table 503A, and acquires the write reduction threshold value and the write demotion threshold value.
  • the rearrangement processing program 604A proceeds to step S3001.
  • the relocation processing program 604A writes the write data of the parity group to which the target page belongs. It is determined whether or not the number of movement results pages for motion is less than the number of movement plans pages for light demotion (S3004).
  • the relocation processing program 604A proceeds to step S3001.
  • the relocation processing program 604A displays the target page as a tier. Move from 1 to Tier 2 (S3005).
  • the reallocation processing program 604A ends this processing.
  • FIG. 31 shows a flowchart of the new allocation determination process.
  • This new allocation determination process is executed in cooperation with the processor 114 and the new allocation determination process program 605 when a write request for a new page is received from the host 101.
  • the processing subject will be described as a new allocation determination processing program 605.
  • step S1905 the new allocation determination processing program 605 determines whether the new writable amount is larger than the new write I / O counter for the parity group of the tier 1 having the characteristics set as the allocation destination (S1905).
  • the reallocation processing program 604A When there is no parity group in which the new writable amount is larger than the new write I / O counter (S1905: N), the reallocation processing program 604A maintains the life of the SSD when more pages are allocated from the tier 1 Therefore, the allocation destination of the real page for the new page is set to Tier 2 (S3101).
  • step S1909 is the same as the new assignment determination process (FIG. 19) in the first embodiment, a description thereof will be omitted.
  • the write frequency necessary for maintaining the life can be reduced from the tier 1. If the write request from the host 101 is a sequential write at the time of new allocation, the page may be allocated from the tier 2 without executing the new allocation determination processing program.
  • the write frequency for the tier 1 from the host 101 is moved to the tier 2 for a certain period of time.
  • the life deterioration of the SSD exceeding the allowable write frequency can be moderated. Therefore, the number of SSD maintenance replacements can be reduced, and the cost of the storage system 104A can be reduced.
  • the write addition possibility rate and the write reduction request rate are collected from the SSD, and the above formulas 1 and 2 are used to calculate the write addition possible amount and the write reduction request amount.
  • the write addition possible amount and the write reduction request amount can be calculated using the following method.
  • FIG. 32 shows a concept for obtaining a wear index (Wear out Indicator) as SSD life information and calculating a light addition possible amount and a light reduction request amount from the wear index.
  • the vertical axis of the graph is an SSD wear index (life rate) 3201, and the horizontal axis is the number of years (elapsed time rate) 3202 since the SSD was first used.
  • the write frequency for the SSD is larger in the write frequency to the flash chip in the SSD than the number of write requests issued by the host 101 to the SSD by WA (Write Amplification). Yes.
  • the SSD WA value is calculated by (number of writes to the flash chip / number of write requests from the host 101).
  • the storage system 104 calculates a write reduction request amount necessary to maintain the lifetime.
  • the write reduction request amount can be calculated by calculating the following equation (10).
  • the storage system 104 calculates a write addable amount.
  • the amount of light that can be added can be calculated by calculating Equation 11 below.
  • the life of an SSD with a small number of write upper limits can be extended by rearranging pages so as to reduce the “write frequency” (write number) of an SSD with a small number of write upper limits.
  • write frequency write number
  • by rearranging pages so as to reduce the “data amount” to be written it is possible to extend the life of an SSD with a small number of write upper limits. This is because when the amount of data to be written is large, it is necessary to write data to a plurality of pages, and thus the number of writes increases.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】同一種別であって特性の異なる記憶装置の寿命を延ばし、運用管理コストを削減し得るストレージシステム及びデータ制御方法を提案する。 【解決手段】第1の記憶装置と、第1の記憶装置よりも書き込み上限回数が少なく、かつ、単位面積当たりの記憶容量が多い第2の記憶装置と、ホストに提供する仮想ボリュームに対して第1の記憶装置及び第2の記憶装置から記憶領域を割り当てるプロセッサとを備え、プロセッサは、仮想ボリュームに対して第2の記憶装置から割り当てられている記憶領域のうち、ホストからのライト頻度が予め定められたライト閾値よりも多い記憶領域に格納されているデータを第2の記憶装置の記憶領域から第1の記憶装置の記憶領域に再配置する。

Description

ストレージシステム及びデータ制御方法
 本発明は、ストレージシステム及びデータ制御方法に関し、特に同一種別であって特性の異なる複数の記憶装置を利用して、記憶装置間でデータを自動的に再配置するストレージシステム及びデータ制御方法に適用して好適なものである。
 近年、HDD(Hard Disk Drive)やSSD(Solid State Drive)の普及により、ストレージシステムに搭載される記憶装置の種類が多様化している。特にSSDについては、データ格納方式としてSLC(Single Level Cell)、2bit MLC(Multi Level Cell)又はTLC(Triple Level Cell)等があり、同一種別の記憶装置であっても、寿命(書き込み上限回数)及びビットコストが異なるという特性がある。
 寿命は、一般にSLCが最も長く、MLC、TLCの順に短くなる。またビットコストは、TLCが最も低く、MLC、SLCの順に高くなる。よってSSDを搭載するストレージシステムにおいては、その特性を考慮してデータを適切に配置することが重要となる。
 特許文献1及び2には、複数の記憶装置が搭載されたストレージシステムを管理又は制御する技術が開示されている。具体的に特許文献1には、複数の記憶装置をプールとして統合的に管理し、仮想的なボリュームをホスト装置に提供する技術が開示されている。
 また特許文献2には、HDDとSSDとを異なる階層の記憶装置として管理し、ホスト装置からのアクセス頻度に応じてデータを自動的に再配置し、高階層でのデータヒット率を向上させることにより、ホスト装置に対する応答性能を向上させる技術が開示されている。
米国特許第7447832号明細書 米国特許第8041682号明細書
 しかし特許文献1及び2に記載の技術では、同一種別であって特性(寿命及びビットコスト)の異なる複数の記憶装置(例えばSSD)が混在したストレージシステムに対して書き込みを行った場合、特性が考慮されることなく、各記憶装置にデータが書き込まれる。
 SSDの特性を考慮せずに書き込みを行うと、書き込み上限回数の少ないSSDの寿命が書き込み上限回数の多いSSDよりも先に尽きることになり、寿命の尽きたSSDに対する交換回数が増え、ストレージシステムの運用管理コストが高くなるという課題がある。
 本発明は以上の点を考慮してなされたもので、同一種別であって特性の異なる記憶装置の寿命を延ばし、運用管理コストを削減し得るストレージシステム及びデータ制御方法を提案する。
 かかる課題を解決するために、本発明においては、第1の記憶装置と、第1の記憶装置よりも書き込み上限回数が少なく、かつ、単位面積当たりの記憶容量が多い第2の記憶装置と、ホストに提供する仮想ボリュームに対して第1の記憶装置及び第2の記憶装置から記憶領域を割り当てるプロセッサとを備え、プロセッサは、仮想ボリュームに対して第2の記憶装置から割り当てられている記憶領域のうち、ホストからのライト頻度が予め定められたライト閾値よりも多い記憶領域に格納されているデータを第1の記憶装置の記憶領域に再配置する。
 またかかる課題を解決するために、本発明においては、第1の記憶装置と、第1の記憶装置よりも書き込み上限回数が少なく、かつ、単位面積当たりの記憶容量が多い第2の記憶装置と、ホストに提供する仮想ボリュームに対して第1の記憶装置及び第2の記憶装置から記憶領域を割り当てるプロセッサとを備えたストレージシステムのデータ制御方法であって、プロセッサが、仮想ボリュームに対して第2の記憶装置から割り当てられている記憶領域のうち、ホストからのライト頻度が予め定められたライト閾値よりも多い記憶領域に格納されているデータを第1の記憶装置の記憶領域に再配置する第1のステップと、仮想ボリュームに対して第1の記憶装置から割り当てられている記憶領域のうち、ホストからのライト頻度がライト閾値以下である記憶領域に格納されているデータを第2の記憶装置の記憶領域に再配置する第2のステップとを備える。
 本発明によれば、同一種別であって特性の異なる記憶装置の寿命を延ばし、運用管理コストを削減することができる。
第1の実施の形態における計算機システムの全体構成図である。 ストレージシステムの論理構成図である。 TLC-MLC間で行われるページ再配置処理の概念構成図である。 TLC-TLC間で行われるページ再配置処理の概念構成図である。 共有メモリの内部構成図である。 ローカルメモリの内部構成図である。 ページ毎モニタテーブルの論理構成図である。 パリティグループ毎モニタテーブルの論理構成図である。 パリティグループ毎再配置管理テーブルの論理構成図である。 プール毎再配置管理テーブルの論理構成図である。 ホストI/O処理のフローチャートである。 デステージ処理のフローチャートである。 寿命情報採取処理のフローチャートである。 閾値決定処理のフローチャートである。 再配置処理のフローチャートである。 TLC-MLC間再配置処理のフローチャートである。 ライトリバランス処理のフローチャートである。 性能リバランス処理のフローチャートである。 新規割り当て決定処理のフローチャートである。 推奨容量算出方法の概念図である。 パラメータ設定画面の画面構成の一例である。 警告画面の画面構成の一例である。 第2の実施の形態における計算機システムの全体構成図である。 ストレージシステムの論理構成図である。 ライトデモーション処理によるページ再配置処理の概念構成図である。 パリティグループ毎再配置管理テーブルの論理構成図である。 プール毎再配置管理テーブルの論理構成図である。 再配置処理のフローチャートである。 ティア間再配置処理のフローチャートである。 ライトデモーション処理のフローチャートである。 新規割り当て決定処理のフローチャートである。 ライト追加可能量及びライト削減要求量の算出方法の概念図である。
 以下、図面を参照しながら本発明の一実施の形態を説明する。なお以下に説明する実施の形態は、本発明を実現するための一例であって、本発明の技術的範囲を限定するものではない。また各図において共通の構成については、同一の参照番号を付してその説明を省略する。また各図において複数の同一部材を図示する場合は、「201A」、「201B」のようにアルファベットを付して区別する一方で、総称して呼ぶ場合には「201」のようにアルファベットを省略する。さらに本発明の実施の形態は、汎用コンピュータ上で稼動するソフトウェアに実装してもよいし、専用ハードウェアに実装してもよい。またソフトウェアとハードウェアとの組み合わせに実装してもよい。以下の説明では、管理用の情報をテーブル形式で説明するが、管理用の情報は必ずしもテーブルによるデータ構造で表現されなくてもよく、「リスト」、「DB」、「キュー」などについて単に「情報」と呼ぶことがある。また「プログラム」を主語(動作主体)として本発明の実施の形態における各処理について説明する場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部又は全部は専用ハードウェアで実現してもよく、またモジュール化されていてもよい。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
(1)第1の実施の形態
 第1の実施の形態は、記憶装置として半導体メモリ(SSD)のみを搭載するストレージシステムにおいて、特性の異なる半導体メモリ間(例えばTLC-MLC間)でデータを再配置することにより、半導体メモリの長寿命化を実現するとともに、ビットコストを低減しようとするものである。さらには同一種別の半導体メモリ間(例えばTLC-TLC間)でデータを再配置することにより、負荷分散を実現して長寿命化を実現しようとするものである。
(1-1)計算機システムの全体構成
 図1は、第1の実施の形態における計算機システム1の全体構成を示す。計算機システム1は、ホスト101、管理サーバ102、ネットワーク103及びストレージシステム104から構成される。ホスト101は、例えば一般的なサーバであり、ネットワーク103を介してストレージシステム104のポート105に接続される。ホスト101は、ストレージシステム104に対してリード要求又はライト要求を発行して、データの読み書きを実行する。
 ネットワーク103は、例えばSAN(Storage Area Network)やイーサネット(登録商標)等の通信回線である。管理サーバ102は、ネットワーク103を介して、ストレージシステム104の保守I/F106又はポート105に接続される。ストレージ管理者は、管理サーバ102を操作して、ストレージシステム104を運用する上で必要な各種設定や管理を行う。
 次にストレージシステム104の内部構成について説明する。ストレージシステム104は、ポート105、保守I/F106、プロセッサパッケージ107、キャッシュメモリ108、共有メモリ109、ドライブ111及びドライブ112等を備える。これらは内部ネットワーク110を介して互いに通信可能に接続される。
 キャッシュメモリ108は、ストレージシステム104のI/O処理のスループットやレスポンスを向上させるために、データを一時的なキャッシュとして格納するための高速アクセス可能なメモリである。プロセッサパッケージ107は、ローカルメモリ113及びプロセッサ114を備えて構成される。なおここではプロセッサパッケージ107は、107A及び107Bの2つを図示しているが、数はこれに限定されない。
 プロセッサ114は、ホスト101からのリード要求及びライト要求を処理するために、ドライブ111及び112と、キャッシュメモリ108との間のデータの転送処理を実行する。共有メモリ109は、プロセッサ114がリード要求又はライト要求を処理し、またストレージシステム104の機能(ボリュームのコピー機能など)を実行する上で必要な制御用の情報を格納するメモリである。共有メモリ109は、複数のプロセッサパッケージ107(ここでは107A及び107B)のプロセッサ114により共有される情報を格納する。
 ローカルメモリ113は、プロセッサ114がリード要求又はライト要求を処理し、またストレージシステム104の機能を実行する上で必要な制御用の情報を格納するメモリである。ローカルメモリ113は、各プロセッサ114により占有される情報を格納する。ローカルメモリ113には、例えばプロセッサ114により実行するプログラムが格納される。
 ドライブ111及び112は、複数の半導体メモリ(SSD:Solid State Drive)から構成される記憶装置である。ここでのドライブ111は、1つのセルに2ビットの情報を格納するMLC SSD(Multi Level Cell SSD)であり、ドライブ112は、1つのセルに3ビットの情報を格納するTLC(Triple Level Cell SSD)である。
 MLC SSDと、TLC SSDとの違いは、上記の通りセル当たりの情報量が異なることに加えて、寿命(書き込み上限回数)及びビットコストが異なる。寿命は、一般にセル当たりの情報量が多くなるほど短くなる。よってMLC SSDの方がTLC SSDよりも長い。またビットコストは、単位面積当たりの情報量が多いほど低く抑えられるため、MLC SSDの方がTLC SSDよりも高い。
 すなわちMLC SSDは、寿命が長くてビットコストが高く、TLC SSDは、寿命が短くてビットコストが低いと言える。なおここではMLC SSD及びTLC SSDを利用してドライブ111及び112を構成するとしているが、これに限らず、SLC SSD(Single Level Cell SSD)を利用するとしてもよい。
 ドライブ111及び112について、以降は同一種別であって特性の異なる記憶装置であることを強調する場合にはドライブ111をMLC SSDと呼び、ドライブ112をTLC SSDと呼ぶ場合がある。また複数のMLC SSDから構成されるパリティグループをMLC PGと呼び、複数のTLC SSDから構成されるパリティグループをTLC PGと呼ぶ場合がある。
(1-2)ストレージシステムの論理構成
 図2は、ストレージシステム104の論理構成を示す。プロセッサ114がホスト101に提供する仮想ボリューム202A及び202Bは、ホスト101から認識される論理的な記憶領域であり、ホスト101からのリード要求又はライト要求の発行対象となる記憶領域である。
 プール204は、1個以上のプールボリューム206A~206Eにより構成される。プールボリューム206A~206Eは、それぞれMLC SSD又はTLC SSDの何れかの記憶領域から構成される。一又は複数のプールボリューム206A~206Eにより、パリティグループ(PG:Parity Group)205A又は205Bが形成される。
 なおここでのパリティグループ205Aは、MLC SSDのみで構成され、パリティグループ205BはTLC SSDのみで構成されているが、必ずしもこれに限らず、MLC SSD及びTLC SSDが混在して1つのパリティグループを構成するとしてもよい。プールボリューム206は、パリティグループ205の一部又は全部の領域が切り出されて使用される。
 プロセッサ114は、例えばホスト101が仮想ボリューム202Aに対してライト要求を発行した場合、この仮想ボリューム202Aにおいてライト要求の対象となった仮想的な記憶領域に対し、未使用の実記憶領域をプール204から所定単位(ページ)で割り当てる。
 なおページとは、データを書き込む際の最小単位の記憶領域である。ここでは仮想ボリューム202A又は202Bに対して割り当てられた仮想ページを201A~201Eとして図示しており、これらのページ201A~201Eに対して割り当てるプールボリューム206A~206Eにおける実ページを207A~207Fとして図示している。
 次回ホスト101から同じページ201Aに対してリード要求又はライト要求が発行された場合、プロセッサ114は、既に割り当てられているプールボリューム206Aの記憶領域207Aに対してI/O処理を実行することにより、あたかもホスト101が仮想ボリューム202Aに対してI/O処理を実行しているように処理することができる。
 すなわち仮想ボリューム202A又は202Bを用いて、使用する部分のみプールボリューム206A~206Eの記憶領域(ページ)207A~207Fを割り当てることにより、限られた記憶容量を効率的に使用することできる。
 ここで、各仮想ボリューム202A又は202Bを構成するページ201毎に、ホスト101からの単位時間当たりの書き込み回数(これをライト頻度と呼ぶ)は異なる。よって例えばライト頻度が高いページ201Aは、特性として書き込み上限回数の多いMLC SSDで構成されたパリティグループ205Aに配置することで、TLC SSDのような書き込み上限回数の少ない記憶装置の寿命を延ばすことができる。
 上記の再配置は、具体的にはページ207Cに格納されたデータを未使用のページ207Bにコピーし、仮想ボリューム202Aのページ201Cとプールボリューム206Bのページ207Cとの対応付けを仮想ボリューム202Aのページ201Cとプールボリューム206Aのページ207Bとの対応付けに変更することにより実行する。
(1-3)ページ配置処理の概念構成
 図3は、TLC-MLC間で行われるページ再配置処理の概念構成を示す。ここではMLC SSDで構成されたパリティグループ(以下、MLC PGと呼ぶ)205Aと、TLC SSDで構成されたパリティグループ(以下、TLC PGと呼ぶ)205Bとの間で、ページ301を再配置する。ページ301の再配置先は、MLC PG205A及びTLC 205B上のページ301毎に採取しているモニタ情報に基づいて決定される。
 具体的には、ページ301毎にライト回数を一定期間採取し、周期の満了後、モニタ情報に基づいて算出されたMLC PG205A及びTLC PG205B毎のライト頻度と、TLC-MLC間ライト閾値302とに基づいてページ301の再配置先を決定する。
 図3では、TLC-MLC間ライト閾値302が2000以上のライト負荷のページ301をMLC PG205Aに再配置し(矢印303A)、2000未満のライト負荷のページ301をTLC PGに再配置する(矢印303B)。
 このように寿命の異なるSSDで構成されたMLC PG205AとTLC PG205Bとの間で、ライト頻度の高いページを書き込み上限回数の多いSSDで構成されたMLC PG205Aに再配置し、ライト頻度の低いページを書き込み上限回数の少ないSSDで構成されたTLC PG205Bに再配置する。
 この結果、書き込み上限回数の少ないSSDで構成されたTLC PG205Bにおけるライト回数を削減することができ、書き込み上限回数の少ないSSD(ここではTLC SSD)の寿命を延ばすことができる。
 図4は、同一特性のドライブ間(TLC-TLC間又はMLC-MLC間)で行われるページ再配置処理の概念構成を示す。同一特性のドライブ間で行われるページ再配置処理は、書き込み上限回数が同程度であるSSDで構成されたパリティグループ間でのライト頻度を調整することを目的として行われる。
 実際にはパリティグループ間のライト頻度を調整するライトリバランスと、ライトリバランスにより崩れたパリティグループ間のI/O頻度を調整する性能リバランスとの2種類のリバランス処理を行う。
 ここではTLC PG間で行うライトリバランス及び性能リバランスについて説明する。まずライトリバランスでは、寿命を保証するために削減が必要なライト頻度(これをライト削減要求量と呼ぶ)又は寿命を保証することができる範囲内で追加可能なライト頻度(これをライト追加可能量と呼ぶ)をパリティグループ毎に算出する。
 このときライト削減要求量が正の値のパリティグループをライト削減PG205Bとし、ライト追加可能量が正の値のパリティグループをライト追加PG205Cとする。そしてライト削減PG205Bのライト高負荷なページ401Aとライト追加PG205Cのライト低負荷なページ401Bとを互いに移動して(矢印403)、パリティグループ間のライト頻度を調整する。
 ライトリバランスの際の移動対象となるページは、モニタ情報を元にした閾値に基づいて決定される。閾値には、ライト高負荷なページを決定する閾値(これをライト削減閾値呼ぶ)405と、ライト低負荷なページを決定する閾値(これをライト追加閾値と呼ぶ)406とがある。ライトリバランスの際、ライト削減PG205Bでは、ライト削減閾値405以上のライト頻度のページ401Aを移動対象とし、ライト追加PG205Cでは、ライト追加閾値406以下のライト頻度のページ401Bを移動対象とする。そしてそれぞれのページを移動することでライト頻度を調整する。
 移動するページ数は、1回のページ移動で移動するライト頻度を算出し、目標とするライト削減要求量を満たすために必要な移動ページ数(これを移動計画ページ数と呼ぶ)を予め算出することにより決定される。そしてこの算出された移動計画ページ数分だけページの移動(再配置)が行われる。
 次に性能リバランスでは、ライトリバランスにより移動したライト頻度の分だけリード頻度をライトリバランスとは逆の方向に移動することで、各パリティグループのリード頻度及びライト頻度を合算したI/O頻度をパリティグループ間で調整する。具体的には、ライト削減PG205Bのリード低負荷なページ402Bとライト追加PG205Cのリード高負荷なページ402Aとを移動して(矢印404)、パリティグループ間のリード頻度を調整する。
 性能リバランスの際の移動対象となるページは、モニタ情報を元にした閾値に基づいて決定される。閾値には、リード高負荷なページを決定する閾値(これをリード削減閾値と呼ぶ)407とリード低負荷なページを決定する閾値(これをリード追加閾値と呼ぶ)408がある。
 性能リバランスの際、ライト削減PG205Bでは、リード追加閾値408以下のリード頻度のページ402Bを移動対象とし、ライト追加PG205Cでは、リード削減閾値407以上のリード頻度のページ402Aを移動対象とする。そしてそれぞれのページを移動することでリード頻度を調整する。移動するページ数は、ライトリバランスと同様、移動計画ページ数を予め算出することにより決定される。そしてこの移動計画ページ数分だけページの移動(再配置)が行われる。
(1-4)メモリの内部構成
 図5は、共有メモリ109の内部構成を示す。共有メモリ109には、ページ毎モニタテーブル501、パリティグループ毎モニタテーブル502、パリティグループ毎再配置管理テーブル503、プール毎再配置管理テーブル504、キャッシュ管理テーブル505、ダイナミックマッピングテーブル506及び論理物理アドレス変換テーブル507が格納される。
 ページ毎モニタテーブル501は、I/O回数を含む各ページのモニタ情報を管理するテーブルであり、パリティグループ毎モニタテーブル502は、I/O回数を含む各パリティグループのモニタ情報を管理するテーブルである。またパリティグループ毎再配置管理テーブル503は、パリティグループ毎のページ再配置に関する制御情報を管理するテーブルである。
 プール毎再配置管理テーブル504は、プール毎のページ再配置に関する制御情報を管理するテーブルであり、キャッシュ管理テーブル505は、キャッシュメモリ108にデータを格納する際にキャッシュメモリ108にあるデータのダーティ/クリーン状態管理を保持するテーブルである。
 またプール毎再配置管理テーブル504は、仮想ボリューム202に対して書き込むデータをキャッシュする場合には、キャッシュメモリ108のアドレスと、対応する仮想ボリューム202のページ201を特定するアドレスとを対応づけて管理するテーブルである。
 ダイナミックマッピングテーブル506は、仮想ボリューム202の各ページ201と、各ページ201に割り当てられているプールボリューム206のページ207と、各ページ201のモニタ情報との対応関係を管理するテーブルである。
 論理物理アドレス変換テーブル507は、パリティグループと、プールボリュームと、プールボリュームのデータを格納する物理ディスクに対応するパリティグループのアドレスとの対応関係を管理するテーブルである。
 図6は、ローカルメモリ113の内部構成を示す。ローカルメモリ113には、ホストI/O処理プログラム601、デステージ処理プログラム602、寿命情報採取処理プログラム603、閾値決定処理プログラム604、再配置処理プログラム604A及び新規割り当て決定処理プログラム605が格納される。これらの各種プログラムは、プロセッサ114により実行される。
 ホストI/O処理プログラム601は、ホスト101からのI/O要求を受領した場合に仮想ボリューム202に対するリード要求又はライト要求を処理するプログラムである。デステージ処理プログラム602は、キャッシュメモリ108上の物理ディスクに未反映のデータを物理ディスクに格納するプログラムである。この処理は、ホスト101からのI/O要求に対する処理とは非同期に実行される。
 寿命情報採取処理プログラム603は、ドライブ111及び112に対して所定周期でコマンドを発行して寿命情報を採取し、採取した情報を共有メモリ109に反映するプログラムである。閾値決定処理プログラム604は、所定周期で採取したモニタ情報とドライブ111及び112の寿命情報とに基づいて、ページ再配置のための閾値を算出するプログラムである。
 再配置処理プログラム604Aは、閾値決定処理プログラム604により呼び出されるプログラムであり、閾値決定処理プログラム604により決定された各種閾値に基づいて、ページを再配置するプログラムである。新規割り当て決定処理プログラム605は、ホストI/O処理プログラム601に同期して実行され、仮想ボリューム202における新規の仮想ページに対して実ページの割り当て先であるパリティグループ205を閾値に基づいて決定するプログラムである。
(1-5)テーブル構成
 図7は、ページ毎モニタテーブル501の論理構成を示す。ページ毎モニタテーブル501は、ページ番号欄701、ライトI/Oカウンタ欄702、リードI/Oカウンタ欄703、合計I/Oカウンタ欄704及び新規ライトフラグ欄705から構成される。
 ページ番号欄701には、ページ201を特定するページ番号が格納され、ライトI/Oカウンタ欄702には、一定周期のライト回数が格納される。またリードI/Oカウンタ欄703には、一定周期のリード回数が格納され、合計I/Oカウンタ欄704には、一定周期のリード回数及びライト回数の合計I/O回数が格納される。
 周期は、上記した閾値決定処理プログラム604がモニタ情報を採取する周期と同じであり、閾値決定処理プログラム604は、この一定期間のモニタ情報を処理対象とする。また新規ライトフラグ欄705には、ページが新規割り当てページか否かを示すフラグが格納される。
 図8は、パリティグループ毎モニタテーブル502の論理構成を示す。パリティグループ毎モニタテーブル502は、パリティグループ番号欄801、最大ライト頻度欄802、最小ライト頻度欄803、最大リード頻度欄804、最小リード頻度欄805、リード/ライト比率欄806、ライト追加可能量欄807、ライト削減要求量欄808、新規ライトI/Oカウンタ欄809、新規ライト比率欄810、平均I/O頻度欄811及び割り当てページ数欄812から構成される。
 パリティグループ番号欄801には、パリティグループ205を特定するパリティグループ番号が格納され、最大ライト頻度欄802には、パリティグループ内のページの最大ライト頻度が格納される。また最小ライト頻度欄803には、パリティグループ内のページの最小ライト頻度が格納される。
 最大リード頻度欄804には、パリティグループ内のページの最大リード頻度が格納され、最小リード頻度欄805には、パリティグループ内のページの最小リード頻度が格納される。またリード/ライト比率欄806には、パリティグループに対するリード回数とライト回数との比率が格納される。
 ライト追加可能量欄807には、寿命を保証することができる範囲内でパリティグループに追加可能なライト頻度が格納され、ライト削減要求量欄808には、寿命を保証するためにパリティグループから削減が必要なライト頻度が格納される。ライト追加可能量欄807及びライト削減要求量欄808には、パリティグループのライト頻度及びSSDの寿命情報に基づいて算出される値が格納され、何れかが正の値となる。
 ライト追加可能量欄807及びライト削減要求量欄808に格納される値は、SSDから採取できる寿命情報がライト追加可能率及びライト削減要求率である場合、下記式1及び2を計算して算出することができる。
 なおライト追加可能率とは、現状のライト頻度を100%として、追加可能なライト頻度の割合であり、ライト削減要求率とは、現状のライト頻度を100%として寿命を維持するために削減すべきライト頻度の割合である。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 新規ライトI/Oカウンタ欄809には、パリティグループに対する新規ライト回数が格納され、新規ライト比率欄810には、パリティグループにおける書き込み処理のうち、更新ライトと新規ライトとの比率が格納される。また平均I/O頻度欄811には、パリティグループにおける各ページの平均I/O頻度が格納され、割り当てページ数欄812には、パリティグループに割り当てられているページ数が格納される。
 図9は、パリティグループ毎再配置管理テーブル503の論理構成を示す。パリティグループ毎再配置管理テーブル503は、パリティグループ番号欄901、メディアタイプ欄902、移動元PG種別欄903、移動先PG欄904、ライト削減閾値欄905、ライト追加閾値欄906、リード削減閾値欄907、リード追加閾値欄908、移動計画ページ数欄909A及び909B、移動実績ページ数欄910A及び910B並びに新規ライト可能量欄911から構成される。
 パリティグループ番号欄901には、パリティグループを特定するパリティグループ番号が格納され、メディアタイプ欄902には、パリティグループを構成するSSDの特性の情報が格納される。また移動元PG種別欄903には、ライト削減PG又はライト追加PGの何れかを示す情報が格納される。移動元PG種別は、パリティグループ毎モニタテーブル502のライト追加可能量欄807又はライト削減要求量欄808に格納される情報に基づいて決定される。
 具体的には、ライト追加可能量欄807に正の値が格納されている場合、このパリティグループの移動元PG種別欄903には、ライト追加PGを示す情報が格納される。またライト削減要求量欄808に正の値が格納されている場合、このパリティグループの移動元PG種別903には、ライト削減PGを示す情報が格納される。
 移動先PG欄904には、ページ再配置実行時の移動先のパリティグループ番号が格納される。移動先のパリティグループ番号は、再配置進捗度が最低のパリティグループを移動先として決定してもよい。再配置進捗度は、移動計画ページ数欄909A及び909Bと、移動実績ページ数欄910A及び910Bとを用いて、下記式3を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000003
 ライト削減閾値欄905には、ライト削減PGでのライトリバランス時の移動対象のページを決定するための閾値が格納され、ライト追加閾値欄906には、ライト追加PGでのライトリバランス時の移動対象のページを決定するための閾値が格納される。
 リード削減閾値欄907には、ライト追加PGでの性能リバランス時の移動対象ページを決定するための閾値が格納され、リード追加閾値欄908には、ライト削減PGでの性能リバランス時の移動対象ページを決定するための閾値が格納される。ライト削減閾値、ライト追加閾値、リード削減閾値及びリード追加閾値は、下記式4を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000004
 移動計画ページ数(ライトリバランス)欄909Aには、同一特性のSSDにより構成されるパリティグループ間でライト頻度を調整するために必要なページの移動数が格納され、移動計画ページ数(性能リバランス)欄909Bには、同一特性のSSDにより構成されるパリティグループ間でリード頻度を含むI/O頻度を調整するために必要なページの移動数が格納される。ライトリバランス用の移動計画ページ数は、下記式5を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000005
 また性能リバランス用の移動計画ページ数は、下記式6を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000006
 移動実績ページ数(ライトリバランス)欄910Aには、ライトリバランスのために他のパリティグループに移動したページ数が格納され、移動実績ページ数(性能リバランス)欄910Bには、性能リバランスのために他のパリティグループに移動したページ数が格納される。新規ライト可能量欄912には、パリティグループで処理することのできる新規ライト回数が格納される。新規ライト可能量は、下記式7を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000007
 図10は、プール毎再配置管理テーブル504の論理構成を示す。プール毎再配置管理テーブル504は、プール番号欄1001、寿命制御再配置周期欄1002、TLC-MLC間ライト閾値欄1003、新規ライト閾値欄1004、ワークロードタイプ欄1005、同種ドライブ間新規割り当てポリシ欄1006、新規割り当てバッファ欄1007及び再配置バッファ欄1008から構成される。
 プール番号欄1001には、プールを特定するプール番号が格納され、寿命制御再配置周期欄1002には、プールにおいて寿命制御によるページの再配置を実行する周期が格納される。またTLC-MLC間ライト閾値欄1003には、TLC PGとMLC PGとの間でページを再配置する際にどちらの種類のパリティグループにページを配置するのかを決定するための閾値が格納される。TLC-MLC間ライト閾値は、下記式8を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000008
 新規ライト閾値欄1004には、プールにおいて新規ページに対する割り当て処理を行う際、TLC PGとMLC PGのどちらから新規ページに対する実ページの割り当てを行うかを決定するための閾値が格納される。新規ライト閾値は、ページ移動時のペナルティ(=1ページあたりのデータサイズ)としてストレージシステム104が指定してもよい。
 ワークロードタイプ欄1005には、プールに関連付けられている仮想ボリュームに対してホスト101から発行されるI/O要求の特性の情報が格納される。ワークロードタイプには、例えばWrite intensive、Read intensive、Unknown等がある。
 Write intensiveは、ホスト101からのI/O要求のうち、ライト比率が高いことを意味し、Read intensiveは、ホスト101からのI/O要求のうち、リード比率が高いことを意味し、Unknownは、ホスト101からのI/O要求のうち、リード/ライト比率が不明であることを意味する。ワークロードタイプは、ユーザが指定してもよいし、ストレージシステム104が自動で決定してもよい。
 同種ドライブ間新規割り当てポリシ欄1006には、新規割り当て処理でTLC PG内又はMLC PG内でどのパリティグループから新規ページに対する実ページの割り当てを行うかを決定するための情報が格納される。新規割り当てポリシには、例えばパリティグループ間で順番に割り当てるラウンドロビン、容量の多いパリティグループから割り当てる容量優先又はライト追加可能量の多いパリティグループから割り当てる寿命優先がある。新規割り当てポリシは、ユーザが指定してもよいし、ストレージシステム104が自動で決定してもよい。
 新規割り当てバッファ欄1007には、プールで新規割り当て処理のために使用するバッファのプール容量に対する比率が格納される。再配置バッファ欄1008には、プールでページの再配置処理のために使用するバッファのプール容量に対する比率が格納される。なおこのプール毎再配置管理テーブル504内には、再配置の制御情報のデフォルト値を格納するエントリが1つ存在し、ユーザからの指定がない制御情報にはデフォルト値が格納される。
(1-6)フローチャート
 図11は、ホストI/O処理のフローチャートを示す。このホストI/O処理は、ストレージシステム104がホスト101からのI/O要求を受領したことを契機として、プロセッサ114とホストI/O処理プログラム601との協働により実行される。説明の便宜上、処理主体をホストI/O処理プログラム601として説明する。
 まずホストI/O処理プログラム601は、ホスト101からのI/O処理要求を受領すると、受領したI/O処理要求が仮想ボリューム202に対してデータを書き込むライト要求であるか否かを判断する(S1101)。
 ライト要求である場合(S1101:Y)、ホストI/O処理プログラム601は、ダイナミックマッピングテーブル506を参照して、ライト対象の仮想ページに対して実ページが割り当て済みであるか否かを判断する。そして未割り当ての場合には、未使用の実ページを割り当てる新規割り当て決定処理を実行する(S1109)。新規割り当て決定処理の詳細については後述する(図19)。
 新規割り当て決定処理を実行した後、次いでホストI/O処理プログラム601は、仮想ボリューム202上のライト対象のアドレスに対応した領域がキャッシュメモリ108上に確保されているか否かを確認し、確保されていない場合にはキャッシュメモリ108上の領域を確保する(S1110)。
 次いでホストI/O処理プログラム601は、ホスト101に対してライト用のデータを送信するように通知する。ホストI/O処理プログラム601は、ホスト101からデータが送信されると、このデータをキャッシュメモリ108上の確保した領域に書き込む(S1111)。そしてホストI/O処理プログラム601は、まだドライブ111又は112に書き込みが完了していない領域であることを示すダーティフラグをキャッシュ管理テーブル505においてONに設定する。
 ここで、ダーティフラグは、キャッシュメモリ108にのみデータが格納されており、ドライブ111又は112にはまだ格納されていない状態を示す情報である。ダーティフラグは、キャッシュメモリ108の領域を管理するキャッシュ管理テーブル505においてON又はOFに設定される。キャッシュ管理テーブル505は、後述するデステージ処理(図12)において参照される。
 そしてダーティフラグがONである場合にはキャッシュメモリ108上の領域に格納されているデータは、ドライブ111又は112に書き込まれる。ドライブ111又は112に書き込まれた後は、ダーティフラグはOFFに設定され、リード処理に対応してドライブ111又は112から読み込んだデータをキャッシュメモリ108に格納した場合を含めて、キャッシュ管理テーブル505にはクリーンフラグがONに設定される。
 このようにキャッシュ管理テーブル505は、キャッシュメモリ108上のアドレスと対応する仮想ボリューム202のアドレスと、キャッシュメモリ108上のデータの状態とを少なくとも管理する。なおキャッシュメモリ108のアドレスに対応する仮想ボリューム202のアドレスは、仮想ボリューム202のデータを置くためにキャッシュメモリ108上の領域を確保した場合にのみ、有効な値である仮想ボリューム202のアドレスが格納される。
 以上の処理を行った後、ホストI/O処理プログラム601は、ホスト101にI/O処理(ライト処理)が完了したことを通知して(S1112)、本処理を終了する。
 ステップS1101に戻り、ホストI/O処理プログラム601は、ホスト101から受領したI/O要求が仮想ボリューム202からデータを読み込むリード要求である場合(S1101:N)、キャッシュ管理テーブル505を参照して、リード要求に対応する仮想ボリューム202上のアドレスに対応したデータがキャッシュメモリ108上に格納されているか否かを判断する(S1102)。
 リード要求に対応する仮想ボリューム202上のアドレスに対応したデータがキャッシュメモリ108上に格納されている場合をキャッシュヒットと呼ぶ。キャッシュヒットである場合(S1102:Y)、ホストI/O処理プログラム601は、キャッシュメモリ108上のデータをホスト101に転送するとともに(S1108)、I/O処理(リード処理)が完了したことをホスト101に通知して、本処理を終了する。
 これに対し、キャッシュヒットしなかった場合(S1102:N)、ホストI/O処理プログラム601は、リード対象の仮想ボリューム202のアドレスに対応したデータを格納するための領域をキャッシュメモリ108上に確保する(S1103)。次いでホストI/O処理プログラム601は、ダイナミックマッピングテーブル506を参照して、リード対象の仮想ボリューム202のアドレスにプール204から実ページが割り当てられているか否かを確認する。
 仮想ボリューム202に実ページが割り当てられていない場合、ホストI/O処理プログラム601は、ダイナミックマッピングテーブル506を参照して、デフォルト値を格納するページを用いてデフォルト値の格納ページのドライブ111又は112のアドレスを算出し、ドライブ111又は112からデフォルト値をキャッシュメモリ108の領域に転送する(S1105)。
 ここで、デフォルト値の場合は、ダイナミックマッピングテーブル506の仮想ボリューム202及び論理アドレスに対応する、プールボリューム番号及び論理アドレスには、デフォルト値格納ページのあるプールボリューム番号及び論理アドレスが設定されている。デフォルト値格納ページは、プール204に1つ以上あればよい。容量効率を考えればプール204にデフォルト値ページは1又は2つである。
 デフォルト値格納ページのアドレスと対応付けられている仮想ボリューム202の論理アドレスは、ホスト101から新規にデータの書き込みがあった際に、ホスト101のデータ書き込み用のページで未だどの仮想ボリューム202のアドレスにも対応付けられていない未使用のページと対応付け直される。
 これに対し、仮想ボリューム202に実ページが割り当てられている場合、ホストI/O処理プログラム601は、ダイナミックマッピングテーブル506を参照して、プールボリューム番号及び論理アドレスを取得し、更に論理物理アドレス変換テーブル507を参照して、物理ドライブ番号及び物理開始アドレスを算出することで、リード対象の仮想ボリューム202のアドレスに対応したデータが格納されているドライブ111又は112のアドレスを算出する(S1104)。
 次にホストI/O処理プログラム601は、算出したアドレスからデータをキャッシュメモリ108上の領域に転送する(S1105)。そしてリード時にページ毎モニタテーブル501を参照して、リードI/Oカウンタの数値をカウントアップする(S1106)。
 そしてホストI/O処理プログラム601は、ドライブ111又は112からキャッシュメモリ108上に格納したデータをホスト101に転送するとともに(S1107)、I/O処理(リード処理)が完了したことをホスト101に通知して、本処理を終了する。
 以上の処理により、ホストI/O処理を行うとともに、必要なモニタ情報を採取することができる。
 図12は、デステージ処理のフローチャートを示す。このデステージ処理は、ホストI/O処理(図11)とは非同期で、プロセッサ114とデステージ処理プログラム602との協働により適宜実行される。説明の便宜上、処理主体をデステージ処理プログラム602として説明する。
 まずデステージ処理プログラム602は、キャッシュ管理テーブル505を参照して、ダーティフラグのON又はOFFを確認し、ドライブ111又は112に書き込みがなされていない未反映データがキャッシュメモリ108上にあるか否かを判断する(S1201)。
 デステージ処理プログラム602は、未反映データがキャッシュメモリ108上にある場合、キャッシュ管理テーブル505から仮想ボリューム番号及び論理アドレスを取得する。そしてこの仮想ボリューム番号及び論理アドレスを元にダイナミックマッピングテーブル506を参照して、プールボリューム番号及び論理アドレスを取得する。
 このときプールボリューム番号及び論理アドレスがデフォルト値格納ページのアドレスであった場合、デステージ処理プログラム602は、新規データを書き込むためにダイナミックマッピングテーブル506から新規空きページを割り当てる。そしてこの割り当てページのプールボリューム番号及び論理アドレスをダイナミックマッピングテーブル506の対応する仮想ボリューム番号及び論理アドレスに対応付けて格納する。
 既にページが割り当てられている場合は、デフォルト値のプールボリューム番号及び論理アドレスとは異なるプールボリューム番号及び論理アドレスの値が仮想ボリュームの論理アドレスに対応付けて格納されている。デステージ処理プログラム602は、プールボリューム番号及び論理アドレスを取得した後、論理物理アドレス変換テーブル507を参照して、ドライブ111又は112のアドレスを算出する(S1202)。
 次いでデステージ処理プログラム602は、算出したドライブ111又は112のアドレスに対して、キャッシュメモリ108上の未反映データを書き込む(S1203)。そしてダイナミックマッピングテーブル506のページ番号に対応するページ毎モニタテーブル501を参照して、ライトI/Oカウンタの数値をカウントアップする(S1204)。
 次いでデステージ処理プログラム602は、ページ毎モニタテーブル501の新規ライトフラグ欄705を参照して、デステージ処理対象のページが新規割り当てページであるか否かを判断する(S1205)。新規割り当てページである場合(S1205:Y)、デステージ処理プログラム602は、このページの格納先のパリティグループに対応するパリティグループ毎モニタテーブル502を参照して、新規ライトI/Oカウンタの数値をカウントアップする(S1206)。
 これに対し、デステージ処理プログラム602は、テージ処理対象のページが新規割り当てページでない場合(S1205:N)、ステップS1201に移行する。ステップS1201においてデステージ処理プログラム602は、キャッシュメモリ108上に未反映データがさらにあるか否かを判断する。そしてさらなる未反映データがない場合には(S1201:N)、本処理を終了する。
 以上の処理により、キャッシュメモリ108上のデータを非同期にドライブ111又は112に格納するとともに、必要なモニタ情報を採取することができる。
 図13は、寿命情報採取処理のフローチャートである。この寿命情報採取処理は、プロセッサ114と寿命情報採取処理プログラム603との協働により一定周期で実行される。説明の便宜上、処理主体を寿命情報採取処理プログラム603として説明する。
 まず寿命情報採取処理プログラム603は、ドライブ111又は112に対して寿命採取のコマンドを発行する(S1301)。次いで寿命情報採取処理プログラム603は、寿命情報としてライト追加可能率又はライト削減要求率を受信する(S1302)。そして受信した寿命情報をローカルメモリ113に格納して(S1303)、本処理を終了する。
 以上の処理により、ドライブ111又は112から寿命情報を採取することができる。
 図14は、閾値決定処理のフローチャートである。この閾値決定処理は、プロセッサ114と閾値決定処理プログラム604との協働により一定周期で実行される。一定周期の情報は、プール毎再配置管理テーブル504の寿命制御再配置周期欄1002に格納される。説明の便宜上、処理主体を閾値決定処理プログラム604として説明する。
 まず閾値決定処理プログラム604は、全てのパリティグループについて、ページ毎のモニタ情報の集計が完了したか否かを判断する(S1401)。すなわちパリティグループ毎モニタテーブル502の各欄に情報が格納されているか否かを判断する。
 集計が完了していない場合(S1401:N)、閾値決定処理プログラム604は、寿命情報採取処理プログラム603を呼び出してドライブ111又は112から寿命情報を採取し(S1402)、ページ毎のモニタ情報をパリティグループ毎に集計する(S1403)。集計が完了している場合(S1401:Y)、閾値決定処理プログラム604は、ページ再配置のための各種閾値を算出する(S1404)。
 ここで算出される各種閾値は、パリティグループ毎モニタテーブル502、パリティグループ毎再配置管理テーブル503及びプール毎再配置管理テーブル504の各欄に格納される。そして閾値決定処理プログラム604は、再配置処理プログラム604Aを呼び出して再配置処理を実行した後(S1405)、本処理を終了する。
 以上の処理により、パリティグループ毎にモニタ情報を集計し、集計したモニタ情報に基づいて、各種閾値を算出することができる。そして算出した閾値を用いて再配置処理を実行することができる。
 図15は、再配置処理のフローチャートである。この再配置処理は、プロセッサ114と閾値決定処理プログラム604により呼び出される再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出されたTLC-MLC間ライト閾値に基づいて、TLC PGとMLC PGとの間でページを再配置するTLC-MLC間再配置処理を実行する(S1501)。
 このTLC-MLC間再配置処理により、TLC SSD(ドライブ112)の寿命を延ばすことができる。またビットコストを削減することができる。
 次に再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503を参照し、ライトリバランス用の移動計画ページ数に基づいて、同一特性のSSDで構成されたパリティグループ間(TLC PG間又はMLC PG間)でページを再配置するライトリバランス処理を実行する(S1502)。
 このライトリバランス処理により、同一特性のSSDで構成されたパリティグループ間でライト負荷を分散して、寿命を平準化することができる。
 次に再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503を参照して、ライト削減PGのライトリバランス用の移動計画ページ数が0以下であるか否かを判断する(S1503)。ライト削減PGのライトリバランス用の移動計画ページ数が0以下である場合(S1503:Y)、再配置処理プログラム604Aは、ライト頻度の調整が完了していると判断して、次に性能リバランス処理を実行する(S1504)。
 これに対し、ライト削減PGのライトリバランス用の移動計画ページ数が0よりも大きい場合(S1503:N)、再配置処理プログラム604Aは、現在のパリティグループの構成では、ライト頻度を調整できず、寿命を維持することができないため、警告画面を表示して、寿命を保証するために追加すべきTLC SSD又はMLC SSDの容量をユーザに通知する(S1505)。
 以上の処理により、パリティグループ間でのライト頻度及びリード頻度を調整することができる。またライト頻度及びリード頻度を調整することができない場合には寿命を維持するために必要なTLC SSD又はMLC SSDの容量をユーザに通知することができる。
 図16は、TLC-MLC間再配置処理のフローチャートである。このTLC-MLC間再配置処理は、プロセッサ114と再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出されたTLC-MLC間ライト閾値に基づいて、全てのパリティグループ内の各ページをTLC PG又はMLC PGに再配置する。このとき再配置について未判定のページがあるか否かを判断する(S1601)。
 未判定のページがある場合(S1601:Y)、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503を参照して、この未判定の対象ページが所属するパリティグループのメディアタイプがTLCであるか否かを判断する(S1602)。メディアタイプがTLCである場合(S1602:Y)、再配置処理プログラム604Aは、対象ページのライト頻度がTLC-MLC間ライト閾値以上であるか否かを判断する(S1603)。
 対象ページのライト頻度がTLC-MLC間ライト閾値以上である場合(S1603:Y)、再配置処理プログラム604Aは、このページをTLC PGからMLC PGに移動する(S1604)。これに対し、対象ページのライト頻度がTLC-MLC間ライト閾値未満である場合(S1603:N)、再配置処理プログラム604Aは、何もせずにステップS1601に移行する。
 ステップS1602に戻り、メディアタイプがMLCである場合(S1602:N)、対象ページのライト頻度がTLC-MLC間ライト閾値未満であるか否かを判断する(S1605)。対象ページのライト頻度がTLC-MLC間ライト閾値未満である場合(S1605:Y)、再配置処理プログラム604Aは、このページをMLC PGからTLC PGに移動する(S1606)。
 これに対し、対象ページのライト頻度がTLC-MLC間ライト閾値以上である場合(S1605:N)、再配置処理プログラム604Aは、何もせずにステップS1601に移行する。再配置処理プログラム604Aは、全てのパリティグループ内の各ページについて判定を終えると、本処理を終了する。以上の処理により、TLC-MLC間でページを再配置して、TLC SSD(ドライブ112)の寿命を延ばすとともに、ビットコストを削減することができる。
 図17は、ライトリバランス処理のフローチャートである。このライトリバランス処理は、プロセッサ114と再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出されたライトリバランス用移動計画ページ数、ライト削減閾値及びライト追加閾値に基づいて、同一特性のSSDで構成されたパリティグループ間(TLC PG間又はMLC PG間)でページを再配置する。このとき再配置について未判定のページがあるか否かを判断する(S1701)。
 未判定のページがない場合には(S1701:N)、再配置処理プログラム604Aは、本処理を終了する。これに対し、未判定のページがある場合(S1701:Y)、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503を参照して、この未判定の対象ページが所属するパリティグループの移動元PG種別がライト削減PGであるか否かを判断する(S1702)。
 対象ページが所属するパリティグループの移動元PG種別がライト削減PGである場合(S1702:Y)、再配置処理プログラム604Aは、ページ毎モニタテーブル501のライトI/Oカウンタを参照して、この対象ページのライト頻度を取得する。そして取得したライト頻度がライト削減閾値以上であるか否かを判断する(S1703)。
 対象ページのライト頻度がライト削減閾値未満である場合(S1703:N)、再配置処理プログラム604Aは、ステップS1701に移行する。これに対し、対象ページのライト頻度がライト削減閾値以上である場合(S1703:Y)、再配置処理プログラム604Aは、この対象ページの移動先のパリティグループを決定する。
 移動先のパリティグループを決定する際、再配置処理プログラム604Aはパリティグループ毎再配置管理テーブル503を参照して、ライト追加PGのうち、ライトリバランス用の移動実績ページ数がライトリバランス用の移動計画ページ数未満であるパリティグループが存在するか否かを判断する(S1704)。
 ライト追加PGのうち、ライトリバランス用の移動実績ページ数がライトリバランス用の移動計画ページ数未満であるパリティグループが存在する場合(S1704:Y)、再配置処理プログラム604Aは、このパリティグループにライト負荷の高い対象ページを移動しても寿命を維持することができると判断して、このパリティグループを移動先PGとしてパリティグループ毎再配置管理テーブル503に登録し、対象ページをこのパリティグループに移動する(S1705)。
 これに対し、ライト追加PGのうち、ライトリバランス用の移動実績ページ数がライトリバランス用の移動計画ページ数未満であるパリティグループが存在しない場合(S1704:N)、再配置処理プログラム604Aは、この対象ページについては判定を終え、ステップS1701に移行する。
 ステップS1702に戻り、対象ページが所属するパリティグループの移動元PG種別がライト削減PGでない場合(S1702:N)、すなわち対象ページが所属するパリティグループの移動元PG種別がライト追加PGである場合、再配置処理プログラム604Aは、ページ毎モニタテーブル501のライトI/Oカウンタ欄702を参照して、この対象ページのライト頻度を取得する。そして取得したライト頻度がライト追加閾値未満であるか否かを判断する(S1706)。
 対象ページのライト頻度がライト追加閾値以上である場合には(S1706:N)、再配置処理プログラム604Aは、ステップS1701に移行する。これに対し、対象ページのライト頻度がライト追加閾値未満である場合(S1706:Y)、再配置処理プログラム604Aは、この対象ページの移動先のパリティグループを決定する。
 移動先のパリティグループを決定する際の処理は、上記のステップS1704及びS1705と同様であるため説明を省略する。以上の処理により、同一特性のSSDで構成された異なるパリティグループ間でページを再配置してライト負荷を分散し、寿命を平準化することができる。
 図18は、性能リバランス処理のフローチャートである。この性能リバランス処理は、プロセッサ114と再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 なお性能リバランス処理は、ライトリバランス処理(図17)で調整したライト頻度と同程度のリード頻度のページをライトリバランス処理で移動させた方向とは逆方向に移動する点で、ライトリバランス処理と異なり、他の基本的な処理内容は同様である。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出された性能リバランス用の移動計画ページ数、ライト削減閾値及びライト追加閾値に基づいて、同一特性のSSDで構成されたパリティグループ間(TLC PG間又はMLC PG間)でページを再配置する。このとき再配置について未判定のページがあるか否かを判断する(S1801)。
 未判定のページがない場合には(S1801:N)、再配置処理プログラム604Aは、本処理を終了する。これに対し、未判定のページがある場合(S1801:Y)、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503を参照して、この未判定の対象ページが所属するパリティグループの移動元PG種別がライト削減PGであるか否かを判断する(S1802)。
 対象ページが所属するパリティグループの移動元PG種別がライト削減PGである場合(S1802:Y)、再配置処理プログラム604Aは、ページ毎モニタテーブル501のリードI/Oカウンタを参照して、この対象ページのリード頻度を取得する。そして取得したリード頻度がリード追加閾値未満であるか否かを判断する(S1803)。
 対象ページのリード頻度がリード追加閾値以上である場合には(S1803:N)、再配置処理プログラム604Aは、ステップS1801に移行する。これに対し、対象ページのリード頻度がリード追加閾値未満である場合(S1803:Y)、再配置処理プログラム604Aは、この対象ページの移動先のパリティグループを決定する。
 移動先のパリティグループを決定する際、再配置処理プログラム604Aはパリティグループ毎再配置管理テーブル503を参照して、ライト追加PGのうち、性能リバランス用の移動実績ページ数が性能リバランス用の移動計画ページ数未満であるパリティグループが存在するか否かを判断する(S1804)。
 ライト追加PGのうち、性能リバランス用の移動実績ページ数が性能リバランス用の移動計画ページ数未満であるパリティグループが存在する場合(S1804:Y)、再配置処理プログラム604Aは、このパリティグループにリード負荷の低い対象ページを移動させても高負荷にならないと判断して、このパリティグループを移動先PGとしてパリティグループ毎再配置管理テーブル503に登録し、対象ページをこのパリティグループに移動する(S1805)。
 これに対し、ライト追加PGのうち、性能リバランス用の移動実績ページ数が性能リバランス用の移動計画ページ数未満であるパリティグループが存在しない場合(S1804:N)、再配置処理プログラム604Aは、この対象ページについては判定を終え、ステップS1801に移行する。
 ステップS1802に戻り、対象ページが所属するパリティグループの移動元PG種別がライト削減PGでない場合(S1802:N)、すなわち対象ページが所属するパリティグループの移動元PG種別がライト追加PGである場合、再配置処理プログラム604Aは、ページ毎モニタテーブル501のリードI/Oカウンタ欄703を参照して、この対象ページのリード頻度を取得する。そして取得したリード頻度がリード削減閾値以上であるか否かを判断する(S1806)。
 対象ページのリード頻度がリード削減閾値未満である場合には(S1806:N)、再配置処理プログラム604Aは、ステップS1801に移行する。これに対し、対象ページのリード頻度がリード削減閾値以上である場合(S1806:Y)、再配置処理プログラム604Aは、この対象ページの移動先のパリティグループを決定する。
 移動先のパリティグループを決定する際の処理は、上記のステップS1804及びS1805と同様であるため説明を省略する。以上の処理により、同一特性のSSDで構成された異なるパリティグループ間でページを再配置してリード負荷を分散し、I/O頻度を平準化することができる。
 図19は、新規割り当て決定処理のフローチャートを示す。この新規割り当て決定処理は、ホスト101から新規の仮想ページに対するライト要求を受領したことを契機として、プロセッサ114と新規割り当て決定処理プログラム605との協働により実行される。説明の便宜上、処理主体を新規割り当て決定処理プログラム605として説明する。
 まず新規割り当て決定処理プログラム605は、プール毎再配置管理テーブル504を参照して、新規ページの割り当て対象の仮想ボリューム202に記憶領域を提供するプール204のワークロードタイプが「Unknown」であるか否かを判断する(S1901)。
 プール204のワークロードタイプが「Unknown」ではない場合(S1901:N)、新規割り当て決定処理プログラム605は、更に「Write intensive」であるか否かを判断する(S1906)。ワークロードタイプが「Write intensive」である場合(1906:Y)、新規割り当て決定処理プログラム605は、新規ページに対するライト頻度は多いと予測して、書き込み上限回数が比較的多いMLC PGを新規ページに対する実ページの割り当て先のパリティグループに設定する(S1907)。
 これに対し、ワークロードタイプが「Read intensive」である場合(S1906:N)、新規割り当て決定処理プログラム605は、新規ページに対するライト頻度は少ないものと予測して、書き込み上限回数が少ないTLC PGを新規ページに対する実ページの割り当て先のパリティグループに設定する(S1904)。
 ステップS1901に戻り、ワークロードタイプが「Unknown」である場合(S1901:Y)、新規割り当て決定処理プログラム605は、ホスト101からのI/O特性が分からないため、新規ページに対する将来のライト頻度を予測して、割り当て先を決定する。まずは新規ページの予測ライト頻度を算出する(S1902)。
 例えば新規割り当て決定処理プログラム605は、ホスト101からの1ページ当たりの平均ライト頻度をモニタ情報として採取して見積もることにより、予測ライト頻度を算出する。
 次いで新規割り当て決定処理プログラム605は、プール毎再配置管理テーブル504を参照して、予測ライト頻度が新規ライト閾値未満であるか否かを判断する(S1903)。予測ライト頻度が新規ライト閾値未満の場合(S1903:Y)、新規割り当て決定処理プログラム605は、書き込み上限回数の少ないTLC PGを割り当て先のパリティグループに設定する(S1904)。
 これに対し、予測ライト頻度が新規ライト閾値以上の場合(S1903:N)、新規割り当て決定処理プログラム605は、書き込み上限回数の多いMLC PGを割り当て先のパリティグループに設定する(S1907)。
 次いで新規割り当て決定処理プログラム605は、割り当て先に設定した特性のパリティグループについて、新規ページの割り当てが可能か否かを判断するため、パリティグループ毎モニタテーブル502及びパリティグループ毎再配置管理テーブル503を参照して、新規ライト可能量が新規ライトI/Oカウンタよりも大きいか否かを割り当て先に設定した特性のパリティグループごとに判断する(S1905)。
 新規ライト可能量が新規ライトI/Oカウンタよりも大きいパリティグループが存在する場合(S1905:Y)、新規割り当て決定処理プログラム605は、このパリティグループから新規ページを割り当てるために、ページ毎モニタテーブル501を参照して、このパリティグループにおける何れかのページについて新規ライトフラグを設定し(S1909)、本処理を終了する。
 これに対し、新規ライト可能量が新規ライトI/Oカウンタよりも大きいパリティグループが存在しない場合(S1905:N)、新規割り当て決定処理プログラム605は、寿命を維持するにあたり新規に許容可能なライト頻度を超えているため、ユーザに推奨容量を通知する(S1908)。
 そして新規割り当て決定処理プログラム605は、判断対象のパリティグループから新規ページを割り当てるために、何れかのパリティグループにおける何れかのページについて新規ライトフラグを設定し(S1909)、本処理を終了する。
 以上の処理により、ホスト101から新規ページにデータを書き込むライト要求を受領した場合、新規ページに対するライト頻度を考慮して、寿命特性に応じたSSDにより構成されたパリティグループから新規ページに対して実ページを割り当てることができる。
(1-7)推奨容量算出方法の概念構成
 図20は、ホスト101からのライト頻度に対して寿命を保証するにあたり推奨される書き込み上限回数の異なる記憶装置の容量比率の算出方法の考え方を示す。図20は、プール204内の各ページ207(又は仮想ボリューム202内の各ページ201)のライト頻度の分布を表す。グラフ2007は、左からライト頻度が多い順番に全ページ207を並べたときの各ページ207のライト頻度を示す。縦軸はライト頻度であり、横軸はページ数である。
 TLC-MLC間ライト閾値2005は、TLC PGとMLC PGのどちらにページを配置するのかを決める閾値であり、TLC-MLC間ライト閾値2005とグラフ2007との交点がTLCとMLCの推奨される容量比率(2006)となる。TLC-MLC間ライト閾値2005は、ユーザが指定してもよいし、ストレージシステム104が算出してもよい。
 ストレージシステム104が算出する場合、推奨容量比率は、顧客要件のライト頻度(=Whost)、プール204(又は仮想ボリューム202)容量(=C)及び各SSDの寿命を保証するにあたり許容できるライト頻度の相関グラフ2001、2002を利用し、下記式9を計算して算出することができる。
 ここでグラフ2001は、寿命を保証するにあたり単位容量当たりに許容できるライト頻度(=Wtlc)を傾きとしたTLC SSDの容量と許容できるライト頻度との相関を表す。またグラフ2002は、寿命を保証するにあたり単位容量当たりに許容できるライト頻度(=Wmlc)を傾きとしたMLC SSDの容量と許容できるライト頻度との相関を表す。
Figure JPOXMLDOC01-appb-M000009
 以上により、顧客要件ライト頻度とプール容量とを満たすTLC SSDとMLC SSDとの容量比率を算出することができる。
(1-8)画面構成
 図21は、プール毎にパラメータを設定する際の画面構成の一例を示す。プール単位のGUI画面2101は、設定対象のプール204を特定できるプール番号を表示する領域2102と、寿命制御再配置のON/OFFを設定する領域2103と、寿命制御再配置をONにした場合の詳細設定のON/OFFを設定する領域2104と、詳細設定の内容を設定する領域2105とから構成される。本画面で設定した情報は、プール毎再配置管理テーブル504の各欄に格納される。
 寿命制御再配置領域2103の設定がOFFの場合、閾値決定処理プログラム604が閾値決定処理を実行することはなく、よって再配置処理プログラム604Aがページの再配置を実行することはないが、寿命制御の精度の低下を防ぐため、モニタ情報は寿命制御再配置のON/OFFにかかわらず採取される。
 寿命制御再配置領域2103の設定がONの場合、上記説明してきた通りページの再配置が行われる。この場合、詳細設定領域2104の項目設定領域2105が入力可能に表示される。詳細設定領域2104の設定がOFFの場合、項目設定領域2105の各種パラメータには、デフォルト値又はストレージシステム104内で自動的に算出された値が設定される。
 再配置周期領域2106には、寿命制御のための再配置を実行する周期が設定される。この周期はユーザが指定することができる。例えばユーザが「7days」と指定すると、7日周期でページの再配置が実行される。
 ワークロードタイプ領域2107には、ホスト101からのI/O特性が設定される。このI/O特性はユーザが指定することができる。ホスト101からのI/O特性を予め把握している場合は、ユーザがI/O特性を指定することにより、新規割り当て先のSSDの特性を明示的に指定することができる。
 具体的には「Write intensive」が指定された場合、ホスト101のI/O特性は、ライト高負荷であるため、書き込み上限回数の比較的多いMLC PGから新規ページに対して実ページの割り当てが行われる。
 また「Read intensive」が指定された場合、ホスト101のI/O特性は、ライト低負荷であるため、書き込み上限回数の少ないTLC PGから新規ページに対して実ページの割り当てが行われる。
 またホスト101のI/O特性をユーザが把握していない場合、ユーザは「Unknown」を指定する。この場合、ストレージシステム104が新規ページに対して実ページの割り当て先のパリティグループを自動的に決定することになる。
 同種ドライブ間新規割り当てポリシ領域2108には、新規ページに対する実ページの割り当て時にTLC PG又はMLC PGのうち、何れの特性のパリティグループからページを割り当てるかを決定するポリシが設定される。
 例えばユーザにより「ラウンドロビン」が指定された場合、各パリティグループから均等にページが割り当てられる。また「容量優先」が指定された場合、容量が少なパリティグループから優先してページが割り当てられる。また「寿命優先」が指定された場合、寿命が長いパリティグループから優先してページが割り当てられる。
 バッファサイズ領域2109及び2110には、特性がMLC PGであるパリティグループの容量に対するバッファの割合が設定される。新規割り当て用領域2109には、特性がMLC PGであるパリティグループから新規ページを割り当てる際に使用するバッファが設定される。新規割り当て時にMLC PGから割り当てられるはずのライト高負荷なページがMLC PGの残容量が足りないことによってTLC PGから割り当てられることを防ぐ効果がある。
 新規割り当てバッファは、再配置周期毎に確保しなおされる。このため、新規割り当てバッファは、周期内に予想されるホスト101から新規ページに対して書き込まれるデータ量に基づいて最適なサイズを見積もることができる。
 再配置バッファ用領域2110には、ページの再配置時に使用されるバッファが設定される。再配置バッファにより、再配置時に単位時間当たりに移動できるデータサイズを調整する。このため、再配置バッファを多くとることにより、再配置時のスループットを増やす効果がある。
 図22は、ストレージシステム104がユーザに通知する警告画面の画面構成の一例を示す。警告画面は、ホスト101からのライト頻度が多く、現在の構成では目標期間よりもSSDの寿命が短くなること又は寿命を保証するにあたり過剰にSSDを搭載していることをユーザに通知することができる。
 画面を表示する契機は、周期的に実行されるページ再配置処理の完了後にストレージシステム104が自動で表示するとしてもよいし、ユーザがストレージシステム104に対する操作により、任意のタイミングで表示させてもよい。後者の場合、任意の操作が行われたタイミングでのモニタ情報に基づいて推奨容量が算出される。
 プール単位のGUI画面2201は、設定対象のプール204を特定できるプール番号を表示する領域2202と、警告の内容を通知する領域2203から構成される。警告の内容を通知する領域2203は、現在のドライブ構成から追加が必要又は削減が可能なTLC又はMLCの容量を通知する領域2204及び現在のホスト101からのI/O要求の情報から推奨されるMLCとTLCの容量を通知する領域2205から構成される。なお通知する容量の情報は、TLCとMLCの容量の比率で表してもよい。
(1-9)第1の実施の形態による効果
 以上のように第1の実施の形態におけるストレージシステム104によれば、TLC-MLC間でページを再配置することにより、寿命の異なるSSDから構成されたパリティグループ間でライト頻度を調整することができる。またライトリバランス処理を行うことにより、同一特性のSSDで構成されたパリティグループ間でライト頻度を調整することができる。よって寿命劣化の激しいSSDに対するライト頻度のページを寿命劣化の緩やかなSSDに移動して、SSDの保守交換回数を削減することができる。またストレージシステム104のコストを削減することができる。
(2)第2の実施の形態
 第2の実施の形態は、記憶装置として半導体メモリ(SSD)だけでなく、ハードディスクドライブ(HDD)を搭載するストレージシステムにおいて、記憶装置(SSD及びHDD)を性能に応じた階層に分類し、ホストからのアクセス頻度に応じて適切な階層の記憶装置にデータを配置する階層制御を行う点で、第1の実施の形態と異なる。
(2-1)計算機システムの全体構成
 図23は、第2の実施の形態における計算機システム1Aの全体構成を示す。計算機システム1Aは、SAS(Serial Attached SCSI)規格のHDD(ドライブ2301)を搭載している点及びSSD(ドライブ111及び112)をティア1に設定し、SAS規格のHDD(ドライブ2301)をティア2に設定するとともに、各ページのI/O頻度に応じてティア間でデータを再配置する点で、第1の実施の形態と異なる。
 例えばティア1からはI/O頻度が100[IOPS]のページを割り当てるように設定されており、ティア2からはI/O頻度が10[IOPS]のページを割り当てるように設定されているとする。一方でI/O頻度が50[IOPS]のページがティア2から割り当てられており、I/O頻度が20[IOPS]のページがティア1から割り当てられているとする。
 この場合、ストレージシステム104Aは全体として10(ティア2の上限IOPH)+20=30[IOPS]の性能しか発揮することができない。そこでI/O頻度が50[IOPH]のページをティア2からティア1に移動(再配置)すると、ストレージシステム104Aは全体として50+20=70[IOPS]の性能を発揮することができるようになる。
(2-2)ストレージシステムの論理構成
 図24は、ストレージシステム104Aの論理構成を示す。ストレージシステム104Aは、プールボリューム206A~206CがMLC SSD又はTLC SSDから構成され、プールボリューム206D及び206EがSAS HDDから構成されており、各プールボリューム206A~206Eがティア1又は2に分類されている点で、第1の実施の形態と異なる。
 そして第2の実施の形態のストレージシステム104Aは、第1の実施の形態において説明してきたページの再配置に加えて、SSDから構成されるティア1においてホスト101からのライト負荷が高くなり、SSDの寿命を保証することができなくなった場合、ライト負荷の高い例えばページ207Dをティア2に移動するライトデモーション処理を実行する。これによりSSDの寿命劣化を防ぐことができる。
(2-3)ページ配置処理の概念構成
 図25は、ライトデモーション処理によるページ再配置処理の概念構成を示す。ここではMLC PG205A又はTLC PG205Bから構成されるティア1と、SAS HDDで構成されたパリティグループ(以下、SAS PGと呼ぶ)205Cから構成されるティア2との間で、ページ301を再配置する。ライトデモーション処理は、閾値決定処理時にティア1内でのページ再配置だけではSSDの寿命を維持することができないと判断された場合に実行される。
 具体的には、閾値決定処理においてライトリバランスによる移動計画ページ数を算出した後、ライト削減PGのライト削減要求量を満たすだけのページを移動することができなかった場合、移動することができなかった分のライト頻度に基づいて、ライトデモーション処理による移動計画ページ数を算出する。そしてライトリバランス実行時に、ライトデモーション処理による移動計画ページ数分だけMLC PG205A又はTLC PG205BからSAS PG205Cにライトデモーション閾値2501以上のライト頻度のページを移動する。
(2-4)テーブル構成
 図26は、第2の実施の形態におけるパリティグループ毎再配置管理テーブル503Aの論理構成を示す。パリティグループ毎再配置管理テーブル503Aは、パリティグループ毎再配置管理テーブル503(図9)の各欄に加えて、ライトデモーション閾値欄2601、ライトデモーション用移動計画ページ数欄2602、ライトデモーション用移動実績ページ数欄2603及びティアレベル欄2604から構成される。
 ライトデモーション閾値欄2601には、ライトデモーション処理対象のページを決定するための閾値が格納され、ライトデモーション用移動計画ページ数欄2602には、ライトデモーション処理により移動するページ数が格納される。またライトデモーション用移動実績ページ数欄2603には、ライトデモーション処理により移動したページ数が格納される。ティアレベル欄2604には、パリティグループが所属する階層順序(例えばティア1、ティア2、ティア3)が格納される。なおここでは階層順序の値が小さいティアほど高性能のドライブで構成されている。
 図27は、第2の実施の形態におけるプール毎再配置管理テーブル504Aの論理構成を示す。プール毎再配置管理テーブル504Aは、プール毎再配置管理テーブル504(図10)の各欄に加えて、ティア間I/O閾値欄2701から構成される。ティア間I/O閾値欄2701には、ページをどの階層に配置するのかを決定するための閾値が格納される。
(2-5)フローチャート
 図28は、第2の実施の形態における再配置処理のフローチャートを示す。この再配置処理は、プロセッサ114と閾値決定処理プログラム604により呼び出される再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 なお前提として閾値決定処理プログラム604は、閾値決定処理(図14)においてティア間I/O閾値及びライトデモーション用移動計画ページ数を算出し、各種閾値をパリティグループ毎再配置管理テーブル503A及びプール毎再配置管理テーブル504Aにそれぞれ格納しているものとする。
 まず再配置処理プログラム604Aは、ティア間再配置処理を実行する(S2801)。ここでは再配置処理プログラム604Aは、プール毎再配置管理テーブル504Aのティア間I/O閾値欄2701を参照して、対象ページを配置するティアを決定する。
 その後再配置処理プログラム604Aは、第1の実施の形態における再配置処理(図15)と同様にTLC-MLC間再配置処理を実行し(S1501)、次いでライトリバランス処理を実行する(S1502)。ライトリバランス処理を実行した後、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503Aを参照して、ライトデモーション用移動計画ページ数が0であるか否かを判断する(S2802)。
 ライトデモーション用移動計画ページ数が0でない場合(S2802:N)、再配置処理プログラム604Aは、ライトリバランス処理を実行しただけではライト頻度を調整しきれなかったため、ライトデモーション処理を実行する(S2803)。その後再配置処理プログラム604Aは、性能リバランスを実行して(S1504)、本処理を終了する。
 これに対し、ライトデモーション用移動計画ページ数が0である場合(S2802:Y)、再配置処理プログラム604Aは、ライトデモーション処理を実行する必要はないため、性能リバランスを実行して(S1504)、本処理を終了する。以上の処理により、ホスト101からのライト頻度が過多であるためティア1を構成するSSDの寿命を維持することができない場合、ティア2にライト負荷が高いページを移動して、ティア1内のSSDの寿命を維持することができる。
 図29は、ティア間再配置処理のフローチャートを示す。このティア間再配置処理は、プロセッサ114と再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出されたティア間I/O閾値に基づいて、全てのパリティグループ内の各ページをティア1又は2に再配置する。このとき再配置について未判定のページがあるか否かを判断する(S2901)。
 未判定のページがある場合(S2901:Y)、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503Aを参照して、この未判定の対象ページが所属するティアがティア2であるか否かを判断する(S2902)。
 対象ページが所属するティアがティア2である場合(S2902:Y)、再配置処理プログラム604Aは、プール毎再配置管理テーブル504Aを参照して、対象ページのI/O頻度がティア間I/O閾値以上であるか否かを判断する(S2903)。
 対象ページのI/O頻度がティア間I/O閾値以上である場合(S2903:Y)、再配置処理プログラム604Aは、対象ページをティア2からティア1に移動する(S2904)。これに対し、対象ページのI/O頻度がティア間I/O頻度未満である場合(S2903:N)、再配置処理プログラム604Aは、何もせずにステップS2901に移行する。
 ステップS2902に戻り、対象ページが所属するティアがティア1の場合(S2902:N)、再配置処理プログラム604Aは、プール毎再配置管理テーブル504Aを参照して、対象ページのI/O頻度がティア間I/O閾値未満であるか否かを判断する(S2905)。
 対象ページのI/O頻度がティア間I/O閾値未満である場合(S2905:Y)、再配置処理プログラム604Aは、対象ページをティア1からティア2に移動する(S2906)。これに対し、対象ページのI/O頻度がティア間I/O頻度以上である場合(S2905:N)、再配置処理プログラム604Aは、何もせずにステップS2901に移行する。
 再配置処理プログラム604Aは、全てのパリティグループ内の各ページについて判定を終えると、本処理を終了する。以上の処理により、ホスト101からのI/O頻度及び各ティアの性能に応じて、各ティアにページを再配置することができる。
 図30は、ライトデモーション処理のフローチャートを示す。このライトデモーション処理は、プロセッサ114と再配置処理プログラム604Aとの協働により実行される。説明の便宜上、処理主体を再配置処理プログラム604Aとして説明する。
 まず再配置処理プログラム604Aは、閾値決定処理プログラム604により算出されたライトデモーション用移動計画ページ数、ライト削減閾値及びライトデモーション閾値に基づいて、異なるティア間でページを再配置する。このとき再配置について未判定のページがあるか否かを判断する(S3001)。
 未判定のページがない場合(S3001:N)、再配置処理プログラム604Aは本処理を終了する。これに対し未判定のページがある場合(S3001:Y)、再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503Aを参照して、この未判定の対象ページが所属するパリティグループの移動元PG種別がライト削減PGであるか否かを判断する(S3002)。
 対象ページが所属するパリティグループの移動元PG種別がライト削減PGでない場合(S3002:N)、すなわちライト追加PGである場合、再配置処理プログラム604Aは対象ページに対してライトデモーション処理を実行する必要はないと判断して、ステップS3001に移行する。
 これに対し、対象ページが所属するパリティグループの移動元PG種別がライト削減PGである場合(S3002:Y)、再配置処理プログラム604Aは、ページ毎モニタテーブル501のライトI/Oカウンタ欄702を参照して、この対象ページのライト頻度を取得する。
 そして再配置処理プログラム604Aは、パリティグループ毎再配置管理テーブル503Aのライト削減閾値欄905及びライトデモーション閾値欄2601を参照して、ライト削減閾値及びライトデモーション閾値を取得する。
 そして取得した対象ページのライト頻度がライトデモーション閾値以上であり、かつ、ライト削減閾値未満であるか否かを判断する(S3003)。対象ページのライト頻度がライトデモーション閾値以上であり、かつ、ライト削減閾値未満でない場合(S3003:N)、再配置処理プログラム604AはステップS3001に移行する。
 これに対し、対象ページのライト頻度がライトデモーション閾値以上であり、かつ、ライト削減閾値未満である場合(S3003:Y)、再配置処理プログラム604Aは、対象ページが所属するパリティグループのライトデモーション用移動実績ページ数がライトデモーション用移動計画ページ数未満であるか否かを判断する(S3004)。
 対象ページが所属するパリティグループのライトデモーション用移動実績ページ数がライトデモーション用移動計画ページ数未満でない場合(S3004:N)、再配置処理プログラム604Aは、ステップS3001に移行する。
 これに対し、対象ページが所属するパリティグループのライトデモーション用移動実績ページ数がライトデモーション用移動計画ページ数未満である場合(S3004:Y)、再配置処理プログラム604Aは、対象ページをティア1からティア2に移動する(S3005)。再配置処理プログラム604Aは、未判定の全てのページについて判定を終えると、本処理を終了する。
 図31は、新規割り当て決定処理のフローチャートを示す。この新規割り当て決定処理は、ホスト101から新規ページに対するライト要求を受領したことを契機として、プロセッサ114と新規割り当て決定処理プログラム605との協働により実行される。説明の便宜上、処理主体を新規割り当て決定処理プログラム605として説明する。
 ステップS1901~S1905までは、第1の実施の形態における新規割り当て決定処理(図19)と同様であるため、ここでの説明は省略する。ステップS1905において、新規割り当て決定処理プログラム605は、割り当て先に設定した特性のティア1のパリティグループについて、新規ライト可能量が新規ライトI/Oカウンタよりも大きいか否かを判断する(S1905)。
 新規ライト可能量が新規ライトI/Oカウンタよりも大きいパリティグループが存在しない場合(S1905:N)、再配置処理プログラム604Aは、ティア1からこれ以上ページを割り当てると、SSDの寿命を維持することができなくなると判断して、新規ページに対する実ページの割り当て先をティア2に設定する(S3101)。
 ステップS1909は、第1の実施の形態における新規割り当て決定処理(図19)と同様であるため説明は省略する。以上の処理により、寿命維持のために必要な分のライト頻度をティア1から削減することができる。なお新規割り当て時にホスト101からのライト要求がシーケンシャルライトである場合、新規割り当て決定処理プログラムを実行せずに、ティア2からページを割り当てるようにしてもよい。
(2-6)第2の実施の形態による効果
 以上のように第2の実施の形態におけるストレージシステム104Aによれば、ホスト101からティア1に対するライト頻度をティア2に移動することにより、一定期間当たりに許容できるライト頻度を超えたSSDの寿命劣化を緩やかにすることができる。よってSSDの保守交換回数を削減でき、ストレージシステム104Aのコストを削減することができる。
(3)第3の実施の形態
 第3の実施の形態では、第1の実施の形態において説明したライト追加可能量及びライト削減要求量(図8)を算出する手法について説明する。第1の実施の形態においては、SSDからライト追加可能率及びライト削減要求率を採取し、これらを用いて上記式1及び2を計算することによりライト追加可能量及びライト削減要求量を算出するとしたが、ライト追加可能率及びライト削減要求率をSSDから直接採取することができない場合、以下の手法を用いてライト追加可能量及びライト削減要求量を算出することができる。
 図32は、SSDの寿命情報として磨耗指標(Wear out Indicator)を取得し、磨耗指標からライト追加可能量及びライト削減要求量を算出するための考え方を示す。グラフの縦軸は、SSDの磨耗指標(寿命率)3201であり、横軸は、SSDを使用しはじめてからの経過年数(経過時間率)3202である。
 寿命率3201は、SSDの消去回数から算出される磨耗指標を意味しており、一般的にS.M.A.R.T.情報として取得できることが知られている。磨耗指標は、値が100(=L)に達したとき、SSDの寿命を意味し、保守交換が必要となる。経過時間率は、目標寿命期間(例えば、3年や5年)を100%(=T)とした経過時間の割合を意味する。
 直線3215は、区間Δt1(=T-T)の寿命率の変化ΔL1(=L-L)を示しており、直線の傾きは、区間Δt1のライト頻度(=W)を表している。直線3215のライト頻度が継続すると、目標寿命期間を達成する前にSSDの寿命が尽きる。
 このため、直線3216で示すライト頻度(=W)までライト頻度を削減し、区間Δt2(=T-T)の間の寿命率の増加量がΔL(=L-L)となるように寿命劣化の速度を調整する。また一般的にSSDに対するライト頻度は、WA(Write Amplification)により、ホスト101がSSDに対して発行したライト要求の回数よりもSSD内部のフラッシュチップに対するライト回数の方が大きくなることが知られている。SSDのWA値は、(フラッシュチップに対するライト回数÷ホスト101からのライト要求の回数)により算出される。
 以上の数値を用いてストレージシステム104は、寿命を維持するために必要なライト削減要求量を算出する。ライト削減要求量は、下記式10を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000010
 またライト頻度が目標寿命期間を達成するにあたり余裕がある場合、ストレージシステム104は、ライト追加可能量を算出する。ライト追加可能量は、下記式11を計算して算出することができる。
Figure JPOXMLDOC01-appb-M000011
 以上により、一般的に取得可能なSSDの寿命情報からSSD PGに対するライト追加可能量及びライト削減要求量(図8)を算出することができる。そして算出したライト追加可能量及びライト削減要求量に基づいてページを再配置することにより、ストレージシステム104のコストを削減することができる。
 なお上記説明してきた実施の形態においては、「書き込み」上限回数の少ないSSDのライト回数を削減するようにページを再配置することで、書き込み上限回数の少ないSSDの寿命を延ばす構成について説明してきたが、「書き換え」上限回数の少ないSSDについても上記構成を採用することにより、同様に寿命を延ばすことができる。SSDにおける書き換えとは、複数ページから構成されるブロックを一旦消去し、その後ブロック内の各ページにデータを書き込む一連の処理をいう。よって書き換えを1回行うと、消去と書き込みとを両方行うことになる。すなわち書き換え上限回数の少ないSSDと、書き込み上限回数の少ないSSDとを同様に取り扱うことで、書き換え上限回数の少ないSSDの寿命を延ばすことができる。
 また上記説明してきた実施の形態においては、書き込み上限回数の少ないSSDの「ライト頻度」(ライト回数)を削減するようにページを再配置することで、書き込み上限回数の少ないSSDの寿命を延ばす構成について説明してきたが、ライトする「データ量」を削減するようにページを再配置することでも、同様に書き込み上限回数の少ないSSDの寿命を延ばすことができる。ライトするデータ量が大きい場合には複数ページにデータをライトする必要があり、よってライト回数も増加するためである。
1、1A            計算機システム
104、104A        ストレージシステム
114             プロセッサ
111             MLC SSD
112             TLC SSD
2301            SAS HDD
202             仮想ボリューム
201、301、401、207 ページ
206             プールボリューム
205             パリティグループ
302             TLC-MLC間ライト閾値

Claims (11)

  1.  第1の記憶装置と、
     前記第1の記憶装置よりも書き込み上限回数が少なく、かつ、単位面積当たりの記憶容量が多い第2の記憶装置と、
     ホストに提供する仮想ボリュームに対して前記第1の記憶装置及び前記第2の記憶装置から記憶領域を割り当てるプロセッサとを備え、
     前記プロセッサは、
     前記仮想ボリュームに対して前記第2の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が予め定められたライト閾値よりも多い記憶領域に格納されているデータを前記第2の記憶装置の記憶領域から前記第1の記憶装置の記憶領域に再配置する
     ことを特徴とするストレージシステム。
  2.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が前記ライト閾値以下である記憶領域に格納されているデータを前記第1の記憶装置の記憶領域から前記第2の記憶装置の記憶領域に再配置する
     ことを特徴とする請求項1に記載のストレージシステム。
  3.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の記憶装置又は前記第2の記憶装置のうち、何れかの記憶装置から新規に記憶領域を割り当てる場合、新規に割り当てる記憶領域に対する前記ホストからのライト頻度を予測し、予測したライト頻度が予め定められた新規ライト閾値以上である場合、前記第1の記憶装置から新規に記憶領域を割り当てる
     ことを特徴とする請求項1に記載のストレージシステム。
  4.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の記憶装置又は前記第2の記憶装置のうち、何れかの記憶装置から新規に記憶領域を割り当てる場合、新規に割り当てる記憶領域に対する前記ホストからのライト頻度を予測し、予測したライト頻度が予め定められた新規ライト閾値よりも少ない場合、前記第2の記憶装置から新規に記憶領域を割り当てる
     ことを特徴とする請求項1に記載のストレージシステム。
  5.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の記憶装置又は前記第2の記憶装置のうち、何れかの記憶装置から新規に記憶領域を割り当てる場合、予め定められたワークロードタイプに基づいて、前記第1の記憶装置又は前記第2の記憶装置のうち、何れかの記憶装置から新規に記憶領域を割り当てる
     ことを特徴とする請求項1に記載のストレージシステム。
  6.  前記プロセッサは、
     前記第1の記憶装置の書き込み上限回数と、前記第2の記憶装置の書き込み上限回数とに基づいて、前記ライト閾値を算出する
     ことを特徴とする請求項1に記載のストレージシステム。
  7.  前記プロセッサは、
     前記ホストからのライト頻度と、前記ライト閾値とに基づいて、寿命を維持するために必要な前記第1の記憶装置の推奨容量及び前記第2の記憶装置の推奨容量を通知する
     ことを特徴とする請求項1に記載のストレージシステム。
  8.  書き込み上限回数に制限のない第3の記憶装置を備え、
     前記プロセッサは、
     前記第1の記憶装置及び前記第2の記憶装置から提供される記憶領域を第1の階層に設定し、前記第3の記憶装置から提供される記憶領域を第2の階層に設定し、
     前記仮想ボリュームに対して前記第2の階層から割り当てられている記憶領域のうち、前記ホストからのライト頻度及びリード頻度を合計したI/O頻度が予め定められたティア間I/O閾値以上である記憶領域に格納されているデータを前記第2の階層の記憶領域から前記第1の階層の記憶領域に再配置し、
     前記仮想ボリュームに対して前記第1の階層から割り当てられている記憶領域であって、かつ、前記第2の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が前記ライト閾値よりも多い記憶領域に格納されているデータを前記第2の記憶装置の記憶領域から前記第1の記憶装置の記憶領域に再配置する
     ことを特徴とする請求項1に記載のストレージシステム。
  9.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の階層から割り当てられている記憶領域であって、かつ、前記第1の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が前記ライト閾値以下である記憶領域に格納されているデータを前記第1の記憶装置の記憶領域から前記第2の記憶装置の記憶領域に再配置する
     ことを特徴とする請求項8に記載のストレージシステム。
  10.  前記プロセッサは、
     前記仮想ボリュームに対して前記第1の階層から割り当てられている記憶領域のうち、前記ホストからのライト頻度が寿命維持のために予め定められたライトデモーション閾値以上である記憶領域に格納されたデータを前記第2の階層の記憶領域に再配置する
     ことを特徴とする請求項8に記載のストレージシステム。
  11.  第1の記憶装置と、
     前記第1の記憶装置よりも書き込み上限回数が少なく、かつ、単位面積当たりの記憶容量が多い第2の記憶装置と、
     ホストに提供する仮想ボリュームに対して前記第1の記憶装置及び前記第2の記憶装置から記憶領域を割り当てるプロセッサとを備えたストレージシステムのデータ制御方法であって、
     前記プロセッサが、
     前記仮想ボリュームに対して前記第2の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が予め定められたライト閾値よりも多い記憶領域に格納されているデータを前記第2の記憶装置の記憶領域から前記第1の記憶装置の記憶領域に再配置する第1のステップと、
     前記仮想ボリュームに対して前記第1の記憶装置から割り当てられている記憶領域のうち、前記ホストからのライト頻度が前記ライト閾値以下である記憶領域に格納されているデータを前記第1の記憶装置の記憶領域から前記第2の記憶装置の記憶領域に再配置する第2のステップとを備える
     ことを特徴とするデータ制御方法。
PCT/JP2015/061165 2015-04-09 2015-04-09 ストレージシステム及びデータ制御方法 WO2016163016A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2017511430A JP6510635B2 (ja) 2015-04-09 2015-04-09 ストレージシステム及びデータ制御方法
US15/554,537 US10452302B2 (en) 2015-04-09 2015-04-09 Storage system and data control method
CN201580077883.9A CN107408017B (zh) 2015-04-09 2015-04-09 存储系统和数据控制方法
CN202010541312.9A CN111736773A (zh) 2015-04-09 2015-04-09 存储系统和数据控制方法
PCT/JP2015/061165 WO2016163016A1 (ja) 2015-04-09 2015-04-09 ストレージシステム及びデータ制御方法
US16/594,762 US11150829B2 (en) 2015-04-09 2019-10-07 Storage system and data control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/061165 WO2016163016A1 (ja) 2015-04-09 2015-04-09 ストレージシステム及びデータ制御方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US15/554,537 A-371-Of-International US10452302B2 (en) 2015-04-09 2015-04-09 Storage system and data control method
US16/594,762 Continuation US11150829B2 (en) 2015-04-09 2019-10-07 Storage system and data control method

Publications (1)

Publication Number Publication Date
WO2016163016A1 true WO2016163016A1 (ja) 2016-10-13

Family

ID=57073093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/061165 WO2016163016A1 (ja) 2015-04-09 2015-04-09 ストレージシステム及びデータ制御方法

Country Status (4)

Country Link
US (2) US10452302B2 (ja)
JP (1) JP6510635B2 (ja)
CN (2) CN107408017B (ja)
WO (1) WO2016163016A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018193556A1 (ja) * 2017-04-19 2018-10-25 株式会社日立製作所 記憶ドライブの環境温度の制御方法
JP2019086974A (ja) * 2017-11-06 2019-06-06 株式会社日立製作所 ストレージシステム及びその制御方法
US10884630B2 (en) 2017-04-13 2021-01-05 Hitachi, Ltd. Storage system
JP2021152715A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 ストレージシステム及びストレージシステムのssdの交換方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10924113B2 (en) * 2017-08-17 2021-02-16 Western Digital Technologies, Inc. Dynamic calibration of frequency and power storage interface
CN108255433B (zh) * 2018-01-12 2021-12-07 珠海极海半导体有限公司 Flash存储器、Flash存储器的文件管理方法和装置
KR20200015999A (ko) * 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 예측 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템
JP2020035128A (ja) * 2018-08-29 2020-03-05 キオクシア株式会社 メモリシステム
JP7253007B2 (ja) * 2021-05-28 2023-04-05 株式会社日立製作所 ストレージシステム
US20230017824A1 (en) * 2021-07-15 2023-01-19 Samsung Electronics Co., Ltd. Systems and methods for load balancing in a heterogeneous memory system
US11922034B2 (en) 2021-09-02 2024-03-05 Samsung Electronics Co., Ltd. Dual mode storage device
JP2023130874A (ja) 2022-03-08 2023-09-21 キオクシア株式会社 メモリシステムおよび方法
CN114842896A (zh) * 2022-05-05 2022-08-02 合肥兆芯电子有限公司 基于写入行为预测的写入控制方法、存储装置及控制电路
US11995321B2 (en) * 2022-05-25 2024-05-28 Micron Technology, Inc. Lifespan forecasting of memory devices and predictive device health management
CN116302673B (zh) * 2023-05-26 2023-08-22 四川省华存智谷科技有限责任公司 一种提高Ceph存储系统数据恢复速率的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536478A (ja) * 2010-12-28 2013-09-19 株式会社日立製作所 ストレージシステム、及びその制御方法
JP2015505078A (ja) * 2012-02-08 2015-02-16 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
JP4863605B2 (ja) 2004-04-09 2012-01-25 株式会社日立製作所 記憶制御システム及び方法
JP4842593B2 (ja) * 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
US7903486B2 (en) * 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
JP5075761B2 (ja) * 2008-05-14 2012-11-21 株式会社日立製作所 フラッシュメモリを用いたストレージ装置
GB2527951B (en) * 2013-04-26 2021-05-12 Hitachi Ltd Storage system
JP6216897B2 (ja) * 2015-01-20 2017-10-18 株式会社日立製作所 ストレージシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536478A (ja) * 2010-12-28 2013-09-19 株式会社日立製作所 ストレージシステム、及びその制御方法
JP2015505078A (ja) * 2012-02-08 2015-02-16 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884630B2 (en) 2017-04-13 2021-01-05 Hitachi, Ltd. Storage system
WO2018193556A1 (ja) * 2017-04-19 2018-10-25 株式会社日立製作所 記憶ドライブの環境温度の制御方法
JP2019086974A (ja) * 2017-11-06 2019-06-06 株式会社日立製作所 ストレージシステム及びその制御方法
US10838628B2 (en) 2017-11-06 2020-11-17 Hitachi, Ltd. Storage system and control method of maintaining reliability of a mounted flash storage
JP2021152715A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 ストレージシステム及びストレージシステムのssdの交換方法
JP7003169B2 (ja) 2020-03-24 2022-01-20 株式会社日立製作所 ストレージシステム及びストレージシステムのssdの交換方法

Also Published As

Publication number Publication date
JP6510635B2 (ja) 2019-05-08
CN111736773A (zh) 2020-10-02
US20180039444A1 (en) 2018-02-08
US11150829B2 (en) 2021-10-19
US10452302B2 (en) 2019-10-22
CN107408017B (zh) 2020-07-14
CN107408017A (zh) 2017-11-28
JPWO2016163016A1 (ja) 2017-12-07
US20200034067A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
WO2016163016A1 (ja) ストレージシステム及びデータ制御方法
JP5543668B2 (ja) ストレージシステム及び記憶領域の割当方法
US8909887B1 (en) Selective defragmentation based on IO hot spots
US9323459B1 (en) Techniques for dynamic data storage configuration in accordance with an allocation policy
JP6084685B2 (ja) ストレージシステム
US9898224B1 (en) Automatic adjustment of capacity usage by data storage optimizer for data migration
US9785353B1 (en) Techniques for automated evaluation and movement of data between storage tiers for thin devices
US9026760B1 (en) Techniques for enforcing capacity restrictions of an allocation policy
US9575668B1 (en) Techniques for selecting write endurance classification of flash storage based on read-write mixture of I/O workload
US9477407B1 (en) Intelligent migration of a virtual storage unit to another data storage system
US9753987B1 (en) Identifying groups of similar data portions
US9026765B1 (en) Performing write operations in a multi-tiered storage environment
US8583838B1 (en) Techniques for statistics collection in connection with data storage performance
EP1889142B1 (en) Quality of service for data storage volumes
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
US8976636B1 (en) Techniques for storing data on disk drives partitioned into two regions
US8954381B1 (en) Determining data movements in a multi-tiered storage environment
US9823875B2 (en) Transparent hybrid data storage
EP2813941A2 (en) Storage system and operation management method of storage system
US10372372B2 (en) Storage system
US9317224B1 (en) Quantifying utilization of a data storage system by a virtual storage unit
JP6886486B2 (ja) ストレージシステム及びデータ制御方法
JP6118380B2 (ja) ストレージシステム及び記憶領域の割当方法
JP5815791B2 (ja) ストレージシステム及び記憶領域の割当方法
US20150261449A1 (en) Maximize IO Throughput In Hybrid Storage Solution

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15888508

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017511430

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15554537

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15888508

Country of ref document: EP

Kind code of ref document: A1