When I first went shopping around for VPS hosting back in early 2006, Linode was high on my list. There were only a few Linux VPS providers back then but I knew Linode has been in the VPS/VDS hosting business for years, way before the flood of HyperVM/OpenVZ hosts that I have observed in the recent months. However I did not go with them in the end (but went with Unixshell instead) because (1) they were a bit more expensive (2) I heard User Mode Linux (virtualisation used by Linode) was not as fast as Xen.
Fast forward 2 years.
A few days past Christmas, Thomas from Linode offered me a VPS account to review, and I emailed back asking for a Linode 360 in their Fremont California rack. 2 hours later my account has been set up, and I was already inside their Linode Platform Manager configuring up my VPS. So far so good.
Expecting UML, Got Xen
When Thomas contacted me about reviewing their VPS, I was expecting to get a UML node but instead, Linode has set me up on one of their new Xen boxes, which they are currently beta-testing. As I have no experience with UML I cannot make any claim on how it works, but according to what I have read they are similar to Xen where each guest OS gets a dedicated-server-like environment (swap partitions, actual RAM allocation, full-blown kernel, etc). However,
- Xen is generally faster.
- Xen is para-virtualisation with dedicated resources, where a UML is just a process in userland that can potentially be paged out.
- Xen gets SMP support, which is very useful with today’s multi-core CPUs.
- Xen is on the news everywhere.
UML does have a few advantages.
- More mature and has good track record
- UML token Bucket IO Limiter developed by Linode that prevents any VPS from overtaking the entire IO bandwidth on the host node.
I am perfectly fine with trying out Xen, especially when Linode has developed their Platform Manager control panel to work on both Xen and UML.
Linode Platform Manager
One thing that really stands out from Linode is their Linode Platform Manager, which is a very well designed and flexible control panel for Linode end users to configure and deploy their new virtual servers. You can read about all its features here. While it is flexible, it can also be confusing sometimes, especially when you came from other VPS providers where you are expecting just a SSH prompt after you submit your credit card details.
Initialisation and Booting up
There is a excellent video on the features page on how you can set up your Linode VPS for the first time. Basically after you logged into the Platform Manager, you need to
Choose between one of free data centres if it is your first time logging in (Atlanta, Dallas or Fremont).
Go to Distro Wizard to configure your new VPS.
Select from a wide range of Linux distributions such as Arch Linux, CentOS, Debian, Fedora Core, Gentoo, Mandrake, OpenSUSE, Slackware and Ubuntu.
Note that they are all bare-bone distributions and they do not have ready-to-run LAMP or RoR distributions like SliceHost or VPSLink. You are responsible for getting all the software installed yourself as Linode provides strictly unmanaged service.
Select disk image size (for your main partition). It is defaulted to your plan’s size – swap size.
Select swap partition size.
Choose your root password.
When you click on “Create Profile”, it creates (1) a configuration profile (2) a main disk image initialised with the Linux distro of your choice (3) another disk image containing the swap partition if you choose to have one. It might take 1-2 minutes depending on the size of your distribution.
Go back to Dashboard, and hopefully all the profile creation and image initialisation jobs have been completed. All your configuration profiles and disk images will be listed here, with the “Boot” button next to a bootable profile.
Click on “Boot”, a job will be dispatched to the physical server hosting your VPS, which should be executed in no time. Now your new VPS is up and running, and only at this point we can SSH into it. You can find out the public IP address under the Remote Access tab.
Most VPS users will just stop here, focus on building their shinning new VPS and never visit the Platform Manager again. However, Platform Manager is far more powerful than just initialising your disk images and rebooting your servers. This review does it no justice if we just stop here.
If your VPS uses OpenVZ, Virtuozzo or Linux-VServer, then it’s too bad — you do not have a choice on how your partition is configured. There is no choice on multiple partitions, no choice on the file system to use and how file system is formatted (for example, how many number of kilobytes per inode). If you are using Xen, then your VPS is fully capable of doing that, but you might not have an option from your VPS provider.
On Linode, you can
Create multiple disk images as long as the total size does not exceed your allocated size.
Choose the disk image size when they are created.
Choose the default file system on these images. The default choices are ext2 and ext3, but I think you can create them as raw images and then format them yourself from your own VPS. These are the file systems supported by my Xen VPS kernel:
# cat /proc/filesystems | grep -v nodev reiserfs ext3 ext2 cramfs minix msdos vfat iso9660 romfs fuseblk udf jfs xfs
To create extra disk images, click on “Create a new Disk Image” from dashboard.
Unfortunately there does not seem to be a way to prepare your root partition with anything but ext3. Not that it is going to be an issue as ext3 has been proved to be a rock solid file system, but depending on your applications, ResierFS or XFS might be more suitable for the job.
The advantage of choosing ext2/3 is that you will be able to resize the disk image from inside the Linode Platform Manager, if you happen to upgrade your plan or buy more space later on.
After creating disk images, you can now change your configuration profile to attach them to specific devices when your VPS boots up. However, there is much more to configuration profiles than just mapping disk images to devices.
It sets up all sorts of boot parameters for your Linux VPS, including:
Kernel to boot from (choosing different 2.6 kernels and I think you can even choose 2.4 kernels for UML)
Memory allocated to VPS (although I can’t see why you’ll set anything less than maximum)
Change run-level (default, single user or set init=/bin/bash). Useful when the VPS is really screwed up.
Root device and whether it is mounted r/o or r/w upon booting up.
Some misc helper operations to prepare the disk images before booting.
How useful are these configuration options? Probably not much when your VPS is up 24×7 serving content. However I can see them being extremely useful when you are trying to recover from a corrupted file system, or you like to play around with multiple Linux distributions.
Finnix Recovery Distro
On the topic of recovering an unbootable Linux box, I used to have to hunt down the LiveCD, attach a monitor, reconfigure the BIOS so it reboots into the CD-ROM. With the number of hard disk failures these days in data centres, I wonder how often an average NOC has to perform these operations to get their clients’ cheap dedicated server back to life.
On Linode, booting into a LiveCD is a breeze. Follow these instructions to create a new recovery profile that boots from Finnix, a small rescue distribution.
Great feature, but something you wish there is never a need to use it 🙂
Another unique feature is their Linode Shell, where you get out-of-band console access to your VPS, which is useful when you cannot login to your server from network (for example, bad iptables rule blocks out SSH access). Wait! There are many Xen and OpenVZ providers that also give you console access! But Lish is a bit different.
Your console access runs inside GNU screen, and you can detach from screen to reveal Lish command prompt.
You can reboot/shutdown your VPS from Lish. You can also choose different configuration profile to boot from.
You can check jobs queued and performed on your VPS.
It is like a mini-Linode Platform Manager for those who stuck on those old Wyse-60 terminals 🙂
An active community is a sign that the hosting provider is doing a good job. Not only it establishes two way communication between the provider and its users, an active community also shows it has enough “fans” willing to participate and help each other out.
Obviously Linode has done something right here…
But, What About Reviewing the Actual VPS?!
Yes, I have realised that the focus of this review has been on the Linode Platform Manager, as it is what’s unique about Linode. What about its Xen VPS? It is just like all the other well-performing Xen VPS. My server can burst to a quad-core Xeon L5335 “Clovertown” at 2Ghz, disk IO has been very fast (around 2.3GB/sec if I read from disk cache — some serious setup there), and network connectivity has been great (>2MB/sec downloading from Amazon S3 and 185ms ping from my home in Sydney Australia). However it is difficult to perform some real test without putting a live site with moderate traffic on it over a longer period of time.
I guess my point is — running stable and fast Xen VPS on server-grade hardware is no longer rocket science, and that is probably one of the reasons why Linode came back to beta-test Xen again. What really sets Linode apart is its Platform Manager, its active community and its years of experience in the Linux VPS industry.
And the price? Remember that I was turned off from their price 2 years months ago. Now you can get their base package, Linode 360, for USD$19.95/month, which gives you:
- 360MB RAM
- 10GB space
- 200GB/month data transfer
Great price indeed.
I am quite happy with the Xen VPS Linode has provided, and I think I know where I will get my next VPS from. ’nuff said 🙂