WO2014174653A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2014174653A1
WO2014174653A1 PCT/JP2013/062317 JP2013062317W WO2014174653A1 WO 2014174653 A1 WO2014174653 A1 WO 2014174653A1 JP 2013062317 W JP2013062317 W JP 2013062317W WO 2014174653 A1 WO2014174653 A1 WO 2014174653A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
storage device
access frequency
tier
storage
Prior art date
Application number
PCT/JP2013/062317
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
Priority to CN201380073705.XA priority Critical patent/CN105009092A/zh
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to GB1514119.5A priority patent/GB2527951B/en
Priority to CN201910525717.0A priority patent/CN110333825A/zh
Priority to JP2015513448A priority patent/JP6084685B2/ja
Priority to CN202310311449.9A priority patent/CN116301649A/zh
Priority to DE112013006656.4T priority patent/DE112013006656B4/de
Priority to PCT/JP2013/062317 priority patent/WO2014174653A1/ja
Priority to US14/206,096 priority patent/US8880830B1/en
Priority to US14/489,598 priority patent/US9830258B2/en
Publication of WO2014174653A1 publication Critical patent/WO2014174653A1/ja
Priority to US15/806,644 priority patent/US10733092B2/en
Priority to US16/931,640 priority patent/US11372755B2/en
Priority to US17/848,577 priority patent/US11698857B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0604Improving or facilitating administration, e.g. storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/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/0653Monitoring storage devices or systems
    • 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
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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

