1. An apparatus for controlling a storage of data among a plurality of regional storage centers operatively coupled through a network in a global storage system, the apparatus comprising: memory; and at least one processor connected with the memory, the at least one processor being configured: (i) to define at least one dataset comprising at least a subset of the data stored in the global storage system; (ii) to define at least one ruleset for determining where to store the at least one dataset; (iii) to track at least one attribute relating to at least one data requesting entity operating in the global storage system, the at least one data requesting entity requesting the at least one dataset; and (iv) to determine, as a function of said at least one ruleset and said at least one attribute relating to the at least one data requesting entity, information regarding a location for storing the at least one dataset among the plurality of regional storage centers having available resources that reduces at least one of total distance traversed by the at least one dataset in serving the at least one data requesting entity and latency of delivery of the at least one dataset to the at least one data requesting entity; wherein the at least one processor is further configured to determine whether a migration of the at least one dataset is worthwhile, and, when it is determined that migration is not worthwhile, continue to obtain information regarding the demand for the at least one dataset; wherein determining whether a migration of the at least one dataset is worthwhile comprises determining a new location, L^, for the dataset, among the plurality of regional storage centers having available resources, which satisfies an expression a 1 ·d(l 1 , L^)+. .. +a n ·d(l n , L^)+b·d(L′, L^)≦a 1 ·d(l 1 , L)+. .. +a n ·d(l n , L)+b·d(L′, L) for every other possible location L of the plurality of regional storage centers, where d(l j , l k ) is a network distance function indicative of a distance between any two locations l j and l k , a 1 ,. .. , a n represent amounts of data of respective data transfers, l 1 ,. .. , l n represent locations from where usage of the at least one dataset occurs, b represents a size of the at least one dataset, and L′ represents a location of a given one of the plurality of regional storage centers in which the at least one dataset resides prior to migration of the dataset.