Storage controllers have some sort of processors embedded to perform wide range of functions related to a storage system. A storage controller can be called as a storage computer which has the capability to operate as a single controller, in a redundant pair (dual controller) or as a node within a cluster of servers in a scale out storage.
Each storage controller has an Input/Output path to communicate to the storage network or to Direct Attached Storage. A processor that will handle the I/O movement of data and related functions such as RAID and volume management is also present in this controller.
Speed and Capabilities of storage controllers can show their direct impact in a modern data center environment. So the first priority is to have a high speed storage infrastructure in order to process and perform functions involving data movement. The second priority of the controller is to efficiently communicate with the disk drives attached to a storage system. Thus, the performance of the controller is directly proportional to the number of drives.
With the presence of Solid-State drives a very small number of drives can generate more I/O than the Storage controller can support. Earlier, controllers used to have time to spend in between drive I/Os in order to perform certain functions. But with the presence of Solid-State Drives, latency issue has almost disappeared.
A controller’s performance capabilities also turn crucial as the processor in it will be responsible for complex functions such as snapshots, cloning, thin provisioning and replication.
Thin provisioning, Snapshots and clones can become burdening, since they allocate storage space on a dynamic note. So, high processing capabilities such as connecting to the host for capacity pre-allocation and then working in the background to fulfill those storage commitments becomes essential.
Automated tiering where data is moved in between different storage classes also needs high performance capability driven storage controllers. In this environment the controllers need to analyze access patterns and statistics of different applications in order to move data.
So, in coming days, the importance of a storage controller will increase with the influx of more outstanding developments in techniques like De-duplication.
From the user perspective, importance should be given to the capabilities of a storage controller. You need to carefully access and judge the future needs of your storage and then go for the selection of the controller based on its performance capabilities. If a feature such as addition of CPU intensive features is available, then it will be an added advantage.