Storageflow: An SDN Approach to Storage Networks



Journal Title

Journal ISSN

Volume Title



Network Attached Storage (NAS) systems have become popular due to their efficiency, ease of use, and ability to protect and restore data. Many NAS implementations provide efficient service and utilize sophisticated techniques such as coding and striping of data to better utilize the available space, provide fast recovery from disk failures and avoid loss of data. Unfortunately, the current architectures are complex and inflexible which necessitates the need to introduce greater flexibility and support for experimentation. Additionally, there is a significant potential to improve the performance of the system by leveraging regenerative coding techniques and by allowing the intermediate network nodes to perform encoding operations.

OpenFlow (OF) is a rich SDN protocol that has gained significant popularity in recent years. OpenFlow defines a standard communications interface between the control and forwarding layers of an SDN architecture, as well as the forwarding architecture of a switch. While OpenFlow currently supports only a limited number set of protocols, it has attracted significant attention from both industry as well as research community and has significant potential to be widely adopted by the industry.

The key idea of this thesis is to utilize multifunctional SDN-enabled switches that can perform both traditional forwarding operations as well as new encoding operation on the packets. For this purpose, we propose to extend the OpenFlow datapath by enabling the switch to perform encoding operations on select flows upon the request from the controller. Our approach utilizes commodity hardware, which makes it cost-efficient and attractive. In contrast to the traditional approaches which rely on dedicated servers to perform coding and striping operations, our approach has better performance and flexibility, and can be easily customized to serve the requirements of a particular storage scheme. In addition, our approach makes it easier to experiment with new applications, including the use of different encoding schemes by enabling fast prototyping and testing.

Since none of the existing SDN protocols (including OpenFlow) provide support for basic storage functions such as striping and coding, we propose several extensions of the OpenFlow protocol to support such functionality as well as encoding operations. The extensions we develop are part of a systematic approach to design an SDN-enabled NAS system. We identify some common design trade-offs and evaluate their impacts on performance and reliability. Furthermore, the thesis presents a forwarding data path extension that uses custom data structures and groups at the switch. This design also effectively reduces required bandwidth and enables traffic engineering and load balancing at network links.