A storage controller is a device that controls storage arrays, and mainly comprises the three types of components—"CPU" (central processing unit), "cache memory" and "connection interface with the network and memory devices." It is otherwise called "storage processor" or "array controller," among other names.
A storage controller integrates the memory areas in multiple memory devices and provides them as a single memory area to the server. When receiving a request from the server to write data, the storage controller determines to which device from multiple memory devices the data is allocated, and stores the data in the selected device. When it receives a request from the server to read certain data, the storage controller finds the location where the relevant data is stored, reads the data from the memory device and transfers it to the server. Performing these processing tasks in an efficient and stable manner is the role of the storage controller. Aside from reading and writing data, the storage controller performs processing tasks to realize a variety of added-value functions, including dynamic allocation of the volume capacity and acquisition of snap shots.