For both block and object storage we use Ceph ( https://github.com/ceph/ceph ) as our backend storage engine. The requirement of distributing copies of user data effectively while keeping them fully consistent was paramount to us. That and the fact that we like to use open-source tools throughout our stack (and contribute upstream whenever possible) led us to make this choice. Regarding the design of Ceph, I like to point people to https://www.youtube.com/watch?v=7I9uxoEhUdY since it gives an overview of the internals very nicely. :)