Abstract: NC-Cloud is a proof of concept prototype of a network coding based storage system that aims at providing fault tolerance and reducing data repair cost when storing storage using multiple cloud storage. To provide fault tolerance for cloud storage, recent studies propose to stripe data across multiple cloud vendors. However, if a cloud suffers from a permanent failure and loses all its data, we need to repair the lost data with the help of the other surviving clouds to preserve data redundancy. We design a proxy based storage system for fault tolerant multiple cloud storage called NC-Cloud, which achieves reduction in repair traffic for a permanent multi-cloud failure. NC-Cloud is built on top of a network-coding-based storage scheme called regenerating codes. Specifically we propose an implementable design for the functional minimum-storage regenerating (FMSR) codes, which maintain the same fault tolerance and data redundancy as in traditional erasure codes (e.g., RAID-6), but use less repair traffic. We validate that FMSR codes provide significant monetary cost savings in repair over RAID-6 codes, having comparable response time performance in normal cloud storage operations such as upload/download.

Keywords: Regenerating codes, Network coding, fault tolerance, Recovery, Implementation