WO2014170936A1 - ストレージ装置及びストレージ装置の制御方法 - Google Patents

ストレージ装置及びストレージ装置の制御方法 Download PDF

Info

Publication number
WO2014170936A1
WO2014170936A1 PCT/JP2013/061151 JP2013061151W WO2014170936A1 WO 2014170936 A1 WO2014170936 A1 WO 2014170936A1 JP 2013061151 W JP2013061151 W JP 2013061151W WO 2014170936 A1 WO2014170936 A1 WO 2014170936A1
Authority
WO
WIPO (PCT)
Prior art keywords
charge amount
tier
charge
virtual
page
Prior art date
Application number
PCT/JP2013/061151
Other languages
English (en)
French (fr)
Inventor
大輔 佐賀野
博文 藤田
亮 高瀬
哲 西本
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/342,289 priority Critical patent/US20160026984A1/en
Priority to PCT/JP2013/061151 priority patent/WO2014170936A1/ja
Publication of WO2014170936A1 publication Critical patent/WO2014170936A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • G06Q20/145Payments according to the detected use or quantity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing

Definitions

  • the present invention relates to a storage apparatus and a storage apparatus control method, and more particularly to a storage apparatus and a storage apparatus control method that perform hierarchical control according to a charge amount based on the number of writes.
  • Patent Document 1 discloses a technology for migrating data on a page-by-page basis using a data migration technology, a storage tiering technology, and a technology called thin provisioning.
  • the data migration technique is a technique for migrating data stored in the first logical volume to the second logical volume
  • the storage tiering technique is a technique for transferring a plurality of logical volumes to one of a plurality of tiers. This is a technology for classifying and transferring a logical volume classified into any tier to another tier. There are high-reliability tiers and low-cost tiers.
  • Thin provisioning means that if there is a write request from a higher-level device to a plurality of virtual storage areas (virtual pages) constituting a virtual logical volume (virtual volume), a substantive storage area ( (Real page) is assigned and data corresponding to a write request is written to the real page.
  • Patent Document 2 discloses a technique for acquiring access degree information indicating the degree of access by a host apparatus to a storage apparatus and calculating a storage service fee based on the acquired access degree information.
  • the storage service charge is calculated as follows: basic charge + number of accesses * charge for each access number + total number of access blocks x charge for each access block. According to this technology, it is possible to reduce a fee paid by a customer for a storage device that is not used much.
  • the data is written to the logical volume provided from the SSD (Solid State Drive) by the SAS (Serial).
  • SAS Serial
  • Attached SCSI
  • SATA Serial ATA
  • SSD has higher response performance than SAS or SATA, and needs to be replaced because it degrades in proportion to the number of writes. That is, high performance and high cost.
  • SAS or SATA since SAS or SATA has lower response performance than SSD and hardly deteriorates depending on the number of writes, it does not require replacement. That is, low performance and low cost.
  • the charge amount is the same, it is more advantageous for the user if the data write destination is a logical volume provided from the SSD, and more advantageous for the user if the number of times data is written to the SSD is larger. It will be big. Therefore, unfairness arises between a user who has such a great advantage and a user whose data is written to SAS or SATA.
  • the real page allocated to the virtual page is transferred between multiple tiers by the storage tiering technology.
  • data is written to the real page of the migration destination. That is, since data writing occurs where the user does not intend, the charge amount cannot be predicted.
  • the present invention has been made in consideration of the above points, and proposes a storage apparatus and a storage apparatus control method capable of predicting the charge amount when charging is performed according to the number of writes.
  • the storage apparatus is a storage apparatus that calculates a charge amount according to the number of data writes, and is different from a physical storage device that provides different types of logical volumes.
  • a controller that performs I / O control by classifying each volume into tiers with different response performance and associating each logical volume that belongs to one of the tiers with a virtual volume that is provided to a higher-level device.
  • the controller allocates any real page that makes up the logical volume to the virtual page, writes data to the real page, and writes Per time, based on the number of writes to count
  • the billing amount is calculated and billing amount per predetermined time to calculate the tee arrangement so as not to exceed the charging limit, based on the calculated tee arrangement, characterized by relocating the real page.
  • a storage apparatus control method for calculating a charge amount according to the number of times data is written, wherein physical storage devices are logical volumes of different types. And the controller classifies the logical volumes of different types into tiers with different response performances, and provides the logical volumes that belong to one of the tiers and the virtual devices to be provided to the host device.
  • the present invention it is possible to predict the billing amount when billing is performed according to the number of times of writing.
  • FIG. 1 is an overall configuration diagram of a storage system in the present embodiment. It is an internal block diagram of memory. It is a logical block diagram of a write count management table. It is a logical block diagram of a write cost management table. It is a logical block diagram of an allocation table. It is a logical block diagram of a migration page table. It is a logic block diagram of a frequency distribution table. The frequency distribution graph and the conceptual diagram of a tear arrangement are shown. It is a flowchart which shows an accounting management process. It is a flowchart which shows a write count management table update process. It is a flowchart which shows the tear range calculation process which reduces a charge amount. It is a flowchart which shows the tear range calculation process which increases an accounting amount. It is a flowchart which shows a migration process.
  • FIG. 1 shows an outline of the storage system 1 and an outline of charge management processing in the present embodiment.
  • a write request is issued from a host 10 to a virtual logical volume (virtual volume) VVOL via a SAN (Storage Area Network) 30 in the storage system 1, it is associated with the virtual volume VVOL.
  • VVOL virtual logical volume
  • a user who occurs when he / she charges according to the used capacity by adopting a configuration in which data is written to a substantive logical volume RVOL and a charge amount for the user of the host 10 is calculated according to the write to the logical volume RVOL. It is intended to eliminate the injustice between them.
  • the storage device 20 in this embodiment is equipped with a storage tiering function.
  • the storage tiering function is such that data with a high I / O frequency is stored in a logical volume RVOL belonging to a high-performance tier, and data with a low I / O frequency is stored in a logical volume RVOL belonging to a low-performance tier.
  • This is a function for migrating data stored in a real page between tiers, and is a function for realizing high-speed processing while suppressing costs.
  • the tier ratio (tier range) in the virtual volume VVOL is changed to change the migration source and migration destination of the real page so that the billing amount is close to the billing upper limit value determined in advance by the user.
  • the controller 21 in the storage apparatus 20 is provided from the logical volume RVOL (SSD) provided from the SSD 221, the logical volume RVOL (SAS) provided from the SAS 222, and the SATA 223.
  • SSD logical volume RVOL
  • SAS logical volume RVOL
  • SATA SATA
  • Each logical volume RVOL (SATA) is collected and managed in a collection area of real pages called a pool volume PVOL, and the pool volume PVOL is managed in a hierarchy by tiers # 00, # 01 and # 02. ing.
  • the controller 21 manages the same type of tier so that the same type of logical volume RVOL belongs to the same type of tier.
  • management is performed so that the logical volume RVOL (SSD) belongs to the tier # 00, the logical volume RVOL (SAS) belongs to the tier # 01, and the logical volume RVOL (SATA) belongs to the tier # 02. ing.
  • tier # 00 to # 02 tier # 00 has the highest response performance and cost
  • tier # 01 has the highest response performance and cost
  • tier # 02 has the lowest response performance and cost.
  • Each logical volume RVOL belonging to these tiers # 00 to # 02 is composed of a plurality of substantial pages (real pages), and the controller 21 uses the virtual pages as virtual storage areas in the virtual volume VVOL.
  • the controller 21 uses the virtual pages as virtual storage areas in the virtual volume VVOL.
  • data is actually written to any of the physical storage devices of the SSD 221, SAS 222, or SATA 223 when there is a write request to the virtual page.
  • the controller 21 constantly monitors the I / O frequency of all virtual pages constituting the virtual volume VVOL, and rearranges the real pages based on the I / O frequency obtained as a monitoring result (storage tier). Function).
  • the controller 21 when there is a write request to one virtual page in the virtual volume VVOL, the controller 21 once writes data to one real page in the logical volume RVOL (SSD) belonging to the tier # 00, Monitor the I / O frequency of virtual pages.
  • the controller 21 transfers the data written in the real page to the logical volume belonging to the tier # 00 to the tier # 01.
  • the real page is rearranged by moving to a free real page in the RVOL (SAS) and associating it with the virtual page.
  • the controller 21 in the storage apparatus 20 receives a write request issued from the host 10 via the SAN 30 (SP1), the controller 21 in the logical volume RVOL belonging to the tier # 00 belongs to the virtual page VP1 specified in the write request. It is determined whether or not the page RP1 is allocated. When the real page RP1 is allocated to the virtual page VP1, data corresponding to the write request is written to the real page RP1 (SP2).
  • the controller 21 assigns the real page RP1 to the virtual page VP1, and then writes data corresponding to the write request to the real page RP1.
  • the real page RP1 is a substantial storage area in the logical volume RVOL provided by the SSD 221. Data is written to the real page RP1, that is, data is actually written to the SSD 221. Therefore, at this time, the controller 21 actually writes data to the SSD 221, and thus counts the number of writing (SP3).
  • the controller 21 constantly monitors the I / O frequency of the virtual page VP1 by the storage tiering function and constantly monitors the charge amount, and the charge amount is predicted to exceed a preset charge upper limit value. In this case, the real page is rearranged so as to reduce the charge amount. Conversely, when it is predicted that the charge amount is lower than the charge upper limit value, the controller 21 rearranges the real page so as to increase the charge amount (improve performance).
  • the controller 21 has a response performance when the charge amount is predicted to exceed the charge upper limit and when the I / O frequency of the virtual page VP1 is low (when the I / O frequency is equal to or less than a predetermined value).
  • the controller 21 migrates the data of the real page RP1 assigned to the virtual page VP1 to the real page RP2 (SP4), associates the migration-destination real page RP2 and the virtual page VP1 (SP5), and real page Rearrange. Since the controller 21 actually writes data to the SAS 222 at this time, the controller 21 counts the number of writing (SP6).
  • the controller 21 calculates a billing amount based on the number of writes counted in steps SP3 and SP6, and determines whether the billing amount exceeds the billing upper limit value.
  • the controller 21 calculates the charge amount as follows: charge amount when writing to the SSD 221 once (charge amount per unit number) ⁇ number of writes.
  • the billing amount per unit number is set to be different for each of the SSD 221, the SAS 222, or the SATA 223 (FIG. 5).
  • the controller 21 rearranges the real page so as to reduce the charge amount when it exceeds, and rearranges the real page so as to improve the performance when it is low, and repeats the real page rearrangement process.
  • control is performed so that the charge amount is close to the charge upper limit value.
  • charging is performed according to the number of times of writing, so that unfairness occurring between users can be eliminated as compared with the case of charging according to the used capacity.
  • the charge amount is adjusted by changing the tear range according to the set charge amount, so that the charge amount can be easily predicted.
  • the tear range is changed so as to decrease the charge amount, and conversely, the predicted charge amount is less than the charge upper limit value. If it is low, the charge amount can be predicted while improving the performance by changing the tear range so as to improve the performance. In addition, it is possible to prevent a user who is not conscious of the number of writings from receiving a large charge unexpectedly.
  • FIG. 2 shows the overall configuration of the storage system 1.
  • the storage system 1 is configured by connecting a plurality of hosts 10 and a storage apparatus 20 via a SAN 30 so that they can communicate with each other.
  • the host 10 is a general computer including a processor, a memory, a communication device, and the like, and issues an I / O request to the storage apparatus 20 connected to the SAN 30.
  • the I / O request includes information for specifying the write destination or the read destination, and includes, for example, the ID of the virtual volume VVOL and the ID of the virtual page.
  • the virtual volume VVOL ID is LUN (Logical Unit Unit Number), and the virtual page ID is LBA (Logical Unit Block Address).
  • the storage apparatus 20 is composed of a plurality of controllers 21 and a plurality of physical storage devices 22. Upon receipt of an I / O request from the host 10, the storage apparatus 20 identifies and specifies the virtual volume VVOL and virtual page of the I / O request destination. A real page is allocated to the virtual volume VVOL and the virtual page, and data corresponding to the I / O request is read / written to the real page.
  • the controller 21 includes a host interface 211, a processor 212, a memory 213, a user interface 214, and a disk interface 215.
  • the host interface 211 is an interface connected to the host 10 via the SAN 30.
  • the received I / O request is transferred to the processor 212.
  • the processor 212 is a device that comprehensively controls the operation of the controller 21. For example, when an I / O request is received from the host interface 211, the processor 212 executes processing corresponding to the received I / O request.
  • the memory 213 is a volatile or non-volatile memory, and stores various programs and various tables.
  • the user interface 214 is an interface for inputting an operation from the user, and is, for example, a keyboard, a mouse, and a display.
  • the disk interface 215 is an interface connected to a plurality of physical storage devices 22, reads data stored in the physical storage device 22, writes it in the memory 213, and conversely temporarily stores it in the memory 213. Data is written to the physical storage device 22.
  • the physical storage device 22 includes a plurality of types of physical storage devices, and includes, for example, a plurality of SSDs 221, a plurality of SASs 222, and a plurality of SATAs 223. These types of physical storage devices 22 constitute RAID (Redundant Array Independent Disks) groups RG1 to RG3, respectively, and logical volumes RVOL having different response performance are provided from these RAID groups RG1 to RG3. These logical volumes RVOL are aggregated in the pool volume PVOL by the controller 21 and arranged in each of the tiers # 00 to # 02 hierarchized for each response performance.
  • RAID Redundant Array Independent Disks
  • FIG. 3 shows the internal configuration of the memory 213.
  • the memory 213 stores a write count management table 2131, a write cost management table 2132, an allocation table 2133, a migration page table 2134, and a frequency distribution table 2135. These various tables will be described later (FIGS. 4 to 8).
  • the memory 213 stores an I / O control program 2136, a frequency distribution calculation program 2137, a tear range calculation program 2138, and a charge amount calculation program 2139.
  • the I / O control program 2136 is a program for executing processing corresponding to an I / O request from the host 10 (real page allocation, etc.), and periodically storing data stored in the real page. This is a program for executing a migration process for migrating to a real page.
  • the frequency distribution calculation program 2137 is a program for creating the frequency distribution table 2135.
  • the tear range calculation program 2138 is a program for calculating the tear range by referring to the frequency distribution table 2135.
  • the charge amount calculation program 2139 is a program for calculating the charge amount according to the number of times of writing. Details of processing executed by these various programs will be described later (FIGS. 10 to 14).
  • FIG. 4 shows the logical configuration of the write count management table 2131.
  • the write count management table 2131 is a table created when the I / O control program 2136 executes the I / O processing.
  • the write count and the total I / O count necessary for calculating the charge amount are shown in FIG. Stored.
  • the write count management table 2131 includes a virtual volume ID column 21111, a user ID column 21112, a virtual page ID column 21313, a write count column 21314, and a total I / O count column 21315.
  • identification information for specifying the virtual volume VVOL is stored in the virtual volume ID column 21111.
  • Identification information for specifying a user is stored in the user ID column 2112, and identification information for specifying a virtual page is stored in the virtual page ID column 21313.
  • the write count column 21314 stores the number of writes in which data is actually written to the real page assigned to the virtual page, and the total I / O count column 21315 actually stores the real page assigned to the virtual page. The total of the number of times of writing data and the number of times of reading data read from the actual page is stored.
  • the virtual volume VVOL with the virtual volume ID “00” is used by the user (host 10) with the user ID “000”, and among the plurality of virtual pages constituting this virtual volume VVOL.
  • the actual number of writes is “60”
  • the total number of I / Os is “100”.
  • the write count column 21314 and the total I / O count column 21315 may store the write count and the total I / O count for each type of the physical storage device 22.
  • the write count column 21314 stores the write count for each type of the physical storage device 22 such that the write count for the SSD 221 is 40, the write count for the SAS 222 is 10 and the write count for the SATA 223 is 10. Good.
  • FIG. 5 shows a logical configuration of the write cost management table 2132.
  • the write cost management table 2132 is a table created by the administrator setting in advance in the storage apparatus 20, and stores the cost when data is actually written.
  • the write cost management table 2132 includes a billing item column 21321 and a billing amount column 21322.
  • the charging item column 21321 stores charging items
  • the charging amount item column 21322 stores charging amounts.
  • the write charge amount per unit number for the SSD 221 when the charge item is “write charge amount per time ( ⁇ / time)” is “10” yen
  • the charge amount per unit number for the SAS 222 The write charge amount is “5” yen
  • the write charge amount per unit number for the SATA 223 is “1” yen.
  • the charge item is “storage charge per capacity ( ⁇ / KB)”
  • the storage charge in SSD 221 is “20” yen
  • the storage charge in SAS 222 is “15” yen
  • the charge amount is determined to be “10” yen.
  • the write charge amount per unit number for SAS 222 and SATA 223 is set as “5” yen and “1” yen, but since SAS 222 and SATA 223 do not deteriorate depending on the number of write times, they are set as “0” yen. May be. And it may be charged only by the storage charge per capacity.
  • the charge amount per unit write count is defined, but the present invention is not limited to this.
  • the charge amount per unit write data amount may be defined so as to charge according to the write data amount. Flash memory degrades with the number of erases.
  • the number of times of writing and the number of times of erasing are approximately proportional, but if the amount of data to be written is large, the number of times of erasing may be multiple even if the number of times of writing is one. Therefore, charging may be performed according to the amount of write data so that the number of times of writing is closer and proportional to the number of times of erasure.
  • FIG. 6 shows a logical configuration of the allocation table 2133.
  • the allocation table 2133 is a table created when the I / O control program 2136 allocates a real page to a virtual page, and stores information indicating the correspondence between the virtual page and the real page.
  • the allocation table 2133 includes a virtual volume ID column 21331, a virtual page ID column 21332, a pool ID column 21333, a real page ID column 21334, and a tier ID column 21335.
  • the virtual volume ID column 21331 stores identification information for specifying the virtual volume VVOL.
  • the virtual page ID column 21332 stores identification information for specifying a virtual page.
  • the pool ID column 21333 stores identification information for specifying the pool volume PVOL.
  • the real page ID column 21334 stores identification information for specifying a real page.
  • the tier ID column 21335 stores identification information for specifying a tier.
  • the virtual volume VVOL with the virtual volume ID “00” is configured to include a plurality of virtual pages with virtual page IDs “00000”, “00001”, and “00002”.
  • the real page assigned to the virtual page “00000” belongs to the pool volume PVOL with the pool ID “000”, the real page ID “00010”, and the tier ID “01”. It is shown.
  • the allocation table 2133 is stored in the memory 213 of the storage apparatus 20 so that it can be managed by the user of the host 10 as well as stored in the physical storage device 22 of the storage apparatus 20, for example. Also good. In this case, the host 10 can obtain the allocation table 2133 by issuing a read request to the storage apparatus 20.
  • FIG. 7 shows the logical configuration of the migration page table 2134.
  • the migration page table 2134 is a table created when the I / O control program 2136 migrates data stored in a real page to a real page belonging to another tier, and is a migration source tier and a migration destination tier. And information indicating the correspondence relationship between and are stored.
  • the migration page table 2134 includes a virtual page ID column 21341, a migration source tier ID column 21342, a migration destination tier ID column 21343, and a migration status column 21344.
  • the virtual page ID column 21341 stores identification information for specifying a virtual page.
  • the migration source tier ID column 21342 stores identification information of the migration source tier to which the real page assigned to the virtual page belongs.
  • the migration destination tier ID column 21343 stores identification information of the migration destination tier when the data stored in the real page is migrated.
  • the migration status column 21344 stores the migration status.
  • the real page assigned to the virtual page with the virtual page ID “10001” belongs to the tier with the migration source tier ID “00”, and the data stored in this real page is the migration It is shown that the page is transferred to a real page belonging to the tier with the first tier ID “01”. Further, it is indicated that the migration state of the data stored in this real page is already “migrated”.
  • FIG. 8 shows a logical configuration of the frequency distribution table 2135.
  • the frequency distribution table 2135 is a table created by the controller 21 periodically monitoring the number of I / Os, and stores information indicating the relationship between the I / O frequency and the number of virtual pages.
  • the frequency distribution table 2135 includes a virtual volume ID column 21351, an average I / O count column 21352, and a virtual page number column 21353.
  • the virtual volume ID column 21351 stores identification information for specifying the virtual volume VVOL.
  • the average I / O count column 21352 stores the average I / O count of virtual pages.
  • the virtual page number column 21353 stores the number of virtual pages corresponding to the average number of I / Os.
  • the virtual page with the average I / O count “0” is “567”.
  • the average I / O count is stored as the I / O frequency information.
  • the present invention is not limited to this, and the total I / O count within the monitoring time may be stored, for example.
  • FIG. 9 is a conceptual diagram of the frequency distribution graph 2135A and the tier ranges TR1 to TR3.
  • the frequency distribution graph 2135A is a graph created based on the frequency distribution table 2135 by the frequency distribution calculation program 2137, and is used to calculate the tier ranges TR1 to TR3.
  • the vertical axis indicates the number of virtual pages, and the horizontal axis indicates the I / O frequency.
  • Tier ranges TR1 to TR3 are tier ratios (tier ranges) in the virtual volume VVOL calculated by the tier range calculation program 2138 using the frequency distribution graph 2135A.
  • the tier range TR1 is the tier ratio of tier # 00 in one virtual volume VVOL.
  • the tier range TR2 is the tier ratio of tier # 01
  • the tier range TR3 is the tier ratio of tier # 02.
  • the tear ranges TR1 to TR3 are determined as follows. That is, the tier arrangement calculation program 2138 sets an infinite number of I / Os as the upper limit value for the tier range TR1, and for the lower limit value, accumulates the number of virtual pages in the direction of less I / O frequency from the upper limit value. If the upper limit of the number of real pages that can be allocated by Tier # 00 is reached, the I / O frequency at that time is set as the lower limit.
  • the I / O frequency equal to or lower than the I / O frequency of the lower limit value of the tear range TR1 by a predetermined number of times is set as the upper limit value. Similar to the setting of the lower limit value of TR1, when the number of virtual pages is accumulated in the direction of less I / O frequency from the upper limit value, and the upper limit value of the actual page number that can be allocated by Tier # 01 is reached, Set the I / O frequency as the lower limit.
  • Tier Range TR3 For Tier Range TR3, set the I / O frequency equal to or lower than the I / O frequency of the lower limit value of Tier Range TR2 by a predetermined number of times as the upper limit value, and set 0 for the lower limit value. To do.
  • the virtual page included in any one of the tier ranges TR1 to TR3 is included in another tier range according to the charge amount, and the migration source and the migration destination are determined. .
  • the tier ratio is changed so that a virtual page with a low I / O frequency is included in the tier range TR2 among the virtual pages included in the tier range TR1.
  • the migration page table 2134 is updated with the migration source as tier # 00 and the migration destination as tier # 01.
  • the tier ratio is changed so that the virtual page with the high I / O frequency is included in the tier range TR1 among the virtual pages included in the tier range TR2, and the migration source is changed.
  • the migration page table 2134 is updated with tier # 01 and the migration destination as tier # 00.
  • the migration source and the migration destination are determined so that the virtual page is included in one of the tier ranges according to the charge amount, and the actual page is based on the decided migration source and migration destination (migration page table 2134).
  • FIG. 10 shows the processing procedure of the charge management process.
  • This charge management process is executed based on various programs such as the I / O control program 2136, the tear range calculation program 2138, and the charge amount calculation program 2139, and the processor 212 periodically or triggered by an operation by the administrator.
  • the processing subject will be described as the processor 212 or various programs.
  • the processor 212 when the processor 212 inputs a charging upper limit value from an administrator in the user interface 214 or a management device (not shown), the processor 212 sets the input charging upper limit value in the storage device 20 (SP11).
  • the I / O control program 2136 receives a write request issued from the host 10 for a predetermined monitoring period, writes the data corresponding to the write request to the real page, and migrates the data using the storage tiering function. Then, when the data is written to the migration-destination real page and the data is written to the real page, the write count management table 2131 is updated (SP12).
  • the charge amount calculation program 2139 refers to the write count management table 2131 and the write cost management table 2132 to calculate the total charge amount (charge total value) per fixed time (SP13).
  • the billing amount calculation program 2139 refers to the write count management table 2131 and acquires “60” times as the write count of the virtual page whose virtual page ID is “00000”.
  • the charge calculation program 2139 refers to the write cost management table 2132 and acquires “10” yen, “5” yen, or “1” yen as the write charge amount per time.
  • the charge amount calculation program 2139 calculates a difference value by subtracting the charge upper limit value registered in step SP11 from the charge total value calculated in step SP13 (SP14). Then, the billing amount calculation program 2139 determines whether the difference value is greater than 0, less than 0, or 0 (SP15).
  • the tear range calculation program 2138 calculates the tear range so as to decrease the charge total value in the next monitoring period (SP16).
  • the tear range calculation program 2138 calculates the tear range so as to increase the charge total value in the next monitoring period (SP17).
  • the tier range calculation program 2138 calculates the tier range so as to maintain the charge total value in the next monitoring period (SP18).
  • the I / O control program 2136 executes real page rearrangement based on the calculated tear range (SP19), and then ends this process.
  • FIG. 11 shows a processing procedure of the write count management table update process.
  • This write count management table update process is executed based on the I / O control program 2136 and the processor 212 when a write request issued from the host 10 is received.
  • the processing subject will be described as the I / O control program 2136.
  • the I / O control program 2136 when receiving a write request issued from the host 10 (SP21), the I / O control program 2136 writes data corresponding to the received write request into the cache area of the memory 213 (SP22). Next, the I / O control program 2136 refers to the allocation table 2133 and writes the data written in the cache area of the memory 213 to the real page (SP23).
  • the I / O control program 2136 increments the number of times in the write count column 21314 and the total I / O count column 21315 of the write count management table 2131 by +1.
  • the write count management table 2131 is updated (SP25), and this process ends.
  • the process of writing data to the real page and updating the write count management table 2131 when the I / O control program 2136 has received a write request issued from the host 10 has been described.
  • the I / O control program 2136 migrates data by the storage tiering function and executes relocation, data is read from the migration source real page and data is migrated to the migration destination real page.
  • the write count management table 2131 is updated in the same manner.
  • the write count management table 2131 is updated at the timing when the data written to the cache area of the memory 213 is written to the real page (at the destage timing) (SP23 and SP25).
  • the write count management table 2131 may be updated at a timing at which data is read from the cache area or data is written to the cache area in response to an I / O request issued from 10.
  • FIG. 12 shows a processing procedure of the tear range calculation process when the charge amount is decreased.
  • This tear range calculation process is executed based on the frequency distribution calculation program 2137, the tear range calculation program 2138, the charge amount calculation program 2139, and the processor 212 when the charge management process (FIG. 10) has shifted to step SP16.
  • the processing subject will be described as the tear range calculation program 2138 or the charge amount calculation program 2139.
  • the frequency distribution calculation program 2137 creates a frequency distribution graph 2135A with reference to the frequency distribution table 2135 (SP31).
  • the tier range calculation program 2138 assigns each tier to each virtual page according to the I / O frequency and calculates a tier range (SP32).
  • the tear range calculation program 2138 sets an infinite number of I / Os as the upper limit value of the tear range TR1 of the tier # 00 having the highest response performance.
  • the tier range calculation program 2138 sequentially assigns the real pages belonging to the tier # 00 to the virtual page in the direction of decreasing the I / O frequency from the upper limit value.
  • the I / O frequency at the time of arrival is set as the lower limit value of the tier range TR1.
  • the tier range calculation program 2138 sets the upper and lower limits in the same manner for the tiers # 01 and # 02 of the tiers # 01 and # 02, which are inferior in response performance to the tier # 00, and sets the tier ranges TR1 to TR3. .
  • the tier range calculation program 2138 for virtual pages having different allocation tiers before and after allocation, the migration destination tier ID column 21343 of the migration page table 2134 And the migration page table 2134 is updated (SP33).
  • the accounting amount calculation program 2139 assumes that the next monitoring period has the same number of writes as the previous monitoring period, and predicts when the real page is allocated to the virtual page based on the tear range calculated in step SP32.
  • the total charged amount (predicted charging total value) is calculated with reference to the write count management table 2131 and the write cost management table 2132 (SP34).
  • the tier range calculation program 2138 includes virtual pages included in the tier range (for example, tier range TR1) of the tier (for example, tier # 00) with high response performance so as to decrease the predicted charge total value calculated in step SP34.
  • the allocation source tier is changed so that a virtual page with a low I / O frequency is included in the tier range (eg, tier # TR2) of the tier with low response performance (eg, tier # 01) (SP35).
  • the tier range calculation program 2138 sequentially assigns virtual pages having a low I / O frequency among the virtual pages belonging to the tier # 00 having a high response performance to, for example, the tier # 01 having a response performance lower than that of the tier # 00.
  • the tier range calculation program 2138 changes the migration source tier ID column 21343 of the migration page table 2134 for virtual pages with different allocation tiers before and after the change after changing the allocation tier of the real page in step SP35. Then, the migration page table 2134 is updated (SP36).
  • the charge amount calculation program 2139 is predicted when a real page is allocated based on the migration page table 2134 updated in step SP36 on the assumption that the same number of writings as in the previous monitoring period exists in the next monitoring period.
  • the predicted total charge value is calculated with reference to the write count management table 2131 and the write cost management table 2132 (SP37).
  • the charge amount calculation program 2139 calculates a difference value by subtracting a predetermined charge upper limit value from the predicted charge total value calculated in step SP37 (SP38).
  • the tear range calculation program 2138 proceeds to step SP35 and repeats the above-described processing. On the other hand, when the difference value is 0, the predicted charge amount is the same as the charge upper limit value. Therefore, in this case, the tear range calculation program 2138 ends this process.
  • FIG. 13 shows a processing procedure of the tear range calculation process when the charge amount is increased.
  • This tear range calculation process is executed based on the tear range calculation program 2138, the charge amount calculation program 2139, and the processor 212 when the charge management process (FIG. 10) has shifted to step SP17.
  • the processing entity will be described as the tear range calculation program 2138 or the charge amount calculation program 2139.
  • steps SP41 to SP44 Since the processing of steps SP41 to SP44 is the same as that of steps SP31 to SP34 in FIG. 12, description thereof is omitted here.
  • the tier range calculation program 2138 allocates a virtual page with a high charge amount to a tier with high response performance so as to increase the predicted charge total value calculated at step SP44 (SP45).
  • the tier range calculation program 2138 sequentially assigns virtual pages with a high charge amount to tier # 00 with high response performance among virtual pages belonging to tier # 01 with low response performance.
  • step SP49 if the difference value is not 0, that is, if the predicted charge amount is still lower than the charge upper limit value, the tear range calculation program 2138 proceeds to step SP45 and repeats the above-described processing. On the other hand, when the difference value is 0, the predicted charge amount is the same as the charge upper limit value. Therefore, in this case, the tear range calculation program 2138 ends this process.
  • FIG. 14 shows a processing procedure of migration processing by the storage tiering function. This migration process is periodically executed based on the I / O control program 2136 and the processor 212. For convenience of explanation, the processing subject will be described as the I / O control program 2136.
  • the I / O control program 2136 refers to the migration page table 2134 and selects the first record of the migration page table 2134 (SP51). Next, the I / O control program 2136 changes the migration status of the selected record to “being migrated” and updates the migration page table 2134 (SP52).
  • the I / O control program 2136 refers to the migration page table 2134 and actually migrates the real page data allocated to the migration target virtual page from the migration source to the migration destination (SP53).
  • the I / O control program 2136 refers to the allocation table 2133, changes the migration destination information associated with the virtual page to be migrated, and updates the allocation table 2133 (SP54).
  • the I / O control program 2136 refers to the migration page table 2134, changes the migration status updated in step SP52 to “migrated”, and updates the migration page table 2134 (SP55).
  • the I / O control program 2136 determines whether the record selected in the migration page table 2134 is a terminal record (SP56). When the I / O control program 2136 obtains a negative result in the determination at step SP56, it selects the next record (SP57), proceeds to step SP52, and executes the above-described processing. On the other hand, if the I / O control program 2136 obtains a positive result in the determination at step SP56, it ends this process.
  • the charge amount is calculated according to the number of times of writing. Unfairness in between can be resolved. According to the present embodiment, since the data is transferred according to the billing amount so that the billing amount is close to the billing upper limit value, the billing amount can be easily predicted.
  • Storage system 10 Host 20 Storage device 21 Controller 22 Physical storage device 221 SSD 222 SAS 223 SATA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 データの書込み回数に応じて課金額を計算するストレージ装置において、種別の異なる論理ボリュームを提供する物理記憶デバイスと、種別の異なる論理ボリュームのそれぞれを応答性能の異なるティアに分類し、何れかのティアに属することとなった各論理ボリュームと、上位装置に提供する仮想ボリュームとを対応付けることによりI/O制御を実行するコントローラとを備え、コントローラは、仮想ボリュームを構成する何れかの仮想ページにライト要求が発行された場合、論理ボリュームを構成する何れかの実ページを仮想ページに割り当てて、実ページにデータを書き込むとともに書込み回数をカウントし、カウントする書込み回数に基づいて、一定時間当たりの課金額を計算し、一定時間当たりの課金額が課金上限値を超過しないようにティアレンジを算出し、算出したティアレンジに基づいて、実ページを再配置することを特徴とする。

Description

ストレージ装置及びストレージ装置の制御方法
 本発明は、ストレージ装置及びストレージ装置の制御方法に関し、特に書込み回数に基づく課金額に応じた階層制御を行うストレージ装置及びストレージ装置の制御方法に関する。
 特許文献1には、データ移行技術と、ストレージ階層化技術と、シンプロビジョニング(Thin Provisioning)と呼ばれる技術とを用いて、ページ単位でデータを移行する技術が開示されている。
 データ移行技術とは、第1の論理ボリュームに格納されているデータを第2の論理ボリュームに移行する技術であり、またストレージ階層化技術とは、複数の論理ボリュームを複数のティアの何れかに分類して、何れかのティアに分類した論理ボリュームを他のティアに移行する技術である。ティアには、高信頼性のティアや低コストのティアがある。
 またシンプロビジョニングとは、仮想的な論理ボリューム(仮想ボリューム)を構成する複数の仮想的な記憶領域(仮想ページ)に上位装置からライト要求があった場合、その仮想ページに実体的な記憶領域(実ページ)を割り当てて、その実ページにライト要求に対応するデータを書き込む技術をいう。
 また特許文献2には、上位装置がストレージ装置にアクセスする度合を示すアクセス度合情報を取得し、取得したアクセス度合情報に基づいて、ストレージサービス料金を算出する技術が開示されている。
 具体的にストレージサービス料金は、基本料金+アクセス回数×アクセス数毎の課金料金+アクセスブロック総数×アクセスブロック総数毎の課金料金、により算出するとしている。この技術によれば、あまり使用しないストレージ装置に対して顧客が支払う料金を抑えることができるとしている。
国際公開第2011/077489号 特開2006-209799号公報
 ところでクラウドのレンタルビジネスのように複数のユーザがストレージ装置内の論理ボリュームを共有する環境において、特許文献1に記載の技術を用いて従来通りユーザが使用する仮想ボリュームの使用容量に応じて課金しようとすると、データの書込み先や書込み回数が異なるユーザ間で不公平が生じる場合がある。
 例えばユーザが使用する仮想ボリュームの使用容量が同一であるからといって課金額を同一に設定した場合、SSD(Solid State Drive)から提供される論理ボリュームにデータが書き込まれる方が、SAS(Serial Attached SCSI)又はSATA(Serial ATA)から提供される論理ボリュームにデータが書き込まれるよりもユーザにとって利点が大きい。
 SSDは、SAS又はSATAよりも応答性能が高く、また書込み回数に比例して劣化するため交換が必要となる。すなわち高性能かつ高コストである。一方SAS又はSATAは、SSDよりも応答性能が低く書込み回数によってはほとんど劣化しないため交換を必要としない。すなわち低性能かつ低コストである。
 従って同一の課金額であれば、データの書込み先がSSDから提供される論理ボリュームである方がユーザにとっては利点が大きく、またSSDにデータが書き込まれる書込み回数の多い方がユーザにとっては利点が大きいことになる。よってこうした利点の大きいユーザと、SAS又はSATAにデータが書き込まれるユーザとの間で不公平が生じる。
 一方で特許文献1に記載の技術と、特許文献2に記載の技術とを単に組み合わせて、実際に物理記憶デバイス(SSD、SAS又はSATA)にデータを書き込んだ書込み回数に応じて課金しようとすると、書き込み回数を考慮して書き込みを行うユーザは稀であり、書き込みにより課金される額を予測することができないという課題が生じる。
 例えばユーザが仮想ボリューム内の仮想ページにデータを書き込んだ書込み回数が1回だけの場合であっても、ストレージ階層化技術によりその仮想ページに割り当てられる実ページが複数のティア間を移行する。そしてその移行の度に、データが移行先の実ページに書き込まれることになる。すなわちユーザが意図しないところでデータの書き込みが発生するため、課金額を予測することができない。
 本発明は以上の点を考慮してなされたもので、書込み回数に応じて課金する場合の課金額を予測し得るストレージ装置及びストレージ装置の制御方法を提案するものである。
 かかる課題を解決するために、本発明におけるストレージ装置は、データの書込み回数に応じて課金額を計算するストレージ装置であって、種別の異なる論理ボリュームを提供する物理記憶デバイスと、種別の異なる論理ボリュームのそれぞれを応答性能の異なるティアに分類し、何れかのティアに属することとなった各論理ボリュームと、上位装置に提供する仮想ボリュームとを対応付けることによりI/O制御を実行するコントローラとを備え、コントローラは、仮想ボリュームを構成する何れかの仮想ページにライト要求が発行された場合、論理ボリュームを構成する何れかの実ページを仮想ページに割り当てて、実ページにデータを書き込むとともに書込み回数をカウントし、カウントする書込み回数に基づいて、一定時間当たりの課金額を計算し、一定時間当たりの課金額が課金上限値を超過しないようにティアレンジを算出し、算出したティアレンジに基づいて、実ページを再配置することを特徴とする。
 またかかる課題を解決するために、本発明におけるストレージ装置の制御方法は、データの書込み回数に応じて課金額を計算するストレージ装置の制御方法であって、物理記憶デバイスが、種別の異なる論理ボリュームを提供する第1のステップと、コントローラが、種別の異なる論理ボリュームのそれぞれを応答性能の異なるティアに分類し、何れかのティアに属することとなった各論理ボリュームと、上位装置に提供する仮想ボリュームとを対応付けることによりI/O制御を実行する第2のステップとを備え、第2のステップにおいて、仮想ボリュームを構成する何れかの仮想ページにライト要求が発行された場合、論理ボリュームを構成する何れかの実ページを仮想ページに割り当てて、実ページにデータを書き込むとともに書込み回数をカウントする第3のステップと、カウントする書込み回数に基づいて、一定時間当たりの課金額を計算する第4のステップと、一定時間当たりの課金額が課金上限値を超過しないようにティアレンジを算出する第5のステップと、算出したティアレンジに基づいて、実ページを再配置する第6のステップとを備えることを特徴とする。
 本発明によれば、書込み回数に応じて課金する場合の課金額を予測することができる。
本実施の形態における課金管理処理の概要を説明するための概要図である。 本実施の形態におけるストレージシステムの全体構成図である。 メモリの内部構成図である。 書込み回数管理テーブルの論理構成図である。 書込みコスト管理テーブルの論理構成図である。 アロケーションテーブルの論理構成図である。 移行ページテーブルの論理構成図である。 度数分布テーブルの論理構成図である。 度数分布グラフ及びティアレンジの概念図を示す。 課金管理処理を示すフローチャートである。 書込み回数管理テーブル更新処理を示すフローチャートである。 課金額を減少させるティアレンジ算出処理を示すフローチャートである。 課金額を増加させるティアレンジ算出処理を示すフローチャートである。 マイグレーション処理を示すフローチャートである。
 以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態の概要
 図1は、本実施の形態におけるストレージシステム1の概要及び課金管理処理の概要を示す。本実施の形態は、ストレージシステム1において、ホスト10からSAN(Storage Area Network)30を介して仮想的な論理ボリューム(仮想ボリューム)VVOLにライト要求が発行された場合、その仮想ボリュームVVOLに対応付けられている実体的な論理ボリュームRVOLにデータを書き込み、この論理ボリュームRVOLに対する書き込みに応じてホスト10のユーザに対する課金額を計算する構成を採用して、使用容量に応じて課金する場合に生じるユーザ間の不公平を解消しようとするものである。
 また本実施の形態におけるストレージ装置20には、ストレージ階層化機能が搭載される。ストレージ階層化機能とは、I/O頻度が多いデータは高性能のティアに属する論理ボリュームRVOLに格納し、I/O頻度が少ないデータは低性能のティアに属する論理ボリュームRVOLに格納するように、実ページに格納されているデータをティア間で移行する機能であり、コストを抑えつつ処理の高速化を実現しようとする機能である。
 この場合、仮想ページに割り当てる実ページがティア間で移行する度に、ユーザが意図しないところでデータの書き込みが発生し、課金額を予測することができない。そこで本実施の形態では、課金額がユーザにより予め定められた課金上限値の近傍となるように、仮想ボリュームVVOLにおけるティア比率(ティアレンジ)を変更して実ページの移行元及び移行先を変更する構成を採用して、課金額が課金上限値を超過することを防止しようとするものである。
 さらに本実施の形態では、課金額が課金上限値よりも低い場合にはパフォーマンスを向上させるようにティアレンジを変更する構成を採用して、パフォーマンスを向上させつつ課金額が課金上限値を超過することを防止しようとするものである。
 まず本実施の形態の前提となる構成について説明すると、ストレージ装置20におけるコントローラ21は、SSD221から提供される論理ボリュームRVOL(SSD)、SAS222から提供される論理ボリュームRVOL(SAS)及びSATA223から提供される論理ボリュームRVOL(SATA)のそれぞれをプールボリュームPVOLと呼ばれる実ページの集合領域に集約して管理しており、またプールボリュームPVOL内をティア#00、#01及び#02により階層化して管理している。
 またコントローラ21は、同一種類のティアには同一種類の論理ボリュームRVOLが属するように管理している。ここではティア#00には、論理ボリュームRVOL(SSD)が属し、ティア#01には、論理ボリュームRVOL(SAS)が属し、ティア#02には、論理ボリュームRVOL(SATA)が属するように管理されている。これらのティア#00~#02のうち、ティア#00が最も応答性能及びコストが高く、次いでティア#01が応答性能及びコストが高く、ティア#02が最も応答性能及びコストが低い。
 これらティア#00~#02に属する各論理ボリュームRVOLはそれぞれ、複数の実体的なページ(実ページ)から構成されており、コントローラ21は、この実ページを仮想ボリュームVVOL内の仮想的な記憶領域(仮想ページ)に動的に割り当てることで、仮想ページにライト要求があった場合にSSD221、SAS222又はSATA223の何れかの物理記憶デバイスに実際にデータを書き込む。
 またコントローラ21は、仮想ボリュームVVOLを構成する全ての仮想ページのI/O頻度を常時監視しており、監視結果として得られたI/O頻度に基づいて、実ページを再配置する(ストレージ階層化機能)。
 例えばコントローラ21は、仮想ボリュームVVOL内の一の仮想ページにライト要求があった場合、ティア#00に属する論理ボリュームRVOL(SSD)内の一の実ページにデータを一旦書き込んだ後、所定期間、仮想ページのI/O頻度を監視する。そしてコントローラ21は、監視結果として得られたこの仮想ページのI/O頻度が所定のI/O頻度以下の場合には、実ページに書き込んだデータをティア#00からティア#01に属する論理ボリュームRVOL(SAS)内のフリーの実ページに移行して、仮想ページに対応付けることにより、実ページを再配置する。
 次いで本実施の形態における課金管理処理の概要について説明する。まずストレージ装置20におけるコントローラ21は、SAN30を介してホスト10から発行されたライト要求を受領すると(SP1)、このライト要求において指定された仮想ページVP1にティア#00に属する論理ボリュームRVOL内の実ページRP1が割り当てられているか否かを判断し、仮想ページVP1に実ページRP1が割り当てられている場合、この実ページRP1にライト要求に対応するデータを書き込む(SP2)。
 なおコントローラ21は、仮想ページVP1に実ページRP1が割り当てられていない場合、仮想ページVP1に実ページRP1を割り当てた後、この実ページRP1にライト要求に対応するデータを書き込む。
 実ページRP1は、SSD221が提供する論理ボリュームRVOL内の実体的な記憶領域であり、実ページRP1にデータが書き込まれるということは、すなわちSSD221に実際にデータが書き込まれるということである。従ってこのときコントローラ21は、実際にSSD221にデータを書き込んだので書込み回数をカウントする(SP3)。
 一方でコントローラ21は、ストレージ階層化機能により仮想ページVP1のI/O頻度を常時監視するとともに、課金額を常時監視しており、課金額が予め設定された課金上限値を超過すると予測される場合には、課金額を減少させるように実ページを再配置する。逆にコントローラ21は、課金額が課金上限値よりも低いと予測される場合には、課金額を増加させる(パフォーマンスを向上させる)ように実ページを再配置する。
 例えばコントローラ21は、課金額が課金上限値を超過すると予測される場合、かつ、仮想ページVP1のI/O頻度が少ない場合(I/O頻度が所定値以下の場合)には、応答性能が高く単位回数当たりの課金額が高いティア#00のティアレンジを変更(縮小)して、仮想ページVP1に割り当てるべきティアをティア#00からこのティア#00よりも応答性能の低いティア#01に変更する。
 そしてコントローラ21は、仮想ページVP1に割り当てられている実ページRP1のデータを実ページRP2に移行し(SP4)、移行先の実ページRP2と仮想ページVP1とを対応付けて(SP5)、実ページを再配置する。そしてコントローラ21は、このとき実際にSAS222にデータを書き込んだので書込み回数をカウントする(SP6)。
 コントローラ21は、ステップSP3及びSP6においてカウントした書込み回数に基づいて課金額を計算し、課金額が課金上限値を超過するか否かを判断する。なお課金額の計算手法として例えばコントローラ21は、SSD221に1回書き込んだ場合の課金額(単位回数当たりの課金額)×書込み回数、のように課金額を計算する。本実施の形態において単位回数当たりの課金額は、SSD221、SAS222又はSATA223のそれぞれで異なるように設定される(図5)。
 そしてコントローラ21は、超過する場合には課金額を減少させるように実ページを再配置し、低い場合にはパフォーマンスを向上させるように実ページを再配置して、実ページの再配置処理を繰り返すことにより、課金額が課金上限値近傍となるように制御する。
 なおここではSSD221及びSAS222が提供する論理ボリュームRVOL内の実ページにデータが書き込まれる場合について説明したが、SATA223が提供する論理ボリュームRVOL内の実ページにデータが書き込まれた場合も同様に課金するとしてもよい。逆にSSD221にデータが書き込まれた場合に限って課金し、SAS222及びSATA223にデータが書き込まれた場合には課金しないようにしてもよい。
 このように本実施の形態によれば、書込み回数に応じて課金するようにしたので、使用容量に応じて課金する場合と比較して、ユーザ間に生じる不公平を解消することができる。また本実施の形態によれば、設定される課金額に応じてティアレンジを変更して、課金額を調整するようにしたので、課金額を容易に予測することができる。また本実施の形態によれば、予測される課金額が課金上限値を超過する場合には課金額を減少させるようにティアレンジを変更し、逆に予測される課金額が課金上限値よりも低い場合にはパフォーマンスを向上させるようにティアレンジを変更するようにして、パフォーマンスを向上させつつ課金額を予測することができる。また、書込み回数を意識しないユーザが、不意に高額の請求を受けることを防ぐこともできる。
 以下図面を参照して、本実施の形態におけるストレージ装置及び課金方法の詳細について説明する。
(2)全体構成
 図2は、ストレージシステム1の全体構成を示す。ストレージシステム1は、複数のホスト10と、ストレージ装置20とがSAN30により通信可能に接続して構成される。
 ホスト10は、プロセッサ、メモリ及び通信機器等から構成される一般的なコンピュータであり、SAN30に接続されているストレージ装置20にI/O要求を発行する。I/O要求には、書込み先又は読込み先を特定するための情報が含まれており、例えば仮想ボリュームVVOLのID及び仮想ページのIDが含まれる。なお仮想ボリュームVVOLのIDとしてはLUN(Logical Unit Number)があり、仮想ページのIDとしてはLBA(Logical Block Address)がある。
 ストレージ装置20は、複数のコントローラ21及び複数の物理記憶デバイス22から構成され、ホスト10からのI/O要求を受領すると、I/O要求先の仮想ボリュームVVOL及び仮想ページを特定し、特定した仮想ボリュームVVOL及び仮想ページに実ページの割り当てを行い、この実ページにI/O要求に対応するデータの読み書きを行う。
 コントローラ21は、ホストインタフェース211、プロセッサ212、メモリ213、ユーザインタフェース214及びディスクインタフェース215から構成される。
 ホストインタフェース211は、SAN30を介してホスト10に接続されるインタフェースであり、ホスト10からI/O要求を受領すると、受領したI/O要求をプロセッサ212に転送する。
 プロセッサ212は、コントローラ21の動作を統括的に制御する装置であり、例えばホストインタフェース211からI/O要求を受領すると、受領したI/O要求に対応する処理を実行する。
 メモリ213は、揮発性又は不揮発性のメモリであり、各種プログラム及び各種テーブルを格納する。ユーザインタフェース214は、ユーザからの操作を入力するインタフェースであり、例えばキーボード、マウス及びディスプレイである。
 ディスクインタフェース215は、複数の物理記憶デバイス22に接続されるインタフェースであり、物理記憶デバイス22に格納されているデータを読み込んでメモリ213に書き込んだり、逆にメモリ213に一時的に格納されているデータを物理記憶デバイス22に書き込んだりする。
 物理記憶デバイス22は、複数種類の物理記憶デバイスから構成され、例えば複数のSSD221、複数のSAS222及び複数のSATA223から構成される。これら各種類の物理記憶デバイス22は、それぞれRAID(Redundant Array Independent Disks)グループRG1~RG3を構成し、これらRAIDグループRG1~RG3から応答性能の異なるそれぞれの論理ボリュームRVOLが提供される。これら論理ボリュームRVOLは、コントローラ21によりプールボリュームPVOLにおいて集約されるとともに、応答性能毎に階層化したティア#00~#02のそれぞれに配置される。
(3)内部構成
 図3は、メモリ213の内部構成を示す。メモリ213には、書込み回数管理テーブル2131、書込みコスト管理テーブル2132、アロケーションテーブル2133、移行ページテーブル2134及び度数分布テーブル2135が格納される。これらの各種テーブルについては後述する(図4~図8)。
 またメモリ213には、I/O制御プログラム2136、度数分布計算プログラム2137、ティアレンジ計算プログラム2138及び課金額計算プログラム2139が格納される。I/O制御プログラム2136は、ホスト10からのI/O要求に対応する処理(実ページの割り当てなど)を実行するためのプログラムであり、また定期的に実ページに格納されているデータを他の実ページに移行するマイグレーション処理を実行するためのプログラムである。
 度数分布計算プログラム2137は、度数分布テーブル2135を作成するためのプログラムである。ティアレンジ計算プログラム2138は、度数分布テーブル2135を参照して、ティアティアレンジを計算するためのプログラムである。課金額計算プログラム2139は、書込み回数に応じて課金額を計算するためのプログラムである。これらの各種プログラムが実行する処理の詳細については後述する(図10~図14)。
(4)各構成の詳細
 図4は、書込み回数管理テーブル2131の論理構成を示す。書込み回数管理テーブル2131は、I/O制御プログラム2136がI/O処理を実行する際に作成されるテーブルであり、課金額を計算するために必要なデータの書込み回数及び合計I/O回数が格納される。
 具体的に書込み回数管理テーブル2131は、仮想ボリュームID欄21311、ユーザID欄21312、仮想ページID欄21313、書込み回数欄21314及び合計I/O回数欄21315から構成される。
 仮想ボリュームID欄21311には、仮想ボリュームVVOLを特定するための識別情報が格納される。ユーザID欄21312には、ユーザを特定するための識別情報が格納され、仮想ページID欄21313には、仮想ページを特定するための識別情報が格納される。
 また書込み回数欄21314には、仮想ページに割り当てられた実ページに実際にデータを書き込んだ書込み回数が格納され、合計I/O回数欄21315には、仮想ページに割り当てられた実ページに実際にデータを書き込んだ書込み回数及び実ページからデータを読み込んだ読込み回数の合計が格納される。
 従って図4の場合、仮想ボリュームIDが「00」の仮想ボリュームVVOLは、ユーザIDが「000」のユーザ(ホスト10)により使用されており、この仮想ボリュームVVOLを構成する複数の仮想ページのうち、仮想ページIDが「00000」の仮想ページについては、実際の書込み回数が「60」回であり、合計I/O回数が「100」回であることが示されている。
 なお書込み回数欄21314及び合計I/O回数欄21315には、物理記憶デバイス22の種別毎の書込み回数及び合計I/O回数が格納されるとしてもよい。例えば書込み回数欄21314には、SSD221に対する書込み回数が40回、SAS222に対する書込み回数が10回、SATA223に対する書込み回数が10回のように物理記憶デバイス22の種別毎の書込み回数が格納されるとしてもよい。
 図5は、書込みコスト管理テーブル2132の論理構成を示す。書込みコスト管理テーブル2132は、ストレージ装置20において管理者が予め設定することにより作成されるテーブルであり、データを実際に書き込んだ場合のコストが格納される。
 具体的に書込みコスト管理テーブル2132は、課金項目欄21321及び課金額欄21322から構成される。課金項目欄21321には、課金項目が格納され、課金額項目欄21322には、課金額が格納される。
 従って図5の場合、課金項目が「1回当りの書込み課金額(¥/回)」である場合のSSD221に対する単位回数当たりの書込み課金額は「10」円であり、SAS222に対する単位回数当たりの書込み課金額は「5」円であり、SATA223に対する単位回数当たりの書込み課金額は「1」円であることが定められている。
 また課金項目が「容量当たりの保管課金額(¥/KB)」である場合のSSD221における保管課金額は「20」円であり、SAS222における保管課金額は「15」円であり、SATA223における保管課金額は「10」円であることが定められている。
 なおここではSAS222及びSATA223に対する単位回数当たりの書込み課金額は「5」円及び「1」円として定められているとしたが、SAS222及びSATA223は書込み回数によっては劣化しないため「0」円として定めてもよい。そして容量当たりの保管課金額だけで課金するとしてもよい。
 またここでは単位書込み回数当たりの課金額が規定されているが、これに限らず、例えば書込みデータ量に応じて課金するように、単位書込みデータ量当たりの課金額が規定されるとしてもよい。フラッシュメモリは消去回数で劣化する。一方で書込み回数と消去回数とは、ほぼ比例するものの、書込みデータ量が大きい場合には書込み回数は1回であっても消去回数は複数回となる場合がある。そこで書込み回数がより近く消去回数と比例するように、書き込みデータ量に応じて課金するようにしてもよい。
 図6は、アロケーションテーブル2133の論理構成を示す。アロケーションテーブル2133は、I/O制御プログラム2136が仮想ページに実ページを割り当てる際に作成されるテーブルであり、仮想ページと実ページとの対応関係を示す情報が格納される。
 具体的にアロケーションテーブル2133は、仮想ボリュームID欄21331、仮想ページID欄21332、プールID欄21333、実ページID欄21334及びティアID欄21335から構成される。
 仮想ボリュームID欄21331には、仮想ボリュームVVOLを特定するための識別情報が格納される。仮想ページID欄21332には、仮想ページを特定するための識別情報が格納される。プールID欄21333には、プールボリュームPVOLを特定するための識別情報が格納される。実ページID欄21334には、実ページを特定するための識別情報が格納される。ティアID欄21335には、ティアを特定するための識別情報が格納される。
 従って図6の場合、仮想ボリュームIDが「00」の仮想ボリュームVVOLは、仮想ページIDが「00000」、「00001」及び「00002」の複数の仮想ページを含んで構成されており、このうちの「00000」の仮想ページに割り当てられた実ページは、プールIDが「000」のプールボリュームPVOLに属し、実ページIDが「00010」であり、ティアIDが「01」のティアに属していることが示されている。
 なお本実施の形態においてこのアロケーションテーブル2133は、ホスト10のユーザも管理することができるようにストレージ装置20のメモリ213に格納される他、例えばストレージ装置20の物理記憶デバイス22に格納されるとしてもよい。この場合、ホスト10はストレージ装置20にリード要求を発行して、このアロケーションテーブル2133を取得することができる。
 図7は、移行ページテーブル2134の論理構成を示す。移行ページテーブル2134は、I/O制御プログラム2136が実ページに格納されているデータを他のティアに属する実ページに移行する場合に作成されるテーブルであり、移行元のティアと移行先のティアとの対応関係を示す情報及びステータスが格納される。
 具体的に移行ページテーブル2134は、仮想ページID欄21341、移行元ティアID欄21342、移行先ティアID欄21343及び移行ステータス欄21344から構成される。
 仮想ページID欄21341には、仮想ページを特定するための識別情報が格納される。移行元ティアID欄21342には、仮想ページに割り当てられた実ページが属する移行元のティアの識別情報が格納される。移行先ティアID欄21343には、実ページに格納されているデータを移行する場合の移行先のティアの識別情報が格納される。移行ステータス欄21344には、移行状態が格納される。
 従って図7の場合、仮想ページIDが「10001」の仮想ページに割り当てられている実ページは、移行元ティアIDが「00」のティアに属し、この実ページに格納されているデータは、移行先ティアIDが「01」のティアに属する実ページに移行されることが示されている。またこの実ページに格納されているデータの移行状態は、既に「移行済」であることが示されている。
 図8は、度数分布テーブル2135の論理構成を示す。度数分布テーブル2135は、コントローラ21が定期的にI/O回数をモニタリングして作成されるテーブルであり、I/O頻度と仮想ページ数との関係を示す情報が格納される。
 具体的に度数分布テーブル2135は、仮想ボリュームID欄21351、平均I/O回数欄21352及び仮想ページ数欄21353から構成される。仮想ボリュームID欄21351には、仮想ボリュームVVOLを特定するための識別情報が格納される。平均I/O回数欄21352には、仮想ページの平均I/O回数が格納される。仮想ページ数欄21353には、平均I/O回数に対応する仮想ページ数が格納される。
 従って図8の場合、仮想ボリュームIDが「00」の仮想ボリュームVVOLにおいて、平均I/O回数が「0」回の仮想ページは「567」ページあることが示されている。なおここではI/O頻度の情報として平均I/O回数が格納されるとしたが、これに限らず、例えば監視時間内における合計I/O回数が格納されるとしてもよい。
 図9は、度数分布グラフ2135A及びティアレンジTR1~TR3の概念図を示す。度数分布グラフ2135Aは、度数分布計算プログラム2137により度数分布テーブル2135に基づいて作成されるグラフであり、ティアレンジTR1~TR3を算出するために用いられる。縦軸は仮想ページ数を示し、横軸はI/O頻度を示す。
 従って図9の場合、一の仮想ボリュームVVOLを構成する複数の仮想ページについて、I/O頻度が少ない仮想ページが多く、I/O頻度が多くなるに連れて、対応する仮想ページが少なくなっていることが示されている。
 ティアレンジTR1~TR3は、ティアレンジ計算プログラム2138が度数分布グラフ2135Aを用いて算出する仮想ボリュームVVOLにおけるティア比率(ティアレンジ)である。ティアレンジTR1は、一の仮想ボリュームVVOLにおけるティア#00のティア比率である。同様にティアレンジTR2は、ティア#01のティア比率であり、ティアレンジTR3は、ティア#02のティア比率である。
 ティアレンジTR1~TR3は、次のように決定される。すなわちティアレンジ計算プログラム2138は、ティアレンジTR1について、上限値として無限大のI/O回数を設定し、下限値については、上限値からI/O頻度が少ない方向に仮想ページ数を累計していき、ティア#00が割り当て可能な実ページ数の上限値に到達した場合、その時点のI/O頻度を下限値として設定する。
 ティアレンジTR2については、ティアレンジTR1の下限値のI/O頻度と同一又はそのI/O頻度よりも所定回数分だけ多いI/O頻度を上限値として設定し、下限値については、ティアレンジTR1の下限値の設定と同様、上限値からI/O頻度が少ない方向に仮想ページ数を累計していき、ティア#01が割り当て可能な実ページ数の上限値に到達した場合、その時点のI/O頻度を下限値として設定する。
 ティアレンジTR3については、ティアレンジTR2の下限値のI/O頻度と同一又はそのI/O頻度よりも所定回数分だけ多いI/O頻度を上限値として設定し、下限値については0を設定する。
 そして本実施の形態においては、このティアレンジTR1~TR3の何れかのティアレンジに含まれる仮想ページを課金額に応じて他のティアレンジに含ませるようにして、移行元と移行先を決定する。
 例えば課金額が予め設定された課金上限値を超過する場合、ティアレンジTR1に含まれる仮想ページのうち、I/O頻度の少ない仮想ページがティアレンジTR2に含まれるようにティア比率を変更して、移行元をティア#00とし、移行先をティア#01として移行ページテーブル2134を更新する。
 また課金額が課金上限値よりも低い場合、ティアレンジTR2に含まれる仮想ページのうち、I/O頻度の多い仮想ページがティアレンジTR1に含まれるようにティア比率を変更して、移行元をティア#01とし、移行先をティア#00として移行ページテーブル2134を更新する。
 このように課金額に応じて仮想ページを何れかのティアレンジに含ませるようにして移行元及び移行先を決定し、決定した移行元及び移行先(移行ページテーブル2134)に基づいて、実ページの再配置を実行することにより、課金額が課金上限値を超過しない範囲でストレージシステム1全体のパフォーマンスを向上させつることができる。
(5)フローチャート
 図10は、課金管理処理の処理手順を示す。この課金管理処理は、定期的又は管理者の操作を契機として、I/O制御プログラム2136、ティアレンジ計算プログラム2138及び課金額計算プログラム2139の各種プログラムと、プロセッサ212とに基づいて実行される。説明の便宜上、処理主体をプロセッサ212又は各種プログラムとして説明する。
 まずプロセッサ212は、ユーザインタフェース214又は図示しない管理装置において管理者からの課金上限値を入力すると、入力した課金上限値をストレージ装置20において設定する(SP11)。
 次いでI/O制御プログラム2136は、予め定められた監視期間、ホスト10から発行されたライト要求を受領してライト要求に対応するデータを実ページに書込み、またストレージ階層化機能によりデータを移行して移行先の実ページにデータを書き込み、実ページにデータを書き込んだ場合には書込み回数管理テーブル2131を更新する(SP12)。
 次いで課金額計算プログラム2139は、書込み回数管理テーブル2131及び書込みコスト管理テーブル2132を参照して、一定時間当たりの課金額の合計(課金合計値)を計算する(SP13)。
 例えば課金額計算プログラム2139は、書込み回数管理テーブル2131を参照して、仮想ページIDが「00000」の仮想ページの書込み回数として「60」回を取得する。一方で課金額計算プログラム2139は、書込みコスト管理テーブル2132を参照して、1回当りの書込み課金額として「10」円、「5」円又は「1」円を取得する。
 そして課金額計算プログラム2139は、「60」回の書込みが全てSSD221に対するものである場合、60回×10円=600円、というように課金額を計算し、これを仮想ボリュームVVOL内の全ての仮想ページについて実行することにより、仮想ボリュームVVOLに対する課金合計値を計算する。
 次いで課金額計算プログラム2139は、ステップSP13で計算した課金合計値から、ステップSP11で登録した課金上限値を差し引いて、差分値を算出する(SP14)。そして課金額計算プログラム2139は、差分値が0より大きいか、0より小さいか、或いは、0であるかのうちの何れであるかを判断する(SP15)。
 差分値が0より大きい場合、課金合計値が課金上限値を超過していることになる。よってティアレンジ計算プログラム2138は、次の監視期間において、課金合計値を減少させるようにティアレンジを算出する(SP16)。
 差分値が0より小さい場合、課金合計値が課金上限値よりも少ないことになる。よってティアレンジ計算プログラム2138は、次の監視期間において、課金合計値を増加させるようにティアレンジを算出する(SP17)。
 差分値が0である場合、課金合計値が課金上限値と同一であることになる。よってティアレンジ計算プログラム2138は、次の監視期間において、課金合計値を維持するようにティアレンジを算出する(SP18)。
 次いでI/O制御プログラム2136は、算出したティアレンジに基づいて、実ページの再配置を実行した後(SP19)、本処理を終了する。
 図11は、書込み回数管理テーブル更新処理の処理手順を示す。この書込み回数管理テーブル更新処理は、ホスト10から発行されたライト要求を受領したことを契機として、I/O制御プログラム2136及びプロセッサ212に基づいて実行される。説明の便宜上、処理主体をI/O制御プログラム2136として説明する。
 まずI/O制御プログラム2136は、ホスト10から発行されたライト要求を受領すると(SP21)、受領したライト要求に対応するデータをメモリ213のキャッシュ領域に書き込む(SP22)。次いでI/O制御プログラム2136は、アロケーションテーブル2133を参照して、メモリ213のキャッシュ領域に書き込んだデータを実ページに書き込む(SP23)。
 次いでI/O制御プログラム2136は、ディスクインタフェース215からライト完了報告を受領すると(SP24)、書込み回数管理テーブル2131の書込み回数欄21314及び合計I/O回数欄21315の回数を+1だけインクリメントすることにより書込み回数管理テーブル2131を更新して(SP25)、本処理を終了する。
 なおここではI/O制御プログラム2136がホスト10から発行されたライト要求を受領したことを契機として、実ページにデータを書き込むとともに書込み回数管理テーブル2131を更新する処理について述べたが、必ずしもこれに限らず、I/O制御プログラム2136がストレージ階層化機能によりデータを移行して再配置を実行したことを契機として、移行元の実ページからデータを読み込んだ場合及び移行先の実ページにデータを書き込んだ場合、同様に書込み回数管理テーブル2131を更新する。
 またここではメモリ213のキャッシュ領域に書き込んだデータを実ページに書き込んだタイミングで(デステージのタイミングで)、書込み回数管理テーブル2131を更新するとしたが(SP23及びSP25)、これに限らず、ホスト10から発行されたI/O要求に応じてキャッシュ領域からデータを読み込む又はキャッシュ領域にデータを書き込むタイミングで、書込み回数管理テーブル2131を更新するとしてもよい。
 図12は、課金額を減少させる場合のティアレンジ算出処理の処理手順を示す。このティアレンジ算出処理は、課金管理処理(図10)がステップSP16に移行したことを契機として、度数分布計算プログラム2137、ティアレンジ計算プログラム2138、課金額計算プログラム2139及びプロセッサ212に基づいて実行される。説明の便宜上、処理主体をティアレンジ計算プログラム2138又は課金額計算プログラム2139として説明する。
 まず度数分布計算プログラム2137は、度数分布テーブル2135を参照して、度数分布グラフ2135Aを作成する(SP31)。次いでティアレンジ計算プログラム2138は、I/O頻度に応じて各仮想ページに各ティアを割り当ててティアレンジを算出する(SP32)。
 例えばティアレンジ計算プログラム2138は、図9においても説明したように、応答性能の最も高いティア#00のティアレンジTR1の上限値として無限大のI/O回数を設定する。一方、下限値についてティアレンジ計算プログラム2138は、上限値からI/O頻度が少ない方向にこのティア#00に属する実ページを仮想ページに順に割り当てていき、割り当てていった実ページ数の累計がティア#00が割り当てることのできる実ページ数の上限値近傍に到達した場合、その到達した時点のI/O頻度をティアレンジTR1の下限値として設定する。ティアレンジ計算プログラム2138は、ティア#00よりも応答性能が劣るティア#01及び#02のティアレンジTR2及びTR3についても同様に上限値及び下限値を設定して、ティアレンジTR1~3を設定する。
 次いでティアレンジ計算プログラム2138は、ステップSP32において各仮想ページに各ティアの実ページを割り当てた後、割り当ての前後で割り当て元のティアが異なる仮想ページについては移行ページテーブル2134の移行先ティアID欄21343を変更して移行ページテーブル2134を更新する(SP33)。
 次いで課金額計算プログラム2139は、次回の監視期間においても前回の監視期間と同じ書込み回数があると仮定して、ステップSP32で算出したティアレンジに基づいて実ページを仮想ページに割り当てた場合に予測される課金額の合計(予測課金合計値)を書込み回数管理テーブル2131及び書込みコスト管理テーブル2132を参照して計算する(SP34)。
 次いでティアレンジ計算プログラム2138は、ステップSP34で計算した予測課金合計値を減少させるように、応答性能の高いティア(例えばティア#00)のティアレンジ(例えばティアレンジTR1)に含まれる仮想ページのうち、I/O頻度の少ない仮想ページを応答性能の低いティア(例えばティア#01)のティアレンジ(例えばティアレンジTR2)に含ませるようにして割り当て元のティアを変更する(SP35)。
 例えばティアレンジ計算プログラム2138は、応答性能の高いティア#00に属する仮想ページのうち、I/O頻度の少ない仮想ページをこのティア#00よりも応答性能の低い例えばティア#01に順次割り当てる。
 次いでティアレンジ計算プログラム2138は、ステップSP35において実ページの割り当て元のティアを変更した後、変更の前後で割り当て元のティアが異なる仮想ページについては移行ページテーブル2134の移行先ティアID欄21343を変更して移行ページテーブル2134を更新する(SP36)。
 次いで課金額計算プログラム2139は、次回の監視期間においても前回の監視期間と同じ書込み回数があると仮定して、ステップSP36で更新した移行ページテーブル2134に基づいて実ページを割り当てた場合に予測される予測課金合計値を書込み回数管理テーブル2131及び書込みコスト管理テーブル2132を参照して計算する(SP37)。
 次いで課金額計算プログラム2139は、ステップSP37で計算した予測課金合計値から予め定められた課金上限値を差し引いて、差分値を算出する(SP38)。
 差分値が0でない場合、すなわち予測課金額が課金上限値よりも依然として高い場合、ティアレンジ計算プログラム2138は、ステップSP35に移行して上述してきた処理を繰り返す。これに対して差分値が0の場合、予測課金額が課金上限値と同一であることになる。よってこの場合、ティアレンジ計算プログラム2138は本処理を終了する。
 図13は、課金額を増加させる場合のティアレンジ算出処理の処理手順を示す。このティアレンジ算出処理は、課金管理処理(図10)がステップSP17に移行したことを契機として、ティアレンジ計算プログラム2138、課金額計算プログラム2139及びプロセッサ212に基づいて実行される。説明の便宜上、処理主体をティアレンジ計算プログラム2138又は課金額計算プログラム2139として説明する。
 ステップSP41~SP44の処理は、図12のステップSP31~SP34と同様であるため、ここでの説明は省略する。
 ティアレンジ計算プログラム2138は、ステップSP44で計算した予測課金合計値を増加させるように、課金額の高い仮想ページを応答性能の高いティアに割り当てる(SP45)。
 例えばティアレンジ計算プログラム2138は、応答性能の低いティア#01に属する仮想ページのうち、課金額の高い仮想ページを応答性能の高いティア#00に順次割り当てる。
 ステップSP46~SP49の処理は、図12のステップSP36~SP39と同様であるため、ここでの説明は省略する。なおステップSP49においてティアレンジ計算プログラム2138は、差分値が0でない場合、すなわち予測課金額が課金上限値よりも依然として低いことになる場合、ステップSP45に移行して上述してきた処理を繰り返す。これに対して差分値が0の場合、予測課金額が課金上限値と同一であることになる。よってこの場合、ティアレンジ計算プログラム2138は本処理を終了する。
 図14は、ストレージ階層化機能によるマイグレーション処理の処理手順を示す。このマイグレーション処理は、定期的にI/O制御プログラム2136及びプロセッサ212に基づいて実行される。説明の便宜上、処理主体をI/O制御プログラム2136として説明する。
 まずI/O制御プログラム2136は、移行ページテーブル2134を参照して、移行ページテーブル2134の先頭レコードを選択する(SP51)。次いでI/O制御プログラム2136は、選択したレコードの移行ステータスを「移行中」に変更して移行ページテーブル2134を更新する(SP52)。
 次いでI/O制御プログラム2136は、移行ページテーブル2134を参照して、移行対象の仮想ページに割り当てられている実ページのデータを移行元から移行先に実際に移行する(SP53)。
 次いでI/O制御プログラム2136は、アロケーションテーブル2133を参照して、移行対象の仮想ページに対応付けられている移行先の情報を変更してアロケーションテーブル2133を更新する(SP54)。
 次いでI/O制御プログラム2136は、移行ページテーブル2134を参照して、ステップSP52で更新した移行ステータスを「移行済」に変更して移行ページテーブル2134を更新する(SP55)。
 次いでI/O制御プログラム2136は、移行ページテーブル2134において選択したレコードは末端のレコードであるか否かを判断する(SP56)。I/O制御プログラム2136は、ステップSP56の判断で否定結果を得ると、次レコードを選択し(SP57)、ステップSP52に移行して上述してきた処理を実行する。これに対し、I/O制御プログラム2136は、ステップSP56の判断で肯定結果を得ると、本処理を終了する。
(6)本実施の形態による効果
 以上のように本実施の形態によるストレージシステムによれば、書込み回数に応じて課金額を計算するようにしたので、使用容量に応じて課金する場合に生じるユーザ間の不公平を解消することができる。また本実施の形態によれば、課金額が課金上限値近傍となるように課金額に応じてデータを移行するようにしたので、課金額を容易に予測することができる。
1    ストレージシステム
10   ホスト
20   ストレージ装置
21   コントローラ
22   物理記憶デバイス
221  SSD
222  SAS
223  SATA
 
 

Claims (10)

  1.  データの書込み回数に応じて課金額を計算するストレージ装置において、
     種別の異なる論理ボリュームを提供する物理記憶デバイスと、
     前記種別の異なる論理ボリュームのそれぞれを応答性能の異なるティアに分類し、何れかのティアに属することとなった各論理ボリュームと、上位装置に提供する仮想ボリュームとを対応付けることによりI/O制御を実行するコントローラとを備え、
     前記コントローラは、
     前記仮想ボリュームを構成する何れかの仮想ページにライト要求が発行された場合、前記論理ボリュームを構成する何れかの実ページを前記仮想ページに割り当てて、前記実ページにデータを書き込むとともに書込み回数をカウントし、
     前記カウントする書込み回数に基づいて、一定時間当たりの課金額を計算し、
     前記一定時間当たりの課金額が前記課金上限値を超過しないように、前記仮想ページに対するI/O頻度に基づいて前記ティアのティアレンジを算出し、
     前記算出したティアレンジに基づいて、前記実ページを再配置する
     ことを特徴とするストレージ装置。
  2.  前記コントローラは、
     前記一定時間当たりの課金額が予め設定されている課金上限値を超過する場合、前記一定時間当たりの課金額が減少するように、前記ティアレンジを算出する
     ことを特徴とする請求項1に記載のストレージ装置。
  3.  前記コントローラは、
     前記一定時間当たりの課金額が前記課金上限値を超過しない範囲でパフォーマンスが向上するように、前記ティアレンジを算出する
     ことを特徴とする請求項1に記載のストレージ装置。
  4.  前記コントローラは、
     前記一定時間当たりの課金額が前記課金上限値よりも低い場合、前記一定時間当たりの課金額が増加するように、前記ティアレンジを算出する
     ことを特徴とする請求項3に記載のストレージ装置。
  5.  ユーザからの操作を受け付けるためのユーザインタフェースを備え、
     前記コントローラは、
     前記一定時間当たりの課金額が前記課金上限値よりも低い場合、前記ユーザインタフェースからの操作に基づいて、前記一定時間当たりの課金額が前記課金上限値を超過しない範囲でパフォーマンスが向上するように前記ティアレンジを算出するか否かを判断する
     ことを特徴とする請求項3に記載のストレージ装置。
  6.  データの書込み回数に応じて課金額を計算するストレージ装置の制御方法において、
     物理記憶デバイスが、種別の異なる論理ボリュームを提供する第1のステップと、
     コントローラが、前記種別の異なる論理ボリュームのそれぞれを応答性能の異なるティアに分類し、何れかのティアに属することとなった各論理ボリュームと、上位装置に提供する仮想ボリュームとを対応付けることによりI/O制御を実行する第2のステップとを備え、
     前記第2のステップにおいて、
     前記仮想ボリュームを構成する何れかの仮想ページにライト要求が発行された場合、前記論理ボリュームを構成する何れかの実ページを前記仮想ページに割り当てて、前記実ページにデータを書き込むとともに書込み回数をカウントする第3のステップと、
     前記カウントする書込み回数に基づいて、一定時間当たりの課金額を計算する第4のステップと、
     前記一定時間当たりの課金額が前記課金上限値を超過しないように、前記I/O頻度に基づいて前記ティアのティアレンジを算出する第5のステップと、
     前記算出したティアレンジに基づいて、前記実ページを再配置する第6のステップと
     を備えることを特徴とするストレージ装置の制御方法。
  7.  前記第5のステップにおいて、
     前記一定時間当たりの課金額が予め設定されている課金上限値を超過する場合、前記一定時間当たりの課金額が減少するように、前記ティアレンジを算出する
     ことを特徴とする請求項6に記載のストレージ装置の制御方法。
  8.  前記第5のステップにおいて、
     前記一定時間当たりの課金額が前記課金上限値を超過しない範囲でパフォーマンスが向上するように、前記ティアレンジを算出する
     ことを特徴とする請求項6に記載のストレージ装置の制御方法。
  9.  前記第5のステップにおいて、
     前記一定時間当たりの課金額が前記課金上限値よりも低い場合、前記一定時間当たりの課金額が増加するように、前記ティアレンジを算出する
     ことを特徴とする請求項8に記載のストレージ装置の制御方法。
  10.  ユーザインタフェースが、ユーザからの操作を受け付ける第7のステップを備え、
     前記第5のステップにおいて、
     前記一定時間当たりの課金額が前記課金上限値よりも低い場合、前記第7のステップにおいて受け付けたユーザインタフェースからの操作に基づいて、前記一定時間当たりの課金額が前記課金上限値を超過しない範囲でパフォーマンスが向上するように前記ティアレンジを算出するか否かを判断する
     ことを特徴とする請求項8に記載のストレージ装置の制御方法。
     
     
     
PCT/JP2013/061151 2013-04-15 2013-04-15 ストレージ装置及びストレージ装置の制御方法 WO2014170936A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/342,289 US20160026984A1 (en) 2013-04-15 2013-04-15 Storage apparatus and control method of storage apparatus
PCT/JP2013/061151 WO2014170936A1 (ja) 2013-04-15 2013-04-15 ストレージ装置及びストレージ装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/061151 WO2014170936A1 (ja) 2013-04-15 2013-04-15 ストレージ装置及びストレージ装置の制御方法

Publications (1)

Publication Number Publication Date
WO2014170936A1 true WO2014170936A1 (ja) 2014-10-23

Family

ID=51730911

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/061151 WO2014170936A1 (ja) 2013-04-15 2013-04-15 ストレージ装置及びストレージ装置の制御方法

Country Status (2)

Country Link
US (1) US20160026984A1 (ja)
WO (1) WO2014170936A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020155071A (ja) * 2019-03-22 2020-09-24 株式会社日立製作所 ストレージシステム、及び、記憶コスト適正化方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10636065B2 (en) * 2016-03-09 2020-04-28 Western Digital Technologies, Inc. Data storage device, method and system, and control of data storage device based on writing operations and lifetime
US11216203B2 (en) * 2017-09-27 2022-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and reallocation component for managing reallocation of information from source to target memory sled
US20230017824A1 (en) * 2021-07-15 2023-01-19 Samsung Electronics Co., Ltd. Systems and methods for load balancing in a heterogeneous memory system
US11922034B2 (en) 2021-09-02 2024-03-05 Samsung Electronics Co., Ltd. Dual mode storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090390A (ja) * 2009-10-20 2011-05-06 Fujitsu Ltd 課金額算出プログラム、課金額算出装置、および課金額算出方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120323821A1 (en) * 2011-06-15 2012-12-20 International Business Machines Corporation Methods for billing for data storage in a tiered data storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090390A (ja) * 2009-10-20 2011-05-06 Fujitsu Ltd 課金額算出プログラム、課金額算出装置、および課金額算出方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Storage Solution Forum 2005 Koen Review", IT PROFESSIONALS, 1 December 2005 (2005-12-01), pages 80 - 81 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020155071A (ja) * 2019-03-22 2020-09-24 株式会社日立製作所 ストレージシステム、及び、記憶コスト適正化方法
JP7107877B2 (ja) 2019-03-22 2022-07-27 株式会社日立製作所 ストレージシステム、及び、記憶コスト適正化方法

Also Published As

Publication number Publication date
US20160026984A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
US8447946B2 (en) Storage apparatus and hierarchical data management method for storage apparatus
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5079841B2 (ja) ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
US9037829B2 (en) Storage system providing virtual volumes
JP5844473B2 (ja) 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
JP5619667B2 (ja) 階層情報管理方法及び装置
JP5608016B2 (ja) オブジェクト単位階層の管理方法及び装置
US8407417B2 (en) Storage system providing virtual volumes
JP6073471B2 (ja) ストレージ装置
US9477405B2 (en) Storage system
US10318163B2 (en) Balancing SSD wear in data storage systems
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
US20130138908A1 (en) Storage system and pool capacity scale-down control method
WO2015145532A1 (ja) ストレージシステム及びデータ処理方法
GB2536514A (en) Storage device and method for controlling storage device
JP6017032B2 (ja) ストレージシステム及びストレージ制御方法
WO2014170936A1 (ja) ストレージ装置及びストレージ装置の制御方法
US11093134B2 (en) Storage device, management method, and program in tiered storage system
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
CN101997919A (zh) 一种存储资源的管理方法及管理装置
JP5355764B2 (ja) ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14342289

Country of ref document: US

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

Ref document number: 13882292

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP