by John Yardley PhD, BSc, CEng, MIET (MIEE)
Managing Director, JPY limited
Copyright © 2011 JPY plc
The demise of the Apple Xserve has caused concern to the growing number of businesses with a commitment to Mac OS X. However for many years, users in the Publishing industry have been successfully using Unix-based servers for communities of Macs and PCs. There are a number of strategies that Mac OS desktop users that wish to share files and services can adopt. This paper looks at some alternatives. If you have any comments or (constructive) criticism, please email them to firstname.lastname@example.org
Note: Where available, the first occurrence of each technical term is linked to a web resource with fuller discussion. If you are diving into the text midway, bear in mind that subsequent references to the same term are not necessarily linked. Table 4.2 covering other services has, however, been fully linked.
1 Server basics
Servers are all about sharing data among a group of computers called clients. The server and clients are assumed to be connected together via a network.
20 years ago, most computer users kept all their files on their workstation. If someone needed to share their file - say to correct a proof - then they made a copy on a removable disk. But, with two copies of the file in existence, it was easy for them to get out of synchronisation, and end up with one user having to abandon their work. Servers solve this problem because there is only ever one file. It's the server's job to manage how people can access it. Files can be "locked", so you don't have two people trying to edit the same data at the same time.
But servers solve another problem. If a workstation fails, then the user can just sit down at another one and carry on. Of course, this does put a lot more reliance on the server, but money saved on the workstations can be invested in the server - fast computer, massive disks, backup, air-conditioning, the works.
So what has changed over the last 20 years? The answer is that networks have become much faster. You can now get data from the Internet faster than you could on local network then. Indeed, on a local area network it is possible to access data from a network disk faster than a local disk. And as networks get faster, the more types of server we see - file, email, print, web and database servers - almost any kind of data can be served up. And the faster the network, the less it matters where the server is located (geographically).
1.1 Server services
Sharing files is a common requirement for a server, but servers can and do share many other types of service. Below is a list of common server services.
It should be remembered that services provided are often dependent on the operating system of the client, which for 99% of the workstation market will be Windows, Mac OS, or Unix/Linux. With the growth of the Internet, the dependence of the server on the client has reduced greatly - mainly because operating system developers have gradually adopted client-independent standards. Nevertheless, there is still sufficient divergence to make the choice of server dependent on the mixture of client operating systems being served.
Here we consider those services intrinsically supplied by OS X on the Xserve. There are many other types of service available as third-party server applications.
|File server||Permits many users (clients) to share simultaneous access to one or more files.|
|Print server||Pretends to be a printer so as to quickly accept print jobs from any client. The jobs are spooled to disk and printed at whatever rate the printer can work. A print server also manages the queueing of jobs so that all clients get fair access and the printing load may be distributed across several printers.|
|Mail server||Acts as an electronic sorting office for email, collecting and delivering mail from individual users|
|Web server||Permit any type of computer user to interact with a web service using a web browser such as Internet Explorer, Safari or Firefox.|
|Database/SQL server||Provides access to a structured indexed database file. Includes special features for locking records and for backing up a database file while it in use.|
|Directory server||This is a specific type of database server that provides a very simple structure aimed at fast execution of lookupa of the "telephone directory" or "address book" type.|
|Name server||Provides the translation of "named" addresses that humans can understand into numerical addresses for networks. An Internet Domain server is one type of name server. It would translate "jpy.com" into "22.214.171.124". On AppleTalk networks, devices were traditionally located by name using Apple's own name server called Chooser. Since Apple moved to TCP I/P, this been replaced using the Bonjour protocol.|
|Authentication server||Authenticates a user for single sign on for access to several different network services and obviates the need for a user to maintain many different usernames and passwords|
|Backup server||Provides backup and archive services for data on the server or data on individual workstation disks|
|Desktop management server||This provides a centralised point to manage a community of desktops and is particularly valuable for users without IT skills. Useful for updating user applications.|
|DHCP server||A Dynamic Host Configuration Server allocates numeric addresses to network users as they come on-line. It obviates the problem of pre-defining unique numerical network addresses.|
|Search server||OS X servers permit OS X clients to perform remote searches. This is far more efficient than fetching directory files to the client, and searching locally. Apple's search engine is called Spotlight.|
|Administration server||Allows client users to administer the server remotely via a user-friendly client application.|
1.2 Server features
Any Macintosh user can turn on "File Sharing" in System Prefs and share its resources (eg disks) with other users on the network. PC users can perform as similar file sharing facility under Windows.
This is a cheap way of sharing files, but not particularly secure or fast. It also relies entirely on the actions of the host user to maintain a reliable service. Added to that, users often want to do much more than just share files and the burden on a single user workstation could easily make normal work nightmarishly slow. The same is true for other services and the "Sharing" System Preference of Mac OS X gives a quick indication of the services a user can share.
A better alternative is dedicate a separate computer to the job. Since the server is shared by many users, it makes good sense to invest more than one might in a desktop computer.
Typical file server features which will benefit all users are as follows:
- Fast multi-core processors
- Lots of memory
- Lots of disk space
- Fast disks
- Disk redundancy (RAID)
- Redundant power supplies
- Rack Mountable
- Uninterruptable Power Supplies
- Secure location
- Air conditioned location
Apple has addressed as many of these requirements as possible in the Xserve and the Xserve would indeed cost more than the typical Mac workstation. But it came to market much later than many professional Macintosh users needed it and furthermore, some arguably essential features like redundant power suppliers were not available on the first models. Previous to the Xserve, Apple offered the 'Apple Network Server', a substantial floor-standing device that ran IBM's AIX operating system - a Unix derivative.
Although Apple users are generally extremely loyal to Apple kit, Apple's rather patchy commitment to a consistent line of servers meant that many professional Apple customers have tended to adopt alternatives. Initially, this happened mainly at the high-end - ie companies needing to serve 10s to 100s of users on a single server - but over the years, has dropped to small workgroup needs.
The withdrawal of the Xserve was accompanied with advice that a desktop Macintosh could be used instead. However, even the most powerful desktop computer is not rack-mount and hence is difficult to house and expand. It also does not have redundant power supplies.
So what do you need to replace the key features of an Xserve? Let's look at the possible alternate hardware, operating system and the software.
2 Hardware alternatives
First, a quick breakdown of the current generation Xserve specifications. Within the 1U enclosure, while still available, you can configure an Xserve with the following.
- Single or dual quad-core Intel Xeon CPU running at 2.26GHz, 2.66GHz or 2.93GHz
- Up to 48GB of RAM
- Three hot-swap SATA/SAS drive bays
- Optional internal RAID card (doesn't use PCI slots)
- Two x16 PCI Express 2.0 slots for connecting to external storage via SCSI or Fibre Channel
- Single or dual 750W power supplies
- Two independent 10/100/1000BASE-T (Gigabit) RJ-45 Ethernet interfaces
Let's take the following relatively modest Xserve configuration and then look at an alternative comparable server from Dell.
- Dual Intel Xeon 2.26GHz processors
- 12GB RAM
- Three 450GB SAS hard drives
- RAID controller to allow above to be configured as RAID 5
- Dual redundant power supplies
Based on January 2011 UK pricing from Apple, this Xserve would cost £6,518 inc VAT and delivery. This includes a 20% discount offered by Apple.
A comparable model from Dell's vast range of servers would be a PowerEdge R610 which is available with the same processors as the current Xserve, is also 1U and can be configured with redundant power supplies and has two PCI slots available. Because these servers use smaller 2.5 inch SAS drives, they can take six drives rather than the Xserve's three.
The same specification applied to the PowerEdge R610 comes to £3,887 inc VAT, delivery and a discount. Our specification included the Suse Linux operating system with 3 years subscription.
3 Operating System alternatives
The Xserver runs an extended version on OS X called OS X Server. OS X is derivative on the Unix operating system, which comes in various different flavours, the most ubiquitous of which is Linux, an Open Source version. From an architectural viewpoint then, replicating Xserve functionality on a non-Apple computer is better aligned to Unix than Windows.
That said, the choice between a Unix-based or Windows-based server depends also on the mix of client workstations on the network. Since Mac OS clients can behave in some ways like PCs, they cope better under Windows than Windows clients can cope with Unix. The degree with which the client copes with a server running on a different operating system, will depend also the particular service required. For example file serving may be good, but authentication services non-existent.
With the rise of the Internet and open standards, many services are provided identically under Unix and Windows, even if they have different names. For example, the Microsoft Windows Active Directory (AD) server publishes directory services using the Open Lightweight Directory Access Protocol (LDAP) and hence would provide the same functionality to any LDAP client, be it Mac or PC.
Since most generic hardware has now converged on an Intel architecture, owners can choose whether they run Windows or Unix. The same should be true for OS X except for the fact that parts of OS X are proprietary to Apple and as such, are not licenced for use on anything but Apple hardware. This rules out the obvious route of simply replacing the Xserve with hardware from a different manufacturer.
Another convenient but equally impossible solution would exist if Apple were to permit the virtualisation of OS X. Certain types of computer hardware allow the computer to be treated as several logically distinct machines, each of which can run its own self-contained operating system. Indeed, it is possible to virtualise a Macintosh so as to run both OS X and Windows on the same computer. To virtualise OS X on non-Apple hardware would mean that Apple had no control over the configuration of the computer used to run it, hence it may not behave as Apple predict and would be difficult to support. It is therefore unlikely Apple will permit the virtualisation of OS X on non-Apple hardware in the near future.
The Unix operating system was originally developed by Bell Labs and although available low cost or free to educational establishments, it was technically a proprietary product. Eventually Unix variants found their way into the Open Source framework and Linux has become the most popular. Sun Solaris, IBM Aix are two commercial variants and, as stated, OS X is also based upon Unix although the extensive components which give OS X its characteristic Graphical User Interface (GUI) , are proprietary to Apple. Indeed, the aspect which most separates OS X from other Unix derivatives is the GUI.
While a user friendly GUI is of major importance to user workstations, it is less important to servers, who generally do not require a great deal of user interaction, save for their management. Since server management is generally a fairly expert process, a command line editor is often sufficient. Services that require a significant degree of management are often made available to server managers via special client applications or web applications. Nevertheless, the fact that OSX Server has the same GUI as OS X makes it very compelling to systems administrators who are not trained in IT - and this accounts for a large proportion of existing Xserve users.
Although there are generic GUIs for Unix, these are not the same as OS X and would probably just confuse OS X users more than a command line. A much more acceptable option is to provide an OS X application that runs on any OS X client and allows remote configuration of the server. HELIOS is one manufacturer that provides this for its server products.
Both Mac OS and Windows have their own filing systems and both are different from the Unix file system. File servers running under Unix must therefore somehow map the client file system onto the Unix file system in a way that will not impact the client user.
This can result is rather subtle compromises which are not always obvious on a cursory test. For example, file naming conventions are different along with character sets available for naming files so it may be impossible to name a file stored on the server in the same way one would it on a local client disk. To a greater or lesser extend, this must be accommodated by the file serving software. Another example is file searching. A client user searching a server volume containing thousands of files may get a totally different experience between one file server and another. This is depite the fact actually reading a file may take exactly the same amount of time.
A Windows-based server instead of a Mac OS or Unix-based server is a compelling choice. For one thing, statistically, there will be more PCs on a network than Macs. IT Managers are also generally more conversant with Windows servers and hence will opt for the server they know best.
While this might be good news for PCusers and for Microsoft, its generally not the same for Mac users.
Windows stopped supporting the Apple Filing Protocol some years back and, although Mac clients can share files on a Windows server, there will be many restrictions. There are a host of issues concerned with file searching and authentication which are well documented on the web.
For more information on this see also:
An alternate strategy is for Macs to use native Windows services, since they are supported as part of Mac OS. This has performance and functionality compromises too.
For sites that contain a majority of PC clients and are already working with Windows servers, then the demise of the Xserve will have no relevance. For sites that do have Xserve, on balance a Windows-based server could not be recommended over a Unix-based server.
4 Software services
Of the common services listed in section 1.1, File services frequently consume the greatest resource and have most impact on the user. Hence we offer a comprehensive discussion of file service in section 4.1 and deal with the options for all other services in 4.2.
As discussed in the previous section, we look only at services availability under Unix.
4.1 File services
Sharing files is probably the single most important function of a centralised server. This is not a simple process because, unlike a user's workstation, several users may want to access the same file at the same time. It is the job of the file sharing system that users are prevented from corrupting files or making changes that subsequently get discarded.
Sometimes this can be achieved by allowing only one user at a time to update a file, this is called file locking. This is fairly restrictive though and it is preferable if users are restricted only to a single record in a file, this is called record locking.
Before we look at how they can be provided a little background is necessary.
4.1.1 Apple Filing Protocol (AFP)
Before Ethernet was really established, Apple used their own (230 Kb) networking cabling scheme called AppleTalk. AppleTalk was unique at the time by providing "plug and play" networking - which meant you could plug many Macintoshes together and refer to them by name rather than number and without any special configuration. Devices appeared in a desktop application called Chooser, and if a device was turned off, its name simply disappeared from Chooser.
Some time after, Apple reserved the term AppleTalk for the network protocol, and called the 230 Kb cabling LocalTalk. This paved the way for plug and play networking using the AppleTalk protocol over the significantly faster Ethernet - sometimes called EtherTalk.
AppleTalk was a protocol registered in its own right and it occupied the same position as the now ubiquitous Internet Protocol or IP. This began to cause problems for Apple. As such a minority player, many of the manufacturers of network equipment simply forgot the existence of the AppleTalk protocol and hence completely ignoring it - with disastrous result for Apple users.
Apple therefore later dropped AppleTalk and used the familiar TCP/IP.
AppleTalk simply defined the rules for one Mac to talk to another, but the sharing of files involved a file sharing protocol called the Apple Filing Protocol or AFP. File sharing protocols are very important and they deal with synchronisation of several users attempting to access the same file simultaneously. They also handled the task of searching for files, which can be much faster if done on the file server rather than on the client.
Apple's file sharing service was originally called AppleShare. When the underlying AppleTalk transport protocol was dropped in favour of TCP/IP, the service was renamed AppleShareIP.
Meanwhile, Unix users had adopted their own filesharing system called the Network File System and Microsoft had developed their (arguably IBM's) file sharing system called Server Message Block or SMB. This gave rise to all sorts of variants with special operating system plug-ins to allow MacOS clients to talk to NFS or SMB file servers as well as similar plug-ins for Windows and Unix to allow access to AFP servers.
However, all these file-sharing protocols were slightly different and generally any mismatch of client and server native protocol resulted in some feature or performance compromise. This is true to this day.
Professional MacOS users have therefore demanded that they run servers that support the AFP protocol.
4.1.2 AFP under Unix/Linux
The early Apple AFP servers not only had relatively poor performance, they were highly unreliable. This was for 2 main reasons.
Firstly, at the time AppleShare was introduced, the Mac OS operating system was not a robust operating system. It was relatively easy to lock up the whole computer due to some program bug. It was also the case that the architecture of AppleShare was not suited to reliably supporting many concurrent users. It ran as a single process and if, for some reason the process died, then all the users would lose connections. Similar problems with SMB and the general incompatibility left the door open for a robust AFP file server for use in demanding applications - in particular, newspaper publishing - where loss of the file server could not be tolerated.
The firm to first plug the gap was HELIOS. In 1989, they released an AFP-compatible file server (and PAP compatible print server) called EtherShare which ran under the Sun Solaris (Unix) operating system. Soon after, they released versions for 9 other Unix variants covering 95% of the Unix flavours in use. HELIOS then added other complementary products, mainly targeted at the publishing industry, that were tightly-coupled to their file-server. These included PCShare, which provided synchronised access for Windows clients and ImageServer. They also were one of the first companies to benefit from the use of TCP/IP as the underlying protocol. EtherShare soon gained rapid market share partly due to its performance and stability, and partly because it could be configured on severs from many different manufacturers.
Various Open Source implementations of AFP have been developed, the most significant of which is Netatalk. This runs under Unix/Linux.
4.1.3 AFP under Windows
Microsoft supported early versions of the AFP protocol under their Windows Server, but no new development has taken place for some years. Mac users that wish to share files on a Windows server must make use of Mac OS support for SMB which is possible via an Open Source product called Samba. The differences between SMB and AFP and the fact that Samba is not supported mean that in profession environments, Samba is not often used.
4.1.4 Sharing files
OS X Server includes a native AFP file server for Mac clients and the Open Source Samba server for PCs.
Providing shared read-only access to a file is a relatively straightforward process. However, when several clients wish to write to the same file simultaneously, then the file server has significantly more complex task. Suppose two clients wish to update a file, and read it at the same time. Inevitably, one client will write back the modifications before the other and the file server then has the unenviable task of deciding which modifications to discard.
The easiest way to deal with it is to permit only one client at a time to write to a file. That client must release the file when finished. This is called file locking.
In situations where several clients need simultaneous write access to a file, a system of record locking must be supported. In order to be successful, the applications that access the files at the record level would need to use a common method of record locking, usually provided at the operating system level. This may be impossible if the same file is shared using two different file servers, as might be the case if say, a Mac client and a PC client were sharing the same file. The theory is too complex to discuss here, but suffice it to say that record locking is normally only viable when using a database server rather than a file server.
Other considerations included dealing with inconsistencies on different file systems. File naming conventions and syntax are examples of where Mac OS and Windows differ.
4.2 Other services
The following table offers a brief discussion services available under Unix with links to further information.
|File||HELIOS, Netatalk, Xinet, Samba||HELIOS software provides the most mature and extensive suite of file server products for Unix, with products for Mac (EtherShare), PC (PCShare), Web (WebShare ), Image, colour, print and pdf services (ImageServer). HELIOS supports Windows file streams and server-based searches for Mac and PC.
HELIOS may be administered from any client Mac or PC. Xinet is another proprietary AFP file server implementation although it has to be purchased as part of a suite of products. Netatalk is an Open Source AFP file server. Samba is an Open Source SMB file server.
|HELIOS and Xinet||HELIOS offers a comprehensive set of print services including spooling, load balancing, PDF generation and script processing. Xinet provides print spooling and PDF creation as part of its suite.|
|Web||Apache||Apache is Open Source and is part of most Unix distributions.|
|Database/SQL server||MySQL||MySQL is now owned by Oracle but remains Open Source.|
|Directory server||Communigate, OpenLDAP||Communigate is a proprietary mail server that includes an LDAP as part of its services. OpenLDAP is an Open Source product.|
|Name server||named and OPENdns||HELIOS includes an Apple-compatible Bonjour server and Bonjour proxy server for Bonjour printer devices. Both OS X and most Unix distributions include the Berkeley Internet Name Domain (BIND) daemon "named"|
|Authentication server||HELIOS, CAS||HELIOS includes an authentication server that works with AD/PDC LDAP, NIS and local host users/groups. CAS is an Open Source product.|
|Backup server||Archiware, HELIOS||Archiware provides a full suite of Backup, Archive and Synchronisation for Mac and PC clients. HELIOS includes Time Machine server support.|
|Desktop management server||Casper||A proprietary product offering a unified framework for OS X client management.|
|DHCP server||HELIOS, OpenDHCP||HELIOS includes a DHCP server. OpenDHCP is a Open Source product.|
|Search server||HELIOS||HELIOS is the only non-Apple server product to support Spotlight searches from Mac and PC clients.|
|Administration server||HELIOS||HELIOS provides a OS X and Windows applications to administer HELIOS services in a user-friendly way.|
5 Summary and conclusions
The demise of Xserve does mean that loyal Apple customers will be unable to purchase both client and server computers from Apple. In reality though, this is no worse than purchasing printers from Canon, say. Apple realises that their server market is too small for it to actively compete with mainstream server manufacturers. Furthermore, as a proportion of their overall market, it is tiny and Apple prefers to concentrate its R&D efforts where customers can see a difference.
For those companies that are uncomfortable with non-Apple hardware, they are still able to run OSX server on desktop machines and the Mac Mini. Although these would not be considered industrial-strength servers, their operation and reliability probably matches what were perfectly acceptable industrial-strength servers of a few years ago.
However, for those customers that need rack-mount, scaleable devices, a Unix-based server is no compromise and in many respects superior to the Xserve. This is evidenced by the many hundreds of large corporate Macintosh installations who have been running Unix AppleShare file servers for the last 20 years.
In general, the cost of servers from maunufacturers such as Dell, IBM and HP is significantly lower than equivalent Xserve configurations and can provide many more options for storage, expansion and scaling. Since OS X has Unix at its core, it is no surprise that many of the existing OS X services are already available as Open Source Unix products.
Proprietary products such as HELIOS, Kerio and Archiware have long been available to run on Xserves anyway, so the loss of the Xserve should be no real cause for concern.
Note: A shortened version of this article appears in the Masterclass section of the Macworld website and also in the printed edition of Macworld Magazine pages 90-93 May 2011.