Definitions

  • the present invention relates to automatic tier control of a storage system having a plurality of tiers.
  • the automatic tier management function moves a page to a higher tier (referred to as promotion) when the page I / O frequency is high within a certain period (load monitoring measurement period), and the page I / O When the O frequency is low, the page is moved to a lower layer (called demotion).
  • two types of exponential moving average values values that increase / decrease with a small number of cycles and values that increase / decay with a large number of cycles, which are updated at the interval of the above-mentioned cycle, are sampled.
  • There is also a technique that takes into account I / O fluctuations in a short cycle by combining one index value, that is, the I / O frequency (load index) for example, see Patent Document 1).
  • the present invention provides a storage system that determines a basic arrangement with a long-cycle load and performs a movement determination of a page with a short-cycle load with a threshold different from the long-cycle load.
  • the storage system disclosed in the present application includes a first storage device and a second storage device having higher performance than the first storage device.
  • the controller provides a virtual volume having a plurality of logical areas to the host apparatus, and after receiving the write request, allocates the storage area of the first or second storage device to the logical area that has received the write request, and The data stored in the assigned storage area is rearranged between the first storage device and the second storage device, and the allocation to the logical area is changed to the storage area of the rearrangement destination.
  • the controller has a first access frequency that is an access frequency from the host device during the first period, and a second access frequency that is an access frequency from the host device during the second period shorter than the first period. And whether or not the second relocation based on the first access frequency and the second access frequency is necessary, and the first relocation is performed in the first period cycle based on the first access frequency.
  • the determination is performed in synchronization with the access from the host device.
  • the threshold value used for determining whether the first rearrangement is necessary is different from the threshold value used for determining whether the second rearrangement is necessary.
  • FIG. 1 is a diagram showing a logical configuration of a storage system according to a first embodiment of the present invention. It is a figure which shows the view of the page arrangement
  • FIG. 7 is a flowchart showing processing of a host I / O processing program in a storage system when a host reads / writes data from / to a virtual volume. It is a flowchart of a destage processing program. It is a flowchart of a frequency distribution creation processing program. It is a flowchart of an asynchronous rearrangement determination processing program. It is a flowchart showing operation
  • FIG. 10 is a diagram illustrating a queue reordering operation. It is the figure which showed the parameter estimation method and the table structure for efficiency improvement.
  • embodiments of the present invention may be implemented by software running on a general-purpose computer, dedicated hardware, or a combination of software and hardware, as will be described later. May be.
  • the management information will be described in a table format.
  • the management information does not necessarily have to be expressed in the data structure of the table, such as a data structure such as a list, DB, and queue, a directory structure, etc. It may be expressed by the method. Therefore, “table”, “list”, “DB”, “queue”, etc. may be simply referred to as “information” to indicate that they do not depend on the data structure.
  • program as a subject (operation subject). Since the program performs processing defined by being executed by the processor 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 is a diagram showing a configuration example of a computer system according to the first embodiment of the present invention.
  • the host 101 is configured by a general server, for example, and is connected to the port 106 of the storage system 104 via the network 103.
  • the host 101 issues a data read / write command to the storage system 104, and the storage system 104 executes data read / write in response to the command.
  • the network 103 is configured by, for example, SAN (Storage Area Network), Ethernet (registered trademark), or the like.
  • the management server 102 is connected to the maintenance I / F 107 or the port 108 of the storage system 104 via the network 103.
  • the storage administrator uses the management server 102 to send various settings and management commands necessary for operating the storage system to the storage system 104.
  • the external storage 105 When the external storage 105 is connected, it is connected to the port 108 of the storage system 104. When this external storage 105 is connected, it may be connected to the port 108 of the storage system 104 via the network 103.
  • the volume provided by the external storage 105 can be handled by the storage system 104 in the same manner as the volume inside the storage system 104. Since this specific method is described in Patent Document 2, details thereof are omitted.
  • the cache memory 110 is a memory that can be accessed at high speed 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 109 includes a local memory 118 and a processor 119, and a plurality of processor packages 109 may be provided.
  • the processor 119 executes data transfer processing between the drives 115 and 116 and the external storage 105 and the cache memory 110 in order to process read and write commands from the host 101.
  • the shared memory 111 is a memory for storing control information necessary for the processor 119 to process read and write instructions and execute a storage function (such as a volume copy function).
  • the local memory 118 is a memory that stores information necessary for control when the processor 119 processes read and write commands and executes a storage function, and is an area that the processor 119 can occupy and use. .
  • the local memory 118 stores a program executed by the processor 119, for example.
  • the drives 113 and 114 include a plurality of types of drives having different performances.
  • a hard disk drive having an interface such as FC (Fibre Channel), SAS (Serial Attached SCSI), SATA (Serial Advanced Technology Attachment).
  • FC Fibre Channel
  • SAS Serial Attached SCSI
  • SATA Serial Advanced Technology Attachment
  • SSD Solid State Drive
  • I / O throughput performance I / O response performance.
  • Hierarchies (Tiers) 115, 116, and 117 classify these plural types of drives into drives having similar performance.
  • the relationship between layers is defined by the hierarchical relationship of performance. Normally, Tier 1 to Tier 2 and 3 are configured in the order of high performance drives (SSD, etc.).
  • Hierarchies may be set according to performance.
  • FIG. 2 is a diagram showing a logical configuration of the storage system according to the first embodiment of the present invention.
  • the virtual volume 201 provided to the host by the processor 119 is a logical storage area recognized by the host 101, and a read or write command from the host 101 is an issue target.
  • the pool 206 is composed of one or more pool volumes 203.
  • the pool volume 204 is composed of storage areas of any one of the drives 113 and 114 and the external storage 105, and is classified according to the tier to which the drive belongs.
  • SSD tiers 115 there are three SSD tiers 115 (corresponding to the pool volume 203A), SAS tiers 116 (corresponding to the pool volumes 203B and 203C), and externally connected tiers 117 (corresponding to the pool volumes 203D and 203E).
  • SSD tiers 115 corresponding to the pool volume 203A
  • SAS tiers 116 corresponding to the pool volumes 203B and 203C
  • externally connected tiers 117 corresponding to the pool volumes 203D and 203E.
  • the processor 119 allocates an unused storage area from the pool 206 in a predetermined unit (page) to the storage area that is the target of the Write instruction in the virtual volume 201 from which the host 101 has issued the Write instruction (205A).
  • I / O processing for the area of the pool volume 203 that has already been allocated, it is as if the host 101 is to the virtual volume.
  • the process is performed as if the I / O process was executed.
  • I / O processing from the host for each page 202 constituting each virtual volume there is a characteristic of I / O processing from the host for each page 202 constituting each virtual volume (this is called access locality). For example, when a page with a high I / O frequency and a page with a low I / O frequency are mixed, generally, the performance of the entire system can be improved by arranging a page with a high I / O frequency in the upper hierarchy. For example, it is assumed that the SSD hierarchy (115) can process 100 IOP and the SAS hierarchy (116) can process 10 IOPS.
  • the SAS tier is allocated to the page 202C having the characteristics of 50 IOPS and the SSD tier is allocated to the page 202A having the characteristics of 20 IOPS
  • the storage system 104 basically has the ratio of IOPS to the page from the host.
  • the data of page 204C is copied to an unused page 204B, and the correspondence (205C) between page 202C of virtual volume 201A and page 204C of pool volume 203B is changed to that of virtual volume 201A.
  • This is executed by changing the association (205B) between the page 202C and the page 204B of the pool volume 203A (S1604 in FIG. 16).
  • Data rearrangement by demotion can also be implemented with the same configuration.
  • the frequency distribution 207 represents the distribution of the I / O number of each page.
  • a graph 209 represents the number of I / Os on each page on the vertical axis when all pages are arranged in order of increasing I / O number from the left.
  • pages belonging to the range 210B from the intersection of the Tier allocation threshold 208A and the frequency distribution graph 209 to the intersection of the Tier allocation threshold 208B and the frequency distribution graph 209 are in the Tier 2 (SAS in this embodiment) hierarchy 116. assign. Also, from the intersection of the Tier allocation threshold 208B and the frequency distribution graph 209 to the page with the minimum number of I / Os is allocated to the tier 117 of Tier 3 (external storage in this embodiment). As described above, it is possible to assign the I / Os in order from the higher hierarchy in the descending order.
  • the Tier allocation threshold 208 may be specified by the storage administrator or calculated by the storage system 104.
  • the initial value of the Tier allocation threshold 208 (when the frequency distribution is not yet created after the storage system is started) can be allocated, for example, as 0, starting from the upper layer.
  • FIG. 3 explains the concept of page layout according to the present invention.
  • the basic page layout is determined based on a monitor with a predetermined cycle (long cycle). Specifically, as shown in FIG. 2, a tier allocation threshold 208 (represented by a variable T) is determined from a pool frequency distribution 207 created based on a long-cycle monitor, and pages are allocated.
  • a page with a large IO load over a long period can be expected to have a stable Tier 1 hit performance in a long period.
  • the regular page arrangement hierarchy is determined based on the long-period IOPS.
  • IOPS the long-period IOPS.
  • the long-cycle / short-cycle load is determined to select a short-period demotion target page, and the length of the de-motion target page A page of a short cycle IOPS that is higher than the cycle / short cycle load by a certain amount or more is selected as a promotion target in a short cycle and rearranged.
  • the short cycle promotion / demotion is an abrupt load and is not dependent on a predetermined cycle length considering that the decay is likely to be faster than the cycle. It is assumed that the Tier movement necessity determination is executed in conjunction with / O. With this configuration, it is possible to improve the overall Tier 1 hit rate by placing a page with a high I / O suddenly in Tier 1 while considering a long-period stable Tier 1 hit rate.
  • the page indicated by 302 is a page with a long cycle IOPS of 3 and Tier 1, the load of the long cycle is the lowest, and the short cycle I / O is also 3 IOPS.
  • the page indicated by 301 since the page indicated by 301 has a short-cycle IOPS of 5 IOPS and is higher than 3 IOPS of the demotion-targeted long-cycle IOPS, it is arranged only in the long cycle by temporarily replacing these pages. A higher Tier 1 hit ratio can be realized than in the case.
  • the short cycle promotion / demotion basically gives priority to the promotion to Tier 1 (the highest hierarchy) and the demotion from Tier 1 for securing a free page area for executing the promotion. Should be executed. Except for special cases such as when the load is high, the drive response of Tier 1 is the smallest. Therefore, it is because it is most effective to shorten the overall average response to make Tier 1 which is the highest hierarchy as the relocation destination of the single-cycle promotion execution.
  • Tier 1 is a target for short-period rearrangement, but when the number of Tiers is three or more, it may be a target for short-period rearrangement including a hierarchy lower than Tier 1.
  • priorities to be subject to short-period rearrangement may be dynamically determined in the order of decreasing average drive response of each Tier. For example, the response varies depending on the drive operation rate of each Tier. Therefore, when the operation rate of Tier 1 is extremely high, the response time of Tier 2 to may be exceeded.
  • the short cycle promotion and demotion disclosed in this application are promoted to Tier 2 and the demotion for securing the free page area. You may make it perform about.
  • FIG. 5 shows a table arranged in the shared memory 111
  • FIG. 6 shows a program stored in the local memory 118.
  • the locations of these tables and programs are not limited to similar locations, but may be the local memory 118, the shared memory 111 drive 113, or the like, or a space managed hierarchically between them.
  • the dynamic mapping table 501 is a table for managing the correspondence between each page of the virtual volume 201, the area of the allocated pool volume 203, and the monitor information of the page.
  • the logical-physical address conversion table 503 is a table that manages the correspondence between the parity group (PG), the pool volume, and the address of the physical disk that stores the pool volume data.
  • the per-page monitor table 502 is a table for managing monitor information of each page including the number of I / Os.
  • the virtual volume frequency distribution table 504 is a table that manages the distribution of the number of pages for each I / O number range regarding the virtual volume.
  • the pool frequency distribution table 505 is a table for managing the distribution of the page number for each I / O number range related to the pool.
  • the page rearrangement execution queue 506 is a waiting queue for executing page rearrangement.
  • the setting information table 507 is a table for managing various parameters set from the management I / F or the like.
  • the cache management table 508 is a table that holds dirty / clean state management of data in the cache memory when the data is stored in the cache memory 110. When the write data to the virtual volume is cached, it is managed in association with the address for specifying the page of the virtual volume 201 corresponding to the address of the cache memory 110.
  • the program described in FIG. 6 is executed by the processor 119.
  • the host I / O processing program 601 is a program for processing a Read / Write request for the virtual volume 201 when I / O is received from the host 101.
  • the destage processing program 604 is a program for storing the physical disk unreflected data on the cache memory in the physical disk, and is executed asynchronously with the host I / O.
  • the frequency distribution creation processing program 602 is a program for calculating a Tier allocation threshold, and is executed at a predetermined cycle (specifically, the long cycle interval).
  • the monitor update & tier determination processing 603 is performed in synchronization with the host I / O processing 601 to update various types of information in the per-page monitor table 502 and to determine page tier movement.
  • the asynchronous rearrangement determination processing program 606 is started when the frequency distribution creation in FIG. 14 is completed, and refers to the page-by-page monitor table 502 at a predetermined cycle to execute an appropriate Tier determination for each page. This program performs operations other than promotion to Tier1.
  • the page rearrangement processing program 605 is a program for rearranging pages and is periodically executed.
  • the per-page monitor table 502 and the pool frequency distribution table 505 may be arranged on the host 101 or the management server 102.
  • the frequency distribution creation processing program 602 operates on the host 101 or the management server 102.
  • FIG. 7 illustrates the structure of the dynamic mapping table 501.
  • One entry of the dynamic mapping table associates a page in the virtual volume with a pool area allocated to the page.
  • the page in the virtual volume is identified by the virtual volume number 702 and the start logical address 703 of the page in the virtual volume.
  • Each area of the pool volume is identified by the pool number 701, the pool volume number 704, and the start logical address 705 of the area in the pool volume.
  • monitor information is identified by a monitor information index number 706.
  • the monitor information index number corresponds to the monitor information index number 901 of the per-page monitor table 502, but may be stored directly as an element of the dynamic mapping table 501.
  • the dynamic mapping table 501 manages a default value page in which predetermined initial value data (for example, 0 data) is stored. In consideration of capacity efficiency, there should be at least one default value page in the pool.
  • the address of the default value page is stored in the pool volume number and logical address corresponding to the logical address 703 of the virtual volume 702 that specifies the area of the virtual volume to which data has never been written.
  • the dynamic mapping table 501 manages a pool volume number and a logical address that specify a page that is not allocated to a virtual volume in the pool 206.
  • the pool volume number and logical address of the empty page are associated with the logical address 703 of the write destination. .
  • FIG. 8 shows the structure of the logical / physical address conversion table 503.
  • One entry of the logical-physical address conversion table indicates the correspondence relationship between the pool volume 204, the PG (parity group) number storing the data of the pool volume, and the area of the physical drive (113 or 114).
  • the pool volume is identified by a pool volume number 801.
  • a plurality of pool volumes are defined on the PG.
  • the PG corresponding to the pool volume is identified by the PG number 802.
  • the physical drive area corresponding to the PG is identified by the physical drive number 803 and the start address 804 of the physical drive.
  • This pool volume represents the unit of expansion / removal to / from the pool.
  • this additional unit may be the PG itself, not the logical VOL defined on the PG.
  • the pool volume number 704 and logical address 705 stored in the dynamic mapping table may be used as addresses on the PG.
  • FIG. 9 shows the structure of the per-page monitor table 502.
  • One entry of the per-page monitor table indicates monitor information of a specific page 202 identified by the monitor information index number 901.
  • the I / O counter 902 stores the number of I / Os with a fixed period. This cycle is the same as the cycle in which the above-described frequency distribution creation processing program 602 operates, and the frequency distribution creation processing program 602 targets the number of I / Os of this fixed cycle as a processing target.
  • a plurality of long cycle I / O counters (A surface) 902A and a long cycle I / O counter (B surface) 902B are provided.
  • one is a counter for monitoring by the host I / O processing program 601 and the destage processing program 604, and the other is a counter for the frequency distribution creation processing 602, the monitor update & Tier determination processing 603, and the asynchronous relocation determination processing program 606.
  • the process of determining the Tier using the monitor data determined in the previous cycle and rearranging the pages while collecting the monitors can be executed in parallel.
  • the temporary counter 903 is used to measure short cycle I / O. This indicates how many times I / O has been counted from the time indicated by the previous temporary counter expiration time 904 to the present time.
  • the previous temporary counter expiration time 904 is updated to the current time, and the temporary counter is set to 0 again.
  • IOPS of a cycle different from the long cycle is measured by (previous temporary counter expiration time 904-current time) / N.
  • the temporary counter 903 only counters for the amount of information expressing N times of differences can be arranged in a local memory with short access latency and a small capacity, and only the previous temporary counter expiration time can be arranged in a large capacity shared memory. .
  • access to a shared memory with a long access latency can be made once in 1 / N times, and I / O processing can be performed without using a large amount of local memory for the temporary counter expiration time.
  • the effect of increasing processor processing can be reduced.
  • the read / write ratio (or read amount / write amount) and sequential ratio (or average I / O length, or general sequential determination method (I / O continuity, etc.) are determined in the monitor table 502 for each page. )) May be used when determining the Tier. For example, since a page with a high write rate causes a cache hit in the cache memory, it is preferable to place a page with a high read rate in Tier 1 with priority. When Tier 1 is an SSD, it is conceivable that a page with a high read rate is preferentially arranged in Tier 1 for the purpose of maintaining the SSD life.
  • the pool frequency distribution table 505 manages the distribution of the page number for each I / O number range regarding the pool 206.
  • One entry of the pool frequency distribution table indicates a range of the number of I / Os related to a certain pool and the number of pages included in the range of the number of I / Os.
  • the load level 1002 is obtained by dividing the degree of load into levels, and the value in parentheses of the load level 1002 indicates the IOPS start value defined in each level.
  • the end value of the load level range is (the start value of the IOPS number range of the next entry minus 1) (when IOPS is a positive integer).
  • the number of pages 1003 corresponds to the number of pages included in the range of the load level 1002.
  • the Tier allocation threshold 208 is also managed.
  • the Tier allocation threshold value may be a value equal to or greater than 0 IOPS, and does not necessarily need to be a boundary value of each range.
  • the Tier allocation threshold may be a load level.
  • the virtual volume frequency distribution table 504 manages the distribution of the number of pages 1006 for each I / O number range 1005 regarding the virtual volume 201.
  • the table structure is the same as the pool frequency distribution table 505.
  • FIG. 11 shows the structure of the page relocation queue 506.
  • the page rearrangement queue 506 is classified into a promotion queue 1101 and a demotion queue 1102. These queues may be provided for each storage system, or for each pool, PG, or pool volume.
  • each program is changed according to the movement pattern (promotion or demotion).
  • the entry 1103 is enqueued in the queue.
  • the entry includes a reference to the migration destination page (corresponding to the pool volume number 704 and the logical address 705) and a reference to the migration source page (corresponding to the pool volume number 704 and the logical address 705).
  • the reference represents a reference to information of the monitor table for each page and the dynamic mapping table.
  • the page relocation processing program relocates the page (from the migration source physical page to the pool volume page (physical page) corresponding to the virtual volume page (virtual page)). Executes data copy to physical page and reference replacement process).
  • the maximum performance of relocation changes depending on the load on the drive side by the host I / O, but even if the maximum performance of relocation changes by using this queue, stable relocation can be performed. Execution can be realized.
  • FIG. 12 is a flowchart showing data read / write processing for the virtual volume 201.
  • the host I / O processing program 601 is executed and this flow is executed.
  • the dynamic mapping table 501 is referenced to determine whether the virtual page has been assigned a pool page. If not allocated, an unused page is allocated from the pool (S1209).
  • the I / O processing request is a read in S1201
  • cache hit the data on the cache memory is transferred to the host (S1208). After all the data requested by the host is transferred to the host, a read processing completion response is transferred to the host, and the I / O processing program ends.
  • the pool volume number and logical address allocated are obtained using the dynamic mapping table 501, and the physical drive number is further calculated using the logical physical address conversion table 503.
  • the physical start address is obtained (S1204).
  • the data is transferred from the calculated drive address to the reserved cache memory area (S1205).
  • FIG. 13 is a flowchart of the destage processing program 604. As shown in FIG. 12, the I / O processing program sets the dirty flag after writing the host write data to the cache memory in response to a data write request from the host.
  • the cache management table 508 it is periodically checked whether there is a dirty flag on the cache memory set in S1211 (S1301). If there is a cache area with a dirty flag, the pool volume number and logical address assigned from the dynamic mapping table 501 are obtained based on the virtual volume number and logical address in the cache management table 508.
  • the pool volume number logical address is the address of the default page
  • a new free page is allocated from the dynamic mapping table 501 to write new data.
  • the pool volume number and logical address of the newly assigned page are stored in correspondence with the virtual volume number logical address corresponding to the destage processing in the dynamic mapping table 501.
  • the drive address is obtained from the logical-physical conversion table (S1302). Dirty data in the cache memory is written to the drive address obtained in S1302 (S1303).
  • the dirty flag of the data is turned OFF and the data is in a clean state.
  • the I / O counter value of the per-page monitor table 502 corresponding to the monitor information index number of the dynamic mapping table 501 is updated, and the Tier determination process is executed (S1304). Further, it is checked whether or not it is on the cache memory (S1301). If there is no unreflected data, the process ends. If there is unreflected data, the process is repeated from S1302.
  • FIG. 14 is a flowchart of the frequency distribution creation processing program 602. It is confirmed whether there is a virtual volume whose frequency distribution has not been created (S1401). If there is, it is checked from the head of the volume whether or not there is an unprocessed page in order to create a frequency distribution in the virtual volume (S1402). If there is an unprocessed page, the long-period IOPS is calculated, and the number of pages at the load level of the corresponding frequency distribution is added (S1403).
  • the long-cycle IOPS can be calculated by, for example, the value of the long-cycle I / O counter 902 of the surface collected in the immediately preceding cycle / cycle (seconds). Therefore, it is desirable that the IOPS collection cycle and the frequency distribution creation processing execution cycle be the same. As described in FIG. 9, the moving average value may be calculated as a long-period IOPS.
  • a frequency distribution of the pool is created (S1404).
  • the frequency distribution of the pool is calculated by calculating the total value of the frequency distribution of the virtual volume. Specifically, in the virtual volume frequency distribution table 504, the total number of pages 1003 corresponding to the I / O number 1005 of each virtual volume number 1004 belonging to the target pool is obtained, and the I / O number of the pool frequency distribution table 505 is obtained. The number of pages 1005 corresponding to 1005 is stored.
  • the Tier allocation threshold 208 is calculated and determined (S1405).
  • the tier allocation threshold 208 determines, for each tier, a maximum page allocation range 210 from a limit point that exceeds either the tier potential (the maximum number of I / Os that can be processed) or the tier capacity.
  • FIG. 15 is a flowchart of the asynchronous relocation determination processing program 606.
  • the main role of the asynchronous relocation determination processing program 606 is data transfer other than promotion to Tier 1 and collection when the IOPS of a page promoted by short-cycle IOPS becomes low (demotion to Tier 2 or 3). is there. Since the promotion to Tier 1 is implemented with priority separately by the monitor update & Tier determination process, the asynchronous rearrangement determination processing program 606 may not execute the promotion. However, a page promoted to Tier 1 by short-cycle IOPS may stay in Tier 1 because the page update determination by the monitor update & Tier determination processing is not executed if the host I / O does not come after that. . Therefore, when the asynchronous rearrangement determination processing program 606 is executed for recovery (demotion from Tier 1 to Tier 2 or 3), the capacity of Tier 1 can be used efficiently.
  • the presence / absence of a virtual volume that has not undergone page relocation is checked (S1501). If there is a virtual volume that has not undergone page relocation, the necessity of relocation is confirmed for each allocated page in order from the head to the rear end of the target virtual volume (S1502, S1503). Confirmation of the necessity of rearrangement means that the current tier can be left as it is or the tier allocation threshold value 208 in the pool frequency distribution table 505 of the target pool can be changed or moved to a different tier. It is to determine whether or not. For example, the Tier allocation threshold 208A for Tier 1 and Tier 2 and the Tier allocation threshold 208B for Tier 2 and Tier 3 are compared with the number of I / Os in the I / O counter 702 of the target page.
  • the target page is demotioned to Tier2.
  • Relocation is “necessary”.
  • this page is rearranged due to an increase in the short cycle IOPS, that is, when it is promoted to Tier 1 by the page movement by the monitor update & Tier determination process, the value of the short cycle IOPS
  • the rearrangement may be “unnecessary”.
  • the target page has already been placed in Tier 2, so the rearrangement is “unnecessary”. From the relationship between the logical address 703 of the virtual volume 702 in the dynamic mapping table 501 and the pool volume number 704, the current tier of the target page can be determined to which tier it currently belongs based on the pool volume number 704.
  • the page is enqueued in the page relocation queue in order to relocate the target page (S1504).
  • the rearrangement is rejected and the target page is rearranged, it is confirmed whether or not the next page in the virtual volume is a rearrangement target page (S1502, S1503).
  • another virtual volume that has not yet been rearranged is checked, and is performed until there is no virtual volume that has not been rearranged (S1501).
  • the page rearrangement program is terminated once at the end of the periodic processing, and the page rearrangement processing is continued by the page rearrangement program again in the next periodic processing. If the rearrangement processing has been completed by the end of the cycle, the page rearrangement processing is once completed at that time, and the rearrangement processing is performed again for each virtual volume in the next cycle.
  • FIG. 16 is a flowchart showing the operation of the page rearrangement processing program.
  • This process is a process for executing rearrangement in units of pages, and operates in multiples throughout the system. This process is executed when the entry 1103 is dequeued from the page rearrangement execution queue 506. This process is executed when the entry 1103 is dequeued, using as input the identifier of the virtual page 201, the identifier of the physical page of the migration source, and the identifier of the physical page of the migration destination, which are included in the entry described with reference to FIG. First, it is determined with reference to the cache management table whether the area of the virtual page identifier is on the cache (S1601). If it is on the cache, the process proceeds to step 1604. If it is not in the cache in step 1601, the cache memory is secured, the cache management table is updated (S1602), and the target data staging process is executed (S1603). In this step, the data of the movement source physical page is staged on the cache memory.
  • the page mapping is switched (S1604). Specifically, it is executed by updating the identifier of the physical page corresponding to the virtual page on the dynamic mapping table 501 with the identifier of the physical page of the movement destination. At that time, the source page becomes an unused page. Thereafter, the dirty bit of the cache area on the cache management table is updated to ON (S1605), and the process ends. By turning the dirty bit ON, the destage processing program 604 destages data asynchronously to the physical page of the movement destination.
  • FIG. 17 is a flowchart showing the operation of the monitor update & Tier determination process. This process is executed in synchronization with the read command in the I / O processing program S1206 at the time of reading, and is executed asynchronously with the write command in the batch writing program S1304 at the time of writing. In addition to executing monitoring at the timing of command issuance to the drive, there is also a concept of monitoring including cache hits when a host I / O is received. In the present invention, as will be described later, the Tier determination process is executed when the monitor is updated.
  • a monitor count-up process is executed (S1701). Specifically, for the entry in the per-page monitor table corresponding to the page, the long period I / O counter 902 of the surface being collected in the current period is counted up, and the temporary counter 903 is counted up. At the time of the first I / O, the current time is stored at the previous temporary counter expiration time. If the temporary counter 903 becomes N after the monitor is counted up, the short period IOPS is calculated from (current time ⁇ previous temporary counter expiration time) / N. Thereafter, the process proceeds to a Tier determination process (S1703). If the temporary counter does not exceed N, the process is terminated.
  • This short cycle IOPS calculation method is not a short cycle with respect to a predetermined cycle when (current time ⁇ previous temporary counter expiration time) exceeds a predetermined cycle. Therefore, when (current time ⁇ previous temporary counter expiration time) is equal to or longer than a predetermined time, measurement may be interrupted and the count may be returned to the default value. Further, the short cycle IOPS calculation method described above is an example, and other methods can be adopted as long as the IOPS is measured at intervals shorter than a predetermined cycle. . For example, the short cycle load amount estimation method using the variance value described in the fourth embodiment may be used.
  • the Tier determination process (S1703) performs determination based on various threshold values (Tier allocation threshold value 208, promotion threshold value, demotion threshold value), and details are described in Examples 2 and 3.
  • Tier allocation threshold value 208 if the page needs to be moved (Y in S1704), the relocation execution page is enqueued in the page relocation execution queue 506 (S1705), and the process ends. If it is not necessary to move the page (N in S1704), the process ends as it is.
  • FIG. 18 is a diagram showing an example of a screen for setting a pool unit parameter.
  • the pool unit GUI screen 1801 is displayed when an area 1802 for displaying a pool number for specifying a setting target pool, an area 1803 for setting ON / OFF of short-period relocation, and ON for short-period relocation are selected.
  • An area 1804 for setting ON / OFF of the detailed setting and an area 1805 for setting the content of the detailed setting are configured.
  • Information set on this screen is stored in the setting information table 507.
  • the short cycle rearrangement setting 1803 When the short cycle rearrangement setting 1803 is set to OFF, the determination by the short cycle monitor is not executed, and the rearrangement is executed by including the promotion to Tier 1 by the asynchronous rearrangement determination processing program 606. Specifically, only the long-cycle monitor count-up is executed in the monitor update & Tier determination process, and the processes after step S1702 are not executed. On the other hand, when the short period rearrangement setting 1803 is set to ON, the operation is as described in the present embodiment.
  • the short cycle detailed setting 1804 can be set, and each item 1805 can be input.
  • the short cycle detailed setting 1804 is set to OFF, various parameters operate according to default values or values automatically calculated in the storage system.
  • the short cycle threshold 1806 is a threshold used for promotion determination of a short cycle IOPS of a page, and is automatically calculated in the storage system from the Tier allocation threshold 208 or the like. Specific examples of the calculation will be described in Examples 2, 3, and 4.
  • the short cycle SSD capacity 1807 is a setting for designating the storage capacity of the SSD (Tier 1) used for the short cycle rearrangement. When the short cycle detailed setting 1804 is set to OFF, the target capacity is dynamically determined. Details will be described in Example 3.
  • the queue method 1808 is for designating the processing order of the queues described in FIG. 11, and “reordering (described in the fourth embodiment)” or “first-come-first-served basis (FIFO)” can be considered as options.
  • other generally known scheduling algorithms HOL, LIFO, etc.
  • the enqueue or dequeue method of the page relocation execution queue 506 may be operated in accordance with the setting.
  • the short cycle detailed setting 1804 is set to OFF, the default method stored in the setting information table 507 (for example, “reordering” may be used) is used.
  • the short cycle load duration (St) 1809 is an item for setting a parameter for the duration of a short cycle load.
  • St Since this duration depends on the pattern and characteristics of the host I / O load, it can be set by the user as in this embodiment.
  • St uses a default value (for example, 1 minute) stored in the setting information table 507 or a value calculated by the method exemplified in the fourth embodiment.
  • the short cycle counter expiration count (N) 1810 is an expiration value of the counter for calculating the short cycle IOPS.
  • N can be a default value (for example, 64 times) or a value calculated by the method exemplified in the fourth embodiment.
  • the short period correction coefficient (M) 1811 is information for setting how much the short period IOPS is compared with the long period IOPS and how difficult the promotion is. For example, assuming that promotion is performed when the long period IOPS is 5 or more, the short period IOPS may be operated so as to be promoted when it is M ⁇ 5 or more. This value may be dynamically determined by a method described later, a default value determined in advance, or a value designated by the user on this setting screen.
  • the detailed setting items described above may be set as a part of the detailed setting and the other as the automatic setting. Further, the setting value of the detailed setting described above may be stored with a label such as “preSet1” so that it can be set easily in the area 1805.
  • the various setting items described above have been described for each pool in the above example, but may be specified not only for each pool but also for each virtual volume / each physical volume / page.
  • the setting information table 507 has a table for storing parameters for each target resource (per virtual volume / per physical volume / per page).
  • FIG. 19 is a flowchart showing the operation of the Tier determination process of this embodiment, which is executed in S1703 of FIG.
  • (A) Demotion determination is executed (S1901). This determination process determines whether or not the page is subject to demotion. Details will be described with reference to FIG. As a result, if it is determined that demotion is necessary (Y in S1902), the page movement necessity is returned (S1905), and the process ends. If it is determined that no demotion is required (N in S1902), (B) promotion determination is executed (S1903). This determination process determines whether the page is a promotion target. Details will be described with reference to FIG. As a result, if it is determined that the promotion is necessary (Y in S1904), the page movement requirement is returned (S1905), and the process ends. If it is determined that the promotion is unnecessary (N in S1904), the process ends as it is (no page movement is required). As described above, in order to secure an empty storage capacity of Tier 1, demotion is performed before the promotion is executed.
  • FIG. 20 is a flowchart showing the operation of the demotion determination process.
  • the process may go to S2002 or branch depending on whether the performance utilization rate of Tier 1 exceeds a certain level. If the performance availability is high, the response of Tier 1 will be deteriorated, so the load can be saved by demotion of some data.
  • the page tier determination is performed based on the demotion threshold (S2002). Specifically, when the long cycle IOPS is DT or less and the short cycle IOPS is DT ⁇ M or less (Y in S2002), “demotion required” is returned (S2004), and the process is terminated. .
  • This “M” is a number larger than 1 and uses a value stored in the setting information table 507. The value of M is adjusted so that the short period requires more IOPS than the long period.
  • the value of M can be adjusted dynamically so that the hit rate for Tier 1 is optimized by using a generally known technique such as feedback control using the hit rate for Tier 1 as an evaluation function. Good.
  • the value of DT may be reduced (S2003).
  • S2003 When the value of DT is a level, it is realized by lowering the level by a fixed amount.
  • the value of DT When the value of DT is IOPS, it is realized by multiplication of a value smaller than 1 (fixed amount) or subtraction of a fixed amount. May be. By lowering the threshold value, only pages in Tier 1 with lower IOPS are targeted for demotion in the next flow.
  • the value of DT is increased (S2005) (however, it does not exceed PT. If it exceeds PT, since the demotion target has more IOPS than the promotion target, This is because the amount of IO decreases), and the process is terminated.
  • the demotion threshold is dynamically controlled in order to secure free space for storing the pages to be promoted by executing the appropriate demotion as much as possible (ie, demotion of pages with low IOPS). As a result, it is possible to move a page having as few I / Os as possible.
  • step 2003 If the drive load or the number of pages being relocated is greater than a certain level before step 2003, it may be determined that the page cannot be moved and the process may be terminated without going to step 2004. Good. As described above, it is possible to perform rearrangement in consideration of the page moveable amount per unit time that varies depending on the drive load at that time.
  • a demotion threshold may be provided for each parity group.
  • Tier 1 is an SSD
  • a step of determining whether it is difficult to maintain the prescribed SSD life due to concentration of writes by the host I / O may be added.
  • a step for setting a page with a high write load as a demotion target is provided. In this case, it is desirable that the object of demotion is a PG unit.
  • FIG. 21 is a flowchart showing the operation of the promotion determination process.
  • the promotion threshold value (PT) is dynamically controlled (increase / decrease PT) so as to promote a page with a short cycle IOPS as high as possible within the limited constraints (NF lifetime, movement throughput).
  • the initial value of PT can be T, for example.
  • the graph shown in FIG. 4 represents the concept of adjusting the promotion speed for maintaining the life of the SSD.
  • the vertical axis 401 of the graph represents the number of cumulative SSD deletions by promotion.
  • the horizontal axis 402 represents the elapsed years of use of the storage system.
  • Wlimit 403 represents the maximum number of SSD erasures by promotion.
  • Wlimit 403 is about a predetermined percentage with respect to the limit number of erasures of SSD (generally, the number of erasures is about 100,000 times for SLC (Single Level Cell), and about 10,000 times for MLC (Multi Level Cell)). Can be set. For example, the life of storage products is often set to about 5 years.
  • 404 is a graph illustrating the transition of the number of deletions by promotion.
  • 405 is a graph representing the pace of the number of erasures by the targeted promotion as a cumulative value according to the years of use. If the I / O suddenly increases and the load increases, the amount of movement by promotion increases.
  • control is performed by raising the threshold value of the short cycle promotion so that the number of erasures does not exceed the pace 405.
  • This configuration effectively narrows down the pages to be moved (limited to pages with higher IOPS), while maintaining the hit rate for SSDs, and reducing the number of SSD erasures by promotion within a certain range, enabling longer life To do.
  • the amount of page movement is reduced, so that the number of surplus erasures can be stored. It is efficient to adjust the threshold of the short period promotion for each parity group. However, it may be held in pool units or storage system units.
  • Cumulative deletion count of SSD parity group by promotion (promotion count for parity group ⁇ page size / SSD parity group capacity) ⁇ correction coefficient (RAID level and SSD characteristics (page size in SSD, WriteAmplification, etc.) Decided) From the Wc calculated as described above, for example, the S2103 and S2107 paces are determined by the following equation. (Wlimit ⁇ year of target use (eg 5 years)) ⁇ (Wc ⁇ Uy)? If the above formula is true, it can be determined that the pace of life is maintained even if the promotion is executed. Moreover, when said formula is false, when promotion is performed, it can determine with having exceeded the pace of life.
  • necessary information can be obtained from an SSD device by a SCSI command or the like.
  • the information may be held in the local memory 118 or the shared memory 111.
  • the pace determination may be dynamically changed according to the SSD usage capacity rate. For example, at the initial stage of system operation, the SSD usage capacity rate is low and the SSD hit rate is low. However, such a state (a state that requires a large amount of page movement) is often only a part of the initial stage of the system, so it may be more efficient to temporarily exceed the pace. . That is, when the SSD usage capacity ratio is less than or equal to the predetermined value, the promotion is executed for all without performing the determination of S2103, so that the temporary write amount (until the SSD usage capacity ratio exceeds the predetermined value). The overall performance is improved by reducing the overall amount of write on the later face while allowing the increase of the above-mentioned increase. Further, the page movement acceleration may be adjusted stepwise to match the target pace.
  • FIG. 21 illustrates a flow executed only when based on the determination in S2103.
  • the value of PT is a level, it is realized by lowering the level by a fixed amount, and when the value of PT is IOPS, it is realized by multiplying a value smaller than 1 (fixed amount) or subtracting a fixed amount. May be. As described above, a page having the highest number of I / Os can be moved as much as possible while satisfying the limited number of deletions (Wlimit) by promotion.
  • the PT value may be increased, and vice versa. With this process, it is possible to target a page having a high I / O count as much as possible while keeping a balance with a limited amount of page movement per unit time.
  • a promotion threshold may be set for each parity group. If held in parity group units, the lifetime can be judged in parity group units, and the minimum amount of page movement can be reduced. Further, a read / write ratio, a sequential ratio, and the like may be taken for each page so that a page with a write amount higher than a predetermined position (a large write ratio and a high sequential ratio) may not be promoted.
  • the lifetime pace is determined for the write by promotion, but the lifetime may be determined including the write by the host I / O.
  • the promotion amount can be relatively increased, and the Tier 1 hit rate can be further improved.
  • Example 3 An example of another Tier determination method will be disclosed as Example 3.
  • a short-period load is assumed to continue for a certain period (St), and a page that has been rearranged in a short period is fixed to a tier that is a relocation destination for a certain period (an immobilization mark for each page). Is realized).
  • the promotion amount by the short cycle IOPS is strictly controlled by the demotion amount management table 2201, the short cycle promotion amount can be limited to a constant amount, and the load amount to be driven out in the long cycle can be set according to the short cycle promotion amount. It can be minimized.
  • FIG. 22 shows the table structure of the demotion amount management table and the extended page monitor table (1).
  • the demotion amount management table 2201 is similar to the frequency distribution for each pool in that it has an entry for the page amount 2203 corresponding to each load level 2202 based on the long cycle IOPS. Furthermore, it has a demotion plan number 2204 for each load level 2202 and a demotion execution number 2205.
  • the number of demotion plans 2204 corresponds to the number of pages for each load level to be demotioned in response to a short cycle promotion. Therefore, it is added when the short cycle promotion is determined, and is subtracted when the load on the page after the short cycle promotion is reduced.
  • the number of executed demotions 2205 represents the number of pages for each load level where the actual demotion is performed. Therefore, it is added at the time of demotion execution of the page to be replaced (a page with a long cycle load as low as possible), and fixed to the lower tier when the short cycle promotion load decreases and the number of demotion plans 2204 is subtracted. When substituting a page that has been turned into a promotion, subtract it.
  • the number of demotions or demotions is considered in consideration of the number of pages necessary for the promotion of the page where the number of I / Os increases in a short cycle.
  • the threshold can be controlled.
  • the demotion amount management table 2201 described above may be held for each pool VOL or PG, and the demotion threshold may be determined for each pool VOL or PG.
  • the frequency distribution for each pool VOL or PG can be created when the frequency distribution creation processing program of FIG. 14 is executed, and the page number 2203 for each load level 2202 can be calculated based on the information.
  • the extended page monitor table (1) 2207 is a table in which the columns of the page monitor table 502 are extended, and the monitor information index number 901 is the same as the structure of the page monitor table.
  • the short cycle rearrangement page fixing mark 2208 indicates a state where the page is fixed to the current tier when ON.
  • the short cycle promotion execution time 2209 stores the execution time when the page is promoted for a short cycle. With these pieces of information, it is possible to prevent the page subjected to the short cycle promotion from being demotioned for a certain period (St). Further, a page that has undergone a demotion with a small long-cycle load to be temporarily replaced can be prevented from being promoted by turning on the mark.
  • FIG. 23 is a flowchart showing the operation of the demotion determination process (2). This process corresponds to (A) demotion determination (S1901) in the Tier determination process of FIG. Only differences from the demotion determination process flow described in FIG. 20 will be described.
  • step 2301 the short period rearranged page fixing mark 2208 of the entry of the extended page monitor table (1) 2207 corresponding to the page is referred to and it is determined whether or not the page is marked ON. If the mark is ON (Y in S2301), it is determined whether (current time-short cycle promotion execution time)> St is satisfied (S2302). St is a predetermined value set in advance. If not established (N in S2302), the process is terminated. If true (Y in S2302), short cycle IOPS> PT is determined (S2303). If it is established (N in S2303), the page is still in a high load state and does not need to be demotioned, so the processing is terminated as it is.
  • the process proceeds to step 2305.
  • FIG. 24 is a flowchart showing the operation of the promotion determination process (2). This process is a process corresponding to (B) promotion determination (S1903) in the Tier determination process of FIG. Only differences from FIG. 21 will be described.
  • Step 2401 is the same as step 2301. If the mark is ON (Y in S2401), the process proceeds to step 2402. In step 2402, it is determined whether (demotion plan number ⁇ demotion execution number) or (short cycle IOPS> PT) is satisfied. The determination (the number of demotion plans ⁇ the number of demotion implementations) is established when the load on a page that has been promoted for a short period in the demotion determination is reduced. The determination (short cycle IOPS> PT) corresponds to a case where the short cycle load of the page on which the demotion for temporary replacement for the short cycle promotion is suddenly increased. If NO in step 2402, the process ends. In the case of Y in step 2402, the mark on the page is turned OFF, the number of demotions is reduced by 1 (S2403), and then the process proceeds to step 2404.
  • Step 2404 it is determined whether (long cycle IOPS> T) or (short cycle IOPS> PT) is established and promotion is necessary.
  • Y in step 2404 it is checked whether or not the page is a short cycle promotion and the short cycle SSD capacity is not reached (step 2408).
  • the condition (long cycle IOPS> T) is not satisfied at the time of determination in step 2404 and the condition (short cycle IOPS> PT) is satisfied, the page can be determined to be a short cycle promotion.
  • the number of pages that can be used for short-period promotion is calculated from the information stored in the setting information table 507 set by the setting item 1807 of the GUI 1801 and the entire Tier 1 capacity, and the demotion amount management table 2201
  • the cumulative value of the number of demotion plans 2204 at each load level 2202 is compared and the cumulative value does not exceed the number of pages that can be used for short cycle promotion, it can be determined that the short cycle SSD capacity has not been reached. .
  • step 2408 the process ends.
  • the mark of the page is turned ON, the number of demotion plans of the load level to which the page belongs in the demotion amount management table 2201 is increased by 1, and DT is updated as necessary (step 2409).
  • an extension plan of this processing similar to the method shown in FIG. 21 can be considered.
  • Tier 1 is SSD (especially MLC with a low limit value of the number of erasures)
  • Wlimit limited number of deletions
  • the fourth embodiment is a means for automatically adjusting various parameters and estimating a short period load amount in the method described in the first to third embodiments.
  • FIG. 25 is a diagram showing the concept of improving processing efficiency.
  • FIG. 2501 shows the meanings of various parameters in the graph of the change in the load amount of a certain page.
  • a vertical axis 2502 of the graph indicates a load amount (IOPS) per unit time of the page.
  • the horizontal axis represents time passage 2503.
  • a graph 2506 represents a change in load amount of a page with respect to time.
  • St is the time from when the short-cycle load rises to when it falls.
  • Sd enqueued in the page rearrangement queue. This time is called a detection delay time.
  • the time (current time) during which the rearrangement is executed and assigned to the rearrangement process (task) is assumed to be t (2513). Further, the period from the promotion of the page to the subsequent demotion (2514) is defined as Dt.
  • the demotion cannot be started immediately after the page is promoted.
  • the value Dt is used. Then, the average load from the promotion of the page to the demotion (Dt2509) is set as the reference value (2511) when the page is rearranged (with a short cycle). If a page with a high reference value is selected, the hit rate of Tier 1 can be improved efficiently.
  • Extended page monitor table (2) (2701) is a table in which the columns of the page monitor table 502 are extended, and the monitor information index number 901 is the same as the structure of the page monitor table.
  • the extended page monitor table (2) (2701) includes at least the short cycle load duration (St) (2702), the counter expiration value (N) (2703), and the square accumulated value of the I / O generation interval.
  • One of the columns (2704, 2705) is included.
  • two columns 2704 and 2705 are provided for managing the data being collected and the data for which the previous cycle has been determined for each cycle.
  • the short-cycle load continuation time (St) (2702) for each page is determined if the short-cycle load duration has a characteristic of being constant for each page (continuity of the short-cycle load pattern). Recording is performed once at any timing, and the value is set as the value of St.
  • a plurality of short-cycle load durations for each page are held for each page, and the duration of load is determined from a past history by a generally known prediction method (for example, linear approximation method, etc. ) May be used for prediction. Further, whether or not the above assumption (continuity of the short cycle load pattern) is satisfied may be appropriately determined from the monitor information for each page, and whether or not the short cycle rearrangement using this estimation method can be performed may be switched.
  • Estimatimation method of short period load using variance value> The above-mentioned St is based on the assumption that it is constant for each page, but it may not be constant in actual I / O, that is, there may be variations.
  • the short cycle load amount estimation method described below is a method that allows pages to be arranged efficiently even when there is a variation characteristic.
  • a method for predicting a short period (Qt) load will be described below.
  • Qt number of I / O arrivals of an expected value
  • the storage stores information on the mean square value (E (f ⁇ 2)) of the I / O occurrence interval, and based on the characteristics of the variance value V (f) of the I / O occurrence interval, By predicting the load amount of the period (Qt), it is possible to efficiently arrange pages even when there is a variation characteristic. In addition, since it is not necessary to have history information of a short-cycle load amount, there is an effect that memory use efficiency is good.
  • the accuracy of calculation of the short period load amount can be improved.
  • a value obtained by subtracting the count value collected up to the present from the count value of the previous cycle can be a predicted value of the value from the present to the end of the current cycle. Therefore, by calculating V (f) and E (f) with this subtracted value and estimating the short-cycle load amount by the above method, the prediction accuracy can be further improved.
  • N may be adjusted to an optimum value (the value of N is stored in 2703). To do). Specifically, for example, a method in which a value obtained by multiplying the number of IOs in a short cycle by a certain coefficient is set to N can be considered.
  • N when N is decreased, the frequency of determining that page movement is required increases, and when N is increased, the frequency of determining that page movement is required decreases. Therefore, N may be calculated from the amount of pages that can be moved (calculated from the lifetime, the surplus operation rate of the drive, etc.).
  • the various estimation methods described above may be combined, or only some methods may be used.
  • the various estimation methods described above may have parameters or be calculated not for each page but for each pool, each pool VOL, or each PG.
  • FIG. 26 is a diagram showing a queue reordering operation.
  • an entry to be preferentially assigned to the rearrangement task 2603 is determined based on the reference value 2511 described with reference to FIG. For example, in the case of a promotion queue, priority is assigned to a relocation task from the highest reference value, and in the case of a demotion queue, priority is assigned to a relocation task from the lowest reference value. To do. With this configuration, inter-tier data relocation can be made more efficient.
  • reference value 2511 may be specifically calculated by the following equation.
  • may be a constant, but may be dynamically determined from a demotion threshold (DT) or the like.
  • Dt may be calculated by the following equation.
  • Dt Sr ⁇ demotion queue length + Sr / 2 + Ct Sr represents the average processing time of the demotion process.
  • Sr may be shortened according to the multiplicity (throughput) of the rearrangement task 2603.
  • the formula may be changed to a formula based on a generally known queuing theory.
  • a queue that has passed a predetermined period from the enqueue time Et may be preferentially executed while ignoring the reference value. Further, when the number of entries in the queue has reached a predetermined upper limit, the queue may be made empty by deleting from the queue from the smallest reference value. Note that the present invention is not limited to the above-described embodiments, and those skilled in the art can make various additions and modifications within the scope of the present invention.
  • 101 Host, 102: Management server, 103: Network, 104: Storage system, 105: External storage, 106: Port, 107: Maintenance I / F, 108: Port, 109: Processor package, 110: Cache memory, 111: Shared memory, 112: internal network, 113: drive, 114: drive, 115: Tier (tier) 1, 116: Tier (tier) 2, 117: Tier (tier) 3

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現し、高階層でのデータヒット率を向上させるためのストレージシステムを開示する。本発明のストレージシステムは第1の期間中のホスト装置からのアクセス頻度である第1のアクセス頻度と、第1の期間より短い第2の期間中のホスト装置からのアクセス頻度である第2アクセス頻度とを管理する。階層間のデータ再配置は、第1のアクセス頻度に基づいて第1の期間周期で行うとともに、第1のアクセス頻度と第2のアクセス頻度に基づいた第2の再配置の要否判定を前記ホスト装置からのアクセスに同期して行う。ここで、第1の再配置の要否判定に用いる閾値と、第2の再配置の要否判定に用いる閾値とは異なるものとする。

