This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-88051, filed on Apr. 12, 2011, the entire contents of which are incorporated herein by reference.
The embodiment discussed herein is related to a technology for input and output (IO) control to and from a storage device.
Input and output per second (IOPS) or throughput is used as a method for guaranteeing performance of a storage device, etc.
A busy rate of a storage device is an index which indicates how busy the device is. The busy rate is obtained, for example, based on a ratio of a period of time for which an IO request stays in an IO queue. If the busy rate of a storage device is 100 percent (corresponding to “1” if represented as a value not smaller than 0 and not greater than 1), for example, further performance may not be pulled out from the device. If the busy rate of the storage device is 100 percent, IO requests are piled up on the IO queue and IO operations are being carried out, and it may be difficult to enhance IO performance. An IOPS value may be obtained based on the number of accesses (number of IO operations) counted for every block in a unit of time length.
If a storage device is accessed, the busy rate of the storage device may change based on changes of a disk location and a disk area where an IO operation occurs, a ratio between the numbers of read and write instructions, or how IO sizes are distributed, even if the IOPS value does not substantially change. A time length for an overhead operation in case of IO operations occurring in an entire storage area except for data transfer, for example, a length of seek time is longer than a time length for an overhead operation in case of IO operations occurring in part of the storage area except for data transfer, for example, a length of seek time. The busy rate may thereby be higher in the former case than in the latter case even if the IOPS value does not change.
Japanese Laid-open Patent Publication No. 2001-43032 discusses a related art.
According to an aspect of the invention, an access method includes: obtaining, by a computer, a result of monitoring a busy rate and a number of access operations per unit time of a storage device, the storage device having a first storage area and a second storage area; calculating a characteristic of correlation between the busy rate and the number of access operations per unit time based on the result; calculating a second number of access operations per unit time based on the characteristic of the correlation such that a sum of a first busy rate corresponding to a first number of access operations per unit time and a second busy rate corresponding to a second number of access operations per unit time becomes equal to or lower than a given busy rate; and controlling a number of operations to access the second storage area per unit time based on the second number of access operations.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Suppose that a plurality of terminal PCs has first and second areas into which a storage area of one storage device is divided in common. Suppose that, in order to obtain a certain IOPS value with which one terminal PC accesses the first area, an IOPS value with which the other the terminal PC accesses the second area is controlled so as to become a certain value or less. In that case, the busy rate may be saturated depending upon how the first and second areas are accessed. The certain IOPS value may not be obtained with regard to access to the first area by means of simple control based on IOPS.
The computer 100 may execute a processing program 110 for performing a process for bandwidth control, for example, a daemon.
The processing program 110 decides bandwidth control for guaranteeing IO performance based on the busy rate and the IOPS of the storage device 200 according to present IO condition, and instructs the disk drivers in the decision. The JO performance may be guaranteed for the application A for convenience of explanation.
In a Linux, for example, the processing program 110 may output an “iostat-x” command to the kernel so as to obtain, for example, the data illustrated in
A sum of values of r/s and w/s illustrated in
The processing program 110 calculates a first index value based on the busy rate and IOPS value in an operation S3. The first index value indicates a busy rate to be consumed to obtain one IOPS. It may be supposed for the first index value that the busy rate at a processing timing is linearly related to the IOPS value. A correlation characteristic such as a function f (busy rate, IOPS value) may be used.
The processing program 110 calculates a second index value based on the first index value times a guaranteed TOPS value in an operation S5. The application A or a user of the application A may provide the processing program 110 with the guaranteed IOPS value. The second index value indicates a busy rate to be consumed to obtain the guaranteed IOPS value.
The guaranteed IOPS value may be too large. If, for example, the busy rate is indicated in percent, the second index value may be more than 100. If the busy rate is indicated as a value in the range of 0 to 1, the second index value may be more than one. A threshold may be preset in order that another applications use the storage device 200. If the second index value is more than the threshold, no process may be done as the IOPS is not guaranteed, or reduction of the guaranteed IOPS value may be requested. The IOPS value may be reduced to a range in which the guaranteed IOPS value is automatically guaranteed.
If, for example, the first index value is 0.7 [percent/IOPS] and the guaranteed IOPS value is 100, the busy rate may be 0.7×100=70 percent so that the guaranteed IOPS value is obtained. If, for example, the IOPS value is guaranteed based on an request from the application A, a busy rate of 70 percent may be secured.
The processing program 110 calculates a third index value according to (100-second index value)/(first index value) as an operation S7. If the busy rate is treated in percent, use (100-second index value)/(first index value). If the busy rate is treated as a value in the range of 0 to 1, use (1-second index value)/(first index value). Divide a difference between an upper limit value of the busy rate and the second index value by the first index value so as to calculate the third index value. An IOPS limit value for access to the partition B by the application B for which the IOPS value is not guaranteed is obtained based on the calculation. Calculate, for example, (100−70)/0.7=43 IOPS which may be the IOPS limit value.
Performance of 100 IOPS is guaranteed for the partition A that the application A accesses, and the partition B that the application B accesses may be set to the remaining bandwidth up to 43 IOPS, as depicted in
The processing program 110 notifies a disk driver of an IOPS-unguaranteed partition of the third index value so as to limit the bandwidth to the third index value or below in an operation S9. The disk driver of the IOPS-unguaranteed partition may be, for example, the disk driver B. The processing program 110 may notify the disk driver B of 43 IOPS.
The above process may be repeated, for example, until the process or bandwidth guarantee finishes in an operation S11. The above process may be repeated, for example, in fixed cycles. The above process may not repeated in fixed cycles. As the guarantee may become difficult if the busy rate rises, for example, the cycle time may be set short. The above process may be carried out at any time.
The guarantee of IO performance taking the busy rate according to present condition for IO occurrences into account is performed.
The disk driver limits the IO operations based on the usable IOPS value as an operation S25. The disk driver may limit a maximum IOPS value to 43, for example, by blocking an IO operation after processing 43 IO operations every second. The IOPS is controlled to limit to become the limit value or below. The above process may be repeated in the operation S27 until the process finishes.
As IO operations are limited in the IOPS-unguaranteed partitions and are limitlessly processed in the IOPS-guaranteed partitions, a specified guaranteed TOPS value may be obtained.
The storage device 200 has, for example, two partitions. The application A for which the IOPS is guaranteed accesses the partition A. The application B for which the IOPS is not guaranteed accesses the partition B. Bandwidths for plural applications may be guaranteed.
The computer 300 executes a processing program 310 for bandwidth control, for example, a daemon.
The processing program 310 decides bandwidth control for guaranteeing IO performance based on the busy rate and the IOPS of the storage device 400 according to present access condition, and instructs the disk drivers. The IO performance may be guaranteed for the applications A and B.
The processing program 310 calculates a first index value based on the busy rate and IOPS value in an operation S43. The first index value indicates a busy rate to be consumed when obtaining one IOPS. The operation S43 depicted in
The processing program 310 calculates a second index value for a partition that each of the applications for which the bandwidth is guaranteed accesses based on the first index value times the guaranteed IOPS value in an operation S45. The applications A and B or a user of the applications A and B may set the guaranteed IOPS value. The second index value indicates a busy rate to be consumed when obtaining the guaranteed IOPS value. If the guaranteed IOPS value is too large, a process which is substantially the same as or similar to the above process may be carried out.
The first index value may be, for example, 0.7 [percent/IOPS]. The IOPS value for the application A may be 60. The IOPS value for the application B may be 60. The busy rate may be 0.7 ×60=42 percent so that the guaranteed IOPS value is obtained. The busy rate of 42 percent may be secured if the IOPS value is guaranteed as requested by the application A, and so may be if requested by the application B.
The processing program 310 calculates a third index value according to (100-sum of second index values)/(first index value) in an operation S47. If the busy rate is treated in percent, a calculation (100-sum of second index values)/(first index value) may be used. If the busy rate is treated as a value in a range 0 to 1, a calculation (1-sum of second index values)/(first index value) may be used. Divide a difference between an upper limit value of the busy rate and the sum of the second index values by the first index value so as to calculate the third index value. According to the calculation, an IOPS limit value is obtained with regard to access to the partition C made by the application C for which the IOPS value is not guaranteed. Calculate, for example, (100−84)/0.7=23 TOPS which may be the IOPS limit value.
Performance of 60 IOPS is guaranteed for the partition A that the application A accesses as depicted in
The processing program 310 notifies a disk driver of an IOPS-guaranteed partition of the guaranteed IOPS value so as to control the guaranteed IOPS value or below, and notifies a disk driver of an IOPS-unguaranteed partition of the third index value so as to limit the bandwidth to the third index value or below as an operation S49. The disk drivers A and B of the IOPS-guaranteed partitions are each notified of 60 IOPS, and the disk driver C of the IOPS-unguaranteed partition is notified of 23 IOPS.
The above process may be repeated, for example, until the process or bandwidth guarantee finishes in an operation S51. The above process may be repeated, for example, in fixed cycles. The above process may not be repeated in fixed cycles. If the busy rate falls, for example, the cycle time may be set long. The above process may be carried out at any time.
The processing program 310 may notify only the disk driver of the IOPS-unguaranteed partition. If there are plural applications which access the IOPS-guaranteed partitions, the processing program 310 may notify each of the partitions of a maximum TOPS value. The guarantee of IO performance may be carried out based on the busy rate according to present condition for IO occurrences.
The process performed by each of the disk drivers may be substantially same as or similar to the process depicted in
If one IOPS-guaranteed partition and plural IOPS-unguaranteed partitions exist, the processing program 310 notifies a disk driver of each of the partitions. The IOPS values notified to the plural IOPS-unguaranteed partitions may be, for example, equivalent to one another, ranked in priority order or distributed at an angle.
If, for example, the disk driver identifies an application or plural applications use a partition in common, a limited IOPS value of an IOPS-unguaranteed application may be calculated so that the bandwidth is guaranteed.
If plural storage devices exist, the process may be executed for every one of the storage devices.
A program for making a computer carry out the above process may be generated. The program may be stored, for example, in a computer-readable storage media or storage device such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory or a hard disk. An intermediate result of data process may be temporarily stored in the memory device such as the main memory.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2011-088051 | Apr 2011 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5067099 | McCown et al. | Nov 1991 | A |
5640597 | Noguchi et al. | Jun 1997 | A |
5907683 | Engelsiepen et al. | May 1999 | A |
6067636 | Yao et al. | May 2000 | A |
6148335 | Haggard et al. | Nov 2000 | A |
6405327 | Sipple et al. | Jun 2002 | B1 |
6480904 | Kato et al. | Nov 2002 | B1 |
6571288 | Sarukkai | May 2003 | B1 |
6694405 | Lam et al. | Feb 2004 | B2 |
6785792 | Katsurashima | Aug 2004 | B2 |
6975963 | Hamilton et al. | Dec 2005 | B2 |
7000088 | Rudeseal et al. | Feb 2006 | B1 |
7096315 | Takeda et al. | Aug 2006 | B2 |
7107273 | Ohata et al. | Sep 2006 | B2 |
7171668 | Molloy et al. | Jan 2007 | B2 |
7185168 | Rudeseal et al. | Feb 2007 | B2 |
7467263 | Ozaki et al. | Dec 2008 | B2 |
7653725 | Yahiro et al. | Jan 2010 | B2 |
7930511 | Hashimoto et al. | Apr 2011 | B2 |
8046767 | Rolia et al. | Oct 2011 | B2 |
8087026 | Zhong | Dec 2011 | B2 |
8214557 | Arena et al. | Jul 2012 | B2 |
8244934 | Veni et al. | Aug 2012 | B2 |
8346990 | McKean et al. | Jan 2013 | B2 |
8407336 | Oe et al. | Mar 2013 | B2 |
8472326 | Morrill | Jun 2013 | B2 |
8489737 | Baumback et al. | Jul 2013 | B2 |
20030046491 | Katsurashima | Mar 2003 | A1 |
20030093619 | Sugino et al. | May 2003 | A1 |
20040098423 | Chigusa et al. | May 2004 | A1 |
20060010290 | Sasamoto | Jan 2006 | A1 |
20060265497 | Ohata et al. | Nov 2006 | A1 |
20080082777 | Sakaguchi et al. | Apr 2008 | A1 |
20090082777 | Milliman et al. | Mar 2009 | A1 |
20090089503 | Yoshida et al. | Apr 2009 | A1 |
20090113156 | Fujita et al. | Apr 2009 | A1 |
20090157699 | Ohata et al. | Jun 2009 | A1 |
20120198015 | Gorti et al. | Aug 2012 | A1 |
20130085611 | Bentivegna et al. | Apr 2013 | A1 |
Number | Date | Country |
---|---|---|
2001-43032 | Feb 2001 | JP |
Entry |
---|
“Disk I/O Components”, Princeton University, 2011, http://www.princeton.edu/˜unix/Solaris/troubleshoot/diskio.html. |
“How to understand measures of disk performance”, Silicon Graphics Inc., 2004, http://oss.sgi.com/projects/pcp/pcp-gui.git/man/html/howto.diskperf.html. |
Number | Date | Country | |
---|---|---|---|
20120265907 A1 | Oct 2012 | US |