Home
Virtual Servers The Good The Bad and The Ugly
- Details
Hello folks,
I'm here to talk about virtual servers, but the title should have already told you that. The truth is this very site runs on a virtual server out in the cloud somewhere. Or does it?
To put it simply a virtual server is a server running inside another server. To the user it looks just like any other machine. Of course it's not that simple it's never that simple. While everything looks the same at first glance there are some major differences that can pop up. But more on that later.
When people shop for virtual servers the first things they see are the specs and the cost. Just like real machines Virtual Servers need RAM, CPU and Bandwidth. Here are some things to keep in mind when looking at these three things.
- RAM can be either guaranteed or burstable. Just as the name implies you will always have guaranteed RAM, but while the burstable number is higher there is never any guarantee that you will see any of it.
- CPU is often given in units. Unless you are only comparing a single service provider this number is completely MEANINGLESS.
- Just like with your ISP always be careful with Bandwidth numbers, and know what the data caps are. The good service providers will guarantee you a certain amount, but don't be surprised if many of them have up-to in legalese somewhere.
The next thing that people should look at is what kind of virtualization system is being used. I don't have any familiarity with windows boxes, so this next section applies mostly to *nix machines. There are quite a few virtualization technologies, but I'm just going to focus on two of them.
- Operating System-Level Virtualization looks and feels like real machine ninety to ninety nine percent of the time. Of course when it stops feeling like a real machine it can be a nasty and unwelcome shock. Here are the major advantages and disadvantage of going this route.
- It's cheaper. Everyone likes to save a buck here and there, but I really have to recommend just spending the extra money and not going this route.
- It probably has a really nice management console. The console will have nice features like file management, and command line access to your server. You'll need it. Whenever your server breaks this is the only way to access it. If something happened to ssh or your server then that cute little console is the only way try and figure out what happened. Good luck with that.
- You're stuck with the kernel they give you, and probably /dev too. Everyone is. Want to upgrade it, contact support. Want a special module, better hope they really like you. It gets even more fun when they give you a choice of distributions, which leads into number four.
- You're probably not running the distribution you think you are. Well to be exact it almost certainly isn't the stock distribution. OS Level Virtualization is fundamentally different than running on bare metal, so tweaks have to be made. You won't notice it unless you decide to upgrade to a newer version of your distribution, but when you do don't be surprised if you find your machine mysteriously unresponsive. In my experience you might as well just rebuild your entire server from scratch on the new version. It's faster and easier that way.
- Full Virtualization does just what the name implies. As far as your shiny new server is concerned it has the hardware all to itself. All of the problems with OS Level Virtualization disappear when going this route. Here's a quick overview.
- Full Virtualization is more expensive. You're not sharing a kernel, or anything else with anyone. The host machine is emulating everything so you can do this. That takes up resources that you can't see. It's a small price to pay but it's worth every penny.
- Management options are greatly simplified. You need a way to talk to the machine if it's acting up so you normally get something like a VNC connection that works regardless of what your server is doing. That and a few other options is it. You're not paying for someone to manage your machine for you, you're paying to have a machine you can manage yourself.
- It works just like a real server. If you treat the VNC connection like a remote KVM switch there is no noticeable difference between your virtual machine and a real machine.
- There is one other type of virtual server that I want to touch on. The para-virtualized server is one that looks like a fully virtualized machine but has special kernel modules installed so it doesn't use as much of the host machine's resources. Most full Linux servers are really making use of this to keep overhead down, but it's not something you really need to worry about.
Right, so one last thing to cover before I bore you to death. The cloud is a lie. Repeat it with me, the cloud is a lie. At best "The Cloud" is a bunch of networked redundant servers in multiple datacenters, but most of the time it's just someone selling a service to someone else who bundles it with other services and sells the package to someone who has no clue where there data is, and what's going on in the background.
Virtual Servers don't work like that. True someone is hosting your virtual machine on their real machine, but that's mainly an economy of scale issue. At most the hosting company could be leasing the physical machine. The very nature of Virtualization prevents any more abstraction than that. This means that just like with a real server if something happens to the host machine you're SOL, so keep backups and if it's important have redundancy.
I'm off to migrate to a new hosting provider.
Until Next Time,
Arthur

