Adventures in Oracle Solaris 11

Basic administration using the Service Management Facility (SMF)

The Service Management Facility (SMF), first introduced in Oracle Solaris 10, is a feature of the operating system for managing system and application services, replacing the legacy init scripting start-up mechanism common to prior releases of Oracle Solaris and other UNIX operating systems. SMF improves the availability of a system by ensuring that essential system and application services run continuously even in the event of hardware or software failures. SMF is one of the components of the wider Oracle Solaris Predictive Self Healing capability, improving application resiliency in a typical data center environment.

An Overview of SMF

SMF is the software framework that is responsible for managing services on a system—whether they are critical system services essential to the working operation of the system or application services, such as a database or Web server.

Each service has a well-defined state (enabled, disabled, offline, maintenance) and usually a relationship to other dependent services that are required to be running on the system first. This provides a key benefit in that services can be started in parallel during system start up, resulting in a much faster boot when compared to the legacy init framework, which is only able to start processes in sequence and must wait until they complete. Each service is usually started by the SMF master restarter daemon, svc.startd, though this task can be delegated to an alternative restarter, as is the case for internet services delegated to inetd.

Behind the scenes of each service is a service manifest that describes some basic information about the service, what service dependencies are required, any required service configuration, and how SMF should start and stop the service. A service, once started, can start several different processes that are tied together as part of a service contract. This means that an administrator needs to manage only the higher-level service, rather than worrying about a series of individual processes and what start order might be required by those processes. If a service fails for any reason, whether during a hardware or software fault, SMF will automatically detect the failure and restart the service and any dependent services.