Simple and fast Solaris installation with Unified Archives

In the last post I discussed that the Golden Image approach still has its advantages even if you use configuration management frameworks like Puppet. But the success and the quality of this approach depends heavily on the available tools. Solaris 11.2 ships with the new “Unified Archives” technology, which was newly developed from scratch. Therefore it should be a much better solution compared to “Flash Archives” from Solaris 10. I assume it was easier to build a better tool on Solaris 11, because base technologies like IPS, ZFS and SMF could be fully leveraged.

A nice introduction of “Unified Archives” (“UAs”) can be found on the Oracle blog of Jesse Butler.

With AI (Automated Installer) Solaris 11 already has an install service with many great features. But if you don’t use AI very often, it can easily look complex. In this post I will show, how to deploy global zones with a simpler method.

Read More

Puppet on Solaris 11.2

The first public beta of Solaris 11.2 is finally available and I am very excited about this release. For some of the highlights check the Oracle Solaris blog.
There is a lot of buzz about the Openstack integration, but for now I am more interested in the integration of the automation framework Puppet. Openstack very likely has a big future and will address IT automation on its own way, but it’s a very new technology.
Puppet on the other hand is in production since many years. But according to my experience, the majority of the users use it for managing Linux systems and not Solaris. With 11.2 Oracle finally embraces Puppet and makes it a lot easier to use the framework for Solaris users.

Read More

Building Puppet from source is easy

This post is part of a blog series which tries to simplify the adoption of configuration management frameworks.

As mentioned in the last post, software dependencies can be a blocker for the adoption of configuration management frameworks. In complex or legacy environments where one has several different and antique operating systems versions, even the installation of this frameworks can be painful. Easily too painful for a time saving tool.

About a year ago, I was trying to install the Puppet agent on Solaris 10, Solaris 11 and RHEL 5.x. And it took longer than 5 minutes …
Basically the most install tutorials require to have a current operating system and/or a connection to the Internet from your target systems. These requirements were just not realistic for my target servers at my work place.

Read More

Configuration Management Frameworks - Adoption Blockers

Frameworks like Puppet, Chef, Cfengine, or Salt are now available for some years. Their community is huge and „Automation“ seems to be the answer to almost everything in IT.

Many say: If you do system administration for more than one server and you don’t use a configuration management framework, you do it wrong!
I fully agree with this statement. But according my observation, everybody seems to be interested in using such frameworks, however in reality the adoption rate is quite low.

Why is this?

Read More

zpool-zones-vio.d - ZFS statistics per zpool and per zone

Another script, which provides a missing feature to Oracle Solaris 10/11: ZFS statistics per zpool and per zone.

The ZFS in Oracle Solaris 10 and 11 is still not completely ready for a single pool setup, for some applications it makes sense to use multiple pools. In general, if one workload stresses the single zpool too much, the performance of the other workloads can be degraded. Therefore it’s still best practice to use multiple pools, for example the “Configuring ZFS for an Oracle Database” white paper suggests to use at least an own pool for the redo-logs.

Read More

oracle-pwrite-zfs-latency.d: Detect slow sync writes on ZFS

The first DTrace integration into the Oracle 12c database was finally reverse engineered in great detail by Andrey Nikolaev. Finally we have a good documentation how the V$KERNEL_IO_OUTLIER view really works.

The standalone kernel_io_oulier.d DTrace script works great even on Solaris 10 and pre-12c Oracle databases, but only on RAW-devices and ASM. Oracle pushes ASM because of good arguments, but sometimes one likes to use a filesystem.

We have some databases on ZFS and so I was jealous that the script does not work with ZFS. Therefore I tried to make a similar script for ZFS.

Read More

Graphite - Visualizing Solaris performance the easy way

Last month, on the first Vienna Solaris Technical Day, I had the opportunity to make a small presentation about a simple method for drawing nice graphs from Solaris performance metrics. As several people asked me for the details, I will share them here.
The concept is simple, just use the Solaris command line utilities, like iostat and send the reformatted output to the popular open source tool Graphite.

Read More

Collecting CMDB information of Solaris and Linux systems

As mentioned in the previous post I am working on a tool which collects essential information of Linux and Solaris systems. The first release is finally public available on GitHub (

Why have I written this tool? I needed it for my job and I found no other tool, which fulfilled our requirements. Additionally it was a nice opportunity to train my Python and RegEx skills.

Read More

Map the guest ldom name to the operating system hostname

Keeping the documentation of the IT infrastructure by hand up to date is not really a lot of fun nor exciting, but still necessary. More automation in this area would be nice. After looking for an “Enterprise solution” for some months, I think there is no off-the-shelf solution which fulfills all our needs.

Therefore I started to develop a basic discovery script, which should discover all important information of our Solaris and Linux servers and feeds the info in our CMDB. Most of the stuff is straight forward and at best a opportunity to improve my Regex skills, but there are also some challenges which could be interesting for others.

Read More