A wide variety of different types of data storage systems are known, including, by way of example, tiered storage systems, cloud storage systems and storage systems of virtual data centers. These and other data storage systems typically comprise one or more sets of storage devices, also referred to as storage arrays.
Enterprise application users and other users generally want to achieve targeted performance levels and predictability from their data storage systems. However, under certain conditions these goals can be difficult to achieve in practice. For example, data storage systems are typically designed to include one or more tuning mechanisms that allow administrators to make adjustments to storage policies, parameters, thresholds, configurations, algorithms, and other characteristics of system operation. Similarly, administrators are able to initiate and complete various application-specific storage management operations that may interact with and affect their data storage systems. Although these low-level tuning mechanisms and management operations can be very helpful to an administrator, they can also present a challenge to administrators in terms of understanding the impact of various choices and the interactions among the various choices as situations change over time. The result is that choices may be avoided, or made arbitrarily, or without sufficient knowledge of the likely effects. Unfortunately, this can lead to sub-optimal or unpredictable system performance.
Administrators therefore have to become experts at setting policies and determining management operations best practices. Nonetheless, it remains difficult to adjust effectively to changing workloads, missed performance targets, fluctuating performance, and sudden demands on system resources, and total cost of operation increases significantly due to the expertise and attention required of administrative personnel.