Description

ストレージシステム
 本発明は、複数の階層を持つストレージシステムの自動階層制御に関する。
 データ量の増大化、データ種類の多様化と、HDD(Hard Disk Drive)より高速なSSD(Solid State Drive)の普及によるストレージ内の記憶媒体の多様化により、適切な記憶媒体階層へのデータ配置が困難となってきている。この課題に応える一手段として,データのアクセス頻度に応じてデータを適切な記憶媒体に自動的に格納する,ストレージ自動階層配置機能の普及が進んでいる。
 一般的に自動階層管理機能は、一定の周期内(負荷モニタリングの計測期間)で、ページのI/O頻度が高い場合に、ページを上位階層へ移動(プロモーションと呼ぶ)し、ページのI/O頻度が低い場合に、ページを下位階層に移動(デモーションと呼ぶ)する。また、前記の周期の間隔で更新される、指数移動平均値を2種類(少ない周期数で増加/減衰する値と、多い周期数で増加/減衰する値)採取し、その2種類の値を組み合わせて、1個の指標値、つまり前記のI/O頻度(負荷指標)とすることで短い周期のI/O変動も考慮する技術もある(例えば、特許文献1参照)。
米国2012/0246386A1 米国2004/0257857A1
 しかし上記特許文献1記載の技術では、所定周期ごとにモニタを採取して再配置を実行しているため、周期よりも短い、突発的な短周期の負荷に追従することが困難である。しかし、単純に数秒から数分オーダーの短い周期とすると、短期間で負荷が減衰するページが大量に再配置されるととなり、長周期の安定的なTier1ヒット率を損ねることとなる。さらに、モニタの周期毎の集計にかかるコントローラの計算量増大化や、ページ移動量増加によるキャッシュやドライブへの負荷影響(性能低下・SSD寿命低下)が大きくなる。
 上記課題を解決するために、本発明は、基本配置を長周期負荷で決定し、長周期とは異なる閾値で、短周期負荷のページの移動判定を実施するストレージシステムを提供する。具体的には、本願の開示するストレージシステムは、第1の記憶デバイスと、第1の記憶デバイスより性能のよい第2記憶デバイスとを有する。コントローラは、複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受信した後に第1又は第2の記憶デバイスの記憶領域を、ライト要求を受信した論理領域に割り当て、又、割り当てられた記憶領域に格納されるデータを第1の記憶デバイスと第2の記憶デバイス間で再配置して前記論理領域への割り当てを再配置先の記憶領域に変更する。特に、コントローラは、第1の期間中のホスト装置からのアクセス頻度である第1のアクセス頻度と、第1の期間より短い第2の期間中のホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、第1のアクセス頻度に基づいて第1の期間周期で第1の再配置を行うとともに、第1のアクセス頻度と第2のアクセス頻度に基づいた第2の再配置の要否判定を前記ホスト装置からのアクセスに同期して行うことを特徴とする。ここで、第1の再配置の要否判定に用いる閾値と、第2の再配置の要否判定に用いる閾値とは異なる。
 本願によれば、突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現することができ、高階層でのデータヒット率を向上することができる。
