Installing and Administering Solaris Container Manager 3.6.1

Solaris Container Model

A Solaris Container is an abstraction layer that helps to organize and manage the collection of physical system resources. The container enables the creation of a blueprint that details the resource requirements for an application. The resource requirements of the application are the focus of the Solaris Container model. This model focuses on the service or workload. The service is delivered by an application, which is a workload to the system. A workload is a set of associated processes, such as an executing application.

An earlier form of workload-based management was implemented in the Solaris Resource Manager 1.3 release. In that release, the workload was associated with the limit node, lnode. Container Manager software builds on this earlier effort. The current container model provides a tool to help you organize and manage the ongoing delivery of resources for services. Common examples of services could be monthly payroll, customer order lookup, and web service delivery.

You need to be able to describe the environment that an application is limited to in a server consolidation. Establishing this description enables you to move from having one application running per server to having many applications running on a single server. The container provides this description, as well as being its instantiation. A simple container could, for example, describe system resources such as CPU, physical memory, and bandwidth. A more complex container could, for example, also control security, namespace isolation, and application faults.

The following illustration of a Solaris Container shows the relationship between services and resources.

Figure 1–1 Example of a Solaris Container

Illustration depicting an example of a Solaris Container.
The surrounding text describes the context.

The box represents the container. Three kinds of resources are shown along the x, y, and z axes of the box that surrounds the service. In this model, CPU, Memory, and Bandwidth are fundamental resources. The service is bound by the box to represent how this service is contained by the container. In this release, Container Manager controls all three fundamental resources: CPU, physical memory resources, and bandwidth.

Because Container Manager focuses on the workload, the amount of resources that is used by an individual host is not monitored. A host is a system on which the Container Manager agent software has been installed and which is part of the Sun Management Center server context. When installation is complete, the host is automatically discovered and the name is added to the navigation window in the Hosts view. The software monitors the amount of resources that is used by the service. In this model, a single instance of a service represents at least one process that runs on an individual host. The data is retained for possible system health monitoring and accounting purposes.

Figure 1–2 Example of Containers on a Host

Illustration showing an example of containers on a host. The
surrounding text describes the context.

More than one container can be active on an individual host at the same time. If multiple containers exist on a single host, you can set the boundaries of the containers so that the host can expand and contract them. In this case, resources that other containers are not currently using are available to a container that can use them. Ultimately, the number of containers that can be active on an individual host is determined by the amount of CPU and memory resources available, and how much of these resources each container reserves. The system must be able to meet the combined resource requirements of all the active containers, which are sized by the needs of the applications.

For more information about managing containers with Container Manager, see Chapter 4, Managing Projects.