1. A computer-implemented method for moving data between storage groups in a distributed storage system having a plurality of zones at distinct geographic locations, performed on a server having at least one processor and a non-transitory computer readable storage medium storing one or more programs configured for execution by the one or more processors to perform the method, comprising: storing data for a plurality of directories in the distributed storage system, wherein data for each directory is subdivided into one or more splits, each split is assigned to a respective storage group, and replicas of each storage group are physically stored as tablets in a plurality of zones according to a respective replication policy; maintaining a data structure including information relating to storage groups in the distributed storage system, each respective entry in the data structure for a respective storage group including placement metrics for the respective storage group, including a placement metric that measures a current amount of storage space being used by the respective storage group; computing a current total group usage as a sum of the placement metrics for each of the storage groups; computing a global storage group limit as a function of a total number of storage groups in the distributed storage system, a group storage limit, and a predetermined factor; creating one or more new storage groups when the current total group usage exceeds the global storage group limit; receiving, from a computer system, a request to move a first split from a first storage group to a new storage group in the distributed storage system; using the data structure to identify a second storage group whose placement metrics satisfy a selection criterion; creating a second storage group container in the second storage group to receive the first split from the first storage group; copying data for the first split from tablets corresponding to a first storage group container in the first storage group to tablets corresponding to the second storage group container in the second storage group; and executing a transaction to perform the following operations: dereferencing the first storage group container in the first storage group; in an index in the distributed storage system, dissociating a first identifier for the first storage group container from the first split; and in the index in the distributed storage system associating a second identifier for the second storage group container with the first split.