VPS vs Dedicated
Although I am somewhat of a new user to the VPS world I thought I'd write a short article giving an overview of why use VPS instead of dedicated servers for those of you who are involved in the hosting business or people thinking about leasing a VPS server. Here I will address misconceptions I had about VPS and talk about how my perspective on VPS is changing.
Contents
Why use Virtual Private Servers instead of Dedicated Servers
Like many of you when I first heard of the idea of VPS I pictured it is some small lame server that is sold to 12 year olds trying to start hosting companies on the cheap. It had never quite caught my attention until I decided I needed a remote name server and all I needed was enough of a server to run bind, but didn't want to by a dedicated box just to do that. So I got a VPS based on Virtuozzo for $80/year and it worked great.
In the process however I started understanding the VPS concept and it became apparent that this is more that just a tool to create little servers. The way I see it VPS can replace dedicated servers in many situations in a data center and do a better job than dedicated. You can actually give the customer more horsepower and better hosting than selling them a small dedicated box. (Of course big customers will still need their own server.)
I don't own a data center business myself but I have a friend who does and I colo several servers there. He has several racks of some old Celeron boxes with 512 mgs of ram and one or two 80 gig drives depending of if the customer has any concept of backups, which most of them don't. I'm looking at the racks of Celerons and P4s thinking that each rack could be consolidated into a single modern server and that the customers would actually have a better server than the one they are on now. And the cost saving is tremendous.
Advantages of VPS
Most small dedicated servers are a waste of resources. People buy bigger servers than they need and the excess capacity is wasted. These servers take both space an power which is expensive in a data center and you have hardware costs assiciated with each server that you have to recoup. People often don't do any backups so after several years the hard drive fails and they lose everything. And it's your fault for not backing them up in the first place.
Imagine a rack of 16 Celeron boxes with 80 gig drives being replaced by a Dual Core Athlox X2 with 8 gigs of ram and 4 500gb SATA 2 drives running in a raid 10 configuration. (Writing this in Feb of 2007 for future historians who will read this an laugh at the old days when computers had just gigabytes.) The above server would cost about $2000 to build and only take 2U of space and use far less power than the 16 machines that are being replaced.
Note that I'm suggesting in this example only a 16 to 1 consolidation. Everyone has the same amount of ram. In reality the consolidation is many times higher because most of those using the Celerons are not using all the memory. Many are using only 1/5 of what they have and a lot of that is used by the individual kernels running. In OpenVZ there is one kernel for everyone.
Not also that many of these servers have idle time where the processor is doing nothing and they have lots of extra hard drive spave that isn't being used. By consolidating these systems the free resources are combined allowing you to run many more logical servers that each have more resources than the individual servers.
On a dedicated computer the user is stuck with an old slow 32 bit processor, a limited amount of ram, and an old slow hard drive with no backups. In a VPS that same user is running on a shared dual core 64 bit CPU sharing 8 gigs of ram with fast modern large hard drives with raid backup. That is a significant improvement over having their own dedicated box. So this is a better deal for the customer.
Administration Advantages
If a customer needs you to fix something on their dedicated server you have to either know the root password or take the server down and boot from a rescue CD to get in and fix it. You also can't access the customer's files without logging in to their server as root. In a VPS you as host can enter their server at any time without a password. (Keeping the host environment very secure of course.) That allows you to do maintenance without having to look up the person's root password.
Ease of Setup
Setup couldn't be easier as compared to building a dedicated server. All you have to do is type a few command and the new virtual server is ready to go. You can have the customer running while you are still on the phone taking the order. A dedicated box requires setup, installation, and often has to be scheduled. This involves cost and time. VPS is read instantly and easily. Any distro you want with all the latest updates installed. When a customer places an order they want it now. With VPS you can deliver it now.
Backup Advantages
Additionally you can access the customers files directly from the host environment. This allows you to run rsync scripts to back up all the virtual servers to external storage or backup servers without the customer being aware that you are doing sophisticated backups. Then when the customer calls you up in a panic and says, "I totally screwed up my server and deleted a bunch of files by accident. Can you get it back?" You can magically restore their lost data and you are forever their hero.
IP Allocation Advantages
Tired of allocating 4 IP addresses just to give the customer 1 usable? Or giving them 8 so they have 5 usable and them most of them only use one? How inefficient is that? With OpenVZ you can allocate IP addresses individually so that if a customer only needs one IP then they get only 1 IP. But if they need 9 IP addresses you can give them exactly 9 of them. They can call you up and say I need one more IP and you can give it to them in seconds. On a dedicated server if you gave them a /29 vlan and they are using all 5 IPs and they need another one - that is a huge hassle.
Disk Space Allocation
On dedicated servers you have to install a big hard drive that is mostly wasted. If the customer wants backups then it's two hard drives. In OpenVZ you just allocate space in the raid array based on what the customer actually needs and they only use the space that they use rather than what's allocated. The "allocation" is really just a software limit and that is a line in a text file that you can instantly change the moment the customer needs more space. On a dedicatd box if the customer need a bigger drive then it's a trip to the data center with a new drive and a few hours time to copy everything over and replacing the drive, not to mention the down time.
Memory Upgrades
Memory upgrades are as easy as hard drive upgrades. Juch one command that the user has more ram. But what if the server is full and you don't have any more ram? No problem. Just copy the user's VE (virtual environment) over to another physical server with rsync and start them up there. In only a few minutes you've migrated them to a new box and they are up and running.
Migration
Suppose a customer just needs a bigger server. Migration is easy in the VPS environment because the VE is consistent between servers. You just copy over the files and start it up. You don't have to build a new server, install an OS, copy it all over, and then mess with it for an hour getting everything to work.
Emergency Procedures
Let's say that a server fries. With VPS and good backups you have more options. You can copy the backup of the VPS onto abother server and restore it as of the last (nightly) backup. (I'm a backup freak - but it pays.) That gets the customers up instantly if they need that while a tech can go down there and fox the server with less pressure. This give you more options when bad things happen.
Load Balancing
OpenVZ allows you to migrate servers live from one physical server to another. I haven't yet done that but I have done a shutdown, copy, and restart of the VE on another server and it's so easy to do that. So suppose you have a server that's a little crowded and some user starts hogging some resources. No problem. You just move a few users to another box and problem solved. This could probably be done automatically with some well configured cluster and I would love it if someone wrote a wiki page telling us how to do it.
Protecting your Customers
Since you are managing the host system you can create IP filters and port blocking policies that help keep users from exploiting you or keep hackers from exploiting your users. Instead of a separate box that is all theirs you have them in a more managed shell allowing you to keep the inexperienced out of trouble. This provides them with a service that it watched more closely allowing them to do their own thing, but keeping you closer by to keep them out of trouble.
Cost
The cost savings are rather obvious. An entire rack compressed into one or two computers. Picture the space and power savings. The greenhouse gas not being generated by the power you're not using. The number of computers that you are not buying. The hours you are saving in setup time and administrative time. When it comes to saving money this is definitely a winner. You can take that extra money and pass some on to customers and keep some extra for yourself.
The Down Side
Any time you add another layer then you have another layer of things that can go wrong. It takes some learning to understand the process and there is the possibility that one person can screw up the system for everyone. As virtualization develops it will get better. OpenVZ is very stable in that it is far less intrusive than other virtualization methods. It is limited to Linux only so BSD and Windows users will have to do something else.