US20150026402A1 - Storage apparatus and data management method - Google Patents
Storage apparatus and data management method Download PDFInfo
- Publication number
- US20150026402A1 US20150026402A1 US14/508,581 US201414508581A US2015026402A1 US 20150026402 A1 US20150026402 A1 US 20150026402A1 US 201414508581 A US201414508581 A US 201414508581A US 2015026402 A1 US2015026402 A1 US 2015026402A1
- Authority
- US
- United States
- Prior art keywords
- tier
- storage
- storage tier
- data
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Definitions
- the present invention relates to a storage apparatus and data management method and is suitably applied to a storage apparatus in which a hierarchical data management function is installed, for example.
- a thin provisioning function is a function which provides a host with a virtual logical volume (referred to hereinbelow as a virtual volume), and which, when a request to write data to the virtual volume is supplied from the host, dynamically assigns a storage area to the virtual volume.
- the thin provisioning function is advantageous in providing to the host a virtual volume with a larger capacity than the storage area that is actually available and in affording the construction of a low-cost computer system by reducing the physical storage capacity in the storage apparatus which is to be pre-prepared.
- a hierarchical data management method is a method in which storage areas provided by each of a plurality of types of storage devices of varying performance which are built into the storage apparatus are managed as storage tiers of a plurality of different types, where storage areas are assigned from a high-speed, high-performance storage tier to areas where data of high access frequency in the virtual volume is stored, and storage areas are assigned from a low-speed, low-performance storage tier to areas where data of low access frequency in the virtual volume is stored.
- the cost performance of the storage apparatus can be improved.
- the present invention was conceived in view of the above points and proposes a storage apparatus and data management method enabling optimal page disposition in response to a sudden increase in the access frequency to a specific page.
- the present invention provides a storage apparatus which is coupled to a host which issues a data I/O request via a network, comprising storage devices of a plurality of types of varying performance, and a control unit which manages each of storage areas provided by the storage devices of the plurality of types by means of storage tiers of a plurality of different types, and assigns the storage areas in page units to a virtual volume from any of the storage tiers among the storage tiers of the plurality of types in response to a request to write the data from the host, wherein, if the data I/O request is received from the host, the control unit assigns storage areas in page units from the uppermost storage tier to the target areas of the virtual volume corresponding to the I/O request, and wherein the control unit changes the page unit storage area assignment to predetermined areas of the virtual volume from an upper storage tier to a lower storage tier in accordance with the speed of processing of the data I/O request from the host.
- the present invention makes it possible to provide optimal page disposition in response to a sudden increase in the access frequency to a specific page.
- FIG. 1 is a block diagram showing a hardware configuration of a storage system according to a first embodiment of the present invention.
- FIG. 2 is a block diagram showing a hardware configuration of a host according to this embodiment.
- FIG. 3 is a block diagram showing a hardware configuration of a management server according to this embodiment.
- FIG. 4 is a block diagram showing a hardware configuration of a storage apparatus according to this embodiment.
- FIG. 5 is a block diagram showing a logical configuration of the storage apparatus according to this embodiment.
- FIG. 6 is an explanatory diagram showing an overview of a data management method according to this embodiment.
- FIG. 7 is a block diagram showing a software configuration of a storage apparatus according to this embodiment.
- FIG. 8 is a table showing content of a pool schedule management table according to this embodiment.
- FIG. 9 is a conceptual view of an example of a pool schedule input screen according to this embodiment.
- FIG. 10 is a table showing content of a page disposition destination management table according to this embodiment.
- FIG. 11 is a table showing content of a promotion execution reservation queue according to this embodiment.
- FIG. 12 is a table showing content of a demotion execution reservation queue according to this embodiment.
- FIG. 13 is a table showing content of a demotion execution reservation queue according to this embodiment.
- FIG. 14 is a flowchart showing the flow of data write processing according to a computer system according to this embodiment.
- FIG. 15 is a flowchart showing the flow of data write processing according to this embodiment.
- FIG. 16 is a flowchart showing the flow of data read processing according to the computer system according to this embodiment.
- FIG. 17 is a flowchart showing the flow of data read processing according to the computer system according to this embodiment.
- FIG. 18 is a flowchart showing limit margin input processing according to this embodiment.
- FIG. 19 is a flowchart showing the flow of guide margin calculation processing according to this embodiment.
- FIG. 20 is a flowchart showing the flow of free capacity depletion time calculation processing according to this embodiment.
- FIG. 21 is a flowchart showing the flow of guide margin securing time calculation processing according to this embodiment.
- FIG. 22 is a flowchart showing the flow of demotion start time calculation processing according to this embodiment.
- FIG. 23 is a flowchart showing the flow of guide margin calculation processing according to this embodiment.
- FIG. 24 is a flowchart showing the flow of free capacity depletion time calculation processing according to this embodiment.
- FIG. 25 is a flowchart showing the flow of guide margin securing time calculation processing according to this embodiment.
- FIG. 26 is a flowchart showing the flow of demotion start time calculation processing according to this embodiment.
- FIG. 27 is a flowchart showing the flow of promotion determination processing according to this embodiment.
- FIG. 28 is a flowchart showing the flow of promotion processing according to this embodiment.
- FIG. 29 is a flowchart showing the flow of demotion determination processing according to this embodiment.
- FIG. 30 is a flowchart showing the flow of demotion processing according to this embodiment.
- FIG. 31 is a flowchart showing the flow of demotion processing according to this embodiment.
- the computer system 1 is configured from hosts 100 , management servers 200 , and a storage apparatus 300 .
- the hosts 100 are computer device which comprise information processing resources such as a CPU (Central Processing Unit) and memory and the like and are configured, for example, from a personal computer, a workstation, or a mainframe. In order to reference or update data which is stored in the storage apparatus 300 , the hosts 100 transmit read requests or write requests to the storage apparatus 300 via a network. Furthermore, the hosts 100 are coupled to the storage apparatus 300 via a host I/O network 400 .
- the host I/O network 400 is configured from a SAN (Storage Area Network) or the like, for example, and communications between apparatuses are performed according to the fibre channel protocol, for example.
- SAN Storage Area Network
- the host I/O network 400 may be a LAN (Local Area Network), the Internet, a public line or a lease line or the like, for example. If the host I/O network 400 is a LAN, communications between apparatuses are carried out according to the TCP/IP (Transmission Control Protocol/Internet Protocol) protocol, for example.
- TCP/IP Transmission Control Protocol/Internet Protocol
- the management servers 200 are computer devices comprising information processing resources such as a CPU and memory and are configured, for example, from a personal computer, a workstation, or a mainframe or the like.
- the management servers 200 are coupled to the storage apparatus 300 via a management LAN network 410 .
- the management LAN network 410 is configured from a SAN or LAN or the like, for example.
- a program stored in the memory of the management servers 200 manages the storage media of the storage apparatus 300 and manages, for example, the configuration of RAID (Redundant Arrays of Inexpensive Disks) groups and the capacities of logical volumes which are configured from part of the RAID groups.
- the management servers 200 transmit commands corresponding to user operations and the like to the storage apparatus 300 and changes RAID configuration information or the like.
- the storage apparatus 300 is coupled to the host 100 via the host I/O network 400 and executes reading/writing from and to the storage media in the storage apparatus by parsing the commands from the hosts 100 . Furthermore, the storage apparatus 300 is coupled to the management servers 200 via the management LAN network 410 and changes the RAID configuration in response to instructions from the management servers 200 .
- the host 100 comprises a CPU 110 , a memory 120 , a communication interface (communication I/F in the drawings) 130 , an auxiliary storage device 140 , an I/O device 150 , an output device 160 , and a storage device 180 .
- the CPU 110 functions as an arithmetic processing device and a controller and controls the general operation in the host 100 according to various programs.
- the memory 120 stores programs and arithmetic parameters and the like which are used by the CPU 110 , and primarily stores programs which are used in the execution of the CPU 110 as well as parameters and so on which are suitably changed in this execution.
- the communication interface 130 is a communication interface which is configured from a communication device or the like for connecting to the host I/O network 400 . Further, the communication interface 130 may be a wired communication device which performs communications over wires irrespective of whether the communication device 130 is a wireless LAN (Local Area Network)-compatible communication device or a wireless USB-compatible communication device.
- a wireless LAN Local Area Network
- the auxiliary storage device 140 is a removable storage medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the input device 150 is configured from input means enabling the user to input information such as, for example, a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever and an input control circuit which generates an input signal based on the input by the user and outputs the input signal to the CPU 110 .
- the output device 160 is configured, for example, from a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp and from an audio output device such as speakers or headphones.
- a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp
- an audio output device such as speakers or headphones.
- the storage device 180 comprises a storage medium, a recording device for recording data to the storage medium, a reading device for reading data from the storage medium, and a deletion device for deleting data recorded to the storage medium, and the like, and is configured from a HDD (Hard Disk Drive), for example.
- HDD Hard Disk Drive
- the management server 200 comprises a CPU 210 , a memory 220 , a communication interface (communication I/F in the drawings) 230 , an auxiliary storage device 240 , an I/O device 250 , an output device 260 , and a storage device 280 .
- the CPU 210 functions as an arithmetic processing device and a controller and controls the general operation in the management server 200 according to various programs.
- the memory 220 stores programs and arithmetic parameters and the like which are used by the CPU 210 , and primarily stores programs which are used in the execution of the CPU 210 as well as parameters and so on which are suitably changed in this execution.
- the communication interface 230 is a communication interface which is configured from a communication device or the like for connecting to the host I/O network 400 . Further, the communication interface 230 is a wired communication device which performs communications over wires irrespective of whether the communication device is a wireless LAN (Local Area Network)-compatible communication device or a wireless USB-compatible communication device.
- a wireless LAN Local Area Network
- the auxiliary storage device 240 is a removable storage medium such as a magnetic disk, optical disk, magneto-optical disk, or a semiconductor memory.
- the input device 250 is configured from input means enabling the user to input information such as, for example, a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever and an input control circuit which generates an input signal based on the input by the user and which outputs the input signal to the CPU 210 .
- the output device 260 is configured, for example, from a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp and from an audio output device such as a speaker or headphone.
- a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp
- an audio output device such as a speaker or headphone.
- the storage device 280 comprises a storage medium, a recording device for recording data to the storage medium, a reading device for reading data from the storage medium, and a deletion device for deleting data recorded to the storage medium, and the like, and is configured from a HDD (Hard Disk Drive), for example.
- HDD Hard Disk Drive
- the storage apparatus 300 is configured from a base enclosure 310 and a plurality of additional enclosures 320 .
- the storage apparatus 300 is configured by serially connecting the base enclosure 310 to the plurality of additional enclosures 320 .
- the base enclosure 310 is configured comprising a plurality of disk controllers 330 and a plurality of hard disk drives 350 .
- the disk controllers 330 each comprise a CPU 331 , a bridge 332 , a memory 333 , a communication interface (communication I/F in the drawings) 334 , a data controller (DCTL in the drawings) 335 , a drive interface (drive I/F in the drawings) 336 , a cache memory (CM in the drawings) 337 , and a switch 338 .
- the CPU 331 responds to data I/O requests from the hosts 100 and controls I/O processing (write access or read access) to/from the plurality of hard disk drives 350 .
- the bridge 332 interconnects the CPU 331 , the memory 333 , and the data controller 335 .
- the memory 333 functions as a work area of the CPU 331 .
- the communication interface (communication I/F in the drawings) 334 is a controller for controlling the interface with the hosts 100 and comprises a function for receiving block access requests from the host system 50 using the fibre channel protocol, for example.
- the data controller (DCTL in the drawings) 335 interconnects the bridge 332 and the cache memory 337 and controls data transfers between the hosts 100 and the hard disk drive 350 . More specifically, when write access from the hosts 100 is executed, the data controller 335 writes write data received from the hosts 100 (dirty data) to the cache memory 337 . Thereafter, at the stage where the write data in the cache memory 337 has accumulated to a certain extent, the data controller 335 asynchronously writes the write data to the hard disk drives 350 . If, on the other hand, read access from the hosts 100 is executed, the data controller 335 writes read data which is read from the hard disk drive 350 to the cache memory 337 and transfers the data to the hosts 100 .
- the drive interface (drive I/F in the drawings) 336 performs protocol conversion between the fibre channel protocol and the SATA protocol.
- the drive interface 336 is coupled to the switch 338 .
- the switch 338 connects the hard disk drive 350 to the drive interface 336 .
- the controller 330 is able to control a plurality of hard disk drives 350 according to the RAID level (0, 1, 5, for example) prescribed by the so-called RAID system.
- a RAID system a plurality of hard disk drives 350 are managed as a single RAID group 340 .
- a plurality of logical volumes which are units of access from the hosts 100 are defined in the RAID groups 340 .
- the LUN Logical Unit Number
- the storage apparatus 300 is able to expand the storage capacity by additionally providing additional enclosures 320 to the base enclosure 310 .
- the additional enclosure 320 is coupled to the controller 330 of the base enclosure 310 via the switch 338 .
- the controller 310 is capable of controlling the plurality of hard disk drives 350 according to the RAID level (0, 1, 5, for example) which is prescribed by the so-called RAID system.
- FIG. 5 shows the logical configuration of the storage apparatus 300 .
- RAID groups RG are defined by one or more storage devices 350 (hard disk drives 350 in FIG. 4 ) of the same type (SSD, SAS/FC and SATA and the like), and one or more pool volumes PVOL are defined in storage areas provided by one or more storage devices 350 which constitute a single RAID group.
- the pool volumes PVOL defined in the storage areas provided by the storage devices 350 of the same type are each managed as storage tiers ST of the same type and the plurality of pool volumes PVOL belonging to mutually different storage tiers ST are managed as a single virtual volume pool VVP.
- storage devices 30 of four types of SSD, SAS disks, FC disks, and SATA disks are used as the storage devices 350 as mentioned earlier, and a pool volume PVOL defined in the storage area provided by one or more SSDs is managed as a storage tier called Tier 1 (hereinafter called the first storage tier) ST, a pool volume PVOL defined in the storage area provided by one or more SAS disks or FC disks is managed as a storage tier called Tier 2 (hereinafter called the second storage tier) ST, and a pool volume PVOL defined in the storage area provided by one or more SATA disks is managed as a storage tier called Tier 3 (hereinafter called the third storage tier) ST.
- Tier 1 hereinafter called the first storage tier
- Tier 2 hereinafter called the second storage tier
- Tier 3 hereinafter called the third storage tier
- the storage device type which is the most reliable and exhibits the highest response performance is SSD
- the storage device type which is the next most reliable and exhibits the next highest response performance is the SAS disk or FC disk
- the storage device type which is the least reliable and exhibits the lowest response performance is the SATA disk.
- the storage tier which is the most reliable and exhibits the highest response performance is the first storage tier ST
- the storage tier with the next most reliable and exhibits the next highest response performance is the second storage tier ST
- the storage device type which is the least reliable and exhibits the lowest response performance is the third storage tier ST.
- one or more virtual volumes VVOL are defined in the storage apparatus 300 .
- the virtual volumes VVOL are each assigned a unique identifier (hereinafter called LUN (Logical Unit Number)). Furthermore, areas in the virtual volume VVOL are divided into blocks of a predetermined size (hereinafter called logical blocks) and are managed using unique numbers (hereinafter called LBA (Logical Block Address)) which are each assigned to the logical blocks.
- LUN Logical Unit Number
- LBA Logical Block Address
- any one of the virtual volume pools VVP is pre-associated with each of the virtual volumes VVOL. Further, upon receiving a request to write data to the virtual volumes VVOL from the hosts 100 , the storage apparatus 300 assigns storage areas of the required amount in units of a predetermined size called pages from the virtual volume pool VVP associated with the virtual volume VVOL to the area designated in the write request in the virtual volume VVOL designated in the write request and writes write target data to the assigned pages.
- pages are base units of the storage areas assigned to the virtual volumes VVOL from any of the storage tiers (the first to third storage tiers) ST which constitute the virtual volume pools VVP associated with the virtual volumes VVOL.
- one page and one logical block of a virtual volume VVOL are described as storage areas of the same storage size but are not necessarily limited to being storage areas of the same storage size.
- the storage apparatus 300 sequentially assigns pages, among assignable pool volumes PVOL, from the pool volume PVOL which belongs to the storage tier ST which is the most reliable and has the highest response performance.
- the storage apparatus 5 A assigns pages to the virtual volume VVOL from the pool volume PVOL until pages not yet assigned to the pool volume PVOL are depleted in the following order: the pool volume PVOL which belongs to the first storage tier ST, the pool volume PVOL which belongs to the second storage tier ST and the pool volume PVOL which belongs to the third storage tier ST.
- the storage apparatus 300 monitors the frequency of access by the hosts 100 per unit time to each of the logical blocks of the virtual volumes VVOL in parallel with processing to assign pages to the virtual volume VVOL mentioned earlier.
- the storage apparatus 300 migrates data according to requirements between the first to third storage tiers ST so that pages are assigned from the first or second storage tiers ST which are the next most reliable and which have the next highest response performance to logical blocks which have a high access frequency and so that pages are assigned from the second or third storage tier ST which is less reliable and which have a lower response performance to logical blocks which have a low access frequency at regular or irregular intervals on the basis of the access frequency per unit time.
- the storage apparatus 300 has a built-in hierarchical data management function, and storage area is assigned from high-speed and high-performance storage tiers to areas in the virtual volume which store data with a high access frequency and storage area is assigned from low-speed and low-performance storage tiers to areas in the virtual volume which store data with a low access frequency.
- this hierarchical data management method the cost performance of the storage apparatus 300 can be improved.
- the tier to which the storage area is assigned is determined by the access frequency of each page, it takes a period of a few hours or more until pages which have been accessed once are distributed to a suitable tier. Therefore, a page which is to be accessed quickly is disposed on the uppermost tier, and there is a problem in that it takes time until an optimal command response time can be expected.
- optimal page disposition is provided in response to an increase in the sudden access frequency of a specific page by means of the following method. That is, as shown in FIG. 6 , if a page is newly assigned due to initial write access from the host 100 , the page must be disposed in the first storage tier (Tier 1). Furthermore, even if write access is made to an area to which a page has already been assigned, the page must be disposed (promoted) to the first storage tier (Tier 1) as a result of single access. In addition, pages are disposed sequentially in a lower tier than the current tier (demoted) according to an LRU algorithm, starting with the page with the lowest access frequency.
- the optimal command response time can be expected for pages which are to be accessed on short notice.
- a page which is newly assigned to the first storage tier (Tier 1) and which is migrated from a storage tier other than the first storage tier (Tier 1) is stored in a blank area (hereinafter blank areas are described with the term margin areas) of the first storage tier (Tier 1).
- the page, among the pages with the lowest access frequency, which has the oldest access according to LRU theory is migrated to the second storage tier (Tier 2).
- the page, among the pages with the lowest access frequency, which has the oldest access according to LRU theory is migrated to the third storage tier (Tier 3). Accordingly, for a page which has been accessed once, in order to promote the page to the first storage tier (Tier 1) as a result of this access, a margin area of a predetermined amount can be secured in the first storage tier (Tier 1).
- the time taken to migrate a page from the first storage tier (Tier 1) to the second storage tier (Tier 2) is calculated according to a limit value of the margin capacity of the first storage tier (Tier 1) designated by the user.
- the margin capacity (guide margin capacity) which is obtained by adding a predetermined amount to a limit value of the margin capacity designated by the user is calculated (STEP 01 ). Further, the time when the free capacity of the current first storage tier (Tier 1) is depleted (the first storage tier depletion time) is calculated from the speed of processing I/O requests from the host 100 at the current time (STEP 02 ). Further, the processing time (guide margin securing time), in a case where a page is demoted from the first storage tier to the second storage tier, for the guide margin capacity is calculated from the speed of demotion from the current first storage tier (Tier 1) to the second storage tier (Tier 2) (STEP 03 ).
- the time of starting the demotion from the first storage tier (Tier 1) to the second storage tier (Tier 2) (the demotion start time) is calculated (STEP 04 ).
- the processing of STEP 01 to STEP 04 above is carried out every minute, for example, and the demotion start time of demotion from the first storage tier (Tier 1) to the second storage tier (Tier 2) is updated accordingly.
- the storage apparatus 300 is configured from an I/O processing unit 301 , a limit margin input processing unit 304 , a guide margin calculation processing unit 305 , a free capacity depletion time calculation processing unit 306 , a guide margin securing time calculation processing unit 307 , a demotion start time calculation processing unit 308 , a pool schedule management table 311 , a page disposition destination management table 312 , a demotion execution reserve queue 313 , and a demotion execution reserve queue 314 .
- the I/O processing unit 301 is configured from a data write processing unit 302 and a data read processing unit 303 .
- the data write processing unit 302 comprises a function for writing data to the hard disk drives 350 in response to a data write request from the host 100 .
- priority is given to assigning pages of the first storage tier (Tier 1).
- the data read processing unit 303 comprises a function for reading data from the hard disk drives 350 in response to a data read request from the host 100 .
- the limit margin input processing unit 304 acquires a limit value (limit margin capacity) for the margin capacity of the first storage tier (Tier 1) designated in response to a user input and provides the limit value to the guide margin calculation processing unit 305 . Further, the guide margin calculation processing unit 305 adds a predetermined fixed value to the limit margin capacity provided by the limit margin input processing unit 304 and calculates a value which serves as a guide for the margin capacity of the first storage tier (Tier 1) (the guide margin capacity of the first storage tier). For example, the limit margin capacity is configured, by means of a user input, as 10 to 50% of the total capacity of the first storage tier. Further, the guide margin capacity is calculated by adding 10% of the fixed value as a safety factor to the limit margin capacity. For example, if the total capacity of the first storage tier is 5 TB and the user-designated limit margin is 20%, the guide margin capacity of the first storage tier is calculated as follows.
- the guide margin calculation processing unit 305 calculates the capacity corresponding to the fixed ratio (safety factor) for the total capacity of the second storage tier (Tier 2) as a value which serves as a guide for the margin capacity of the second storage tier (Tier 2) (guide map of the second storage tier). For example, in a case where the total capacity of the storage tier is 50 TB and the safety factor is 10%, the guide margin capacity of the second storage tier is calculated as follows.
- the free capacity depletion time calculation processing unit 306 calculates the time when the unused capacity (free capacity) of the first storage tier (Tier 1) is depleted (first storage tier depletion time) from the I/O processing speed of the hosts 100 at the current time and the usage capacity of the first storage tier (Tier 1).
- the I/O processing speed of the host 100 is the amount of I/O in predetermined time and may also utilize the average value of an actual value [MB/s] for the previous minute, for example.
- the free capacity depletion time of the first storage tier is calculated by adding the time estimated until depletion of the free capacity of the first storage tier to the current time.
- the free capacity depletion time of the first storage tier is calculated as 2012/1/1, 11:07.
- the amount of I/O to/from the first storage tier (Tier 1) by the host 100 is, strictly speaking, an I/O amount which is obtained by subtracting the corresponding access amount to existing pages in the first storage tier (Tier 1) from the total I/O amount by the host 100 received by the entire pool.
- the I/O amount by the host also includes the I/O amount obtained by subtracting the access to existing pages in the first storage tier (Tier 1).
- the free capacity depletion time calculation processing unit 306 uses the speed of demotion processing from the first storage tier (Tier 1) at the current time to the second storage tier (Tier 2) to calculate the time when the free capacity of the second storage tier is depleted (second storage tier depletion time).
- the demotion processing speed from the first storage tier (Tier 1) to the second storage tier (Tier 2) may also utilize, for example, the actual value for I/O processing of the host 100 to the second storage tier (Tier 2), the actual value when disposition is actually performed again, catalog usage based on each drive type, or the actual value during an I/O operation test which is internally executed at the time of pool creation.
- the free capacity depletion time of the second storage tier is calculated by adding the time estimated until the depletion of the free capacity of the second storage tier to the current time.
- the free capacity depletion time of the second storage tier is calculated to be 6:15, Jan. 10, 2012.
- the guide margin securing time calculation processing unit 307 uses the speed of demotion processing from the first storage tier (Tier 1) at the current time to the second storage tier (Tier 2) in order to calculate the processing time (guide margin securing time of the first storage tier) in a case where disposition processing is performed again from the first storage tier (Tier 1) to the second storage tier (Tier 2) in an amount corresponding to the guide margin capacity of the first storage tier of the first storage tier (Tier 1) which is calculated by the guide margin calculation processing unit 305 .
- the speed of demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) may also, for example, utilize the actual value of I/O processing of the host 100 to and from the second storage tier (Tier 2), the actual value when disposition is actually performed again, catalog usage based on each drive type, or the actual value during an I/O operation test which is internally executed at the time of pool creation.
- the guide margin securing time is calculated as follows.
- the guide margin securing time calculation processing unit 307 uses the speed of demotion processing from the second storage tier (Tier 2) at the current time to the third storage tier (Tier 3) in order to calculate the processing time (guide margin securing time of the second storage tier) in a case where disposition processing is performed again from the second storage tier (Tier 2) to the third storage tier (Tier 3) in an amount corresponding to the guide margin capacity of the second storage tier which is calculated by the guide margin calculation processing unit 305 .
- the guide margin securing time is calculated as follows.
- the demotion start time calculation processing unit 308 calculates the start time of the demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) by back-calculating the guide margin securing time of the first storage tier calculated by the guide margin securing time calculation processing unit 307 from the first storage tier depletion time.
- the start time of the demotion processing from the storage tier (Tier 1) to the second storage tier (Tier 2) is 2:47, Jan. 1, 2012.
- the demotion start time calculation processing unit 308 calculates the start time of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3) by back-calculating the guide margin securing time of the second storage tier calculated by the guide margin securing time calculation processing unit 307 from the second storage tier depletion time.
- the start time of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3) is 5:32, Jan. 9, 2012.
- the pool schedule management table 311 is a table for managing pool configuration information on the basis of information which is input to the pool schedule input screen 500 .
- the pool schedule management table 311 is configured from a pool No field 3111 , a Tier No field 3112 , a limit margin field 3113 , a safety factor field 3114 , a total capacity field 3115 , a free capacity field 3116 , a usage capacity field 3117 , a guide margin capacity field 3118 , a host I/O performance field 3119 , a demotion performance field 3120 , a Tier depletion time field 3121 , a guide margin securing time field 3122 , and a demotion start time field 3123 .
- the pool No field 3111 stores numbers identifying each of the pools.
- the Tier No field 3112 stores numbers identifying storage tiers of each pool.
- the limit margin field 3113 stores information indicating the limit margin capacity of the first storage tier (Tier 1).
- the safety factor field 3114 stores a safety factor for calculating the guide margin capacity of each storage tier.
- the total capacity field 3115 stores information indicating the total capacity of each storage tier.
- the free capacity field 3116 stores information indicating the unused capacity of each storage tier.
- the usage capacity field 3117 stores information indicating the usage capacity of each storage tier.
- the guide margin capacity field 3118 stores information indicating the guide margin capacity of each storage tier.
- the host I/O performance field 3119 stores information indicating the performance of the host 100 .
- the demotion performance field 3120 stores information indicating the performance when demotion is carried out from each storage tier to a storage tier which is one below each storage tier.
- the tier depletion time field 3121 stores times when the current free capacity of each storage tier is depleted.
- the guide margin securing time field 3122 stores times when the guide margin capacity is secured.
- the demotion start time field 3123 stores times when demotion from each storage tier to a storage tier which is one below each storage tier.
- the pool schedule input screen 500 is an input screen enabling the user to configure various information for creating each pool. For example, a pool number is entered in the input field 501 and a guide margin capacity of the first storage tier of the pool configured in the input field 501 is entered in the input field 502 .
- the input field 503 enables a RAID level selection to be input from a pulldown display and the input field 504 enables a RAID configuration selection to be entered from a pulldown display.
- the number of hard disk drives 350 is entered in the input field 505 .
- the type of hard disk drive 350 and the capacity of the hard disk drive 350 are entered in the input field 506 .
- the display field 507 displays information on the hard disk drive 350 assigned to the storage apparatus 300 .
- the page disposition destination management table 312 is a table for managing information relating to the disposition destination of each page and, as shown in FIG. 10 , is configured from a RAID group (RG) No field 3121 , a page No field 3122 , a counter field 3123 , a last access date and time field 3124 , a pool No field 3125 , a LU No field 3126 , an LBA field 3127 , a current tier field 3128 , and a target tier field 3129 .
- RG RAID group
- the RAID group (RG) No field 3121 stores information identifying each RAID group.
- the page No field 3122 stores information identifying each of the pages.
- the counter field 3123 stores the number of accesses to each page.
- the last access date and time field 3124 stores the last access date and time for each page.
- the pool No field 3125 stores information indicating the pool number to which each page belongs.
- the LU No field 3126 stores information identifying the logical volume to which each page belongs.
- the LBA field 3127 stores a unique number (LBA) assigned to each page.
- the current tier field 3128 stores information indicating the storage tier to which each page currently belongs.
- the target tier field 3129 stores information indicating the storage tier targeted by each page.
- the promotion execution reserve queue 313 is an execution reserve queue for promoting the designated page to the first storage tier (Tier 1) and, as shown in FIG. 11 , associates and stores the RAID group number stored in the RAID group (RG) No field 3131 and the page number stored in the page No field 3132 .
- the pages in the execution reserve queue are each promoted to the first storage tier (Tier 1) in the order in which the pages are stored in the promotion execution reserve queue 313 .
- a demotion execution reserve queue 314 A is an execution reserve queue for demoting the designated page from the first storage tier (Tier 1) to the second storage tier (Tier 2) and, as shown in FIG. 12 , associates and stores the RAID group number stored in the RAID group (RG) No field 3141 with the page number stored in the page No field 3142 .
- the pages in the execution reserve queue are each demoted from the first storage tier (Tier 1) to the second storage tier (Tier 2) in the order in which the pages are stored in the demotion execution reserve queue 314 A.
- the demotion execution reserve queue 314 B is an execution reserve queue for demoting a designated page from the second storage tier (Tier 2) to the third storage tier (Tier 3) and, as shown in FIG. 13 , associates and stores the RAID group number stored in the RAID group (RG) No field 3141 and the page number stored in the page No field 3142 .
- the pages in the execution reserve queue are each demoted from the second storage tier (Tier 2) to the third storage tier (Tier 3) in the order in which the pages are stored in the demotion execution reserve queue 314 B.
- Data I/O processing in the computer system 1 will be described next.
- Data write processing of the computer system 1 will first be described.
- the host 100 transmits a data write request to the communication interface 334 of the storage apparatus 300 (hereinafter simply described as a communication interface 334 ) (S 100 ).
- the communication interface 334 receives the data write request transmitted from the host 100 (S 101 ) and communicates the fact that the data write request has been received to the data controller 335 (S 102 ).
- the data controller 335 of the storage apparatus 300 receives the data write request reception notice from the communication interface 334 (S 103 ) and writes data written to the hard disk drive 350 to the cache memory 337 (S 104 ). Further, the data controller 335 transmits a data write request to the drive interface 336 of the storage apparatus 300 (hereinafter described simply as the drive interface 336 ) and reports the completion of data writing to the communication interface 334 (S 107 ).
- step S 107 the data controller 335 determines whether assignment of a new page is required at the time of the data writing requested by the host 100 . In specific terms, as shown in FIG. 15 , the data controller 335 determines whether assignment of a new page is required at the time of the data writing requested by the host 100 (S 121 ). If it is determined in step S 121 that assignment of a new page is required, the data controller 335 instructs the drive interface 336 to prioritize assignment of a page from the first storage tier (Tier 1) (S 122 ).
- step S 122 If it is determined in step S 122 that new page assignment is not required, that is, if a page has already been assigned to the data write target, [the data controller 335 instructs the drive interface 336 to access the existing page of each storage tier (S 123 ).
- the communication interface 334 After reporting completion of data writing from the data controller 335 , the communication interface 334 transmits a completion report to the host 100 (S 105 ). Further, the host 100 receives the data writing completion report from the communication interface 334 .
- the drive interface 336 receives a drive write request from the data controller 335 (S 108 ) and reads the drive write request from the queue (S 109 ). Further, the drive interface 336 writes the write data read from the queue in step S 109 to the storage device (hard disk drive 350 ) (S 110 ). The drive interface 336 then transmits a data writing completion report to the data controller 335 (S 111 ). The data controller 335 receives the data writing completion report transmitted from the drive interface 336 in step S 111 (S 112 ).
- FIG. 16 shows a case where a cache miss takes place during reading, that is, where the read target data is not stored in the cache memory 337 .
- FIG. 17 shows a case where a cache hit takes place during data reading, that is, where the read target data is stored in the cache memory 337 .
- the host 100 transmits a data read request to the communication interface 334 (S 200 ).
- the communication interface 334 receives the data read request transmitted from the host 100 and notifies the data controller 335 (S 201 ).
- the data controller 335 which receives the data read request from the communication interface 334 determines whether or not a cache hit or cache miss has taken place, that is, whether read target data is stored in the cache memory 337 (S 202 ). If a cache miss is determined in step S 202 , that is, if read target data is not stored in the cache memory 337 , the data controller 335 transmits a data read request to the drive interface 336 .
- the drive interface 336 receives a data read request from the data controller 335 (S 203 ), reads read target data from the storage device (hard disk drive 350 ) (S 204 ) and transmits the data to the data controller 335 .
- the data controller 335 writes read data received from the drive interface 336 to the cache memory 337 (S 205 ) and transfers the data to the communication interface 334 (S 206 ).
- the communication interface 334 transmits the read data transferred from the data controller 335 to the host 100 (S 207 ).
- the host 100 receives the read data transmitted from the communication interface 334 (S 208 ).
- the [communication interface 334 ] transmits a data reading completion report to the host 100 (S 209 ).
- the host 100 receives the data reading completion report transmitted from the communication interface 334 (S 210 ).
- the host 100 transmits a data read request to the communication interface 334 (S 211 ).
- the communication interface 334 receives a data read request transmitted from the host 100 and notifies the data controller 335 (S 212 ).
- the data controller 335 which receives the data read request from the communication interface 334 determines whether or not a cache hit or cache miss has taken place, that is, whether read target data is stored in the cache memory 337 (S 213 ). If a cache hit is determined in step S 213 , that is, if read target data is stored in the cache memory 337 , the data controller 335 transfers the read target data of the cache memory 337 to the communication interface 334 (S 214 ).
- the communication interface 334 transmits the read data transferred from the data controller 335 to the host 100 (S 215 ).
- the host 100 receives the read data transmitted from the communication interface 334 (S 216 ).
- [the communication interface 334 ] transmits the data reading completion report to the host 100 (S 217 ).
- the host 100 receives the data reading completion transmitted from the communication interface 334 (S 218 ).
- the margin capacity securing processing for securing the margin capacity of the first storage tier (Tier 1) and the second storage tier (Tier 2) will first be described hereinbelow.
- Tier 1 in order to promote a page which has been accessed once to the first storage tier (Tier 1) as a result of the access, it is necessary to secure a predetermined amount of margin area in the first storage tier (Tier 1).
- the time taken for the page of the first storage tier (Tier 1) to be demoted to a page of the second storage tier (Tier 2) is calculated according to the speed of processing of the I/O requests from the host 100 . Accordingly, an optimal command response time can be expected for access from the host 100 and optimal page disposition can be executed according to the speed of processing of the I/O requests from the host 100 .
- Page migration processing to the first storage tier and page migration processing from an upper tier to a lower tier (demotion processing) will be described next.
- all such pages are migrated (promoted) to the first storage tier (Tier 1).
- pages originally disposed in the first storage tier (Tier 1) are disposed as is in the first storage tier (Tier 1).
- migration from the first storage tier (Tier 1) to the second storage tier (Tier 2) and page migration (demotion) from the second storage tier (Tier 2) to the third storage tier (Tier 3) are executed according to the demotion time calculated in the margin capacity securing processing above.
- the limit margin input processing unit 304 acquires information relating to pool configuration input by the user via the pool schedule input screen 500 shown in FIG. 9 (S 301 ). Further, the limit margin input processing unit 304 acquires limit margin information corresponding to the pool designated in step S 301 and stores the limit margin information in the limit margin field 3113 of the first storage tier (Tier 1) of the pool of the pool schedule management table 311 (S 302 ).
- the guide margin calculation processing unit 305 stores the value of the limit margin field 3113 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the safety factor field 3114 as a temp variable B and stores the value of the total capacity field 3115 as a temp variable C (S 311 ). Further, the guide margin calculation processing unit 305 calculates the guide margin capacity by means of the following equation and stores this capacity as a temp variable D, and stores the value of the variable D in the guide margin capacity field 3118 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 (S 312 ).
- the free capacity depletion time calculation processing unit 306 stores the value of the free capacity field 3116 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as the temp variable A, stores the value of the host I/O performance field 3119 as a temp variable B, and stores the A/B value as a temp variable C (free capacity depletion estimated time) (S 321 ).
- the free capacity depletion time calculation processing unit 306 acquires the current time from a timer function managed in the microprogram of the storage apparatus 300 and stores the current time as a temp variable D (S 322 ). Furthermore, the free capacity depletion time calculation processing unit 306 calculates the free capacity depletion time of the first storage tier by means of the following equation and stores this time in the Tier depletion time field 3121 of the first storage tier of the pool of the pool schedule management table 311 (S 323 ).
- the guide margin securing time calculation processing unit 307 stores the value of the demotion performance field 3123 of the first storage tier of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin capacity field 3122 as a temp variable B, and stores the value of NB as a temp variable C (guide margin securing time) (S 331 ).
- the guide margin securing time calculation processing unit 307 stores C (the guide margin securing time) calculated in step S 331 in the guide margin securing time field 3122 of the first storage tier in the pool of the pool schedule management table 311 (S 332 ).
- the demotion start time calculation processing unit 308 stores the value of the Tier depletion time field 3121 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin securing time field 3122 as a temp variable B, and stores a value A-B as a temp variable C (demotion start time) (S 341 ).
- the demotion start time calculation processing unit 308 stores C (demotion start time) which was calculated in step S 341 in the demotion start time field 3123 of the first storage tier of the pool in the pool schedule management table 311 (S 342 ).
- the guide margin calculation processing unit 305 stores the value of the safety factor field 3114 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the total capacity field 3115 as a temp variable B, and stores the value of A*B as a temp variable C (guide margin capacity) (S 351 ).
- the guide margin calculation processing unit 305 stores C (the guide margin capacity) which was calculated in step S 351 in the guide margin capacity field 318 of the pool schedule management table 311 (S 352 ).
- the free capacity depletion time calculation processing unit 306 stores the value of the free capacity field 3116 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the demotion performance field 3120 of the second storage tier (Tier 2) as a temp variable B, and stores the value of A/B as a temp variable C (free capacity depletion estimated time) (S 361 ).
- the free capacity depletion time calculation processing unit 306 acquires the current time from the timer function managed in the microprogram of the storage apparatus 300 and stores the current time as a temp variable D (S 362 ). Further, the free capacity depletion time calculation processing unit 306 calculates the free capacity depletion time of the first storage tier by means of the following equation and stores this time in the tier depletion time field 3121 of the second storage tier of the pool in the pool schedule management table 311 (S 363 ).
- the guide margin securing time calculation processing unit 307 stores the value of the demotion performance field 3123 of the second storage tier of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin capacity field 3122 as a temp variable B, and stores the value of A//B as a temp variable C (guide margin securing time) (S 371 ).
- the guide margin securing time calculation processing unit 307 stores C (guide margin securing time) which is calculated in step S 371 in the guide margin securing time field 3122 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 (S 372 ).
- the demotion start time calculation processing unit 308 stores the value of the tier depletion time field 3121 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin securing time field 3122 as a temp variable B, and stores the value of A-B as a temp variable C (demotion start time) (S 381 ).
- the demotion start time calculation processing unit 308 stores C (the demotion start time) which is calculated in step S 341 in the demotion start time 3123 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 (S 382 ).
- promotion processing and demotion processing of storage apparatus will be described next. Note that although, in the following description, the main subject of the promotion processing and demotion processing is the I/O processing unit 301 , it goes without saying that, in reality, the data controller 335 of the storage apparatus 300 executes [the various processing] on the basis of a program [of the I/O processing unit 301 ].
- the I/O processing unit 301 receives I/O from the host 100 (S 401 ). Further, the I/O processing unit 301 updates the page counter field 3122 , the last access date and time field 3124 , and the target tier field 3129 corresponding to the I/O request in the page disposition destination management table 312 . More specifically, the I/O processing unit 301 adds 1 to the value of the counter field 3122 . Further, the I/O processing unit 301 updates the value of the last access date and time field 3124 to the current time. Further, the I/O processing unit 301 updates the value of the target tier field 3129 to 1.
- the I/O processing unit 301 refers to the current tier field 3128 of the page in the page disposition destination management table 312 in order to determine whether the current tier of the page is a tier other than 1 (Tier 2 or Tier 3) (S 403 ).
- step S 403 If it is determined in step S 403 that the current tier of the page is not a tier other than 1, that is, that the current tier is 1, [the I/O processing unit 301 ] ends the processing as is. If, on the other hand, it is determined in step S 403 that the current tier of the page is either 2 or 3, [the I/O processing unit 301 ] registers the page at the end of the promotion execution reserve queue 313 (S 404 ).
- the I/O processing unit 301 refers to the promotion execution reserve queue 313 and executes promotion processing on the queue stored in the promotion execution reserve queue 313 in order starting at the beginning (S 411 ). More specifically, the I/O processing unit 301 migrates pages corresponding to the queue stored in the promotion execution reserve queue 313 to the first storage tier (Tier 1) from the second storage tier (Tier 2) or the third storage tier (Tier 3).
- the I/O processing unit 301 refers to the page disposition destination management table 312 and, based on the information stored in the counter field 3123 and the last access date and time field 3124 , registers the page with the oldest last access date and time and with a small counter value, that is, minimal page access, in the demotion execution reserve queue as the demotion target page (S 421 ).
- the I/O processing unit 301 registers pages demoted from the second storage tier (Tier 2) to the first storage tier (Tier 1) in the demotion execution reserve queue 314 A for demotion from Tier 2 to Tier 1, and registers pages demoted from the third storage tier (Tier 3) to the second storage tier (Tier 2) in the demotion execution reserve queue 314 B for demotion from Tier 3 to Tier 2.
- step S 421 After ending the search of step S 421 as far as the end of the entries in the page disposition destination management table 312 , the I/O processing unit 301 starts searching from the beginning of the table once again (S 422 ).
- the I/O processing unit 301 acquires the current time from the timer function managed in the microprogram in the storage apparatus 300 and stores the current time as a temp variable D (S 431 ). Furthermore, [the I/O processing unit 301 ] determines whether the time stored in the demotion start time field 3123 of the first storage tier (Tier 1) in the pool schedule management table 311 already exceeds the time of the temp variable D (S 432 ).
- step S 432 if it is determined in step S 432 that the time stored in the demotion start time field 3123 already exceeds the time of the temp variable D, the I/O processing unit 301 executes demotion processing in order starting at the beginning of the queue registered in the execution reserve queue 314 A [for demotion] from the first storage tier (Tier 1) to the second storage tier (Tier 2) (S 433 ). If, on the other hand, it is determined in step S 432 that the time stored in the demotion start time field 3123 does not already exceed the time of the temp variable D, the I/O processing unit 301 ends the processing.
- the I/O processing unit 301 acquires the current time from the timer function managed in the microprogram in the storage apparatus 300 and stores the current time as a temp variable D (S 441 ). Further, [the I/O processing unit 301 ] determines whether the time stored in the demotion start time field 3123 of the second storage tier (Tier 2) in the pool schedule management table 311 already exceeds the time of the temp variable D (S 442 ).
- step S 442 if it is determined in step S 442 that the time stored in the demotion start time field 3123 already exceeds the time of the temp variable D, the I/O processing unit 301 executes demotion processing in order starting at the beginning of the queue registered in the execution reserve queue 314 A [for demotion] from the first storage tier (Tier 1) to the second storage tier (Tier 2) (S 443 ). If, on the other hand, it is determined in step S 442 that the time stored in the demotion start time field 3123 does not already exceed the time of temp variable D, the I/O processing unit 301 ends the processing.
- the time taken for the page of the first storage tier (Tier 1) to be demoted to a page of the second storage tier (Tier 2) is calculated according to the speed of processing of the I/O requests from the host 100 , and page migration (demotion) from the first storage tier (Tier 1) to the second storage tier (Tier 2) as well as migration from the second storage tier (Tier 2) to the third storage tier (Tier 3) are executed according to the calculated demotion time. Accordingly, an optimal command response time can be expected for access from the host 100 and optimal page disposition can be executed according to the speed of processing of the I/O requests from the host 100 .
- the steps in the processing of the storage apparatus 300 of the present specification need not necessarily each be processed chronologically in the order illustrated by the flowchart.
- the steps in the processing of the storage apparatus 300 may also each be executed in parallel using different processes.
- a computer program can also be created in order to cause hardware such as the CPU, ROM, and RAM built into the storage apparatus 300 or the like to exhibit the same functions as each of the above configurations of the storage apparatus 300 .
- a storage medium which stores the computer program is also provided.
- the disk controller 330 of the storage apparatus 300 realizes the various functions of the present invention on the basis of various programs stored in the storage apparatus 300 according to the foregoing embodiment, the present invention is not limited to this example.
- the disk controller 330 may also be provided in another separate apparatus from the storage apparatus 300 in order to realize various functions in co-operation with the disk controller 330 .
- the various programs stored in the storage apparatus 300 may also be provided in another separate device from the storage apparatus 300 so that the various functions are realized as a result of the programs being called to the disk controller 330 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A storage apparatus includes storage devices of a plurality of types of varying performance, and a control unit which manages each of storage areas provided by the storage devices of the plurality of types by means of storage tiers of a plurality of different types, and assigns the storage areas in page units to a virtual volume from any of the storage tiers among the storage tiers of the plurality of types. If the data I/O request is received from the host, the control unit assigns storage areas in page units from the uppermost storage tier to the target areas of the virtual volume corresponding to the I/O request. The control unit changes the page unit storage area assignment to predetermined areas of the virtual volume from an upper storage tier to a lower storage tier in accordance with the speed of processing of the data I/O request.
Description
- This application is a Continuation of Ser. No. 13/499,906 filed Apr. 2, 2012, which is the National Stage of PCT/JP2012/001957 filed Mar. 21, 2012, incorporated herein by reference in its entirety.
- The present invention relates to a storage apparatus and data management method and is suitably applied to a storage apparatus in which a hierarchical data management function is installed, for example.
- In recent years, one such function which is installed in a storage apparatus that has been attracting attention is a virtualization function known as thin provisioning. A thin provisioning function is a function which provides a host with a virtual logical volume (referred to hereinbelow as a virtual volume), and which, when a request to write data to the virtual volume is supplied from the host, dynamically assigns a storage area to the virtual volume. The thin provisioning function is advantageous in providing to the host a virtual volume with a larger capacity than the storage area that is actually available and in affording the construction of a low-cost computer system by reducing the physical storage capacity in the storage apparatus which is to be pre-prepared.
- Furthermore, as a data management method for this kind of storage apparatus in which the thin provisioning function is installed, a hierarchical data management method has conventionally been proposed (
PTL 1, for example). A hierarchical data management method is a method in which storage areas provided by each of a plurality of types of storage devices of varying performance which are built into the storage apparatus are managed as storage tiers of a plurality of different types, where storage areas are assigned from a high-speed, high-performance storage tier to areas where data of high access frequency in the virtual volume is stored, and storage areas are assigned from a low-speed, low-performance storage tier to areas where data of low access frequency in the virtual volume is stored. With this hierarchical data management method, the cost performance of the storage apparatus can be improved. - U.S. Published Unexamined Application No. 2011/0167236
- However, with the foregoing hierarchical data management method, there is a problem in that, because the assignment destination of storage areas (pages) is determined according to the access frequency, even though a page which has been accessed once will likely be accessed once again for a short time and even though there may be a sudden increase in access to a page which has been assigned to a lower tier, it takes time for the page to be assigned to an upper tier and a response speed which matches the access frequency cannot be obtained.
- The present invention was conceived in view of the above points and proposes a storage apparatus and data management method enabling optimal page disposition in response to a sudden increase in the access frequency to a specific page.
- In order to solve this problem, the present invention provides a storage apparatus which is coupled to a host which issues a data I/O request via a network, comprising storage devices of a plurality of types of varying performance, and a control unit which manages each of storage areas provided by the storage devices of the plurality of types by means of storage tiers of a plurality of different types, and assigns the storage areas in page units to a virtual volume from any of the storage tiers among the storage tiers of the plurality of types in response to a request to write the data from the host, wherein, if the data I/O request is received from the host, the control unit assigns storage areas in page units from the uppermost storage tier to the target areas of the virtual volume corresponding to the I/O request, and wherein the control unit changes the page unit storage area assignment to predetermined areas of the virtual volume from an upper storage tier to a lower storage tier in accordance with the speed of processing of the data I/O request from the host.
- With this configuration, pages accessed by the host are disposed in the uppermost storage tier and pages in the uppermost storage tier are migrated according to the speed of processing the I/O request from the host. As a result, the optimal command response time to access by the host can be expected and optimal page disposition can be executed according to the speed of I/O processing by the host.
- The present invention makes it possible to provide optimal page disposition in response to a sudden increase in the access frequency to a specific page.
-
FIG. 1 is a block diagram showing a hardware configuration of a storage system according to a first embodiment of the present invention. -
FIG. 2 is a block diagram showing a hardware configuration of a host according to this embodiment. -
FIG. 3 is a block diagram showing a hardware configuration of a management server according to this embodiment. -
FIG. 4 is a block diagram showing a hardware configuration of a storage apparatus according to this embodiment. -
FIG. 5 is a block diagram showing a logical configuration of the storage apparatus according to this embodiment. -
FIG. 6 is an explanatory diagram showing an overview of a data management method according to this embodiment. -
FIG. 7 is a block diagram showing a software configuration of a storage apparatus according to this embodiment. -
FIG. 8 is a table showing content of a pool schedule management table according to this embodiment. -
FIG. 9 is a conceptual view of an example of a pool schedule input screen according to this embodiment. -
FIG. 10 is a table showing content of a page disposition destination management table according to this embodiment. -
FIG. 11 is a table showing content of a promotion execution reservation queue according to this embodiment. -
FIG. 12 is a table showing content of a demotion execution reservation queue according to this embodiment. -
FIG. 13 is a table showing content of a demotion execution reservation queue according to this embodiment. -
FIG. 14 is a flowchart showing the flow of data write processing according to a computer system according to this embodiment. -
FIG. 15 is a flowchart showing the flow of data write processing according to this embodiment. -
FIG. 16 is a flowchart showing the flow of data read processing according to the computer system according to this embodiment. -
FIG. 17 is a flowchart showing the flow of data read processing according to the computer system according to this embodiment. -
FIG. 18 is a flowchart showing limit margin input processing according to this embodiment. -
FIG. 19 is a flowchart showing the flow of guide margin calculation processing according to this embodiment. -
FIG. 20 is a flowchart showing the flow of free capacity depletion time calculation processing according to this embodiment. -
FIG. 21 is a flowchart showing the flow of guide margin securing time calculation processing according to this embodiment. -
FIG. 22 is a flowchart showing the flow of demotion start time calculation processing according to this embodiment. -
FIG. 23 is a flowchart showing the flow of guide margin calculation processing according to this embodiment. -
FIG. 24 is a flowchart showing the flow of free capacity depletion time calculation processing according to this embodiment. -
FIG. 25 is a flowchart showing the flow of guide margin securing time calculation processing according to this embodiment. -
FIG. 26 is a flowchart showing the flow of demotion start time calculation processing according to this embodiment. -
FIG. 27 is a flowchart showing the flow of promotion determination processing according to this embodiment. -
FIG. 28 is a flowchart showing the flow of promotion processing according to this embodiment. -
FIG. 29 is a flowchart showing the flow of demotion determination processing according to this embodiment. -
FIG. 30 is a flowchart showing the flow of demotion processing according to this embodiment. -
FIG. 31 is a flowchart showing the flow of demotion processing according to this embodiment. - An embodiment of the present invention will be described in detail hereinbelow with reference to the drawings.
- First, a hardware configuration of a
computer system 1 according to this embodiment will be described. As shown inFIG. 1 , thecomputer system 1 is configured fromhosts 100,management servers 200, and astorage apparatus 300. - The
hosts 100 are computer device which comprise information processing resources such as a CPU (Central Processing Unit) and memory and the like and are configured, for example, from a personal computer, a workstation, or a mainframe. In order to reference or update data which is stored in thestorage apparatus 300, thehosts 100 transmit read requests or write requests to thestorage apparatus 300 via a network. Furthermore, thehosts 100 are coupled to thestorage apparatus 300 via a host I/O network 400. The host I/O network 400 is configured from a SAN (Storage Area Network) or the like, for example, and communications between apparatuses are performed according to the fibre channel protocol, for example. - The host I/
O network 400 may be a LAN (Local Area Network), the Internet, a public line or a lease line or the like, for example. If the host I/O network 400 is a LAN, communications between apparatuses are carried out according to the TCP/IP (Transmission Control Protocol/Internet Protocol) protocol, for example. - The
management servers 200 are computer devices comprising information processing resources such as a CPU and memory and are configured, for example, from a personal computer, a workstation, or a mainframe or the like. Themanagement servers 200 are coupled to thestorage apparatus 300 via amanagement LAN network 410. Themanagement LAN network 410 is configured from a SAN or LAN or the like, for example. - Furthermore, a program stored in the memory of the
management servers 200 manages the storage media of thestorage apparatus 300 and manages, for example, the configuration of RAID (Redundant Arrays of Inexpensive Disks) groups and the capacities of logical volumes which are configured from part of the RAID groups. Themanagement servers 200 transmit commands corresponding to user operations and the like to thestorage apparatus 300 and changes RAID configuration information or the like. - The
storage apparatus 300 is coupled to thehost 100 via the host I/O network 400 and executes reading/writing from and to the storage media in the storage apparatus by parsing the commands from thehosts 100. Furthermore, thestorage apparatus 300 is coupled to themanagement servers 200 via themanagement LAN network 410 and changes the RAID configuration in response to instructions from themanagement servers 200. - As shown in
FIG. 2 , thehost 100 comprises aCPU 110, amemory 120, a communication interface (communication I/F in the drawings) 130, anauxiliary storage device 140, an I/O device 150, anoutput device 160, and astorage device 180. - The
CPU 110 functions as an arithmetic processing device and a controller and controls the general operation in thehost 100 according to various programs. Thememory 120 stores programs and arithmetic parameters and the like which are used by theCPU 110, and primarily stores programs which are used in the execution of theCPU 110 as well as parameters and so on which are suitably changed in this execution. - The
communication interface 130 is a communication interface which is configured from a communication device or the like for connecting to the host I/O network 400. Further, thecommunication interface 130 may be a wired communication device which performs communications over wires irrespective of whether thecommunication device 130 is a wireless LAN (Local Area Network)-compatible communication device or a wireless USB-compatible communication device. - The
auxiliary storage device 140 is a removable storage medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory. Theinput device 150 is configured from input means enabling the user to input information such as, for example, a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever and an input control circuit which generates an input signal based on the input by the user and outputs the input signal to theCPU 110. Theoutput device 160 is configured, for example, from a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp and from an audio output device such as speakers or headphones. - The
storage device 180 comprises a storage medium, a recording device for recording data to the storage medium, a reading device for reading data from the storage medium, and a deletion device for deleting data recorded to the storage medium, and the like, and is configured from a HDD (Hard Disk Drive), for example. - As shown in
FIG. 3 , themanagement server 200 comprises aCPU 210, amemory 220, a communication interface (communication I/F in the drawings) 230, anauxiliary storage device 240, an I/O device 250, anoutput device 260, and astorage device 280. - The
CPU 210 functions as an arithmetic processing device and a controller and controls the general operation in themanagement server 200 according to various programs. Thememory 220 stores programs and arithmetic parameters and the like which are used by theCPU 210, and primarily stores programs which are used in the execution of theCPU 210 as well as parameters and so on which are suitably changed in this execution. - The
communication interface 230 is a communication interface which is configured from a communication device or the like for connecting to the host I/O network 400. Further, thecommunication interface 230 is a wired communication device which performs communications over wires irrespective of whether the communication device is a wireless LAN (Local Area Network)-compatible communication device or a wireless USB-compatible communication device. - The
auxiliary storage device 240 is a removable storage medium such as a magnetic disk, optical disk, magneto-optical disk, or a semiconductor memory. Theinput device 250 is configured from input means enabling the user to input information such as, for example, a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever and an input control circuit which generates an input signal based on the input by the user and which outputs the input signal to theCPU 210. Theoutput device 260 is configured, for example, from a display device such as a CRT (Cathode Ray Tube) display device, a liquid-crystal display (LCD) device, an OLED (Organic Light Emitting Display) device or a lamp and from an audio output device such as a speaker or headphone. - The
storage device 280 comprises a storage medium, a recording device for recording data to the storage medium, a reading device for reading data from the storage medium, and a deletion device for deleting data recorded to the storage medium, and the like, and is configured from a HDD (Hard Disk Drive), for example. - As shown in
FIG. 4 , thestorage apparatus 300 is configured from abase enclosure 310 and a plurality ofadditional enclosures 320. - The
storage apparatus 300 is configured by serially connecting thebase enclosure 310 to the plurality ofadditional enclosures 320. Thebase enclosure 310 is configured comprising a plurality ofdisk controllers 330 and a plurality of hard disk drives 350. - The
disk controllers 330 each comprise aCPU 331, abridge 332, amemory 333, a communication interface (communication I/F in the drawings) 334, a data controller (DCTL in the drawings) 335, a drive interface (drive I/F in the drawings) 336, a cache memory (CM in the drawings) 337, and aswitch 338. - The
CPU 331 responds to data I/O requests from thehosts 100 and controls I/O processing (write access or read access) to/from the plurality of hard disk drives 350. Thebridge 332 interconnects theCPU 331, thememory 333, and thedata controller 335. In addition to storing various programs of theCPU 331, thememory 333 functions as a work area of theCPU 331. The communication interface (communication I/F in the drawings) 334 is a controller for controlling the interface with thehosts 100 and comprises a function for receiving block access requests from thehost system 50 using the fibre channel protocol, for example. - The data controller (DCTL in the drawings) 335 interconnects the
bridge 332 and thecache memory 337 and controls data transfers between thehosts 100 and thehard disk drive 350. More specifically, when write access from thehosts 100 is executed, thedata controller 335 writes write data received from the hosts 100 (dirty data) to thecache memory 337. Thereafter, at the stage where the write data in thecache memory 337 has accumulated to a certain extent, thedata controller 335 asynchronously writes the write data to the hard disk drives 350. If, on the other hand, read access from thehosts 100 is executed, thedata controller 335 writes read data which is read from thehard disk drive 350 to thecache memory 337 and transfers the data to thehosts 100. - The drive interface (drive I/F in the drawings) 336 performs protocol conversion between the fibre channel protocol and the SATA protocol. The
drive interface 336 is coupled to theswitch 338. Theswitch 338 connects thehard disk drive 350 to thedrive interface 336. - Further, the
controller 330 is able to control a plurality ofhard disk drives 350 according to the RAID level (0, 1, 5, for example) prescribed by the so-called RAID system. In a RAID system, a plurality ofhard disk drives 350 are managed as asingle RAID group 340. A plurality of logical volumes which are units of access from thehosts 100 are defined in the RAID groups 340. The LUN (Logical Unit Number) is assigned to each of the logical volumes. - Furthermore, the
storage apparatus 300 is able to expand the storage capacity by additionally providingadditional enclosures 320 to thebase enclosure 310. - The
additional enclosure 320 is coupled to thecontroller 330 of thebase enclosure 310 via theswitch 338. Like thebase enclosure 310, thecontroller 310 is capable of controlling the plurality ofhard disk drives 350 according to the RAID level (0, 1, 5, for example) which is prescribed by the so-called RAID system. -
FIG. 5 shows the logical configuration of thestorage apparatus 300. As is also clear fromFIG. 5 , in thestorage apparatus 300, RAID groups RG are defined by one or more storage devices 350 (hard disk drives 350 inFIG. 4 ) of the same type (SSD, SAS/FC and SATA and the like), and one or more pool volumes PVOL are defined in storage areas provided by one ormore storage devices 350 which constitute a single RAID group. The pool volumes PVOL defined in the storage areas provided by thestorage devices 350 of the same type are each managed as storage tiers ST of the same type and the plurality of pool volumes PVOL belonging to mutually different storage tiers ST are managed as a single virtual volume pool VVP. - In the case of this embodiment, storage devices 30 of four types of SSD, SAS disks, FC disks, and SATA disks are used as the
storage devices 350 as mentioned earlier, and a pool volume PVOL defined in the storage area provided by one or more SSDs is managed as a storage tier called Tier 1 (hereinafter called the first storage tier) ST, a pool volume PVOL defined in the storage area provided by one or more SAS disks or FC disks is managed as a storage tier called Tier 2 (hereinafter called the second storage tier) ST, and a pool volume PVOL defined in the storage area provided by one or more SATA disks is managed as a storage tier called Tier 3 (hereinafter called the third storage tier) ST. - Note that, among these types of storage devices 350 (SSD, SAS/FC and SATA), the storage device type which is the most reliable and exhibits the highest response performance is SSD, the storage device type which is the next most reliable and exhibits the next highest response performance is the SAS disk or FC disk, and the storage device type which is the least reliable and exhibits the lowest response performance is the SATA disk. Accordingly, in the case of this embodiment, among the first to third storage tiers ST which constitute the virtual volume pool VVP, the storage tier which is the most reliable and exhibits the highest response performance is the first storage tier ST, the storage tier with the next most reliable and exhibits the next highest response performance is the second storage tier ST, and the storage device type which is the least reliable and exhibits the lowest response performance is the third storage tier ST.
- Meanwhile, one or more virtual volumes VVOL are defined in the
storage apparatus 300. The virtual volumes VVOL are each assigned a unique identifier (hereinafter called LUN (Logical Unit Number)). Furthermore, areas in the virtual volume VVOL are divided into blocks of a predetermined size (hereinafter called logical blocks) and are managed using unique numbers (hereinafter called LBA (Logical Block Address)) which are each assigned to the logical blocks. Data I/O requests (write requests and read requests) to the virtual volumes VVOL from thehosts 100 are made by designating the LUN of the virtual volumes from/to which data is read and written, and the LBA and the data lengths of the leading logical blocks of the areas from/to which data in the virtual volumes VVOL is read and written. - Any one of the virtual volume pools VVP is pre-associated with each of the virtual volumes VVOL. Further, upon receiving a request to write data to the virtual volumes VVOL from the
hosts 100, thestorage apparatus 300 assigns storage areas of the required amount in units of a predetermined size called pages from the virtual volume pool VVP associated with the virtual volume VVOL to the area designated in the write request in the virtual volume VVOL designated in the write request and writes write target data to the assigned pages. - Here, pages are base units of the storage areas assigned to the virtual volumes VVOL from any of the storage tiers (the first to third storage tiers) ST which constitute the virtual volume pools VVP associated with the virtual volumes VVOL. In the following description, one page and one logical block of a virtual volume VVOL are described as storage areas of the same storage size but are not necessarily limited to being storage areas of the same storage size.
- Furthermore, when pages are assigned from the virtual volume pool VVP which corresponds to the virtual volume VVOL, the
storage apparatus 300 sequentially assigns pages, among assignable pool volumes PVOL, from the pool volume PVOL which belongs to the storage tier ST which is the most reliable and has the highest response performance. Hence, the storage apparatus 5A assigns pages to the virtual volume VVOL from the pool volume PVOL until pages not yet assigned to the pool volume PVOL are depleted in the following order: the pool volume PVOL which belongs to the first storage tier ST, the pool volume PVOL which belongs to the second storage tier ST and the pool volume PVOL which belongs to the third storage tier ST. - Meanwhile, the
storage apparatus 300 monitors the frequency of access by thehosts 100 per unit time to each of the logical blocks of the virtual volumes VVOL in parallel with processing to assign pages to the virtual volume VVOL mentioned earlier. - Further, the
storage apparatus 300 migrates data according to requirements between the first to third storage tiers ST so that pages are assigned from the first or second storage tiers ST which are the next most reliable and which have the next highest response performance to logical blocks which have a high access frequency and so that pages are assigned from the second or third storage tier ST which is less reliable and which have a lower response performance to logical blocks which have a low access frequency at regular or irregular intervals on the basis of the access frequency per unit time. - (1-6) Overview of Data Management Method According to this Embodiment
- An overview of the data management method in the
storage apparatus 300 will be described next. As mentioned earlier, thestorage apparatus 300 has a built-in hierarchical data management function, and storage area is assigned from high-speed and high-performance storage tiers to areas in the virtual volume which store data with a high access frequency and storage area is assigned from low-speed and low-performance storage tiers to areas in the virtual volume which store data with a low access frequency. With this hierarchical data management method, the cost performance of thestorage apparatus 300 can be improved. - However, according to the hierarchical data management method above, because the tier to which the storage area is assigned is determined by the access frequency of each page, it takes a period of a few hours or more until pages which have been accessed once are distributed to a suitable tier. Therefore, a page which is to be accessed quickly is disposed on the uppermost tier, and there is a problem in that it takes time until an optimal command response time can be expected.
- Therefore, in this embodiment, optimal page disposition is provided in response to an increase in the sudden access frequency of a specific page by means of the following method. That is, as shown in
FIG. 6 , if a page is newly assigned due to initial write access from thehost 100, the page must be disposed in the first storage tier (Tier 1). Furthermore, even if write access is made to an area to which a page has already been assigned, the page must be disposed (promoted) to the first storage tier (Tier 1) as a result of single access. In addition, pages are disposed sequentially in a lower tier than the current tier (demoted) according to an LRU algorithm, starting with the page with the lowest access frequency. - Accordingly, because the most recently accessed page is always disposed in the uppermost storage tier, the optimal command response time can be expected for pages which are to be accessed on short notice.
- As described earlier, if access is made to a newly assigned page or to pages which are disposed in the second storage tier (Tier 2) and the third storage tier (Tier 3), these pages are all migrated to the first storage tier (Tier 1) due to access by the
host 100. Further, a page that was originally disposed in the first storage tier (Tier 1) remains disposed in the first storage tier (Tier 1). - According to this embodiment, a page which is newly assigned to the first storage tier (Tier 1) and which is migrated from a storage tier other than the first storage tier (Tier 1) is stored in a blank area (hereinafter blank areas are described with the term margin areas) of the first storage tier (Tier 1). Further, among those pages which are stored in the first storage tier (Tier 1), the page, among the pages with the lowest access frequency, which has the oldest access according to LRU theory is migrated to the second storage tier (Tier 2). Likewise, among those pages which exist in the second storage tier (Tier 2), the page, among the pages with the lowest access frequency, which has the oldest access according to LRU theory is migrated to the third storage tier (Tier 3). Accordingly, for a page which has been accessed once, in order to promote the page to the first storage tier (Tier 1) as a result of this access, a margin area of a predetermined amount can be secured in the first storage tier (Tier 1).
- Furthermore, according to this embodiment, the time taken to migrate a page from the first storage tier (Tier 1) to the second storage tier (Tier 2) is calculated according to a limit value of the margin capacity of the first storage tier (Tier 1) designated by the user.
- More specifically, the margin capacity (guide margin capacity) which is obtained by adding a predetermined amount to a limit value of the margin capacity designated by the user is calculated (STEP 01). Further, the time when the free capacity of the current first storage tier (Tier 1) is depleted (the first storage tier depletion time) is calculated from the speed of processing I/O requests from the
host 100 at the current time (STEP 02). Further, the processing time (guide margin securing time), in a case where a page is demoted from the first storage tier to the second storage tier, for the guide margin capacity is calculated from the speed of demotion from the current first storage tier (Tier 1) to the second storage tier (Tier 2) (STEP 03). Furthermore, by subtracting the guide margin securing time from the first storage tier depletion time, the time of starting the demotion from the first storage tier (Tier 1) to the second storage tier (Tier 2) (the demotion start time) is calculated (STEP 04). - In this embodiment, the processing of
STEP 01 to STEP 04 above is carried out every minute, for example, and the demotion start time of demotion from the first storage tier (Tier 1) to the second storage tier (Tier 2) is updated accordingly. As a result, it is possible to execute optimal page disposition which corresponds to the speed of processing of I/O requests from thehost 100 and the speed of migration processing between storage tiers. - The software configuration of the
storage apparatus 300 will be described next. As shown inFIG. 7 , thestorage apparatus 300 is configured from an I/O processing unit 301, a limit margininput processing unit 304, a guide margincalculation processing unit 305, a free capacity depletion timecalculation processing unit 306, a guide margin securing timecalculation processing unit 307, a demotion start timecalculation processing unit 308, a pool schedule management table 311, a page disposition destination management table 312, a demotionexecution reserve queue 313, and a demotionexecution reserve queue 314. - The I/
O processing unit 301 is configured from a datawrite processing unit 302 and a dataread processing unit 303. The data writeprocessing unit 302 comprises a function for writing data to thehard disk drives 350 in response to a data write request from thehost 100. As mentioned earlier, in this embodiment, if data writing processing to a new page takes place, priority is given to assigning pages of the first storage tier (Tier 1). Furthermore, the data readprocessing unit 303 comprises a function for reading data from thehard disk drives 350 in response to a data read request from thehost 100. - The limit margin
input processing unit 304 acquires a limit value (limit margin capacity) for the margin capacity of the first storage tier (Tier 1) designated in response to a user input and provides the limit value to the guide margincalculation processing unit 305. Further, the guide margincalculation processing unit 305 adds a predetermined fixed value to the limit margin capacity provided by the limit margininput processing unit 304 and calculates a value which serves as a guide for the margin capacity of the first storage tier (Tier 1) (the guide margin capacity of the first storage tier). For example, the limit margin capacity is configured, by means of a user input, as 10 to 50% of the total capacity of the first storage tier. Further, the guide margin capacity is calculated by adding 10% of the fixed value as a safety factor to the limit margin capacity. For example, if the total capacity of the first storage tier is 5 TB and the user-designated limit margin is 20%, the guide margin capacity of the first storage tier is calculated as follows. -
Guide margin capacity of the first storage tier=total capacity of first storage tier*(user-designated first storage tier limit margin+safety factor)=5 TB*(20%+10%)=1.5 TB. - Furthermore, the guide margin
calculation processing unit 305 calculates the capacity corresponding to the fixed ratio (safety factor) for the total capacity of the second storage tier (Tier 2) as a value which serves as a guide for the margin capacity of the second storage tier (Tier 2) (guide map of the second storage tier). For example, in a case where the total capacity of the storage tier is 50 TB and the safety factor is 10%, the guide margin capacity of the second storage tier is calculated as follows. -
The guide margin capacity of the second storage tier=total capacity of the second storage tier*safety factor=50 TB*(10%)=5 TB. - The free capacity depletion time
calculation processing unit 306 calculates the time when the unused capacity (free capacity) of the first storage tier (Tier 1) is depleted (first storage tier depletion time) from the I/O processing speed of thehosts 100 at the current time and the usage capacity of the first storage tier (Tier 1). Here, the I/O processing speed of thehost 100 is the amount of I/O in predetermined time and may also utilize the average value of an actual value [MB/s] for the previous minute, for example. - For example, in a case where the current time is 0:00 on Jan. 1, 2012 and where the I/O processing speed of the
host 100 is 100 MB/s and where the free capacity is 4 TB, the free capacity depletion time of the first storage tier is calculated by adding the time estimated until depletion of the free capacity of the first storage tier to the current time. -
The time estimated until depletion of the free capacity of the first storage tier=the free capacity/ host I/O processing speed=4 TB/100 MB=40000 [s]=11.11 [h] - When the estimated time until free capacity depletion of the first storage tier is added to the
current time 2012/1/1, 0:00, the free capacity depletion time of the first storage tier is calculated as 2012/1/1, 11:07. - In addition, the amount of I/O to/from the first storage tier (Tier 1) by the
host 100 is, strictly speaking, an I/O amount which is obtained by subtracting the corresponding access amount to existing pages in the first storage tier (Tier 1) from the total I/O amount by thehost 100 received by the entire pool. However, hereinafter, the I/O amount by the host also includes the I/O amount obtained by subtracting the access to existing pages in the first storage tier (Tier 1). - Further, the free capacity depletion time
calculation processing unit 306 uses the speed of demotion processing from the first storage tier (Tier 1) at the current time to the second storage tier (Tier 2) to calculate the time when the free capacity of the second storage tier is depleted (second storage tier depletion time). The demotion processing speed from the first storage tier (Tier 1) to the second storage tier (Tier 2) may also utilize, for example, the actual value for I/O processing of thehost 100 to the second storage tier (Tier 2), the actual value when disposition is actually performed again, catalog usage based on each drive type, or the actual value during an I/O operation test which is internally executed at the time of pool creation. - For example, in a case where the current time is 0:00 on Jan. 1, 2012, where the speed of demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) is 50 MB/s, and where the free capacity is 40 TB, the free capacity depletion time of the second storage tier is calculated by adding the time estimated until the depletion of the free capacity of the second storage tier to the current time.
-
The estimated time until the free capacity depletion of the second storage tier=the free capacity/the demotion processing speed from the first storage tier (Tier 1) to the second storage tier (Tier 2)=40 TB/50 MB=800000 [s]=222.22 [h] - When the time estimated until depletion of the free capacity of the second storage tier is added to the current time 0:00, Jan. 1, 2012, the free capacity depletion time of the second storage tier is calculated to be 6:15, Jan. 10, 2012.
- The guide margin securing time
calculation processing unit 307 uses the speed of demotion processing from the first storage tier (Tier 1) at the current time to the second storage tier (Tier 2) in order to calculate the processing time (guide margin securing time of the first storage tier) in a case where disposition processing is performed again from the first storage tier (Tier 1) to the second storage tier (Tier 2) in an amount corresponding to the guide margin capacity of the first storage tier of the first storage tier (Tier 1) which is calculated by the guide margincalculation processing unit 305. Here, the speed of demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) may also, for example, utilize the actual value of I/O processing of thehost 100 to and from the second storage tier (Tier 2), the actual value when disposition is actually performed again, catalog usage based on each drive type, or the actual value during an I/O operation test which is internally executed at the time of pool creation. - For example, in a case where the guide margin capacity of the first storage tier is 1.5 TB and the speed of demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) is 50 MB/s, the guide margin securing time is calculated as follows.
-
Guide margin securing time of the first storage tier=guide margin capacity/demotion processing speed from the first storage tier (Tier 1) to the second storage tier (Tier 2)=1.5 [TB]/50 [MB/s]=30000 [s]=8.33 [h]. - Furthermore, the guide margin securing time
calculation processing unit 307 uses the speed of demotion processing from the second storage tier (Tier 2) at the current time to the third storage tier (Tier 3) in order to calculate the processing time (guide margin securing time of the second storage tier) in a case where disposition processing is performed again from the second storage tier (Tier 2) to the third storage tier (Tier 3) in an amount corresponding to the guide margin capacity of the second storage tier which is calculated by the guide margincalculation processing unit 305. - For example, in a case where the guide margin capacity of the second storage tier is 5 TB and the speed of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3) is 40 MB/s, the guide margin securing time is calculated as follows.
-
The guide margin securing time of the second storage tier=guide margin capacity/the speed of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3)=5 [TB]/40 [MB/s]=124000 [s]=34.72 [h]. - The demotion start time
calculation processing unit 308 calculates the start time of the demotion processing from the first storage tier (Tier 1) to the second storage tier (Tier 2) by back-calculating the guide margin securing time of the first storage tier calculated by the guide margin securing timecalculation processing unit 307 from the first storage tier depletion time. - For example, in a case where the first storage tier depletion time is 11:07, Jan. 1, 2012 and where the guide margin securing time of the first storage tier is 8.33 [h], the start time of the demotion processing from the storage tier (Tier 1) to the second storage tier (Tier 2) is 2:47, Jan. 1, 2012.
- In addition, the demotion start time
calculation processing unit 308 calculates the start time of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3) by back-calculating the guide margin securing time of the second storage tier calculated by the guide margin securing timecalculation processing unit 307 from the second storage tier depletion time. - For example, in a case where the second storage tier depletion time is 6:15, Jan. 10, 2012 and where the guide margin securing time of the second storage tier is 34.72 [h], the start time of demotion processing from the second storage tier (Tier 2) to the third storage tier (Tier 3) is 5:32, Jan. 9, 2012.
- The pool schedule management table 311 is a table for managing pool configuration information on the basis of information which is input to the pool
schedule input screen 500. As shown inFIG. 8 , the pool schedule management table 311 is configured from a pool Nofield 3111, aTier No field 3112, alimit margin field 3113, asafety factor field 3114, atotal capacity field 3115, afree capacity field 3116, ausage capacity field 3117, a guidemargin capacity field 3118, a host I/O performance field 3119, ademotion performance field 3120, a Tierdepletion time field 3121, a guide margin securingtime field 3122, and a demotionstart time field 3123. - The pool No
field 3111 stores numbers identifying each of the pools. TheTier No field 3112 stores numbers identifying storage tiers of each pool. Thelimit margin field 3113 stores information indicating the limit margin capacity of the first storage tier (Tier 1). Thesafety factor field 3114 stores a safety factor for calculating the guide margin capacity of each storage tier. Thetotal capacity field 3115 stores information indicating the total capacity of each storage tier. - The
free capacity field 3116 stores information indicating the unused capacity of each storage tier. Theusage capacity field 3117 stores information indicating the usage capacity of each storage tier. The guidemargin capacity field 3118 stores information indicating the guide margin capacity of each storage tier. The host I/O performance field 3119 stores information indicating the performance of thehost 100. Thedemotion performance field 3120 stores information indicating the performance when demotion is carried out from each storage tier to a storage tier which is one below each storage tier. The tierdepletion time field 3121 stores times when the current free capacity of each storage tier is depleted. The guide margin securingtime field 3122 stores times when the guide margin capacity is secured. The demotion starttime field 3123 stores times when demotion from each storage tier to a storage tier which is one below each storage tier. - As shown in
FIG. 9 , the poolschedule input screen 500 is an input screen enabling the user to configure various information for creating each pool. For example, a pool number is entered in theinput field 501 and a guide margin capacity of the first storage tier of the pool configured in theinput field 501 is entered in theinput field 502. - Further, the
input field 503 enables a RAID level selection to be input from a pulldown display and theinput field 504 enables a RAID configuration selection to be entered from a pulldown display. The number of hard disk drives 350 is entered in theinput field 505. The type ofhard disk drive 350 and the capacity of thehard disk drive 350 are entered in theinput field 506. Further, thedisplay field 507 displays information on thehard disk drive 350 assigned to thestorage apparatus 300. - The page disposition destination management table 312 is a table for managing information relating to the disposition destination of each page and, as shown in
FIG. 10 , is configured from a RAID group (RG) Nofield 3121, a page Nofield 3122, acounter field 3123, a last access date andtime field 3124, a pool Nofield 3125, aLU No field 3126, anLBA field 3127, acurrent tier field 3128, and atarget tier field 3129. - The RAID group (RG) No
field 3121 stores information identifying each RAID group. The page Nofield 3122 stores information identifying each of the pages. Thecounter field 3123 stores the number of accesses to each page. The last access date andtime field 3124 stores the last access date and time for each page. The pool Nofield 3125 stores information indicating the pool number to which each page belongs. TheLU No field 3126 stores information identifying the logical volume to which each page belongs. TheLBA field 3127 stores a unique number (LBA) assigned to each page. Thecurrent tier field 3128 stores information indicating the storage tier to which each page currently belongs. Thetarget tier field 3129 stores information indicating the storage tier targeted by each page. - The promotion
execution reserve queue 313 is an execution reserve queue for promoting the designated page to the first storage tier (Tier 1) and, as shown inFIG. 11 , associates and stores the RAID group number stored in the RAID group (RG) Nofield 3131 and the page number stored in the page Nofield 3132. The pages in the execution reserve queue are each promoted to the first storage tier (Tier 1) in the order in which the pages are stored in the promotionexecution reserve queue 313. - A demotion
execution reserve queue 314A is an execution reserve queue for demoting the designated page from the first storage tier (Tier 1) to the second storage tier (Tier 2) and, as shown inFIG. 12 , associates and stores the RAID group number stored in the RAID group (RG) Nofield 3141 with the page number stored in the page Nofield 3142. The pages in the execution reserve queue are each demoted from the first storage tier (Tier 1) to the second storage tier (Tier 2) in the order in which the pages are stored in the demotionexecution reserve queue 314A. - The demotion
execution reserve queue 314B is an execution reserve queue for demoting a designated page from the second storage tier (Tier 2) to the third storage tier (Tier 3) and, as shown inFIG. 13 , associates and stores the RAID group number stored in the RAID group (RG) Nofield 3141 and the page number stored in the page Nofield 3142. The pages in the execution reserve queue are each demoted from the second storage tier (Tier 2) to the third storage tier (Tier 3) in the order in which the pages are stored in the demotionexecution reserve queue 314B. - Data I/O processing in the
computer system 1 will be described next. Data write processing of thecomputer system 1 will first be described. As shown inFIG. 14 , thehost 100 transmits a data write request to thecommunication interface 334 of the storage apparatus 300 (hereinafter simply described as a communication interface 334) (S100). - The
communication interface 334 receives the data write request transmitted from the host 100 (S101) and communicates the fact that the data write request has been received to the data controller 335 (S102). - The
data controller 335 of the storage apparatus 300 (hereinafter described simply as the data controller 335) receives the data write request reception notice from the communication interface 334 (S103) and writes data written to thehard disk drive 350 to the cache memory 337 (S104). Further, thedata controller 335 transmits a data write request to thedrive interface 336 of the storage apparatus 300 (hereinafter described simply as the drive interface 336) and reports the completion of data writing to the communication interface 334 (S107). - In step S107, the
data controller 335 determines whether assignment of a new page is required at the time of the data writing requested by thehost 100. In specific terms, as shown inFIG. 15 , thedata controller 335 determines whether assignment of a new page is required at the time of the data writing requested by the host 100 (S121). If it is determined in step S121 that assignment of a new page is required, thedata controller 335 instructs thedrive interface 336 to prioritize assignment of a page from the first storage tier (Tier 1) (S122). If it is determined in step S122 that new page assignment is not required, that is, if a page has already been assigned to the data write target, [thedata controller 335 instructs thedrive interface 336 to access the existing page of each storage tier (S123). - After reporting completion of data writing from the
data controller 335, thecommunication interface 334 transmits a completion report to the host 100 (S105). Further, thehost 100 receives the data writing completion report from thecommunication interface 334. - In addition, the
drive interface 336 receives a drive write request from the data controller 335 (S108) and reads the drive write request from the queue (S109). Further, thedrive interface 336 writes the write data read from the queue in step S109 to the storage device (hard disk drive 350) (S110). Thedrive interface 336 then transmits a data writing completion report to the data controller 335 (S111). Thedata controller 335 receives the data writing completion report transmitted from thedrive interface 336 in step S111 (S112). - Data read processing of
computer system 1 will be described next.FIG. 16 shows a case where a cache miss takes place during reading, that is, where the read target data is not stored in thecache memory 337. Further,FIG. 17 shows a case where a cache hit takes place during data reading, that is, where the read target data is stored in thecache memory 337. - As shown in
FIG. 16 , thehost 100 transmits a data read request to the communication interface 334 (S200). Thecommunication interface 334 receives the data read request transmitted from thehost 100 and notifies the data controller 335 (S201). - The
data controller 335 which receives the data read request from thecommunication interface 334 determines whether or not a cache hit or cache miss has taken place, that is, whether read target data is stored in the cache memory 337 (S202). If a cache miss is determined in step S202, that is, if read target data is not stored in thecache memory 337, thedata controller 335 transmits a data read request to thedrive interface 336. - The
drive interface 336 receives a data read request from the data controller 335 (S203), reads read target data from the storage device (hard disk drive 350) (S204) and transmits the data to thedata controller 335. - The
data controller 335 writes read data received from thedrive interface 336 to the cache memory 337 (S205) and transfers the data to the communication interface 334 (S206). - The
communication interface 334 transmits the read data transferred from thedata controller 335 to the host 100 (S207). Thehost 100 receives the read data transmitted from the communication interface 334 (S208). Further, the [communication interface 334] transmits a data reading completion report to the host 100 (S209). Thehost 100 receives the data reading completion report transmitted from the communication interface 334 (S210). - As shown in
FIG. 17 , thehost 100 transmits a data read request to the communication interface 334 (S211). Thecommunication interface 334 receives a data read request transmitted from thehost 100 and notifies the data controller 335 (S212). - The
data controller 335 which receives the data read request from thecommunication interface 334 determines whether or not a cache hit or cache miss has taken place, that is, whether read target data is stored in the cache memory 337 (S213). If a cache hit is determined in step S213, that is, if read target data is stored in thecache memory 337, thedata controller 335 transfers the read target data of thecache memory 337 to the communication interface 334 (S214). - The
communication interface 334 transmits the read data transferred from thedata controller 335 to the host 100 (S215). Thehost 100 receives the read data transmitted from the communication interface 334 (S216). In addition, [the communication interface 334] transmits the data reading completion report to the host 100 (S217). Thehost 100 receives the data reading completion transmitted from the communication interface 334 (S218). - The margin capacity securing processing of the storage apparatus will be described next. Note that, although the main subject of the various processing in the following description are programs (limit margin input processing unit and so on), it goes without saying that, in reality, the
data controller 335 of thestorage apparatus 300 executes [the various processing] on the basis of such programs. - The margin capacity securing processing for securing the margin capacity of the first storage tier (Tier 1) and the second storage tier (Tier 2) will first be described hereinbelow. As mentioned earlier, in this embodiment, in order to promote a page which has been accessed once to the first storage tier (Tier 1) as a result of the access, it is necessary to secure a predetermined amount of margin area in the first storage tier (Tier 1). Further, the time taken for the page of the first storage tier (Tier 1) to be demoted to a page of the second storage tier (Tier 2) is calculated according to the speed of processing of the I/O requests from the
host 100. Accordingly, an optimal command response time can be expected for access from thehost 100 and optimal page disposition can be executed according to the speed of processing of the I/O requests from thehost 100. - Page migration processing to the first storage tier (promotion processing) and page migration processing from an upper tier to a lower tier (demotion processing) will be described next. As mentioned earlier, according to this embodiment, in a case where access is made to a newly assigned page or to a page which is disposed in the second storage tier (Tier 2) and the third storage tier (Tier 3), all such pages are migrated (promoted) to the first storage tier (Tier 1). Further, pages originally disposed in the first storage tier (Tier 1) are disposed as is in the first storage tier (Tier 1). Further, migration from the first storage tier (Tier 1) to the second storage tier (Tier 2) and page migration (demotion) from the second storage tier (Tier 2) to the third storage tier (Tier 3) are executed according to the demotion time calculated in the margin capacity securing processing above.
- As shown in
FIG. 18 , the limit margininput processing unit 304 acquires information relating to pool configuration input by the user via the poolschedule input screen 500 shown inFIG. 9 (S301). Further, the limit margininput processing unit 304 acquires limit margin information corresponding to the pool designated in step S301 and stores the limit margin information in thelimit margin field 3113 of the first storage tier (Tier 1) of the pool of the pool schedule management table 311 (S302). - As shown in
FIG. 19 , the guide margincalculation processing unit 305 stores the value of thelimit margin field 3113 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of thesafety factor field 3114 as a temp variable B and stores the value of thetotal capacity field 3115 as a temp variable C (S311). Further, the guide margincalculation processing unit 305 calculates the guide margin capacity by means of the following equation and stores this capacity as a temp variable D, and stores the value of the variable D in the guidemargin capacity field 3118 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 (S312). -
D(guide margin capacity TB)=C(total capacity TB)*(A(limit margin %)+B(safety factor %) - As shown in
FIG. 20 , the free capacity depletion timecalculation processing unit 306 stores the value of thefree capacity field 3116 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as the temp variable A, stores the value of the host I/O performance field 3119 as a temp variable B, and stores the A/B value as a temp variable C (free capacity depletion estimated time) (S321). - Further, the free capacity depletion time
calculation processing unit 306 acquires the current time from a timer function managed in the microprogram of thestorage apparatus 300 and stores the current time as a temp variable D (S322). Furthermore, the free capacity depletion timecalculation processing unit 306 calculates the free capacity depletion time of the first storage tier by means of the following equation and stores this time in the Tierdepletion time field 3121 of the first storage tier of the pool of the pool schedule management table 311 (S323). -
E(Tier depletion time YYYY/MM/DD, hh:mm)=C(free capacity depletion estimated time)+D(current time) - (2-2-4) Guide Margin Securing Time Calculation Processing
- As shown in
FIG. 21 , the guide margin securing timecalculation processing unit 307 stores the value of thedemotion performance field 3123 of the first storage tier of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guidemargin capacity field 3122 as a temp variable B, and stores the value of NB as a temp variable C (guide margin securing time) (S331). - Furthermore, the guide margin securing time
calculation processing unit 307 stores C (the guide margin securing time) calculated in step S331 in the guide margin securingtime field 3122 of the first storage tier in the pool of the pool schedule management table 311 (S332). - (2-2-5) Processing to Calculate the Start Time of Demotion from First Storage Tier to Second Storage Tier
- As shown in
FIG. 22 , the demotion start timecalculation processing unit 308 stores the value of the Tierdepletion time field 3121 of the first storage tier (Tier 1) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin securingtime field 3122 as a temp variable B, and stores a value A-B as a temp variable C (demotion start time) (S341). - Furthermore, the demotion start time
calculation processing unit 308 stores C (demotion start time) which was calculated in step S341 in the demotion starttime field 3123 of the first storage tier of the pool in the pool schedule management table 311 (S342). - As shown in
FIG. 23 , the guide margincalculation processing unit 305 stores the value of thesafety factor field 3114 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of thetotal capacity field 3115 as a temp variable B, and stores the value of A*B as a temp variable C (guide margin capacity) (S351). - Further, the guide margin
calculation processing unit 305 stores C (the guide margin capacity) which was calculated in step S351 in the guide margin capacity field 318 of the pool schedule management table 311 (S352). - As shown in
FIG. 24 , the free capacity depletion timecalculation processing unit 306 stores the value of thefree capacity field 3116 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of thedemotion performance field 3120 of the second storage tier (Tier 2) as a temp variable B, and stores the value of A/B as a temp variable C (free capacity depletion estimated time) (S361). - Further, the free capacity depletion time
calculation processing unit 306 acquires the current time from the timer function managed in the microprogram of thestorage apparatus 300 and stores the current time as a temp variable D (S362). Further, the free capacity depletion timecalculation processing unit 306 calculates the free capacity depletion time of the first storage tier by means of the following equation and stores this time in the tierdepletion time field 3121 of the second storage tier of the pool in the pool schedule management table 311 (S363). -
E(Tier depletion time YYYY/MM/DD, hh:mm)=C(free capacity depletion estimated time)+D(current time) - As shown in
FIG. 25 , the guide margin securing timecalculation processing unit 307 stores the value of thedemotion performance field 3123 of the second storage tier of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guidemargin capacity field 3122 as a temp variable B, and stores the value of A//B as a temp variable C (guide margin securing time) (S371). - Further, the guide margin securing time
calculation processing unit 307 stores C (guide margin securing time) which is calculated in step S371 in the guide margin securingtime field 3122 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 (S372). - (2-2-9) Processing to Calculate the Start Time of Demotion from the Second Storage Tier to the Third Storage Tier
- As shown in
FIG. 26 , the demotion start timecalculation processing unit 308 stores the value of the tierdepletion time field 3121 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 as a temp variable A, stores the value of the guide margin securingtime field 3122 as a temp variable B, and stores the value of A-B as a temp variable C (demotion start time) (S381). - Further, the demotion start time
calculation processing unit 308 stores C (the demotion start time) which is calculated in step S341 in thedemotion start time 3123 of the second storage tier (Tier 2) of the pool in the pool schedule management table 311 (S382). - Promotion processing and demotion processing of storage apparatus will be described next. Note that although, in the following description, the main subject of the promotion processing and demotion processing is the I/
O processing unit 301, it goes without saying that, in reality, thedata controller 335 of thestorage apparatus 300 executes [the various processing] on the basis of a program [of the I/O processing unit 301]. - As shown in
FIG. 27 , the I/O processing unit 301 receives I/O from the host 100 (S401). Further, the I/O processing unit 301 updates thepage counter field 3122, the last access date andtime field 3124, and thetarget tier field 3129 corresponding to the I/O request in the page disposition destination management table 312. More specifically, the I/O processing unit 301 adds 1 to the value of thecounter field 3122. Further, the I/O processing unit 301 updates the value of the last access date andtime field 3124 to the current time. Further, the I/O processing unit 301 updates the value of thetarget tier field 3129 to 1. - Further, the I/
O processing unit 301 refers to thecurrent tier field 3128 of the page in the page disposition destination management table 312 in order to determine whether the current tier of the page is a tier other than 1 (Tier 2 or Tier 3) (S403). - If it is determined in step S403 that the current tier of the page is not a tier other than 1, that is, that the current tier is 1, [the I/O processing unit 301] ends the processing as is. If, on the other hand, it is determined in step S403 that the current tier of the page is either 2 or 3, [the I/O processing unit 301] registers the page at the end of the promotion execution reserve queue 313 (S404).
- As shown in
FIG. 28 , the I/O processing unit 301 refers to the promotionexecution reserve queue 313 and executes promotion processing on the queue stored in the promotionexecution reserve queue 313 in order starting at the beginning (S411). More specifically, the I/O processing unit 301 migrates pages corresponding to the queue stored in the promotionexecution reserve queue 313 to the first storage tier (Tier 1) from the second storage tier (Tier 2) or the third storage tier (Tier 3). - As shown in
FIG. 29 , the I/O processing unit 301 refers to the page disposition destination management table 312 and, based on the information stored in thecounter field 3123 and the last access date andtime field 3124, registers the page with the oldest last access date and time and with a small counter value, that is, minimal page access, in the demotion execution reserve queue as the demotion target page (S421). More specifically, where pages targeted for demotion are concerned, the I/O processing unit 301 registers pages demoted from the second storage tier (Tier 2) to the first storage tier (Tier 1) in the demotionexecution reserve queue 314A for demotion fromTier 2 toTier 1, and registers pages demoted from the third storage tier (Tier 3) to the second storage tier (Tier 2) in the demotionexecution reserve queue 314B for demotion fromTier 3 toTier 2. - Furthermore, after ending the search of step S421 as far as the end of the entries in the page disposition destination management table 312, the I/
O processing unit 301 starts searching from the beginning of the table once again (S422). - (2-3-4) Demotion Processing from First Storage Tier to Second Storage Tier
- As shown in
FIG. 30 , the I/O processing unit 301 acquires the current time from the timer function managed in the microprogram in thestorage apparatus 300 and stores the current time as a temp variable D (S431). Furthermore, [the I/O processing unit 301] determines whether the time stored in the demotion starttime field 3123 of the first storage tier (Tier 1) in the pool schedule management table 311 already exceeds the time of the temp variable D (S432). - Further, if it is determined in step S432 that the time stored in the demotion start
time field 3123 already exceeds the time of the temp variable D, the I/O processing unit 301 executes demotion processing in order starting at the beginning of the queue registered in theexecution reserve queue 314A [for demotion] from the first storage tier (Tier 1) to the second storage tier (Tier 2) (S433). If, on the other hand, it is determined in step S432 that the time stored in the demotion starttime field 3123 does not already exceed the time of the temp variable D, the I/O processing unit 301 ends the processing. - (2-3-5) Demotion Processing from Second Storage Tier to Third Storage Tier
- As shown in
FIG. 31 , the I/O processing unit 301 acquires the current time from the timer function managed in the microprogram in thestorage apparatus 300 and stores the current time as a temp variable D (S441). Further, [the I/O processing unit 301] determines whether the time stored in the demotion starttime field 3123 of the second storage tier (Tier 2) in the pool schedule management table 311 already exceeds the time of the temp variable D (S442). - Further, if it is determined in step S442 that the time stored in the demotion start
time field 3123 already exceeds the time of the temp variable D, the I/O processing unit 301 executes demotion processing in order starting at the beginning of the queue registered in theexecution reserve queue 314A [for demotion] from the first storage tier (Tier 1) to the second storage tier (Tier 2) (S443). If, on the other hand, it is determined in step S442 that the time stored in the demotion starttime field 3123 does not already exceed the time of temp variable D, the I/O processing unit 301 ends the processing. - As mentioned earlier, according to this embodiment, if access is made to a newly assigned page or to pages which are disposed in the second storage tier (Tier 2) and the third storage tier (Tier 3), these pages are all migrated (promoted) to the first storage tier (Tier 1). Further, a page that was originally disposed in the first storage tier (Tier 1) remains disposed in the first storage tier (Tier 1). In addition, for pages which have been accessed once, in order to promote these pages to the first storage tier (Tier 1) as a result of the access, it is necessary to secure a predetermined amount of margin area in the first storage tier (Tier 1). Further, the time taken for the page of the first storage tier (Tier 1) to be demoted to a page of the second storage tier (Tier 2) is calculated according to the speed of processing of the I/O requests from the
host 100, and page migration (demotion) from the first storage tier (Tier 1) to the second storage tier (Tier 2) as well as migration from the second storage tier (Tier 2) to the third storage tier (Tier 3) are executed according to the calculated demotion time. Accordingly, an optimal command response time can be expected for access from thehost 100 and optimal page disposition can be executed according to the speed of processing of the I/O requests from thehost 100. - For example, the steps in the processing of the
storage apparatus 300 of the present specification need not necessarily each be processed chronologically in the order illustrated by the flowchart. In other words, the steps in the processing of thestorage apparatus 300 may also each be executed in parallel using different processes. - Furthermore, a computer program can also be created in order to cause hardware such as the CPU, ROM, and RAM built into the
storage apparatus 300 or the like to exhibit the same functions as each of the above configurations of thestorage apparatus 300. A storage medium which stores the computer program is also provided. - Moreover, although the
disk controller 330 of thestorage apparatus 300 realizes the various functions of the present invention on the basis of various programs stored in thestorage apparatus 300 according to the foregoing embodiment, the present invention is not limited to this example. For example, thedisk controller 330 may also be provided in another separate apparatus from thestorage apparatus 300 in order to realize various functions in co-operation with thedisk controller 330. Furthermore, the various programs stored in thestorage apparatus 300 may also be provided in another separate device from thestorage apparatus 300 so that the various functions are realized as a result of the programs being called to thedisk controller 330. -
- 1 Computer system
- 100 Host
- 200 Management server
- 300 Storage apparatus
- 304 Limit margin input processing unit
- 305 Guide margin calculation processing unit
- 306 Free capacity depletion time calculation processing unit
- 307 Guide margin securing time calculation processing unit
- 308 Demotion start time calculation processing unit
- 310 Base enclosure
- 311 Pool schedule management table
- 312 Page disposition destination management table
- 313 Promotion execution reserve queue
- 314 Demotion execution reserve queue
- 320 Additional enclosure
- 330 Controller
- 330 Disk controller
- 350 Hard disk drive
Claims (8)
1. A storage apparatus coupled to a host computer, the storage apparatus comprising:
a plurality of storage devices classified into tiers according to reliability attribute and/or performance attribute of the storage devices; and
a controller configured to:
provide the host computer with virtual volume including a plurality of virtual area; and
allocate a storage area of the plurality of storage devices to a virtual area, to which the storage area is not allocated, of the virtual volume in response to a write request to the virtual area from the host computer,
wherein the controller is configured to:
determine whether allocation of a first virtual area, to which a storage area of a second tier is allocated, of the plurality of virtual area is to be changed to a storage area of a first tier when the controller receives the access request to the first virtual area; and
change the allocation of the first virtual area from the second tier to the first tier when needed, and
wherein the controller is configured to:
determine whether allocation of a second virtual area, to which a storage area of the first tier is allocated, of the plurality of virtual area is to be changed to a storage area of the second tier when the unallocated capacity of the first tier falls below a threshold; and
change the allocation of the first virtual area to the storage area of the second tier when needed.
2. The storage apparatus according to claim 1 ,
wherein the first tier has higher reliability attribute and/or higher performance than the second tier.
3. The storage apparatus according to claim 2 ,
wherein the first tier has the highest reliability attribute and/or the highest performance attribute among tier.
4. The storage apparatus according to claim 1 ,
wherein the controller is configured to determine whether allocation of the second virtual area is changed from the first tier to the second tier according to an access frequency of the second virtual area.
5. A method relating to a storage apparatus coupled to a host computer, the storage apparatus comprising a plurality of storage devices classified into tiers according to reliability attribute and/or performance attribute of the storage devices and a controller, the method comprising
providing, by the controller, the host computer with virtual volume including a plurality of virtual area; and
allocating, by the controller, a storage area of the plurality of storage devices to a virtual area, to which the storage area is not allocated, of the virtual volume in response to a write request to the virtual area from the host computer,
determining, by the controller, whether allocation of a first virtual area, to which a storage area of a second tier is allocated, of the plurality of virtual area is to be changed to a storage area of a first tier when the controller receives the access request to the first virtual area; and
changing, by the controller, the allocation of the first virtual area from the second tier to the first tier when needed, and
determining, by the controller, whether allocation of a second virtual area, to which a storage area of the first tier is allocated, of the plurality of virtual area is to be changed to a storage area of the second tier when the unallocated capacity of the first tier falls below a threshold; and
changing, by the controller, the allocation of the first virtual area to the storage area of the second tier when needed.
6. The method according to claim 5 ,
wherein the first tier has higher reliability attribute and/or higher performance than the second tier.
7. The method according to claim 6 ,
wherein the first tier has the highest reliability attribute and/or the highest performance attribute among tier.
8. The method according to claim 5 , further comprising
determining, by the controller, whether allocation of the second virtual area is changed from the first tier to the second tier according to an access frequency of the second virtual area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/508,581 US20150026402A1 (en) | 2012-03-21 | 2014-10-07 | Storage apparatus and data management method |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/001957 WO2013140447A1 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
US13/499,906 US8880804B2 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
US14/508,581 US20150026402A1 (en) | 2012-03-21 | 2014-10-07 | Storage apparatus and data management method |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/499,906 Continuation US8880804B2 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
PCT/JP2012/001957 Continuation WO2013140447A1 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150026402A1 true US20150026402A1 (en) | 2015-01-22 |
Family
ID=49213442
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/499,906 Active 2032-10-19 US8880804B2 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
US14/508,581 Abandoned US20150026402A1 (en) | 2012-03-21 | 2014-10-07 | Storage apparatus and data management method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/499,906 Active 2032-10-19 US8880804B2 (en) | 2012-03-21 | 2012-03-21 | Storage apparatus and data management method |
Country Status (3)
Country | Link |
---|---|
US (2) | US8880804B2 (en) |
JP (1) | JP5886963B2 (en) |
WO (1) | WO2013140447A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016167762A1 (en) * | 2015-04-15 | 2016-10-20 | Hitachi, Ltd. | Method and apparatus for volume type change |
US20190227718A1 (en) * | 2018-01-19 | 2019-07-25 | Micron Technology, Inc. | Performance Allocation among Users for Accessing Non-volatile Memory Devices |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904144B1 (en) * | 2012-05-24 | 2014-12-02 | Netapp, Inc. | Methods and systems for determining at risk index for storage capacity |
US9542153B1 (en) | 2012-06-30 | 2017-01-10 | EMC IP Holding Company LLC | System and method for tiering data storage |
US9092461B1 (en) * | 2012-06-30 | 2015-07-28 | Emc Corporation | System and method for tiering data storage |
JP6003327B2 (en) * | 2012-07-19 | 2016-10-05 | 富士通株式会社 | Transmission apparatus and temperature control method |
WO2014057521A1 (en) | 2012-10-12 | 2014-04-17 | Hitachi, Ltd. | Storage apparatus and data management method |
US9684593B1 (en) * | 2012-11-30 | 2017-06-20 | EMC IP Holding Company LLC | Techniques using an encryption tier property with application hinting and I/O tagging |
US10268526B1 (en) * | 2012-12-28 | 2019-04-23 | EMC IP Holding Company LLC | Using response time objectives in a storage system |
CN110825324B (en) * | 2013-11-27 | 2023-05-30 | 北京奥星贝斯科技有限公司 | Hybrid storage control method and hybrid storage system |
US20150199129A1 (en) * | 2014-01-14 | 2015-07-16 | Lsi Corporation | System and Method for Providing Data Services in Direct Attached Storage via Multiple De-clustered RAID Pools |
US20180246751A1 (en) * | 2015-09-25 | 2018-08-30 | Intel Corporation | Techniques to select virtual machines for migration |
JP7200746B2 (en) * | 2019-02-25 | 2023-01-10 | 富士通株式会社 | Control device and control program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250172A1 (en) * | 2002-10-22 | 2004-12-09 | Microsoft Corporation | Transaction-safe FAT file system improvements |
US20100325355A1 (en) * | 2004-04-09 | 2010-12-23 | Hitachi, Ltd. | Storage control system and method |
US20110161406A1 (en) * | 2009-12-28 | 2011-06-30 | Hitachi, Ltd. | Storage management system, storage hierarchy management method, and management server |
US20120131196A1 (en) * | 2010-11-18 | 2012-05-24 | Hitachi, Ltd. | Computer system management apparatus and management method |
US20120166748A1 (en) * | 2010-12-28 | 2012-06-28 | Hitachi, Ltd. | Storage system, management method of the storage system, and program |
US20130111129A1 (en) * | 2011-10-28 | 2013-05-02 | Hitachi, Ltd. | Computer system and storage management method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2924167B2 (en) * | 1990-11-16 | 1999-07-26 | 株式会社日立製作所 | Method of controlling storage device group |
JP4914173B2 (en) * | 2006-10-30 | 2012-04-11 | 株式会社日立製作所 | Relocation system and relocation method |
JP5362975B2 (en) * | 2007-10-17 | 2013-12-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Control apparatus, method, program, and storage system for controlling data replication between storage devices |
JP4727705B2 (en) | 2008-10-31 | 2011-07-20 | 株式会社日立製作所 | Tiered storage system |
EP2518613A4 (en) | 2009-12-24 | 2013-10-02 | Hitachi Ltd | Storage system for providing virtual volume |
US8375180B2 (en) * | 2010-02-05 | 2013-02-12 | International Business Machines Corporation | Storage application performance matching |
JP5363595B2 (en) * | 2010-02-08 | 2013-12-11 | 株式会社日立製作所 | Storage system and method for rearranging data in virtual volume |
CN102754084B (en) * | 2010-05-18 | 2015-10-07 | 株式会社日立制作所 | Memory storage and data managing method |
WO2012004837A1 (en) | 2010-07-09 | 2012-01-12 | Hitachi, Ltd. | Storage apparatus and storage management method |
US9098202B2 (en) * | 2012-04-27 | 2015-08-04 | Hitachi, Ltd. | Storage apparatus and data management method |
-
2012
- 2012-03-21 JP JP2014527394A patent/JP5886963B2/en not_active Expired - Fee Related
- 2012-03-21 WO PCT/JP2012/001957 patent/WO2013140447A1/en active Application Filing
- 2012-03-21 US US13/499,906 patent/US8880804B2/en active Active
-
2014
- 2014-10-07 US US14/508,581 patent/US20150026402A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250172A1 (en) * | 2002-10-22 | 2004-12-09 | Microsoft Corporation | Transaction-safe FAT file system improvements |
US20100325355A1 (en) * | 2004-04-09 | 2010-12-23 | Hitachi, Ltd. | Storage control system and method |
US20110161406A1 (en) * | 2009-12-28 | 2011-06-30 | Hitachi, Ltd. | Storage management system, storage hierarchy management method, and management server |
US20120131196A1 (en) * | 2010-11-18 | 2012-05-24 | Hitachi, Ltd. | Computer system management apparatus and management method |
US20120166748A1 (en) * | 2010-12-28 | 2012-06-28 | Hitachi, Ltd. | Storage system, management method of the storage system, and program |
US20130111129A1 (en) * | 2011-10-28 | 2013-05-02 | Hitachi, Ltd. | Computer system and storage management method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016167762A1 (en) * | 2015-04-15 | 2016-10-20 | Hitachi, Ltd. | Method and apparatus for volume type change |
US20190227718A1 (en) * | 2018-01-19 | 2019-07-25 | Micron Technology, Inc. | Performance Allocation among Users for Accessing Non-volatile Memory Devices |
WO2019143472A1 (en) * | 2018-01-19 | 2019-07-25 | Micron Technology, Inc. | Performance allocation among users for accessing non-volatile memory devices |
CN111630501A (en) * | 2018-01-19 | 2020-09-04 | 美光科技公司 | Performance allocation among users accessing non-volatile memory devices |
US11093140B2 (en) * | 2018-01-19 | 2021-08-17 | Micron Technology, Inc. | Performance allocation among users for accessing non-volatile memory devices |
US11789614B2 (en) | 2018-01-19 | 2023-10-17 | Micron Technology, Inc. | Performance allocation among users for accessing non-volatile memory devices |
Also Published As
Publication number | Publication date |
---|---|
JP5886963B2 (en) | 2016-03-16 |
US20130254483A1 (en) | 2013-09-26 |
US8880804B2 (en) | 2014-11-04 |
JP2015501958A (en) | 2015-01-19 |
WO2013140447A1 (en) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8880804B2 (en) | Storage apparatus and data management method | |
US9052823B2 (en) | Storage system and data management method with application specific storage tiers | |
US9785381B2 (en) | Computer system and control method for the same | |
JP5079841B2 (en) | Method and storage apparatus for controlling data write to virtual logical volume according to Thin Provisioning | |
JP5427630B2 (en) | Application and tier management in a dynamic page reallocation storage system | |
JP5981563B2 (en) | Information storage system and method for controlling information storage system | |
US9229652B2 (en) | Computer system and storage control method of the same | |
JP5075761B2 (en) | Storage device using flash memory | |
US8407417B2 (en) | Storage system providing virtual volumes | |
US8918613B2 (en) | Storage apparatus and data management method for storage area allocation based on access frequency | |
US8612704B2 (en) | Storage system with virtual areas and method for managing storage system | |
JP5706531B2 (en) | Computer system and information management method | |
US8560799B2 (en) | Performance management method for virtual volumes | |
US8539142B2 (en) | Storage system comprising nonvolatile semiconductor storage media | |
US8296543B2 (en) | Computer system management apparatus and management method for the computer system | |
GB2536514A (en) | Storage device and method for controlling storage device | |
WO2014155555A1 (en) | Management system and management program | |
JP2015517697A (en) | Storage system and storage control method using storage area based on secondary storage as cache area | |
JP2010072753A (en) | Storage system equipped with automatic extension volume and power saving function | |
US20140297909A1 (en) | Storage apparatus and hierarchy control method | |
WO2014002126A1 (en) | Computer system and method of controlling i/o with respect to storage apparatus | |
US8572347B2 (en) | Storage apparatus and method of controlling storage apparatus | |
US20160364400A1 (en) | Management server which outputs file relocation policy, and storage system | |
JP5597266B2 (en) | Storage system | |
JP2015114808A (en) | Storage control device, control method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |