Entropy is a virtual machine manager for clusters. Developed by the ASCOLA research group , at the Ecole des Mines de Nantes , the Entropy system acts as an infinite control loop, which performs a globally optimized placement according to cluster resource usage and scheduler objectives.
Relying on an encapsulation of jobs into VMs, Entropy enables to implement finer scheduling policies through cluster-wide context switches: permutations between VMs present in the cluster. It results a more flexible use of cluster resources and relieve end-users of the burden of dealing with time estimates.
The major advantage of the Entropy system concerns the cluster-wide context switch process itself. Entropy computes a new viable configuration and an optimized reconfiguration plan. This plan describes the sequences of transitions to perform (i.e. the run, migrate, suspend/resume, stop VM operations) in order to pass from the current situation to the new one. As the cost of each action and the dependencies between them is considered, Entropy reduces, the duration of each cluster-wide context switch by performing a minimum number of actions, in the most efficient way.
From technical point of view, Entropy currently works with Xen (3.2.1 and higher) and Ganglia 3.0.7. Each of the VMs and each of the Domain-0 are running a Ganglia monitoring daemon. In addition, a shell script running on each Domain-0, provides additional monitoring metrics. Deployed on the front-end node, the Entropy JAVA system manipulates VM through drivers implemented with SSH commands or use the xen API. The decision module has to be implemented by the administrator to fulfill a specific scheduling policy. The version 1.2.0 is released with a default scheduling policy. Based on a First Come First Serve strategy, this algorithm tries to maximize the number of VMs running on the cluster.
The previous and still official release (Entropy 1.0 ) focuses on the consolidation issue: Entropy observes the current CPU and memory requirements of each virtual machine and computed a globally optimized placement of them that satisfy all their requirements while using a minimum number of hosts.