Introducing SMF Layers
SMF Layers, meta data for your services. With S11 we added a new feature that will allow for better tracking of where services, instances, property groups and properties originate and how they may change over there life span. We store a layer at which the entity exists. At this time there are 4 layers at which an entity can exist. These layers are based on the location of its delivering or contributing data.
The layers are :
Manifest layer entities are delivered or contributed from a standard location for manifests, /lib/svc/manifest or /var/svc/manifest.
System profile layer entities are delivered in the system profile. A profile that is delivered by Solaris as part of the operating system itself. At this time this is the generic.xml manifest and a select few other files included into that file.
Site profile layer entities are delivered in a profile located under the /etc/svc/profile/site directory or a subdirectory created under this directory.
Everything else falls under the administrative layer. Anything delivered outside of the standard locations for manifests and profiles. As well as any command line creation of entities whether it be through svccfg or the libscf(3LIB) interfaces.
Starting at the manifest layer (the lowest) each of the next layers will override the previous layer. Although, each layer's data is stored in the repository so that, if one of the higher layers is removed, it will reveal any underlying layers. This makes upgrading but not overriding higher layer changes a simple action of putting the new files in place and letting the entities be
added to their appropriate layer.
One of the primary concepts we kept to when designing and implementing this project, was that the repository must represent the filesystem in the standard locations, and all other changes are administrative customizations to the system.
So how do Layers benefit us? Layers allow us to properly upgrade service configurations while preserving customizations. They provide better observability into service configurations, and the ability to undo customizations