WO2016084190A1 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
WO2016084190A1
WO2016084190A1 PCT/JP2014/081364 JP2014081364W WO2016084190A1 WO 2016084190 A1 WO2016084190 A1 WO 2016084190A1 JP 2014081364 W JP2014081364 W JP 2014081364W WO 2016084190 A1 WO2016084190 A1 WO 2016084190A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
page
host
mapped
Prior art date
Application number
PCT/JP2014/081364
Other languages
French (fr)
Japanese (ja)
Inventor
智也 室谷
広一 岡田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/081364 priority Critical patent/WO2016084190A1/en
Publication of WO2016084190A1 publication Critical patent/WO2016084190A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a storage apparatus.
  • each host computer executes a program such as the same operating system (OS). For this reason, among the volumes allocated to each host computer, most of the contents of the volume (so-called boot disk) in which programs such as the OS are stored are often common.
  • OS operating system
  • Patent Document 1 among data used by each host computer, data having a common content, for example, OS data is stored in a single storage area (hereinafter, data stored in the single storage area is referred to as data stored in the single storage area).
  • initial data data whose contents differ for each host computer
  • differential data data whose contents differ for each host computer
  • a technique for providing a virtual volume composed of differential data in a pool is disclosed. As a result, it is not necessary to store data having the same contents in duplicate, so that a storage area can be saved.
  • part of the volume data is updated. For example, when applying a patch to the OS, part of the volume data is updated.
  • update data is stored as difference data in a storage pool. Each storage area that is continuous on the virtual volume may be mapped to a physically discrete storage area. This can also be a factor that degrades the access performance.
  • a storage apparatus provides a host with a startup volume composed of a plurality of virtual pages to which a storage area for initial data or a storage area for update data is mapped.
  • the storage device is configured to store data selected based on the access frequency of each storage area in a cache memory.
  • the storage apparatus receives a read request for the startup volume from the host and the read target data is stored in the cache memory, the storage apparatus reads the data from the cache memory and returns it to the host.
  • FIG. 1 is a configuration diagram of a storage system according to an embodiment of the present invention.
  • FIG. It is a figure which shows the structure of a virtual volume management table. It is a figure which shows the structure of a GI mapping table. It is a figure which shows the structure of a cache management table. It is a figure which shows the structure of a pool management table. It is a figure which shows the structure of an access frequency table. It is a figure which shows the structure of an access pattern table.
  • It is a flowchart of a process before starting. It is a flowchart of a read process. It is a flowchart of a write process. It is a flowchart of the update process of an access frequency table. It is a flowchart of a purge process.
  • management information of the present invention may be described in terms of “aaa table” or the like, but these information may be expressed in other than the data structure such as a table.
  • program may be used as the subject, but in practice, the program is executed by a processor (CPU (Central Processing Unit)) to perform a predetermined process. However, to prevent the explanation from becoming redundant, the program may be described as the subject. Further, part or all of the program may be realized by dedicated hardware.
  • Various programs may be installed in each apparatus by a program distribution server or a computer-readable storage medium.
  • the storage medium for example, an IC card, an SD card, a DVD, or the like may be used.
  • FIG. 1 is a diagram illustrating a hardware configuration of the computer system according to the embodiment.
  • the computer system includes one or more hosts 2, a storage apparatus 1 that accepts I / O requests from the hosts 2, and a management terminal 13.
  • the host 2 and the storage apparatus 1 are connected via a communication network 6.
  • the storage device 1 and the management terminal 13 are connected via the management network 7.
  • the storage device 1 includes a storage controller (hereinafter also abbreviated as “controller”) 11 and a disk unit 12 including a plurality of drives 121.
  • the storage controller 11 transfers data to and from the MPB 111 that is a processor board that performs control such as I / O processing performed in the storage apparatus 1, a channel adapter (CHA) 112 having a data transfer interface with the host 2, and the disk unit 12.
  • a disk adapter (DKA) 113 having an interface and a memory package (CMPK) 114 having a memory for storing cache data and control information are interconnected by a switch (SW) 115.
  • the number of components (MPB 111, CHA 112, DKA 113, CMPK 114) is not limited to the number shown in FIG. 1, but usually there are a plurality of components to ensure high availability. It is also possible to add these components later.
  • Each MPB 111 is a processor package board having one or more processors (also called MPs) 141 and a local memory (LM) 142 for storing data used by the processors 141.
  • processors also called MPs
  • LM local memory
  • the CMPK 114 temporarily stores write data from the host 2 and data read from the drive 121.
  • the CM 144 is an area used as a so-called disk cache
  • the SM 143 is an area for storing control information used by the MPB 111. Have Information stored in the SM 143 can be accessed from all the MPs 141 of all the MPBs 111.
  • the CMPK 114 may be provided with means such as a battery backup.
  • a plurality of drives 121 are mounted on the disk unit 12.
  • Each drive 121 is a storage device for storing write data from the host 2 and is connected to a data transfer interface of the DKA 113.
  • a magnetic disk such as an HDD is used for the drive 121, but a storage medium other than the HDD such as an SSD (Solid State Drive) may be used.
  • the communication network 6 is a so-called storage area network (SAN) including a network device (one or more) such as a switch (fiber channel switch) and a transmission line (one or more) such as a fiber channel cable.
  • SAN storage area network
  • the communication network 6 may not include a network device such as a switch. In that case, the host 2 and the storage apparatus 1 are connected only by the transmission line.
  • the physical standards of network devices and transmission lines constituting the communication network are not limited to the fiber channel.
  • a communication network using Ethernet may be used.
  • the management network 7 is also composed of network devices and transmission lines.
  • an Ethernet switch or an Ethernet cable is used as a network device and a transmission line used in the management network 7.
  • a network device or transmission line conforming to a physical standard other than Ethernet may be used.
  • the host 2 is a computer including at least a CPU 21, a memory 22, and an HBA (Host Bus Adapter) 23 that is an interface for connecting the host 2 to the communication network 6.
  • the CPU 21 executes a program loaded on the memory 22.
  • an application program such as a database management system (DBMS) is executed to access data stored in the storage apparatus 1.
  • DBMS database management system
  • a plurality of virtual machines may operate on the host 2 and each virtual machine may access the storage apparatus 1. In FIG. 1, only two hosts 2 are shown, but the number of hosts 2 is not limited to the number shown in FIG. The configuration may be such that more than two hosts access the storage apparatus 1.
  • a logical volume is a logical storage area formed by the storage apparatus 1 using storage areas of one or more drives 121 in the disk unit 12.
  • the storage apparatus 1 according to the present embodiment can form a plurality of logical volumes.
  • the logical volume may be expressed as “LDEV”.
  • a virtual volume is a storage area provided to the host 2.
  • the storage apparatus 1 can define a plurality of virtual volumes and provide a plurality of virtual volumes to the host 2.
  • the host 2 recognizes one virtual volume as one disk device.
  • a virtual volume is formed using a storage area of a logical volume.
  • the storage device 1 manages the virtual volume area by dividing it into partial area units of a predetermined size called “pages (or virtual pages)”.
  • the storage device 1 also manages mapping between virtual pages and logical volume storage areas (also called real pages).
  • the virtual volume is a volume formed using a known Thin Provisioning technology, and the storage apparatus 1 dynamically changes the storage area of the logical volume to a virtual page when receiving an access request for the virtual page of the virtual volume. Map.
  • Normal Virtual Volume In the storage apparatus according to the present embodiment, two types of virtual volumes can be provided to the host 2.
  • the first type of virtual volume is the same as a volume that is formed by using a well-known Thin Provisioning technology. No real page is mapped to each page of the first type virtual volume in the initial state. Hereinafter, this virtual volume is referred to as a “normal virtual volume”.
  • the storage apparatus 1 receives a write request for a virtual page of a normal virtual volume from the host 2, the storage apparatus 1 uses an unused area (still mapped to a virtual page) in the storage area (real page) of the logical volume. No area) is selected, and the selected area is mapped to the virtual page to be accessed. Write data from the host 2 is stored in an area (real page) mapped to this access target virtual page.
  • the second type of virtual volume is a volume for which a real page to be mapped to each virtual page is determined at the time of the initial state.
  • the storage apparatus 1 reads data stored in the real page mapped to the virtual page to be read and returns it to the host 2.
  • the storage apparatus 1 receives a write request and write data for a virtual page, the storage apparatus 1 maps another unused real page to the virtual page instead of the mapped real page.
  • the write data is written to the real page newly mapped to the virtual page.
  • the second type of virtual volume is mainly used as a disk (boot device) that is read at startup, such as an operating system (OS) used by the host 2. Therefore, hereinafter, the second type of virtual volume is referred to as a “startup volume”.
  • the use of the startup volume is not necessarily limited to the use as a boot device, and may be used for another use.
  • a pool is a concept provided for managing a storage area of a logical volume mapped to a virtual page.
  • the storage apparatus 1 according to the present embodiment has a plurality of pools.
  • each virtual volume startup volume and normal virtual volume
  • each virtual volume belongs to any one pool. Further, only the storage area of the pool to which the virtual volume belongs is mapped to the virtual page of each virtual volume.
  • GI Gold Image
  • DI Different Image
  • management information and programs used by the storage apparatus 1 according to the present embodiment will be described.
  • the storage apparatus 1 actually has management information and programs other than those described below, only the management information necessary for explaining the embodiment of the present invention will be described below.
  • the storage apparatus 1 stores the I / O program 1001, pre-startup program 1002, access frequency management program 1003, purge program 1004, deduplication program 1005, page sort program 1006, staging program in the LM 142. 1007 is stored.
  • the MP 141 executes these programs, various processes described below are performed.
  • the storage apparatus 1 also has a virtual volume management table T200, a GI mapping table T250, a cache management table T300, a pool management table T400, an access frequency table T500, and an access pattern table T550 in the SM 143.
  • the storage device 1 manages a plurality of volumes (logical volumes, virtual volumes). Therefore, unique identifiers are assigned to the logical volume and virtual volume (normal virtual volume and startup volume) within the storage apparatus 1.
  • the identifier attached to the logical volume is called a logical volume ID (LDEV ID), and the identifier attached to the virtual volume is called a virtual volume ID (VVOL ID).
  • LDEV ID logical volume ID
  • VVOL ID virtual volume ID
  • the storage device 1 manages a plurality of pools and a plurality of pages.
  • Each pool is given an identifier that is unique within the storage apparatus 1.
  • An identifier attached to the pool is called a pool ID.
  • Each page (virtual page) in the virtual volume is assigned an identification number that is unique in the virtual volume. This identification number is called a page ID, and an integer value of 0 or more is used for the page ID.
  • An integer value starting from 0 is assigned as a page ID in order from the virtual page located in the head area of the virtual volume.
  • the size of each virtual page (and real page) is fixed (42 MB as an example).
  • an integer value is used for the identifier.
  • LDEV # n (n is an integer value) is indicated, it means a logical volume whose LDEV ID is n.
  • VVOL # n represents a virtual volume with a VVOL ID of n
  • page #n (or Page # n) represents a virtual page with a page ID of n.
  • the integer used for the identifier may be represented by a hexadecimal number such as 4 digits or 8 digits.
  • AB: CD (A, B, C, and D are each an integer from 0 to 9 or an alphabet from a to f).
  • FIG. 2 shows an example of the virtual volume management table T200.
  • the virtual volume management table T200 is a table for managing the mapping between each virtual page of the virtual volume and the area (real page) of the logical volume.
  • the VVOL ID (T201) and page ID (T202) in each row (record) of this table are information for specifying a virtual page to be managed.
  • the LDEV ID (T204) and address (Addr.) T205 in each row represent the start address of the logical volume area (real page) mapped to the virtual page to be managed.
  • the area for one page starting from the position on the logical volume specified by the LDEV ID (T204) and address (Addr.) T205 is the virtual specified by the VVOL ID (T201) and page ID (T202). It is mapped to a page.
  • Attribute (T206) represents the attribute of the virtual page to be managed. There are three types of virtual page attributes. When the value stored in the attribute (T206) is 0, it indicates that the virtual page to be managed is a virtual page of a normal virtual volume (and that the virtual volume to which the virtual page belongs is a normal virtual volume). ). When the value stored in the attribute (T206) is 1, the virtual volume to which the virtual page to be managed belongs is the startup volume, and the virtual page is in the initial state (GI is mapped to the virtual page) Represents that. When the value stored in the attribute (T206) is 2, the virtual volume to which the virtual page to be managed belongs is a startup volume, and DI is mapped to the virtual page (updated from the initial state). Represents that.
  • the VVOL ID (T201) is all 0 rows, and the attribute (T206) is 1 (GI) or 2 (DI). Therefore, the virtual volume whose VVOL ID (T201) is 0 is a startup volume. Also, since the attribute (T206) of the row with the VVOL ID (T201) of 0 and the page ID (T202) of 00002 is 2, DI is mapped to the virtual page with the page ID (T202) of 00002. I understand that.
  • the attribute (T206) of all virtual pages of the startup volume is 1 (GI) in the initial state.
  • the attribute (T206) of the virtual page is updated to 2 (DI).
  • a virtual page with an attribute (T206) of 0 (normal) and a virtual page with an attribute (T206) of 1 (GI) or 2 (DI) are not mixed in one virtual volume.
  • the attribute (T206) of all pages of the normal virtual volume (the virtual volume with the VVOL ID 02 in the example of FIG. 2) is 0 (normal).
  • the attribute (T206) of each page of the normal virtual volume does not change even when the virtual page is updated.
  • the pool ID (T203) is a column for storing the pool ID of the pool to which the virtual volume belongs.
  • FIG. 5 shows a configuration example of the pool management table T400.
  • the pool management table T400 is a table for managing the LDEV belonging to the pool and the state of each area (real page) of the LDEV.
  • the pool ID (T401) stores the pool ID to which the LDEV in which the real page exists belongs.
  • the LDEV ID (T402) stores the LDEV ID of the LDEV belonging to the pool.
  • the type of LDEV (LDEV specified by LDEV ID (T402)) is stored in Disk Type (T403). As described above, the LDEV is formed using the storage area of the drive 121.
  • the “type” here means the type of drive used for the LDEV.
  • SSD there are three types of SSD, SAS, and SATA as types stored in the Disk Type (T403).
  • SAS or SATA indicates that the drive 121 is an HDD.
  • SAS means that the drive 121 interface (interface connected to the DKA 113) is a SAS (Serial Attached SCSI) drive
  • SATA means that the drive 121 interface is a SATA (Serial AT Attachment) drive.
  • the Disk Type (T403) is SSD, the access performance of the real page (the LDEV in which it exists) is the highest.
  • the disk type (T403) is SATA, the access performance is the lowest.
  • Addr (T405) an address in the LDEV is stored.
  • Each row (record) of the pool management table T400 is a virtual in which an area (real page) in the LDEV with Addr (T405) as the start address is specified by the VVOL ID (T406) and the Page ID (T407). Indicates that it is mapped to a page. If the area (real page) for one page in the LDEV starting with Addr (T405) is not mapped to any virtual page (if it is an unused real page), the VVOL ID (T406) And an invalid value (a value not used for Page ID or VVOL ID such as NULL.-1) is stored in and Page ID (T407).
  • the attribute T404 represents the attribute of the virtual page as described in the explanation of the virtual volume management table T200 in FIG.
  • the value stored in the attribute is the same as that described in the description of the virtual volume management table T200 (values 0 to 2 are stored).
  • the access pattern T408 stores information (pattern information) determined based on the access frequency of a real page (that is, an area on a logical volume for one page having Addr (T405) as a start address). The access pattern will be described later.
  • the configuration of the GI mapping table T250 which is a type of GI and GI management information, will be described.
  • the relationship between the pool, virtual volume (startup volume), and logical volume, and the relationship between virtual page and real page (mapping), which are defined by the storage apparatus 1 according to the present embodiment, will be described with reference to FIG.
  • the area (real page) on the logical volume that is mapped to the virtual page of the virtual volume belongs to a management unit called a pool.
  • the logical volume belonging to the pool is selected by a computer system user (such as an administrator of the storage apparatus 1).
  • the user uses the management terminal 13 to instruct the storage apparatus 1 to make the logical volume belong to the pool.
  • the storage apparatus 1 Upon receipt of this instruction, the storage apparatus 1 makes the logical volume belong to the pool.
  • the user also defines the virtual volume using the management terminal 13.
  • the user specifies the pool ID of the pool to which the virtual volume to be defined belongs. It is also possible to specify the type of virtual volume to be defined (whether it is a startup volume or a normal virtual volume). Hereinafter, a case where the type of virtual volume to be defined is a startup volume will be described.
  • the startup volume is in the initial state (immediately after the definition), and a real page (Golden Image) is mapped to each page. Therefore, before the activation volume is defined, a real page (Golden Image) to be mapped to the activation volume must be determined.
  • each area (real page) in one logical volume in the pool can set as a Golden Image.
  • An example is shown in FIG. In FIG. 17, each real page of LDEV # 0 (LDEV ID means 0th LDEV) is defined as GI.
  • the real pages of LDEV # 0 are sequentially mapped to each virtual page of the startup volume.
  • the first real page (real page # 0) of LDEV # 0 is mapped to the first virtual page (virtual page # 0) of the startup volume, and hereinafter, virtual pages # 1, # 2,. . . Are mapped in order to the second and subsequent real pages of LDEV # 0 (real pages # 1, # 2,).
  • each real page of LDEV # 0 is defined as GI
  • the user can store data in GI.
  • Various means can be adopted as means for storing data in the GI.
  • data may be stored in each GI (real page) from the management terminal 13 via the management network 7.
  • the storage apparatus 1 supports a dedicated command for storing data in the GI from the host 2 via the CHA 112, and in response to receiving the dedicated command for storing data in the GI from the host 2, the host The data received from 2 may be stored in the GI.
  • the process of setting a real page as a GI and the process of storing data in the GI may be performed simultaneously.
  • the storage apparatus 1 receives a dedicated write command for storing data in the GI from the host 2 via the CHA 112
  • the area (real page) specified by the write command is defined as the GI and at the same time the host
  • the write data received from 2 may be written to the GI.
  • FIG. 17 shows an example in which two startup volumes (virtual vol. # 0 and virtual vol. # 1) are defined.
  • the LDEV # 0 real page (GI) is mapped to all virtual pages immediately after the definition. Therefore, when the startup volume is defined, the same data is stored in all the startup volumes (unless writing is performed to the startup volume).
  • the startup volume is a kind of snapshot copy of the LDEV in which the GI is stored.
  • the reason why the storage apparatus 1 according to the present embodiment is provided with a function of providing a type of virtual volume called a startup volume to the host 2 is that a plurality of hosts (or a plurality of virtual volumes) using the same software (OS etc.) are provided. This is because a volume (virtual volume) is efficiently provided to a computer. If the OS boot image or the like is stored in advance in the GI, the user can quickly define the boot volume by simply defining the boot volume using the management terminal 13 or the like without physically copying the boot image. Can be duplicated. Therefore, even when a host is added to the computer system (or when the number of virtual machines running on an existing host is increased), the added boot volume for the host can be defined at high speed. Further, since each virtual page of each startup volume is mapped to the GI (it can be said that the GI is shared), the consumption amount of the storage area can be suppressed.
  • Each boot volume is configured so that data can be written from the host 2.
  • the storage apparatus 1 receives a write request and write data for the virtual page of the startup volume from the host 2, it maps a real page different from the GI to the write target virtual page.
  • the real page (real page different from the GI) mapped here is the differential image (DI).
  • DI differential image
  • FIG. 17 shows that the storage device 1 is a virtual Vol.
  • An example in which a write request from the host 2 is received for the virtual page # 2 of # 0 is shown.
  • the example shown in FIG. 17 is an example in which the real page # 2 (GI) of LDEV # 0 is mapped to the virtual page # 2 before the write request is accepted.
  • a real page (real page # 0) of an LDEV other than LDEV # 0 an LDEV belonging to the same pool as the LDEV storing the GI.
  • LDEV # 1 is transferred to virtual page # 2. To map.
  • FIG. 3 shows a configuration example of the GI mapping table T250.
  • the GI mapping table T250 is a table for managing real pages set as GI among real pages of logical volumes belonging to each pool.
  • the GI mapping table T250 includes pool ID (T251), page ID (T252), LDEV ID (T253), Addr. (T254) column.
  • each line of the GI mapping table T250 represents information about a real page defined as GI. Specifically, LDEV ID (T253), Addr.
  • the area (real page) on the logical page specified by (T254) indicates that it belongs to the pool ID (T251). Further, when the activation volume is defined, the page ID of the virtual page of the activation volume to which each real page is to be mapped is stored in the page ID (T252). In the example of FIG. 3, the LDEV ID (T253) is “00:00”, Addr.
  • An area (T254) whose start address is 00000000 (an area for one page of a logical volume, that is, a real page) has a page ID of 00000 among virtual pages of a startup volume (a startup volume belonging to pool # 0). Indicates that it is mapped to a virtual page.
  • the storage apparatus 1 that has received an instruction to define the startup volume from the user creates virtual volume information (T201, T202, etc.) in the virtual volume management table T200. Then, the storage apparatus 1 refers to the GI mapping table T250, thereby causing the LDEV ID (T204), Addr. (T205), the LDEV ID (T253) of the GI mapping table T250, Addr. The value of (T254) is stored. As a result, the GI is mapped to each virtual page of the defined startup volume.
  • the storage apparatus 1 manages the access frequency (read count and write count per unit time) from the host 2 for each real page.
  • T503-1 to T503-7 in the access frequency table T500 are LDEV ID (T302), Addr. This is a column for storing access frequency information for an area (actual page) for one page whose start address is (T303).
  • T503-1 is a column for storing a count result of the access amount (I / O count) generated on Monday. The count results of the access amount (I / O count) generated from Tuesday to Sunday are stored in T503-2 to T503-7 in the following order.
  • Each of T503-1 to T503-7 has 24 columns. In each column, the number of accesses that occurred from 0:00 to 1 o'clock, the number of accesses that occurred from 1 o'clock to 2 o'clock,. . . The count result of the number of accesses generated from 23:00 to 24:00 is stored.
  • the number of accesses that have occurred in the past week is stored as a count result of the number of accesses stored in each column in T503-1 to T503-7.
  • the storage device 1 observes the number of accesses for the past several weeks (or months), calculates the average number of accesses per unit time based on the observation result, and within T503-1 to T503-7 You may make it store in each column.
  • the storage apparatus 1 counts the access frequency (access amount per hour) for each real page. That is, the trend of fluctuation in access frequency at each time of day of the week (0-1 o'clock, 1 o'clock-2 o'clock,..., 23: 00-0 o'clock) is grasped for each real page.
  • a set of real pages having similar access frequency fluctuation trends is managed as one group, and the access frequency fluctuation trend of the group is referred to as an “access pattern”.
  • the pool management table T400 has a column called an access pattern (T408).
  • an access pattern T408 For real pages having similar access frequency fluctuation trends, the same identifier (A, B, C, etc.) is stored in the access pattern (T408) column.
  • the outline of the access pattern (T408) determination method will be described.
  • the storage apparatus 1 converts the counted access frequency information (T503-1 to T503-7 managed in the access frequency table) into an index “I / O level”.
  • A Access amount per hour is 0 or more and less than 10: I / O level 0
  • B Access amount per hour is 10 or more and less than 20: I / O level 1
  • C Access amount per hour is 20 or more and less than 100: I / O level 2
  • D Access amount per hour is 100 or more and less than 500: I / O level 3
  • E Access amount per hour is 500 or more and less than 1000: I / O level 4
  • F Access amount per hour is 1000 or more: I / O level 5
  • the I / O level 500 'in FIG. 6 indicates that the LDEV ID (T501) of the records in the access frequency table T500 is 00:00, Addr.
  • T501 the LDEV ID of the records in the access frequency table T500 is 00:00, Addr.
  • T501 the LDEV ID of the records in the access frequency table T500 is 00:00, Addr.
  • T502 the access frequency information with respect to the real page whose (T502) is 00000000 to the I / O level according to the above conversion rule is shown.
  • the storage device 1 further manages a table called an access pattern table.
  • FIG. 7 shows an example of the access pattern table T550.
  • the access pattern table T550 is a table that stores a plurality of examples of fluctuation patterns of the I / O level at each time of each day of the week (0 to 1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock).
  • T553-1 the I / O level at each time of Monday (0 to 1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock) is stored.
  • T553-2 to T553-7 are stored. Stores the I / O level at each time on Tuesday to the I / O level at each time on Sunday.
  • Storage device 1 manages access patterns for each pool.
  • FIG. 7 only three types of A, B, and C are shown as access patterns (T552) of pool # 0 (pool with pool ID (T551) of 0), but there are more access patterns than three types. May be registered. Specific processing contents when registering an access pattern in the access pattern table T550 will be described later.
  • the storage apparatus 1 stores the result of converting the contents of the access frequency table T500 in FIG. 6 into the I / O level (I / O level 500 ′ in FIG. 6 is an example thereof) and the access pattern table T550. Compare each pattern. For example, a comparison between the I / O level 500 ′ of FIG. 6 (this is the I / O level of a real page with an LDEV ID of 0:00 and Addr. Of 00000000) and each pattern stored in the access pattern table T550 6 is determined to be similar to the I / O level 500 ′ in FIG. 6 and a certain pattern stored in the access pattern table T550 (for example, the pattern in which the access pattern T552 is stored in the row “A”). If it is, “A” is registered in the access pattern (T408) of the pool management table T400.
  • FIG. 4 shows a configuration example of the cache management table T300.
  • frequently accessed data is stored in the CM 144 (sometimes referred to as “cache”), and the response time when accessing data from the host 2 is shortened.
  • the cache management table T300 is a table for managing information on an area in which data is stored (cached) among the areas of the CM 144.
  • an area for caching data stored in the startup volume and an area for caching data stored in the normal virtual volume are managed separately.
  • a table for managing an area for caching data stored in the startup volume is a cache management table T300-1.
  • a table for managing an area for caching data stored in the normal virtual volume is a cache management table T300-2.
  • the formats of T300-1 and T300-2 are the same.
  • the contents of the cache management table T300 will be described using the cache management table T300-1 as an example.
  • Each line (record) of the cache management table T300 is stored in Cache Addr. (T301), an LDEV ID (T302), Addr. This indicates that data to be stored in an area for one page (that is, a real page) having (T303) as a start address is cached. Cache Addr. If data is not cached in the area for one page starting from (T301), the LDEV ID (T302) and Addr. An invalid value (NULL) is stored in (T303).
  • the storage device 1 selects the LDEV ID (T302) and Addr. From each row (record) of the cache management table T300. One row in which the invalid value (NULL) is stored in (T303) is selected. Then, Cache Addr. The read data is stored in an area for one page having (T301) as a start address. Then, the LDEV ID (T302) and Addr. In (T303), the LDEV ID and address (LBA) of the LDEV that is the data reading source are stored.
  • Cache Addr In the first line of the cache management table T300-1. (T301) is 0, and Cache Addr. (T301) is xxxxxxxx. Then, Cache Addr. On the top line of the cache management table T300-2.
  • (T301) is yyyyyyyyy
  • the area from address 0 to (xxxxxxxx + 1 page size) of the CM 144 is used as an area for caching the data stored in the startup volume
  • the area after the address yyyyyyyyyy of the CM 144 Is used as an area for caching data stored in the normal virtual volume (where (xxxxxxxx + 1 page size) ⁇ yyyyyyy, ie, in the cache management table T300-1 It is assumed that there is no overlap between the managed area and the area managed by the cache management table T300-2).
  • the addresses xxxxxxxx and yyyyyyyyyyyyyyyyy may be fixed, or may be configured to be changed by the user. When the address is changed by the user, the user can increase (or decrease) the value of xxxxxxxx in consideration of the number of startup volumes and the access frequency.
  • processing related to the startup volume such as processing when the storage apparatus 1 receives an access request from the host 2 to the startup volume
  • processing for the normal virtual volume is the same as the processing performed in a known storage device, the processing for the normal virtual volume is not described in this embodiment.
  • the read request issued by the host 2 to the storage apparatus 1 includes the VVOL ID of the read target virtual volume (or information that can be used to derive the VVOL ID such as the logical unit number [LUN]) and the read target virtual volume.
  • a logical block address (LBA) which is information for specifying the area within, is included.
  • the I / O program 100 specifies the VVOL ID and page ID (page ID of the virtual page) of the virtual volume to be accessed from the information included in the read request.
  • the page ID can be calculated by dividing the LBA included in the read request by the page size (if the virtual page size is 42 MB, the page ID can be calculated by calculating LBA ⁇ (42 [MB] ⁇ 512). Desired).
  • the I / O program 100 refers to the virtual volume management table T200, so that the real page (LDEV ID (T204) and Addr. (T205)) on the logical volume to which the calculated VVOL ID and page ID are mapped. Is identified.
  • the I / O program 1001 refers to the cache management table T300, so that the LDEV ID (T204) and Addr. It is determined whether the data in the area (T205) is cached (S22). If the data is cached (S22: Yes), the I / O program 1001 reads the read target data from the CM 144 and returns it to the host 2 (S24).
  • the I / O program 1001 executes the LDEV ID (T204) and Addr.
  • Read target data is read out from the area on the logical volume with (T205) as the start address and returned to the host 2 (S23).
  • the data is actually read from the drive 121 by converting the logical volume address to the drive 121 address. Since this is a known process, a detailed description is omitted.
  • the I / O program 1001 stores the read data in the CM 144.
  • the I / O program 1001 reads the LDEV ID (T302) and Addr.
  • One row in which the invalid value (NULL) is stored in (T303) is selected.
  • Cache Addr is selected.
  • the read data is stored in an area for one page having (T301) as a start address.
  • T303 the LDEV ID and address (LBA) of the LDEV that is the read source of the read target data are stored.
  • the LDEV ID (T302) and Addr If there is no row in which the invalid value (NULL) is stored in (T303), it means that there is no unused area in the CM 144. In that case, for example, an area in which real page data with low access frequency is cached is selected, and the read data is stored in the area.
  • a method for selecting an area where real page data with low access frequency is cached a method similar to the method performed in the purge program 1004 described later may be used.
  • I / O program 1001 performs an update process of the access frequency table T500 (S25) and ends the process. Details of S25 will be described later.
  • the write request issued by the host 2 to the storage device 1 includes the VVOL ID of the write target virtual volume (or information that can be used to derive the VVOL ID such as the logical unit number [LUN]), A logical block address (LBA) that is information for specifying an area in the write target virtual volume is included.
  • LBA logical block address
  • the I / O program 1001 receives a write request from the host 2, these pieces of information are replaced with information for specifying the write-target real page (that is, the LDEV ID (T204) and Addr. (T205) of the virtual volume management table T200. (S41). This process is the same as S21.
  • the I / O program 1001 receives the LDEV ID (T204) and Addr. It is determined whether the area (real page) of (T205) is DI or GI. This can be done by referring to the attribute (T206) of the virtual volume management table T200.
  • the I / O program 1001 writes the write data received together with the write request to the real page specified in S31 (S43). ).
  • the logical volume address is converted to the address of the drive 121 in the same way as the processing that is actually performed in a known storage device, and the drive specified by the conversion processing Data is written to address 121.
  • the I / O program 1001 performs an update process of the access frequency table T500 (S44), notifies the host 2 that the write process is completed, and ends the process.
  • the process of S44 is the same as S25.
  • the I / O program 1001 newly secures an area (real page) for storing write data. (S46). Specifically, by referring to the pool management table T400, an actual page that has not yet been assigned to any virtual page is specified (that is, the LDEV in the row where the VVOL ID (T406) and the Page ID (T407) are NULL. ID (T402) and Addr. (T405) are specified).
  • an arbitrary method may be used as a method for determining the real page for storing the write data.
  • the I / O program 1001 may preferentially select a real page with high access performance. In this case, the I / O program 1001 preferentially selects a real page whose Disk Type (T403) is SSD. If there is no actual page whose Disk Type (T403) is SSD, the I / O program 1001 may select an actual page whose Disk Type (T403) is SAS.
  • the I / O program 1001 stores the write data in the real page secured in S46 (S47). Thereafter, the I / O program 1001 takes over the access frequency information (S48), notifies the host 2 that the write process is completed, and ends the process.
  • the write data may be temporarily stored in the CM 144 without directly writing the data in the actual page (the drive 121 in which it exists).
  • the CM 144 is searched for an area where the data of the real page to be written is cached. If there is no area in the CM 144 that caches the data of the real page to be written, an unused area is selected, and write data is stored in the selected area. Then, the cache management table T300 is updated.
  • the takeover of access frequency information performed in S48 will be described.
  • the case where S48 is executed is a case where it is determined in S42 that the write target area is not DI (GI).
  • the write data is stored in the real page (DI) secured in S46, but the access frequency information of the real page secured in S46 is the same as the access frequency information of the write target area (GI) determined in S42.
  • GI write target area
  • the access tendency to the real page (DI) secured here is highly likely to be the same as the access tendency to the real page (GI) that has been allocated to the virtual page. Therefore, in S48, the I / O program 1001 makes the access frequency information of the real page secured in S46 the same as the access frequency information of the write target area (GI) determined in S42.
  • the I / O program 1001 determines that the LDEV ID (T501) is 0 in the row of the access frequency table T500, Addr.
  • the value of T503-1 to T503-7 in the row where (T502) is 00000000 is set to the access frequency of the real page secured in S46. That is, the values of T503-1 to T503-7 are set so that the LDEV ID (T501) is 1 in the row of the access frequency table T500, Addr. (T502) is copied to the line of 2a000000.
  • the method of inheriting access frequency information is not limited to the method described above.
  • the access frequency information of the real page secured in S46 is set to “access frequency information of write target area (GI) ⁇ number of activation volumes”. Also good.
  • the I / O program 1001 calls the access frequency management program 1003 and executes the access frequency management program 1003. Thereby, update processing of the access frequency table T500 is performed.
  • the access frequency management program 1003 is also executed when the load on the storage device 1 is low (for example, when there is no I / O request from the host 2 for a certain period of time).
  • the flow of processing when the access frequency management program 1003 is called in S25 (or S44) will be described.
  • the access frequency management program 1003 first updates the access frequency table T500 (S61). Specifically, the access frequency management program 1003 executes the execution of S61 among the information stored in the access frequency (T503-1 to T503-7) of the current date and time (the date and time when S61 is executed) of the real page to be accessed. 1 is added to the information corresponding to the current day of the week (and time).
  • the access frequency management program 1003 converts the access frequency information of the target row to the I / O level, and compares the converted information with the top group of the access pattern table T550 (S62).
  • the access pattern table T550 stores the I / O level of each day of the week (0-1 o'clock, 1 o'clock-2 o'clock,..., 23: 00-0 o'clock).
  • the I / O at each time of day of the week (0-1 o'clock, 1 o'clock-2 o'clock, ..., 23 o'clock-0: 00)
  • the O level is calculated (FIG. 18, 500 ′).
  • FIG. 18 shows an example of a comparison method between the head group of the access pattern table T550 (that is, the row where the access pattern T552 is A) and the access frequency information of the target row converted to the I / O level (500 ′). I will explain.
  • the I / O level at each time of each day of the week (0-1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock) in the target row and the top group of the access pattern table Calculate the absolute value of the difference in I / O level at each time of day of the week stored (0-1 o'clock, 1 o'clock-2 o'clock, ..., 23 o'clock-0 o'clock) Calculate the sum of absolute values.
  • the result of adding all the sums calculated for each day of the week is calculated (the sum of Mondays + the sum of Tuesdays + ... + the sum of Sundays is calculated).
  • similarity the value calculated by this calculation is referred to as “similarity”. Note that the method of calculating the similarity is not limited to the method described above. The degree of similarity may be calculated using a method other than this.
  • the group identifier of the first group is stored in the access pattern (T408) of the real page of the target row (S65), and the process is terminated.
  • the identifier of the head group is A
  • A is stored in the access pattern (T408).
  • the access pattern of the target row is not similar to the top group of the access pattern table T550. In that case, it is determined whether comparison with all access patterns registered in the access pattern table T550 is completed (S67). If there is an access pattern not yet compared among the access patterns registered in the access pattern table T550 (S67: No), one access pattern that has not been compared is selected, and S62 and Similarly, comparison with the converted information is performed (S66). When the comparison with all access patterns registered in the access pattern table T550 is completed (S67: Yes), the access pattern of the target row is similar to any access pattern registered in the access pattern table T550. I can say no. Therefore, the access pattern of the target row is registered in the access pattern table T550 as a new access pattern (S68).
  • this process can be modified in various ways. For example, when the I / O program 1001 calls the access frequency management program 1003 in S25 (or S44), only S61 is executed, and the processing after S62 is performed periodically, for example, a predetermined value such as 0 minutes per hour. It may be executed at the time. Further, the processing after S62 may be performed only when the load on the storage apparatus 1 is low.
  • the startup volume defined in the storage apparatus 1 has an access frequency of data stored in advance in a real page (that is, the storage area of the drive 121 constituting the logical volume) in accordance with an instruction from the outside. What is expected to be expensive can be cached. As a result, before the host 2 issues an access request to the storage apparatus 1, data with high access frequency is stored in the cache, so that access performance is improved. For example, when the boot volume of the OS used by the host 2 is stored in the boot volume, the boot speed of the host 2 is expected to improve. However, if this process is not performed before the host 2 is activated, it is difficult to obtain a cache effect.
  • the user 1 of the computer system uses the management terminal 13 to issue an instruction to the storage apparatus 1 for caching the data of the boot volume used by the boot target host 2.
  • the storage apparatus 1 accepts this instruction, it starts pre-boot processing.
  • the process of storing the data read from the drive 121 in the CM 144 is referred to as “staging”.
  • the pre-startup process is performed by the pre-startup program 1002 being executed by the MP 141. Note that pre-startup processing is performed for each pool. However, the pool that is the target of the pre-boot process is only the pool in which the boot volume is defined. When the user notifies the pre-boot program 1002 of the pool ID of the pool that is the target of the pre-boot process using the management terminal 13, the pre-boot program 1002 is selected from the data stored in the designated pool. The data to be cached is selected based on the access frequency.
  • the real page data mapped to the virtual page of the startup volume can be obtained by specifying the identifier (VVOL ID) of the startup volume. You may make it cache.
  • pre-activation processing may be performed for all the pools (pools for which activation volumes are defined).
  • the pre-startup program 1002 stages the GI preferentially over the DI.
  • the pre-startup program 1002 first performs GI staging, and then performs DI staging. When DI is staged, the pre-start program 1002 preferentially staged from the DI with high access frequency.
  • FIG. 8 shows the flow of processing executed by the pre-startup program 1002.
  • the pre-start program 1002 refers to the pool management table T400 and the cache management table T300 to check whether there is a GI for which data is not cached among the GIs included in the notified pool (S1). . If there is a GI for which data is not cached (S1: Yes), the GI data is read from the drive 121 to the CM 144 (S2).
  • the pre-startup program 1002 selects the DI with the highest access frequency among the DIs included in the notified pool (S3).
  • the method of selecting the DI having the highest access frequency refers to the access frequency table T500, and acquires the access frequency at the current time (time when S3 is executed) of each real page. Then, a real page having the highest access frequency may be selected from DIs (that is, real pages) included in the notified pool.
  • an average access frequency may be calculated from information stored in the access frequency table T500, and a real page (DI) having the highest average access frequency may be selected.
  • the pre-startup program 1002 determines whether the data stored in the DI selected in S3 is cached (S4). This determination may be made by referring to the cache management table T300. If the data is not cached (S4: No), the data is staged from the drive 121 (S5). If the data is cached (S4: Yes), the pre-startup program 1002 does not execute the process of S5.
  • the activation program 1002 determines whether the CM 144 has a free space (S6).
  • the activation program 1002 is stored in the cache management table T300 (T300-1) with the LDEV ID (T302) and Addr. By checking whether there is a row in which (T303) is NULL, it is possible to determine whether the CM 144 has free space. When there is no free space in the CM 144 (S6: No), the activation program 1002 ends the process. If the CM 144 has free space (S6: Yes), the activation program 1002 selects the DI with the next highest access frequency (S7), and repeats the processing of S4 to S6.
  • the case where the pool ID is specified for the pre-start program 1002 has been described as an example.
  • the case where the start volume (VVOL ID) is specified for the pre-start program 1002 is the same as above. May be performed.
  • the pool (pool ID) to which the designated startup volume belongs is specified, and the above processes S1 to S7 may be performed based on the specified pool ID.
  • only the GI and DI mapped to the designated startup volume (virtual page thereof) are selected, and the processes of S1 to S7 above are performed only for the selected GI and DI. You may make it do.
  • the purge program 1004 is also performed for each pool as in the pre-startup process.
  • the purge program 1004 is started when the user issues a purge instruction using the management terminal 13.
  • the storage apparatus 1 may periodically execute the purge program 1004.
  • the I / O program 1001 reads data requested by the host 2 from the drive 121 (real page) to the CM 144, or the write data received by the I / O program 1001 from the host 2 is temporarily stored in the CM 144. At this time, if there is no unused area in the CM 144, the purge program 1004 may be executed to secure the unused area.
  • the purge program 1004 refers to the virtual volume management table T200 and the access frequency table T500 to identify a real page with an access frequency of 0 (S101).
  • real page with access frequency 0 means a real page with all access frequency values stored in T503-1 to T503-7 of the access frequency table T500. If there is no real page with an access frequency of 0, the purge program 1004 ends the process.
  • a predetermined threshold S103 If there is a real page with an access frequency of 0, it is determined whether the usage amount of the CM 144 is equal to or greater than a predetermined threshold (S103).
  • the usage amount of the CM 144 is the LDEV ID (T302) and Addr.
  • T300-1 T303
  • T303 is obtained by counting rows that are not NULL.
  • S103: Yes it is checked whether the data of the real page is cached in the CM 144 for all the real pages having an access frequency of 0. From the cache management table T300, the information about the real page with the access frequency of 0 (specifically, the LDEV ID (T302) and Addr.
  • T303 of the real page with the access frequency of 0
  • S104 NULL
  • the cached data is substantially deleted from the CM 144. This process is called “purge”. If the data (data stored in the CM 144) is not yet written in the drive 121 at the time of purging, the data is written in the drive 121.
  • the purge program 1004 ends the process without doing anything.
  • the determination of S103 may not be performed, and data with an access frequency of 0 may be uniformly deleted (purged) from the CM 144.
  • the current access frequency value (when the purge program 1004 is started) May be searched, or a real page having an access frequency value of 0 within a predetermined time (for example, within 5 hours) from the present time may be searched.
  • a search may be made for a real page whose total value of access frequency values stored in T503-1 to T503-7 is equal to or less than a certain threshold. .
  • each virtual page of a plurality of startup volumes belonging to one pool is mapped to the GI in the initial state.
  • the mapping of the virtual page is mapped to the DI that stores the updated data.
  • the deduplication program 1005 performs this process.
  • the deduplication program 1005 is started when the user issues a deduplication instruction using the management terminal 13. Alternatively, the storage apparatus 1 may periodically execute the deduplication program 1005.
  • the flow of processing executed by the deduplication program 1005 will be described with reference to FIG. This process is executed for each pool (pool to which the startup volume belongs). Therefore, when there are n pools, the process of FIG. 13 is performed n times.
  • the deduplication program 1005 is executed for a pool with a pool ID of 0 will be described.
  • the deduplication program 1005 checks the contents of each virtual page of the startup volume belonging to the pool # 0. Specifically, when a startup volume with a VVOL ID of 0 to m (m> 0) exists in the pool, the first virtual page to the last virtual page of each startup volume are read and compared. Then, it is checked whether or not there is a virtual page having the same content across all the activation volumes (S151).
  • the deduplication program 1005 moves the data stored in page #k to GI (S152). Specifically, the deduplication program 1005 refers to the GI mapping table T250 to identify a row where the pool ID (T251) is 0 and the page ID (T252) is k. The LDEV ID (T253) and Addr. The data stored in page #k of the current startup volume is stored in the real page (this real page is GI) specified in (T254). However, if all the page #k of all startup volumes are GI, the deduplication program 1005 does not perform the process of S152.
  • the deduplication program 1005 updates the virtual volume management table T200 and the pool management table T400.
  • a specific example will be described in the case where the contents of page #k (k is an integer value of 0 or more) of all the startup volumes are the same.
  • the deduplication program 1005 uses the LDEV ID (T204) and Addr. For all the rows where the pool ID (T203) is 0 and the page ID (T202) is k. The value of (T205) is changed from the LDEV ID and Addr. (S152). The attribute T206 is changed to 1 (GI). As a result, page #k of all startup volumes in pool # 0 is mapped to GI.
  • the deduplication program 1005 uses the VVOL ID (T406) for all the rows in the pool management table T400 where the pool ID (T401) is 0 and the Page ID (T407) is k (except for the row where the attribute T404 is 1). ) And an invalid value (NULL) are stored in Page ID (T407) (S153). As a result, the mapping of the real page mapped to page #k is released. Note that the LDEV ID (T402) and Addr.
  • the deduplication program 1005 keeps the LDEV ID (T402) and Addr. Of the row in which the invalid value (NULL) is stored in the VVOL ID (T406) and the Page ID (T407) until S154 ends. The information of (T405) is stored.
  • the deduplication program 1005 updates the access frequency table T500 (S154) and ends the process.
  • the deduplication program 1005 reads the LDEV ID (T501) and Addr. 502) identifies all the lines that are the same as the real page for which mapping was canceled in S153, and the access frequency information (T503-1 to T503-7) of each line is set to each time of day of the week (0 to 1:00, 1:00 ⁇ 2 o'clock,..., 23:00 to 0 o'clock) are calculated.
  • the calculation result calculated in this way is referred to as access frequency information before deduplication.
  • the deduplication program 1005 reads the LDEV ID (T501) and Addr. (T502) is the GI LDEV ID and Addr. Identify rows equal to. Then, the access frequency information before deduplication is substituted into the access frequency information (T503-1 to T503-7) of the row. That is, the GI access frequency information is made equal to the sum of the access frequency information of each real page before deduplication. As another embodiment, an average value of access frequency information of each real page before deduplication may be set as GI access frequency information.
  • the staging program 1007 performs staging of real pages (DI) belonging to an access pattern having a high access frequency.
  • the staging program 1007 is started at 0 minutes or several minutes before the hour. Alternatively, when the user issues a staging instruction using the management terminal 13, the staging program 1007 is started.
  • FIG. 15 shows the processing flow of the staging program 1007.
  • the staging program 1007 first refers to the access pattern table T550, and from there, the access frequency is high at the current time (the time when the staging program 1007 is started) (I / O level is a predetermined threshold (for example, 3))
  • the access pattern is specified (S251). For example, it is assumed that the staging program 1007 is started at 21:00 (or a few minutes before) on Monday.
  • the access pattern T552 has an A / O level of 5 (most I / O). Level is high). Therefore, the access pattern with the highest access frequency is identified as A.
  • the staging program 1007 refers to the pool management table T400, the access pattern T408 extracts the real pages that are the access patterns selected in S251, and performs staging of those real pages (S252). For example, when Group A is specified in S251, the staging program 1007 extracts all real pages whose access pattern T408 is A. After S252, if there is an access pattern with the next highest access frequency (S253: Yes), the staging program 1007 selects the access pattern with the next highest access frequency (S254), and performs the process of S252. This process is repeated until there are no access patterns having an I / O level equal to or higher than a predetermined threshold (for example, 3).
  • a predetermined threshold for example, 3
  • the staging program 1007 preferentially stages pages that tend to be accessed frequently at the current time (the time when the staging program 1007 is started) based on the access pattern table T550. Therefore, when the host 2 issues an access request for the page, the probability that the page to be accessed is staged in the cache increases. As a result, access performance can be improved.
  • the page sort program 1006 is started when the user issues a page sort instruction using the management terminal 13. Alternatively, the storage apparatus 1 may periodically execute the page sort program 1006. The page sort program 1006 is executed for each pool. Hereinafter, a case where the page sort program 1006 is executed for the pool # 0 will be described as an example.
  • the page sort program 1006 first selects one access pattern that has not been subjected to page sort (the processing of S202 to S204) (S201). Subsequently, all real pages having the same access pattern as the access pattern selected in S201 are specified (S202). This may be done by specifying a row in the pool management table T400 where the pool ID (T401) is 0 and the access pattern T408 is the same as the access pattern selected in S201.
  • the page sort program 1006 determines whether there are continuous free real pages in the pool # 0. Specifically, it is determined whether there are as many continuous free real pages as the number of real pages specified in S202 (S203). If there are continuous free real pages, all the data of the real page specified in S202 is moved to this continuous free real page (S204). In this process, data is read from the specified real page, and the read data is written to a free real page.
  • the pool management table T400, the virtual volume management table T200, and the GI mapping table T250 are updated simultaneously with the data movement of the real page. For example, if the LDEV ID is 00:01, Addr. Is stored in the actual page of 00000000, the LDEV ID is 00:02, Addr.
  • An example of a method for updating each management table in the case where is moved to a real page of 00000000 will be described using the pool management table T400 (FIG. 5) as an example.
  • the LDEV ID (T402) is 00:01, Addr.
  • the LDEV ID (T402) is 00:01, Addr.
  • the values of VVOL ID (T406) and page ID (T407) are set to NULL.
  • information other than the VVOL ID (T406) and page ID (T407), for example, the attribute (T404) and the access pattern (T408) are also moved.
  • the same processing is performed for the virtual volume management table T200 and the GI mapping table T250.
  • the cache management table T300 when the data of the real page of the data transfer source is cached in the CM 144, the data of the real page is purged.
  • step S205 the page sort program 1006 determines whether there is an access pattern that has not been subjected to page sort (processing in steps S202 to S204). If there is an access pattern that has not been subjected to page sorting (S205: No), the processing is repeated from S201. If page sorting has been performed for all access patterns (S205: Yes), the process ends.
  • data of real pages having the same access pattern (pages having the same access pattern (T408)) is arranged in a continuous area in the pool (that is, a continuous area on the LDEV or the drive 121). .
  • Real pages with the same access pattern are likely to be accessed in the same time zone.
  • the access speed when data is read from the drive 121 is improved. For this reason, if real page data having the same access pattern is arranged in a continuous area on the LDEV or the drive 121, an effect of improving the access performance can be obtained.
  • a plurality of virtual volumes (startup volumes) to which real pages (GI) storing original data are mapped are formed.
  • the update data is stored in a real page (DI) for storing the update data.
  • the real page mapped to the virtual volume (startup volume) is made resident in the cache based on the access frequency of the real page. Since real pages with high access frequency are made resident in the cache as much as possible, it is possible to suppress a decrease in access performance.
  • access frequency information for each time from Monday to Sunday (0-1 o'clock, 1-2 o'clock, ..., 23-24 o'clock) is managed for each real page.
  • the access frequency information for each time of the day may be managed.
  • the access frequency table T500 does not need to manage access frequency information from Monday to Sunday, that is, seven access frequency information (T503-1 to T503-7), and only one access frequency information needs to be managed.
  • the access frequency information for each hour of the day does not affect the access performance.
  • the access frequency information is updated in the cycle (10-day unit or monthly unit). You may make it manage.
  • the storage device 20 for storing the write data of the local file server 30 is not limited to the configuration outside the local file server 30. A configuration in which the storage device 20 is built in the local file server 30 may be adopted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

In a storage device according to one aspect of the present invention, a startup volume, which comprises a plurality of virtual pages to which storage regions for initial data and storage regions for update data are mapped, is provided to a host. Furthermore, the storage device is configured so as to cause data selected on the basis of the access frequency of each storage region to reside in a cache memory. When a read request with respect to the startup volume is received from the host, and the data to be read resides in the cache memory, the storage device reads the data from the cache memory and returns this data to the host.

Description

ストレージ装置Storage device
 本発明は、ストレージ装置に関する。 The present invention relates to a storage apparatus.
 計算機ハードウェアが低価格化したことにより、企業等では多数のホスト計算機が導入・運用されるようになってきている。多数のホスト計算機を使用している計算機システムでは、運用管理コストを低減するため、ホスト計算機が扱うデータを単一のストレージ装置に集約して運用するケースが多い。計算機システムでは、ストレージ装置の有する記憶領域(ボリューム)を各ホスト計算機に割り当てて、各ホスト計算機にその割り当てた記憶領域を使用させる。ホスト計算機の台数が増加すればするほど、より多くの記憶領域を必要とする。 Due to the low price of computer hardware, many host computers have been introduced and operated in companies. In a computer system using a large number of host computers, in many cases, data handled by the host computers are consolidated and operated in a single storage device in order to reduce operation management costs. In the computer system, a storage area (volume) of the storage device is allocated to each host computer, and each host computer is made to use the allocated storage area. As the number of host computers increases, more storage areas are required.
 一方、各ホスト計算機では同一内容のデータが用いられることが多い。一例として、各ホスト計算機のハードウェアスペックが同じである場合、各ホスト計算機は同一のオペレーティングシステム(OS)等のプログラムを実行する。そのため、各ホスト計算機に割り当てられているボリュームのうち、OS等のプログラムが格納されるボリューム(いわゆるブートディスク)の内容の多くは共通であることが多い。 On the other hand, data of the same content is often used in each host computer. As an example, when the hardware specifications of each host computer are the same, each host computer executes a program such as the same operating system (OS). For this reason, among the volumes allocated to each host computer, most of the contents of the volume (so-called boot disk) in which programs such as the OS are stored are often common.
 特許文献1では、各ホスト計算機が使用するデータのうち、内容が共通のデータ、たとえばOSのデータを、単一の記憶領域に格納し(以下、この単一の記憶領域に格納されたデータを初期データと呼ぶ)、内容がホスト計算機毎に異なるデータ(差分データと呼ぶ。具体的にはOSのパッチ等である)をストレージプールに格納しておき、各ホスト計算機には、初期データとストレージプール内の差分データから構成される仮想ボリュームを提供する技術が開示されている。これにより、内容が共通のデータを重複して格納する必要がなくなるため、記憶領域が節約できる。 In Patent Document 1, among data used by each host computer, data having a common content, for example, OS data is stored in a single storage area (hereinafter, data stored in the single storage area is referred to as data stored in the single storage area). (Referred to as initial data), data whose contents differ for each host computer (referred to as differential data; specifically, an OS patch or the like) is stored in the storage pool, and the initial data and storage are stored in each host computer. A technique for providing a virtual volume composed of differential data in a pool is disclosed. As a result, it is not necessary to store data having the same contents in duplicate, so that a storage area can be saved.
米国特許出願公開第2012/0066680号明細書US Patent Application Publication No. 2012/0066680
 特許文献1に記載のシステムでは、多くのホスト計算機が使用する共通のデータが単一の記憶領域に格納される。この単一の記憶領域に対し、多くのホスト計算機がアクセスすることになるため、アクセス性能が低下しやすい。 In the system described in Patent Document 1, common data used by many host computers is stored in a single storage area. Since many host computers will access this single storage area, the access performance tends to deteriorate.
 また、時間が経過するにつれ、ボリュームのデータの一部が更新される。たとえばOSに対してパッチを適用する場合には、ボリュームのデータの一部が更新される。特許文献1に記載のシステムでは、更新データはストレージプールに差分データとして格納される。仮想ボリューム上で連続している各記憶領域は、物理的には離散した記憶領域にマッピングされることもある。これもアクセス性能を低下させる要因になり得る。 Also, as time passes, part of the volume data is updated. For example, when applying a patch to the OS, part of the volume data is updated. In the system described in Patent Document 1, update data is stored as difference data in a storage pool. Each storage area that is continuous on the virtual volume may be mapped to a physically discrete storage area. This can also be a factor that degrades the access performance.
 本発明の一観点に係るストレージ装置は、初期データ用の記憶領域または更新データ用の記憶領域がマッピングされた複数の仮想ページから成る起動ボリュームを、ホストに提供する。また当該ストレージ装置は、各記憶領域のアクセス頻度に基づいて選択されたデータをキャッシュメモリに格納させるよう構成されている。ストレージ装置は、ホストから起動ボリュームに対するリード要求を受信した時、リード対象データが前記キャッシュメモリに格納されている場合、キャッシュメモリからデータを読み出してホストに返送する。 A storage apparatus according to an aspect of the present invention provides a host with a startup volume composed of a plurality of virtual pages to which a storage area for initial data or a storage area for update data is mapped. The storage device is configured to store data selected based on the access frequency of each storage area in a cache memory. When the storage apparatus receives a read request for the startup volume from the host and the read target data is stored in the cache memory, the storage apparatus reads the data from the cache memory and returns it to the host.
 本発明により、必要なデータを記憶デバイスから読み出す必要がなくなるため、仮想ボリュームのアクセス性能を向上させることができる。 According to the present invention, it is not necessary to read out necessary data from the storage device, so that the access performance of the virtual volume can be improved.
本発明の実施例に係るストレージシステムの構成図である。1 is a configuration diagram of a storage system according to an embodiment of the present invention. FIG. 仮想ボリューム管理テーブルの構成を示す図である。It is a figure which shows the structure of a virtual volume management table. GIマッピングテーブルの構成を示す図である。It is a figure which shows the structure of a GI mapping table. キャッシュ管理テーブルの構成を示す図である。It is a figure which shows the structure of a cache management table. プール管理テーブルの構成を示す図である。It is a figure which shows the structure of a pool management table. アクセス頻度テーブルの構成を示す図である。It is a figure which shows the structure of an access frequency table. アクセスパターンテーブルの構成を示す図である。It is a figure which shows the structure of an access pattern table. 起動前処理のフローチャートである。It is a flowchart of a process before starting. リード処理のフローチャートである。It is a flowchart of a read process. ライト処理のフローチャートである。It is a flowchart of a write process. アクセス頻度テーブルの更新処理のフローチャートである。It is a flowchart of the update process of an access frequency table. パージ処理のフローチャートである。It is a flowchart of a purge process. 重複排除処理のフローチャートである。It is a flowchart of a deduplication process. ページソート処理のフローチャートである。It is a flowchart of a page sort process. ステージング処理のフローチャートである。It is a flowchart of a staging process. ストレージ装置が有する管理情報とプログラムの構成を示す図である。It is a figure which shows the structure of the management information and program which a storage apparatus has. プールと仮想ボリューム(起動ボリューム)と論理ボリュームの関係、及び仮想ページと実ページの関係(マッピング)の説明図である。It is explanatory drawing of the relationship between a pool, a virtual volume (starting volume), and a logical volume, and the relationship (mapping) of a virtual page and a real page. アクセスパターンの比較方法の説明図である。It is explanatory drawing of the comparison method of an access pattern.
 以下、本発明の実施例について、図面を用いて説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The embodiments described below do not limit the invention according to the claims, and all the elements and combinations described in the embodiments are essential for the solution of the invention. Is not limited.
 なお、以後の説明では「aaaテーブル」等の表現にて本発明の管理情報を説明する場合があるが、これら情報は、テーブル等のデータ構造以外で表現されていてもよい。 In the following description, the management information of the present invention may be described in terms of “aaa table” or the like, but these information may be expressed in other than the data structure such as a table.
 また、以後の説明では「プログラム」を主語として説明を行う場合があるが、実際にはプロセッサ(CPU(Central Processing Unit))によってプログラムが実行されることで、定められた処理が行われる。ただし説明が冗長になることを防ぐため、プログラムを主語として説明することがある。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各装置にインストールされてもよい。記憶メディアとしては、例えば、ICカード、SDカード、DVD等であってもよい。 In the following description, “program” may be used as the subject, but in practice, the program is executed by a processor (CPU (Central Processing Unit)) to perform a predetermined process. However, to prevent the explanation from becoming redundant, the program may be described as the subject. Further, part or all of the program may be realized by dedicated hardware. Various programs may be installed in each apparatus by a program distribution server or a computer-readable storage medium. As the storage medium, for example, an IC card, an SD card, a DVD, or the like may be used.
 以下、本発明の一実施形態に係る計算機システムの構成を説明していく。図1は、実施例に係る計算機システムのハードウェア構成を示す図である。計算機システムは、1以上のホスト2、ホスト2からのI/O要求を受け付けるストレージ装置1、管理端末13を有する。ホスト2とストレージ装置1は、通信ネットワーク6を介して接続される。また、ストレージ装置1と管理端末13は、管理ネットワーク7を介して接続される。 Hereinafter, the configuration of a computer system according to an embodiment of the present invention will be described. FIG. 1 is a diagram illustrating a hardware configuration of the computer system according to the embodiment. The computer system includes one or more hosts 2, a storage apparatus 1 that accepts I / O requests from the hosts 2, and a management terminal 13. The host 2 and the storage apparatus 1 are connected via a communication network 6. The storage device 1 and the management terminal 13 are connected via the management network 7.
 ストレージ装置1は、ストレージコントローラ(以下、「コントローラ」と略記することもある)11と複数のドライブ121を備えるディスクユニット12から構成される。ストレージコントローラ11は、ストレージ装置1で行われるI/O処理などの制御を実行するプロセッサボードであるMPB111、ホスト2とのデータ転送インタフェースを有するチャネルアダプタ(CHA)112、ディスクユニット12とのデータ転送インタフェースを有するディスクアダプタ(DKA)113、キャッシュデータや制御情報などを格納するメモリを備えたメモリパッケージ(CMPK)114が、スイッチ(SW)115で相互接続された構成をとる。各構成要素(MPB111、CHA112、DKA113、CMPK114)の数は、図1に示された数に限定されるものではないが、高可用性の確保のため、通常各構成要素は複数存在する。また、これら構成要素を後で増設することも可能である。 The storage device 1 includes a storage controller (hereinafter also abbreviated as “controller”) 11 and a disk unit 12 including a plurality of drives 121. The storage controller 11 transfers data to and from the MPB 111 that is a processor board that performs control such as I / O processing performed in the storage apparatus 1, a channel adapter (CHA) 112 having a data transfer interface with the host 2, and the disk unit 12. A disk adapter (DKA) 113 having an interface and a memory package (CMPK) 114 having a memory for storing cache data and control information are interconnected by a switch (SW) 115. The number of components (MPB 111, CHA 112, DKA 113, CMPK 114) is not limited to the number shown in FIG. 1, but usually there are a plurality of components to ensure high availability. It is also possible to add these components later.
 各MPB111は、1以上のプロセッサ(MPとも呼ばれる)141と、当該プロセッサ141が使用するデータを格納するローカルメモリ(LM)142を有する、プロセッサパッケージボードである。 Each MPB 111 is a processor package board having one or more processors (also called MPs) 141 and a local memory (LM) 142 for storing data used by the processors 141.
 CMPK114は、ホスト2からのライトデータやドライブ121から読み出されたデータを一時格納する、いわゆるディスクキャッシュとして用いられる領域であるCM144と、MPB111が使用する制御情報等を格納する領域であるSM143とを有する。SM143に格納される情報は、全MPB111の全MP141からアクセス可能である。停電等の障害が発生した際にCMPK114内のデータが消失することを避けるために、CMPK114にバッテリバックアップ等の手段が備えられていてもよい。 The CMPK 114 temporarily stores write data from the host 2 and data read from the drive 121. The CM 144 is an area used as a so-called disk cache, and the SM 143 is an area for storing control information used by the MPB 111. Have Information stored in the SM 143 can be accessed from all the MPs 141 of all the MPBs 111. In order to prevent the data in the CMPK 114 from being lost when a failure such as a power failure occurs, the CMPK 114 may be provided with means such as a battery backup.
 ディスクユニット12には、複数のドライブ121が搭載される。各ドライブ121は、ホスト2からのライトデータを格納するための記憶デバイスで、DKA113の有するデータ転送インタフェースに接続されている。ドライブ121には、一例としてHDDなどの磁気ディスクが用いられるが、SSD(Solid State Drive)等、HDD以外の記憶媒体を用いてもよい。 A plurality of drives 121 are mounted on the disk unit 12. Each drive 121 is a storage device for storing write data from the host 2 and is connected to a data transfer interface of the DKA 113. For example, a magnetic disk such as an HDD is used for the drive 121, but a storage medium other than the HDD such as an SSD (Solid State Drive) may be used.
 通信ネットワーク6は一例として、スイッチ(ファイバチャネルスイッチ)等のネットワーク装置(1または複数)と、ファイバチャネルケーブル等の伝送線(1または複数)から構成される、いわゆるストレージエリアネットワーク(SAN)である。ただし、通信ネットワーク6にスイッチ等のネットワーク装置が含まれないこともあり得る。その場合、ホスト2とストレージ装置1が、伝送線のみで接続される。また通信ネットワークを構成するネットワーク装置や伝送線の物理規格は、ファイバチャネルに限定されない。イーサネットを用いた通信ネットワークであってもよい。 As an example, the communication network 6 is a so-called storage area network (SAN) including a network device (one or more) such as a switch (fiber channel switch) and a transmission line (one or more) such as a fiber channel cable. . However, the communication network 6 may not include a network device such as a switch. In that case, the host 2 and the storage apparatus 1 are connected only by the transmission line. Further, the physical standards of network devices and transmission lines constituting the communication network are not limited to the fiber channel. A communication network using Ethernet may be used.
 管理ネットワーク7も、通信ネットワーク6と同様に、ネットワーク装置と伝送線から構成される。管理ネットワーク7で用いられるネットワーク装置と伝送線には一例として、イーサネットスイッチやイーサネットケーブルが用いられる。ただしイーサネット以外の物理規格に従うネットワーク装置や伝送線が用いられてもよい。 As with the communication network 6, the management network 7 is also composed of network devices and transmission lines. As an example, an Ethernet switch or an Ethernet cable is used as a network device and a transmission line used in the management network 7. However, a network device or transmission line conforming to a physical standard other than Ethernet may be used.
 ホスト2は少なくとも、CPU21、メモリ22、そして通信ネットワーク6にホスト2を接続するためのインタフェースであるHBA(Host Bus Adapter)23を備えた計算機である。CPU21は、メモリ22にロードされたプログラムを実行する。ホスト2上では、一例としてデータベース管理システム(DBMS)等のアプリケーションプログラムが実行され、ストレージ装置1に格納されたデータにアクセスする。またホスト2上で複数の仮想計算機が稼働し、各仮想計算機がストレージ装置1にアクセスするよう、構成されていてもよい。また、図1では2台のホスト2のみが記載されているが、ホスト2の数は図1に記載された数に限定されない。2台より多くのホストがストレージ装置1にアクセスする構成であってもよい。 The host 2 is a computer including at least a CPU 21, a memory 22, and an HBA (Host Bus Adapter) 23 that is an interface for connecting the host 2 to the communication network 6. The CPU 21 executes a program loaded on the memory 22. On the host 2, as an example, an application program such as a database management system (DBMS) is executed to access data stored in the storage apparatus 1. A plurality of virtual machines may operate on the host 2 and each virtual machine may access the storage apparatus 1. In FIG. 1, only two hosts 2 are shown, but the number of hosts 2 is not limited to the number shown in FIG. The configuration may be such that more than two hosts access the storage apparatus 1.
 ここで、本実施例で用いられる主要な用語について説明する。 Here, main terms used in this embodiment will be described.
 「論理ボリューム」:
 論理ボリュームとは、ストレージ装置1がディスクユニット12内の1または複数のドライブ121の記憶領域を用いて形成する、論理的な記憶領域である。本実施例に係るストレージ装置1は、複数の論理ボリュームを形成することができる。また本実施例では、論理ボリュームは「LDEV」と表記されることもある。
"Logical volume":
A logical volume is a logical storage area formed by the storage apparatus 1 using storage areas of one or more drives 121 in the disk unit 12. The storage apparatus 1 according to the present embodiment can form a plurality of logical volumes. In this embodiment, the logical volume may be expressed as “LDEV”.
 「仮想ボリューム」、「ページ」:
 仮想ボリュームとは、ホスト2に提供される記憶領域である。本実施例に係るストレージ装置1は、複数の仮想ボリュームを定義し、複数の仮想ボリュームをホスト2に提供することができる。ホスト2は、1つの仮想ボリュームを、1つのディスクデバイスとして認識する。仮想ボリュームは、論理ボリュームの記憶領域を用いて形成される。ストレージ装置1は、仮想ボリュームの領域を、「ページ(または仮想ページ)」と呼ばれる所定サイズの部分領域単位に分割して管理している。またストレージ装置1は、仮想ページと論理ボリュームの記憶領域(実ページとも呼ばれる)とのマッピングを管理している。仮想ボリュームは、公知のThin Provisioning技術などを用いて形成されるボリュームであり、ストレージ装置1は仮想ボリュームの仮想ページに対するアクセス要求を受け付けた時点で、論理ボリュームの記憶領域を動的に仮想ページにマッピングする。
“Virtual Volume”, “Page”:
A virtual volume is a storage area provided to the host 2. The storage apparatus 1 according to this embodiment can define a plurality of virtual volumes and provide a plurality of virtual volumes to the host 2. The host 2 recognizes one virtual volume as one disk device. A virtual volume is formed using a storage area of a logical volume. The storage device 1 manages the virtual volume area by dividing it into partial area units of a predetermined size called “pages (or virtual pages)”. The storage device 1 also manages mapping between virtual pages and logical volume storage areas (also called real pages). The virtual volume is a volume formed using a known Thin Provisioning technology, and the storage apparatus 1 dynamically changes the storage area of the logical volume to a virtual page when receiving an access request for the virtual page of the virtual volume. Map.
 「通常仮想ボリューム」:
 本実施例に係るストレージ装置では、2種類の仮想ボリュームをホスト2に提供することができる。第1の種類の仮想ボリュームは、公知のThin Provisioning技術を用いて形成されるボリュームと同様のものである。第1の種類の仮想ボリュームの各ページには、初期状態では実ページがマッピングされていない。以下ではこの仮想ボリュームのことを、「通常仮想ボリューム」と呼ぶ。ストレージ装置1がホスト2から、通常仮想ボリュームの仮想ページに対するライト要求を受信すると、ストレージ装置1は、論理ボリュームの記憶領域(実ページ)のうち、未使用の領域(まだ仮想ページにマッピングされていない領域)を選択し、アクセス対象の仮想ページに、選択された領域をマッピングする。ホスト2からのライトデータは、このアクセス対象仮想ページにマッピングされた領域(実ページ)に格納される。
“Normal Virtual Volume”:
In the storage apparatus according to the present embodiment, two types of virtual volumes can be provided to the host 2. The first type of virtual volume is the same as a volume that is formed by using a well-known Thin Provisioning technology. No real page is mapped to each page of the first type virtual volume in the initial state. Hereinafter, this virtual volume is referred to as a “normal virtual volume”. When the storage apparatus 1 receives a write request for a virtual page of a normal virtual volume from the host 2, the storage apparatus 1 uses an unused area (still mapped to a virtual page) in the storage area (real page) of the logical volume. No area) is selected, and the selected area is mapped to the virtual page to be accessed. Write data from the host 2 is stored in an area (real page) mapped to this access target virtual page.
 「起動ボリューム」:
 第2の種類の仮想ボリュームは、初期状態の時点で各仮想ページにマッピングされる実ページが決定されているボリュームである。ホスト2から仮想ページに対するリード要求を受信すると、ストレージ装置1はリード対象の仮想ページにマッピングされている実ページに格納されているデータを読み出して、ホスト2に返送する。ストレージ装置1が仮想ページに対するライト要求及びライトデータを受信した時は、ストレージ装置1は、マッピングされている実ページに代えて、別の未使用状態の実ページを仮想ページにマッピングする。ライトデータは仮想ページに新たにマッピングされた実ページに書き込まれる。第2の種類の仮想ボリュームは、主としてホスト2が使用するオペレーティングシステム(OS)等、起動時に読み出すディスク(ブートデバイス)として用いられる。そのため以下では、第2の種類の仮想ボリュームのことを、「起動ボリューム」と呼ぶ。ただし起動ボリュームは、必ずしもその用途がブートデバイスとしての用途に限定されるわけではなく、別の用途で用いられてもよい。
"Startup volume":
The second type of virtual volume is a volume for which a real page to be mapped to each virtual page is determined at the time of the initial state. When a read request for a virtual page is received from the host 2, the storage apparatus 1 reads data stored in the real page mapped to the virtual page to be read and returns it to the host 2. When the storage apparatus 1 receives a write request and write data for a virtual page, the storage apparatus 1 maps another unused real page to the virtual page instead of the mapped real page. The write data is written to the real page newly mapped to the virtual page. The second type of virtual volume is mainly used as a disk (boot device) that is read at startup, such as an operating system (OS) used by the host 2. Therefore, hereinafter, the second type of virtual volume is referred to as a “startup volume”. However, the use of the startup volume is not necessarily limited to the use as a boot device, and may be used for another use.
 「プール」:
 プールとは、仮想ページにマッピングされる論理ボリュームの記憶領域を管理するために設けられている概念である。本実施例に係るストレージ装置1は、複数のプールを有する。本実施例に係るストレージ装置1が複数のプールを有する場合、各仮想ボリューム(起動ボリューム及び通常仮想ボリューム)は、いずれか1つのプールに所属する。また各仮想ボリュームの仮想ページには、仮想ボリュームが所属しているプールの有している記憶領域のみがマッピングされる。
"Pool":
A pool is a concept provided for managing a storage area of a logical volume mapped to a virtual page. The storage apparatus 1 according to the present embodiment has a plurality of pools. When the storage apparatus 1 according to the present embodiment has a plurality of pools, each virtual volume (startup volume and normal virtual volume) belongs to any one pool. Further, only the storage area of the pool to which the virtual volume belongs is mapped to the virtual page of each virtual volume.
 「Golden Image(GI)」、「Differential Image(DI)」:
 起動ボリュームの各仮想ページには、初期状態の時点ですでに実ページがマッピングされている。この、初期状態の時点で仮想ページにマッピングされる実ページ(またはその実ページに格納されているデータ)のことを、Golden Image(GI)と呼ぶ。そして起動ボリュームの仮想ページに対する更新(ライト)要求を受け付けた時に新たにマッピングされる実ページ(またはその実ページに格納されるデータ)のことを、Differential Image(DI)と呼ぶ。
“Golden Image (GI)”, “Differential Image (DI)”:
A real page is already mapped to each virtual page of the startup volume at the time of the initial state. The real page (or data stored in the real page) mapped to the virtual page at the time of the initial state is referred to as Golden Image (GI). A real page (or data stored in the real page) that is newly mapped when an update (write) request for a virtual page of the startup volume is received is referred to as a differential image (DI).
 続いて、本実施例に係るストレージ装置1が用いる管理情報とプログラムについて説明する。なお、ストレージ装置1は実際には、以下で説明する以外の管理情報やプログラムも有しているが、以下では本発明の実施例の説明上必要な管理情報のみを説明する。 Subsequently, management information and programs used by the storage apparatus 1 according to the present embodiment will be described. Although the storage apparatus 1 actually has management information and programs other than those described below, only the management information necessary for explaining the embodiment of the present invention will be described below.
 図16に示されているように、ストレージ装置1はLM142に、I/Oプログラム1001、起動前プログラム1002、アクセス頻度管理プログラム1003、パージプログラム1004、重複排除プログラム1005、ページソートプログラム1006、ステージングプログラム1007を格納している。これらのプログラムをMP141が実行することにより、以下で説明する各種処理が行われる。 As shown in FIG. 16, the storage apparatus 1 stores the I / O program 1001, pre-startup program 1002, access frequency management program 1003, purge program 1004, deduplication program 1005, page sort program 1006, staging program in the LM 142. 1007 is stored. When the MP 141 executes these programs, various processes described below are performed.
 またストレージ装置1はSM143に、仮想ボリューム管理テーブルT200、GIマッピングテーブルT250、キャッシュ管理テーブルT300、プール管理テーブルT400、アクセス頻度テーブルT500、アクセスパターンテーブルT550を有する。 The storage apparatus 1 also has a virtual volume management table T200, a GI mapping table T250, a cache management table T300, a pool management table T400, an access frequency table T500, and an access pattern table T550 in the SM 143.
 なお、ストレージ装置1は複数のボリューム(論理ボリューム、仮想ボリューム)を管理している。そのため、論理ボリューム、仮想ボリューム(通常仮想ボリューム及び起動ボリューム)には、ストレージ装置1内で一意な識別子が付される。論理ボリュームに付される識別子は、論理ボリュームID(LDEV ID)と呼ばれ、仮想ボリュームに付される識別子は、仮想ボリュームID(VVOL ID)と呼ばれる。 Note that the storage device 1 manages a plurality of volumes (logical volumes, virtual volumes). Therefore, unique identifiers are assigned to the logical volume and virtual volume (normal virtual volume and startup volume) within the storage apparatus 1. The identifier attached to the logical volume is called a logical volume ID (LDEV ID), and the identifier attached to the virtual volume is called a virtual volume ID (VVOL ID).
 同様にストレージ装置1は複数のプール、複数のページを管理している。各プールには、ストレージ装置1内で一意な識別子が付される。プールに付される識別子はプールID(Pool ID)と呼ばれる。また、仮想ボリューム内の各ページ(仮想ページ)には、仮想ボリューム内で一意な識別番号が付される。この識別番号はページIDと呼ばれ、ページIDには0以上の整数値が用いられる。仮想ボリュームの先頭領域に位置する仮想ページから順に、0から始まる整数値がページIDとして付される。本実施例では、各仮想ページ(及び実ページ)のサイズは固定(一例として42MB)である。 Similarly, the storage device 1 manages a plurality of pools and a plurality of pages. Each pool is given an identifier that is unique within the storage apparatus 1. An identifier attached to the pool is called a pool ID. Each page (virtual page) in the virtual volume is assigned an identification number that is unique in the virtual volume. This identification number is called a page ID, and an integer value of 0 or more is used for the page ID. An integer value starting from 0 is assigned as a page ID in order from the virtual page located in the head area of the virtual volume. In this embodiment, the size of each virtual page (and real page) is fixed (42 MB as an example).
 本実施例に係るストレージ装置1では、識別子に整数値を用いる。また、以下では、LDEV#n(nは整数値)と表記されている場合、LDEV IDがnの論理ボリュームを意味する。同様に、VVOL#nは、VVOL IDがnの仮想ボリュームを表し、ページ#n(またはPage#n)はページIDがnの仮想ページを表す。なお、識別子に用いる整数は、4桁または8桁などの16進数で表記されることもある。特に4桁の16進数を表記する際には、「AB:CD」(A,B,C,Dのそれぞれには、0~9の整数またはa~fの英文字が入る)という表記方法が用いられることがある。 In the storage apparatus 1 according to the present embodiment, an integer value is used for the identifier. In the following, when LDEV # n (n is an integer value) is indicated, it means a logical volume whose LDEV ID is n. Similarly, VVOL # n represents a virtual volume with a VVOL ID of n, and page #n (or Page # n) represents a virtual page with a page ID of n. In addition, the integer used for the identifier may be represented by a hexadecimal number such as 4 digits or 8 digits. In particular, when expressing a 4-digit hexadecimal number, there is a notation method of “AB: CD” (A, B, C, and D are each an integer from 0 to 9 or an alphabet from a to f). Sometimes used.
 図2は、仮想ボリューム管理テーブルT200の例を示している。仮想ボリューム管理テーブルT200は、仮想ボリュームの各仮想ページと、論理ボリュームの領域(実ページ)とのマッピングを管理するためのテーブルである。このテーブルの各行(レコード)のVVOL ID(T201)とページID(T202)は、管理対象の仮想ページを特定する情報である。そして各行のLDEV ID(T204)、アドレス(Addr.)T205は、管理対象の仮想ページにマッピングされている論理ボリュームの領域(実ページ)の先頭アドレスを表す。つまり、LDEV ID(T204)、アドレス(Addr.)T205で特定される論理ボリューム上の位置を起点とする1ページ分の領域が、VVOL ID(T201)、ページID(T202)で特定される仮想ページにマッピングされている。 FIG. 2 shows an example of the virtual volume management table T200. The virtual volume management table T200 is a table for managing the mapping between each virtual page of the virtual volume and the area (real page) of the logical volume. The VVOL ID (T201) and page ID (T202) in each row (record) of this table are information for specifying a virtual page to be managed. The LDEV ID (T204) and address (Addr.) T205 in each row represent the start address of the logical volume area (real page) mapped to the virtual page to be managed. That is, the area for one page starting from the position on the logical volume specified by the LDEV ID (T204) and address (Addr.) T205 is the virtual specified by the VVOL ID (T201) and page ID (T202). It is mapped to a page.
 属性(T206)は、管理対象の仮想ページの属性を表す。仮想ページの属性には3種類ある。属性(T206)に格納されている値が0の場合、管理対象の仮想ページが通常仮想ボリュームの仮想ページであることを表す(及びその仮想ページの属する仮想ボリュームが通常仮想ボリュームであることを表す)。属性(T206)に格納されている値が1の場合、管理対象の仮想ページの属する仮想ボリュームが起動ボリュームであって、その仮想ページが初期状態である(仮想ページにGIがマッピングされている)ことを表す。属性(T206)に格納されている値が2の場合、管理対象の仮想ページの属する仮想ボリュームが起動ボリュームであって、その仮想ページにDIがマッピングされている(初期状態から更新されている)ことを表す。 Attribute (T206) represents the attribute of the virtual page to be managed. There are three types of virtual page attributes. When the value stored in the attribute (T206) is 0, it indicates that the virtual page to be managed is a virtual page of a normal virtual volume (and that the virtual volume to which the virtual page belongs is a normal virtual volume). ). When the value stored in the attribute (T206) is 1, the virtual volume to which the virtual page to be managed belongs is the startup volume, and the virtual page is in the initial state (GI is mapped to the virtual page) Represents that. When the value stored in the attribute (T206) is 2, the virtual volume to which the virtual page to be managed belongs is a startup volume, and DI is mapped to the virtual page (updated from the initial state). Represents that.
 図2の例では、VVOL ID(T201)が0の行はすべて、属性(T206)が1(GI)または2(DI)である。そのためVVOL ID(T201)が0の仮想ボリュームは、起動ボリュームである。また、VVOL ID(T201)が0でページID(T202)が00002の行の属性(T206)が2であることから、ページID(T202)が00002の仮想ページには、DIがマッピングされていることがわかる。 In the example of FIG. 2, the VVOL ID (T201) is all 0 rows, and the attribute (T206) is 1 (GI) or 2 (DI). Therefore, the virtual volume whose VVOL ID (T201) is 0 is a startup volume. Also, since the attribute (T206) of the row with the VVOL ID (T201) of 0 and the page ID (T202) of 00002 is 2, DI is mapped to the virtual page with the page ID (T202) of 00002. I understand that.
 なお、起動ボリュームが定義された場合、初期状態では、起動ボリュームの全仮想ページの属性(T206)は1(GI)である。仮想ページが更新されると、その仮想ページの属性(T206)は2(DI)に更新される。また、1つの仮想ボリュームの中に、属性(T206)が0(通常)の仮想ページと、属性(T206)が1(GI)または2(DI)の仮想ページとが混在することはない。また、通常仮想ボリューム(図2の例ではVVOL IDが02の仮想ボリューム)の全ページの属性(T206)は0(通常)である。通常仮想ボリュームの各ページの属性(T206)は、仮想ページが更新されても変化することはない。 When the startup volume is defined, the attribute (T206) of all virtual pages of the startup volume is 1 (GI) in the initial state. When the virtual page is updated, the attribute (T206) of the virtual page is updated to 2 (DI). Further, a virtual page with an attribute (T206) of 0 (normal) and a virtual page with an attribute (T206) of 1 (GI) or 2 (DI) are not mixed in one virtual volume. Also, the attribute (T206) of all pages of the normal virtual volume (the virtual volume with the VVOL ID 02 in the example of FIG. 2) is 0 (normal). The attribute (T206) of each page of the normal virtual volume does not change even when the virtual page is updated.
 また、プールID(T203)は、仮想ボリュームが属するプールのプールIDを格納するための欄である。 The pool ID (T203) is a column for storing the pool ID of the pool to which the virtual volume belongs.
 図5は、プール管理テーブルT400の構成例を示している。プール管理テーブルT400は、プールに属するLDEVと、LDEVの各領域(実ページ)の状態を管理するためのテーブルである。 FIG. 5 shows a configuration example of the pool management table T400. The pool management table T400 is a table for managing the LDEV belonging to the pool and the state of each area (real page) of the LDEV.
 プール管理テーブルT400の各行(レコード)に、プールに属するLDEVの実ページについての情報が管理される。プールID(T401)には、実ページの存在するLDEVが属しているプールIDが格納される。LDEV ID(T402)には、プールに属するLDEVのLDEV IDが格納される。Disk Type(T403)には、LDEV(LDEV ID(T402)で特定されるLDEV)の種別が格納される。先に述べたとおり、LDEVはドライブ121の記憶領域を用いて形成されている。ここでの「種別」とは、LDEVに使用されているドライブの種別を意味する。 In each row (record) of the pool management table T400, information on an LDEV actual page belonging to the pool is managed. The pool ID (T401) stores the pool ID to which the LDEV in which the real page exists belongs. The LDEV ID (T402) stores the LDEV ID of the LDEV belonging to the pool. The type of LDEV (LDEV specified by LDEV ID (T402)) is stored in Disk Type (T403). As described above, the LDEV is formed using the storage area of the drive 121. The “type” here means the type of drive used for the LDEV.
 本実施例の場合、Disk Type(T403)に格納される種別として、SSD,SAS,SATAの3種類がある。SASまたはSATAは、ドライブ121がHDDであることを表す。またSASは、ドライブ121のインタフェース(DKA113と接続されるインタフェース)がSAS(Serial Attached SCSI)であるドライブであり、SATAは、ドライブ121のインタフェースがSATA(Seral AT Attachment)のドライブであることを意味する。Disk Type(T403)がSSDの場合、実ページ(の存在するLDEV)のアクセス性能が最も高い。Disk Type(T403)がSATAの場合、アクセス性能が最も低い。 In the case of the present embodiment, there are three types of SSD, SAS, and SATA as types stored in the Disk Type (T403). SAS or SATA indicates that the drive 121 is an HDD. SAS means that the drive 121 interface (interface connected to the DKA 113) is a SAS (Serial Attached SCSI) drive, and SATA means that the drive 121 interface is a SATA (Serial AT Attachment) drive. To do. When the Disk Type (T403) is SSD, the access performance of the real page (the LDEV in which it exists) is the highest. When the disk type (T403) is SATA, the access performance is the lowest.
 Addr(T405)には、LDEV内のアドレスが格納される。プール管理テーブルT400の各行(レコード)は、Addr(T405)を開始アドレスとするLDEV内の1ページ分の領域(実ページ)が、VVOL ID(T406)とPage ID(T407)で特定される仮想ページにマッピングされていることを表している。Addr(T405)を開始アドレスとするLDEV内の1ページ分の領域(実ページ)が、いずれの仮想ページにもマッピングされていない場合(未使用の実ページである場合)、VVOL ID(T406)とPage ID(T407)には無効値(NULL。-1などの、Page IDやVVOL IDには用いられない値)が格納される。 In Addr (T405), an address in the LDEV is stored. Each row (record) of the pool management table T400 is a virtual in which an area (real page) in the LDEV with Addr (T405) as the start address is specified by the VVOL ID (T406) and the Page ID (T407). Indicates that it is mapped to a page. If the area (real page) for one page in the LDEV starting with Addr (T405) is not mapped to any virtual page (if it is an unused real page), the VVOL ID (T406) And an invalid value (a value not used for Page ID or VVOL ID such as NULL.-1) is stored in and Page ID (T407).
 そして属性T404は、図2の仮想ボリューム管理テーブルT200の説明で述べたとおり、仮想ページの属性を表す。属性に格納される値は、仮想ボリューム管理テーブルT200の説明で述べたものと同じである(0~2の値が格納される)。 The attribute T404 represents the attribute of the virtual page as described in the explanation of the virtual volume management table T200 in FIG. The value stored in the attribute is the same as that described in the description of the virtual volume management table T200 (values 0 to 2 are stored).
 アクセスパターンT408は、実ページ(つまりAddr(T405)を開始アドレスとする1ページ分の論理ボリューム上領域)のアクセス頻度に基づいて決定される情報(パターン情報)が格納される。アクセスパターンについては後述する。 The access pattern T408 stores information (pattern information) determined based on the access frequency of a real page (that is, an area on a logical volume for one page having Addr (T405) as a start address). The access pattern will be described later.
 続いてGI及びGIの管理情報の一種であるGIマッピングテーブルT250の構成について説明する。まず、図17を用いて、本実施例に係るストレージ装置1が定義する、プールと仮想ボリューム(起動ボリューム)と論理ボリュームの関係、仮想ページと実ページの関係(マッピング)について説明する。 Next, the configuration of the GI mapping table T250, which is a type of GI and GI management information, will be described. First, the relationship between the pool, virtual volume (startup volume), and logical volume, and the relationship between virtual page and real page (mapping), which are defined by the storage apparatus 1 according to the present embodiment, will be described with reference to FIG.
 先にも述べたが、仮想ボリュームの仮想ページにマッピングされる、論理ボリューム上の領域(実ページ)は、プールという管理単位に所属している。プールに所属する論理ボリュームは、計算機システムのユーザ(ストレージ装置1の管理者等)によって選択される。ユーザは管理端末13を用いて、論理ボリュームをプールに所属させる旨をストレージ装置1に指示する。ストレージ装置1はこの指示を受け付けると、論理ボリュームをプールに所属させる。 As described above, the area (real page) on the logical volume that is mapped to the virtual page of the virtual volume belongs to a management unit called a pool. The logical volume belonging to the pool is selected by a computer system user (such as an administrator of the storage apparatus 1). The user uses the management terminal 13 to instruct the storage apparatus 1 to make the logical volume belong to the pool. Upon receipt of this instruction, the storage apparatus 1 makes the logical volume belong to the pool.
 また、仮想ボリュームの定義もユーザが管理端末13を用いて行う。仮想ボリュームの定義の際、ユーザは、定義される仮想ボリュームが所属するプールのプールIDを指定する。また同時に定義する仮想ボリュームの種別(起動ボリュームか通常仮想ボリュームか)も指定することができる。以下、定義する仮想ボリュームの種別が、起動ボリュームであった場合について説明する。 The user also defines the virtual volume using the management terminal 13. When defining a virtual volume, the user specifies the pool ID of the pool to which the virtual volume to be defined belongs. It is also possible to specify the type of virtual volume to be defined (whether it is a startup volume or a normal virtual volume). Hereinafter, a case where the type of virtual volume to be defined is a startup volume will be described.
 起動ボリュームは初期状態(定義直後の時点)で、各ページに実ページ(Golden Image)がマッピングされる。そのため起動ボリュームが定義される前に、起動ボリュームにマッピングすべき実ページ(Golden Image)は決定されていなければならない。 The startup volume is in the initial state (immediately after the definition), and a real page (Golden Image) is mapped to each page. Therefore, before the activation volume is defined, a real page (Golden Image) to be mapped to the activation volume must be determined.
 本実施例に係るストレージ装置1では、ユーザがプール内の1つの論理ボリューム内の各領域(実ページ)を、Golden Imageとして設定できる。図17にその例を示す。図17ではLDEV#0(LDEV IDが0番のLDEVを意味する)の各実ページがGIとして定義される。 In the storage apparatus 1 according to the present embodiment, the user can set each area (real page) in one logical volume in the pool as a Golden Image. An example is shown in FIG. In FIG. 17, each real page of LDEV # 0 (LDEV ID means 0th LDEV) is defined as GI.
 ユーザによって起動ボリュームが定義されると、起動ボリュームの各仮想ページに順次、LDEV#0の実ページがマッピングされる。図17の例では、起動ボリュームの先頭仮想ページ(仮想ページ#0)に、LDEV#0の先頭の実ページ(実ページ#0)がマッピングされ、以下、仮想ページ#1、#2...には順に、LDEV#0の2番目以降の実ページ(実ページ#1、#2...)がマッピングされる。 When the startup volume is defined by the user, the real pages of LDEV # 0 are sequentially mapped to each virtual page of the startup volume. In the example of FIG. 17, the first real page (real page # 0) of LDEV # 0 is mapped to the first virtual page (virtual page # 0) of the startup volume, and hereinafter, virtual pages # 1, # 2,. . . Are mapped in order to the second and subsequent real pages of LDEV # 0 (real pages # 1, # 2,...).
 LDEV#0の各実ページがGIとして定義されると、ユーザはGIにデータを格納することができる。GIへのデータ格納手段としては、様々な手段を採用可能である。たとえば管理端末13から管理ネットワーク7を介して、各GI(実ページ)にデータが格納されるようにしてもよい。あるいはストレージ装置1が、ホスト2からCHA112を介してGIにデータを格納するための専用のコマンドをサポートし、ホスト2からGIにデータを格納するための専用コマンドを受信したことに応じて、ホスト2から受信したデータをGIに格納するようにしてもよい。 When each real page of LDEV # 0 is defined as GI, the user can store data in GI. Various means can be adopted as means for storing data in the GI. For example, data may be stored in each GI (real page) from the management terminal 13 via the management network 7. Alternatively, the storage apparatus 1 supports a dedicated command for storing data in the GI from the host 2 via the CHA 112, and in response to receiving the dedicated command for storing data in the GI from the host 2, the host The data received from 2 may be stored in the GI.
 また、実ページをGIとして設定する処理と、GIにデータを格納する処理が同時に行えるようにしてもよい。たとえばストレージ装置1が、ホスト2からCHA112を介してGIにデータを格納するための専用のライトコマンドを受信すると、そのライトコマンドで指定されている領域(実ページ)がGIとして定義され、同時にホスト2から受信したライトデータがそのGIに書き込まれるようにしてもよい。 In addition, the process of setting a real page as a GI and the process of storing data in the GI may be performed simultaneously. For example, when the storage apparatus 1 receives a dedicated write command for storing data in the GI from the host 2 via the CHA 112, the area (real page) specified by the write command is defined as the GI and at the same time the host The write data received from 2 may be written to the GI.
 仮想ボリューム(起動ボリューム)は複数個定義することができる。たとえば図17には、起動ボリュームが2つ(仮想vol.#0と仮想vol.#1)が定義されている例が示されている。いずれの起動ボリュームも、定義直後は全仮想ページにLDEV#0の実ページ(GI)がマッピングされる。そのため、起動ボリュームを定義すると、(起動ボリュームに対して書き込みを行わない限り)全ての起動ボリュームには同じデータが格納された状態になる。つまり、起動ボリュームとは、GIの格納されているLDEVのスナップショットコピーの一種といえる。 Multiple virtual volumes (boot volumes) can be defined. For example, FIG. 17 shows an example in which two startup volumes (virtual vol. # 0 and virtual vol. # 1) are defined. In any activation volume, the LDEV # 0 real page (GI) is mapped to all virtual pages immediately after the definition. Therefore, when the startup volume is defined, the same data is stored in all the startup volumes (unless writing is performed to the startup volume). In other words, the startup volume is a kind of snapshot copy of the LDEV in which the GI is stored.
 本実施例に係るストレージ装置1において、起動ボリュームという仮想ボリュームの一種をホスト2に提供する機能が設けられている理由は、同一のソフトウェア(OS等)を使用する複数のホスト(あるいは複数の仮想計算機)に対して、効率的にボリューム(仮想ボリューム)を提供するためである。あらかじめGIに、OSのブートイメージなどを格納しておけば、ユーザが管理端末13等を用いて起動ボリュームの定義を行うだけで、ブートイメージの物理的なコピーを行うことなく、速やかにブートデバイスを複製することができる。そのため、計算機システムにホストを追加した場合(あるいは既設のホストで稼働する仮想マシンの数を増やした場合)でも、追加されたホスト用の起動ボリュームの定義を高速に行うことができる。また各起動ボリュームの各仮想ページが、GIにマッピングされているため(GIを共有しているといえる)、記憶領域の消費量を抑えることができる。 The reason why the storage apparatus 1 according to the present embodiment is provided with a function of providing a type of virtual volume called a startup volume to the host 2 is that a plurality of hosts (or a plurality of virtual volumes) using the same software (OS etc.) are provided. This is because a volume (virtual volume) is efficiently provided to a computer. If the OS boot image or the like is stored in advance in the GI, the user can quickly define the boot volume by simply defining the boot volume using the management terminal 13 or the like without physically copying the boot image. Can be duplicated. Therefore, even when a host is added to the computer system (or when the number of virtual machines running on an existing host is increased), the added boot volume for the host can be defined at high speed. Further, since each virtual page of each startup volume is mapped to the GI (it can be said that the GI is shared), the consumption amount of the storage area can be suppressed.
 各起動ボリュームは、ホスト2からデータを書き込むことができるように構成されている。ストレージ装置1は、ホスト2から起動ボリュームの仮想ページに対する書き込み要求及びライトデータを受信すると、GIとは異なる実ページを、ライト対象の仮想ページに対してマッピングする。ここでマッピングされた実ページ(GIと異なる実ページ)が、Differential Image(DI)である。そしてライトデータはDIに格納される。 Each boot volume is configured so that data can be written from the host 2. When the storage apparatus 1 receives a write request and write data for the virtual page of the startup volume from the host 2, it maps a real page different from the GI to the write target virtual page. The real page (real page different from the GI) mapped here is the differential image (DI). The write data is stored in DI.
 図17には、ストレージ装置1が仮想Vol.#0の仮想ページ#2に対する、ホスト2からのライト要求を受け付けた場合の例が示されている。また図17に記載の例は、ライト要求を受け付ける前には仮想ページ#2にLDEV#0の実ページ#2(GI)がマッピングされていた場合の例である。ライト要求を受け付けると、LDEV#0以外のLDEV(GIの格納されているLDEVと同一プールに属するLDEV。図17の例ではLDEV#1)の実ページ(実ページ#0)を仮想ページ#2にマッピングする。 FIG. 17 shows that the storage device 1 is a virtual Vol. An example in which a write request from the host 2 is received for the virtual page # 2 of # 0 is shown. The example shown in FIG. 17 is an example in which the real page # 2 (GI) of LDEV # 0 is mapped to the virtual page # 2 before the write request is accepted. When the write request is received, a real page (real page # 0) of an LDEV other than LDEV # 0 (an LDEV belonging to the same pool as the LDEV storing the GI. In the example of FIG. 17, LDEV # 1) is transferred to virtual page # 2. To map.
 なお、図17の例では、2つの起動ボリュームが同一のプールに属している。そのため2つの起動ボリュームに同一データが格納された状態になる。もしも異なるデータが格納された起動ボリュームを定義したい場合には、プールを複数設ければよい。 In the example of FIG. 17, two startup volumes belong to the same pool. Therefore, the same data is stored in the two startup volumes. If you want to define a startup volume that stores different data, you can create multiple pools.
 図3は、GIマッピングテーブルT250の構成例を示している。 FIG. 3 shows a configuration example of the GI mapping table T250.
 本実施例に係るストレージ装置1では、1つのプールに、GIの格納される論理ボリュームを1つ設けることができる。GIマッピングテーブルT250は、各プールに属する論理ボリュームの実ページのうち、GIとして設定されている実ページを管理するためのテーブルである。GIマッピングテーブルT250は、プールID(T251)、ページID(T252)、LDEV ID(T253)、Addr.(T254)のカラムを有する。 In the storage apparatus 1 according to the present embodiment, one logical volume in which a GI is stored can be provided in one pool. The GI mapping table T250 is a table for managing real pages set as GI among real pages of logical volumes belonging to each pool. The GI mapping table T250 includes pool ID (T251), page ID (T252), LDEV ID (T253), Addr. (T254) column.
 そしてGIマッピングテーブルT250の各行が、GIとして定義されている実ページについての情報を表している。具体的には、LDEV ID(T253)、Addr.(T254)で特定される論理ページ上の領域(実ページ)は、プールID(T251)に属していることを表している。また、起動ボリュームが定義された際、各実ページがマッピングされるべき、起動ボリュームの仮想ページのページIDが、ページID(T252)に格納される。図3の例では、LDEV ID(T253)が“00:00”、Addr.(T254)が00000000を開始アドレスとする領域(論理ボリュームの1ページ分の領域、つまり実ページ)は、起動ボリューム(プール#0に所属する起動ボリューム)の仮想ページのうち、ページIDが00000の仮想ページにマッピングされることを表している。 And each line of the GI mapping table T250 represents information about a real page defined as GI. Specifically, LDEV ID (T253), Addr. The area (real page) on the logical page specified by (T254) indicates that it belongs to the pool ID (T251). Further, when the activation volume is defined, the page ID of the virtual page of the activation volume to which each real page is to be mapped is stored in the page ID (T252). In the example of FIG. 3, the LDEV ID (T253) is “00:00”, Addr. An area (T254) whose start address is 00000000 (an area for one page of a logical volume, that is, a real page) has a page ID of 00000 among virtual pages of a startup volume (a startup volume belonging to pool # 0). Indicates that it is mapped to a virtual page.
 ユーザからの起動ボリュームの定義指示を受け付けたストレージ装置1は、仮想ボリューム管理テーブルT200に仮想ボリュームの情報(T201、T202など)を作成する。そしてストレージ装置1は、GIマッピングテーブルT250を参照することで仮想ボリューム管理テーブルT200のLDEV ID(T204)、Addr.(T205)に、GIマッピングテーブルT250のLDEV ID(T253)、Addr.(T254)の値を格納する。これにより、定義された起動ボリュームの各仮想ページには、GIがマッピングされたことになる。 The storage apparatus 1 that has received an instruction to define the startup volume from the user creates virtual volume information (T201, T202, etc.) in the virtual volume management table T200. Then, the storage apparatus 1 refers to the GI mapping table T250, thereby causing the LDEV ID (T204), Addr. (T205), the LDEV ID (T253) of the GI mapping table T250, Addr. The value of (T254) is stored. As a result, the GI is mapped to each virtual page of the defined startup volume.
 続いて図6を用いて、アクセス頻度テーブルT500の内容を説明する。本実施例1に係るストレージ装置1は、ホスト2からのアクセス頻度(単位時間あたりのリード回数及びライト回数)を実ページごとに管理している。 Subsequently, the contents of the access frequency table T500 will be described with reference to FIG. The storage apparatus 1 according to the first embodiment manages the access frequency (read count and write count per unit time) from the host 2 for each real page.
 アクセス頻度テーブルT500のT503-1~T503-7はそれぞれ、LDEV ID(T302)、Addr.(T303)を開始アドレスとする1ページ分の領域(実ページ)に対するアクセス頻度の情報を格納するための欄である。T503-1が、月曜日に発生したアクセス量(I/O数)の計数結果を格納する欄である。以下順にT503-2~T503-7にはそれぞれ、火曜日~日曜日に発生したアクセス量(I/O数)の計数結果が格納される。またT503-1~T503-7にはそれぞれ、24個の欄が設けられている。各欄には順に、0時~1時に発生したアクセス数、1時~2時に発生したアクセス数、...23時~24時に発生したアクセス数、の計数結果が格納される。 T503-1 to T503-7 in the access frequency table T500 are LDEV ID (T302), Addr. This is a column for storing access frequency information for an area (actual page) for one page whose start address is (T303). T503-1 is a column for storing a count result of the access amount (I / O count) generated on Monday. The count results of the access amount (I / O count) generated from Tuesday to Sunday are stored in T503-2 to T503-7 in the following order. Each of T503-1 to T503-7 has 24 columns. In each column, the number of accesses that occurred from 0:00 to 1 o'clock, the number of accesses that occurred from 1 o'clock to 2 o'clock,. . . The count result of the number of accesses generated from 23:00 to 24:00 is stored.
 なお本実施例では、T503-1~T503-7内の各欄に格納されるアクセス数の計数結果として、過去1週間に発生したアクセス数が格納される。ただし、ストレージ装置1が過去数週間(あるいは数か月)分のアクセス数を観測し、この観測結果に基づいて、単位時間当たりの平均アクセス数を算出し、T503-1~T503-7内の各欄に格納するようにしてもよい。 In this embodiment, the number of accesses that have occurred in the past week is stored as a count result of the number of accesses stored in each column in T503-1 to T503-7. However, the storage device 1 observes the number of accesses for the past several weeks (or months), calculates the average number of accesses per unit time based on the observation result, and within T503-1 to T503-7 You may make it store in each column.
 続いて本実施例における、「アクセスパターン」の概念について説明する。上で述べたとおり、ストレージ装置1は、アクセス頻度(1時間あたりのアクセス量)を実ページごとに計数している。つまり各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のアクセス頻度の変動傾向を、実ページ毎に把握している。そして、アクセス頻度の変動傾向が類似している実ページの集合を、1つのグループとして管理し、そのグループのアクセス頻度の変動傾向を「アクセスパターン」と呼ぶ。 Next, the concept of “access pattern” in the present embodiment will be described. As described above, the storage apparatus 1 counts the access frequency (access amount per hour) for each real page. That is, the trend of fluctuation in access frequency at each time of day of the week (0-1 o'clock, 1 o'clock-2 o'clock,..., 23: 00-0 o'clock) is grasped for each real page. A set of real pages having similar access frequency fluctuation trends is managed as one group, and the access frequency fluctuation trend of the group is referred to as an “access pattern”.
 図5のプール管理テーブルT400の説明に戻る。プール管理テーブルT400は、アクセスパターン(T408)というカラムを有する。アクセス頻度の変動傾向が類似している実ページについては、アクセスパターン(T408)の欄に同一の識別子(A、B、C等)が格納される。 Returning to the description of the pool management table T400 in FIG. The pool management table T400 has a column called an access pattern (T408). For real pages having similar access frequency fluctuation trends, the same identifier (A, B, C, etc.) is stored in the access pattern (T408) column.
 アクセスパターン(T408)の決定方法の概要を説明する。ストレージ装置1は、計数されたアクセス頻度情報(アクセス頻度テーブルで管理されているT503-1~T503-7)を、「I/Oレベル」という指標に変換する。 The outline of the access pattern (T408) determination method will be described. The storage apparatus 1 converts the counted access frequency information (T503-1 to T503-7 managed in the access frequency table) into an index “I / O level”.
 本実施例における、アクセス頻度からI/Oレベルへの変換規則の例を以下に示す。以下は一例であり、以下とは異なる変換規則が用いられてもよい。
(a) 1時間当たりのアクセス量が0以上10未満: I/Oレベル0
(b) 1時間当たりのアクセス量が10以上20未満: I/Oレベル1
(c) 1時間当たりのアクセス量が20以上100未満: I/Oレベル2
(d) 1時間当たりのアクセス量が100以上500未満: I/Oレベル3
(e) 1時間当たりのアクセス量が500以上1000未満: I/Oレベル4
(f) 1時間当たりのアクセス量が1000以上: I/Oレベル5
An example of the conversion rule from the access frequency to the I / O level in this embodiment is shown below. The following is an example, and different conversion rules may be used.
(A) Access amount per hour is 0 or more and less than 10: I / O level 0
(B) Access amount per hour is 10 or more and less than 20: I / O level 1
(C) Access amount per hour is 20 or more and less than 100: I / O level 2
(D) Access amount per hour is 100 or more and less than 500: I / O level 3
(E) Access amount per hour is 500 or more and less than 1000: I / O level 4
(F) Access amount per hour is 1000 or more: I / O level 5
 図6のI/Oレベル500’は、 アクセス頻度テーブルT500内のレコードのうち、LDEV ID(T501)が00:00、Addr.(T502)が00000000の実ページに対するアクセス頻度情報を、上の変換規則に従って、I/Oレベルに変換した結果の例を示している。 The I / O level 500 'in FIG. 6 indicates that the LDEV ID (T501) of the records in the access frequency table T500 is 00:00, Addr. The example of the result of having converted the access frequency information with respect to the real page whose (T502) is 00000000 to the I / O level according to the above conversion rule is shown.
 ストレージ装置1はさらに、アクセスパターンテーブルというテーブルを管理している。図7にアクセスパターンテーブルT550の例を示す。アクセスパターンテーブルT550は、各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルの変動パターンの例を複数格納したテーブルである。T553-1には、月曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルが格納され、以下T553-2~T553-7には、火曜日の各時刻のI/Oレベル~日曜日の各時刻のI/Oレベルが格納されている。 The storage device 1 further manages a table called an access pattern table. FIG. 7 shows an example of the access pattern table T550. The access pattern table T550 is a table that stores a plurality of examples of fluctuation patterns of the I / O level at each time of each day of the week (0 to 1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock). . In T553-1, the I / O level at each time of Monday (0 to 1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock) is stored. Hereinafter, T553-2 to T553-7 are stored. Stores the I / O level at each time on Tuesday to the I / O level at each time on Sunday.
 ストレージ装置1は、プールごとにアクセスパターンを管理している。図7では、プール#0(プールID(T551)が0のプール)のアクセスパターン(T552)として、A、B、Cの3種類のみが示されているが、3種類よりも多くのアクセスパターンが登録されることもある。アクセスパターンテーブルT550にアクセスパターンを登録する際の、具体的な処理の内容は後述する。 Storage device 1 manages access patterns for each pool. In FIG. 7, only three types of A, B, and C are shown as access patterns (T552) of pool # 0 (pool with pool ID (T551) of 0), but there are more access patterns than three types. May be registered. Specific processing contents when registering an access pattern in the access pattern table T550 will be described later.
 ストレージ装置1は、図6のアクセス頻度テーブルT500の内容をI/Oレベルに変換した結果(図6のI/Oレベル500’がその一例である)と、アクセスパターンテーブルT550に格納されている各パターンとを比較する。たとえば図6のI/Oレベル500’(これはLDEV IDが00:00、Addr.が00000000の実ページのI/Oレベルである)とアクセスパターンテーブルT550に格納されている各パターンとの比較を行い、仮に図6のI/Oレベル500’とアクセスパターンテーブルT550に格納されているあるパターン(たとえばアクセスパターンT552が「A」の行に格納されているパターン)と類似していると判断された場合、プール管理テーブルT400のアクセスパターン(T408)に「A」を登録する。 The storage apparatus 1 stores the result of converting the contents of the access frequency table T500 in FIG. 6 into the I / O level (I / O level 500 ′ in FIG. 6 is an example thereof) and the access pattern table T550. Compare each pattern. For example, a comparison between the I / O level 500 ′ of FIG. 6 (this is the I / O level of a real page with an LDEV ID of 0:00 and Addr. Of 00000000) and each pattern stored in the access pattern table T550 6 is determined to be similar to the I / O level 500 ′ in FIG. 6 and a certain pattern stored in the access pattern table T550 (for example, the pattern in which the access pattern T552 is stored in the row “A”). If it is, “A” is registered in the access pattern (T408) of the pool management table T400.
 図4は、キャッシュ管理テーブルT300の構成例を示している。本実施例1に係るストレージ装置1では、アクセス頻度の高いデータをCM144に格納し(「キャッシュする」と呼ばれることもある)、ホスト2からのデータアクセス時の応答時間が短くなるようにしている。キャッシュ管理テーブルT300は、CM144の領域のうち、データが格納されている(キャッシュされている)領域についての情報を管理するためのテーブルである。 FIG. 4 shows a configuration example of the cache management table T300. In the storage device 1 according to the first embodiment, frequently accessed data is stored in the CM 144 (sometimes referred to as “cache”), and the response time when accessing data from the host 2 is shortened. . The cache management table T300 is a table for managing information on an area in which data is stored (cached) among the areas of the CM 144.
 本実施例1に係るストレージ装置1では、起動ボリュームに格納されたデータをキャッシュするための領域と、通常仮想ボリュームに格納されたデータをキャッシュするための領域とを、分けて管理している。起動ボリュームに格納されたデータをキャッシュするための領域を管理するためのテーブルが、キャッシュ管理テーブルT300-1である。通常仮想ボリュームに格納されたデータをキャッシュするための領域を管理するためのテーブルが、キャッシュ管理テーブルT300-2である。ただしT300-1とT300-2のフォーマットは同じである。以下、キャッシュ管理テーブルT300-1を例にとって、キャッシュ管理テーブルT300の内容を説明する。 In the storage apparatus 1 according to the first embodiment, an area for caching data stored in the startup volume and an area for caching data stored in the normal virtual volume are managed separately. A table for managing an area for caching data stored in the startup volume is a cache management table T300-1. A table for managing an area for caching data stored in the normal virtual volume is a cache management table T300-2. However, the formats of T300-1 and T300-2 are the same. Hereinafter, the contents of the cache management table T300 will be described using the cache management table T300-1 as an example.
 キャッシュ管理テーブルT300の各行(レコード)は、Cache Addr.(T301)を開始アドレスとする1ページ分の領域に、LDEV ID(T302)、Addr.(T303)を開始アドレスとする1ページ分の領域(つまり実ページ)に格納されるべきデータがキャッシュされていることを表している。Cache Addr.(T301)を開始アドレスとする1ページ分の領域に、データがキャッシュされていない場合には、LDEV ID(T302)とAddr.(T303)には無効値(NULL)が格納される。 Each line (record) of the cache management table T300 is stored in Cache Addr. (T301), an LDEV ID (T302), Addr. This indicates that data to be stored in an area for one page (that is, a real page) having (T303) as a start address is cached. Cache Addr. If data is not cached in the area for one page starting from (T301), the LDEV ID (T302) and Addr. An invalid value (NULL) is stored in (T303).
 たとえば、LDEV(ドライブ121)から読み出したデータをCM144に格納する際には、ストレージ装置1はキャッシュ管理テーブルT300の各行(レコード)の中から、LDEV ID(T302)とAddr.(T303)に無効値(NULL)が格納されている行を1つ選択する。そして選択された行のCache Addr.(T301)を開始アドレスとする1ページ分の領域に、読み出したデータを格納する。そして、選択された行のLDEV ID(T302)とAddr.(T303)に、データの読み出し元であるLDEVのLDEV ID及びアドレス(LBA)を格納する。 For example, when the data read from the LDEV (drive 121) is stored in the CM 144, the storage device 1 selects the LDEV ID (T302) and Addr. From each row (record) of the cache management table T300. One row in which the invalid value (NULL) is stored in (T303) is selected. Then, Cache Addr. The read data is stored in an area for one page having (T301) as a start address. Then, the LDEV ID (T302) and Addr. In (T303), the LDEV ID and address (LBA) of the LDEV that is the data reading source are stored.
 図4の例では、キャッシュ管理テーブルT300-1の先頭行のCache Addr.(T301)は0、最終行のCache Addr.(T301)はxxxxxxxxである。そしてキャッシュ管理テーブルT300-2の先頭行のCache Addr.(T301)はyyyyyyyyであるので、CM144のアドレス0~(xxxxxxxx+1ページのサイズ)の領域が起動ボリュームに対して格納されたデータをキャッシュするための領域として用いられること、CM144のアドレスyyyyyyyy以降の領域が、通常仮想ボリュームに対して格納されたデータをキャッシュするための領域として用いられることを表している(ただし、(xxxxxxxx+1ページのサイズ)<yyyyyyyyの関係にある、つまりキャッシュ管理テーブルT300-1で管理される領域とキャッシュ管理テーブルT300-2で管理される領域は重複する部分がないものとする)。このアドレスxxxxxxxxとyyyyyyyyは、固定であってもよいし、あるいはユーザによって変えられるように構成されていてもよい。アドレスがユーザによって変えられる場合、ユーザは、起動ボリュームの数やアクセス頻度を考慮して、xxxxxxxxの値を大きくする(あるいは小さくする)ことができる。 In the example of FIG. 4, Cache Addr. In the first line of the cache management table T300-1. (T301) is 0, and Cache Addr. (T301) is xxxxxxxx. Then, Cache Addr. On the top line of the cache management table T300-2. Since (T301) is yyyyyyyy, the area from address 0 to (xxxxxxxx + 1 page size) of the CM 144 is used as an area for caching the data stored in the startup volume, and the area after the address yyyyyyyy of the CM 144 Is used as an area for caching data stored in the normal virtual volume (where (xxxxxxxx + 1 page size) <yyyyyyy, ie, in the cache management table T300-1 It is assumed that there is no overlap between the managed area and the area managed by the cache management table T300-2). The addresses xxxxxxxx and yyyyyyyy may be fixed, or may be configured to be changed by the user. When the address is changed by the user, the user can increase (or decrease) the value of xxxxxxxx in consideration of the number of startup volumes and the access frequency.
 続いて、本実施例に係るストレージ装置1で実施される処理の流れを説明していく。以下ではストレージ装置1が、起動ボリュームに対するホスト2からのアクセス要求を受信した時の処理など、起動ボリュームに関する処理について説明する。通常仮想ボリュームに対する処理は、公知のストレージ装置で行われる処理と同じであるため、本実施例では通常仮想ボリュームに対する処理の説明は行わない。 Subsequently, the flow of processing performed by the storage apparatus 1 according to the present embodiment will be described. Hereinafter, processing related to the startup volume, such as processing when the storage apparatus 1 receives an access request from the host 2 to the startup volume, will be described. Since the processing for the normal virtual volume is the same as the processing performed in a known storage device, the processing for the normal virtual volume is not described in this embodiment.
 はじめに、ホスト2から起動ボリュームに対するリード要求(リードコマンド)を受信した時に行われる処理の流れを、図9を用いて説明する。この処理はI/Oプログラム1001が実行する。 First, the flow of processing performed when a read request (read command) for the startup volume is received from the host 2 will be described with reference to FIG. This process is executed by the I / O program 1001.
 ホスト2がストレージ装置1に対して発行するリード要求には、リード対象の仮想ボリュームのVVOL ID(あるいは論理ユニット番号[LUN]等の、VVOL IDを導出可能な情報)と、リード対象の仮想ボリューム内の領域を特定する情報である論理ブロックアドレス(LBA)が含まれている。I/Oプログラム1001がホスト2からリード要求を受信すると、これらの情報を、リード対象の実ページを特定する情報(具体的には仮想ボリューム管理テーブルT200の、LDEV ID(T204)とAddr.(T205)である)に変換する(S21)。 The read request issued by the host 2 to the storage apparatus 1 includes the VVOL ID of the read target virtual volume (or information that can be used to derive the VVOL ID such as the logical unit number [LUN]) and the read target virtual volume. A logical block address (LBA), which is information for specifying the area within, is included. When the I / O program 1001 receives a read request from the host 2, these pieces of information are replaced with information for specifying the real page to be read (specifically, the LDEV ID (T204) and Addr. (Virtual volume management table T200). (T205)) (S21).
 S21で行われる変換の概要は以下の通りである。まずI/Oプログラム100は、リード要求に含まれている情報から、アクセス対象の仮想ボリュームのVVOL IDとページID(仮想ページのページID)を特定する。ページIDは、リード要求に含まれているLBAをページサイズで除算することで算出できる(仮想ページのサイズが42MBの場合、LBA÷(42[MB]÷512)を計算することでページIDが求められる)。さらにI/Oプログラム100は仮想ボリューム管理テーブルT200を参照することで、算出されたVVOL IDとページIDがマッピングされている論理ボリューム上の実ページ(LDEV ID(T204)とAddr.(T205))を特定する。 The outline of the conversion performed in S21 is as follows. First, the I / O program 100 specifies the VVOL ID and page ID (page ID of the virtual page) of the virtual volume to be accessed from the information included in the read request. The page ID can be calculated by dividing the LBA included in the read request by the page size (if the virtual page size is 42 MB, the page ID can be calculated by calculating LBA ÷ (42 [MB] ÷ 512). Desired). Further, the I / O program 100 refers to the virtual volume management table T200, so that the real page (LDEV ID (T204) and Addr. (T205)) on the logical volume to which the calculated VVOL ID and page ID are mapped. Is identified.
 続いてI/Oプログラム1001は、キャッシュ管理テーブルT300を参照することで、S21で特定されたLDEV ID(T204)とAddr.(T205)の領域のデータがキャッシュされているか判定する(S22)。データがキャッシュされている場合(S22:Yes)には、I/Oプログラム1001は、CM144からリード対象データを読み出して、ホスト2に返送する(S24)。 Subsequently, the I / O program 1001 refers to the cache management table T300, so that the LDEV ID (T204) and Addr. It is determined whether the data in the area (T205) is cached (S22). If the data is cached (S22: Yes), the I / O program 1001 reads the read target data from the CM 144 and returns it to the host 2 (S24).
 データがキャッシュされていない場合(S22:No)には、I/Oプログラム1001は、S21で特定されたLDEV ID(T204)とAddr.(T205)を開始アドレスとする、論理ボリューム上の領域からリード対象データを読み出して、ホスト2に返送する(S23)。論理ボリューム上の領域からデータを読み出す際、実際には論理ボリュームのアドレスからドライブ121のアドレスへの変換を行って、ドライブ121からデータを読み出す。これは公知の処理であるため、詳細な説明は省略する。 If the data is not cached (S22: No), the I / O program 1001 executes the LDEV ID (T204) and Addr. Read target data is read out from the area on the logical volume with (T205) as the start address and returned to the host 2 (S23). When data is read from the area on the logical volume, the data is actually read from the drive 121 by converting the logical volume address to the drive 121 address. Since this is a known process, a detailed description is omitted.
 またS23で、I/Oプログラム1001は読み出されたデータをCM144に格納する。読み出したデータをCM144に格納する際には、I/Oプログラム1001はキャッシュ管理テーブルT300の各行(レコード)の中から、LDEV ID(T302)とAddr.(T303)に無効値(NULL)が格納されている行を1つ選択する。そして選択された行のCache Addr.(T301)を開始アドレスとする1ページ分の領域に、読み出したデータを格納する。そして、選択された行のLDEV ID(T302)とAddr.(T303)に、リード対象データの読み出し元であるLDEVのLDEV ID及びアドレス(LBA)を格納する。 In S23, the I / O program 1001 stores the read data in the CM 144. When the read data is stored in the CM 144, the I / O program 1001 reads the LDEV ID (T302) and Addr. One row in which the invalid value (NULL) is stored in (T303) is selected. Then, Cache Addr. The read data is stored in an area for one page having (T301) as a start address. Then, the LDEV ID (T302) and Addr. In (T303), the LDEV ID and address (LBA) of the LDEV that is the read source of the read target data are stored.
 なお、キャッシュ管理テーブルT300の中に、LDEV ID(T302)とAddr.(T303)に無効値(NULL)が格納された行がない場合、CM144に未使用の領域がないことを意味する。その場合には、たとえばアクセス頻度が低い実ページのデータがキャッシュされている領域を選択し、その領域に、読み出されたデータを格納する。アクセス頻度が低い実ページのデータがキャッシュされている領域を選択する方法の一例として、後述するパージプログラム1004で行われる方法と同様の方法を用いるとよい。 In the cache management table T300, the LDEV ID (T302) and Addr. If there is no row in which the invalid value (NULL) is stored in (T303), it means that there is no unused area in the CM 144. In that case, for example, an area in which real page data with low access frequency is cached is selected, and the read data is stored in the area. As an example of a method for selecting an area where real page data with low access frequency is cached, a method similar to the method performed in the purge program 1004 described later may be used.
 最後にI/Oプログラム1001は、アクセス頻度テーブルT500の更新処理を行い(S25)、処理を終了する。S25の詳細は後述する。 Finally, the I / O program 1001 performs an update process of the access frequency table T500 (S25) and ends the process. Details of S25 will be described later.
 続いてホスト2から起動ボリュームに対するライト要求(ライトコマンド)を受信した時に行われる処理の流れを、図10を用いて説明する。この処理もI/Oプログラム1001が実行する。 Next, the flow of processing performed when a write request (write command) to the startup volume is received from the host 2 will be described with reference to FIG. This process is also executed by the I / O program 1001.
 リード要求と同様、ホスト2がストレージ装置1に対して発行するライト要求には、ライト対象の仮想ボリュームのVVOL ID(あるいは論理ユニット番号[LUN]等の、VVOL IDを導出可能な情報)と、ライト対象の仮想ボリューム内の領域を特定する情報である論理ブロックアドレス(LBA)が含まれている。I/Oプログラム1001がホスト2からライト要求を受信すると、これらの情報を、ライト対象の実ページを特定する情報(つまり仮想ボリューム管理テーブルT200の、LDEV ID(T204)とAddr.(T205)である)に変換する(S41)。この処理はS21と同じである。 Like the read request, the write request issued by the host 2 to the storage device 1 includes the VVOL ID of the write target virtual volume (or information that can be used to derive the VVOL ID such as the logical unit number [LUN]), A logical block address (LBA) that is information for specifying an area in the write target virtual volume is included. When the I / O program 1001 receives a write request from the host 2, these pieces of information are replaced with information for specifying the write-target real page (that is, the LDEV ID (T204) and Addr. (T205) of the virtual volume management table T200. (S41). This process is the same as S21.
 続いてI/Oプログラム1001は、S41で特定されたLDEV ID(T204)とAddr.(T205)の領域(実ページ)は、DIかGIかを判定する。これは仮想ボリューム管理テーブルT200の、属性(T206)を参照すればよい。 Subsequently, the I / O program 1001 receives the LDEV ID (T204) and Addr. It is determined whether the area (real page) of (T205) is DI or GI. This can be done by referring to the attribute (T206) of the virtual volume management table T200.
 実ページの属性(T206)が2、つまりDIであった場合(S42:Yes)には、I/Oプログラム1001は、ライト要求とともに受信したライトデータを、S31で特定した実ページに書き込む(S43)。実ページへのライトデータの書き込みの際、実際に公知のストレージ装置で行われている処理と同様に、論理ボリュームのアドレスをドライブ121のアドレスに変換する処理を行い、変換処理で特定されたドライブ121のアドレスに対してデータを書き込む。その後I/Oプログラム1001は、アクセス頻度テーブルT500の更新処理を行い(S44)、ホスト2にライト処理が完了した旨を通知して処理を終了する。S44の処理はS25と同じである。 If the real page attribute (T206) is 2, that is, DI (S42: Yes), the I / O program 1001 writes the write data received together with the write request to the real page specified in S31 (S43). ). When writing write data to a real page, the logical volume address is converted to the address of the drive 121 in the same way as the processing that is actually performed in a known storage device, and the drive specified by the conversion processing Data is written to address 121. Thereafter, the I / O program 1001 performs an update process of the access frequency table T500 (S44), notifies the host 2 that the write process is completed, and ends the process. The process of S44 is the same as S25.
 実ページの属性(T206)が2でなかった場合(S42:No)、つまりGIであった場合には、I/Oプログラム1001は、ライトデータを格納する領域(実ページ)を新たに確保する(S46)。具体的にはプール管理テーブルT400を参照することで、まだどの仮想ページにも割り当てられていない実ページを特定する(つまりVVOL ID(T406)とPage ID(T407)がNULLである行の、LDEV ID(T402)とAddr.(T405)を特定する)。 If the real page attribute (T206) is not 2 (S42: No), that is, if it is GI, the I / O program 1001 newly secures an area (real page) for storing write data. (S46). Specifically, by referring to the pool management table T400, an actual page that has not yet been assigned to any virtual page is specified (that is, the LDEV in the row where the VVOL ID (T406) and the Page ID (T407) are NULL. ID (T402) and Addr. (T405) are specified).
 まだどの仮想ページにも割り当てられていない実ページが複数ある場合、ライトデータを格納する実ページの決定方法は、任意の方法を用いて良い。たとえばI/Oプログラム1001は、アクセス性能が高い実ページを優先的に選択するようにしてもよい。その場合にはI/Oプログラム1001は、Disk Type(T403)がSSDである実ページを優先的に選択する。そしてDisk Type(T403)がSSDである実ページがない場合には、I/Oプログラム1001はDisk Type(T403)がSASである実ページを選択するとよい。 If there are a plurality of real pages that are not yet assigned to any virtual page, an arbitrary method may be used as a method for determining the real page for storing the write data. For example, the I / O program 1001 may preferentially select a real page with high access performance. In this case, the I / O program 1001 preferentially selects a real page whose Disk Type (T403) is SSD. If there is no actual page whose Disk Type (T403) is SSD, the I / O program 1001 may select an actual page whose Disk Type (T403) is SAS.
 S46の後、I/Oプログラム1001は、ライトデータをS46で確保した実ページに格納する(S47)。その後I/Oプログラム1001は、アクセス頻度情報の引き継ぎを行って(S48)、ホスト2にライト処理が完了した旨を通知して処理を終了する。 After S46, the I / O program 1001 stores the write data in the real page secured in S46 (S47). Thereafter, the I / O program 1001 takes over the access frequency information (S48), notifies the host 2 that the write process is completed, and ends the process.
 なお、S43やS47でライトデータを実ページに格納する処理が行われる時、直接実ページ(の存在するドライブ121)にデータを書き込まず、一旦ライトデータをCM144に格納してもよい。これにより、後でその実ページ(正確には実ページがマッピングされている仮想ページ)に対するリード要求を受け付けた時、CM144からデータを読み出すことができる。この場合、S22やS23と同様の処理を行う。つまりCM144内にライト対象の実ページのデータをキャッシュしている領域があるか検索し、あればその領域にライトデータを格納する。またCM144内にライト対象の実ページのデータをキャッシュしている領域がない場合には、未使用の領域を選択し、選択された領域にライトデータを格納する。そしてキャッシュ管理テーブルT300の更新を行う。 Note that when the process of storing the write data in the actual page is performed in S43 or S47, the write data may be temporarily stored in the CM 144 without directly writing the data in the actual page (the drive 121 in which it exists). Thereby, when a read request for the real page (accurately, the virtual page to which the real page is mapped) is received later, data can be read from the CM 144. In this case, processing similar to S22 and S23 is performed. In other words, the CM 144 is searched for an area where the data of the real page to be written is cached. If there is no area in the CM 144 that caches the data of the real page to be written, an unused area is selected, and write data is stored in the selected area. Then, the cache management table T300 is updated.
 また、上ではライトデータを実ページ(の存在するドライブ121)にデータを格納した(S47)後、ホスト2にライト処理が完了した旨を通知する処理例(いわゆるライトスルー処理の例)を説明したが、いわゆるライトバック方式が用いられてもよい。その場合、I/Oプログラム1001は、ライトデータをCM144に格納した時点で、ホスト2にライト処理が完了した旨を通知する。そして実ページの存在するドライブ121へのデータの格納は、ストレージ装置1が任意のタイミングで行えば良い。 Also, an example of processing (example of so-called write-through processing) for notifying the host 2 that write processing has been completed after storing the write data in the real page (the drive 121 in which the write data exists) (S47) will be described. However, a so-called write-back method may be used. In this case, the I / O program 1001 notifies the host 2 that the write process has been completed when the write data is stored in the CM 144. The storage apparatus 1 may store the data in the drive 121 where the real page exists at an arbitrary timing.
 S48で行われる、アクセス頻度情報の引き継ぎについて説明する。S48が実行される場合とは、S42における判定で、ライト対象領域がDIでない(GIである)と判定された場合である。ライトデータはS46で確保された実ページ(DI)に格納されるが、S46で確保された実ページのアクセス頻度情報を、S42で判定されたライト対象領域(GI)のアクセス頻度情報と同じにする。仮想ページに対するライト要求があると、ライトデータはGIと異なる領域(実ページ。DI)に格納されるものの、ライト要求を受け付ける前と後で、ライト対象の仮想ページに対するホスト2のアクセス傾向は変化する可能性は低い。つまり、ここで確保された実ページ(DI)に対するアクセス傾向は、これまで仮想ページに割り当てられていた実ページ(GI)に対するアクセス傾向と同じ可能性が高い。そのためS48では、I/Oプログラム1001はS46で確保された実ページのアクセス頻度情報を、S42で判定されたライト対象領域(GI)のアクセス頻度情報と同じにする。 The takeover of access frequency information performed in S48 will be described. The case where S48 is executed is a case where it is determined in S42 that the write target area is not DI (GI). The write data is stored in the real page (DI) secured in S46, but the access frequency information of the real page secured in S46 is the same as the access frequency information of the write target area (GI) determined in S42. To do. When there is a write request for a virtual page, the write data is stored in a different area (real page, DI) from the GI, but the access tendency of the host 2 with respect to the write target virtual page changes before and after the write request is received. The possibility of doing is low. That is, the access tendency to the real page (DI) secured here is highly likely to be the same as the access tendency to the real page (GI) that has been allocated to the virtual page. Therefore, in S48, the I / O program 1001 makes the access frequency information of the real page secured in S46 the same as the access frequency information of the write target area (GI) determined in S42.
 たとえば、S42で判定されたライト対象領域が、LDEV IDが0、Addr.が00000000の実ページ(GI)で、かつS46で確保された実ページのLDEV IDが1、Addr.が2a000000だった場合を想定する。その場合、S48ではI/Oプログラム1001は、アクセス頻度テーブルT500の行のうち、LDEV ID(T501)が0、Addr.(T502)が00000000の行の、T503-1~T503-7の値を、S46で確保された実ページのアクセス頻度にする。つまりこのT503-1~T503-7の値を、アクセス頻度テーブルT500の行の中の、LDEV ID(T501)が1、Addr.(T502)が2a000000の行にコピーする。 For example, if the write target area determined in S42 is LDEV ID 0, Addr. Is a real page (GI) of 00000000 and the LDEV ID of the real page secured in S46 is 1, Addr. Is assumed to be 2a000000. In this case, in S48, the I / O program 1001 determines that the LDEV ID (T501) is 0 in the row of the access frequency table T500, Addr. The value of T503-1 to T503-7 in the row where (T502) is 00000000 is set to the access frequency of the real page secured in S46. That is, the values of T503-1 to T503-7 are set so that the LDEV ID (T501) is 1 in the row of the access frequency table T500, Addr. (T502) is copied to the line of 2a000000.
 ただし、アクセス頻度情報の引き継ぎ方法は、上で説明した方法に限定されない。たとえばプール内に複数の起動ボリュームが定義されていた場合、S46で確保された実ページのアクセス頻度情報を、「ライト対象領域(GI)のアクセス頻度情報÷起動ボリューム数」に設定するようにしてもよい。 However, the method of inheriting access frequency information is not limited to the method described above. For example, when a plurality of activation volumes are defined in the pool, the access frequency information of the real page secured in S46 is set to “access frequency information of write target area (GI) ÷ number of activation volumes”. Also good.
 次に、S25(またはS44)で行われる、アクセス頻度テーブルT500の更新処理について、図11を用いて説明する。S25(またはS44)では、I/Oプログラム1001がアクセス頻度管理プログラム1003を呼び出してアクセス頻度管理プログラム1003を実行する。それによって、アクセス頻度テーブルT500の更新処理が行われる。また、アクセス頻度管理プログラム1003は、ストレージ装置1の負荷が低い時(ホスト2からのI/O要求が一定時間以上なかった時など)にも行われる。以下、断りのない限り、S25(またはS44)でアクセス頻度管理プログラム1003が呼び出された場合の処理の流れを説明する。 Next, the update processing of the access frequency table T500 performed in S25 (or S44) will be described with reference to FIG. In S25 (or S44), the I / O program 1001 calls the access frequency management program 1003 and executes the access frequency management program 1003. Thereby, update processing of the access frequency table T500 is performed. The access frequency management program 1003 is also executed when the load on the storage device 1 is low (for example, when there is no I / O request from the host 2 for a certain period of time). Hereinafter, unless otherwise specified, the flow of processing when the access frequency management program 1003 is called in S25 (or S44) will be described.
 アクセス頻度管理プログラム1003はまず、アクセス頻度テーブルT500の更新を行う(S61)。具体的にはアクセス頻度管理プログラム1003は、アクセス対象の実ページの現在日時(S61の実行時点の日時)のアクセス頻度(T503-1~T503-7に格納されている情報のうち、S61の実行時点の曜日(及び時刻)に該当する情報)に1を加算する。 The access frequency management program 1003 first updates the access frequency table T500 (S61). Specifically, the access frequency management program 1003 executes the execution of S61 among the information stored in the access frequency (T503-1 to T503-7) of the current date and time (the date and time when S61 is executed) of the real page to be accessed. 1 is added to the information corresponding to the current day of the week (and time).
 続いてアクセス頻度管理プログラム1003は、対象行のアクセス頻度情報を、I/Oレベルに変換し、変換された情報をアクセスパターンテーブルT550の先頭グループと比較する(S62)。比較方法の一例を、図18を用いて説明する。アクセスパターンテーブルT550には、各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルが格納されている。同様に対象行のアクセス頻度情報をI/Oレベルに変換したものについても、各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルが算出されている(図18 500’)。 Subsequently, the access frequency management program 1003 converts the access frequency information of the target row to the I / O level, and compares the converted information with the top group of the access pattern table T550 (S62). An example of the comparison method will be described with reference to FIG. The access pattern table T550 stores the I / O level of each day of the week (0-1 o'clock, 1 o'clock-2 o'clock,..., 23: 00-0 o'clock). Similarly, for the converted access frequency information of the target row to the I / O level, the I / O at each time of day of the week (0-1 o'clock, 1 o'clock-2 o'clock, ..., 23 o'clock-0: 00) The O level is calculated (FIG. 18, 500 ′).
 アクセスパターンテーブルT550の先頭グループ(つまり、アクセスパターンT552がAの行)と、対象行のアクセス頻度情報をI/Oレベルに変換したもの(500’)の比較方法の一例を、図18を用いて説明する。S62の比較では、対象行の、各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルと、アクセスパターンテーブルの先頭グループに格納されている各曜日の各時刻(0~1時、1時~2時、...、23時~0時)のI/Oレベルの差の絶対値を計算し、さらに計算された各絶対値の総和を計算する。 FIG. 18 shows an example of a comparison method between the head group of the access pattern table T550 (that is, the row where the access pattern T552 is A) and the access frequency information of the target row converted to the I / O level (500 ′). I will explain. In the comparison of S62, the I / O level at each time of each day of the week (0-1 o'clock, 1 o'clock to 2 o'clock, ..., 23 o'clock to 0 o'clock) in the target row and the top group of the access pattern table Calculate the absolute value of the difference in I / O level at each time of day of the week stored (0-1 o'clock, 1 o'clock-2 o'clock, ..., 23 o'clock-0 o'clock) Calculate the sum of absolute values.
 図18の例では、アクセスパターンテーブルT550の先頭グループには、月曜日のI/Oレベル変動(アクセスパターン)として、0,0,3,…,5,3,5が登録されている。一方、500’(対象行のアクセス頻度情報をI/Oレベルに変換したもの)の月曜日のアクセスパターンは、0,0,2,…,3,5,3である。この場合、各時刻のI/Oレベルの絶対値を計算し、その計算された各絶対値の総和を計算する。つまり、
|0-0|+|0-0|+|2-3|+…+|3-5|+|5-3|+|3-5|
を算出する。これを火曜日~日曜日のI/Oレベルについても同様に計算する。そして各曜日について算出された総和をすべて足し合わせた結果を計算する(月曜日の総和+火曜日の総和+...+日曜日の総和、を算出する)。以下、この計算によって算出された値を、「類似度」と呼ぶ。なお、類似度の算出方法は上で説明した方法に限定されない。これ以外の方法を用いて類似度を算出してもよい。
In the example of FIG. 18, 0, 0, 3,..., 5, 3, and 5 are registered as the I / O level fluctuation (access pattern) on Monday in the top group of the access pattern table T550. On the other hand, Monday's access pattern of 500 ′ (the access frequency information of the target row is converted to the I / O level) is 0, 0, 2,. In this case, the absolute value of the I / O level at each time is calculated, and the total sum of the calculated absolute values is calculated. That means
| 0-0 | + | 0-0 | + | 2-3 | + ... + | 3-5 | + | 5-3 | + | 3-5 |
Is calculated. This is similarly calculated for the I / O levels from Tuesday to Sunday. Then, the result of adding all the sums calculated for each day of the week is calculated (the sum of Mondays + the sum of Tuesdays + ... + the sum of Sundays is calculated). Hereinafter, the value calculated by this calculation is referred to as “similarity”. Note that the method of calculating the similarity is not limited to the method described above. The degree of similarity may be calculated using a method other than this.
 計算された類似度が比較的小さい場合(ある閾値未満の場合)、対象行のI/Oレベルの変動パターンは、アクセスパターンテーブルT550の先頭グループと類似していると判断される。その場合(S63:Yes)対象行の実ページのアクセスパターン(T408)に先頭グループのグループ識別子を格納し(S65)、処理を終了する。たとえば先頭グループの識別子がAの場合、アクセスパターン(T408)にAを格納する。 When the calculated similarity is relatively small (less than a certain threshold value), it is determined that the fluctuation pattern of the I / O level of the target row is similar to the head group of the access pattern table T550. In that case (S63: Yes), the group identifier of the first group is stored in the access pattern (T408) of the real page of the target row (S65), and the process is terminated. For example, when the identifier of the head group is A, A is stored in the access pattern (T408).
 計算された類似度がある閾値以上の場合、対象行のI/Oレベルの変動パターンは、アクセスパターンテーブルT550の先頭グループと類似していないといえる。その場合にはアクセスパターンテーブルT550に登録されている全てのアクセスパターンとの比較が完了したか判定する(S67)。まだアクセスパターンテーブルT550に登録されているアクセスパターンのうち、まだ比較を行っていないアクセスパターンがある場合には(S67:No)、まだ比較を行っていないアクセスパターンを1つ選択し、S62と同様に、変換された情報との比較を行う(S66)。アクセスパターンテーブルT550に登録されている全てのアクセスパターンとの比較が完了した場合(S67:Yes)、対象行のアクセスパターンは、アクセスパターンテーブルT550に登録されているいずれのアクセスパターンとも類似していないといえる。そのため対象行のアクセスパターンを新たなアクセスパターンとして、アクセスパターンテーブルT550に登録する(S68)。 If the calculated similarity is equal to or greater than a certain threshold, it can be said that the I / O level variation pattern of the target row is not similar to the top group of the access pattern table T550. In that case, it is determined whether comparison with all access patterns registered in the access pattern table T550 is completed (S67). If there is an access pattern not yet compared among the access patterns registered in the access pattern table T550 (S67: No), one access pattern that has not been compared is selected, and S62 and Similarly, comparison with the converted information is performed (S66). When the comparison with all access patterns registered in the access pattern table T550 is completed (S67: Yes), the access pattern of the target row is similar to any access pattern registered in the access pattern table T550. I can say no. Therefore, the access pattern of the target row is registered in the access pattern table T550 as a new access pattern (S68).
 なお、この処理は様々な変形例が考えられる。たとえばS25(またはS44)においてI/Oプログラム1001がアクセス頻度管理プログラム1003を呼び出した場合には、S61のみを実行し、S62以降の処理は、定期的に、たとえばたとえば毎時0分などの所定の時刻に実行されるようにしてもよい。またS62以降の処理は、ストレージ装置1の負荷が低い時にのみ行われるようにしてもよい。 It should be noted that this process can be modified in various ways. For example, when the I / O program 1001 calls the access frequency management program 1003 in S25 (or S44), only S61 is executed, and the processing after S62 is performed periodically, for example, a predetermined value such as 0 minutes per hour. It may be executed at the time. Further, the processing after S62 may be performed only when the load on the storage apparatus 1 is low.
 続いて、起動前処理について説明する。本実施例に係るストレージ装置1で定義される起動ボリュームは、外部からの指示により、あらかじめ実ページ(つまり論理ボリュームを構成するドライブ121の記憶領域)に格納されているデータのうち、アクセス頻度が高いと予想されるものを、キャッシュさせておくことができる。これにより、ホスト2がアクセス要求をストレージ装置1に発行する前に、アクセス頻度の高いデータがキャッシュに格納されるため、アクセス性能が向上する。たとえば起動ボリュームにホスト2が使用するOSのブートイメージが格納されている場合、ホスト2の起動速度が向上することが見込まれる。ただしホスト2の起動前にこの処理を行わなければ、キャッシュの効果が得られにくい。そのため計算機システムのユーザ1は管理端末13を用いて、起動対象のホスト2が使用する起動ボリュームのデータをキャッシュさせるための指示を、ストレージ装置1に発行する。ストレージ装置1はこの指示を受け付けると、起動前処理を開始する。以下では、ドライブ121から読み出したデータをCM144に格納する処理のことを、「ステージング」と呼ぶ。 Next, start-up processing will be described. The startup volume defined in the storage apparatus 1 according to the present embodiment has an access frequency of data stored in advance in a real page (that is, the storage area of the drive 121 constituting the logical volume) in accordance with an instruction from the outside. What is expected to be expensive can be cached. As a result, before the host 2 issues an access request to the storage apparatus 1, data with high access frequency is stored in the cache, so that access performance is improved. For example, when the boot volume of the OS used by the host 2 is stored in the boot volume, the boot speed of the host 2 is expected to improve. However, if this process is not performed before the host 2 is activated, it is difficult to obtain a cache effect. Therefore, the user 1 of the computer system uses the management terminal 13 to issue an instruction to the storage apparatus 1 for caching the data of the boot volume used by the boot target host 2. When the storage apparatus 1 accepts this instruction, it starts pre-boot processing. Hereinafter, the process of storing the data read from the drive 121 in the CM 144 is referred to as “staging”.
 起動前処理は、起動前プログラム1002がMP141によって実行されることで、行われる。なお、起動前処理はプールごとに行われる。ただし、起動前処理の対象となるプールは、起動ボリュームが定義されているプールのみである。ユーザが管理端末13を用いて起動前プログラム1002に対して起動前処理の対象となるプールのプールIDを通知することで、起動前プログラム1002は指定されたプールに格納されているデータの中から、アクセス頻度に基づいてキャッシュ対象のデータを選択する。 The pre-startup process is performed by the pre-startup program 1002 being executed by the MP 141. Note that pre-startup processing is performed for each pool. However, the pool that is the target of the pre-boot process is only the pool in which the boot volume is defined. When the user notifies the pre-boot program 1002 of the pool ID of the pool that is the target of the pre-boot process using the management terminal 13, the pre-boot program 1002 is selected from the data stored in the designated pool. The data to be cached is selected based on the access frequency.
 また、別の実施形態として、プールのプールIDを指定することに代えて、起動ボリュームの識別子(VVOL ID)を指定することで、その起動ボリュームの仮想ページにマッピングされている実ページのデータを、キャッシュさせるようにしてもよい。さらに別の実施形態として、ユーザから起動プログラム1002の開始が指示されると、全てのプール(起動ボリュームが定義されているプール)について起動前処理が行われるようにしてもよい。 Further, as another embodiment, instead of specifying the pool ID of the pool, the real page data mapped to the virtual page of the startup volume can be obtained by specifying the identifier (VVOL ID) of the startup volume. You may make it cache. As yet another embodiment, when the start of the activation program 1002 is instructed by the user, pre-activation processing may be performed for all the pools (pools for which activation volumes are defined).
 以下、起動前プログラム1002に対して、プールIDが指定される場合を例にとって説明する。起動前プログラム1002で行われる処理の基本的な考え方は、以下の通りである。GIは通常、複数の起動ボリュームの仮想ページにマッピングされている(複数の起動ボリュームに共有されている)ため、DIよりもアクセス頻度が高いことが期待される。そのため起動前プログラム1002は、GIをDIよりも優先的にステージングする。起動前プログラム1002は最初にGIのステージングを行い、その後DIのステージングを行う。DIのステージングの際には、起動前プログラム1002はアクセス頻度の高いDIから優先的にステージングする。 Hereinafter, a case where a pool ID is designated for the pre-startup program 1002 will be described as an example. The basic concept of processing performed by the pre-startup program 1002 is as follows. Since the GI is normally mapped to virtual pages of a plurality of startup volumes (shared with a plurality of startup volumes), it is expected that the access frequency is higher than that of DI. Therefore, the pre-start program 1002 stages the GI preferentially over the DI. The pre-startup program 1002 first performs GI staging, and then performs DI staging. When DI is staged, the pre-start program 1002 preferentially staged from the DI with high access frequency.
 図8に起動前プログラム1002が実行する処理の流れが示されている。最初に起動前プログラム1002は、プール管理テーブルT400とキャッシュ管理テーブルT300を参照することにより、通知されたプールに含まれているGIのうち、データがキャッシュされていないGIがあるか調べる(S1)。データのキャッシュされていないGIがある場合(S1:Yes)、そのGIのデータをドライブ121からCM144に読み出す(S2)。 FIG. 8 shows the flow of processing executed by the pre-startup program 1002. First, the pre-start program 1002 refers to the pool management table T400 and the cache management table T300 to check whether there is a GI for which data is not cached among the GIs included in the notified pool (S1). . If there is a GI for which data is not cached (S1: Yes), the GI data is read from the drive 121 to the CM 144 (S2).
 続いて起動前プログラム1002は、通知されたプールに含まれているDIのうち、アクセス頻度の最も高いDIを選択する(S3)。アクセス頻度の最も高いDIの選択方法は、アクセス頻度テーブルT500を参照することで、各実ページの現在時刻(S3を実行している時の時刻)のアクセス頻度を取得する。そして通知されたプールに含まれているDI(つまり実ページ)のうち、アクセス頻度の最も高い実ページを選択すればよい。あるいは現在のアクセス頻度を参照することに代えて、アクセス頻度テーブルT500に格納されている情報から平均アクセス頻度を算出し、平均アクセス頻度の最も高い実ページ(DI)を選択してもよい。 Subsequently, the pre-startup program 1002 selects the DI with the highest access frequency among the DIs included in the notified pool (S3). The method of selecting the DI having the highest access frequency refers to the access frequency table T500, and acquires the access frequency at the current time (time when S3 is executed) of each real page. Then, a real page having the highest access frequency may be selected from DIs (that is, real pages) included in the notified pool. Alternatively, instead of referring to the current access frequency, an average access frequency may be calculated from information stored in the access frequency table T500, and a real page (DI) having the highest average access frequency may be selected.
 S3の後、起動前プログラム1002はS3で選択されたDIに格納されたデータはキャッシュされているか判定する(S4)。この判定はキャッシュ管理テーブルT300を参照すればよい。データがキャッシュされていない場合には(S4:No)、ドライブ121からそのデータをステージングする(S5)。データがキャッシュされている場合には(S4:Yes)、起動前プログラム1002はS5の処理を実行しない。 After S3, the pre-startup program 1002 determines whether the data stored in the DI selected in S3 is cached (S4). This determination may be made by referring to the cache management table T300. If the data is not cached (S4: No), the data is staged from the drive 121 (S5). If the data is cached (S4: Yes), the pre-startup program 1002 does not execute the process of S5.
 続いて起動プログラム1002は、CM144に空き容量があるか判定する(S6)。起動プログラム1002は、キャッシュ管理テーブルT300(T300-1)のLDEV ID(T302)とAddr.(T303)がNULLである行があるか確認することで、CM144に空き容量があるか判定できる。CM144に空き容量がない場合(S6:No)、起動プログラム1002は処理を終了する。CM144に空き容量がある場合(S6:Yes)、起動プログラム1002は次にアクセス頻度の高いDIを選択し(S7)、S4~S6の処理を繰り返す。これにより、CM144に充分な空き容量がある場合にはすべてのDI(に格納されているデータ)がステージングされる。またCM144に充分な空き容量がない場合には、DIのうちアクセス頻度の高いデータから順にステージングされる。 Subsequently, the activation program 1002 determines whether the CM 144 has a free space (S6). The activation program 1002 is stored in the cache management table T300 (T300-1) with the LDEV ID (T302) and Addr. By checking whether there is a row in which (T303) is NULL, it is possible to determine whether the CM 144 has free space. When there is no free space in the CM 144 (S6: No), the activation program 1002 ends the process. If the CM 144 has free space (S6: Yes), the activation program 1002 selects the DI with the next highest access frequency (S7), and repeats the processing of S4 to S6. As a result, when there is a sufficient free space in the CM 144, all DIs (data stored in) are staged. If there is not enough free space in the CM 144, the data is staged in order from the most frequently accessed data in the DI.
 上では、起動前プログラム1002に対して、プールIDが指定される場合を例にとって説明したが、起動前プログラム1002に対して、起動ボリューム(VVOL ID)が指定された場合も、上と同じような処理を行ってもよい。具体的には指定された起動ボリュームの所属するプール(プールID)を特定し、特定されたプールIDに基づいて、上のS1~S7の処理を行えば良い。また別の実施形態として、指定された起動ボリューム(の仮想ページ)にマッピングされているGIとDIのみを選択し、この選択されたGIとDIに対してのみ、上のS1~S7の処理を行うようにしても良い。 In the above description, the case where the pool ID is specified for the pre-start program 1002 has been described as an example. However, the case where the start volume (VVOL ID) is specified for the pre-start program 1002 is the same as above. May be performed. Specifically, the pool (pool ID) to which the designated startup volume belongs is specified, and the above processes S1 to S7 may be performed based on the specified pool ID. As another embodiment, only the GI and DI mapped to the designated startup volume (virtual page thereof) are selected, and the processes of S1 to S7 above are performed only for the selected GI and DI. You may make it do.
 続いてパージプログラム1004が行う処理について説明する。本実施例に係るストレージ装置1では、アクセスされない実ページについては、キャッシュしないようにする。もしアクセスされない実ページの中で、キャッシュされている実ページがあった場合、CM144からそのキャッシュデータを削除する。この処理を「パージ」と呼び、パージプログラム1004がこの処理を実行する。 Next, processing performed by the purge program 1004 will be described. In the storage apparatus 1 according to the present embodiment, real pages that are not accessed are not cached. If there is a cached real page among the real pages that are not accessed, the cache data is deleted from the CM 144. This process is called “purge”, and the purge program 1004 executes this process.
 パージプログラム1004も起動前処理と同様、プールごとに行われる。パージプログラム1004は、ユーザが管理端末13を用いてパージの指示を発行することで開始される。あるいは、ストレージ装置1が定期的にパージプログラム1004を実行するようにしてもよい。また、I/Oプログラム1001がホスト2からリード要求のあったデータをドライブ121(実ページ)からCM144に読み出す際、あるいはI/Oプログラム1001がホスト2から受信したライトデータを一旦CM144に格納する際、CM144に未使用の領域がなかった場合に、未使用の領域を確保するためにパージプログラム1004が実行されてもよい。 The purge program 1004 is also performed for each pool as in the pre-startup process. The purge program 1004 is started when the user issues a purge instruction using the management terminal 13. Alternatively, the storage apparatus 1 may periodically execute the purge program 1004. Further, when the I / O program 1001 reads data requested by the host 2 from the drive 121 (real page) to the CM 144, or the write data received by the I / O program 1001 from the host 2 is temporarily stored in the CM 144. At this time, if there is no unused area in the CM 144, the purge program 1004 may be executed to secure the unused area.
 図12を用いて、パージプログラム1004で実行される処理の流れを説明する。以下では、特定の1のプールに対する処理の流れについて説明する。パージプログラム1004が開始されると、パージプログラム1004は、仮想ボリューム管理テーブルT200、アクセス頻度テーブルT500を参照することにより、アクセス頻度が0の実ページを特定する(S101)。なお、ここで「アクセス頻度が0の実ページ」とは、アクセス頻度テーブルT500のT503-1~T503-7に格納されているアクセス頻度の値がすべて0の実ページを意味する。アクセス頻度が0の実ページがない場合には、パージプログラム1004は処理を終了する。 The flow of processing executed by the purge program 1004 will be described with reference to FIG. Hereinafter, the flow of processing for a specific one pool will be described. When the purge program 1004 is started, the purge program 1004 refers to the virtual volume management table T200 and the access frequency table T500 to identify a real page with an access frequency of 0 (S101). Here, “real page with access frequency 0” means a real page with all access frequency values stored in T503-1 to T503-7 of the access frequency table T500. If there is no real page with an access frequency of 0, the purge program 1004 ends the process.
 アクセス頻度が0の実ページがあった場合、CM144の使用量が所定の閾値以上であるか否か判定する(S103)。CM144の使用量は、キャッシュ管理テーブルT300(T300-1)のLDEV ID(T302)とAddr.(T303)がNULLでない行を計数することで求められる。CM144の使用量が所定の閾値以上の場合(S103:Yes)、アクセス頻度が0の全ての実ページについて、その実ページのデータがCM144にキャッシュされているか確認し、キャッシュされている場合には、キャッシュ管理テーブルT300から、アクセス頻度が0の実ページについての情報(具体的には、アクセス頻度が0の実ページのLDEV ID(T302)とAddr.(T303))をNULLにする(S104)。これにより、キャッシュされていたデータが実質的にCM144から削除される。この処理を「パージ」と呼ぶ。なお、パージ時にそのデータ(CM144に格納されているデータ)がまだドライブ121に未書き込みであった場合には、ドライブ121にそのデータを書き込む。 If there is a real page with an access frequency of 0, it is determined whether the usage amount of the CM 144 is equal to or greater than a predetermined threshold (S103). The usage amount of the CM 144 is the LDEV ID (T302) and Addr. Of the cache management table T300 (T300-1). (T303) is obtained by counting rows that are not NULL. When the usage amount of the CM 144 is equal to or greater than a predetermined threshold (S103: Yes), it is checked whether the data of the real page is cached in the CM 144 for all the real pages having an access frequency of 0. From the cache management table T300, the information about the real page with the access frequency of 0 (specifically, the LDEV ID (T302) and Addr. (T303) of the real page with the access frequency of 0) is set to NULL (S104). As a result, the cached data is substantially deleted from the CM 144. This process is called “purge”. If the data (data stored in the CM 144) is not yet written in the drive 121 at the time of purging, the data is written in the drive 121.
 また、CM144の使用量が所定の閾値以上でない場合(S103:No)には、何もせずパージプログラム1004は処理を終了する。ただし別の実施形態として、S103の判定を行わず、アクセス頻度が0のデータは一律、CM144から削除(パージ)するようにしてもよい。 If the usage amount of the CM 144 is not equal to or greater than the predetermined threshold (S103: No), the purge program 1004 ends the process without doing anything. However, as another embodiment, the determination of S103 may not be performed, and data with an access frequency of 0 may be uniformly deleted (purged) from the CM 144.
 なお、S101において、アクセス頻度が0の実ページを探索する際、上で説明した以外の方法を用いることもできる。たとえばまず、アクセスパターンテーブルT550を参照することで、T553-1~T553-7に格納されているI/Oレベルがすべて0のアクセスパターンがあるか判定する。I/Oレベルがすべて0のアクセスパターンがある場合(仮にそのアクセスパターン(T552)がXであった場合を想定する)、プール管理テーブルT400の中で、アクセスパターン(T408)がXの実ページを抽出すればよい。 In S101, when searching for a real page with an access frequency of 0, methods other than those described above can be used. For example, by first referring to the access pattern table T550, it is determined whether there is an access pattern in which the I / O levels stored in T553-1 to T553-7 are all 0. When there is an access pattern whose I / O levels are all 0 (assuming that the access pattern (T552) is X), in the pool management table T400, the actual page whose access pattern (T408) is X Should be extracted.
 また、アクセス頻度テーブルT500のT503-1~T503-7に格納されているアクセス頻度の値がすべて0の実ページを探索する代わりに、現時点(パージプログラム1004が開始された時点)アクセス頻度の値が0、あるいは現時点から所定時間以内(たとえば5時間以内)のアクセス頻度の値が0の実ページを探索してもよい。あるいは、アクセス頻度の値が0の実ページを探索する代わりに、T503-1~T503-7に格納されているアクセス頻度の値の合計値が、ある閾値以下の実ページを探索してもよい。 Also, instead of searching for a real page with access frequency values all zero stored in T503-1 to T503-7 of the access frequency table T500, the current access frequency value (when the purge program 1004 is started) May be searched, or a real page having an access frequency value of 0 within a predetermined time (for example, within 5 hours) from the present time may be searched. Alternatively, instead of searching for a real page with an access frequency value of 0, a search may be made for a real page whose total value of access frequency values stored in T503-1 to T503-7 is equal to or less than a certain threshold. .
 続いて重複排除プログラム1005が行う処理について説明する。本実施例に係るストレージ装置1では、1つのプールに所属する複数の起動ボリュームの各仮想ページは、初期状態では全てGIにマッピングされている。起動ボリュームの仮想ページに更新が行われると、その仮想ページのマッピングは、更新されたデータを格納するDIにマッピングされる。 Next, processing performed by the deduplication program 1005 will be described. In the storage apparatus 1 according to the present embodiment, each virtual page of a plurality of startup volumes belonging to one pool is mapped to the GI in the initial state. When the virtual page of the startup volume is updated, the mapping of the virtual page is mapped to the DI that stores the updated data.
 もし、全ての起動ボリュームの同じ仮想ページ(ページIDが同じ仮想ページ)に同一データが格納されていた場合、そのデータをGIに移し、各仮想ページがGIにマッピングされるようにマッピングを変更する(初期状態に戻す)ことで、重複したデータが記憶領域に複数存在する状態を解消することができ、結果として記憶領域を節約することができる。重複排除プログラム1005はその処理を行う。 If the same data is stored in the same virtual page (virtual page with the same page ID) of all the startup volumes, the data is transferred to the GI, and the mapping is changed so that each virtual page is mapped to the GI. By (returning to the initial state), it is possible to eliminate a state in which a plurality of duplicate data exists in the storage area, and as a result, it is possible to save the storage area. The deduplication program 1005 performs this process.
 重複排除プログラム1005は、ユーザが管理端末13を用いて重複排除の指示を発行することで開始される。あるいは、ストレージ装置1が定期的に重複排除プログラム1005を実行するようにしてもよい。 The deduplication program 1005 is started when the user issues a deduplication instruction using the management terminal 13. Alternatively, the storage apparatus 1 may periodically execute the deduplication program 1005.
 図13を用いて、重複排除プログラム1005で実行される処理の流れを説明する。この処理は、プール(起動ボリュームが属するプール)ごとに実行される。そのためプールがn個ある場合、図13の処理がn回行われる。以下、プールIDが0のプールを対象として、重複排除プログラム1005が実行される場合について説明する。 The flow of processing executed by the deduplication program 1005 will be described with reference to FIG. This process is executed for each pool (pool to which the startup volume belongs). Therefore, when there are n pools, the process of FIG. 13 is performed n times. Hereinafter, a case where the deduplication program 1005 is executed for a pool with a pool ID of 0 will be described.
 重複排除プログラム1005が開始されると、重複排除プログラム1005は、プール#0に属する起動ボリュームの、各仮想ページの内容をチェックする。具体的には、プールにVVOL IDが0~m(m>0)の起動ボリュームが存在した場合、各起動ボリュームの先頭仮想ページから終端仮想ページまでを読み出して比較する。そして全起動ボリュームにわたって内容が同一である仮想ページが存在するかチェックする(S151)。 When the deduplication program 1005 is started, the deduplication program 1005 checks the contents of each virtual page of the startup volume belonging to the pool # 0. Specifically, when a startup volume with a VVOL ID of 0 to m (m> 0) exists in the pool, the first virtual page to the last virtual page of each startup volume are read and compared. Then, it is checked whether or not there is a virtual page having the same content across all the activation volumes (S151).
 たとえば全起動ボリュームのページ#k(kは0以上の整数値)の内容が同一である場合(正確には、全起動ボリュームのページ#kにマッピングされている実ページに格納されているデータが、全て同一である場合)、重複排除プログラム1005はページ#kに格納されているデータをGIに移動する(S152)。具体的には、重複排除プログラム1005はGIマッピングテーブルT250を参照することで、プールID(T251)が0でページID(T252)がkの行を特定する。そして当該行のLDEV ID(T253)とAddr.(T254)で特定される実ページ(この実ページはGIである)に、現在の起動ボリュームのページ#kに格納されているデータを格納する。ただし、全起動ボリュームのページ#kがいずれもGIである場合には、重複排除プログラム1005はS152の処理を行わない。 For example, when the contents of page #k (k is an integer value of 0 or more) of all boot volumes are the same (exactly, the data stored in the actual page mapped to page #k of all boot volumes is If all are the same), the deduplication program 1005 moves the data stored in page #k to GI (S152). Specifically, the deduplication program 1005 refers to the GI mapping table T250 to identify a row where the pool ID (T251) is 0 and the page ID (T252) is k. The LDEV ID (T253) and Addr. The data stored in page #k of the current startup volume is stored in the real page (this real page is GI) specified in (T254). However, if all the page #k of all startup volumes are GI, the deduplication program 1005 does not perform the process of S152.
 続いて重複排除プログラム1005は、仮想ボリューム管理テーブルT200とプール管理テーブルT400を更新する。全起動ボリュームのページ#k(kは0以上の整数値)の内容が同一である場合について、具体例を説明する。重複排除プログラム1005は、プールID(T203)が0でページID(T202)がkの行すべてについて、LDEV ID(T204)とAddr.(T205)の値を、S152で特定されたGIのLDEV IDとAddr.に変更する(S152)。また属性T206は1(GI)に変更される。これによりプール#0の全起動ボリュームのページ#kは、GIにマッピングされる。 Subsequently, the deduplication program 1005 updates the virtual volume management table T200 and the pool management table T400. A specific example will be described in the case where the contents of page #k (k is an integer value of 0 or more) of all the startup volumes are the same. The deduplication program 1005 uses the LDEV ID (T204) and Addr. For all the rows where the pool ID (T203) is 0 and the page ID (T202) is k. The value of (T205) is changed from the LDEV ID and Addr. (S152). The attribute T206 is changed to 1 (GI). As a result, page #k of all startup volumes in pool # 0 is mapped to GI.
 一方、これまで(S152が実行されるまで)、各起動ボリュームの仮想ページ(ページ#k)にマッピングされていた実ページ(DI)は不要になる(マッピングを解除して良い)。重複排除プログラム1005は、プール管理テーブルT400の行のうち、プールID(T401)が0でPage ID(T407)がkの行全てについて(ただし属性T404が1の行は除く)、VVOL ID(T406)とPage ID(T407)に無効値(NULL)を格納する(S153)。これにより、ページ#kにマッピングされていた実ページのマッピングが解除される。なお、VVOL ID(T406)とPage ID(T407)に無効値(NULL)を格納した行のLDEV ID(T402)とAddr.(T405)の情報は、次のS154で用いられる。そのため、重複排除プログラム1005はS154が終了するまで、VVOL ID(T406)とPage ID(T407)に無効値(NULL)を格納した行のLDEV ID(T402)とAddr.(T405)の情報を記憶しておく。 On the other hand, until now (until S152 is executed), the real page (DI) mapped to the virtual page (page #k) of each startup volume is no longer necessary (mapping may be released). The deduplication program 1005 uses the VVOL ID (T406) for all the rows in the pool management table T400 where the pool ID (T401) is 0 and the Page ID (T407) is k (except for the row where the attribute T404 is 1). ) And an invalid value (NULL) are stored in Page ID (T407) (S153). As a result, the mapping of the real page mapped to page #k is released. Note that the LDEV ID (T402) and Addr. Of the row in which the invalid value (NULL) is stored in the VVOL ID (T406) and the Page ID (T407). The information of (T405) is used in the next S154. Therefore, the deduplication program 1005 keeps the LDEV ID (T402) and Addr. Of the row in which the invalid value (NULL) is stored in the VVOL ID (T406) and the Page ID (T407) until S154 ends. The information of (T405) is stored.
 最後に重複排除プログラム1005は、アクセス頻度テーブルT500の更新を行い(S154)、処理を終了する。まず重複排除プログラム1005は、アクセス頻度テーブルT500の行のうち、LDEV ID(T501)とAddr.502)が、S153でマッピングの解除された実ページと等しい行をすべて特定し、各行のアクセス頻度情報(T503-1~T503-7)について、各曜日の各時刻(0~1時、1時~2時、...、23時~0時)についてアクセス頻度の和を計算する。以下ではこのようにして算出された計算結果を、重複排除前アクセス頻度情報と呼ぶ。 Finally, the deduplication program 1005 updates the access frequency table T500 (S154) and ends the process. First, the deduplication program 1005 reads the LDEV ID (T501) and Addr. 502) identifies all the lines that are the same as the real page for which mapping was canceled in S153, and the access frequency information (T503-1 to T503-7) of each line is set to each time of day of the week (0 to 1:00, 1:00 ˜2 o'clock,..., 23:00 to 0 o'clock) are calculated. Hereinafter, the calculation result calculated in this way is referred to as access frequency information before deduplication.
 続いて重複排除プログラム1005は、アクセス頻度テーブルT500の行のうち、LDEV ID(T501)とAddr.(T502)が、S152で特定されたGIのLDEV IDとAddr.に等しい行を特定する。そしてその行のアクセス頻度情報(T503-1~T503-7)に、重複排除前アクセス頻度情報を代入する。つまりGIのアクセス頻度情報は、重複排除前の各実ページのアクセス頻度情報の和に等しくされる。また、別の実施形態として、重複排除前の各実ページのアクセス頻度情報の平均値をGIのアクセス頻度情報として設定するようにしてもよい。 Subsequently, the deduplication program 1005 reads the LDEV ID (T501) and Addr. (T502) is the GI LDEV ID and Addr. Identify rows equal to. Then, the access frequency information before deduplication is substituted into the access frequency information (T503-1 to T503-7) of the row. That is, the GI access frequency information is made equal to the sum of the access frequency information of each real page before deduplication. As another embodiment, an average value of access frequency information of each real page before deduplication may be set as GI access frequency information.
 次にステージングプログラム1007の処理を説明する。ステージングプログラム1007は、アクセス頻度の高いアクセスパターンに属する実ページ(DI)のステージングを行う。ステージングプログラム1007は、毎時0分あるいはその数分前に起動される。あるいはユーザが管理端末13を用いてステージングの指示を発行したときに、ステージングプログラム1007が開始される。 Next, processing of the staging program 1007 will be described. The staging program 1007 performs staging of real pages (DI) belonging to an access pattern having a high access frequency. The staging program 1007 is started at 0 minutes or several minutes before the hour. Alternatively, when the user issues a staging instruction using the management terminal 13, the staging program 1007 is started.
 図15にステージングプログラム1007の処理フローが示されている。ステージングプログラム1007は最初に、アクセスパターンテーブルT550を参照し、その中から現在の時刻(ステージングプログラム1007が開始された時刻)にアクセス頻度が高い(I/Oレベルが所定の閾値(たとえば3など)以上の)アクセスパターンを特定する(S251)。たとえば月曜日の21時(あるいはその数分前)にステージングプログラム1007が起動された場合を想定する。図7のアクセスパターンテーブルT550の中で、月曜日の21時にアクセス頻度(I/Oレベル)が高いアクセスパターンを探すと、アクセスパターンT552がAのI/Oレベルが5である(最もI/Oレベルが高い)。そのため、アクセス頻度が最も高いアクセスパターンはAであると特定される。 FIG. 15 shows the processing flow of the staging program 1007. The staging program 1007 first refers to the access pattern table T550, and from there, the access frequency is high at the current time (the time when the staging program 1007 is started) (I / O level is a predetermined threshold (for example, 3)) The access pattern is specified (S251). For example, it is assumed that the staging program 1007 is started at 21:00 (or a few minutes before) on Monday. When an access pattern having a high access frequency (I / O level) is searched for at 21:00 on Monday in the access pattern table T550 of FIG. 7, the access pattern T552 has an A / O level of 5 (most I / O). Level is high). Therefore, the access pattern with the highest access frequency is identified as A.
 続いてステージングプログラム1007は、プール管理テーブルT400を参照し、アクセスパターンT408が、S251で選択されたアクセスパターンである実ページを抽出し、それらの実ページのステージングを行う(S252)。たとえばS251でGroup Aが特定された場合、ステージングプログラム1007はアクセスパターンT408がAの実ページをすべて抽出する。S252の後、ステージングプログラム1007は、次にアクセス頻度の高いアクセスパターンがあれば(S253:Yes)、次にアクセス頻度の高いアクセスパターンを選択し(S254)、S252の処理を行う。I/Oレベルが所定の閾値(たとえば3など)以上のアクセスパターンがなくなるまで、この処理を繰り返す。そしてI/Oレベルが所定の閾値以上のアクセスパターンがない場合には(S253:No)、処理を終了する。またS251の実行時点でI/Oレベルが所定の閾値(たとえば3など)以上のアクセスパターンがない場合にも、ステージングプログラム1007は、どの実ページもステージングせず、処理を終了する。 Subsequently, the staging program 1007 refers to the pool management table T400, the access pattern T408 extracts the real pages that are the access patterns selected in S251, and performs staging of those real pages (S252). For example, when Group A is specified in S251, the staging program 1007 extracts all real pages whose access pattern T408 is A. After S252, if there is an access pattern with the next highest access frequency (S253: Yes), the staging program 1007 selects the access pattern with the next highest access frequency (S254), and performs the process of S252. This process is repeated until there are no access patterns having an I / O level equal to or higher than a predetermined threshold (for example, 3). If there is no access pattern having an I / O level equal to or higher than a predetermined threshold (S253: No), the process is terminated. Even when there is no access pattern having an I / O level equal to or higher than a predetermined threshold (eg, 3) at the time of execution of S251, the staging program 1007 does not stage any real page and ends the process.
 このようにステージングプログラム1007は、アクセスパターンテーブルT550に基づいて、現在の時刻(ステージングプログラム1007が開始された時刻)にアクセス頻度が高い傾向があるページを優先的にステージングする。そのため、ホスト2がページに対するアクセス要求を発行した時に、アクセス対象のページがキャッシュにステージングされている確率が高くなる。結果、アクセス性能を向上させることができる。 In this way, the staging program 1007 preferentially stages pages that tend to be accessed frequently at the current time (the time when the staging program 1007 is started) based on the access pattern table T550. Therefore, when the host 2 issues an access request for the page, the probability that the page to be accessed is staged in the cache increases. As a result, access performance can be improved.
 次にページソート処理について、図14を用いて説明する。この処理はページソートプログラム1006によって実行される。ページソートプログラム1006は、ユーザが管理端末13を用いてページソートの指示を発行することで開始される。あるいは、ストレージ装置1が定期的にページソートプログラム1006を実行するようにしてもよい。またページソートプログラム1006は、プールごとに実行される。以下、プール#0についてページソートプログラム1006が実行される場合を例にとって説明する。 Next, the page sort process will be described with reference to FIG. This process is executed by the page sort program 1006. The page sort program 1006 is started when the user issues a page sort instruction using the management terminal 13. Alternatively, the storage apparatus 1 may periodically execute the page sort program 1006. The page sort program 1006 is executed for each pool. Hereinafter, a case where the page sort program 1006 is executed for the pool # 0 will be described as an example.
 ページソートプログラム1006は最初に、ページソート(S202~S204の処理)を未実施のアクセスパターンを1つ選択する(S201)。続いて、S201で選択されたアクセスパターンと同じアクセスパターンの実ページをすべて特定する(S202)。これはプール管理テーブルT400の中で、プールID(T401)が0、アクセスパターンT408がS201で選択されたアクセスパターンと同じである行を特定すればよい。 The page sort program 1006 first selects one access pattern that has not been subjected to page sort (the processing of S202 to S204) (S201). Subsequently, all real pages having the same access pattern as the access pattern selected in S201 are specified (S202). This may be done by specifying a row in the pool management table T400 where the pool ID (T401) is 0 and the access pattern T408 is the same as the access pattern selected in S201.
 S202の後、ページソートプログラム1006はプール#0内に、連続した空き実ページがあるか判定する。具体的にはS202で特定された実ページ数と同数の連続した空き実ページがあるか判定する(S203)。連続した空き実ページがある場合には、S202で特定された実ページのデータをすべて、この連続した空き実ページに移動する(S204)。この処理では、特定された実ページからデータを読み出し、読み出されたデータを空き実ページに書き込む。 After S202, the page sort program 1006 determines whether there are continuous free real pages in the pool # 0. Specifically, it is determined whether there are as many continuous free real pages as the number of real pages specified in S202 (S203). If there are continuous free real pages, all the data of the real page specified in S202 is moved to this continuous free real page (S204). In this process, data is read from the specified real page, and the read data is written to a free real page.
 またこの移動の際、仮想ページにマッピングされている実ページの位置を変更する必要がある。そのため実ページのデータ移動と同時に、プール管理テーブルT400、及び仮想ボリューム管理テーブルT200、GIマッピングテーブルT250も更新する。たとえばLDEV IDが00:01、Addr.が00000000の実ページに格納されていたデータが、LDEV IDが00:02、Addr.が00000000の実ページに移動される場合の、各管理テーブルの更新の方法の一例を、プール管理テーブルT400(図5)を例にとって説明する。プール管理テーブルT400内の、LDEV ID(T402)が00:01、Addr.(T405)が00000000の行を参照すると、この実ページはVVOL ID(T406)が00、ページID(T407)が01000の仮想ページにマッピングされている。実ページのデータ移動後は、この仮想ページにデータ移動先の実ページ(LDEV IDが00:02、Addr.が00000000の実ページ)がマッピングされるように、マッピングを変更する必要がある。ページソートプログラム1006は、LDEV ID(T402)が00:02、Addr.(T405)が00000000の行について、VVOL ID(T406)の値を00にし、またページID(T407)の値を01000にする。そしてLDEV ID(T402)が00:01、Addr.(T405)が00000000の行については、VVOL ID(T406)とページID(T407)の値をNULLにする。またこの時、VVOL ID(T406)とページID(T407)以外の情報、たとえば属性(T404)やアクセスパターン(T408)についても移動を行う。 Also, at the time of this movement, it is necessary to change the position of the real page mapped to the virtual page. For this reason, the pool management table T400, the virtual volume management table T200, and the GI mapping table T250 are updated simultaneously with the data movement of the real page. For example, if the LDEV ID is 00:01, Addr. Is stored in the actual page of 00000000, the LDEV ID is 00:02, Addr. An example of a method for updating each management table in the case where is moved to a real page of 00000000 will be described using the pool management table T400 (FIG. 5) as an example. In the pool management table T400, the LDEV ID (T402) is 00:01, Addr. Referring to the row where (T405) is 00000000, this real page is mapped to a virtual page whose VVOL ID (T406) is 00 and page ID (T407) is 01000. After the data movement of the real page, it is necessary to change the mapping so that the real page of the data movement destination (the real page with the LDEV ID of 00:02 and Addr. Of 00000000) is mapped to this virtual page. The page sort program 1006 has an LDEV ID (T402) of 00:02, Addr. For the row where (T405) is 00000000, the value of VVOL ID (T406) is set to 00, and the value of page ID (T407) is set to 01000. And the LDEV ID (T402) is 00:01, Addr. For the row where (T405) is 00000000, the values of VVOL ID (T406) and page ID (T407) are set to NULL. At this time, information other than the VVOL ID (T406) and page ID (T407), for example, the attribute (T404) and the access pattern (T408) are also moved.
 これと同様の処理を、仮想ボリューム管理テーブルT200とGIマッピングテーブルT250についても実施する。またキャッシュ管理テーブルT300については、データ移動元の実ページのデータがCM144にキャッシュされている場合には、その実ページのデータをパージする。 The same processing is performed for the virtual volume management table T200 and the GI mapping table T250. As for the cache management table T300, when the data of the real page of the data transfer source is cached in the CM 144, the data of the real page is purged.
 S205でページソートプログラム1006は、ページソート(S202~S204の処理)を未実施のアクセスパターンがあるか否か判定する。ページソートを未実施のアクセスパターンが存在する場合(S205:No)には、S201から処理を繰り返す。すべてのアクセスパターンについて、ページソートが行われた場合(S205:Yes)、処理を終了する。 In step S205, the page sort program 1006 determines whether there is an access pattern that has not been subjected to page sort (processing in steps S202 to S204). If there is an access pattern that has not been subjected to page sorting (S205: No), the processing is repeated from S201. If page sorting has been performed for all access patterns (S205: Yes), the process ends.
 ページソートプログラム1006により、同一アクセスパターンの実ページ(アクセスパターン(T408)が同じであるページ)のデータは、プール内の連続した領域(つまりLDEV上またはドライブ121上の連続領域)に配置される。同一アクセスパターンの実ページは、同一時間帯にアクセスされる可能性が高い。またLDEV上またはドライブ121上の連続領域にデータが配置されていると、ドライブ121からデータを読み出す際のアクセス速度が向上する。そのため同一アクセスパターンの実ページのデータをLDEV上またはドライブ121上の連続領域に配置すると、アクセス性能が向上するという効果が得られる。 By the page sort program 1006, data of real pages having the same access pattern (pages having the same access pattern (T408)) is arranged in a continuous area in the pool (that is, a continuous area on the LDEV or the drive 121). . Real pages with the same access pattern are likely to be accessed in the same time zone. Further, when data is arranged in a continuous area on the LDEV or the drive 121, the access speed when data is read from the drive 121 is improved. For this reason, if real page data having the same access pattern is arranged in a continuous area on the LDEV or the drive 121, an effect of improving the access performance can be obtained.
 以上で、本発明の実施例に係るストレージ装置の説明を終了する。実施例に係るストレージ装置では、オリジナルデータの格納された実ページ(GI)がマッピングされた仮想ボリューム(起動ボリューム)を複数形成する。そしてホストから仮想ボリュームに対する更新があった場合、更新データは、更新データを格納するための実ページ(DI)に格納される。 This completes the description of the storage apparatus according to the embodiment of the present invention. In the storage apparatus according to the embodiment, a plurality of virtual volumes (startup volumes) to which real pages (GI) storing original data are mapped are formed. When the virtual volume is updated from the host, the update data is stored in a real page (DI) for storing the update data.
 このような構成では、仮想ボリュームが多く形成されると、オリジナルデータの格納された実ページ(GI)に対するアクセスが多く発生し、アクセス性能が低下しやすい。また更新データがGIとは異なる実ページ(DI)に格納されることにより、仮想ボリュームにマッピングされた実ページが、物理的に離散した記憶領域にマッピングされる。ボリュームの各ページが物理的に離散した領域に配置される構成は、リード時のアクセスレイテンシの増大を招く。 In such a configuration, when a large number of virtual volumes are formed, many accesses to the real page (GI) storing the original data are generated, and the access performance is likely to deteriorate. Further, the update data is stored in a real page (DI) different from the GI, whereby the real page mapped to the virtual volume is mapped to a physically discrete storage area. The configuration in which the pages of the volume are arranged in physically discrete areas leads to an increase in access latency at the time of reading.
 本発明の実施例に係るストレージ装置では、実ページのアクセス頻度に基づいて、仮想ボリューム(起動ボリューム)にマッピングされた実ページをキャッシュに常駐化させる。アクセス頻度の高い実ページが極力キャッシュに常駐化されるため、アクセス性能の低下を抑止することができる。 In the storage apparatus according to the embodiment of the present invention, the real page mapped to the virtual volume (startup volume) is made resident in the cache based on the access frequency of the real page. Since real pages with high access frequency are made resident in the cache as much as possible, it is possible to suppress a decrease in access performance.
 以上、本発明の実施例を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。 As mentioned above, although the Example of this invention was described, this is an illustration for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention only to these Examples. That is, the present invention can be implemented in various other forms.
 たとえば上で説明したストレージ装置では、各実ページについて、月曜日~日曜日の各時間(0~1時、1~2時、...、23~24時)のアクセス頻度情報を管理している。ただし別の実施形態として、月曜日~日曜日の各時間のアクセス頻度情報を管理するのではなく、1日の各時間のアクセス頻度情報を管理するようにしてもよい。この場合、アクセス頻度テーブルT500は、月曜日~日曜日のアクセス頻度情報、つまり7個のアクセス頻度情報(T503-1~T503-7)を管理する必要がなくなり、アクセス頻度情報を1個管理すればよくなる。とくに、週の各曜日でアクセス頻度に変動がないことがあらかじめ分かっている場合には、1日の各時間のアクセス頻度情報を管理しても、アクセス性能に影響はない。さらに、アクセス頻度が、週ごとではなく別の周期(たとえば10日周期、1月周期など)で変動することが分かっている場合、その周期(10日単位あるいは1月単位)でアクセス頻度情報を管理するようにしてもよい。 For example, in the storage apparatus described above, access frequency information for each time from Monday to Sunday (0-1 o'clock, 1-2 o'clock, ..., 23-24 o'clock) is managed for each real page. However, as another embodiment, instead of managing the access frequency information for each time from Monday to Sunday, the access frequency information for each time of the day may be managed. In this case, the access frequency table T500 does not need to manage access frequency information from Monday to Sunday, that is, seven access frequency information (T503-1 to T503-7), and only one access frequency information needs to be managed. . In particular, when it is known in advance that the access frequency does not vary on each day of the week, managing the access frequency information for each hour of the day does not affect the access performance. Furthermore, when it is known that the access frequency varies not in every week but in another cycle (for example, a 10-day cycle, a January cycle, etc.), the access frequency information is updated in the cycle (10-day unit or monthly unit). You may make it manage.
 またローカルファイルサーバ30のライトデータを格納するストレージ装置20は、ローカルファイルサーバ30の外部にある構成に限定されるものではない。ストレージ装置20がローカルファイルサーバ30に内蔵される構成を採用してもよい。 Further, the storage device 20 for storing the write data of the local file server 30 is not limited to the configuration outside the local file server 30. A configuration in which the storage device 20 is built in the local file server 30 may be adopted.
1: ストレージ装置、2: ホスト、6: 通信ネットワーク、7: 管理ネットワーク、11: ストレージコントローラ、12:  ディスクユニット、13:  管理端末、111: MPB、112: CHA、113: DKA、114: CMPK、115: スイッチ(SW)、121: ドライブ、141: MP、142: LM、143: SM、144: CM 1: storage device, 2: host, 6: communication network, 7: management network, 11: storage controller, 12: disk unit, 13: management terminal, 111: MPB, 112: CHA, 113: DKA, 114: CMPK, 115: Switch (SW), 121: Drive, 141: MP, 142: LM, 143: SM, 144: CM

Claims (14)

  1.  キャッシュメモリと記憶デバイスを有し、ホストからのアクセス要求を受け付けるストレージ装置であって、
     前記記憶デバイスは、前記ホストがリードする初期データ用の記憶領域と、前記ホストからの更新データ用の記憶領域を有し、
     前記ストレージ装置は前記ホストに対して、それぞれに前記初期データ用の記憶領域または前記更新データ用の記憶領域がマッピングされた複数の仮想ページから構成される起動ボリュームを提供し、
     前記ストレージ装置はまた、前記記憶領域に格納されているデータの中から、前記ホストからの各記憶領域に対するアクセス頻度に基づいて選択されたデータを前記キャッシュメモリに格納させるよう構成されており、
     前記ストレージ装置が前記ホストから、前記起動ボリュームに対するリード要求を受信した時、リード対象データが前記キャッシュメモリに格納されている場合、前記ストレージ装置は前記キャッシュメモリからデータを読み出して、前記ホストに返送する、
    ことを特徴とする、ストレージ装置。
    A storage device having a cache memory and a storage device and receiving an access request from a host,
    The storage device has a storage area for initial data read by the host and a storage area for update data from the host,
    The storage device provides the host with a startup volume composed of a plurality of virtual pages each mapped with the storage area for initial data or the storage area for update data,
    The storage device is also configured to store, in the cache memory, data selected based on an access frequency to each storage area from the host from among data stored in the storage area,
    When the storage device receives a read request for the startup volume from the host and the read target data is stored in the cache memory, the storage device reads the data from the cache memory and returns it to the host To
    A storage apparatus characterized by the above.
  2.  前記ストレージ装置は前記ホストから、前記初期データ用の記憶領域がマッピングされた前記仮想ページに対するライト要求を受信した時、
     前記仮想ページに対し、前記更新データ用の記憶領域のうち、まだいずれの前記仮想ページにもマッピングされていない前記記憶領域をマッピングし、前記マッピングされた記憶領域に、前記ライト要求とともに受信したライトデータを格納する、
    ことを特徴とする、請求項1に記載のストレージ装置。
    When the storage device receives a write request for the virtual page to which the storage area for the initial data is mapped from the host,
    The storage area that has not yet been mapped to any of the virtual pages among the storage areas for the update data is mapped to the virtual page, and the write request received together with the write request is mapped to the mapped storage area Store data,
    The storage apparatus according to claim 1, wherein:
  3.  前記ストレージ装置は、前記各記憶領域に対する前記ホストからのアクセス頻度情報を管理しており、
     前記ストレージ装置は、前記仮想ページに、前記まだいずれの仮想ページにもマッピングされていない前記記憶領域をマッピングした時、前記マッピングされた記憶領域のアクセス頻度情報を、前記仮想ページにマッピングされていた前記初期データ用の記憶領域のアクセス頻度情報と同じにする、
    ことを特徴とする、請求項2に記載のストレージ装置。
    The storage device manages access frequency information from the host to each storage area,
    When the storage device mapped the storage area that has not yet been mapped to any virtual page to the virtual page, the access frequency information of the mapped storage area was mapped to the virtual page Same as the access frequency information of the storage area for the initial data,
    The storage apparatus according to claim 2, wherein:
  4.  前記ストレージ装置は、前記各記憶領域に対する前記ホストからのアクセス頻度の変動傾向を管理しており、
     前記アクセス頻度の変動傾向が類似している複数の前記記憶領域を、同一アクセスパターンの記憶領域として管理する、
    ことを特徴とする、請求項2に記載のストレージ装置。
    The storage device manages the fluctuation tendency of the access frequency from the host to each storage area,
    Managing a plurality of storage areas having similar access frequency fluctuation trends as storage areas of the same access pattern;
    The storage apparatus according to claim 2, wherein:
  5.  前記ストレージ装置は、前記同一アクセスパターンの複数の前記記憶領域に格納されているデータを、前記記憶デバイス上の連続領域に再配置する、
    ことを特徴とする、請求項4に記載のストレージ装置。
    The storage apparatus rearranges data stored in the plurality of storage areas of the same access pattern in a continuous area on the storage device,
    The storage apparatus according to claim 4, wherein:
  6.  前記ストレージ装置は、前記アクセス頻度の変動傾向に基づいて、現在から所定期間内にアクセス頻度が高い前記アクセスパターンを特定し、
     前記特定されたアクセスパターンの記憶領域に格納されているデータを、前記キャッシュに格納させる、
    ことを特徴とする、請求項4に記載のストレージ装置。
    The storage device identifies the access pattern having a high access frequency within a predetermined period from the present based on the access frequency fluctuation trend,
    Data stored in the storage area of the identified access pattern is stored in the cache;
    The storage apparatus according to claim 4, wherein:
  7.  前記ストレージ装置は、1以上の前記ホストに対し、複数の前記起動ボリュームを提供するよう構成されており、
     前記ストレージ装置は、前記複数の起動ボリュームの同一仮想ページに同一データが格納されている場合、
     前記格納されているデータを前記初期データ用の記憶領域に移動し、
     前記複数の起動ボリュームの前記同一仮想ページに、前記データの移動された前記初期データ用の記憶領域をマッピングする、
    ことを特徴とする、請求項1に記載のストレージ装置。
    The storage device is configured to provide a plurality of the startup volumes to one or more hosts.
    When the same data is stored in the same virtual page of the plurality of startup volumes, the storage device,
    Moving the stored data to the storage area for the initial data;
    Mapping the storage area for the initial data to which the data has been moved to the same virtual page of the plurality of startup volumes;
    The storage apparatus according to claim 1, wherein:
  8.  前記ストレージ装置は、外部からの指示に応じて、
     前記起動ボリュームにマッピングされている前記初期データ用の記憶領域に格納されているデータを、前記キャッシュメモリに格納し、
     前記起動ボリュームにマッピングされている前記更新データ用の記憶領域のうち、アクセス頻度が高い記憶領域に格納されているデータから順に、前記キャッシュメモリに格納する、
    ことを特徴とする、請求項1に記載のストレージ装置。
    In response to an external instruction, the storage device
    Storing the data stored in the storage area for the initial data mapped to the startup volume in the cache memory;
    Among the storage areas for the update data mapped to the startup volume, the data is stored in the cache memory in order from the data stored in the storage area having a high access frequency.
    The storage apparatus according to claim 1, wherein:
  9.  前記ストレージ装置は前記起動ボリュームに加えて、複数の仮想ページから構成され、初期状態では前記仮想ページのそれぞれには記憶領域がマッピングされていない仮想ボリュームを、前記ホストに対して提供し、
     前記ストレージ装置は前記ホストから、前記記憶領域がマッピングされていない仮想ページに対するライト要求を受信すると、前記記憶デバイスの有する記憶領域のうち、いずれの前記仮想ページにもマッピングされていない前記記憶領域をマッピングするよう構成されており、
     前記ストレージ装置は、前記キャッシュメモリ内の領域を、前記起動ボリュームに格納されるデータを格納するための領域と、前記仮想ボリュームに格納されるデータを格納するための領域とに、分けて管理する、
    ことを特徴とする、請求項1に記載のストレージ装置。
    The storage device is configured with a plurality of virtual pages in addition to the startup volume, and provides a virtual volume with no storage area mapped to each of the virtual pages in the initial state to the host,
    When the storage apparatus receives a write request for a virtual page to which the storage area is not mapped from the host, the storage apparatus has the storage area that is not mapped to any virtual page among the storage areas of the storage device. Configured to map,
    The storage device manages the area in the cache memory separately into an area for storing data stored in the startup volume and an area for storing data stored in the virtual volume. ,
    The storage apparatus according to claim 1, wherein:
  10.  キャッシュメモリと記憶デバイスを有し、ホストからのアクセス要求を受け付けるストレージ装置の制御方法であって、
     前記記憶デバイスは、前記ホストがリードする初期データ用の記憶領域と、前記ホストからの更新データ用の記憶領域を有し、
     前記ストレージ装置は前記ホストに対して、それぞれに前記初期データ用の記憶領域または前記更新データ用の記憶領域がマッピングされた複数の仮想ページから構成される起動ボリュームを提供するよう構成されており、
     前記ストレージ装置は、前記ホストからの各記憶領域に対するアクセス頻度に基づいて、前記記憶領域に格納されているデータの中から、前記キャッシュメモリに格納させるデータを選択し、前記選択されたデータを前記キャッシュメモリに格納させ、
     前記ホストから前記起動ボリュームに対するリード要求を受信した時、リード対象データが前記キャッシュメモリに格納されている場合、前記キャッシュメモリからデータを読み出して、前記ホストに返送する、
    ことを特徴とする、ストレージ装置の制御方法。
    A control method of a storage apparatus having a cache memory and a storage device and receiving an access request from a host,
    The storage device has a storage area for initial data read by the host and a storage area for update data from the host,
    The storage device is configured to provide a startup volume composed of a plurality of virtual pages each mapped with the storage area for initial data or the storage area for update data to the host,
    The storage device selects data to be stored in the cache memory from data stored in the storage area based on an access frequency to each storage area from the host, and selects the selected data in the cache memory Stored in cache memory,
    When a read request for the startup volume is received from the host, if the read target data is stored in the cache memory, the data is read from the cache memory and returned to the host.
    A method for controlling a storage apparatus.
  11.  前記ホストから、前記初期データ用の記憶領域がマッピングされた前記仮想ページに対するライト要求を受信した時、
     前記ストレージ装置は前記仮想ページに対し、前記更新データ用の記憶領域のうち、まだいずれの前記仮想ページにもマッピングされていない前記記憶領域をマッピングし、前記マッピングされた記憶領域に、前記ライト要求とともに受信したライトデータを格納する、
    ことを特徴とする、請求項10に記載のストレージ装置の制御方法。
    When receiving a write request for the virtual page to which the storage area for the initial data is mapped from the host,
    The storage device maps, to the virtual page, the storage area that is not yet mapped to any of the virtual pages, among the storage areas for update data, and writes the write request to the mapped storage area Store the write data received with
    The method for controlling a storage apparatus according to claim 10, wherein:
  12.  前記ストレージ装置は、前記各記憶領域に対する前記ホストからのアクセス頻度情報を管理しており、
     前記ストレージ装置は、前記仮想ページに、前記まだいずれの仮想ページにもマッピングされていない前記記憶領域をマッピングした時、前記マッピングされた記憶領域のアクセス頻度情報を、前記仮想ページにマッピングされていた前記初期データ用の記憶領域のアクセス頻度情報と同じにする、
    ことを特徴とする、請求項11に記載のストレージ装置の制御方法。
    The storage device manages access frequency information from the host to each storage area,
    When the storage device mapped the storage area that has not yet been mapped to any virtual page to the virtual page, the access frequency information of the mapped storage area was mapped to the virtual page Same as the access frequency information of the storage area for the initial data,
    The storage apparatus control method according to claim 11, wherein:
  13.  前記ストレージ装置は、前記各記憶領域に対する前記ホストからのアクセス頻度の変動傾向を管理しており、
     前記アクセス頻度の変動傾向が類似している複数の前記記憶領域を、同一アクセスパターンの記憶領域として管理する、
    ことを特徴とする、請求項11に記載のストレージ装置の制御方法。
    The storage device manages the fluctuation tendency of the access frequency from the host to each storage area,
    Managing a plurality of storage areas having similar access frequency fluctuation trends as storage areas of the same access pattern;
    The storage apparatus control method according to claim 11, wherein:
  14.  前記ストレージ装置は、前記同一アクセスパターンの複数の前記記憶領域に格納されているデータを、前記記憶デバイス上の連続領域に再配置する、
    ことを特徴とする、請求項13に記載のストレージ装置の制御方法。
    The storage apparatus rearranges data stored in the plurality of storage areas of the same access pattern in a continuous area on the storage device,
    The storage apparatus control method according to claim 13, wherein:
PCT/JP2014/081364 2014-11-27 2014-11-27 Storage device WO2016084190A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/081364 WO2016084190A1 (en) 2014-11-27 2014-11-27 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/081364 WO2016084190A1 (en) 2014-11-27 2014-11-27 Storage device

Publications (1)

Publication Number Publication Date
WO2016084190A1 true WO2016084190A1 (en) 2016-06-02

Family

ID=56073809

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/081364 WO2016084190A1 (en) 2014-11-27 2014-11-27 Storage device

Country Status (1)

Country Link
WO (1) WO2016084190A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131946A (en) * 2001-10-19 2003-05-09 Nec Corp Method and device for controlling cache memory
JP2010015446A (en) * 2008-07-04 2010-01-21 Hitachi Ltd Storage device and power control method
US20120066680A1 (en) * 2010-09-14 2012-03-15 Hitachi, Ltd. Method and device for eliminating patch duplication
JP2014093084A (en) * 2012-11-05 2014-05-19 Lsi Corp System and method for booting plural servers from snapshots of operating system installation image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131946A (en) * 2001-10-19 2003-05-09 Nec Corp Method and device for controlling cache memory
JP2010015446A (en) * 2008-07-04 2010-01-21 Hitachi Ltd Storage device and power control method
US20120066680A1 (en) * 2010-09-14 2012-03-15 Hitachi, Ltd. Method and device for eliminating patch duplication
JP2014093084A (en) * 2012-11-05 2014-05-19 Lsi Corp System and method for booting plural servers from snapshots of operating system installation image

Similar Documents

Publication Publication Date Title
US8909848B2 (en) Method for managing storage system using flash memory, and computer
JP5944587B2 (en) Computer system and control method
JP2016506585A (en) Method and system for data storage
US10521345B2 (en) Managing input/output operations for shingled magnetic recording in a storage system
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US8402214B2 (en) Dynamic page reallocation storage system management
US8806126B2 (en) Storage apparatus, storage system, and data migration method
WO2014109007A1 (en) Storage hierarchical management system
JP2008015623A (en) Controller of storage system equipped with many kinds of storage devices
US20230342054A1 (en) Method, electronic device and computer program product for processing data
US8799573B2 (en) Storage system and its logical unit management method
US10705853B2 (en) Methods, systems, and computer-readable media for boot acceleration in a data storage system by consolidating client-specific boot data in a consolidated boot volume
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
JP2021092915A (en) Storage system and volume duplication method
WO2016059715A1 (en) Computer system
US10853257B1 (en) Zero detection within sub-track compression domains
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
WO2016084190A1 (en) Storage device
CN113722131A (en) Method and system for facilitating fast crash recovery in a storage device
JP2018036711A (en) Storage system, storage control device and control program
JPWO2016103356A1 (en) Hierarchical storage system, storage controller, and replication initialization method
JP2011242862A (en) Storage subsystem and control method for the same
US9864761B1 (en) Read optimization operations in a storage system
US20200387477A1 (en) Storage system and snapshot management method
US8364905B2 (en) Storage system with middle-way logical volume

Legal Events

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

Ref document number: 14907168

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14907168

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP