This article is a pre-release chapter in the upcoming “Take Control of OS X Server,” by Charles Edge, scheduled for public release later in 2014. Apart from Chapter 1: Introducing OS X Server, and Chapter 2: Choosing Server Hardware, these chapters are available only to TidBITS members; see “Take Control of OS X Server” Streaming in TidBITS for details.
Choosing Server Hardware
Perhaps the hardest part of OS X Server is getting started. What computer should you use for your server? How much RAM and storage space should it have?
As the carpenter’s saying goes, “Measure twice, cut once.” Rarely is this more true than when planning to deploy a server. The more people who will access the shared resources of the server, the more the saying applies.
There are three main areas to consider: Storage, Server Resources (such as CPU and RAM), and Bandwidth. Plus, how you configure your server depends on what types of services you’ll be hosting, how many of them you plan to run, and how many users will be connecting.
For instance, file servers typically need more storage and bandwidth. Web and database servers typically need more CPU and RAM. Servers managing network services such as Open Directory, DHCP, and DNS are often not taxed at all, so it would be better to have redundant servers than to pour additional resources into a single server.
File sizes are growing astronomically. For file servers and backup servers, you really can’t purchase enough storage, and that is especially true if you’re storing video. There are two elements to consider when it comes to storage:
- How much? The total amount of storage should correlate to your needs, with a bit of future proofing built in.
- Throughput: Throughput to the storage is mostly pertinent in solutions for video, database servers, and other data-intensive systems. For most smaller environments, unless you want to stream video, a Thunderbolt or USB 3 storage array is sufficient, with enough space to back up your data.
When planning storage, consider having a smaller drive or partition (maybe 100 GB) as the boot volume and a larger one as your data volume. Separate disks are always fine, but it’s often easier (and a better use of resources) to make multiple partitions on a disk by partitioning it in Disk Utility. Also, separating your data and your operating system keeps the server stable even if you fill up the data drive and, in the event of corruption or failure, lets you restore one without having to restore both.
The only time you want to avoid partitioning is if you are using SQL databases or anything else that’s disk-intensive, since performance will suffer. In such a situation, each volume should ideally have its own dedicated drive or dedicated drives in a RAID configuration.
Server Resources (CPU & RAM)
A stock Mac mini or older Mac Pro usually has ample resources for offering basic services such as file serving. When figuring out what Mac to buy or press into service, and how to equip it, you’ll need to keep two basic variables in mind: CPU power and amount of RAM.
There is no magic formula for planning a server deployment; however, the more services that you will be running, the more memory you will need, and the more users that will access each service, the more CPU you will usually need so that each service can process requests faster.
How heavily each service will be used determines how powerful a CPU your server will need. For some environments, such as a home file server, Apple’s cylindrical Mac Pro would be overkill, unless you’re also using it for home decor. Stick with a Mac mini for a home file server.
On the other hand, if you expect to have more than 50 users accessing your file server, or if your server will be engaged in a CPU-intensive process like video transcoding, then the top-of-the-line performance of the Mac Pro may be welcome. And if your budget doesn’t have room for a new Mac Pro, a previous-generation Mac Pro tower would be a good compromise.
As I said, when it comes to RAM, the key thing to realize is that the more services you run on a single server, the more memory that server should have. For example, if a server is going to run directory services, file sharing, and shared calendars, plus manage DNS for the network and manage incoming backups, even for a smaller environment, you’ll need much more memory than a server that is just hosting directory services or file sharing for even 100 or more people.
Each service requires memory, and I generally recommend at least 4 GB per service, although many services can’t utilize more than 8 GB. You should always start a Mac server with at least 8 GB of memory and go up from there, depending on how many services you want to run.
When it comes to thinking about server performance, you must always keep bandwidth in mind, but it can be a bit more complex than some of the other topics in this chapter. At a base level, you must consider the network interface on the client, the network interface on the server, and the network link between the two.
Since all recent Macs have gigabit Ethernet ports, you’ll get the best performance if everyone sticks with wired Ethernet (assuming your Ethernet cabling is in good shape and you have gigabit Ethernet switches).
Where you start to run into trouble is with Wi-Fi, where the caveats start to pile up. In theory, 802.11g maxes out at 54 megabits per second (Mbps), 802.11n can hit 150 Mbps, and 802.11ac can go as high as 1.3 gigabits per second. In the real world, throughput is dependent on many variables, and never reaches the advertised maximums. In short, wireless is likely to be a lot slower than wired.
The practical upshot is that your server should be connected to your network solely via wired Ethernet, and any client computers for whom performance is important should also be on wired Ethernet.
But even then, meeting bandwidth requirements is a growing challenge, thanks to the amount of data being pushed through servers continuing to increase. If you are deploying a file server, consider how many people will be opening and saving files from your server simultaneously, such as first thing in the morning when everyone comes in, or at the end of the day.
For a small ad production company, for instance, this might involve ten people who have to work on a 5 GB video file. Even if the company’s server is a Mac Pro with gigabit Ethernet, it could take well over a minute for users to open files. A minute may not sound like much, but when you’re waiting for a file to open or save, it can be an eternity.
When thinking about bandwidth requirements, note that the potential throughput required is the number of users accessing files multiplied by the size of the typical files accessed. So consider how a typical user would access files and multiply that person’s maximum throughput by the number of users, keeping in mind what your network type can do. For instance, if you have ten users going over gigabit Ethernet interfaces, you could have a maximum throughput of 10 gigabits, which a single gigabit Ethernet interface cannot provide for. What to do?
Luckily, there are three main ways of increasing bandwidth, and while the specifics are beyond the scope of this book, the following advice should set you on the right path. All of these options can be pricey and are listed in order of potential expense, but time is money, so if you need the speed…
- Provide an interface for each user. Mac Pros have a lot of Thunderbolt ports, each of which can each have its own IP address, making it possible for each user to have a dedicated network interface.
- Consider bonding multiple Ethernet ports together using link aggregation. To use link aggregation, you need a switch that supports the feature. A beneficial side effect of link aggregation is redundancy. If one Ethernet port goes down, the overall connection remains active, with the remaining ports maintaining connections.
- If you’re using a Mac Pro as your server, invest in a 10 gigabit Ethernet network card. This will require 10 gigabit switches and network adapters, plus at least Cat6 Ethernet cabling.
Realistically, most people reading this book won’t need to go to such lengths. If the amount of time users will have to wait for files to open and save is satisfactory to all parties then there’s no need to have more than the standard single gigabit Ethernet interface. And if you’re running a Web server on a network with a 10 Mbps connection, you aren’t likely to ever saturate a gigabit Ethernet interface.