本発明の第一実施形態に係る計算機システムの構成例を示す図である。 本発明の第一実施形態に係るストレージシステムの論理構成を示す図である。 本発明のページ配置の考え方を示す図である。 SSDの寿命維持の考え方を示す図である。 共有メモリ111に配置するテーブルの種類を示す図である。 ローカルメモリ118に配置するプログラムの種類を示す図である。 ダイナミックマッピングテーブル501の構造を示す図である。 論理物理アドレス変換テーブル503の構造を示す図である。 ページ毎モニタテーブルの構造を示す図である。 プール度数分布テーブルと、仮想ボリューム度数分布テーブルの構造を示す図である。 ページ再配置キューの構造を示す図である。 ホストが仮想ボリュームに対するデータの読み書きを行う際に、ストレージシステム内のホストI/O処理プログラムの処理を示したフローチャートである。 デステージ処理プログラムのフローチャートである。 度数分布作成処理プログラムのフローチャートである。 非同期再配置判定処理プログラムのフローチャートである。 ページ再配置処理プログラムの動作を表したフローチャートである。 モニタ更新&Tier判定処理の動作を表したフローチャートである。 プール単位のパラメータの設定を行う画面の例を示す図である。 Tier判定処理の動作を表したフローチャートである。 デモーション判定処理の動作を表したフローチャートである。 プロモーション判定処理の動作を表したフローチャートである。 デモーション量管理テーブルと拡張ページ毎モニタテーブル(1)のテーブル構造を示した図である。 デモーション判定処理(2)の動作を表したフローチャートである。 プロモーション判定処理(2)の動作を表したフローチャートである。 処理の効率化の考え方を示した図である。 キューのリオーダリングの動作を示した図である。 パラメータ推定方法と効率化のためのテーブル構造を示した図である。
 以下、図面に基づいて、本発明の実施の形態を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
 さらに、本発明の実施形態は、後述するように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
 以後の説明では、管理用の情報をテーブル形式で説明するが、管理用の情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やディレクトリ構造等その他の方法で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
 以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行う場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
 図1は、本発明の第一実施形態に係る計算機システムの構成例を示す図である。ホスト101は、例えば一般的なサーバにより構成され、ネットワーク103を介してストレージシステム104のポート106に接続する。ホスト101は、ストレージシステム104に対してデータのリードやライト命令を発行し、ストレージシステム104がその命令に応じてデータの読み込みや書き込みを実行する。ネットワーク103は、例えばSAN(Storage Area Network)や、イーサネット(登録商標)などにより構成する。また、管理サーバ102は、ネットワーク103を介して、ストレージシステム104の保守I/F107またはポート108に接続する。ストレージ管理者が、管理サーバ102を用いて、ストレージシステム104に対して、ストレージシステムを運用する上で必要な各種設定や管理のための命令を送信する。外部ストレージ105が接続されている場合には、ストレージシステム104のポート108に接続される。この外部ストレージ105接続の際に、ネットワーク103を経由してストレージシステム104のポート108に接続してもよい。外部ストレージ105の提供するボリュームはストレージシステム104にてストレージシステム104内部のボリュームと同様に扱うことができる。この具体的な方法については、特許文献2に記載されているため、詳細は割愛する。
 次にストレージシステム104の内部構成について説明する。ストレージシステム104の内部では、内部ネットワーク112を介してポート106、保守I/F107、プロセッサパッケージ109、キャッシュメモリ110、共有メモリ111、ポート108、ドライブ113、ドライブ114を接続する。キャッシュメモリ110は、ストレージシステム104のI/O処理のスループットやレスポンスを向上させるために、データを一時的なキャッシュとして格納するための高速アクセスが可能なメモリである。プロセッサパッケージ109は、ローカルメモリ118とプロセッサ119により構成し、複数あってもよい。プロセッサ119はホスト101からのリードやライト命令を処理するために、ドライブ115、116、外部ストレージ105とキャッシュメモリ110間のデータの転送処理などを実行する。共有メモリ111は、プロセッサ119がリードやライト命令を処理し、またストレージの機能(ボリュームのコピー機能など)を実行する上で、必要な制御用の情報を格納するメモリであり、複数のプロセッサパッケージ109A,B間のプロセッサ119で共有している情報を格納するメモリである。ローカルメモリ118は、プロセッサ119がリードやライト命令を処理し、またストレージの機能を実行する上で、必要な制御用の情報を格納するメモリであり、プロセッサ119が占有して使用できる領域である。ローカルメモリ118には、例えばプロセッサ119により実行するプログラムなどを格納する。
 ドライブ113、114は性能の異なる複数種類のドライブを含む。例えばFC(Fibre Channel),SAS(Serial Attached SCSI),SATA(Serial Advanced Technology Attachment)などのインターフェイスを持つハードディスクドライブ。ハードディスクドライブと比較し、I/Oスループット性能、I/Oレスポンス性能が高いSSD(Solid State Drive)などにより構成される。これらの複数の種類のドライブを、近い性能を持つドライブに分類したものが階層(Tier)115、116、117である。階層間の関係は性能の上下関係により定義される。通常は性能の高いドライブ(SSDなど)順に、Tier1からTier2、3と構成する。又、外部ストレージ中のドライブは使わなくなった旧機種などを接続するケースを想定し、性能が低いことを前提として最下位Tierとして管理してもよいし、ユーザが管理I/Fを通して外部ストレージの性能に応じて階層を設定してもよい。
 図2は、本発明の第一実施形態に係るストレージシステムの論理構成を示す図である。プロセッサ119がホストに提供する仮想ボリューム201は、ホスト101から認識される論理的な記憶領域であり、ホスト101からのリード又はライト命令が発行対象である。プール206は、1個以上のプールボリューム203により構成される。プールボリューム204はそれぞれドライブ113,114,外部ストレージ105のドライブの何れかの記憶領域から構成され、ドライブの所属する階層に応じて分類されている。本実施例では、SSDの階層115(プールボリューム203Aに対応)と、SASの階層116(プールボリューム203B,203Cに対応)と、外部接続の階層117(プールボリューム203D,203Eに対応)の3個の階層を持つ。
 プロセッサ119は、ホスト101がWrite命令を発行した仮想ボリューム201中のWrite命令の対象となった記憶領域に、未使用の記憶領域をプール206から所定単位(ページ)で割り当てる(205A)。次回のホスト101からの同じページへのRead/Write命令に対しては、既に割り当てられているプールボリューム203の領域に対してI/O処理を実行することにより、あたかもホスト101が仮想ボリュームに対してI/O処理を実行しているように処理される。仮想ボリューム201を用いて、使用する部分のみプールボリューム203の領域を割り当てることにより、限られた記憶容量を効率的に使用できることが可能となる。
 各仮想ボリュームを構成するページ202毎にホストからのI/O処理の特性が存在する(これをアクセスローカリティと呼ぶ)。例えば、I/Oの頻度が高いページと低いページが混在する場合、一般的にはI/Oの頻度が高いページを上位の階層に配置したほうが、システム全体の性能を向上することができる。例えば、SSDの階層(115)は100IOP、SASの階層(116)は10IOPS処理できるとする。ここで50IOPSの特性を持つページ202CにSAS階層が割り当たり、20IOPSの特性を持つページ202AにSSD階層が割りあたっている場合、ストレージシステム104は、基本的にホストからのページに対するIOPSの比率は一定であることが多いため、全体として10(SAS階層の上限)+25=35IOPSの性能しか発揮できない。この状態をネック状態と呼ぶ。ページ202CをSASから、SSDの階層へプロモーションすることができれば、ストレージシステム104は、全体として50+20=70IOPSの性能を発揮できる。
 上述のプロモーションは、具体的には、ページ204Cのデータを未使用のページ204Bにコピーし、仮想ボリューム201Aのページ202Cとプールボリューム203Bのページ204Cとの対応づけ(205C)を、仮想ボリューム201Aのページ202Cとプールボリューム203Aのページ204Bとの対応づけ(205B)に変更することにより実行する(図16のS1604)。デモーションによるデータ再配置も同様の構成により実施可能である。
 度数分布207は、各ページのI/O数の分布を表す。グラフ209は、左からI/O数の多い順番に全ページを並べたときの、各ページのI/O数を縦軸に表す。Tier割り当て閾値208(=T)は、どのI/O数のページをどの階層に割り当てるかを決める閾値である。I/O数の高いページには、例えば、Tier割り当て閾値208Aと度数分布のグラフ209の交点から、最も性能の高いページの、範囲210Aに属するページは、Tier1(本実施例ではSSD)の階層115に割り当てる。また、Tier割り当て閾値208Aと度数分布のグラフ209の交点から、Tier割り当て閾値208Bと度数分布のグラフ209の交点までの、範囲210Bに属するページは、Tier2(本実施例ではSAS)の階層116に割り当てる。また、Tier割り当て閾値208Bと度数分布のグラフ209の交点から、最小のI/O数のページまでを、Tier3(本実施例では外部ストレージ)の階層117に割り当てる。以上のようにして、I/O数の高い順番で上位階層から順番に割り当てることができる。
 Tier割り当て閾値208はストレージ管理者が値を指定してもよいし、ストレージシステム104が算出してもよい。又、Tier割り当て閾値208の初期値(ストレージシステムを起動した後、度数分布を未作成の段階時)は、例えば0として、上位階層からつめて割り当てることにすることができる。
 図3にて、本発明のページ配置の考え方を説明する。まず、本発明において、基本的なページ配置は、定められた周期(長周期)のモニタを元に決定する。具体的には図2で示したように、長周期のモニタを元に作成されたプールの度数分布207から、Tier割り当て閾値208(変数Tで表わす)を決定し、ページを振り分ける。図3の例では、T=2以上の長周期の負荷(長周期IOPS)のページをTier1に配置し、T=2を下回る長周期IOPSのページをTier2に配置する。以上のように、長周期に渡ってIO負荷量が大きいページは、長い周期で考えて安定したTier1ヒット性能が期待できることが多い。このため本発明においては、定常的なページ配置階層は、長周期IOPSを基に決定している。一方で、一般的なI/Oパターンを分析すると、短い間隔(秒~数分)で非常に高い負荷の続くページがある場合がある。こうしたI/O変化に単純に再配置周期を短くして対応すると、短期間で負荷が減衰したページが大量に下位階層に再配置されるため、全体としての高階層データヒット率を損ねることとなる。
 そこで、長周期を基準に基本配置を決めた上で、短周期の負荷(短周期IOPS)を考慮して先の基本配置用とは異なる基準にて行う階層間データ再配置とを組み合わせて実行する。つまり、長周期負荷を基準に決定した閾値(Tier割り当て閾値208)を元に、長周期/短周期負荷を判定して短周期でのデモーション対象のページを選択し、デモーション対象ページの長周期/短周期負荷よりも一定以上高い短周期IOPSのページを短周期でのプロモーション対象として選択し再配置する。さらに、前記の短周期のプロモーション/デモーションは、突発的な負荷であり、減衰が周期よりも早い可能性が高いことを考慮して予め定めた周期の長さに依存させるのではなく、I/Oに連動してTierの移動要否判定を実行することとする。本構成により、長周期の安定的なTier1ヒット率を考慮しつつ、突発的にI/Oの高いページもTier1に配置することで、全体のTier1ヒット率を向上させることが出来る。例えば、302で示したページは、長周期IOPSが3とTier1中ページで、最も長周期の負荷が低く、短周期I/Oも3IOPSである。また、301で示したページは短周期IOPSが5IOPSであり、前記デモーション対象の長周期IOPSの3IOPSよりも高いIOPSであるため、一時的にこれらのページを入れ替えることにより、長周期のみで配置した場合より高いTier1ヒット率を実現できる。
 また、前記の短周期のプロモーション/デモーションは、基本的に、Tier1(最上位階層)へのプロモーションと、そのプロモーションを実行するために空きページ領域を確保するためのTier1からのデモーションを優先して実行すべきである。高負荷時等の特殊な場合を除いて、Tier1のドライブレスポンスは最も小さい。よって最上位階層であるTier1を単周期プロモーション実行の再配置先とすることが全体の平均レスポンス短縮に最も効果があるためである。
 上記踏まえて、本実施例ではTier1を短周期再配置の対象とするが、Tier数が3以上の場合、Tier1より低い階層も含めて短周期再配置の対象としても良い。同様に、各Tierの平均ドライブレスポンスが小さい順に、動的に短周期再配置対象とする優先順位を決めてもよい。例えば各Tierのドライブ稼働率によって、レスポンスは異なる。したがって、Tier1の稼働率がきわめて高い場合に、Tier2~のレスポンス時間を上回ってしまう場合がある。例えば、Tier1の平均ドライブレスポンスが10msで、Tier2の平均ドライブレスポンスが5msの場合は、本願で開示する短周期でのプロモーション、デモーションをTier2へのプロモーションとその空きページ領域確保のためのデモーションについて実行するようにしてもよい。
 図5に共有メモリ111に配置するテーブル、図6にローカルメモリ118に格納されるプログラムを示す。これらのテーブル、プログラムの配置場所は例似する場所に限らず、各ローカルメモリ118の他、共有メモリ111ドライブ113等であってもよいし、これらの間で階層管理された空間でもよい。
 ダイナミックマッピングテーブル501は、仮想ボリューム201の各ページと、割り当てられるプールボリューム203の領域と、当該ページのモニタ情報との対応関係とを管理するテーブルである。論理物理アドレス変換テーブル503は、パリティグループ(PG)と、プールボリュームと、プールボリュームのデータを格納する物理ディスクのアドレスとの対応関係を管理するテーブルである。ページ毎モニタテーブル502は、I/O数を含む、各ページのモニタ情報を管理するテーブルである。仮想ボリューム度数分布テーブル504は、仮想ボリュームに関する、I/O数範囲毎のページ数の分布を管理するテーブルである。プール度数分布テーブル505は、プールに関する、I/O数範囲毎のページ数の分布を管理するテーブルである。ページ再配置実行キュー506は、ページ再配置を実行する際の待ちキューである。設定情報テーブル507は、管理I/F等から設定される各種パラメータを管理するテーブルである。キャッシュ管理テーブル508は、キャッシュメモリ110にデータを格納する際にキャッシュメモリにあるデータのダーティ/クリーン状態管理を保持するテーブルである。仮想ボリュームへの書き込みデータをキャッシュする場合には、キャッシュメモリ110のアドレスと対応する仮想ボリューム201のページを特定するアドレスとも対応づけて管理される。
 図6で説明するプログラムはプロセッサ119にて実行される。ホストI/O処理プログラム601は、ホスト101からのI/O受領時に、仮想ボリューム201に対するRead/Write要求を処理するプログラムである。デステージ処理プログラム604は、キャッシュメモリ上の物理ディスク未反映データを、物理ディスクに格納するプログラムであり、ホストI/Oとは非同期に実行される。度数分布作成処理プログラム602は、Tier割り当て閾値を計算するプログラムであって所定周期(具体的には前記長周期の間隔)で実行される。モニタ更新&Tier判定処理603はページ毎モニタテーブル502の各種情報の更新と、ページのTier移動の判定をホストI/O処理601に同期して実施する。本プログラムは、Tier1へのプロモーション又はTier1へのデモーションを実行する。非同期再配置判定処理プログラム606は、図14の度数分布作成が完了すると起動され、所定周期にてページ毎モニタテーブル502を参照し、ページ毎に適切なTierの判定を実行するプログラムである。本プログラムは、Tier1へのプロモーション以外の動作を実行する。ページ再配置処理プログラム605は、ページを再配置するプログラムであり周期的に実行される。
 ページ毎モニタテーブル502や、プール度数分布テーブル505はホスト101や管理サーバ102上に配置されても良く、この場合は、度数分布作成処理プログラム602はホスト101や管理サーバ102上で動作する。
 図7にて、ダイナミックマッピングテーブル501の構造を例示する。ダイナミックマッピングテーブルの1つのエントリは、仮想ボリューム中のページと当該ページに割り当てられるプールの領域を関連づける。仮想ボリューム中のページは仮想ボリューム番号702と、該仮想ボリューム内の該ページの開始論理アドレス703とで識別する。また、プールボリュームの各領域は、プール番号701とプールボリューム番号704と、プールボリューム内の該領域の開始論理アドレス705とで識別する。一方、モニタ情報は、モニタ情報インデックス番号706で識別する。該モニタ情報インデックス番号は、ページ毎モニタテーブル502の、モニタ情報インデックス番号901に対応するが、直接ダイナミックマッピングテーブル501の要素として格納してもよい。 又、ダイナミックマッピングテーブル501は、所定の初期値データ(例えば0データ)が格納されるデフォルト値ページを管理する。容量効率考慮して、デフォルト値ページはプールに少なくとも1つ以上あればよい。データの書き込みが一度もされていない仮想ボリュームの領域を特定する、仮想ボリューム702の論理アドレス703に対応するプールボリューム番号と論理アドレスには、デフォルト値ページのアドレスが格納する。
 またダイナミックマッピングテーブル501は、プール206内で仮想ボリュームに未割当のページを特定するプールボリューム番号と論理アドレスを管理する。サーバから仮想ボリューム702の論理アドレス703にデータの書き込みが一度も無かった箇所に初めてデータの書き込みがあった場合は、前記空きページのプールボリューム番号と論理アドレスを書き込み先の論理アドレス703に対応づける。
 図8にて、論理物理アドレス変換テーブル503の構造を示す。論理物理アドレス変換テーブルの1つのエントリは、プールボリューム204と、該プールボリュームのデータを格納するPG(パリティグループ)番号と物理ドライブ(113または114)の領域との対応関係を示す。プールボリュームは、プールボリューム番号801で識別する。プールボリュームは、PG上に複数定義される。プールボリュームに対応するPGはPG番号802で識別する。また、PGに対応する物理ドライブの領域は、物理ドライブの番号803と、該物理ドライブの開始アドレス804とで識別する。
 このプールボリュームは、プールへの増設・減設の単位を表している。ただし、この増設単位は、PG上に定義された論理VOLではなく、PGそのものでもよい。その場合は、ダイナミックマッピングテーブルに格納するプールボリューム番号704と論理アドレス705を、PG上のアドレスとしてもよい。
 図9にて、ページ毎モニタテーブル502の構造を示す。ページ毎モニタテーブルの1つのエントリは、モニタ情報インデックス番号901で識別される特定のページ202のモニタ情報を示す。I/Oカウンタ902は、一定の周期のI/O数を格納する。この周期は、前述した度数分布作成処理プログラム602の動作する周期と同じであり、度数分布作成処理プログラム602はこの一定の周期のI/O数を処理の対象とする。
 本実施例では複数の長周期I/Oカウンタ(A面)902Aと長周期I/Oカウンタ(B面)902Bとを設ける。うち、一方をホストI/O処理プログラム601とデステージ処理プログラム604によるモニタ採取用のカウンタとし、他方を度数分布作成処理602とモニタ更新&Tier判定処理603と非同期再配置判定処理プログラム606用のカウンタとして切り替えて利用することで、モニタを採取しながら、前周期の確定したモニタデータを用いてTierを判定してページを再配置する処理を、並行に実行できる。
 テンポラリカウンタ903は、短周期I/Oを測定するために用いられる。前回テンポラリカウンタ満了時刻904に示す時間から、現在までの間に、何回I/Oがカウントされたかを示す。テンポラリカウンタ903の値がN回(=テンポラリカウンタ満了値)にカウントアップされるときに、前回テンポラリカウンタ満了時刻904は現在時刻に更新され、再度テンポラリカウンタを0にする。テンポラリカウンタ903が0となる契機で、(前回テンポラリカウンタ満了時刻904-現在時刻)÷Nにより、長周期とは別の周期のIOPSが計測される。以上のように負荷をカウントすることにより、Tier閾値設定のために設定された所定周期に依存せずに、N回到着する期間が短ければ短いほど(IOPSが高ければ高いほど)短周期の負荷を計測することが出来る。
 テンポラリカウンタ903を、差分のN回を表現する情報量分のカウンタのみをアクセスレイテンシの短く容量の小さいローカルメモリに配置し、前回テンポラリカウンタ満了時刻のみを大容量の共有メモリに配置することもできる。これにより、一般的にアクセスレイテンシの長い共有メモリへのアクセスを1/N回に1回とすることが出来、テンポラリカウンタ満了時刻のためにローカルメモリを大量に使わなくとも、I/O処理に対するプロセッサ処理増加影響を小さくすることが出来る。
 また、ページ毎モニタテーブル502に、リードライト比率(又はリード量/ライト量)やシーケンシャル比率(又は平均I/O長、又は一般的なシーケンシャル性の判定方法(I/Oの連続性などを判定する))を持って、Tier判定時にこれらの情報を用いてもよい。例えば、ライト率の高いページはキャッシュメモリにキャッシュヒットするため、リード率の高いページを優先してTier1に配置した方が望ましい。また、Tier1がSSDであった場合、SSD寿命維持を目的として、リード率の高いページを優先してTier1に配置することなどが考えられる。
 また、ページ毎モニタテーブル502に、移動平均用カウンタを保持し、複数周期の移動平均(指数移動平均、単純移動平均等)で算出した値を長周期のカウンタとすることにより、従来技術1に示した技術と本発明の内容を組み合わせて、例えば週末等の周期的な負荷低下による不要デモーションを効率的に回避してもよい。
 図10にて、プール度数分布テーブル505と、仮想ボリューム度数分布テーブル504の構造を示す。プール度数分布テーブル505は、プール206に関する、I/O数範囲毎のページ数の分布を管理している。プール度数分布テーブルの1つのエントリは、あるプールに関するI/O数の範囲と、該I/O数の範囲に含まれるページ数を示す。負荷レベル1002は、負荷の度合いをレベル分けしたものであり、負荷レベル1002のカッコ内の値は、それぞれのレベルで定義したIOPS開始値を示している。該負荷レベル範囲の終了値は、(次のエントリのIOPS数範囲の開始値-1)となる(IOPSが正の整数の場合)。ページ数1003は、該負荷レベル1002の範囲に含まれるページ数に対応する。また、本テーブルでは、Tier割り当て閾値208も管理する。Tier割り当て閾値は0IOPS以上の値であればよく、必ずしも各範囲の境界値である必要はない。また、Tier割り当て閾値は負荷レベルを値としてもよい。
 仮想ボリューム度数分布テーブル504は、仮想ボリューム201に関する、I/O数範囲1005毎のページ数1006の分布を管理している。テーブル構造は、プール度数分布テーブル505と同じである。
 図11にて、ページ再配置キュー506の構造を示す。ページ再配置キュー506は、プロモーション用キュー1101と、デモーション用キュー1102に分類される。これらのキューは、ストレージシステム単位に持ってもよいし、プール単位又はPG単位、プールボリューム単位に持ってもよい。
 モニタ更新&Tier判定処理603又は、非同期再配置判定処理プログラム606は、各種閾値を用いたTier判定の結果、ページ移動を必要と判断した場合は、移動パターン(プロモーション又はデモーション)に応じて、各キューにエントリ1103をエンキューする。エントリには、移動先ページへの参照(プールボリューム番号704、論理アドレス705に相当)と移動元ページへの参照(プールボリューム番号704、論理アドレス705に相当)が含まれる。参照とは、ページ毎モニタテーブル、ダイナミックマッピングテーブルの情報への参照を表す。
 本キューにエンキューされたエントリを元に、ページ再配置処理プログラムはページの再配置(仮想ボリュームのページ(仮想ページ)に対応するプールボリュームのページ(物理ページ)の、移動元物理ページから移動先物理ページへのデータコピーと参照の張り替え処理)を実行する。通常の環境では、ホストI/Oによるドライブ側の負荷量によって、再配置の最大性能は変化するが、本キューを用いることにより、再配置の最大性能が変化する場合でも、安定した再配置の実行を実現できる。
 図12は、仮想ボリューム201に対するデータの読み書きの処理を示したフローチャートである。ホスト101からI/O処理要求を受けると、ホストI/O処理プログラム601が実行され本フローが実行される。
 仮想ボリューム201へのデータのリード要求かデータのライト要求かを判定する(S1201)。I/O処理要求がライトの場合、ダイナミックマッピングテーブル501を参照して当該仮想ページがプールページを割り当て済みかどうか判断する。未割り当ての場合、未使用のページをプールから割り当てる(S1209)。
 キャッシュメモリ110にI/O処理要求に対応する仮想ボリューム上のアドレスに対応した領域が確保されているか否かを確認し、確保されている場合もしくは確保されていなければキャッシュメモリ110の領域を確保する(S1210)。次に、ホストにライトデータの転送可能であることを応答し、ホストから転送されてくるライトデータを前記確保されているキャッシュメモリ領域に書き込み、キャッシュ管理テーブル508にまだディスクに書き込んでいない領域であるとしてダーティフラグを立てる(S1211)。ダーティフラグは、キャッシュメモリ上のデータがディスクに反映されていない状態を示す情報で、キャッシュメモリの領域を管理するキャッシュ管理テーブル508に保持される。ホストにライトI/O処理が完了したことを応答(S1212)してI/O処理プログラムは終了する。
 一方S1201で、I/O処理要求がリードであった場合、I/O処理要求に対応する仮想ボリューム上のアドレスに対応したデータがキャッシュメモリ上に存在(キャッシュヒット)するか否かを確認する(S1202)。前記キャッシュヒットの場合、キャッシュメモリ上のデータをホストに転送する(S1208)。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、I/O処理プログラムは終了する。
 S1202でキャッシュミスした場合、リード要求先仮想ボリュームのアドレスに対応下データを格納するための領域をキャッシュメモリに確保する(S1203)。次に、ホストのリード要求先仮想ボリュームアドレスに、プールからページ202を割当てられているか否かを、ダイナミックマッピングテーブル501を用いて確認する。割り当てられていなかった場合は、ダイナミックマッピングテーブル301を用いてデフォルト値の格納ページのドライブのアドレスを算出し(S1204)、ドライブからデフォルト値を前記確保したキャッシュメモリの領域に転送する(S1205)。
 リード要求先仮想ボリュームアドレスに、ページ202が割り当てられていた場合は、ダイナミックマッピングテーブル501を用いて割り当てられたプールボリューム番号と論理アドレスを求め、更に論理物理アドレス変換テーブル503を用いて物理ドライブ番号、物理開始アドレスを求める(S1204)。次に算出したドライブアドレスからデータを前記確保したキャッシュメモリの領域に転送する(S1205)。
 前記キャッシュメモリへのデータ転送時にダイナミックマッピングテーブル501のモニタ情報インデックス番号に対応するページ毎モニタテーブル502の各種情報を更新し、Tier判定処理を実行する(S1206)。続いて、前記ドライブからキャッシュメモリ上に格納したデータを当該キャッシュメモリからホストに対してデータを送信する(S1207)。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、I/O処理プログラムは終了する。
 図13は、デステージ処理プログラム604のフローチャートである。図12に記したように、I/O処理プログラムは、ホストからのデータの書き込み要求に応じてキャッシュメモリにホストのライトデータを書き込んだ後、ダーティフラグを立てる。
 キャッシュ管理テーブル508を参照し、S1211にて立てられたキャッシュメモリ上にダーティフラグがあるか定期的に確認する(S1301)。もしダーティフラグが立っているキャッシュ領域があれば、キャッシュ管理テーブル508の仮想ボリューム番号と論理アドレスに基づき、ダイナミックマッピングテーブル501から割り当っているプールボリューム番号と論理アドレスを求める。
 このとき、プールボリューム番号論理アドレスがデフォルトページのアドレスであった場合は、新規データを書き込むために、ダイナミックマッピングテーブル501から新規空きページを割当てる。そして新規割当てページのプールボリューム番号と論理アドレスをダイナミックマッピングテーブル501の本デステージ処理に対応する仮想ボリューム番号論理アドレスに対応させて格納する。プールボリューム番号と論理アドレスが求まった後、論理物理変換テーブルで、ドライブのアドレスを求める(S1302)。前記S1302で求めた、ドライブのアドレスに対して、キャッシュメモリ上のダーティデータを書き込む(S1303)。ここで当該データの、ダーティフラグはOFFとなりクリーン状態になる。
 そして、ダイナミックマッピングテーブル501のモニタ情報インデックス番号に対応するページ毎モニタテーブル502のI/Oカウンタ値を更新し、Tier判定処理を実行する(S1304)。更にキャッシュメモリ上にあるかチェックする(S1301)。もし未反映データがなければ、終了し、未反映データがあれば、再度S1302から実施する。
 図14は、度数分布作成処理プログラム602のフローチャートである。度数分布を未作成の仮想ボリュームがあるか否かを確認する(S1401)。もしあれば、当該仮想ボリューム内で度数分布作成のために未処理ページがあるか否かをボリュームの先頭から確認していく(S1402)。未処理ページがあれば、長周期のIOPSを算出し、対応する度数分布の負荷レベルのページ数を加算する(S1403)。長周期のIOPSは、例えば直前の周期で採取した面の長周期I/Oカウンタ902の値÷周期(秒)により算出が出来る。よって、IOPS採取周期と本度数分布作成処理実行の周期は同じであることが望ましい。図9で述べたように、移動平均値を長周期のIOPSとして算出してもよい。
 S1402に戻ってボリュームの後端まで実施もしくは処理している仮想ボリュームに関し未処理ページが無いことがわかったら、他の仮想ボリュームが無いか確認するために、S1401に戻る。次に、プールの度数分布を作成する(S1404)。プールの度数分布は、仮想ボリュームの度数分布の合計値を計算することにより算出する。具体的には、仮想ボリューム度数分布テーブル504において、対象プールに属する各仮想ボリューム番号1004のI/O数1005に対応するページ数1003の総和を求めて、プール度数分布テーブル505のI/O数1005に対応するページ数1005として格納する。
 続いてTier割り当て閾値208を計算して決定する(S1405)。Tier割り当て閾値208は、各Tierについて、Tierのポテンシャル(処理できる最大のI/O数)又はTierの容量何れかを超える限界点から、最大のページ割り当て量の範囲210を決定し、範囲210と度数分布のグラフ209の交点から、Tier割り当て閾値208を算出する方法がある。または、管理端末などからユーザが指定した閾値を使用する方法でもよい。
 図15は、非同期再配置判定処理プログラム606のフローチャートである。非同期再配置判定処理プログラム606の主な役割は、Tier1へのプロモーション以外のデータ移動と、短周期のIOPSでプロモーションしたページのIOPSが低くなった場合の回収(Tier2又は3へのデモーション)である。Tier1へのプロモーションは、モニタ更新&Tier判定処理によって、別途優先して実施されるため、非同期再配置判定処理プログラム606で実行しなくてもよい。ただし、Tier1へ短周期のIOPSでプロモーションしたページは、仮にその後ホストI/Oが来なかった場合、モニタ更新&Tier判定処理によるページ移動判定が実行されないため、Tier1に滞留してしまう可能性がある。したがって、回収(Tier1からTier2又は3へのデモーション)のために非同期再配置判定処理プログラム606を実行すると効率的にTier1の容量を使うことが出来る。
 まず、ページ再配置未処理の仮想ボリュームの有無を確認する(S1501)。もしページ再配置未処理の仮想ボリュームが有れば、対象仮想ボリュームを先頭から後端に向かって順次、割当たったページ毎に再配置要否を確認する(S1502,S1503)。再配置要否を確認とは、当該ページの長周期IOPSと短周期IOPSと、対象のプールのプール度数分布テーブル505のTier割り当て閾値208から、現在いるTierのままでよいか異なるTierに移動すべきかを判定することである。例えば、Tier1とTier2のTier割り当て閾値208Aと、Tier2とTier3のTier割り当て閾値208Bについて、対象のページのI/Oカウンタ702のI/O数と比較する。ここで、長周期IOPSの値が、Tier割り当て閾値208Aよりも小さく、かつTier割り当て閾値208Bよりも大きく、かつ対象のページの現在のTierがTier1だった場合、対象のページはTier2にデモーションするべきなので、再配置は“要”となる。ただし、先ほど述べたように、本ページが短周期IOPSが高くなったことにより再配置されている、つまりモニタ更新&Tier判定処理によるページ移動によってTier1にプロモーションされている場合で、短周期IOPSの値が、低下していない場合(Tier割り当て閾値208Aの値よりも一定量以上多い場合)には、再配置は“不要”としてもよい。また、対象のページの現在のTierがTier2だった場合は、既に対象のページはTier2に配置されているため、再配置は“不要”となる。対象のページの現在のTierは、ダイナミックマッピングテーブル501の仮想ボリューム702の論理アドレス703とプールボリューム番号704との関係から、プールボリューム番号704により、現在どのTierに属しているかを判断できる。
 再配置要の場合、対象ページを再配置するために、ページ再配置キューにエンキューする(S1504)。再配置否の場合と対象ページを再配置した後は、仮想ボリューム内の次ページが再配置対象ページか否かを確認する(S1502,S1503)。仮想ボリューム全体に渡って再配置処理を行った後は、別の再配置未処理の仮想ボリュームをチェックし、ページ再配置未処理の仮想ボリュームが無くなるまで行う(S1501)。尚、周期処理であった場合は、周期処理の終わりで一度ページ再配置プログラムは終了し、次の周期処理で改めてページ再配置プログラムによってページ再配置処理は継続されていく。また周期の後端までに再配置処理が終了していた場合は、その時点で一度ページ再配置処理終了し、次の周期で改めて仮想ボリューム毎に再配置処理が行われる。
 図16は、ページ再配置処理プログラムの動作を表したフローチャートである。本処理は、ページ単位に再配置を実行する処理であり、システム全体で多重に動作する。本処理は、ページ再配置実行キュー506からエントリ1103をデキューした契機で実行される。本処理は、エントリ1103のデキュー時に、図11で説明したエントリに含まれる、仮想ページ201の識別子と、移動元の物理ページの識別子、移動先の物理ページの識別子を入力として実行される。まず、仮想ページの識別子の領域がキャッシュ上にあるかどうかを、キャッシュ管理テーブルを参照して判定する(S1601)。キャッシュ上にある場合は、ステップ1604に進む。また、ステップ1601でキャッシュ上にない場合は、キャッシュメモリを確保し、キャッシュ管理テーブルを更新して(S1602)、対象データのステージング処理を実行する(S1603)。本ステップでは、移動元の物理ページのデータをキャッシュメモリ上にステージングする。
 その後、ページマッピングを切り替える(S1604)。具体的には、ダイナミックマッピングテーブル501上の仮想ページに対応する物理ページの識別子を、移動先の物理ページの識別子に更新することにより、実行する。その際に、移動元のページは、未使用ページとなる。その後、キャッシュ管理テーブル上の当該キャッシュ領域のダーティビットをONに更新して(S1605)、処理を終了する。ダーティビットをONとすることで、デステージ処理プログラム604によって、移動先の物理ページにデータが非同期にデステージされる。
 図17は、モニタ更新&Tier判定処理の動作を表したフローチャートである。本処理は、リード時にはI/O処理プログラムS1206でリードコマンドに同期して実行され、ライト時にはまとめ書きプログラムS1304でライトコマンドとは非同期に実行される。モニタ採取は、ドライブへのコマンド発行タイミングで実行する他に、ホストI/Oの受領契機でキャッシュヒット分も含めてモニタするという考え方もある。本発明では、以降で説明するように、モニタの更新の契機で、Tier判定処理を実行する。
 まず本処理が開始されると、モニタのカウントアップ処理を実行する(S1701)。具体的には、当該ページに対応するページ毎モニタテーブルのエントリについて、現在の周期における採取中の面の長周期I/Oカウンタ902をカウントアップし、テンポラリカウンタ903をカウントアップする。初回I/O時は、前回テンポラリカウンタ満了時刻に現在時刻を格納する。モニタのカウントアップ後、テンポラリカウンタ903がNになる場合は、(現在時刻-前回テンポラリカウンタ満了時刻)÷Nから、短周期IOPSを算出する。その後、Tier判定処理へと進む(S1703)。テンポラリカウンタがN以上とならない場合は、処理を終了する。この短周期IOPSの算出方法は、(現在時刻-前回テンポラリカウンタ満了時刻)が所定の周期を超える場合には、所定の周期に対して短周期ではなくなる。よって、(現在時刻-前回テンポラリカウンタ満了時刻)が所定の時間以上となる場合に、計測中断しカウントをデフォルト値に戻すことにしてもよい。また、以上で述べた短周期IOPSの算出方法は、一例を示したものであり、所定の周期よりも短い間隔でのIOPSを計測する手段であれば他の手法を採用することも可能である。例えば例えば、実施例4に記載の、分散値を用いた短周期負荷量の見積もり方法を用いてもよい。
 Tier判定処理(S1703)は、各種閾値(Tier割り当て閾値208、プロモーション閾値、デモーション閾値)により判定を実施するが、詳細については実施例2及び3に記載する。Tier判定処理(S1703)の結果、ページの移動が必要(S1704のY)であれば、再配置の実行ページをページ再配置実行キュー506にエンキューして(S1705)、処理を終了する。ページの移動が不要(S1704のN)であれば、処理をそのまま終了する。
 図18は、プール単位のパラメータの設定を行う画面の例を示す図である。プール単位のGUI画面1801は、設定対象のプールを特定できるプール番号を表示する領域1802と、短周期再配置のON/OFFを設定する領域1803と、短周期再配置をONと選択した場合の詳細設定のON/OFFを設定する領域1804と、詳細設定の内容を設定する領域1805にて構成される。本画面で設定した情報は、設定情報テーブル507に保存する。
 短周期再配置の設定1803をOFFとした場合は、短周期モニタによる判定処理を実行せずに、Tier判定を非同期再配置判定処理プログラム606でTier1へのプロモーション含めて再配置を実施する。具体的には、モニタ更新&Tier判定処理において長周期のモニタカウントアップのみを実行し、ステップS1702以降の処理は実行しない。一方、短周期再配置の設定1803をONとした場合は、本実施例で述べたとおりの動作となる。
 短周期再配置の設定1803をONとした場合は、短周期詳細設定1804を設定可能となり、1805の各項目の入力が可能となる。短周期詳細設定1804をOFFとした場合は、各種パラメータはデフォルト値またはストレージシステム内で自動的に算出した値によって動作する。
 短周期閾値1806は、ページの短周期IOPSのプロモーション判定に用いる閾値であり、Tier割り当て閾値208などからストレージシステム内で自動的に算出する。算出の具体的な方法は、実施例2、3、4でその例を説明する。短周期用SSD容量1807は、短周期再配置に用いるSSD(Tier1)の記憶容量を指定するための設定である。短周期詳細設定1804をOFFとした場合は、対象となる容量は動的に決定される。詳細は実施例3で説明する。
 キュー方式1808は、図11で説明したキューの処理順序を指定するためのものであり、選択肢としては「リオーダリング(実施例4にて説明)」又は「先着順(FIFO)」が考えられる。またその他の、一般的に知られたスケジューリングアルゴリズム(HOL、LIFOなど)を指定するようにして、ページ再配置実行キュー506のエンキュー又はデキュー方法をその設定に対応した動作とさせてもよい。短周期詳細設定1804をOFFとした場合は、設定情報テーブル507に保存したデフォルトの方式(例えば、「リオーダリング」でもよい)を用いることにする。短周期負荷継続時間(St)1809は、短周期の負荷が継続する時間のパラメータ設定のための項目である。この継続時間は、ホストI/O負荷のパターンや特性に依存するため、本実施例のようにユーザの設定可能とすることができる。短周期詳細設定1804をOFFとした場合は、Stは設定情報テーブル507に保存したデフォルトの値(例えば1分)、又は実施例4で例示する方法にて算出される値を用いる方法がある。
 短周期カウンタ満了回数(N)1810は、短周期IOPSを算出するカウンタの満了値である。短周期詳細設定1804をONとして、この回数をユーザが指定することで、突発的な負荷上昇に対する敏感度(検出時間の長さ)をユーザが設定することが出来る。短周期詳細設定1804をOFFとした場合は、Nはデフォルトの値(例えば、64回)または実施例4にて例示される方法で算出された値を用いることができる。
 短周期補正係数(M)1811は、短周期IOPSを長周期IOPSと比較してどの程度プロモーションされにくくするかを設定するための情報である。例えば、長周期IOPSが5以上の場合にプロモーションすると仮定すると、短周期IOPSは、M×5以上の場合にプロモーションするように動作させてもよい。この値は、後程説明する方法等により動的に決定してもよいし、あらかじめ決められたデフォルト値を用いてもよいし、本設定画面でユーザが指定した値としてもよい。
 なお、上記で述べた詳細設定の項目は、一部のみを詳細設定としてそれ以外を自動設定とするようにしてもよい。又、上記で述べた詳細設定の設定値を「preSet1」のようなラベルで保存しておき、領域1805で簡便に設定できるようにしてもよい。なお、上記で述べた各種設定項目は、上記の例ではプール毎で説明したが、プール毎だけでなく、仮想ボリューム毎/物理ボリューム毎/ページ毎に指定してもよい。その場合は、設定情報テーブル507は対象リソース(仮想ボリューム毎/物理ボリューム毎/ページ毎)ごとにパラメータを保存するためのテーブルを持つ。
 次に、実施例2としてTier判定方法の一例を開示する。
