Experience with collaborating managers: node group manager and provisioning manager
This paper presents an autonomic system in which two managers with different responsibilities collaborate to achieve an overall objective within a cluster of server computers. The first, a node group manager, uses modeling and optimization algorithms to allocate server processes and individual requests among a set of server machines grouped into node groups, and also estimates its ability to fulfill its service-level objectives as a function of the number of server machines available in each node group. The second, a provisioning manager, consumes these estimates from one or more node group managers, and uses them to allocate machines to node groups over a longer timescale. We describe the operation of both managers and the information that flows between them, and present the results of some experiments demonstrating the effectiveness of our technique. Furthermore, we relate our architecture to a general autonomic computing architecture based on self-managing resources and patterns of inter-resource collaboration, and to emerging standards in the area of distributed manageability. We also discuss some of the issues involved in incorporating our implementation into existing products in the short term, and describe a number of further directions for this research.
autonomic computing systems management application placement