This paper describes a control approach for large-scale electricity networks, with the goal of efficiently coordinating distributed generators to balance unexpected load variations with respect to nominal forecasts. To mitigate the difficulties due to the size of the problem, the proposed methodology is divided in two steps. First, the network is partitioned into clusters, composed of several dispatchable and non dispatchable generators, storage systems, and loads. A clustering algorithm is designed with the aim of obtaining clusters with the following characteristics: (i) they must be compact, keeping the distance between generators and loads as small as possible; (ii) they must be able to internally balance load variations to the maximum possible extent. Once the network clustering has been completed, a two layer control system is designed. At the lower layer, a local Model Predictive Controller is associated to each cluster for managing the available generation and storage elements to compensate local load variations. If the local sources are not sufficient to balance the cluster's load variations, a power request is sent to the supervisory layer, which optimally distributes additional resources available from the other clusters of the network. To enhance the scalability of the approach, the supervisor is implemented relying on a fully distributed optimization algorithm. The IEEE 118-bus system is used to test the proposed design procedure in a non trivial scenario.