Sunday Dec 07, 2008

Have you looked at the OpenSolaris repository lately?

OpenSolaris 2008.11 has many new features, captured in this great screencast courtesy of The Observatory. But as important as the bits that come in the LiveCD are the activities happening in the back end, where lots of new packages have been added to the software repository. Not just standalone applications, but groups or "clusters" of them that, with a one-click install, deploy all components needed by developers in different domains. For example, the Webstack suite (called amp-dev) includes Apache, MySQL, PHP, Python, Squid, memcached, among others, as well as the NetBeans IDE to put it all together.

If you haven't looked at it recently, fire up the Package manager and browse through the different categories. You might be pleasantly surprised. Here's a sample list of packages that might interest you:

Package Manager Screenshot

Eclipse fans will be glad to find out that version 3.4 has been added to the main repository. And HPC developers can try the latest Cluster Tools, based on Open MPI 1.3.

Wednesday Nov 26, 2008

Hyperic HQ on OpenSolaris and MySQL

Internetnews ran this article on how the open source system management space is heating up. It discusses Groundwork, Zenoss and Hyperic, three examples in a growing field of players that also includes Nagios and Ganglia. As these tools expand their capabilities from basic system monitoring into application management, they are increasing the pressure on well established vendors.

Hyperic, for example, has plugins for Glassfish and MySQL, among many others. I downloaded the Hyperic HQ Open Source Edition 4.0.1 (the no-JRE, platform independent tarball) and tried it on OpenSolaris.

Robert Lor has already documented how to install the Hyperic Server on PostgreSQL, so I decided to use it with MySQL instead. Pretty simple to set up. I used MySQL 5.0, via the SUNWmysql5 package from the OpenSolaris repository (if you want step-by-step instructions on how to get MySQL on OpenSolaris, see here).

The database configuration for Hyperic is well documented here. Once the database part is done, set JAVA_HOME to the location of your Java runtime (for example, to the default of /usr/java), and run -mysql. If you only want to deploy the agent component, just download the corresponding tarball and run start. I have included the full output of these commands at the end of this blog entry.

As the agent was started, it detected the system information automatically, and updated the inventory at the server. Here's a screen shot of the web management console, on port 7080 by default:

I was able to drill down into charts for network and cpu utilization as well. Very nice. It's good to know that, if you use Hyperic, you can add OpenSolaris to your infrastructure and manage it the same way. Now, if we can only get it to report "OpenSolaris" instead of "Solaris 11". Time to file and RFE!

Here's the output of HQ Server installation. I only installed the Server in this step. The tarball (hyperic-hq-installer-4.0.1-905-noJRE.tgz) was uncompressed and untared in the /Apps/Hyperic directory.

hugo@hugo_osol:/Apps/Hyperic/hyperic-hq-installer$ ./ -mysql
Initializing Hyperic HQ 4.0.1 Installation...
Loading taskdefs...
Taskdefs loaded
Choose which software to install:
1: Hyperic HQ Server
2: Hyperic HQ Agent
You may enter multiple choices, separated by commas.
HQ server installation path [default '/home/hyperic']:
Enter the JDBC connection URL for the MySQL 5.x database [default 'jdbc:mysql://localhost:3306/HQ']:

Enter the username to use to connect to the database:
Enter the password to use to connect to the database:
Loading install configuration...
Install configuration loaded.
Preparing to install...
Validating server install configuration...
Checking server webapp port...
Checking server secure webapp port...
Checking server JRMP port...
Checking server JNP port...
Checking database permissions...
Verifying admin user properties
Validating server DB configuration...
Installing the server...
Unpacking server to: /Apps/Hyperic/server-4.0.1...
Creating server configuration files...
Copying binaries and libraries to server installation...
Copying server configuration file...
Copying server control file...
Copying server binaries...
Copying server libs...
Setting up server database...
Setting permissions on server binaries...
Fixing line endings on text files...
Installation Complete:
Server successfully installed to: /Apps/Hyperic/server-4.0.1

You can now start your HQ server by running this command:

/Apps/Hyperic/server-4.0.1/bin/ start

Note that the first time the HQ server starts up it may take several minutes
to initialize. Subsequent startups will be much faster.

Once the HQ server reports that it has successfully started, you can log in
to your HQ server at:

username: hqadmin
password: hqadmin

To change your password, log in to the HQ server, click the "Administration"
link, choose "List Users", then click on the "hqadmin" user.

Setup completed.
A copy of the output shown above has been saved to:

And here's the output of the Agent installation, from the hyperic-hq-agent-4.0.1-905-noJRE.tgz tarball. Also placed in the /Apps/Hyperic directory:

hugo@hugo_osol:/Apps/Hyperic/hyperic-hq-agent-4.0.1/bin$ ./ start
-n Starting HQ Agent...
Removed stale pid file: /Apps/Hyperic/hyperic-hq-agent-4.0.1/wrapper/sbin/../../ wrapper/

[ Running agent setup ]
What is the HQ server IP address:
Should Agent communications to HQ always be secure [default=no]:
What is the HQ server port [default=7080]:
- Testing insecure connection ... Success
What is your HQ login [default=hqadmin]:
What is your HQ password:
What IP should HQ use to contact the agent [default=]:
What port should HQ use to contact the agent [default=2144]:
- Received temporary auth token from agent
- Registering agent with HQ
- HQ gave us the following agent token
- Informing agent of new HQ server
- Validating
- Successfully setup agent

Monday Nov 17, 2008

Going back in time with ZFS

With OpenSolaris 2008.11 just around the corner, there are a number of interest features I wanted to take for a test drive. One of them is the combination of Automatic Snapshots and the Time Slider utility.

With ZFS, taking and storing snapshots has become a very lightweight operation: they can be created almost instantly, and initially consume no additional disk space. Many Solaris users have created their own scripts to implement a backup policy based on them. So it seems natural to provide this as a standard OS service. Tim Foster has done just that, providing five SMF services to capture ZFS snapshots at regular intervals:

$ svcs auto-snapshot
online 9:27:35 svc:/system/filesystem/zfs/auto-snapshot:weekly
online 9:27:39 svc:/system/filesystem/zfs/auto-snapshot:monthly
online 9:27:39 svc:/system/filesystem/zfs/auto-snapshot:hourly
online 9:27:39 svc:/system/filesystem/zfs/auto-snapshot:daily
online 9:27:40 svc:/system/filesystem/zfs/auto-snapshot:frequent

The default settings for frequency and retention policies are:

  • frequent: snapshots every 15 mins, keeping the last 4
  • hourly: snapshots every hour, keeping the last 24
  • daily: snapshots every day, keeping the last 31
  • weekly: snapshots every week, keeping the last 4
  • monthly: snapshots every month, keeping the last 12
They rely on cron to schedule the jobs. Simple concept, and avoids custom shell scripts and manual editing in /var/spool/cron/crontabs. As SMF services, they can be managed and monitored like other OS services, so they are easier to maintain.

How do you turn this on? While this could be done by setting the com.sun:auto-snapshot property to true on the target file system(s), there's a Time Slider Setup GUI (under System/Administration in the menu) to make things easier. You can choose to run auto-snapshots for all file systems, or select individual ones. For the icing on the cake, a time slider has been integrated into GNOME's Nautilus file manager, so you can "travel back in time" to see individual files from any of your snapshots. See Erwann's Chénedé's blog for details, including screen shots.

I often need to recover older version of documents to undo recent changes, only to discover that I forgot to save a copy. If you're like me, these new tools are a great time saver. Turn the service on, and let it do the work for you.

Note: In the OpenSolaris 2008.11 development builds (snv_101a_rc1b in my case) there is an issue with the zfssnap role not being able to run cron jobs. If you try this on early access bits, apply the changes suggested here. Check the services' logs at /var/svc/log/ for troubleshooting.

Friday Nov 07, 2008

OpenSolaris shows up at SPEC

Industry standard benchmarks play an important role. And not just as product marketing tools. With a multitude of hardware and software combinations, most customers cannot allocate time and resources to do a thorough comparison of all the choices, and appreciate the contribution of standard bodies that define relevant workloads and consolidate performance results. SPEC (Standard Performance Evaluation Corporation) is a prime example. With its strict run rules and review process, it forces vendors to always put their best foot forward. Which makes the publication of a couple of OpenSolaris SPEC results a significant milestone.

The first one is SPECfp2006, often considered the leading indicator of a system's performance for HPC applications. It is a cpu-intensive benchmark, where the OS and compiler play a key role in extracting every ounce of performance from the underlying hardware. To get a good feel for how OpenSolaris and Sun Studio compare to other OS/Compiler stacks, I looked at all results using Intel's quad-core Xeon X5482 at 3.2GHz, all seven of them run on dual-socket systems. Here's the summary (click on the score to see the full report):

Operating System



Result (SPECfp2006)

OpenSolaris 2008.05

Sun Fire X2250

Sun Studio Express 11/08


SUSE Linux Enterprise Server 10

HP ProLiant DL160 G5p

Intel C++ and Fortran Compiler 10.1


SUSE Linux Enterprise Server 10

Intel Supermicro X7DWN

Intel C++ and Fortran Compiler 11.0


SUSE Linux Enterprise Server 10

IBM System x3450

Intel C++ and Fortran Compiler 11.0


SUSE Linux Enterprise Server 10

ASUSTeK DSEB-DG Motherboard

Intel C++ and Fortran Compiler 10.1


Windows XP Professional

Dell Precision T7400

Intel C++ Compiler 10.1, Intel Visual Fortran 10.0


Windows Vista Ultimate

Dell Precision T7400

Intel C++ Compiler 10.1, Intel Visual Fortran 10.0


The combination of OpenSolaris and Sun Studio gives other more entrenched solutions a run for their money. They are free to use, and Sun Studio comes with a nifty Performance Analyzer tool. Why not give them a try? If you're on OpenSolaris, run pkg install sunstudioexpress to get started.

