Critique: Apple Mac mini with Snow Leopard Server

Critiques are not meant to be product reviews, but to reflect on a real-world implementation on the product or service, and may provide reference to more detailed product literature and reviews.
Apple.com product image of Mac mini with Snow Leopard

Background

Though I renounced a desktop computer more than 5 years ago, I have — for one reason or another — had a server in my home since 1999. The services it provided have expanded and contracted over the years, but the need for a dedicated machine persists even today. Over the years, as vendors like Sun, Dell, Compaq/HP, and Apple have introduced entry-level servers, I have examined each one for suitability to my needs: high availability, sufficient horse power, low power consumption, and small form factor.

I have paid close attention to the Mac mini since its introduction in 2005. While the early machines might have made suitable servers (there is, in fact, a company dedicated to Mac mini hosting), they suffered from short-fallings:

  • only one Ethernet Port (true in current model, but a requirement I’ve since dropped)
  • supported a maximum of 2GB of RAM (Internet lore claimed that (2) 2GB modules could be added, at great cost, and the Mini would recognize 3.3GB)
  • room for only one 2.5″ laptop hard drive — which severely limited amount of storage available

My intent with early versions of the Mac mini was to continue runing theOpenBSD operating system. As a point of fact, I purchase an earlier version of the mini in 2008, attempted to install OpenBSD, but ran into firmware issues and returned it (to American Express; protection plan — story for another day).

With the introduction of the Mac mini with Snow Leopard Server on October 20, 2009, Apple was offering a tiny machine with:

  • a 2.53ghz Core2Duo Processor
  • 4GB RAM
  • (2) 500GB laptop drives, in lieu of a CD drive (which I only use every 18 months, when I have a problem)
  • a 45W power supply
  • Snow Leopard Server OS, normally $499

for under $1,000. I reflected on how close a match this was to my decade-old wish list for a home server, and purchased mine on November 3, 2009.

Acquisition

Readers who have purchased servers from Compaq, Dell, HP, or Sun understand where there is going. When Sun first introduced the V880, we purchased two identical machines that arrived in pieces over the next six weeks. When we finally had everything, and put it together, key features were not working as advertised. Several calls to Sun tech supported landed us the engineer who designed Daktari’s firmware, who quickly resolved our issues.

I have other stories, I’m sure you have a few.

Just a few days after Apple released the mini server, I walked into my local Apple store and asked if it was in stock (expecting it to be a special order item). Spencer — the sales emo — walked into the back room, and brought out with my new server in a box smaller than a loaf of bread. He scanned it, swiped my credit card, and emailed me my receipt.

Implementation

You don’t expect the implementation to go that smooth, did you?

I will leave a product review to the usual suspects; instead, I will  focus here on the best and worst issues I ran into getting my new mini server up and running (where the mini becomes a complete replacement for my existing PC server).

Drive Mirroring

The mini server comes with (2) 500GB hard drives, and I did not plan to store much data on it. I wanted to use the software RAID-1 built into Mac OS to mirror the two drives. The mini server ships with a single partition on the first drive, and nothing on the second drive.

It would be nice if, through Disk Utility, you could simply tell the OS that you want it to soft-mirror the first disk to the second, but you cannot. You need to erase both drives in Disk Utility, then create a RAID-1 set, add both drives to it, reinstall the OS, and configure it. I discovered this after I went through the setup wizard and installed all the updates.

The next obstaclet: the mini Server includes a DVD copy of Snow Leopard Server, but it has no DVD drive. There is an application called Remote Install Mac OS X that ships in the Utilities folder; I tried using that to serve the install DVD off my Macbook Pro, but the mini would not detect it. In the end. I created a disk image (GUID Partition Type so its bootable) on a 16GB USB thumb drive, and used Disk Utility to copy everything from the install DVD to the thumb drive.

Screen shot of Disk Utility

Finally, I created a RAID-1 set, installed the OS, update, and move forward (interesting note: Snow Leopard Server is the first Apple software I’ve encountered that requires a license key).

DNS

I have always hosted DNS entries for my domains using BIND on Linux or OpenBSD. The Server Admin application included with Snow Leopard Server includes a graphical front-end to DNS. I had several issues migrating my DNS zone files from BIND to the GUI (I scoured for documentation; Apple should consider a new KB). My biggest problem was getting the SPF records for my domains in the proper place in the GUI (the comments field under the A record for the domain).
Screen shot of DNS SPF records

Power Consumption

The PC server that the mini replaced had a 450W power supply, including (3) 7200 RPM ESATA hard drives. It used a lot of power.

In contrast: the mini, Airport Extreme, and 8 port gigabit switch draw less than 20W of power (I’ve seen the display go as low as 11W). This means my new 1300W UPS can power this infrastructure for about 4 hours while on battery.

