A common question about hosting is whether to use a dedicated server or a virtual server.
Table of Contents
Dedicated Servers
If you use a dedicated server then you will face the risk of problems which interrupt the boot process. It seems that all the affordable dedicated server offerings lack any good remote management, so when the server doesn’t boot you either have to raise a trouble ticket with the company running the Data-Center (DC) or use some sort of hack. Hetzner is a dedicated server company that I have had good experiences with [1], when a server in their DC fails to boot you can use their web based interface (at no extra charge or delay) to boot a Linux recovery environment which can then be used to fix whatever the problem may be. They also charge extra for hands-on support which could be used if the Linux recovery environment revealed no errors but the system just didn’t work. This isn’t nearly as good as using something like IPMI which permits remote console access to see error messages and more direct control of rebooting.
The up-side of a dedicated server is performance. Some people think that avoiding virtualisation improves performance, but in practice most virtual servers use virtualisation technologies that have little overhead. A bigger performance issue than the virtualisation overhead is the fact that most companies running DCs have a range of hardware in their DC and your system (whether a virtual server or a dedicated server) will be on a random system from their DC. I have observed hosting companies to give different speed CPUs and for dedicated servers different amounts of RAM for the same price. I expect that the disk IO performance also varies a lot but I have no evidence. As long as the hosting company provides everything that they offered before you sign the contract you can’t complain. It’s worth noting that CPU performance is either poorly specified or absent in most offers and disk IO performance is almost never specified. One advantage of dedicated servers in this regard is that you get to know the details of the hardware and can therefore refuse certain low spec hardware.
The real performance benefit of a dedicated server is that disk IO performance won’t be hurt by other users of the same system. Disk IO is the real issue as CPU and RAM are easy to share fairly but disk performance is difficult to share and is also a significant bottleneck on many servers.
Dedicated servers also have a higher minimum price due to the fact that a real server is being used which involves hardware purchase and rack space. Hetzner’s offers which start at E29 per month are about as cheap as it’s possible to get. But it appears that the E29 offer is for an old server – new hardware starts at E49 per month which is still quite cheap. But no dedicated server compares to the virtual servers which can be rented for prices less than $10 per month.
Virtual Servers
A virtual server will typically have an effective management interface. You should expect to get web based access to the system console as well as ssh console access. If console access is not sufficient to recover the system then there is an option to boot from a recovery device. This allows you to avoid many situations that could potentially result in down-time and when things go wrong it allows you to recover faster. Linode is an example of a company that provides virtual servers and provides a great management interface [2]. It would take a lot of work with performance monitoring and graphing tools to give the performance overview that comes for free with the Linode interface.
Disk IO performance can suck badly on virtual servers and it can happen suddenly and semi-randomly. If someone else who is using a virtual server on the same hardware is the target of a DoS attack then your performance can disappear. Performance for CPU is generally fairly reliable though. So a CPU bound server would be a better fit on the typical virtual server options than a disk IO bound server.
Virtual servers are a lot cheaper at the low end so if you don’t need the hardware capabilities of a minimal dedicated server (with 1G of RAM for Hetzner and a minimum of 8G of RAM for some other providers) then you can save a lot of money by getting a virtual server.
Finally the options for running a virtual machine under a virtual machine aren’t good, AFAIK the only options that would work on a commercial VPS offering are QEMU (an x86 CPU instruction emulator), Hercules (a S/370 S/390, and Z series IBM mainframe emulator), and similar CPU emulators. Please let me know if there are any other good options for running a virtual machine on a VPS. Now while these emulators are apparently good for debugging OS development they aren’t something that are generally useful for running a virtual machine. I knew someone who ran his important servers under Hercules so that x86 exploits couldn’t be used for attacking them, but apart from that CPU emulation isn’t generally useful for servers.
Summary
If you want to have entire control of the hardware or if you want to run your own virtual machines that suit your needs (EG one with lots of RAM and another with lots of disk space) then a dedicated server is required. If you want to have minimal expense or the greatest ease of sysadmin use then a virtual server is a better option.
But the cheapest option for virtual hosting is to rent a server from Hetzner, run Xen on it, and then rent out DomUs to other people. Apart from the inevitable pain that you experience if anything goes wrong with the Dom0 this is a great option.
As an aside, if anyone knows of a reliable company that offers some benefits over Hetzner then please let me know.
What I would Like to See
There is no technical reason why a company like Linode couldn’t make an offer which was a single DomU on a server taking up all available RAM, CPU, and disk space. Such an offer would be really compelling if it wasn’t excessively expensive. That would give Linode ease of management and also a guarantee that no-one else could disrupt your system by doing a lot of disk IO. This would be really easy for Linode (or any virtual server provider) to implement.
There is also no technical reason why a company like Linode couldn’t allow their customers to rent all the capacity of a physical system and then subdivide it among DomUs as they wish. I have a few clients who would be better suited by Linode DomUs that are configured for their needs rather than stock Linode offerings (which never seem to offer the exact amounts of RAM, disk, or CPU that are required). Also if I had a Linode physical server that only had DomUs for my clients then I could make sure that none of them had excessive disk IO that affected the others. This would require many extra features in the Linode management web pages, so it seems unlikely that they will do it. Please let me know if there is someone doing this, it’s obvious enough that someone must be doing it.
Update:
A Rimuhosting employee pointed out that they offer virtual servers on dedicated hardware which meets this criteria [3]. Rimuhosting allows you to use their VPS management system for running all the resources in a single server (so no-one else can slow your VM down) and also allow custom partitioning of a server into as many VMs as you desire.
It depends on what you need … but http://www.ovh.com or http://www.ovh.co.uk for english, they have also a .nl domain, prices look fair to me … for personal stuff you can also try http://www.isgenoeg.nl is a sub of ovh … is even cheaper … But like I said … It all depends on what you want and expect.
Greetzzz
Some people seem to have gotten nested kvm to work. I’m not sure where the kernel support for it is at.
A few providers offer “private cloud” services like you describe. However, I’d definitely like to see someone offering more management for running your own virtual domains. In my case, I really want to provide a service which needs to run temporary VMs for customers.
“It seems that all the affordable dedicated server offerings lack any good remote management”
I’m not entirely sure what you mean by “affordable”, but in the past I used a Strato dedicated server for 33€/month, and came with remote console.
One option for splitting up a virtual machine is to use LXC or OpenVZ. I’ve used LXC with both Xen and KVM VPSes to provide some separation between logical servers — I’m currently using it to split up a 128MB KVM VPS between “random stuff” and “websites I host for other people”. Another option that could work is User Mode Linux, which at least gets you your own kernel.
nihilus: ovh.co.uk has #65 (E75) as it’s cheapest dedicated server offer. It’s nice that they have SSD as one of their standard offerings, but the prices seem a lot higher than Hetzner and they don’t seem to offer anything that Hetzner doesn’t offer. Also their VPS offerings are a lot more expensive than Linode, and apart from the two items I listed I don’t think that there is much scope to make a VPS offering that is better than Linode.
isgenoeg.nl has an interesting low end offer, it’s the cheapest dedicated server I’ve seen. It’s low power (a Linode VPS would kick it’s butt on a good day) but having dedicated disk IO is a real benefit. Also it’s nice that they advertise IPv6 support on the main page – although almost every DC operator has IPv6 nowadays.
Joey: That’s interesting. But it would still rule out the non-KVM VPS providers, and KVM doesn’t seem to be commonly used by the VPS providers which is presumably due to the fact that it’s the slowest virtualisation system that doesn’t do CPU emulation.
http://www.strato.de/server/
Anon#2: Thanks for the reference to Strato, they have some interesting offers including a limited time offer which is a lot cheaper than Hetzner. How do they do their remote console?
Donald: Good point about LXC and OpenVZ, I had forgotten about them. They are really good options for systems with a small amount of RAM, I don’t think that using any full virtualisation system would work well with 128M of RAM. The advantage of LXC and OpenVZ is that their overhead is comparable to a chroot environment and they can be more easily manipulated by the controlling environment thus allowing some system processes to be removed from the virtual machine.
UML can be good for development, but by today’s standards I don’t think that many people would want to use it for running a real virtual machine.
How about https://rimuhosting.com/order/vps-on-dedicated.jsp (btw I work there)
Those are clearly speced offers, reasonably priced imho, and have all the advantages of a single guest on a host, with the control panel management for reboots and console access to the virtual server(s) running there. We can do the same on any of our regular dedicated server options as well. We even provide an api for stoping/starting up servers and most other management tasks.
Glenn: Thanks for that information, Rimuhosting has some interesting offers. Some of them are cheaper than Linode, some are more expensive, but in terms of being free from disturbance they all offer a significant benefit (I have some ongoing issues with a Linode DomU in this regard). The high end offerings with 15.5G of RAM seem like very good value for money!
When compared to doing it yourself on Hetzner all the Rimuhosting options are a bit more expensive, but the better management options of a VPS are worth paying extra. The difference is a fraction of an hour a month at my normal billing rate.
It’s good to see a representative of a hosting company reading blogs and getting involved in the discussion. That gives me more confidence in the company.
In the UK Bytemark have a good reputation, and as you suggest all their offerings come with remote serial console access – whether virtual or physical.
http://www.bytemark.co.uk/
Their virtual machines are KVM-based, having previously been UML.
(Disclaimer; I work for Bytemark.)
You can get a dedicated server for 15e/month from OVH: http://www.kimsufi.co.uk/ : it has 100GB of backup on FTP and it cames with 4 IP addresses if you anable them. This is good if you plan to use virtual machine on it: based on UML / Vserver / namespaces as the servers have old CPU with no support for hardware virtualization.
But you get 4 IP, 2 GB of ram and your own hard disk.
Steve: Thanks for that information, Bytemark offers really good value with their 4GB RAM VPS. The dedicated servers seem like good value as they have console access, does Bytemark also support booting from a recovery image? If I messed up GRUB on a Bytemark dedicated server what would the recovery process involve?
Having you as an employee is a positive thing for a hosting company, I’m sure that everyone who’s aware of your Debian work will be more inclined to use Bytemark knowing that you work there.
eaman: Thanks for that, Kimsufi has some interesting offers including the cheapest dedicated servers I’ve seen. The remote reboot and rescue-image features seem comparable to Hetzner, it’s usable but not as good as a serial console or similar.