Notes from a Carbon Based Life Form
thoughts, opinions, and drivel. 100% free, guaranteed.

20070620 Wednesday June 20, 2007

Using Solaris 10 Update 3, Sun Cluster 3.2, Zones, & ZFS in a Multi-Node Cluster of Sun Fire T-2000s

It all started with a conference call with one of our customers. We wanted a way to set up some highly available systems that could be used for various beta or QA purposes, or production services, or anywhere in between as needed. We also wanted a way to maximize the resources. We had 4 servers available to us, all Sun Fire T-2000s. If we used them as straight servers, they'd be great at anything they do, right? 8 cores, 4 threads per core, 32GB of RAM. Nice. Capable of running dozens of zones without skipping a beat. Perhaps even hundreds of zones.

Zones make perfect development boxes, right? You can blow them away and re-install them in a matter of minutes, or even seconds on ZFS. Zones also do pretty good as production environments as well. We're currently using a large number of zones in production, to supply a variety of services.

Zones on ZFS make particularly good dev boxes because you can take frequent snapshots and roll back as desired.

** Zones with their zoneroot on ZFS do encounter bug #6356600, which relates to how the live upgrade scratch zone used for installing packages into local zones can't access ZFS filesystems to upgrade zones with a ZFS zoneroot.

Sun Cluster 3.2 introduced support for ZFS as a failover filesystem, and for failover zones as well. We decided to make use of both of these features.

We built a 4-node cluster out of the 4 T-2000s, and began exporting individual disks from our SAN. Put 3 disks in a ZFS pool as a raidz filesystem, and installed the zone root at a ratio of 1 zone per zpool. (We're still doing some testing with our SAN and comparing performance of ZFS on individual disks, or ZFS on a RAID5 LUN exported by the SAN, but so far the way we're doing it is working nicely.)

So we built the cluster, and got it all configured and running. We then installed the first zone onto the ZFS pool. Then I copied the relevant portions of the zones configuration (in /etc/zones/*) to the other nodes in the cluster.

We then created a resource group in Sun Cluster 3.2, and added the zone into the resource group. We also added the ZFS pool into the resource group as an HA-Storage resource, and created a quick set of control scripts to start and stop the zone. The zone itself takes care of bringing up it's ip addresses, and starting the various applications installed within.

End result: Highly available servers, on a failover basis, that take less than 30 seconds to fail over from one host to another.

So far it's working really well. We're already getting more requests to build more of these multi-noded clusters, with zone/zpool combo's as the resource group. It's been a great solution for us.

Posted by tkblog ( Jun 20 2007, 11:37:28 PM EDT ) Permalink Comments [5]

Comments:

That is exactly the solution I am working towards.

I only have a pair of T2000 available right now but expect two more next quarter. I am also waiting on more disks for our Network Appliance. I am hoping to use iSCSI to access the storage otherwise straight NFS.

For now the machines are getting a simple install similar to what we have done with Solaris9 for the last few years. We are then standing up about 24 "disposable" zones for a Proof of Concept shoot-out with a couple vendors.

Once that is done and we have the next set of systems and storage, I hope to get Sun Cluster installed and managing the zones.

Do you have any plans for releasing a guide to duplicating this setup?

Posted by MikeTLive on June 21, 2007 at 12:06 AM EDT #

Hi there, zones are just awesome and we plan to do way more rollouts with zones and soon Sun cluster for SIP proxies and media gateways. Solaris is getting better and better - very nice! And what you say is what our developers are talking about every day. Zones make development, testing and deployment very straight forward. http://www.remwave.com/Blogs/tabid/215/EntryID/11/Default.aspx

Posted by Nikolai Manek on June 21, 2007 at 12:49 AM EDT #

MikeTLive - FWIW, we've had very poor luck (kernel panics and poor documentation) from trying to use iSCSI from Sun Cluster to a NetApp box. Seems it is just too new. FC works fine though, or using a separate quorum server rather than a quorum device. NFS should be fine too, though it isn't suitable for our uses of zones so far (database/directory servers). Zones + ZFS are terrific though. Can't recommend them enough.

Posted by Nicholas Riley on June 21, 2007 at 01:48 AM EDT #

Just a quick comment to your comment "created a quick set of control scripts to start and stop the zone." Did you know there is a free SC 3.2 agent to do just that and more, i.e. Manage failover zones. http://docs.sun.com/app/docs/doc/819-3069

Posted by Neil Garthwaite on June 21, 2007 at 06:53 AM EDT #

@MikeTLive - We're working on a document describing how we set this cluster, and the failover zones on the failover zpools up.

@Neil - Yes, we tried the Sun Cluster 3.2 zone agent, but it wouldn't work for us for a variet of reasons. The agent requires that the zone be installed on all the nodes in the cluster, and that each node have access to the zone root, and that zone root can't be on ZFS, since ZFS can't be a global filesystem. Installing the zone individually presented us some management complexities that we didn't want to deal with. We wanted each zone to live entirely within a ZFS pool. That allows us the added flexibility of being able to pull those luns off that cluster, and export them to any other host on our FC fabric and be able to import that zpool and still have our zone intact (we do use the same jumpstart image in our environment so OS revs are identical).

Posted by tk on June 21, 2007 at 10:30 AM EDT #

Post a Comment:

Comments are closed for this entry.

Archives
Language
Links
Referrers