As society moves toward cloud computing, we observe that cloud services may fail or become inaccessible, which particularly affects business clients. An approach to remedy this situation relies on a cloud of clouds, which results from the agglomeration of multiple separate clouds. There, we rely on the independence of clouds in order to enhance the dependability of any cloud service.
The cloud-of-clouds approach tolerates service outages and security incidents affecting individual clouds. Although existing cloud platforms provide high availability and reliability using internal replication, some common failure modes remain and services in the cloud of clouds tolerate them. The platform of a cloud provider is usually treated as a single security domain typically built using homogeneous components with little internal diversification. A cloud of clouds provides heterogeneity by leveraging multiple administrative domains, which is important for building intrusion-tolerant systems.
The Multi-cloud Storage Toolkit is a replicated storage system. Our method explicitly addresses the problem of space-efficient data replication using a key-value store (KVS) interface available from cloud providers today. This interface is simple and provides methods for writing and reading an entire blob (any binary data), for removing blobs, and for listing all defined keys.
A key-value store (KVS) offers functions for storing and retrieving values associated with unique keys. KVSs have become widely used as shared storage solutions for Internet-scale distributed applications.
Our Multi-cloud Storage Toolkit implements a wait-free efficient algorithm that emulates a fault-tolerant KVS from a set of KVS replicas in an asynchronous environment. Our implementation serves an unbounded number of clients that use the storage. It tolerates crashes of a minority of the KVSs and crashes of any number of clients. We note that applying state-of-the-art reliable storage solutions to this scenario is either impossible or prohibitively inefficient.
Finally, our Multi-cloud Storage Toolkit features a modular, layered, and highly configurable design. Layers are switchable, and can be adopted to a variety of different configurations (single-, multi-cloud, etc.). The implementation and use of layers in our Multi-cloud Storage Toolkit is transparent to the client. Furthermore, our Multi-cloud Storage Toolkit uses unmodified commodity cloud-storage services as providers. No communication among clients is needed and our Multi-cloud Storage Toolkit tolerates the failure of the clients.
- C. Basescu, C. Cachin, I. Eyal, R. Haas, A. Sorniotti, M. Vukolic, and I. Zachevsky.
Robust data sharing with key-value stores.
In Proceedings of the International Conference on Dependable Systems and Networks (DSN), June 2012.
- C. Cachin, B. Junker, and A. Sorniotti.
On limitations of using cloud storage for data replication.
In Proceedings of WRAITS 2012, June 2012.