The optimal tradeoff between node storage and repair bandwidth is an important issue for distributed storage systems (DSSs). As for realistic DSSs with clusters, when repairing a failed node, it is more efficient to download more data from intra-cluster nodes than from cross-cluster nodes. Therefore, it is meaningful to differentiate the repair bandwidth from intra-cluster and cross-cluster. For cluster DSSs the tradeoff has been considered with special repair assumptions where all the alive nodes are utilized to repair a failed node. In this paper, we investigate the optimal tradeoff for cluster DSSs under more general storage/repair parameters. Furthermore, a regenerating code construction strategy achieving the points in the optimal tradeoff curve is proposed for cluster DSSs with specific parameters as a numerical example. Moreover, the influence of separate nodes for the tradeoff is also considered for DSSs with clusters and separated nodes.