Co-location setup

Co-location (often spelled co-location, co-lo, colo or even collocation) allows you to place your server in high quality hosting facilities with excellent network connectivity. Locating your server outside of your own premises can present its own challenges, but with a little preparation it is possible to perform just about all server administration remotely. This guide presents step-by-step instructions to getting a server hosted, and lists some common pitfalls for those unfamiliar with co-location.

Choose your hardware

Most rackmount server hardware is suitable for co-location, but there are certain features worth looking out for:

BIOS serial support. Modern server-class motherboards often include support for accessing the BIOS via the serial port. This allows you to view the POST (Power On System Test) output, and to configure BIOS settings remotely. Make sure you keep a note of how to get into the BIOS menu (usually by sending a break on the serial line).

(BIOSs with serial support also often allow you to redirect text-mode screen output to the serial port. We recommend that you don't use this - it's much better to configure your bootloader and kernel to talk to the serial port themselves. The GNU GRUB bootloader works well over the serial port. For a typical modern server, you will need lines like this in /etc/default/grub

GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

Boot-up on power-on. One of the worst inventions to hit the x86 server world was the ATX power supply, now standard in just about all servers. Whilst a computer that can turn itself off may have uses in the desktop PC market, in the server world it is a liability. The problem is with motherboards that do not turn themselves on automatically when the power is connected as this makes it impossible to power-cycle the machine remotely using a Masterswitch. This is mainly a problem with older systems, although some modern systems have a BIOS setting to control this. You should confirm that your hardware boots when the power is connected, without requiring you to press the on switch.

(If you're saddled with a computer that won't power on automatically, you can usually modify it to achieve this by tying the green PS-ON line from the ATX power supply to one of the black ground lines, for example using a snap-lock crimp connector. For more information see chapter 4 of the ATX specification. Please note that any such modifications you make to your hardware are at your own risk!)

Hot-swap drive bays. If you are providing services of any importance it is well worth using RAID to protect against failure of a hard disk. It is also worth considering a case that allows disks to be removed and replaced easily, as this may allow a faulty disk to be replaced by data center engineers. Linux supports software RAID; alternatively, there are a wide variety of hardware RAID controllers available for PC hardware.

Server size. In most situations this is a choice between 1U and 2U. 1U servers are cheaper to host, but have very limited space for additional hard drives or expansion cards. x86 hardware fits much more comfortably into a 2U case, and the extra space avoids the need for low-profile memory and CPU fans.

Once you have your hardware, it is worth taking some photos of the inside of your server as this can help when buying hardware upgrades (e.g. how many memory slots are free), and when trying to find replacement components (e.g. CPU fans).

Configure your operating system

You should configure your server to work on your local network, and ensure that all the services you require start when the server is booted. Make sure that you have all the latest security updates for your operating system. When configuring any computer connected to the Internet, you should disable all services that you do not intend to use.

Serial console. Mythic Beasts can provide access to your server's serial port via one of our terminal servers. This can offer some real advantages to a co-located server if properly configured:

  • Access to bootloader - allowing you to rescue your server from a failed kernel upgrade or boot into single-user mode for maintenance.
  • Off-line access to server - allowing you to perform maintenance on your server when the network is down. This makes reconfiguring firewall rules remotely less of a lottery.
  • Access to console log - we provide a logging console, allowing you to view the last gasps of your kernel should things go wrong.

Most modern operating systems have good support for accessing the console via a serial port, but setting this up correctly can be fiddly. It is well worth getting this right and testing it thoroughly. There are three elements: configuring the bootloader, configuring the kernel, and running a "getty" on the serial port.

Hardware monitoring. There are two important components in your server that contain moving parts and so are particularly prone to failure: fans and hard-disks. You can protect against hard disk failure using RAID. Typically RAID protects you against a single failure, but not a double failure. One of the potential risks of RAID is that failover can be so seamless that you don't even notice that a disk has failed, and you only find out when a second disk fails and takes down the array. This is compounded by the fact that, sadly, modern UNIX kernels aren't very good at telling you about hardware failures. It is essential to setup a monitoring system to notify you immediately when a disk fails. Most RAID systems, both hardware and software, provide information to determine the state of the array. In particular, if you are using a RAID array based on IDE disks (and in many cases if you're using SCSI too), you can also use SMART disk monitoring to determine the condition of disks in the array; see the smartmontools home page for more information. In our opinion, using SMART monitoring is essential for any server, whether you're using RAID or not.

Computer fans rarely fail instantaneously. There is often a long period over which they are running at a lower speed. Under these conditions, a server may hang intermittently, usually when under heavy load. By monitoring fan speeds and temperatures (most motherboards allow you to do this) you can spot a problem long before it affects your server's well-being. The standard package for this application is lm-sensors; sadly it can be a bit of a pain to install, but it's worth spending the effort.

Press F1 to continue. Once installed in our rack, your server will not routinely have a keyboard attached. This shouldn't be a problem but unfortunately, back in the early days of PC hardware, some clown came up with the following error message: "Keyboard error: Press F1 to continue". Most modern hardware doesn't bother with this nonsense, but some motherboards have a BIOS option to determine whether to check for a keyboard on boot. Make sure that your server boots without a keyboard attached.

IP address. You need to configure the server so that it "Just Works" once it is connected to our network and booted up. It is worth going through the steps of changing the IP address to a different address on your local network so you are confident that everything will work when you make the change to its real IP address without testing it.

Installing the server

Once you're ready to go, ask us for the IP address and routing information for your server, then re-configure your server to use this address, shut it down and pack it up. You need only supply the server itself (no cables) and sliding rails (only if you have agreed to supply these). It is usually easiest to arrange for the server to be shipped to the data center by courier, and we will install it for you. If you wish to install the server in person, we can arrange a mutually convenient time to meet at the data center.