The need for efficient storage systems and methods for massive amounts of data continues to grow. Currently, large data centers commonly employ blade servers that access a storage system including scalable arrangements of physical shelves of memory devices (disks and/or flash) and storage controllers. Typically, the servers access the storage controllers over a network (Internet, local area network (LAN), storage area network (SAN), etc.), while the storage controllers communicate among themselves via a private backplane and communicate with memory via fibre channel or serial-attached SCSI. The use of virtual machines (VM) for server functions allows for dynamic allocation of hardware resources, and has become a characteristic of modern data centers. Another characteristic of modern data centers is the increased use of solid state drive (SSD) devices (e.g. Flash devices) for caching data at various points in the storage architecture to increase I/O operations per second (IOPS). While current storage architectures for VMs improve upon older designs, they retain some legacy characteristics that prevent these architectures from being optimally efficient, both in terms of cost and in terms of ease of use. For example, current storage systems must define an elaborate data storage structure (LUNs, Volumes, etc.). Some current systems also require a layer of software to translate multiple transfer protocols into one proprietary protocol (see for example, SpinNP, and NetApp).
FIG. 1 is a block diagram of a prior art data storage system 100. There are multiple servers 102A-102G on the “server side”. Each of the servers 102 hosts multiple virtual machines (VMs) that communicate with each other and with a network 104 via a driver 103. A VM comprises virtual versions of the standard components of a physical machine (not shown). These may include a virtual CPU, virtual RAM, and a virtual disk drive. The VM host stores the data associated with a virtual disk drive in a file referred to as a vDisk. These vDisks are stored in the physical storage 106 (right side of the diagram). In storage 106, dedicated storage controllers 110A-110D handle communications from the server side via a standard network interface. Then the storage controllers 110 access physical storage nodes 108 via fibre channel. The storage controllers also communicate with each other via a dedicated backplane 112. System 100 includes disk devices 111 and Flash devices 108. The Flash devices may be used as either a fast tier of storage or as a cache. In either case, because the flash must be accessed via the network 104 and fibre channel 114 (using various protocols), there can be additional access latency attributable to this architecture.
In order for large scale data storage to truly migrate to a virtualized networked environment, it is desirable to have a storage system and method that includes a single, large, relatively inexpensive storage pool accessed directly over a network and managed remotely over the network by server-side compute servers or VMs. It is also desirable to have a storage system and method that employs server-side Flash memory optimally for enhanced performance.