Picture of Uninterruptible Power Supply

The Energy Saver control panel automatically detects the attached UPS, which reports to the OS whether it’s using line power or battery, and what percentage of battery is remaining. I was able to configure Snow Leopard Server to run on battery until it drops below 10%, and to turn back on automatically when line power is restored. This means the system will stay up for hours, which should limit any outage to only the longest Dominion Power failure.

Energy Saver Control Panel

Screen Sharing over ssh

My goal was to run the mini headless (despite the monitor shown in the picture). Leopard and Snow Leopard include screen sharing (based on VNC), which is part of the Apple Remote Desktop (ARD) offering. It took a bit of Googling and questioning of friends and coworkers to locate the free ARD client included with the OS (in: /System/Library/CoreServices/Screen\ Sharing.app).

I use SSH Keychain to tunnel HTTP and Instant Message traffic through my home Internet connection over ssh. I was able to add a local port configuration to tunnel any screen sharing traffic over ssh. It is surprisingly responsive away from my home network, and has proven useful now on several occasions.

Assessment

Despite the issues mentioned, I was able to migrate 100% of the services I ran on my OpenBSD PC server to the Mac mini with Snow Leopard Server. The new setup consumes far less space and power, responds faster, and supports things that my old configuration did not (like hosting Merlin2 Project Schedules). Apple does not pretend that this is an XServe, yet it packs an impressive punch — in a small footprint — at a very reasonable price.

This is the small server I have wanted for 10 years. Time to update my wish list.

Picture of Mac mini in its native environment

References

Author: John Eisenschmidt

Topic(s): Critique

Published: February 22, 2010 00:33





Oracle on ZFS

Oracle on SPARC is a very common sight.  Most people who run SPARC run Solaris.  Sun Microsystem’s (now Oracle’s) SPARC and Solaris make for a well performing and stable platform for their Database Management System (DBMS).  Solaris 10, which has been out five years now, has brought into being many great features.  ZFS has been out for quite a while (not the initial release, however), and has also had tremendous growth in features, stability, and performance.  For years, I’ve resisted putting Oracle on ZFS.  The main reason is that ZFS is new.  Storage, above all, must be 100% correct.  ZFS is designed with this in mind, but despite the best efforts of the ZFS team, things do go wrong and recovery tools are not generally available.  Storage folks are a very conservative lot and “bleeding edge” makes many of us nervous.  The close-second reason is the Adaptive Replacement Cache (ARC) being stuck on.  The ability to bypass the ARC on a file system basis was introduced in Update 8 of Solaris 10.  The third reason is that ZFS is a Copy-On-Write file system.  That means every time a block is written, a new one is allocated and then linked in with the previous block becoming unlinked.  ZFS does this to ensure your write makes it to disk and that the file system metadata is always intact.  Fair enough, but I imagined a database fragmenting badly and quickly.  Knowing all of this, I decided it was time to put Oracle on ZFS (I’ll discuss the fragmentation in a minute) because it could help greatly in the problem I needed to solve.

The problem is this:  The organization uses an Oracle standby from the production database to create a reporting datamart.  They did this by stopping the standby, exporting custom tables from the reporting database, copying the standby database to the reporting database directories (over 300GB copied), modifying the reporting copy to be a reporting database, loading the tables back and starting standby again.  Wow.  The DBAs have their reasons for the database portion of it, but copying 300GB of data means that the SAN behind it (and the server!) has to move 600GB of data.  Oh, this was happening every night and took hours.

ZFS supports persistent snapshots and clones (writable snapshots).  As an added benefit, it also has privilege delegation.  With the ARC bypass firmly in place (along with block size changes), I was able to work with a DBA to put the standby database on a ZFS volume.  Instead of the four hour copy, an almost instant snapshot and clone is made.  The whole process (extraction of tables from reporting, snap, clone, transform, and load) now runs in less than 30 minutes and the DBAs have complete control over the process.

This setup has been in place now for several months bearing full load from users.  So far so good.  The SAN isn’t moving a mass amount of data every night, less storage is allocated, since two full copies are no longer needed and the system is using the CPU cycles to process other datamart activities.  If fragmentation becomes a problem, we can make a copy of the database, one file at a time.  After all, this is the way the organization used to do it.  Again, so far, no complaints have been made about the new setup.

ZFS is still evolving.  Features like de-duplication are coming.  I am hoping that block pointer rewrite becomes reality.  I’m sure many Solaris users will be happy to make the switch from the more traditional setup of Veritas Volume Manager and VxFS/UFS (aside from Oracle ASM, that is)..myself included.

Author: Barry Freese

Topic(s): Review

Published: February 2, 2010 07:50