Patent Publication Number: US-6988054-B2

Title: Storage system performance metric comparison methods, storage system performance monitoring systems, data storage systems, and articles of manufacture

Description:
FIELD OF THE INVENTION 
     At least some aspects of the invention relate to storage system performance metric comparison methods, storage system performance monitoring systems, data storage systems, articles of manufacture, and data signals. 
     BACKGROUND OF THE INVENTION 
     Computer systems including hardware, software, firmware, etc. have continued to experience expansive growth and sophistication in recent years. Peripherals and other components arranged to interface with computer systems have also experienced expansive improvements. In addition, computer systems are generally used in an increasing number of applications including applications containing networking solutions enabling communication between remotely spaced computers. For example, computer systems may be utilized in client applications, server applications as well as stand-alone personal computing applications. 
     With the increased processing speeds of computer systems, and the increasing usage of computer systems in new and varied applications, devices are desired to assist with storing and quickly accessing data processed and used by computer systems. Mass storage devices have been developed to accommodate relatively large amounts of digital data utilized by computer systems. Redundant storage systems have been developed to provide continued, correct operations during the presence of a fault or other failure in a component or peripheral of a computer system. Three primary design criteria may be typically considered when developing mass storage devices and include cost (low cost per unit of data storage), high input/output performance, and availability (ability to recover data even though some components have failed and to insure continued operation). Redundant array of independent disk (RAID) systems have been utilized to provide redundant storage of relatively large amounts of data. 
     It is beneficial to monitor activity upon one or more storage system. However, if plural storage systems are utilized, individual ones of the systems may be monitored and provide performance information according to respective individual and independent schemes. At least some aspects described herein relate to improvements with respect to data regarding operations of the storage systems. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram of an exemplary data storage system. 
         FIG. 2  is an illustrative representation of exemplary performance metric data of two storage systems of the system of FIG.  1 . 
         FIG. 3  is an illustrative representation of performance metric data arranged according to an exemplary common representation format. 
         FIG. 4  is an illustrative representation of performance metric data arranged according to another exemplary common representation format. 
         FIG. 5  is an illustrative representation of performance metric data arranged according to yet another exemplary common representation format. 
         FIG. 6  is a flow chart of an exemplary methodology for arranging and communicating performance metric data. 
         FIG. 7  is a flow chart of an exemplary methodology for normalizing performance metric data of a plurality of storage systems. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Aspects of the present invention provide apparatus and methods for determining data comparison points for analyzing performance metric data of more than one storage system enabling comparison of performance metrics between the multiple storage systems. Some aspects accommodate storage systems which provide performance metric data at different time intervals as well as changes in data collection intervals during a comparison period. Aspects of the invention provide exemplary comparison procedures which are relatively simple to calculate, may typically remove extra data comparison points resulting in faster computations, and may remove unnecessary data points making trends more evident. 
     According to one aspect of the invention, a storage system performance metric comparison method may comprise accessing first performance metric data comprising a plurality of data values with respect to a first storage system configured to store digital data, accessing second performance metric data comprising a plurality of data values with respect to a second storage system configured to store digital data, establishing a common representation format for the first performance metric data and the second performance metric data, arranging at least some of the data values of the first performance metric data according to the common representation format, and arranging at least some of the data values of the second performance metric data according to the common representation format. 
     According to another aspect of the invention, a storage system performance monitoring system may comprise a communications interface configured to access first performance metric data comprising a plurality of data values with respect to a first storage system configured to store digital data and second performance metric data comprising a plurality of data values with respect to a second storage system configured to store digital data and processing circuitry configured to access the first performance metric data and the second performance metric data, to provide a plurality of timing values, and to provide one of the data values of the first performance metric data and one of the data values of the second performance metric data for individual ones of the timing values. 
     According to an additional aspect of the invention, a data storage system may comprise a first storage means for storing digital data and providing first performance metric data comprising a plurality of data values with respect to storage operations of the first storage means, a second storage means for storing digital data and providing second performance metric data comprising a plurality of data values with respect to storage operations of the second storage means, and a performance monitoring means for accessing the first performance metric data and the second performance metric data, providing a common representation format responsive to the accessed first performance metric data and the second performance metric data, and arranging the first performance metric data and the second performance metric data according to the common representation format. 
     According to yet another aspect of the invention, an article of manufacture may comprise a processor-usable medium comprising processor-usable code configured to cause processing circuitry to access first performance metric data comprising a plurality of data values with respect to a first storage system configured to store digital data, access second performance metric data comprising a plurality of data values with respect to a second storage system configured to store digital data, provide a plurality of timing values, and associate one of the data values of the first performance metric data and one of the data values of the second performance metric data with individual ones of the timing values. 
     According to yet another aspect of the invention, a data signal embodied in a transmission medium may comprise processor-usable code configured to cause processing circuitry to access first performance metric data comprising a plurality of data values with respect to a first storage system configured to store digital data, processor-usable code configured to cause processing circuitry to access second performance metric data comprising a plurality of data values with respect to a second storage system configured to store digital data, processor-usable code configured to cause processing circuitry to establish a common representation format for the first performance metric data and the second performance metric data, processor-usable code configured to cause processing circuitry to arrange the first performance metric data according to the common representation format, and processor-usable code configured to cause processing circuitry to arrange the second performance metric data according to the common representation format. 
     Referring to  FIG. 1 , an exemplary data storage system  10  is illustrated. The depicted data storage system  10  includes a plurality of storage systems  12  and a performance monitoring system  14 . Exemplary storage systems  12  shown in  FIG. 1  include respective storage areas  20  and respective managers  22 . Although two storage systems  12  are shown in  FIG. 1 , data storage system  10  may include additional storage systems  12 . One of storage systems  12  may be referred to as a first storage system  16  and the other of storage systems  12  may be referred to as a second storage system  18 . In one arrangement, storage systems  12  comprise independent mass storage systems configured to store digital data independent from one another. For example, storage systems  12  may be arranged as RAID storage systems, direct attached systems, network attached systems, and/or storage area network systems in exemplary embodiments. Other storage system configurations are possible. Storage systems  12  may provide storage of digital data from host computing systems  13  or from other associated sources of the digital data. 
     Storage area  20  of an individual storage system  12  may include a plurality of physical disks configured to store digital data. Manager  22  may be implemented as a dedicated microcontroller configured to control operations of storage system  12  including storage of data within storage area  20  and accessing of stored data therein. As discussed further below, manager  22  may also monitor and provide performance metric data of the respective storage systems  12 . Exemplary performance metric data includes information regarding storage operations of a respective storage system  12  at a plurality of moments in time. For example, performance metric data may include raw activity data with respect to storage area  20  including input/output operations, sequential read or write operations, random read or write operations, microprocessor usage, usage of ports of respective storage systems  12  in communication with host systems  13 , etc. Manager  22  may be implemented using RAID manager library software, which may be provided in a XP1024 storage system available from Hewlett-Packard Company, in one embodiment. Other configurations are possible for providing performance metric data. 
     Monitoring system  14  is arranged to monitor operations of the respective storage systems  12 , including accessing performance metric data of the storage systems  12 , and to provide comparison operations with respect to the performance metric data. As described further below, monitoring system  14  may be arranged in at least one embodiment to define a common representation format responsive to the accessed data, and to arrange the performance metric data according to the common representation format to facilitate comparison of the performance metric data by a user or other entity. 
     In the depicted embodiment, monitoring system  14  includes a plurality of host agents  30  and a management station  32 . Host agents  30  are coupled with respective storage systems  12  and are configured to interface with managers  22  of the respective storage systems  12 , for example, using API calls. Host agents  30  may be implemented as Unix, Windows, Linux, Sun or other workstations in exemplary configurations. In other implementations, one or more host agent  30  may be utilized to individually monitor and/or interface with a plurality of storage systems  12 . 
     Management station  32  interfaces with host agents  30  and is arranged to implement configuration or set-up operations for systems  12 , alarm operations for systems  12 , and operations pertinent to storage and comparison of performance metric data obtained from respective host agents  30  for respective systems  12 . In the illustrated exemplary configuration, management station  32  includes a communications interface  33 , a database  34 , a user interface  36 , processing circuitry  38  and memory  39 . 
     Communications interface  33  implements communications of management station  14  with respect to external devices, such as host agents  30 , or directly with storage systems  16 ,  18  without the use of host agents. For example, communications interface  33  may be embodied as a network interface card (NIC) in one arrangement. 
     User interface  36  is arranged to visually depict information for a user and may also receive user input or commands. In one embodiment, user interface  36  is implemented as a display including a graphical user interface (GUI) configured to visually depict information for a user. User interface  36  may also include a keyboard or other input device configured to receive user input. 
     Processing circuitry  38  of management station  32  is configured to retrieve or access performance metric data from database  34 , from host agents  30  or from respective storage systems  12 . Processing circuitry  38  is configured to arrange accessed performance metric data into a desired format and to control user interface  36  to display or otherwise communicate the arranged performance metric data to a user. Processing circuitry  38  may be implemented as a microprocessor, application specific integrated circuit (ASIC), or other appropriate processing device in exemplary arrangements. Processing circuitry  38  may execute executable instructions stored within articles of manufacture, such as memory  39 , mass storage devices (e.g., hard disk drives, floppy disks, optical disks, etc.) or within another appropriate device, and embodied as, for example, software and/or firmware instructions. Exemplary operations performed by processing circuitry  38  relative to arrangement of performance metric data of storage systems  12  are described below. 
     Memory  39  is arranged to store digital information and instructions. Memory  24  may be embodied as random access memory (RAM), read only memory (ROM), flash memory or other configurations capable of storing digital information and instructions (e.g., software or firmware instructions utilized by processing circuitry  38 ), or any other digital data desired to be stored. A hard disk or other storage device may also be provided-to store digital information and instructions. 
     It may be desired to monitor activity of data storage system  10  including activities of individual storage systems  12 . Referring to  FIG. 2 , data indicative of operations of storage systems  16 ,  18  is depicted as respective representations  40 ,  42 . The representations  40 ,  42  individually include respective timing patterns  44 ,  45  and respective performance metric data  46 ,  47 . The respective timing patterns  44 ,  45  individually include a plurality of timing values (e.g., minutes) corresponding to collection times of a plurality of respective data values of the performance metric data  46 ,  47  for the respective storage systems  16 ,  18 . As illustrated in  FIG. 2 , performance metric data  46 ,  47  of respective systems  16 ,  18  is obtained according to timing patterns  44 ,  45  which are arranged to indicate times of acquisition of performance metric data  46 ,  47  within storage systems  16 ,  18 . 
     In the depicted exemplary illustration, storage system  16  is configured to provide performance metric data  46  collected according to timing pattern  44  wherein timing values occur at five minute intervals corresponding to respective data values of the performance metric data  46 . Storage system  18  is configured in the illustrated example to provide performance metric data  47  including data values corresponding to timing pattern  46  having timing values at eight minute intervals. The data values of performance metric data  46 ,  47  correspond to monitored activities (e.g., I/O operations per second) of the respective storage systems  16 ,  18  in the illustrated example. 
     Accordingly, in one embodiment, manager  22  of storage system  16  obtains data values of the performance metric data  46  of storage system  16  at five minute intervals corresponding to the respective timing pattern  44 . Manager  22  of storage system  18  obtains data values of the performance metric data  47  of storage system  18  at eight minute intervals corresponding to the respective timing pattern  45 . 
     The respective host agents  30  receive the respective performance metric data  46 ,  47  and timing patterns  44 ,  45  from the respective managers  22  of storage systems  16 ,  18 . The performance metric data  46 ,  47  and timing patterns  44 ,  45  may be forwarded from the respective host agents  30  to management station  32 . Processing circuitry  38  is arranged to store the performance metric data  46 ,  47  and timing patterns  44 ,  45  within database  34 . 
     At subsequent moments in time, a user may wish to compare or otherwise analyze monitored data (e.g., performance metric data) of the storage systems  12 . In one embodiment, processing circuitry  38  may receive a user command from user interface  36  and operate to provide data regarding storage systems  12  to the user, for example, via user interface  36 , by storing an appropriate file, by formulating communications including the data for communication externally of management station  32  (e.g., e-mail), and/or using another appropriate format for communications. 
     In one embodiment, processing circuitry  38  is configured to establish a common representation format to present data regarding operations of storage systems  12  to a user. Processing circuitry  38  may establish the common representation format from a plurality of possible formats, for example, from first performance metric data  46  and second performance metric data  47 , or independent of such data. Following the establishment of the common representation format, the processing circuitry may arrange the first performance metric data  46  and the second performance metric data  47  according to the common representation format. The performance metric data may be communicated to the user and/or stored in accordance with the common representation format. 
     According to one possible comparison protocol, a greatest common multiple (GCM) period of time between the storage systems  12  being monitored may be identified. The greatest common multiple could be utilized as a base comparison period of the plurality of storage systems  12  to provide a common representation format for use in comparing data values of the respective storage systems  12 . 
     Examples of other possible common representation formats shown in  FIGS. 3 ,  4 , and  5  provide advantages over utilization of the greatest common multiple (GCM) period of time as a base comparison. The exemplary aspects of  FIGS. 3-5  reduce complexity compared with the GCM approach. For example, the GCM approach may increase in complexity if a data acquisition interval changes within the comparison period (e.g., uncertainty whether to use a GCM of three or six may be presented when one storage system collects at six minutes and a second system initially collects at an interval of three minutes and is subsequently changed to a collection rate of six minutes). Further, utilization of GCM approach can lead to an overabundance of comparison points. For example, if one system has data collected at fifteen minute intervals and a second system collects data at twenty eight minute intervals, the ensuing comparisons may have data points at every minute despite the fact that data changes no faster than every fifteen minutes for one of the storage systems and even more slowly for the other of the storage systems. The examples of  FIGS. 3-5  may remove extraneous data-comparison points and at worst operate similar to the GCM approach. 
     Referring to  FIG. 3 , one possible common representation format  50  for performance metric data  46 ,  47  of storage systems  16 ,  18  is depicted. The illustrated exemplary common representation format  50  includes a timing pattern  52  having a plurality timing values. Common representation format  50  depicts data values at moments in time wherein the data of one or the other of the storage systems  16 ,  18  has potentially changed. In the depicted example, if one of systems  16 ,  18  has not been data-collected at a given timing value (e.g., the respective performance metric data  46 ,  47  has no respective data value at one of the timing values of timing pattern  52 ), a data value may be created or provided at the given timing value of timing pattern  52  from the most recent prior timing value of patterns  44 ,  45  which was collected for the respective storage system  16 ,  18 . 
     In the format of  FIG. 3 , the timing values of timing pattern  52  individually correspond to respective ones of the timing values of the timing patterns  44 ,  45  of the data to be compared (e.g., minutes  5 ,  8 ,  10 ,  15 ,  16 , etc.). Accordingly, in the example of  FIG. 3 , the timing values of timing pattern  52  also correspond to data values of performance metric data  46 ,  47 . Timing values of timing pattern  52  may be defined corresponding to the timing values of the respective timing patterns  44 ,  45  of the respective storage systems  16 ,  18  in the illustrated example. 
     In the described example of format  50 , respective data values of performance metric data of both storage systems  16 ,  18  are provided at individual timing values of the timing pattern  52 . As mentioned above, processing circuitry  38  may create new data values of the performance metric data  46 ,  47  of storage systems  16 ,  18  corresponding to the timing values of the timing pattern  52  (and corresponding to timing values of the timing patterns  44 ,  45  of the storage systems  16 ,  18 ) and where data values have not already been collected for storage systems  16 ,  18 . New data values of performance metric data  46  of system  16  may be created for one or more timing value of timing pattern  45  of storage system  18  and new data values of performance metric data  47  of system  18  may be created for one or more timing value of timing pattern  44  of storage system  16 . 
     Referring to  FIG. 4 , another possible common representation format  60  is shown. Format  60  is generated by processing circuitry  38  and includes a uniform timing pattern  62  including a plurality of timing values separated from adjacent timing values by a uniform amount of time. In the example of  FIG. 4 , adjacent timing values of timing pattern  62  are separated by intervals of eleven minutes. A user may select the uniform amount of time, a default value may be utilized, or another procedure may be utilized to provide the uniform amount of time. 
     Processing circuitry  38  operates to arrange performance metric data of the storage systems  16 ,  18  according to the uniform timing pattern  62  of common representation format  60 . Some of the timing values of timing pattern  62  may not have associated timing values within timing patterns  44 ,  45 . In such situations, processing circuitry  38  may select, for a given timing value of pattern  62 , the data value of the closest prior timing value of the respective timing patterns  44 ,  45  for the given timing value of pattern  62 . As illustrated, some of the data values of performance metric data  46 ,  47  for individual storage systems  16 ,  18  are disregarded with the exemplary interval of eleven minutes shown in FIG.  4 . 
     Referring to  FIG. 5 , the common representation format  70  includes a uniform timing pattern  72  having a uniform interval of two minutes between adjacent timing values for displaying performance metric data of storage systems  16 ,  18 . New data values may be created from the performance metric data  46 ,  47  to provide data values for individual ones of the timing values of the uniform timing pattern  70  as described above. 
     The data illustrated in the exemplary formats of  FIGS. 4 and 5  according to the uniform timing patterns  62 ,  72  illustrates an even distribution of data. The data values for the storage systems  16 ,  18  may be deleted, created and/or arranged according to the timing values of the respective uniform time interval. The timing values of the uniform timing patterns  62 ,  72  may be referred to as uniform timing values. Smoothing of the time interval intermediate adjacent timing values provided by uniform timing patterns  62 ,  72  may lead to a loss of data granularity as presented by timing pattern  62  or an increase in the number of data points as illustrated by timing pattern  72 . In addition, the uniform time interval may be changed in a representation of data if desired. 
     Accordingly, performance metric data  46 ,  47  may be depicted in a plurality of different formats according to different aspects or embodiments. Common representation format  50  of  FIG. 3  provides timing pattern  52  including a plurality of timing values corresponding to the respective timing patterns  44  of storage systems  16 ,  18 . The common representation formats  60 ,  70  of  FIGS. 4 and 5  provide respective timing patterns  62 ,  72  which may be substantially independent of the timing patterns  44 ,  45  illustrated in FIG.  2 . 
     Referring to  FIGS. 6 and 7 , exemplary methodologies executable by processing circuitry  38  of management station  32  are shown. The methodologies of  FIGS. 6 and 7  may be executed using other appropriate processing circuitry in other arrangements. The appropriate processing circuitry may execute executable code to implement the depicted methodologies. Further, other methodologies using more, less or alternative steps may be utilized. 
     Referring initially to  FIG. 6 , the management station or other device receives a request at a step S 10  to analyze performance metric data of the storage systems. 
     At a step S 12 , the processing circuitry operates to access the data values of the performance metric data to be compared and the respective timing values from database  34  for the respective storage systems. 
     At a step S 14 , the processing circuitry determines whether more than one storage system is to be analyzed pursuant to the request. 
     If the condition of step S 14  is negative, the processing circuitry proceeds to a step S 20 . 
     If the condition of step S 14  is affirmative, the processing circuitry proceeds to a step S 16  to normalize data of the appropriate datasets (e.g., data values and timing values). In one example, performance metric data of two storage systems is identified at step S 16  and normalized. 
     At a step S 18 , it is determined whether the request is for datasets of additional storage systems. 
     If the condition of step S 18  is affirmative, the processing circuitry proceeds to step S 16  to normalize the additional data of the additional storage system with the previously normalized data. The additional data may be normalized using the existing timing values of the timing pattern of the common representation format of the normalized data in one exemplary aspect. In another aspect, additional timing values may be added to the timing pattern of the common representation format of the normalized data and which correspond to additional timing and data values of the additional storage system. Data values of the previously normalized systems may be created for such new timing values. 
     If the condition of step S 18  is negative, the data may be displayed or otherwise communicated using an appropriate common representation format at step S 20 . 
     Referring to  FIG. 7 , an exemplary methodology is illustrated for normalizing data of plural storage systems and corresponding to the exemplary common representation format shown in FIG.  3 . The methodology of  FIG. 7  may be utilized in one example to implement step S 16  of FIG.  6 . 
     At a step S 30 , the processor identifies the earliest unchecked timing value of two storage systems being analyzed. For the example shown in  FIG. 3 , the earliest unchecked timing value is 5 of storage system  16 . The earliest unchecked timing value and the data value of the respective storage system  16  for the respective timing value is added to the normalized dataset to be depicted. 
     At step S 32 , the earliest unchecked timing value is added as a new data point in the performance metric data of storage system  18 . 
     At step S 34 , a new data value is provided for the newly created data point of storage system  18  and is equal to the last known data value for the respective system  18 . In the example of  FIG. 3 , a value of 0 is provided for the new timing value for storage system  18  since there was no last known data value. 
     At step S 36 , it is determined whether more unchecked data points exist. 
     The depicted methodology may terminate if the condition of step S 36  is negative. 
     If the condition of step S 36  is affirmative, the process loops to step S 30 . During a subsequent pass through the illustrated methodology, the processing circuitry may obtain the next earliest unchecked timing value (e.g., value 8 of storage system  18 ) as shown in FIG.  3 . The respective data value of storage system  18  would be utilized as the data value for storage system  18 . 
     At step S 32 , the timing value of step S 30  is added to the performance metric data of storage system  16  as another data point. 
     At step S 34 , a new data value for the newly added timing value is set to equal the last known value for the respective system  16  (e.g., the last known value of 120 is selected for minute  8  in the example of  FIG. 3  for system  16 ). 
     The methodology of  FIG. 7  may be repeated until all desired timing values and respective data values are provided for the appropriate storage systems to complete the normalization procedure. 
     At least some of the aspects of the invention may be implemented using processor-usable or executable code stored within appropriate storage devices or communicated via a network or using other transmission media. For example, processor-usable code may be provided via articles of manufacture, such as an appropriate processor-usable medium comprising, for example, a floppy disk, hard disk, zip disk, optical disk, etc., or alternatively embodied within a transmission medium, such as a carrier wave and/or data packets, and communicated via a network, such as the Internet or a private network or other communication structure. 
     The protection sought is not to be limited to the disclosed embodiments, which are given by way of example only, but instead is to be limited only by the scope of the appended claims.