Patent Number: 
Section: claims

1. A diagnostic system for a storage system comprising:a monitoring system comprising a plurality of monitoring agents periodically collecting measured performance parameter data from components of said storage system, said components being within an invocation path of a specific application being run by said storage system, said components comprising multiple different types of components and said multiple different types of components comprising any of servers, interconnect switches, controllers and disks;an abnormality detection system automatically and periodically updating normal performance models for said components and, based on said normal performance models, identifying abnormal events occurring in said invocation path during running of said specific application by said storage system,said updating of said normal performance models comprising, as said measured performance parameter data is collected, automatically sorting said measured performance parameter data into clusters and recalculating centroids of said clusters, andsaid abnormal events being associated with any of said measured performance parameter data outside a predetermined threshold distance from a closest one of said centroids;a state generator in communication with said monitoring system and said abnormality detection system, said state generator determining when at least one of said abnormal events identified by said abnormality detection system is a triggering condition as defined by a predetermined policy and, only in response to said triggering condition occurring during said running of said specific application, operating to identify different states of said components,said operating comprising, based on said measured performance parameter data from said components, identifying first states of said components at a beginning point in a given time interval and second states of said components at an end point in said given time interval and, based on a comparison of said first states and said second states, further identifying any state changes exhibited by any of said components between said beginning point and said end point,for each component, said beginning point being when said measured performance parameter data was most recently collected from said component prior to the occurrence of said triggering condition and said end point being when said measured performance parameter data is next collected from said component after said occurrence of said triggering condition, and;a database comprising a list of common events that occur within said storage system and that are known to impact performance of said components of said storage system, said list indicating which of said components are known to be affected by which of said common events; anda processor receiving a report of an end-to-end performance objective violation of said specific application as run by said storage system, said violation occurring in a specified time period and said processor further determining which of said state changes occurred during said specified time period, identifying specific abnormal events associated with said state changes that occurred during said specific time period and correlating said common events on said list with said specific abnormal events in order to determine a set of events that are probable causes for said violation. 2. The diagnostic system of claim 1, said list further indicating changes in dynamic dependencies resulting from said common events and said processor further considering said changes in said dynamic dependencies during said correlating to determine said set of events. 3. The diagnostic system of claim 1, said monitoring agents sensing measurable performance parameters from said components. 4. The diagnostic system of claim 1, said recalculating of said centroids comprising applying a decay factor that gives greater weight to newly collected data in said clusters as compared to previously collected data. 5. The diagnostic system of claim 1, said policy defining said triggering condition as any one of the following: identification of any one abnormal event, identification of any one specified type of abnormal event, identification of a specified number of any type of abnormal event and identification of a specified number of a specified type of abnormal event. 6. The diagnostic system of claim 1, said abnormal events comprising system-induced abnormal events and human-induced abnormal events and said common events comprising commonly occurring system-induced events and commonly occurring human-induced events. 7. The diagnostic system of claim 1, said state changes comprising run-time changes that will impact at least one of workload access, cumulative load, response-time and throughput for a given load characteristic, dependencies and workflow of said specific application. 8. A diagnostic method comprising:periodically collecting, by a plurality of monitoring agents of a monitoring system, measured performance parameter data from components of a storage system, said components being within an invocation path of a specific application being run by said storage system, said components comprising multiple different types of components and said multiple different types of components comprising any of servers, interconnect switches, controllers and disks;automatically and periodically updating, by an abnormality detection system normal performance models for said components, said updating of said normal performance models comprising, as said measured performance parameter data is collected, automatically sorting said measured performance parameter data into clusters and recalculating centroids of said clusters;identifying, by said abnormality detection system and based on said normal performance models, abnormal events occurring in said invocation path during running of said specific application by said storage system, said abnormal events being associated with any of said measured performance parameter data outside a predetermined threshold distance from a closest one of said centroids;storing, in a database, a list of common events that occur within said storage system and that are known to impact performance of said components of said storage system, said list indicating which of said components are known to be affected by which of said common events;determining, by a state generator in communication with said monitoring system and said abnormality detection system, when at least one of said abnormal events identified by said abnormality detection system is a triggering condition as defined by a predetermined policy;only in response to said triggering condition, identifying, by said state generator, first states of said components at a beginning point in a given time interval and second states of said components at an end point in said given time interval, based on said measured performance parameter data;based on a comparison of said first states and said second states, identifying, by said state generator, any state changes exhibited by any of said components between said beginning point and said end point,for each component, said beginning point being when said measured performance parameter data was most recently collected from said component prior to the occurrence of said triggering condition and said end point being when said measured performance parameter data is next collected from said component after said occurrence of said triggering condition;receiving, by a processor, a report of an end-to-end performance objective violation of said specific application as run by said storage system, said violation occurring in a specified time period;determining, by said processor, which of said state changes occurred during said specified time period and identifying specific abnormal events associated with said state changes that occurred during said specific time period; andcorrelating, by said processor, said common events on said list with said specific abnormal events in order to determine a set of events that are probable causes for said violation. 9. The method of claim 8, said list further indicating changes in dynamic dependencies resulting from said common events and said method further comprising, during said correlating, considering said changes in said dynamic dependency to determine said set of events. 10. The method of claim 8, said monitoring agents sensing said measurable performance parameters from said components. 11. The method of claim 8, said recalculating of said centroids comprising applying a decay factor that gives greater weight to newly collected data in said clusters as compared to previously collected data. 12. The method of claim 8, said policy defining said triggering condition as any one of the following: identification of any one abnormal event, identification of any one specified type of abnormal event, identification of a specified number of any type of abnormal event and identification of a specified number of a specified type of abnormal event. 13. The method of claim 8, said abnormal events comprising system-induced abnormal events and human-induced abnormal events and said common events comprising commonly occurring system-induced events and commonly occurring human-induced events. 14. The method of claim 8, said state changes comprising run-time changes that will impact at least one of workload access, cumulative load, response-time and throughput for a given load characteristic, dependencies and workflow of said specific application. 15. A non-transitory program storage device readable by computer and tangibly embodying a program of instructions executable by said computer to perform a diagnostic method, said diagnostic method comprising:periodically collecting measured performance parameter data from components of a storage system, said components being in an invocation path of a specific application being run by said storage system, said components comprising multiple different types of components and said multiple different types of components comprising any of servers, interconnect switches, controllers and disks;automatically and periodically updating normal performance models for said components, said updating of said normal performance models comprising, as said measured performance parameter data is collected, automatically sorting said measured performance parameter data into clusters and recalculating centroids of said clusters;identifying, based on said normal performance models, abnormal events occurring in said invocation path during running of said specific application by said storage system, said abnormal events being associated with any of said measured performance parameter data outside a predetermined threshold distance from a closest one of said centroids;storing a list of common events that occur within said storage system and that are known to impact performance of said components of said storage system, said list indicating which of said components are known to be affected by which of said common events;determining when at least one of said abnormal events is a triggering condition as defined by a predetermined policy;only in response to said triggering condition, identifying, based on said measured performance parameter data, first states of said components at a beginning point in a given time interval and second states of said components at an end point in said given time interval;based on a comparison of said first states and said second states, further identifying any state changes exhibited by any of said components between said beginning point and said end point,for each component, said beginning point being when said measured performance parameter data was most recently collected from said component prior to the occurrence of said triggering condition and said end point being when said measured performance parameter data is next collected from said component after said occurrence of said triggering condition;receiving a report of an end-to-end performance objective violation of said specific application as run by said storage system, said violation occurring in a specified time period;determining which of said state changes occurred during said specified time period;identifying specific abnormal events associated with said state changes that occurred during said specific time period; andcorrelating said common events on said list with said specific abnormal events in order to determine a set of events that are probable causes for said violation. 16. The non-transitory program storage device of claim 15, said list further indicating changes in dynamic dependencies resulting from said common events and said method further comprising, during said correlating, considering said changes in said dynamic dependency to determine said set of events. 17. The non-transitory program storage device of claim 15, said policy defining said triggering condition as any one of the following: identification of any one abnormal event, identification of any one specified type of abnormal event, identification of a specified number of any type of abnormal event and identification of a specified number of a specified type of abnormal event. 18. The non-transitory program storage device of claim 15, said calculating of said centroids comprising applying a decay factor that gives greater weight to newly collected data in said clusters as compared to previously collected data.