Data replications is a typical strategy for increasing access performance and data availability in Data Grid systems. Current work on data replication in Grid systems focuses on infrastructure for replication and mechanisms for creating/deleting replicas. The important problem of choosing suitable locations for placing replicas in Data Grids has not been well studied. In this paper, we address the problem of data replica placement in Data Grids given the traffic pattern and locality requirements. We propose a new placement algorithm that finds the optimal locations for the replicas so that the workload among these replicas is balanced. We also propose a new algorithm to decide the minimum number of replicas required when the maximum workload capacity of each replica server is known. All these algorithms ensure that locality requirements from the users are satisfied.