図19は、図17のS1703で実施例される、本実施例のTier判定処理の動作を表したフローチャートである。
 まず本処理が開始されると、(A)デモーション判定を実行する(S1901)。本判定処理は、当該ページがデモーション対象かどうかを判定する。詳細については、図20で説明する。その結果、デモーション要と判定された場合(S1902のY)は、ページ移動要を返却(S1905)して終了する。デモーション不要と判定された場合(S1902のN)は、(B)プロモーション判定を実行する(S1903)。本判定処理は、当該ページがプロモーション対象かどうかを判定する。詳細については、図21で説明する。その結果、プロモーション要と判定された場合(S1904のY)は、ページ移動要を返却(S1905)して終了する。プロモーション不要と判定された場合(S1904のN)は、そのまま終了(ページ移動不要)する。上述の様に、Tier1の記憶容量の空きを確保するために、プロモーションが実行前にデモーションを実施する。
 図20は、デモーション判定処理の動作を表したフローチャートである。まず、Tier1の使用記憶容量が一定以上であるか判定する(S2001)。本ステップは必須ではないが、本判断をいれることで、Tier1の空き記憶容量を確保のために必要な場合にデモーションが行なわれ、予めTier1に空き容量を確保しておくことで突発的なプロモーションに要する時間を短縮出来る。使用記憶容量が閾値を超えていない場合(S2001のN)は、処理を終了する。また、処理を終了する前に、デモーション閾値を最小値にリセットして(S2006)もよい。DT(デモーション用閾値)の初期値は、例えば0とする。使用容量の他に、Tier1の性能稼働率が一定以上を超えているかの判断によってS2002に行くか分岐しても良い。性能稼働率が高いとTier1のレスポンス悪化を引き起こしてしまうため、一部データをデモーションすることで負荷を退避させることができる。
 使用記憶容量が閾値を超えている場合(S2001のY)は、デモーション閾値によるページのTier判定を実施する(S2002)。具体的には、長周期IOPSが、DT以下であり、且つ短周期IOPSがDT×M以下である場合に(S2002のY)、“デモーション要”を返却(S2004)し、処理を終了する。この“M”は、1より大きい数であって、設定情報テーブル507に格納している値を使用する。Mの値は、短周期のほうが長周期と比較して多くのIOPSを必要とするように調整している。これは、短周期IOPSは、負荷が続くかどうかの確度の低いためにページ再配置回数が多くなる傾向にある点を考慮し、短周期IOPSに基づいての再配置を抑制するために短周期IOPSの閾値を高くするためのものである。Mの値は、Tier1へのヒット率などを評価関数として、一般的に知られたフィードバック制御などの手法を用いて、Tier1へのヒット率が最適となるように、動的に調整してもよい。
 必須ではないが、次にDTの値を削減(S2003)してもよい。DTの値がレベルである場合は、レベルを固定量下げることにより実現し、DTの値がIOPSである場合は、1より小さい値(固定量)の乗算又は、固定量の減算などにより実現してもよい。閾値を下げることで、次のフローにおいて、よりIOPSの低いTier1中のページのみがデモーション対象となる。
 また、S2002でNの場合、DTの値を増加(S2005)させ(但し、PTを超えないようにする。PTを超えると、デモーション対象がプロモーション対象よりもIOPSが多くなるため、Tier1へのIO量が減ってしまうためである)、処理を終了する。
 以上のように、T1容量が足りない場合でかつデモーション対象のページがある場合に、DTの値を減少させ、T1容量が足りない場合でデモーション対象のページがない場合にDTの値を増加させる。本構成により、プロモーション対象とすべきページを格納するための空き容量を、できるだけ適切なデモーション(つまり、IOPSの低いページのデモーション)の実行で確保すべく、デモーション閾値を動的に制御して出来るだけI/O数の低いページを移動対象とすることが出来る。
 尚、ステップ2003の前に、ドライブ負荷や、再配置実行中のページ数の量などが一定以上である場合に、ページを移動不可と判定し、ステップ2004へ行かずに処理を終了させてもよい。以上により、その時のドライブ負荷によって変動する単位時間あたりのページ移動可能量を考慮した再配置を可能とすることが出来る。
 尚、デモーション閾値は、パリティグループごとに持ってもよい。また、Tier1がSSDの場合に、ホストI/OによるWriteが集中して規定のSSD寿命を維持するのが困難かを判定するステップを追加しても良い。寿命維持が困難との場合にはWrite負荷の高いページをデモーション対象とするステップを設ける。この場合、デモーション対象はPG単位であることが望ましい。
 図21は、プロモーション判定処理の動作を表したフローチャートである。プロモーション判定処理は、プロモーション閾値(PT)を、限られた制約条件(NF寿命、移動スループット)の中で、短周期IOPSが出来るだけ高いページをプロモーションするように、動的に制御(PTを増減させる)する。PTの初期値は、例えばTとすることができる。
 まず、Tier1使用容量が空きなしの場合(S2101がY)の場合は、Tier1へのページ移動が出来ないため、処理を終了する。Tier1使用容量が空きありの場合(S2101がN)の場合は、長周期IOPSがPTを超えているか、又は短周期IOPSがPT×Mを超えているかを判定する。この“M”は、図20で説明したものと同趣旨であり、同構成である。デモーション用Mとは別の値を設定してもよい。
 S2102でYの場合は、“プロモーション要”を返却(S2105)し、処理を終了する。S2102でNの場合は、そのまま処理を終了する。ここで、Tier1がSSDの場合(特に消去回数の限界値が低いMLC)などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい(S2103、S2107)。
 図4に示したグラフは、SSDの寿命維持のためのプロモーション速度の調整の考え方を表している。SSDでは書込み回数の制限があり、ライトが頻繁におきると寿命が短くなる。よって、SSDに対するWriteが発生するプロモーション処理をあまりに高頻度に行うとSSDの寿命が短くなってしまう(デモーションはSSDからリードするのみであるため、基本的にこのような課題はない)。グラフの縦軸401は、プロモーションによるSSD累積消去回数を表す。横軸402は、ストレージシステムの使用年数の経過を表す。Wlimit403は、プロモーションによる最大限界のSSDの消去回数を表す。例えば、Wlimit403は、SSDの限界消去回数(一般に、SLC(Single Level Cell)の場合約10万回、MLC(Multi Level Cell)の場合約1万回の消去回数である)に対して所定%程度を設定することができる。例えば、ストレージ製品の寿命は5年程度に設定されていることが多い。プロモーションによる、消去回数の推移を例示したグラフが404である。また、それに対して目標とするプロモーションによる消去回数のペースを使用年数に従って累積値で表したグラフが405である。突発的にI/Oが多くなり負荷が高くなるとプロモーションによる移動量が多くなる。よって、本実施例では消去回数がペース405を超過しないように、短周期プロモーションの閾値を上げて制御する。本構成により、移動するページを効率的に絞込み(より高いIOPSのページに限定し)、SSDへのヒット率を維持しつつプロモーションによるSSD消去回数を一定の範囲に抑えて長寿命化を可能にする。また、突発的な負荷が来ない場合は、ページの移動量が少なくなるため余剰の消去回数を貯めておくことが出来る。この短周期プロモーションの閾値の調整は、パリティグループごとに実施するのが効率的である。ただし、プール単位やストレージシステム単位で持ってもよい。
 以上のような制御を実現する方法として、例えば、ストレージシステムが、各パリティグループごとに累積のプロモーション回数と使用年数(Uy)の情報を保持する方法が考えられる。累積のプロモーション回数から、プロモーションによるSSDパリティグループの累積消去回数を算出するには、例えば以下の式を用いる。
 プロモーションによるSSDパリティグループの累積消去回数(Wc) = (パリティグループに対するプロモーション回数×ページサイズ/SSDパリティグループ容量)×補正係数(RAIDレベルやSSDの特性(SSD内のページサイズやWriteAmplificationなど)に応じて決定)
 以上により算出したWcから、例えば以下の式により、S2103、S2107ペースの判定を実施する。
  (Wlimit÷ターゲットの使用年数(例:5年)) ≧ (Wc÷Uy)?
  上記の式が真である場合、プロモーションを実行しても寿命のペースを維持していると判定できる。また、上記の式が偽である場合、プロモーションを実行した場合、寿命のペースを上回っていると判定できる。また、必要な情報(累積のプロモーション回数、使用年数)または、それらを類推するための情報(ライト可能量、寿命率、ページサイズ、WriteAmplification効率など)はSSDデバイスからSCSIコマンド等により取得してもよく、前記の情報をローカルメモリ118又は共有メモリ111に保持しておいてもよい。
 また、ペースの判定は、SSDの使用容量率に応じて動的に変更してもよい。例えば、システム稼働の初期段階では、SSDの使用容量率が低く、SSDのヒット率が低い。しかし、このような状態(大量のページ移動を必要とする状態)は、システムの初期段階の一時期のみであることが多いため、一時的にペースを超えることを許したほうが効率的な場合がある。つまり、SSDの使用容量率が所定値以下の場合は、S2103の判定を実施せずに全てについてプロモーションを実行することで、一時的な(SSDの使用容量率が所定以上となる迄)ライト量の増大化を許しつつ、後のフェースで全体的にWrite量を削減することで、全体としての性能向上を実現する。また、ページ移動の加速度を段階的に調整して目標のペースに段階的に合わせるようにしてもよい。
 プロモーション回数が寿命ペースを超えている場合は、PTの値を増加(S2106)し、超えていない場合はPTの値を減少(S2104,S2108)させることもできる。(ただし、Tier割り当て閾値208A(T)以下に設定しないようにする)PTの値の増加については、図21ではS2103の判断に基づく場合にのみ実行するフローを例示する。PTの値がレベルである場合は、レベルを固定量下げることにより実現し、PTの値がIOPSである場合は、1より小さい値(固定量)の乗算又は、固定量の減算などにより実現してもよい。以上により、限られたプロモーションによる消去回数(Wlimit)のペースを満たしながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
 また、ページ再配置実行キューが埋まっている場合や、ドライブの負荷が高い場合に、PTの値を増加させ、その逆の場合に、PTの値を減少させてもよい。本処理によって、限られた単位時間あたりのページ移動可能量とのバランスを取りながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
 また、プロモーション閾値をパリティグループごと設定してもよい。パリティグループ単位に保持すれば、パリティグループ単位で寿命判断が可能となり必要最小限のページ移動量の削減で済ますことが出来る。また、ページ毎にリードライト比率、シーケンシャル比率などを取って、ライト量が所定位置以上に高いページ(ライト比率が多く、シーケンシャル比率が高い)をプロモーションしないようにしてもよい。
 また、上記実施例では寿命ペースはプロモーションによるWriteを対象に判断したが、ホストI/OによるWriteも含めて寿命判断するものであってもいい。例えばホストI/OによるWrite量が少ないI/Oパターンだった場合であれば、プロモーション量を相対的に増やすことができ、よりTier1ヒット率を向上させることができる。
 次に、実施例3として別のTier判定方法の一例を開示する。実施例2との違いは、短周期の負荷が一定期間(St)続くものと仮定し、短周期で再配置されたページを一定期間再配置先のTierに固定化(ページ毎の固定化マークにより実現)する点である。また、短周期IOPSによるプロモーション量をデモーション量管理テーブル2201により厳密にコントロールするため、短周期プロモーション量を一定量に制限でき、また、短周期プロモーション量に応じて、長周期の追い出す負荷量を最小化することが出来る。
 図22は、デモーション量管理テーブルと拡張ページ毎モニタテーブル(1)のテーブル構造を示している。デモーション量管理テーブル2201は、長周期IOPSによる負荷レベル2202ごとに応じたページ量2203のエントリを持つ点は、プール毎度数分布と同様である。さらに、負荷レベル毎2202毎のデモーション計画数2204と、デモーション実施数2205を持つ。Tier割り当て閾値208A(=T)は、既に度数分布の算出処理の時に算出済みである。デモーション計画数2204は、短周期のプロモーションに対応してデモーションしたい負荷レベル毎のページ数に相当する。したがって、短周期のプロモーション判定時に、加算し、短周期プロモーション後のページの負荷が下がった際に減算する。一方、デモーション実施数2205は、実際にデモーションを実施した負荷レベル毎のページ数を表す。したがって、置き換え対象となったページ(長周期の負荷が出来るだけ低いページ)のデモーション実行時に加算し、短周期プロモーションの負荷が下がってデモーション計画数2204を減算した際に、下位Tierに固定化していたページをプロモーションして元に戻す際に減算する。本実施例においては、デモーション計画数と実行数とを管理することで、短周期でI/O回数が増加しているページのプロモーションに必要なページ数を考慮してデモーション数もしくはデモーション閾値を制御できるようになる。
 長周期の負荷が出来るだけ低いページをデモーションしたいため、デモーション計画数2204は、長周期閾値相当の負荷レベルのページ(本図ではLV2に相当)から順にページ数2203を超えない範囲で、加算していく。その際に、図に示すようにデモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となる。
 以上で述べたデモーション量管理テーブル2201はプールVOL毎、又はPG毎に持って、プールVOL毎、又はPG毎にデモーション閾値を決めてもよい。その場合は、プールVOL毎又はPG毎の度数分布を図14の度数分布作成処理プログラムの実行の際に作成し、その情報を元に負荷レベル2202毎のページ数2203を算出することが出来る。
 また、拡張ページ毎モニタテーブル(1)2207は、ページ毎モニタテーブル502のカラムを拡張したテーブルであり、モニタ情報インデックス番号901はページ毎モニタテーブルの構造と同様である。短周期再配置ページ固定化マーク2208は、ONの場合に、ページを現在のTierに固定化している状態を表している。また、短周期プロモーション実行時刻2209は、当該ページが短周期プロモーションされた場合に、その実行時刻を格納する。これらの情報により、短周期プロモーションしたページを一定期間(St)デモーション判定されるのを防ぐことが出来る。また、一時的な置き換え対象の長周期の負荷が少ないデモーションしたページも、マークをONすることにより、プロモーション判定されるのを防ぐことが出来る。
 図23は、デモーション判定処理(2)の動作を表したフローチャートである。本処理は、図19のTier判定処理の(A)デモーション判定(S1901)に相当する処理である。図20で説明したデモーション判定処理フローと異なる点のみを説明する。
 ステップ2301で、当該ページに対応する拡張ページモニタテーブル(1)2207のエントリの短周期再配置ページ固定化マーク2208を参照し、当該ページがマークONかどうかを判定する。マークONであれば(S2301でY)、(現在時刻-短周期プロモーション実行時刻)>Stが成立するかどうかを判定する(S2302)。Stは予め設定される所定値である。成立しない場合(S2302でN)、処理を終了する。成立する場合(S2302でY)、短周期IOPS>PTを判定する(S2303)。成立する場合(S2303でN)、当該ページはまだ高負荷状態でありデモーションする必要がないため、そのまま処理を終了する。成立しない場合(S2303でN)、マークをOFFにして、デモーション計画数を1(所定値)減算し、DTを必要に応じて更新して(S2304)、ステップ2305へ進む。DTは、デモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となるように更新する。
 その後、長周期IOPS≧T且つ長周期IOPS≦DTが成立するかどうかを判定する(S2305)。本条件が成立するということは、短周期プロモーション実行時の置き換え対象としてのデモーション対象ページであることを意味する。条件が成立する場合(S2305でY)、当該ページの長周期の負荷レベルにおいて、デモーション計画数2204>デモーション実施数が成立するかどうかを判定する(S2307)。本条件が成立しデモーションが必要とされている場合(S2307でY)、当該ページのマークをONにして、デモーション実施数を1増加し(S2308)、デモーション要を返却(S2204)して処理を終了する。本条件が成立しない場合(S2307でN)、処理を終了する。
 また、S2305でNの場合、長周期IOPS<Tが成立するかどうかを判定する(S2306)。本条件が成立する場合、そもそも長周期負荷が低いため、基本的な配置をTier2とすべきページである。したがって、デモーション要を返却(S2204)して処理を終了する。
 図24は、プロモーション判定処理(2)の動作を表したフローチャートである。本処理は、図19のTier判定処理の(B)プロモーション判定(S1903)に相当する処理である。図21と異なる点のみを説明する。
 ステップ2401はステップ2301と同様である。マークONであれば(S2401でY)、ステップ2402に進む。ステップ2402では、(デモーション計画数<デモーション実施数)、又は(短周期IOPS>PT)が成立するかどうかを判定する。判定(デモーション計画数<デモーション実施数)については、デモーション判定で短周期プロモーションしたページの負荷が低下した場合に成立する。判定(短周期IOPS>PT)については、短周期プロモーションのための一時的な入れ替えのためのデモーションを実施したページの短周期の負荷が、突発的に上昇した場合に相当する。ステップ2402でNの場合は、処理を終了する。ステップ2402でYの場合は、当該ページのマークをOFFにして、デモーション実施数を1削減し(S2403)、その後ステップ2404に進む。
 ステップ2404では、(長周期IOPS>T)又は(短周期IOPS>PT)が成立し、プロモーションが必要かどうかを判定する。ステップ2404でYの場合は、当該ページが短周期プロモーションで、且つ短周期用SSD容量未達かどうかをチェックする(ステップ2408)。ステップ2404の判定時に、条件(長周期IOPS>T)が成立せず、条件(短周期IOPS>PT)が成立していた場合に、当該ページが短周期プロモーションと判定できる。また、GUI1801の設定項目の1807などにより設定した、設定情報テーブル507に格納された情報と、全体のTier1容量から短周期プロモーションに使用してよいページ数を算出し、デモーション量管理テーブル2201の、各負荷レベル2202のデモーション計画数2204の累計値とを比較し、その累計値が短周期プロモーションに使用してよいページ数を超えていない場合は、短周期用SSD容量未達と判定できる。
 ステップ2408でNの場合は、処理を終了する。ステップ2408でYの場合は、当該ページのマークをONにして、デモーション量管理テーブル2201の当該ページの属する負荷レベルのデモーション計画数を1増加し、DTを必要に応じて更新する(ステップ2409)。DTは、デモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となるように更新する。その後、デモーション要を返却して(S2204)、処理を終了する。ステップ2404でNの場合は、処理を終了する。
 また、図21で示した方法と同様の本処理の拡張案が考えられる。例えば、Tier1がSSDの場合(特に消去回数の限界値が低いMLC)などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい(S2103、S2107)。プロモーション回数が寿命ペースを超えている場合は、PTの値を増加(S2406)し、超えていない場合はPTの値を減少(S2405,S2407)させる(ただし、DT×Mを超えないように設定する)。以上により、限られたプロモーションによる消去回数(Wlimit)のペースを満たしながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
 次に、実施例4について説明する。実施例4は、実施例1~3で説明した方法において、各種パラメータの自動調整や短周期負荷量の見積もりを行うための一手段である。
 図25は、処理の効率化の考え方を示した図である。図2501は、あるページの負荷量の変化のグラフにおける各種パラメータの意味を表している。グラフの縦軸2502は、ページの単位時間あたりの負荷量(IOPS)を示している。また横軸は、時間経過2503を表している。グラフ2506は、あるページの負荷量の時間経過に対する変化を表している。このページは、短周期の負荷が上昇してから落ちるまでの時間が、St(2508)である。負荷が上昇してから、Tier判定してページ再配置キューにエンキューされる迄の時間は、Sd(2507)である。この時間を、検出遅延時間と呼ぶ。検出遅延時間は、Nの値と単位時間あたりの短周期の負荷量(IOPS)の値によって決まる(Sd=テンポラリカウンタ満了値(=N)÷短周期IOPS)。エンキュー時刻(Et)(2512)にページ再配置キューにエンキューされても、ページ再配置のタスクの実行中(ページ再配置のタスクの空きがない)などの理由で、直ちに実行されるわけではない。これから再配置の処理(タスク)に割り付けて、再配置を実行しようとしている時間(現在時間)をt(2513)とする。また、ページをプロモーションして、その後デモーションするまで(2514)の期間をDtとする。前記と同様の理由で、他のページの移動(プロモーション又はデモーション)があるため、ページをプロモーション後に、直ちにデモーションを開始できるわけではない。その影響を考慮するため、Dtという値を用いる。すると、ページをプロモーションしてからデモーションするまでの間(Dt2509)の平均負荷を、当該ページを再配置(短周期で)した場合の基準値(2511)とする。この基準値が高いページを選択すれば、効率的にTier1のヒット率を向上できる。
 図27で各パラメータの管理テーブルを例示する。拡張ページ毎モニタテーブル(2)(2701)は、ページ毎モニタテーブル502のカラムを拡張したテーブルであり、モニタ情報インデックス番号901はページ毎モニタテーブルの構造と同様である。拡張ページ毎モニタテーブル(2)(2701)は、少なくとも、短周期負荷継続時間(St)(2702)と、カウンタ満了値(N)(2703)と、I/O発生間隔の2乗累積値の欄(2704、2705)の何れかを有する。たとえば周期毎に、採取中のデータと、前回の周期の確定されたデータとを管理するために本実施例では2つの欄2704,2705を設けている。
 I/O発生間隔の2乗累積値(採取中)(2704)は、S1701のモニタカウントアップ処理の契機で、前回のI/O発生時刻と、現在時刻との差分(=I/O発生間隔)を2乗した値を、当該カウンタに加算する。また、Nが2以上の場合は、S1702のテンポラリカウンタ満了の契機で、N回分のI/Oが、均等な時間間隔で発生するという仮定を置いて、I/O発生間隔の2乗累積値を算出する方法を用いてもよい。
 以上で説明した情報から、各種パラメータを見積もる一手法を以下に説明する。
