No 1U, two-socket rack server bests Apple's Xserve in its price range. No two-socket Intel desktop can touch the MacBook Pro for its combination of durability, efficiency, expandability, and quiet operation.
But while Apple's top-of-the-line server and desktop put the rest of the pack to shame, they have what some consider to be a showstopper shortcoming: They run OS X. Now, to me, that's a major plus. The rest of the IT universe seems intent on running something else on their x86 servers, and as such, Apple's hardware is rarely on the table when it comes time to build a Windows or Linux server.
Thanks to Parallels, IT can put Apple hardware on its list with greater confidence, because Parallels Server for Mac (which costs £780 plus VAT and debuts as Version 3.0) opens Xserve and Mac Pro to 64-bit heterogeneous environments, paving the way for server consolidation, security and testing isolation, and high availability, along with most other uses to which you'd normally put virtualization. Parallels Server for Mac uses the extremely efficient, hardware-accelerated virtualization engine proven in its Parallels Desktop product.
Unfortunately, Parallels Server for Mac both retains too much of its desktop heritage and pares off some desktop features that would have been welcome in Server. Its Management Console is only barely competent to manage multiple VMs, and it becomes unwieldy when those VMs are spread across multiple physical servers. Two Parallels Desktop features -- snapshot and direct disk partition access (implemented in Desktop for Apple's Boot Camp boot-to-Windows tool) -- looked ripe for adaptation to Server for Mac.
Parallels Server for Mac claims as its trump card the ability to run OS X Server as a guest of itself, but that turns out to be what Parallels Server for Mac does least well. OS X Server cannot be installed from Parallels Management Console. Users who have been able to kludge their way into a running OS X guest report stability and performance issues that, so far, Parallels has not addressed with either a fix or concrete guidance in its knowledge base or forums. I held this review for over a month to give Parallels a chance to work it out, but it didn't happen. The lack of OS X guest support, stability and compatibility issues with Parallels Management Console, and the absence of storage and resource allocation features that I expect from a server product lend Parallels Server for Mac a beta feel and make its £780 price tag seem too high by half.
Windows on Xserve
I tested Parallels Server for Mac on an eight-core Apple Xserve with 3TB of Serial ATA hard disk space, Apple's hardware RAID controller, and 8GB of RAM. In this configuration, I was able to run two instances of Windows Server 2008 and a virtual instance of OS X Leopard Server at the same time, allocating 1GB of RAM and 64GB of virtual drive space to each. I might have run one or two more VMs on this hardware, perhaps more if each instance had a fairly narrow workload assigned to it.
Performance is terrific. Running a single instance of Windows Server 2008 as a guest under OS X Leopard Server, Parallels Server for Mac delivers Windows server application performance that is functionally indistinguishable from native (nonvirtualized) operation. I've come to expect this from Parallels, whose Desktop product delivers similarly impressive performance.
I didn't get as much control over that performance as I require from server virtualization. By adjusting the number of virtual CPUs assigned to each guest OS, I was able to crudely balance performance among guest VMs. A single opaque switch in Parallels Management Console claims to optimize overall performance to favor either the host or the guests. I prefer finer-grained resource allocation in the form of weighting, throttling, or caps on CPU utilization.
A nice touch is the built-in console viewer, which displays Windows Server's Server Manager. However, it doesn't work with an OS X Server guest.
I expected storage performance to be an issue, but it turned out to be no issue at all. Windows Server 2008 x64 guests take off like sprinters, and even though Parallels Server for Mac has no mechanism for migrating running processes from one machine to another (you wouldn't expect it for £780), suspending and resuming a virtual machine takes only a few seconds. If you suspend a VM in the middle of a task that uses the real-time clock as a timer, you might not be able to resume cleanly. You also have the option of pausing a VM, which happens instantly, but unlike suspend, pause won't maintain the system's state if the host reboots.
Parallels Server for Mac proved highly reliable. Except for VMs that wouldn't come out of suspend mode cleanly, I experienced no freezes or crashes of either a virtual machine or the host server.
Virtues of virtual storage
Virtual volumes have advantages that Parallels Server for Mac plays to a unique extent. Because virtual volumes can be located anywhere, Parallels Server for Mac can make your client's optical drive operate exactly like a drive attached directly to the server. You can create a new and completely uninitialized virtual machine, slide an OS boot disc into the client machine you're using to manage the remote server, and the server will boot from it. This is similar to a feature inherent in OS X Leopard, but Parallels Management Console makes it much easier to use for remote server installs.
Using an included utility called Parallels Explorer, you can read or alter Parallels Server's virtual volumes while the virtual machine associated with that volume is offline. NTFS, FAT, and EXT2/EXT3 file systems are supported, and as a bonus, you can read and change Microsoft and VMware virtual volume images using the same tool. Parallels Explorer for Mac also lets you mount a Parallels virtual volume image as a local drive so that you can apply patches, add applications using install-by-copy, and relocate system files without destabilizing a running VM.
Similarly, Parallels Server for Mac has cloning and templating features that allow you to create and tune one ideal OS image and either replicate it in full or create a template that applies that VM's configuration to a new install. Cloning a Windows Server OS will trigger Microsoft's licensing tripwire, requiring a unique product key and activation. Microsoft's permissive terms with regard to covering several Windows VMs with one license don't seem to apply when OS X Server is a host.
Parallels Desktop has the ability to mount and run using a bootable physical disk partition, as long as that partition was created by Apple's Boot Camp. Boot Camp is not an OS X Server feature, but Desktop's ability to use a natively bootable volume as virtual machine storage would have opened up some intriguing possibilities.
Parallels Server for Mac's management front end will be familiar to Parallels Desktop users. In the Server version, you can manage guest virtual machine instances on remote systems. A detachable console window is built into the management interface, replacing Parallels Desktop's viewer that required a user to be logged in. Parallels Server for Mac will launch one or more virtual machines at host startup and either suspend or shut them down when you shut down your Mac.
Parallels Management Console, which runs the same locally or remotely, presents a live view of the virtual guest's display. Unlike Remote Desktop or VNC, Parallels Server has the advantage of bringing up the console the instant the VM "powers up," so the BIOS and kernel loader text messages you'd see on a physical machine and monitor are sent over the wire. Parallels Server uses VNC for remote access to a VM, but according to Parallels, it isn't compatible with standard VNC implementations. If it were, the OS X guest problem would have an easier solution.
Parallels Server for Mac presents a mix of strengths and shortcomings that make it difficult for me to issue a simple thumbs-up or thumbs-down. I definitely like the direction that Parallels is taking, especially with regard to Parallels Explorer and Parallels Server for Mac's handling of VMs at boot and shutdown. Parallels also offers a free SDK for its Server product, providing IT with a chance to make up for some of what the core product lacks, or to at least automate tasks that typically call for menus and wizards.
But OS X Server as a guest of OS X Server is a nonstarter, and that was unquestionably the most anticipated feature of Parallels Server for Mac. I was able to get a guest OS X Leopard Server VM to work by using a work-around posted by users in Parallels forums -- a work-around of which a Parallels employee proved unaware -- but the machinations required to make it go left me with a lack of confidence in the product. Parallels needs to take another swing at this and, in the meantime, drop the price on its current effort to offset the product's unfinished pieces.