Zfsdir: Simple ZFS management with Puppet

ZFS is a great filesystem, with many, many features. But for all that it is still easy to manage, in my opinion easier than other filesystems. Managing storage is usually a high risk task, which makes automation harder. Would you change the size for a critical filesystem with an automated method? If it is an ext3 filesystem on LVM and software-raid, maybe not. If it is on ZFS, a low risk modification of the quota could be enough, e.g. zfs set quota=800g rpool/criticalfilesystem. That’s easy to automate. Nowadays automation becomes even necessary because, the amount of ZFS filesystems is growing. And if you like to use more features you likely need to set more ZFS properties.

Read More

End of year 2014 summary

The year 2014 is almost finished. It was a great year! I relaunched this blog this year to “archive” some of my technical work and motivate myself to finalize my side projects in a sharable form. And of course to connect to people with similar interests.
Also this year my side projects were primary motivated by making my main job as Solaris systems engineer easier and of course less busier. So my main topics this year were clearly Solaris and Puppet.
Before I start with my plans for 2015 I like to sum up this year to see what worked well and what not. Justin Jackson wrote a really nice report on this achievements, my numbers are a different dimension but I will use his nice structure. To have a nice baseline for 2015.

Read More

See me at Oracle Openworld and PuppetConf

I will be at Oracle Openworld 2014, finally as speaker. Together with Glynn Foster and Eric Saxe I will talk about Puppet on Solaris. There are still some free seats, so register if you are interested:

Session: Best Practice Configuration Management with Puppet [CON7849]

A few days before I will also attend the Automation event of the year. This time I will finally take part on my first PuppetConf in person. The line-up is amazing with speakers like Gene Kim the author of “The Phoenix Project” and many other early drivers of the DevOps community.

I am in San Francisco from 23rd September to 2nd October, if you like to meet in person just ping me.

Known issues in Puppet on Solaris 11.2

Update 25th Dec 2014: With the latest Solaris SRU ( the important bugs which are listened here, are fixed for me. Also Puppet, Facter and Hiera are now shipped in a modern version.

With 11.2, Puppet is shipped for the first time directly with Solaris. I think it is a quite good first release, but of course not yet perfect. Puppet itself is open source software and Oracle also published all patches and Puppet types under the CDDL, so you would have the option to maintain your own build.

The huge open source community is an important part of Puppet, maybe the most important. But with Solaris you have the additional advantage that you have this open source software also covered under your usual Oracle Premier Support. With no additional cost!

Read More

Solaris 11.2 released

After a short public beta phase, Oracle made Solaris 11.2 generally available last week. You can download it from oracle.com in various forms like the usual install ISO, Unified Archives and as Virtual box appliance.

There are many, many new features, but also a lot of small incremental improvements.

Some of the new key features are:

  • Openstack
  • Kernel zones
  • Puppet
  • Unified Archives
  • Elastic Virtual Switch

    Read More

Control the size of the ZFS ARC cache dynamically

Last updated on: 25th Dec 2014

Solaris 11.2 deprecates the zfs_arc_max kernel parameter in favor of user_reserve_hint_pct and that’s cool.

ZFS has a very smart cache, the so called ARC (Adaptive replacement cache). In general the ARC consumes as much memory as it is available, it also takes care that it frees up memory if other applications need more.

In theory, this works very good, ZFS just uses available memory to speed up slow disk I/O. But it also has some side effects, if the ARC consumed almost all unused memory. Applications which request more memory need to wait, until the ARC frees up memory. For example, if you restart a big database, the startup is maybe significantly delayed, because the ARC could have used the free memory from the database shutdown in the meantime already. Additionally this database would likely request large memory pages, if ARC uses just some free segments, the memory gets easily fragmented.

Read More

Puppet and SMF in Solaris 11.2

In a former post I covered already my enthusiasm for Puppet support in Solaris 11.2. But what does it really mean? Is Puppet now the strategic systems management framework for all the Solaris stuff? In my opinion this is definitely not the case. The Solaris developers invested many years into good base technologies for systems management like the “Service Management Facility” (SMF). And with new Solaris releases, more and more systems configuration moves into SMF, into so called “SMF properties”. For example since Solaris 11 the DNS servers need to be configured in SMF properties and no longer in /etc/resolv.conf.
So if Puppet can talk to SMF the full power of SMF is also available in Puppet. In this post I will show how the managing of SMF in Puppet is possible in Solaris 11.2.

Read More

Automation of operational tasks with Remote Execution

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

Getting a fully automated data center in a bigger company which does not yet have an “automation friendly culture” is very hard. Setting up a company wide configuration management framework like Puppet, Chef or Cfengine can take ages. Additionally I experienced some engineers, who are not involved in the setup of configuration management framework itself, think they should wait until the framework is 100% established. Earliest after that they plan to start thinking how they can automate their repetitive tasks.

I think this “waiting” is a huge waste of time. Everybody can start understanding and automating their repetitive tasks already without the availability of a central company wide automation framework. In this post I will cover how the Remote Execution framework Fabric can be used to basically automate your SSH sessions.

Read More