<Stの見積もり方法>
 前提として、短周期の負荷が継続する時間は、ページ毎に一定である特性を持つ(短周期負荷パターンの継続性)傾向にあるとページ毎の短周期負荷継続時間(St)(2702)を何れかのタイミングで一度記録し、その値をStの値とする。
 また、より精度を高めるためにページ毎の短周期負荷継続時間をページ毎に複数個保持し、過去の履歴から負荷の継続時間を、一般的に知られた予測方法(例えば、線形近似法など)を用いて予測してもよい。又、上記の仮定(短周期負荷パターンの継続性)を満たしているかどうかを、ページ毎モニタ情報から適宜判断し、本見積もり方法を用いた短周期の再配置の実行可否を切り替えてもよい。
<分散値を用いた短周期負荷量の見積もり方法>
 上述したStは、ページ毎に一定であるという仮定に基づいているが、実際のI/Oにおいては一定でない、つまりバラつきがある場合がある。以下に説明する短周期負荷量の見積もり方法は、このバラつきの特性がある場合においても、効率的にページを配置することを可能とする方法である。前提として長期的(かつ周期的に)に採取した、I/O発生間隔の平均値(E(f)=I/Oカウント902÷周期時間)及び、I/O発生間隔の2乗平均値(E(f^2))は、その後の周期も同等となる(長期的負荷パターンの継続性)と想定する。
 突発的な負荷が多いページはI/O発生間隔の分散値V(f)が大きくなる(V(f)=E(f^2)-E(f)^2)という特性を持つ。さらに、同じ平均値E(f)を持つページでも、分散値V(f)が大きいほど、一定期間Qtの間に受けるI/O数が多くなる確率が高くなる特性を持つ。さらに、V(f)とE(f)を一定とすると、Qtが長いほど期待値のI/O到着数(期間Qtの間に受けるI/O数の平均値)はQt/E(f)に近づくという特性を持つ(これは長周期の負荷量と一致する)。
 以上の特性を元に、短周期(Qt)の負荷量を予測する一手法を以降に述べる。まず、短周期プロモーションでTier1に配置する時間間隔(Qt)を仮定する。QtとV(f)とE(f)から、短周期St(=Qt)における期待値のI/O到着数を算出し、短周期の負荷量(IOPS)(λs2505)を算出する(期待値のI/O到着数÷Qt)。例えば、期待値のI/O到着数は、近似式(期待値のI/O到着数=(Qt+((V(f)/(E(f)^2))/2))/E(f)で算出してもよい。その他、一般的に知られた確率的理論に基づき、QtとV(f)とE(f)の一部又は全部をパラメータとする式を用いてもよい。
 以上のように、ストレージがI/O発生間隔の2乗平均値(E(f^2))の情報を保持し、I/O発生間隔の分散値V(f)の特性を元に、短周期(Qt)の負荷量を予測することで、バラつきの特性がある場合においても、効率的にページを配置することが可能となる。また、短周期の負荷量の履歴情報を持つ必要が無いため、メモリ使用効率が良いという効果もある。
 また、採取中のI/Oカウント902及び、採取中のI/O発生間隔の2乗累計値2704を用いることで、短周期負荷量の算出の精度を向上できる。長期的負荷パターンの継続性の仮定に基づき、前回の周期のカウント値から、現在までの採取したカウント値を引いた値が、現在から今回の周期が終わるまでの値の予測値と出来る。したがって、この差し引いた値でV(f)とE(f)を算出して上記の方法により短周期の負荷量を見積もることで、より予測の精度を向上できる。
 また、本見積もりにおいて仮定したQtは、移動可能なページ量(寿命やドライブの余剰稼働率などから算出)から算出した値を仮定してもよい。つまり、移動可能なページ量が少なければ、Qtは長くなり、移動可能なページ量が多ければ、Qtは短くなる。また、非同期デモーションの実行周期(例えば30分)と仮定してもよい。つまり、I/Oに同期的なTier判定はI/Oが来ないと実行されないため、回収までの最長の所要時間(=非同期デモーションの実行周期)をQtと仮定してもよい。
 尚、上記の仮定(長期的負荷パターンの継続性)を満たしているかどうかを、ページ毎モニタ情報から判断し、本見積もり方法を用いた短周期再配置を実行するかどうかを切り替えてもよい。
<Nの見積もり方法>
 前述した短周期負荷の継続時間Stと、短周期負荷量λsから、短周期のIO数を算出できる。もし短周期のIO数がNに対して一定量以上多くない場合、図25で説明したSdとStの差が縮まってしまい、ページをプロモーションしてもTier1ヒット率向上効果を得られにくくなる。但し、Nを小さくしすぎると、短周期負荷の精度が悪くなる可能性があるため、これらのトレードオフを鑑み、Nの最適な値に調整してもよい(Nの値は、2703に格納する)。具体的には、例えば、短周期のIO数に対して一定の係数を掛けた値をNとするなどの方法が考えられる。
 また、一般にNを小さくするとページ移動要と判定される頻度が増え、Nを大きくすると、ページ移動要と判定される頻度が減る。したがって、Nは、移動可能なページ量(寿命やドライブの余剰稼働率などから算出)から、算出してもよい。
 上述した各種見積もり方法は、組み合わせてもよいし、一部の方法のみを使用してもよい。また、上述した各種見積もり方法は、ページ毎ではなく、プール毎やプールVOL毎、PG毎でパラメータを持ち、又は算出してもよい。
 図26は、キューのリオーダリングの動作を示した図である。本実施例ではページ再配置実行キュー(506)にエンキューされたエントリについて、図25で説明した基準値2511の値によって、再配置タスク2603に優先的に割り当てるエントリを決める。例えば、プロモーション用のキューの場合は、基準値の高いものから優先的に再配置タスクに割り当て、デモーション用のキューの場合は、基準値の低いものから優先的に再配置タスクに割り当てるようにする。本構成により、よりTier間データ再配置を効率化できる。
 また、上記の基準値2511は、具体的には、以下の式によって算出してもよい。
  基準値(IOPS)= (Ct×λs +(Dt-Ct)×λl )/ St - α
αは、長周期の低負荷ページを追い出すペナルティ分を表す。αは、定数でもよいが、デモーション閾値(DT)などから動的に決定してもよい。また、Ct2510は、現在時刻(t)から短周期の負荷上昇が落ち着くまでの時間(Ct=St-Sd-(t-Et))を表している。
 また、Dtは、具体的には、以下の式によって算出してもよい。
  Dt = Sr×デモーションのキュー長 + Sr/2 + Ct
Srは、デモーション処理の平均処理時間を表す。また、再配置タスク2603の多重度(スループット)に応じて、Srを短くしてもよい。また、その他一般的に知られた待ち行列理論などをベースとした式に変えてもよい。
 また、エンキューされた時刻Etから所定期間経過したキューについては、基準値を無視して、優先的に実行するようにしてもよい。また、キューのエントリ数が予め定めた上限に達している場合に、基準値が小さいものからキューから削除するようにして、キューの空きを作るようにしてもよい。
  尚、本発明は、上述した実施例に限定されず、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。
101:ホスト、102:管理サーバ、103:ネットワーク、104:ストレージシステム、105:外部ストレージ、106:ポート、107:保守I/F、108:ポート、109:プロセッサパッケージ、110:キャッシュメモリ、111:共有メモリ、112:内部ネットワーク、113:ドライブ、114:ドライブ、115:Tier(階層)1、116:Tier(階層)2、117:Tier(階層)3

Claims (15)

  1. 第1の記憶デバイスと、
    前記第1の記憶デバイスより性能のよい第2記憶デバイスと、
    複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第1の記憶デバイス又は前記第2の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて前記ライト要求のデータを格納し、前記割り当てられた記憶領域に格納される前記データを前記第1の記憶デバイスと前記第2に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するコントローラと、
    を有し、
    前記コントローラは、
    第1の期間中の前記ホスト装置からのアクセス頻度である第1のアクセス頻度と、前記第1の期間より短い第2の期間中の前記ホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、
    前記第1のアクセス頻度に基づいて前記第1の期間周期で第1の前記再配置を行うとともに、前記第1のアクセス頻度と前記第2のアクセス頻度に基づいた第2の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
    前記第1の再配置の要否判定に用いる閾値と、前記第2の再配置の要否判定に用いる閾値とは異なるストレージシステム。
  2. 前記第2の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項1記載のストレージシステム。
  3. 前記第2の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項1記載のストレージシステム。
  4. 前記第2の再配置の要否判定に用いる閾値は、前記第1のアクセス頻度についての閾値と前記第2のアクセス頻度についての閾値とを有し、
    前記第2のアクセス頻度についての閾値は、前記第1のアクセス頻度の閾値に比して、前記第2の記憶デバイスから前記第1の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項1記載のストレージシステム。
  5. 前記コントローラは、
    前記第2のアクセス頻度についての閾値を、前記再配置対象の論理領域の有無に応じて変更することを特徴とする請求項4記載のストレージシステム。
  6. 前記第1の記憶デバイスはフラッシュメモリであって、
    前記第2の記憶デバイスから前記第1の記憶デバイスからの再配置回数が閾値を超えている場合には、前記第2の記憶デバイスから前記第1の記憶デバイスからの再配置は行わないことを特徴とする請求項1記載のストレージシステム。
  7. 前記第2のアクセス頻度は、前記ホスト装置からのアクセス要求が所定回数分受信されるのに要した時間から求めることを特徴とする請求項1記載のストレージシステム。
  8. 前記コントローラは、
    前記第2の記憶デバイスから前記第1の記憶デバイスに前記第2の再配置がなされた前記論理領域に格納されるデータについては、所定期間、前記第1の記憶デバイスから前記第2の記憶デバイスへの前記第2の再配置を行わないことを特徴とする請求項1記載のストレージシステム。
  9. 前記コントローラは、
    前記第1記憶デバイスから前記第2の記憶デバイスへの前記第2の再配置対象の前記論理領域の数と、前記第2記憶デバイスから前記第1の記憶デバイスへの前記第2の再配置対象の前記論理領域の数の関係を考慮して、前記第2の再配置の実施要否を判断することを特徴とする請求項1記載のストレージシステム。
  10. 前記コントローラは、
    前記ホスト装置からの一定量のアクセス要求の時間間隔を2乗した合計値を管理し、前記第2アクセス頻度として、前記合計値を元にした予測値を用いることを特徴とする請求項1記載のストレージシステム。
  11. 前記コントローラは、
    前記第2の再配置対象となった複数の前記論理領域の前記第2再配置の実行順序を、当該論理領域の負荷量に基づいて決定することを特徴とする請求項1記載のストレージシステム。
  12. ストレージシステムにおいて実行されるデータ処理方法であって、
    前記ストレージシステムは、
    第1の記憶デバイスと、
    前記第1の記憶デバイスより性能のよい第2記憶デバイスと、
    コントローラを有し、
    複数の論理領域を有する仮想ボリュームをホスト装置に提供し、
    ライト要求を受領した後に、前記第1の記憶デバイス又は前記第2の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて、前記ライト要求のデータを格納し、
    前記割り当てられた記憶領域に格納される前記データを前記第1の記憶デバイスと前記第2に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するステップを有し、
    第1の期間中の前記ホスト装置からのアクセス頻度である第1のアクセス頻度と、前記第1の期間より短い第2の期間中の前記ホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、
    前記第1のアクセス頻度に基づいて前記第1の期間周期で第1の前記再配置を行うとともに、前記第1のアクセス頻度と前記第2のアクセス頻度に基づいた第2の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
    前記第1の再配置の要否判定に用いる閾値と、前記第2の再配置の要否判定に用いる閾値とは異なることを特徴とするデータ処理方法。
  13. 前記第2の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項12記載のデータの処理方法。
  14. 前記第2の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項12記載のデータの処理方法。
  15. 前記第2の再配置の要否判定に用いる閾値は、前記第1のアクセス頻度についての閾値と前記第2のアクセス頻度についての閾値とを有し、
    前記第2のアクセス頻度についての閾値は、前記第1のアクセス頻度の閾値に比して、前記第2の記憶デバイスから前記第1の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項12記載のデータ処理方法。
PCT/JP2013/062317 2013-04-26 2013-04-26 ストレージシステム WO2014174653A1 (ja)

Priority Applications (12)

Application Number Priority Date Filing Date Title
DE112013006656.4T DE112013006656B4 (de) 2013-04-26 2013-04-26 Speichersystem
GB1514119.5A GB2527951B (en) 2013-04-26 2013-04-26 Storage system
CN201910525717.0A CN110333825A (zh) 2013-04-26 2013-04-26 存储系统
JP2015513448A JP6084685B2 (ja) 2013-04-26 2013-04-26 ストレージシステム
CN202310311449.9A CN116301649A (zh) 2013-04-26 2013-04-26 存储系统
CN201380073705.XA CN105009092A (zh) 2013-04-26 2013-04-26 存储系统
PCT/JP2013/062317 WO2014174653A1 (ja) 2013-04-26 2013-04-26 ストレージシステム
US14/206,096 US8880830B1 (en) 2013-04-26 2014-03-12 Storage system
US14/489,598 US9830258B2 (en) 2013-04-26 2014-09-18 Storage system
US15/806,644 US10733092B2 (en) 2013-04-26 2017-11-08 Storage system
US16/931,640 US11372755B2 (en) 2013-04-26 2020-07-17 Storage system
US17/848,577 US11698857B2 (en) 2013-04-26 2022-06-24 Storage system for migrating data between tiers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/062317 WO2014174653A1 (ja) 2013-04-26 2013-04-26 ストレージシステム

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US14206096 A-371-Of-International 2013-04-26
US14/206,096 Continuation US8880830B1 (en) 2013-04-26 2014-03-12 Storage system
US14/489,598 Continuation US9830258B2 (en) 2013-04-26 2014-09-18 Storage system

Publications (1)

Publication Number Publication Date
WO2014174653A1 true WO2014174653A1 (ja) 2014-10-30

Family

ID=51791259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/062317 WO2014174653A1 (ja) 2013-04-26 2013-04-26 ストレージシステム

Country Status (6)

Country Link
US (5) US8880830B1 (ja)
JP (1) JP6084685B2 (ja)
CN (3) CN110333825A (ja)
DE (1) DE112013006656B4 (ja)
GB (1) GB2527951B (ja)
WO (1) WO2014174653A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147279A1 (ja) * 2015-03-13 2016-09-22 富士通株式会社 データ管理制御プログラム、データ管理制御装置、及びデータ管理制御方法
JP2017010196A (ja) * 2015-06-19 2017-01-12 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
WO2017046902A1 (ja) * 2015-09-16 2017-03-23 株式会社日立製作所 管理システム、管理計算機、及び、ストレージ装置の管理方法
JP2017204101A (ja) * 2016-05-10 2017-11-16 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ装置制御プログラム
JP2018005817A (ja) * 2016-07-08 2018-01-11 富士通株式会社 ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム
JP2021105871A (ja) * 2019-12-26 2021-07-26 株式会社日立製作所 ストレージシステム
US11366595B2 (en) 2020-08-13 2022-06-21 Fujitsu Limited Management apparatus and non-transitory computer-readable storage medium for storing program
JP2022539950A (ja) * 2020-04-28 2022-09-14 華為技術有限公司 ストレージシステム、メモリ管理方法、および管理ノード

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5941996B2 (ja) * 2012-11-27 2016-06-29 株式会社日立製作所 ストレージ装置及び階層制御方法
US9753987B1 (en) * 2013-04-25 2017-09-05 EMC IP Holding Company LLC Identifying groups of similar data portions
CN110825324B (zh) * 2013-11-27 2023-05-30 北京奥星贝斯科技有限公司 混合存储的控制方法及混合存储系统
US10120601B2 (en) 2014-03-24 2018-11-06 Hitachi, Ltd. Storage system and data processing method
US9940167B2 (en) * 2014-05-20 2018-04-10 Red Hat Israel, Ltd. Identifying memory devices for swapping virtual machine memory pages
US9880786B1 (en) * 2014-05-30 2018-01-30 Amazon Technologies, Inc. Multi-tiered elastic block device performance
WO2016016989A1 (ja) * 2014-07-31 2016-02-04 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ及びプログラム
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US10078663B2 (en) 2014-10-29 2018-09-18 Red Hat, Inc. Dual overlay query processing
JP6511795B2 (ja) * 2014-12-18 2019-05-15 富士通株式会社 ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US10452302B2 (en) * 2015-04-09 2019-10-22 Hitachi, Ltd. Storage system and data control method
CN105260138A (zh) * 2015-09-30 2016-01-20 福州瑞芯微电子股份有限公司 读写控制系统及方法
CN105487823B (zh) * 2015-12-04 2018-06-05 华为技术有限公司 一种数据迁移的方法及装置
CN106933493B (zh) * 2015-12-30 2020-04-24 伊姆西Ip控股有限责任公司 用于缓存盘阵列扩容的方法及设备
US10579540B2 (en) * 2016-01-29 2020-03-03 Netapp, Inc. Raid data migration through stripe swapping
US10809931B1 (en) * 2016-06-24 2020-10-20 EMC IP Holding Company LLC Techniques for use with physical media types having varying allowable write quotas
US10452273B2 (en) 2016-09-24 2019-10-22 International Business Machines Corporation Preemptive event-based data migration
KR102227643B1 (ko) * 2016-09-28 2021-03-15 한국전자기술연구원 오케스트레이션 기반 최적 스토리지 할당을 위한 예측형 후보군 선정 방법
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers
US10769074B2 (en) * 2017-11-09 2020-09-08 Microsoft Technology Licensing, Llc Computer memory content movement
CN110737399B (zh) * 2018-07-20 2023-09-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN112306372A (zh) 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
US20220197537A1 (en) * 2020-12-18 2022-06-23 Micron Technology, Inc. Object management in tiered memory systems
JP7319326B2 (ja) 2021-06-24 2023-08-01 株式会社日立製作所 ストレージシステム及びストレージシステムのファイル配置方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272324A (ja) * 2003-03-05 2004-09-30 Nec Corp ディスクアレイ装置
JP2005276017A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd ストレージシステム
JP2007272721A (ja) * 2006-03-31 2007-10-18 Nec Corp ストレージ装置及びその制御方法
JP2008059438A (ja) * 2006-09-01 2008-03-13 Hitachi Ltd 記憶システム、そのデータ再配置方法、データ再配置プログラム
JP2008269344A (ja) * 2007-04-20 2008-11-06 Toshiba Corp 論理ディスク管理方法及び装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
JP4462852B2 (ja) 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
US8006061B1 (en) * 2007-04-13 2011-08-23 American Megatrends, Inc. Data migration between multiple tiers in a storage system using pivot tables
US8195617B2 (en) * 2008-12-30 2012-06-05 International Business Machines Corporation Managing data across a plurality of data storage devices based upon collaboration relevance
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
JP4930553B2 (ja) * 2009-06-30 2012-05-16 富士通株式会社 データ移行機能を有した装置及びデータ移行方法
US8230131B2 (en) * 2009-09-14 2012-07-24 International Business Machines Corporation Data migration to high speed storage in accordance with I/O activity over time
CN102483684B (zh) * 2009-12-24 2015-05-20 株式会社日立制作所 提供虚拟卷的存储系统
WO2011135635A1 (ja) * 2010-04-30 2011-11-03 株式会社日立製作所 計算機システム及びその記憶制御方法
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US9058280B1 (en) * 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
CN103299265B (zh) 2011-03-25 2016-05-18 株式会社日立制作所 存储系统和存储区域分配方法
WO2012131780A1 (en) * 2011-03-31 2012-10-04 Hitachi, Ltd. Storage control system providing virtual logical volumes complying with thin provisioning
US8639899B2 (en) * 2011-04-26 2014-01-28 Hitachi, Ltd. Storage apparatus and control method for redundant data management within tiers
US8838895B2 (en) * 2011-06-09 2014-09-16 21Vianet Group, Inc. Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time
US8645654B1 (en) * 2011-06-29 2014-02-04 Emc Corporation Selecting physical storage in data storage systems
JP2013164822A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
US11347443B2 (en) * 2012-04-13 2022-05-31 Veritas Technologies Llc Multi-tier storage using multiple file sets
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
WO2014016866A1 (en) * 2012-07-24 2014-01-30 Hitachi, Ltd. Storage system, storage control method and storage control program
CN102831088A (zh) * 2012-07-27 2012-12-19 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据迁移方法和装置
US9026765B1 (en) * 2012-09-11 2015-05-05 Emc Corporation Performing write operations in a multi-tiered storage environment
US9898224B1 (en) * 2012-09-12 2018-02-20 EMC IP Holding Company LLC Automatic adjustment of capacity usage by data storage optimizer for data migration
CN102929566B (zh) * 2012-10-24 2015-07-08 中国资源卫星应用中心 一种多级自适应存储方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272324A (ja) * 2003-03-05 2004-09-30 Nec Corp ディスクアレイ装置
JP2005276017A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd ストレージシステム
JP2007272721A (ja) * 2006-03-31 2007-10-18 Nec Corp ストレージ装置及びその制御方法
JP2008059438A (ja) * 2006-09-01 2008-03-13 Hitachi Ltd 記憶システム、そのデータ再配置方法、データ再配置プログラム
JP2008269344A (ja) * 2007-04-20 2008-11-06 Toshiba Corp 論理ディスク管理方法及び装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147279A1 (ja) * 2015-03-13 2016-09-22 富士通株式会社 データ管理制御プログラム、データ管理制御装置、及びデータ管理制御方法
JP2017010196A (ja) * 2015-06-19 2017-01-12 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
WO2017046902A1 (ja) * 2015-09-16 2017-03-23 株式会社日立製作所 管理システム、管理計算機、及び、ストレージ装置の管理方法
JP2017204101A (ja) * 2016-05-10 2017-11-16 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ装置制御プログラム
JP2018005817A (ja) * 2016-07-08 2018-01-11 富士通株式会社 ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム
JP2021105871A (ja) * 2019-12-26 2021-07-26 株式会社日立製作所 ストレージシステム
JP7405608B2 (ja) 2019-12-26 2023-12-26 株式会社日立製作所 ストレージシステム
JP2022539950A (ja) * 2020-04-28 2022-09-14 華為技術有限公司 ストレージシステム、メモリ管理方法、および管理ノード
US11861204B2 (en) 2020-04-28 2024-01-02 Huawei Technologies Co., Ltd. Storage system, memory management method, and management node
JP7482905B2 (ja) 2020-04-28 2024-05-14 華為技術有限公司 ストレージシステム、メモリ管理方法、および管理ノード
US11366595B2 (en) 2020-08-13 2022-06-21 Fujitsu Limited Management apparatus and non-transitory computer-readable storage medium for storing program

Also Published As

Publication number Publication date
CN116301649A (zh) 2023-06-23
JP6084685B2 (ja) 2017-02-22
US20160011967A9 (en) 2016-01-14
US20140325121A1 (en) 2014-10-30
CN110333825A (zh) 2019-10-15
GB2527951B (en) 2021-05-12
DE112013006656T5 (de) 2015-11-19
GB201514119D0 (en) 2015-09-23
GB2527951A (en) 2016-01-06
US9830258B2 (en) 2017-11-28
US10733092B2 (en) 2020-08-04
US8880830B1 (en) 2014-11-04
JPWO2014174653A1 (ja) 2017-02-23
DE112013006656B4 (de) 2023-01-26
US20180067851A1 (en) 2018-03-08
CN105009092A (zh) 2015-10-28
US20220318134A1 (en) 2022-10-06
US20200356471A1 (en) 2020-11-12
US11372755B2 (en) 2022-06-28
US11698857B2 (en) 2023-07-11
US20150006801A1 (en) 2015-01-01

Similar Documents

Publication Publication Date Title
JP6084685B2 (ja) ストレージシステム
JP5543668B2 (ja) ストレージシステム及び記憶領域の割当方法
WO2015145532A1 (ja) ストレージシステム及びデータ処理方法
US9940024B1 (en) Techniques for determining workload skew
US9952803B1 (en) Techniques for automated evaluation and moment of data between storage tiers
US9785353B1 (en) Techniques for automated evaluation and movement of data between storage tiers for thin devices
US9026765B1 (en) Performing write operations in a multi-tiered storage environment
US10095425B1 (en) Techniques for storing data
US9507887B1 (en) Adaptive techniques for workload distribution across multiple storage tiers
US8972694B1 (en) Dynamic storage allocation with virtually provisioned devices
US9898224B1 (en) Automatic adjustment of capacity usage by data storage optimizer for data migration
US8583838B1 (en) Techniques for statistics collection in connection with data storage performance
US9244618B1 (en) Techniques for storing data on disk drives partitioned into two regions
US8954381B1 (en) Determining data movements in a multi-tiered storage environment
US8862837B1 (en) Techniques for automated data compression and decompression
JP2010097526A (ja) キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法
JPWO2016163016A1 (ja) ストレージシステム及びデータ制御方法
JP6283770B2 (ja) ストレージシステム
WO2014002126A1 (en) Computer system and method of controlling i/o with respect to storage apparatus
JP6118380B2 (ja) ストレージシステム及び記憶領域の割当方法
JP5815791B2 (ja) ストレージシステム及び記憶領域の割当方法

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: 13883099

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015513448

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 1514119

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20130426

WWE Wipo information: entry into national phase

Ref document number: 1514119.5

Country of ref document: GB

WWE Wipo information: entry into national phase

Ref document number: 1120130066564

Country of ref document: DE

Ref document number: 112013006656

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13883099

Country of ref document: EP

Kind code of ref document: A1