ComputingCloud ComputingComputer ScienceFault ToleranceFault-tolerant ComputingFault-tolerant SystemsDistributed StorageDistributed Storage SystemsFault Tolerance DesignFault-tolerant Storage SystemsStorage Fault ToleranceStorage ScalabilityDistributed HashingDistributed Storage ArchitecturesHashingIncremental HashingScalable Storage ArchitecturesScalable Storage SystemsStorage System ReliabilityVersioned Storage
To address the limitations of centralized shared storage for cloud computing, we are building Lithium, a distributed storage system designed specifically for virtualization workloads running in large-scale data centers and clouds. Lithium aims to be scalable, highly available, and compatible with commodity hardware and existing application software. The design of Lithium borrows ideas and techniques originating from research into Byzantine Fault Tolerance systems and popularized by distributed version control software, and demonstrates their practical applicability to the performance-sensitive problem of VM hosting. To our initial surprise, we have found that seemingly expensive techniques such as versioned storage and incremental hashing can lead to a system that is not only more robust to data corruption and host failures, but also often faster than naïve approaches and, for a relatively small cluster of just eight hosts, performs well compared with an enterprise-class Fibre Channel disk array.
43
Space/time trade-offs in hash coding with allowable errors
Burton H. Bloom · Communications of the ACM · 1970 · 7.5K citations · Full text
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani et al. · 2007 · 3.5K citations
Leslie Lamport · ACM Transactions on Computer Systems · 1998 · 2.7K citations · Full text
Live migration of virtual machines
Christopher J. Clark, Keir Fraser, Steven Hand et al. · 2005 · 2.6K citations