1. A distributed storage system for storing blobs, comprising: a plurality of local instances, wherein each respective local instance includes a plurality of server computers, having memory and one or more processors storing one or more programs for execution by the one or more processors, and wherein at least a subset of the local instances are at physically distinct geographic locations; and a plurality of global instances distinct from the local instances, wherein each respective global instance includes a plurality of server computers, having memory and one or more processors storing one or more programs for execution by the one or more processors; wherein each blob stored in the distributed storage system has corresponding metadata that includes information that identifies a set of one or more local instances or global instances where the respective blob is stored; wherein each respective local instance is configured to: store data for a respective non-empty set of blobs in a plurality of data stores having a plurality of distinct data store types, wherein the respective set of blobs is a subset of all blobs stored in the distributed storage system; and store the metadata for the respective set of blobs in a metadata store distinct from the data stores; wherein each respective global instance is configured to: store the metadata for all blobs stored at all local instances; and wherein one global instance has a first replication module that replicates blobs between the local instances according to blob placement policies.