solaris


mercurial SCM

Well, been playing with opensolaris and they use mercurial as a DSVN - and another benefit of that over git is that the command set is very much similar to SVN/Subversion - which is important for us people who /don’t/ use it every day. Migrating was straight-forward: $ mkdir ~/svn && cd ~/svn $ hgimportsvn https://dubdubdub.co.uk/svn/mike $ find . -name .svn -type d | xargs rm -rf One thing to note when using - which took me a bit of reading to realise - it’s distributed, so if you’ve your own local copy - you have to commit and then push/pull changes out!

Filesystem caching and performance

well this is slightly surprising, but in a very good way, and does lead to some interesting suggestions on how to best to improve matters, but look at the following graph of FAST ESP query latency: Notice that the average latency drops as we use the server more … but WHY? Well that’s just because we’re running the FAST indexes on a ZFS based file system and the L2 ARC cache is making it’s presence felt

dladm

dladm is a new command with solaris 10 which can do many clever things (I think the general idea behind it is that ifconfig was becoming bloated with features and options that it was a good idea to break the link between the physical network provision and the logical usage) ie: dladm - physical link provision/configuration ifconfig - logical link configuration Assuming a server with two gigabit ethernet connections connected to two switches (for physical resillience):-

Solaris zone configuration

Configure the zone you want, this is just a basic configuration (suited to a name server - that inherits the global zones /var/named) # zonecfg -z solzone solzone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:solzone> create zonecfg:solzone> set zonepath=/u01/zones/solzone zonecfg:solzone> set autoboot=true zonecfg:solzone> add net zonecfg:solzone:net> set address=10.10.10.20/24 zonecfg:solzone:net> set physical=bge0 zonecfg:solzone:net> end zonecfg:solzone> add fs zonecfg:solzone:fs> set type=lofs zonecfg:solzone:fs> set special=/u01/zonedata/solzone zonecfg:solzone:fs> set dir=/u01 zonecfg:solzone:fs> end zonecfg:solzone> add inherit-pkg-dir zonecfg:solzone:inherit-pkg-dir> set dir=/var/named zonecfg:solzone:inherit-pkg-dir> end zonecfg:solzone> add attr zonecfg:solzone:attr> set name=comment zonecfg:solzone:attr> set type=string zonecfg:solzone:attr> set value="test solaris zone" zonecfg:solzone:attr> end zonecfg:solzone> verify zonecfg:solzone> commit zonecfg:solzone> exit And now install and boot the zone

It’s been a bug-bear for a long time for me that the CPU metrics when querying a Solaris 10 host are global and not zone specific (which of course makes sense, just makes it harder to track zone utilisation). So finally wrote a basic perl script that will provide that information via a SNMP mib, output looks like the following: > snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255.7 UCD-SNMP-MIB::ucdavis.255.7.0 = STRING: "Zone name" UCD-SNMP-MIB::ucdavis.