Shred and Spread
Public cloud storage has recently become popular among individuals storing personal files and enterprises sharing business documents. However, cloud service providers (CSPs) offer fairly rigid services, which cannot be integrated to meet individual users’ needs. In this work, we provide a client-defined cloud storage service that integrates multiple autonomous CSPs into one unified cloud and allows individual clients to specify their desired performance levels.
We design and implement a prototype called CYRUS (Client-defined privacY-protected Reliable cloUd Service), which integrates commodity CSPs into one cloud storage system. CYRUS ensures user privacy and reliability by scattering files into smaller pieces and replicating them across multiple CSPs. We use modified erasure code whose (t, n) threshold property allows certain level of cloud failures. It also requires at least t encoded data to prevent each CSP cannot read users’ data. We develop an algorithm that sets reliability and privacy parameters and selects where to store user data so as to optimize performance (i.e., the delay in uploading or downloading data). We also address practical issues while implementing a fully-functional prototype. To accommodate multiple autonomous clients, we create a lock-free file update procedure, which lets clients maintain global views of the file system and detect conflicts. We performed both in-lab experiments and real-world evaluation.