The second benchmark is SPECjAppServer2004, which tests the performance of a multi-tier Web stack, including application server and database. It is quite active, with over 70 results from all major hardware and software players in the Enterprise Java space. What makes this result significant? That the OS (OpenSolaris 2008.05), the database (MySQL 5.0) and the Application Server (GlassFish Enterprise Server v2) are all open source. In fact, Sun is the only vendor that has published a result that doesn't rely on proprietary software.

Beyond getting kudos from FOSS advocates, there is a strong reason why this SPECjAppServer result is very relevant: customers are asking not for performance at any price, but performance at the right price. And the price/performance numbers speak for themselves, showing a 10x advantage over proprietary solutions. Take a look at Tom Daly's blog or BM Seer's blog for in-depth analysis. This more cost-efficient, open-source-based stack does not mean customers have to endure higher risk. All of the components, while free to download and use, can be covered by a 24x7 support contract, in compliance with the benchmark rules.

Disclosure Statement:
SPEC, SPECfp and SPECjAppServer are trademarks of the Standard Performance Evaluation Corporation. Results from as of 10/15/08. SPECfp2006 comparison based on results with a Processor type "Intel Xeon X5482". For the latest SPECfp2006 results visit For the latest SPECjAppServer2004 results visit

Tuesday Oct 28, 2008

ERP, the Open Way

There was a time when installing an ERP application, even for evaluation only, meant having an army of consultants, a lot of money, and a lot of time. So when I heard that Openbravo ERP is now available on Solaris (Solaris 10 and OpenSolaris), I had to try it out.

Openbravo ERP is a Java-based open source product. It's among the most active projects on sourceforge, and has received accolades from the likes of Infoworld and LinuxWorld.

I deployed this on OpenSolaris, following Jignesh's instructions. The process was pretty simple, as all the dependencies (Java, Tomcat, PostgreSQL) are in the software repository and can be installed with pkg. I had this up and running in less than an hour:

Openbravo Browser Screen Shot

The total software acquisition cost, including OS, database, middleware and application? Zero. Of course, support contracts would be needed to run this in production, but zero is a pretty low barrier for people willing to evaluate ERP the open way.

Monday Oct 20, 2008

OpenSolaris draws attention from Data Management applications

There's feverish activity in the Solaris storage stack, in areas like CIFS and COMSTAR, to name a couple. I struggle to keep up, but regular visits to the Storage Community at always help to stay on top.

Not surprisingly, we're also seeing a surge in software development in applications that handle business critical data. It's an area ripe for innovation, where competitive advantages can be obtained by exploiting the right OS features. Many companies have products based on open source and provide a free community edition, so they see a natural synergy with OpenSolaris and have decided to offer their software on this platform.

One such example is Zmanda. Their Zmanda Recovery Manager is very popular in enterprise MySQL deployments, where efficient data backup & recovery is critical. ZRM is able to provide extremely fast full database backups on Solaris by taking advantage of ZFS snapshots, a great example of leveraging a key feature of the OS. Zmanda was one of the participants at the recent OpenStorage Summit, where Mark Carlson had a chance to interview Paddy Sreenivasan, their VP of Engineering.

Another example is MailArchiva. This application provides email archiving for popular servers like MS Exchange, Postfix, Sendmail and Lotus, among others. The Open Source Edition, available at sourceforge, now includes a download for OpenSolaris. Not only is it very easy to install, but it also comes with an SMF manifest:

$ svcs -l mailarchiva
fmri svc:/network/mailarchiva:default
name MailArchiva
enabled true
state online
next_state none
state_time Fri Oct 17 14:39:26 2008
logfile /var/svc/log/network-mailarchiva:default.log
restarter svc:/system/svc/restarter:default
contract_id 111
dependency require_all/error svc:/network/loopback:default (online)
dependency optional_all/error svc:/network/physical:default (disabled)
dependency require_all/none svc:/system/filesystem/local (online)

By enabling it as a Solaris service, system administrators can manage and monitor MailArchiva in a familiar way, eliminating the need for ad hoc scripting.

Monday Oct 13, 2008

It's still Solaris, but now in two flavors

With the introduction of OpenSolaris 2008.05, we have a nimbler vehicle to get Solaris innovation in the hands of developers and customers. This also marked a significant shift in our OS release model. I've heard from many people who have a long history of working with Solaris and are, shall we say, intrigued about what all the OpenSolaris announcements mean for their own development or deployment plans.

As a member of Sun's ISV Engineering organization, I often get involved in OS roadmap discussions. Nowadays, the first point I emphasize is that the Solaris platform has two delivery vehicles: Solaris 10 and OpenSolaris. They share a common origin, but have important differences, particularly in their life cycles. One does not replace the other: they coexist, catering to different needs.

It's important for developers who contribute to the Solaris ecosystem (there are well over 10,000 applications and counting) to understand how these two release trains operate, to determine how OpenSolaris may influence their own product plans, and how they can use it to reach a wider audience.

In an effort to capture some of these facts, Marty Duey and I have recorded a webcast. If you've been hearing a lot of buzz about OpenSolaris, but haven't spent too much time figuring out what it's all about, this could be a good starting point. Take a look... and share your comments. We're listening.

I am a member of Sun's ISV Engineering organization, collaborating with ISVs and Open Source communities to advance the Solaris platform.


« July 2016